@hpcc-js/composite 3.1.1 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/__package__.ts", "../src/ChartPanel.ts", "../../../node_modules/grid-list/src/gridList.js", "../../layout/src/__package__.ts", "../../layout/src/AbsoluteSurface.ts", "../../layout/src/AbsoluteSurface.css", "../../layout/src/Accordion.ts", "../../layout/src/Accordion.css", "../../layout/src/Border.ts", "../../layout/src/Cell.ts", "../../layout/src/Surface.ts", "../../layout/src/Surface.css", "../../layout/src/Cell.css", "../../layout/src/Border.css", "../../layout/src/Border2.ts", "../../layout/src/Border2.css", "../../layout/src/Carousel.ts", "../../layout/src/Carousel.css", "../../layout/src/ChartPanel.ts", "../../layout/src/Legend.ts", "../../../node_modules/d3-path/src/path.js", "../../../node_modules/d3-shape/src/constant.js", "../../../node_modules/d3-shape/src/math.js", "../../../node_modules/d3-shape/src/symbol/circle.js", "../../../node_modules/d3-shape/src/symbol/cross.js", "../../../node_modules/d3-shape/src/symbol/diamond.js", "../../../node_modules/d3-shape/src/symbol/star.js", "../../../node_modules/d3-shape/src/symbol/square.js", "../../../node_modules/d3-shape/src/symbol/triangle.js", "../../../node_modules/d3-shape/src/symbol/wye.js", "../../../node_modules/d3-shape/src/symbol.js", "../../../node_modules/d3-svg-legend/src/legend.js", "../../../node_modules/d3-svg-legend/src/color.js", "../../../node_modules/d3-svg-legend/src/size.js", "../../../node_modules/d3-svg-legend/src/symbol.js", "../../../node_modules/d3-svg-legend/src/helpers.js", "../../../node_modules/d3-svg-legend/index.js", "../../layout/src/Modal.ts", "../../layout/src/Modal.css", "../../layout/src/ChartPanel.css", "../../layout/src/FlexGrid.ts", "../../layout/src/FlexGrid.css", "../../layout/src/Grid.ts", "../../layout/src/Grid.css", "../../layout/src/HorizontalList.ts", "../../layout/src/Layered.ts", "../../layout/src/Layered.css", "../../layout/src/Popup.ts", "../../layout/src/Tabbed.ts", "../../layout/src/Tabbed.css", "../../layout/src/Toolbar.ts", "../../layout/src/Toolbar.css", "../../layout/src/VerticalList.ts", "../../dgrid2/src/__package__.ts", "../../../node_modules/preact/src/constants.js", "../../../node_modules/preact/src/util.js", "../../../node_modules/preact/src/options.js", "../../../node_modules/preact/src/create-element.js", "../../../node_modules/preact/src/component.js", "../../../node_modules/preact/src/diff/props.js", "../../../node_modules/preact/src/create-context.js", "../../../node_modules/preact/src/diff/children.js", "../../../node_modules/preact/src/diff/index.js", "../../../node_modules/preact/src/render.js", "../../../node_modules/preact/src/clone-element.js", "../../../node_modules/preact/src/diff/catch-error.js", "../../../node_modules/preact/hooks/src/index.js", "../../../node_modules/preact/compat/src/util.js", "../../../node_modules/preact/compat/src/PureComponent.js", "../../../node_modules/preact/compat/src/memo.js", "../../../node_modules/preact/compat/src/forwardRef.js", "../../../node_modules/preact/compat/src/Children.js", "../../../node_modules/preact/compat/src/suspense.js", "../../../node_modules/preact/compat/src/suspense-list.js", "../../../node_modules/preact/src/constants.js", "../../../node_modules/preact/compat/src/portals.js", "../../../node_modules/preact/compat/src/render.js", "../../../node_modules/preact/compat/src/index.js", "../../dgrid2/src/table.ts", "../../../node_modules/clsx/dist/clsx.mjs", "../../../node_modules/preact/jsx-runtime/src/utils.js", "../../../node_modules/preact/src/constants.js", "../../../node_modules/preact/jsx-runtime/src/index.js", "../../../node_modules/react-data-grid/src/utils/colSpanUtils.ts", "../../../node_modules/react-data-grid/src/utils/domUtils.ts", "../../../node_modules/react-data-grid/src/utils/eventUtils.ts", "../../../node_modules/react-data-grid/src/utils/keyboardUtils.ts", "../../../node_modules/react-data-grid/src/utils/renderMeasuringCells.tsx", "../../../node_modules/react-data-grid/src/utils/selectedCellUtils.ts", "../../../node_modules/react-data-grid/src/style/cell.ts", "../../../node_modules/react-data-grid/src/utils/styleUtils.ts", "../../../node_modules/react-data-grid/src/utils/index.ts", "../../../node_modules/react-data-grid/src/cellRenderers/renderCheckbox.tsx", "../../../node_modules/react-data-grid/src/cellRenderers/renderToggleGroup.tsx", "../../../node_modules/react-data-grid/src/cellRenderers/renderValue.tsx", "../../../node_modules/react-data-grid/src/DataGridDefaultRenderersProvider.ts", "../../../node_modules/react-data-grid/src/cellRenderers/SelectCellFormatter.tsx", "../../../node_modules/react-data-grid/src/hooks/useRowSelection.ts", "../../../node_modules/react-data-grid/src/Columns.tsx", "../../../node_modules/react-data-grid/src/hooks/useCalculatedColumns.ts", "../../../node_modules/react-data-grid/src/hooks/useLayoutEffect.ts", "../../../node_modules/react-data-grid/src/hooks/useColumnWidths.ts", "../../../node_modules/react-data-grid/src/hooks/useGridDimensions.ts", "../../../node_modules/react-data-grid/src/hooks/useLatestFunc.ts", "../../../node_modules/react-data-grid/src/hooks/useRovingTabIndex.ts", "../../../node_modules/react-data-grid/src/hooks/useViewportColumns.ts", "../../../node_modules/react-data-grid/src/hooks/useViewportRows.ts", "../../../node_modules/react-data-grid/src/DragHandle.tsx", "../../../node_modules/react-data-grid/src/EditCell.tsx", "../../../node_modules/react-data-grid/src/GroupedColumnHeaderCell.tsx", "../../../node_modules/react-data-grid/src/renderHeaderCell.tsx", "../../../node_modules/react-data-grid/src/HeaderCell.tsx", "../../../node_modules/react-data-grid/src/style/row.ts", "../../../node_modules/react-data-grid/src/HeaderRow.tsx", "../../../node_modules/react-data-grid/src/GroupedColumnHeaderRow.tsx", "../../../node_modules/react-data-grid/src/Cell.tsx", "../../../node_modules/react-data-grid/src/Row.tsx", "../../../node_modules/react-data-grid/src/ScrollToCell.tsx", "../../../node_modules/react-data-grid/src/sortStatus.tsx", "../../../node_modules/react-data-grid/src/style/core.ts", "../../../node_modules/react-data-grid/src/SummaryCell.tsx", "../../../node_modules/react-data-grid/src/SummaryRow.tsx", "../../../node_modules/react-data-grid/src/DataGrid.tsx", "../../../node_modules/react-data-grid/src/GroupCell.tsx", "../../../node_modules/react-data-grid/src/GroupRow.tsx", "../../../node_modules/react-data-grid/src/TreeDataGrid.tsx", "../../../node_modules/react-data-grid/src/editors/textEditor.tsx", "../../dgrid2/src/reactTable.tsx", "../../dgrid2/src/hooks.ts", "../../../node_modules/react-data-grid/lib/styles.css", "../../dgrid2/src/table.css", "../src/MultiChart.ts", "../src/Utility.ts", "../src/ChartPanel.css", "../src/Dermatology.ts", "../src/Dermatology.css", "../src/MegaChart.ts", "../src/MegaChart.css", "../src/Persist.ts"],
4
- "sourcesContent": ["export const PKG_NAME = \"@hpcc-js/composite\";\nexport const PKG_VERSION = \"3.1.1\";\nexport const BUILD_VERSION = \"3.2.1\";\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", "(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], factory);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.GridList = factory();\n }\n}(this, function() {\n\nvar GridList = function(items, options) {\n /**\n * A GridList manages the two-dimensional positions from a list of items,\n * within a virtual matrix.\n *\n * The GridList's main function is to convert the item positions from one\n * grid size to another, maintaining as much of their order as possible.\n *\n * The GridList's second function is to handle collisions when moving an item\n * over another.\n *\n * The positioning algorithm places items in columns. Starting from left to\n * right, going through each column top to bottom.\n *\n * The size of an item is expressed using the number of cols and rows it\n * takes up within the grid (w and h)\n *\n * The position of an item is express using the col and row position within\n * the grid (x and y)\n *\n * An item is an object of structure:\n * {\n * w: 3, h: 1,\n * x: 0, y: 1\n * }\n */\n\n this._options = options;\n for (var k in this.defaults) {\n if (!this._options.hasOwnProperty(k)) {\n this._options[k] = this.defaults[k];\n }\n }\n\n this.items = items;\n\n this._adjustSizeOfItems();\n\n this.generateGrid();\n};\n\nGridList.cloneItems = function(items, _items) {\n /**\n * Clone items with a deep level of one. Items are not referenced but their\n * properties are\n */\n var _item,\n i,\n k;\n if (_items === undefined) {\n _items = [];\n }\n for (i = 0; i < items.length; i++) {\n // XXX: this is good because we don't want to lose item reference, but\n // maybe we should clear their properties since some might be optional\n if (!_items[i]) {\n _items[i] = {};\n }\n for (k in items[i]) {\n _items[i][k] = items[i][k];\n }\n }\n return _items;\n};\n\nGridList.prototype = {\n\n defaults: {\n lanes: 5,\n direction: 'horizontal'\n },\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,\n output = '\\n #|',\n border = '\\n --',\n item,\n i,\n j;\n\n // Render the table header\n for (i = 0; i < widthOfGrid; i++) {\n output += ' ' + this._padNumber(i, ' ');\n border += '---';\n };\n output += border;\n\n // Render table contents row by row, as we go on the y axis\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 },\n\n generateGrid: function() {\n /**\n * Build the grid structure from scratch, with the current item positions\n */\n var i;\n this._resetGrid();\n for (i = 0; i < this.items.length; i++) {\n this._markItemPositionToGrid(this.items[i]);\n }\n },\n\n resizeGrid: function(lanes) {\n var currentColumn = 0;\n\n this._options.lanes = lanes;\n this._adjustSizeOfItems();\n\n this._sortItemsByPosition();\n this._resetGrid();\n\n // The items will be sorted based on their index within the this.items array,\n // that is their \"1d position\"\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i],\n position = this._getItemPosition(item);\n\n this._updateItemPosition(\n item, this.findPositionForItem(item, {x: currentColumn, y: 0}));\n\n // New items should never be placed to the left of previous items\n currentColumn = Math.max(currentColumn, position.x);\n }\n\n this._pullItemsToLeft();\n },\n\n findPositionForItem: function(item, start, fixedRow) {\n /**\n * This method has two options for the position we want for the item:\n * - Starting from a certain row/column number and only looking for\n * positions to its right\n * - Accepting positions for a certain row number only (use-case: items\n * being shifted to the left/right as a result of collisions)\n *\n * @param {Object<x:Number, y:Number, w:Number, h:Number} item\n * @param {Object<x:Number, y:Number} start Position from which to start\n * the search.\n * @param {Number} [fixedRow] If provided, we're going to try to find a\n * position for the new item on it. If doesn't fit there, we're going\n * to put it on the first row.\n *\n * @returns {Number[2]} x and y.\n */\n\n var x, y, position;\n\n // Start searching for a position from the horizontal position of the\n // rightmost item from the grid\n for (x = start.x; x < this.grid.length; x++) {\n if (fixedRow !== undefined) {\n position = [x, fixedRow];\n\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\n if (this._itemFitsAtPosition(item, position)) {\n return position;\n }\n }\n }\n }\n\n // If we've reached this point, we need to start a new column\n var newCol = this.grid.length,\n newRow = 0;\n\n if (fixedRow !== undefined &&\n this._itemFitsAtPosition(item, [newCol, fixedRow])) {\n newRow = fixedRow;\n }\n\n return [newCol, newRow];\n },\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\n this._updateItemPosition(item, [position.x, position.y]);\n this._resolveCollisions(item);\n },\n\n resizeItem: function(item, size) {\n /**\n * Resize an item and resolve collisions.\n *\n * @param {Object} item A reference to an item that's part of the grid.\n * @param {Object} size\n * @param {Number} [size.w=item.w] The new width.\n * @param {Number} [size.h=item.h] The new height.\n */\n\n var width = size.w || item.w,\n height = size.h || item.h;\n\n this._updateItemSize(item, width, height);\n\n this._resolveCollisions(item);\n\n this._pullItemsToLeft();\n },\n\n getChangedItems: function(initialItems, idAttribute) {\n /**\n * Compare the current items against a previous snapshot and return only\n * the ones that changed their attributes in the meantime. This includes both\n * position (x, y) and size (w, h)\n *\n * Since both their position and size can change, the items need an\n * additional identifier attribute to match them with their previous state\n */\n var changedItems = [];\n\n for (var i = 0; i < initialItems.length; i++) {\n var item = this._getItemByAttribute(idAttribute,\n initialItems[i][idAttribute]);\n\n if (item.x !== initialItems[i].x ||\n item.y !== initialItems[i].y ||\n item.w !== initialItems[i].w ||\n item.h !== initialItems[i].h) {\n changedItems.push(item);\n }\n }\n\n return changedItems;\n },\n\n _sortItemsByPosition: function() {\n this.items.sort(function(item1, item2) {\n var position1 = this._getItemPosition(item1),\n position2 = this._getItemPosition(item2);\n\n // Try to preserve columns.\n if (position1.x != position2.x) {\n return position1.x - position2.x;\n }\n\n if (position1.y != position2.y) {\n return position1.y - position2.y;\n }\n\n // The items are placed on the same position.\n return 0;\n }.bind(this));\n },\n\n _adjustSizeOfItems: function() {\n /**\n * Some items can have 100% height or 100% width. Those dimmensions are\n * expressed as 0. We need to ensure a valid width and height for each of\n * those items as the number of items per lane.\n */\n\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i];\n\n // This can happen only the first time items are checked.\n // We need the property to have a value for all the items so that the\n // `cloneItems` method will merge the properties properly. If we only set\n // it to the items that need it then the following can happen:\n //\n // cloneItems([{id: 1, autoSize: true}, {id: 2}],\n // [{id: 2}, {id: 1, autoSize: true}]);\n //\n // will result in\n //\n // [{id: 1, autoSize: true}, {id: 2, autoSize: true}]\n if (item.autoSize === undefined) {\n item.autoSize = item.w === 0 || item.h === 0;\n }\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 },\n\n _resetGrid: function() {\n this.grid = [];\n },\n\n _itemFitsAtPosition: function(item, newPosition) {\n /**\n * Check that an item wouldn't overlap with another one if placed at a\n * certain position within the grid\n */\n\n var position = this._getItemPosition(item),\n x, y, row;\n\n // No coordonate can be negative\n if (newPosition[0] < 0 || newPosition[1] < 0) {\n return false;\n }\n\n // Make sure the item isn't larger than the entire grid\n if (newPosition[1] + position.h > this._options.lanes) {\n return false;\n }\n\n // Make sure the position doesn't overlap with an already positioned\n // item.\n for (x = newPosition[0]; x < newPosition[0] + position.w; x++) {\n var col = this.grid[x];\n\n // Surely a column that hasn't even been created yet is available\n if (!col) {\n continue;\n }\n\n for (y = newPosition[1]; y < newPosition[1] + position.h; y++) {\n // Any space occupied by an item can continue to be occupied by the\n // same item.\n if (col[y] && col[y] !== item) {\n return false;\n }\n }\n }\n\n return true;\n },\n\n _updateItemPosition: function(item, position) {\n if (item.x !== null && item.y !== null) {\n this._deleteItemPositionFromGrid(item);\n }\n\n this._setItemPosition(item, position);\n\n this._markItemPositionToGrid(item);\n },\n\n _updateItemSize: function(item, width, height) {\n /**\n * @param {Object} item A reference to a grid item.\n * @param {Number} width The new width.\n * @param {Number} height The new height.\n */\n\n if (item.x !== null && item.y !== null) {\n this._deleteItemPositionFromGrid(item);\n }\n\n item.w = width;\n item.h = height;\n\n this._markItemPositionToGrid(item);\n },\n\n _markItemPositionToGrid: function(item) {\n /**\n * Mark the grid cells that are occupied by an item. This prevents items\n * from overlapping in the grid\n */\n\n var position = this._getItemPosition(item),\n x, y;\n\n // Ensure that the grid has enough columns to accomodate the current item.\n this._ensureColumns(position.x + position.w);\n\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 },\n\n _deleteItemPositionFromGrid: function(item) {\n var position = this._getItemPosition(item),\n x, y;\n\n for (x = position.x; x < position.x + position.w; x++) {\n // It can happen to try to remove an item from a position not generated\n // in the grid, probably when loading a persisted grid of items. No need\n // to create a column to be able to remove something from it, though\n if (!this.grid[x]) {\n continue;\n }\n\n for (y = position.y; y < position.y + position.h; y++) {\n // Don't clear the cell if it's been occupied by a different widget in\n // the meantime (e.g. when an item has been moved over this one, and\n // thus by continuing to clear this item's previous position you would\n // cancel the first item's move, leaving it without any position even)\n if (this.grid[x][y] == item) {\n this.grid[x][y] = null;\n }\n }\n }\n },\n\n _ensureColumns: function(N) {\n /**\n * Ensure that the grid has at least N columns available.\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 },\n\n _getItemsCollidingWithItem: function(item) {\n var collidingItems = [];\n for (var i = 0; i < this.items.length; i++) {\n if (item != this.items[i] &&\n this._itemsAreColliding(item, this.items[i])) {\n collidingItems.push(i);\n }\n }\n return collidingItems;\n },\n\n _itemsAreColliding: function(item1, item2) {\n var position1 = this._getItemPosition(item1),\n position2 = this._getItemPosition(item2);\n\n return !(position2.x >= position1.x + position1.w ||\n position2.x + position2.w <= position1.x ||\n position2.y >= position1.y + position1.h ||\n position2.y + position2.h <= position1.y);\n },\n\n _resolveCollisions: function(item) {\n if (!this._tryToResolveCollisionsLocally(item)) {\n this._pullItemsToLeft(item);\n }\n this._pullItemsToLeft();\n },\n\n _tryToResolveCollisionsLocally: function(item) {\n /**\n * Attempt to resolve the collisions after moving a an item over one or more\n * other items within the grid, by shifting the position of the colliding\n * items around the moving one. This might result in subsequent collisions,\n * in which case we will revert all position permutations. To be able to\n * revert to the initial item positions, we create a virtual grid in the\n * process\n */\n var collidingItems = this._getItemsCollidingWithItem(item);\n if (!collidingItems.length) {\n return true;\n }\n var _gridList = new GridList([], this._options),\n leftOfItem,\n rightOfItem,\n aboveOfItem,\n belowOfItem;\n\n GridList.cloneItems(this.items, _gridList.items);\n _gridList.generateGrid();\n\n for (var i = 0; i < collidingItems.length; i++) {\n var collidingItem = _gridList.items[collidingItems[i]],\n collidingPosition = this._getItemPosition(collidingItem);\n\n // We use a simple algorithm for moving items around when collisions occur:\n // In this prioritized order, we try to move a colliding item around the\n // moving one:\n // 1. to its left side\n // 2. above it\n // 3. under it\n // 4. to its right side\n var position = this._getItemPosition(item);\n\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\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 // Collisions failed, we must use the pullItemsToLeft method to arrange\n // the other items around this item with fixed position. This is our\n // plan B for when local collision resolving fails.\n return false;\n }\n }\n // If we reached this point it means we managed to resolve the collisions\n // from one single iteration, just by moving the colliding items around. So\n // we accept this scenario and marge the brached-out grid instance into the\n // original one\n GridList.cloneItems(_gridList.items, this.items);\n this.generateGrid();\n return true;\n },\n\n _pullItemsToLeft: function(fixedItem) {\n /**\n * Build the grid from scratch, by using the current item positions and\n * pulling them as much to the left as possible, removing as space between\n * them as possible.\n *\n * If a \"fixed item\" is provided, its position will be kept intact and the\n * rest of the items will be layed around it.\n */\n\n\n // Start a fresh grid with the fixed item already placed inside\n this._sortItemsByPosition();\n this._resetGrid();\n\n // Start the grid with the fixed item as the first positioned item\n if (fixedItem) {\n var fixedPosition = this._getItemPosition(fixedItem);\n this._updateItemPosition(fixedItem, [fixedPosition.x, fixedPosition.y]);\n }\n\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i],\n position = this._getItemPosition(item);\n\n // The fixed item keeps its exact position\n if (fixedItem && item == fixedItem) {\n continue;\n }\n\n var x = this._findLeftMostPositionForItem(item),\n newPosition = this.findPositionForItem(\n item, {x: x, y: 0}, position.y);\n\n this._updateItemPosition(item, newPosition);\n }\n },\n\n _findLeftMostPositionForItem: function(item) {\n /**\n * When pulling items to the left, we need to find the leftmost position for\n * an item, with two considerations in mind:\n * - preserving its current row\n * - preserving the previous horizontal order between items\n */\n\n var tail = 0,\n position = this._getItemPosition(item);\n\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\n if (!otherItem) {\n continue;\n }\n\n var otherPosition = this._getItemPosition(otherItem);\n\n if (this.items.indexOf(otherItem) < this.items.indexOf(item)) {\n tail = otherPosition.x + otherPosition.w;\n }\n }\n }\n\n return tail;\n },\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 }\n }\n return null;\n },\n\n _padNumber: function(nr, prefix) {\n // Currently works for 2-digit numbers (<100)\n return nr >= 10 ? nr : prefix + nr;\n },\n\n _getItemPosition: function(item) {\n /**\n * If the direction is vertical we need to rotate the grid 90 deg to the\n * left. Thus, we simulate the fact that items are being pulled to the top.\n *\n * Since the items have widths and heights, if we apply the classic\n * counter-clockwise 90 deg rotation\n *\n * [0 -1]\n * [1 0]\n *\n * then the top left point of an item will become the bottom left point of\n * the rotated item. To adjust for this, we need to subtract from the y\n * position the height of the original item - the width of the rotated item.\n *\n * However, if we do this then we'll reverse some actions: resizing the\n * width of an item will stretch the item to the left instead of to the\n * right; resizing an item that doesn't fit into the grid will push the\n * items around it instead of going on a new row, etc.\n *\n * We found it better to do a vertical flip of the grid after rotating it.\n * This restores the direction of the actions and greatly simplifies the\n * transformations.\n */\n\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 },\n\n _setItemPosition: function(item, position) {\n /**\n * See _getItemPosition.\n */\n\n if (this._options.direction === 'horizontal') {\n item.x = position[0];\n item.y = position[1];\n } else {\n // We're supposed to subtract the rotated item's height which is actually\n // the non-rotated item's width.\n item.x = position[1];\n item.y = position[0];\n }\n }\n};\n\nvar GridCol = function(lanes) {\n for (var i = 0; i < lanes; i++) {\n this.push(null);\n }\n};\n\n// Extend the Array prototype\nGridCol.prototype = [];\n\n// This module will have direct access to the GridList class\nreturn GridList;\n\n}));\n", "export const PKG_NAME = \"@hpcc-js/layout\";\nexport const PKG_VERSION = \"3.1.1\";\nexport const BUILD_VERSION = \"3.2.1\";\n", "import { HTMLWidget } from \"@hpcc-js/common\";\n\nimport \"../src/AbsoluteSurface.css\";\n\nexport class AbsoluteSurface extends HTMLWidget {\n constructor() {\n super();\n\n this._tag = \"div\";\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\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\n const widgets = element.selectAll(\"#\" + this._id + \" > .placeholder\").data(this.widget() ? [this.widget()] : [], function (d) { return d._id; });\n widgets.enter().append(\"div\")\n .attr(\"class\", \"placeholder\")\n .each(function (d) {\n d.target(this);\n })\n .merge(widgets)\n .style(\"left\", xPos + \"px\")\n .style(\"top\", yPos + \"px\")\n .style(\"width\", width + \"px\")\n .style(\"bottom\", height + \"px\")\n .each(function (d) {\n d\n .resize({ width, height })\n ;\n })\n ;\n widgets.exit().each(function (d) {\n d.target(null);\n }).remove();\n }\n\n exit(domNode, element) {\n if (this.widget()) {\n this.widget().target(null);\n }\n super.exit(domNode, element);\n }\n}\nAbsoluteSurface.prototype._class += \" layout_AbsoluteSurface\";\n\nexport interface AbsoluteSurface {\n units(): string;\n units(_: string): this;\n widgetX(): number;\n widgetX(_: number): this;\n widgetY(): number;\n widgetY(_: number): this;\n widgetWidth(): string;\n widgetWidth(_: string): this;\n widgetHeight(): string;\n widgetHeight(_: string): this;\n widget(): any;\n widget(_: any): this;\n opacity(): number;\n opacity(_: number): this;\n}\n\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\");\n", "(function(){\n if (!document.getElementById('e4246716')) {\n var e = document.createElement('style');\n e.id = 'e4246716';\n e.textContent = `.layout_AbsoluteSurface {\n pointer-events: none !important;\n}\n\n.layout_AbsoluteSurface > .placeholder {\n position: relative;\n overflow: hidden;\n pointer-events: all;\n}\n`;\n document.head.appendChild(e);\n }\n })();", "import { FAChar, HTMLWidget } from \"@hpcc-js/common\";\n\nimport \"../src/Accordion.css\";\n\nexport class Accordion extends HTMLWidget {\n protected _isClosed: boolean;\n titleSpan;\n iconDiv;\n ul;\n icon;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n this._isClosed = false;\n }\n\n pushListItem(widget, prepend: boolean = false, protect: boolean = false) {\n const contentArr = this.content();\n\n widget._protected = protect;\n\n if (prepend) {\n contentArr.unshift(widget);\n } else {\n contentArr.push(widget);\n }\n this.content(contentArr);\n return this;\n }\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\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\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\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\n this.icon = new FAChar()\n .size({ height: 24, width: 24 })\n .target(this.iconDiv.node());\n\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\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()\n .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 ;\n rows.exit().remove();\n\n this.icon\n .text_colorFill(this.titleFontColor())\n .char(this._isClosed ? this.closedIcon() : this.openIcon()).render()\n ;\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n}\nAccordion.prototype._class += \" layout_Accordion\";\n\nexport interface Accordion {\n content(): any[];\n content(_: any[]): this;\n title(): string;\n title(_: string): this;\n openIcon(): string;\n openIcon(_: string): this;\n closedIcon(): string;\n closedIcon(_: string): this;\n titleFontColor(): string;\n titleFontColor(_: string): this;\n titleBackgroundColor(): string;\n titleBackgroundColor(_: string): this;\n\n defaultCollapsed(): boolean;\n defaultCollapsed(_: boolean): this;\n}\n\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\", \"\\uf147\", \"string\", \"Icon to display when list is open\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"closedIcon\", \"\\uf196\", \"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\"] });\n\nAccordion.prototype.publish(\"defaultCollapsed\", false, \"boolean\", \"Collapsed by default if true\", null, { tags: [\"Private\"] });\n", "(function(){\n if (!document.getElementById('d5b8185a')) {\n var e = document.createElement('style');\n e.id = 'd5b8185a';\n e.textContent = `.layout_Accordion > ul{\n position:relative;\n}\n.layout_Accordion.open > span {\n font-style:italic;\n}\n.layout_Accordion.closed > ul {\n height: 0px;\n overflow: hidden;\n}\n.layout_Accordion.open > ul{\n display:block;\n}\n.layout_Accordion > .collapsible-icon,\n.layout_Accordion > .collapsible-title{\n cursor:pointer;\n box-sizing: border-box;\n}\n.layout_Accordion > .collapsible-title{\n display:block;\n width:100%;\n}\n.layout_Accordion > .collapsible-title{\n font-size: 13px;\n color:#FFF;\n padding:4px 8px;\n height:26px;\n -webkit-box-shadow: inset 0px -1px 1px 0px rgba(0,0,0,0.2);\n -moz-box-shadow: inset 0px -1px 1px 0px rgba(0,0,0,0.2);\n box-shadow: inset 0px -1px 1px 0px rgba(0,0,0,0.2);\n}\n.layout_Accordion li{ \n background-color:#FFFFFF; \n}\n.layout_Accordion > ul, \n.layout_Accordion > .collapsible-title{ \n background-color:#333; \n}\n.layout_Accordion .layout_Accordion > ul, \n.layout_Accordion .layout_Accordion > .collapsible-title{ \n background-color:#555; \n}\n.layout_Accordion .layout_Accordion .layout_Accordion > ul, \n.layout_Accordion .layout_Accordion .layout_Accordion > .collapsible-title{ \n background-color:#777; \n}\n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > ul, \n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > .collapsible-title{ \n background-color:#999; \n}\n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > ul, \n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > .collapsible-title{ \n background-color:#BBB; \n}\n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > ul, \n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > .collapsible-title{ \n background-color:#CCC; \n}\n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > ul, \n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > .collapsible-title{ \n background-color:#DDD; \n}\n.layout_Accordion > ul, \n.layout_Accordion > span{ \n padding-left:0px;\n}\n.layout_Accordion .layout_Accordion > ul, \n.layout_Accordion .layout_Accordion > span{ \n padding-left: 12px;\n}\n\n.layout_Accordion > .collapsible-title:before{\n padding: 4px 8px 4px 8px;\n position: absolute;\n left: 0;\n top: 0;\n}\n.layout_Accordion > .collapsible-icon{\n position:absolute;\n top:0px;\n right:0px;\n width:24px;\n height:24px;\n color:#FFF;\n}`;\n document.head.appendChild(e);\n }\n })();", "import { d3Event, HTMLWidget, Platform, select as d3Select, selectAll as d3SelectAll, Utility } from \"@hpcc-js/common\";\nimport { drag as d3Drag } from \"d3-drag\";\nimport { Cell } from \"./Cell.ts\";\n\nimport \"../src/Border.css\";\n\nexport class Border extends HTMLWidget {\n _colCount: number;\n _rowCount: number;\n _colSize: number;\n _rowSize: number;\n _shrinkWrapBoxes;\n _watch;\n _offsetX;\n _offsetY;\n _dragCell;\n _dragCellSize;\n _dragCellStartSize;\n _handleTop;\n _handleLeft;\n _dragPrevX;\n _dragPrevY;\n _cellSizes;\n contentDiv;\n _scrollBarWidth;\n _borderHandles;\n _sectionTypeArr;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n\n this._colCount = 0;\n this._rowCount = 0;\n this._colSize = 0;\n this._rowSize = 0;\n\n this._shrinkWrapBoxes = {};\n\n this.content([]);\n this.sectionTypes([]);\n }\n\n watchWidget(widget) {\n if (this._watch === undefined) {\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\n lazyPostUpdate = Utility.debounce(function () {\n this.postUpdate();\n }, 100);\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\": return [\"s\"];\n case \"right\": return [\"w\"];\n case \"bottom\": return [\"n\"];\n case \"left\": return [\"e\"];\n case \"center\": return [];\n }\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\n const bcRect = this.target().getBoundingClientRect();\n const gridRect: any = {};\n gridRect.top = bcRect.top;\n gridRect.left = bcRect.left;\n gridRect.bottom = bcRect.bottom;\n gridRect.right = bcRect.right;\n if (this.target() instanceof SVGElement) {\n gridRect.width = parseFloat(this.target().getAttribute(\"width\"));\n gridRect.height = parseFloat(this.target().getAttribute(\"height\"));\n } else {\n gridRect.width = bcRect.width;\n gridRect.height = 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\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 c = _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\"] = c;\n return retObj;\n\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 }\n\n clearContent(sectionType) {\n if (!sectionType) {\n this.content().forEach(function (contentWidget) {\n contentWidget.target(null);\n return false;\n });\n d3Select(\"#\" + this.id() + \" > div.borderHandle\")\n .classed(\"borderHandleDisabled\", true)\n ;\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 d3Select(\"#\" + this.id() + \" > div.borderHandle_\" + sectionType)\n .classed(\"borderHandleDisabled\", true)\n ;\n this.content().splice(idx, 1);\n this.sectionTypes().splice(idx, 1);\n }\n }\n }\n\n hasContent(sectionType, widget, title) {\n return this.sectionTypes().indexOf(sectionType) >= 0;\n }\n\n setContent(sectionType, widget, title?) {\n this.clearContent(sectionType);\n title = typeof (title) !== \"undefined\" ? title : \"\";\n if (widget) {\n const cell = new Cell()\n .surfaceBorderWidth(0)\n .widget(widget)\n .title(title)\n ;\n this.watchWidget(widget);\n this.content().push(cell);\n this.sectionTypes().push(sectionType);\n }\n return this;\n }\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\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\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\n dragStart(handle) {\n const event = d3Event();\n event.sourceEvent.stopPropagation();\n const context = this;\n\n this._dragCell = handle;\n this._dragCellStartSize = this[handle + \"Size\"]();\n\n if (this[handle + \"ShrinkWrap\"]()) {\n this[handle + \"Percentage\"](0);\n this[handle + \"ShrinkWrap\"](false);\n }\n\n const handleElm = d3Select(\"#\" + 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\n this._dragPrevX = event.sourceEvent.clientX;\n this._dragPrevY = event.sourceEvent.clientY;\n }\n dragTick(handle) {\n const context = this;\n\n const event = d3Event();\n const xDelta = this._dragPrevX - event.sourceEvent.clientX;\n const yDelta = this._dragPrevY - event.sourceEvent.clientY;\n\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\n function _moveHandles(handle2, delta) {\n if (delta === 0) return;\n const handles = d3SelectAll(\"#\" + context.id() + \" > div.borderHandle\");\n const grabbedHandle = d3Select(\"#\" + context.id() + \" > div.borderHandle_\" + handle2);\n\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\n handles.each(function () {\n const handle3 = d3Select(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 }\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\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\n this._dragPrevX = event.sourceEvent.clientX;\n this._dragPrevY = event.sourceEvent.clientY;\n }\n this.render();\n }\n\n size(_?) {\n const retVal = HTMLWidget.prototype.size.apply(this, arguments);\n if (arguments.length && this.contentDiv) {\n this.contentDiv\n .style(\"width\", this._size.width + \"px\")\n .style(\"height\", this._size.height + \"px\")\n ;\n }\n return retVal;\n }\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\n const handles = element.selectAll(\"div.borderHandle\").data(this._borderHandles);\n handles.enter().append(\"div\")\n .classed(\"borderHandle\", true)\n .each(function (handle) {\n const h = d3Select(this);\n h.classed(\"borderHandle_\" + handle, true)\n .classed(\"borderHandleDisabled\", context.getContent(handle) === null)\n ;\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._sectionTypeArr = this.sectionTypes();\n const context = this;\n\n element.classed(\"design-mode\", this.designMode());\n\n this.setLayoutOffsets();\n\n const rows = this.contentDiv.selectAll(\".cell_\" + this._id).data(this.content(), function (d) { return d._id; });\n const rowsUpdate = rows.enter().append(\"div\")\n .classed(\"cell_\" + this._id, true)\n .style(\"position\", \"absolute\")\n .each(function (d, i) {\n d3Select(this).classed(\"border-cell border-cell-\" + context._sectionTypeArr[i], true);\n d.target(this);\n d3Select(\"#\" + context.id() + \" > div.borderHandle_\" + context._sectionTypeArr[i])\n .classed(\"borderHandleDisabled\", false);\n }).merge(rows);\n rowsUpdate\n .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\n const drag = d3Drag()\n .on(\"start\", function (d, i) { context.dragStart.call(context, d, i); })\n .on(\"drag\", function (d, i) { context.dragTick.call(context, d, i); })\n .on(\"end\", function (d, i) { context.dragEnd.call(context, d, i); })\n ;\n if (this.designMode()) {\n element.selectAll(\"#\" + this.id() + \" > div.borderHandle\").call(drag);\n } else {\n element.selectAll(\"#\" + this.id() + \" > div.borderHandle\").on(\".drag\", null);\n }\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\n rowsUpdate\n .style(\"left\", function (d) { return d._fixedLeft + \"px\"; })\n .style(\"top\", function (d) { return d._fixedTop + \"px\"; })\n .style(\"width\", function (d) { return d._fixedWidth - context.gutter() + \"px\"; })\n .style(\"height\", function (d) { return d._fixedHeight - context.gutter() + \"px\"; })\n .each(function (d) {\n d._placeholderElement\n .attr(\"draggable\", context.designMode())\n .selectAll(\".dragHandle\")\n .attr(\"draggable\", context.designMode())\n ;\n d\n .surfacePadding(context.surfacePadding())\n .resize()\n ;\n });\n rows.exit().each(function (d) {\n d.target(null);\n }).remove();\n\n this.getCellSizes();\n\n element\n .selectAll(\"#\" + this.id() + \" > div.borderHandle\")\n .each(function () {\n const handle = d3Select(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 ;\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()\n .selectAll(\"#\" + this.id() + \" > div > div.border-cell\")\n .each(function () {\n const cell = d3Select(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] === undefined ? 0 : context._cellSizes[size];\n });\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\n exit(domNode, element) {\n this.content().forEach(w => w.target(null));\n super.exit(domNode, element);\n }\n}\nBorder.prototype._class += \" layout_Border\";\n\nexport interface Border {\n designMode(): boolean;\n designMode(_: boolean): this;\n\n content(): any[];\n content(_: any[]): this;\n\n gutter(): number;\n gutter(_: number): this;\n\n topShrinkWrap(): boolean;\n topShrinkWrap(_: boolean): this;\n leftShrinkWrap(): boolean;\n leftShrinkWrap(_: boolean): this;\n rightShrinkWrap(): boolean;\n rightShrinkWrap(_: boolean): this;\n bottomShrinkWrap(): boolean;\n bottomShrinkWrap(_: boolean): this;\n\n topSize(): number;\n topSize(_: number): this;\n leftSize(): number;\n leftSize(_: number): this;\n rightSize(): number;\n rightSize(_: number): this;\n bottomSize(): number;\n bottomSize(_: number): this;\n\n topPercentage(): number;\n topPercentage(_: number): this;\n leftPercentage(): number;\n leftPercentage(_: number): this;\n rightPercentage(): number;\n rightPercentage(_: number): this;\n bottomPercentage(): number;\n bottomPercentage(_: number): this;\n\n surfacePadding(): number;\n surfacePadding(_: number): this;\n\n sectionTypes(): any[];\n sectionTypes(_: any[]): this;\n}\n\nBorder.prototype.publish(\"designMode\", false, \"boolean\", \"Design Mode\", null, { tags: [\"Basic\"] });\n\nBorder.prototype.publish(\"content\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Intermediate\"] });\n\nBorder.prototype.publish(\"gutter\", 0, \"number\", \"Gap Between Widgets\", null, { tags: [\"Basic\"] });\n\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\"] });\n\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\"] });\n\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\"] });\n\nBorder.prototype.publish(\"surfacePadding\", 0, \"number\", \"Cell Padding (px)\", null, { tags: [\"Intermediate\"] });\n\nBorder.prototype.publish(\"sectionTypes\", [], \"array\", \"Section Types sharing an index with 'content' - Used to determine position/size.\", null, { tags: [\"Private\"] });\n", "import { Widget } from \"@hpcc-js/common\";\nimport { select as d3Select, selectAll as d3SelectAll } from \"d3-selection\";\nimport { Surface } from \"./Surface.ts\";\n\nimport \"../src/Cell.css\";\n\nexport class Cell extends Surface {\n _indicateTheseIds;\n\n constructor() {\n super();\n this._indicateTheseIds = [];\n }\n\n indicateTheseIds(): any[];\n indicateTheseIds(_: any[]): Cell;\n indicateTheseIds(_?: any[]): any[] | Cell {\n if (!arguments.length) return this._indicateTheseIds;\n this._indicateTheseIds = _;\n return this;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n element\n .classed(\"layout_Surface\", true)\n .on(\"mouseenter\", function () { context.onMouseEnter(); })\n .on(\"mouseleave\", function () { context.onMouseLeave(); })\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n }\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 = d3Select(\"#\" + arr[i]);\n const otherWidget: Widget = otherElement.datum() as Widget;\n if (otherElement && otherWidget) {\n otherElement.append(\"div\")\n .attr(\"class\", \"update-indicator\")\n .style(\"width\", otherWidget.width() + \"px\")\n .style(\"height\", otherWidget.height() + \"px\")\n .style(\"opacity\", opacity)\n .style(\"border-color\", indicatorBorderColor)\n .style(\"-webkit-box-shadow\", \"inset 0px 0px 30px 0px \" + indicatorGlowColor)\n .style(\"-moz-box-shadow\", \"inset 0px 0px 30px 0px \" + indicatorGlowColor)\n .style(\"box-shadow\", \"inset 0px 0px 30px 0px \" + indicatorGlowColor)\n ;\n }\n }\n }\n\n onMouseLeave() {\n const arr = this.indicateTheseIds();\n for (let i = 0; i < arr.length; i++) {\n d3SelectAll(\"#\" + arr[i] + \" > div.update-indicator\").remove();\n }\n }\n}\nCell.prototype._class += \" layout_Cell\";\n\nexport interface Cell {\n gridRow(): number;\n gridRow(_: number): this;\n gridCol(): number;\n gridCol(_: number): this;\n gridRowSpan(): number;\n gridRowSpan(_: number): this;\n gridColSpan(): number;\n gridColSpan(_: number): this;\n\n indicatorGlowColor(): string;\n indicatorGlowColor(_: string): this;\n indicatorBorderColor(): string;\n indicatorBorderColor(_: string): this;\n indicatorOpacity(): number;\n indicatorOpacity(_: number): this;\n}\n\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\"] });\n\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\"] });\n", "import { HTMLWidget, Widget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/Surface.css\";\n\nexport class Surface extends HTMLWidget {\n _surfaceButtons;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n this._surfaceButtons = [];\n }\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\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n update(domNode, element2) {\n super.update(domNode, element2);\n const context = this;\n\n element2\n .classed(\"shadow2\", this.surfaceShadow())\n .style(\"border-width\", this.surfaceBorderWidth_exists() ? this.surfaceBorderWidth() + \"px\" : null)\n .style(\"border-color\", this.surfaceBorderColor())\n .style(\"border-radius\", this.surfaceBorderRadius_exists() ? this.surfaceBorderRadius() + \"px\" : null)\n .style(\"background-color\", this.surfaceBackgroundColor())\n ;\n\n const titles = element2.selectAll(\".surfaceTitle\").data(this.title() ? [this.title()] : []);\n titles.enter().insert(\"h3\", \"div\")\n .attr(\"class\", \"surfaceTitle\")\n .merge(titles)\n .text(function (d) { return d; })\n .style(\"text-align\", this.surfaceTitleAlignment())\n .style(\"color\", this.surfaceTitleFontColor())\n .style(\"font-size\", this.surfaceTitleFontSize_exists() ? this.surfaceTitleFontSize() + \"px\" : null)\n .style(\"font-family\", this.surfaceTitleFontFamily())\n .style(\"font-weight\", this.surfaceTitleFontBold() ? \"bold\" : \"normal\")\n .style(\"background-color\", this.surfaceTitleBackgroundColor())\n .style(\"padding\", this.surfaceTitlePadding_exists() ? this.surfaceTitlePadding() + \"px\" : null)\n .style(\"title\", this.altText_exists() ? this.altText() : null)\n ;\n titles.exit().remove();\n\n const surfaceTitle = element2.select(\".surfaceTitle\");\n\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)\n .each(function (button, idx) {\n const el = context._surfaceButtons[idx] = d3Select(this)\n .attr(\"class\", \"surface-button\" + (button.class ? \" \" + button.class : \"\"))\n .attr(\"id\", button.id)\n .style(\"padding\", button.padding)\n .style(\"width\", button.width)\n .style(\"height\", button.height)\n .style(\"cursor\", \"pointer\");\n if (button.font === \"FontAwesome\") {\n el\n .style(\"background\", \"transparent\")\n .style(\"border\", \"none\")\n .on(\"click\", function (d) { context.click(d); })\n .append(\"i\")\n .attr(\"class\", \"fa\")\n .text(function () { return button.label; });\n } else {\n el\n .text(function () { return button.label; })\n .on(\"click\", function (d) { context.click(d); });\n }\n })\n ;\n surfaceButtons.exit()\n .each(function (_d, idx) {\n const element = d3Select(this);\n delete context._surfaceButtons[idx];\n element.remove();\n })\n ;\n const widgets = element2.selectAll(\"#\" + this._id + \" > .surfaceWidget\").data(this.widget() ? [this.widget()] : [], function (d) { return d._id; });\n\n widgets.enter().append(\"div\")\n .attr(\"class\", \"surfaceWidget\")\n .each(function (d) {\n d3Select(context.element().node().parentElement).classed(\"content-icon content-icon-\" + (d.classID().split(\"_\")[1]), true);\n d.target(this);\n })\n .merge(widgets)\n .style(\"padding\", this.surfacePadding_exists() ? this.surfacePadding() + \"px\" : null)\n .each(function (d) {\n const widgetSize = context.widgetSize(element2.select(\"h3\"), d3Select(this));\n if (widgetSize.width < 0) widgetSize.width = 0;\n if (widgetSize.height < 0) widgetSize.height = 0;\n d\n .resize({ width: widgetSize.width, height: widgetSize.height })\n ;\n })\n ;\n widgets.exit().each(function (d) {\n d.target(null);\n }).remove();\n }\n\n exit(domNode, element) {\n if (this.widget()) {\n this.widget().target(null);\n }\n super.exit(domNode, element);\n }\n\n // Events ---\n click(obj) {\n }\n}\nSurface.prototype._class += \" layout_Surface\";\n\nexport interface Surface {\n /* \n title: { (): string; (_: string): Surface; };\n altText: { (): string; (_: string): Surface; };\n altText_exists: () => boolean;\n surfaceTitlePadding: { (): number; (_: number): Surface; };\n surfaceTitlePadding_exists: () => boolean;\n surfaceTitleFontSize: { (): number; (_: number): Surface; };\n surfaceTitleFontSize_exists: () => boolean;\n surfaceTitleFontColor: { (): string; (_: string): Surface; };\n surfaceTitleFontFamily: { (): string; (_: string): Surface; };\n surfaceTitleFontBold: { (): boolean; (_: boolean): Surface; };\n surfaceTitleBackgroundColor: { (): string; (_: string): Surface; };\n surfaceTitleAlignment: { (): string; (_: string): Surface; };\n\n surfaceShadow: { (): boolean; (_: boolean): Surface; };\n surfacePadding: { (): string; (_: string): Surface; };\n surfacePadding_exists: () => boolean;\n surfaceBackgroundColor: { (): string; (_: string): Surface; };\n surfaceBorderWidth: { (): number; (_: number): Surface; };\n surfaceBorderWidth_exists: () => boolean;\n surfaceBorderColor: { (): string; (_: string): Surface; };\n surfaceBorderRadius: { (): number; (_: number): Surface; };\n surfaceBorderRadius_exists: () => boolean;\n\n buttonAnnotations: { (): any[]; (_: any[]): Surface; };\n\n widget: { (): Widget; (_: Widget): Surface; };\n */\n title(): string;\n title(_: string): this;\n altText(): string;\n altText(_: string): this;\n altText_exists(): boolean;\n surfaceTitlePadding(): number;\n surfaceTitlePadding(_: number): this;\n surfaceTitlePadding_exists(): boolean;\n surfaceTitleFontSize(): number;\n surfaceTitleFontSize(_: number): this;\n surfaceTitleFontSize_exists(): boolean;\n surfaceTitleFontColor(): string;\n surfaceTitleFontColor(_: string): this;\n surfaceTitleFontFamily(): string;\n surfaceTitleFontFamily(_: string): this;\n surfaceTitleFontBold(): boolean;\n surfaceTitleFontBold(_: boolean): this;\n surfaceTitleBackgroundColor(): string;\n surfaceTitleBackgroundColor(_: string): this;\n surfaceTitleAlignment(): string;\n surfaceTitleAlignment(_: string): this;\n\n surfaceShadow(): boolean;\n surfaceShadow(_: boolean): this;\n surfacePadding(): string;\n surfacePadding(_: string): this;\n surfacePadding_exists(): boolean;\n surfaceBackgroundColor(): string;\n surfaceBackgroundColor(_: string): this;\n surfaceBorderWidth(): number;\n surfaceBorderWidth(_: number): this;\n surfaceBorderWidth_exists(): boolean;\n surfaceBorderColor(): string;\n surfaceBorderColor(_: string): this;\n surfaceBorderRadius(): number;\n surfaceBorderRadius(_: number): this;\n surfaceBorderRadius_exists(): boolean;\n\n buttonAnnotations(): any[];\n buttonAnnotations(_: any[]): this;\n\n widget(): Widget;\n widget(_: Widget): this;\n}\n\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: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontSize\", null, \"number\", \"Title Font Size (px)\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontColor\", null, \"html-color\", \"Title Font Color\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontFamily\", null, \"string\", \"Title Font Family\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontBold\", true, \"boolean\", \"Enable Bold Title Font\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleBackgroundColor\", null, \"html-color\", \"Title Background Color\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleAlignment\", \"center\", \"set\", \"Title Alignment\", [\"left\", \"right\", \"center\"], { tags: [\"Basic\"], disable: (w: any) => !w.title() });\n\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\"] });\n\nSurface.prototype.publish(\"buttonAnnotations\", [], \"array\", \"Button Array\", null, { tags: [\"Private\"] });\n\nSurface.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Basic\"] });\n", "(function(){\n if (!document.getElementById('41033346')) {\n var e = document.createElement('style');\n e.id = '41033346';\n e.textContent = `.layout_Surface {\n box-sizing: border-box;\n margin: 0px;\n border: 1px solid #e5e5e5;\n overflow:hidden;\n height: 100%;\n width: 100%;\n}\n\n.layout_Surface.shadow2 {\n box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)\n}\n\n.layout_Surface > h3 {\n margin: 0px;\n padding: 2px;\n background-color: #e5e5e5;\n}\n.layout_Surface .html-button-container {\n position: absolute;\n right: 0px;\n top:3px;\n}\n\n.layout_Surface > div {\n padding: 8px;\n}\n\n.layout_Surface .html-button-container .surface-button {\n margin-right: 5px;\n}\n.layout_Surface .html-button-container .surface-button i {\n opacity: 0.8;\n}\n\n.layout_Surface .html-button-container .surface-button:hover { opacity: 1; }\n.layout_Surface .html-button-container .surface-button:active { opacity: 0.5; }\n\ndiv[draggable=true].hideDragCellContent.content-icon:before{\n content: \"\\f080\";\n font-family: FontAwesome;\n position: absolute;\n top: calc(50% - 74px);\n left: calc(50% - 56px);\n font-size: 100px;\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Line:before{\n content:\"\\f201\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Pie:before{\n top: calc(50% - 72px);\n left: calc(50% - 45px);\n content:\"\\f200\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Area:before{\n content:\"\\f1fe\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Gauge:before{\n content:\"\\f0e4\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Table:before{\n content:\"\\f0ce\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Form:before{\n content:\"\\f11c\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Grid:before,\ndiv[draggable=true].hideDragCellContent.content-icon-Graph:before,\ndiv[draggable=true].hideDragCellContent.content-icon-Border:before,\ndiv[draggable=true].hideDragCellContent.content-icon-Tabbed:before,\ndiv[draggable=true].hideDragCellContent.content-icon-Accordion:before,\ndiv[draggable=true].hideDragCellContent.content-icon-MultiChart:before,\ndiv[draggable=true].hideDragCellContent.content-icon-MultiChartSurface:before{\n content:\"\\f247\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-ChoroplethStates:before,\ndiv[draggable=true].hideDragCellContent.content-icon-ChoroplethStatesHeat:before,\ndiv[draggable=true].hideDragCellContent.content-icon-ChoroplethCounties:before,\ndiv[draggable=true].hideDragCellContent.content-icon-ChoroplethCountries:before,\ndiv[draggable=true].hideDragCellContent.content-icon-GMap:before,\ndiv[draggable=true].hideDragCellContent.content-icon-GMapHeat:before,\ndiv[draggable=true].hideDragCellContent.content-icon-GMapGraph:before{\n content:\"\\f278\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Text:before,\ndiv[draggable=true].hideDragCellContent.content-icon-TextBox:before,\ndiv[draggable=true].hideDragCellContent.content-icon-FAChar:before{\n content:\"\\f278\";\n}\n`;\n document.head.appendChild(e);\n }\n })();", "(function(){\n if (!document.getElementById('bc383397')) {\n var e = document.createElement('style');\n e.id = 'bc383397';\n e.textContent = `.layout_Cell .update-indicator {\n box-sizing: border-box;\n position: absolute;\n top: 0px;\n left: 0px;\n padding: 0px;\n z-index: 1000;\n border-width: 0px;\n border-style: solid;\n pointer-events: none;\n}\n`;\n document.head.appendChild(e);\n }\n })();", "(function(){\n if (!document.getElementById('df37b09f')) {\n var e = document.createElement('style');\n e.id = 'df37b09f';\n e.textContent = `.layout_Border{\n width: 100%;\n height: 100%;\n}\n.layout_Border > .border-content{\n width: 100%;\n height: 100%;\n position:relative;\n}\n.layout_Border > .borderHandle{\n width: 6px;\n height: 6px;\n background-color: #444;\n opacity: 0.3;\n position:absolute;\n visibility:hidden;\n}\n.layout_Border.design-mode > .borderHandle{\n visibility:visible;\n}\n.layout_Border > .borderHandle:hover{\n background-color: #666;\n}\n.layout_Border > .borderHandle.borderHandleDisabled{\n display:none;\n}\n.layout_Border > .borderHandle_top,\n.layout_Border > .borderHandle_bottom\n{\n cursor:ns-resize;\n}\n.layout_Border > .borderHandle_left,\n.layout_Border > .borderHandle_right\n{\n cursor:ew-resize;\n}\n.layout_Border .cell {\n border-radius: 5px;\n border: 1px solid #e5e5e5;\n display: inline-block;\n overflow: hidden;\n}\n\n.layout_Border .cell h2 {\n margin: 0px;\n padding-top: 4px;\n -webkit-margin: 0px;\n text-align: center;\n}\n\n.layout_Border .layout_BorderCell.over {\n border: 2px dashed #000;\n}\n.layout_Border .dragItem { \n z-index: -1;\n opacity:0.33;\n}\n\n.layout_Border .notDragItem { \n z-index: -1;\n opacity: 1;\n}\n.layout_Border div[draggable=true] { \n opacity: 0.75;\n cursor: default;\n}\n\n.layout_Border div[draggable=true] .dragHandle {\n opacity: 1.0;\n}\n\n.layout_Border div[draggable=true] .dragHandle_n,\n.layout_Border div[draggable=true] .dragHandle_e,\n.layout_Border div[draggable=true] .dragHandle_s,\n.layout_Border div[draggable=true] .dragHandle_w{\n background-color:#AAA;\n}\n\n.layout_Border div[draggable=true] .dragHandle_nw,\n.layout_Border div[draggable=true] .dragHandle_ne,\n.layout_Border div[draggable=true] .dragHandle_se,\n.layout_Border div[draggable=true] .dragHandle_sw { \n background-color:#333;\n}\n\n.layout_Border div[draggable=true] .dragHandle_nw { \n cursor:nw-resize;\n}\n\n.layout_Border div[draggable=true] .dragHandle_n { \n cursor:n-resize;\n}\n\n.layout_Border div[draggable=true] .dragHandle_ne { \n cursor:ne-resize;\n}\n\n.layout_Border div[draggable=true] .dragHandle_e { \n cursor:e-resize;\n}\n\n.layout_Border div[draggable=true] .dragHandle_se { \n cursor:se-resize;\n}\n\n.layout_Border div[draggable=true] .dragHandle_s { \n cursor:s-resize;\n}\n\n.layout_Border div[draggable=true] .dragHandle_sw { \n cursor:sw-resize;\n}\n\n.layout_Border div[draggable=true] .dragHandle_w { \n cursor:w-resize;\n}\n\n.layout_Border div[draggable=false] > div > .dragHandle {\n display:none;\n}\n\n.layout_Border .grid-drop-target{\n position:fixed;\n box-sizing:border-box;\n border:2px dashed #7f8c8d;\n border-radius:0px;\n background: repeating-linear-gradient(\n -45deg,\n rgba(0, 0, 0, 0),\n rgba(0, 0, 0, 0) 4px,\n rgba(100, 100, 100, 0.1) 4px,\n rgba(100, 100, 100, 0.1) 8px\n );\n}\n\n.layout_Border .grid-drop-target.drop-target-over{\n border:2px dashed #179BD7;\n background: repeating-linear-gradient(\n -45deg,\n rgba(0, 0, 0, 0),\n rgba(0, 0, 0, 0) 6px,\n rgba(17, 155, 215, 0.1) 6px,\n rgba(17, 155, 215, 0.1) 12px\n );\n}`;\n document.head.appendChild(e);\n }\n })();", "import { BBox, HTMLWidget, Platform, Widget } from \"@hpcc-js/common\";\n\nimport \"../src/Border2.css\";\n\nexport type OverflowT = \"hidden\" | \"scroll\" | \"visible\" | \"auto\";\nexport type ChartPanelSectionT = \"top\" | \"right\" | \"bottom\" | \"left\" | \"center\";\nexport class WidgetDiv {\n private _div;\n private _overlay: boolean = false;\n private _overflowX: OverflowT = \"visible\";\n private _overflowY: OverflowT = \"visible\";\n private _widget: Widget;\n\n constructor(div) {\n this._div = div;\n }\n\n overlay(): boolean;\n overlay(_: boolean): this;\n overlay(_?: boolean): boolean | this {\n if (!arguments.length) return this._overlay;\n this._overlay = _;\n return this;\n }\n\n overflowX(): OverflowT;\n overflowX(_: OverflowT): this;\n overflowX(_?: OverflowT): OverflowT | this {\n if (!arguments.length) return this._overflowX;\n this._overflowX = _;\n this._div.style(\"overflow-x\", _);\n return this;\n }\n overflowY(): OverflowT;\n overflowY(_: OverflowT): this;\n overflowY(_?: OverflowT): OverflowT | this {\n if (!arguments.length) return this._overflowY;\n this._overflowY = _;\n this._div.style(\"overflow-y\", _);\n return this;\n }\n\n element() {\n return this._div;\n }\n\n node(): SVGElement | HTMLElement {\n return this._div.node();\n }\n\n widget(): Widget;\n widget(_: Widget): this;\n widget(_?: Widget): Widget | this {\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\n resize(size: { width: number, height: number }) {\n if (this._widget) {\n this._div\n .style(\"width\", `${size.width}px`)\n .style(\"height\", `${size.height}px`)\n ;\n this._widget.resize(size);\n }\n return this;\n }\n\n async render(getBBox?, availableHeight?: number, availableWidth?: number): Promise<BBox | undefined> {\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\n .style(\"height\", this.overlay() ? \"0px\" : null)\n .style(\"overflow-x\", overflowX)\n .style(\"overflow-y\", overflowY)\n ;\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 !== undefined && retVal.height > availableHeight) {\n retVal.width += Platform.getScrollbarWidth();\n }\n if (availableWidth !== undefined && 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 } : undefined;\n });\n } else {\n return Promise.resolve(getBBox ? { x: 0, y: 0, width: 0, height: 0 } : undefined);\n }\n }\n}\n\nexport class Border2 extends HTMLWidget {\n\n protected _bodyElement;\n\n protected _topWA: WidgetDiv;\n protected _leftWA: WidgetDiv;\n protected _centerWA: WidgetDiv;\n protected _rightWA: WidgetDiv;\n protected _bottomWA: WidgetDiv;\n protected _topPrevOverflow: OverflowT;\n protected _leftPrevOverflow: OverflowT;\n protected _rightPrevOverflow: OverflowT;\n protected _bottomPrevOverflow: OverflowT;\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n \n const topElement = element.append(\"header\");\n\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\n const bottomElement = element.append(\"div\").attr(\"class\", \"footer\");\n\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\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()\n .style(\"width\", `${this.width()}px`)\n .style(\"height\", `${this.height()}px`)\n ;\n }\n\n private targetNull(w?: Widget) {\n if (w) {\n w.target(null);\n }\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\n swap(sectionA: ChartPanelSectionT, sectionB: ChartPanelSectionT): this {\n const a = this[sectionA]();\n const b = this[sectionB]();\n this.targetNull(a);\n this.targetNull(b);\n this[`_${sectionA}WA`].widget(null);\n this[`_${sectionB}WA`].widget(null);\n this[sectionA](b);\n this[sectionB](a);\n return this;\n }\n\n render(callback?: (w: Widget) => void): this {\n const retVal = super.render(w => {\n if (this._topWA) {\n this._topWA\n .widget(this.top())\n .overlay(this.topOverlay())\n .render(true).then(async topBBox => {\n const bottomBBox: BBox = await this._bottomWA.widget(this.bottom()).render(true, undefined, this.width()) as BBox;\n const availableHeight = this.height() - (topBBox.height + bottomBBox.height);\n const leftBBox: BBox = await this._leftWA.widget(this.left()).render(true, availableHeight) as BBox;\n const rightBBox: BBox = await this._rightWA.widget(this.right()).render(true, availableHeight) as BBox;\n \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 \n const centerOverflowX = this.centerOverflowX();\n const centerOverflowY = this.centerOverflowY();\n\n const scrollCenterX = [\"auto\", \"scroll\"].indexOf(centerOverflowX) !== -1;\n const scrollCenterY = [\"auto\", \"scroll\"].indexOf(centerOverflowY) !== -1;\n if(scrollCenterX || scrollCenterY) {\n this._centerWA\n .overflowX(this.centerOverflowX())\n .overflowY(this.centerOverflowY())\n .widget(this.center())\n .resize({\n width: bodyWidth,\n height: bodyHeight\n })\n .render()\n ;\n }\n this._bodyElement.style(\"height\", `${bodyHeight}px`);\n const promises = [\n this._topWA\n .overflowX(this.topOverflowX())\n .overflowY(this.topOverflowY())\n .resize({\n width: this.width(),\n height: topBBox.height\n })\n .render(),\n this._leftWA\n .overflowX(this.leftOverflowX())\n .overflowY(this.leftOverflowY())\n .resize({\n width: leftBBox.width,\n height: bodyHeight\n })\n .render(),\n this._rightWA\n .overflowX(this.rightOverflowX())\n .overflowY(this.rightOverflowY())\n .resize({\n width: rightBBox.width,\n height: bodyHeight\n })\n .render(),\n this._centerWA\n .overflowX(this.centerOverflowX())\n .overflowY(this.centerOverflowY())\n .widget(this.center())\n .resize({\n width: bodyWidth,\n height: bodyHeight\n })\n .render(),\n this._bottomWA\n .overflowX(this.bottomOverflowX())\n .overflowY(this.bottomOverflowY())\n .resize({\n width: this.width(),\n height: bottomBBox.height\n })\n .render()\n ];\n Promise.all(promises).then(promises => {\n if (callback) {\n callback(this);\n }\n });\n })\n ;\n } else {\n if (callback) {\n callback(this);\n }\n }\n });\n return retVal;\n }\n}\nBorder2.prototype._class += \" layout_Border2\";\n\nexport interface Border2 {\n top(): Widget;\n top(_: Widget): this;\n topOverlay(): boolean;\n topOverlay(_: boolean): this;\n left(): Widget;\n left(_: Widget): this;\n center(): Widget;\n center(_: Widget): this;\n right(): Widget;\n right(_: Widget): this;\n bottom(): Widget;\n bottom(_: Widget): this;\n bottomHeight(): number;\n bottomHeight(_: number): this;\n bottomHeight_exists(): boolean;\n topOverflowX(): OverflowT;\n topOverflowX(_: OverflowT): this;\n rightOverflowX(): OverflowT;\n rightOverflowX(_: OverflowT): this;\n bottomOverflowX(): OverflowT;\n bottomOverflowX(_: OverflowT): this;\n leftOverflowX(): OverflowT;\n leftOverflowX(_: OverflowT): this;\n centerOverflowX(): OverflowT;\n centerOverflowX(_: OverflowT): this;\n topOverflowY(): OverflowT;\n topOverflowY(_: OverflowT): this;\n rightOverflowY(): OverflowT;\n rightOverflowY(_: OverflowT): this;\n bottomOverflowY(): OverflowT;\n bottomOverflowY(_: OverflowT): this;\n leftOverflowY(): OverflowT;\n leftOverflowY(_: OverflowT): this;\n centerOverflowY(): OverflowT;\n centerOverflowY(_: OverflowT): this;\n showTop(): boolean;\n showTop(_: boolean): this;\n showRight(): boolean;\n showRight(_: boolean): this;\n showBottom(): boolean;\n showBottom(_: boolean): this;\n showLeft(): boolean;\n showLeft(_: boolean): this;\n topOverflowX_default(_: OverflowT);\n rightOverflowX_default(_: OverflowT);\n bottomOverflowX_default(_: OverflowT);\n leftOverflowX_default(_: OverflowT);\n centerOverflowX_default(_: OverflowT);\n topOverflowY_default(_: OverflowT);\n rightOverflowY_default(_: OverflowT);\n bottomOverflowY_default(_: OverflowT);\n leftOverflowY_default(_: OverflowT);\n centerOverflowY_default(_: OverflowT);\n}\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\", undefined, { render: false });\nBorder2.prototype.publish(\"topOverlay\", false, \"boolean\", \"Overlay Top Widget\");\nBorder2.prototype.publish(\"left\", null, \"widget\", \"Left Widget\", undefined, { render: false });\nBorder2.prototype.publish(\"center\", null, \"widget\", \"Center Widget\", undefined, { render: false });\nBorder2.prototype.publish(\"right\", null, \"widget\", \"Right Widget\", undefined, { render: false });\nBorder2.prototype.publish(\"bottom\", null, \"widget\", \"Bottom Widget\", undefined, { render: false });\nBorder2.prototype.publish(\"bottomHeight\", null, \"number\", \"Bottom Fixed Height\", undefined, { optional: true });\n", "(function(){\n if (!document.getElementById('23362289')) {\n var e = document.createElement('style');\n e.id = '23362289';\n e.textContent = `.layout_Border2 {\n display: flex;\n flex-direction: column;\n}\n.layout_Border2 > .body {\n margin: 0;\n padding: 0;\n display: flex;\n flex-flow: row;\n}\n\n.layout_Border2 > .body > .center {\n flex: 1;\n}\n\n.layout_Border2 > .header {\n display: block;\n}\n\n.layout_Border2 > .footer {\n display: block;\n}\n`;\n document.head.appendChild(e);\n }\n })();", "import { HTMLWidget, Widget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\nimport \"d3-transition\";\n\nimport \"../src/Carousel.css\";\n\nexport class Carousel extends HTMLWidget {\n\n protected _prevActive: number = 0;\n protected _root;\n\n activeWidget(): Widget {\n return this.widgets()[this.active()];\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._root = element.append(\"div\")\n .attr(\"id\", `${this.id()}_root`)\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const active = this.active();\n const width = this.width();\n this._root\n .style(\"width\", `${width}px`)\n .style(\"height\", `${this.height()}px`)\n ;\n const widgetElements = this._root.selectAll(`#${this.id()}_root > .carouselItem`).data(this.widgets(), d => d.id());\n const update = widgetElements.enter().append(\"div\")\n .attr(\"class\", \"carouselItem\")\n .each(function (w) {\n w.target(this);\n })\n .merge(widgetElements)\n .style(\"left\", (d, i) => `${(i - this._prevActive) * width}px`)\n .style(\"width\", `${width}px`)\n ;\n if (this._prevActive !== active) {\n update\n .style(\"display\", (d, i) => i === this._prevActive || i === active ? null : \"none\") // Must be called before render callback (not inside transition)\n .transition().duration(this.transitionDuration())\n .style(\"left\", (d, i) => `${(i - active) * width}px`)\n .on(\"end\", function (d, i) {\n d3Select(this).style(\"display\", () => i === active ? null : \"none\");\n })\n ;\n this._prevActive = active;\n }\n widgetElements.exit()\n .each(function (w) {\n w.target(null);\n })\n .remove()\n ;\n }\n\n exit(domNode, element) {\n this.widgets().forEach(w => w.target(null));\n super.exit(domNode, element);\n }\n\n render(callback): this {\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\n .resize(this.size())\n .render(w2 => {\n if (callback) {\n callback(w);\n }\n })\n ;\n }\n }\n });\n }\n}\nCarousel.prototype._class += \" layout_Carousel\";\n\nexport interface Carousel {\n widgets(): Widget[];\n widgets(_: Widget[]): this;\n active(): number;\n active(_: number): this;\n transitionDuration(): Widget[];\n transitionDuration(_: Widget[]): this;\n}\n\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\");\n", "(function(){\n if (!document.getElementById('17c1eb84')) {\n var e = document.createElement('style');\n e.id = '17c1eb84';\n e.textContent = `.layout_Carousel > div {\n position: relative;\n overflow: hidden;\n}\n\n.layout_Carousel > div > .carouselItem {\n position: absolute;\n}`;\n document.head.appendChild(e);\n }\n })();", "import { IHighlight } from \"@hpcc-js/api\";\nimport { Button, Database, IconBar, ProgressBar, Spacer, SVGWidget, Text, TitleBar, ToggleButton, Utility, Widget } from \"@hpcc-js/common\";\nimport type { XYAxis } from \"@hpcc-js/chart\";\nimport { Table } from \"@hpcc-js/dgrid2\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Border2 } from \"./Border2.ts\";\nimport { Carousel } from \"./Carousel.ts\";\nimport { Legend } from \"./Legend.ts\";\nimport { Modal } from \"./Modal.ts\";\n\nimport \"../src/ChartPanel.css\";\n\nexport class ChartPanel<T extends Widget = Widget> extends Border2 implements IHighlight {\n\n protected _legend = new Legend(this).enableOverflow(true);\n protected _progressBar = new ProgressBar();\n protected _autoScale = false;\n protected _resolutions = {\n tiny: { width: 100, height: 100 },\n small: { width: 300, height: 300 }\n };\n private _modal = new Modal();\n private _highlight: boolean;\n private _scale: number;\n private _orig_size: any;\n\n private _toggleInfo = new ToggleButton().faChar(\"fa-info-circle\").tooltip(\".Description\")\n .selected(false)\n .on(\"enabled\", () => {\n return this.description() !== \"\";\n })\n .on(\"click\", () => {\n if (this._toggleInfo.selected()) {\n this._modal\n .title(this.title())\n .widget(new Text().text(this.description()))\n .show(true)\n .render()\n ;\n\n const origCloseFunc = this._modal._close;\n this._modal._close = () => {\n this._toggleInfo\n .selected(false)\n .render()\n ;\n this._modal._close = origCloseFunc;\n };\n }\n })\n .on(\"mouseMove\", () => {\n /*\n this._modal.showPreview(true).render(n => {\n n.resize().render();\n });\n */\n })\n .on(\"mouseOut\", () => {\n /*\n if (this._modal.showPreview()) {\n this._modal.show(false).showPreview(false).render();\n }\n */\n });\n\n private _toggleData = new ToggleButton().faChar(\"fa-table\").tooltip(\"Data\")\n .on(\"click\", () => {\n this.dataVisible(this._toggleData.selected());\n this.render();\n });\n\n private _buttonDownload = new Button().faChar(\"fa-download\").tooltip(\"Download\")\n .on(\"click\", () => {\n this.downloadCSV();\n });\n\n private _buttonDownloadImage = new Button().faChar(\"fa-image\").tooltip(\"Download Image\")\n .on(\"click\", () => {\n this.downloadPNG();\n });\n\n private _toggleLegend = new ToggleButton().faChar(\"fa-list-ul\").tooltip(\"Legend\")\n .selected(false)\n .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\n protected _spacer = new Spacer();\n\n _titleBar = new TitleBar().buttons([this._toggleData, this._buttonDownload, this._buttonDownloadImage, this._spacer, this._toggleLegend]);\n\n protected _carousel = new Carousel();\n protected _table = new Table();\n protected _widget: T;\n\n protected _hideLegendToggleList = [\"dgrid_Table\"];\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n fields(): Database.Field[];\n fields(_: Database.Field[]): this;\n fields(_?: Database.Field[]): this | Database.Field[] {\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\n columns(): string[];\n columns(_: string[], asDefault?: boolean): this;\n columns(_?: string[], asDefault?: boolean): string[] | this {\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\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\n highlight(): boolean;\n highlight(_: boolean): this;\n highlight(_?: boolean): boolean | this {\n if (!arguments.length) return this._highlight;\n this._highlight = _;\n return this;\n }\n\n startProgress() {\n this._progressBar.start();\n }\n\n finishProgress() {\n this._progressBar.finish();\n }\n\n buttons(): Widget[];\n buttons(_: Widget[]): this;\n buttons(_?: Widget[]): this | Widget[] {\n if (!arguments.length) return this._titleBar.buttons();\n this._titleBar.buttons(_);\n return this;\n }\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\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(), undefined, this._legend);\n }\n }\n return this;\n }\n\n highlightColumn(column?: string): this {\n if (column) {\n const cssTag = `series-${this.cssTag(column)}`;\n this._centerWA.element().selectAll(\".series\")\n .each(function () {\n const element = d3Select(this);\n const highlight = element.classed(cssTag);\n element\n .classed(\"highlight\", highlight)\n .classed(\"lowlight\", !highlight)\n ;\n })\n ;\n } else {\n this._centerWA.element().selectAll(\".series\")\n .classed(\"highlight\", false)\n .classed(\"lowlight\", false)\n ;\n }\n return this;\n }\n\n getResponsiveMode(): \"tiny\" | \"small\" | \"regular\" | \"none\" {\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\n setOrigSize() {\n this._orig_size = JSON.parse(JSON.stringify(this.size()));\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._modal\n .target(this.target())\n .relativeTargetId(this.id())\n ;\n\n this.top(this._titleBar);\n this.center(this._carousel);\n\n this._legend\n .targetWidget(this._widget)\n .orientation(\"vertical\")\n .title(\"\")\n .visible(false)\n ;\n\n this._progressBar.enter(domNode, element);\n this.setOrigSize();\n }\n\n preUpdateTiny(element) {\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"none\");\n }\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\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\n private _prevdataVisible;\n private _prevlegendVisible;\n private _prevLegendPosition;\n private _prevChartDataFamily;\n private _prevChart;\n private _prevButtons;\n update(domNode, element) {\n super.update(domNode, element);\n if (this._table && this.widget_exists() && this.widget().class().indexOf(\"chart_XYAxis\") >= 0) {\n const chart = this.widget() as unknown as XYAxis;\n this._table.columns().forEach((column, idx) => {\n switch (idx === 0 ? chart.xAxisType() : chart.yAxisType()) {\n case \"linear\":\n case \"log\":\n case \"pow\":\n this._table.columnType(column, \"number\");\n break;\n case \"time\":\n this._table.columnType(column, \"time\");\n break;\n case \"ordinal\":\n default:\n this._table.columnType(column, \"string\");\n }\n this._table.columnPattern(column, idx === 0 ? chart.xAxisTypeTimePattern() : chart.yAxisTypeTimePattern());\n this._table.columnFormat(column, idx === 0 ? chart.xAxisTickFormat() : chart.yAxisTickFormat());\n });\n }\n }\n\n preUpdate(domNode, element) {\n\n super.preUpdate(domNode, element);\n\n if (this._prevLegendPosition !== this.legendPosition()) {\n if (this._legend.target() !== null) this._legend.target(null);\n if (this._prevLegendPosition !== undefined) {\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\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\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\n this._legend.orientation(this.legendPosition() === \"bottom\" ? \"horizontal\" : \"vertical\");\n\n this.showLeft(!this.left());\n\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\n const chart = this._widget.classID() === \"composite_MultiChart\" ? this._widget[\"chart\"]() : this._widget;\n this._legend.dataFamily(chart._dataFamily || \"any\");\n\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\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\"] : undefined;\n if (widgetIconBar && widgetIconBar instanceof IconBar) {\n this._prevButtons = this._prevButtons || [...this.buttons()];\n const buttons: Widget[] = [\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\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\n .hiddenButtons(hiddenButtons)\n .visible(this.titleVisible())\n ;\n this.topOverlay(this.titleOverlay() || !this.titleVisible());\n }\n\n postUpdate(domNode, element) {\n super.postUpdate(domNode, element);\n\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\n postUpdateTiny(element) {\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"none\");\n element.selectAll(\"div.data-count\")\n .style(\"visibility\", \"visible\")\n .style(\"font-size\", (this.titleIconFontSize() / 3) + \"px\")\n .style(\"line-height\", (this.titleIconFontSize() / 3) + \"px\")\n .style(\"left\", this.titleIconFontSize() + \"px\")\n .text(this.data().length)\n ;\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\n .style(\"position\", \"absolute\")\n .style(\"left\", `calc(50% - ${rect.width / 2}px)`)\n .style(\"top\", `${icon_top - (rect.height / 2)}px`)\n ;\n element.selectAll(\"div.data-count\")\n .style(\"position\", \"absolute\")\n .style(\"left\", `calc(50% + ${rect.width / 2}px)`)\n .style(\"top\", `${icon_top - (rect.height / 2)}px`)\n ;\n }\n }\n\n postUpdateSmall(element) {\n element.selectAll(\"lhs\").style(\"display\", \"none\"); // TODO: a bug in Border2?\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\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\n exit(domNode, element) {\n this._progressBar.exit(domNode, element);\n\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\n this._modal.target(null);\n\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\n super.exit(domNode, element);\n }\n\n // Event Handlers ---\n // Events ---\n click(row, column, selected) {\n // console.log(\"Click: \" + JSON.stringify(row) + \", \" + column + \", \" + selected);\n }\n\n dblclick(row, column, selected) {\n // console.log(\"Double click: \" + JSON.stringify(row) + \", \" + column + \", \" + selected);\n }\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}\nChartPanel.prototype._class += \" layout_ChartPanel\";\n\nexport interface ChartPanel<T extends Widget = Widget> {\n title(): string;\n title(_: string): this;\n titleVisible(): boolean;\n titleVisible(_: boolean): this;\n titleOverlay(): boolean;\n titleOverlay(_: boolean): this;\n title_exists(): boolean;\n titleFontSize(): number;\n titleFontSize(_: number): this;\n titleFontSize_exists(): boolean;\n titleIconFontSize(): number;\n titleIconFontSize(_: number): this;\n titleIconFontSize_exists(): boolean;\n dataVisible(): boolean;\n dataVisible(_: boolean): this;\n dataButtonVisible(): boolean;\n dataButtonVisible(_: boolean): this;\n downloadButtonVisible(): boolean;\n downloadButtonVisible(_: boolean): this;\n downloadImageButtonVisible(): boolean;\n downloadImageButtonVisible(_: boolean): this;\n downloadTitle(): string;\n downloadTitle(_: string): this;\n downloadTimestampSuffix(): boolean;\n downloadTimestampSuffix(_: boolean): this;\n legendVisible(): boolean;\n legendVisible(_: boolean): this;\n legendButtonVisible(): boolean;\n legendButtonVisible(_: boolean): this;\n legendPosition(): \"right\" | \"bottom\";\n legendPosition(_: \"right\" | \"bottom\"): this;\n description(): string;\n description(_: string): this;\n description_exists(): boolean;\n widget(): T;\n widget(_: T): this;\n widget_exists(): boolean;\n enableAutoscaling(): boolean;\n enableAutoscaling(_: boolean): this;\n enableAutoscaling_exists(): boolean;\n highlightSize(): number;\n highlightSize(_: number): this;\n highlightSize_exists(): boolean;\n highlightColor(): string;\n highlightColor(_: string): this;\n highlightColor_exists(): boolean;\n}\n\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\", undefined, { 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\");\n\nChartPanel.prototype.widget = function (_?) {\n if (!arguments.length) return this._widget;\n this._carousel.widgets([_, this._table]);\n this._widget = _;\n this._widget\n .fields(this._legend.filteredFields())\n .data(this._legend.filteredData())\n ;\n\n const context = this;\n const tmpAny = this._widget as any;\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};\n", "import { instanceOfIHighlight } from \"@hpcc-js/api\";\nimport { Database, Palette, SVGWidget, Widget } from \"@hpcc-js/common\";\nimport { format as d3Format } from \"d3-format\";\nimport { scaleOrdinal as d3ScaleOrdinal } from \"d3-scale\";\nimport {\n symbol as d3Symbol,\n symbolCircle as d3SymbolCircle,\n symbolCross as d3SymbolCross,\n symbolDiamond as d3SymbolDiamond,\n symbolSquare as d3SymbolSquare,\n symbolStar as d3SymbolStar,\n symbolTriangle as d3SymbolTriangle,\n symbolWye as d3SymbolWye\n} from \"d3-shape\";\nimport { legendColor as d3LegendColor } from \"d3-svg-legend\";\nimport { ChartPanel } from \"./ChartPanel.ts\";\n\nexport class Legend extends SVGWidget {\n _owner: ChartPanel;\n _targetWidget: Widget;\n _targetWidgetMonitor;\n _legendOrdinal;\n _disabled: string[] = [];\n\n private _symbolTypeMap = {\n \"circle\": d3SymbolCircle,\n \"cross\": d3SymbolCross,\n \"diamond\": d3SymbolDiamond,\n \"square\": d3SymbolSquare,\n \"star\": d3SymbolStar,\n \"triangle\": d3SymbolTriangle,\n \"wye\": d3SymbolWye\n };\n\n constructor(owner: ChartPanel) {\n super();\n this._owner = owner;\n this._drawStartPos = \"origin\";\n\n const context = this;\n this._legendOrdinal = d3LegendColor()\n .shape(\"path\", d3Symbol().type(d3SymbolCircle).size(150)())\n .shapePadding(10)\n .shapeRadius(10)\n .on(\"cellclick\", function (d) {\n context.onClick(d, this);\n })\n .on(\"cellover\", (d) => {\n context.onOver(d, this);\n })\n .on(\"cellout\", (d) => {\n context.onOut(d, this);\n })\n ;\n }\n\n isDisabled(d: string | Database.Field): boolean {\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\n filteredFields(): Database.Field[] {\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\n filteredColumns(): string[] {\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\n filteredData(): any[][] {\n switch (this.dataFamily()) {\n case \"2D\":\n return this.data().filter(row => !this.isDisabled(row[0]));\n case \"ND\":\n const disabledCols: { [key: number]: boolean } = {};\n let anyDisabled: boolean = 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\n isRainbow() {\n const widget = this.getWidget();\n return widget && widget._palette && widget._palette.type() === \"rainbow\";\n }\n\n targetWidget(): Widget;\n targetWidget(_: Widget): this;\n targetWidget(_?: Widget): Widget | this {\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\n getWidget() {\n if (this._targetWidget) {\n switch (this._targetWidget.classID()) {\n case \"composite_MultiChart\":\n return (this._targetWidget as any).chart();\n }\n }\n return this._targetWidget;\n }\n\n getPalette(): Palette.OrdinalPaletteFunc | Palette.RainbowPaletteFunc {\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\n getPaletteType() {\n return this.getPalette().type();\n }\n\n fillColorFunc() {\n const widget = this.getWidget();\n if (widget && widget.fillColor) {\n // Legend will render before the widget, so its possible the widgets palette will not have switched yet...\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\n fillColor(row, col, sel) {\n return this.fillColorFunc()(row, col, sel);\n }\n\n protected _g;\n enter(domNode, element) {\n super.enter(domNode, element);\n this._g = element.append(\"g\")\n .attr(\"class\", \"legendOrdinal\")\n ;\n }\n\n calcMetaData() {\n let dataArr = [];\n let total = 0;\n let maxLabelWidth = 0;\n const colLength = this.columns().length;\n\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, n) => acc + n, 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) { return i > 0; }).map(function (n, i) {\n val = this.data().reduce((acc, n) => acc + n[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(undefined, n, false), n, label];\n }, this);\n break;\n default:\n const widgetColumns2 = this.columns();\n dataArr = widgetColumns2.map(function (n) {\n return [fillColor(undefined, n, false), n];\n }, this);\n break;\n }\n break;\n case \"rainbow\":\n const palette = this.getPalette() as Palette.RainbowPaletteFunc;\n const format = d3Format(this.rainbowFormat());\n const widget = this.getWidget();\n const steps = this.rainbowBins();\n const weightMin: number = widget._dataMinWeight;\n const weightMax: number = widget._dataMaxWeight;\n const stepWeightDiff = (weightMax - weightMin) / (steps - 1);\n dataArr.push([palette(weightMin, weightMin, weightMax), format(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(mid)]);\n }\n dataArr.push([palette(weightMax, weightMin, weightMax), format(weightMax)]);\n break;\n }\n }\n return {\n dataArr,\n total,\n maxLabelWidth\n };\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n const { dataArr, maxLabelWidth, total } = this.calcMetaData();\n\n const radius = this.shapeRadius();\n const size = this.radiusToSymbolSize(radius);\n\n const strokeWidth = 1;\n\n let shapePadding = this.itemPadding();// + strokeWidth;\n if (this.orientation() === \"horizontal\") {\n shapePadding += maxLabelWidth - (radius * 2);\n }\n\n const ordinal = d3ScaleOrdinal()\n .domain(dataArr.map(row => row[1]))\n .range(dataArr.map(row => row[0]));\n this._legendOrdinal\n .shape(\"path\", d3Symbol().type(this._symbolTypeMap[this.symbolType()]).size(size)())\n .orient(this.orientation())\n .title(this.title())\n .labelWrap(this.labelMaxWidth())\n .labelAlign(this.labelAlign())\n .shapePadding(shapePadding)\n .scale(ordinal)\n .labels(d => dataArr[d.i][2])\n ;\n\n this._g.call(this._legendOrdinal);\n\n this.updateDisabled(element, dataArr);\n\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\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\n this._g.attr(\"transform\", `translate(${offsetX}, ${offsetY})`);\n this.pos({\n x: 0,\n y: 0\n });\n this._legendOrdinal\n .labelOffset(this.itemPadding())\n ;\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\n .enter()\n .append(\"text\")\n .classed(\"legendTotal\", true)\n .merge(legendTotal)\n .attr(\"transform\", `translate(${totalOffsetX}, ${totalOffsetY})`)\n .text(totalText)\n ;\n legendTotal.exit().remove();\n }\n\n updateDisabled(element, dataArr) {\n element\n .style(\"cursor\", \"pointer\")\n .selectAll(\"path.swatch\").filter((d, i) => i < dataArr.length)\n .style(\"stroke\", (d, i) => dataArr[i][0])\n .style(\"fill\", (d, i) =>\n this._disabled.indexOf(d) < 0 ? dataArr[i][0] : \"white\"\n )\n ;\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 !== undefined) {\n this._boundingBox.width = w;\n }\n this._parentRelativeDiv.style(\"overflow\", \"hidden\");\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\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\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\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\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\n onDblClick(rowData, rowIdx) {\n }\n\n onMouseOver(rowData, rowIdx) {\n }\n private _containerSize;\n resize(_size?: { width: number, height: number }) {\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}\nLegend.prototype._class += \" layout_Legend\";\n\nexport interface Legend {\n title(): string;\n title(_: string): this;\n symbolType(): \"circle\" | \"cross\" | \"diamond\" | \"square\" | \"star\" | \"triangle\" | \"wye\";\n symbolType(_: \"circle\" | \"cross\" | \"diamond\" | \"square\" | \"star\" | \"triangle\" | \"wye\"): this;\n labelMaxWidth(): number;\n labelMaxWidth(_: number): this;\n orientation(): \"vertical\" | \"horizontal\";\n orientation(_: \"vertical\" | \"horizontal\"): this;\n orientation_exists: () => boolean;\n dataFamily(): \"1D\" | \"2D\" | \"ND\" | \"map\" | \"graph\" | \"any\";\n dataFamily(_: \"1D\" | \"2D\" | \"ND\" | \"map\" | \"graph\" | \"any\"): this;\n dataFamily_exists: () => boolean;\n rainbowFormat(): string;\n rainbowFormat(_: string): this;\n rainbowFormat_exists: () => boolean;\n rainbowBins(): number;\n rainbowBins(_: number): this;\n rainbowBins_exists: () => boolean;\n showSeriesTotal(): boolean;\n showSeriesTotal(_: boolean): this;\n showLegendTotal(): boolean;\n showLegendTotal(_: boolean): this;\n itemPadding(): number;\n itemPadding(_: number): this;\n shapeRadius(): number;\n shapeRadius(_: number): this;\n fitToContent(): boolean;\n fitToContent(_: boolean): this;\n labelAlign(): \"start\" | \"middle\" | \"end\";\n labelAlign(_: \"start\" | \"middle\" | \"end\"): this;\n}\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: w => !w.isRainbow() });\nLegend.prototype.publish(\"rainbowBins\", 8, \"number\", \"Number of rainbow bins\", null, { tags: [\"Private\"], disable: w => !w.isRainbow() });\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: (w: any) => w.orientation() === \"vertical\" });\n", "var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\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 if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\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,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n 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),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We\u2019re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\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 }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\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};\n\nexport default path;\n", "export default function(x) {\n return function constant() {\n return x;\n };\n}\n", "export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n", "import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n", "export default {\n draw: 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 }\n};\n", "var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n 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 }\n};\n", "import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n", "export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n", "var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: 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 }\n};\n", "var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n 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 }\n};\n", "import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\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\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n", "import { select } from \"d3-selection\"\nimport { format, formatPrefix } from \"d3-format\"\n\nconst d3_identity = d => d\n\nconst d3_reverse = arr => {\n const mirror = []\n for (let i = 0, l = arr.length; i < l; i++) {\n mirror[i] = arr[l - i - 1]\n }\n return mirror\n}\n\n//Text wrapping code adapted from Mike Bostock\nconst d3_textWrapping = (text, width) => {\n text.each(function() {\n var text = select(this),\n words = text\n .text()\n .split(/\\s+/)\n .reverse(),\n word,\n line = [],\n lineNumber = 0,\n lineHeight = 1.2, //ems\n y = text.attr(\"y\"),\n dy = parseFloat(text.attr(\"dy\")) || 0,\n tspan = text\n .text(null)\n .append(\"tspan\")\n .attr(\"x\", 0)\n .attr(\"dy\", dy + \"em\")\n\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 = text\n .append(\"tspan\")\n .attr(\"x\", 0)\n .attr(\"dy\", lineHeight + dy + \"em\")\n .text(word)\n }\n }\n })\n}\n\nconst d3_mergeLabels = (gen = [], labels, domain, range, labelDelimiter) => {\n if (typeof labels === \"object\") {\n if (labels.length === 0) return gen\n\n let 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 const customLabels = []\n const genLength = gen.length\n for (let i = 0; i < genLength; i++) {\n customLabels.push(\n labels({\n i,\n genLength,\n generatedLabels: gen,\n domain,\n range,\n labelDelimiter\n })\n )\n }\n return customLabels\n }\n\n return gen\n}\n\nconst d3_linearLegend = (scale, cells, labelFormat) => {\n let data = []\n\n if (cells.length > 1) {\n data = cells\n } else {\n const domain = scale.domain(),\n increment = (domain[domain.length - 1] - domain[0]) / (cells - 1)\n let i = 0\n\n for (; i < cells; i++) {\n data.push(domain[0] + i * increment)\n }\n }\n\n const labels = data.map(labelFormat)\n return {\n data: data,\n labels: labels,\n feature: d => scale(d)\n }\n}\n\nconst d3_quantLegend = (scale, labelFormat, labelDelimiter) => {\n const labels = scale.range().map(d => {\n const invert = scale.invertExtent(d)\n return (\n labelFormat(invert[0]) +\n \" \" +\n labelDelimiter +\n \" \" +\n labelFormat(invert[1])\n )\n })\n\n return {\n data: scale.range(),\n labels: labels,\n feature: d3_identity\n }\n}\n\nconst d3_ordinalLegend = scale => ({\n data: scale.domain(),\n labels: scale.domain(),\n feature: d => scale(d)\n})\n\nconst d3_cellOver = (cellDispatcher, d, obj) => {\n cellDispatcher.call(\"cellover\", obj, d)\n}\n\nconst d3_cellOut = (cellDispatcher, d, obj) => {\n cellDispatcher.call(\"cellout\", obj, d)\n}\n\nconst d3_cellClick = (cellDispatcher, d, obj) => {\n cellDispatcher.call(\"cellclick\", obj, d)\n}\n\nexport default {\n d3_drawShapes: (\n shape,\n shapes,\n shapeHeight,\n shapeWidth,\n shapeRadius,\n path\n ) => {\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\n .attr(\"x1\", 0)\n .attr(\"x2\", shapeWidth)\n .attr(\"y1\", 0)\n .attr(\"y2\", 0)\n } else if (shape === \"path\") {\n shapes.attr(\"d\", path)\n }\n },\n\n d3_addText: function(svg, enter, labels, classPrefix, labelWidth) {\n enter.append(\"text\").attr(\"class\", classPrefix + \"label\")\n const text = svg\n .selectAll(`g.${classPrefix}cell text.${classPrefix}label`)\n .data(labels)\n .text(d3_identity)\n\n if (labelWidth) {\n svg\n .selectAll(`g.${classPrefix}cell text.${classPrefix}label`)\n .call(d3_textWrapping, labelWidth)\n }\n\n return text\n },\n\n d3_calcType: function(\n scale,\n ascending,\n cells,\n labels,\n labelFormat,\n labelDelimiter\n ) {\n const type = scale.invertExtent\n ? d3_quantLegend(scale, labelFormat, labelDelimiter)\n : scale.ticks\n ? d3_linearLegend(scale, cells, labelFormat)\n : d3_ordinalLegend(scale)\n\n //for d3.scaleSequential that doesn't have a range function\n const range = (scale.range && scale.range()) || scale.domain()\n type.labels = d3_mergeLabels(\n type.labels,\n labels,\n scale.domain(),\n range,\n labelDelimiter\n )\n\n if (ascending) {\n type.labels = d3_reverse(type.labels)\n type.data = d3_reverse(type.data)\n }\n\n return type\n },\n\n d3_filterCells: (type, cellFilter) => {\n let filterCells = type.data\n .map((d, i) => ({ data: d, label: type.labels[i] }))\n .filter(cellFilter)\n const dataValues = filterCells.map(d => d.data)\n const labelValues = filterCells.map(d => d.label)\n type.data = type.data.filter(d => dataValues.indexOf(d) !== -1)\n type.labels = type.labels.filter(d => labelValues.indexOf(d) !== -1)\n return type\n },\n\n 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 },\n\n d3_addEvents: function(cells, dispatcher) {\n cells\n .on(\"mouseover.legend\", function(d) {\n d3_cellOver(dispatcher, d, this)\n })\n .on(\"mouseout.legend\", function(d) {\n d3_cellOut(dispatcher, d, this)\n })\n .on(\"click.legend\", function(d) {\n d3_cellClick(dispatcher, d, this)\n })\n },\n\n d3_title: (svg, title, classPrefix, titleWidth) => {\n if (title !== \"\") {\n const titleText = svg.selectAll(\"text.\" + classPrefix + \"legendTitle\")\n\n titleText\n .data([title])\n .enter()\n .append(\"text\")\n .attr(\"class\", classPrefix + \"legendTitle\")\n\n svg.selectAll(\"text.\" + classPrefix + \"legendTitle\").text(title)\n\n if (titleWidth) {\n svg\n .selectAll(\"text.\" + classPrefix + \"legendTitle\")\n .call(d3_textWrapping, titleWidth)\n }\n\n const cellsSvg = svg.select(\".\" + classPrefix + \"legendCells\")\n const yOffset = svg\n .select(\".\" + classPrefix + \"legendTitle\")\n .nodes()\n .map(d => d.getBBox().height)[0],\n xOffset = -cellsSvg.nodes().map(function(d) {\n return d.getBBox().x\n })[0]\n cellsSvg.attr(\"transform\", \"translate(\" + xOffset + \",\" + yOffset + \")\")\n }\n },\n\n d3_defaultLocale: {\n format,\n formatPrefix\n },\n\n d3_defaultFormatSpecifier: \".01f\",\n\n d3_defaultDelimiter: \"to\"\n}\n", "import helper from \"./legend\"\nimport { dispatch } from \"d3-dispatch\"\nimport { scaleLinear } from \"d3-scale\"\nimport { formatLocale, formatSpecifier } from \"d3-format\"\n\nimport { sum } from \"d3-array\"\n\nexport default function color() {\n let scale = scaleLinear(),\n shape = \"rect\",\n shapeWidth = 15,\n shapeHeight = 15,\n shapeRadius = 10,\n shapePadding = 2,\n cells = [5],\n cellFilter,\n labels = [],\n classPrefix = \"\",\n useClass = false,\n title = \"\",\n locale = helper.d3_defaultLocale,\n specifier = helper.d3_defaultFormatSpecifier,\n labelOffset = 10,\n labelAlign = \"middle\",\n labelDelimiter = helper.d3_defaultDelimiter,\n labelWrap,\n orient = \"vertical\",\n ascending = false,\n path,\n titleWidth,\n legendDispatcher = dispatch(\"cellover\", \"cellout\", \"cellclick\")\n\n function legend(svg) {\n const type = helper.d3_calcType(\n scale,\n ascending,\n cells,\n labels,\n locale.format(specifier),\n labelDelimiter\n ),\n legendG = svg.selectAll(\"g\").data([scale])\n\n legendG\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"legendCells\")\n\n if (cellFilter) {\n helper.d3_filterCells(type, cellFilter)\n }\n\n let cell = svg\n .select(\".\" + classPrefix + \"legendCells\")\n .selectAll(\".\" + classPrefix + \"cell\")\n .data(type.data)\n\n const cellEnter = cell\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"cell\")\n cellEnter.append(shape).attr(\"class\", classPrefix + \"swatch\")\n\n let shapes = svg\n .selectAll(\n \"g.\" + classPrefix + \"cell \" + shape + \".\" + classPrefix + \"swatch\"\n )\n .data(type.data)\n\n //add event handlers\n helper.d3_addEvents(cellEnter, legendDispatcher)\n\n cell\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n shapes\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n\n shapes = shapes.merge(shapes)\n\n helper.d3_drawShapes(\n shape,\n shapes,\n shapeHeight,\n shapeWidth,\n shapeRadius,\n path\n )\n const text = helper.d3_addText(\n svg,\n cellEnter,\n type.labels,\n classPrefix,\n labelWrap\n )\n\n // we need to merge the selection, otherwise changes in the legend (e.g. change of orientation) are applied only to the new cells and not the existing ones.\n cell = cellEnter.merge(cell)\n\n // sets placement\n const textSize = text.nodes().map(d => d.getBBox()),\n shapeSize = shapes.nodes().map(d => d.getBBox())\n //sets scale\n //everything is fill except for line which is stroke,\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\", d => `${classPrefix}swatch ${type.feature(d)}`)\n }\n\n let cellTrans,\n textTrans,\n textAlign = labelAlign == \"start\" ? 0 : labelAlign == \"middle\" ? 0.5 : 1\n\n //positions cells and text\n if (orient === \"vertical\") {\n const cellSize = textSize.map((d, i) =>\n Math.max(d.height, shapeSize[i].height)\n )\n\n cellTrans = (d, i) => {\n const height = sum(cellSize.slice(0, i))\n return `translate(0, ${height + i * shapePadding})`\n }\n\n textTrans = (d, i) =>\n `translate( ${shapeSize[i].width +\n shapeSize[i].x +\n labelOffset}, ${shapeSize[i].y + shapeSize[i].height / 2 + 5})`\n } else if (orient === \"horizontal\") {\n cellTrans = (d, i) =>\n `translate(${i * (shapeSize[i].width + shapePadding)},0)`\n textTrans = (d, i) => `translate(${shapeSize[i].width * textAlign +\n shapeSize[i].x},\n ${shapeSize[i].height + shapeSize[i].y + labelOffset + 8})`\n }\n\n helper.d3_placement(orient, cell, cellTrans, text, textTrans, labelAlign)\n helper.d3_title(svg, title, classPrefix, titleWidth)\n\n cell.transition().style(\"opacity\", 1)\n }\n\n legend.scale = function(_) {\n if (!arguments.length) return scale\n scale = _\n return legend\n }\n\n legend.cells = function(_) {\n if (!arguments.length) return cells\n if (_.length > 1 || _ >= 2) {\n cells = _\n }\n return legend\n }\n\n legend.cellFilter = function(_) {\n if (!arguments.length) return cellFilter\n cellFilter = _\n return legend\n }\n\n legend.shape = function(_, d) {\n if (!arguments.length) return shape\n if (\n _ == \"rect\" ||\n _ == \"circle\" ||\n _ == \"line\" ||\n (_ == \"path\" && typeof d === \"string\")\n ) {\n shape = _\n path = d\n }\n return legend\n }\n\n legend.shapeWidth = function(_) {\n if (!arguments.length) return shapeWidth\n shapeWidth = +_\n return legend\n }\n\n legend.shapeHeight = function(_) {\n if (!arguments.length) return shapeHeight\n shapeHeight = +_\n return legend\n }\n\n legend.shapeRadius = function(_) {\n if (!arguments.length) return shapeRadius\n shapeRadius = +_\n return legend\n }\n\n legend.shapePadding = function(_) {\n if (!arguments.length) return shapePadding\n shapePadding = +_\n return legend\n }\n\n legend.labels = function(_) {\n if (!arguments.length) return labels\n labels = _\n return legend\n }\n\n legend.labelAlign = function(_) {\n if (!arguments.length) return labelAlign\n if (_ == \"start\" || _ == \"end\" || _ == \"middle\") {\n labelAlign = _\n }\n return legend\n }\n\n legend.locale = function(_) {\n if (!arguments.length) return locale\n locale = formatLocale(_)\n return legend\n }\n\n legend.labelFormat = function(_) {\n if (!arguments.length) return legend.locale().format(specifier)\n specifier = formatSpecifier(_)\n return legend\n }\n\n legend.labelOffset = function(_) {\n if (!arguments.length) return labelOffset\n labelOffset = +_\n return legend\n }\n\n legend.labelDelimiter = function(_) {\n if (!arguments.length) return labelDelimiter\n labelDelimiter = _\n return legend\n }\n\n legend.labelWrap = function(_) {\n if (!arguments.length) return labelWrap\n labelWrap = _\n return legend\n }\n\n legend.useClass = function(_) {\n if (!arguments.length) return useClass\n if (_ === true || _ === false) {\n useClass = _\n }\n return legend\n }\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\n legend.ascending = function(_) {\n if (!arguments.length) return ascending\n ascending = !!_\n return legend\n }\n\n legend.classPrefix = function(_) {\n if (!arguments.length) return classPrefix\n classPrefix = _\n return legend\n }\n\n legend.title = function(_) {\n if (!arguments.length) return title\n title = _\n return legend\n }\n\n legend.titleWidth = function(_) {\n if (!arguments.length) return titleWidth\n titleWidth = _\n return legend\n }\n\n legend.textWrap = function(_) {\n if (!arguments.length) return textWrap\n textWrap = _\n return legend\n }\n\n legend.on = function() {\n const value = legendDispatcher.on.apply(legendDispatcher, arguments)\n return value === legendDispatcher ? legend : value\n }\n\n return legend\n}\n", "import helper from \"./legend\"\nimport { dispatch } from \"d3-dispatch\"\nimport { scaleLinear } from \"d3-scale\"\nimport { formatLocale, formatSpecifier } from \"d3-format\"\nimport { sum, max } from \"d3-array\"\n\nexport default function size() {\n let scale = scaleLinear(),\n shape = \"rect\",\n shapeWidth = 15,\n shapePadding = 2,\n cells = [5],\n cellFilter,\n labels = [],\n classPrefix = \"\",\n title = \"\",\n locale = helper.d3_defaultLocale,\n specifier = helper.d3_defaultFormatSpecifier,\n labelOffset = 10,\n labelAlign = \"middle\",\n labelDelimiter = helper.d3_defaultDelimiter,\n labelWrap,\n orient = \"vertical\",\n ascending = false,\n path,\n titleWidth,\n legendDispatcher = dispatch(\"cellover\", \"cellout\", \"cellclick\")\n\n function legend(svg) {\n const type = helper.d3_calcType(\n scale,\n ascending,\n cells,\n labels,\n locale.format(specifier),\n labelDelimiter\n ),\n legendG = svg.selectAll(\"g\").data([scale])\n\n if (cellFilter) {\n helper.d3_filterCells(type, cellFilter)\n }\n\n legendG\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"legendCells\")\n\n let cell = svg\n .select(\".\" + classPrefix + \"legendCells\")\n .selectAll(\".\" + classPrefix + \"cell\")\n .data(type.data)\n const cellEnter = cell\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"cell\")\n cellEnter.append(shape).attr(\"class\", classPrefix + \"swatch\")\n\n let shapes = svg.selectAll(\n \"g.\" + classPrefix + \"cell \" + shape + \".\" + classPrefix + \"swatch\"\n )\n\n //add event handlers\n helper.d3_addEvents(cellEnter, legendDispatcher)\n\n cell\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n\n shapes\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n shapes = shapes.merge(shapes)\n\n //creates shape\n if (shape === \"line\") {\n helper.d3_drawShapes(shape, shapes, 0, shapeWidth)\n shapes.attr(\"stroke-width\", type.feature)\n } else {\n helper.d3_drawShapes(\n shape,\n shapes,\n type.feature,\n type.feature,\n type.feature,\n path\n )\n }\n\n const text = helper.d3_addText(\n svg,\n cellEnter,\n type.labels,\n classPrefix,\n labelWrap\n )\n\n // we need to merge the selection, otherwise changes in the legend (e.g. change of orientation) are applied only to the new cells and not the existing ones.\n cell = cellEnter.merge(cell)\n\n //sets placement\n\n const textSize = text.nodes().map(d => d.getBBox()),\n shapeSize = shapes.nodes().map((d, i) => {\n const bbox = d.getBBox()\n const stroke = scale(type.data[i])\n\n if (shape === \"line\" && orient === \"horizontal\") {\n bbox.height = bbox.height + stroke\n } else if (shape === \"line\" && orient === \"vertical\") {\n bbox.width = bbox.width\n }\n return bbox\n })\n\n const maxH = max(shapeSize, d => d.height + d.y),\n maxW = max(shapeSize, d => d.width + d.x)\n\n let cellTrans,\n textTrans,\n textAlign = labelAlign == \"start\" ? 0 : labelAlign == \"middle\" ? 0.5 : 1\n\n //positions cells and text\n if (orient === \"vertical\") {\n const cellSize = textSize.map((d, i) =>\n Math.max(d.height, shapeSize[i].height)\n )\n const y =\n shape == \"circle\" || shape == \"line\" ? shapeSize[0].height / 2 : 0\n cellTrans = (d, i) => {\n const height = sum(cellSize.slice(0, i))\n\n return `translate(0, ${y + height + i * shapePadding})`\n }\n\n textTrans = (d, i) => `translate( ${maxW + labelOffset},\n ${shapeSize[i].y + shapeSize[i].height / 2 + 5})`\n } else if (orient === \"horizontal\") {\n cellTrans = (d, i) => {\n const width = sum(shapeSize.slice(0, i), d => d.width)\n const y = shape == \"circle\" || shape == \"line\" ? maxH / 2 : 0\n return `translate(${width + i * shapePadding}, ${y})`\n }\n\n const offset = shape == \"line\" ? maxH / 2 : maxH\n textTrans = (d, i) => {\n return `translate( ${shapeSize[i].width * textAlign + shapeSize[i].x},\n ${offset + labelOffset})`\n }\n }\n\n helper.d3_placement(orient, cell, cellTrans, text, textTrans, labelAlign)\n helper.d3_title(svg, title, classPrefix, titleWidth)\n\n cell.transition().style(\"opacity\", 1)\n }\n\n legend.scale = function(_) {\n if (!arguments.length) return scale\n scale = _\n return legend\n }\n\n legend.cells = function(_) {\n if (!arguments.length) return cells\n if (_.length > 1 || _ >= 2) {\n cells = _\n }\n return legend\n }\n\n legend.cellFilter = function(_) {\n if (!arguments.length) return cellFilter\n cellFilter = _\n return legend\n }\n\n legend.shape = function(_, d) {\n if (!arguments.length) return shape\n if (_ == \"rect\" || _ == \"circle\" || _ == \"line\") {\n shape = _\n path = d\n }\n return legend\n }\n\n legend.shapeWidth = function(_) {\n if (!arguments.length) return shapeWidth\n shapeWidth = +_\n return legend\n }\n\n legend.shapePadding = function(_) {\n if (!arguments.length) return shapePadding\n shapePadding = +_\n return legend\n }\n\n legend.labels = function(_) {\n if (!arguments.length) return labels\n labels = _\n return legend\n }\n\n legend.labelAlign = function(_) {\n if (!arguments.length) return labelAlign\n if (_ == \"start\" || _ == \"end\" || _ == \"middle\") {\n labelAlign = _\n }\n return legend\n }\n\n legend.locale = function(_) {\n if (!arguments.length) return locale\n locale = formatLocale(_)\n return legend\n }\n\n legend.labelFormat = function(_) {\n if (!arguments.length) return legend.locale().format(specifier)\n specifier = formatSpecifier(_)\n return legend\n }\n\n legend.labelOffset = function(_) {\n if (!arguments.length) return labelOffset\n labelOffset = +_\n return legend\n }\n\n legend.labelDelimiter = function(_) {\n if (!arguments.length) return labelDelimiter\n labelDelimiter = _\n return legend\n }\n\n legend.labelWrap = function(_) {\n if (!arguments.length) return labelWrap\n labelWrap = _\n return legend\n }\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\n legend.ascending = function(_) {\n if (!arguments.length) return ascending\n ascending = !!_\n return legend\n }\n\n legend.classPrefix = function(_) {\n if (!arguments.length) return classPrefix\n classPrefix = _\n return legend\n }\n\n legend.title = function(_) {\n if (!arguments.length) return title\n title = _\n return legend\n }\n\n legend.titleWidth = function(_) {\n if (!arguments.length) return titleWidth\n titleWidth = _\n return legend\n }\n\n legend.on = function() {\n const value = legendDispatcher.on.apply(legendDispatcher, arguments)\n return value === legendDispatcher ? legend : value\n }\n\n return legend\n}\n", "import helper from \"./legend\"\nimport { dispatch } from \"d3-dispatch\"\nimport { scaleLinear } from \"d3-scale\"\nimport { formatLocale, formatSpecifier } from \"d3-format\"\nimport { sum, max } from \"d3-array\"\n\nexport default function symbol() {\n let scale = scaleLinear(),\n shape = \"path\",\n shapeWidth = 15,\n shapeHeight = 15,\n shapeRadius = 10,\n shapePadding = 5,\n cells = [5],\n cellFilter,\n labels = [],\n classPrefix = \"\",\n title = \"\",\n locale = helper.d3_defaultLocale,\n specifier = helper.d3_defaultFormatSpecifier,\n labelAlign = \"middle\",\n labelOffset = 10,\n labelDelimiter = helper.d3_defaultDelimiter,\n labelWrap,\n orient = \"vertical\",\n ascending = false,\n titleWidth,\n legendDispatcher = dispatch(\"cellover\", \"cellout\", \"cellclick\")\n\n function legend(svg) {\n const type = helper.d3_calcType(\n scale,\n ascending,\n cells,\n labels,\n locale.format(specifier),\n labelDelimiter\n ),\n legendG = svg.selectAll(\"g\").data([scale])\n\n if (cellFilter) {\n helper.d3_filterCells(type, cellFilter)\n }\n\n legendG\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"legendCells\")\n\n let cell = svg\n .select(\".\" + classPrefix + \"legendCells\")\n .selectAll(\".\" + classPrefix + \"cell\")\n .data(type.data)\n const cellEnter = cell\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"cell\")\n cellEnter.append(shape).attr(\"class\", classPrefix + \"swatch\")\n\n let shapes = svg.selectAll(\"g.\" + classPrefix + \"cell \" + shape + \".\" + classPrefix + \"swatch\")\n\n //add event handlers\n helper.d3_addEvents(cellEnter, legendDispatcher)\n\n //remove old shapes\n cell\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n shapes\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n shapes = shapes.merge(shapes)\n\n helper.d3_drawShapes(\n shape,\n shapes,\n shapeHeight,\n shapeWidth,\n shapeRadius,\n type.feature\n )\n const text = helper.d3_addText(\n svg,\n cellEnter,\n type.labels,\n classPrefix,\n labelWrap\n )\n\n // we need to merge the selection, otherwise changes in the legend (e.g. change of orientation) are applied only to the new cells and not the existing ones.\n cell = cellEnter.merge(cell)\n\n // sets placement\n const textSize = text.nodes().map(d => d.getBBox()),\n shapeSize = shapes.nodes().map(d => d.getBBox())\n\n const maxH = max(shapeSize, d => d.height),\n maxW = max(shapeSize, d => d.width)\n\n let cellTrans,\n textTrans,\n textAlign = labelAlign == \"start\" ? 0 : labelAlign == \"middle\" ? 0.5 : 1\n\n //positions cells and text\n if (orient === \"vertical\") {\n const cellSize = textSize.map((d, i) => Math.max(maxH, d.height))\n\n cellTrans = (d, i) => {\n const height = sum(cellSize.slice(0, i))\n return `translate(0, ${height + i * shapePadding} )`\n }\n textTrans = (d, i) => `translate( ${maxW + labelOffset},\n ${shapeSize[i].y + shapeSize[i].height / 2 + 5})`\n } else if (orient === \"horizontal\") {\n cellTrans = (d, i) => `translate( ${i * (maxW + shapePadding)},0)`\n textTrans = (d, i) => `translate( ${shapeSize[i].width * textAlign +\n shapeSize[i].x},\n ${maxH + labelOffset})`\n }\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\n legend.scale = function(_) {\n if (!arguments.length) return scale\n scale = _\n return legend\n }\n\n legend.cells = function(_) {\n if (!arguments.length) return cells\n if (_.length > 1 || _ >= 2) {\n cells = _\n }\n return legend\n }\n\n legend.cellFilter = function(_) {\n if (!arguments.length) return cellFilter\n cellFilter = _\n return legend\n }\n\n legend.shapePadding = function(_) {\n if (!arguments.length) return shapePadding\n shapePadding = +_\n return legend\n }\n\n legend.labels = function(_) {\n if (!arguments.length) return labels\n labels = _\n return legend\n }\n\n legend.labelAlign = function(_) {\n if (!arguments.length) return labelAlign\n if (_ == \"start\" || _ == \"end\" || _ == \"middle\") {\n labelAlign = _\n }\n return legend\n }\n\n legend.locale = function(_) {\n if (!arguments.length) return locale\n locale = formatLocale(_)\n return legend\n }\n\n legend.labelFormat = function(_) {\n if (!arguments.length) return legend.locale().format(specifier)\n specifier = formatSpecifier(_)\n return legend\n }\n\n legend.labelOffset = function(_) {\n if (!arguments.length) return labelOffset\n labelOffset = +_\n return legend\n }\n\n legend.labelDelimiter = function(_) {\n if (!arguments.length) return labelDelimiter\n labelDelimiter = _\n return legend\n }\n\n legend.labelWrap = function(_) {\n if (!arguments.length) return labelWrap\n labelWrap = _\n return legend\n }\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\n legend.ascending = function(_) {\n if (!arguments.length) return ascending\n ascending = !!_\n return legend\n }\n\n legend.classPrefix = function(_) {\n if (!arguments.length) return classPrefix\n classPrefix = _\n return legend\n }\n\n legend.title = function(_) {\n if (!arguments.length) return title\n title = _\n return legend\n }\n\n legend.titleWidth = function(_) {\n if (!arguments.length) return titleWidth\n titleWidth = _\n return legend\n }\n\n legend.on = function() {\n const value = legendDispatcher.on.apply(legendDispatcher, arguments)\n return value === legendDispatcher ? legend : value\n }\n\n return legend\n}\n", "export const thresholdLabels = function({\n i,\n genLength,\n generatedLabels,\n labelDelimiter\n}) {\n if (i === 0) {\n const values = generatedLabels[i].split(` ${labelDelimiter} `)\n return `Less than ${values[1]}`\n } else if (i === genLength - 1) {\n const values = generatedLabels[i].split(` ${labelDelimiter} `)\n return `${values[0]} or more`\n }\n return generatedLabels[i]\n}\n\nexport default {\n thresholdLabels\n}\n", "import legendColor from './src/color'\nimport legendSize from './src/size'\nimport legendSymbol from './src/symbol'\nimport legendHelpers from './src/helpers'\n\nexport { legendColor, legendSize, legendSymbol, legendHelpers }\n\nexport default {\n legendColor,\n legendSize,\n legendSymbol,\n legendHelpers\n};\n", "import { HTMLWidget, ISize, Widget } from \"@hpcc-js/common\";\n\nimport \"../src/Modal.css\";\n\nexport class Modal extends HTMLWidget {\n\n protected _widget: Widget;\n\n protected _relativeTarget: HTMLElement;\n\n protected _fade;\n protected _modal;\n protected _modalHeader;\n protected _modalBody;\n protected _modalHeaderAnnotations;\n protected _modalHeaderCloseButton;\n _close: () => void;\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n closeModal() {\n this.visible(false);\n }\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\n setModalSize(): ISize {\n if (this.fixedHeight() !== null && this.fixedWidth() !== null) {\n this._modal\n .style(\"height\", this.fixedHeight())\n .style(\"width\", this.fixedWidth())\n .style(\"min-height\", null)\n .style(\"min-width\", null)\n .style(\"max-height\", null)\n .style(\"max-width\", null)\n ;\n } else if (this.minHeight() || this.minWidth()) {\n this._modal\n .style(\"min-height\", this.minHeight())\n .style(\"min-width\", this.minWidth())\n .style(\"max-height\", this.maxHeight())\n .style(\"max-width\", this.maxWidth())\n ;\n }\n const modalRect = this._modal.node().getBoundingClientRect();\n const headerRect = this._modalHeader.node().getBoundingClientRect();\n this._modalBody\n .style(\"height\", (modalRect.height - headerRect.height) + \"px\")\n .style(\"width\", modalRect.width);\n\n return modalRect;\n }\n\n setFadePosition(rect) {\n this._fade\n .style(\"top\", rect.top + \"px\")\n .style(\"left\", rect.left + \"px\")\n .style(\"width\", rect.width + \"px\")\n .style(\"height\", rect.height + \"px\")\n ;\n }\n\n setModalPosition(rect) {\n const modalRect = this.setModalSize();\n if (this.fixedTop() !== null && this.fixedLeft() !== null) {\n this._modal\n .style(\"top\", `calc(${this.fixedTop()} + ${rect.top}px)`)\n .style(\"left\", `calc(${this.fixedLeft()} + ${rect.left}px)`)\n ;\n } else if (this.fixedHeight() !== null && this.fixedWidth() !== null) {\n this._modal\n .style(\"top\", (rect.top + (rect.height / 2) - (modalRect.height / 2)) + \"px\")\n .style(\"left\", (rect.left + (rect.width / 2) - (modalRect.width / 2)) + \"px\")\n ;\n } else if (this.minHeight() || this.minWidth()) {\n const contentRect = this._modal.node().getBoundingClientRect();\n this._modal\n .style(\"top\", (rect.top + (rect.height / 2) - (contentRect.height / 2)) + \"px\")\n .style(\"left\", (rect.left + (rect.width / 2) - (contentRect.width / 2)) + \"px\")\n ;\n }\n }\n\n resize(size?: any): this {\n super.resize();\n if (this._modal) this.setModalSize();\n return this;\n }\n\n resizeBodySync(width: number, height: number): this {\n const header = this._modalHeader.node();\n const headerRect = header.getBoundingClientRect();\n\n this._modal\n .style(\"width\", width + \"px\")\n .style(\"height\", (height + headerRect.height) + \"px\")\n .style(\"min-width\", width + \"px\")\n .style(\"min-height\", (height + headerRect.height) + \"px\")\n ;\n this._modalHeader\n .style(\"width\", width + \"px\")\n ;\n this._modalBody\n .style(\"width\", width + \"px\")\n .style(\"height\", height + \"px\")\n ;\n return this\n .minWidth(width + \"px\")\n .minHeight((height + headerRect.height) + \"px\")\n .resize({\n height: height + headerRect.height,\n width\n })\n ;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._fade = element.append(\"div\")\n .classed(\"layout_Modal-fade\", true)\n .classed(\"layout_Modal-fadeClickable\", this.enableClickFadeToClose())\n .classed(\"layout_Modal-fade-hidden\", !this.showFade())\n ;\n const header_h = this.titleFontSize() * 2;\n this._modal = element.append(\"div\")\n .classed(\"layout_Modal-content\", true)\n ;\n this._modalHeader = this._modal.append(\"div\")\n .classed(\"layout_Modal-header\", true)\n .style(\"color\", this.titleFontColor())\n .style(\"font-size\", this.titleFontSize() + \"px\")\n .style(\"height\", header_h + \"px\")\n ;\n this._modalBody = this._modal.append(\"div\")\n .classed(\"layout_Modal-body\", true)\n .style(\"height\", `calc( 100% - ${header_h}px )`)\n .style(\"overflow-x\", this.overflowX())\n .style(\"overflow-y\", this.overflowY())\n ;\n this._modalHeader.append(\"div\")\n .classed(\"layout_Modal-title\", true)\n .style(\"line-height\", this.titleFontSize() + \"px\")\n .style(\"top\", (this.titleFontSize() / 2) + \"px\")\n .style(\"left\", (this.titleFontSize() / 2) + \"px\")\n .text(this.formattedTitle())\n ;\n\n this._modalHeaderAnnotations = this._modalHeader.append(\"div\")\n .classed(\"layout_Modal-annotations\", true)\n ;\n this._modalHeaderCloseButton = this._modalHeaderAnnotations.append(\"div\")\n .classed(\"layout_Modal-closeButton\", true)\n .html(\"<i class=\\\"fa fa-close\\\"></i>\")\n ;\n\n this._modalHeaderAnnotations\n .style(\"line-height\", this.titleFontSize() + \"px\")\n .style(\"right\", (this.titleFontSize() / 2) + \"px\")\n .style(\"top\", (this.titleFontSize() / 2) + \"px\")\n ;\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\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\n this.setModalSize();\n const rect = this._relativeTarget.getBoundingClientRect();\n this.setFadePosition(rect);\n this.setModalPosition(rect);\n\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\n .target(null)\n .render()\n ;\n }\n }\n\n exit(domNode, element) {\n if (this._widget) {\n this._widget.target(null);\n }\n super.exit(domNode, element);\n }\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}\nModal.prototype._class += \" layout_Modal\";\n\nexport interface Modal {\n show(): boolean;\n show(_: boolean): this;\n showFade(): boolean;\n showFade(_: boolean): this;\n enableClickFadeToClose(): boolean;\n enableClickFadeToClose(_: boolean): this;\n title(): string;\n title(_: string): this;\n title_exists(): boolean;\n titleFontSize(): number;\n titleFontSize(_: number): this;\n titleFontColor(): string;\n titleFontColor(_: string): this;\n minWidth(): string;\n minWidth(_: string): this;\n minHeight(): string;\n minHeight(_: string): this;\n maxWidth(): string;\n maxWidth(_: string): this;\n maxHeight(): string;\n maxHeight(_: string): this;\n fixedWidth(): string;\n fixedWidth(_: string): this;\n fixedHeight(): string;\n fixedHeight(_: string): this;\n fixedTop(): string;\n fixedTop(_: string): this;\n fixedLeft(): string;\n fixedLeft(_: string): this;\n relativeTargetId(): string;\n relativeTargetId(_: string): this;\n widget(): Widget;\n widget(_: Widget): this;\n overflowX(): \"hidden\" | \"scroll\";\n overflowX(_: \"hidden\" | \"scroll\"): this;\n overflowY(): \"hidden\" | \"scroll\";\n overflowY(_: \"hidden\" | \"scroll\"): this;\n}\n\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\");\n\nModal.prototype.publish(\"show\", true, \"boolean\", \"show\");\nModal.prototype.publish(\"showFade\", true, \"boolean\", \"showFade\");\nModal.prototype.publish(\"enableClickFadeToClose\", true, \"boolean\", \"enableClickFadeToClose\");\n\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\");\n", "(function(){\n if (!document.getElementById('810b6dee')) {\n var e = document.createElement('style');\n e.id = '810b6dee';\n e.textContent = `.layout_Modal-header {\n background-color: rgb(63,81,181);\n overflow: hidden;\n}\n.layout_Modal-body {\n background-color: #ffffff;\n overflow-y: scroll;\n overflow-x: hidden;\n}\n.layout_Modal-title {\n position: absolute;\n}\n.layout_Modal-annotations {\n position: absolute;\n}\n.layout_Modal-closeButton {\n cursor: pointer;\n}\n.layout_Modal-closeButton:hover {\n opacity: 0.7;\n}\n.layout_Modal-closeButton:active {\n opacity: 0.5;\n}\n.layout_Modal-fade {\n position: fixed;\n background-color: #000;\n opacity: 0.5;\n z-index: 10000;\n}\n.layout_Modal-content {\n position: fixed;\n background-color: #ffffff;\n z-index: 10100;\n}\n.layout_Modal-fade-hidden {\n display: none;\n}\n.layout_Modal-fadeClickable {\n cursor: pointer;\n}`;\n document.head.appendChild(e);\n }\n })();", "(function(){\n if (!document.getElementById('0b83f800')) {\n var e = document.createElement('style');\n e.id = '0b83f800';\n e.textContent = `.layout_ChartPanel .series.highlight {\n stroke-width: 2px;\n opacity: 1;\n}\n\n.layout_ChartPanel .series.lowlight {\n opacity: 0.3!important;\n}\n`;\n document.head.appendChild(e);\n }\n })();", "import { HTMLWidget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/FlexGrid.css\";\n\nexport class FlexGrid extends HTMLWidget {\n constructor() {\n super();\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n d3Select(domNode.parentNode)\n .style(\"height\", \"100%\")\n .style(\"width\", \"100%\")\n ;\n }\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n\n const cachedSizes = [];\n this.updateFlexParent(element);\n const listItems = element.selectAll(\".FlexGrid-list-item\").data(this.widgets(), w => w.id());\n listItems.enter()\n .append(\"div\")\n .classed(\"FlexGrid-list-item\", true)\n .each(function (w) {\n w.target(this);\n })\n .merge(listItems)\n .style(\"min-height\", this.itemMinHeight() + \"px\")\n .style(\"min-width\", this.itemMinWidth() + \"px\")\n .style(\"flex-basis\", (n, i) => {\n const flexBasis = this.widgetsFlexBasis()[i];\n return typeof flexBasis !== \"undefined\" ? flexBasis : this.flexBasis();\n })\n .style(\"flex-grow\", (n, i) => {\n const flexGrow = this.widgetsFlexGrow()[i];\n return typeof flexGrow !== \"undefined\" ? flexGrow : this.flexGrow();\n })\n .style(\"border-width\", this.borderWidth() + \"px\")\n .style(\"border-color\", this.itemBorderColor())\n .each(function () {\n this.firstChild.style.display = \"none\";\n })\n .each(function () {\n const rect = this.getBoundingClientRect();\n cachedSizes.push([\n rect.width,\n rect.height\n ]);\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 ;\n listItems.exit().remove();\n }\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n updateFlexParent(element) {\n element\n .style(\"height\", \"100%\")\n .style(\"flex-direction\", this.orientation() === \"horizontal\" ? \"row\" : \"column\")\n .style(\"flex-wrap\", this.flexWrap())\n .style(\"align-items\", this.alignItems())\n .style(\"align-content\", this.alignContent())\n .style(\"overflow-x\", () => {\n if (this.forceXScroll() || (this.orientation() === \"horizontal\" && this.flexWrap() === \"nowrap\" && !this.disableScroll())) {\n return \"scroll\";\n }\n return \"hidden\";\n })\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}\nFlexGrid.prototype._class += \" layout_FlexGrid\";\n\nexport interface FlexGrid {\n widgets(): any;\n widgets(_: any): this;\n orientation(): \"horizontal\" | \"vertical\";\n orientation(_: \"horizontal\" | \"vertical\"): this;\n flexWrap(): \"nowrap\" | \"wrap\" | \"wrap-reverse\";\n flexWrap(_: \"nowrap\" | \"wrap\" | \"wrap-reverse\"): this;\n itemMinHeight(): number;\n itemMinHeight(_: number): this;\n itemMinWidth(): number;\n itemMinWidth(_: number): this;\n alignItems(): \"flex-start\" | \"center\" | \"flex-end\" | \"stretch\";\n alignItems(_: \"flex-start\" | \"center\" | \"flex-end\" | \"stretch\"): this;\n alignContent(): \"flex-start\" | \"center\" | \"flex-end\" | \"stretch\" | \"space-between\" | \"space-around\";\n alignContent(_: \"flex-start\" | \"center\" | \"flex-end\" | \"stretch\" | \"space-between\" | \"space-around\"): this;\n itemBorderColor(): string;\n itemBorderColor(_: string): this;\n borderWidth(): number;\n borderWidth(_: number): this;\n flexGrow(): number;\n flexGrow(_: number): this;\n widgetsFlexGrow(): number[];\n widgetsFlexGrow(_: number[]): this;\n flexBasis(): string;\n flexBasis(_: string): this;\n widgetsFlexBasis(): string[];\n widgetsFlexBasis(_: string[]): this;\n disableScroll(): boolean;\n disableScroll(_: boolean): this;\n forceXScroll(): boolean;\n forceXScroll(_: boolean): this;\n forceYScroll(): boolean;\n forceYScroll(_: boolean): this;\n}\n\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: (w: any) => w.flexWrap() !== \"nowrap\" });\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\");\n", "(function(){\n if (!document.getElementById('1c68d178')) {\n var e = document.createElement('style');\n e.id = '1c68d178';\n e.textContent = `.layout_FlexGrid{\n display: flex;\n}\n.FlexGrid-list-item{\n overflow: hidden;\n border-style: solid;\n flex-grow: 1;\n}`;\n document.head.appendChild(e);\n }\n })();", "import { d3Event, drag as d3Drag, HTMLWidget, Platform, select as d3Select, Utility } from \"@hpcc-js/common\";\nimport * as _GridList from \"grid-list\";\nimport { Cell } from \"./Cell.ts\";\n\nimport \"../src/Grid.css\";\n\nconst GridList = (_GridList && _GridList.default) || _GridList;\n\nexport type ICellPosition = [number, number, number, number];\n\nexport class Grid extends HTMLWidget {\n divItems;\n\n gridList;\n items;\n itemsMap;\n origItems;\n cellWidth;\n cellHeight;\n dragItem;\n dragItemPos;\n\n _d3Drag;\n _d3DragResize;\n _selectionBag;\n _scrollBarWidth;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n this._selectionBag = new Utility.Selection(this);\n\n this.content([]);\n }\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\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: any = 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\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()\n .gridRow(row)\n .gridCol(col)\n .widget(widget)\n .title(title)\n .gridRowSpan(rowSpan)\n .gridColSpan(colSpan)\n ;\n this.content().push(cell);\n }\n return this;\n }\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\n getCell(row, col) {\n let retVal = null;\n this.content().some(function (cell) {\n if (row >= cell.gridRow() && row < cell.gridRow() + cell.gridRowSpan() &&\n col >= cell.gridCol() && col < cell.gridCol() + cell.gridColSpan()) {\n retVal = cell;\n return true;\n }\n return false;\n });\n return retVal;\n }\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\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\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\n gridItemToCell(item) {\n item.cell\n .gridCol(item.x)\n .gridRow(item.y)\n .gridColSpan(item.w)\n .gridRowSpan(item.h)\n ;\n }\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\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\n killGridList() {\n this.gridList = null;\n delete this.items;\n delete this.itemsMap;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this._scrollBarWidth = Platform.getScrollbarWidth();\n\n const context = this;\n this._d3Drag = d3Drag()\n .subject(function (_d) {\n const d = context.cellToGridItem(_d);\n return { x: d.x * context.cellWidth, y: d.y * context.cellHeight };\n })\n .on(\"start\", function (_d: any) {\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\")\n .attr(\"class\", \"dragging\")\n .style(\"transform\", function () { return \"translate(\" + d.x * context.cellWidth + \"px, \" + d.y * context.cellHeight + \"px)\"; })\n .style(\"width\", function () { return d.w * context.cellWidth - context.gutter() + \"px\"; })\n .style(\"height\", function () { return d.h * context.cellHeight - context.gutter() + \"px\"; })\n ;\n context.selectionBagClick(_d);\n })\n .on(\"drag\", function (_d: any) {\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\n .style(\"transform\", function () { return \"translate(\" + event.x + \"px, \" + event.y + \"px)\"; })\n .style(\"width\", function () { return d.w * context.cellWidth + \"px\"; })\n .style(\"height\", function () { return d.h * context.cellHeight + \"px\"; })\n ;\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\n this._d3DragResize = d3Drag()\n .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 })\n .on(\"start\", function (_d: any) {\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\")\n .attr(\"class\", \"resizing\")\n .style(\"transform\", function () { return \"translate(\" + d.x * context.cellWidth + \"px, \" + d.y * context.cellHeight + \"px)\"; })\n .style(\"width\", function () { return d.w * context.cellWidth - context.gutter() + \"px\"; })\n .style(\"height\", function () { return d.h * context.cellHeight - context.gutter() + \"px\"; })\n ;\n context.dragItemPos = { x: d.x, y: d.y };\n })\n .on(\"drag\", function (_d: any) {\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\n .style(\"width\", function () { return (-d.x + 1) * context.cellWidth + event.x - context.gutter() + \"px\"; })\n .style(\"height\", function () { return (-d.y + 1) * context.cellHeight + event.y - context.gutter() + \"px\"; })\n ;\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 }\n\n updateGrid(resize, transitionDuration: number = 0, _noRender: boolean = false) {\n transitionDuration = transitionDuration || 0;\n const context = this;\n this.divItems\n .classed(\"draggable\", this.designMode())\n .transition().duration(transitionDuration)\n .style(\"left\", function (d) { return d.gridCol() * context.cellWidth + context.gutter() / 2 + \"px\"; })\n .style(\"top\", function (d) { return d.gridRow() * context.cellHeight + context.gutter() / 2 + \"px\"; })\n .style(\"width\", function (d) { return d.gridColSpan() * context.cellWidth - context.gutter() + \"px\"; })\n .style(\"height\", function (d) { return d.gridRowSpan() * context.cellHeight - context.gutter() + \"px\"; })\n .on(\"end\", function (d) {\n d\n .surfaceShadow_default(context.surfaceShadow())\n .surfacePadding_default(context.surfacePadding())\n .surfaceBorderWidth_default(context.surfaceBorderWidth())\n .surfaceBackgroundColor_default(context.surfaceBackgroundColor())\n ;\n\n if (resize === true || resize === d.id()) {\n d\n .resize()\n .lazyRender()\n ;\n }\n })\n ;\n }\n\n update(domNode, element2) {\n super.update(domNode, element2);\n\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\n // Grid ---\n const context = this;\n const divItems = element2.selectAll(\"#\" + this.id() + \" > .ddCell\").data(this.content(), function (d) { return d.id(); });\n this.divItems = divItems.enter().append(\"div\")\n .attr(\"class\", \"ddCell\")\n .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 // API Call (only needed when not dragging) ---\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 = d3Select(this);\n element.append(\"div\")\n .attr(\"class\", \"resizeHandle\")\n .call(context._d3DragResize)\n .append(\"div\")\n .attr(\"class\", \"resizeHandleDisplay\")\n ;\n }).merge(divItems)\n ;\n this.divItems.each(function (d) {\n const element = d3Select(this);\n if (context.designMode()) {\n element.call(context._d3Drag);\n } else {\n element\n .on(\"mousedown.drag\", null)\n .on(\"touchstart.drag\", null)\n ;\n }\n });\n this.divItems.select(\".resizeHandle\")\n .style(\"display\", this.designMode() ? null : \"none\")\n ;\n\n this.updateGrid(true);\n divItems.exit()\n .each(function (d) {\n d.target(null);\n if (d.__grid_watch) {\n d.__grid_watch.remove();\n }\n })\n .remove()\n ;\n\n // Snapping ---\n const lanesBackground = element2.selectAll(\"#\" + this.id() + \" > .laneBackground\").data(this.designMode() ? [\"\"] : []);\n lanesBackground.enter().insert(\"div\", \":first-child\")\n .attr(\"class\", \"laneBackground\")\n .style(\"left\", \"1px\")\n .style(\"top\", \"1px\")\n .on(\"click\", function () {\n context.selectionBagClear();\n })\n .merge(lanesBackground)\n .style(\"width\", (this.snappingColumns() * this.cellWidth) + \"px\")\n .style(\"height\", (this.snappingRows() * this.cellHeight) + \"px\")\n ;\n lanesBackground.exit()\n .each(function () {\n context.selectionBagClear();\n })\n .remove()\n ;\n\n const lanes = element2.selectAll(\"#\" + this.id() + \" > .lane\").data(this.designMode() ? [\"\"] : []);\n lanes.enter().append(\"div\")\n .attr(\"class\", \"lane\")\n .style(\"left\", \"1px\")\n .style(\"top\", \"1px\")\n ;\n lanes\n .style(\"display\", this.showLanes() ? null : \"none\")\n .style(\"width\", (this.snappingColumns() * this.cellWidth) + \"px\")\n .style(\"height\", (this.snappingRows() * this.cellHeight) + \"px\")\n .style(\"background-image\", \"linear-gradient(to right, grey 1px, transparent 1px), linear-gradient(to bottom, grey 1px, transparent 1px)\")\n .style(\"background-size\", this.cellWidth + \"px \" + this.cellHeight + \"px\")\n ;\n lanes.exit()\n .remove()\n ;\n }\n\n exit(domNode, element) {\n this.content().forEach(w => w.target(null));\n super.exit(domNode, element);\n }\n\n _createSelectionObject(d) {\n return {\n _id: d._id,\n element: () => {\n return d._element;\n },\n widget: d\n };\n }\n\n selection(_) {\n if (!arguments.length) return this._selectionBag.get().map(function (d) { return d._id; });\n this._selectionBag.set(_.map(function (row) {\n return this._createSelectionObject(row);\n }, this));\n return this;\n }\n\n selectionBagClear() {\n if (!this._selectionBag.isEmpty()) {\n this._selectionBag.clear();\n this.postSelectionChange();\n }\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\n postSelectionChange() {\n }\n\n applyLayout(layoutArr: ICellPosition[]) {\n this.divItems.each((d, i) => {\n if (layoutArr[i]) {\n const [x, y, w, h] = layoutArr[i];\n d\n .gridCol(x)\n .gridRow(y)\n .gridColSpan(w)\n .gridRowSpan(h)\n ;\n }\n });\n this.updateGrid(true);\n }\n\n vizActivation(elem) {\n }\n}\nGrid.prototype._class += \" layout_Grid\";\n\nexport interface Grid {\n designMode(): boolean;\n designMode(_: boolean): this;\n showLanes(): boolean;\n showLanes(_: boolean): this;\n fitTo(): string;\n fitTo(_: string): this;\n\n snapping(): string;\n snapping(_: string): this;\n snappingColumns(): number;\n snappingColumns(_: number): this;\n snappingRows(): number;\n snappingRows(_: number): this;\n snappingColumns_default(): number;\n snappingColumns_default(_: number): this;\n snappingRows_default(): number;\n snappingRows_default(_: number): this;\n\n gutter(): number;\n gutter(_: number): this;\n\n surfaceShadow(): boolean;\n surfaceShadow(_: boolean): this;\n surfacePadding(): string;\n surfacePadding(_: string): this;\n surfaceBorderWidth(): number;\n surfaceBorderWidth(_: number): this;\n surfaceBackgroundColor(): string;\n surfaceBackgroundColor(_: string): this;\n\n content(): Cell[];\n content(_: Cell[]): this;\n}\n\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: 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\");\n\nGrid.prototype.publish(\"gutter\", 6, \"number\", \"Gap Between Widgets\", null, { tags: [\"Basic\"] });\n\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\"] });\n\nGrid.prototype.publish(\"content\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Basic\"], render: false });\n", "(function(){\n if (!document.getElementById('71cbabbe')) {\n var e = document.createElement('style');\n e.id = '71cbabbe';\n e.textContent = `.layout_Grid > .ddCell {\n position: absolute;\n}\n\n.layout_Grid > .laneBackground {\n position: absolute;\n border-style: solid;\n border-width: 1px;\n background: whitesmoke;\n}\n\n.layout_Grid > .lane {\n position: absolute;\n border-style: none;\n opacity: 0.25;\n border-radius: 0px;\n pointer-events: none;\n}\n\n.layout_Grid > .ddCell.draggable {\n border-style: solid;\n border-width: 1px;\n background-color: ghostwhite;\n border-radius: 0px;\n cursor:move;\n}\n\n.layout_Grid > .ddCell.draggable > .resizeHandle {\n bottom: 0px;\n right: 0px;\n width: 8px;\n height: 8px;\n border-style: none;\n position: absolute;\n cursor:nwse-resize;\n}\n\n.layout_Grid > .ddCell.draggable .resizeHandleDisplay {\n bottom: 2px;\n right: 2px;\n width: 4px;\n height: 4px;\n border-style: solid;\n border-left-width: 0px;\n border-top-width: 0px;\n border-right-width: 2px;\n border-bottom-width: 2px;\n border-color: darkGray;\n background-color:none;\n position: absolute;\n}\n\n.layout_Grid > .ddCell.draggable .resizeHandleDisplay:hover {\n border-color: orange;\n}\n\n.layout_Grid > .dragging {\n border-style: solid;\n border-width: 1px;\n border-color: gray;\n border-radius: 0px;\n position: absolute;\n background: repeating-linear-gradient( -45deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0) 4px, rgba(100, 100, 100, 0.1) 4px, rgba(100, 100, 100, 0.1) 8px );\n}\n\n.layout_Grid > .resizing {\n border-style: solid;\n border-width: 1px;\n border-color: gray;\n background-color: orange;\n border-radius: 0px;\n position: absolute;\n opacity:0.3;\n background: repeating-linear-gradient( -45deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0) 4px, orange 4px, orange 8px );\n}\n\n.layout_Grid > .ddCell.draggable .common_Widget.selected {\n border-style: solid;\n border-width: 1px;\n border-color: red;\n background-color: gray;\n border-radius: 0px;\n position: absolute;\n background: repeating-linear-gradient( -45deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0) 4px, rgba(100, 0, 0, 0.1) 4px, rgba(100, 0, 0, 0.1) 8px );\n}\n\n.layout_Grid #drag-me::before {\n content: \"#\" attr(id);\n font-weight: bold;\n}\n`;\n document.head.appendChild(e);\n }\n })();", "import { FlexGrid } from \"./FlexGrid.ts\";\n\nexport class HorizontalList extends FlexGrid {\n constructor() {\n super();\n this.orientation_default(\"horizontal\");\n this.flexWrap_default(\"nowrap\");\n }\n}\nHorizontalList.prototype._class += \" layout_HorizontalList\";\n\nexport interface HorizontalList {\n orientation_default(_: \"horizontal\" | \"vertical\");\n flexWrap_default(_: \"nowrap\" | \"wrap\" | \"wrap-reverse\");\n}\n", "import { HTMLWidget, Text } from \"@hpcc-js/common\";\n\nimport \"../src/Layered.css\";\n\nexport type LayerPlacement = \"default\" | \"top\" | \"right\" | \"bottom\" | \"left\" | \"center\";\n\nexport class Layered extends HTMLWidget {\n protected _contentContainer;\n _widgetPlacements;\n _widgetRatios;\n constructor() {\n super();\n\n this._tag = \"div\";\n this._widgetPlacements = [];\n this._widgetRatios = [];\n }\n\n addLayer(widget, placement: LayerPlacement = \"default\", widthRatio: number = 1, heightRatio: number = 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\n enter(domNode, element) {\n super.enter(domNode, element);\n this._contentContainer = element.append(\"div\")\n .attr(\"class\", \"container\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n\n element.style(\"padding\", this.surfacePadding() + \"px\");\n\n const content = this._contentContainer.selectAll(\".content.id\" + this.id()).data(this.widgets(), function (d) { return d.id(); });\n content.enter().append(\"div\")\n .attr(\"class\", \"content id\" + this.id())\n .each(function (widget, idx) {\n widget.target(this);\n })\n .merge(content)\n .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\n .resize(widgetSize)\n .render()\n ;\n })\n ;\n content.exit()\n .each(function (widget, idx) {\n widget\n .target(null)\n ;\n })\n .remove()\n ;\n content.order();\n }\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}\nLayered.prototype._class += \" layout_Layered\";\n\nexport interface Layered {\n surfacePadding(): number;\n surfacePadding(_: number): this;\n widgets(): any;\n widgets(_: any): this;\n}\n\nLayered.prototype.publish(\"surfacePadding\", 0, \"number\", \"Padding\");\nLayered.prototype.publish(\"widgets\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Private\"] });\n", "(function(){\n if (!document.getElementById('ed0ab859')) {\n var e = document.createElement('style');\n e.id = 'ed0ab859';\n e.textContent = `.layout_Layered {\n pointer-events: none;\n}\n.layout_Layered > .container > .content {\n position: absolute;\n}\n.layout_Layered > .container > .content > div > .common_Widget,\n.layout_Layered > .container > .content > div > svg > .common_Widget {\n pointer-events: all;\n}\n`;\n document.head.appendChild(e);\n }\n })();", "import { HTMLWidget, Widget } from \"@hpcc-js/common\";\n\nexport class Popup extends HTMLWidget {\n _surfaceButtons;\n _originalPosition;\n\n constructor() {\n super();\n this._tag = \"div\";\n this._surfaceButtons = [];\n }\n\n updateState(visible) {\n visible = visible || !this.popupState();\n this.popupState(visible).render();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this.widget()\n .target(domNode)\n ;\n this._originalPosition = this.position();\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n element\n .style(\"visibility\", this.popupState() ? null : \"hidden\")\n .style(\"opacity\", this.popupState() ? null : 0)\n .style(\"width\", this.shrinkWrap() ? this.widget().width() + \"px\" : this._size.width + \"px\")\n .style(\"height\", this.shrinkWrap() ? this.widget().height() + \"px\" : this._size.height + \"px\")\n ;\n if (this.widget().size().height === 0) {\n this.widget().resize(this.size());\n }\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\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\n default:\n left = 0;\n top = 0;\n this.position(this._originalPosition);\n break;\n }\n\n this.pos({ x: left, y: top });\n\n super.postUpdate(domNode, element);\n\n element\n .style(\"position\", this.position())\n .style(\"left\", this.left() + \"px\")\n .style(\"right\", this.right() + \"px\")\n .style(\"top\", this.top() + \"px\")\n .style(\"bottom\", this.bottom() + \"px\")\n ;\n }\n\n exit(domNode, element) {\n if (this.widget()) {\n this.widget().target(null);\n }\n super.exit(domNode, element);\n }\n\n click(obj) {\n }\n}\nPopup.prototype._class += \" layout_Popup\";\n\nexport interface Popup {\n popupState(): boolean;\n popupState(_: boolean): this;\n shrinkWrap(): boolean;\n shrinkWrap(_: boolean): this;\n centerPopup(): \"none\" | \"container\" | \"window\";\n centerPopup(_: \"none\" | \"container\" | \"window\"): this;\n top(): number;\n top(_: number): this;\n bottom(): number;\n bottom(_: number): this;\n left(): number;\n left(_: number): this;\n right(): number;\n right(_: number): this;\n position(): string;\n position(_: string): this;\n\n widget(): Widget;\n widget(_: Widget): this;\n}\n\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\"] });\n\nPopup.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Private\"] });\n", "import { HTMLWidget, Text, Widget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Surface } from \"./Surface.ts\";\n\nimport \"../src/Tabbed.css\";\n\nexport class Tabbed extends HTMLWidget {\n _tabContainer;\n _contentContainer;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n }\n\n clearTabs() {\n this.labels([]);\n this.widgets([]);\n return this;\n }\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\n widgetSize(widgetDiv) {\n const width = this.clientWidth();\n let height = this.clientHeight();\n\n const tcBox = this._tabContainer.node().getBoundingClientRect();\n if (typeof (tcBox.height) !== \"undefined\") {\n height -= tcBox.height;\n }\n return { width, height };\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._tabContainer = element.append(\"div\");\n this._contentContainer = element.append(\"div\");\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n\n element.style(\"padding\", this.surfacePadding_exists() ? this.surfacePadding() + \"px\" : null);\n\n const tabs = this._tabContainer.selectAll(\".tab-button.id\" + this.id()).data(this.showTabs() ? this.labels() : [], function (d) { return d; });\n tabs.enter().append(\"span\")\n .attr(\"class\", \"tab-button id\" + this.id())\n .style(\"cursor\", \"pointer\")\n .on(\"click\", function (d, idx) {\n context.click(context.widgets()[idx].widget(), d, idx);\n context\n .activeTabIdx(idx)\n .render()\n ;\n }).merge(tabs)\n .classed(\"active\", function (d, idx) { return context.activeTabIdx() === idx; })\n .text(function (d) { return d; })\n ;\n tabs.exit().remove();\n\n const content = this._contentContainer.selectAll(\".tab-content.id\" + this.id()).data(this.widgets(), function (d) { return d.id(); });\n content.enter().append(\"div\")\n .attr(\"class\", \"tab-content id\" + this.id())\n .each(function (widget, idx) {\n widget.target(this);\n }).merge(content)\n .classed(\"active\", function (d, idx) { return context.activeTabIdx() === idx; })\n .style(\"display\", function (d, idx) { 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(d3Select(this));\n surface\n .surfaceBorderWidth(context.showTabs() ? null : 0)\n .surfacePadding(context.showTabs() ? null : 0)\n .resize(wSize)\n ;\n }\n })\n ;\n content.exit()\n .each(function (widget, idx) {\n widget\n .target(null)\n ;\n })\n .remove();\n\n switch (this.tabLocation()) {\n case \"bottom\":\n this._tabContainer\n .attr(\"class\", \"on_bottom\")\n .style(\"top\", (this._contentContainer.node().offsetHeight + this.surfacePadding()) + \"px\")\n .style(\"position\", \"absolute\")\n ;\n this._contentContainer\n .style(\"top\", this.surfacePadding_exists() ? this.surfacePadding() + \"px\" : null)\n .style(\"position\", \"absolute\")\n ;\n break;\n default:\n this._tabContainer\n .attr(\"class\", \"on_top\")\n .style(\"top\", null)\n .style(\"position\", \"relative\")\n ;\n this._contentContainer\n .style(\"top\", (this._tabContainer.node().offsetHeight + this.surfacePadding()) + \"px\")\n .style(\"position\", \"absolute\")\n ;\n break;\n }\n }\n\n click(widget, column, idx) {\n }\n}\nTabbed.prototype._class += \" layout_Tabbed\";\n\nexport interface Tabbed {\n showTabs(): boolean;\n showTabs(_: boolean): this;\n surfacePadding(): number;\n surfacePadding(_: number): this;\n surfacePadding_exists(): boolean;\n activeTabIdx(): number;\n activeTabIdx(_: number): this;\n\n labels(): string[];\n labels(_: string[]): this;\n tabLocation(): \"top\" | \"bottom\";\n tabLocation(_: \"top\" | \"bottom\"): this;\n widgets(): any[];\n widgets(_: any[]): this;\n}\n\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, {});\n\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\"] });\n", "(function(){\n if (!document.getElementById('6b6715fa')) {\n var e = document.createElement('style');\n e.id = '6b6715fa';\n e.textContent = `.layout_Tabbed .tab-button {\n position: relative;\n top: 1px;\n display: inline-block;\n border-left: 1px solid #ddd;\n border-top: 1px solid #ddd;\n border-right: 1px solid #ddd;\n background-color: transparent;\n margin-right: 4px;\n padding: 2px;\n padding-bottom: 4px;\n background-color: #ccc;\n}\n\n.layout_Tabbed .tab-button.active {\n background-color: white;\n z-index:999;\n}\n.layout_Tabbed .on_bottom .tab-button {\n border-bottom: 1px solid #ddd;\n border-top: none;\n top: -1px;\n}`;\n document.head.appendChild(e);\n }\n })();", "import { HTMLWidget, Widget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/Toolbar.css\";\n\nexport class Toolbar extends HTMLWidget {\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n\n element\n .attr(\"title\", context.title())\n .style(\"background-color\", this.backgroundColor())\n ;\n\n const title = element.selectAll(\"div.toolbar-title\")\n .data(this.title() ? [this.title()] : []);\n title.enter().append(\"div\")\n .classed(\"toolbar-title\", true)\n .append(\"span\")\n ;\n title.selectAll(\"div.toolbar-title > span\")\n .style(\"font-size\", this.fontSize_exists() ? this.fontSize() + \"px\" : null)\n .style(\"color\", this.fontColor_exists() ? this.fontColor() : null)\n .style(\"font-family\", this.fontFamily_exists() ? this.fontFamily() : null)\n .style(\"font-weight\", this.fontBold_exists() ? (this.fontBold() ? \"bold\" : \"normal\") : null)\n .style(\"background-color\", this.backgroundColor_exists() ? this.backgroundColor() : null)\n .text(context.title())\n ;\n title.exit().remove();\n\n const childWidgets = element.selectAll(\"div.toolbar-child\")\n .data(this.widgets() !== null ? this.widgets() : [], function (d) { return d.id(); });\n\n childWidgets.enter().insert(\"div\", \"div.toolbar-title\")\n .each(function (d, i) {\n const widgetClass = context.widgetClasses()[i] ? context.widgetClasses()[i] + \" toolbar-child\" : \"toolbar-child\";\n d3Select(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\n render(callback?: (w: Widget) => void): this {\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\")\n .each(function (d, i) {\n const childBBox = this.getBoundingClientRect();\n if (minX > childBBox.left)\n minX = childBBox.left;\n })\n ;\n context.element().select(\".toolbar-title\")\n .style(\"width\", (minX - toolbarBBox.left - 4) + \"px\")\n ;\n if (callback) {\n callback(w);\n }\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}\nToolbar.prototype._class += \" layout_Toolbar\";\n\nexport interface Toolbar {\n title(): string;\n title(_: string): this;\n\n fontSize(): number;\n fontSize(_: number): this;\n fontSize_exists(): boolean;\n fontColor(): string;\n fontColor(_: string): this;\n fontColor_exists(): boolean;\n fontFamily(): string;\n fontFamily(_: string): this;\n fontFamily_exists(): boolean;\n fontBold(): boolean;\n fontBold(_: boolean): this;\n fontBold_exists(): boolean;\n backgroundColor(): string;\n backgroundColor(_: string): this;\n backgroundColor_exists(): boolean;\n\n responsive(): boolean;\n responsive(_: boolean): this;\n\n widgets(): any[];\n widgets(_: any[]): this;\n widgetClasses(): string[];\n widgetClasses(_: string[]): this;\n}\n\nToolbar.prototype.publish(\"title\", \"\", \"string\", \"Title\", null, { tags: [\"Intermediate\"] });\n\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 });\n\nToolbar.prototype.publish(\"responsive\", true, \"boolean\", \"Adapts to pixel width\", null, { tags: [\"Basic\"] });\n\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\"] });\n", "(function(){\n if (!document.getElementById('67787f94')) {\n var e = document.createElement('style');\n e.id = '67787f94';\n e.textContent = `.layout_Toolbar {\n height:100%;\n background-color:#dddddd;\n white-space: nowrap;\n overflow: hidden;\n}\n.layout_Toolbar .toolbar-title {\n display: inline-block;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n -ms-transform: translateY(-50%);\n\n margin-left:4px;\n font-weight:bold;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n.layout_Toolbar .toolbar-title span {\n}\n.layout_Toolbar .toolbar-child {\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n -ms-transform: translateY(-50%);\n\n float:right;\n margin-left:4px;\n margin-right:4px;\n line-height:16px;\n}\n`;\n document.head.appendChild(e);\n }\n })();", "import { FlexGrid } from \"./FlexGrid.ts\";\n\nexport class VerticalList extends FlexGrid {\n constructor() {\n super();\n this.orientation_default(\"vertical\");\n this.flexWrap_default(\"nowrap\");\n }\n}\nVerticalList.prototype._class += \" layout_VerticalList\";\n\nexport interface VerticalList {\n orientation_default(_: \"horizontal\" | \"vertical\");\n flexWrap_default(_: \"nowrap\" | \"wrap\" | \"wrap-reverse\");\n}\n", "export const PKG_NAME = \"@hpcc-js/dgrid2\";\nexport const PKG_VERSION = \"3.1.1\";\nexport const BUILD_VERSION = \"3.2.1\";\n", "/** Normal hydration that attaches to a DOM tree but does not diff it. */\nexport const MODE_HYDRATE = 1 << 5;\n/** Signifies this VNode suspended on the previous render */\nexport const MODE_SUSPENDED = 1 << 7;\n/** Indicates that this node needs to be inserted while patching children */\nexport const INSERT_VNODE = 1 << 16;\n/** Indicates a VNode has been matched with another VNode in the diff */\nexport const MATCHED = 1 << 17;\n\n/** Reset all mode flags */\nexport const RESET_MODE = ~(MODE_HYDRATE | MODE_SUSPENDED);\n\nexport const EMPTY_OBJ = /** @type {any} */ ({});\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL =\n\t/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n", "import { EMPTY_ARR } from './constants';\n\nexport const isArray = Array.isArray;\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-expect-error We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {preact.ContainerNode} node The node to remove\n */\nexport function removeNode(node) {\n\tif (node && node.parentNode) node.parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n", "import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n", "import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {VNode[\"type\"]} type The node name or Component constructor for this\n * virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the\n * virtual node\n * @returns {VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\t/** @type {VNode} */\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original,\n\t\t_index: -1,\n\t\t_flags: 0\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor == undefined;\n", "import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\nimport { MODE_HYDRATE } from './constants';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function BaseComponent(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nBaseComponent.prototype.setState = function (update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nBaseComponent.prototype.forceUpdate = function (callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {ComponentChildren | void}\n */\nBaseComponent.prototype.render = Fragment;\n\n/**\n * @param {VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._index + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet oldVNode = component._vnode,\n\t\toldDom = oldVNode._dom,\n\t\tcommitQueue = [],\n\t\trefQueue = [];\n\n\tif (component._parentDom) {\n\t\tconst newVNode = assign({}, oldVNode);\n\t\tnewVNode._original = oldVNode._original + 1;\n\t\tif (options.vnode) options.vnode(newVNode);\n\n\t\tdiff(\n\t\t\tcomponent._parentDom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tcomponent._parentDom.namespaceURI,\n\t\t\toldVNode._flags & MODE_HYDRATE ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(oldVNode) : oldDom,\n\t\t\t!!(oldVNode._flags & MODE_HYDRATE),\n\t\t\trefQueue\n\t\t);\n\n\t\tnewVNode._original = oldVNode._original;\n\t\tnewVNode._parent._children[newVNode._index] = newVNode;\n\t\tcommitRoot(commitQueue, newVNode, refQueue);\n\n\t\tif (newVNode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(newVNode);\n\t\t}\n\t}\n}\n\n/**\n * @param {VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<Component>}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/**\n * Enqueue a rerender of a component\n * @param {Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/**\n * @param {Component} a\n * @param {Component} b\n */\nconst depthSort = (a, b) => a._vnode._depth - b._vnode._depth;\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet c;\n\trerenderQueue.sort(depthSort);\n\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t// process() calls from getting scheduled while `queue` is still being consumed.\n\twhile ((c = rerenderQueue.shift())) {\n\t\tif (c._dirty) {\n\t\t\tlet renderQueueLength = rerenderQueue.length;\n\t\t\trenderComponent(c);\n\t\t\tif (rerenderQueue.length > renderQueueLength) {\n\t\t\t\t// When i.e. rerendering a provider additional new items can be injected, we want to\n\t\t\t\t// keep the order from top to bottom with those new items so we can handle them in a\n\t\t\t\t// single pass\n\t\t\t\trerenderQueue.sort(depthSort);\n\t\t\t}\n\t\t}\n\t}\n\tprocess._rerenderCount = 0;\n}\n\nprocess._rerenderCount = 0;\n", "import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value == null ? '' : value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n// A logical clock to solve issues like https://github.com/preactjs/preact/issues/3927.\n// When the DOM performs an event it leaves micro-ticks in between bubbling up which means that\n// an event can trigger on a newly reated DOM-node while the event bubbles up.\n//\n// Originally inspired by Vue\n// (https://github.com/vuejs/core/blob/caeb8a68811a1b0f79/packages/runtime-dom/src/modules/events.ts#L90-L101),\n// but modified to use a logical clock instead of Date.now() in case event handlers get attached\n// and events get dispatched during the same millisecond.\n//\n// The clock is incremented after each new event dispatch. This allows 1 000 000 new events\n// per second for over 280 years before the value reaches Number.MAX_SAFE_INTEGER (2**53 - 1).\nlet eventClock = 0;\n\n/**\n * Set a property value on a DOM node\n * @param {PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {string} namespace Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, namespace) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture =\n\t\t\tname !== (name = name.replace(/(PointerCapture)$|Capture$/i, '$1'));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (\n\t\t\tname.toLowerCase() in dom ||\n\t\t\tname === 'onFocusOut' ||\n\t\t\tname === 'onFocusIn'\n\t\t)\n\t\t\tname = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tvalue._attached = eventClock;\n\t\t\t\tdom.addEventListener(\n\t\t\t\t\tname,\n\t\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\t\tuseCapture\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tvalue._attached = oldValue._attached;\n\t\t\t}\n\t\t} else {\n\t\t\tdom.removeEventListener(\n\t\t\t\tname,\n\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\tuseCapture\n\t\t\t);\n\t\t}\n\t} else {\n\t\tif (namespace == 'http://www.w3.org/2000/svg') {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname != 'width' &&\n\t\t\tname != 'height' &&\n\t\t\tname != 'href' &&\n\t\t\tname != 'list' &&\n\t\t\tname != 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname != 'tabIndex' &&\n\t\t\tname != 'download' &&\n\t\t\tname != 'rowSpan' &&\n\t\t\tname != 'colSpan' &&\n\t\t\tname != 'role' &&\n\t\t\tname != 'popover' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// aria- and data- attributes have no boolean representation.\n\t\t// A `false` value is different from the attribute not being\n\t\t// present, so we can't remove it. For non-boolean aria\n\t\t// attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost too many bytes. On top of\n\t\t// that other frameworks generally stringify `false`.\n\n\t\tif (typeof value == 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name[4] === '-')) {\n\t\t\tdom.setAttribute(name, name == 'popover' && value == true ? '' : value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Create an event proxy function.\n * @param {boolean} useCapture Is the event handler for the capture phase.\n * @private\n */\nfunction createEventProxy(useCapture) {\n\t/**\n\t * Proxy an event to hooked event handlers\n\t * @param {PreactEvent} e The event object from the browser\n\t * @private\n\t */\n\treturn function (e) {\n\t\tif (this._listeners) {\n\t\t\tconst eventHandler = this._listeners[e.type + useCapture];\n\t\t\tif (e._dispatched == null) {\n\t\t\t\te._dispatched = eventClock++;\n\n\t\t\t\t// When `e._dispatched` is smaller than the time when the targeted event\n\t\t\t\t// handler was attached we know we have bubbled up to an element that was added\n\t\t\t\t// during patching the DOM.\n\t\t\t} else if (e._dispatched < eventHandler._attached) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn eventHandler(options.event ? options.event(e) : e);\n\t\t}\n\t};\n}\n\nconst eventProxy = createEventProxy(false);\nconst eventProxyCapture = createEventProxy(true);\n", "import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\t/** @type {Set<Component> | null} */\n\t\t\t\tlet subs = new Set();\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.componentWillUnmount = () => {\n\t\t\t\t\tsubs = null;\n\t\t\t\t};\n\n\t\t\t\tthis.shouldComponentUpdate = function (_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\tsubs.forEach(c => {\n\t\t\t\t\t\t\tc._force = true;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.add(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tif (subs) {\n\t\t\t\t\t\t\tsubs.delete(c);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType =\n\t\tcontext);\n}\n", "import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR, INSERT_VNODE, MATCHED } from '../constants';\nimport { isArray } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {PreactElement} parentDom The DOM element whose children are being\n * diffed\n * @param {ComponentChildren[]} renderResult\n * @param {VNode} newParentVNode The new virtual node whose children should be\n * diff'ed against oldParentVNode\n * @param {VNode} oldParentVNode The old virtual node whose children should be\n * diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by\n * getChildContext\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array<PreactElement>} excessDomChildren\n * @param {Array<Component>} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\tlet i,\n\t\t/** @type {VNode} */\n\t\toldVNode,\n\t\t/** @type {VNode} */\n\t\tchildVNode,\n\t\t/** @type {PreactElement} */\n\t\tnewDom,\n\t\t/** @type {PreactElement} */\n\t\tfirstChildDom;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\t/** @type {VNode[]} */\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet newChildrenLength = renderResult.length;\n\n\tnewParentVNode._nextDom = oldDom;\n\tconstructNewChildrenArray(newParentVNode, renderResult, oldChildren);\n\toldDom = newParentVNode._nextDom;\n\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\tchildVNode = newParentVNode._children[i];\n\t\tif (childVNode == null) continue;\n\n\t\t// At this point, constructNewChildrenArray has assigned _index to be the\n\t\t// matchingIndex for this VNode's oldVNode (or -1 if there is no oldVNode).\n\t\tif (childVNode._index === -1) {\n\t\t\toldVNode = EMPTY_OBJ;\n\t\t} else {\n\t\t\toldVNode = oldChildren[childVNode._index] || EMPTY_OBJ;\n\t\t}\n\n\t\t// Update childVNode._index to its final index\n\t\tchildVNode._index = i;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tnamespace,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\n\t\t// Adjust DOM nodes\n\t\tnewDom = childVNode._dom;\n\t\tif (childVNode.ref && oldVNode.ref != childVNode.ref) {\n\t\t\tif (oldVNode.ref) {\n\t\t\t\tapplyRef(oldVNode.ref, null, childVNode);\n\t\t\t}\n\t\t\trefQueue.push(\n\t\t\t\tchildVNode.ref,\n\t\t\t\tchildVNode._component || newDom,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t}\n\n\t\tif (firstChildDom == null && newDom != null) {\n\t\t\tfirstChildDom = newDom;\n\t\t}\n\n\t\tif (\n\t\t\tchildVNode._flags & INSERT_VNODE ||\n\t\t\toldVNode._children === childVNode._children\n\t\t) {\n\t\t\toldDom = insert(childVNode, oldDom, parentDom);\n\t\t} else if (\n\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\tchildVNode._nextDom !== undefined\n\t\t) {\n\t\t\t// Since Fragments or components that return Fragment like VNodes can\n\t\t\t// contain multiple DOM nodes as the same level, continue the diff from\n\t\t\t// the sibling of last DOM child of this child VNode\n\t\t\toldDom = childVNode._nextDom;\n\t\t} else if (newDom) {\n\t\t\toldDom = newDom.nextSibling;\n\t\t}\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because it\n\t\t// is only used by `diffChildren` to determine where to resume the diff\n\t\t// after diffing Components and Fragments. Once we store it the nextDOM\n\t\t// local var, we can clean up the property. Also prevents us hanging on to\n\t\t// DOM nodes that may have been unmounted.\n\t\tchildVNode._nextDom = undefined;\n\n\t\t// Unset diffing flags\n\t\tchildVNode._flags &= ~(INSERT_VNODE | MATCHED);\n\t}\n\n\t// TODO: With new child diffing algo, consider alt ways to diff Fragments.\n\t// Such as dropping oldDom and moving fragments in place\n\t//\n\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t// _nextDom property to the nextSibling of its last child DOM node.\n\t//\n\t// `oldDom` contains the correct value here because if the last child\n\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t// node's nextSibling.\n\tnewParentVNode._nextDom = oldDom;\n\tnewParentVNode._dom = firstChildDom;\n}\n\n/**\n * @param {VNode} newParentVNode\n * @param {ComponentChildren[]} renderResult\n * @param {VNode[]} oldChildren\n */\nfunction constructNewChildrenArray(newParentVNode, renderResult, oldChildren) {\n\t/** @type {number} */\n\tlet i;\n\t/** @type {VNode} */\n\tlet childVNode;\n\t/** @type {VNode} */\n\tlet oldVNode;\n\n\tconst newChildrenLength = renderResult.length;\n\tlet oldChildrenLength = oldChildren.length,\n\t\tremainingOldChildren = oldChildrenLength;\n\n\tlet skew = 0;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\t// @ts-expect-error We are reusing the childVNode variable to hold both the\n\t\t// pre and post normalized childVNode\n\t\tchildVNode = renderResult[i];\n\n\t\tif (\n\t\t\tchildVNode == null ||\n\t\t\ttypeof childVNode == 'boolean' ||\n\t\t\ttypeof childVNode == 'function'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t\tcontinue;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. <div>{reuse}{reuse}</div>) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint' ||\n\t\t\tchildVNode.constructor == String\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode.constructor === undefined && childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse = <div />\n\t\t\t// <div>{reuse}<span />{reuse}</div>\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\tconst skewedIndex = i + skew;\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Temporarily store the matchingIndex on the _index property so we can pull\n\t\t// out the oldVNode in diffChildren. We'll override this to the VNode's\n\t\t// final index after using this property to get the oldVNode\n\t\tconst matchingIndex = (childVNode._index = findMatchingIndex(\n\t\t\tchildVNode,\n\t\t\toldChildren,\n\t\t\tskewedIndex,\n\t\t\tremainingOldChildren\n\t\t));\n\n\t\toldVNode = null;\n\t\tif (matchingIndex !== -1) {\n\t\t\toldVNode = oldChildren[matchingIndex];\n\t\t\tremainingOldChildren--;\n\t\t\tif (oldVNode) {\n\t\t\t\toldVNode._flags |= MATCHED;\n\t\t\t}\n\t\t}\n\n\t\t// Here, we define isMounting for the purposes of the skew diffing\n\t\t// algorithm. Nodes that are unsuspending are considered mounting and we detect\n\t\t// this by checking if oldVNode._original === null\n\t\tconst isMounting = oldVNode == null || oldVNode._original === null;\n\n\t\tif (isMounting) {\n\t\t\tif (matchingIndex == -1) {\n\t\t\t\tskew--;\n\t\t\t}\n\n\t\t\t// If we are mounting a DOM VNode, mark it for insertion\n\t\t\tif (typeof childVNode.type != 'function') {\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t} else if (matchingIndex !== skewedIndex) {\n\t\t\t// When we move elements around i.e. [0, 1, 2] --> [1, 0, 2]\n\t\t\t// --> we diff 1, we find it at position 1 while our skewed index is 0 and our skew is 0\n\t\t\t// we set the skew to 1 as we found an offset.\n\t\t\t// --> we diff 0, we find it at position 0 while our skewed index is at 2 and our skew is 1\n\t\t\t// this makes us increase the skew again.\n\t\t\t// --> we diff 2, we find it at position 2 while our skewed index is at 4 and our skew is 2\n\t\t\t//\n\t\t\t// this becomes an optimization question where currently we see a 1 element offset as an insertion\n\t\t\t// or deletion i.e. we optimize for [0, 1, 2] --> [9, 0, 1, 2]\n\t\t\t// while a more than 1 offset we see as a swap.\n\t\t\t// We could probably build heuristics for having an optimized course of action here as well, but\n\t\t\t// might go at the cost of some bytes.\n\t\t\t//\n\t\t\t// If we wanted to optimize for i.e. only swaps we'd just do the last two code-branches and have\n\t\t\t// only the first item be a re-scouting and all the others fall in their skewed counter-part.\n\t\t\t// We could also further optimize for swaps\n\t\t\tif (matchingIndex == skewedIndex - 1) {\n\t\t\t\tskew--;\n\t\t\t} else if (matchingIndex == skewedIndex + 1) {\n\t\t\t\tskew++;\n\t\t\t} else {\n\t\t\t\tif (matchingIndex > skewedIndex) {\n\t\t\t\t\tskew--;\n\t\t\t\t} else {\n\t\t\t\t\tskew++;\n\t\t\t\t}\n\n\t\t\t\t// Move this VNode's DOM if the original index (matchingIndex) doesn't\n\t\t\t\t// match the new skew index (i + new skew)\n\t\t\t\t// In the former two branches we know that it matches after skewing\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any. Loop forwards so that as we\n\t// unmount DOM from the beginning of the oldChildren, we can adjust oldDom to\n\t// point to the next child, which needs to be the first DOM node that won't be\n\t// unmounted.\n\tif (remainingOldChildren) {\n\t\tfor (i = 0; i < oldChildrenLength; i++) {\n\t\t\toldVNode = oldChildren[i];\n\t\t\tif (oldVNode != null && (oldVNode._flags & MATCHED) === 0) {\n\t\t\t\tif (oldVNode._dom == newParentVNode._nextDom) {\n\t\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldVNode);\n\t\t\t\t}\n\n\t\t\t\tunmount(oldVNode, oldVNode);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @param {VNode} parentVNode\n * @param {PreactElement} oldDom\n * @param {PreactElement} parentDom\n * @returns {PreactElement}\n */\nfunction insert(parentVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\n\tif (typeof parentVNode.type == 'function') {\n\t\tlet children = parentVNode._children;\n\t\tfor (let i = 0; children && i < children.length; i++) {\n\t\t\tif (children[i]) {\n\t\t\t\t// If we enter this code path on sCU bailout, where we copy\n\t\t\t\t// oldVNode._children to newVNode._children, we need to update the old\n\t\t\t\t// children's _parent pointer to point to the newVNode (parentVNode\n\t\t\t\t// here).\n\t\t\t\tchildren[i]._parent = parentVNode;\n\t\t\t\toldDom = insert(children[i], oldDom, parentDom);\n\t\t\t}\n\t\t}\n\n\t\treturn oldDom;\n\t} else if (parentVNode._dom != oldDom) {\n\t\tif (oldDom && parentVNode.type && !parentDom.contains(oldDom)) {\n\t\t\toldDom = getDomSibling(parentVNode);\n\t\t}\n\t\tparentDom.insertBefore(parentVNode._dom, oldDom || null);\n\t\toldDom = parentVNode._dom;\n\t}\n\n\tdo {\n\t\toldDom = oldDom && oldDom.nextSibling;\n\t} while (oldDom != null && oldDom.nodeType === 8);\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {ComponentChildren} children The unflattened children of a virtual\n * node\n * @returns {VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\n/**\n * @param {VNode} childVNode\n * @param {VNode[]} oldChildren\n * @param {number} skewedIndex\n * @param {number} remainingOldChildren\n * @returns {number}\n */\nfunction findMatchingIndex(\n\tchildVNode,\n\toldChildren,\n\tskewedIndex,\n\tremainingOldChildren\n) {\n\tconst key = childVNode.key;\n\tconst type = childVNode.type;\n\tlet x = skewedIndex - 1;\n\tlet y = skewedIndex + 1;\n\tlet oldVNode = oldChildren[skewedIndex];\n\n\t// We only need to perform a search if there are more children\n\t// (remainingOldChildren) to search. However, if the oldVNode we just looked\n\t// at skewedIndex was not already used in this diff, then there must be at\n\t// least 1 other (so greater than 1) remainingOldChildren to attempt to match\n\t// against. So the following condition checks that ensuring\n\t// remainingOldChildren > 1 if the oldVNode is not already used/matched. Else\n\t// if the oldVNode was null or matched, then there could needs to be at least\n\t// 1 (aka `remainingOldChildren > 0`) children to find and compare against.\n\tlet shouldSearch =\n\t\tremainingOldChildren >\n\t\t(oldVNode != null && (oldVNode._flags & MATCHED) === 0 ? 1 : 0);\n\n\tif (\n\t\toldVNode === null ||\n\t\t(oldVNode &&\n\t\t\tkey == oldVNode.key &&\n\t\t\ttype === oldVNode.type &&\n\t\t\t(oldVNode._flags & MATCHED) === 0)\n\t) {\n\t\treturn skewedIndex;\n\t} else if (shouldSearch) {\n\t\twhile (x >= 0 || y < oldChildren.length) {\n\t\t\tif (x >= 0) {\n\t\t\t\toldVNode = oldChildren[x];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) === 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn x;\n\t\t\t\t}\n\t\t\t\tx--;\n\t\t\t}\n\n\t\t\tif (y < oldChildren.length) {\n\t\t\t\toldVNode = oldChildren[y];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) === 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn y;\n\t\t\t\t}\n\t\t\t\ty++;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn -1;\n}\n", "import {\n\tEMPTY_OBJ,\n\tMODE_HYDRATE,\n\tMODE_SUSPENDED,\n\tRESET_MODE\n} from '../constants';\nimport { BaseComponent, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { setProperty } from './props';\nimport { assign, isArray, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {PreactElement} parentDom The parent of the DOM element\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by\n * getChildContext\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array<PreactElement>} excessDomChildren\n * @param {Array<Component>} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\t/** @type {any} */\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._flags & MODE_SUSPENDED) {\n\t\tisHydrating = !!(oldVNode._flags & MODE_HYDRATE);\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\touter: if (typeof newType == 'function') {\n\t\ttry {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\t\t\tconst isClassComponent =\n\t\t\t\t'prototype' in newType && newType.prototype.render;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif (isClassComponent) {\n\t\t\t\t\t// @ts-expect-error The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-expect-error Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new BaseComponent(\n\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (isClassComponent && c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (isClassComponent && newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\t\t\tc._vnode = newVNode;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tisClassComponent &&\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (isClassComponent && c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tisClassComponent &&\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!c._force &&\n\t\t\t\t\t((c.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\t\tnewVNode._original === oldVNode._original)\n\t\t\t\t) {\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) {\n\t\t\t\t\t\t// When we are dealing with a bail because of sCU we have to update\n\t\t\t\t\t\t// the props, state and dirty-state.\n\t\t\t\t\t\t// when we are dealing with strict-equality we don't as the child could still\n\t\t\t\t\t\t// be dirtied see #3883\n\t\t\t\t\t\tc.props = newProps;\n\t\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t\tc._dirty = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.some(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (isClassComponent && c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._parentDom = parentDom;\n\t\t\tc._force = false;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif (isClassComponent) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (isClassComponent && !isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tisArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnamespace,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._flags &= RESET_MODE;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tnewVNode._original = null;\n\t\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\t\tnewVNode._flags |= isHydrating\n\t\t\t\t\t? MODE_HYDRATE | MODE_SUSPENDED\n\t\t\t\t\t: MODE_SUSPENDED;\n\n\t\t\t\twhile (oldDom && oldDom.nodeType === 8 && oldDom.nextSibling) {\n\t\t\t\t\toldDom = oldDom.nextSibling;\n\t\t\t\t}\n\t\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t\tnewVNode._dom = oldDom;\n\t\t\t} else {\n\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t}\n\t\t\toptions._catchError(e, newVNode, oldVNode);\n\t\t}\n\t} else if (\n\t\texcessDomChildren == null &&\n\t\tnewVNode._original === oldVNode._original\n\t) {\n\t\tnewVNode._children = oldVNode._children;\n\t\tnewVNode._dom = oldVNode._dom;\n\t} else {\n\t\tnewVNode._dom = diffElementNodes(\n\t\t\toldVNode._dom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tnamespace,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\t}\n\n\tif ((tmp = options.diffed)) tmp(newVNode);\n}\n\n/**\n * @param {Array<Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {VNode} root\n */\nexport function commitRoot(commitQueue, root, refQueue) {\n\troot._nextDom = undefined;\n\n\tfor (let i = 0; i < refQueue.length; i++) {\n\t\tapplyRef(refQueue[i], refQueue[++i], refQueue[++i]);\n\t}\n\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-expect-error Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-expect-error See above comment on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {PreactElement} dom The DOM element representing the virtual nodes\n * being diffed\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array<PreactElement>} excessDomChildren\n * @param {Array<Component>} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n * @returns {PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating,\n\trefQueue\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = /** @type {string} */ (newVNode.type);\n\t/** @type {any} */\n\tlet i;\n\t/** @type {{ __html?: string }} */\n\tlet newHtml;\n\t/** @type {{ __html?: string }} */\n\tlet oldHtml;\n\t/** @type {ComponentChildren} */\n\tlet newChildren;\n\tlet value;\n\tlet inputValue;\n\tlet checked;\n\n\t// Tracks entering and exiting namespaces when descending through the tree.\n\tif (nodeType === 'svg') namespace = 'http://www.w3.org/2000/svg';\n\telse if (nodeType === 'math')\n\t\tnamespace = 'http://www.w3.org/1998/Math/MathML';\n\telse if (!namespace) namespace = 'http://www.w3.org/1999/xhtml';\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tvalue = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tvalue &&\n\t\t\t\t'setAttribute' in value === !!nodeType &&\n\t\t\t\t(nodeType ? value.localName === nodeType : value.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = value;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = document.createElementNS(\n\t\t\tnamespace,\n\t\t\tnodeType,\n\t\t\tnewProps.is && newProps\n\t\t);\n\n\t\t// we are creating a new node, so we can assume this is a new subtree (in\n\t\t// case we are hydrating), this deopts the hydrate\n\t\tif (isHydrating) {\n\t\t\tif (options._hydrationMismatch)\n\t\t\t\toptions._hydrationMismatch(newVNode, excessDomChildren);\n\t\t\tisHydrating = false;\n\t\t}\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\t// If we are in a situation where we are not hydrating but are using\n\t\t// existing DOM (e.g. replaceNode) we should read the existing DOM\n\t\t// attributes to diff them\n\t\tif (!isHydrating && excessDomChildren != null) {\n\t\t\toldProps = {};\n\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\tvalue = dom.attributes[i];\n\t\t\t\toldProps[value.name] = value.value;\n\t\t\t}\n\t\t}\n\n\t\tfor (i in oldProps) {\n\t\t\tvalue = oldProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\toldHtml = value;\n\t\t\t} else if (!(i in newProps)) {\n\t\t\t\tif (\n\t\t\t\t\t(i == 'value' && 'defaultValue' in newProps) ||\n\t\t\t\t\t(i == 'checked' && 'defaultChecked' in newProps)\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tsetProperty(dom, i, null, value, namespace);\n\t\t\t}\n\t\t}\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tfor (i in newProps) {\n\t\t\tvalue = newProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t\tnewChildren = value;\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\tnewHtml = value;\n\t\t\t} else if (i == 'value') {\n\t\t\t\tinputValue = value;\n\t\t\t} else if (i == 'checked') {\n\t\t\t\tchecked = value;\n\t\t\t} else if (\n\t\t\t\t(!isHydrating || typeof value == 'function') &&\n\t\t\t\toldProps[i] !== value\n\t\t\t) {\n\t\t\t\tsetProperty(dom, i, value, oldProps[i], namespace);\n\t\t\t}\n\t\t}\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\tif (\n\t\t\t\t!isHydrating &&\n\t\t\t\t(!oldHtml ||\n\t\t\t\t\t(newHtml.__html !== oldHtml.__html &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML))\n\t\t\t) {\n\t\t\t\tdom.innerHTML = newHtml.__html;\n\t\t\t}\n\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\tif (oldHtml) dom.innerHTML = '';\n\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tisArray(newChildren) ? newChildren : [newChildren],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnodeType === 'foreignObject'\n\t\t\t\t\t? 'http://www.w3.org/1999/xhtml'\n\t\t\t\t\t: namespace,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tremoveNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// As above, don't diff props during hydration\n\t\tif (!isHydrating) {\n\t\t\ti = 'value';\n\t\t\tif (nodeType === 'progress' && inputValue == null) {\n\t\t\t\tdom.removeAttribute('value');\n\t\t\t} else if (\n\t\t\t\tinputValue !== undefined &&\n\t\t\t\t// #2756 For the <progress>-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(inputValue !== dom[i] ||\n\t\t\t\t\t(nodeType === 'progress' && !inputValue) ||\n\t\t\t\t\t// This is only for IE 11 to fix <select> value not being updated.\n\t\t\t\t\t// To avoid a stale select value we need to set the option.value\n\t\t\t\t\t// again, which triggers IE11 to re-evaluate the select value\n\t\t\t\t\t(nodeType === 'option' && inputValue !== oldProps[i]))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, i, inputValue, oldProps[i], namespace);\n\t\t\t}\n\n\t\t\ti = 'checked';\n\t\t\tif (checked !== undefined && checked !== dom[i]) {\n\t\t\t\tsetProperty(dom, i, checked, oldProps[i], namespace);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {Ref<any> & { _unmount?: unknown }} ref\n * @param {any} value\n * @param {VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') {\n\t\t\tlet hasRefUnmount = typeof ref._unmount == 'function';\n\t\t\tif (hasRefUnmount) {\n\t\t\t\t// @ts-ignore TS doesn't like moving narrowing checks into variables\n\t\t\t\tref._unmount();\n\t\t\t}\n\n\t\t\tif (!hasRefUnmount || value != null) {\n\t\t\t\t// Store the cleanup function on the function\n\t\t\t\t// instance object itself to avoid shape\n\t\t\t\t// transitioning vnode\n\t\t\t\tref._unmount = ref(value);\n\t\t\t}\n\t\t} else ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {VNode} vnode The virtual node to unmount\n * @param {VNode} parentVNode The parent of the VNode that initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) {\n\t\t\tapplyRef(r, null, parentVNode);\n\t\t}\n\t}\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(\n\t\t\t\t\tr[i],\n\t\t\t\t\tparentVNode,\n\t\t\t\t\tskipRemove || typeof vnode.type != 'function'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove) {\n\t\tremoveNode(vnode._dom);\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._component = vnode._parent = vnode._dom = vnode._nextDom = undefined;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n", "import { EMPTY_OBJ } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\nimport { slice } from './util';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {ComponentChild} vnode The virtual node to render\n * @param {PreactElement} parentDom The DOM element to render into\n * @param {PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode == 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\n\tvnode = ((!isHydrating && replaceNode) || parentDom)._children =\n\t\tcreateElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [],\n\t\trefQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.namespaceURI,\n\t\t!isHydrating && replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t\t? null\n\t\t\t\t: parentDom.firstChild\n\t\t\t\t\t? slice.call(parentDom.childNodes)\n\t\t\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating && replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t\t? oldVNode._dom\n\t\t\t\t: parentDom.firstChild,\n\t\tisHydrating,\n\t\trefQueue\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode, refQueue);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {ComponentChild} vnode The virtual node to render\n * @param {PreactElement} parentDom The DOM element to update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n", "import { assign, slice } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its\n * children.\n * @param {VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<ComponentChildren>} rest Any additional arguments will be used\n * as replacement children.\n * @returns {VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\n\tlet defaultProps;\n\n\tif (vnode.type && vnode.type.defaultProps) {\n\t\tdefaultProps = vnode.type.defaultProps;\n\t}\n\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse if (props[i] === undefined && defaultProps !== undefined) {\n\t\t\tnormalizedProps[i] = defaultProps[i];\n\t\t} else {\n\t\t\tnormalizedProps[i] = props[i];\n\t\t}\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n", "/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {VNode} vnode The vnode that threw the error that was caught (except\n * for unmounting when this parameter is the highest parent that was being\n * unmounted)\n * @param {VNode} [oldVNode]\n * @param {ErrorInfo} [errorInfo]\n */\nexport function _catchError(error, vnode, oldVNode, errorInfo) {\n\t/** @type {Component} */\n\tlet component,\n\t\t/** @type {ComponentType} */\n\t\tctor,\n\t\t/** @type {boolean} */\n\t\thandled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error, errorInfo || {});\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n", "import { options as _options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {import('./internal').Component} */\nlet previousComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\n// Cast to use internal Options type\nconst options = /** @type {import('./internal').Options} */ (_options);\n\nlet oldBeforeDiff = options._diff;\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\nlet oldRoot = options._root;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\n/** @type {(vnode: import('./internal').VNode) => void} */\noptions._diff = vnode => {\n\tcurrentComponent = null;\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n};\n\noptions._root = (vnode, parentDom) => {\n\tif (vnode && parentDom._children && parentDom._children._mask) {\n\t\tvnode._mask = parentDom._children._mask;\n\t}\n\n\tif (oldRoot) oldRoot(vnode, parentDom);\n};\n\n/** @type {(vnode: import('./internal').VNode) => void} */\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\tif (previousComponent === currentComponent) {\n\t\t\thooks._pendingEffects = [];\n\t\t\tcurrentComponent._renderCallbacks = [];\n\t\t\thooks._list.forEach(hookItem => {\n\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t}\n\t\t\t\thookItem._pendingArgs = hookItem._nextValue = undefined;\n\t\t\t});\n\t\t} else {\n\t\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\t\thooks._pendingEffects = [];\n\t\t\tcurrentIndex = 0;\n\t\t}\n\t}\n\tpreviousComponent = currentComponent;\n};\n\n/** @type {(vnode: import('./internal').VNode) => void} */\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tif (c.__hooks._pendingEffects.length) afterPaint(afterPaintEffects.push(c));\n\t\tc.__hooks._list.forEach(hookItem => {\n\t\t\tif (hookItem._pendingArgs) {\n\t\t\t\thookItem._args = hookItem._pendingArgs;\n\t\t\t}\n\t\t\thookItem._pendingArgs = undefined;\n\t\t});\n\t}\n\tpreviousComponent = currentComponent = null;\n};\n\n// TODO: Improve typing of commitQueue parameter\n/** @type {(vnode: import('./internal').VNode, commitQueue: any) => void} */\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\n/** @type {(vnode: import('./internal').VNode) => void} */\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tlet hasErrored;\n\t\tc.__hooks._list.forEach(s => {\n\t\t\ttry {\n\t\t\t\tinvokeCleanup(s);\n\t\t\t} catch (e) {\n\t\t\t\thasErrored = e;\n\t\t\t}\n\t\t});\n\t\tc.__hooks = undefined;\n\t\tif (hasErrored) options._catchError(hasErrored, c._vnode);\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {any}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({});\n\t}\n\n\treturn hooks._list[index];\n}\n\n/**\n * @template {unknown} S\n * @param {import('./index').Dispatch<import('./index').StateUpdater<S>>} [initialState]\n * @returns {[S, (state: S) => void]}\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @template {unknown} S\n * @template {unknown} A\n * @param {import('./index').Reducer<S, A>} reducer\n * @param {import('./index').Dispatch<import('./index').StateUpdater<S>>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ S, (state: S) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst currentValue = hookState._nextValue\n\t\t\t\t\t? hookState._nextValue[0]\n\t\t\t\t\t: hookState._value[0];\n\t\t\t\tconst nextValue = hookState._reducer(currentValue, action);\n\n\t\t\t\tif (currentValue !== nextValue) {\n\t\t\t\t\thookState._nextValue = [nextValue, hookState._value[1]];\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\thookState._component = currentComponent;\n\n\t\tif (!currentComponent._hasScuFromHooks) {\n\t\t\tcurrentComponent._hasScuFromHooks = true;\n\t\t\tlet prevScu = currentComponent.shouldComponentUpdate;\n\t\t\tconst prevCWU = currentComponent.componentWillUpdate;\n\n\t\t\t// If we're dealing with a forced update `shouldComponentUpdate` will\n\t\t\t// not be called. But we use that to update the hook values, so we\n\t\t\t// need to call it.\n\t\t\tcurrentComponent.componentWillUpdate = function (p, s, c) {\n\t\t\t\tif (this._force) {\n\t\t\t\t\tlet tmp = prevScu;\n\t\t\t\t\t// Clear to avoid other sCU hooks from being called\n\t\t\t\t\tprevScu = undefined;\n\t\t\t\t\tupdateHookState(p, s, c);\n\t\t\t\t\tprevScu = tmp;\n\t\t\t\t}\n\n\t\t\t\tif (prevCWU) prevCWU.call(this, p, s, c);\n\t\t\t};\n\n\t\t\t// This SCU has the purpose of bailing out after repeated updates\n\t\t\t// to stateful hooks.\n\t\t\t// we store the next value in _nextValue[0] and keep doing that for all\n\t\t\t// state setters, if we have next states and\n\t\t\t// all next states within a component end up being equal to their original state\n\t\t\t// we are safe to bail out for this specific component.\n\t\t\t/**\n\t\t\t *\n\t\t\t * @type {import('./internal').Component[\"shouldComponentUpdate\"]}\n\t\t\t */\n\t\t\t// @ts-ignore - We don't use TS to downtranspile\n\t\t\t// eslint-disable-next-line no-inner-declarations\n\t\t\tfunction updateHookState(p, s, c) {\n\t\t\t\tif (!hookState._component.__hooks) return true;\n\n\t\t\t\t/** @type {(x: import('./internal').HookState) => x is import('./internal').ReducerHookState} */\n\t\t\t\tconst isStateHook = x => !!x._component;\n\t\t\t\tconst stateHooks =\n\t\t\t\t\thookState._component.__hooks._list.filter(isStateHook);\n\n\t\t\t\tconst allHooksEmpty = stateHooks.every(x => !x._nextValue);\n\t\t\t\t// When we have no updated hooks in the component we invoke the previous SCU or\n\t\t\t\t// traverse the VDOM tree further.\n\t\t\t\tif (allHooksEmpty) {\n\t\t\t\t\treturn prevScu ? prevScu.call(this, p, s, c) : true;\n\t\t\t\t}\n\n\t\t\t\t// We check whether we have components with a nextValue set that\n\t\t\t\t// have values that aren't equal to one another this pushes\n\t\t\t\t// us to update further down the tree\n\t\t\t\tlet shouldUpdate = false;\n\t\t\t\tstateHooks.forEach(hookItem => {\n\t\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\t\tconst currentValue = hookItem._value[0];\n\t\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t\t\thookItem._nextValue = undefined;\n\t\t\t\t\t\tif (currentValue !== hookItem._value[0]) shouldUpdate = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn shouldUpdate || hookState._component.props !== p\n\t\t\t\t\t? prevScu\n\t\t\t\t\t\t? prevScu.call(this, p, s, c)\n\t\t\t\t\t\t: true\n\t\t\t\t\t: false;\n\t\t\t}\n\n\t\t\tcurrentComponent.shouldComponentUpdate = updateHookState;\n\t\t}\n\t}\n\n\treturn hookState._nextValue || hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {unknown[]} args\n * @returns {void}\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {unknown[]} args\n * @returns {void}\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\n/** @type {(initialValue: unknown) => unknown} */\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {unknown[]} args\n * @returns {void}\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') {\n\t\t\t\tref(createHandle());\n\t\t\t\treturn () => ref(null);\n\t\t\t} else if (ref) {\n\t\t\t\tref.current = createHandle();\n\t\t\t\treturn () => (ref.current = null);\n\t\t\t}\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @template {unknown} T\n * @param {() => T} factory\n * @param {unknown[]} args\n * @returns {T}\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState<T>} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = factory();\n\t\tstate._args = args;\n\t\tstate._factory = factory;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {unknown[]} args\n * @returns {() => void}\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\t/** @type {import('./internal').ContextHookState} */\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(\n\t\t\tformatter ? formatter(value) : /** @type {any}*/ (value)\n\t\t);\n\t}\n}\n\n/**\n * @param {(error: unknown, errorInfo: import('preact').ErrorInfo) => void} cb\n * @returns {[unknown, () => void]}\n */\nexport function useErrorBoundary(cb) {\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = (err, errorInfo) => {\n\t\t\tif (state._value) state._value(err, errorInfo);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\n/** @type {() => string} */\nexport function useId() {\n\t/** @type {import('./internal').IdHookState} */\n\tconst state = getHookState(currentIndex++, 11);\n\tif (!state._value) {\n\t\t// Grab either the root node or the nearest async boundary node.\n\t\t/** @type {import('./internal.d').VNode} */\n\t\tlet root = currentComponent._vnode;\n\t\twhile (root !== null && !root._mask && root._parent !== null) {\n\t\t\troot = root._parent;\n\t\t}\n\n\t\tlet mask = root._mask || (root._mask = [0, 0]);\n\t\tstate._value = 'P' + mask[0] + '-' + mask[1]++;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tlet component;\n\twhile ((component = afterPaintEffects.shift())) {\n\t\tif (!component._parentDom || !component.__hooks) continue;\n\t\ttry {\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t} catch (e) {\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t}\n}\n\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (HAS_RAF) {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n * @returns {void}\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').HookState} hook\n * @returns {void}\n */\nfunction invokeCleanup(hook) {\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\tlet cleanup = hook._cleanup;\n\tif (typeof cleanup == 'function') {\n\t\thook._cleanup = undefined;\n\t\tcleanup();\n\t}\n\n\tcurrentComponent = comp;\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n * @returns {void}\n */\nfunction invokeEffect(hook) {\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\thook._cleanup = hook._value();\n\tcurrentComponent = comp;\n}\n\n/**\n * @param {unknown[]} oldArgs\n * @param {unknown[]} newArgs\n * @returns {boolean}\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn (\n\t\t!oldArgs ||\n\t\toldArgs.length !== newArgs.length ||\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\n\t);\n}\n\n/**\n * @template Arg\n * @param {Arg} arg\n * @param {(arg: Arg) => any} f\n * @returns {any}\n */\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n", "/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Check if two objects have a different shape\n * @param {object} a\n * @param {object} b\n * @returns {boolean}\n */\nexport function shallowDiffers(a, b) {\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\n\treturn false;\n}\n\n/**\n * Check if two values are the same value\n * @param {*} x\n * @param {*} y\n * @returns {boolean}\n */\nexport function is(x, y) {\n\treturn (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\n", "import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport function PureComponent(p, c) {\n\tthis.props = p;\n\tthis.context = c;\n}\nPureComponent.prototype = new Component();\n// Some third-party libraries check if this property is present\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function (props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n", "import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n", "import { options } from 'preact';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionComponent}\n */\nexport function forwardRef(fn) {\n\tfunction Forwarded(props) {\n\t\tif (!('ref' in props)) return fn(props, null);\n\n\t\tlet ref = props.ref;\n\t\tdelete props.ref;\n\t\tconst result = fn(props, ref);\n\t\tprops.ref = ref;\n\t\treturn result;\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n", "import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (children == null) return null;\n\treturn toChildArray(toChildArray(children).map(fn));\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tconst normalized = toChildArray(children);\n\t\tif (normalized.length !== 1) throw 'Children.only';\n\t\treturn normalized[0];\n\t},\n\ttoArray: toChildArray\n};\n", "import { Component, createElement, options, Fragment } from 'preact';\nimport { MODE_HYDRATE } from '../../src/constants';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function (error, newVNode, oldVNode, errorInfo) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode, errorInfo);\n};\n\nconst oldUnmount = options.unmount;\noptions.unmount = function (vnode) {\n\t/** @type {import('./internal').Component} */\n\tconst component = vnode._component;\n\tif (component && component._onResolve) {\n\t\tcomponent._onResolve();\n\t}\n\n\t// if the component is still hydrating\n\t// most likely it is because the component is suspended\n\t// we set the vnode.type as `null` so that it is not a typeof function\n\t// so the unmount will remove the vnode._dom\n\tif (component && vnode._flags & MODE_HYDRATE) {\n\t\tvnode.type = null;\n\t}\n\n\tif (oldUnmount) oldUnmount(vnode);\n};\n\nfunction detachedClone(vnode, detachedParent, parentDom) {\n\tif (vnode) {\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\n\t\t\t});\n\n\t\t\tvnode._component.__hooks = null;\n\t\t}\n\n\t\tvnode = assign({}, vnode);\n\t\tif (vnode._component != null) {\n\t\t\tif (vnode._component._parentDom === parentDom) {\n\t\t\t\tvnode._component._parentDom = detachedParent;\n\t\t\t}\n\t\t\tvnode._component = null;\n\t\t}\n\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tdetachedClone(child, detachedParent, parentDom)\n\t\t\t);\n\t}\n\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode, detachedParent, originalParent) {\n\tif (vnode && originalParent) {\n\t\tvnode._original = null;\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tremoveOriginal(child, detachedParent, originalParent)\n\t\t\t);\n\n\t\tif (vnode._component) {\n\t\t\tif (vnode._component._parentDom === detachedParent) {\n\t\t\t\tif (vnode._dom) {\n\t\t\t\t\toriginalParent.appendChild(vnode._dom);\n\t\t\t\t}\n\t\t\t\tvnode._component._force = true;\n\t\t\t\tvnode._component._parentDom = originalParent;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {Promise} promise The thrown promise\n * @param {import('./internal').VNode<any, any>} suspendingVNode The suspending component\n */\nSuspense.prototype._childDidSuspend = function (promise, suspendingVNode) {\n\tconst suspendingComponent = suspendingVNode._component;\n\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent._onResolve = null;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._onResolve = onResolved;\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\t// If the suspension was during hydration we don't need to restore the\n\t\t\t// suspended children into the _children array\n\t\t\tif (c.state._suspended) {\n\t\t\t\tconst suspendedVNode = c.state._suspended;\n\t\t\t\tc._vnode._children[0] = removeOriginal(\n\t\t\t\t\tsuspendedVNode,\n\t\t\t\t\tsuspendedVNode._component._parentDom,\n\t\t\t\t\tsuspendedVNode._component._originalParentDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * We do not set `suspended: true` during hydration because we want the actual markup\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\n\t */\n\tif (\n\t\t!c._pendingSuspensionCount++ &&\n\t\t!(suspendingVNode._flags & MODE_HYDRATE)\n\t) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function () {\n\tthis._suspenders = [];\n};\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {import('./internal').SuspenseComponent[\"props\"]} props\n * @param {import('./internal').SuspenseState} state\n */\nSuspense.prototype.render = function (props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children) {\n\t\t\tconst detachedParent = document.createElement('div');\n\t\t\tconst detachedComponent = this._vnode._children[0]._component;\n\t\t\tthis._vnode._children[0] = detachedClone(\n\t\t\t\tthis._detachOnNextRender,\n\t\t\t\tdetachedParent,\n\t\t\t\t(detachedComponent._originalParentDom = detachedComponent._parentDom)\n\t\t\t);\n\t\t}\n\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\n\t/** @type {import('./internal').VNode} */\n\tconst fallback =\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\n\tif (fallback) fallback._flags &= ~MODE_HYDRATE;\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tfallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('./internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\t/** @type {import('./internal').Component} */\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n", "import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function (child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function (props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate =\n\tSuspenseList.prototype.componentDidMount = function () {\n\t\t// Iterate through all children after mounting for two reasons:\n\t\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t\t// The nodes can now be completely consumed from the linked list.\n\t\t// 2. Handle nodes that might have gotten resolved between render and\n\t\t// componentDidMount.\n\t\tthis._map.forEach((node, child) => {\n\t\t\tresolve(this, child, node);\n\t\t});\n\t};\n", "/** Normal hydration that attaches to a DOM tree but does not diff it. */\nexport const MODE_HYDRATE = 1 << 5;\n/** Signifies this VNode suspended on the previous render */\nexport const MODE_SUSPENDED = 1 << 7;\n/** Indicates that this node needs to be inserted while patching children */\nexport const INSERT_VNODE = 1 << 16;\n/** Indicates a VNode has been matched with another VNode in the diff */\nexport const MATCHED = 1 << 17;\n\n/** Reset all mode flags */\nexport const RESET_MODE = ~(MODE_HYDRATE | MODE_SUSPENDED);\n\nexport const EMPTY_OBJ = /** @type {any} */ ({});\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL =\n\t/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n", "import { createElement, render } from 'preact';\n\n/**\n * @param {import('../../src/index').RenderableProps<{ context: any }>} props\n */\nfunction ContextProvider(props) {\n\tthis.getChildContext = () => props.context;\n\treturn props.children;\n}\n\n/**\n * Portal component\n * @this {import('./internal').Component}\n * @param {object | null | undefined} props\n *\n * TODO: use createRoot() instead of fake root\n */\nfunction Portal(props) {\n\tconst _this = this;\n\tlet container = props._container;\n\n\t_this.componentWillUnmount = function () {\n\t\trender(null, _this._temp);\n\t\t_this._temp = null;\n\t\t_this._container = null;\n\t};\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\t_this.componentWillUnmount();\n\t}\n\n\tif (!_this._temp) {\n\t\t_this._container = container;\n\n\t\t// Create a fake DOM parent node that manages a subset of `container`'s children:\n\t\t_this._temp = {\n\t\t\tnodeType: 1,\n\t\t\tparentNode: container,\n\t\t\tchildNodes: [],\n\t\t\tcontains: () => true,\n\t\t\tappendChild(child) {\n\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t_this._container.appendChild(child);\n\t\t\t},\n\t\t\tinsertBefore(child, before) {\n\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t_this._container.appendChild(child);\n\t\t\t},\n\t\t\tremoveChild(child) {\n\t\t\t\tthis.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);\n\t\t\t\t_this._container.removeChild(child);\n\t\t\t}\n\t\t};\n\t}\n\n\t// Render our wrapping element into temp.\n\trender(\n\t\tcreateElement(ContextProvider, { context: _this.context }, props._vnode),\n\t\t_this._temp\n\t);\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\tconst el = createElement(Portal, { _vnode: vnode, _container: container });\n\tel.containerInfo = container;\n\treturn el;\n}\n", "import {\n\trender as preactRender,\n\thydrate as preactHydrate,\n\toptions,\n\ttoChildArray,\n\tComponent\n} from 'preact';\nimport {\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue,\n\tuseEffect,\n\tuseId,\n\tuseImperativeHandle,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseReducer,\n\tuseRef,\n\tuseState\n} from 'preact/hooks';\nimport {\n\tuseDeferredValue,\n\tuseInsertionEffect,\n\tuseSyncExternalStore,\n\tuseTransition\n} from './index';\n\nexport const REACT_ELEMENT_TYPE =\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\n\t0xeac7;\n\nconst CAMEL_PROPS =\n\t/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\nconst ON_ANI = /^on(Ani|Tra|Tou|BeforeInp|Compo)/;\nconst CAMEL_REPLACE = /[A-Z0-9]/g;\nconst IS_DOM = typeof document !== 'undefined';\n\n// Input types for which onchange should not be converted to oninput.\n// type=\"file|checkbox|radio\", plus \"range\" in IE11.\n// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches \"range\")\nconst onChangeInputType = type =>\n\t(typeof Symbol != 'undefined' && typeof Symbol() == 'symbol'\n\t\t? /fil|che|rad/\n\t\t: /fil|che|ra/\n\t).test(type);\n\n// Some libraries like `react-virtualized` explicitly check for this.\nComponent.prototype.isReactComponent = {};\n\n// `UNSAFE_*` lifecycle hooks\n// Preact only ever invokes the unprefixed methods.\n// Here we provide a base \"fallback\" implementation that calls any defined UNSAFE_ prefixed method.\n// - If a component defines its own `componentDidMount()` (including via defineProperty), use that.\n// - If a component defines `UNSAFE_componentDidMount()`, `componentDidMount` is the alias getter/setter.\n// - If anything assigns to an `UNSAFE_*` property, the assignment is forwarded to the unprefixed property.\n// See https://github.com/preactjs/preact/issues/1941\n[\n\t'componentWillMount',\n\t'componentWillReceiveProps',\n\t'componentWillUpdate'\n].forEach(key => {\n\tObject.defineProperty(Component.prototype, key, {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn this['UNSAFE_' + key];\n\t\t},\n\t\tset(v) {\n\t\t\tObject.defineProperty(this, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: v\n\t\t\t});\n\t\t}\n\t});\n});\n\n/**\n * Proxy render() since React returns a Component reference.\n * @param {import('./internal').VNode} vnode VNode tree to render\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\n * @param {() => void} [callback] Optional callback that will be called after rendering\n * @returns {import('./internal').Component | null} The root component reference or null\n */\nexport function render(vnode, parent, callback) {\n\t// React destroys any existing DOM nodes, see #1727\n\t// ...but only on the first render, see #1828\n\tif (parent._children == null) {\n\t\tparent.textContent = '';\n\t}\n\n\tpreactRender(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nexport function hydrate(vnode, parent, callback) {\n\tpreactHydrate(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nlet oldEventHook = options.event;\noptions.event = e => {\n\tif (oldEventHook) e = oldEventHook(e);\n\n\te.persist = empty;\n\te.isPropagationStopped = isPropagationStopped;\n\te.isDefaultPrevented = isDefaultPrevented;\n\treturn (e.nativeEvent = e);\n};\n\nfunction empty() {}\n\nfunction isPropagationStopped() {\n\treturn this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n\treturn this.defaultPrevented;\n}\n\nconst classNameDescriptorNonEnumberable = {\n\tenumerable: false,\n\tconfigurable: true,\n\tget() {\n\t\treturn this.class;\n\t}\n};\n\nfunction handleDomVNode(vnode) {\n\tlet props = vnode.props,\n\t\ttype = vnode.type,\n\t\tnormalizedProps = {};\n\n\tlet isNonDashedType = type.indexOf('-') === -1;\n\tfor (let i in props) {\n\t\tlet value = props[i];\n\n\t\tif (\n\t\t\t(i === 'value' && 'defaultValue' in props && value == null) ||\n\t\t\t// Emulate React's behavior of not rendering the contents of noscript tags on the client.\n\t\t\t(IS_DOM && i === 'children' && type === 'noscript') ||\n\t\t\ti === 'class' ||\n\t\t\ti === 'className'\n\t\t) {\n\t\t\t// Skip applying value if it is null/undefined and we already set\n\t\t\t// a default value\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet lowerCased = i.toLowerCase();\n\t\tif (i === 'defaultValue' && 'value' in props && props.value == null) {\n\t\t\t// `defaultValue` is treated as a fallback `value` when a value prop is present but null/undefined.\n\t\t\t// `defaultValue` for Elements with no value prop is the same as the DOM defaultValue property.\n\t\t\ti = 'value';\n\t\t} else if (i === 'download' && value === true) {\n\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\n\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\n\t\t\t// converts it to an empty string instead, otherwise the attribute\n\t\t\t// value will be used as the file name and the file will be called\n\t\t\t// \"true\" upon downloading it.\n\t\t\tvalue = '';\n\t\t} else if (lowerCased === 'translate' && value === 'no') {\n\t\t\tvalue = false;\n\t\t} else if (lowerCased[0] === 'o' && lowerCased[1] === 'n') {\n\t\t\tif (lowerCased === 'ondoubleclick') {\n\t\t\t\ti = 'ondblclick';\n\t\t\t} else if (\n\t\t\t\tlowerCased === 'onchange' &&\n\t\t\t\t(type === 'input' || type === 'textarea') &&\n\t\t\t\t!onChangeInputType(props.type)\n\t\t\t) {\n\t\t\t\tlowerCased = i = 'oninput';\n\t\t\t} else if (lowerCased === 'onfocus') {\n\t\t\t\ti = 'onfocusin';\n\t\t\t} else if (lowerCased === 'onblur') {\n\t\t\t\ti = 'onfocusout';\n\t\t\t} else if (ON_ANI.test(i)) {\n\t\t\t\ti = lowerCased;\n\t\t\t}\n\t\t} else if (isNonDashedType && CAMEL_PROPS.test(i)) {\n\t\t\ti = i.replace(CAMEL_REPLACE, '-$&').toLowerCase();\n\t\t} else if (value === null) {\n\t\t\tvalue = undefined;\n\t\t}\n\n\t\t// Add support for onInput and onChange, see #3561\n\t\t// if we have an oninput prop already change it to oninputCapture\n\t\tif (lowerCased === 'oninput') {\n\t\t\ti = lowerCased;\n\t\t\tif (normalizedProps[i]) {\n\t\t\t\ti = 'oninputCapture';\n\t\t\t}\n\t\t}\n\n\t\tnormalizedProps[i] = value;\n\t}\n\n\t// Add support for array select values: <select multiple value={[]} />\n\tif (\n\t\ttype == 'select' &&\n\t\tnormalizedProps.multiple &&\n\t\tArray.isArray(normalizedProps.value)\n\t) {\n\t\t// forEach() always returns undefined, which we abuse here to unset the value prop.\n\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\tchild.props.selected =\n\t\t\t\tnormalizedProps.value.indexOf(child.props.value) != -1;\n\t\t});\n\t}\n\n\t// Adding support for defaultValue in select tag\n\tif (type == 'select' && normalizedProps.defaultValue != null) {\n\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\tif (normalizedProps.multiple) {\n\t\t\t\tchild.props.selected =\n\t\t\t\t\tnormalizedProps.defaultValue.indexOf(child.props.value) != -1;\n\t\t\t} else {\n\t\t\t\tchild.props.selected =\n\t\t\t\t\tnormalizedProps.defaultValue == child.props.value;\n\t\t\t}\n\t\t});\n\t}\n\n\tif (props.class && !props.className) {\n\t\tnormalizedProps.class = props.class;\n\t\tObject.defineProperty(\n\t\t\tnormalizedProps,\n\t\t\t'className',\n\t\t\tclassNameDescriptorNonEnumberable\n\t\t);\n\t} else if (props.className && !props.class) {\n\t\tnormalizedProps.class = normalizedProps.className = props.className;\n\t} else if (props.class && props.className) {\n\t\tnormalizedProps.class = normalizedProps.className = props.className;\n\t}\n\n\tvnode.props = normalizedProps;\n}\n\nlet oldVNodeHook = options.vnode;\noptions.vnode = vnode => {\n\t// only normalize props on Element nodes\n\tif (typeof vnode.type === 'string') {\n\t\thandleDomVNode(vnode);\n\t}\n\n\tvnode.$$typeof = REACT_ELEMENT_TYPE;\n\n\tif (oldVNodeHook) oldVNodeHook(vnode);\n};\n\n// Only needed for react-relay\nlet currentComponent;\nconst oldBeforeRender = options._render;\noptions._render = function (vnode) {\n\tif (oldBeforeRender) {\n\t\toldBeforeRender(vnode);\n\t}\n\tcurrentComponent = vnode._component;\n};\n\nconst oldDiffed = options.diffed;\n/** @type {(vnode: import('./internal').VNode) => void} */\noptions.diffed = function (vnode) {\n\tif (oldDiffed) {\n\t\toldDiffed(vnode);\n\t}\n\n\tconst props = vnode.props;\n\tconst dom = vnode._dom;\n\n\tif (\n\t\tdom != null &&\n\t\tvnode.type === 'textarea' &&\n\t\t'value' in props &&\n\t\tprops.value !== dom.value\n\t) {\n\t\tdom.value = props.value == null ? '' : props.value;\n\t}\n\n\tcurrentComponent = null;\n};\n\n// This is a very very private internal function for React it\n// is used to sort-of do runtime dependency injection.\nexport const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n\tReactCurrentDispatcher: {\n\t\tcurrent: {\n\t\t\treadContext(context) {\n\t\t\t\treturn currentComponent._globalContext[context._id].props.value;\n\t\t\t},\n\t\t\tuseCallback,\n\t\t\tuseContext,\n\t\t\tuseDebugValue,\n\t\t\tuseDeferredValue,\n\t\t\tuseEffect,\n\t\t\tuseId,\n\t\t\tuseImperativeHandle,\n\t\t\tuseInsertionEffect,\n\t\t\tuseLayoutEffect,\n\t\t\tuseMemo,\n\t\t\t// useMutableSource, // experimental-only and replaced by uSES, likely not worth supporting\n\t\t\tuseReducer,\n\t\t\tuseRef,\n\t\t\tuseState,\n\t\t\tuseSyncExternalStore,\n\t\t\tuseTransition\n\t\t}\n\t}\n};\n", "import {\n\tcreateElement,\n\trender as preactRender,\n\tcloneElement as preactCloneElement,\n\tcreateRef,\n\tComponent,\n\tcreateContext,\n\tFragment\n} from 'preact';\nimport {\n\tuseState,\n\tuseId,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue\n} from 'preact/hooks';\nimport { PureComponent } from './PureComponent';\nimport { memo } from './memo';\nimport { forwardRef } from './forwardRef';\nimport { Children } from './Children';\nimport { Suspense, lazy } from './suspense';\nimport { SuspenseList } from './suspense-list';\nimport { createPortal } from './portals';\nimport { is } from './util';\nimport {\n\thydrate,\n\trender,\n\tREACT_ELEMENT_TYPE,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n} from './render';\n\nconst version = '18.3.1'; // trick libraries to think we are react\n\n/**\n * Legacy version of createElement.\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component constructor\n */\nfunction createFactory(type) {\n\treturn createElement.bind(null, type);\n}\n\n/**\n * Check if the passed element is a valid (p)react node.\n * @param {*} element The element to check\n * @returns {boolean}\n */\nfunction isValidElement(element) {\n\treturn !!element && element.$$typeof === REACT_ELEMENT_TYPE;\n}\n\n/**\n * Check if the passed element is a Fragment node.\n * @param {*} element The element to check\n * @returns {boolean}\n */\nfunction isFragment(element) {\n\treturn isValidElement(element) && element.type === Fragment;\n}\n\n/**\n * Check if the passed element is a Memo node.\n * @param {*} element The element to check\n * @returns {boolean}\n */\nfunction isMemo(element) {\n\treturn (\n\t\t!!element &&\n\t\t!!element.displayName &&\n\t\t(typeof element.displayName === 'string' ||\n\t\t\telement.displayName instanceof String) &&\n\t\telement.displayName.startsWith('Memo(')\n\t);\n}\n\n/**\n * Wrap `cloneElement` to abort if the passed element is not a valid element and apply\n * all vnode normalizations.\n * @param {import('./internal').VNode} element The vnode to clone\n * @param {object} props Props to add when cloning\n * @param {Array<import('./internal').ComponentChildren>} rest Optional component children\n */\nfunction cloneElement(element) {\n\tif (!isValidElement(element)) return element;\n\treturn preactCloneElement.apply(null, arguments);\n}\n\n/**\n * Remove a component tree from the DOM, including state and event handlers.\n * @param {import('./internal').PreactElement} container\n * @returns {boolean}\n */\nfunction unmountComponentAtNode(container) {\n\tif (container._children) {\n\t\tpreactRender(null, container);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n/**\n * Get the matching DOM node for a component\n * @param {import('./internal').Component} component\n * @returns {import('./internal').PreactElement | null}\n */\nfunction findDOMNode(component) {\n\treturn (\n\t\t(component &&\n\t\t\t(component.base || (component.nodeType === 1 && component))) ||\n\t\tnull\n\t);\n}\n\n/**\n * Deprecated way to control batched rendering inside the reconciler, but we\n * already schedule in batches inside our rendering code\n * @template Arg\n * @param {(arg: Arg) => void} callback function that triggers the updated\n * @param {Arg} [arg] Optional argument that can be passed to the callback\n */\n// eslint-disable-next-line camelcase\nconst unstable_batchedUpdates = (callback, arg) => callback(arg);\n\n/**\n * In React, `flushSync` flushes the entire tree and forces a rerender. It's\n * implmented here as a no-op.\n * @template Arg\n * @template Result\n * @param {(arg: Arg) => Result} callback function that runs before the flush\n * @param {Arg} [arg] Optional argument that can be passed to the callback\n * @returns\n */\nconst flushSync = (callback, arg) => callback(arg);\n\n/**\n * Strict Mode is not implemented in Preact, so we provide a stand-in for it\n * that just renders its children without imposing any restrictions.\n */\nconst StrictMode = Fragment;\n\nexport function startTransition(cb) {\n\tcb();\n}\n\nexport function useDeferredValue(val) {\n\treturn val;\n}\n\nexport function useTransition() {\n\treturn [false, startTransition];\n}\n\n// TODO: in theory this should be done after a VNode is diffed as we want to insert\n// styles/... before it attaches\nexport const useInsertionEffect = useLayoutEffect;\n\n// compat to react-is\nexport const isElement = isValidElement;\n\n/**\n * This is taken from https://github.com/facebook/react/blob/main/packages/use-sync-external-store/src/useSyncExternalStoreShimClient.js#L84\n * on a high level this cuts out the warnings, ... and attempts a smaller implementation\n * @typedef {{ _value: any; _getSnapshot: () => any }} Store\n */\nexport function useSyncExternalStore(subscribe, getSnapshot) {\n\tconst value = getSnapshot();\n\n\t/**\n\t * @typedef {{ _instance: Store }} StoreRef\n\t * @type {[StoreRef, (store: StoreRef) => void]}\n\t */\n\tconst [{ _instance }, forceUpdate] = useState({\n\t\t_instance: { _value: value, _getSnapshot: getSnapshot }\n\t});\n\n\tuseLayoutEffect(() => {\n\t\t_instance._value = value;\n\t\t_instance._getSnapshot = getSnapshot;\n\n\t\tif (didSnapshotChange(_instance)) {\n\t\t\tforceUpdate({ _instance });\n\t\t}\n\t}, [subscribe, value, getSnapshot]);\n\n\tuseEffect(() => {\n\t\tif (didSnapshotChange(_instance)) {\n\t\t\tforceUpdate({ _instance });\n\t\t}\n\n\t\treturn subscribe(() => {\n\t\t\tif (didSnapshotChange(_instance)) {\n\t\t\t\tforceUpdate({ _instance });\n\t\t\t}\n\t\t});\n\t}, [subscribe]);\n\n\treturn value;\n}\n\n/** @type {(inst: Store) => boolean} */\nfunction didSnapshotChange(inst) {\n\tconst latestGetSnapshot = inst._getSnapshot;\n\tconst prevValue = inst._value;\n\ttry {\n\t\tconst nextValue = latestGetSnapshot();\n\t\treturn !is(prevValue, nextValue);\n\t} catch (error) {\n\t\treturn true;\n\t}\n}\n\nexport * from 'preact/hooks';\nexport {\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tisFragment,\n\tisMemo,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\t// eslint-disable-next-line camelcase\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n\n// React copies the named exports to the default one.\nexport default {\n\tuseState,\n\tuseId,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseInsertionEffect,\n\tuseTransition,\n\tuseDeferredValue,\n\tuseSyncExternalStore,\n\tstartTransition,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue,\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tisElement,\n\tisFragment,\n\tisMemo,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n", "\uFEFFimport * as React from \"react\";\nimport { HTMLWidget } from \"@hpcc-js/common\";\nimport { render, unmountComponentAtNode } from \"react-dom\";\nimport { ReactTable } from \"./reactTable.tsx\";\n\nimport \"./table.css\";\n\nexport type ColumnType = \"boolean\" | \"number\" | \"string\" | \"time\";\n\nexport class Table extends HTMLWidget {\n\n protected _div;\n\n constructor() {\n super();\n }\n\n columnType(column: string): ColumnType;\n columnType(column: string, type: ColumnType): this;\n columnType(column: string, type?: ColumnType): ColumnType | this {\n if (arguments.length === 1) return this.columnTypes()[column];\n this.columnTypes({ ...this.columnTypes(), [column]: type });\n return this;\n }\n\n columnPattern(column: string): string;\n columnPattern(column: string, pattern: string): this;\n columnPattern(column: string, pattern?: string): string | this {\n if (arguments.length === 1) return this.columnPatterns()[column];\n this.columnPatterns({ ...this.columnPatterns(), [column]: pattern });\n return this;\n }\n\n columnFormat(column: string): string;\n columnFormat(column: string, format: string): this;\n columnFormat(column: string, format?: string): string | this {\n if (arguments.length === 1) return this.columnFormats()[column];\n this.columnFormats({ ...this.columnFormats(), [column]: format });\n return this;\n }\n\n private _prevRow;\n private _prevColumn;\n onRowClickCallback(row, column) {\n if (this._prevRow && JSON.stringify(this._prevRow) !== JSON.stringify(row)) {\n this.click(this._prevRow, this._prevColumn ?? \"\", false);\n }\n if (row) {\n this.click(row, column, true);\n }\n this._prevRow = row;\n this._prevColumn = column;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._div = element\n .append(\"div\")\n .style(\"display\", \"grid\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._div.style(\"width\", this.width() + \"px\");\n this._div.style(\"height\", this.height() + \"px\");\n render(React.createElement(ReactTable, { table: this }), this._div.node());\n }\n\n exit(domNode, element) {\n unmountComponentAtNode(this._div.node());\n this._div.remove();\n super.exit(domNode, element);\n }\n\n // Events ---\n click(row, col, sel) {\n }\n}\nTable.prototype._class += \" dgrid2_Table\";\n\nexport interface Table {\n noDataMessage(): string;\n noDataMessage(_: string): this;\n darkMode(): boolean;\n darkMode(_: boolean): this;\n multiSelect(): boolean;\n multiSelect(_: boolean): this;\n columnTypes(): { [column: string]: ColumnType };\n columnTypes(_: { [column: string]: ColumnType }): this;\n columnPatterns(): { [column: string]: string };\n columnPatterns(_: { [column: string]: string }): this;\n columnFormats(): { [column: string]: string };\n columnFormats(_: { [column: string]: string }): this;\n}\n\nTable.prototype.publish(\"noDataMessage\", \"...empty...\", \"string\", \"No Data Message\");\nTable.prototype.publish(\"darkMode\", false, \"boolean\", \"Dark Mode\");\nTable.prototype.publish(\"multiSelect\", false, \"boolean\", \"Multiple Selection\");\nTable.prototype.publish(\"columnTypes\", {}, \"object\", \"Column Types (\\\"boolean\\\" | \\\"number\\\" | \\\"string\\\" | \\\"time\\\"\");\nTable.prototype.publish(\"columnPatterns\", {}, \"object\", \"Column Patterns\");\nTable.prototype.publish(\"columnFormats\", {}, \"object\", \"Column Formats\");\n\n", "function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;", "const ENCODED_ENTITIES = /[\"&<]/;\n\n/** @param {string} str */\nexport function encodeEntities(str) {\n\t// Skip all work for strings with no entities needing encoding:\n\tif (str.length === 0 || ENCODED_ENTITIES.test(str) === false) return str;\n\n\tlet last = 0,\n\t\ti = 0,\n\t\tout = '',\n\t\tch = '';\n\n\t// Seek forward in str until the next entity char:\n\tfor (; i < str.length; i++) {\n\t\tswitch (str.charCodeAt(i)) {\n\t\t\tcase 34:\n\t\t\t\tch = '&quot;';\n\t\t\t\tbreak;\n\t\t\tcase 38:\n\t\t\t\tch = '&amp;';\n\t\t\t\tbreak;\n\t\t\tcase 60:\n\t\t\t\tch = '&lt;';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcontinue;\n\t\t}\n\t\t// Append skipped/buffered characters and the encoded entity:\n\t\tif (i !== last) out += str.slice(last, i);\n\t\tout += ch;\n\t\t// Start the next seek/buffer after the entity's offset:\n\t\tlast = i + 1;\n\t}\n\tif (i !== last) out += str.slice(last, i);\n\treturn out;\n}\n", "/** Normal hydration that attaches to a DOM tree but does not diff it. */\nexport const MODE_HYDRATE = 1 << 5;\n/** Signifies this VNode suspended on the previous render */\nexport const MODE_SUSPENDED = 1 << 7;\n/** Indicates that this node needs to be inserted while patching children */\nexport const INSERT_VNODE = 1 << 16;\n/** Indicates a VNode has been matched with another VNode in the diff */\nexport const MATCHED = 1 << 17;\n\n/** Reset all mode flags */\nexport const RESET_MODE = ~(MODE_HYDRATE | MODE_SUSPENDED);\n\nexport const EMPTY_OBJ = /** @type {any} */ ({});\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL =\n\t/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n", "import { options, Fragment } from 'preact';\nimport { encodeEntities } from './utils';\nimport { IS_NON_DIMENSIONAL } from '../../src/constants';\n\nlet vnodeId = 0;\n\nconst isArray = Array.isArray;\n\n/**\n * @fileoverview\n * This file exports various methods that implement Babel's \"automatic\" JSX runtime API:\n * - jsx(type, props, key)\n * - jsxs(type, props, key)\n * - jsxDEV(type, props, key, __source, __self)\n *\n * The implementation of createVNode here is optimized for performance.\n * Benchmarks: https://esbench.com/bench/5f6b54a0b4632100a7dcd2b3\n */\n\n/**\n * JSX.Element factory used by Babel's {runtime:\"automatic\"} JSX transform\n * @param {VNode['type']} type\n * @param {VNode['props']} props\n * @param {VNode['key']} [key]\n * @param {unknown} [isStaticChildren]\n * @param {unknown} [__source]\n * @param {unknown} [__self]\n */\nfunction createVNode(type, props, key, isStaticChildren, __source, __self) {\n\tif (!props) props = {};\n\t// We'll want to preserve `ref` in props to get rid of the need for\n\t// forwardRef components in the future, but that should happen via\n\t// a separate PR.\n\tlet normalizedProps = props,\n\t\tref,\n\t\ti;\n\n\tif ('ref' in props) {\n\t\tref = props.ref;\n\t\tdelete props.ref;\n\t}\n\n\t/** @type {VNode & { __source: any; __self: any }} */\n\tconst vnode = {\n\t\ttype,\n\t\tprops: normalizedProps,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\tconstructor: undefined,\n\t\t_original: --vnodeId,\n\t\t_index: -1,\n\t\t_flags: 0,\n\t\t__source,\n\t\t__self\n\t};\n\n\t// If a Component VNode, check for and apply defaultProps.\n\t// Note: `type` is often a String, and can be `undefined` in development.\n\tif (typeof type === 'function' && (ref = type.defaultProps)) {\n\t\tfor (i in ref)\n\t\t\tif (typeof normalizedProps[i] === 'undefined') {\n\t\t\t\tnormalizedProps[i] = ref[i];\n\t\t\t}\n\t}\n\n\tif (options.vnode) options.vnode(vnode);\n\treturn vnode;\n}\n\n/**\n * Create a template vnode. This function is not expected to be\n * used directly, but rather through a precompile JSX transform\n * @param {string[]} templates\n * @param {Array<string | null | VNode>} exprs\n * @returns {VNode}\n */\nfunction jsxTemplate(templates, ...exprs) {\n\tconst vnode = createVNode(Fragment, { tpl: templates, exprs });\n\t// Bypass render to string top level Fragment optimization\n\tvnode.key = vnode._vnode;\n\treturn vnode;\n}\n\nconst JS_TO_CSS = {};\nconst CSS_REGEX = /[A-Z]/g;\n\n/**\n * Serialize an HTML attribute to a string. This function is not\n * expected to be used directly, but rather through a precompile\n * JSX transform\n * @param {string} name The attribute name\n * @param {*} value The attribute value\n * @returns {string}\n */\nfunction jsxAttr(name, value) {\n\tif (options.attr) {\n\t\tconst result = options.attr(name, value);\n\t\tif (typeof result === 'string') return result;\n\t}\n\n\tif (name === 'ref' || name === 'key') return '';\n\tif (name === 'style' && typeof value === 'object') {\n\t\tlet str = '';\n\t\tfor (let prop in value) {\n\t\t\tlet val = value[prop];\n\t\t\tif (val != null && val !== '') {\n\t\t\t\tconst name =\n\t\t\t\t\tprop[0] == '-'\n\t\t\t\t\t\t? prop\n\t\t\t\t\t\t: JS_TO_CSS[prop] ||\n\t\t\t\t\t\t\t(JS_TO_CSS[prop] = prop.replace(CSS_REGEX, '-$&').toLowerCase());\n\n\t\t\t\tlet suffix = ';';\n\t\t\t\tif (\n\t\t\t\t\ttypeof val === 'number' &&\n\t\t\t\t\t// Exclude custom-attributes\n\t\t\t\t\t!name.startsWith('--') &&\n\t\t\t\t\t!IS_NON_DIMENSIONAL.test(name)\n\t\t\t\t) {\n\t\t\t\t\tsuffix = 'px;';\n\t\t\t\t}\n\t\t\t\tstr = str + name + ':' + val + suffix;\n\t\t\t}\n\t\t}\n\t\treturn name + '=\"' + str + '\"';\n\t}\n\n\tif (\n\t\tvalue == null ||\n\t\tvalue === false ||\n\t\ttypeof value === 'function' ||\n\t\ttypeof value === 'object'\n\t) {\n\t\treturn '';\n\t} else if (value === true) return name;\n\n\treturn name + '=\"' + encodeEntities(value) + '\"';\n}\n\n/**\n * Escape a dynamic child passed to `jsxTemplate`. This function\n * is not expected to be used directly, but rather through a\n * precompile JSX transform\n * @param {*} value\n * @returns {string | null | VNode | Array<string | null | VNode>}\n */\nfunction jsxEscape(value) {\n\tif (\n\t\tvalue == null ||\n\t\ttypeof value === 'boolean' ||\n\t\ttypeof value === 'function'\n\t) {\n\t\treturn null;\n\t}\n\n\tif (typeof value === 'object') {\n\t\t// Check for VNode\n\t\tif (value.constructor === undefined) return value;\n\n\t\tif (isArray(value)) {\n\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\tvalue[i] = jsxEscape(value[i]);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t}\n\n\treturn encodeEntities('' + value);\n}\n\nexport {\n\tcreateVNode as jsx,\n\tcreateVNode as jsxs,\n\tcreateVNode as jsxDEV,\n\tFragment,\n\t// precompiled JSX transform\n\tjsxTemplate,\n\tjsxAttr,\n\tjsxEscape\n};\n", "import type { CalculatedColumn, ColSpanArgs } from '../types';\n\nexport function getColSpan<R, SR>(\n column: CalculatedColumn<R, SR>,\n lastFrozenColumnIndex: number,\n args: ColSpanArgs<R, SR>\n): number | undefined {\n const colSpan = typeof column.colSpan === 'function' ? column.colSpan(args) : 1;\n if (\n Number.isInteger(colSpan) &&\n colSpan! > 1 &&\n // ignore colSpan if it spans over both frozen and regular columns\n (!column.frozen || column.idx + colSpan! - 1 <= lastFrozenColumnIndex)\n ) {\n return colSpan!;\n }\n return undefined;\n}\n", "import type { Maybe } from '../types';\n\nexport function stopPropagation(event: React.SyntheticEvent) {\n event.stopPropagation();\n}\n\nexport function scrollIntoView(element: Maybe<Element>) {\n element?.scrollIntoView({ inline: 'nearest', block: 'nearest' });\n}\n", "import type { CellEvent } from '../types';\n\nexport function createCellEvent<E extends React.SyntheticEvent<HTMLDivElement>>(\n event: E\n): CellEvent<E> {\n let defaultPrevented = false;\n const cellEvent = {\n ...event,\n preventGridDefault() {\n defaultPrevented = true;\n },\n isGridDefaultPrevented() {\n return defaultPrevented;\n }\n };\n\n Object.setPrototypeOf(cellEvent, Object.getPrototypeOf(event));\n\n return cellEvent;\n}\n", "// https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values\nconst nonInputKeys = new Set([\n // Special keys\n 'Unidentified',\n // Modifier keys\n 'Alt',\n 'AltGraph',\n 'CapsLock',\n 'Control',\n 'Fn',\n 'FnLock',\n 'Meta',\n 'NumLock',\n 'ScrollLock',\n 'Shift',\n // Whitespace keys\n 'Tab',\n // Navigation keys\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'End',\n 'Home',\n 'PageDown',\n 'PageUp',\n // Editing\n 'Insert',\n // UI keys\n 'ContextMenu',\n 'Escape',\n 'Pause',\n 'Play',\n // Device keys\n 'PrintScreen',\n // Function keys\n 'F1',\n // 'F2', /!\\ specifically allowed, do not edit\n 'F3',\n 'F4',\n 'F5',\n 'F6',\n 'F7',\n 'F8',\n 'F9',\n 'F10',\n 'F11',\n 'F12'\n]);\n\nexport function isCtrlKeyHeldDown(e: React.KeyboardEvent): boolean {\n return (e.ctrlKey || e.metaKey) && e.key !== 'Control';\n}\n\nexport function isDefaultCellInput(event: React.KeyboardEvent<HTMLDivElement>): boolean {\n const vKey = 86;\n if (isCtrlKeyHeldDown(event) && event.keyCode !== vKey) return false;\n return !nonInputKeys.has(event.key);\n}\n\n/**\n * By default, the following navigation keys are enabled while an editor is open, under specific conditions:\n * - Tab:\n * - The editor must be an <input>, a <textarea>, or a <select> element.\n * - The editor element must be the only immediate child of the editor container/a label.\n */\nexport function onEditorNavigation({ key, target }: React.KeyboardEvent<HTMLDivElement>): boolean {\n if (\n key === 'Tab' &&\n (target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target instanceof HTMLSelectElement)\n ) {\n return (\n target.closest('.rdg-editor-container')?.querySelectorAll('input, textarea, select')\n .length === 1\n );\n }\n return false;\n}\n", "import { css } from '@linaria/core';\n\nimport type { CalculatedColumn } from '../types';\n\nconst measuringCellClassname = css`\n @layer rdg.MeasuringCell {\n contain: strict;\n grid-row: 1;\n visibility: hidden;\n }\n`;\n\nexport function renderMeasuringCells<R, SR>(viewportColumns: readonly CalculatedColumn<R, SR>[]) {\n return viewportColumns.map(({ key, idx, minWidth, maxWidth }) => (\n <div\n key={key}\n className={measuringCellClassname}\n style={{ gridColumnStart: idx + 1, minWidth, maxWidth }}\n data-measuring-cell-key={key}\n />\n ));\n}\n", "import type {\n CalculatedColumn,\n CalculatedColumnParent,\n CellNavigationMode,\n Maybe,\n Position\n} from '../types';\nimport { getColSpan } from './colSpanUtils';\n\ninterface IsSelectedCellEditableOpts<R, SR> {\n selectedPosition: Position;\n columns: readonly CalculatedColumn<R, SR>[];\n rows: readonly R[];\n}\n\nexport function isSelectedCellEditable<R, SR>({\n selectedPosition,\n columns,\n rows\n}: IsSelectedCellEditableOpts<R, SR>): boolean {\n const column = columns[selectedPosition.idx];\n const row = rows[selectedPosition.rowIdx];\n return isCellEditableUtil(column, row);\n}\n\n// https://github.com/vercel/next.js/issues/56480\nexport function isCellEditableUtil<R, SR>(column: CalculatedColumn<R, SR>, row: R): boolean {\n return (\n column.renderEditCell != null &&\n (typeof column.editable === 'function' ? column.editable(row) : column.editable) !== false\n );\n}\n\ninterface GetNextSelectedCellPositionOpts<R, SR> {\n moveUp: boolean;\n moveNext: boolean;\n cellNavigationMode: CellNavigationMode;\n columns: readonly CalculatedColumn<R, SR>[];\n colSpanColumns: readonly CalculatedColumn<R, SR>[];\n rows: readonly R[];\n topSummaryRows: Maybe<readonly SR[]>;\n bottomSummaryRows: Maybe<readonly SR[]>;\n minRowIdx: number;\n mainHeaderRowIdx: number;\n maxRowIdx: number;\n currentPosition: Position;\n nextPosition: Position;\n lastFrozenColumnIndex: number;\n isCellWithinBounds: (position: Position) => boolean;\n}\n\nfunction getSelectedCellColSpan<R, SR>({\n rows,\n topSummaryRows,\n bottomSummaryRows,\n rowIdx,\n mainHeaderRowIdx,\n lastFrozenColumnIndex,\n column\n}: Pick<\n GetNextSelectedCellPositionOpts<R, SR>,\n 'rows' | 'topSummaryRows' | 'bottomSummaryRows' | 'lastFrozenColumnIndex' | 'mainHeaderRowIdx'\n> & {\n rowIdx: number;\n column: CalculatedColumn<R, SR>;\n}) {\n const topSummaryRowsCount = topSummaryRows?.length ?? 0;\n if (rowIdx === mainHeaderRowIdx) {\n return getColSpan(column, lastFrozenColumnIndex, { type: 'HEADER' });\n }\n\n if (\n topSummaryRows &&\n rowIdx > mainHeaderRowIdx &&\n rowIdx <= topSummaryRowsCount + mainHeaderRowIdx\n ) {\n return getColSpan(column, lastFrozenColumnIndex, {\n type: 'SUMMARY',\n row: topSummaryRows[rowIdx + topSummaryRowsCount]\n });\n }\n\n if (rowIdx >= 0 && rowIdx < rows.length) {\n const row = rows[rowIdx];\n return getColSpan(column, lastFrozenColumnIndex, { type: 'ROW', row });\n }\n\n if (bottomSummaryRows) {\n return getColSpan(column, lastFrozenColumnIndex, {\n type: 'SUMMARY',\n row: bottomSummaryRows[rowIdx - rows.length]\n });\n }\n\n return undefined;\n}\n\nexport function getNextSelectedCellPosition<R, SR>({\n moveUp,\n moveNext,\n cellNavigationMode,\n columns,\n colSpanColumns,\n rows,\n topSummaryRows,\n bottomSummaryRows,\n minRowIdx,\n mainHeaderRowIdx,\n maxRowIdx,\n currentPosition: { idx: currentIdx, rowIdx: currentRowIdx },\n nextPosition,\n lastFrozenColumnIndex,\n isCellWithinBounds\n}: GetNextSelectedCellPositionOpts<R, SR>): Position {\n let { idx: nextIdx, rowIdx: nextRowIdx } = nextPosition;\n const columnsCount = columns.length;\n\n const setColSpan = (moveNext: boolean) => {\n // If a cell within the colspan range is selected then move to the\n // previous or the next cell depending on the navigation direction\n for (const column of colSpanColumns) {\n const colIdx = column.idx;\n if (colIdx > nextIdx) break;\n const colSpan = getSelectedCellColSpan({\n rows,\n topSummaryRows,\n bottomSummaryRows,\n rowIdx: nextRowIdx,\n mainHeaderRowIdx,\n lastFrozenColumnIndex,\n column\n });\n\n if (colSpan && nextIdx > colIdx && nextIdx < colSpan + colIdx) {\n nextIdx = colIdx + (moveNext ? colSpan : 0);\n break;\n }\n }\n };\n\n const getParentRowIdx = (parent: CalculatedColumnParent<R, SR>) => {\n return parent.level + mainHeaderRowIdx;\n };\n\n const setHeaderGroupColAndRowSpan = () => {\n if (moveNext) {\n // find the parent at the same row level\n const nextColumn = columns[nextIdx];\n let parent = nextColumn.parent;\n while (parent !== undefined) {\n const parentRowIdx = getParentRowIdx(parent);\n if (nextRowIdx === parentRowIdx) {\n nextIdx = parent.idx + parent.colSpan;\n break;\n }\n parent = parent.parent;\n }\n } else if (moveUp) {\n // find the first reachable parent\n const nextColumn = columns[nextIdx];\n let parent = nextColumn.parent;\n let found = false;\n while (parent !== undefined) {\n const parentRowIdx = getParentRowIdx(parent);\n if (nextRowIdx >= parentRowIdx) {\n nextIdx = parent.idx;\n nextRowIdx = parentRowIdx;\n found = true;\n break;\n }\n parent = parent.parent;\n }\n\n // keep the current position if there is no parent matching the new row position\n if (!found) {\n nextIdx = currentIdx;\n nextRowIdx = currentRowIdx;\n }\n }\n };\n\n if (isCellWithinBounds(nextPosition)) {\n setColSpan(moveNext);\n\n if (nextRowIdx < mainHeaderRowIdx) {\n setHeaderGroupColAndRowSpan();\n }\n }\n\n if (cellNavigationMode === 'CHANGE_ROW') {\n const isAfterLastColumn = nextIdx === columnsCount;\n const isBeforeFirstColumn = nextIdx === -1;\n\n if (isAfterLastColumn) {\n const isLastRow = nextRowIdx === maxRowIdx;\n if (!isLastRow) {\n nextIdx = 0;\n nextRowIdx += 1;\n }\n } else if (isBeforeFirstColumn) {\n const isFirstRow = nextRowIdx === minRowIdx;\n if (!isFirstRow) {\n nextRowIdx -= 1;\n nextIdx = columnsCount - 1;\n }\n setColSpan(false);\n }\n }\n\n if (nextRowIdx < mainHeaderRowIdx) {\n // Find the last reachable parent for the new rowIdx\n // This check is needed when navigating to a column\n // that does not have a parent matching the new rowIdx\n const nextColumn = columns[nextIdx];\n let parent = nextColumn.parent;\n const nextParentRowIdx = nextRowIdx;\n nextRowIdx = mainHeaderRowIdx;\n while (parent !== undefined) {\n const parentRowIdx = getParentRowIdx(parent);\n if (parentRowIdx >= nextParentRowIdx) {\n nextRowIdx = parentRowIdx;\n nextIdx = parent.idx;\n }\n parent = parent.parent;\n }\n }\n\n return { idx: nextIdx, rowIdx: nextRowIdx };\n}\n\ninterface CanExitGridOpts {\n maxColIdx: number;\n minRowIdx: number;\n maxRowIdx: number;\n selectedPosition: Position;\n shiftKey: boolean;\n}\n\nexport function canExitGrid({\n maxColIdx,\n minRowIdx,\n maxRowIdx,\n selectedPosition: { rowIdx, idx },\n shiftKey\n}: CanExitGridOpts): boolean {\n // Exit the grid if we're at the first or last cell of the grid\n const atLastCellInRow = idx === maxColIdx;\n const atFirstCellInRow = idx === 0;\n const atLastRow = rowIdx === maxRowIdx;\n const atFirstRow = rowIdx === minRowIdx;\n\n return shiftKey ? atFirstCellInRow && atFirstRow : atLastCellInRow && atLastRow;\n}\n", "import { css } from '@linaria/core';\n\nexport const cell = css`\n @layer rdg.Cell {\n /* max-content does not work with size containment\n * dynamically switching between different containment styles incurs a heavy relayout penalty\n * Chromium bug: at odd zoom levels or subpixel positioning,\n * layout/paint/style containment can make cell borders disappear\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1326946\n */\n position: relative; /* needed for absolute positioning to work */\n padding-block: 0;\n padding-inline: 8px;\n border-inline-end: 1px solid var(--rdg-border-color);\n border-block-end: 1px solid var(--rdg-border-color);\n grid-row-start: var(--rdg-grid-row-start);\n align-content: center;\n background-color: inherit;\n\n white-space: nowrap;\n overflow: clip;\n text-overflow: ellipsis;\n outline: none;\n\n &[aria-selected='true'] {\n outline: 2px solid var(--rdg-selection-color);\n outline-offset: -2px;\n }\n }\n`;\n\nexport const cellClassname = `rdg-cell ${cell}`;\n\nexport const cellFrozen = css`\n @layer rdg.Cell {\n position: sticky;\n /* Should have a higher value than 0 to show up above unfrozen cells */\n z-index: 1;\n\n /* Add box-shadow on the last frozen cell */\n &:nth-last-child(1 of &) {\n box-shadow: var(--rdg-cell-frozen-box-shadow);\n }\n }\n`;\n\nexport const cellFrozenClassname = `rdg-cell-frozen ${cellFrozen}`;\n", "import type { CSSProperties } from 'react';\nimport clsx from 'clsx';\n\nimport type { CalculatedColumn, CalculatedColumnOrColumnGroup } from '../types';\nimport { cellClassname, cellFrozenClassname } from '../style/cell';\n\nexport function getRowStyle(rowIdx: number): CSSProperties {\n return { '--rdg-grid-row-start': rowIdx } as unknown as CSSProperties;\n}\n\nexport function getHeaderCellStyle<R, SR>(\n column: CalculatedColumnOrColumnGroup<R, SR>,\n rowIdx: number,\n rowSpan: number\n): React.CSSProperties {\n const gridRowEnd = rowIdx + 1;\n const paddingBlockStart = `calc(${rowSpan - 1} * var(--rdg-header-row-height))`;\n\n if (column.parent === undefined) {\n return {\n insetBlockStart: 0,\n gridRowStart: 1,\n gridRowEnd,\n paddingBlockStart\n };\n }\n\n return {\n insetBlockStart: `calc(${rowIdx - rowSpan} * var(--rdg-header-row-height))`,\n gridRowStart: gridRowEnd - rowSpan,\n gridRowEnd,\n paddingBlockStart\n };\n}\n\nexport function getCellStyle<R, SR>(\n column: CalculatedColumn<R, SR>,\n colSpan = 1\n): React.CSSProperties {\n const index = column.idx + 1;\n return {\n gridColumnStart: index,\n gridColumnEnd: index + colSpan,\n insetInlineStart: column.frozen ? `var(--rdg-frozen-left-${column.idx})` : undefined\n };\n}\n\nexport function getCellClassname<R, SR>(\n column: CalculatedColumn<R, SR>,\n ...extraClasses: Parameters<typeof clsx>\n): string {\n return clsx(\n cellClassname,\n {\n [cellFrozenClassname]: column.frozen\n },\n ...extraClasses\n );\n}\n", "import type { CalculatedColumn, CalculatedColumnOrColumnGroup } from '../types';\n\nexport * from './colSpanUtils';\nexport * from './domUtils';\nexport * from './eventUtils';\nexport * from './keyboardUtils';\nexport * from './renderMeasuringCells';\nexport * from './selectedCellUtils';\nexport * from './styleUtils';\n\nexport const { min, max, floor, sign, abs } = Math;\n\nexport function assertIsValidKeyGetter<R, K extends React.Key>(\n keyGetter: unknown\n): asserts keyGetter is (row: R) => K {\n if (typeof keyGetter !== 'function') {\n throw new Error('Please specify the rowKeyGetter prop to use selection');\n }\n}\n\nexport function clampColumnWidth<R, SR>(\n width: number,\n { minWidth, maxWidth }: CalculatedColumn<R, SR>\n): number {\n width = max(width, minWidth);\n\n // ignore maxWidth if it less than minWidth\n if (typeof maxWidth === 'number' && maxWidth >= minWidth) {\n return min(width, maxWidth);\n }\n\n return width;\n}\n\nexport function getHeaderCellRowSpan<R, SR>(\n column: CalculatedColumnOrColumnGroup<R, SR>,\n rowIdx: number\n) {\n return column.parent === undefined ? rowIdx : column.level - column.parent.level;\n}\n", "import { css } from '@linaria/core';\n\nimport type { RenderCheckboxProps } from '../types';\n\nconst checkbox = css`\n @layer rdg.CheckboxInput {\n display: block;\n margin: auto;\n inline-size: 20px;\n block-size: 20px;\n\n &:focus-visible {\n outline: 2px solid var(--rdg-checkbox-focus-color);\n outline-offset: -3px;\n }\n\n &:enabled {\n cursor: pointer;\n }\n }\n`;\n\nconst checkboxClassname = `rdg-checkbox-input ${checkbox}`;\n\nexport function renderCheckbox({ onChange, indeterminate, ...props }: RenderCheckboxProps) {\n function handleChange(e: React.ChangeEvent<HTMLInputElement>) {\n onChange(e.target.checked, (e.nativeEvent as MouseEvent).shiftKey);\n }\n\n return (\n <input\n ref={(el) => {\n if (el) {\n el.indeterminate = indeterminate === true;\n }\n }}\n type=\"checkbox\"\n className={checkboxClassname}\n onChange={handleChange}\n {...props}\n />\n );\n}\n", "import { css } from '@linaria/core';\n\nimport type { RenderGroupCellProps } from '../types';\n\nconst groupCellContent = css`\n @layer rdg.GroupCellContent {\n outline: none;\n }\n`;\n\nconst groupCellContentClassname = `rdg-group-cell-content ${groupCellContent}`;\n\nconst caret = css`\n @layer rdg.GroupCellCaret {\n margin-inline-start: 4px;\n stroke: currentColor;\n stroke-width: 1.5px;\n fill: transparent;\n vertical-align: middle;\n\n > path {\n transition: d 0.1s;\n }\n }\n`;\n\nconst caretClassname = `rdg-caret ${caret}`;\n\nexport function renderToggleGroup<R, SR>(props: RenderGroupCellProps<R, SR>) {\n return <ToggleGroup {...props} />;\n}\n\nexport function ToggleGroup<R, SR>({\n groupKey,\n isExpanded,\n tabIndex,\n toggleGroup\n}: RenderGroupCellProps<R, SR>) {\n function handleKeyDown({ key }: React.KeyboardEvent<HTMLSpanElement>) {\n if (key === 'Enter') {\n toggleGroup();\n }\n }\n\n const d = isExpanded ? 'M1 1 L 7 7 L 13 1' : 'M1 7 L 7 1 L 13 7';\n\n return (\n <span className={groupCellContentClassname} tabIndex={tabIndex} onKeyDown={handleKeyDown}>\n {groupKey as string}\n <svg viewBox=\"0 0 14 8\" width=\"14\" height=\"8\" className={caretClassname} aria-hidden>\n <path d={d} />\n </svg>\n </span>\n );\n}\n", "import type { RenderCellProps } from '../types';\n\nexport function renderValue<R, SR>(props: RenderCellProps<R, SR>) {\n try {\n return props.row[props.column.key as keyof R] as React.ReactNode;\n } catch {\n return null;\n }\n}\n", "import { createContext, useContext } from 'react';\n\nimport type { Maybe, Renderers } from './types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst DataGridDefaultRenderersContext = createContext<Maybe<Renderers<any, any>>>(undefined);\n\nexport const DataGridDefaultRenderersProvider = DataGridDefaultRenderersContext.Provider;\n\nexport function useDefaultRenderers<R, SR>(): Maybe<Renderers<R, SR>> {\n return useContext(DataGridDefaultRenderersContext);\n}\n", "import type { RenderCheckboxProps } from '../types';\nimport { useDefaultRenderers } from '../DataGridDefaultRenderersProvider';\n\ntype SharedInputProps = Pick<\n RenderCheckboxProps,\n 'disabled' | 'tabIndex' | 'aria-label' | 'aria-labelledby' | 'indeterminate' | 'onChange'\n>;\n\ninterface SelectCellFormatterProps extends SharedInputProps {\n value: boolean;\n}\n\nexport function SelectCellFormatter({\n value,\n tabIndex,\n indeterminate,\n disabled,\n onChange,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy\n}: SelectCellFormatterProps) {\n const renderCheckbox = useDefaultRenderers()!.renderCheckbox!;\n\n return renderCheckbox({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n tabIndex,\n indeterminate,\n disabled,\n checked: value,\n onChange\n });\n}\n", "import { createContext, useContext } from 'react';\n\nimport type { SelectHeaderRowEvent, SelectRowEvent } from '../types';\n\nexport interface RowSelectionContextValue {\n readonly isRowSelected: boolean;\n readonly isRowSelectionDisabled: boolean;\n}\n\nconst RowSelectionContext = createContext<RowSelectionContextValue | undefined>(undefined);\n\nexport const RowSelectionProvider = RowSelectionContext.Provider;\n\nconst RowSelectionChangeContext = createContext<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ((selectRowEvent: SelectRowEvent<any>) => void) | undefined\n>(undefined);\n\nexport const RowSelectionChangeProvider = RowSelectionChangeContext.Provider;\n\nexport function useRowSelection() {\n const rowSelectionContext = useContext(RowSelectionContext);\n const rowSelectionChangeContext = useContext(RowSelectionChangeContext);\n\n if (rowSelectionContext === undefined || rowSelectionChangeContext === undefined) {\n throw new Error('useRowSelection must be used within DataGrid cells');\n }\n\n return {\n isRowSelectionDisabled: rowSelectionContext.isRowSelectionDisabled,\n isRowSelected: rowSelectionContext.isRowSelected,\n onRowSelectionChange: rowSelectionChangeContext\n };\n}\n\nexport interface HeaderRowSelectionContextValue {\n readonly isRowSelected: boolean;\n readonly isIndeterminate: boolean;\n}\n\nconst HeaderRowSelectionContext = createContext<HeaderRowSelectionContextValue | undefined>(\n undefined\n);\n\nexport const HeaderRowSelectionProvider = HeaderRowSelectionContext.Provider;\n\nconst HeaderRowSelectionChangeContext = createContext<\n ((selectRowEvent: SelectHeaderRowEvent) => void) | undefined\n>(undefined);\n\nexport const HeaderRowSelectionChangeProvider = HeaderRowSelectionChangeContext.Provider;\n\nexport function useHeaderRowSelection() {\n const headerRowSelectionContext = useContext(HeaderRowSelectionContext);\n const headerRowSelectionChangeContext = useContext(HeaderRowSelectionChangeContext);\n\n if (headerRowSelectionContext === undefined || headerRowSelectionChangeContext === undefined) {\n throw new Error('useHeaderRowSelection must be used within DataGrid cells');\n }\n\n return {\n isIndeterminate: headerRowSelectionContext.isIndeterminate,\n isRowSelected: headerRowSelectionContext.isRowSelected,\n onRowSelectionChange: headerRowSelectionChangeContext\n };\n}\n", "import { useHeaderRowSelection, useRowSelection } from './hooks/useRowSelection';\nimport type { Column, RenderCellProps, RenderGroupCellProps, RenderHeaderCellProps } from './types';\nimport { SelectCellFormatter } from './cellRenderers';\n\nexport const SELECT_COLUMN_KEY = 'rdg-select-column';\n\nfunction HeaderRenderer(props: RenderHeaderCellProps<unknown>) {\n const { isIndeterminate, isRowSelected, onRowSelectionChange } = useHeaderRowSelection();\n\n return (\n <SelectCellFormatter\n aria-label=\"Select All\"\n tabIndex={props.tabIndex}\n indeterminate={isIndeterminate}\n value={isRowSelected}\n onChange={(checked) => {\n onRowSelectionChange({ checked: isIndeterminate ? false : checked });\n }}\n />\n );\n}\n\nfunction SelectFormatter(props: RenderCellProps<unknown>) {\n const { isRowSelectionDisabled, isRowSelected, onRowSelectionChange } = useRowSelection();\n\n return (\n <SelectCellFormatter\n aria-label=\"Select\"\n tabIndex={props.tabIndex}\n disabled={isRowSelectionDisabled}\n value={isRowSelected}\n onChange={(checked, isShiftClick) => {\n onRowSelectionChange({ row: props.row, checked, isShiftClick });\n }}\n />\n );\n}\n\nfunction SelectGroupFormatter(props: RenderGroupCellProps<unknown>) {\n const { isRowSelected, onRowSelectionChange } = useRowSelection();\n\n return (\n <SelectCellFormatter\n aria-label=\"Select Group\"\n tabIndex={props.tabIndex}\n value={isRowSelected}\n onChange={(checked) => {\n onRowSelectionChange({ row: props.row, checked, isShiftClick: false });\n }}\n />\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const SelectColumn: Column<any, any> = {\n key: SELECT_COLUMN_KEY,\n name: '',\n width: 35,\n minWidth: 35,\n maxWidth: 35,\n resizable: false,\n sortable: false,\n frozen: true,\n renderHeaderCell(props) {\n return <HeaderRenderer {...props} />;\n },\n renderCell(props) {\n return <SelectFormatter {...props} />;\n },\n renderGroupCell(props) {\n return <SelectGroupFormatter {...props} />;\n }\n};\n", "import { useMemo } from 'react';\n\nimport { clampColumnWidth, max, min } from '../utils';\nimport type { CalculatedColumn, CalculatedColumnParent, ColumnOrColumnGroup, Omit } from '../types';\nimport { renderValue } from '../cellRenderers';\nimport { SELECT_COLUMN_KEY } from '../Columns';\nimport type { DataGridProps } from '../DataGrid';\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P] extends ReadonlyArray<infer V> ? Mutable<V>[] : T[P];\n};\n\ninterface WithParent<R, SR> {\n readonly parent: MutableCalculatedColumnParent<R, SR> | undefined;\n}\n\ntype MutableCalculatedColumnParent<R, SR> = Omit<Mutable<CalculatedColumnParent<R, SR>>, 'parent'> &\n WithParent<R, SR>;\ntype MutableCalculatedColumn<R, SR> = Omit<Mutable<CalculatedColumn<R, SR>>, 'parent'> &\n WithParent<R, SR>;\n\ninterface ColumnMetric {\n width: number;\n left: number;\n}\n\nconst DEFAULT_COLUMN_WIDTH = 'auto';\nconst DEFAULT_COLUMN_MIN_WIDTH = 50;\n\ninterface CalculatedColumnsArgs<R, SR> {\n rawColumns: readonly ColumnOrColumnGroup<R, SR>[];\n defaultColumnOptions: DataGridProps<R, SR>['defaultColumnOptions'];\n viewportWidth: number;\n scrollLeft: number;\n getColumnWidth: (column: CalculatedColumn<R, SR>) => string | number;\n enableVirtualization: boolean;\n}\n\nexport function useCalculatedColumns<R, SR>({\n rawColumns,\n defaultColumnOptions,\n getColumnWidth,\n viewportWidth,\n scrollLeft,\n enableVirtualization\n}: CalculatedColumnsArgs<R, SR>) {\n const defaultWidth = defaultColumnOptions?.width ?? DEFAULT_COLUMN_WIDTH;\n const defaultMinWidth = defaultColumnOptions?.minWidth ?? DEFAULT_COLUMN_MIN_WIDTH;\n const defaultMaxWidth = defaultColumnOptions?.maxWidth ?? undefined;\n const defaultCellRenderer = defaultColumnOptions?.renderCell ?? renderValue;\n const defaultSortable = defaultColumnOptions?.sortable ?? false;\n const defaultResizable = defaultColumnOptions?.resizable ?? false;\n const defaultDraggable = defaultColumnOptions?.draggable ?? false;\n\n const { columns, colSpanColumns, lastFrozenColumnIndex, headerRowsCount } = useMemo((): {\n readonly columns: readonly CalculatedColumn<R, SR>[];\n readonly colSpanColumns: readonly CalculatedColumn<R, SR>[];\n readonly lastFrozenColumnIndex: number;\n readonly headerRowsCount: number;\n } => {\n let lastFrozenColumnIndex = -1;\n let headerRowsCount = 1;\n const columns: MutableCalculatedColumn<R, SR>[] = [];\n\n collectColumns(rawColumns, 1);\n\n function collectColumns(\n rawColumns: readonly ColumnOrColumnGroup<R, SR>[],\n level: number,\n parent?: MutableCalculatedColumnParent<R, SR>\n ) {\n for (const rawColumn of rawColumns) {\n if ('children' in rawColumn) {\n const calculatedColumnParent: MutableCalculatedColumnParent<R, SR> = {\n name: rawColumn.name,\n parent,\n idx: -1,\n colSpan: 0,\n level: 0,\n headerCellClass: rawColumn.headerCellClass\n };\n\n collectColumns(rawColumn.children, level + 1, calculatedColumnParent);\n continue;\n }\n\n const frozen = rawColumn.frozen ?? false;\n\n const column: MutableCalculatedColumn<R, SR> = {\n ...rawColumn,\n parent,\n idx: 0,\n level: 0,\n frozen,\n width: rawColumn.width ?? defaultWidth,\n minWidth: rawColumn.minWidth ?? defaultMinWidth,\n maxWidth: rawColumn.maxWidth ?? defaultMaxWidth,\n sortable: rawColumn.sortable ?? defaultSortable,\n resizable: rawColumn.resizable ?? defaultResizable,\n draggable: rawColumn.draggable ?? defaultDraggable,\n renderCell: rawColumn.renderCell ?? defaultCellRenderer\n };\n\n columns.push(column);\n\n if (frozen) {\n lastFrozenColumnIndex++;\n }\n\n if (level > headerRowsCount) {\n headerRowsCount = level;\n }\n }\n }\n\n columns.sort(({ key: aKey, frozen: frozenA }, { key: bKey, frozen: frozenB }) => {\n // Sort select column first:\n if (aKey === SELECT_COLUMN_KEY) return -1;\n if (bKey === SELECT_COLUMN_KEY) return 1;\n\n // Sort frozen columns second:\n if (frozenA) {\n if (frozenB) return 0;\n return -1;\n }\n if (frozenB) return 1;\n\n // TODO: sort columns to keep them grouped if they have a parent\n\n // Sort other columns last:\n return 0;\n });\n\n const colSpanColumns: CalculatedColumn<R, SR>[] = [];\n columns.forEach((column, idx) => {\n column.idx = idx;\n updateColumnParent(column, idx, 0);\n\n if (column.colSpan != null) {\n colSpanColumns.push(column);\n }\n });\n\n return {\n columns,\n colSpanColumns,\n lastFrozenColumnIndex,\n headerRowsCount\n };\n }, [\n rawColumns,\n defaultWidth,\n defaultMinWidth,\n defaultMaxWidth,\n defaultCellRenderer,\n defaultResizable,\n defaultSortable,\n defaultDraggable\n ]);\n\n const { templateColumns, layoutCssVars, totalFrozenColumnWidth, columnMetrics } = useMemo((): {\n templateColumns: readonly string[];\n layoutCssVars: Readonly<Record<string, string>>;\n totalFrozenColumnWidth: number;\n columnMetrics: ReadonlyMap<CalculatedColumn<R, SR>, ColumnMetric>;\n } => {\n const columnMetrics = new Map<CalculatedColumn<R, SR>, ColumnMetric>();\n let left = 0;\n let totalFrozenColumnWidth = 0;\n const templateColumns: string[] = [];\n\n for (const column of columns) {\n let width = getColumnWidth(column);\n\n if (typeof width === 'number') {\n width = clampColumnWidth(width, column);\n } else {\n // This is a placeholder width so we can continue to use virtualization.\n // The actual value is set after the column is rendered\n width = column.minWidth;\n }\n templateColumns.push(`${width}px`);\n columnMetrics.set(column, { width, left });\n left += width;\n }\n\n if (lastFrozenColumnIndex !== -1) {\n const columnMetric = columnMetrics.get(columns[lastFrozenColumnIndex])!;\n totalFrozenColumnWidth = columnMetric.left + columnMetric.width;\n }\n\n const layoutCssVars: Record<string, string> = {};\n\n for (let i = 0; i <= lastFrozenColumnIndex; i++) {\n const column = columns[i];\n layoutCssVars[`--rdg-frozen-left-${column.idx}`] = `${columnMetrics.get(column)!.left}px`;\n }\n\n return { templateColumns, layoutCssVars, totalFrozenColumnWidth, columnMetrics };\n }, [getColumnWidth, columns, lastFrozenColumnIndex]);\n\n const [colOverscanStartIdx, colOverscanEndIdx] = useMemo((): [number, number] => {\n if (!enableVirtualization) {\n return [0, columns.length - 1];\n }\n // get the viewport's left side and right side positions for non-frozen columns\n const viewportLeft = scrollLeft + totalFrozenColumnWidth;\n const viewportRight = scrollLeft + viewportWidth;\n // get first and last non-frozen column indexes\n const lastColIdx = columns.length - 1;\n const firstUnfrozenColumnIdx = min(lastFrozenColumnIndex + 1, lastColIdx);\n\n // skip rendering non-frozen columns if the frozen columns cover the entire viewport\n if (viewportLeft >= viewportRight) {\n return [firstUnfrozenColumnIdx, firstUnfrozenColumnIdx];\n }\n\n // get the first visible non-frozen column index\n let colVisibleStartIdx = firstUnfrozenColumnIdx;\n while (colVisibleStartIdx < lastColIdx) {\n const { left, width } = columnMetrics.get(columns[colVisibleStartIdx])!;\n // if the right side of the columnn is beyond the left side of the available viewport,\n // then it is the first column that's at least partially visible\n if (left + width > viewportLeft) {\n break;\n }\n colVisibleStartIdx++;\n }\n\n // get the last visible non-frozen column index\n let colVisibleEndIdx = colVisibleStartIdx;\n while (colVisibleEndIdx < lastColIdx) {\n const { left, width } = columnMetrics.get(columns[colVisibleEndIdx])!;\n // if the right side of the column is beyond or equal to the right side of the available viewport,\n // then it the last column that's at least partially visible, as the previous column's right side is not beyond the viewport.\n if (left + width >= viewportRight) {\n break;\n }\n colVisibleEndIdx++;\n }\n\n const colOverscanStartIdx = max(firstUnfrozenColumnIdx, colVisibleStartIdx - 1);\n const colOverscanEndIdx = min(lastColIdx, colVisibleEndIdx + 1);\n\n return [colOverscanStartIdx, colOverscanEndIdx];\n }, [\n columnMetrics,\n columns,\n lastFrozenColumnIndex,\n scrollLeft,\n totalFrozenColumnWidth,\n viewportWidth,\n enableVirtualization\n ]);\n\n return {\n columns,\n colSpanColumns,\n colOverscanStartIdx,\n colOverscanEndIdx,\n templateColumns,\n layoutCssVars,\n headerRowsCount,\n lastFrozenColumnIndex,\n totalFrozenColumnWidth\n };\n}\n\nfunction updateColumnParent<R, SR>(\n column: MutableCalculatedColumn<R, SR> | MutableCalculatedColumnParent<R, SR>,\n index: number,\n level: number\n) {\n if (level < column.level) {\n column.level = level;\n }\n\n if (column.parent !== undefined) {\n const { parent } = column;\n if (parent.idx === -1) {\n parent.idx = index;\n }\n parent.colSpan += 1;\n updateColumnParent(parent, index, level - 1);\n }\n}\n", "// eslint-disable-next-line @typescript-eslint/no-restricted-imports\nimport { useEffect, useLayoutEffect as useOriginalLayoutEffect } from 'react';\n\n// Silence silly warning\n// https://reactjs.org/link/uselayouteffect-ssr\nexport const useLayoutEffect = typeof window === 'undefined' ? useEffect : useOriginalLayoutEffect;\n", "import { useRef } from 'react';\nimport { flushSync } from 'react-dom';\n\nimport type { CalculatedColumn, StateSetter } from '../types';\nimport { useLayoutEffect } from './useLayoutEffect';\nimport type { DataGridProps } from '../DataGrid';\n\nexport function useColumnWidths<R, SR>(\n columns: readonly CalculatedColumn<R, SR>[],\n viewportColumns: readonly CalculatedColumn<R, SR>[],\n templateColumns: readonly string[],\n gridRef: React.RefObject<HTMLDivElement | null>,\n gridWidth: number,\n resizedColumnWidths: ReadonlyMap<string, number>,\n measuredColumnWidths: ReadonlyMap<string, number>,\n setResizedColumnWidths: StateSetter<ReadonlyMap<string, number>>,\n setMeasuredColumnWidths: StateSetter<ReadonlyMap<string, number>>,\n onColumnResize: DataGridProps<R, SR>['onColumnResize']\n) {\n const prevGridWidthRef = useRef(gridWidth);\n const columnsCanFlex: boolean = columns.length === viewportColumns.length;\n // Allow columns to flex again when...\n const ignorePreviouslyMeasuredColumns: boolean =\n // there is enough space for columns to flex and the grid was resized\n columnsCanFlex && gridWidth !== prevGridWidthRef.current;\n const newTemplateColumns = [...templateColumns];\n const columnsToMeasure: string[] = [];\n\n for (const { key, idx, width } of viewportColumns) {\n if (\n typeof width === 'string' &&\n (ignorePreviouslyMeasuredColumns || !measuredColumnWidths.has(key)) &&\n !resizedColumnWidths.has(key)\n ) {\n newTemplateColumns[idx] = width;\n columnsToMeasure.push(key);\n }\n }\n\n const gridTemplateColumns = newTemplateColumns.join(' ');\n\n useLayoutEffect(() => {\n prevGridWidthRef.current = gridWidth;\n updateMeasuredWidths(columnsToMeasure);\n });\n\n function updateMeasuredWidths(columnsToMeasure: readonly string[]) {\n if (columnsToMeasure.length === 0) return;\n\n setMeasuredColumnWidths((measuredColumnWidths) => {\n const newMeasuredColumnWidths = new Map(measuredColumnWidths);\n let hasChanges = false;\n\n for (const key of columnsToMeasure) {\n const measuredWidth = measureColumnWidth(gridRef, key);\n hasChanges ||= measuredWidth !== measuredColumnWidths.get(key);\n if (measuredWidth === undefined) {\n newMeasuredColumnWidths.delete(key);\n } else {\n newMeasuredColumnWidths.set(key, measuredWidth);\n }\n }\n\n return hasChanges ? newMeasuredColumnWidths : measuredColumnWidths;\n });\n }\n\n function handleColumnResize(column: CalculatedColumn<R, SR>, nextWidth: number | 'max-content') {\n const { key: resizingKey } = column;\n const newTemplateColumns = [...templateColumns];\n const columnsToMeasure: string[] = [];\n\n for (const { key, idx, width } of viewportColumns) {\n if (resizingKey === key) {\n const width = typeof nextWidth === 'number' ? `${nextWidth}px` : nextWidth;\n newTemplateColumns[idx] = width;\n } else if (columnsCanFlex && typeof width === 'string' && !resizedColumnWidths.has(key)) {\n newTemplateColumns[idx] = width;\n columnsToMeasure.push(key);\n }\n }\n\n gridRef.current!.style.gridTemplateColumns = newTemplateColumns.join(' ');\n const measuredWidth =\n typeof nextWidth === 'number' ? nextWidth : measureColumnWidth(gridRef, resizingKey)!;\n\n // TODO: remove\n // need flushSync to keep frozen column offsets in sync\n // we may be able to use `startTransition` or even `requestIdleCallback` instead\n flushSync(() => {\n setResizedColumnWidths((resizedColumnWidths) => {\n const newResizedColumnWidths = new Map(resizedColumnWidths);\n newResizedColumnWidths.set(resizingKey, measuredWidth);\n return newResizedColumnWidths;\n });\n updateMeasuredWidths(columnsToMeasure);\n });\n\n onColumnResize?.(column.idx, measuredWidth);\n }\n\n return {\n gridTemplateColumns,\n handleColumnResize\n } as const;\n}\n\nfunction measureColumnWidth(gridRef: React.RefObject<HTMLDivElement | null>, key: string) {\n const selector = `[data-measuring-cell-key=\"${CSS.escape(key)}\"]`;\n const measuringCell = gridRef.current?.querySelector(selector);\n return measuringCell?.getBoundingClientRect().width;\n}\n", "import { useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\n\nimport { useLayoutEffect } from './useLayoutEffect';\n\nexport function useGridDimensions() {\n const gridRef = useRef<HTMLDivElement>(null);\n const [inlineSize, setInlineSize] = useState(1);\n const [blockSize, setBlockSize] = useState(1);\n const [horizontalScrollbarHeight, setHorizontalScrollbarHeight] = useState(0);\n\n useLayoutEffect(() => {\n const { ResizeObserver } = window;\n\n // don't break in Node.js (SSR), jsdom, and browsers that don't support ResizeObserver\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (ResizeObserver == null) return;\n\n const { clientWidth, clientHeight, offsetWidth, offsetHeight } = gridRef.current!;\n const { width, height } = gridRef.current!.getBoundingClientRect();\n const initialHorizontalScrollbarHeight = offsetHeight - clientHeight;\n const initialWidth = width - offsetWidth + clientWidth;\n const initialHeight = height - initialHorizontalScrollbarHeight;\n\n setInlineSize(initialWidth);\n setBlockSize(initialHeight);\n setHorizontalScrollbarHeight(initialHorizontalScrollbarHeight);\n\n const resizeObserver = new ResizeObserver((entries) => {\n const size = entries[0].contentBoxSize[0];\n const { clientHeight, offsetHeight } = gridRef.current!;\n\n // we use flushSync here to avoid flashing scrollbars\n flushSync(() => {\n setInlineSize(size.inlineSize);\n setBlockSize(size.blockSize);\n setHorizontalScrollbarHeight(offsetHeight - clientHeight);\n });\n });\n resizeObserver.observe(gridRef.current!);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n return [gridRef, inlineSize, blockSize, horizontalScrollbarHeight] as const;\n}\n", "import { useCallback, useEffect, useRef } from 'react';\n\nimport type { Maybe } from '../types';\n\n// https://reactjs.org/docs/hooks-faq.html#what-can-i-do-if-my-effect-dependencies-change-too-often\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useLatestFunc<T extends Maybe<(...args: any[]) => any>>(fn: T): T {\n const ref = useRef(fn);\n\n useEffect(() => {\n ref.current = fn;\n });\n\n const callbackFn = useCallback((...args: Parameters<NonNullable<T>>) => {\n ref.current!(...args);\n }, []);\n\n // @ts-expect-error\n return fn ? callbackFn : fn;\n}\n", "import { useState } from 'react';\n\n// https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_roving_tabindex\nexport function useRovingTabIndex(isSelected: boolean) {\n // https://www.w3.org/TR/wai-aria-practices-1.1/#gridNav_focus\n const [isChildFocused, setIsChildFocused] = useState(false);\n\n if (isChildFocused && !isSelected) {\n setIsChildFocused(false);\n }\n\n function onFocus(event: React.FocusEvent<HTMLDivElement>) {\n if (event.target !== event.currentTarget) {\n setIsChildFocused(true);\n }\n }\n\n const isFocusable = isSelected && !isChildFocused;\n\n return {\n tabIndex: isFocusable ? 0 : -1,\n childTabIndex: isSelected ? 0 : -1,\n onFocus: isSelected ? onFocus : undefined\n };\n}\n", "import { useMemo } from 'react';\n\nimport { getColSpan } from '../utils';\nimport type { CalculatedColumn, Maybe } from '../types';\n\ninterface ViewportColumnsArgs<R, SR> {\n columns: readonly CalculatedColumn<R, SR>[];\n colSpanColumns: readonly CalculatedColumn<R, SR>[];\n rows: readonly R[];\n topSummaryRows: Maybe<readonly SR[]>;\n bottomSummaryRows: Maybe<readonly SR[]>;\n colOverscanStartIdx: number;\n colOverscanEndIdx: number;\n lastFrozenColumnIndex: number;\n rowOverscanStartIdx: number;\n rowOverscanEndIdx: number;\n}\n\nexport function useViewportColumns<R, SR>({\n columns,\n colSpanColumns,\n rows,\n topSummaryRows,\n bottomSummaryRows,\n colOverscanStartIdx,\n colOverscanEndIdx,\n lastFrozenColumnIndex,\n rowOverscanStartIdx,\n rowOverscanEndIdx\n}: ViewportColumnsArgs<R, SR>) {\n // find the column that spans over a column within the visible columns range and adjust colOverscanStartIdx\n const startIdx = useMemo(() => {\n if (colOverscanStartIdx === 0) return 0;\n\n let startIdx = colOverscanStartIdx;\n\n const updateStartIdx = (colIdx: number, colSpan: number | undefined) => {\n if (colSpan !== undefined && colIdx + colSpan > colOverscanStartIdx) {\n startIdx = colIdx;\n return true;\n }\n return false;\n };\n\n for (const column of colSpanColumns) {\n // check header row\n const colIdx = column.idx;\n if (colIdx >= startIdx) break;\n if (updateStartIdx(colIdx, getColSpan(column, lastFrozenColumnIndex, { type: 'HEADER' }))) {\n break;\n }\n\n // check viewport rows\n for (let rowIdx = rowOverscanStartIdx; rowIdx <= rowOverscanEndIdx; rowIdx++) {\n const row = rows[rowIdx];\n if (\n updateStartIdx(colIdx, getColSpan(column, lastFrozenColumnIndex, { type: 'ROW', row }))\n ) {\n break;\n }\n }\n\n // check summary rows\n if (topSummaryRows != null) {\n for (const row of topSummaryRows) {\n if (\n updateStartIdx(\n colIdx,\n getColSpan(column, lastFrozenColumnIndex, { type: 'SUMMARY', row })\n )\n ) {\n break;\n }\n }\n }\n\n if (bottomSummaryRows != null) {\n for (const row of bottomSummaryRows) {\n if (\n updateStartIdx(\n colIdx,\n getColSpan(column, lastFrozenColumnIndex, { type: 'SUMMARY', row })\n )\n ) {\n break;\n }\n }\n }\n }\n\n return startIdx;\n }, [\n rowOverscanStartIdx,\n rowOverscanEndIdx,\n rows,\n topSummaryRows,\n bottomSummaryRows,\n colOverscanStartIdx,\n lastFrozenColumnIndex,\n colSpanColumns\n ]);\n\n return useMemo((): readonly CalculatedColumn<R, SR>[] => {\n const viewportColumns: CalculatedColumn<R, SR>[] = [];\n for (let colIdx = 0; colIdx <= colOverscanEndIdx; colIdx++) {\n const column = columns[colIdx];\n\n if (colIdx < startIdx && !column.frozen) continue;\n viewportColumns.push(column);\n }\n\n return viewportColumns;\n }, [startIdx, colOverscanEndIdx, columns]);\n}\n", "import { useMemo } from 'react';\n\nimport { floor, max, min } from '../utils';\n\ninterface ViewportRowsArgs<R> {\n rows: readonly R[];\n rowHeight: number | ((row: R) => number);\n clientHeight: number;\n scrollTop: number;\n enableVirtualization: boolean;\n}\n\nexport function useViewportRows<R>({\n rows,\n rowHeight,\n clientHeight,\n scrollTop,\n enableVirtualization\n}: ViewportRowsArgs<R>) {\n const { totalRowHeight, gridTemplateRows, getRowTop, getRowHeight, findRowIdx } = useMemo(() => {\n if (typeof rowHeight === 'number') {\n return {\n totalRowHeight: rowHeight * rows.length,\n gridTemplateRows: ` repeat(${rows.length}, ${rowHeight}px)`,\n getRowTop: (rowIdx: number) => rowIdx * rowHeight,\n getRowHeight: () => rowHeight,\n findRowIdx: (offset: number) => floor(offset / rowHeight)\n };\n }\n\n let totalRowHeight = 0;\n let gridTemplateRows = ' ';\n // Calcule the height of all the rows upfront. This can cause performance issues\n // and we can consider using a similar approach as react-window\n // https://github.com/bvaughn/react-window/blob/b0a470cc264e9100afcaa1b78ed59d88f7914ad4/src/VariableSizeList.js#L68\n const rowPositions = rows.map((row) => {\n const currentRowHeight = rowHeight(row);\n const position = { top: totalRowHeight, height: currentRowHeight };\n gridTemplateRows += `${currentRowHeight}px `;\n totalRowHeight += currentRowHeight;\n return position;\n });\n\n const validateRowIdx = (rowIdx: number) => {\n return max(0, min(rows.length - 1, rowIdx));\n };\n\n return {\n totalRowHeight,\n gridTemplateRows,\n getRowTop: (rowIdx: number) => rowPositions[validateRowIdx(rowIdx)].top,\n getRowHeight: (rowIdx: number) => rowPositions[validateRowIdx(rowIdx)].height,\n findRowIdx(offset: number) {\n let start = 0;\n let end = rowPositions.length - 1;\n while (start <= end) {\n const middle = start + floor((end - start) / 2);\n const currentOffset = rowPositions[middle].top;\n\n if (currentOffset === offset) return middle;\n\n if (currentOffset < offset) {\n start = middle + 1;\n } else if (currentOffset > offset) {\n end = middle - 1;\n }\n\n if (start > end) return end;\n }\n return 0;\n }\n };\n }, [rowHeight, rows]);\n\n let rowOverscanStartIdx = 0;\n let rowOverscanEndIdx = rows.length - 1;\n\n if (enableVirtualization) {\n const overscanThreshold = 4;\n const rowVisibleStartIdx = findRowIdx(scrollTop);\n const rowVisibleEndIdx = findRowIdx(scrollTop + clientHeight);\n rowOverscanStartIdx = max(0, rowVisibleStartIdx - overscanThreshold);\n rowOverscanEndIdx = min(rows.length - 1, rowVisibleEndIdx + overscanThreshold);\n }\n\n return {\n rowOverscanStartIdx,\n rowOverscanEndIdx,\n totalRowHeight,\n gridTemplateRows,\n getRowTop,\n getRowHeight,\n findRowIdx\n };\n}\n", "import { css } from '@linaria/core';\nimport clsx from 'clsx';\n\nimport { getCellStyle } from './utils';\nimport type { CalculatedColumn, FillEvent, Position } from './types';\nimport type { DataGridProps, SelectCellState } from './DataGrid';\n\nconst cellDragHandle = css`\n @layer rdg.DragHandle {\n --rdg-drag-handle-size: 8px;\n z-index: 0;\n cursor: move;\n inline-size: var(--rdg-drag-handle-size);\n block-size: var(--rdg-drag-handle-size);\n background-color: var(--rdg-selection-color);\n place-self: end;\n\n &:hover {\n --rdg-drag-handle-size: 16px;\n border: 2px solid var(--rdg-selection-color);\n background-color: var(--rdg-background-color);\n }\n }\n`;\n\nconst cellDragHandleFrozenClassname = css`\n @layer rdg.DragHandle {\n z-index: 1;\n position: sticky;\n }\n`;\n\nconst cellDragHandleClassname = `rdg-cell-drag-handle ${cellDragHandle}`;\n\ninterface Props<R, SR> extends Pick<DataGridProps<R, SR>, 'rows' | 'onRowsChange'> {\n gridRowStart: number;\n column: CalculatedColumn<R, SR>;\n columnWidth: number | string;\n maxColIdx: number;\n isLastRow: boolean;\n selectedPosition: SelectCellState;\n latestDraggedOverRowIdx: React.MutableRefObject<number | undefined>;\n isCellEditable: (position: Position) => boolean;\n onClick: () => void;\n onFill: (event: FillEvent<R>) => R;\n setDragging: (isDragging: boolean) => void;\n setDraggedOverRowIdx: (overRowIdx: number | undefined) => void;\n}\n\nexport default function DragHandle<R, SR>({\n gridRowStart,\n rows,\n column,\n columnWidth,\n maxColIdx,\n isLastRow,\n selectedPosition,\n latestDraggedOverRowIdx,\n isCellEditable,\n onRowsChange,\n onFill,\n onClick,\n setDragging,\n setDraggedOverRowIdx\n}: Props<R, SR>) {\n const { idx, rowIdx } = selectedPosition;\n\n function handleMouseDown(event: React.MouseEvent<HTMLDivElement>) {\n // keep the focus on the cell\n event.preventDefault();\n if (event.buttons !== 1) return;\n setDragging(true);\n window.addEventListener('mouseover', onMouseOver);\n window.addEventListener('mouseup', onMouseUp);\n\n function onMouseOver(event: MouseEvent) {\n // Trigger onMouseup in edge cases where we release the mouse button but `mouseup` isn't triggered,\n // for example when releasing the mouse button outside the iframe the grid is rendered in.\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons\n if (event.buttons !== 1) onMouseUp();\n }\n\n function onMouseUp() {\n window.removeEventListener('mouseover', onMouseOver);\n window.removeEventListener('mouseup', onMouseUp);\n setDragging(false);\n handleDragEnd();\n }\n }\n\n function handleDragEnd() {\n const overRowIdx = latestDraggedOverRowIdx.current;\n if (overRowIdx === undefined) return;\n\n const startRowIndex = rowIdx < overRowIdx ? rowIdx + 1 : overRowIdx;\n const endRowIndex = rowIdx < overRowIdx ? overRowIdx + 1 : rowIdx;\n updateRows(startRowIndex, endRowIndex);\n setDraggedOverRowIdx(undefined);\n }\n\n function handleDoubleClick(event: React.MouseEvent<HTMLDivElement>) {\n event.stopPropagation();\n updateRows(rowIdx + 1, rows.length);\n }\n\n function updateRows(startRowIdx: number, endRowIdx: number) {\n const sourceRow = rows[rowIdx];\n const updatedRows = [...rows];\n const indexes: number[] = [];\n for (let i = startRowIdx; i < endRowIdx; i++) {\n if (isCellEditable({ rowIdx: i, idx })) {\n const updatedRow = onFill({ columnKey: column.key, sourceRow, targetRow: rows[i] });\n if (updatedRow !== rows[i]) {\n updatedRows[i] = updatedRow;\n indexes.push(i);\n }\n }\n }\n\n if (indexes.length > 0) {\n onRowsChange?.(updatedRows, { indexes, column });\n }\n }\n\n function getStyle(): React.CSSProperties {\n const colSpan = column.colSpan?.({ type: 'ROW', row: rows[rowIdx] }) ?? 1;\n const { insetInlineStart, ...style } = getCellStyle(column, colSpan);\n const marginEnd = 'calc(var(--rdg-drag-handle-size) * -0.5 + 1px)';\n const isLastColumn = column.idx + colSpan - 1 === maxColIdx;\n\n return {\n ...style,\n gridRowStart,\n marginInlineEnd: isLastColumn ? undefined : marginEnd,\n marginBlockEnd: isLastRow ? undefined : marginEnd,\n insetInlineStart: insetInlineStart\n ? `calc(${insetInlineStart} + ${columnWidth}px + var(--rdg-drag-handle-size) * -0.5 - 1px)`\n : undefined\n };\n }\n\n return (\n <div\n style={getStyle()}\n className={clsx(cellDragHandleClassname, column.frozen && cellDragHandleFrozenClassname)}\n onClick={onClick}\n onMouseDown={handleMouseDown}\n onDoubleClick={handleDoubleClick}\n />\n );\n}\n", "import { useEffect, useRef } from 'react';\nimport { css } from '@linaria/core';\n\nimport { useLatestFunc } from './hooks';\nimport { createCellEvent, getCellClassname, getCellStyle, onEditorNavigation } from './utils';\nimport type {\n CellKeyboardEvent,\n CellRendererProps,\n EditCellKeyDownArgs,\n Maybe,\n Omit,\n RenderEditCellProps\n} from './types';\n\n/*\n * To check for outside `mousedown` events, we listen to all `mousedown` events at their birth,\n * i.e. on the window during the capture phase, and at their death, i.e. on the window during the bubble phase.\n *\n * We schedule a check at the birth of the event, cancel the check when the event reaches the \"inside\" container,\n * and trigger the \"outside\" callback when the event bubbles back up to the window.\n *\n * The event can be `stopPropagation()`ed halfway through, so they may not always bubble back up to the window,\n * so an alternative check must be used. The check must happen after the event can reach the \"inside\" container,\n * and not before it run to completion. `requestAnimationFrame` is the best way we know how to achieve this.\n * Usually we want click event handlers from parent components to access the latest commited values,\n * so `mousedown` is used instead of `click`.\n *\n * We must also rely on React's event capturing/bubbling to handle elements rendered in a portal.\n */\n\nconst cellEditing = css`\n @layer rdg.EditCell {\n padding: 0;\n }\n`;\n\ntype SharedCellRendererProps<R, SR> = Pick<CellRendererProps<R, SR>, 'colSpan'>;\n\ninterface EditCellProps<R, SR>\n extends Omit<RenderEditCellProps<R, SR>, 'onRowChange' | 'onClose'>,\n SharedCellRendererProps<R, SR> {\n rowIdx: number;\n onRowChange: (row: R, commitChanges: boolean, shouldFocusCell: boolean) => void;\n closeEditor: (shouldFocusCell: boolean) => void;\n navigate: (event: React.KeyboardEvent<HTMLDivElement>) => void;\n onKeyDown: Maybe<(args: EditCellKeyDownArgs<R, SR>, event: CellKeyboardEvent) => void>;\n}\n\nexport default function EditCell<R, SR>({\n column,\n colSpan,\n row,\n rowIdx,\n onRowChange,\n closeEditor,\n onKeyDown,\n navigate\n}: EditCellProps<R, SR>) {\n const frameRequestRef = useRef<number | undefined>(undefined);\n const commitOnOutsideClick = column.editorOptions?.commitOnOutsideClick !== false;\n\n // We need to prevent the `useEffect` from cleaning up between re-renders,\n // as `onWindowCaptureMouseDown` might otherwise miss valid mousedown events.\n // To that end we instead access the latest props via useLatestFunc.\n const commitOnOutsideMouseDown = useLatestFunc(() => {\n onClose(true, false);\n });\n\n useEffect(() => {\n if (!commitOnOutsideClick) return;\n\n function onWindowCaptureMouseDown() {\n frameRequestRef.current = requestAnimationFrame(commitOnOutsideMouseDown);\n }\n\n addEventListener('mousedown', onWindowCaptureMouseDown, { capture: true });\n\n return () => {\n removeEventListener('mousedown', onWindowCaptureMouseDown, { capture: true });\n cancelFrameRequest();\n };\n }, [commitOnOutsideClick, commitOnOutsideMouseDown]);\n\n function cancelFrameRequest() {\n cancelAnimationFrame(frameRequestRef.current!);\n }\n\n function handleKeyDown(event: React.KeyboardEvent<HTMLDivElement>) {\n if (onKeyDown) {\n const cellEvent = createCellEvent(event);\n onKeyDown(\n {\n mode: 'EDIT',\n row,\n column,\n rowIdx,\n navigate() {\n navigate(event);\n },\n onClose\n },\n cellEvent\n );\n if (cellEvent.isGridDefaultPrevented()) return;\n }\n\n if (event.key === 'Escape') {\n // Discard changes\n onClose();\n } else if (event.key === 'Enter') {\n onClose(true);\n } else if (onEditorNavigation(event)) {\n navigate(event);\n }\n }\n\n function onClose(commitChanges = false, shouldFocusCell = true) {\n if (commitChanges) {\n onRowChange(row, true, shouldFocusCell);\n } else {\n closeEditor(shouldFocusCell);\n }\n }\n\n function onEditorRowChange(row: R, commitChangesAndFocus = false) {\n onRowChange(row, commitChangesAndFocus, commitChangesAndFocus);\n }\n\n const { cellClass } = column;\n const className = getCellClassname(\n column,\n 'rdg-editor-container',\n !column.editorOptions?.displayCellContent && cellEditing,\n typeof cellClass === 'function' ? cellClass(row) : cellClass\n );\n\n return (\n <div\n role=\"gridcell\"\n aria-colindex={column.idx + 1} // aria-colindex is 1-based\n aria-colspan={colSpan}\n aria-selected\n className={className}\n style={getCellStyle(column, colSpan)}\n onKeyDown={handleKeyDown}\n onMouseDownCapture={cancelFrameRequest}\n >\n {column.renderEditCell != null && (\n <>\n {column.renderEditCell({\n column,\n row,\n rowIdx,\n onRowChange: onEditorRowChange,\n onClose\n })}\n {column.editorOptions?.displayCellContent &&\n column.renderCell({\n column,\n row,\n rowIdx,\n isCellEditable: true,\n tabIndex: -1,\n onRowChange: onEditorRowChange\n })}\n </>\n )}\n </div>\n );\n}\n", "import clsx from 'clsx';\n\nimport { useRovingTabIndex } from './hooks';\nimport { getHeaderCellRowSpan, getHeaderCellStyle } from './utils';\nimport type { CalculatedColumnParent } from './types';\nimport type { GroupedColumnHeaderRowProps } from './GroupedColumnHeaderRow';\nimport { cellClassname } from './style/cell';\n\ntype SharedGroupedColumnHeaderRowProps<R, SR> = Pick<\n GroupedColumnHeaderRowProps<R, SR>,\n 'rowIdx' | 'selectCell'\n>;\n\ninterface GroupedColumnHeaderCellProps<R, SR> extends SharedGroupedColumnHeaderRowProps<R, SR> {\n column: CalculatedColumnParent<R, SR>;\n isCellSelected: boolean;\n}\n\nexport default function GroupedColumnHeaderCell<R, SR>({\n column,\n rowIdx,\n isCellSelected,\n selectCell\n}: GroupedColumnHeaderCellProps<R, SR>) {\n const { tabIndex, onFocus } = useRovingTabIndex(isCellSelected);\n const { colSpan } = column;\n const rowSpan = getHeaderCellRowSpan(column, rowIdx);\n const index = column.idx + 1;\n\n function onClick() {\n selectCell({ idx: column.idx, rowIdx });\n }\n\n return (\n <div\n role=\"columnheader\"\n aria-colindex={index}\n aria-colspan={colSpan}\n aria-rowspan={rowSpan}\n aria-selected={isCellSelected}\n tabIndex={tabIndex}\n className={clsx(cellClassname, column.headerCellClass)}\n style={{\n ...getHeaderCellStyle(column, rowIdx, rowSpan),\n gridColumnStart: index,\n gridColumnEnd: index + colSpan\n }}\n onFocus={onFocus}\n onClick={onClick}\n >\n {column.name}\n </div>\n );\n}\n", "import { css } from '@linaria/core';\n\nimport type { RenderHeaderCellProps } from './types';\nimport { useDefaultRenderers } from './DataGridDefaultRenderersProvider';\n\nconst headerSortCellClassname = css`\n @layer rdg.SortableHeaderCell {\n display: flex;\n }\n`;\n\nconst headerSortName = css`\n @layer rdg.SortableHeaderCellName {\n flex-grow: 1;\n overflow: clip;\n text-overflow: ellipsis;\n }\n`;\n\nconst headerSortNameClassname = `rdg-header-sort-name ${headerSortName}`;\n\nexport default function renderHeaderCell<R, SR>({\n column,\n sortDirection,\n priority\n}: RenderHeaderCellProps<R, SR>) {\n if (!column.sortable) return column.name;\n\n return (\n <SortableHeaderCell sortDirection={sortDirection} priority={priority}>\n {column.name}\n </SortableHeaderCell>\n );\n}\n\ntype SharedHeaderCellProps<R, SR> = Pick<\n RenderHeaderCellProps<R, SR>,\n 'sortDirection' | 'priority'\n>;\n\ninterface SortableHeaderCellProps<R, SR> extends SharedHeaderCellProps<R, SR> {\n children: React.ReactNode;\n}\n\nfunction SortableHeaderCell<R, SR>({\n sortDirection,\n priority,\n children\n}: SortableHeaderCellProps<R, SR>) {\n const renderSortStatus = useDefaultRenderers<R, SR>()!.renderSortStatus!;\n\n return (\n <span className={headerSortCellClassname}>\n <span className={headerSortNameClassname}>{children}</span>\n <span>{renderSortStatus({ sortDirection, priority })}</span>\n </span>\n );\n}\n", "import { useState } from 'react';\nimport { css } from '@linaria/core';\n\nimport { useRovingTabIndex } from './hooks';\nimport {\n clampColumnWidth,\n getCellClassname,\n getCellStyle,\n getHeaderCellRowSpan,\n getHeaderCellStyle,\n stopPropagation\n} from './utils';\nimport type { CalculatedColumn, SortColumn } from './types';\nimport type { HeaderRowProps } from './HeaderRow';\nimport defaultRenderHeaderCell from './renderHeaderCell';\n\nconst cellSortableClassname = css`\n @layer rdg.HeaderCell {\n cursor: pointer;\n }\n`;\n\nconst cellResizable = css`\n @layer rdg.HeaderCell {\n touch-action: none;\n }\n`;\n\nconst cellResizableClassname = `rdg-cell-resizable ${cellResizable}`;\n\nexport const resizeHandleClassname = css`\n @layer rdg.HeaderCell {\n cursor: col-resize;\n position: absolute;\n inset-block-start: 0;\n inset-inline-end: 0;\n inset-block-end: 0;\n inline-size: 10px;\n }\n`;\n\nconst cellDraggableClassname = 'rdg-cell-draggable';\n\nconst cellDragging = css`\n opacity: 0.5;\n`;\n\nconst cellDraggingClassname = `rdg-cell-dragging ${cellDragging}`;\n\nconst cellOver = css`\n background-color: var(--rdg-header-draggable-background-color);\n`;\n\nconst cellOverClassname = `rdg-cell-drag-over ${cellOver}`;\n\ntype SharedHeaderRowProps<R, SR> = Pick<\n HeaderRowProps<R, SR, React.Key>,\n | 'sortColumns'\n | 'onSortColumnsChange'\n | 'selectCell'\n | 'onColumnResize'\n | 'shouldFocusGrid'\n | 'direction'\n | 'onColumnsReorder'\n>;\n\nexport interface HeaderCellProps<R, SR> extends SharedHeaderRowProps<R, SR> {\n column: CalculatedColumn<R, SR>;\n colSpan: number | undefined;\n rowIdx: number;\n isCellSelected: boolean;\n dragDropKey: string;\n}\n\nexport default function HeaderCell<R, SR>({\n column,\n colSpan,\n rowIdx,\n isCellSelected,\n onColumnResize,\n onColumnsReorder,\n sortColumns,\n onSortColumnsChange,\n selectCell,\n shouldFocusGrid,\n direction,\n dragDropKey\n}: HeaderCellProps<R, SR>) {\n const [isDragging, setIsDragging] = useState(false);\n const [isOver, setIsOver] = useState(false);\n const isRtl = direction === 'rtl';\n const rowSpan = getHeaderCellRowSpan(column, rowIdx);\n const { tabIndex, childTabIndex, onFocus } = useRovingTabIndex(isCellSelected);\n const sortIndex = sortColumns?.findIndex((sort) => sort.columnKey === column.key);\n const sortColumn =\n sortIndex !== undefined && sortIndex > -1 ? sortColumns![sortIndex] : undefined;\n const sortDirection = sortColumn?.direction;\n const priority = sortColumn !== undefined && sortColumns!.length > 1 ? sortIndex! + 1 : undefined;\n const ariaSort =\n sortDirection && !priority ? (sortDirection === 'ASC' ? 'ascending' : 'descending') : undefined;\n const { sortable, resizable, draggable } = column;\n\n const className = getCellClassname(column, column.headerCellClass, {\n [cellSortableClassname]: sortable,\n [cellResizableClassname]: resizable,\n [cellDraggableClassname]: draggable,\n [cellDraggingClassname]: isDragging,\n [cellOverClassname]: isOver\n });\n\n const renderHeaderCell = column.renderHeaderCell ?? defaultRenderHeaderCell;\n\n function onPointerDown(event: React.PointerEvent<HTMLDivElement>) {\n if (event.pointerType === 'mouse' && event.buttons !== 1) {\n return;\n }\n\n // Fix column resizing on a draggable column in FF\n event.preventDefault();\n\n const { currentTarget, pointerId } = event;\n const headerCell = currentTarget.parentElement!;\n const { right, left } = headerCell.getBoundingClientRect();\n const offset = isRtl ? event.clientX - left : right - event.clientX;\n let hasDoubleClicked = false;\n\n function onPointerMove(event: PointerEvent) {\n const { width, right, left } = headerCell.getBoundingClientRect();\n let newWidth = isRtl ? right + offset - event.clientX : event.clientX + offset - left;\n newWidth = clampColumnWidth(newWidth, column);\n if (width > 0 && newWidth !== width) {\n onColumnResize(column, newWidth);\n }\n }\n\n function onDoubleClick() {\n hasDoubleClicked = true;\n onColumnResize(column, 'max-content');\n }\n\n function onLostPointerCapture(event: PointerEvent) {\n // Handle final pointer position that may have been skipped by coalesced pointer move events.\n // Skip move pointer handling if the user double-clicked.\n if (!hasDoubleClicked) {\n onPointerMove(event);\n }\n\n currentTarget.removeEventListener('pointermove', onPointerMove);\n currentTarget.removeEventListener('dblclick', onDoubleClick);\n currentTarget.removeEventListener('lostpointercapture', onLostPointerCapture);\n }\n\n currentTarget.setPointerCapture(pointerId);\n currentTarget.addEventListener('pointermove', onPointerMove);\n currentTarget.addEventListener('dblclick', onDoubleClick);\n currentTarget.addEventListener('lostpointercapture', onLostPointerCapture);\n }\n\n function onSort(ctrlClick: boolean) {\n if (onSortColumnsChange == null) return;\n const { sortDescendingFirst } = column;\n if (sortColumn === undefined) {\n // not currently sorted\n const nextSort: SortColumn = {\n columnKey: column.key,\n direction: sortDescendingFirst ? 'DESC' : 'ASC'\n };\n onSortColumnsChange(sortColumns && ctrlClick ? [...sortColumns, nextSort] : [nextSort]);\n } else {\n let nextSortColumn: SortColumn | undefined;\n if (\n (sortDescendingFirst === true && sortDirection === 'DESC') ||\n (sortDescendingFirst !== true && sortDirection === 'ASC')\n ) {\n nextSortColumn = {\n columnKey: column.key,\n direction: sortDirection === 'ASC' ? 'DESC' : 'ASC'\n };\n }\n if (ctrlClick) {\n const nextSortColumns = [...sortColumns!];\n if (nextSortColumn) {\n // swap direction\n nextSortColumns[sortIndex!] = nextSortColumn;\n } else {\n // remove sort\n nextSortColumns.splice(sortIndex!, 1);\n }\n onSortColumnsChange(nextSortColumns);\n } else {\n onSortColumnsChange(nextSortColumn ? [nextSortColumn] : []);\n }\n }\n }\n\n function onClick(event: React.MouseEvent<HTMLSpanElement>) {\n selectCell({ idx: column.idx, rowIdx });\n\n if (sortable) {\n onSort(event.ctrlKey || event.metaKey);\n }\n }\n\n function handleFocus(event: React.FocusEvent<HTMLDivElement>) {\n onFocus?.(event);\n if (shouldFocusGrid) {\n // Select the first header cell if there is no selected cell\n selectCell({ idx: 0, rowIdx });\n }\n }\n\n function onKeyDown(event: React.KeyboardEvent<HTMLSpanElement>) {\n if (event.key === ' ' || event.key === 'Enter') {\n // prevent scrolling\n event.preventDefault();\n onSort(event.ctrlKey || event.metaKey);\n }\n }\n\n function onDragStart(event: React.DragEvent<HTMLDivElement>) {\n event.dataTransfer.setData(dragDropKey, column.key);\n event.dataTransfer.dropEffect = 'move';\n setIsDragging(true);\n }\n\n function onDragEnd() {\n setIsDragging(false);\n }\n\n function onDragOver(event: React.DragEvent<HTMLDivElement>) {\n // prevent default to allow drop\n event.preventDefault();\n event.dataTransfer.dropEffect = 'move';\n }\n\n function onDrop(event: React.DragEvent<HTMLDivElement>) {\n setIsOver(false);\n // The dragDropKey is derived from the useId() hook, which can sometimes generate keys with uppercase letters.\n // When setting data using event.dataTransfer.setData(), the key is automatically converted to lowercase in some browsers.\n // To ensure consistent comparison, we normalize the dragDropKey to lowercase before checking its presence in the event's dataTransfer types.\n // https://html.spec.whatwg.org/multipage/dnd.html#the-datatransfer-interface\n if (event.dataTransfer.types.includes(dragDropKey.toLowerCase())) {\n const sourceKey = event.dataTransfer.getData(dragDropKey.toLowerCase());\n if (sourceKey !== column.key) {\n event.preventDefault();\n onColumnsReorder?.(sourceKey, column.key);\n }\n }\n }\n\n function onDragEnter(event: React.DragEvent<HTMLDivElement>) {\n if (isEventPertinent(event)) {\n setIsOver(true);\n }\n }\n\n function onDragLeave(event: React.DragEvent<HTMLDivElement>) {\n if (isEventPertinent(event)) {\n setIsOver(false);\n }\n }\n\n let draggableProps: React.HTMLAttributes<HTMLDivElement> | undefined;\n if (draggable) {\n draggableProps = {\n draggable: true,\n /* events fired on the draggable target */\n onDragStart,\n onDragEnd,\n /* events fired on the drop targets */\n onDragOver,\n onDragEnter,\n onDragLeave,\n onDrop\n };\n }\n\n return (\n <div\n role=\"columnheader\"\n aria-colindex={column.idx + 1}\n aria-colspan={colSpan}\n aria-rowspan={rowSpan}\n aria-selected={isCellSelected}\n aria-sort={ariaSort}\n // set the tabIndex to 0 when there is no selected cell so grid can receive focus\n tabIndex={shouldFocusGrid ? 0 : tabIndex}\n className={className}\n style={{\n ...getHeaderCellStyle(column, rowIdx, rowSpan),\n ...getCellStyle(column, colSpan)\n }}\n onFocus={handleFocus}\n onClick={onClick}\n onKeyDown={sortable ? onKeyDown : undefined}\n {...draggableProps}\n >\n {renderHeaderCell({\n column,\n sortDirection,\n priority,\n tabIndex: childTabIndex\n })}\n\n {resizable && (\n <div\n className={resizeHandleClassname}\n onClick={stopPropagation}\n onPointerDown={onPointerDown}\n />\n )}\n </div>\n );\n}\n\n// only accept pertinent drag events:\n// - ignore drag events going from the container to an element inside the container\n// - ignore drag events going from an element inside the container to the container\nfunction isEventPertinent(event: React.DragEvent) {\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n\n return !event.currentTarget.contains(relatedTarget);\n}\n", "import { css } from '@linaria/core';\n\nexport const row = css`\n @layer rdg.Row {\n display: contents;\n background-color: var(--rdg-background-color);\n\n &:hover {\n background-color: var(--rdg-row-hover-background-color);\n }\n\n &[aria-selected='true'] {\n background-color: var(--rdg-row-selected-background-color);\n\n &:hover {\n background-color: var(--rdg-row-selected-hover-background-color);\n }\n }\n }\n`;\n\nexport const rowClassname = `rdg-row ${row}`;\n\nexport const rowSelected = css`\n @layer rdg.FocusSink {\n outline: 2px solid var(--rdg-selection-color);\n outline-offset: -2px;\n }\n`;\n\nexport const rowSelectedClassname = 'rdg-row-selected';\n\nexport const rowSelectedWithFrozenCell = css`\n @layer rdg.FocusSink {\n &::before {\n content: '';\n display: inline-block;\n block-size: 100%;\n position: sticky;\n inset-inline-start: 0;\n border-inline-start: 2px solid var(--rdg-selection-color);\n }\n }\n`;\n\nexport const topSummaryRowClassname = 'rdg-top-summary-row';\n\nexport const bottomSummaryRowClassname = 'rdg-bottom-summary-row';\n", "import { memo, useId } from 'react';\nimport { css } from '@linaria/core';\nimport clsx from 'clsx';\n\nimport { getColSpan } from './utils';\nimport type { CalculatedColumn, Direction, Position } from './types';\nimport type { DataGridProps } from './DataGrid';\nimport HeaderCell from './HeaderCell';\nimport { cell, cellFrozen } from './style/cell';\nimport { rowSelectedClassname } from './style/row';\n\ntype SharedDataGridProps<R, SR, K extends React.Key> = Pick<\n DataGridProps<R, SR, K>,\n 'sortColumns' | 'onSortColumnsChange' | 'onColumnsReorder'\n>;\n\nexport interface HeaderRowProps<R, SR, K extends React.Key> extends SharedDataGridProps<R, SR, K> {\n rowIdx: number;\n columns: readonly CalculatedColumn<R, SR>[];\n onColumnResize: (column: CalculatedColumn<R, SR>, width: number | 'max-content') => void;\n selectCell: (position: Position) => void;\n lastFrozenColumnIndex: number;\n selectedCellIdx: number | undefined;\n shouldFocusGrid: boolean;\n direction: Direction;\n}\n\nconst headerRow = css`\n @layer rdg.HeaderRow {\n display: contents;\n background-color: var(--rdg-header-background-color);\n font-weight: bold;\n\n & > .${cell} {\n /* Should have a higher value than 1 to show up above regular cells and the focus sink */\n z-index: 2;\n position: sticky;\n }\n\n & > .${cellFrozen} {\n z-index: 3;\n }\n }\n`;\n\nexport const headerRowClassname = `rdg-header-row ${headerRow}`;\n\nfunction HeaderRow<R, SR, K extends React.Key>({\n rowIdx,\n columns,\n onColumnResize,\n onColumnsReorder,\n sortColumns,\n onSortColumnsChange,\n lastFrozenColumnIndex,\n selectedCellIdx,\n selectCell,\n shouldFocusGrid,\n direction\n}: HeaderRowProps<R, SR, K>) {\n const dragDropKey = useId();\n\n const cells = [];\n for (let index = 0; index < columns.length; index++) {\n const column = columns[index];\n const colSpan = getColSpan(column, lastFrozenColumnIndex, { type: 'HEADER' });\n if (colSpan !== undefined) {\n index += colSpan - 1;\n }\n\n cells.push(\n <HeaderCell<R, SR>\n key={column.key}\n column={column}\n colSpan={colSpan}\n rowIdx={rowIdx}\n isCellSelected={selectedCellIdx === column.idx}\n onColumnResize={onColumnResize}\n onColumnsReorder={onColumnsReorder}\n onSortColumnsChange={onSortColumnsChange}\n sortColumns={sortColumns}\n selectCell={selectCell}\n shouldFocusGrid={shouldFocusGrid && index === 0}\n direction={direction}\n dragDropKey={dragDropKey}\n />\n );\n }\n\n return (\n <div\n role=\"row\"\n aria-rowindex={rowIdx} // aria-rowindex is 1 based\n className={clsx(headerRowClassname, {\n [rowSelectedClassname]: selectedCellIdx === -1\n })}\n >\n {cells}\n </div>\n );\n}\n\nexport default memo(HeaderRow) as <R, SR, K extends React.Key>(\n props: HeaderRowProps<R, SR, K>\n) => React.JSX.Element;\n", "import { memo } from 'react';\n\nimport type { CalculatedColumn, CalculatedColumnParent, Position } from './types';\nimport GroupedColumnHeaderCell from './GroupedColumnHeaderCell';\nimport { headerRowClassname } from './HeaderRow';\n\nexport interface GroupedColumnHeaderRowProps<R, SR> {\n rowIdx: number;\n level: number;\n columns: readonly CalculatedColumn<R, SR>[];\n selectCell: (position: Position) => void;\n selectedCellIdx: number | undefined;\n}\n\nfunction GroupedColumnHeaderRow<R, SR>({\n rowIdx,\n level,\n columns,\n selectedCellIdx,\n selectCell\n}: GroupedColumnHeaderRowProps<R, SR>) {\n const cells = [];\n const renderedParents = new Set<CalculatedColumnParent<R, SR>>();\n\n for (const column of columns) {\n let { parent } = column;\n\n if (parent === undefined) continue;\n\n while (parent.level > level) {\n if (parent.parent === undefined) break;\n parent = parent.parent;\n }\n\n if (parent.level === level && !renderedParents.has(parent)) {\n renderedParents.add(parent);\n const { idx } = parent;\n cells.push(\n <GroupedColumnHeaderCell<R, SR>\n key={idx}\n column={parent}\n rowIdx={rowIdx}\n isCellSelected={selectedCellIdx === idx}\n selectCell={selectCell}\n />\n );\n }\n }\n\n return (\n <div\n role=\"row\"\n aria-rowindex={rowIdx} // aria-rowindex is 1 based\n className={headerRowClassname}\n >\n {cells}\n </div>\n );\n}\n\nexport default memo(GroupedColumnHeaderRow) as <R, SR>(\n props: GroupedColumnHeaderRowProps<R, SR>\n) => React.JSX.Element;\n", "import { memo } from 'react';\nimport { css } from '@linaria/core';\n\nimport { useRovingTabIndex } from './hooks';\nimport { createCellEvent, getCellClassname, getCellStyle, isCellEditableUtil } from './utils';\nimport type { CellRendererProps } from './types';\n\nconst cellCopied = css`\n @layer rdg.Cell {\n background-color: #ccccff;\n }\n`;\n\nconst cellCopiedClassname = `rdg-cell-copied ${cellCopied}`;\n\nconst cellDraggedOver = css`\n @layer rdg.Cell {\n background-color: #ccccff;\n\n &.${cellCopied} {\n background-color: #9999ff;\n }\n }\n`;\n\nconst cellDraggedOverClassname = `rdg-cell-dragged-over ${cellDraggedOver}`;\n\nfunction Cell<R, SR>({\n column,\n colSpan,\n isCellSelected,\n isCopied,\n isDraggedOver,\n row,\n rowIdx,\n onClick,\n onDoubleClick,\n onContextMenu,\n onRowChange,\n selectCell,\n ...props\n}: CellRendererProps<R, SR>) {\n const { tabIndex, childTabIndex, onFocus } = useRovingTabIndex(isCellSelected);\n\n const { cellClass } = column;\n const className = getCellClassname(\n column,\n {\n [cellCopiedClassname]: isCopied,\n [cellDraggedOverClassname]: isDraggedOver\n },\n typeof cellClass === 'function' ? cellClass(row) : cellClass\n );\n const isEditable = isCellEditableUtil(column, row);\n\n function selectCellWrapper(openEditor?: boolean) {\n selectCell({ rowIdx, idx: column.idx }, openEditor);\n }\n\n function handleClick(event: React.MouseEvent<HTMLDivElement>) {\n if (onClick) {\n const cellEvent = createCellEvent(event);\n onClick({ row, column, selectCell: selectCellWrapper }, cellEvent);\n if (cellEvent.isGridDefaultPrevented()) return;\n }\n selectCellWrapper();\n }\n\n function handleContextMenu(event: React.MouseEvent<HTMLDivElement>) {\n if (onContextMenu) {\n const cellEvent = createCellEvent(event);\n onContextMenu({ row, column, selectCell: selectCellWrapper }, cellEvent);\n if (cellEvent.isGridDefaultPrevented()) return;\n }\n selectCellWrapper();\n }\n\n function handleDoubleClick(event: React.MouseEvent<HTMLDivElement>) {\n if (onDoubleClick) {\n const cellEvent = createCellEvent(event);\n onDoubleClick({ row, column, selectCell: selectCellWrapper }, cellEvent);\n if (cellEvent.isGridDefaultPrevented()) return;\n }\n selectCellWrapper(true);\n }\n\n function handleRowChange(newRow: R) {\n onRowChange(column, newRow);\n }\n\n return (\n <div\n role=\"gridcell\"\n aria-colindex={column.idx + 1} // aria-colindex is 1-based\n aria-colspan={colSpan}\n aria-selected={isCellSelected}\n aria-readonly={!isEditable || undefined}\n tabIndex={tabIndex}\n className={className}\n style={getCellStyle(column, colSpan)}\n onClick={handleClick}\n onDoubleClick={handleDoubleClick}\n onContextMenu={handleContextMenu}\n onFocus={onFocus}\n {...props}\n >\n {column.renderCell({\n column,\n row,\n rowIdx,\n isCellEditable: isEditable,\n tabIndex: childTabIndex,\n onRowChange: handleRowChange\n })}\n </div>\n );\n}\n\nexport default memo(Cell) as <R, SR>(props: CellRendererProps<R, SR>) => React.JSX.Element;\n", "import { forwardRef, memo, useMemo, type RefAttributes } from 'react';\nimport clsx from 'clsx';\n\nimport { RowSelectionProvider, useLatestFunc, type RowSelectionContextValue } from './hooks';\nimport { getColSpan, getRowStyle } from './utils';\nimport type { CalculatedColumn, RenderRowProps } from './types';\nimport Cell from './Cell';\nimport { rowClassname, rowSelectedClassname } from './style/row';\n\nfunction Row<R, SR>(\n {\n className,\n rowIdx,\n gridRowStart,\n selectedCellIdx,\n isRowSelectionDisabled,\n isRowSelected,\n copiedCellIdx,\n draggedOverCellIdx,\n lastFrozenColumnIndex,\n row,\n viewportColumns,\n selectedCellEditor,\n onCellClick,\n onCellDoubleClick,\n onCellContextMenu,\n rowClass,\n setDraggedOverRowIdx,\n onMouseEnter,\n onRowChange,\n selectCell,\n ...props\n }: RenderRowProps<R, SR>,\n ref: React.Ref<HTMLDivElement>\n) {\n const handleRowChange = useLatestFunc((column: CalculatedColumn<R, SR>, newRow: R) => {\n onRowChange(column, rowIdx, newRow);\n });\n\n function handleDragEnter(event: React.MouseEvent<HTMLDivElement>) {\n setDraggedOverRowIdx?.(rowIdx);\n onMouseEnter?.(event);\n }\n\n className = clsx(\n rowClassname,\n `rdg-row-${rowIdx % 2 === 0 ? 'even' : 'odd'}`,\n {\n [rowSelectedClassname]: selectedCellIdx === -1\n },\n rowClass?.(row, rowIdx),\n className\n );\n\n const cells = [];\n\n for (let index = 0; index < viewportColumns.length; index++) {\n const column = viewportColumns[index];\n const { idx } = column;\n const colSpan = getColSpan(column, lastFrozenColumnIndex, { type: 'ROW', row });\n if (colSpan !== undefined) {\n index += colSpan - 1;\n }\n\n const isCellSelected = selectedCellIdx === idx;\n\n if (isCellSelected && selectedCellEditor) {\n cells.push(selectedCellEditor);\n } else {\n cells.push(\n <Cell\n key={column.key}\n column={column}\n colSpan={colSpan}\n row={row}\n rowIdx={rowIdx}\n isCopied={copiedCellIdx === idx}\n isDraggedOver={draggedOverCellIdx === idx}\n isCellSelected={isCellSelected}\n onClick={onCellClick}\n onDoubleClick={onCellDoubleClick}\n onContextMenu={onCellContextMenu}\n onRowChange={handleRowChange}\n selectCell={selectCell}\n />\n );\n }\n }\n\n const selectionValue = useMemo(\n (): RowSelectionContextValue => ({ isRowSelected, isRowSelectionDisabled }),\n [isRowSelectionDisabled, isRowSelected]\n );\n\n return (\n <RowSelectionProvider value={selectionValue}>\n <div\n role=\"row\"\n ref={ref}\n className={className}\n onMouseEnter={handleDragEnter}\n style={getRowStyle(gridRowStart)}\n {...props}\n >\n {cells}\n </div>\n </RowSelectionProvider>\n );\n}\n\nconst RowComponent = memo(forwardRef(Row)) as <R, SR>(\n props: RenderRowProps<R, SR> & RefAttributes<HTMLDivElement>\n) => React.JSX.Element;\n\nexport default RowComponent;\n\nexport function defaultRenderRow<R, SR>(key: React.Key, props: RenderRowProps<R, SR>) {\n return <RowComponent key={key} {...props} />;\n}\n", "import { useRef } from 'react';\n\nimport { useLayoutEffect } from './hooks';\nimport { scrollIntoView } from './utils';\n\nexport interface PartialPosition {\n readonly idx?: number | undefined;\n readonly rowIdx?: number | undefined;\n}\n\nexport default function ScrollToCell({\n scrollToPosition: { idx, rowIdx },\n gridElement,\n setScrollToCellPosition\n}: {\n scrollToPosition: PartialPosition;\n gridElement: HTMLDivElement;\n setScrollToCellPosition: (cell: null) => void;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n\n useLayoutEffect(() => {\n // scroll until the cell is completely visible\n // this is needed if the grid has auto-sized columns\n scrollIntoView(ref.current);\n });\n\n useLayoutEffect(() => {\n function removeScrollToCell() {\n setScrollToCellPosition(null);\n }\n\n const observer = new IntersectionObserver(removeScrollToCell, {\n root: gridElement,\n threshold: 1.0\n });\n\n observer.observe(ref.current!);\n\n return () => {\n observer.disconnect();\n };\n }, [gridElement, setScrollToCellPosition]);\n\n return (\n <div\n ref={ref}\n style={{\n gridColumn: idx === undefined ? '1/-1' : idx + 1,\n gridRow: rowIdx === undefined ? '1/-1' : rowIdx + 2\n }}\n />\n );\n}\n", "import { css } from '@linaria/core';\n\nimport type { RenderSortIconProps, RenderSortPriorityProps, RenderSortStatusProps } from './types';\n\nconst arrow = css`\n @layer rdg.SortIcon {\n fill: currentColor;\n\n > path {\n transition: d 0.1s;\n }\n }\n`;\n\nconst arrowClassname = `rdg-sort-arrow ${arrow}`;\n\nexport default function renderSortStatus({ sortDirection, priority }: RenderSortStatusProps) {\n return (\n <>\n {renderSortIcon({ sortDirection })}\n {renderSortPriority({ priority })}\n </>\n );\n}\n\nexport function renderSortIcon({ sortDirection }: RenderSortIconProps) {\n if (sortDirection === undefined) return null;\n\n return (\n <svg viewBox=\"0 0 12 8\" width=\"12\" height=\"8\" className={arrowClassname} aria-hidden>\n <path d={sortDirection === 'ASC' ? 'M0 8 6 0 12 8' : 'M0 0 6 8 12 0'} />\n </svg>\n );\n}\n\nexport function renderSortPriority({ priority }: RenderSortPriorityProps) {\n return priority;\n}\n", "import { css } from '@linaria/core';\n\nimport { cell } from './cell';\nimport { bottomSummaryRowClassname, row, topSummaryRowClassname } from './row';\n\nconst lightTheme = `\n --rdg-color: #000;\n --rdg-border-color: #ddd;\n --rdg-summary-border-color: #aaa;\n --rdg-background-color: hsl(0deg 0% 100%);\n --rdg-header-background-color: hsl(0deg 0% 97.5%);\n --rdg-header-draggable-background-color: hsl(0deg 0% 90.5%);\n --rdg-row-hover-background-color: hsl(0deg 0% 96%);\n --rdg-row-selected-background-color: hsl(207deg 76% 92%);\n --rdg-row-selected-hover-background-color: hsl(207deg 76% 88%);\n\n --rdg-checkbox-focus-color: hsl(207deg 100% 69%);\n`;\n\nconst darkTheme = `\n --rdg-color: #ddd;\n --rdg-border-color: #444;\n --rdg-summary-border-color: #555;\n --rdg-background-color: hsl(0deg 0% 13%);\n --rdg-header-background-color: hsl(0deg 0% 10.5%);\n --rdg-header-draggable-background-color: hsl(0deg 0% 17.5%);\n --rdg-row-hover-background-color: hsl(0deg 0% 9%);\n --rdg-row-selected-background-color: hsl(207deg 76% 42%);\n --rdg-row-selected-hover-background-color: hsl(207deg 76% 38%);\n\n --rdg-checkbox-focus-color: hsl(207deg 100% 89%);\n`;\n\nconst root = css`\n @layer rdg.Defaults {\n *,\n *::before,\n *::after {\n box-sizing: inherit;\n }\n }\n\n @layer rdg.Root {\n ${lightTheme}\n --rdg-selection-color: #66afe9;\n --rdg-font-size: 14px;\n --rdg-cell-frozen-box-shadow: 2px 0 5px -2px rgba(136, 136, 136, 0.3);\n\n &:dir(rtl) {\n --rdg-cell-frozen-box-shadow: -2px 0 5px -2px rgba(136, 136, 136, 0.3);\n }\n\n display: grid;\n\n color-scheme: var(--rdg-color-scheme, light dark);\n accent-color: light-dark(hsl(207deg 100% 29%), hsl(207deg 100% 79%));\n\n /* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context */\n /* We set a stacking context so internal elements don't render on top of external elements. */\n /* size containment is not used as it could break \"width: min-content\" for example, and the grid would infinitely resize on Chromium browsers */\n contain: content;\n content-visibility: auto;\n block-size: 350px;\n border: 1px solid var(--rdg-border-color);\n box-sizing: border-box;\n overflow: auto;\n background-color: var(--rdg-background-color);\n color: var(--rdg-color);\n font-size: var(--rdg-font-size);\n\n /* needed on Firefox to fix scrollbars */\n &::before {\n content: '';\n grid-column: 1/-1;\n grid-row: 1/-1;\n }\n\n &.rdg-dark {\n --rdg-color-scheme: dark;\n ${darkTheme}\n }\n\n &.rdg-light {\n --rdg-color-scheme: light;\n }\n\n @media (prefers-color-scheme: dark) {\n &:not(.rdg-light) {\n ${darkTheme}\n }\n }\n\n > :nth-last-child(1 of .${topSummaryRowClassname}) {\n > .${cell} {\n border-block-end: 2px solid var(--rdg-summary-border-color);\n }\n }\n\n > :nth-child(1 of .${bottomSummaryRowClassname}) {\n > .${cell} {\n border-block-start: 2px solid var(--rdg-summary-border-color);\n }\n }\n }\n`;\n\nexport const rootClassname = `rdg ${root}`;\n\nconst viewportDragging = css`\n @layer rdg.Root {\n user-select: none;\n\n & .${row} {\n cursor: move;\n }\n }\n`;\n\nexport const viewportDraggingClassname = `rdg-viewport-dragging ${viewportDragging}`;\n\nexport const focusSinkClassname = css`\n @layer rdg.FocusSink {\n grid-column: 1/-1;\n pointer-events: none;\n /* Should have a higher value than 1 to show up above regular frozen cells */\n z-index: 1;\n }\n`;\n\nexport const focusSinkHeaderAndSummaryClassname = css`\n @layer rdg.FocusSink {\n /* Should have a higher value than 3 to show up above header and summary rows */\n z-index: 3;\n }\n`;\n", "import { memo } from 'react';\nimport { css } from '@linaria/core';\n\nimport { useRovingTabIndex } from './hooks';\nimport { getCellClassname, getCellStyle } from './utils';\nimport type { CellRendererProps } from './types';\n\nexport const summaryCellClassname = css`\n @layer rdg.SummaryCell {\n inset-block-start: var(--rdg-summary-row-top);\n inset-block-end: var(--rdg-summary-row-bottom);\n }\n`;\n\ntype SharedCellRendererProps<R, SR> = Pick<\n CellRendererProps<R, SR>,\n 'rowIdx' | 'column' | 'colSpan' | 'isCellSelected' | 'selectCell'\n>;\n\ninterface SummaryCellProps<R, SR> extends SharedCellRendererProps<R, SR> {\n row: SR;\n}\n\nfunction SummaryCell<R, SR>({\n column,\n colSpan,\n row,\n rowIdx,\n isCellSelected,\n selectCell\n}: SummaryCellProps<R, SR>) {\n const { tabIndex, childTabIndex, onFocus } = useRovingTabIndex(isCellSelected);\n const { summaryCellClass } = column;\n const className = getCellClassname(\n column,\n summaryCellClassname,\n typeof summaryCellClass === 'function' ? summaryCellClass(row) : summaryCellClass\n );\n\n function onClick() {\n selectCell({ rowIdx, idx: column.idx });\n }\n\n return (\n <div\n role=\"gridcell\"\n aria-colindex={column.idx + 1}\n aria-colspan={colSpan}\n aria-selected={isCellSelected}\n tabIndex={tabIndex}\n className={className}\n style={getCellStyle(column, colSpan)}\n onClick={onClick}\n onFocus={onFocus}\n >\n {column.renderSummaryCell?.({ column, row, tabIndex: childTabIndex })}\n </div>\n );\n}\n\nexport default memo(SummaryCell) as <R, SR>(props: SummaryCellProps<R, SR>) => React.JSX.Element;\n", "import { memo } from 'react';\nimport { css } from '@linaria/core';\nimport clsx from 'clsx';\n\nimport { getColSpan, getRowStyle } from './utils';\nimport type { RenderRowProps } from './types';\nimport { cell, cellFrozen } from './style/cell';\nimport {\n bottomSummaryRowClassname,\n rowClassname,\n rowSelectedClassname,\n topSummaryRowClassname\n} from './style/row';\nimport SummaryCell from './SummaryCell';\n\ntype SharedRenderRowProps<R, SR> = Pick<\n RenderRowProps<R, SR>,\n 'viewportColumns' | 'rowIdx' | 'gridRowStart' | 'selectCell'\n>;\n\ninterface SummaryRowProps<R, SR> extends SharedRenderRowProps<R, SR> {\n 'aria-rowindex': number;\n row: SR;\n top: number | undefined;\n bottom: number | undefined;\n lastFrozenColumnIndex: number;\n selectedCellIdx: number | undefined;\n isTop: boolean;\n}\n\nconst summaryRow = css`\n @layer rdg.SummaryRow {\n > .${cell} {\n position: sticky;\n }\n }\n`;\n\nconst topSummaryRow = css`\n @layer rdg.SummaryRow {\n > .${cell} {\n z-index: 2;\n }\n\n > .${cellFrozen} {\n z-index: 3;\n }\n }\n`;\n\nconst summaryRowClassname = `rdg-summary-row ${summaryRow}`;\n\nfunction SummaryRow<R, SR>({\n rowIdx,\n gridRowStart,\n row,\n viewportColumns,\n top,\n bottom,\n lastFrozenColumnIndex,\n selectedCellIdx,\n isTop,\n selectCell,\n 'aria-rowindex': ariaRowIndex\n}: SummaryRowProps<R, SR>) {\n const cells = [];\n for (let index = 0; index < viewportColumns.length; index++) {\n const column = viewportColumns[index];\n const colSpan = getColSpan(column, lastFrozenColumnIndex, { type: 'SUMMARY', row });\n if (colSpan !== undefined) {\n index += colSpan - 1;\n }\n\n const isCellSelected = selectedCellIdx === column.idx;\n\n cells.push(\n <SummaryCell<R, SR>\n key={column.key}\n column={column}\n colSpan={colSpan}\n row={row}\n rowIdx={rowIdx}\n isCellSelected={isCellSelected}\n selectCell={selectCell}\n />\n );\n }\n\n return (\n <div\n role=\"row\"\n aria-rowindex={ariaRowIndex}\n className={clsx(\n rowClassname,\n `rdg-row-${rowIdx % 2 === 0 ? 'even' : 'odd'}`,\n summaryRowClassname,\n {\n [rowSelectedClassname]: selectedCellIdx === -1,\n [`${topSummaryRowClassname} ${topSummaryRow}`]: isTop,\n [bottomSummaryRowClassname]: !isTop\n }\n )}\n style={\n {\n ...getRowStyle(gridRowStart),\n '--rdg-summary-row-top': top !== undefined ? `${top}px` : undefined,\n '--rdg-summary-row-bottom': bottom !== undefined ? `${bottom}px` : undefined\n } as unknown as React.CSSProperties\n }\n >\n {cells}\n </div>\n );\n}\n\nexport default memo(SummaryRow) as <R, SR>(props: SummaryRowProps<R, SR>) => React.JSX.Element;\n", "import { forwardRef, useCallback, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport type { Key, KeyboardEvent, RefAttributes } from 'react';\nimport { flushSync } from 'react-dom';\nimport clsx from 'clsx';\n\nimport {\n HeaderRowSelectionChangeProvider,\n HeaderRowSelectionProvider,\n RowSelectionChangeProvider,\n useCalculatedColumns,\n useColumnWidths,\n useGridDimensions,\n useLatestFunc,\n useLayoutEffect,\n useViewportColumns,\n useViewportRows,\n type HeaderRowSelectionContextValue\n} from './hooks';\nimport {\n abs,\n assertIsValidKeyGetter,\n canExitGrid,\n createCellEvent,\n getColSpan,\n getNextSelectedCellPosition,\n isCtrlKeyHeldDown,\n isDefaultCellInput,\n isSelectedCellEditable,\n renderMeasuringCells,\n scrollIntoView,\n sign\n} from './utils';\nimport type {\n CalculatedColumn,\n CellClickArgs,\n CellKeyboardEvent,\n CellKeyDownArgs,\n CellMouseEvent,\n CellNavigationMode,\n CellSelectArgs,\n Column,\n ColumnOrColumnGroup,\n CopyEvent,\n Direction,\n FillEvent,\n Maybe,\n PasteEvent,\n Position,\n Renderers,\n RowsChangeData,\n SelectHeaderRowEvent,\n SelectRowEvent,\n SortColumn\n} from './types';\nimport { renderCheckbox as defaultRenderCheckbox } from './cellRenderers';\nimport {\n DataGridDefaultRenderersProvider,\n useDefaultRenderers\n} from './DataGridDefaultRenderersProvider';\nimport DragHandle from './DragHandle';\nimport EditCell from './EditCell';\nimport GroupedColumnHeaderRow from './GroupedColumnHeaderRow';\nimport HeaderRow from './HeaderRow';\nimport { defaultRenderRow } from './Row';\nimport type { PartialPosition } from './ScrollToCell';\nimport ScrollToCell from './ScrollToCell';\nimport { default as defaultRenderSortStatus } from './sortStatus';\nimport {\n focusSinkClassname,\n focusSinkHeaderAndSummaryClassname,\n rootClassname,\n viewportDraggingClassname\n} from './style/core';\nimport { rowSelected, rowSelectedWithFrozenCell } from './style/row';\nimport SummaryRow from './SummaryRow';\n\nexport interface SelectCellState extends Position {\n readonly mode: 'SELECT';\n}\n\ninterface EditCellState<R> extends Position {\n readonly mode: 'EDIT';\n readonly row: R;\n readonly originalRow: R;\n}\n\ntype DefaultColumnOptions<R, SR> = Pick<\n Column<R, SR>,\n 'renderCell' | 'width' | 'minWidth' | 'maxWidth' | 'resizable' | 'sortable' | 'draggable'\n>;\n\nexport interface DataGridHandle {\n element: HTMLDivElement | null;\n scrollToCell: (position: PartialPosition) => void;\n selectCell: (position: Position, enableEditor?: Maybe<boolean>) => void;\n}\n\ntype SharedDivProps = Pick<\n React.HTMLAttributes<HTMLDivElement>,\n | 'role'\n | 'aria-label'\n | 'aria-labelledby'\n | 'aria-describedby'\n | 'aria-rowcount'\n | 'className'\n | 'style'\n>;\n\nexport interface DataGridProps<R, SR = unknown, K extends Key = Key> extends SharedDivProps {\n /**\n * Grid and data Props\n */\n /** An array of objects representing each column on the grid */\n columns: readonly ColumnOrColumnGroup<NoInfer<R>, NoInfer<SR>>[];\n /** A function called for each rendered row that should return a plain key/value pair object */\n rows: readonly R[];\n /**\n * Rows to be pinned at the top of the rows view for summary, the vertical scroll bar will not scroll these rows.\n */\n topSummaryRows?: Maybe<readonly SR[]>;\n /**\n * Rows to be pinned at the bottom of the rows view for summary, the vertical scroll bar will not scroll these rows.\n */\n bottomSummaryRows?: Maybe<readonly SR[]>;\n /** The getter should return a unique key for each row */\n rowKeyGetter?: Maybe<(row: NoInfer<R>) => K>;\n onRowsChange?: Maybe<(rows: NoInfer<R>[], data: RowsChangeData<NoInfer<R>, NoInfer<SR>>) => void>;\n\n /**\n * Dimensions props\n */\n /**\n * The height of each row in pixels\n * @default 35\n */\n rowHeight?: Maybe<number | ((row: NoInfer<R>) => number)>;\n /**\n * The height of the header row in pixels\n * @default 35\n */\n headerRowHeight?: Maybe<number>;\n /**\n * The height of each summary row in pixels\n * @default 35\n */\n summaryRowHeight?: Maybe<number>;\n\n /**\n * Feature props\n */\n /** Set of selected row keys */\n selectedRows?: Maybe<ReadonlySet<K>>;\n /** Determines if row selection is disabled, per row */\n isRowSelectionDisabled?: Maybe<(row: NoInfer<R>) => boolean>;\n /** Function called whenever row selection is changed */\n onSelectedRowsChange?: Maybe<(selectedRows: Set<NoInfer<K>>) => void>;\n /** Used for multi column sorting */\n sortColumns?: Maybe<readonly SortColumn[]>;\n onSortColumnsChange?: Maybe<(sortColumns: SortColumn[]) => void>;\n defaultColumnOptions?: Maybe<DefaultColumnOptions<NoInfer<R>, NoInfer<SR>>>;\n onFill?: Maybe<(event: FillEvent<NoInfer<R>>) => NoInfer<R>>;\n onCopy?: Maybe<(event: CopyEvent<NoInfer<R>>) => void>;\n onPaste?: Maybe<(event: PasteEvent<NoInfer<R>>) => NoInfer<R>>;\n\n /**\n * Event props\n */\n /** Function called whenever a cell is clicked */\n onCellClick?: Maybe<\n (args: CellClickArgs<NoInfer<R>, NoInfer<SR>>, event: CellMouseEvent) => void\n >;\n /** Function called whenever a cell is double clicked */\n onCellDoubleClick?: Maybe<\n (args: CellClickArgs<NoInfer<R>, NoInfer<SR>>, event: CellMouseEvent) => void\n >;\n /** Function called whenever a cell is right clicked */\n onCellContextMenu?: Maybe<\n (args: CellClickArgs<NoInfer<R>, NoInfer<SR>>, event: CellMouseEvent) => void\n >;\n onCellKeyDown?: Maybe<\n (args: CellKeyDownArgs<NoInfer<R>, NoInfer<SR>>, event: CellKeyboardEvent) => void\n >;\n /** Function called whenever cell selection is changed */\n onSelectedCellChange?: Maybe<(args: CellSelectArgs<NoInfer<R>, NoInfer<SR>>) => void>;\n /** Called when the grid is scrolled */\n onScroll?: Maybe<(event: React.UIEvent<HTMLDivElement>) => void>;\n /** Called when a column is resized */\n onColumnResize?: Maybe<(idx: number, width: number) => void>;\n /** Called when a column is reordered */\n onColumnsReorder?: Maybe<(sourceColumnKey: string, targetColumnKey: string) => void>;\n\n /**\n * Toggles and modes\n */\n /** @default true */\n enableVirtualization?: Maybe<boolean>;\n\n /**\n * Miscellaneous\n */\n renderers?: Maybe<Renderers<NoInfer<R>, NoInfer<SR>>>;\n rowClass?: Maybe<(row: NoInfer<R>, rowIdx: number) => Maybe<string>>;\n /** @default 'ltr' */\n direction?: Maybe<Direction>;\n 'data-testid'?: Maybe<string>;\n}\n\n/**\n * Main API Component to render a data grid of rows and columns\n *\n * @example\n *\n * <DataGrid columns={columns} rows={rows} />\n */\nfunction DataGrid<R, SR, K extends Key>(\n props: DataGridProps<R, SR, K>,\n ref: React.Ref<DataGridHandle>\n) {\n const {\n // Grid and data Props\n columns: rawColumns,\n rows,\n topSummaryRows,\n bottomSummaryRows,\n rowKeyGetter,\n onRowsChange,\n // Dimensions props\n rowHeight: rawRowHeight,\n headerRowHeight: rawHeaderRowHeight,\n summaryRowHeight: rawSummaryRowHeight,\n // Feature props\n selectedRows,\n isRowSelectionDisabled,\n onSelectedRowsChange,\n sortColumns,\n onSortColumnsChange,\n defaultColumnOptions,\n // Event props\n onCellClick,\n onCellDoubleClick,\n onCellContextMenu,\n onCellKeyDown,\n onSelectedCellChange,\n onScroll,\n onColumnResize,\n onColumnsReorder,\n onFill,\n onCopy,\n onPaste,\n // Toggles and modes\n enableVirtualization: rawEnableVirtualization,\n // Miscellaneous\n renderers,\n className,\n style,\n rowClass,\n direction: rawDirection,\n // ARIA\n role: rawRole,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-rowcount': rawAriaRowCount,\n 'data-testid': testId\n } = props;\n\n /**\n * defaults\n */\n const defaultRenderers = useDefaultRenderers<R, SR>();\n const role = rawRole ?? 'grid';\n const rowHeight = rawRowHeight ?? 35;\n const headerRowHeight = rawHeaderRowHeight ?? (typeof rowHeight === 'number' ? rowHeight : 35);\n const summaryRowHeight = rawSummaryRowHeight ?? (typeof rowHeight === 'number' ? rowHeight : 35);\n const renderRow = renderers?.renderRow ?? defaultRenderers?.renderRow ?? defaultRenderRow;\n const renderSortStatus =\n renderers?.renderSortStatus ?? defaultRenderers?.renderSortStatus ?? defaultRenderSortStatus;\n const renderCheckbox =\n renderers?.renderCheckbox ?? defaultRenderers?.renderCheckbox ?? defaultRenderCheckbox;\n const noRowsFallback = renderers?.noRowsFallback ?? defaultRenderers?.noRowsFallback;\n const enableVirtualization = rawEnableVirtualization ?? true;\n const direction = rawDirection ?? 'ltr';\n\n /**\n * states\n */\n const [scrollTop, setScrollTop] = useState(0);\n const [scrollLeft, setScrollLeft] = useState(0);\n const [resizedColumnWidths, setResizedColumnWidths] = useState(\n (): ReadonlyMap<string, number> => new Map()\n );\n const [measuredColumnWidths, setMeasuredColumnWidths] = useState(\n (): ReadonlyMap<string, number> => new Map()\n );\n const [copiedCell, setCopiedCell] = useState<{ row: R; columnKey: string } | null>(null);\n const [isDragging, setDragging] = useState(false);\n const [draggedOverRowIdx, setOverRowIdx] = useState<number | undefined>(undefined);\n const [scrollToPosition, setScrollToPosition] = useState<PartialPosition | null>(null);\n\n const getColumnWidth = useCallback(\n (column: CalculatedColumn<R, SR>) => {\n return (\n resizedColumnWidths.get(column.key) ?? measuredColumnWidths.get(column.key) ?? column.width\n );\n },\n [measuredColumnWidths, resizedColumnWidths]\n );\n\n const [gridRef, gridWidth, gridHeight, horizontalScrollbarHeight] = useGridDimensions();\n const {\n columns,\n colSpanColumns,\n lastFrozenColumnIndex,\n headerRowsCount,\n colOverscanStartIdx,\n colOverscanEndIdx,\n templateColumns,\n layoutCssVars,\n totalFrozenColumnWidth\n } = useCalculatedColumns({\n rawColumns,\n defaultColumnOptions,\n getColumnWidth,\n scrollLeft,\n viewportWidth: gridWidth,\n enableVirtualization\n });\n\n const topSummaryRowsCount = topSummaryRows?.length ?? 0;\n const bottomSummaryRowsCount = bottomSummaryRows?.length ?? 0;\n const summaryRowsCount = topSummaryRowsCount + bottomSummaryRowsCount;\n const headerAndTopSummaryRowsCount = headerRowsCount + topSummaryRowsCount;\n const groupedColumnHeaderRowsCount = headerRowsCount - 1;\n const minRowIdx = -headerAndTopSummaryRowsCount;\n const mainHeaderRowIdx = minRowIdx + groupedColumnHeaderRowsCount;\n const maxRowIdx = rows.length + bottomSummaryRowsCount - 1;\n\n const [selectedPosition, setSelectedPosition] = useState(\n (): SelectCellState | EditCellState<R> => ({ idx: -1, rowIdx: minRowIdx - 1, mode: 'SELECT' })\n );\n\n /**\n * refs\n */\n const prevSelectedPosition = useRef(selectedPosition);\n const latestDraggedOverRowIdx = useRef(draggedOverRowIdx);\n const lastSelectedRowIdx = useRef(-1);\n const focusSinkRef = useRef<HTMLDivElement>(null);\n const shouldFocusCellRef = useRef(false);\n\n /**\n * computed values\n */\n const isTreeGrid = role === 'treegrid';\n const headerRowsHeight = headerRowsCount * headerRowHeight;\n const summaryRowsHeight = summaryRowsCount * summaryRowHeight;\n const clientHeight = gridHeight - headerRowsHeight - summaryRowsHeight;\n const isSelectable = selectedRows != null && onSelectedRowsChange != null;\n const isRtl = direction === 'rtl';\n const leftKey = isRtl ? 'ArrowRight' : 'ArrowLeft';\n const rightKey = isRtl ? 'ArrowLeft' : 'ArrowRight';\n const ariaRowCount = rawAriaRowCount ?? headerRowsCount + rows.length + summaryRowsCount;\n\n const defaultGridComponents = useMemo(\n () => ({\n renderCheckbox,\n renderSortStatus\n }),\n [renderCheckbox, renderSortStatus]\n );\n\n const headerSelectionValue = useMemo((): HeaderRowSelectionContextValue => {\n // no rows to select = explicitely unchecked\n let hasSelectedRow = false;\n let hasUnselectedRow = false;\n\n if (rowKeyGetter != null && selectedRows != null && selectedRows.size > 0) {\n for (const row of rows) {\n if (selectedRows.has(rowKeyGetter(row))) {\n hasSelectedRow = true;\n } else {\n hasUnselectedRow = true;\n }\n\n if (hasSelectedRow && hasUnselectedRow) break;\n }\n }\n\n return {\n isRowSelected: hasSelectedRow && !hasUnselectedRow,\n isIndeterminate: hasSelectedRow && hasUnselectedRow\n };\n }, [rows, selectedRows, rowKeyGetter]);\n\n const {\n rowOverscanStartIdx,\n rowOverscanEndIdx,\n totalRowHeight,\n gridTemplateRows,\n getRowTop,\n getRowHeight,\n findRowIdx\n } = useViewportRows({\n rows,\n rowHeight,\n clientHeight,\n scrollTop,\n enableVirtualization\n });\n\n const viewportColumns = useViewportColumns({\n columns,\n colSpanColumns,\n colOverscanStartIdx,\n colOverscanEndIdx,\n lastFrozenColumnIndex,\n rowOverscanStartIdx,\n rowOverscanEndIdx,\n rows,\n topSummaryRows,\n bottomSummaryRows\n });\n\n const { gridTemplateColumns, handleColumnResize } = useColumnWidths(\n columns,\n viewportColumns,\n templateColumns,\n gridRef,\n gridWidth,\n resizedColumnWidths,\n measuredColumnWidths,\n setResizedColumnWidths,\n setMeasuredColumnWidths,\n onColumnResize\n );\n\n const minColIdx = isTreeGrid ? -1 : 0;\n const maxColIdx = columns.length - 1;\n const selectedCellIsWithinSelectionBounds = isCellWithinSelectionBounds(selectedPosition);\n const selectedCellIsWithinViewportBounds = isCellWithinViewportBounds(selectedPosition);\n const scrollHeight =\n headerRowHeight + totalRowHeight + summaryRowsHeight + horizontalScrollbarHeight;\n\n /**\n * The identity of the wrapper function is stable so it won't break memoization\n */\n const handleColumnResizeLatest = useLatestFunc(handleColumnResize);\n const onColumnsReorderLastest = useLatestFunc(onColumnsReorder);\n const onSortColumnsChangeLatest = useLatestFunc(onSortColumnsChange);\n const onCellClickLatest = useLatestFunc(onCellClick);\n const onCellDoubleClickLatest = useLatestFunc(onCellDoubleClick);\n const onCellContextMenuLatest = useLatestFunc(onCellContextMenu);\n const selectHeaderRowLatest = useLatestFunc(selectHeaderRow);\n const selectRowLatest = useLatestFunc(selectRow);\n const handleFormatterRowChangeLatest = useLatestFunc(updateRow);\n const selectCellLatest = useLatestFunc(selectCell);\n const selectHeaderCellLatest = useLatestFunc(({ idx, rowIdx }: Position) => {\n selectCell({ rowIdx: minRowIdx + rowIdx - 1, idx });\n });\n\n /**\n * effects\n */\n useLayoutEffect(() => {\n if (\n !selectedCellIsWithinSelectionBounds ||\n isSamePosition(selectedPosition, prevSelectedPosition.current)\n ) {\n prevSelectedPosition.current = selectedPosition;\n return;\n }\n\n prevSelectedPosition.current = selectedPosition;\n\n if (selectedPosition.idx === -1) {\n focusSinkRef.current!.focus({ preventScroll: true });\n scrollIntoView(focusSinkRef.current);\n }\n });\n\n useLayoutEffect(() => {\n if (!shouldFocusCellRef.current) return;\n shouldFocusCellRef.current = false;\n focusCellOrCellContent();\n });\n\n useImperativeHandle(ref, () => ({\n element: gridRef.current,\n scrollToCell({ idx, rowIdx }) {\n const scrollToIdx =\n idx !== undefined && idx > lastFrozenColumnIndex && idx < columns.length ? idx : undefined;\n const scrollToRowIdx =\n rowIdx !== undefined && isRowIdxWithinViewportBounds(rowIdx) ? rowIdx : undefined;\n\n if (scrollToIdx !== undefined || scrollToRowIdx !== undefined) {\n setScrollToPosition({ idx: scrollToIdx, rowIdx: scrollToRowIdx });\n }\n },\n selectCell\n }));\n\n /**\n * callbacks\n */\n const setDraggedOverRowIdx = useCallback((rowIdx?: number) => {\n setOverRowIdx(rowIdx);\n latestDraggedOverRowIdx.current = rowIdx;\n }, []);\n\n /**\n * event handlers\n */\n function selectHeaderRow(args: SelectHeaderRowEvent) {\n if (!onSelectedRowsChange) return;\n\n assertIsValidKeyGetter<R, K>(rowKeyGetter);\n\n const newSelectedRows = new Set(selectedRows);\n for (const row of rows) {\n if (isRowSelectionDisabled?.(row) === true) continue;\n const rowKey = rowKeyGetter(row);\n if (args.checked) {\n newSelectedRows.add(rowKey);\n } else {\n newSelectedRows.delete(rowKey);\n }\n }\n onSelectedRowsChange(newSelectedRows);\n }\n\n function selectRow(args: SelectRowEvent<R>) {\n if (!onSelectedRowsChange) return;\n\n assertIsValidKeyGetter<R, K>(rowKeyGetter);\n const { row, checked, isShiftClick } = args;\n if (isRowSelectionDisabled?.(row) === true) return;\n const newSelectedRows = new Set(selectedRows);\n const rowKey = rowKeyGetter(row);\n const previousRowIdx = lastSelectedRowIdx.current;\n const rowIdx = rows.indexOf(row);\n lastSelectedRowIdx.current = rowIdx;\n\n if (checked) {\n newSelectedRows.add(rowKey);\n } else {\n newSelectedRows.delete(rowKey);\n }\n\n if (\n isShiftClick &&\n previousRowIdx !== -1 &&\n previousRowIdx !== rowIdx &&\n previousRowIdx < rows.length\n ) {\n const step = sign(rowIdx - previousRowIdx);\n for (let i = previousRowIdx + step; i !== rowIdx; i += step) {\n const row = rows[i];\n if (isRowSelectionDisabled?.(row) === true) continue;\n if (checked) {\n newSelectedRows.add(rowKeyGetter(row));\n } else {\n newSelectedRows.delete(rowKeyGetter(row));\n }\n }\n }\n\n onSelectedRowsChange(newSelectedRows);\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLDivElement>) {\n const { idx, rowIdx, mode } = selectedPosition;\n if (mode === 'EDIT') return;\n\n if (onCellKeyDown && isRowIdxWithinViewportBounds(rowIdx)) {\n const row = rows[rowIdx];\n const cellEvent = createCellEvent(event);\n onCellKeyDown(\n {\n mode: 'SELECT',\n row,\n column: columns[idx],\n rowIdx,\n selectCell\n },\n cellEvent\n );\n if (cellEvent.isGridDefaultPrevented()) return;\n }\n if (!(event.target instanceof Element)) return;\n const isCellEvent = event.target.closest('.rdg-cell') !== null;\n const isRowEvent = isTreeGrid && event.target === focusSinkRef.current;\n if (!isCellEvent && !isRowEvent) return;\n\n const { keyCode } = event;\n\n if (\n selectedCellIsWithinViewportBounds &&\n (onPaste != null || onCopy != null) &&\n isCtrlKeyHeldDown(event)\n ) {\n // event.key may differ by keyboard input language, so we use event.keyCode instead\n // event.nativeEvent.code cannot be used either as it would break copy/paste for the DVORAK layout\n const cKey = 67;\n const vKey = 86;\n if (keyCode === cKey) {\n // copy highlighted text only\n if (window.getSelection()?.isCollapsed === false) return;\n handleCopy();\n return;\n }\n if (keyCode === vKey) {\n handlePaste();\n return;\n }\n }\n\n switch (event.key) {\n case 'Escape':\n setCopiedCell(null);\n return;\n case 'ArrowUp':\n case 'ArrowDown':\n case 'ArrowLeft':\n case 'ArrowRight':\n case 'Tab':\n case 'Home':\n case 'End':\n case 'PageUp':\n case 'PageDown':\n navigate(event);\n break;\n default:\n handleCellInput(event);\n break;\n }\n }\n\n function handleScroll(event: React.UIEvent<HTMLDivElement>) {\n const { scrollTop, scrollLeft } = event.currentTarget;\n flushSync(() => {\n setScrollTop(scrollTop);\n // scrollLeft is nagative when direction is rtl\n setScrollLeft(abs(scrollLeft));\n });\n onScroll?.(event);\n }\n\n function updateRow(column: CalculatedColumn<R, SR>, rowIdx: number, row: R) {\n if (typeof onRowsChange !== 'function') return;\n if (row === rows[rowIdx]) return;\n const updatedRows = [...rows];\n updatedRows[rowIdx] = row;\n onRowsChange(updatedRows, {\n indexes: [rowIdx],\n column\n });\n }\n\n function commitEditorChanges() {\n if (selectedPosition.mode !== 'EDIT') return;\n updateRow(columns[selectedPosition.idx], selectedPosition.rowIdx, selectedPosition.row);\n }\n\n function handleCopy() {\n const { idx, rowIdx } = selectedPosition;\n const sourceRow = rows[rowIdx];\n const sourceColumnKey = columns[idx].key;\n setCopiedCell({ row: sourceRow, columnKey: sourceColumnKey });\n onCopy?.({ sourceRow, sourceColumnKey });\n }\n\n function handlePaste() {\n if (!onPaste || !onRowsChange || copiedCell === null || !isCellEditable(selectedPosition)) {\n return;\n }\n\n const { idx, rowIdx } = selectedPosition;\n const targetColumn = columns[idx];\n const targetRow = rows[rowIdx];\n\n const updatedTargetRow = onPaste({\n sourceRow: copiedCell.row,\n sourceColumnKey: copiedCell.columnKey,\n targetRow,\n targetColumnKey: targetColumn.key\n });\n\n updateRow(targetColumn, rowIdx, updatedTargetRow);\n }\n\n function handleCellInput(event: KeyboardEvent<HTMLDivElement>) {\n if (!selectedCellIsWithinViewportBounds) return;\n const row = rows[selectedPosition.rowIdx];\n const { key, shiftKey } = event;\n\n // Select the row on Shift + Space\n if (isSelectable && shiftKey && key === ' ') {\n assertIsValidKeyGetter<R, K>(rowKeyGetter);\n const rowKey = rowKeyGetter(row);\n selectRow({ row, checked: !selectedRows.has(rowKey), isShiftClick: false });\n // do not scroll\n event.preventDefault();\n return;\n }\n\n if (isCellEditable(selectedPosition) && isDefaultCellInput(event)) {\n setSelectedPosition(({ idx, rowIdx }) => ({\n idx,\n rowIdx,\n mode: 'EDIT',\n row,\n originalRow: row\n }));\n }\n }\n\n /**\n * utils\n */\n function isColIdxWithinSelectionBounds(idx: number) {\n return idx >= minColIdx && idx <= maxColIdx;\n }\n\n function isRowIdxWithinViewportBounds(rowIdx: number) {\n return rowIdx >= 0 && rowIdx < rows.length;\n }\n\n function isCellWithinSelectionBounds({ idx, rowIdx }: Position): boolean {\n return rowIdx >= minRowIdx && rowIdx <= maxRowIdx && isColIdxWithinSelectionBounds(idx);\n }\n\n function isCellWithinEditBounds({ idx, rowIdx }: Position): boolean {\n return isRowIdxWithinViewportBounds(rowIdx) && idx >= 0 && idx <= maxColIdx;\n }\n\n function isCellWithinViewportBounds({ idx, rowIdx }: Position): boolean {\n return isRowIdxWithinViewportBounds(rowIdx) && isColIdxWithinSelectionBounds(idx);\n }\n\n function isCellEditable(position: Position): boolean {\n return (\n isCellWithinEditBounds(position) &&\n isSelectedCellEditable({ columns, rows, selectedPosition: position })\n );\n }\n\n function selectCell(position: Position, enableEditor?: Maybe<boolean>): void {\n if (!isCellWithinSelectionBounds(position)) return;\n commitEditorChanges();\n\n const row = rows[position.rowIdx];\n const samePosition = isSamePosition(selectedPosition, position);\n\n if (enableEditor && isCellEditable(position)) {\n setSelectedPosition({ ...position, mode: 'EDIT', row, originalRow: row });\n } else if (samePosition) {\n // Avoid re-renders if the selected cell state is the same\n scrollIntoView(getCellToScroll(gridRef.current!));\n } else {\n shouldFocusCellRef.current = true;\n setSelectedPosition({ ...position, mode: 'SELECT' });\n }\n\n if (onSelectedCellChange && !samePosition) {\n onSelectedCellChange({\n rowIdx: position.rowIdx,\n row,\n column: columns[position.idx]\n });\n }\n }\n\n function getNextPosition(key: string, ctrlKey: boolean, shiftKey: boolean): Position {\n const { idx, rowIdx } = selectedPosition;\n const isRowSelected = selectedCellIsWithinSelectionBounds && idx === -1;\n\n switch (key) {\n case 'ArrowUp':\n return { idx, rowIdx: rowIdx - 1 };\n case 'ArrowDown':\n return { idx, rowIdx: rowIdx + 1 };\n case leftKey:\n return { idx: idx - 1, rowIdx };\n case rightKey:\n return { idx: idx + 1, rowIdx };\n case 'Tab':\n return { idx: idx + (shiftKey ? -1 : 1), rowIdx };\n case 'Home':\n // If row is selected then move focus to the first row\n if (isRowSelected) return { idx, rowIdx: minRowIdx };\n return { idx: 0, rowIdx: ctrlKey ? minRowIdx : rowIdx };\n case 'End':\n // If row is selected then move focus to the last row.\n if (isRowSelected) return { idx, rowIdx: maxRowIdx };\n return { idx: maxColIdx, rowIdx: ctrlKey ? maxRowIdx : rowIdx };\n case 'PageUp': {\n if (selectedPosition.rowIdx === minRowIdx) return selectedPosition;\n const nextRowY = getRowTop(rowIdx) + getRowHeight(rowIdx) - clientHeight;\n return { idx, rowIdx: nextRowY > 0 ? findRowIdx(nextRowY) : 0 };\n }\n case 'PageDown': {\n if (selectedPosition.rowIdx >= rows.length) return selectedPosition;\n const nextRowY = getRowTop(rowIdx) + clientHeight;\n return { idx, rowIdx: nextRowY < totalRowHeight ? findRowIdx(nextRowY) : rows.length - 1 };\n }\n default:\n return selectedPosition;\n }\n }\n\n function navigate(event: KeyboardEvent<HTMLDivElement>) {\n const { key, shiftKey } = event;\n let cellNavigationMode: CellNavigationMode = 'NONE';\n if (key === 'Tab') {\n if (\n canExitGrid({\n shiftKey,\n maxColIdx,\n minRowIdx,\n maxRowIdx,\n selectedPosition\n })\n ) {\n commitEditorChanges();\n // Allow focus to leave the grid so the next control in the tab order can be focused\n return;\n }\n\n cellNavigationMode = 'CHANGE_ROW';\n }\n\n // Do not allow focus to leave and prevent scrolling\n event.preventDefault();\n\n const ctrlKey = isCtrlKeyHeldDown(event);\n const nextPosition = getNextPosition(key, ctrlKey, shiftKey);\n if (isSamePosition(selectedPosition, nextPosition)) return;\n\n const nextSelectedCellPosition = getNextSelectedCellPosition({\n moveUp: key === 'ArrowUp',\n moveNext: key === rightKey || (key === 'Tab' && !shiftKey),\n columns,\n colSpanColumns,\n rows,\n topSummaryRows,\n bottomSummaryRows,\n minRowIdx,\n mainHeaderRowIdx,\n maxRowIdx,\n lastFrozenColumnIndex,\n cellNavigationMode,\n currentPosition: selectedPosition,\n nextPosition,\n isCellWithinBounds: isCellWithinSelectionBounds\n });\n\n selectCell(nextSelectedCellPosition);\n }\n\n function getDraggedOverCellIdx(currentRowIdx: number): number | undefined {\n if (draggedOverRowIdx === undefined) return;\n const { rowIdx } = selectedPosition;\n\n const isDraggedOver =\n rowIdx < draggedOverRowIdx\n ? rowIdx < currentRowIdx && currentRowIdx <= draggedOverRowIdx\n : rowIdx > currentRowIdx && currentRowIdx >= draggedOverRowIdx;\n\n return isDraggedOver ? selectedPosition.idx : undefined;\n }\n\n function focusCellOrCellContent() {\n const cell = getCellToScroll(gridRef.current!);\n if (cell === null) return;\n\n scrollIntoView(cell);\n // Focus cell content when available instead of the cell itself\n const elementToFocus = cell.querySelector<Element & HTMLOrSVGElement>('[tabindex=\"0\"]') ?? cell;\n elementToFocus.focus({ preventScroll: true });\n }\n\n function renderDragHandle() {\n if (\n onFill == null ||\n selectedPosition.mode === 'EDIT' ||\n !isCellWithinViewportBounds(selectedPosition)\n ) {\n return;\n }\n\n const { idx, rowIdx } = selectedPosition;\n const column = columns[idx];\n if (column.renderEditCell == null || column.editable === false) {\n return;\n }\n\n const columnWidth = getColumnWidth(column);\n\n return (\n <DragHandle\n gridRowStart={headerAndTopSummaryRowsCount + rowIdx + 1}\n rows={rows}\n column={column}\n columnWidth={columnWidth}\n maxColIdx={maxColIdx}\n isLastRow={rowIdx === maxRowIdx}\n selectedPosition={selectedPosition}\n isCellEditable={isCellEditable}\n latestDraggedOverRowIdx={latestDraggedOverRowIdx}\n onRowsChange={onRowsChange}\n onClick={focusCellOrCellContent}\n onFill={onFill}\n setDragging={setDragging}\n setDraggedOverRowIdx={setDraggedOverRowIdx}\n />\n );\n }\n\n function getCellEditor(rowIdx: number) {\n if (selectedPosition.rowIdx !== rowIdx || selectedPosition.mode === 'SELECT') return;\n\n const { idx, row } = selectedPosition;\n const column = columns[idx];\n const colSpan = getColSpan(column, lastFrozenColumnIndex, { type: 'ROW', row });\n\n const closeEditor = (shouldFocusCell: boolean) => {\n shouldFocusCellRef.current = shouldFocusCell;\n setSelectedPosition(({ idx, rowIdx }) => ({ idx, rowIdx, mode: 'SELECT' }));\n };\n\n const onRowChange = (row: R, commitChanges: boolean, shouldFocusCell: boolean) => {\n if (commitChanges) {\n // Prevents two issues when editor is closed by clicking on a different cell\n //\n // Otherwise commitEditorChanges may be called before the cell state is changed to\n // SELECT and this results in onRowChange getting called twice.\n flushSync(() => {\n updateRow(column, selectedPosition.rowIdx, row);\n closeEditor(shouldFocusCell);\n });\n } else {\n setSelectedPosition((position) => ({ ...position, row }));\n }\n };\n\n if (rows[selectedPosition.rowIdx] !== selectedPosition.originalRow) {\n // Discard changes if rows are updated from outside\n closeEditor(false);\n }\n\n return (\n <EditCell\n key={column.key}\n column={column}\n colSpan={colSpan}\n row={row}\n rowIdx={rowIdx}\n onRowChange={onRowChange}\n closeEditor={closeEditor}\n onKeyDown={onCellKeyDown}\n navigate={navigate}\n />\n );\n }\n\n function getRowViewportColumns(rowIdx: number) {\n // idx can be -1 if grouping is enabled\n const selectedColumn = selectedPosition.idx === -1 ? undefined : columns[selectedPosition.idx];\n if (\n selectedColumn !== undefined &&\n selectedPosition.rowIdx === rowIdx &&\n !viewportColumns.includes(selectedColumn)\n ) {\n // Add the selected column to viewport columns if the cell is not within the viewport\n return selectedPosition.idx > colOverscanEndIdx\n ? [...viewportColumns, selectedColumn]\n : [\n ...viewportColumns.slice(0, lastFrozenColumnIndex + 1),\n selectedColumn,\n ...viewportColumns.slice(lastFrozenColumnIndex + 1)\n ];\n }\n return viewportColumns;\n }\n\n function getViewportRows() {\n const rowElements: React.ReactNode[] = [];\n\n const { idx: selectedIdx, rowIdx: selectedRowIdx } = selectedPosition;\n\n const startRowIdx =\n selectedCellIsWithinViewportBounds && selectedRowIdx < rowOverscanStartIdx\n ? rowOverscanStartIdx - 1\n : rowOverscanStartIdx;\n const endRowIdx =\n selectedCellIsWithinViewportBounds && selectedRowIdx > rowOverscanEndIdx\n ? rowOverscanEndIdx + 1\n : rowOverscanEndIdx;\n\n for (let viewportRowIdx = startRowIdx; viewportRowIdx <= endRowIdx; viewportRowIdx++) {\n const isRowOutsideViewport =\n viewportRowIdx === rowOverscanStartIdx - 1 || viewportRowIdx === rowOverscanEndIdx + 1;\n const rowIdx = isRowOutsideViewport ? selectedRowIdx : viewportRowIdx;\n\n let rowColumns = viewportColumns;\n const selectedColumn = selectedIdx === -1 ? undefined : columns[selectedIdx];\n if (selectedColumn !== undefined) {\n if (isRowOutsideViewport) {\n // if the row is outside the viewport then only render the selected cell\n rowColumns = [selectedColumn];\n } else {\n // if the row is within the viewport and cell is not, add the selected column to viewport columns\n rowColumns = getRowViewportColumns(rowIdx);\n }\n }\n\n const row = rows[rowIdx];\n const gridRowStart = headerAndTopSummaryRowsCount + rowIdx + 1;\n let key: K | number = rowIdx;\n let isRowSelected = false;\n if (typeof rowKeyGetter === 'function') {\n key = rowKeyGetter(row);\n isRowSelected = selectedRows?.has(key) ?? false;\n }\n\n rowElements.push(\n renderRow(key, {\n // aria-rowindex is 1 based\n 'aria-rowindex': headerAndTopSummaryRowsCount + rowIdx + 1,\n 'aria-selected': isSelectable ? isRowSelected : undefined,\n rowIdx,\n row,\n viewportColumns: rowColumns,\n isRowSelectionDisabled: isRowSelectionDisabled?.(row) ?? false,\n isRowSelected,\n onCellClick: onCellClickLatest,\n onCellDoubleClick: onCellDoubleClickLatest,\n onCellContextMenu: onCellContextMenuLatest,\n rowClass,\n gridRowStart,\n copiedCellIdx:\n copiedCell !== null && copiedCell.row === row\n ? columns.findIndex((c) => c.key === copiedCell.columnKey)\n : undefined,\n\n selectedCellIdx: selectedRowIdx === rowIdx ? selectedIdx : undefined,\n draggedOverCellIdx: getDraggedOverCellIdx(rowIdx),\n setDraggedOverRowIdx: isDragging ? setDraggedOverRowIdx : undefined,\n lastFrozenColumnIndex,\n onRowChange: handleFormatterRowChangeLatest,\n selectCell: selectCellLatest,\n selectedCellEditor: getCellEditor(rowIdx)\n })\n );\n }\n\n return rowElements;\n }\n\n // Reset the positions if the current values are no longer valid. This can happen if a column or row is removed\n if (selectedPosition.idx > maxColIdx || selectedPosition.rowIdx > maxRowIdx) {\n setSelectedPosition({ idx: -1, rowIdx: minRowIdx - 1, mode: 'SELECT' });\n setDraggedOverRowIdx(undefined);\n }\n\n let templateRows = `repeat(${headerRowsCount}, ${headerRowHeight}px)`;\n if (topSummaryRowsCount > 0) {\n templateRows += ` repeat(${topSummaryRowsCount}, ${summaryRowHeight}px)`;\n }\n if (rows.length > 0) {\n templateRows += gridTemplateRows;\n }\n if (bottomSummaryRowsCount > 0) {\n templateRows += ` repeat(${bottomSummaryRowsCount}, ${summaryRowHeight}px)`;\n }\n\n const isGroupRowFocused =\n selectedPosition.idx === -1 && selectedPosition.rowIdx !== minRowIdx - 1;\n\n return (\n <div\n role={role}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n aria-multiselectable={isSelectable ? true : undefined}\n aria-colcount={columns.length}\n aria-rowcount={ariaRowCount}\n className={clsx(\n rootClassname,\n {\n [viewportDraggingClassname]: isDragging\n },\n className\n )}\n style={\n {\n ...style,\n // set scrollPadding to correctly position non-sticky cells after scrolling\n scrollPaddingInlineStart:\n selectedPosition.idx > lastFrozenColumnIndex || scrollToPosition?.idx !== undefined\n ? `${totalFrozenColumnWidth}px`\n : undefined,\n scrollPaddingBlock:\n isRowIdxWithinViewportBounds(selectedPosition.rowIdx) ||\n scrollToPosition?.rowIdx !== undefined\n ? `${headerRowsHeight + topSummaryRowsCount * summaryRowHeight}px ${\n bottomSummaryRowsCount * summaryRowHeight\n }px`\n : undefined,\n gridTemplateColumns,\n gridTemplateRows: templateRows,\n '--rdg-header-row-height': `${headerRowHeight}px`,\n '--rdg-scroll-height': `${scrollHeight}px`,\n ...layoutCssVars\n } as unknown as React.CSSProperties\n }\n dir={direction}\n ref={gridRef}\n onScroll={handleScroll}\n onKeyDown={handleKeyDown}\n data-testid={testId}\n >\n <DataGridDefaultRenderersProvider value={defaultGridComponents}>\n <HeaderRowSelectionChangeProvider value={selectHeaderRowLatest}>\n <HeaderRowSelectionProvider value={headerSelectionValue}>\n {Array.from({ length: groupedColumnHeaderRowsCount }, (_, index) => (\n <GroupedColumnHeaderRow\n key={index}\n rowIdx={index + 1}\n level={-groupedColumnHeaderRowsCount + index}\n columns={getRowViewportColumns(minRowIdx + index)}\n selectedCellIdx={\n selectedPosition.rowIdx === minRowIdx + index ? selectedPosition.idx : undefined\n }\n selectCell={selectHeaderCellLatest}\n />\n ))}\n <HeaderRow\n rowIdx={headerRowsCount}\n columns={getRowViewportColumns(mainHeaderRowIdx)}\n onColumnResize={handleColumnResizeLatest}\n onColumnsReorder={onColumnsReorderLastest}\n sortColumns={sortColumns}\n onSortColumnsChange={onSortColumnsChangeLatest}\n lastFrozenColumnIndex={lastFrozenColumnIndex}\n selectedCellIdx={\n selectedPosition.rowIdx === mainHeaderRowIdx ? selectedPosition.idx : undefined\n }\n selectCell={selectHeaderCellLatest}\n shouldFocusGrid={!selectedCellIsWithinSelectionBounds}\n direction={direction}\n />\n </HeaderRowSelectionProvider>\n </HeaderRowSelectionChangeProvider>\n {rows.length === 0 && noRowsFallback ? (\n noRowsFallback\n ) : (\n <>\n {topSummaryRows?.map((row, rowIdx) => {\n const gridRowStart = headerRowsCount + 1 + rowIdx;\n const summaryRowIdx = mainHeaderRowIdx + 1 + rowIdx;\n const isSummaryRowSelected = selectedPosition.rowIdx === summaryRowIdx;\n const top = headerRowsHeight + summaryRowHeight * rowIdx;\n\n return (\n <SummaryRow\n key={rowIdx}\n aria-rowindex={gridRowStart}\n rowIdx={summaryRowIdx}\n gridRowStart={gridRowStart}\n row={row}\n top={top}\n bottom={undefined}\n viewportColumns={getRowViewportColumns(summaryRowIdx)}\n lastFrozenColumnIndex={lastFrozenColumnIndex}\n selectedCellIdx={isSummaryRowSelected ? selectedPosition.idx : undefined}\n isTop\n selectCell={selectCellLatest}\n />\n );\n })}\n <RowSelectionChangeProvider value={selectRowLatest}>\n {getViewportRows()}\n </RowSelectionChangeProvider>\n {bottomSummaryRows?.map((row, rowIdx) => {\n const gridRowStart = headerAndTopSummaryRowsCount + rows.length + rowIdx + 1;\n const summaryRowIdx = rows.length + rowIdx;\n const isSummaryRowSelected = selectedPosition.rowIdx === summaryRowIdx;\n const top =\n clientHeight > totalRowHeight\n ? gridHeight - summaryRowHeight * (bottomSummaryRows.length - rowIdx)\n : undefined;\n const bottom =\n top === undefined\n ? summaryRowHeight * (bottomSummaryRows.length - 1 - rowIdx)\n : undefined;\n\n return (\n <SummaryRow\n aria-rowindex={ariaRowCount - bottomSummaryRowsCount + rowIdx + 1}\n key={rowIdx}\n rowIdx={summaryRowIdx}\n gridRowStart={gridRowStart}\n row={row}\n top={top}\n bottom={bottom}\n viewportColumns={getRowViewportColumns(summaryRowIdx)}\n lastFrozenColumnIndex={lastFrozenColumnIndex}\n selectedCellIdx={isSummaryRowSelected ? selectedPosition.idx : undefined}\n isTop={false}\n selectCell={selectCellLatest}\n />\n );\n })}\n </>\n )}\n </DataGridDefaultRenderersProvider>\n\n {renderDragHandle()}\n\n {/* render empty cells that span only 1 column so we can safely measure column widths, regardless of colSpan */}\n {renderMeasuringCells(viewportColumns)}\n\n {/* extra div is needed for row navigation in a treegrid */}\n {isTreeGrid && (\n <div\n ref={focusSinkRef}\n tabIndex={isGroupRowFocused ? 0 : -1}\n className={clsx(focusSinkClassname, {\n [focusSinkHeaderAndSummaryClassname]: !isRowIdxWithinViewportBounds(\n selectedPosition.rowIdx\n ),\n [rowSelected]: isGroupRowFocused,\n [rowSelectedWithFrozenCell]: isGroupRowFocused && lastFrozenColumnIndex !== -1\n })}\n style={{\n gridRowStart: selectedPosition.rowIdx + headerAndTopSummaryRowsCount + 1\n }}\n />\n )}\n\n {scrollToPosition !== null && (\n <ScrollToCell\n scrollToPosition={scrollToPosition}\n setScrollToCellPosition={setScrollToPosition}\n gridElement={gridRef.current!}\n />\n )}\n </div>\n );\n}\n\nfunction getCellToScroll(gridEl: HTMLDivElement) {\n return gridEl.querySelector<HTMLDivElement>(':scope > [role=\"row\"] > [tabindex=\"0\"]');\n}\n\nfunction isSamePosition(p1: Position, p2: Position) {\n return p1.idx === p2.idx && p1.rowIdx === p2.rowIdx;\n}\n\nexport default forwardRef(DataGrid) as <R, SR = unknown, K extends Key = Key>(\n props: DataGridProps<R, SR, K> & RefAttributes<DataGridHandle>\n) => React.JSX.Element;\n", "import { memo } from 'react';\n\nimport { useRovingTabIndex } from './hooks';\nimport { getCellClassname, getCellStyle } from './utils';\nimport type { CalculatedColumn, GroupRow } from './types';\n\ninterface GroupCellProps<R, SR> {\n id: string;\n groupKey: unknown;\n childRows: readonly R[];\n toggleGroup: (expandedGroupId: unknown) => void;\n isExpanded: boolean;\n column: CalculatedColumn<R, SR>;\n row: GroupRow<R>;\n isCellSelected: boolean;\n groupColumnIndex: number;\n isGroupByColumn: boolean;\n}\n\nfunction GroupCell<R, SR>({\n id,\n groupKey,\n childRows,\n isExpanded,\n isCellSelected,\n column,\n row,\n groupColumnIndex,\n isGroupByColumn,\n toggleGroup: toggleGroupWrapper\n}: GroupCellProps<R, SR>) {\n const { tabIndex, childTabIndex, onFocus } = useRovingTabIndex(isCellSelected);\n\n function toggleGroup() {\n toggleGroupWrapper(id);\n }\n\n // Only make the cell clickable if the group level matches\n const isLevelMatching = isGroupByColumn && groupColumnIndex === column.idx;\n\n return (\n <div\n role=\"gridcell\"\n aria-colindex={column.idx + 1}\n aria-selected={isCellSelected}\n tabIndex={tabIndex}\n key={column.key}\n className={getCellClassname(column)}\n style={{\n ...getCellStyle(column),\n cursor: isLevelMatching ? 'pointer' : 'default'\n }}\n onClick={isLevelMatching ? toggleGroup : undefined}\n onFocus={onFocus}\n >\n {(!isGroupByColumn || isLevelMatching) &&\n column.renderGroupCell?.({\n groupKey,\n childRows,\n column,\n row,\n isExpanded,\n tabIndex: childTabIndex,\n toggleGroup\n })}\n </div>\n );\n}\n\nexport default memo(GroupCell) as <R, SR>(props: GroupCellProps<R, SR>) => React.JSX.Element;\n", "import { memo, useMemo } from 'react';\nimport { css } from '@linaria/core';\nimport clsx from 'clsx';\n\nimport { RowSelectionProvider, type RowSelectionContextValue } from './hooks';\nimport { getRowStyle } from './utils';\nimport type { BaseRenderRowProps, GroupRow } from './types';\nimport { SELECT_COLUMN_KEY } from './Columns';\nimport GroupCell from './GroupCell';\nimport { cell, cellFrozen } from './style/cell';\nimport { rowClassname, rowSelectedClassname } from './style/row';\n\nconst groupRow = css`\n @layer rdg.GroupedRow {\n &:not([aria-selected='true']) {\n background-color: var(--rdg-header-background-color);\n }\n\n > .${cell}:not(:last-child, .${cellFrozen}),\n > :nth-last-child(n + 2 of .${cellFrozen}) {\n border-inline-end: none;\n }\n }\n`;\n\nconst groupRowClassname = `rdg-group-row ${groupRow}`;\n\ninterface GroupRowRendererProps<R, SR> extends BaseRenderRowProps<R, SR> {\n row: GroupRow<R>;\n groupBy: readonly string[];\n toggleGroup: (expandedGroupId: unknown) => void;\n}\n\nfunction GroupedRow<R, SR>({\n className,\n row,\n rowIdx,\n viewportColumns,\n selectedCellIdx,\n isRowSelected,\n selectCell,\n gridRowStart,\n groupBy,\n toggleGroup,\n isRowSelectionDisabled,\n ...props\n}: GroupRowRendererProps<R, SR>) {\n // Select is always the first column\n const idx = viewportColumns[0].key === SELECT_COLUMN_KEY ? row.level + 1 : row.level;\n\n function handleSelectGroup() {\n selectCell({ rowIdx, idx: -1 });\n }\n\n const selectionValue = useMemo(\n (): RowSelectionContextValue => ({ isRowSelectionDisabled: false, isRowSelected }),\n [isRowSelected]\n );\n\n return (\n <RowSelectionProvider value={selectionValue}>\n <div\n role=\"row\"\n aria-level={row.level + 1} // aria-level is 1-based\n aria-setsize={row.setSize}\n aria-posinset={row.posInSet + 1} // aria-posinset is 1-based\n aria-expanded={row.isExpanded}\n className={clsx(\n rowClassname,\n groupRowClassname,\n `rdg-row-${rowIdx % 2 === 0 ? 'even' : 'odd'}`,\n selectedCellIdx === -1 && rowSelectedClassname,\n className\n )}\n onClick={handleSelectGroup}\n style={getRowStyle(gridRowStart)}\n {...props}\n >\n {viewportColumns.map((column) => (\n <GroupCell\n key={column.key}\n id={row.id}\n groupKey={row.groupKey}\n childRows={row.childRows}\n isExpanded={row.isExpanded}\n isCellSelected={selectedCellIdx === column.idx}\n column={column}\n row={row}\n groupColumnIndex={idx}\n toggleGroup={toggleGroup}\n isGroupByColumn={groupBy.includes(column.key)}\n />\n ))}\n </div>\n </RowSelectionProvider>\n );\n}\n\nexport default memo(GroupedRow) as <R, SR>(\n props: GroupRowRendererProps<R, SR>\n) => React.JSX.Element;\n", "import { forwardRef, useCallback, useMemo } from 'react';\nimport type { Key, RefAttributes } from 'react';\n\nimport { useLatestFunc } from './hooks';\nimport { assertIsValidKeyGetter, isCtrlKeyHeldDown } from './utils';\nimport type {\n CellKeyboardEvent,\n CellKeyDownArgs,\n Column,\n GroupRow,\n Maybe,\n Omit,\n RenderRowProps,\n RowHeightArgs,\n RowsChangeData\n} from './types';\nimport { renderToggleGroup } from './cellRenderers';\nimport { SELECT_COLUMN_KEY } from './Columns';\nimport DataGrid from './DataGrid';\nimport type { DataGridHandle, DataGridProps } from './DataGrid';\nimport { useDefaultRenderers } from './DataGridDefaultRenderersProvider';\nimport GroupedRow from './GroupRow';\nimport { defaultRenderRow } from './Row';\n\nexport interface TreeDataGridProps<R, SR = unknown, K extends Key = Key>\n extends Omit<\n DataGridProps<R, SR, K>,\n 'columns' | 'role' | 'aria-rowcount' | 'rowHeight' | 'onFill' | 'isRowSelectionDisabled'\n > {\n columns: readonly Column<NoInfer<R>, NoInfer<SR>>[];\n rowHeight?: Maybe<number | ((args: RowHeightArgs<NoInfer<R>>) => number)>;\n groupBy: readonly string[];\n rowGrouper: (\n rows: readonly NoInfer<R>[],\n columnKey: string\n ) => Record<string, readonly NoInfer<R>[]>;\n expandedGroupIds: ReadonlySet<unknown>;\n onExpandedGroupIdsChange: (expandedGroupIds: Set<unknown>) => void;\n}\n\ntype GroupByDictionary<TRow> = Record<\n string,\n {\n readonly childRows: readonly TRow[];\n readonly childGroups: readonly TRow[] | Readonly<GroupByDictionary<TRow>>;\n readonly startRowIndex: number;\n }\n>;\n\nfunction TreeDataGrid<R, SR, K extends Key>(\n {\n columns: rawColumns,\n rows: rawRows,\n rowHeight: rawRowHeight,\n rowKeyGetter: rawRowKeyGetter,\n onCellKeyDown: rawOnCellKeyDown,\n onRowsChange,\n selectedRows: rawSelectedRows,\n onSelectedRowsChange: rawOnSelectedRowsChange,\n renderers,\n groupBy: rawGroupBy,\n rowGrouper,\n expandedGroupIds,\n onExpandedGroupIdsChange,\n ...props\n }: TreeDataGridProps<R, SR, K>,\n ref: React.Ref<DataGridHandle>\n) {\n const defaultRenderers = useDefaultRenderers<R, SR>();\n const rawRenderRow = renderers?.renderRow ?? defaultRenderers?.renderRow ?? defaultRenderRow;\n const headerAndTopSummaryRowsCount = 1 + (props.topSummaryRows?.length ?? 0);\n const isRtl = props.direction === 'rtl';\n const leftKey = isRtl ? 'ArrowRight' : 'ArrowLeft';\n const rightKey = isRtl ? 'ArrowLeft' : 'ArrowRight';\n const toggleGroupLatest = useLatestFunc(toggleGroup);\n\n const { columns, groupBy } = useMemo(() => {\n const columns = [...rawColumns].sort(({ key: aKey }, { key: bKey }) => {\n // Sort select column first:\n if (aKey === SELECT_COLUMN_KEY) return -1;\n if (bKey === SELECT_COLUMN_KEY) return 1;\n\n // Sort grouped columns second, following the groupBy order:\n if (rawGroupBy.includes(aKey)) {\n if (rawGroupBy.includes(bKey)) {\n return rawGroupBy.indexOf(aKey) - rawGroupBy.indexOf(bKey);\n }\n return -1;\n }\n if (rawGroupBy.includes(bKey)) return 1;\n\n // Sort other columns last:\n return 0;\n });\n\n const groupBy: string[] = [];\n for (const [index, column] of columns.entries()) {\n if (rawGroupBy.includes(column.key)) {\n groupBy.push(column.key);\n columns[index] = {\n ...column,\n frozen: true,\n renderCell: () => null,\n renderGroupCell: column.renderGroupCell ?? renderToggleGroup,\n editable: false\n };\n }\n }\n\n return { columns, groupBy };\n }, [rawColumns, rawGroupBy]);\n\n const [groupedRows, rowsCount] = useMemo(() => {\n if (groupBy.length === 0) return [undefined, rawRows.length];\n\n const groupRows = (\n rows: readonly R[],\n [groupByKey, ...remainingGroupByKeys]: readonly string[],\n startRowIndex: number\n ): [Readonly<GroupByDictionary<R>>, number] => {\n let groupRowsCount = 0;\n const groups: GroupByDictionary<R> = {};\n for (const [key, childRows] of Object.entries(rowGrouper(rows, groupByKey))) {\n // Recursively group each parent group\n const [childGroups, childRowsCount] =\n remainingGroupByKeys.length === 0\n ? [childRows, childRows.length]\n : groupRows(childRows, remainingGroupByKeys, startRowIndex + groupRowsCount + 1); // 1 for parent row\n groups[key] = { childRows, childGroups, startRowIndex: startRowIndex + groupRowsCount };\n groupRowsCount += childRowsCount + 1; // 1 for parent row\n }\n\n return [groups, groupRowsCount];\n };\n\n return groupRows(rawRows, groupBy, 0);\n }, [groupBy, rowGrouper, rawRows]);\n\n const [rows, isGroupRow] = useMemo((): [\n ReadonlyArray<R | GroupRow<R>>,\n (row: R | GroupRow<R>) => row is GroupRow<R>\n ] => {\n const allGroupRows = new Set<unknown>();\n if (!groupedRows) return [rawRows, isGroupRow];\n\n const flattenedRows: Array<R | GroupRow<R>> = [];\n const expandGroup = (\n rows: GroupByDictionary<R> | readonly R[],\n parentId: string | undefined,\n level: number\n ): void => {\n if (isReadonlyArray(rows)) {\n flattenedRows.push(...rows);\n return;\n }\n Object.keys(rows).forEach((groupKey, posInSet, keys) => {\n // TODO: should users have control over the generated key?\n const id = parentId !== undefined ? `${parentId}__${groupKey}` : groupKey;\n const isExpanded = expandedGroupIds.has(id);\n const { childRows, childGroups, startRowIndex } = rows[groupKey];\n\n const groupRow: GroupRow<R> = {\n id,\n parentId,\n groupKey,\n isExpanded,\n childRows,\n level,\n posInSet,\n startRowIndex,\n setSize: keys.length\n };\n flattenedRows.push(groupRow);\n allGroupRows.add(groupRow);\n\n if (isExpanded) {\n expandGroup(childGroups, id, level + 1);\n }\n });\n };\n\n expandGroup(groupedRows, undefined, 0);\n return [flattenedRows, isGroupRow];\n\n function isGroupRow(row: R | GroupRow<R>): row is GroupRow<R> {\n return allGroupRows.has(row);\n }\n }, [expandedGroupIds, groupedRows, rawRows]);\n\n const rowHeight = useMemo(() => {\n if (typeof rawRowHeight === 'function') {\n return (row: R | GroupRow<R>): number => {\n if (isGroupRow(row)) {\n return rawRowHeight({ type: 'GROUP', row });\n }\n return rawRowHeight({ type: 'ROW', row });\n };\n }\n\n return rawRowHeight;\n }, [isGroupRow, rawRowHeight]);\n\n const getParentRowAndIndex = useCallback(\n (row: R | GroupRow<R>) => {\n const rowIdx = rows.indexOf(row);\n for (let i = rowIdx - 1; i >= 0; i--) {\n const parentRow = rows[i];\n if (isGroupRow(parentRow) && (!isGroupRow(row) || row.parentId === parentRow.id)) {\n return [parentRow, i] as const;\n }\n }\n\n return undefined;\n },\n [isGroupRow, rows]\n );\n\n const rowKeyGetter = useCallback(\n (row: R | GroupRow<R>) => {\n if (isGroupRow(row)) {\n return row.id;\n }\n\n if (typeof rawRowKeyGetter === 'function') {\n return rawRowKeyGetter(row);\n }\n\n const parentRowAndIndex = getParentRowAndIndex(row);\n if (parentRowAndIndex !== undefined) {\n const { startRowIndex, childRows } = parentRowAndIndex[0];\n const groupIndex = childRows.indexOf(row);\n return startRowIndex + groupIndex + 1;\n }\n\n return rows.indexOf(row);\n },\n [getParentRowAndIndex, isGroupRow, rawRowKeyGetter, rows]\n );\n\n const selectedRows = useMemo((): Maybe<ReadonlySet<Key>> => {\n if (rawSelectedRows == null) return null;\n\n assertIsValidKeyGetter<R, K>(rawRowKeyGetter);\n\n const selectedRows = new Set<Key>(rawSelectedRows);\n for (const row of rows) {\n if (isGroupRow(row)) {\n // select parent row if all the children are selected\n const isGroupRowSelected = row.childRows.every((cr) =>\n rawSelectedRows.has(rawRowKeyGetter(cr))\n );\n if (isGroupRowSelected) {\n selectedRows.add(row.id);\n }\n }\n }\n\n return selectedRows;\n }, [isGroupRow, rawRowKeyGetter, rawSelectedRows, rows]);\n\n function onSelectedRowsChange(newSelectedRows: Set<Key>) {\n if (!rawOnSelectedRowsChange) return;\n\n assertIsValidKeyGetter<R, K>(rawRowKeyGetter);\n\n const newRawSelectedRows = new Set(rawSelectedRows);\n for (const row of rows) {\n const key = rowKeyGetter(row);\n if (selectedRows?.has(key) && !newSelectedRows.has(key)) {\n if (isGroupRow(row)) {\n // select all children if the parent row is selected\n for (const cr of row.childRows) {\n newRawSelectedRows.delete(rawRowKeyGetter(cr));\n }\n } else {\n newRawSelectedRows.delete(key as K);\n }\n } else if (!selectedRows?.has(key) && newSelectedRows.has(key)) {\n if (isGroupRow(row)) {\n // unselect all children if the parent row is unselected\n for (const cr of row.childRows) {\n newRawSelectedRows.add(rawRowKeyGetter(cr));\n }\n } else {\n newRawSelectedRows.add(key as K);\n }\n }\n }\n\n rawOnSelectedRowsChange(newRawSelectedRows);\n }\n\n function handleKeyDown(args: CellKeyDownArgs<R, SR>, event: CellKeyboardEvent) {\n rawOnCellKeyDown?.(args, event);\n if (event.isGridDefaultPrevented()) return;\n\n if (args.mode === 'EDIT') return;\n const { column, rowIdx, selectCell } = args;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const idx = column?.idx ?? -1;\n const row = rows[rowIdx];\n\n if (!isGroupRow(row)) return;\n if (\n idx === -1 &&\n // Collapse the current group row if it is focused and is in expanded state\n ((event.key === leftKey && row.isExpanded) ||\n // Expand the current group row if it is focused and is in collapsed state\n (event.key === rightKey && !row.isExpanded))\n ) {\n event.preventDefault(); // Prevents scrolling\n event.preventGridDefault();\n toggleGroup(row.id);\n }\n\n // If a group row is focused, and it is collapsed, move to the parent group row (if there is one).\n if (idx === -1 && event.key === leftKey && !row.isExpanded && row.level !== 0) {\n const parentRowAndIndex = getParentRowAndIndex(row);\n if (parentRowAndIndex !== undefined) {\n event.preventGridDefault();\n selectCell({ idx, rowIdx: parentRowAndIndex[1] });\n }\n }\n\n // Prevent copy/paste on group rows\n if (isCtrlKeyHeldDown(event) && (event.keyCode === 67 || event.keyCode === 86)) {\n event.preventGridDefault();\n }\n }\n\n function handleRowsChange(updatedRows: R[], { indexes, column }: RowsChangeData<R, SR>) {\n if (!onRowsChange) return;\n const updatedRawRows = [...rawRows];\n const rawIndexes: number[] = [];\n for (const index of indexes) {\n const rawIndex = rawRows.indexOf(rows[index] as R);\n updatedRawRows[rawIndex] = updatedRows[index];\n rawIndexes.push(rawIndex);\n }\n onRowsChange(updatedRawRows, {\n indexes: rawIndexes,\n column\n });\n }\n\n function toggleGroup(groupId: unknown) {\n const newExpandedGroupIds = new Set(expandedGroupIds);\n if (newExpandedGroupIds.has(groupId)) {\n newExpandedGroupIds.delete(groupId);\n } else {\n newExpandedGroupIds.add(groupId);\n }\n onExpandedGroupIdsChange(newExpandedGroupIds);\n }\n\n function renderRow(\n key: Key,\n {\n row,\n rowClass,\n onCellClick,\n onCellDoubleClick,\n onCellContextMenu,\n onRowChange,\n lastFrozenColumnIndex,\n copiedCellIdx,\n draggedOverCellIdx,\n setDraggedOverRowIdx,\n selectedCellEditor,\n ...rowProps\n }: RenderRowProps<R, SR>\n ) {\n if (isGroupRow(row)) {\n const { startRowIndex } = row;\n return (\n <GroupedRow\n key={key}\n {...rowProps}\n aria-rowindex={headerAndTopSummaryRowsCount + startRowIndex + 1}\n row={row}\n groupBy={groupBy}\n toggleGroup={toggleGroupLatest}\n />\n );\n }\n\n let ariaRowIndex = rowProps['aria-rowindex'];\n const parentRowAndIndex = getParentRowAndIndex(row);\n if (parentRowAndIndex !== undefined) {\n const { startRowIndex, childRows } = parentRowAndIndex[0];\n const groupIndex = childRows.indexOf(row);\n ariaRowIndex = startRowIndex + headerAndTopSummaryRowsCount + groupIndex + 2;\n }\n\n return rawRenderRow(key, {\n ...rowProps,\n 'aria-rowindex': ariaRowIndex,\n row,\n rowClass,\n onCellClick,\n onCellDoubleClick,\n onCellContextMenu,\n onRowChange,\n lastFrozenColumnIndex,\n copiedCellIdx,\n draggedOverCellIdx,\n setDraggedOverRowIdx,\n selectedCellEditor\n });\n }\n\n return (\n <DataGrid<R, SR, Key>\n {...props}\n role=\"treegrid\"\n aria-rowcount={\n rowsCount + 1 + (props.topSummaryRows?.length ?? 0) + (props.bottomSummaryRows?.length ?? 0)\n }\n ref={ref}\n columns={columns}\n rows={rows as R[]} // TODO: check types\n rowHeight={rowHeight}\n rowKeyGetter={rowKeyGetter}\n onRowsChange={handleRowsChange}\n selectedRows={selectedRows}\n onSelectedRowsChange={onSelectedRowsChange}\n onCellKeyDown={handleKeyDown}\n renderers={{\n ...renderers,\n renderRow\n }}\n />\n );\n}\n\nfunction isReadonlyArray(arr: unknown): arr is readonly unknown[] {\n return Array.isArray(arr);\n}\n\nexport default forwardRef(TreeDataGrid) as <R, SR = unknown, K extends Key = Key>(\n props: TreeDataGridProps<R, SR, K> & RefAttributes<DataGridHandle>\n) => React.JSX.Element;\n", "import { css } from '@linaria/core';\n\nimport type { RenderEditCellProps } from '../types';\n\nconst textEditorInternalClassname = css`\n @layer rdg.TextEditor {\n appearance: none;\n\n box-sizing: border-box;\n inline-size: 100%;\n block-size: 100%;\n padding-block: 0;\n padding-inline: 6px;\n border: 2px solid #ccc;\n vertical-align: top;\n color: var(--rdg-color);\n background-color: var(--rdg-background-color);\n\n font-family: inherit;\n font-size: var(--rdg-font-size);\n\n &:focus {\n border-color: var(--rdg-selection-color);\n outline: none;\n }\n\n &::placeholder {\n color: #999;\n opacity: 1;\n }\n }\n`;\n\nexport const textEditorClassname = `rdg-text-editor ${textEditorInternalClassname}`;\n\nfunction autoFocusAndSelect(input: HTMLInputElement | null) {\n input?.focus();\n input?.select();\n}\n\nexport default function textEditor<TRow, TSummaryRow>({\n row,\n column,\n onRowChange,\n onClose\n}: RenderEditCellProps<TRow, TSummaryRow>) {\n return (\n <input\n className={textEditorClassname}\n ref={autoFocusAndSelect}\n value={row[column.key as keyof TRow] as unknown as string}\n onChange={(event) => onRowChange({ ...row, [column.key]: event.target.value })}\n onBlur={() => onClose(true, false)}\n />\n );\n}\n", "\uFEFFimport * as React from \"react\";\nimport DataGrid, { Column, SelectColumn, SortColumn } from \"react-data-grid\";\nimport { format, timeFormat, timeParse } from \"@hpcc-js/common\";\nimport { useData } from \"./hooks.ts\";\nimport type { Table } from \"./table.ts\";\n\nimport \"react-data-grid/lib/styles.css\";\n\nexport type QuerySortItem = { attribute: string, descending: boolean };\nfunction copyAndSort<T>(items: T[], attribute: string, descending?: boolean): T[] {\n const key = attribute as keyof T;\n return [...items].sort((a: T, b: T) => {\n if (a[key] < b[key]) {\n return descending ? 1 : -1;\n } else if (a[key] > b[key]) {\n return descending ? -1 : 1;\n }\n return 0;\n });\n}\n\ninterface EmptyRowsRendererProps {\n message: string\n}\n\nconst EmptyRowsRenderer: React.FunctionComponent<EmptyRowsRendererProps> = ({\n message\n}) => {\n\n return <div style={{ textAlign: \"center\", gridColumn: \"1/-1\" }} >\n {message}\n </div>;\n};\n\ninterface ColumnEx<TRow, TSummaryRow = unknown> extends Column<TRow, TSummaryRow> {\n renderCell?: (props: any) => any;\n __hpcc_pattern?: ReturnType<typeof timeParse>;\n __hpcc_format?: ReturnType<typeof format> | ReturnType<typeof timeFormat>;\n}\n\nexport interface ReactTableProps {\n table: Table;\n sort?: QuerySortItem,\n}\n\nexport const ReactTable: React.FunctionComponent<ReactTableProps> = ({\n table,\n sort\n}) => {\n const [columns, data] = useData(table);\n const multiSelect = table.multiSelect();\n const columnTypes = table.columnTypes();\n const columnPatterns = table.columnPatterns();\n const columnFormats = table.columnFormats();\n\n const [listColumns, setListColumns] = React.useState<ColumnEx<any[]>[]>([]);\n const [sortColumn, setSortColumn] = React.useState<SortColumn>();\n const [rows, setRows] = React.useState<any[]>([]);\n const [selectedRows, setSelectedRows] = React.useState<ReadonlySet<number>>(new Set());\n\n // Columns ---\n React.useEffect(() => {\n setListColumns([\n ...multiSelect ? [SelectColumn as ColumnEx<any[]>] : [],\n ...columns.map((column): ColumnEx<any[]> => {\n const type = columnTypes[column] ?? \"string\";\n let formatter;\n let __hpcc_pattern;\n let __hpcc_format;\n switch (type) {\n case \"time\":\n __hpcc_pattern = columnPatterns[column] !== undefined ? timeParse(columnPatterns[column]) : undefined;\n __hpcc_format = columnFormats[column] !== undefined ? timeFormat(columnFormats[column]) : undefined;\n break;\n case \"number\":\n formatter = (props) => {\n return <div style={{ textAlign: \"right\" }}>{props.row[props.column.key]}</div>;\n };\n // eslint-disable-next-line no-fallthrough\n default:\n __hpcc_format = columnFormats[column] !== undefined ? format(columnFormats[column]) : undefined;\n }\n return {\n key: column,\n name: column,\n resizable: true,\n sortable: true,\n minWidth: 80,\n renderCell: formatter,\n __hpcc_pattern,\n __hpcc_format\n };\n })\n ]);\n }, [columnFormats, columnPatterns, columnTypes, columns, multiSelect]);\n\n const onSortColumnsChange = React.useCallback((sortColumns: SortColumn[]) => {\n const futureSortColumn = sortColumns.slice(-1)[0];\n const sorted = futureSortColumn !== undefined;\n const isSortedDescending: boolean = futureSortColumn?.direction === \"DESC\";\n setSortColumn(futureSortColumn);\n setRows(copyAndSort(rows, sorted ? futureSortColumn.columnKey : \"key\", sorted ? isSortedDescending : false));\n }, [rows]);\n\n const rowKeyGetter = React.useCallback((row: any) => {\n return row.key;\n }, []);\n\n const onSelectedRowsChange = React.useCallback((selectedRows: Set<any>) => {\n setSelectedRows(selectedRows);\n }, []);\n\n const onCellClick = React.useCallback((row, column) => {\n table.onRowClickCallback(row, column.key);\n }, [table]);\n\n // Rows ---\n React.useEffect(() => {\n let items = data.map((row, index) => {\n const retVal = {\n key: index\n };\n listColumns.forEach((column, index) => {\n let val = row[index] as string;\n if (column.__hpcc_pattern && column.__hpcc_format) {\n val = column.__hpcc_format(column.__hpcc_pattern(val));\n } else if (column.__hpcc_pattern) {\n val = column.__hpcc_pattern(val).toString();\n } else if (column.__hpcc_format) {\n val = column.__hpcc_format(val as any);\n }\n retVal[column.key] = val;\n });\n return retVal;\n });\n if (sort?.attribute) {\n items = copyAndSort(items, sort.attribute, sort.descending);\n }\n setRows(items);\n }, [listColumns, data, sort]);\n\n return <DataGrid\n columns={listColumns}\n headerRowHeight={24}\n rows={rows}\n rowKeyGetter={rowKeyGetter}\n rowHeight={20}\n renderers={{ noRowsFallback: <EmptyRowsRenderer message={table.noDataMessage()} /> as any }}\n className={table.darkMode() ? \"rdg-dark\" : \"rdg-light\"}\n sortColumns={sortColumn ? [sortColumn] : []}\n onSortColumnsChange={onSortColumnsChange}\n selectedRows={selectedRows}\n onSelectedRowsChange={multiSelect ? onSelectedRowsChange : undefined}\n onCellClick={multiSelect ? undefined : (args, event) => onCellClick(args.row, args.column)}\n aria-describedby={\"\"}\n aria-label={\"\"}\n aria-labelledby={\"\"}\n style={{ height: \"100%\" }}\n />;\n};\n\n", "import { Widget } from \"@hpcc-js/common\";\nimport * as React from \"react\";\n\nexport function useData(widget: Widget): [string[], Array<string | number>[]] {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const columns: string[] = React.useMemo(() => widget.columns(), [widget, widget.dataChecksum()]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const data: Array<string | number>[] = React.useMemo(() => widget.data(), [widget, widget.dataChecksum()]);\n\n return [columns, data];\n}\n\n", "(function(){\n if (!document.getElementById('acd94ec7')) {\n var e = document.createElement('style');\n e.id = 'acd94ec7';\n e.textContent = `@layer rdg {\n @layer Defaults,\n FocusSink,\n CheckboxInput,\n CheckboxIcon,\n CheckboxLabel,\n Cell,\n HeaderCell,\n SummaryCell,\n EditCell,\n Row,\n HeaderRow,\n SummaryRow,\n GroupedRow,\n Root;\n}\n\n.mlln6zg7-0-0-beta-47 {\n @layer rdg.MeasuringCell {\n contain: strict;\n grid-row: 1;\n visibility: hidden;\n }\n}\n\n\n.cj343x07-0-0-beta-47 {\n @layer rdg.Cell {\n /* max-content does not work with size containment\n * dynamically switching between different containment styles incurs a heavy relayout penalty\n * Chromium bug: at odd zoom levels or subpixel positioning,\n * layout/paint/style containment can make cell borders disappear\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1326946\n */\n position: relative; /* needed for absolute positioning to work */\n padding-block: 0;\n padding-inline: 8px;\n border-inline-end: 1px solid var(--rdg-border-color);\n border-block-end: 1px solid var(--rdg-border-color);\n grid-row-start: var(--rdg-grid-row-start);\n align-content: center;\n background-color: inherit;\n\n white-space: nowrap;\n overflow: clip;\n text-overflow: ellipsis;\n outline: none;\n\n &[aria-selected='true'] {\n outline: 2px solid var(--rdg-selection-color);\n outline-offset: -2px;\n }\n }\n}\n\n.csofj7r7-0-0-beta-47 {\n @layer rdg.Cell {\n position: sticky;\n /* Should have a higher value than 0 to show up above unfrozen cells */\n z-index: 1;\n\n /* Add box-shadow on the last frozen cell */\n &:nth-last-child(1 of &) {\n box-shadow: var(--rdg-cell-frozen-box-shadow);\n }\n }\n}\n\n\n.c1bn88vv7-0-0-beta-47 {\n @layer rdg.CheckboxInput {\n display: block;\n margin: auto;\n inline-size: 20px;\n block-size: 20px;\n\n &:focus-visible {\n outline: 2px solid var(--rdg-checkbox-focus-color);\n outline-offset: -3px;\n }\n\n &:enabled {\n cursor: pointer;\n }\n }\n}\n\n\n.g1s9ylgp7-0-0-beta-47 {\n @layer rdg.GroupCellContent {\n outline: none;\n }\n}\n\n.cz54e4y7-0-0-beta-47 {\n @layer rdg.GroupCellCaret {\n margin-inline-start: 4px;\n stroke: currentColor;\n stroke-width: 1.5px;\n fill: transparent;\n vertical-align: middle;\n\n > path {\n transition: d 0.1s;\n }\n }\n}\n\n\n.c1w9bbhr7-0-0-beta-47 {\n @layer rdg.DragHandle {\n --rdg-drag-handle-size: 8px;\n z-index: 0;\n cursor: move;\n inline-size: var(--rdg-drag-handle-size);\n block-size: var(--rdg-drag-handle-size);\n background-color: var(--rdg-selection-color);\n place-self: end;\n\n &:hover {\n --rdg-drag-handle-size: 16px;\n border: 2px solid var(--rdg-selection-color);\n background-color: var(--rdg-background-color);\n }\n }\n}\n\n.c1creorc7-0-0-beta-47 {\n @layer rdg.DragHandle {\n z-index: 1;\n position: sticky;\n }\n}\n\n\n.cis5rrm7-0-0-beta-47 {\n @layer rdg.EditCell {\n padding: 0;\n }\n}\n\n\n.h44jtk67-0-0-beta-47 {\n @layer rdg.SortableHeaderCell {\n display: flex;\n }\n}\n\n.hcgkhxz7-0-0-beta-47 {\n @layer rdg.SortableHeaderCellName {\n flex-grow: 1;\n overflow: clip;\n text-overflow: ellipsis;\n }\n}\n\n\n.c6l2wv17-0-0-beta-47 {\n @layer rdg.HeaderCell {\n cursor: pointer;\n }\n}\n\n.c1kqdw7y7-0-0-beta-47 {\n @layer rdg.HeaderCell {\n touch-action: none;\n }\n}\n\n.r1y6ywlx7-0-0-beta-47 {\n @layer rdg.HeaderCell {\n cursor: col-resize;\n position: absolute;\n inset-block-start: 0;\n inset-inline-end: 0;\n inset-block-end: 0;\n inline-size: 10px;\n }\n}\n\n.c1bezg5o7-0-0-beta-47 {\n opacity: 0.5;\n}\n\n.c1vc96037-0-0-beta-47 {\n background-color: var(--rdg-header-draggable-background-color);\n}\n\n\n.r1upfr807-0-0-beta-47 {\n @layer rdg.Row {\n display: contents;\n background-color: var(--rdg-background-color);\n\n &:hover {\n background-color: var(--rdg-row-hover-background-color);\n }\n\n &[aria-selected='true'] {\n background-color: var(--rdg-row-selected-background-color);\n\n &:hover {\n background-color: var(--rdg-row-selected-hover-background-color);\n }\n }\n }\n}\n\n.r190mhd37-0-0-beta-47 {\n @layer rdg.FocusSink {\n outline: 2px solid var(--rdg-selection-color);\n outline-offset: -2px;\n }\n}\n\n.r139qu9m7-0-0-beta-47 {\n @layer rdg.FocusSink {\n &::before {\n content: '';\n display: inline-block;\n block-size: 100%;\n position: sticky;\n inset-inline-start: 0;\n border-inline-start: 2px solid var(--rdg-selection-color);\n }\n }\n}\n\n\n.h10tskcx7-0-0-beta-47 {\n @layer rdg.HeaderRow {\n display: contents;\n background-color: var(--rdg-header-background-color);\n font-weight: bold;\n\n & > .cj343x07-0-0-beta-47 {\n /* Should have a higher value than 1 to show up above regular cells and the focus sink */\n z-index: 2;\n position: sticky;\n }\n\n & > .csofj7r7-0-0-beta-47 {\n z-index: 3;\n }\n }\n}\n\n\n.c6ra8a37-0-0-beta-47 {\n @layer rdg.Cell {\n background-color: #ccccff;\n }\n}\n\n.cq910m07-0-0-beta-47 {\n @layer rdg.Cell {\n background-color: #ccccff;\n\n &.c6ra8a37-0-0-beta-47 {\n background-color: #9999ff;\n }\n }\n}\n\n\n.a3ejtar7-0-0-beta-47 {\n @layer rdg.SortIcon {\n fill: currentColor;\n\n > path {\n transition: d 0.1s;\n }\n }\n}\n\n\n.rnvodz57-0-0-beta-47 {\n @layer rdg.Defaults {\n *,\n *::before,\n *::after {\n box-sizing: inherit;\n }\n }\n\n @layer rdg.Root {\n --rdg-color: #000; --rdg-border-color: #ddd; --rdg-summary-border-color: #aaa; --rdg-background-color: hsl(0deg 0% 100%); --rdg-header-background-color: hsl(0deg 0% 97.5%); --rdg-header-draggable-background-color: hsl(0deg 0% 90.5%); --rdg-row-hover-background-color: hsl(0deg 0% 96%); --rdg-row-selected-background-color: hsl(207deg 76% 92%); --rdg-row-selected-hover-background-color: hsl(207deg 76% 88%); --rdg-checkbox-focus-color: hsl(207deg 100% 69%);\n --rdg-selection-color: #66afe9;\n --rdg-font-size: 14px;\n --rdg-cell-frozen-box-shadow: 2px 0 5px -2px rgba(136, 136, 136, 0.3);\n\n &:dir(rtl) {\n --rdg-cell-frozen-box-shadow: -2px 0 5px -2px rgba(136, 136, 136, 0.3);\n }\n\n display: grid;\n\n color-scheme: var(--rdg-color-scheme, light dark);\n accent-color: light-dark(hsl(207deg 100% 29%), hsl(207deg 100% 79%));\n\n /* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context */\n /* We set a stacking context so internal elements don't render on top of external elements. */\n /* size containment is not used as it could break \"width: min-content\" for example, and the grid would infinitely resize on Chromium browsers */\n contain: content;\n content-visibility: auto;\n block-size: 350px;\n border: 1px solid var(--rdg-border-color);\n box-sizing: border-box;\n overflow: auto;\n background-color: var(--rdg-background-color);\n color: var(--rdg-color);\n font-size: var(--rdg-font-size);\n\n /* needed on Firefox to fix scrollbars */\n &::before {\n content: '';\n grid-column: 1/-1;\n grid-row: 1/-1;\n }\n\n &.rdg-dark {\n --rdg-color-scheme: dark;\n --rdg-color: #ddd; --rdg-border-color: #444; --rdg-summary-border-color: #555; --rdg-background-color: hsl(0deg 0% 13%); --rdg-header-background-color: hsl(0deg 0% 10.5%); --rdg-header-draggable-background-color: hsl(0deg 0% 17.5%); --rdg-row-hover-background-color: hsl(0deg 0% 9%); --rdg-row-selected-background-color: hsl(207deg 76% 42%); --rdg-row-selected-hover-background-color: hsl(207deg 76% 38%); --rdg-checkbox-focus-color: hsl(207deg 100% 89%);\n }\n\n &.rdg-light {\n --rdg-color-scheme: light;\n }\n\n @media (prefers-color-scheme: dark) {\n &:not(.rdg-light) {\n --rdg-color: #ddd; --rdg-border-color: #444; --rdg-summary-border-color: #555; --rdg-background-color: hsl(0deg 0% 13%); --rdg-header-background-color: hsl(0deg 0% 10.5%); --rdg-header-draggable-background-color: hsl(0deg 0% 17.5%); --rdg-row-hover-background-color: hsl(0deg 0% 9%); --rdg-row-selected-background-color: hsl(207deg 76% 42%); --rdg-row-selected-hover-background-color: hsl(207deg 76% 38%); --rdg-checkbox-focus-color: hsl(207deg 100% 89%);\n }\n }\n\n > :nth-last-child(1 of .rdg-top-summary-row) {\n > .cj343x07-0-0-beta-47 {\n border-block-end: 2px solid var(--rdg-summary-border-color);\n }\n }\n\n > :nth-child(1 of .rdg-bottom-summary-row) {\n > .cj343x07-0-0-beta-47 {\n border-block-start: 2px solid var(--rdg-summary-border-color);\n }\n }\n }\n}\n\n.vlqv91k7-0-0-beta-47 {\n @layer rdg.Root {\n user-select: none;\n\n & .r1upfr807-0-0-beta-47 {\n cursor: move;\n }\n }\n}\n\n.f1lsfrzw7-0-0-beta-47 {\n @layer rdg.FocusSink {\n grid-column: 1/-1;\n pointer-events: none;\n /* Should have a higher value than 1 to show up above regular frozen cells */\n z-index: 1;\n }\n}\n\n.f1cte0lg7-0-0-beta-47 {\n @layer rdg.FocusSink {\n /* Should have a higher value than 3 to show up above header and summary rows */\n z-index: 3;\n }\n}\n\n\n.s8wc6fl7-0-0-beta-47 {\n @layer rdg.SummaryCell {\n inset-block-start: var(--rdg-summary-row-top);\n inset-block-end: var(--rdg-summary-row-bottom);\n }\n}\n\n\n.skuhp557-0-0-beta-47 {\n @layer rdg.SummaryRow {\n > .cj343x07-0-0-beta-47 {\n position: sticky;\n }\n }\n}\n\n.tf8l5ub7-0-0-beta-47 {\n @layer rdg.SummaryRow {\n > .cj343x07-0-0-beta-47 {\n z-index: 2;\n }\n\n > .csofj7r7-0-0-beta-47 {\n z-index: 3;\n }\n }\n}\n\n\n.g1yxluv37-0-0-beta-47 {\n @layer rdg.GroupedRow {\n &:not([aria-selected='true']) {\n background-color: var(--rdg-header-background-color);\n }\n\n > .cj343x07-0-0-beta-47:not(:last-child, .csofj7r7-0-0-beta-47),\n > :nth-last-child(n + 2 of .csofj7r7-0-0-beta-47) {\n border-inline-end: none;\n }\n }\n}\n\n\n.t7vyx3i7-0-0-beta-47 {\n @layer rdg.TextEditor {\n appearance: none;\n\n box-sizing: border-box;\n inline-size: 100%;\n block-size: 100%;\n padding-block: 0;\n padding-inline: 6px;\n border: 2px solid #ccc;\n vertical-align: top;\n color: var(--rdg-color);\n background-color: var(--rdg-background-color);\n\n font-family: inherit;\n font-size: var(--rdg-font-size);\n\n &:focus {\n border-color: var(--rdg-selection-color);\n outline: none;\n }\n\n &::placeholder {\n color: #999;\n opacity: 1;\n }\n }\n}\n\n`;\n document.head.appendChild(e);\n }\n })();", "(function(){\n if (!document.getElementById('c2b63dd3')) {\n var e = document.createElement('style');\n e.id = 'c2b63dd3';\n e.textContent = `.dgrid2_Table .rdg {\n font-family: monospace, 'Courier New', Courier;\n}\n\n.dgrid2_Table .rdg-checkbox-label .rdg-checkbox {\n block-size: 16px;\n inline-size: 16px;\n border-width: 2px;\n box-shadow: inset 0 0 0 3px var(--rdg-background-color);\n}`;\n document.head.appendChild(e);\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 { 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", "(function(){\n if (!document.getElementById('34d5dd28')) {\n var e = document.createElement('style');\n e.id = '34d5dd28';\n e.textContent = `.composite_ChartPanel > .body {\n margin: 0;\n padding: 0;\n display: flex;\n flex-flow: row;\n}\n\n.composite_ChartPanel > .body > article {\n flex: 3 1 60%;\n order: 2;\n}\n\n.composite_ChartPanel > .body > nav {\n flex: 1 6 20%;\n order: 1;\n}\n\n.composite_ChartPanel > .body > aside {\n margin-left: 4px;\n flex: 1 6 20%;\n order: 3;\n}\n\nheader, footer {\n display: block;\n}\n`;\n document.head.appendChild(e);\n }\n })();", "\uFEFFimport { 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", "(function(){\n if (!document.getElementById('e6188c82')) {\n var e = document.createElement('style');\n e.id = 'e6188c82';\n e.textContent = `\uFEFF.composite_Dermatology {\n background-color: ghostwhite;\n}\n\n.composite_Dermatology .common_Icon {\n background-color: red;\n opacity:0.75;\n}\n\n.composite_Dermatology .common_Icon .common_Shape {\n fill: white;\n stroke: darkgray;\n cursor:pointer;\n}\n\n.composite_Dermatology .common_Icon.show .common_Shape {\n fill: lightgray;\n}\n\n.composite_Dermatology .common_Icon .common_FAChar .common_Text {\n fill: darkgray;\n cursor:pointer;\n}\n\n.composite_Dermatology .other_PropertyEditor {\n font-family: sans-serif;\n font-size: 11px;\n}\n\n.composite_Dermatology .other_PropertyEditor input {\n font-family: sans-serif;\n font-size: 11px;\n border:0px;\n}\n\n.composite_Dermatology .other_PropertyEditor .property-label {\n height:unset;\n}\n`;\n document.head.appendChild(e);\n }\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", "(function(){\n if (!document.getElementById('e075cdb6')) {\n var e = document.createElement('style');\n e.id = 'e075cdb6';\n e.textContent = `.composite_MegaChart-Info,\n.composite_MegaChart-Info *,\n.composite_MegaChart-Maximize,\n.composite_MegaChart-Maximize *{\n font-family: FontAwesome;\n}`;\n document.head.appendChild(e);\n }\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"],
5
- "mappings": "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",
6
- "names": ["PKG_NAME", "PKG_VERSION", "BUILD_VERSION", "HTMLWidget", "HTMLWidget", "FAChar", "d3Event", "Platform", "d3Select", "d3SelectAll", "Utility", "d3Drag", "Button", "IconBar", "ProgressBar", "Spacer", "SVGWidget", "Text", "TitleBar", "ToggleButton", "HTMLWidget", "format", "timeFormat", "timeParse", "slice", "options", "vnodeId", "isValidElement", "rerenderQueue", "prevDebounce", "defer", "depthSort", "eventClock", "eventProxy", "eventProxyCapture", "i", "EMPTY_OBJ", "EMPTY_ARR", "IS_NON_DIMENSIONAL", "isArray", "Array", "assign", "obj", "props", "removeNode", "node", "parentNode", "removeChild", "createElement", "type", "children", "key", "ref", "normalizedProps", "arguments", "length", "call", "defaultProps", "createVNode", "original", "vnode", "__k", "__", "__b", "__e", "__d", "__c", "constructor", "__v", "__i", "__u", "Fragment", "BaseComponent", "context", "this", "getDomSibling", "childIndex", "sibling", "updateParentDomPointers", "child", "base", "enqueueRender", "c", "push", "process", "__r", "debounceRendering", "renderQueueLength", "component", "newVNode", "oldVNode", "oldDom", "commitQueue", "refQueue", "sort", "shift", "__P", "diff", "__n", "namespaceURI", "commitRoot", "diffChildren", "parentDom", "renderResult", "newParentVNode", "oldParentVNode", "globalContext", "namespace", "excessDomChildren", "isHydrating", "childVNode", "newDom", "firstChildDom", "oldChildren", "newChildrenLength", "constructNewChildrenArray", "applyRef", "insert", "nextSibling", "skewedIndex", "matchingIndex", "oldChildrenLength", "remainingOldChildren", "skew", "String", "findMatchingIndex", "unmount", "parentVNode", "contains", "insertBefore", "nodeType", "toChildArray", "out", "some", "x", "y", "setStyle", "style", "value", "setProperty", "test", "dom", "name", "oldValue", "useCapture", "o", "cssText", "replace", "toLowerCase", "l", "_attached", "addEventListener", "removeEventListener", "e", "removeAttribute", "setAttribute", "createEventProxy", "eventHandler", "_dispatched", "event", "tmp", "isNew", "oldProps", "oldState", "snapshot", "clearProcessingException", "newProps", "isClassComponent", "provider", "componentContext", "renderHook", "count", "newType", "outer", "prototype", "render", "contextType", "__E", "doRender", "sub", "state", "__h", "_sb", "__s", "getDerivedStateFromProps", "componentWillMount", "componentDidMount", "componentWillReceiveProps", "shouldComponentUpdate", "componentWillUpdate", "componentDidUpdate", "getChildContext", "getSnapshotBeforeUpdate", "MODE_HYDRATE", "indexOf", "diffElementNodes", "diffed", "root", "cb", "newHtml", "oldHtml", "newChildren", "inputValue", "checked", "localName", "document", "createTextNode", "createElementNS", "is", "__m", "data", "childNodes", "attributes", "__html", "innerHTML", "hasRefUnmount", "current", "skipRemove", "r", "componentWillUnmount", "replaceNode", "firstChild", "createContext", "defaultValue", "contextId", "Consumer", "contextValue", "Provider", "__name", "subs", "ctx", "Set", "_props", "forEach", "add", "old", "delete", "error", "errorInfo", "ctor", "handled", "getDerivedStateFromError", "setState", "componentDidCatch", "undefined", "update", "callback", "s", "forceUpdate", "Promise", "then", "bind", "resolve", "setTimeout", "a", "b", "currentIndex", "currentComponent", "previousComponent", "prevRaf", "currentHook", "afterPaintEffects", "_options", "oldBeforeDiff", "oldBeforeRender", "oldAfterDiff", "oldCommit", "oldBeforeUnmount", "oldRoot", "getHookState", "index", "hooks", "__H", "useState", "initialState", "useReducer", "invokeOrReturn", "reducer", "init", "hookState", "_reducer", "action", "currentValue", "__N", "nextValue", "_hasScuFromHooks", "updateHookState", "p", "stateHooks", "filter", "every", "prevScu", "shouldUpdate", "hookItem", "prevCWU", "useEffect", "args", "argsChanged", "_pendingArgs", "useLayoutEffect", "useRef", "initialValue", "useMemo", "useImperativeHandle", "createHandle", "concat", "factory", "useCallback", "useContext", "useId", "mask", "flushAfterPaintEffects", "invokeCleanup", "invokeEffect", "requestAnimationFrame", "afterNextFrame", "hasErrored", "HAS_RAF", "raf", "done", "clearTimeout", "timeout", "cancelAnimationFrame", "hook", "comp", "cleanup", "oldArgs", "newArgs", "arg", "f", "shallowDiffers", "PureComponent", "memo", "comparer", "nextProps", "updateRef", "Memoed", "displayName", "isReactComponent", "__f", "Component", "isPureReactComponent", "oldDiffHook", "REACT_FORWARD_SYMBOL", "Symbol", "for", "forwardRef", "fn", "Forwarded", "result", "$$typeof", "oldCatchError", "oldUnmount", "detachedClone", "detachedParent", "effect", "map", "removeOriginal", "originalParent", "appendChild", "Suspense", "_suspenders", "suspended", "__a", "SuspenseList", "_next", "_map", "__R", "promise", "suspendingVNode", "suspendingComponent", "resolved", "onResolved", "onSuspensionComplete", "suspendedVNode", "__O", "pop", "detachedComponent", "fallback", "list", "revealOrder", "size", "delegated", "get", "unsuspend", "wrappedUnsuspend", "Map", "reverse", "set", "_this", "REACT_ELEMENT_TYPE", "CAMEL_PROPS", "ON_ANI", "CAMEL_REPLACE", "IS_DOM", "onChangeInputType", "parent", "textContent", "preactRender", "Object", "defineProperty", "configurable", "v", "writable", "oldEventHook", "empty", "isPropagationStopped", "cancelBubble", "isDefaultPrevented", "defaultPrevented", "persist", "nativeEvent", "classNameDescriptorNonEnumberable", "enumerable", "class", "oldVNodeHook", "isNonDashedType", "lowerCased", "multiple", "selected", "className", "oldDiffed", "unmountComponentAtNode", "container", "flushSync", "t", "n", "clsx", "clsx_default", "isStaticChildren", "__source", "__self", "getColSpan", "column", "lastFrozenColumnIndex", "colSpan", "Number", "isInteger", "frozen", "idx", "stopPropagation", "scrollIntoView", "element", "inline", "block", "createCellEvent", "cellEvent", "preventGridDefault", "isGridDefaultPrevented", "setPrototypeOf", "getPrototypeOf", "nonInputKeys", "isCtrlKeyHeldDown", "ctrlKey", "metaKey", "isDefaultCellInput", "keyCode", "vKey", "has", "onEditorNavigation", "target", "HTMLInputElement", "HTMLTextAreaElement", "HTMLSelectElement", "closest", "querySelectorAll", "measuringCellClassname", "renderMeasuringCells", "viewportColumns", "minWidth", "maxWidth", "_jsx", "gridColumnStart", "isSelectedCellEditable", "selectedPosition", "columns", "rows", "row", "rowIdx", "isCellEditableUtil", "renderEditCell", "editable", "getSelectedCellColSpan", "topSummaryRows", "bottomSummaryRows", "mainHeaderRowIdx", "topSummaryRowsCount", "getNextSelectedCellPosition", "moveUp", "moveNext", "cellNavigationMode", "colSpanColumns", "minRowIdx", "maxRowIdx", "currentPosition", "currentIdx", "currentRowIdx", "nextPosition", "isCellWithinBounds", "nextIdx", "nextRowIdx", "columnsCount", "setColSpan", "colIdx", "getParentRowIdx", "level", "setHeaderGroupColAndRowSpan", "parentRowIdx", "found", "nextParentRowIdx", "canExitGrid", "maxColIdx", "shiftKey", "cell", "cellClassname", "cellFrozen", "cellFrozenClassname", "getRowStyle", "getHeaderCellStyle", "rowSpan", "gridRowEnd", "paddingBlockStart", "insetBlockStart", "gridRowStart", "getCellStyle", "gridColumnEnd", "insetInlineStart", "getCellClassname", "extraClasses", "min", "max", "floor", "sign", "abs", "Math", "assertIsValidKeyGetter", "keyGetter", "Error", "clampColumnWidth", "width", "getHeaderCellRowSpan", "checkbox", "checkboxClassname", "renderCheckbox", "onChange", "indeterminate", "handleChange", "el", "groupCellContent", "groupCellContentClassname", "caret", "caretClassname", "renderValue", "DataGridDefaultRenderersContext", "DataGridDefaultRenderersProvider", "useDefaultRenderers", "SelectCellFormatter", "tabIndex", "disabled", "ariaLabel", "ariaLabelledBy", "RowSelectionContext", "RowSelectionProvider", "RowSelectionChangeContext", "RowSelectionChangeProvider", "useRowSelection", "rowSelectionContext", "rowSelectionChangeContext", "isRowSelectionDisabled", "isRowSelected", "onRowSelectionChange", "HeaderRowSelectionContext", "HeaderRowSelectionProvider", "HeaderRowSelectionChangeContext", "HeaderRowSelectionChangeProvider", "useHeaderRowSelection", "headerRowSelectionContext", "headerRowSelectionChangeContext", "isIndeterminate", "SELECT_COLUMN_KEY", "HeaderRenderer", "SelectFormatter", "isShiftClick", "SelectGroupFormatter", "SelectColumn", "resizable", "sortable", "renderHeaderCell", "renderCell", "renderGroupCell", "DEFAULT_COLUMN_WIDTH", "DEFAULT_COLUMN_MIN_WIDTH", "useCalculatedColumns", "rawColumns", "defaultColumnOptions", "getColumnWidth", "viewportWidth", "scrollLeft", "enableVirtualization", "defaultWidth", "defaultMinWidth", "defaultMaxWidth", "defaultCellRenderer", "defaultSortable", "defaultResizable", "defaultDraggable", "draggable", "headerRowsCount", "collectColumns", "rawColumn", "calculatedColumnParent", "headerCellClass", "aKey", "frozenA", "bKey", "frozenB", "updateColumnParent", "templateColumns", "layoutCssVars", "totalFrozenColumnWidth", "columnMetrics", "left", "columnMetric", "colOverscanStartIdx", "colOverscanEndIdx", "viewportLeft", "viewportRight", "lastColIdx", "firstUnfrozenColumnIdx", "colVisibleStartIdx", "colVisibleEndIdx", "window", "useOriginalLayoutEffect", "useColumnWidths", "gridRef", "gridWidth", "resizedColumnWidths", "measuredColumnWidths", "setResizedColumnWidths", "setMeasuredColumnWidths", "onColumnResize", "prevGridWidthRef", "columnsCanFlex", "ignorePreviouslyMeasuredColumns", "newTemplateColumns", "columnsToMeasure", "gridTemplateColumns", "join", "updateMeasuredWidths", "newMeasuredColumnWidths", "hasChanges", "measuredWidth", "measureColumnWidth", "handleColumnResize", "nextWidth", "resizingKey", "newResizedColumnWidths", "selector", "CSS", "escape", "querySelector", "getBoundingClientRect", "useGridDimensions", "inlineSize", "setInlineSize", "blockSize", "setBlockSize", "horizontalScrollbarHeight", "setHorizontalScrollbarHeight", "ResizeObserver", "clientWidth", "clientHeight", "offsetWidth", "offsetHeight", "height", "initialHorizontalScrollbarHeight", "initialWidth", "initialHeight", "resizeObserver", "entries", "contentBoxSize", "observe", "disconnect", "useLatestFunc", "callbackFn", "useRovingTabIndex", "isSelected", "isChildFocused", "setIsChildFocused", "onFocus", "currentTarget", "childTabIndex", "useViewportColumns", "rowOverscanStartIdx", "rowOverscanEndIdx", "startIdx", "updateStartIdx", "useViewportRows", "rowHeight", "scrollTop", "totalRowHeight", "gridTemplateRows", "getRowTop", "getRowHeight", "findRowIdx", "offset", "rowPositions", "currentRowHeight", "position", "top", "validateRowIdx", "start", "end", "middle", "currentOffset", "rowVisibleStartIdx", "rowVisibleEndIdx", "overscanThreshold", "cellDragHandle", "cellDragHandleFrozenClassname", "cellDragHandleClassname", "DragHandle", "columnWidth", "isLastRow", "latestDraggedOverRowIdx", "isCellEditable", "onRowsChange", "onFill", "onClick", "setDragging", "setDraggedOverRowIdx", "handleMouseDown", "preventDefault", "buttons", "onMouseOver", "onMouseUp", "handleDragEnd", "overRowIdx", "startRowIndex", "endRowIndex", "updateRows", "handleDoubleClick", "startRowIdx", "endRowIdx", "sourceRow", "updatedRows", "indexes", "updatedRow", "columnKey", "targetRow", "getStyle", "marginEnd", "isLastColumn", "marginInlineEnd", "marginBlockEnd", "onMouseDown", "onDoubleClick", "cellEditing", "EditCell", "onRowChange", "closeEditor", "onKeyDown", "navigate", "frameRequestRef", "commitOnOutsideClick", "editorOptions", "commitOnOutsideMouseDown", "onClose", "onWindowCaptureMouseDown", "capture", "cancelFrameRequest", "handleKeyDown", "mode", "commitChanges", "shouldFocusCell", "onEditorRowChange", "commitChangesAndFocus", "cellClass", "displayCellContent", "role", "onMouseDownCapture", "_jsxs", "_Fragment", "GroupedColumnHeaderCell", "isCellSelected", "selectCell", "headerSortCellClassname", "headerSortName", "headerSortNameClassname", "sortDirection", "priority", "SortableHeaderCell", "renderSortStatus", "cellSortableClassname", "cellResizable", "cellResizableClassname", "resizeHandleClassname", "cellDraggableClassname", "cellDragging", "cellDraggingClassname", "cellOver", "cellOverClassname", "HeaderCell", "onColumnsReorder", "sortColumns", "onSortColumnsChange", "shouldFocusGrid", "direction", "dragDropKey", "isDragging", "setIsDragging", "isOver", "setIsOver", "isRtl", "sortIndex", "findIndex", "sortColumn", "ariaSort", "defaultRenderHeaderCell", "onPointerDown", "pointerType", "pointerId", "headerCell", "parentElement", "right", "clientX", "hasDoubleClicked", "onPointerMove", "newWidth", "onLostPointerCapture", "setPointerCapture", "onSort", "ctrlClick", "sortDescendingFirst", "nextSort", "nextSortColumn", "nextSortColumns", "splice", "handleFocus", "onDragStart", "dataTransfer", "setData", "dropEffect", "onDragEnd", "onDragOver", "onDrop", "types", "includes", "sourceKey", "getData", "onDragEnter", "isEventPertinent", "onDragLeave", "draggableProps", "relatedTarget", "rowClassname", "rowSelected", "rowSelectedClassname", "rowSelectedWithFrozenCell", "topSummaryRowClassname", "bottomSummaryRowClassname", "headerRow", "headerRowClassname", "HeaderRow", "selectedCellIdx", "cells", "HeaderRow$1", "GroupedColumnHeaderRow", "renderedParents", "GroupedColumnHeaderRow$1", "cellCopied", "cellCopiedClassname", "cellDraggedOver", "cellDraggedOverClassname", "Cell", "isCopied", "isDraggedOver", "onContextMenu", "isEditable", "selectCellWrapper", "openEditor", "handleClick", "handleContextMenu", "handleRowChange", "newRow", "Cell$1", "Row", "copiedCellIdx", "draggedOverCellIdx", "selectedCellEditor", "onCellClick", "onCellDoubleClick", "onCellContextMenu", "rowClass", "onMouseEnter", "handleDragEnter", "selectionValue", "RowComponent", "defaultRenderRow", "ScrollToCell", "scrollToPosition", "gridElement", "setScrollToCellPosition", "removeScrollToCell", "observer", "IntersectionObserver", "threshold", "gridColumn", "gridRow", "arrow", "arrowClassname", "renderSortIcon", "renderSortPriority", "viewBox", "d", "rootClassname", "viewportDragging", "viewportDraggingClassname", "focusSinkClassname", "focusSinkHeaderAndSummaryClassname", "summaryCellClassname", "SummaryCell", "summaryCellClass", "renderSummaryCell", "SummaryCell$1", "summaryRow", "topSummaryRow", "summaryRowClassname", "SummaryRow", "bottom", "isTop", "ariaRowIndex", "SummaryRow$1", "DataGrid", "rowKeyGetter", "rawRowHeight", "headerRowHeight", "rawHeaderRowHeight", "summaryRowHeight", "rawSummaryRowHeight", "selectedRows", "onSelectedRowsChange", "onCellKeyDown", "onSelectedCellChange", "onScroll", "onCopy", "onPaste", "rawEnableVirtualization", "renderers", "rawDirection", "rawRole", "ariaDescribedBy", "rawAriaRowCount", "testId", "defaultRenderers", "renderRow", "defaultRenderSortStatus", "defaultRenderCheckbox", "noRowsFallback", "setScrollTop", "setScrollLeft", "copiedCell", "setCopiedCell", "draggedOverRowIdx", "setOverRowIdx", "setScrollToPosition", "gridHeight", "bottomSummaryRowsCount", "summaryRowsCount", "headerAndTopSummaryRowsCount", "groupedColumnHeaderRowsCount", "setSelectedPosition", "prevSelectedPosition", "lastSelectedRowIdx", "focusSinkRef", "shouldFocusCellRef", "isTreeGrid", "headerRowsHeight", "summaryRowsHeight", "isSelectable", "leftKey", "rightKey", "ariaRowCount", "defaultGridComponents", "headerSelectionValue", "hasSelectedRow", "hasUnselectedRow", "minColIdx", "selectedCellIsWithinSelectionBounds", "isCellWithinSelectionBounds", "selectedCellIsWithinViewportBounds", "isCellWithinViewportBounds", "scrollHeight", "handleColumnResizeLatest", "onColumnsReorderLastest", "onSortColumnsChangeLatest", "onCellClickLatest", "onCellDoubleClickLatest", "onCellContextMenuLatest", "selectHeaderRowLatest", "selectHeaderRow", "selectRowLatest", "selectRow", "handleFormatterRowChangeLatest", "updateRow", "selectCellLatest", "selectHeaderCellLatest", "isSamePosition", "focus", "preventScroll", "focusCellOrCellContent", "scrollToCell", "scrollToIdx", "scrollToRowIdx", "isRowIdxWithinViewportBounds", "newSelectedRows", "rowKey", "previousRowIdx", "step", "Element", "isCellEvent", "isRowEvent", "cKey", "getSelection", "isCollapsed", "handleCopy", "handlePaste", "handleCellInput", "handleScroll", "commitEditorChanges", "sourceColumnKey", "targetColumn", "updatedTargetRow", "targetColumnKey", "originalRow", "isColIdxWithinSelectionBounds", "isCellWithinEditBounds", "enableEditor", "samePosition", "getCellToScroll", "getNextPosition", "nextRowY", "nextSelectedCellPosition", "getDraggedOverCellIdx", "renderDragHandle", "getCellEditor", "getRowViewportColumns", "selectedColumn", "getViewportRows", "rowElements", "selectedIdx", "selectedRowIdx", "viewportRowIdx", "isRowOutsideViewport", "rowColumns", "templateRows", "isGroupRowFocused", "scrollPaddingInlineStart", "scrollPaddingBlock", "dir", "from", "_", "summaryRowIdx", "isSummaryRowSelected", "gridEl", "p1", "p2", "DataGrid$1", "groupRow", "groupRowClassname", "textEditorInternalClassname", "textEditorClassname", "useData", "widget", "T", "copyAndSort", "items", "attribute", "descending", "EmptyRowsRenderer", "message", "ReactTable", "table", "multiSelect", "columnTypes", "columnPatterns", "columnFormats", "listColumns", "setListColumns", "h", "setSortColumn", "setRows", "setSelectedRows", "formatter", "__hpcc_pattern", "__hpcc_format", "timeParse", "timeFormat", "format", "q", "futureSortColumn", "sorted", "isSortedDescending", "retVal", "val", "Table", "HTMLWidget", "pattern", "domNode", "$", "hn", "col", "sel", "d3Select", "instanceOfIHighlight", "Database", "Palette", "SVGWidget", "d3Format", "d3ScaleOrdinal", "ze", "Pe", "Ae", "Oe", "ke", "He", "Ie", "Fe", "HTMLWidget", "d3Event", "d3Drag", "Platform", "Utility", "Text", "require_gridList", "__commonJSMin", "exports", "module", "root", "factory", "GridList", "__name", "items", "options", "k", "_items", "_item", "i", "widthOfGrid", "output", "border", "item", "j", "lanes", "currentColumn", "position", "start", "fixedRow", "x", "y", "newCol", "newRow", "newPosition", "size", "width", "height", "initialItems", "idAttribute", "changedItems", "item1", "item2", "position1", "position2", "row", "col", "N", "GridCol", "collidingItems", "_gridList", "leftOfItem", "rightOfItem", "aboveOfItem", "belowOfItem", "collidingItem", "collidingPosition", "fixedItem", "fixedPosition", "tail", "otherItem", "otherPosition", "key", "value", "nr", "prefix", "e", "AbsoluteSurface", "HTMLWidget", "__name", "domNode", "element", "xPos", "yPos", "width", "height", "widgets", "d", "Accordion", "widget", "prepend", "protect", "contentArr", "arr", "i", "context", "FAChar", "this_id", "rows", "li", "wSize", "cSize", "Surface", "titleDiv", "widgetDiv", "element2", "titles", "surfaceButtons", "button", "idx", "el", "d3Select", "_d", "widgetSize", "obj", "w", "Cell", "_", "opacity", "indicatorBorderColor", "indicatorGlowColor", "otherElement", "otherWidget", "d3SelectAll", "Border", "paramId", "newVal", "oldVal", "Utility", "layoutObj", "cell", "sectionType", "layoutType", "retObj", "topSize", "topPerc", "bottomSize", "bottomPerc", "leftSize", "leftPerc", "rightSize", "rightPerc", "bcRect", "gridRect", "t", "_sectionPlacementObject", "b", "l", "r", "c", "contentWidget", "title", "id", "handle", "event", "d3Event", "handleElm", "xDelta", "yDelta", "_moveHandles", "handle2", "delta", "handles", "grabbedHandle", "handle3", "retVal", "Platform", "rowsUpdate", "drag", "d3Drag", "contentRect", "rect", "size", "n", "prevBox", "currBox", "WidgetDiv", "div", "getBBox", "availableHeight", "availableWidth", "overflowX", "overflowY", "Border2", "topElement", "centerElement", "leftElement", "rightElement", "bottomElement", "sectionA", "sectionB", "a", "callback", "topBBox", "bottomBBox", "leftBBox", "rightBBox", "bodyWidth", "bodyHeight", "centerOverflowX", "centerOverflowY", "scrollCenterX", "scrollCenterY", "promises", "Carousel", "active", "widgetElements", "update", "aw", "w2", "pi", "tau", "epsilon", "tauEpsilon", "Path", "path", "x", "y", "x1", "y1", "x2", "y2", "x0", "y0", "x21", "y21", "x01", "y01", "l01_2", "x20", "y20", "l21_2", "l20_2", "l21", "l01", "t01", "t21", "a0", "a1", "ccw", "dx", "dy", "cw", "da", "h", "path_default", "constant_default", "halfPi", "circle_default", "cross_default", "tan30", "tan30_2", "diamond_default", "ka", "kr", "kx", "ky", "star_default", "s", "square_default", "sqrt3", "triangle_default", "k", "wye_default", "symbol_default", "type", "symbol", "buffer", "Me", "d3_identity", "d3_reverse", "mirror", "length", "d3_textWrapping", "text", "each", "select", "words", "split", "reverse", "word", "line", "lineNumber", "lineHeight", "attr", "parseFloat", "tspan", "append", "pop", "push", "p", "join", "node", "getComputedTextLength", "d3_mergeLabels", "gen", "labels", "domain", "range", "labelDelimiter", "_typeof", "customLabels", "genLength", "d3_linearLegend", "scale", "cells", "labelFormat", "data", "increment", "map", "d3_quantLegend", "invert", "invertExtent", "d3_ordinalLegend", "d3_cellOver", "cellDispatcher", "call", "d3_cellOut", "d3_cellClick", "helper", "shape", "shapes", "shapeHeight", "shapeWidth", "shapeRadius", "svg", "enter", "classPrefix", "labelWidth", "selectAll", "ascending", "ticks", "cellFilter", "filterCells", "label", "filter", "dataValues", "labelValues", "indexOf", "orient", "cellTrans", "textTrans", "labelAlign", "style", "dispatcher", "on", "Ge", "Ye", "Xe", "titleWidth", "titleText", "cellsSvg", "yOffset", "nodes", "xOffset", "Pe", "Oe", "color", "scaleLinear", "shapePadding", "useClass", "locale", "d3_defaultLocale", "specifier", "d3_defaultFormatSpecifier", "labelOffset", "d3_defaultDelimiter", "labelWrap", "legendDispatcher", "dispatch", "legend", "d3_calcType", "format", "legendG", "Zt", "d3_filterCells", "cellEnter", "at", "V", "d3_addEvents", "et", "exit", "transition", "remove", "N", "merge", "d3_drawShapes", "d3_addText", "textSize", "shapeSize", "feature", "textAlign", "cellSize", "Math", "max", "ct", "sum", "slice", "pt", "d3_placement", "d3_title", "arguments", "T", "formatLocale", "formatSpecifier", "g", "u", "toLowerCase", "textWrap", "value", "apply", "Legend", "SVGWidget", "owner", "Database", "row", "disabledCols", "anyDisabled", "col", "disabled", "key", "newProp", "oldProp", "source", "Palette", "sel", "palette", "dataArr", "total", "maxLabelWidth", "colLength", "columns", "fillColor", "val", "acc", "d3Format", "steps", "weightMin", "weightMax", "stepWeightDiff", "mid", "radius", "strokeWidth", "ordinal", "d3ScaleOrdinal", "legendCellsBbox", "offsetX", "offsetY", "extraWidth", "extraHeight", "legendTotal", "totalText", "totalOffsetX", "totalOffsetY", "circleSize", "disabledIdx", "instanceOfIHighlight", "rowData", "rowIdx", "_size", "bbox", "Modal", "relativeTarget", "modalRect", "headerRect", "header_h", "ChartPanel", "ProgressBar", "ToggleButton", "Text", "origCloseFunc", "Button", "selected", "Spacer", "TitleBar", "Table", "asDefault", "namePrefix", "nameSuffix", "column", "cssTag", "highlight", "scale_x", "scale_y", "x_is_smaller", "chart", "widgetIconBar", "IconBar", "buttons", "hiddenButtons", "iconDiv", "_node", "containerRect", "icon_top", "parentRect", "more", "tmpAny", "FlexGrid", "cachedSizes", "listItems", "flexBasis", "flexGrow", "_GridList", "ae", "qt", "GridList", "ut", "Grid", "rowSpan", "colSpan", "item", "origItem", "pos", "resize", "transitionDuration", "_noRender", "dimensions", "clientWidth", "cellLaneRatio", "laneWidth", "divItems", "lanesBackground", "lanes", "selectionObj", "layoutArr", "elem", "HorizontalList", "Layered", "placement", "widthRatio", "heightRatio", "content", "clientSize", "widgetPosition", "Popup", "visible", "left", "top", "Tabbed", "isActive", "surface", "tcBox", "tabs", "Toolbar", "childWidgets", "widgetClass", "toolbarBBox", "minX", "childBBox", "VerticalList", "IGraph", "INDChart", "HTMLWidget", "Utility", "d3Map", "Utility_exports", "__export", "requireWidget", "requireWidgets", "Utility", "requireWidget", "classID", "resolve", "_reject", "parsedClassID", "Utility", "__require", "Package", "Widget", "__name", "requireWidgets", "classIDs", "MultiChart", "HTMLWidget", "__name", "INDChart", "IGraph", "item", "newItem", "_", "retVal", "asDefault", "chartType", "callback", "classInfo", "Utility", "mod", "requireWidget", "WidgetClass", "oldContent", "context", "newContent", "size", "domNode", "element", "content", "d", "currChart", "key", "propKey", "_callback", "args", "d3Map", "_origChart", "_row", "_column", "_selected", "row", "column", "selected", "more", "newVal", "oldVal", "e", "Summary", "HTMLWidget", "__name", "domNode", "element", "MultiChartPanel", "f", "MultiChart", "_", "OnOff", "PropertyEditor", "e", "Dermatology", "z", "__name", "M", "PropertyEditor", "_", "widget", "domNode", "element", "context", "OnOff", "callback", "Text", "Utility", "Button", "Input", "Select", "Html", "Legend", "d3Select", "e", "MegaChart", "z", "__name", "MultiChart", "M", "Text", "Legend", "context", "_", "asDefault", "Utility", "domNode", "element", "Html", "Button", "a", "buttonWidget", "target", "node", "isMaximized", "d3Select", "parentGrid", "targetElement", "targetParentBox", "targetPaddingTop", "targetPaddingLeft", "targetPaddingRight", "targetPaddingBottom", "grid", "gridTarget", "gridBox", "gridPaddingTop", "gridPaddingLeft", "gridPaddingRight", "gridPaddingBottom", "Input", "Select", "showHideButton", "twArr2", "button", "show", "idx", "twArr", "legendPosition", "obj", "t", "r", "b", "state", "chart", "row", "column", "selected", "col", "sel", "more", "Persist_exports", "__export", "clone", "create", "deserialize", "deserializeFromObject", "retrofit_114_serialization", "Platform", "Utility", "Persist", "retrofit_114_serialization", "state", "replacement_version", "state_version_obj", "Utility", "target_version_obj", "_json_str", "ret_obj", "__name", "deserializeFromObject", "widget", "promises", "Persist", "w", "item", "widgetKey", "create", "w2", "widgetArrayKey", "widgetStateArray", "arrPromises", "widgetState", "widgetItem", "widgetArray", "widgets", "key", "deserialize", "Platform", "requireWidget", "WidgetClass", "clone"]
7
- }
1
+ {"version":3,"file":"index.js","sources":["../src/__package__.ts","../../dgrid2/dist/index.js","../../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","(function(){\"use strict\";try{if(typeof document<\"u\"){var r=document.createElement(\"style\");r.appendChild(document.createTextNode('@layer rdg{@layer Defaults,FocusSink,CheckboxInput,CheckboxIcon,CheckboxLabel,Cell,HeaderCell,SummaryCell,EditCell,Row,HeaderRow,SummaryRow,GroupedRow,Root;}@layer rdg.MeasuringCell{.mlln6zg7-0-0-beta-47{contain:strict;grid-row:1;visibility:hidden}}@layer rdg.Cell{.cj343x07-0-0-beta-47{position:relative;padding-block:0;padding-inline:8px;border-inline-end:1px solid var(--rdg-border-color);border-block-end:1px solid var(--rdg-border-color);grid-row-start:var(--rdg-grid-row-start);align-content:center;background-color:inherit;white-space:nowrap;overflow:clip;text-overflow:ellipsis;outline:none}.cj343x07-0-0-beta-47[aria-selected=true]{outline:2px solid var(--rdg-selection-color);outline-offset:-2px}}@layer rdg.Cell{.csofj7r7-0-0-beta-47{position:sticky;z-index:1}.csofj7r7-0-0-beta-47:nth-last-child(1 of.csofj7r7-0-0-beta-47){box-shadow:var(--rdg-cell-frozen-box-shadow)}}@layer rdg.CheckboxInput{.c1bn88vv7-0-0-beta-47{display:block;margin:auto;inline-size:20px;block-size:20px}.c1bn88vv7-0-0-beta-47:focus-visible{outline:2px solid var(--rdg-checkbox-focus-color);outline-offset:-3px}.c1bn88vv7-0-0-beta-47:enabled{cursor:pointer}}@layer rdg.GroupCellContent{.g1s9ylgp7-0-0-beta-47{outline:none}}@layer rdg.GroupCellCaret{.cz54e4y7-0-0-beta-47{margin-inline-start:4px;stroke:currentColor;stroke-width:1.5px;fill:transparent;vertical-align:middle}.cz54e4y7-0-0-beta-47>path{transition:d .1s}}@layer rdg.DragHandle{.c1w9bbhr7-0-0-beta-47{--rdg-drag-handle-size: 8px;z-index:0;cursor:move;inline-size:var(--rdg-drag-handle-size);block-size:var(--rdg-drag-handle-size);background-color:var(--rdg-selection-color);place-self:end}.c1w9bbhr7-0-0-beta-47:hover{--rdg-drag-handle-size: 16px;border:2px solid var(--rdg-selection-color);background-color:var(--rdg-background-color)}}@layer rdg.DragHandle{.c1creorc7-0-0-beta-47{z-index:1;position:sticky}}@layer rdg.EditCell{.cis5rrm7-0-0-beta-47{padding:0}}@layer rdg.SortableHeaderCell{.h44jtk67-0-0-beta-47{display:flex}}@layer rdg.SortableHeaderCellName{.hcgkhxz7-0-0-beta-47{flex-grow:1;overflow:clip;text-overflow:ellipsis}}@layer rdg.HeaderCell{.c6l2wv17-0-0-beta-47{cursor:pointer}}@layer rdg.HeaderCell{.c1kqdw7y7-0-0-beta-47{touch-action:none}}@layer rdg.HeaderCell{.r1y6ywlx7-0-0-beta-47{cursor:col-resize;position:absolute;inset-block-start:0;inset-inline-end:0;inset-block-end:0;inline-size:10px}}.c1bezg5o7-0-0-beta-47{opacity:.5}.c1vc96037-0-0-beta-47{background-color:var(--rdg-header-draggable-background-color)}@layer rdg.Row{.r1upfr807-0-0-beta-47{display:contents;background-color:var(--rdg-background-color)}.r1upfr807-0-0-beta-47:hover{background-color:var(--rdg-row-hover-background-color)}.r1upfr807-0-0-beta-47[aria-selected=true]{background-color:var(--rdg-row-selected-background-color)}.r1upfr807-0-0-beta-47[aria-selected=true]:hover{background-color:var(--rdg-row-selected-hover-background-color)}}@layer rdg.FocusSink{.r190mhd37-0-0-beta-47{outline:2px solid var(--rdg-selection-color);outline-offset:-2px}}@layer rdg.FocusSink{.r139qu9m7-0-0-beta-47:before{content:\"\";display:inline-block;block-size:100%;position:sticky;inset-inline-start:0;border-inline-start:2px solid var(--rdg-selection-color)}}@layer rdg.HeaderRow{.h10tskcx7-0-0-beta-47{display:contents;background-color:var(--rdg-header-background-color);font-weight:700}.h10tskcx7-0-0-beta-47>.cj343x07-0-0-beta-47{z-index:2;position:sticky}.h10tskcx7-0-0-beta-47>.csofj7r7-0-0-beta-47{z-index:3}}@layer rdg.Cell{.c6ra8a37-0-0-beta-47{background-color:#ccf}}@layer rdg.Cell{.cq910m07-0-0-beta-47{background-color:#ccf}.cq910m07-0-0-beta-47.c6ra8a37-0-0-beta-47{background-color:#99f}}@layer rdg.SortIcon{.a3ejtar7-0-0-beta-47{fill:currentColor}.a3ejtar7-0-0-beta-47>path{transition:d .1s}}@layer rdg.Defaults{.rnvodz57-0-0-beta-47 *,.rnvodz57-0-0-beta-47 *:before,.rnvodz57-0-0-beta-47 *:after{box-sizing:inherit}}@layer rdg.Root{.rnvodz57-0-0-beta-47{--rdg-color: #000;--rdg-border-color: #ddd;--rdg-summary-border-color: #aaa;--rdg-background-color: hsl(0deg 0% 100%);--rdg-header-background-color: hsl(0deg 0% 97.5%);--rdg-header-draggable-background-color: hsl(0deg 0% 90.5%);--rdg-row-hover-background-color: hsl(0deg 0% 96%);--rdg-row-selected-background-color: hsl(207deg 76% 92%);--rdg-row-selected-hover-background-color: hsl(207deg 76% 88%);--rdg-checkbox-focus-color: hsl(207deg 100% 69%);--rdg-selection-color: #66afe9;--rdg-font-size: 14px;--rdg-cell-frozen-box-shadow: 2px 0 5px -2px rgba(136, 136, 136, .3);display:grid;color-scheme:var(--rdg-color-scheme, light dark);accent-color:light-dark(hsl(207deg 100% 29%),hsl(207deg 100% 79%));contain:content;content-visibility:auto;block-size:350px;border:1px solid var(--rdg-border-color);box-sizing:border-box;overflow:auto;background-color:var(--rdg-background-color);color:var(--rdg-color);font-size:var(--rdg-font-size)}.rnvodz57-0-0-beta-47:dir(rtl){--rdg-cell-frozen-box-shadow: -2px 0 5px -2px rgba(136, 136, 136, .3)}.rnvodz57-0-0-beta-47:before{content:\"\";grid-column:1/-1;grid-row:1/-1}.rnvodz57-0-0-beta-47.rdg-dark{--rdg-color-scheme: dark;--rdg-color: #ddd;--rdg-border-color: #444;--rdg-summary-border-color: #555;--rdg-background-color: hsl(0deg 0% 13%);--rdg-header-background-color: hsl(0deg 0% 10.5%);--rdg-header-draggable-background-color: hsl(0deg 0% 17.5%);--rdg-row-hover-background-color: hsl(0deg 0% 9%);--rdg-row-selected-background-color: hsl(207deg 76% 42%);--rdg-row-selected-hover-background-color: hsl(207deg 76% 38%);--rdg-checkbox-focus-color: hsl(207deg 100% 89%)}.rnvodz57-0-0-beta-47.rdg-light{--rdg-color-scheme: light}@media (prefers-color-scheme: dark){.rnvodz57-0-0-beta-47:not(.rdg-light){--rdg-color: #ddd;--rdg-border-color: #444;--rdg-summary-border-color: #555;--rdg-background-color: hsl(0deg 0% 13%);--rdg-header-background-color: hsl(0deg 0% 10.5%);--rdg-header-draggable-background-color: hsl(0deg 0% 17.5%);--rdg-row-hover-background-color: hsl(0deg 0% 9%);--rdg-row-selected-background-color: hsl(207deg 76% 42%);--rdg-row-selected-hover-background-color: hsl(207deg 76% 38%);--rdg-checkbox-focus-color: hsl(207deg 100% 89%)}}.rnvodz57-0-0-beta-47>:nth-last-child(1 of.rdg-top-summary-row)>.cj343x07-0-0-beta-47{border-block-end:2px solid var(--rdg-summary-border-color)}.rnvodz57-0-0-beta-47>:nth-child(1 of.rdg-bottom-summary-row)>.cj343x07-0-0-beta-47{border-block-start:2px solid var(--rdg-summary-border-color)}}@layer rdg.Root{.vlqv91k7-0-0-beta-47{-webkit-user-select:none;user-select:none}.vlqv91k7-0-0-beta-47 .r1upfr807-0-0-beta-47{cursor:move}}@layer rdg.FocusSink{.f1lsfrzw7-0-0-beta-47{grid-column:1/-1;pointer-events:none;z-index:1}}@layer rdg.FocusSink{.f1cte0lg7-0-0-beta-47{z-index:3}}@layer rdg.SummaryCell{.s8wc6fl7-0-0-beta-47{inset-block-start:var(--rdg-summary-row-top);inset-block-end:var(--rdg-summary-row-bottom)}}@layer rdg.SummaryRow{.skuhp557-0-0-beta-47>.cj343x07-0-0-beta-47{position:sticky}}@layer rdg.SummaryRow{.tf8l5ub7-0-0-beta-47>.cj343x07-0-0-beta-47{z-index:2}.tf8l5ub7-0-0-beta-47>.csofj7r7-0-0-beta-47{z-index:3}}@layer rdg.GroupedRow{.g1yxluv37-0-0-beta-47:not([aria-selected=true]){background-color:var(--rdg-header-background-color)}.g1yxluv37-0-0-beta-47>.cj343x07-0-0-beta-47:not(:last-child,.csofj7r7-0-0-beta-47),.g1yxluv37-0-0-beta-47>:nth-last-child(n+2 of.csofj7r7-0-0-beta-47){border-inline-end:none}}@layer rdg.TextEditor{.t7vyx3i7-0-0-beta-47{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;inline-size:100%;block-size:100%;padding-block:0;padding-inline:6px;border:2px solid #ccc;vertical-align:top;color:var(--rdg-color);background-color:var(--rdg-background-color);font-family:inherit;font-size:var(--rdg-font-size)}.t7vyx3i7-0-0-beta-47:focus{border-color:var(--rdg-selection-color);outline:none}.t7vyx3i7-0-0-beta-47::placeholder{color:#999;opacity:1}}.dgrid2_Table .rdg{font-family:monospace,Courier New,Courier}.dgrid2_Table .rdg-checkbox-label .rdg-checkbox{block-size:16px;inline-size:16px;border-width:2px;box-shadow:inset 0 0 0 3px var(--rdg-background-color)}')),document.head.appendChild(r)}}catch(e){console.error(\"vite-plugin-css-injected-by-js\",e)}})();\nvar __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 { format, timeParse, timeFormat, HTMLWidget } from \"@hpcc-js/common\";\nconst PKG_NAME = \"@hpcc-js/dgrid2\", PKG_VERSION = \"3.1.1\", BUILD_VERSION = \"3.2.1\";\nvar n, l$1, u$2, i$1, o$1, r$2, f$2, e$1, c$1, s$1, a$1, h$1 = {}, v$1 = [], p$1 = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i, y$1 = Array.isArray;\nfunction d$1(n2, l2) {\n for (var u2 in l2) n2[u2] = l2[u2];\n return n2;\n}\nfunction w$2(n2) {\n n2 && n2.parentNode && n2.parentNode.removeChild(n2);\n}\nfunction _$1(l2, u2, t2) {\n var i2, o2, r2, f2 = {};\n for (r2 in u2) r2 == \"key\" ? i2 = u2[r2] : r2 == \"ref\" ? o2 = u2[r2] : f2[r2] = u2[r2];\n if (arguments.length > 2 && (f2.children = arguments.length > 3 ? n.call(arguments, 2) : t2), typeof l2 == \"function\" && l2.defaultProps != null) for (r2 in l2.defaultProps) f2[r2] === void 0 && (f2[r2] = l2.defaultProps[r2]);\n return g$2(l2, f2, i2, o2, null);\n}\nfunction g$2(n2, t2, i2, o2, r2) {\n var f2 = { type: n2, props: t2, key: i2, ref: o2, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, constructor: void 0, __v: r2 ?? ++u$2, __i: -1, __u: 0 };\n return r2 == null && l$1.vnode != null && l$1.vnode(f2), f2;\n}\nfunction m$1() {\n return { current: null };\n}\nfunction b(n2) {\n return n2.children;\n}\nfunction k$2(n2, l2) {\n this.props = n2, this.context = l2;\n}\nfunction x$2(n2, l2) {\n if (l2 == null) return n2.__ ? x$2(n2.__, n2.__i + 1) : null;\n for (var u2; l2 < n2.__k.length; l2++) if ((u2 = n2.__k[l2]) != null && u2.__e != null) return u2.__e;\n return typeof n2.type == \"function\" ? x$2(n2) : null;\n}\nfunction C$2(n2) {\n var l2, u2;\n if ((n2 = n2.__) != null && n2.__c != null) {\n for (n2.__e = n2.__c.base = null, l2 = 0; l2 < n2.__k.length; l2++) if ((u2 = n2.__k[l2]) != null && u2.__e != null) {\n n2.__e = n2.__c.base = u2.__e;\n break;\n }\n return C$2(n2);\n }\n}\nfunction S(n2) {\n (!n2.__d && (n2.__d = !0) && i$1.push(n2) && !M$1.__r++ || o$1 !== l$1.debounceRendering) && ((o$1 = l$1.debounceRendering) || r$2)(M$1);\n}\nfunction M$1() {\n var n2, u2, t2, o2, r2, e2, c2, s2;\n for (i$1.sort(f$2); n2 = i$1.shift(); ) n2.__d && (u2 = i$1.length, o2 = void 0, e2 = (r2 = (t2 = n2).__v).__e, c2 = [], s2 = [], t2.__P && ((o2 = d$1({}, r2)).__v = r2.__v + 1, l$1.vnode && l$1.vnode(o2), O$1(t2.__P, o2, r2, t2.__n, t2.__P.namespaceURI, 32 & r2.__u ? [e2] : null, c2, e2 ?? x$2(r2), !!(32 & r2.__u), s2), o2.__v = r2.__v, o2.__.__k[o2.__i] = o2, j$2(c2, o2, s2), o2.__e != e2 && C$2(o2)), i$1.length > u2 && i$1.sort(f$2));\n M$1.__r = 0;\n}\nfunction P$2(n2, l2, u2, t2, i2, o2, r2, f2, e2, c2, s2) {\n var a2, p2, y2, d2, w2, _2 = t2 && t2.__k || v$1, g2 = l2.length;\n for (u2.__d = e2, $$1(u2, l2, _2), e2 = u2.__d, a2 = 0; a2 < g2; a2++) (y2 = u2.__k[a2]) != null && (p2 = y2.__i === -1 ? h$1 : _2[y2.__i] || h$1, y2.__i = a2, O$1(n2, y2, p2, i2, o2, r2, f2, e2, c2, s2), d2 = y2.__e, y2.ref && p2.ref != y2.ref && (p2.ref && E$1(p2.ref, null, y2), s2.push(y2.ref, y2.__c || d2, y2)), w2 == null && d2 != null && (w2 = d2), 65536 & y2.__u || p2.__k === y2.__k ? e2 = I$1(y2, e2, n2) : typeof y2.type == \"function\" && y2.__d !== void 0 ? e2 = y2.__d : d2 && (e2 = d2.nextSibling), y2.__d = void 0, y2.__u &= -196609);\n u2.__d = e2, u2.__e = w2;\n}\nfunction $$1(n2, l2, u2) {\n var t2, i2, o2, r2, f2, e2 = l2.length, c2 = u2.length, s2 = c2, a2 = 0;\n for (n2.__k = [], t2 = 0; t2 < e2; t2++) (i2 = l2[t2]) != null && typeof i2 != \"boolean\" && typeof i2 != \"function\" ? (r2 = t2 + a2, (i2 = n2.__k[t2] = typeof i2 == \"string\" || typeof i2 == \"number\" || typeof i2 == \"bigint\" || i2.constructor == String ? g$2(null, i2, null, null, null) : y$1(i2) ? g$2(b, { children: i2 }, null, null, null) : i2.constructor === void 0 && i2.__b > 0 ? g$2(i2.type, i2.props, i2.key, i2.ref ? i2.ref : null, i2.__v) : i2).__ = n2, i2.__b = n2.__b + 1, o2 = null, (f2 = i2.__i = L$1(i2, u2, r2, s2)) !== -1 && (s2--, (o2 = u2[f2]) && (o2.__u |= 131072)), o2 == null || o2.__v === null ? (f2 == -1 && a2--, typeof i2.type != \"function\" && (i2.__u |= 65536)) : f2 !== r2 && (f2 == r2 - 1 ? a2-- : f2 == r2 + 1 ? a2++ : (f2 > r2 ? a2-- : a2++, i2.__u |= 65536))) : i2 = n2.__k[t2] = null;\n if (s2) for (t2 = 0; t2 < c2; t2++) (o2 = u2[t2]) != null && !(131072 & o2.__u) && (o2.__e == n2.__d && (n2.__d = x$2(o2)), N$1(o2, o2));\n}\nfunction I$1(n2, l2, u2) {\n var t2, i2;\n if (typeof n2.type == \"function\") {\n for (t2 = n2.__k, i2 = 0; t2 && i2 < t2.length; i2++) t2[i2] && (t2[i2].__ = n2, l2 = I$1(t2[i2], l2, u2));\n return l2;\n }\n n2.__e != l2 && (l2 && n2.type && !u2.contains(l2) && (l2 = x$2(n2)), u2.insertBefore(n2.__e, l2 || null), l2 = n2.__e);\n do\n l2 = l2 && l2.nextSibling;\n while (l2 != null && l2.nodeType === 8);\n return l2;\n}\nfunction H$1(n2, l2) {\n return l2 = l2 || [], n2 == null || typeof n2 == \"boolean\" || (y$1(n2) ? n2.some(function(n3) {\n H$1(n3, l2);\n }) : l2.push(n2)), l2;\n}\nfunction L$1(n2, l2, u2, t2) {\n var i2 = n2.key, o2 = n2.type, r2 = u2 - 1, f2 = u2 + 1, e2 = l2[u2];\n if (e2 === null || e2 && i2 == e2.key && o2 === e2.type && !(131072 & e2.__u)) return u2;\n if ((typeof o2 != \"function\" || o2 === b || i2) && t2 > (e2 != null && !(131072 & e2.__u) ? 1 : 0)) for (; r2 >= 0 || f2 < l2.length; ) {\n if (r2 >= 0) {\n if ((e2 = l2[r2]) && !(131072 & e2.__u) && i2 == e2.key && o2 === e2.type) return r2;\n r2--;\n }\n if (f2 < l2.length) {\n if ((e2 = l2[f2]) && !(131072 & e2.__u) && i2 == e2.key && o2 === e2.type) return f2;\n f2++;\n }\n }\n return -1;\n}\nfunction T$2(n2, l2, u2) {\n l2[0] === \"-\" ? n2.setProperty(l2, u2 ?? \"\") : n2[l2] = u2 == null ? \"\" : typeof u2 != \"number\" || p$1.test(l2) ? u2 : u2 + \"px\";\n}\nfunction A$2(n2, l2, u2, t2, i2) {\n var o2;\n n: if (l2 === \"style\") if (typeof u2 == \"string\") n2.style.cssText = u2;\n else {\n if (typeof t2 == \"string\" && (n2.style.cssText = t2 = \"\"), t2) for (l2 in t2) u2 && l2 in u2 || T$2(n2.style, l2, \"\");\n if (u2) for (l2 in u2) t2 && u2[l2] === t2[l2] || T$2(n2.style, l2, u2[l2]);\n }\n else if (l2[0] === \"o\" && l2[1] === \"n\") o2 = l2 !== (l2 = l2.replace(/(PointerCapture)$|Capture$/i, \"$1\")), l2 = l2.toLowerCase() in n2 || l2 === \"onFocusOut\" || l2 === \"onFocusIn\" ? l2.toLowerCase().slice(2) : l2.slice(2), n2.l || (n2.l = {}), n2.l[l2 + o2] = u2, u2 ? t2 ? u2.u = t2.u : (u2.u = e$1, n2.addEventListener(l2, o2 ? s$1 : c$1, o2)) : n2.removeEventListener(l2, o2 ? s$1 : c$1, o2);\n else {\n if (i2 == \"http://www.w3.org/2000/svg\") l2 = l2.replace(/xlink(H|:h)/, \"h\").replace(/sName$/, \"s\");\n else if (l2 != \"width\" && l2 != \"height\" && l2 != \"href\" && l2 != \"list\" && l2 != \"form\" && l2 != \"tabIndex\" && l2 != \"download\" && l2 != \"rowSpan\" && l2 != \"colSpan\" && l2 != \"role\" && l2 != \"popover\" && l2 in n2) try {\n n2[l2] = u2 ?? \"\";\n break n;\n } catch {\n }\n typeof u2 == \"function\" || (u2 == null || u2 === !1 && l2[4] !== \"-\" ? n2.removeAttribute(l2) : n2.setAttribute(l2, l2 == \"popover\" && u2 == 1 ? \"\" : u2));\n }\n}\nfunction F$2(n2) {\n return function(u2) {\n if (this.l) {\n var t2 = this.l[u2.type + n2];\n if (u2.t == null) u2.t = e$1++;\n else if (u2.t < t2.u) return;\n return l$1.event && (u2 = l$1.event(u2)), \"handleEvent\" in t2 ? t2.handleEvent(u2) : t2(u2);\n }\n };\n}\nfunction O$1(n2, u2, t2, i2, o2, r2, f2, e2, c2, s2) {\n var a2, h2, v2, p2, w2, _2, g2, m2, x2, C2, S2, M2, $2, I2, H2, L2, T2 = u2.type;\n if (u2.constructor !== void 0) return null;\n 128 & t2.__u && (c2 = !!(32 & t2.__u), r2 = [e2 = u2.__e = t2.__e]), (a2 = l$1.__b) && a2(u2);\n n: if (typeof T2 == \"function\") try {\n if (m2 = u2.props, x2 = \"prototype\" in T2 && T2.prototype.render, C2 = (a2 = T2.contextType) && i2[a2.__c], S2 = a2 ? C2 ? C2.props.value : a2.__ : i2, t2.__c ? g2 = (h2 = u2.__c = t2.__c).__ = h2.__E : (x2 ? u2.__c = h2 = new T2(m2, S2) : (u2.__c = h2 = new k$2(m2, S2), h2.constructor = T2, h2.render = V$1), C2 && C2.sub(h2), h2.props = m2, h2.state || (h2.state = {}), h2.context = S2, h2.__n = i2, v2 = h2.__d = !0, h2.__h = [], h2._sb = []), x2 && h2.__s == null && (h2.__s = h2.state), x2 && T2.getDerivedStateFromProps != null && (h2.__s == h2.state && (h2.__s = d$1({}, h2.__s)), d$1(h2.__s, T2.getDerivedStateFromProps(m2, h2.__s))), p2 = h2.props, w2 = h2.state, h2.__v = u2, v2) x2 && T2.getDerivedStateFromProps == null && h2.componentWillMount != null && h2.componentWillMount(), x2 && h2.componentDidMount != null && h2.__h.push(h2.componentDidMount);\n else {\n if (x2 && T2.getDerivedStateFromProps == null && m2 !== p2 && h2.componentWillReceiveProps != null && h2.componentWillReceiveProps(m2, S2), !h2.__e && (h2.shouldComponentUpdate != null && h2.shouldComponentUpdate(m2, h2.__s, S2) === !1 || u2.__v === t2.__v)) {\n for (u2.__v !== t2.__v && (h2.props = m2, h2.state = h2.__s, h2.__d = !1), u2.__e = t2.__e, u2.__k = t2.__k, u2.__k.some(function(n3) {\n n3 && (n3.__ = u2);\n }), M2 = 0; M2 < h2._sb.length; M2++) h2.__h.push(h2._sb[M2]);\n h2._sb = [], h2.__h.length && f2.push(h2);\n break n;\n }\n h2.componentWillUpdate != null && h2.componentWillUpdate(m2, h2.__s, S2), x2 && h2.componentDidUpdate != null && h2.__h.push(function() {\n h2.componentDidUpdate(p2, w2, _2);\n });\n }\n if (h2.context = S2, h2.props = m2, h2.__P = n2, h2.__e = !1, $2 = l$1.__r, I2 = 0, x2) {\n for (h2.state = h2.__s, h2.__d = !1, $2 && $2(u2), a2 = h2.render(h2.props, h2.state, h2.context), H2 = 0; H2 < h2._sb.length; H2++) h2.__h.push(h2._sb[H2]);\n h2._sb = [];\n } else do\n h2.__d = !1, $2 && $2(u2), a2 = h2.render(h2.props, h2.state, h2.context), h2.state = h2.__s;\n while (h2.__d && ++I2 < 25);\n h2.state = h2.__s, h2.getChildContext != null && (i2 = d$1(d$1({}, i2), h2.getChildContext())), x2 && !v2 && h2.getSnapshotBeforeUpdate != null && (_2 = h2.getSnapshotBeforeUpdate(p2, w2)), P$2(n2, y$1(L2 = a2 != null && a2.type === b && a2.key == null ? a2.props.children : a2) ? L2 : [L2], u2, t2, i2, o2, r2, f2, e2, c2, s2), h2.base = u2.__e, u2.__u &= -161, h2.__h.length && f2.push(h2), g2 && (h2.__E = h2.__ = null);\n } catch (n3) {\n if (u2.__v = null, c2 || r2 != null) {\n for (u2.__u |= c2 ? 160 : 128; e2 && e2.nodeType === 8 && e2.nextSibling; ) e2 = e2.nextSibling;\n r2[r2.indexOf(e2)] = null, u2.__e = e2;\n } else u2.__e = t2.__e, u2.__k = t2.__k;\n l$1.__e(n3, u2, t2);\n }\n else r2 == null && u2.__v === t2.__v ? (u2.__k = t2.__k, u2.__e = t2.__e) : u2.__e = z$2(t2.__e, u2, t2, i2, o2, r2, f2, c2, s2);\n (a2 = l$1.diffed) && a2(u2);\n}\nfunction j$2(n2, u2, t2) {\n u2.__d = void 0;\n for (var i2 = 0; i2 < t2.length; i2++) E$1(t2[i2], t2[++i2], t2[++i2]);\n l$1.__c && l$1.__c(u2, n2), n2.some(function(u3) {\n try {\n n2 = u3.__h, u3.__h = [], n2.some(function(n3) {\n n3.call(u3);\n });\n } catch (n3) {\n l$1.__e(n3, u3.__v);\n }\n });\n}\nfunction z$2(u2, t2, i2, o2, r2, f2, e2, c2, s2) {\n var a2, v2, p2, d2, _2, g2, m2, b2 = i2.props, k2 = t2.props, C2 = t2.type;\n if (C2 === \"svg\" ? r2 = \"http://www.w3.org/2000/svg\" : C2 === \"math\" ? r2 = \"http://www.w3.org/1998/Math/MathML\" : r2 || (r2 = \"http://www.w3.org/1999/xhtml\"), f2 != null) {\n for (a2 = 0; a2 < f2.length; a2++) if ((_2 = f2[a2]) && \"setAttribute\" in _2 == !!C2 && (C2 ? _2.localName === C2 : _2.nodeType === 3)) {\n u2 = _2, f2[a2] = null;\n break;\n }\n }\n if (u2 == null) {\n if (C2 === null) return document.createTextNode(k2);\n u2 = document.createElementNS(r2, C2, k2.is && k2), c2 && (l$1.__m && l$1.__m(t2, f2), c2 = !1), f2 = null;\n }\n if (C2 === null) b2 === k2 || c2 && u2.data === k2 || (u2.data = k2);\n else {\n if (f2 = f2 && n.call(u2.childNodes), b2 = i2.props || h$1, !c2 && f2 != null) for (b2 = {}, a2 = 0; a2 < u2.attributes.length; a2++) b2[(_2 = u2.attributes[a2]).name] = _2.value;\n for (a2 in b2) if (_2 = b2[a2], a2 != \"children\") {\n if (a2 == \"dangerouslySetInnerHTML\") p2 = _2;\n else if (!(a2 in k2)) {\n if (a2 == \"value\" && \"defaultValue\" in k2 || a2 == \"checked\" && \"defaultChecked\" in k2) continue;\n A$2(u2, a2, null, _2, r2);\n }\n }\n for (a2 in k2) _2 = k2[a2], a2 == \"children\" ? d2 = _2 : a2 == \"dangerouslySetInnerHTML\" ? v2 = _2 : a2 == \"value\" ? g2 = _2 : a2 == \"checked\" ? m2 = _2 : c2 && typeof _2 != \"function\" || b2[a2] === _2 || A$2(u2, a2, _2, b2[a2], r2);\n if (v2) c2 || p2 && (v2.__html === p2.__html || v2.__html === u2.innerHTML) || (u2.innerHTML = v2.__html), t2.__k = [];\n else if (p2 && (u2.innerHTML = \"\"), P$2(u2, y$1(d2) ? d2 : [d2], t2, i2, o2, C2 === \"foreignObject\" ? \"http://www.w3.org/1999/xhtml\" : r2, f2, e2, f2 ? f2[0] : i2.__k && x$2(i2, 0), c2, s2), f2 != null) for (a2 = f2.length; a2--; ) w$2(f2[a2]);\n c2 || (a2 = \"value\", C2 === \"progress\" && g2 == null ? u2.removeAttribute(\"value\") : g2 !== void 0 && (g2 !== u2[a2] || C2 === \"progress\" && !g2 || C2 === \"option\" && g2 !== b2[a2]) && A$2(u2, a2, g2, b2[a2], r2), a2 = \"checked\", m2 !== void 0 && m2 !== u2[a2] && A$2(u2, a2, m2, b2[a2], r2));\n }\n return u2;\n}\nfunction E$1(n2, u2, t2) {\n try {\n if (typeof n2 == \"function\") {\n var i2 = typeof n2.__u == \"function\";\n i2 && n2.__u(), i2 && u2 == null || (n2.__u = n2(u2));\n } else n2.current = u2;\n } catch (n3) {\n l$1.__e(n3, t2);\n }\n}\nfunction N$1(n2, u2, t2) {\n var i2, o2;\n if (l$1.unmount && l$1.unmount(n2), (i2 = n2.ref) && (i2.current && i2.current !== n2.__e || E$1(i2, null, u2)), (i2 = n2.__c) != null) {\n if (i2.componentWillUnmount) try {\n i2.componentWillUnmount();\n } catch (n3) {\n l$1.__e(n3, u2);\n }\n i2.base = i2.__P = null;\n }\n if (i2 = n2.__k) for (o2 = 0; o2 < i2.length; o2++) i2[o2] && N$1(i2[o2], u2, t2 || typeof n2.type != \"function\");\n t2 || w$2(n2.__e), n2.__c = n2.__ = n2.__e = n2.__d = void 0;\n}\nfunction V$1(n2, l2, u2) {\n return this.constructor(n2, u2);\n}\nfunction q$2(u2, t2, i2) {\n var o2, r2, f2, e2;\n l$1.__ && l$1.__(u2, t2), r2 = (o2 = typeof i2 == \"function\") ? null : i2 && i2.__k || t2.__k, f2 = [], e2 = [], O$1(t2, u2 = (!o2 && i2 || t2).__k = _$1(b, null, [u2]), r2 || h$1, h$1, t2.namespaceURI, !o2 && i2 ? [i2] : r2 ? null : t2.firstChild ? n.call(t2.childNodes) : null, f2, !o2 && i2 ? i2 : r2 ? r2.__e : t2.firstChild, o2, e2), j$2(f2, u2, e2);\n}\nfunction B$2(n2, l2) {\n q$2(n2, l2, B$2);\n}\nfunction D$2(l2, u2, t2) {\n var i2, o2, r2, f2, e2 = d$1({}, l2.props);\n for (r2 in l2.type && l2.type.defaultProps && (f2 = l2.type.defaultProps), u2) r2 == \"key\" ? i2 = u2[r2] : r2 == \"ref\" ? o2 = u2[r2] : e2[r2] = u2[r2] === void 0 && f2 !== void 0 ? f2[r2] : u2[r2];\n return arguments.length > 2 && (e2.children = arguments.length > 3 ? n.call(arguments, 2) : t2), g$2(l2.type, e2, i2 || l2.key, o2 || l2.ref, null);\n}\nfunction G$1(n2, l2) {\n var u2 = { __c: l2 = \"__cC\" + a$1++, __: n2, Consumer: function(n3, l3) {\n return n3.children(l3);\n }, Provider: function(n3) {\n var u3, t2;\n return this.getChildContext || (u3 = /* @__PURE__ */ new Set(), (t2 = {})[l2] = this, this.getChildContext = function() {\n return t2;\n }, this.componentWillUnmount = function() {\n u3 = null;\n }, this.shouldComponentUpdate = function(n4) {\n this.props.value !== n4.value && u3.forEach(function(n5) {\n n5.__e = !0, S(n5);\n });\n }, this.sub = function(n4) {\n u3.add(n4);\n var l3 = n4.componentWillUnmount;\n n4.componentWillUnmount = function() {\n u3 && u3.delete(n4), l3 && l3.call(n4);\n };\n }), n3.children;\n } };\n return u2.Provider.__ = u2.Consumer.contextType = u2;\n}\nn = v$1.slice, l$1 = { __e: function(n2, l2, u2, t2) {\n for (var i2, o2, r2; l2 = l2.__; ) if ((i2 = l2.__c) && !i2.__) try {\n if ((o2 = i2.constructor) && o2.getDerivedStateFromError != null && (i2.setState(o2.getDerivedStateFromError(n2)), r2 = i2.__d), i2.componentDidCatch != null && (i2.componentDidCatch(n2, t2 || {}), r2 = i2.__d), r2) return i2.__E = i2;\n } catch (l3) {\n n2 = l3;\n }\n throw n2;\n} }, u$2 = 0, k$2.prototype.setState = function(n2, l2) {\n var u2;\n u2 = this.__s != null && this.__s !== this.state ? this.__s : this.__s = d$1({}, this.state), typeof n2 == \"function\" && (n2 = n2(d$1({}, u2), this.props)), n2 && d$1(u2, n2), n2 != null && this.__v && (l2 && this._sb.push(l2), S(this));\n}, k$2.prototype.forceUpdate = function(n2) {\n this.__v && (this.__e = !0, n2 && this.__h.push(n2), S(this));\n}, k$2.prototype.render = b, i$1 = [], r$2 = typeof Promise == \"function\" ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, f$2 = function(n2, l2) {\n return n2.__v.__b - l2.__v.__b;\n}, M$1.__r = 0, e$1 = 0, c$1 = F$2(!1), s$1 = F$2(!0), a$1 = 0;\nvar f$1 = 0;\nfunction u$1(e2, t2, n2, o2, i2, u2) {\n t2 || (t2 = {});\n var a2, c2, l2 = t2;\n \"ref\" in t2 && (a2 = t2.ref, delete t2.ref);\n var p2 = { type: e2, props: l2, key: n2, ref: a2, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, constructor: void 0, __v: --f$1, __i: -1, __u: 0, __source: i2, __self: u2 };\n if (typeof e2 == \"function\" && (a2 = e2.defaultProps)) for (c2 in a2) l2[c2] === void 0 && (l2[c2] = a2[c2]);\n return l$1.vnode && l$1.vnode(p2), p2;\n}\nvar t, r$1, u, i, o = 0, f = [], c = l$1, e = c.__b, a = c.__r, v = c.diffed, l = c.__c, m = c.unmount, s = c.__;\nfunction d(n2, t2) {\n c.__h && c.__h(r$1, n2, o || t2), o = 0;\n var u2 = r$1.__H || (r$1.__H = { __: [], __h: [] });\n return n2 >= u2.__.length && u2.__.push({}), u2.__[n2];\n}\nfunction h(n2) {\n return o = 1, p(D$1, n2);\n}\nfunction p(n2, u2, i2) {\n var o2 = d(t++, 2);\n if (o2.t = n2, !o2.__c && (o2.__ = [i2 ? i2(u2) : D$1(void 0, u2), function(n3) {\n var t2 = o2.__N ? o2.__N[0] : o2.__[0], r2 = o2.t(t2, n3);\n t2 !== r2 && (o2.__N = [r2, o2.__[1]], o2.__c.setState({}));\n }], o2.__c = r$1, !r$1.u)) {\n var f2 = function(n3, t2, r2) {\n if (!o2.__c.__H) return !0;\n var u3 = o2.__c.__H.__.filter(function(n4) {\n return !!n4.__c;\n });\n if (u3.every(function(n4) {\n return !n4.__N;\n })) return !c2 || c2.call(this, n3, t2, r2);\n var i3 = o2.__c.props !== n3;\n return u3.forEach(function(n4) {\n if (n4.__N) {\n var t3 = n4.__[0];\n n4.__ = n4.__N, n4.__N = void 0, t3 !== n4.__[0] && (i3 = !0);\n }\n }), c2 && c2.call(this, n3, t2, r2) || i3;\n };\n r$1.u = !0;\n var c2 = r$1.shouldComponentUpdate, e2 = r$1.componentWillUpdate;\n r$1.componentWillUpdate = function(n3, t2, r2) {\n if (this.__e) {\n var u3 = c2;\n c2 = void 0, f2(n3, t2, r2), c2 = u3;\n }\n e2 && e2.call(this, n3, t2, r2);\n }, r$1.shouldComponentUpdate = f2;\n }\n return o2.__N || o2.__;\n}\nfunction y(n2, u2) {\n var i2 = d(t++, 3);\n !c.__s && C$1(i2.__H, u2) && (i2.__ = n2, i2.i = u2, r$1.__H.__h.push(i2));\n}\nfunction _(n2, u2) {\n var i2 = d(t++, 4);\n !c.__s && C$1(i2.__H, u2) && (i2.__ = n2, i2.i = u2, r$1.__h.push(i2));\n}\nfunction A$1(n2) {\n return o = 5, T$1(function() {\n return { current: n2 };\n }, []);\n}\nfunction F$1(n2, t2, r2) {\n o = 6, _(function() {\n return typeof n2 == \"function\" ? (n2(t2()), function() {\n return n2(null);\n }) : n2 ? (n2.current = t2(), function() {\n return n2.current = null;\n }) : void 0;\n }, r2 == null ? r2 : r2.concat(n2));\n}\nfunction T$1(n2, r2) {\n var u2 = d(t++, 7);\n return C$1(u2.__H, r2) && (u2.__ = n2(), u2.__H = r2, u2.__h = n2), u2.__;\n}\nfunction q$1(n2, t2) {\n return o = 8, T$1(function() {\n return n2;\n }, t2);\n}\nfunction x$1(n2) {\n var u2 = r$1.context[n2.__c], i2 = d(t++, 9);\n return i2.c = n2, u2 ? (i2.__ == null && (i2.__ = !0, u2.sub(r$1)), u2.props.value) : n2.__;\n}\nfunction P$1(n2, t2) {\n c.useDebugValue && c.useDebugValue(t2 ? t2(n2) : n2);\n}\nfunction g$1() {\n var n2 = d(t++, 11);\n if (!n2.__) {\n for (var u2 = r$1.__v; u2 !== null && !u2.__m && u2.__ !== null; ) u2 = u2.__;\n var i2 = u2.__m || (u2.__m = [0, 0]);\n n2.__ = \"P\" + i2[0] + \"-\" + i2[1]++;\n }\n return n2.__;\n}\nfunction j$1() {\n for (var n2; n2 = f.shift(); ) if (n2.__P && n2.__H) try {\n n2.__H.__h.forEach(z$1), n2.__H.__h.forEach(B$1), n2.__H.__h = [];\n } catch (t2) {\n n2.__H.__h = [], c.__e(t2, n2.__v);\n }\n}\nc.__b = function(n2) {\n r$1 = null, e && e(n2);\n}, c.__ = function(n2, t2) {\n n2 && t2.__k && t2.__k.__m && (n2.__m = t2.__k.__m), s && s(n2, t2);\n}, c.__r = function(n2) {\n a && a(n2), t = 0;\n var i2 = (r$1 = n2.__c).__H;\n i2 && (u === r$1 ? (i2.__h = [], r$1.__h = [], i2.__.forEach(function(n3) {\n n3.__N && (n3.__ = n3.__N), n3.i = n3.__N = void 0;\n })) : (i2.__h.forEach(z$1), i2.__h.forEach(B$1), i2.__h = [], t = 0)), u = r$1;\n}, c.diffed = function(n2) {\n v && v(n2);\n var t2 = n2.__c;\n t2 && t2.__H && (t2.__H.__h.length && (f.push(t2) !== 1 && i === c.requestAnimationFrame || ((i = c.requestAnimationFrame) || w$1)(j$1)), t2.__H.__.forEach(function(n3) {\n n3.i && (n3.__H = n3.i), n3.i = void 0;\n })), u = r$1 = null;\n}, c.__c = function(n2, t2) {\n t2.some(function(n3) {\n try {\n n3.__h.forEach(z$1), n3.__h = n3.__h.filter(function(n4) {\n return !n4.__ || B$1(n4);\n });\n } catch (r2) {\n t2.some(function(n4) {\n n4.__h && (n4.__h = []);\n }), t2 = [], c.__e(r2, n3.__v);\n }\n }), l && l(n2, t2);\n}, c.unmount = function(n2) {\n m && m(n2);\n var t2, r2 = n2.__c;\n r2 && r2.__H && (r2.__H.__.forEach(function(n3) {\n try {\n z$1(n3);\n } catch (n4) {\n t2 = n4;\n }\n }), r2.__H = void 0, t2 && c.__e(t2, r2.__v));\n};\nvar k$1 = typeof requestAnimationFrame == \"function\";\nfunction w$1(n2) {\n var t2, r2 = function() {\n clearTimeout(u2), k$1 && cancelAnimationFrame(t2), setTimeout(n2);\n }, u2 = setTimeout(r2, 100);\n k$1 && (t2 = requestAnimationFrame(r2));\n}\nfunction z$1(n2) {\n var t2 = r$1, u2 = n2.__c;\n typeof u2 == \"function\" && (n2.__c = void 0, u2()), r$1 = t2;\n}\nfunction B$1(n2) {\n var t2 = r$1;\n n2.__c = n2.__(), r$1 = t2;\n}\nfunction C$1(n2, t2) {\n return !n2 || n2.length !== t2.length || t2.some(function(t3, r2) {\n return t3 !== n2[r2];\n });\n}\nfunction D$1(n2, t2) {\n return typeof t2 == \"function\" ? t2(n2) : t2;\n}\nfunction g(n2, t2) {\n for (var e2 in n2) if (e2 !== \"__source\" && !(e2 in t2)) return !0;\n for (var r2 in t2) if (r2 !== \"__source\" && n2[r2] !== t2[r2]) return !0;\n return !1;\n}\nfunction E(n2, t2) {\n var e2 = t2(), r2 = h({ t: { __: e2, u: t2 } }), u2 = r2[0].t, o2 = r2[1];\n return _(function() {\n u2.__ = e2, u2.u = t2, C(u2) && o2({ t: u2 });\n }, [n2, e2, t2]), y(function() {\n return C(u2) && o2({ t: u2 }), n2(function() {\n C(u2) && o2({ t: u2 });\n });\n }, [n2]), e2;\n}\nfunction C(n2) {\n var t2, e2, r2 = n2.u, u2 = n2.__;\n try {\n var o2 = r2();\n return !((t2 = u2) === (e2 = o2) && (t2 !== 0 || 1 / t2 == 1 / e2) || t2 != t2 && e2 != e2);\n } catch {\n return !0;\n }\n}\nfunction x(n2) {\n n2();\n}\nfunction R(n2) {\n return n2;\n}\nfunction w() {\n return [!1, x];\n}\nvar k = _;\nfunction I(n2, t2) {\n this.props = n2, this.context = t2;\n}\nfunction N(n2, e2) {\n function r2(n3) {\n var t2 = this.props.ref, r3 = t2 == n3.ref;\n return !r3 && t2 && (t2.call ? t2(null) : t2.current = null), e2 ? !e2(this.props, n3) || !r3 : g(this.props, n3);\n }\n function u2(e3) {\n return this.shouldComponentUpdate = r2, _$1(n2, e3);\n }\n return u2.displayName = \"Memo(\" + (n2.displayName || n2.name) + \")\", u2.prototype.isReactComponent = !0, u2.__f = !0, u2;\n}\n(I.prototype = new k$2()).isPureReactComponent = !0, I.prototype.shouldComponentUpdate = function(n2, t2) {\n return g(this.props, n2) || g(this.state, t2);\n};\nvar M = l$1.__b;\nl$1.__b = function(n2) {\n n2.type && n2.type.__f && n2.ref && (n2.props.ref = n2.ref, n2.ref = null), M && M(n2);\n};\nvar T = typeof Symbol < \"u\" && Symbol.for && Symbol.for(\"react.forward_ref\") || 3911;\nfunction A(n2) {\n function t2(t3) {\n if (!(\"ref\" in t3)) return n2(t3, null);\n var e2 = t3.ref;\n delete t3.ref;\n var r2 = n2(t3, e2);\n return t3.ref = e2, r2;\n }\n return t2.$$typeof = T, t2.render = t2, t2.prototype.isReactComponent = t2.__f = !0, t2.displayName = \"ForwardRef(\" + (n2.displayName || n2.name) + \")\", t2;\n}\nvar D = function(n2, t2) {\n return n2 == null ? null : H$1(H$1(n2).map(t2));\n}, L = { map: D, forEach: D, count: function(n2) {\n return n2 ? H$1(n2).length : 0;\n}, only: function(n2) {\n var t2 = H$1(n2);\n if (t2.length !== 1) throw \"Children.only\";\n return t2[0];\n}, toArray: H$1 }, O = l$1.__e;\nl$1.__e = function(n2, t2, e2, r2) {\n if (n2.then) {\n for (var u2, o2 = t2; o2 = o2.__; ) if ((u2 = o2.__c) && u2.__c) return t2.__e == null && (t2.__e = e2.__e, t2.__k = e2.__k), u2.__c(n2, t2);\n }\n O(n2, t2, e2, r2);\n};\nvar F = l$1.unmount;\nfunction U(n2, t2, e2) {\n return n2 && (n2.__c && n2.__c.__H && (n2.__c.__H.__.forEach(function(n3) {\n typeof n3.__c == \"function\" && n3.__c();\n }), n2.__c.__H = null), (n2 = function(n3, t3) {\n for (var e3 in t3) n3[e3] = t3[e3];\n return n3;\n }({}, n2)).__c != null && (n2.__c.__P === e2 && (n2.__c.__P = t2), n2.__c = null), n2.__k = n2.__k && n2.__k.map(function(n3) {\n return U(n3, t2, e2);\n })), n2;\n}\nfunction V(n2, t2, e2) {\n return n2 && e2 && (n2.__v = null, n2.__k = n2.__k && n2.__k.map(function(n3) {\n return V(n3, t2, e2);\n }), n2.__c && n2.__c.__P === t2 && (n2.__e && e2.appendChild(n2.__e), n2.__c.__e = !0, n2.__c.__P = e2)), n2;\n}\nfunction W() {\n this.__u = 0, this.o = null, this.__b = null;\n}\nfunction P(n2) {\n var t2 = n2.__.__c;\n return t2 && t2.__a && t2.__a(n2);\n}\nfunction j(n2) {\n var e2, r2, u2;\n function o2(o3) {\n if (e2 || (e2 = n2()).then(function(n3) {\n r2 = n3.default || n3;\n }, function(n3) {\n u2 = n3;\n }), u2) throw u2;\n if (!r2) throw e2;\n return _$1(r2, o3);\n }\n return o2.displayName = \"Lazy\", o2.__f = !0, o2;\n}\nfunction z() {\n this.i = null, this.l = null;\n}\nl$1.unmount = function(n2) {\n var t2 = n2.__c;\n t2 && t2.__R && t2.__R(), t2 && 32 & n2.__u && (n2.type = null), F && F(n2);\n}, (W.prototype = new k$2()).__c = function(n2, t2) {\n var e2 = t2.__c, r2 = this;\n r2.o == null && (r2.o = []), r2.o.push(e2);\n var u2 = P(r2.__v), o2 = !1, i2 = function() {\n o2 || (o2 = !0, e2.__R = null, u2 ? u2(c2) : c2());\n };\n e2.__R = i2;\n var c2 = function() {\n if (!--r2.__u) {\n if (r2.state.__a) {\n var n3 = r2.state.__a;\n r2.__v.__k[0] = V(n3, n3.__c.__P, n3.__c.__O);\n }\n var t3;\n for (r2.setState({ __a: r2.__b = null }); t3 = r2.o.pop(); ) t3.forceUpdate();\n }\n };\n r2.__u++ || 32 & t2.__u || r2.setState({ __a: r2.__b = r2.__v.__k[0] }), n2.then(i2, i2);\n}, W.prototype.componentWillUnmount = function() {\n this.o = [];\n}, W.prototype.render = function(n2, e2) {\n if (this.__b) {\n if (this.__v.__k) {\n var r2 = document.createElement(\"div\"), o2 = this.__v.__k[0].__c;\n this.__v.__k[0] = U(this.__b, r2, o2.__O = o2.__P);\n }\n this.__b = null;\n }\n var i2 = e2.__a && _$1(b, null, n2.fallback);\n return i2 && (i2.__u &= -33), [_$1(b, null, e2.__a ? null : n2.children), i2];\n};\nvar B = function(n2, t2, e2) {\n if (++e2[1] === e2[0] && n2.l.delete(t2), n2.props.revealOrder && (n2.props.revealOrder[0] !== \"t\" || !n2.l.size)) for (e2 = n2.i; e2; ) {\n for (; e2.length > 3; ) e2.pop()();\n if (e2[1] < e2[0]) break;\n n2.i = e2 = e2[2];\n }\n};\nfunction H(n2) {\n return this.getChildContext = function() {\n return n2.context;\n }, n2.children;\n}\nfunction Z(n2) {\n var e2 = this, r2 = n2.h;\n e2.componentWillUnmount = function() {\n q$2(null, e2.v), e2.v = null, e2.h = null;\n }, e2.h && e2.h !== r2 && e2.componentWillUnmount(), e2.v || (e2.h = r2, e2.v = { nodeType: 1, parentNode: r2, childNodes: [], contains: function() {\n return !0;\n }, appendChild: function(n3) {\n this.childNodes.push(n3), e2.h.appendChild(n3);\n }, insertBefore: function(n3, t2) {\n this.childNodes.push(n3), e2.h.appendChild(n3);\n }, removeChild: function(n3) {\n this.childNodes.splice(this.childNodes.indexOf(n3) >>> 1, 1), e2.h.removeChild(n3);\n } }), q$2(_$1(H, { context: e2.context }, n2.__v), e2.v);\n}\nfunction Y(n2, e2) {\n var r2 = _$1(Z, { __v: n2, h: e2 });\n return r2.containerInfo = e2, r2;\n}\n(z.prototype = new k$2()).__a = function(n2) {\n var t2 = this, e2 = P(t2.__v), r2 = t2.l.get(n2);\n return r2[0]++, function(u2) {\n var o2 = function() {\n t2.props.revealOrder ? (r2.push(u2), B(t2, n2, r2)) : u2();\n };\n e2 ? e2(o2) : o2();\n };\n}, z.prototype.render = function(n2) {\n this.i = null, this.l = /* @__PURE__ */ new Map();\n var t2 = H$1(n2.children);\n n2.revealOrder && n2.revealOrder[0] === \"b\" && t2.reverse();\n for (var e2 = t2.length; e2--; ) this.l.set(t2[e2], this.i = [1, 0, this.i]);\n return n2.children;\n}, z.prototype.componentDidUpdate = z.prototype.componentDidMount = function() {\n var n2 = this;\n this.l.forEach(function(t2, e2) {\n B(n2, e2, t2);\n });\n};\nvar $ = typeof Symbol < \"u\" && Symbol.for && Symbol.for(\"react.element\") || 60103, q = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/, G = /^on(Ani|Tra|Tou|BeforeInp|Compo)/, J = /[A-Z0-9]/g, K = typeof document < \"u\", Q = function(n2) {\n return (typeof Symbol < \"u\" && typeof Symbol() == \"symbol\" ? /fil|che|rad/ : /fil|che|ra/).test(n2);\n};\nfunction X(n2, t2, e2) {\n return t2.__k == null && (t2.textContent = \"\"), q$2(n2, t2), typeof e2 == \"function\" && e2(), n2 ? n2.__c : null;\n}\nfunction nn(n2, t2, e2) {\n return B$2(n2, t2), typeof e2 == \"function\" && e2(), n2 ? n2.__c : null;\n}\nk$2.prototype.isReactComponent = {}, [\"componentWillMount\", \"componentWillReceiveProps\", \"componentWillUpdate\"].forEach(function(t2) {\n Object.defineProperty(k$2.prototype, t2, { configurable: !0, get: function() {\n return this[\"UNSAFE_\" + t2];\n }, set: function(n2) {\n Object.defineProperty(this, t2, { configurable: !0, writable: !0, value: n2 });\n } });\n});\nvar tn = l$1.event;\nfunction en() {\n}\nfunction rn() {\n return this.cancelBubble;\n}\nfunction un() {\n return this.defaultPrevented;\n}\nl$1.event = function(n2) {\n return tn && (n2 = tn(n2)), n2.persist = en, n2.isPropagationStopped = rn, n2.isDefaultPrevented = un, n2.nativeEvent = n2;\n};\nvar on, cn = { enumerable: !1, configurable: !0, get: function() {\n return this.class;\n} }, fn = l$1.vnode;\nl$1.vnode = function(n2) {\n typeof n2.type == \"string\" && function(n3) {\n var t2 = n3.props, e2 = n3.type, u2 = {}, o2 = e2.indexOf(\"-\") === -1;\n for (var i2 in t2) {\n var c2 = t2[i2];\n if (!(i2 === \"value\" && \"defaultValue\" in t2 && c2 == null || K && i2 === \"children\" && e2 === \"noscript\" || i2 === \"class\" || i2 === \"className\")) {\n var f2 = i2.toLowerCase();\n i2 === \"defaultValue\" && \"value\" in t2 && t2.value == null ? i2 = \"value\" : i2 === \"download\" && c2 === !0 ? c2 = \"\" : f2 === \"translate\" && c2 === \"no\" ? c2 = !1 : f2[0] === \"o\" && f2[1] === \"n\" ? f2 === \"ondoubleclick\" ? i2 = \"ondblclick\" : f2 !== \"onchange\" || e2 !== \"input\" && e2 !== \"textarea\" || Q(t2.type) ? f2 === \"onfocus\" ? i2 = \"onfocusin\" : f2 === \"onblur\" ? i2 = \"onfocusout\" : G.test(i2) && (i2 = f2) : f2 = i2 = \"oninput\" : o2 && q.test(i2) ? i2 = i2.replace(J, \"-$&\").toLowerCase() : c2 === null && (c2 = void 0), f2 === \"oninput\" && u2[i2 = f2] && (i2 = \"oninputCapture\"), u2[i2] = c2;\n }\n }\n e2 == \"select\" && u2.multiple && Array.isArray(u2.value) && (u2.value = H$1(t2.children).forEach(function(n4) {\n n4.props.selected = u2.value.indexOf(n4.props.value) != -1;\n })), e2 == \"select\" && u2.defaultValue != null && (u2.value = H$1(t2.children).forEach(function(n4) {\n n4.props.selected = u2.multiple ? u2.defaultValue.indexOf(n4.props.value) != -1 : u2.defaultValue == n4.props.value;\n })), t2.class && !t2.className ? (u2.class = t2.class, Object.defineProperty(u2, \"className\", cn)) : (t2.className && !t2.class || t2.class && t2.className) && (u2.class = u2.className = t2.className), n3.props = u2;\n }(n2), n2.$$typeof = $, fn && fn(n2);\n};\nvar ln = l$1.__r;\nl$1.__r = function(n2) {\n ln && ln(n2), on = n2.__c;\n};\nvar an = l$1.diffed;\nl$1.diffed = function(n2) {\n an && an(n2);\n var t2 = n2.props, e2 = n2.__e;\n e2 != null && n2.type === \"textarea\" && \"value\" in t2 && t2.value !== e2.value && (e2.value = t2.value == null ? \"\" : t2.value), on = null;\n};\nvar sn = { ReactCurrentDispatcher: { current: { readContext: function(n2) {\n return on.__n[n2.__c].props.value;\n}, useCallback: q$1, useContext: x$1, useDebugValue: P$1, useDeferredValue: R, useEffect: y, useId: g$1, useImperativeHandle: F$1, useInsertionEffect: k, useLayoutEffect: _, useMemo: T$1, useReducer: p, useRef: A$1, useState: h, useSyncExternalStore: E, useTransition: w } } };\nfunction vn(n2) {\n return _$1.bind(null, n2);\n}\nfunction dn(n2) {\n return !!n2 && n2.$$typeof === $;\n}\nfunction pn(n2) {\n return dn(n2) && n2.type === b;\n}\nfunction mn(n2) {\n return !!n2 && !!n2.displayName && (typeof n2.displayName == \"string\" || n2.displayName instanceof String) && n2.displayName.startsWith(\"Memo(\");\n}\nfunction yn(n2) {\n return dn(n2) ? D$2.apply(null, arguments) : n2;\n}\nfunction _n(n2) {\n return !!n2.__k && (q$2(null, n2), !0);\n}\nfunction bn(n2) {\n return n2 && (n2.base || n2.nodeType === 1 && n2) || null;\n}\nvar Sn = function(n2, t2) {\n return n2(t2);\n}, gn = function(n2, t2) {\n return n2(t2);\n}, En = b, Cn = dn, xn = { useState: h, useId: g$1, useReducer: p, useEffect: y, useLayoutEffect: _, useInsertionEffect: k, useTransition: w, useDeferredValue: R, useSyncExternalStore: E, startTransition: x, useRef: A$1, useImperativeHandle: F$1, useMemo: T$1, useCallback: q$1, useContext: x$1, useDebugValue: P$1, version: \"18.3.1\", Children: L, render: X, hydrate: nn, unmountComponentAtNode: _n, createPortal: Y, createElement: _$1, createContext: G$1, createFactory: vn, cloneElement: yn, createRef: m$1, Fragment: b, isValidElement: dn, isElement: Cn, isFragment: pn, isMemo: mn, findDOMNode: bn, Component: k$2, PureComponent: I, memo: N, forwardRef: A, flushSync: gn, unstable_batchedUpdates: Sn, StrictMode: En, Suspense: W, SuspenseList: z, lazy: j, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: sn };\nfunction r(e2) {\n var t2, f2, n2 = \"\";\n if (typeof e2 == \"string\" || typeof e2 == \"number\") n2 += e2;\n else if (typeof e2 == \"object\") if (Array.isArray(e2)) {\n var o2 = e2.length;\n for (t2 = 0; t2 < o2; t2++) e2[t2] && (f2 = r(e2[t2])) && (n2 && (n2 += \" \"), n2 += f2);\n } else for (f2 in e2) e2[f2] && (n2 && (n2 += \" \"), n2 += f2);\n return n2;\n}\nfunction clsx() {\n for (var e2, t2, f2 = 0, n2 = \"\", o2 = arguments.length; f2 < o2; f2++) (e2 = arguments[f2]) && (t2 = r(e2)) && (n2 && (n2 += \" \"), n2 += t2);\n return n2;\n}\nfunction getColSpan(column, lastFrozenColumnIndex, args) {\n const colSpan = typeof column.colSpan == \"function\" ? column.colSpan(args) : 1;\n if (Number.isInteger(colSpan) && colSpan > 1 && (!column.frozen || column.idx + colSpan - 1 <= lastFrozenColumnIndex))\n return colSpan;\n}\nfunction stopPropagation(event) {\n event.stopPropagation();\n}\nfunction scrollIntoView(element) {\n element == null || element.scrollIntoView({\n inline: \"nearest\",\n block: \"nearest\"\n });\n}\nfunction createCellEvent(event) {\n let defaultPrevented = !1;\n const cellEvent = {\n ...event,\n preventGridDefault() {\n defaultPrevented = !0;\n },\n isGridDefaultPrevented() {\n return defaultPrevented;\n }\n };\n return Object.setPrototypeOf(cellEvent, Object.getPrototypeOf(event)), cellEvent;\n}\nconst nonInputKeys = /* @__PURE__ */ new Set([\"Unidentified\", \"Alt\", \"AltGraph\", \"CapsLock\", \"Control\", \"Fn\", \"FnLock\", \"Meta\", \"NumLock\", \"ScrollLock\", \"Shift\", \"Tab\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\", \"ArrowUp\", \"End\", \"Home\", \"PageDown\", \"PageUp\", \"Insert\", \"ContextMenu\", \"Escape\", \"Pause\", \"Play\", \"PrintScreen\", \"F1\", \"F3\", \"F4\", \"F5\", \"F6\", \"F7\", \"F8\", \"F9\", \"F10\", \"F11\", \"F12\"]);\nfunction isCtrlKeyHeldDown(e2) {\n return (e2.ctrlKey || e2.metaKey) && e2.key !== \"Control\";\n}\nfunction isDefaultCellInput(event) {\n return isCtrlKeyHeldDown(event) && event.keyCode !== 86 ? !1 : !nonInputKeys.has(event.key);\n}\nfunction onEditorNavigation({\n key,\n target\n}) {\n var _a;\n return key === \"Tab\" && (target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement || target instanceof HTMLSelectElement) ? ((_a = target.closest(\".rdg-editor-container\")) == null ? void 0 : _a.querySelectorAll(\"input, textarea, select\").length) === 1 : !1;\n}\nconst measuringCellClassname = \"mlln6zg7-0-0-beta-47\";\nfunction renderMeasuringCells(viewportColumns) {\n return viewportColumns.map(({\n key,\n idx,\n minWidth,\n maxWidth\n }) => /* @__PURE__ */ u$1(\"div\", {\n className: measuringCellClassname,\n style: {\n gridColumnStart: idx + 1,\n minWidth,\n maxWidth\n },\n \"data-measuring-cell-key\": key\n }, key));\n}\nfunction isSelectedCellEditable({\n selectedPosition,\n columns,\n rows\n}) {\n const column = columns[selectedPosition.idx], row2 = rows[selectedPosition.rowIdx];\n return isCellEditableUtil(column, row2);\n}\nfunction isCellEditableUtil(column, row2) {\n return column.renderEditCell != null && (typeof column.editable == \"function\" ? column.editable(row2) : column.editable) !== !1;\n}\nfunction getSelectedCellColSpan({\n rows,\n topSummaryRows,\n bottomSummaryRows,\n rowIdx,\n mainHeaderRowIdx,\n lastFrozenColumnIndex,\n column\n}) {\n const topSummaryRowsCount = (topSummaryRows == null ? void 0 : topSummaryRows.length) ?? 0;\n if (rowIdx === mainHeaderRowIdx)\n return getColSpan(column, lastFrozenColumnIndex, {\n type: \"HEADER\"\n });\n if (topSummaryRows && rowIdx > mainHeaderRowIdx && rowIdx <= topSummaryRowsCount + mainHeaderRowIdx)\n return getColSpan(column, lastFrozenColumnIndex, {\n type: \"SUMMARY\",\n row: topSummaryRows[rowIdx + topSummaryRowsCount]\n });\n if (rowIdx >= 0 && rowIdx < rows.length) {\n const row2 = rows[rowIdx];\n return getColSpan(column, lastFrozenColumnIndex, {\n type: \"ROW\",\n row: row2\n });\n }\n if (bottomSummaryRows)\n return getColSpan(column, lastFrozenColumnIndex, {\n type: \"SUMMARY\",\n row: bottomSummaryRows[rowIdx - rows.length]\n });\n}\nfunction getNextSelectedCellPosition({\n moveUp,\n moveNext,\n cellNavigationMode,\n columns,\n colSpanColumns,\n rows,\n topSummaryRows,\n bottomSummaryRows,\n minRowIdx,\n mainHeaderRowIdx,\n maxRowIdx,\n currentPosition: {\n idx: currentIdx,\n rowIdx: currentRowIdx\n },\n nextPosition,\n lastFrozenColumnIndex,\n isCellWithinBounds\n}) {\n let {\n idx: nextIdx,\n rowIdx: nextRowIdx\n } = nextPosition;\n const columnsCount = columns.length, setColSpan = (moveNext2) => {\n for (const column of colSpanColumns) {\n const colIdx = column.idx;\n if (colIdx > nextIdx) break;\n const colSpan = getSelectedCellColSpan({\n rows,\n topSummaryRows,\n bottomSummaryRows,\n rowIdx: nextRowIdx,\n mainHeaderRowIdx,\n lastFrozenColumnIndex,\n column\n });\n if (colSpan && nextIdx > colIdx && nextIdx < colSpan + colIdx) {\n nextIdx = colIdx + (moveNext2 ? colSpan : 0);\n break;\n }\n }\n }, getParentRowIdx = (parent) => parent.level + mainHeaderRowIdx, setHeaderGroupColAndRowSpan = () => {\n if (moveNext) {\n let parent = columns[nextIdx].parent;\n for (; parent !== void 0; ) {\n const parentRowIdx = getParentRowIdx(parent);\n if (nextRowIdx === parentRowIdx) {\n nextIdx = parent.idx + parent.colSpan;\n break;\n }\n parent = parent.parent;\n }\n } else if (moveUp) {\n let parent = columns[nextIdx].parent, found = !1;\n for (; parent !== void 0; ) {\n const parentRowIdx = getParentRowIdx(parent);\n if (nextRowIdx >= parentRowIdx) {\n nextIdx = parent.idx, nextRowIdx = parentRowIdx, found = !0;\n break;\n }\n parent = parent.parent;\n }\n found || (nextIdx = currentIdx, nextRowIdx = currentRowIdx);\n }\n };\n if (isCellWithinBounds(nextPosition) && (setColSpan(moveNext), nextRowIdx < mainHeaderRowIdx && setHeaderGroupColAndRowSpan()), cellNavigationMode === \"CHANGE_ROW\" && (nextIdx === columnsCount ? nextRowIdx === maxRowIdx || (nextIdx = 0, nextRowIdx += 1) : nextIdx === -1 && (nextRowIdx === minRowIdx || (nextRowIdx -= 1, nextIdx = columnsCount - 1), setColSpan(!1))), nextRowIdx < mainHeaderRowIdx) {\n let parent = columns[nextIdx].parent;\n const nextParentRowIdx = nextRowIdx;\n for (nextRowIdx = mainHeaderRowIdx; parent !== void 0; ) {\n const parentRowIdx = getParentRowIdx(parent);\n parentRowIdx >= nextParentRowIdx && (nextRowIdx = parentRowIdx, nextIdx = parent.idx), parent = parent.parent;\n }\n }\n return {\n idx: nextIdx,\n rowIdx: nextRowIdx\n };\n}\nfunction canExitGrid({\n maxColIdx,\n minRowIdx,\n maxRowIdx,\n selectedPosition: {\n rowIdx,\n idx\n },\n shiftKey\n}) {\n return shiftKey ? idx === 0 && rowIdx === minRowIdx : idx === maxColIdx && rowIdx === maxRowIdx;\n}\nconst cell = \"cj343x07-0-0-beta-47\", cellClassname = `rdg-cell ${cell}`, cellFrozen = \"csofj7r7-0-0-beta-47\", cellFrozenClassname = `rdg-cell-frozen ${cellFrozen}`;\nfunction getRowStyle(rowIdx) {\n return {\n \"--rdg-grid-row-start\": rowIdx\n };\n}\nfunction getHeaderCellStyle(column, rowIdx, rowSpan) {\n const gridRowEnd = rowIdx + 1, paddingBlockStart = `calc(${rowSpan - 1} * var(--rdg-header-row-height))`;\n return column.parent === void 0 ? {\n insetBlockStart: 0,\n gridRowStart: 1,\n gridRowEnd,\n paddingBlockStart\n } : {\n insetBlockStart: `calc(${rowIdx - rowSpan} * var(--rdg-header-row-height))`,\n gridRowStart: gridRowEnd - rowSpan,\n gridRowEnd,\n paddingBlockStart\n };\n}\nfunction getCellStyle(column, colSpan = 1) {\n const index = column.idx + 1;\n return {\n gridColumnStart: index,\n gridColumnEnd: index + colSpan,\n insetInlineStart: column.frozen ? `var(--rdg-frozen-left-${column.idx})` : void 0\n };\n}\nfunction getCellClassname(column, ...extraClasses) {\n return clsx(cellClassname, ...extraClasses, column.frozen && cellFrozenClassname);\n}\nconst {\n min,\n max,\n floor,\n sign,\n abs\n} = Math;\nfunction assertIsValidKeyGetter(keyGetter) {\n if (typeof keyGetter != \"function\")\n throw new Error(\"Please specify the rowKeyGetter prop to use selection\");\n}\nfunction clampColumnWidth(width, {\n minWidth,\n maxWidth\n}) {\n return width = max(width, minWidth), typeof maxWidth == \"number\" && maxWidth >= minWidth ? min(width, maxWidth) : width;\n}\nfunction getHeaderCellRowSpan(column, rowIdx) {\n return column.parent === void 0 ? rowIdx : column.level - column.parent.level;\n}\nconst checkbox = \"c1bn88vv7-0-0-beta-47\", checkboxClassname = `rdg-checkbox-input ${checkbox}`;\nfunction renderCheckbox({\n onChange,\n indeterminate,\n ...props\n}) {\n function handleChange(e2) {\n onChange(e2.target.checked, e2.nativeEvent.shiftKey);\n }\n return /* @__PURE__ */ u$1(\"input\", {\n ref: (el) => {\n el && (el.indeterminate = indeterminate === !0);\n },\n type: \"checkbox\",\n className: checkboxClassname,\n onChange: handleChange,\n ...props\n });\n}\nfunction renderValue(props) {\n try {\n return props.row[props.column.key];\n } catch {\n return null;\n }\n}\nconst DataGridDefaultRenderersContext = /* @__PURE__ */ G$1(void 0), DataGridDefaultRenderersProvider = DataGridDefaultRenderersContext.Provider;\nfunction useDefaultRenderers() {\n return x$1(DataGridDefaultRenderersContext);\n}\nfunction SelectCellFormatter({\n value,\n tabIndex,\n indeterminate,\n disabled,\n onChange,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy\n}) {\n const renderCheckbox2 = useDefaultRenderers().renderCheckbox;\n return renderCheckbox2({\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n tabIndex,\n indeterminate,\n disabled,\n checked: value,\n onChange\n });\n}\nconst RowSelectionContext = /* @__PURE__ */ G$1(void 0), RowSelectionProvider = RowSelectionContext.Provider, RowSelectionChangeContext = /* @__PURE__ */ G$1(void 0), RowSelectionChangeProvider = RowSelectionChangeContext.Provider;\nfunction useRowSelection() {\n const rowSelectionContext = x$1(RowSelectionContext), rowSelectionChangeContext = x$1(RowSelectionChangeContext);\n if (rowSelectionContext === void 0 || rowSelectionChangeContext === void 0)\n throw new Error(\"useRowSelection must be used within DataGrid cells\");\n return {\n isRowSelectionDisabled: rowSelectionContext.isRowSelectionDisabled,\n isRowSelected: rowSelectionContext.isRowSelected,\n onRowSelectionChange: rowSelectionChangeContext\n };\n}\nconst HeaderRowSelectionContext = /* @__PURE__ */ G$1(void 0), HeaderRowSelectionProvider = HeaderRowSelectionContext.Provider, HeaderRowSelectionChangeContext = /* @__PURE__ */ G$1(void 0), HeaderRowSelectionChangeProvider = HeaderRowSelectionChangeContext.Provider;\nfunction useHeaderRowSelection() {\n const headerRowSelectionContext = x$1(HeaderRowSelectionContext), headerRowSelectionChangeContext = x$1(HeaderRowSelectionChangeContext);\n if (headerRowSelectionContext === void 0 || headerRowSelectionChangeContext === void 0)\n throw new Error(\"useHeaderRowSelection must be used within DataGrid cells\");\n return {\n isIndeterminate: headerRowSelectionContext.isIndeterminate,\n isRowSelected: headerRowSelectionContext.isRowSelected,\n onRowSelectionChange: headerRowSelectionChangeContext\n };\n}\nconst SELECT_COLUMN_KEY = \"rdg-select-column\";\nfunction HeaderRenderer(props) {\n const {\n isIndeterminate,\n isRowSelected,\n onRowSelectionChange\n } = useHeaderRowSelection();\n return /* @__PURE__ */ u$1(SelectCellFormatter, {\n \"aria-label\": \"Select All\",\n tabIndex: props.tabIndex,\n indeterminate: isIndeterminate,\n value: isRowSelected,\n onChange: (checked) => {\n onRowSelectionChange({\n checked: isIndeterminate ? !1 : checked\n });\n }\n });\n}\nfunction SelectFormatter(props) {\n const {\n isRowSelectionDisabled,\n isRowSelected,\n onRowSelectionChange\n } = useRowSelection();\n return /* @__PURE__ */ u$1(SelectCellFormatter, {\n \"aria-label\": \"Select\",\n tabIndex: props.tabIndex,\n disabled: isRowSelectionDisabled,\n value: isRowSelected,\n onChange: (checked, isShiftClick) => {\n onRowSelectionChange({\n row: props.row,\n checked,\n isShiftClick\n });\n }\n });\n}\nfunction SelectGroupFormatter(props) {\n const {\n isRowSelected,\n onRowSelectionChange\n } = useRowSelection();\n return /* @__PURE__ */ u$1(SelectCellFormatter, {\n \"aria-label\": \"Select Group\",\n tabIndex: props.tabIndex,\n value: isRowSelected,\n onChange: (checked) => {\n onRowSelectionChange({\n row: props.row,\n checked,\n isShiftClick: !1\n });\n }\n });\n}\nconst SelectColumn = {\n key: SELECT_COLUMN_KEY,\n name: \"\",\n width: 35,\n minWidth: 35,\n maxWidth: 35,\n resizable: !1,\n sortable: !1,\n frozen: !0,\n renderHeaderCell(props) {\n return /* @__PURE__ */ u$1(HeaderRenderer, {\n ...props\n });\n },\n renderCell(props) {\n return /* @__PURE__ */ u$1(SelectFormatter, {\n ...props\n });\n },\n renderGroupCell(props) {\n return /* @__PURE__ */ u$1(SelectGroupFormatter, {\n ...props\n });\n }\n}, DEFAULT_COLUMN_WIDTH = \"auto\", DEFAULT_COLUMN_MIN_WIDTH = 50;\nfunction useCalculatedColumns({\n rawColumns,\n defaultColumnOptions,\n getColumnWidth,\n viewportWidth,\n scrollLeft,\n enableVirtualization\n}) {\n const defaultWidth = (defaultColumnOptions == null ? void 0 : defaultColumnOptions.width) ?? DEFAULT_COLUMN_WIDTH, defaultMinWidth = (defaultColumnOptions == null ? void 0 : defaultColumnOptions.minWidth) ?? DEFAULT_COLUMN_MIN_WIDTH, defaultMaxWidth = (defaultColumnOptions == null ? void 0 : defaultColumnOptions.maxWidth) ?? void 0, defaultCellRenderer = (defaultColumnOptions == null ? void 0 : defaultColumnOptions.renderCell) ?? renderValue, defaultSortable = (defaultColumnOptions == null ? void 0 : defaultColumnOptions.sortable) ?? !1, defaultResizable = (defaultColumnOptions == null ? void 0 : defaultColumnOptions.resizable) ?? !1, defaultDraggable = (defaultColumnOptions == null ? void 0 : defaultColumnOptions.draggable) ?? !1, {\n columns,\n colSpanColumns,\n lastFrozenColumnIndex,\n headerRowsCount\n } = T$1(() => {\n let lastFrozenColumnIndex2 = -1, headerRowsCount2 = 1;\n const columns2 = [];\n collectColumns(rawColumns, 1);\n function collectColumns(rawColumns2, level, parent) {\n for (const rawColumn of rawColumns2) {\n if (\"children\" in rawColumn) {\n const calculatedColumnParent = {\n name: rawColumn.name,\n parent,\n idx: -1,\n colSpan: 0,\n level: 0,\n headerCellClass: rawColumn.headerCellClass\n };\n collectColumns(rawColumn.children, level + 1, calculatedColumnParent);\n continue;\n }\n const frozen = rawColumn.frozen ?? !1, column = {\n ...rawColumn,\n parent,\n idx: 0,\n level: 0,\n frozen,\n width: rawColumn.width ?? defaultWidth,\n minWidth: rawColumn.minWidth ?? defaultMinWidth,\n maxWidth: rawColumn.maxWidth ?? defaultMaxWidth,\n sortable: rawColumn.sortable ?? defaultSortable,\n resizable: rawColumn.resizable ?? defaultResizable,\n draggable: rawColumn.draggable ?? defaultDraggable,\n renderCell: rawColumn.renderCell ?? defaultCellRenderer\n };\n columns2.push(column), frozen && lastFrozenColumnIndex2++, level > headerRowsCount2 && (headerRowsCount2 = level);\n }\n }\n columns2.sort(({\n key: aKey,\n frozen: frozenA\n }, {\n key: bKey,\n frozen: frozenB\n }) => aKey === SELECT_COLUMN_KEY ? -1 : bKey === SELECT_COLUMN_KEY ? 1 : frozenA ? frozenB ? 0 : -1 : frozenB ? 1 : 0);\n const colSpanColumns2 = [];\n return columns2.forEach((column, idx) => {\n column.idx = idx, updateColumnParent(column, idx, 0), column.colSpan != null && colSpanColumns2.push(column);\n }), {\n columns: columns2,\n colSpanColumns: colSpanColumns2,\n lastFrozenColumnIndex: lastFrozenColumnIndex2,\n headerRowsCount: headerRowsCount2\n };\n }, [rawColumns, defaultWidth, defaultMinWidth, defaultMaxWidth, defaultCellRenderer, defaultResizable, defaultSortable, defaultDraggable]), {\n templateColumns,\n layoutCssVars,\n totalFrozenColumnWidth,\n columnMetrics\n } = T$1(() => {\n const columnMetrics2 = /* @__PURE__ */ new Map();\n let left = 0, totalFrozenColumnWidth2 = 0;\n const templateColumns2 = [];\n for (const column of columns) {\n let width = getColumnWidth(column);\n typeof width == \"number\" ? width = clampColumnWidth(width, column) : width = column.minWidth, templateColumns2.push(`${width}px`), columnMetrics2.set(column, {\n width,\n left\n }), left += width;\n }\n if (lastFrozenColumnIndex !== -1) {\n const columnMetric = columnMetrics2.get(columns[lastFrozenColumnIndex]);\n totalFrozenColumnWidth2 = columnMetric.left + columnMetric.width;\n }\n const layoutCssVars2 = {};\n for (let i2 = 0; i2 <= lastFrozenColumnIndex; i2++) {\n const column = columns[i2];\n layoutCssVars2[`--rdg-frozen-left-${column.idx}`] = `${columnMetrics2.get(column).left}px`;\n }\n return {\n templateColumns: templateColumns2,\n layoutCssVars: layoutCssVars2,\n totalFrozenColumnWidth: totalFrozenColumnWidth2,\n columnMetrics: columnMetrics2\n };\n }, [getColumnWidth, columns, lastFrozenColumnIndex]), [colOverscanStartIdx, colOverscanEndIdx] = T$1(() => {\n if (!enableVirtualization)\n return [0, columns.length - 1];\n const viewportLeft = scrollLeft + totalFrozenColumnWidth, viewportRight = scrollLeft + viewportWidth, lastColIdx = columns.length - 1, firstUnfrozenColumnIdx = min(lastFrozenColumnIndex + 1, lastColIdx);\n if (viewportLeft >= viewportRight)\n return [firstUnfrozenColumnIdx, firstUnfrozenColumnIdx];\n let colVisibleStartIdx = firstUnfrozenColumnIdx;\n for (; colVisibleStartIdx < lastColIdx; ) {\n const {\n left,\n width\n } = columnMetrics.get(columns[colVisibleStartIdx]);\n if (left + width > viewportLeft)\n break;\n colVisibleStartIdx++;\n }\n let colVisibleEndIdx = colVisibleStartIdx;\n for (; colVisibleEndIdx < lastColIdx; ) {\n const {\n left,\n width\n } = columnMetrics.get(columns[colVisibleEndIdx]);\n if (left + width >= viewportRight)\n break;\n colVisibleEndIdx++;\n }\n const colOverscanStartIdx2 = max(firstUnfrozenColumnIdx, colVisibleStartIdx - 1), colOverscanEndIdx2 = min(lastColIdx, colVisibleEndIdx + 1);\n return [colOverscanStartIdx2, colOverscanEndIdx2];\n }, [columnMetrics, columns, lastFrozenColumnIndex, scrollLeft, totalFrozenColumnWidth, viewportWidth, enableVirtualization]);\n return {\n columns,\n colSpanColumns,\n colOverscanStartIdx,\n colOverscanEndIdx,\n templateColumns,\n layoutCssVars,\n headerRowsCount,\n lastFrozenColumnIndex,\n totalFrozenColumnWidth\n };\n}\nfunction updateColumnParent(column, index, level) {\n if (level < column.level && (column.level = level), column.parent !== void 0) {\n const {\n parent\n } = column;\n parent.idx === -1 && (parent.idx = index), parent.colSpan += 1, updateColumnParent(parent, index, level - 1);\n }\n}\nconst useLayoutEffect = typeof window > \"u\" ? y : _;\nfunction useColumnWidths(columns, viewportColumns, templateColumns, gridRef, gridWidth, resizedColumnWidths, measuredColumnWidths, setResizedColumnWidths, setMeasuredColumnWidths, onColumnResize) {\n const prevGridWidthRef = A$1(gridWidth), columnsCanFlex = columns.length === viewportColumns.length, ignorePreviouslyMeasuredColumns = columnsCanFlex && gridWidth !== prevGridWidthRef.current, newTemplateColumns = [...templateColumns], columnsToMeasure = [];\n for (const {\n key,\n idx,\n width\n } of viewportColumns)\n typeof width == \"string\" && (ignorePreviouslyMeasuredColumns || !measuredColumnWidths.has(key)) && !resizedColumnWidths.has(key) && (newTemplateColumns[idx] = width, columnsToMeasure.push(key));\n const gridTemplateColumns = newTemplateColumns.join(\" \");\n useLayoutEffect(() => {\n prevGridWidthRef.current = gridWidth, updateMeasuredWidths(columnsToMeasure);\n });\n function updateMeasuredWidths(columnsToMeasure2) {\n columnsToMeasure2.length !== 0 && setMeasuredColumnWidths((measuredColumnWidths2) => {\n const newMeasuredColumnWidths = new Map(measuredColumnWidths2);\n let hasChanges = !1;\n for (const key of columnsToMeasure2) {\n const measuredWidth = measureColumnWidth(gridRef, key);\n hasChanges || (hasChanges = measuredWidth !== measuredColumnWidths2.get(key)), measuredWidth === void 0 ? newMeasuredColumnWidths.delete(key) : newMeasuredColumnWidths.set(key, measuredWidth);\n }\n return hasChanges ? newMeasuredColumnWidths : measuredColumnWidths2;\n });\n }\n function handleColumnResize(column, nextWidth) {\n const {\n key: resizingKey\n } = column, newTemplateColumns2 = [...templateColumns], columnsToMeasure2 = [];\n for (const {\n key,\n idx,\n width\n } of viewportColumns)\n if (resizingKey === key) {\n const width2 = typeof nextWidth == \"number\" ? `${nextWidth}px` : nextWidth;\n newTemplateColumns2[idx] = width2;\n } else columnsCanFlex && typeof width == \"string\" && !resizedColumnWidths.has(key) && (newTemplateColumns2[idx] = width, columnsToMeasure2.push(key));\n gridRef.current.style.gridTemplateColumns = newTemplateColumns2.join(\" \");\n const measuredWidth = typeof nextWidth == \"number\" ? nextWidth : measureColumnWidth(gridRef, resizingKey);\n gn(() => {\n setResizedColumnWidths((resizedColumnWidths2) => {\n const newResizedColumnWidths = new Map(resizedColumnWidths2);\n return newResizedColumnWidths.set(resizingKey, measuredWidth), newResizedColumnWidths;\n }), updateMeasuredWidths(columnsToMeasure2);\n }), onColumnResize == null || onColumnResize(column.idx, measuredWidth);\n }\n return {\n gridTemplateColumns,\n handleColumnResize\n };\n}\nfunction measureColumnWidth(gridRef, key) {\n var _a;\n const selector = `[data-measuring-cell-key=\"${CSS.escape(key)}\"]`, measuringCell = (_a = gridRef.current) == null ? void 0 : _a.querySelector(selector);\n return measuringCell == null ? void 0 : measuringCell.getBoundingClientRect().width;\n}\nfunction useGridDimensions() {\n const gridRef = A$1(null), [inlineSize, setInlineSize] = h(1), [blockSize, setBlockSize] = h(1), [horizontalScrollbarHeight, setHorizontalScrollbarHeight] = h(0);\n return useLayoutEffect(() => {\n const {\n ResizeObserver\n } = window;\n if (ResizeObserver == null) return;\n const {\n clientWidth,\n clientHeight,\n offsetWidth,\n offsetHeight\n } = gridRef.current, {\n width,\n height\n } = gridRef.current.getBoundingClientRect(), initialHorizontalScrollbarHeight = offsetHeight - clientHeight, initialWidth = width - offsetWidth + clientWidth, initialHeight = height - initialHorizontalScrollbarHeight;\n setInlineSize(initialWidth), setBlockSize(initialHeight), setHorizontalScrollbarHeight(initialHorizontalScrollbarHeight);\n const resizeObserver = new ResizeObserver((entries) => {\n const size = entries[0].contentBoxSize[0], {\n clientHeight: clientHeight2,\n offsetHeight: offsetHeight2\n } = gridRef.current;\n gn(() => {\n setInlineSize(size.inlineSize), setBlockSize(size.blockSize), setHorizontalScrollbarHeight(offsetHeight2 - clientHeight2);\n });\n });\n return resizeObserver.observe(gridRef.current), () => {\n resizeObserver.disconnect();\n };\n }, []), [gridRef, inlineSize, blockSize, horizontalScrollbarHeight];\n}\nfunction useLatestFunc(fn2) {\n const ref = A$1(fn2);\n y(() => {\n ref.current = fn2;\n });\n const callbackFn = q$1((...args) => {\n ref.current(...args);\n }, []);\n return fn2 && callbackFn;\n}\nfunction useRovingTabIndex(isSelected) {\n const [isChildFocused, setIsChildFocused] = h(!1);\n isChildFocused && !isSelected && setIsChildFocused(!1);\n function onFocus(event) {\n event.target !== event.currentTarget && setIsChildFocused(!0);\n }\n return {\n tabIndex: isSelected && !isChildFocused ? 0 : -1,\n childTabIndex: isSelected ? 0 : -1,\n onFocus: isSelected ? onFocus : void 0\n };\n}\nfunction useViewportColumns({\n columns,\n colSpanColumns,\n rows,\n topSummaryRows,\n bottomSummaryRows,\n colOverscanStartIdx,\n colOverscanEndIdx,\n lastFrozenColumnIndex,\n rowOverscanStartIdx,\n rowOverscanEndIdx\n}) {\n const startIdx = T$1(() => {\n if (colOverscanStartIdx === 0) return 0;\n let startIdx2 = colOverscanStartIdx;\n const updateStartIdx = (colIdx, colSpan) => colSpan !== void 0 && colIdx + colSpan > colOverscanStartIdx ? (startIdx2 = colIdx, !0) : !1;\n for (const column of colSpanColumns) {\n const colIdx = column.idx;\n if (colIdx >= startIdx2 || updateStartIdx(colIdx, getColSpan(column, lastFrozenColumnIndex, {\n type: \"HEADER\"\n })))\n break;\n for (let rowIdx = rowOverscanStartIdx; rowIdx <= rowOverscanEndIdx; rowIdx++) {\n const row2 = rows[rowIdx];\n if (updateStartIdx(colIdx, getColSpan(column, lastFrozenColumnIndex, {\n type: \"ROW\",\n row: row2\n })))\n break;\n }\n if (topSummaryRows != null) {\n for (const row2 of topSummaryRows)\n if (updateStartIdx(colIdx, getColSpan(column, lastFrozenColumnIndex, {\n type: \"SUMMARY\",\n row: row2\n })))\n break;\n }\n if (bottomSummaryRows != null) {\n for (const row2 of bottomSummaryRows)\n if (updateStartIdx(colIdx, getColSpan(column, lastFrozenColumnIndex, {\n type: \"SUMMARY\",\n row: row2\n })))\n break;\n }\n }\n return startIdx2;\n }, [rowOverscanStartIdx, rowOverscanEndIdx, rows, topSummaryRows, bottomSummaryRows, colOverscanStartIdx, lastFrozenColumnIndex, colSpanColumns]);\n return T$1(() => {\n const viewportColumns = [];\n for (let colIdx = 0; colIdx <= colOverscanEndIdx; colIdx++) {\n const column = columns[colIdx];\n colIdx < startIdx && !column.frozen || viewportColumns.push(column);\n }\n return viewportColumns;\n }, [startIdx, colOverscanEndIdx, columns]);\n}\nfunction useViewportRows({\n rows,\n rowHeight,\n clientHeight,\n scrollTop,\n enableVirtualization\n}) {\n const {\n totalRowHeight,\n gridTemplateRows,\n getRowTop,\n getRowHeight,\n findRowIdx\n } = T$1(() => {\n if (typeof rowHeight == \"number\")\n return {\n totalRowHeight: rowHeight * rows.length,\n gridTemplateRows: ` repeat(${rows.length}, ${rowHeight}px)`,\n getRowTop: (rowIdx) => rowIdx * rowHeight,\n getRowHeight: () => rowHeight,\n findRowIdx: (offset) => floor(offset / rowHeight)\n };\n let totalRowHeight2 = 0, gridTemplateRows2 = \" \";\n const rowPositions = rows.map((row2) => {\n const currentRowHeight = rowHeight(row2), position = {\n top: totalRowHeight2,\n height: currentRowHeight\n };\n return gridTemplateRows2 += `${currentRowHeight}px `, totalRowHeight2 += currentRowHeight, position;\n }), validateRowIdx = (rowIdx) => max(0, min(rows.length - 1, rowIdx));\n return {\n totalRowHeight: totalRowHeight2,\n gridTemplateRows: gridTemplateRows2,\n getRowTop: (rowIdx) => rowPositions[validateRowIdx(rowIdx)].top,\n getRowHeight: (rowIdx) => rowPositions[validateRowIdx(rowIdx)].height,\n findRowIdx(offset) {\n let start = 0, end = rowPositions.length - 1;\n for (; start <= end; ) {\n const middle = start + floor((end - start) / 2), currentOffset = rowPositions[middle].top;\n if (currentOffset === offset) return middle;\n if (currentOffset < offset ? start = middle + 1 : currentOffset > offset && (end = middle - 1), start > end) return end;\n }\n return 0;\n }\n };\n }, [rowHeight, rows]);\n let rowOverscanStartIdx = 0, rowOverscanEndIdx = rows.length - 1;\n if (enableVirtualization) {\n const rowVisibleStartIdx = findRowIdx(scrollTop), rowVisibleEndIdx = findRowIdx(scrollTop + clientHeight);\n rowOverscanStartIdx = max(0, rowVisibleStartIdx - 4), rowOverscanEndIdx = min(rows.length - 1, rowVisibleEndIdx + 4);\n }\n return {\n rowOverscanStartIdx,\n rowOverscanEndIdx,\n totalRowHeight,\n gridTemplateRows,\n getRowTop,\n getRowHeight,\n findRowIdx\n };\n}\nconst cellDragHandle = \"c1w9bbhr7-0-0-beta-47\", cellDragHandleFrozenClassname = \"c1creorc7-0-0-beta-47\", cellDragHandleClassname = `rdg-cell-drag-handle ${cellDragHandle}`;\nfunction DragHandle({\n gridRowStart,\n rows,\n column,\n columnWidth,\n maxColIdx,\n isLastRow,\n selectedPosition,\n latestDraggedOverRowIdx,\n isCellEditable,\n onRowsChange,\n onFill,\n onClick,\n setDragging,\n setDraggedOverRowIdx\n}) {\n const {\n idx,\n rowIdx\n } = selectedPosition;\n function handleMouseDown(event) {\n if (event.preventDefault(), event.buttons !== 1) return;\n setDragging(!0), window.addEventListener(\"mouseover\", onMouseOver), window.addEventListener(\"mouseup\", onMouseUp);\n function onMouseOver(event2) {\n event2.buttons !== 1 && onMouseUp();\n }\n function onMouseUp() {\n window.removeEventListener(\"mouseover\", onMouseOver), window.removeEventListener(\"mouseup\", onMouseUp), setDragging(!1), handleDragEnd();\n }\n }\n function handleDragEnd() {\n const overRowIdx = latestDraggedOverRowIdx.current;\n if (overRowIdx === void 0) return;\n const startRowIndex = rowIdx < overRowIdx ? rowIdx + 1 : overRowIdx, endRowIndex = rowIdx < overRowIdx ? overRowIdx + 1 : rowIdx;\n updateRows(startRowIndex, endRowIndex), setDraggedOverRowIdx(void 0);\n }\n function handleDoubleClick(event) {\n event.stopPropagation(), updateRows(rowIdx + 1, rows.length);\n }\n function updateRows(startRowIdx, endRowIdx) {\n const sourceRow = rows[rowIdx], updatedRows = [...rows], indexes = [];\n for (let i2 = startRowIdx; i2 < endRowIdx; i2++)\n if (isCellEditable({\n rowIdx: i2,\n idx\n })) {\n const updatedRow = onFill({\n columnKey: column.key,\n sourceRow,\n targetRow: rows[i2]\n });\n updatedRow !== rows[i2] && (updatedRows[i2] = updatedRow, indexes.push(i2));\n }\n indexes.length > 0 && (onRowsChange == null || onRowsChange(updatedRows, {\n indexes,\n column\n }));\n }\n function getStyle() {\n var _a;\n const colSpan = ((_a = column.colSpan) == null ? void 0 : _a.call(column, {\n type: \"ROW\",\n row: rows[rowIdx]\n })) ?? 1, {\n insetInlineStart,\n ...style\n } = getCellStyle(column, colSpan), marginEnd = \"calc(var(--rdg-drag-handle-size) * -0.5 + 1px)\", isLastColumn = column.idx + colSpan - 1 === maxColIdx;\n return {\n ...style,\n gridRowStart,\n marginInlineEnd: isLastColumn ? void 0 : marginEnd,\n marginBlockEnd: isLastRow ? void 0 : marginEnd,\n insetInlineStart: insetInlineStart ? `calc(${insetInlineStart} + ${columnWidth}px + var(--rdg-drag-handle-size) * -0.5 - 1px)` : void 0\n };\n }\n return /* @__PURE__ */ u$1(\"div\", {\n style: getStyle(),\n className: clsx(cellDragHandleClassname, column.frozen && cellDragHandleFrozenClassname),\n onClick,\n onMouseDown: handleMouseDown,\n onDoubleClick: handleDoubleClick\n });\n}\nconst cellEditing = \"cis5rrm7-0-0-beta-47\";\nfunction EditCell({\n column,\n colSpan,\n row: row2,\n rowIdx,\n onRowChange,\n closeEditor,\n onKeyDown,\n navigate\n}) {\n var _a, _b, _c;\n const frameRequestRef = A$1(void 0), commitOnOutsideClick = ((_a = column.editorOptions) == null ? void 0 : _a.commitOnOutsideClick) !== !1, commitOnOutsideMouseDown = useLatestFunc(() => {\n onClose(!0, !1);\n });\n y(() => {\n if (!commitOnOutsideClick) return;\n function onWindowCaptureMouseDown() {\n frameRequestRef.current = requestAnimationFrame(commitOnOutsideMouseDown);\n }\n return addEventListener(\"mousedown\", onWindowCaptureMouseDown, {\n capture: !0\n }), () => {\n removeEventListener(\"mousedown\", onWindowCaptureMouseDown, {\n capture: !0\n }), cancelFrameRequest();\n };\n }, [commitOnOutsideClick, commitOnOutsideMouseDown]);\n function cancelFrameRequest() {\n cancelAnimationFrame(frameRequestRef.current);\n }\n function handleKeyDown(event) {\n if (onKeyDown) {\n const cellEvent = createCellEvent(event);\n if (onKeyDown({\n mode: \"EDIT\",\n row: row2,\n column,\n rowIdx,\n navigate() {\n navigate(event);\n },\n onClose\n }, cellEvent), cellEvent.isGridDefaultPrevented()) return;\n }\n event.key === \"Escape\" ? onClose() : event.key === \"Enter\" ? onClose(!0) : onEditorNavigation(event) && navigate(event);\n }\n function onClose(commitChanges = !1, shouldFocusCell = !0) {\n commitChanges ? onRowChange(row2, !0, shouldFocusCell) : closeEditor(shouldFocusCell);\n }\n function onEditorRowChange(row3, commitChangesAndFocus = !1) {\n onRowChange(row3, commitChangesAndFocus, commitChangesAndFocus);\n }\n const {\n cellClass\n } = column, className = getCellClassname(column, \"rdg-editor-container\", typeof cellClass == \"function\" ? cellClass(row2) : cellClass, !((_b = column.editorOptions) != null && _b.displayCellContent) && cellEditing);\n return /* @__PURE__ */ u$1(\"div\", {\n role: \"gridcell\",\n \"aria-colindex\": column.idx + 1,\n \"aria-colspan\": colSpan,\n \"aria-selected\": !0,\n className,\n style: getCellStyle(column, colSpan),\n onKeyDown: handleKeyDown,\n onMouseDownCapture: cancelFrameRequest,\n children: column.renderEditCell != null && /* @__PURE__ */ u$1(b, {\n children: [column.renderEditCell({\n column,\n row: row2,\n rowIdx,\n onRowChange: onEditorRowChange,\n onClose\n }), ((_c = column.editorOptions) == null ? void 0 : _c.displayCellContent) && column.renderCell({\n column,\n row: row2,\n rowIdx,\n isCellEditable: !0,\n tabIndex: -1,\n onRowChange: onEditorRowChange\n })]\n })\n });\n}\nfunction GroupedColumnHeaderCell({\n column,\n rowIdx,\n isCellSelected,\n selectCell\n}) {\n const {\n tabIndex,\n onFocus\n } = useRovingTabIndex(isCellSelected), {\n colSpan\n } = column, rowSpan = getHeaderCellRowSpan(column, rowIdx), index = column.idx + 1;\n function onClick() {\n selectCell({\n idx: column.idx,\n rowIdx\n });\n }\n return /* @__PURE__ */ u$1(\"div\", {\n role: \"columnheader\",\n \"aria-colindex\": index,\n \"aria-colspan\": colSpan,\n \"aria-rowspan\": rowSpan,\n \"aria-selected\": isCellSelected,\n tabIndex,\n className: clsx(cellClassname, column.headerCellClass),\n style: {\n ...getHeaderCellStyle(column, rowIdx, rowSpan),\n gridColumnStart: index,\n gridColumnEnd: index + colSpan\n },\n onFocus,\n onClick,\n children: column.name\n });\n}\nconst headerSortCellClassname = \"h44jtk67-0-0-beta-47\", headerSortName = \"hcgkhxz7-0-0-beta-47\", headerSortNameClassname = `rdg-header-sort-name ${headerSortName}`;\nfunction renderHeaderCell({\n column,\n sortDirection,\n priority\n}) {\n return column.sortable ? /* @__PURE__ */ u$1(SortableHeaderCell, {\n sortDirection,\n priority,\n children: column.name\n }) : column.name;\n}\nfunction SortableHeaderCell({\n sortDirection,\n priority,\n children\n}) {\n const renderSortStatus2 = useDefaultRenderers().renderSortStatus;\n return /* @__PURE__ */ u$1(\"span\", {\n className: headerSortCellClassname,\n children: [/* @__PURE__ */ u$1(\"span\", {\n className: headerSortNameClassname,\n children\n }), /* @__PURE__ */ u$1(\"span\", {\n children: renderSortStatus2({\n sortDirection,\n priority\n })\n })]\n });\n}\nconst cellSortableClassname = \"c6l2wv17-0-0-beta-47\", cellResizable = \"c1kqdw7y7-0-0-beta-47\", cellResizableClassname = `rdg-cell-resizable ${cellResizable}`, resizeHandleClassname = \"r1y6ywlx7-0-0-beta-47\", cellDraggableClassname = \"rdg-cell-draggable\", cellDragging = \"c1bezg5o7-0-0-beta-47\", cellDraggingClassname = `rdg-cell-dragging ${cellDragging}`, cellOver = \"c1vc96037-0-0-beta-47\", cellOverClassname = `rdg-cell-drag-over ${cellOver}`;\nfunction HeaderCell({\n column,\n colSpan,\n rowIdx,\n isCellSelected,\n onColumnResize,\n onColumnsReorder,\n sortColumns,\n onSortColumnsChange,\n selectCell,\n shouldFocusGrid,\n direction,\n dragDropKey\n}) {\n const [isDragging, setIsDragging] = h(!1), [isOver, setIsOver] = h(!1), isRtl = direction === \"rtl\", rowSpan = getHeaderCellRowSpan(column, rowIdx), {\n tabIndex,\n childTabIndex,\n onFocus\n } = useRovingTabIndex(isCellSelected), sortIndex = sortColumns == null ? void 0 : sortColumns.findIndex((sort) => sort.columnKey === column.key), sortColumn = sortIndex !== void 0 && sortIndex > -1 ? sortColumns[sortIndex] : void 0, sortDirection = sortColumn == null ? void 0 : sortColumn.direction, priority = sortColumn !== void 0 && sortColumns.length > 1 ? sortIndex + 1 : void 0, ariaSort = sortDirection && !priority ? sortDirection === \"ASC\" ? \"ascending\" : \"descending\" : void 0, {\n sortable,\n resizable,\n draggable\n } = column, className = getCellClassname(column, column.headerCellClass, sortable && cellSortableClassname, resizable && cellResizableClassname, draggable && cellDraggableClassname, isDragging && cellDraggingClassname, isOver && cellOverClassname), renderHeaderCell$1 = column.renderHeaderCell ?? renderHeaderCell;\n function onPointerDown(event) {\n if (event.pointerType === \"mouse\" && event.buttons !== 1)\n return;\n event.preventDefault();\n const {\n currentTarget,\n pointerId\n } = event, headerCell = currentTarget.parentElement, {\n right,\n left\n } = headerCell.getBoundingClientRect(), offset = isRtl ? event.clientX - left : right - event.clientX;\n let hasDoubleClicked = !1;\n function onPointerMove(event2) {\n const {\n width,\n right: right2,\n left: left2\n } = headerCell.getBoundingClientRect();\n let newWidth = isRtl ? right2 + offset - event2.clientX : event2.clientX + offset - left2;\n newWidth = clampColumnWidth(newWidth, column), width > 0 && newWidth !== width && onColumnResize(column, newWidth);\n }\n function onDoubleClick() {\n hasDoubleClicked = !0, onColumnResize(column, \"max-content\");\n }\n function onLostPointerCapture(event2) {\n hasDoubleClicked || onPointerMove(event2), currentTarget.removeEventListener(\"pointermove\", onPointerMove), currentTarget.removeEventListener(\"dblclick\", onDoubleClick), currentTarget.removeEventListener(\"lostpointercapture\", onLostPointerCapture);\n }\n currentTarget.setPointerCapture(pointerId), currentTarget.addEventListener(\"pointermove\", onPointerMove), currentTarget.addEventListener(\"dblclick\", onDoubleClick), currentTarget.addEventListener(\"lostpointercapture\", onLostPointerCapture);\n }\n function onSort(ctrlClick) {\n if (onSortColumnsChange == null) return;\n const {\n sortDescendingFirst\n } = column;\n if (sortColumn === void 0) {\n const nextSort = {\n columnKey: column.key,\n direction: sortDescendingFirst ? \"DESC\" : \"ASC\"\n };\n onSortColumnsChange(sortColumns && ctrlClick ? [...sortColumns, nextSort] : [nextSort]);\n } else {\n let nextSortColumn;\n if ((sortDescendingFirst === !0 && sortDirection === \"DESC\" || sortDescendingFirst !== !0 && sortDirection === \"ASC\") && (nextSortColumn = {\n columnKey: column.key,\n direction: sortDirection === \"ASC\" ? \"DESC\" : \"ASC\"\n }), ctrlClick) {\n const nextSortColumns = [...sortColumns];\n nextSortColumn ? nextSortColumns[sortIndex] = nextSortColumn : nextSortColumns.splice(sortIndex, 1), onSortColumnsChange(nextSortColumns);\n } else\n onSortColumnsChange(nextSortColumn ? [nextSortColumn] : []);\n }\n }\n function onClick(event) {\n selectCell({\n idx: column.idx,\n rowIdx\n }), sortable && onSort(event.ctrlKey || event.metaKey);\n }\n function handleFocus(event) {\n onFocus == null || onFocus(event), shouldFocusGrid && selectCell({\n idx: 0,\n rowIdx\n });\n }\n function onKeyDown(event) {\n (event.key === \" \" || event.key === \"Enter\") && (event.preventDefault(), onSort(event.ctrlKey || event.metaKey));\n }\n function onDragStart(event) {\n event.dataTransfer.setData(dragDropKey, column.key), event.dataTransfer.dropEffect = \"move\", setIsDragging(!0);\n }\n function onDragEnd() {\n setIsDragging(!1);\n }\n function onDragOver(event) {\n event.preventDefault(), event.dataTransfer.dropEffect = \"move\";\n }\n function onDrop(event) {\n if (setIsOver(!1), event.dataTransfer.types.includes(dragDropKey.toLowerCase())) {\n const sourceKey = event.dataTransfer.getData(dragDropKey.toLowerCase());\n sourceKey !== column.key && (event.preventDefault(), onColumnsReorder == null || onColumnsReorder(sourceKey, column.key));\n }\n }\n function onDragEnter(event) {\n isEventPertinent(event) && setIsOver(!0);\n }\n function onDragLeave(event) {\n isEventPertinent(event) && setIsOver(!1);\n }\n let draggableProps;\n return draggable && (draggableProps = {\n draggable: !0,\n onDragStart,\n onDragEnd,\n onDragOver,\n onDragEnter,\n onDragLeave,\n onDrop\n }), /* @__PURE__ */ u$1(\"div\", {\n role: \"columnheader\",\n \"aria-colindex\": column.idx + 1,\n \"aria-colspan\": colSpan,\n \"aria-rowspan\": rowSpan,\n \"aria-selected\": isCellSelected,\n \"aria-sort\": ariaSort,\n tabIndex: shouldFocusGrid ? 0 : tabIndex,\n className,\n style: {\n ...getHeaderCellStyle(column, rowIdx, rowSpan),\n ...getCellStyle(column, colSpan)\n },\n onFocus: handleFocus,\n onClick,\n onKeyDown: sortable ? onKeyDown : void 0,\n ...draggableProps,\n children: [renderHeaderCell$1({\n column,\n sortDirection,\n priority,\n tabIndex: childTabIndex\n }), resizable && /* @__PURE__ */ u$1(\"div\", {\n className: resizeHandleClassname,\n onClick: stopPropagation,\n onPointerDown\n })]\n });\n}\nfunction isEventPertinent(event) {\n const relatedTarget = event.relatedTarget;\n return !event.currentTarget.contains(relatedTarget);\n}\nconst row = \"r1upfr807-0-0-beta-47\", rowClassname = `rdg-row ${row}`, rowSelected = \"r190mhd37-0-0-beta-47\", rowSelectedClassname = \"rdg-row-selected\", rowSelectedWithFrozenCell = \"r139qu9m7-0-0-beta-47\", topSummaryRowClassname = \"rdg-top-summary-row\", bottomSummaryRowClassname = \"rdg-bottom-summary-row\", headerRow = \"h10tskcx7-0-0-beta-47\", headerRowClassname = `rdg-header-row ${headerRow}`;\nfunction HeaderRow({\n rowIdx,\n columns,\n onColumnResize,\n onColumnsReorder,\n sortColumns,\n onSortColumnsChange,\n lastFrozenColumnIndex,\n selectedCellIdx,\n selectCell,\n shouldFocusGrid,\n direction\n}) {\n const dragDropKey = g$1(), cells = [];\n for (let index = 0; index < columns.length; index++) {\n const column = columns[index], colSpan = getColSpan(column, lastFrozenColumnIndex, {\n type: \"HEADER\"\n });\n colSpan !== void 0 && (index += colSpan - 1), cells.push(/* @__PURE__ */ u$1(HeaderCell, {\n column,\n colSpan,\n rowIdx,\n isCellSelected: selectedCellIdx === column.idx,\n onColumnResize,\n onColumnsReorder,\n onSortColumnsChange,\n sortColumns,\n selectCell,\n shouldFocusGrid: shouldFocusGrid && index === 0,\n direction,\n dragDropKey\n }, column.key));\n }\n return /* @__PURE__ */ u$1(\"div\", {\n role: \"row\",\n \"aria-rowindex\": rowIdx,\n className: clsx(headerRowClassname, selectedCellIdx === -1 && rowSelectedClassname),\n children: cells\n });\n}\nconst HeaderRow$1 = /* @__PURE__ */ N(HeaderRow);\nfunction GroupedColumnHeaderRow({\n rowIdx,\n level,\n columns,\n selectedCellIdx,\n selectCell\n}) {\n const cells = [], renderedParents = /* @__PURE__ */ new Set();\n for (const column of columns) {\n let {\n parent\n } = column;\n if (parent !== void 0) {\n for (; parent.level > level && parent.parent !== void 0; )\n parent = parent.parent;\n if (parent.level === level && !renderedParents.has(parent)) {\n renderedParents.add(parent);\n const {\n idx\n } = parent;\n cells.push(/* @__PURE__ */ u$1(GroupedColumnHeaderCell, {\n column: parent,\n rowIdx,\n isCellSelected: selectedCellIdx === idx,\n selectCell\n }, idx));\n }\n }\n }\n return /* @__PURE__ */ u$1(\"div\", {\n role: \"row\",\n \"aria-rowindex\": rowIdx,\n className: headerRowClassname,\n children: cells\n });\n}\nconst GroupedColumnHeaderRow$1 = /* @__PURE__ */ N(GroupedColumnHeaderRow), cellCopied = \"c6ra8a37-0-0-beta-47\", cellCopiedClassname = `rdg-cell-copied ${cellCopied}`, cellDraggedOver = \"cq910m07-0-0-beta-47\", cellDraggedOverClassname = `rdg-cell-dragged-over ${cellDraggedOver}`;\nfunction Cell({\n column,\n colSpan,\n isCellSelected,\n isCopied,\n isDraggedOver,\n row: row2,\n rowIdx,\n onClick,\n onDoubleClick,\n onContextMenu,\n onRowChange,\n selectCell,\n ...props\n}) {\n const {\n tabIndex,\n childTabIndex,\n onFocus\n } = useRovingTabIndex(isCellSelected), {\n cellClass\n } = column, className = getCellClassname(column, typeof cellClass == \"function\" ? cellClass(row2) : cellClass, isCopied && cellCopiedClassname, isDraggedOver && cellDraggedOverClassname), isEditable = isCellEditableUtil(column, row2);\n function selectCellWrapper(openEditor) {\n selectCell({\n rowIdx,\n idx: column.idx\n }, openEditor);\n }\n function handleClick(event) {\n if (onClick) {\n const cellEvent = createCellEvent(event);\n if (onClick({\n row: row2,\n column,\n selectCell: selectCellWrapper\n }, cellEvent), cellEvent.isGridDefaultPrevented()) return;\n }\n selectCellWrapper();\n }\n function handleContextMenu(event) {\n if (onContextMenu) {\n const cellEvent = createCellEvent(event);\n if (onContextMenu({\n row: row2,\n column,\n selectCell: selectCellWrapper\n }, cellEvent), cellEvent.isGridDefaultPrevented()) return;\n }\n selectCellWrapper();\n }\n function handleDoubleClick(event) {\n if (onDoubleClick) {\n const cellEvent = createCellEvent(event);\n if (onDoubleClick({\n row: row2,\n column,\n selectCell: selectCellWrapper\n }, cellEvent), cellEvent.isGridDefaultPrevented()) return;\n }\n selectCellWrapper(!0);\n }\n function handleRowChange(newRow) {\n onRowChange(column, newRow);\n }\n return /* @__PURE__ */ u$1(\"div\", {\n role: \"gridcell\",\n \"aria-colindex\": column.idx + 1,\n \"aria-colspan\": colSpan,\n \"aria-selected\": isCellSelected,\n \"aria-readonly\": !isEditable || void 0,\n tabIndex,\n className,\n style: getCellStyle(column, colSpan),\n onClick: handleClick,\n onDoubleClick: handleDoubleClick,\n onContextMenu: handleContextMenu,\n onFocus,\n ...props,\n children: column.renderCell({\n column,\n row: row2,\n rowIdx,\n isCellEditable: isEditable,\n tabIndex: childTabIndex,\n onRowChange: handleRowChange\n })\n });\n}\nconst Cell$1 = /* @__PURE__ */ N(Cell);\nfunction Row({\n className,\n rowIdx,\n gridRowStart,\n selectedCellIdx,\n isRowSelectionDisabled,\n isRowSelected,\n copiedCellIdx,\n draggedOverCellIdx,\n lastFrozenColumnIndex,\n row: row2,\n viewportColumns,\n selectedCellEditor,\n onCellClick,\n onCellDoubleClick,\n onCellContextMenu,\n rowClass,\n setDraggedOverRowIdx,\n onMouseEnter,\n onRowChange,\n selectCell,\n ...props\n}, ref) {\n const handleRowChange = useLatestFunc((column, newRow) => {\n onRowChange(column, rowIdx, newRow);\n });\n function handleDragEnter(event) {\n setDraggedOverRowIdx == null || setDraggedOverRowIdx(rowIdx), onMouseEnter == null || onMouseEnter(event);\n }\n className = clsx(rowClassname, `rdg-row-${rowIdx % 2 === 0 ? \"even\" : \"odd\"}`, rowClass == null ? void 0 : rowClass(row2, rowIdx), className, selectedCellIdx === -1 && rowSelectedClassname);\n const cells = [];\n for (let index = 0; index < viewportColumns.length; index++) {\n const column = viewportColumns[index], {\n idx\n } = column, colSpan = getColSpan(column, lastFrozenColumnIndex, {\n type: \"ROW\",\n row: row2\n });\n colSpan !== void 0 && (index += colSpan - 1);\n const isCellSelected = selectedCellIdx === idx;\n isCellSelected && selectedCellEditor ? cells.push(selectedCellEditor) : cells.push(/* @__PURE__ */ u$1(Cell$1, {\n column,\n colSpan,\n row: row2,\n rowIdx,\n isCopied: copiedCellIdx === idx,\n isDraggedOver: draggedOverCellIdx === idx,\n isCellSelected,\n onClick: onCellClick,\n onDoubleClick: onCellDoubleClick,\n onContextMenu: onCellContextMenu,\n onRowChange: handleRowChange,\n selectCell\n }, column.key));\n }\n const selectionValue = T$1(() => ({\n isRowSelected,\n isRowSelectionDisabled\n }), [isRowSelectionDisabled, isRowSelected]);\n return /* @__PURE__ */ u$1(RowSelectionProvider, {\n value: selectionValue,\n children: /* @__PURE__ */ u$1(\"div\", {\n role: \"row\",\n ref,\n className,\n onMouseEnter: handleDragEnter,\n style: getRowStyle(gridRowStart),\n ...props,\n children: cells\n })\n });\n}\nconst RowComponent = /* @__PURE__ */ N(/* @__PURE__ */ A(Row));\nfunction defaultRenderRow(key, props) {\n return /* @__PURE__ */ u$1(RowComponent, {\n ...props\n }, key);\n}\nfunction ScrollToCell({\n scrollToPosition: {\n idx,\n rowIdx\n },\n gridElement,\n setScrollToCellPosition\n}) {\n const ref = A$1(null);\n return useLayoutEffect(() => {\n scrollIntoView(ref.current);\n }), useLayoutEffect(() => {\n function removeScrollToCell() {\n setScrollToCellPosition(null);\n }\n const observer = new IntersectionObserver(removeScrollToCell, {\n root: gridElement,\n threshold: 1\n });\n return observer.observe(ref.current), () => {\n observer.disconnect();\n };\n }, [gridElement, setScrollToCellPosition]), /* @__PURE__ */ u$1(\"div\", {\n ref,\n style: {\n gridColumn: idx === void 0 ? \"1/-1\" : idx + 1,\n gridRow: rowIdx === void 0 ? \"1/-1\" : rowIdx + 2\n }\n });\n}\nconst arrow = \"a3ejtar7-0-0-beta-47\", arrowClassname = `rdg-sort-arrow ${arrow}`;\nfunction renderSortStatus({\n sortDirection,\n priority\n}) {\n return /* @__PURE__ */ u$1(b, {\n children: [renderSortIcon({\n sortDirection\n }), renderSortPriority({\n priority\n })]\n });\n}\nfunction renderSortIcon({\n sortDirection\n}) {\n return sortDirection === void 0 ? null : /* @__PURE__ */ u$1(\"svg\", {\n viewBox: \"0 0 12 8\",\n width: \"12\",\n height: \"8\",\n className: arrowClassname,\n \"aria-hidden\": !0,\n children: /* @__PURE__ */ u$1(\"path\", {\n d: sortDirection === \"ASC\" ? \"M0 8 6 0 12 8\" : \"M0 0 6 8 12 0\"\n })\n });\n}\nfunction renderSortPriority({\n priority\n}) {\n return priority;\n}\nconst root = \"rnvodz57-0-0-beta-47\", rootClassname = `rdg ${root}`, viewportDragging = \"vlqv91k7-0-0-beta-47\", viewportDraggingClassname = `rdg-viewport-dragging ${viewportDragging}`, focusSinkClassname = \"f1lsfrzw7-0-0-beta-47\", focusSinkHeaderAndSummaryClassname = \"f1cte0lg7-0-0-beta-47\", summaryCellClassname = \"s8wc6fl7-0-0-beta-47\";\nfunction SummaryCell({\n column,\n colSpan,\n row: row2,\n rowIdx,\n isCellSelected,\n selectCell\n}) {\n var _a;\n const {\n tabIndex,\n childTabIndex,\n onFocus\n } = useRovingTabIndex(isCellSelected), {\n summaryCellClass\n } = column, className = getCellClassname(column, summaryCellClassname, typeof summaryCellClass == \"function\" ? summaryCellClass(row2) : summaryCellClass);\n function onClick() {\n selectCell({\n rowIdx,\n idx: column.idx\n });\n }\n return /* @__PURE__ */ u$1(\"div\", {\n role: \"gridcell\",\n \"aria-colindex\": column.idx + 1,\n \"aria-colspan\": colSpan,\n \"aria-selected\": isCellSelected,\n tabIndex,\n className,\n style: getCellStyle(column, colSpan),\n onClick,\n onFocus,\n children: (_a = column.renderSummaryCell) == null ? void 0 : _a.call(column, {\n column,\n row: row2,\n tabIndex: childTabIndex\n })\n });\n}\nconst SummaryCell$1 = /* @__PURE__ */ N(SummaryCell), summaryRow = \"skuhp557-0-0-beta-47\", topSummaryRow = \"tf8l5ub7-0-0-beta-47\", summaryRowClassname = `rdg-summary-row ${summaryRow}`;\nfunction SummaryRow({\n rowIdx,\n gridRowStart,\n row: row2,\n viewportColumns,\n top,\n bottom,\n lastFrozenColumnIndex,\n selectedCellIdx,\n isTop,\n selectCell,\n \"aria-rowindex\": ariaRowIndex\n}) {\n const cells = [];\n for (let index = 0; index < viewportColumns.length; index++) {\n const column = viewportColumns[index], colSpan = getColSpan(column, lastFrozenColumnIndex, {\n type: \"SUMMARY\",\n row: row2\n });\n colSpan !== void 0 && (index += colSpan - 1);\n const isCellSelected = selectedCellIdx === column.idx;\n cells.push(/* @__PURE__ */ u$1(SummaryCell$1, {\n column,\n colSpan,\n row: row2,\n rowIdx,\n isCellSelected,\n selectCell\n }, column.key));\n }\n return /* @__PURE__ */ u$1(\"div\", {\n role: \"row\",\n \"aria-rowindex\": ariaRowIndex,\n className: clsx(rowClassname, `rdg-row-${rowIdx % 2 === 0 ? \"even\" : \"odd\"}`, summaryRowClassname, isTop ? `${topSummaryRowClassname} ${topSummaryRow}` : bottomSummaryRowClassname, selectedCellIdx === -1 && rowSelectedClassname),\n style: {\n ...getRowStyle(gridRowStart),\n \"--rdg-summary-row-top\": top !== void 0 ? `${top}px` : void 0,\n \"--rdg-summary-row-bottom\": bottom !== void 0 ? `${bottom}px` : void 0\n },\n children: cells\n });\n}\nconst SummaryRow$1 = /* @__PURE__ */ N(SummaryRow);\nfunction DataGrid(props, ref) {\n const {\n columns: rawColumns,\n rows,\n topSummaryRows,\n bottomSummaryRows,\n rowKeyGetter,\n onRowsChange,\n rowHeight: rawRowHeight,\n headerRowHeight: rawHeaderRowHeight,\n summaryRowHeight: rawSummaryRowHeight,\n selectedRows,\n isRowSelectionDisabled,\n onSelectedRowsChange,\n sortColumns,\n onSortColumnsChange,\n defaultColumnOptions,\n onCellClick,\n onCellDoubleClick,\n onCellContextMenu,\n onCellKeyDown,\n onSelectedCellChange,\n onScroll,\n onColumnResize,\n onColumnsReorder,\n onFill,\n onCopy,\n onPaste,\n enableVirtualization: rawEnableVirtualization,\n renderers,\n className,\n style,\n rowClass,\n direction: rawDirection,\n role: rawRole,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-rowcount\": rawAriaRowCount,\n \"data-testid\": testId\n } = props, defaultRenderers = useDefaultRenderers(), role = rawRole ?? \"grid\", rowHeight = rawRowHeight ?? 35, headerRowHeight = rawHeaderRowHeight ?? (typeof rowHeight == \"number\" ? rowHeight : 35), summaryRowHeight = rawSummaryRowHeight ?? (typeof rowHeight == \"number\" ? rowHeight : 35), renderRow = (renderers == null ? void 0 : renderers.renderRow) ?? (defaultRenderers == null ? void 0 : defaultRenderers.renderRow) ?? defaultRenderRow, renderSortStatus$1 = (renderers == null ? void 0 : renderers.renderSortStatus) ?? (defaultRenderers == null ? void 0 : defaultRenderers.renderSortStatus) ?? renderSortStatus, renderCheckbox$1 = (renderers == null ? void 0 : renderers.renderCheckbox) ?? (defaultRenderers == null ? void 0 : defaultRenderers.renderCheckbox) ?? renderCheckbox, noRowsFallback = (renderers == null ? void 0 : renderers.noRowsFallback) ?? (defaultRenderers == null ? void 0 : defaultRenderers.noRowsFallback), enableVirtualization = rawEnableVirtualization ?? !0, direction = rawDirection ?? \"ltr\", [scrollTop, setScrollTop] = h(0), [scrollLeft, setScrollLeft] = h(0), [resizedColumnWidths, setResizedColumnWidths] = h(() => /* @__PURE__ */ new Map()), [measuredColumnWidths, setMeasuredColumnWidths] = h(() => /* @__PURE__ */ new Map()), [copiedCell, setCopiedCell] = h(null), [isDragging, setDragging] = h(!1), [draggedOverRowIdx, setOverRowIdx] = h(void 0), [scrollToPosition, setScrollToPosition] = h(null), getColumnWidth = q$1((column) => resizedColumnWidths.get(column.key) ?? measuredColumnWidths.get(column.key) ?? column.width, [measuredColumnWidths, resizedColumnWidths]), [gridRef, gridWidth, gridHeight, horizontalScrollbarHeight] = useGridDimensions(), {\n columns,\n colSpanColumns,\n lastFrozenColumnIndex,\n headerRowsCount,\n colOverscanStartIdx,\n colOverscanEndIdx,\n templateColumns,\n layoutCssVars,\n totalFrozenColumnWidth\n } = useCalculatedColumns({\n rawColumns,\n defaultColumnOptions,\n getColumnWidth,\n scrollLeft,\n viewportWidth: gridWidth,\n enableVirtualization\n }), topSummaryRowsCount = (topSummaryRows == null ? void 0 : topSummaryRows.length) ?? 0, bottomSummaryRowsCount = (bottomSummaryRows == null ? void 0 : bottomSummaryRows.length) ?? 0, summaryRowsCount = topSummaryRowsCount + bottomSummaryRowsCount, headerAndTopSummaryRowsCount = headerRowsCount + topSummaryRowsCount, groupedColumnHeaderRowsCount = headerRowsCount - 1, minRowIdx = -headerAndTopSummaryRowsCount, mainHeaderRowIdx = minRowIdx + groupedColumnHeaderRowsCount, maxRowIdx = rows.length + bottomSummaryRowsCount - 1, [selectedPosition, setSelectedPosition] = h(() => ({\n idx: -1,\n rowIdx: minRowIdx - 1,\n mode: \"SELECT\"\n })), prevSelectedPosition = A$1(selectedPosition), latestDraggedOverRowIdx = A$1(draggedOverRowIdx), lastSelectedRowIdx = A$1(-1), focusSinkRef = A$1(null), shouldFocusCellRef = A$1(!1), isTreeGrid = role === \"treegrid\", headerRowsHeight = headerRowsCount * headerRowHeight, summaryRowsHeight = summaryRowsCount * summaryRowHeight, clientHeight = gridHeight - headerRowsHeight - summaryRowsHeight, isSelectable = selectedRows != null && onSelectedRowsChange != null, isRtl = direction === \"rtl\", leftKey = isRtl ? \"ArrowRight\" : \"ArrowLeft\", rightKey = isRtl ? \"ArrowLeft\" : \"ArrowRight\", ariaRowCount = rawAriaRowCount ?? headerRowsCount + rows.length + summaryRowsCount, defaultGridComponents = T$1(() => ({\n renderCheckbox: renderCheckbox$1,\n renderSortStatus: renderSortStatus$1\n }), [renderCheckbox$1, renderSortStatus$1]), headerSelectionValue = T$1(() => {\n let hasSelectedRow = !1, hasUnselectedRow = !1;\n if (rowKeyGetter != null && selectedRows != null && selectedRows.size > 0) {\n for (const row2 of rows)\n if (selectedRows.has(rowKeyGetter(row2)) ? hasSelectedRow = !0 : hasUnselectedRow = !0, hasSelectedRow && hasUnselectedRow) break;\n }\n return {\n isRowSelected: hasSelectedRow && !hasUnselectedRow,\n isIndeterminate: hasSelectedRow && hasUnselectedRow\n };\n }, [rows, selectedRows, rowKeyGetter]), {\n rowOverscanStartIdx,\n rowOverscanEndIdx,\n totalRowHeight,\n gridTemplateRows,\n getRowTop,\n getRowHeight,\n findRowIdx\n } = useViewportRows({\n rows,\n rowHeight,\n clientHeight,\n scrollTop,\n enableVirtualization\n }), viewportColumns = useViewportColumns({\n columns,\n colSpanColumns,\n colOverscanStartIdx,\n colOverscanEndIdx,\n lastFrozenColumnIndex,\n rowOverscanStartIdx,\n rowOverscanEndIdx,\n rows,\n topSummaryRows,\n bottomSummaryRows\n }), {\n gridTemplateColumns,\n handleColumnResize\n } = useColumnWidths(columns, viewportColumns, templateColumns, gridRef, gridWidth, resizedColumnWidths, measuredColumnWidths, setResizedColumnWidths, setMeasuredColumnWidths, onColumnResize), minColIdx = isTreeGrid ? -1 : 0, maxColIdx = columns.length - 1, selectedCellIsWithinSelectionBounds = isCellWithinSelectionBounds(selectedPosition), selectedCellIsWithinViewportBounds = isCellWithinViewportBounds(selectedPosition), scrollHeight = headerRowHeight + totalRowHeight + summaryRowsHeight + horizontalScrollbarHeight, handleColumnResizeLatest = useLatestFunc(handleColumnResize), onColumnsReorderLastest = useLatestFunc(onColumnsReorder), onSortColumnsChangeLatest = useLatestFunc(onSortColumnsChange), onCellClickLatest = useLatestFunc(onCellClick), onCellDoubleClickLatest = useLatestFunc(onCellDoubleClick), onCellContextMenuLatest = useLatestFunc(onCellContextMenu), selectHeaderRowLatest = useLatestFunc(selectHeaderRow), selectRowLatest = useLatestFunc(selectRow), handleFormatterRowChangeLatest = useLatestFunc(updateRow), selectCellLatest = useLatestFunc(selectCell), selectHeaderCellLatest = useLatestFunc(({\n idx,\n rowIdx\n }) => {\n selectCell({\n rowIdx: minRowIdx + rowIdx - 1,\n idx\n });\n });\n useLayoutEffect(() => {\n if (!selectedCellIsWithinSelectionBounds || isSamePosition(selectedPosition, prevSelectedPosition.current)) {\n prevSelectedPosition.current = selectedPosition;\n return;\n }\n prevSelectedPosition.current = selectedPosition, selectedPosition.idx === -1 && (focusSinkRef.current.focus({\n preventScroll: !0\n }), scrollIntoView(focusSinkRef.current));\n }), useLayoutEffect(() => {\n shouldFocusCellRef.current && (shouldFocusCellRef.current = !1, focusCellOrCellContent());\n }), F$1(ref, () => ({\n element: gridRef.current,\n scrollToCell({\n idx,\n rowIdx\n }) {\n const scrollToIdx = idx !== void 0 && idx > lastFrozenColumnIndex && idx < columns.length ? idx : void 0, scrollToRowIdx = rowIdx !== void 0 && isRowIdxWithinViewportBounds(rowIdx) ? rowIdx : void 0;\n (scrollToIdx !== void 0 || scrollToRowIdx !== void 0) && setScrollToPosition({\n idx: scrollToIdx,\n rowIdx: scrollToRowIdx\n });\n },\n selectCell\n }));\n const setDraggedOverRowIdx = q$1((rowIdx) => {\n setOverRowIdx(rowIdx), latestDraggedOverRowIdx.current = rowIdx;\n }, []);\n function selectHeaderRow(args) {\n if (!onSelectedRowsChange) return;\n assertIsValidKeyGetter(rowKeyGetter);\n const newSelectedRows = new Set(selectedRows);\n for (const row2 of rows) {\n if ((isRowSelectionDisabled == null ? void 0 : isRowSelectionDisabled(row2)) === !0) continue;\n const rowKey = rowKeyGetter(row2);\n args.checked ? newSelectedRows.add(rowKey) : newSelectedRows.delete(rowKey);\n }\n onSelectedRowsChange(newSelectedRows);\n }\n function selectRow(args) {\n if (!onSelectedRowsChange) return;\n assertIsValidKeyGetter(rowKeyGetter);\n const {\n row: row2,\n checked,\n isShiftClick\n } = args;\n if ((isRowSelectionDisabled == null ? void 0 : isRowSelectionDisabled(row2)) === !0) return;\n const newSelectedRows = new Set(selectedRows), rowKey = rowKeyGetter(row2), previousRowIdx = lastSelectedRowIdx.current, rowIdx = rows.indexOf(row2);\n if (lastSelectedRowIdx.current = rowIdx, checked ? newSelectedRows.add(rowKey) : newSelectedRows.delete(rowKey), isShiftClick && previousRowIdx !== -1 && previousRowIdx !== rowIdx && previousRowIdx < rows.length) {\n const step = sign(rowIdx - previousRowIdx);\n for (let i2 = previousRowIdx + step; i2 !== rowIdx; i2 += step) {\n const row3 = rows[i2];\n (isRowSelectionDisabled == null ? void 0 : isRowSelectionDisabled(row3)) !== !0 && (checked ? newSelectedRows.add(rowKeyGetter(row3)) : newSelectedRows.delete(rowKeyGetter(row3)));\n }\n }\n onSelectedRowsChange(newSelectedRows);\n }\n function handleKeyDown(event) {\n var _a;\n const {\n idx,\n rowIdx,\n mode\n } = selectedPosition;\n if (mode === \"EDIT\") return;\n if (onCellKeyDown && isRowIdxWithinViewportBounds(rowIdx)) {\n const row2 = rows[rowIdx], cellEvent = createCellEvent(event);\n if (onCellKeyDown({\n mode: \"SELECT\",\n row: row2,\n column: columns[idx],\n rowIdx,\n selectCell\n }, cellEvent), cellEvent.isGridDefaultPrevented()) return;\n }\n if (!(event.target instanceof Element)) return;\n const isCellEvent = event.target.closest(\".rdg-cell\") !== null, isRowEvent = isTreeGrid && event.target === focusSinkRef.current;\n if (!isCellEvent && !isRowEvent) return;\n const {\n keyCode\n } = event;\n if (selectedCellIsWithinViewportBounds && (onPaste != null || onCopy != null) && isCtrlKeyHeldDown(event)) {\n if (keyCode === 67) {\n if (((_a = window.getSelection()) == null ? void 0 : _a.isCollapsed) === !1) return;\n handleCopy();\n return;\n }\n if (keyCode === 86) {\n handlePaste();\n return;\n }\n }\n switch (event.key) {\n case \"Escape\":\n setCopiedCell(null);\n return;\n case \"ArrowUp\":\n case \"ArrowDown\":\n case \"ArrowLeft\":\n case \"ArrowRight\":\n case \"Tab\":\n case \"Home\":\n case \"End\":\n case \"PageUp\":\n case \"PageDown\":\n navigate(event);\n break;\n default:\n handleCellInput(event);\n break;\n }\n }\n function handleScroll(event) {\n const {\n scrollTop: scrollTop2,\n scrollLeft: scrollLeft2\n } = event.currentTarget;\n gn(() => {\n setScrollTop(scrollTop2), setScrollLeft(abs(scrollLeft2));\n }), onScroll == null || onScroll(event);\n }\n function updateRow(column, rowIdx, row2) {\n if (typeof onRowsChange != \"function\" || row2 === rows[rowIdx]) return;\n const updatedRows = [...rows];\n updatedRows[rowIdx] = row2, onRowsChange(updatedRows, {\n indexes: [rowIdx],\n column\n });\n }\n function commitEditorChanges() {\n selectedPosition.mode === \"EDIT\" && updateRow(columns[selectedPosition.idx], selectedPosition.rowIdx, selectedPosition.row);\n }\n function handleCopy() {\n const {\n idx,\n rowIdx\n } = selectedPosition, sourceRow = rows[rowIdx], sourceColumnKey = columns[idx].key;\n setCopiedCell({\n row: sourceRow,\n columnKey: sourceColumnKey\n }), onCopy == null || onCopy({\n sourceRow,\n sourceColumnKey\n });\n }\n function handlePaste() {\n if (!onPaste || !onRowsChange || copiedCell === null || !isCellEditable(selectedPosition))\n return;\n const {\n idx,\n rowIdx\n } = selectedPosition, targetColumn = columns[idx], targetRow = rows[rowIdx], updatedTargetRow = onPaste({\n sourceRow: copiedCell.row,\n sourceColumnKey: copiedCell.columnKey,\n targetRow,\n targetColumnKey: targetColumn.key\n });\n updateRow(targetColumn, rowIdx, updatedTargetRow);\n }\n function handleCellInput(event) {\n if (!selectedCellIsWithinViewportBounds) return;\n const row2 = rows[selectedPosition.rowIdx], {\n key,\n shiftKey\n } = event;\n if (isSelectable && shiftKey && key === \" \") {\n assertIsValidKeyGetter(rowKeyGetter);\n const rowKey = rowKeyGetter(row2);\n selectRow({\n row: row2,\n checked: !selectedRows.has(rowKey),\n isShiftClick: !1\n }), event.preventDefault();\n return;\n }\n isCellEditable(selectedPosition) && isDefaultCellInput(event) && setSelectedPosition(({\n idx,\n rowIdx\n }) => ({\n idx,\n rowIdx,\n mode: \"EDIT\",\n row: row2,\n originalRow: row2\n }));\n }\n function isColIdxWithinSelectionBounds(idx) {\n return idx >= minColIdx && idx <= maxColIdx;\n }\n function isRowIdxWithinViewportBounds(rowIdx) {\n return rowIdx >= 0 && rowIdx < rows.length;\n }\n function isCellWithinSelectionBounds({\n idx,\n rowIdx\n }) {\n return rowIdx >= minRowIdx && rowIdx <= maxRowIdx && isColIdxWithinSelectionBounds(idx);\n }\n function isCellWithinEditBounds({\n idx,\n rowIdx\n }) {\n return isRowIdxWithinViewportBounds(rowIdx) && idx >= 0 && idx <= maxColIdx;\n }\n function isCellWithinViewportBounds({\n idx,\n rowIdx\n }) {\n return isRowIdxWithinViewportBounds(rowIdx) && isColIdxWithinSelectionBounds(idx);\n }\n function isCellEditable(position) {\n return isCellWithinEditBounds(position) && isSelectedCellEditable({\n columns,\n rows,\n selectedPosition: position\n });\n }\n function selectCell(position, enableEditor) {\n if (!isCellWithinSelectionBounds(position)) return;\n commitEditorChanges();\n const row2 = rows[position.rowIdx], samePosition = isSamePosition(selectedPosition, position);\n enableEditor && isCellEditable(position) ? setSelectedPosition({\n ...position,\n mode: \"EDIT\",\n row: row2,\n originalRow: row2\n }) : samePosition ? scrollIntoView(getCellToScroll(gridRef.current)) : (shouldFocusCellRef.current = !0, setSelectedPosition({\n ...position,\n mode: \"SELECT\"\n })), onSelectedCellChange && !samePosition && onSelectedCellChange({\n rowIdx: position.rowIdx,\n row: row2,\n column: columns[position.idx]\n });\n }\n function getNextPosition(key, ctrlKey, shiftKey) {\n const {\n idx,\n rowIdx\n } = selectedPosition, isRowSelected = selectedCellIsWithinSelectionBounds && idx === -1;\n switch (key) {\n case \"ArrowUp\":\n return {\n idx,\n rowIdx: rowIdx - 1\n };\n case \"ArrowDown\":\n return {\n idx,\n rowIdx: rowIdx + 1\n };\n case leftKey:\n return {\n idx: idx - 1,\n rowIdx\n };\n case rightKey:\n return {\n idx: idx + 1,\n rowIdx\n };\n case \"Tab\":\n return {\n idx: idx + (shiftKey ? -1 : 1),\n rowIdx\n };\n case \"Home\":\n return isRowSelected ? {\n idx,\n rowIdx: minRowIdx\n } : {\n idx: 0,\n rowIdx: ctrlKey ? minRowIdx : rowIdx\n };\n case \"End\":\n return isRowSelected ? {\n idx,\n rowIdx: maxRowIdx\n } : {\n idx: maxColIdx,\n rowIdx: ctrlKey ? maxRowIdx : rowIdx\n };\n case \"PageUp\": {\n if (selectedPosition.rowIdx === minRowIdx) return selectedPosition;\n const nextRowY = getRowTop(rowIdx) + getRowHeight(rowIdx) - clientHeight;\n return {\n idx,\n rowIdx: nextRowY > 0 ? findRowIdx(nextRowY) : 0\n };\n }\n case \"PageDown\": {\n if (selectedPosition.rowIdx >= rows.length) return selectedPosition;\n const nextRowY = getRowTop(rowIdx) + clientHeight;\n return {\n idx,\n rowIdx: nextRowY < totalRowHeight ? findRowIdx(nextRowY) : rows.length - 1\n };\n }\n default:\n return selectedPosition;\n }\n }\n function navigate(event) {\n const {\n key,\n shiftKey\n } = event;\n let cellNavigationMode = \"NONE\";\n if (key === \"Tab\") {\n if (canExitGrid({\n shiftKey,\n maxColIdx,\n minRowIdx,\n maxRowIdx,\n selectedPosition\n })) {\n commitEditorChanges();\n return;\n }\n cellNavigationMode = \"CHANGE_ROW\";\n }\n event.preventDefault();\n const ctrlKey = isCtrlKeyHeldDown(event), nextPosition = getNextPosition(key, ctrlKey, shiftKey);\n if (isSamePosition(selectedPosition, nextPosition)) return;\n const nextSelectedCellPosition = getNextSelectedCellPosition({\n moveUp: key === \"ArrowUp\",\n moveNext: key === rightKey || key === \"Tab\" && !shiftKey,\n columns,\n colSpanColumns,\n rows,\n topSummaryRows,\n bottomSummaryRows,\n minRowIdx,\n mainHeaderRowIdx,\n maxRowIdx,\n lastFrozenColumnIndex,\n cellNavigationMode,\n currentPosition: selectedPosition,\n nextPosition,\n isCellWithinBounds: isCellWithinSelectionBounds\n });\n selectCell(nextSelectedCellPosition);\n }\n function getDraggedOverCellIdx(currentRowIdx) {\n if (draggedOverRowIdx === void 0) return;\n const {\n rowIdx\n } = selectedPosition;\n return (rowIdx < draggedOverRowIdx ? rowIdx < currentRowIdx && currentRowIdx <= draggedOverRowIdx : rowIdx > currentRowIdx && currentRowIdx >= draggedOverRowIdx) ? selectedPosition.idx : void 0;\n }\n function focusCellOrCellContent() {\n const cell2 = getCellToScroll(gridRef.current);\n if (cell2 === null) return;\n scrollIntoView(cell2), (cell2.querySelector('[tabindex=\"0\"]') ?? cell2).focus({\n preventScroll: !0\n });\n }\n function renderDragHandle() {\n if (onFill == null || selectedPosition.mode === \"EDIT\" || !isCellWithinViewportBounds(selectedPosition))\n return;\n const {\n idx,\n rowIdx\n } = selectedPosition, column = columns[idx];\n if (column.renderEditCell == null || column.editable === !1)\n return;\n const columnWidth = getColumnWidth(column);\n return /* @__PURE__ */ u$1(DragHandle, {\n gridRowStart: headerAndTopSummaryRowsCount + rowIdx + 1,\n rows,\n column,\n columnWidth,\n maxColIdx,\n isLastRow: rowIdx === maxRowIdx,\n selectedPosition,\n isCellEditable,\n latestDraggedOverRowIdx,\n onRowsChange,\n onClick: focusCellOrCellContent,\n onFill,\n setDragging,\n setDraggedOverRowIdx\n });\n }\n function getCellEditor(rowIdx) {\n if (selectedPosition.rowIdx !== rowIdx || selectedPosition.mode === \"SELECT\") return;\n const {\n idx,\n row: row2\n } = selectedPosition, column = columns[idx], colSpan = getColSpan(column, lastFrozenColumnIndex, {\n type: \"ROW\",\n row: row2\n }), closeEditor = (shouldFocusCell) => {\n shouldFocusCellRef.current = shouldFocusCell, setSelectedPosition(({\n idx: idx2,\n rowIdx: rowIdx2\n }) => ({\n idx: idx2,\n rowIdx: rowIdx2,\n mode: \"SELECT\"\n }));\n }, onRowChange = (row3, commitChanges, shouldFocusCell) => {\n commitChanges ? gn(() => {\n updateRow(column, selectedPosition.rowIdx, row3), closeEditor(shouldFocusCell);\n }) : setSelectedPosition((position) => ({\n ...position,\n row: row3\n }));\n };\n return rows[selectedPosition.rowIdx] !== selectedPosition.originalRow && closeEditor(!1), /* @__PURE__ */ u$1(EditCell, {\n column,\n colSpan,\n row: row2,\n rowIdx,\n onRowChange,\n closeEditor,\n onKeyDown: onCellKeyDown,\n navigate\n }, column.key);\n }\n function getRowViewportColumns(rowIdx) {\n const selectedColumn = selectedPosition.idx === -1 ? void 0 : columns[selectedPosition.idx];\n return selectedColumn !== void 0 && selectedPosition.rowIdx === rowIdx && !viewportColumns.includes(selectedColumn) ? selectedPosition.idx > colOverscanEndIdx ? [...viewportColumns, selectedColumn] : [...viewportColumns.slice(0, lastFrozenColumnIndex + 1), selectedColumn, ...viewportColumns.slice(lastFrozenColumnIndex + 1)] : viewportColumns;\n }\n function getViewportRows() {\n const rowElements = [], {\n idx: selectedIdx,\n rowIdx: selectedRowIdx\n } = selectedPosition, startRowIdx = selectedCellIsWithinViewportBounds && selectedRowIdx < rowOverscanStartIdx ? rowOverscanStartIdx - 1 : rowOverscanStartIdx, endRowIdx = selectedCellIsWithinViewportBounds && selectedRowIdx > rowOverscanEndIdx ? rowOverscanEndIdx + 1 : rowOverscanEndIdx;\n for (let viewportRowIdx = startRowIdx; viewportRowIdx <= endRowIdx; viewportRowIdx++) {\n const isRowOutsideViewport = viewportRowIdx === rowOverscanStartIdx - 1 || viewportRowIdx === rowOverscanEndIdx + 1, rowIdx = isRowOutsideViewport ? selectedRowIdx : viewportRowIdx;\n let rowColumns = viewportColumns;\n const selectedColumn = selectedIdx === -1 ? void 0 : columns[selectedIdx];\n selectedColumn !== void 0 && (isRowOutsideViewport ? rowColumns = [selectedColumn] : rowColumns = getRowViewportColumns(rowIdx));\n const row2 = rows[rowIdx], gridRowStart = headerAndTopSummaryRowsCount + rowIdx + 1;\n let key = rowIdx, isRowSelected = !1;\n typeof rowKeyGetter == \"function\" && (key = rowKeyGetter(row2), isRowSelected = (selectedRows == null ? void 0 : selectedRows.has(key)) ?? !1), rowElements.push(renderRow(key, {\n \"aria-rowindex\": headerAndTopSummaryRowsCount + rowIdx + 1,\n \"aria-selected\": isSelectable ? isRowSelected : void 0,\n rowIdx,\n row: row2,\n viewportColumns: rowColumns,\n isRowSelectionDisabled: (isRowSelectionDisabled == null ? void 0 : isRowSelectionDisabled(row2)) ?? !1,\n isRowSelected,\n onCellClick: onCellClickLatest,\n onCellDoubleClick: onCellDoubleClickLatest,\n onCellContextMenu: onCellContextMenuLatest,\n rowClass,\n gridRowStart,\n copiedCellIdx: copiedCell !== null && copiedCell.row === row2 ? columns.findIndex((c2) => c2.key === copiedCell.columnKey) : void 0,\n selectedCellIdx: selectedRowIdx === rowIdx ? selectedIdx : void 0,\n draggedOverCellIdx: getDraggedOverCellIdx(rowIdx),\n setDraggedOverRowIdx: isDragging ? setDraggedOverRowIdx : void 0,\n lastFrozenColumnIndex,\n onRowChange: handleFormatterRowChangeLatest,\n selectCell: selectCellLatest,\n selectedCellEditor: getCellEditor(rowIdx)\n }));\n }\n return rowElements;\n }\n (selectedPosition.idx > maxColIdx || selectedPosition.rowIdx > maxRowIdx) && (setSelectedPosition({\n idx: -1,\n rowIdx: minRowIdx - 1,\n mode: \"SELECT\"\n }), setDraggedOverRowIdx(void 0));\n let templateRows = `repeat(${headerRowsCount}, ${headerRowHeight}px)`;\n topSummaryRowsCount > 0 && (templateRows += ` repeat(${topSummaryRowsCount}, ${summaryRowHeight}px)`), rows.length > 0 && (templateRows += gridTemplateRows), bottomSummaryRowsCount > 0 && (templateRows += ` repeat(${bottomSummaryRowsCount}, ${summaryRowHeight}px)`);\n const isGroupRowFocused = selectedPosition.idx === -1 && selectedPosition.rowIdx !== minRowIdx - 1;\n return /* @__PURE__ */ u$1(\"div\", {\n role,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-multiselectable\": isSelectable ? !0 : void 0,\n \"aria-colcount\": columns.length,\n \"aria-rowcount\": ariaRowCount,\n className: clsx(rootClassname, className, isDragging && viewportDraggingClassname),\n style: {\n ...style,\n scrollPaddingInlineStart: selectedPosition.idx > lastFrozenColumnIndex || (scrollToPosition == null ? void 0 : scrollToPosition.idx) !== void 0 ? `${totalFrozenColumnWidth}px` : void 0,\n scrollPaddingBlock: isRowIdxWithinViewportBounds(selectedPosition.rowIdx) || (scrollToPosition == null ? void 0 : scrollToPosition.rowIdx) !== void 0 ? `${headerRowsHeight + topSummaryRowsCount * summaryRowHeight}px ${bottomSummaryRowsCount * summaryRowHeight}px` : void 0,\n gridTemplateColumns,\n gridTemplateRows: templateRows,\n \"--rdg-header-row-height\": `${headerRowHeight}px`,\n \"--rdg-scroll-height\": `${scrollHeight}px`,\n ...layoutCssVars\n },\n dir: direction,\n ref: gridRef,\n onScroll: handleScroll,\n onKeyDown: handleKeyDown,\n \"data-testid\": testId,\n children: [/* @__PURE__ */ u$1(DataGridDefaultRenderersProvider, {\n value: defaultGridComponents,\n children: [/* @__PURE__ */ u$1(HeaderRowSelectionChangeProvider, {\n value: selectHeaderRowLatest,\n children: /* @__PURE__ */ u$1(HeaderRowSelectionProvider, {\n value: headerSelectionValue,\n children: [Array.from({\n length: groupedColumnHeaderRowsCount\n }, (_2, index) => /* @__PURE__ */ u$1(GroupedColumnHeaderRow$1, {\n rowIdx: index + 1,\n level: -groupedColumnHeaderRowsCount + index,\n columns: getRowViewportColumns(minRowIdx + index),\n selectedCellIdx: selectedPosition.rowIdx === minRowIdx + index ? selectedPosition.idx : void 0,\n selectCell: selectHeaderCellLatest\n }, index)), /* @__PURE__ */ u$1(HeaderRow$1, {\n rowIdx: headerRowsCount,\n columns: getRowViewportColumns(mainHeaderRowIdx),\n onColumnResize: handleColumnResizeLatest,\n onColumnsReorder: onColumnsReorderLastest,\n sortColumns,\n onSortColumnsChange: onSortColumnsChangeLatest,\n lastFrozenColumnIndex,\n selectedCellIdx: selectedPosition.rowIdx === mainHeaderRowIdx ? selectedPosition.idx : void 0,\n selectCell: selectHeaderCellLatest,\n shouldFocusGrid: !selectedCellIsWithinSelectionBounds,\n direction\n })]\n })\n }), rows.length === 0 && noRowsFallback ? noRowsFallback : /* @__PURE__ */ u$1(b, {\n children: [topSummaryRows == null ? void 0 : topSummaryRows.map((row2, rowIdx) => {\n const gridRowStart = headerRowsCount + 1 + rowIdx, summaryRowIdx = mainHeaderRowIdx + 1 + rowIdx, isSummaryRowSelected = selectedPosition.rowIdx === summaryRowIdx, top = headerRowsHeight + summaryRowHeight * rowIdx;\n return /* @__PURE__ */ u$1(SummaryRow$1, {\n \"aria-rowindex\": gridRowStart,\n rowIdx: summaryRowIdx,\n gridRowStart,\n row: row2,\n top,\n bottom: void 0,\n viewportColumns: getRowViewportColumns(summaryRowIdx),\n lastFrozenColumnIndex,\n selectedCellIdx: isSummaryRowSelected ? selectedPosition.idx : void 0,\n isTop: !0,\n selectCell: selectCellLatest\n }, rowIdx);\n }), /* @__PURE__ */ u$1(RowSelectionChangeProvider, {\n value: selectRowLatest,\n children: getViewportRows()\n }), bottomSummaryRows == null ? void 0 : bottomSummaryRows.map((row2, rowIdx) => {\n const gridRowStart = headerAndTopSummaryRowsCount + rows.length + rowIdx + 1, summaryRowIdx = rows.length + rowIdx, isSummaryRowSelected = selectedPosition.rowIdx === summaryRowIdx, top = clientHeight > totalRowHeight ? gridHeight - summaryRowHeight * (bottomSummaryRows.length - rowIdx) : void 0, bottom = top === void 0 ? summaryRowHeight * (bottomSummaryRows.length - 1 - rowIdx) : void 0;\n return /* @__PURE__ */ u$1(SummaryRow$1, {\n \"aria-rowindex\": ariaRowCount - bottomSummaryRowsCount + rowIdx + 1,\n rowIdx: summaryRowIdx,\n gridRowStart,\n row: row2,\n top,\n bottom,\n viewportColumns: getRowViewportColumns(summaryRowIdx),\n lastFrozenColumnIndex,\n selectedCellIdx: isSummaryRowSelected ? selectedPosition.idx : void 0,\n isTop: !1,\n selectCell: selectCellLatest\n }, rowIdx);\n })]\n })]\n }), renderDragHandle(), renderMeasuringCells(viewportColumns), isTreeGrid && /* @__PURE__ */ u$1(\"div\", {\n ref: focusSinkRef,\n tabIndex: isGroupRowFocused ? 0 : -1,\n className: clsx(focusSinkClassname, isGroupRowFocused && [rowSelected, lastFrozenColumnIndex !== -1 && rowSelectedWithFrozenCell], !isRowIdxWithinViewportBounds(selectedPosition.rowIdx) && focusSinkHeaderAndSummaryClassname),\n style: {\n gridRowStart: selectedPosition.rowIdx + headerAndTopSummaryRowsCount + 1\n }\n }), scrollToPosition !== null && /* @__PURE__ */ u$1(ScrollToCell, {\n scrollToPosition,\n setScrollToCellPosition: setScrollToPosition,\n gridElement: gridRef.current\n })]\n });\n}\nfunction getCellToScroll(gridEl) {\n return gridEl.querySelector(':scope > [role=\"row\"] > [tabindex=\"0\"]');\n}\nfunction isSamePosition(p1, p2) {\n return p1.idx === p2.idx && p1.rowIdx === p2.rowIdx;\n}\nconst DataGrid$1 = /* @__PURE__ */ A(DataGrid);\nfunction useData(widget) {\n const columns = xn.useMemo(() => widget.columns(), [widget, widget.dataChecksum()]), data = xn.useMemo(() => widget.data(), [widget, widget.dataChecksum()]);\n return [columns, data];\n}\nfunction copyAndSort(items, attribute, descending) {\n const key = attribute;\n return [...items].sort((a2, b2) => a2[key] < b2[key] ? descending ? 1 : -1 : a2[key] > b2[key] ? descending ? -1 : 1 : 0);\n}\nconst EmptyRowsRenderer = ({\n message\n}) => /* @__PURE__ */ u$1(\"div\", { style: { textAlign: \"center\", gridColumn: \"1/-1\" }, children: message }), ReactTable = ({\n table,\n sort\n}) => {\n const [columns, data] = useData(table), multiSelect = table.multiSelect(), columnTypes = table.columnTypes(), columnPatterns = table.columnPatterns(), columnFormats = table.columnFormats(), [listColumns, setListColumns] = h([]), [sortColumn, setSortColumn] = h(), [rows, setRows] = h([]), [selectedRows, setSelectedRows] = h(/* @__PURE__ */ new Set());\n y(() => {\n setListColumns([\n ...multiSelect ? [SelectColumn] : [],\n ...columns.map((column) => {\n const type = columnTypes[column] ?? \"string\";\n let formatter, __hpcc_pattern, __hpcc_format;\n switch (type) {\n case \"time\":\n __hpcc_pattern = columnPatterns[column] !== void 0 ? timeParse(columnPatterns[column]) : void 0, __hpcc_format = columnFormats[column] !== void 0 ? timeFormat(columnFormats[column]) : void 0;\n break;\n case \"number\":\n formatter = (props) => /* @__PURE__ */ u$1(\"div\", { style: { textAlign: \"right\" }, children: props.row[props.column.key] });\n // eslint-disable-next-line no-fallthrough\n default:\n __hpcc_format = columnFormats[column] !== void 0 ? format(columnFormats[column]) : void 0;\n }\n return {\n key: column,\n name: column,\n resizable: !0,\n sortable: !0,\n minWidth: 80,\n renderCell: formatter,\n __hpcc_pattern,\n __hpcc_format\n };\n })\n ]);\n }, [columnFormats, columnPatterns, columnTypes, columns, multiSelect]);\n const onSortColumnsChange = q$1((sortColumns) => {\n const futureSortColumn = sortColumns.slice(-1)[0], sorted = futureSortColumn !== void 0, isSortedDescending = (futureSortColumn == null ? void 0 : futureSortColumn.direction) === \"DESC\";\n setSortColumn(futureSortColumn), setRows(copyAndSort(rows, sorted ? futureSortColumn.columnKey : \"key\", sorted ? isSortedDescending : !1));\n }, [rows]), rowKeyGetter = q$1((row2) => row2.key, []), onSelectedRowsChange = q$1((selectedRows2) => {\n setSelectedRows(selectedRows2);\n }, []), onCellClick = q$1((row2, column) => {\n table.onRowClickCallback(row2, column.key);\n }, [table]);\n return y(() => {\n let items = data.map((row2, index) => {\n const retVal = {\n key: index\n };\n return listColumns.forEach((column, index2) => {\n let val = row2[index2];\n column.__hpcc_pattern && column.__hpcc_format ? val = column.__hpcc_format(column.__hpcc_pattern(val)) : column.__hpcc_pattern ? val = column.__hpcc_pattern(val).toString() : column.__hpcc_format && (val = column.__hpcc_format(val)), retVal[column.key] = val;\n }), retVal;\n });\n sort != null && sort.attribute && (items = copyAndSort(items, sort.attribute, sort.descending)), setRows(items);\n }, [listColumns, data, sort]), /* @__PURE__ */ u$1(\n DataGrid$1,\n {\n columns: listColumns,\n headerRowHeight: 24,\n rows,\n rowKeyGetter,\n rowHeight: 20,\n renderers: { noRowsFallback: /* @__PURE__ */ u$1(EmptyRowsRenderer, { message: table.noDataMessage() }) },\n className: table.darkMode() ? \"rdg-dark\" : \"rdg-light\",\n sortColumns: sortColumn ? [sortColumn] : [],\n onSortColumnsChange,\n selectedRows,\n onSelectedRowsChange: multiSelect ? onSelectedRowsChange : void 0,\n onCellClick: multiSelect ? void 0 : (args, event) => onCellClick(args.row, args.column),\n \"aria-describedby\": \"\",\n \"aria-label\": \"\",\n \"aria-labelledby\": \"\",\n style: { height: \"100%\" }\n }\n );\n};\nclass Table extends HTMLWidget {\n constructor() {\n super();\n __publicField(this, \"_div\");\n __publicField(this, \"_prevRow\");\n __publicField(this, \"_prevColumn\");\n }\n columnType(column, type) {\n return arguments.length === 1 ? this.columnTypes()[column] : (this.columnTypes({ ...this.columnTypes(), [column]: type }), this);\n }\n columnPattern(column, pattern) {\n return arguments.length === 1 ? this.columnPatterns()[column] : (this.columnPatterns({ ...this.columnPatterns(), [column]: pattern }), this);\n }\n columnFormat(column, format2) {\n return arguments.length === 1 ? this.columnFormats()[column] : (this.columnFormats({ ...this.columnFormats(), [column]: format2 }), this);\n }\n onRowClickCallback(row2, column) {\n this._prevRow && JSON.stringify(this._prevRow) !== JSON.stringify(row2) && this.click(this._prevRow, this._prevColumn ?? \"\", !1), row2 && this.click(row2, column, !0), this._prevRow = row2, this._prevColumn = column;\n }\n enter(domNode, element) {\n super.enter(domNode, element), this._div = element.append(\"div\").style(\"display\", \"grid\");\n }\n update(domNode, element) {\n super.update(domNode, element), this._div.style(\"width\", this.width() + \"px\"), this._div.style(\"height\", this.height() + \"px\"), q$2(_$1(ReactTable, { table: this }), this._div.node());\n }\n exit(domNode, element) {\n this._div.remove(), super.exit(domNode, element);\n }\n // Events ---\n click(row2, col, sel) {\n }\n}\nTable.prototype._class += \" dgrid2_Table\";\nTable.prototype.publish(\"noDataMessage\", \"...empty...\", \"string\", \"No Data Message\");\nTable.prototype.publish(\"darkMode\", !1, \"boolean\", \"Dark Mode\");\nTable.prototype.publish(\"multiSelect\", !1, \"boolean\", \"Multiple Selection\");\nTable.prototype.publish(\"columnTypes\", {}, \"object\", 'Column Types (\"boolean\" | \"number\" | \"string\" | \"time\"');\nTable.prototype.publish(\"columnPatterns\", {}, \"object\", \"Column Patterns\");\nTable.prototype.publish(\"columnFormats\", {}, \"object\", \"Column Formats\");\nexport {\n BUILD_VERSION,\n PKG_NAME,\n PKG_VERSION,\n Table\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)}})();\nvar __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, formatLocale, formatSpecifier, format, formatPrefix, sum, SVGWidget, Database, Palette, scaleOrdinal, ProgressBar, ToggleButton, Text, Button, Spacer, TitleBar, IconBar } from \"@hpcc-js/common\";\nimport { Table } from \"@hpcc-js/dgrid2\";\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 if (super.update(domNode, element), this._table && this.widget_exists() && this.widget().class().indexOf(\"chart_XYAxis\") >= 0) {\n const chart = this.widget();\n this._table.columns().forEach((column, idx) => {\n switch (idx === 0 ? chart.xAxisType() : chart.yAxisType()) {\n case \"linear\":\n case \"log\":\n case \"pow\":\n this._table.columnType(column, \"number\");\n break;\n case \"time\":\n this._table.columnType(column, \"time\");\n break;\n case \"ordinal\":\n default:\n this._table.columnType(column, \"string\");\n }\n this._table.columnPattern(column, idx === 0 ? chart.xAxisTypeTimePattern() : chart.yAxisTypeTimePattern()), this._table.columnFormat(column, idx === 0 ? chart.xAxisTickFormat() : chart.yAxisTickFormat());\n });\n }\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\");\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x.default : x;\n}\nvar gridList$2 = { exports: {} }, gridList$1 = gridList$2.exports, hasRequiredGridList;\nfunction requireGridList() {\n return hasRequiredGridList || (hasRequiredGridList = 1, function(module, exports) {\n (function(root, factory) {\n module.exports = factory();\n })(gridList$1, 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$2)), gridList$2.exports;\n}\nvar gridListExports = requireGridList();\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","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":["r","e","__defProp","__defNormalProp","__publicField","c","a","s","k","Cell","Cell$1","o","n","m","i","d","w","_","Utility","cell","t","b","l","w2","x","y","h","row","n2","root","j","N","d3Map","Legend","Button","d3Select","Persist"],"mappings":"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"}