@hpcc-js/dgrid 3.1.0 → 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/Common.ts", "../src/dgrid-shim.ts", "../src/RowFormatter.ts", "../src/DBStore.ts", "../src/Common.css", "../src/DatasourceStore.ts", "../src/DatasourceTable.ts", "../src/Table.ts"],
4
- "sourcesContent": ["export const PKG_NAME = \"@hpcc-js/dgrid\";\nexport const PKG_VERSION = \"3.1.0\";\nexport const BUILD_VERSION = \"3.2.0\";\n", "import { HTMLWidget } from \"@hpcc-js/common\";\nimport { Grid, PagingGrid } from \"./dgrid-shim.ts\";\nimport { DBStore } from \"./DBStore.ts\";\n\nimport \"../src/Common.css\";\n\nexport class Common extends HTMLWidget {\n protected _columns = [];\n protected _store = new DBStore(this._db);\n protected _dgridDiv;\n protected _dgrid;\n protected _prevPaging;\n private _prevSortBy: string;\n private _prevSortByDescending: boolean;\n private _prevMultiSelect: boolean;\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n protected formatSortBy(): [{ property: string, descending: boolean }] | undefined {\n const idx = this.columns().indexOf(this.sortBy());\n return idx >= 0 ? [{ property: idx.toString(), descending: this.sortByDescending() }] : undefined;\n }\n\n protected _supressEvents;\n selection(): any[];\n selection(_: any[]): this;\n selection(_?: any[]): any[] | this {\n if (!arguments.length) {\n const retVal = [];\n for (const id in this._dgrid.selection) {\n if (this._dgrid.selection[id]) {\n const storeItem = this._store.get(+id);\n retVal.push(this.rowToObj(storeItem));\n }\n }\n return retVal;\n }\n this._supressEvents = true;\n this._dgrid?.clearSelection();\n let first = true;\n this.data().forEach((row, idx) => {\n if (_.indexOf(row) >= 0) {\n const row = this._dgrid?.row(idx);\n if (row.element && first) {\n first = false;\n row.element.scrollIntoView();\n }\n this._dgrid?.select(idx);\n }\n });\n this._supressEvents = false;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._dgridDiv = element.append(\"div\")\n .attr(\"class\", \"flat\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n this._store.renderHtml(this.renderHtml());\n\n if (!this._dgrid || this._prevPaging !== this.pagination() ||\n this._prevSortBy !== this.sortBy() ||\n this._prevSortByDescending !== this.sortByDescending() ||\n this._prevMultiSelect !== this.multiSelect()) {\n\n this._prevPaging = this.pagination();\n this._prevSortBy = this.sortBy();\n this._prevSortByDescending = this.sortByDescending();\n this._prevMultiSelect = this.multiSelect();\n if (this._dgrid) {\n this._dgrid.destroy();\n this._dgridDiv = element.append(\"div\")\n .attr(\"class\", \"flat\")\n ;\n }\n this._dgrid = new (this._prevPaging ? PagingGrid : Grid)({\n columns: this._columns,\n collection: this._store,\n sort: this.formatSortBy(),\n selectionMode: this.multiSelect() ? \"extended\" : \"single\",\n deselectOnRefresh: true,\n cellNavigation: false,\n pagingLinks: 1,\n pagingTextBox: true,\n previousNextArrows: true,\n firstLastArrows: true,\n rowsPerPage: this.pageSize(),\n pageSizeOptions: [1, 10, 25, 50, 100, 1000]\n }, this._dgridDiv.node());\n this._dgrid.on(\"dgrid-select\", (evt) => {\n if (this._supressEvents) return;\n if (evt.rows && evt.rows.length && evt.rows[0].data) {\n this.click(this.rowToObj(evt.rows[0].data.__origRow), \"\", true, { selection: this.selection() });\n }\n });\n this._dgrid.on(\"dgrid-deselect\", (evt) => {\n if (this._supressEvents) return;\n if (evt.rows && evt.rows.length && evt.rows[0].data) {\n this.click(this.rowToObj(evt.rows[0].data.__origRow), \"\", false, { selection: this.selection() });\n }\n });\n this._dgrid.refresh({});\n }\n this._dgrid.noDataMessage = `<span class='dojoxGridNoData'>${this.noDataMessage()}</span>`;\n this._dgrid.loadingMessage = `<span class='dojoxGridNoData'>${this.loadingMessage()}</span>`;\n\n this._dgridDiv\n .style(\"width\", this.width() + \"px\")\n .style(\"height\", this.height() - 2 + \"px\")\n ;\n this._dgrid.resize();\n }\n\n exit(domNode, element) {\n delete this._prevPaging;\n if (this._dgrid) {\n this._dgrid.destroy();\n delete this._dgrid;\n }\n super.exit(domNode, element);\n }\n\n click(row, col, sel, more) {\n }\n}\nCommon.prototype._class += \" dgrid_Common\";\n\nexport interface Common {\n noDataMessage(): string;\n noDataMessage(_: string): this;\n loadingMessage(): string;\n loadingMessage(_: string): this;\n pagination(): boolean;\n pagination(_: boolean): this;\n pageSize(): number;\n pageSize(_: number): this;\n sortable(): boolean;\n sortable(_: boolean): this;\n sortBy(): string;\n sortBy(_: string): this;\n sortByDescending(): boolean;\n sortByDescending(_: boolean): this;\n multiSelect(): boolean;\n multiSelect(_: boolean): this;\n renderHtml(): boolean;\n renderHtml(_: boolean): this;\n}\n\nCommon.prototype.publish(\"noDataMessage\", \"...empty...\", \"string\", \"No Data Message\");\nCommon.prototype.publish(\"loadingMessage\", \"loading...\", \"string\", \"Loading Message\");\nCommon.prototype.publish(\"pagination\", false, \"boolean\", \"Enable paging\");\nCommon.prototype.publish(\"pageSize\", 25, \"number\", \"Page size\");\nCommon.prototype.publish(\"sortable\", false, \"boolean\", \"Enable sorting by column\");\nCommon.prototype.publish(\"sortBy\", null, \"set\", \"Default 'sort by' Column ID\", function (this: Common) { return this.columns(); }, { optional: true });\nCommon.prototype.publish(\"sortByDescending\", false, \"boolean\", \"Default 'sort by' descending\", undefined, { disable: self => !self.sortBy() });\nCommon.prototype.publish(\"multiSelect\", false, \"boolean\", \"Multiple Selection\");\nCommon.prototype.publish(\"renderHtml\", true, \"boolean\", \"Render HTML\");\n\n", "import type * as dgrid_shim from \"@hpcc-js/dgrid-shim\";\n\nif (!globalThis[\"@hpcc-js/dgrid-shim\"]) {\n console.error(\"dgrid-shim not loaded, please add `<script src=\\\"https://cdn.jsdelivr.net/npm/@hpcc-js/dgrid-shim@2.26.0/dist/index.min.js\\\"></script>` or similar to your HTML file\");\n}\n\nexport const Deferred = globalThis[\"@hpcc-js/dgrid-shim\"].Deferred as typeof dgrid_shim.Deferred;\nexport const Memory = globalThis[\"@hpcc-js/dgrid-shim\"].Memory as typeof dgrid_shim.Memory;\nexport const QueryResults = globalThis[\"@hpcc-js/dgrid-shim\"].QueryResults as typeof dgrid_shim.QueryResults;\nexport const Grid = globalThis[\"@hpcc-js/dgrid-shim\"].Grid as typeof dgrid_shim.Grid;\nexport const PagingGrid = globalThis[\"@hpcc-js/dgrid-shim\"].PagingGrid as typeof dgrid_shim.PagingGrid;\nexport const domConstruct = globalThis[\"@hpcc-js/dgrid-shim\"].domConstruct as typeof dgrid_shim.domConstruct;\n", "\nfunction entitiesEncode(str) {\n return String(str).replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\");\n}\n\nfunction safeEncode(item) {\n switch (Object.prototype.toString.call(item)) {\n case \"[object Undefined]\":\n case \"[object Boolean]\":\n case \"[object Number]\":\n return item;\n case \"[object String]\":\n return entitiesEncode(item);\n default:\n console.warn(\"Unknown cell type: \" + Object.prototype.toString.call(item));\n }\n return item;\n}\n\nconst LINE_SPLITTER = \"<br><hr class='dgrid-fakeline'>\";\nconst LINE_SPLITTER2 = \"<br><hr class='dgrid-fakeline' style='visibility: hidden'>\";\n\nexport interface ColumnType {\n field: string;\n leafID: string;\n label: string;\n idx: number;\n className: string;\n sortable: boolean;\n isSet: boolean;\n width?: number;\n formatter?: CellFormatter;\n renderCell?: CellRenderer;\n children?: ColumnType[];\n}\nexport interface RowType {\n __hpcc_id: number;\n __origRow: any[];\n [colIdx: number]: any;\n}\nexport type CellFormatter = (this: ColumnType, cell: any, row: RowType) => string;\nexport type CellRenderer = (this: ColumnType, row: RowType, cell: any, cellElement: HTMLElement) => HTMLElement | void;\n\nexport class RowFormatter {\n private _columns: ColumnType[];\n private _flattenedColumns = [];\n private _columnIdx = {};\n private _formattedRow = {};\n\n constructor(columns: ColumnType[], protected _renderHtml) {\n this._columns = columns;\n this.flattenColumns(columns);\n }\n\n flattenColumns(columns: ColumnType[]) {\n for (const column of columns) {\n this.flattenColumn(column);\n }\n }\n\n flattenColumn(column: ColumnType) {\n if (column.children) {\n for (const childColumn of column.children) this.flattenColumn(childColumn);\n } else {\n this._columnIdx[column.field] = this._flattenedColumns.length;\n this._flattenedColumns.push(column.field);\n }\n }\n\n format(row) {\n this._formattedRow = {};\n this.formatRow(this._columns, row);\n return this.row();\n }\n\n calcDepth(columns: ColumnType[], row) {\n let maxChildDepth = 1;\n for (const column of columns) {\n if (column.children && row[column.leafID]) {\n let childDepth = 0;\n for (const childRow of row[column.leafID]) {\n if (childRow instanceof Array) {\n }\n childDepth += this.calcDepth(column.children, childRow);\n }\n maxChildDepth = Math.max(maxChildDepth, childDepth);\n }\n }\n return maxChildDepth;\n }\n\n formatCell(column: ColumnType, cell, maxChildDepth) {\n if (column.children) {\n let childDepth = 0;\n if (!(cell instanceof Array)) {\n if (cell instanceof Object && cell.Row instanceof Array) { // Push fix in comms?\n cell = cell.Row;\n } else {\n cell = [cell];\n }\n }\n for (const row of cell) {\n childDepth = Math.max(childDepth, this.formatRow(column.children, row));\n }\n } else {\n if (column.isSet) {\n cell = JSON.stringify(cell.Item);\n }\n if (this._formattedRow[column.field] === undefined) {\n this._formattedRow[column.field] = \"\" + cell === undefined ? \"\" : (this._renderHtml ? cell : safeEncode(cell));\n } else {\n this._formattedRow[column.field] += LINE_SPLITTER;\n this._formattedRow[column.field] += \"\" + cell === undefined ? \"\" : (this._renderHtml ? cell : safeEncode(cell));\n }\n if (maxChildDepth > 1) {\n const paddingArr = [];\n paddingArr.length = maxChildDepth;\n const padding = paddingArr.join(LINE_SPLITTER2);\n this._formattedRow[column.field] += padding;\n }\n }\n }\n\n formatRow(columns: ColumnType[], row: { [key: string]: any } = [], rowIdx: number = 0) {\n const maxChildDepth = this.calcDepth(columns, row);\n for (const column of columns) {\n this.formatCell(column, row[column.leafID], maxChildDepth);\n }\n return maxChildDepth;\n }\n\n row() {\n const retVal = {};\n for (const column of this._flattenedColumns) {\n retVal[column] = this._formattedRow[column];\n }\n return retVal;\n }\n}\n", "import { Database } from \"@hpcc-js/common\";\nimport { Deferred } from \"./dgrid-shim.ts\";\nimport { CellFormatter, CellRenderer, ColumnType, RowFormatter } from \"./RowFormatter.ts\";\n\nexport class DBStore {\n private _db: Database.Grid;\n\n Model: null;\n idProperty: \"__hpcc_id\";\n\n constructor(db: Database.Grid) {\n this._db = db;\n }\n\n protected _renderHtml = true;\n renderHtml(_: boolean) {\n this._renderHtml = _;\n }\n\n db2Columns(sortable: boolean, fields: Database.Field[], prefix = \"\", formatter?: CellFormatter, renderCell?: CellRenderer): ColumnType[] {\n if (!fields) return [];\n return fields.map((field, idx) => {\n const label = field.label();\n const column: ColumnType = {\n label,\n leafID: \"\" + idx,\n field: prefix + idx,\n idx,\n className: \"resultGridCell\",\n sortable,\n isSet: false\n };\n switch (field.type()) {\n case \"nested\":\n column.children = this.db2Columns(false, field.children(), prefix + idx + \"_\", formatter);\n column.sortable = false;\n break;\n default:\n column.formatter = formatter;\n column.renderCell = renderCell;\n }\n return column;\n });\n }\n\n columns(sortable: boolean, formatter?: CellFormatter, renderCell?: CellRenderer) {\n return this.db2Columns(sortable, this._db.fields(), \"\", formatter, renderCell);\n }\n\n getIdentity(object) {\n return object.__hpcc_id;\n }\n\n get(row: number) {\n return this._db.row(row + 1);\n }\n\n _fetchRange(opts: { start: number, end: number }): object[] {\n const rowFormatter = new RowFormatter(this.columns(false), this._renderHtml);\n return this._db.data().slice(opts.start, opts.end).map((row, idx) => {\n const formattedRow: any = rowFormatter.format(row);\n return {\n ...formattedRow,\n __hpcc_id: opts.start + idx,\n __origRow: row\n };\n });\n }\n\n fetchRange(opts: { start: number, end: number }): Promise<object[]> {\n const data = this._fetchRange(opts);\n const retVal: any = new Deferred();\n retVal.totalLength = new Deferred();\n retVal.resolve(data);\n retVal.totalLength.resolve(this._db.length() - 1);\n return retVal;\n }\n\n sort(opts) {\n this._db.data().sort((l, r) => {\n for (const item of opts) {\n const idx = item.property;\n if ((l[idx] === undefined && r[idx] !== undefined) || l[idx] < r[idx]) return item.descending ? 1 : -1;\n if ((l[idx] !== undefined && r[idx] === undefined) || l[idx] > r[idx]) return item.descending ? -1 : 1;\n }\n return 0;\n });\n return this;\n }\n}\n", "(function(){\n if (!document.getElementById('f79652bc')) {\n var e = document.createElement('style');\n e.id = 'f79652bc';\n e.textContent = `\uFEFF\n.dijitTooltip {\n\tposition: absolute;\n\tz-index: 2000;\n\tdisplay: block;\n\t\n\tleft: 0;\n\ttop: -10000px;\n\toverflow: visible;\n\n font-family: Verdana, Geneva, sans-serif;\n font-size: 12px;\n}\n.dijitTooltipContainer {\n\tborder: solid black 2px;\n\tbackground: #b8b5b5;\n\tcolor: black;\n\tfont-size: small;\n}\n.dijitTooltipFocusNode {\n\tpadding: 2px 2px 2px 2px;\n}\n.dijitTooltipConnector {\n\tposition: absolute;\n}\n.dj_a11y .dijitTooltipConnector {\n\tdisplay: none;\t\n}\n.dijitTooltipData {\n\tdisplay:none;\n}\n\n.dijitTooltip {\n/* the outermost dom node, holding the connector and container */\n background: transparent; /* make the area on the sides of the arrow transparent */\n}\n.dijitTooltipContainer {\n background-color: #424242;\n opacity: 1;\n -ms-filter: none;\n filter: none;\n padding: 4px 8px;\n border-radius: 3px;\n}\n.dijitTooltip .dijitTooltipContainer {\n color: #fff;\n border: 0 none;\n}\n.dijitTooltipConnector {\n/* the arrow */\n z-index: 2;\n width: auto;\n height: auto;\n opacity: 1;\n -ms-filter: none;\n filter: none;\n}\n.dijitTooltipABRight .dijitTooltipConnector {\n/* above or below tooltip, but the arrow appears on the right,\n\t\t\tand the right edges of target and tooltip are aligned rather than the left */\n left: auto !important;\n right: 8px;\n}\n.dijitTooltipBelow {\n/* leave room for arrow above content */\n padding-top: 4px;\n}\n.dijitTooltipBelow .dijitTooltipConnector {\n/* the arrow piece for tooltips below an element */\n top: 0;\n left: 8px;\n border-bottom: 4px solid #424242;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-top: 0;\n}\n.dijitTooltipAbove {\n/* leave room for arrow below content */\n padding-bottom: 4px;\n}\n.dijitTooltipAbove .dijitTooltipConnector {\n/* the arrow piece for tooltips above an element */\n bottom: 0;\n left: 8px;\n border-top: 4px solid #424242;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-bottom: 0;\n}\n.dijitTooltipLeft {\n padding-right: 4px;\n}\n.dijitTooltipLeft .dijitTooltipConnector {\n/* the arrow piece for tooltips to the left of an element, bottom borders aligned */\n right: 0;\n border-left: 4px solid #424242;\n border-bottom: 4px solid transparent;\n border-top: 4px solid transparent;\n border-right: 0;\n}\n.dijitTooltipRight {\n padding-left: 4px;\n}\n.dijitTooltipRight .dijitTooltipConnector {\n/* the arrow piece for tooltips to the right of an element, bottom borders aligned */\n left: 0;\n border-bottom: 4px solid transparent;\n border-top: 4px solid transparent;\n border-right: 4px solid #424242;\n}\n\n.dgrid {\n position: relative;\n overflow: hidden;\n border: 1px solid #ddd;\n height: 30em;\n display: block;\n}\n.dgrid-header {\n background-color: #eee;\n}\n.dgrid-header-row {\n position: absolute;\n right: 17px;\n left: 0;\n}\n.dgrid-header-scroll {\n position: absolute;\n top: 0;\n right: 0;\n}\n.dgrid-footer {\n position: absolute;\n bottom: 0;\n width: 100%;\n}\n.dgrid-header-hidden {\n font-size: 0;\n height: 0 !important;\n border-top: none !important;\n border-bottom: none !important;\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n.dgrid-footer-hidden {\n display: none;\n}\n.dgrid-sortable {\n cursor: pointer;\n}\n.dgrid-header,\n.dgrid-header-row,\n.dgrid-footer {\n overflow: hidden;\n background-color: #eee;\n}\n.dgrid-row-table {\n border-collapse: collapse;\n border: none;\n table-layout: fixed;\n empty-cells: show;\n width: 100%;\n height: 100%;\n}\n.dgrid-cell {\n padding: 3px;\n text-align: left;\n overflow: hidden;\n vertical-align: top;\n border: 1px solid #ddd;\n border-top-style: none;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n text-overflow: ellipsis; \n white-space: nowrap; \n}\n.dgrid-content {\n position: relative;\n height: 99%;\n}\n.dgrid-scroller {\n overflow-x: auto;\n overflow-y: scroll;\n position: absolute;\n top: 0px;\n margin-top: 25px;\n bottom: 0px;\n width: 100%;\n}\n.dgrid-preload {\n font-size: 0;\n line-height: 0;\n}\n.dgrid-loading {\n position: relative;\n height: 100%;\n}\n.dgrid-above {\n position: absolute;\n bottom: 0;\n}\n.ui-icon {\n width: 12px;\n height: 16px;\n background-image: url(data:image/png;base64,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);\n}\n.dgrid-sort-arrow {\n background-position: -64px -16px;\n display: block;\n float: right;\n margin: 0 4px 0 5px;\n height: 12px;\n}\n.dgrid-sort-up .dgrid-sort-arrow {\n background-position: 0px -16px;\n}\n.dgrid-selected {\n background-color: #bbb;\n}\n.dgrid-input {\n width: 99%;\n}\nhtml.has-mozilla .dgrid .dgrid-row:focus,\nhtml.has-mozilla .dgrid .dgrid-cell:focus {\n outline: 1px dotted;\n}\nhtml.has-mozilla .dgrid-focus {\n outline-offset: -1px;\n}\n.dgrid-scrollbar-measure {\n width: 100px;\n height: 100px;\n overflow: scroll;\n position: absolute;\n top: -9999px;\n}\n.dgrid-autoheight {\n height: auto;\n}\n.dgrid-autoheight .dgrid-scroller {\n position: relative;\n overflow-y: hidden;\n}\n.dgrid-autoheight .dgrid-header-scroll {\n display: none;\n}\n.dgrid-autoheight .dgrid-header {\n right: 0;\n}\n.dgrid-column-set {\n overflow: hidden;\n width: 100%;\n position: relative;\n height: 100%;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n}\n.dgrid-column-set-cell {\n vertical-align: top;\n height: 100%;\n}\n.dgrid-column-set-scroller-container {\n font-size: 0;\n position: absolute;\n bottom: 0;\n}\n.dgrid-autoheight .dgrid-column-set-scroller-container {\n position: relative;\n}\n.dgrid-column-set-scroller {\n display: inline-block;\n overflow-x: auto;\n overflow-y: hidden;\n}\n.dgrid-column-set-scroller-content {\n height: 1px;\n}\n.ui-icon-triangle-1-e {\n background-position: -32px -16px;\n}\n.ui-icon-triangle-1-se {\n background-position: -48px -16px;\n}\n.dgrid-expando-icon {\n width: 16px;\n height: 16px;\n}\n.dgrid-tree-container {\n -webkit-transition-duration: 0.3s;\n -moz-transition-duration: 0.3s;\n -o-transition-duration: 0.3s;\n -ms-transition-duration: 0.3s;\n transition-duration: 0.3s;\n overflow: hidden;\n}\n.dgrid-tree-container.dgrid-tree-resetting {\n -webkit-transition-duration: 0;\n -moz-transition-duration: 0;\n -o-transition-duration: 0;\n -ms-transition-duration: 0;\n transition-duration: 0;\n}\n.dgrid-hider-toggle {\n background-position: 0 -192px;\n background-color: transparent;\n border: none;\n cursor: pointer;\n position: absolute;\n right: 0;\n top: 0;\n}\n.dgrid-rtl-swap .dgrid-hider-toggle {\n right: auto;\n left: 0;\n}\n.dgrid-hider-menu {\n position: absolute;\n top: 0;\n right: 17px;\n width: 184px;\n background-color: #fff;\n border: 1px solid #000;\n z-index: 99999;\n padding: 4px;\n overflow-x: hidden;\n overflow-y: auto;\n}\n.dgrid-rtl-swap .dgrid-hider-menu {\n right: auto;\n left: 17px;\n}\n.dgrid-hider-menu-row {\n position: relative;\n padding: 2px;\n}\n.dgrid-hider-menu-check {\n position: absolute;\n top: 2px;\n left: 2px;\n padding: 0;\n}\n.dgrid-hider-menu-label {\n display: block;\n padding-left: 20px;\n}\n.dgrid-header .dojoDndTarget .dgrid-cell {\n display: table-cell;\n}\n.dgrid-header .dojoDndItemBefore {\n border-left: 2px dotted #000 !important;\n}\n.dgrid-header .dojoDndItemAfter {\n border-right: 2px dotted #000 !important;\n}\n.dgrid-column-resizer {\n cursor: col-resize;\n position: absolute;\n width: 2px;\n background-color: #666;\n z-index: 1000;\n}\n.dgrid-resize-handle {\n height: 100px;\n width: 0;\n position: absolute;\n right: -4px;\n top: -4px;\n cursor: col-resize;\n z-index: 999;\n border-left: 5px solid transparent;\n outline: none;\n}\n.dgrid-resize-header-container {\n height: 100%;\n}\n.dgrid-resize-guard {\n cursor: col-resize;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n}\nhtml.has-touch .dgrid-resize-handle {\n border-left: 20px solid transparent;\n}\nhtml.has-touch .dgrid-column-resizer {\n width: 2px;\n}\n.dgrid-resize-header-container {\n position: relative;\n}\n.dgrid-header .dgrid-cell {\n overflow: hidden;\n}\n.dgrid-spacer-row {\n height: 0;\n}\n.dgrid-spacer-row th {\n padding-top: 0;\n padding-bottom: 0;\n border-top: none;\n border-bottom: none;\n}\n.dgrid-status {\n padding: 2px;\n}\n.dgrid-pagination .dgrid-status {\n float: left;\n}\n.dgrid-pagination .dgrid-navigation,\n.dgrid-pagination .dgrid-page-size {\n float: right;\n}\n.dgrid-navigation .dgrid-page-link {\n cursor: pointer;\n font-weight: bold;\n text-decoration: none;\n color: inherit;\n padding: 0 4px;\n}\n.dgrid-first,\n.dgrid-last,\n.dgrid-next,\n.dgrid-previous {\n font-size: 130%;\n}\n.dgrid-pagination .dgrid-page-disabled {\n color: #aaa;\n cursor: default;\n}\n.dgrid-page-input {\n margin-top: 1px;\n width: 2em;\n text-align: center;\n}\n.dgrid-page-size {\n margin: 1px 4px 0 4px;\n}\n.dgrid-rtl-swap .dgrid-header-row {\n right: 0;\n left: 17px;\n}\n.dgrid-rtl-swap .dgrid-header-scroll {\n left: 0px;\n right: auto;\n}\n.dgrid-rtl .dgrid-cell {\n text-align: right;\n}\n.dgrid-rtl .dgrid-sort-arrow {\n float: left;\n margin: 0 5px 0 4px;\n}\n.dgrid-rtl .ui-icon-triangle-1-e {\n background-position: -96px -16px;\n}\n.dgrid-rtl .ui-icon-triangle-1-se {\n background-position: -80px -16px;\n}\n.dgrid-rtl .dgrid-pagination .dgrid-status {\n float: right;\n}\n.dgrid-rtl .dgrid-pagination .dgrid-page-size {\n float: right;\n}\n.dgrid-rtl .dgrid-pagination .dgrid-navigation {\n float: left;\n}\n.dgrid-rtl.dgrid-autoheight .dgrid-header {\n left: 0;\n}\n\n.dgrid_Table .placeholder {\n border:none;\n padding:0px;\n overflow:hidden;\n}\n\n.dgrid_Table .dgrid-fakeline {\n border: 0px;\n border-bottom: 1px solid rgb(221, 221, 221);\n margin: 0px;\n margin-left:-3px;\n margin-top:2px;\n margin-right:-3px;\n margin-bottom:2px;\n}\n\n.dgrid_Table .dgrid-sortable .dgrid-sort-arrow.ui-icon {\n margin:0px;\n}`;\n document.head.appendChild(e);\n }\n })();", "import type { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { Deferred, QueryResults } from \"./dgrid-shim.ts\";\nimport { ColumnType, RowFormatter } from \"./RowFormatter.ts\";\n\nexport interface IDatasource {\n id: () => string;\n hash: () => string;\n label: () => string;\n\n outFields: () => DDL2.IField[];\n total: () => number;\n fetch: (from: number, count: number) => Promise<ReadonlyArray<object>>;\n}\n\nexport class DatasourceCache implements IDatasource {\n protected _datasource: IDatasource;\n _prevHash: string;\n _fetchCache: { [key: string]: Promise<ReadonlyArray<object>> } = {};\n\n constructor(datasource: IDatasource) {\n this._datasource = datasource;\n }\n\n validateCache() {\n const hash = this.hash();\n if (this._prevHash !== hash) {\n this._prevHash = hash;\n this._fetchCache = {};\n }\n }\n\n id() { return this._datasource.id(); }\n hash() { return this._datasource.hash(); }\n label() { return this._datasource.label(); }\n\n outFields() { return this._datasource.outFields(); }\n total() { return this._datasource.total(); }\n fetch(from: number, count: number): Promise<ReadonlyArray<object>> {\n this.validateCache();\n const cacheID = `${from}->${count}`;\n let retVal = this._fetchCache[cacheID];\n if (!retVal) {\n retVal = this._datasource.fetch(from, count);\n this._fetchCache[cacheID] = retVal;\n }\n return retVal;\n }\n}\n\nexport class DatasourceStore {\n _datasource: DatasourceCache;\n _columnsIdx: { [key: string]: number } = {};\n _columns;\n\n private rowFormatter: RowFormatter;\n\n constructor(datasource: IDatasource, renderHtml: boolean) {\n this._datasource = new DatasourceCache(datasource);\n\n this._columnsIdx = {};\n this._columns = this.db2Columns(this._datasource.outFields()).map((column, idx) => {\n this._columnsIdx[column.field] = idx;\n return column;\n });\n this.rowFormatter = new RowFormatter(this._columns, renderHtml);\n }\n\n columns() {\n return this._columns;\n }\n\n db2Columns(fields: DDL2.IField[], prefix = \"\"): ColumnType[] {\n if (!fields) return [];\n return fields.map((field, idx) => {\n const column: ColumnType = {\n field: prefix + field.id,\n leafID: field.id,\n label: field.id,\n idx,\n className: \"resultGridCell\",\n sortable: true,\n isSet: false\n };\n if (field.type === \"dataset\") {\n column.children = this.db2Columns(field.children, prefix + field.id + \"_\");\n } else {\n column.formatter = (cell, row) => {\n switch (typeof cell) {\n case \"string\":\n return cell.replace(/\\t/g, \"&nbsp;&nbsp;&nbsp;&nbsp;\");\n }\n return cell;\n };\n }\n return column;\n });\n }\n\n getIdentity(row) {\n return row.__hpcc_id;\n }\n\n _request(start, end): Promise<{ totalLength: number, data: any[] }> {\n if (!this._datasource) return Promise.resolve({ totalLength: 0, data: [] });\n const retVal = this._datasource.fetch(start, end - start).then(response => {\n return {\n totalLength: this._datasource.total(),\n data: response.map((row, idx) => {\n const formattedRow: any = this.rowFormatter.format(row);\n formattedRow.__hpcc_id = start + idx;\n formattedRow.__origRow = row;\n return formattedRow;\n })\n };\n });\n return retVal;\n }\n\n fetchRange(options): Promise<any[]> {\n const retVal = new Deferred();\n this._request(options.start, options.end).then(response => retVal.resolve(response));\n return new QueryResults(retVal.then(response => response.data), {\n totalLength: retVal.then(response => response.totalLength)\n });\n }\n}\n", "\uFEFFimport { Widget } from \"@hpcc-js/common\";\nimport { Memory } from \"./dgrid-shim.ts\";\nimport { Common } from \"./Common.ts\";\nimport { DatasourceStore, IDatasource } from \"./DatasourceStore.ts\";\n\nexport class DatasourceTable extends Common {\n _prevDatasource?: IDatasource;\n\n constructor() {\n super();\n }\n\n invalidate(): this {\n delete this._prevDatasource;\n return this;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n }\n render(callback?: (w: Widget) => void): this {\n return super.render(w => {\n if (this._prevDatasource !== this.datasource()) {\n this._dgrid.set(\"collection\", new Memory());\n this._dgrid.set(\"columns\", []);\n this._prevDatasource = this.datasource();\n if (this._prevDatasource) {\n const store = new DatasourceStore(this._prevDatasource, this.renderHtml());\n this._dgrid.set(\"columns\", store.columns());\n this._dgrid.set(\"collection\", store);\n if (callback) {\n callback(w);\n }\n } else {\n if (callback) {\n callback(w);\n }\n }\n } else {\n if (callback) {\n callback(w);\n }\n }\n });\n }\n\n click(row, col, sel) {\n }\n}\nDatasourceTable.prototype._class += \" dgrid_DatasourceTable\";\n\nexport interface DatasourceTable {\n datasource(): IDatasource;\n datasource(_: IDatasource): this;\n}\n\nDatasourceTable.prototype.publish(\"datasource\", null, \"object\", \"Datasource\");\n\n", "\uFEFFimport { Palette, PropertyExt, Field } from \"@hpcc-js/common\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { format as d3Format } from \"d3-format\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Common } from \"./Common.ts\";\nimport { CellFormatter, CellRenderer, ColumnType, RowType } from \"./RowFormatter.ts\";\n\n// ColumnPalette ---\nexport class ColumnFormat extends PropertyExt {\n _owner: Table;\n\n constructor() {\n super();\n }\n\n owner(): Table;\n owner(_: Table): this;\n owner(_?: Table): Table | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.column();\n }\n\n formatterFunc(): CellFormatter | undefined {\n const defaultFormatter = this._owner.formatterFunc();\n if (this.valid() && this.format()) {\n const numberFormatter = d3Format(this.format());\n\n return function (this: ColumnType, cell: any, row: RowType): string {\n if (typeof cell === \"number\")\n return numberFormatter(cell);\n return defaultFormatter.call(this, cell, row);\n };\n }\n return defaultFormatter;\n }\n\n renderCellFunc(): CellRenderer | undefined {\n const defaultRenderCell = this._owner.renderCellFunc();\n const defaultFormatter = this.formatterFunc();\n if (this.valid() && this.paletteID()) {\n const columns = this._owner.columns();\n const palette = Palette.rainbow(this.paletteID());\n const min = this.min();\n const max = this.max();\n const valueColIdx = this.valueColumn() ? columns.indexOf(this.valueColumn()) : undefined;\n return function (this: ColumnType, row: RowType, cell: any, cellElement: HTMLElement): HTMLElement | void {\n if (defaultRenderCell) {\n defaultRenderCell.call(this, row, cell, cellElement);\n }\n const value = valueColIdx ? row.__origRow[valueColIdx] : cell;\n const background = palette(value, min, max);\n const cellText: any = defaultFormatter.call(this, cell, row);\n d3Select(cellElement)\n .style(\"background\", background)\n .style(\"color\", background && Palette.textColor(background))\n .text(cellText?.html ?? cellText ?? cell)\n ;\n };\n }\n return defaultRenderCell;\n }\n}\nColumnFormat.prototype._class += \" dgrid_Table.ColumnFormat\";\n\nexport interface ColumnFormat {\n column(): string;\n column(_: string): this;\n width(): number;\n width(_: number): this;\n format(): string;\n format(_: string): this;\n paletteID(): string;\n paletteID(_: string): this;\n min(): number;\n min(_: number): this;\n max(): number;\n max(_: number): this;\n valueColumn(): string;\n valueColumn(_: string): this;\n}\nColumnFormat.prototype.publish(\"column\", null, \"set\", \"Column\", function (this: ColumnFormat) { return this._owner.columns(); }, { optional: true });\nColumnFormat.prototype.publish(\"width\", null, \"number\", \"Width\", null, { optional: true });\nColumnFormat.prototype.publish(\"format\", null, \"string\", \"Format (d3-format)\", null, { optional: true });\nColumnFormat.prototype.publish(\"paletteID\", null, \"set\", \"Color palette for this widget\", [\"\", ...Palette.rainbow(\"default\").switch()], { optional: true });\nColumnFormat.prototype.publish(\"min\", 0, \"number\", \"Min Value\", null, { disable: (cf: ColumnFormat) => !cf.paletteID() });\nColumnFormat.prototype.publish(\"max\", 100, \"number\", \"Max Value\", null, { disable: (cf: ColumnFormat) => !cf.paletteID() });\nColumnFormat.prototype.publish(\"valueColumn\", null, \"set\", \"Column\", function (this: ColumnFormat) { return this._owner.columns(); }, { optional: true, disable: (cf: ColumnFormat) => !cf.paletteID() });\n\n// Table ---\nexport class Table extends Common {\n private _prevColsHash;\n private _prevFieldsHash;\n _colsRefresh = false;\n _dataRefresh = false;\n\n constructor() {\n super();\n }\n\n fields(): Field[];\n fields(_: Field[]): this;\n fields(_?: Field[]): Field[] | this {\n const retVal = super.fields.apply(this, arguments as any);\n if (arguments.length) {\n const hash = hashSum({ _ });\n if (this._prevFieldsHash !== hash) {\n this._prevFieldsHash = hash;\n this._colsRefresh = true;\n }\n }\n return retVal;\n }\n\n columns(): string[];\n columns(_: string[], asDefault?: boolean): this;\n columns(_?: string[], asDefault?: boolean): string[] | this {\n const retVal = super.columns.apply(this, arguments as any);\n if (arguments.length) {\n const hash = hashSum({ _ });\n if (this._prevColsHash !== hash) {\n this._prevColsHash = hash;\n this._colsRefresh = true;\n }\n }\n return retVal;\n }\n\n data(): any;\n data(_: any): this;\n data(_?: any): any | this {\n const retVal = super.data.apply(this, arguments as any);\n if (arguments.length) {\n this._dataRefresh = true;\n }\n return retVal;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n guessWidth(columns, data) {\n const sortablePadding = this.sortable() ? 12 : 0;\n for (const column of columns) {\n if (column.children) {\n let sampleData = [];\n for (let i = 0; i < Math.min(3, data.length); ++i) {\n sampleData = sampleData.concat(data[i][column.idx]);\n }\n this.guessWidth(column.children, sampleData);\n } else {\n column.width = data.reduce((prevVal: number, row) => {\n const cell = (\"\" + row[column.idx]).trim();\n return Math.max(prevVal, this.textSize(cell).width);\n }, this.textSize(\"\" + column.label, undefined, undefined, true).width + sortablePadding) + 8; // +12 for the sort icon, +8 for the cell padding.\n }\n }\n }\n\n _prevHash;\n update(domNode, element) {\n super.update(domNode, element);\n const hash = this.hashSum();\n if (this._prevHash !== hash) {\n this._prevHash = hash;\n this._colsRefresh = true;\n }\n if (this._colsRefresh) {\n this._columns = this._store.columns(this.sortable(), this.formatterFunc(), this.renderCellFunc());\n switch (this.columnWidth()) {\n case \"auto\":\n const tenRows = this.data().filter((row, idx) => idx < 10);\n this.guessWidth(this._columns, tenRows);\n break;\n }\n const columns = this.columns();\n for (const columnFormat of this.columnFormats()) {\n if (columnFormat.valid()) {\n const colIdx = columns.indexOf(columnFormat.column());\n if (this._columns[colIdx]) {\n this._columns[colIdx].hidden = columnFormat.width() === 0;\n this._columns[colIdx].width = columnFormat.width() || this._columns[colIdx].width;\n this._columns[colIdx].formatter = columnFormat.formatterFunc();\n this._columns[colIdx].renderCell = columnFormat.renderCellFunc();\n }\n }\n }\n this._dgrid.set(\"columns\", this._columns.filter(col => !col.hidden));\n this._colsRefresh = false;\n }\n if (this._colsRefresh || this._dataRefresh) {\n if (this._colsRefresh) {\n this._dgrid.refresh({});\n } else {\n this._dgrid.refresh();\n }\n this._colsRefresh = false;\n this._dataRefresh = false;\n }\n }\n\n exit(domNode, element) {\n delete this._prevColsHash;\n delete this._prevFieldsHash;\n super.exit(domNode, element);\n }\n\n // Cell ---\n formatterFunc(): CellFormatter | undefined {\n return function (this: ColumnType, cell: any, row: RowType): string | any {\n switch (typeof cell) {\n case \"string\":\n return {\n html: cell.replace(/\\t/g, \"&nbsp;&nbsp;&nbsp;&nbsp;\").trim()\n };\n case \"undefined\":\n return \"\";\n }\n return cell;\n };\n }\n\n renderCellFunc(): CellRenderer | undefined {\n return undefined; // Undefined will defualt to formatter ---\n }\n\n // Events ---\n click(row, col, sel) {\n }\n}\nTable.prototype._class += \" dgrid_Table\";\n\nexport interface Table {\n columnWidth(): \"auto\" | \"none\";\n columnWidth(_: \"auto\" | \"none\"): this;\n columnFormats(): ColumnFormat[];\n columnFormats(_: ColumnFormat[]): this;\n}\n\nTable.prototype.publish(\"columnWidth\", \"auto\", \"set\", \"Default column width\", [\"auto\", \"none\"]);\nTable.prototype.publish(\"columnFormats\", [], \"propertyArray\", \"Source Columns\", null, { autoExpand: ColumnFormat });\n"],
5
- "mappings": "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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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",
6
- "names": ["PKG_NAME", "PKG_VERSION", "BUILD_VERSION", "HTMLWidget", "Deferred", "Memory", "QueryResults", "Grid", "PagingGrid", "domConstruct", "entitiesEncode", "str", "__name", "safeEncode", "item", "LINE_SPLITTER", "LINE_SPLITTER2", "RowFormatter", "columns", "_renderHtml", "column", "childColumn", "row", "maxChildDepth", "childDepth", "childRow", "cell", "paddingArr", "padding", "rowIdx", "retVal", "DBStore", "__name", "db", "_", "sortable", "fields", "prefix", "formatter", "renderCell", "field", "idx", "column", "object", "row", "opts", "rowFormatter", "RowFormatter", "data", "retVal", "Deferred", "l", "item", "e", "Common", "HTMLWidget", "__name", "DBStore", "idx", "_", "retVal", "id", "storeItem", "first", "row", "domNode", "element", "PagingGrid", "Grid", "evt", "col", "sel", "more", "self", "DatasourceCache", "__name", "datasource", "hash", "from", "count", "cacheID", "retVal", "DatasourceStore", "renderHtml", "column", "idx", "RowFormatter", "fields", "prefix", "field", "cell", "row", "start", "end", "response", "formattedRow", "options", "Deferred", "QueryResults", "DatasourceTable", "Common", "__name", "domNode", "element", "callback", "w", "Memory", "store", "DatasourceStore", "row", "col", "sel", "Palette", "PropertyExt", "hashSum", "d3Format", "d3Select", "ColumnFormat", "PropertyExt", "__name", "_", "defaultFormatter", "numberFormatter", "d3Format", "cell", "row", "defaultRenderCell", "columns", "palette", "Palette", "min", "max", "valueColIdx", "cellElement", "value", "background", "cellText", "d3Select", "cf", "Table", "Common", "retVal", "hash", "hashSum", "asDefault", "domNode", "element", "data", "sortablePadding", "column", "sampleData", "i", "prevVal", "tenRows", "idx", "columnFormat", "colIdx", "col", "sel"]
7
- }
1
+ {"version":3,"file":"index.js","sources":["../src/__package__.ts","../src/dgrid-shim.ts","../src/RowFormatter.ts","../src/DBStore.ts","../src/Common.ts","../src/DatasourceStore.ts","../src/DatasourceTable.ts","../src/Table.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/dgrid\";\nexport const PKG_VERSION = \"3.1.0\";\nexport const BUILD_VERSION = \"3.2.1\";\n","import type * as dgrid_shim from \"@hpcc-js/dgrid-shim\";\n\nif (!globalThis[\"@hpcc-js/dgrid-shim\"]) {\n console.error(\"dgrid-shim not loaded, please add `<script src=\\\"https://cdn.jsdelivr.net/npm/@hpcc-js/dgrid-shim@2.26.0/dist/index.min.js\\\"></script>` or similar to your HTML file\");\n}\n\nexport const Deferred = globalThis[\"@hpcc-js/dgrid-shim\"].Deferred as typeof dgrid_shim.Deferred;\nexport const Memory = globalThis[\"@hpcc-js/dgrid-shim\"].Memory as typeof dgrid_shim.Memory;\nexport const QueryResults = globalThis[\"@hpcc-js/dgrid-shim\"].QueryResults as typeof dgrid_shim.QueryResults;\nexport const Grid = globalThis[\"@hpcc-js/dgrid-shim\"].Grid as typeof dgrid_shim.Grid;\nexport const PagingGrid = globalThis[\"@hpcc-js/dgrid-shim\"].PagingGrid as typeof dgrid_shim.PagingGrid;\nexport const domConstruct = globalThis[\"@hpcc-js/dgrid-shim\"].domConstruct as typeof dgrid_shim.domConstruct;\n","\nfunction entitiesEncode(str) {\n return String(str).replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\");\n}\n\nfunction safeEncode(item) {\n switch (Object.prototype.toString.call(item)) {\n case \"[object Undefined]\":\n case \"[object Boolean]\":\n case \"[object Number]\":\n return item;\n case \"[object String]\":\n return entitiesEncode(item);\n default:\n console.warn(\"Unknown cell type: \" + Object.prototype.toString.call(item));\n }\n return item;\n}\n\nconst LINE_SPLITTER = \"<br><hr class='dgrid-fakeline'>\";\nconst LINE_SPLITTER2 = \"<br><hr class='dgrid-fakeline' style='visibility: hidden'>\";\n\nexport interface ColumnType {\n field: string;\n leafID: string;\n label: string;\n idx: number;\n className: string;\n sortable: boolean;\n isSet: boolean;\n width?: number;\n formatter?: CellFormatter;\n renderCell?: CellRenderer;\n children?: ColumnType[];\n}\nexport interface RowType {\n __hpcc_id: number;\n __origRow: any[];\n [colIdx: number]: any;\n}\nexport type CellFormatter = (this: ColumnType, cell: any, row: RowType) => string;\nexport type CellRenderer = (this: ColumnType, row: RowType, cell: any, cellElement: HTMLElement) => HTMLElement | void;\n\nexport class RowFormatter {\n private _columns: ColumnType[];\n private _flattenedColumns = [];\n private _columnIdx = {};\n private _formattedRow = {};\n\n constructor(columns: ColumnType[], protected _renderHtml) {\n this._columns = columns;\n this.flattenColumns(columns);\n }\n\n flattenColumns(columns: ColumnType[]) {\n for (const column of columns) {\n this.flattenColumn(column);\n }\n }\n\n flattenColumn(column: ColumnType) {\n if (column.children) {\n for (const childColumn of column.children) this.flattenColumn(childColumn);\n } else {\n this._columnIdx[column.field] = this._flattenedColumns.length;\n this._flattenedColumns.push(column.field);\n }\n }\n\n format(row) {\n this._formattedRow = {};\n this.formatRow(this._columns, row);\n return this.row();\n }\n\n calcDepth(columns: ColumnType[], row) {\n let maxChildDepth = 1;\n for (const column of columns) {\n if (column.children && row[column.leafID]) {\n let childDepth = 0;\n for (const childRow of row[column.leafID]) {\n if (childRow instanceof Array) {\n }\n childDepth += this.calcDepth(column.children, childRow);\n }\n maxChildDepth = Math.max(maxChildDepth, childDepth);\n }\n }\n return maxChildDepth;\n }\n\n formatCell(column: ColumnType, cell, maxChildDepth) {\n if (column.children) {\n let childDepth = 0;\n if (!(cell instanceof Array)) {\n if (cell instanceof Object && cell.Row instanceof Array) { // Push fix in comms?\n cell = cell.Row;\n } else {\n cell = [cell];\n }\n }\n for (const row of cell) {\n childDepth = Math.max(childDepth, this.formatRow(column.children, row));\n }\n } else {\n if (column.isSet) {\n cell = JSON.stringify(cell.Item);\n }\n if (this._formattedRow[column.field] === undefined) {\n this._formattedRow[column.field] = \"\" + (cell === undefined ? \"\" : (this._renderHtml ? cell : safeEncode(cell)));\n } else {\n this._formattedRow[column.field] += LINE_SPLITTER;\n this._formattedRow[column.field] += \"\" + (cell === undefined ? \"\" : (this._renderHtml ? cell : safeEncode(cell)));\n }\n if (maxChildDepth > 1) {\n const paddingArr = [];\n paddingArr.length = maxChildDepth;\n const padding = paddingArr.join(LINE_SPLITTER2);\n this._formattedRow[column.field] += padding;\n }\n }\n }\n\n formatRow(columns: ColumnType[], row: { [key: string]: any } = [], rowIdx: number = 0) {\n const maxChildDepth = this.calcDepth(columns, row);\n for (const column of columns) {\n this.formatCell(column, row[column.leafID], maxChildDepth);\n }\n return maxChildDepth;\n }\n\n row() {\n const retVal = {};\n for (const column of this._flattenedColumns) {\n retVal[column] = this._formattedRow[column];\n }\n return retVal;\n }\n}\n","import { Database } from \"@hpcc-js/common\";\nimport { Deferred } from \"./dgrid-shim.ts\";\nimport { CellFormatter, CellRenderer, ColumnType, RowFormatter } from \"./RowFormatter.ts\";\n\nexport class DBStore {\n private _db: Database.Grid;\n\n Model: null;\n idProperty: \"__hpcc_id\";\n\n constructor(db: Database.Grid) {\n this._db = db;\n }\n\n protected _renderHtml = true;\n renderHtml(_: boolean) {\n this._renderHtml = _;\n }\n\n db2Columns(sortable: boolean, fields: Database.Field[], prefix = \"\", formatter?: CellFormatter, renderCell?: CellRenderer): ColumnType[] {\n if (!fields) return [];\n return fields.map((field, idx) => {\n const label = field.label();\n const column: ColumnType = {\n label,\n leafID: \"\" + idx,\n field: prefix + idx,\n idx,\n className: \"resultGridCell\",\n sortable,\n isSet: false\n };\n switch (field.type()) {\n case \"nested\":\n column.children = this.db2Columns(false, field.children(), prefix + idx + \"_\", formatter);\n column.sortable = false;\n break;\n default:\n column.formatter = formatter;\n column.renderCell = renderCell;\n }\n return column;\n });\n }\n\n columns(sortable: boolean, formatter?: CellFormatter, renderCell?: CellRenderer) {\n return this.db2Columns(sortable, this._db.fields(), \"\", formatter, renderCell);\n }\n\n getIdentity(object) {\n return object.__hpcc_id;\n }\n\n get(row: number) {\n return this._db.row(row + 1);\n }\n\n _fetchRange(opts: { start: number, end: number }): object[] {\n const rowFormatter = new RowFormatter(this.columns(false), this._renderHtml);\n return this._db.data().slice(opts.start, opts.end).map((row, idx) => {\n const formattedRow: any = rowFormatter.format(row);\n return {\n ...formattedRow,\n __hpcc_id: opts.start + idx,\n __origRow: row\n };\n });\n }\n\n fetchRange(opts: { start: number, end: number }): Promise<object[]> {\n const data = this._fetchRange(opts);\n const retVal: any = new Deferred();\n retVal.totalLength = new Deferred();\n retVal.resolve(data);\n retVal.totalLength.resolve(this._db.length() - 1);\n return retVal;\n }\n\n sort(opts) {\n this._db.data().sort((l, r) => {\n for (const item of opts) {\n const idx = item.property;\n if ((l[idx] === undefined && r[idx] !== undefined) || l[idx] < r[idx]) return item.descending ? 1 : -1;\n if ((l[idx] !== undefined && r[idx] === undefined) || l[idx] > r[idx]) return item.descending ? -1 : 1;\n }\n return 0;\n });\n return this;\n }\n}\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { Grid, PagingGrid } from \"./dgrid-shim.ts\";\nimport { DBStore } from \"./DBStore.ts\";\n\nimport \"../src/Common.css\";\n\nexport class Common extends HTMLWidget {\n protected _columns = [];\n protected _store = new DBStore(this._db);\n protected _dgridDiv;\n protected _dgrid;\n protected _prevPaging;\n private _prevSortBy: string;\n private _prevSortByDescending: boolean;\n private _prevMultiSelect: boolean;\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n protected formatSortBy(): [{ property: string, descending: boolean }] | undefined {\n const idx = this.columns().indexOf(this.sortBy());\n return idx >= 0 ? [{ property: idx.toString(), descending: this.sortByDescending() }] : undefined;\n }\n\n protected _supressEvents;\n selection(): any[];\n selection(_: any[]): this;\n selection(_?: any[]): any[] | this {\n if (!arguments.length) {\n const retVal = [];\n for (const id in this._dgrid.selection) {\n if (this._dgrid.selection[id]) {\n const storeItem = this._store.get(+id);\n retVal.push(this.rowToObj(storeItem));\n }\n }\n return retVal;\n }\n this._supressEvents = true;\n this._dgrid?.clearSelection();\n let first = true;\n this.data().forEach((row, idx) => {\n if (_.indexOf(row) >= 0) {\n const row = this._dgrid?.row(idx);\n if (row.element && first) {\n first = false;\n row.element.scrollIntoView();\n }\n this._dgrid?.select(idx);\n }\n });\n this._supressEvents = false;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._dgridDiv = element.append(\"div\")\n .attr(\"class\", \"flat\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n this._store.renderHtml(this.renderHtml());\n\n if (!this._dgrid || this._prevPaging !== this.pagination() ||\n this._prevSortBy !== this.sortBy() ||\n this._prevSortByDescending !== this.sortByDescending() ||\n this._prevMultiSelect !== this.multiSelect()) {\n\n this._prevPaging = this.pagination();\n this._prevSortBy = this.sortBy();\n this._prevSortByDescending = this.sortByDescending();\n this._prevMultiSelect = this.multiSelect();\n if (this._dgrid) {\n this._dgrid.destroy();\n this._dgridDiv = element.append(\"div\")\n .attr(\"class\", \"flat\")\n ;\n }\n this._dgrid = new (this._prevPaging ? PagingGrid : Grid)({\n columns: this._columns,\n collection: this._store,\n sort: this.formatSortBy(),\n selectionMode: this.multiSelect() ? \"extended\" : \"single\",\n deselectOnRefresh: true,\n cellNavigation: false,\n pagingLinks: 1,\n pagingTextBox: true,\n previousNextArrows: true,\n firstLastArrows: true,\n rowsPerPage: this.pageSize(),\n pageSizeOptions: [1, 10, 25, 50, 100, 1000]\n }, this._dgridDiv.node());\n this._dgrid.on(\"dgrid-select\", (evt) => {\n if (this._supressEvents) return;\n if (evt.rows && evt.rows.length && evt.rows[0].data) {\n this.click(this.rowToObj(evt.rows[0].data.__origRow), \"\", true, { selection: this.selection() });\n }\n });\n this._dgrid.on(\"dgrid-deselect\", (evt) => {\n if (this._supressEvents) return;\n if (evt.rows && evt.rows.length && evt.rows[0].data) {\n this.click(this.rowToObj(evt.rows[0].data.__origRow), \"\", false, { selection: this.selection() });\n }\n });\n this._dgrid.refresh({});\n }\n this._dgrid.noDataMessage = `<span class='dojoxGridNoData'>${this.noDataMessage()}</span>`;\n this._dgrid.loadingMessage = `<span class='dojoxGridNoData'>${this.loadingMessage()}</span>`;\n\n this._dgridDiv\n .style(\"width\", this.width() + \"px\")\n .style(\"height\", this.height() - 2 + \"px\")\n ;\n this._dgrid.resize();\n }\n\n exit(domNode, element) {\n delete this._prevPaging;\n if (this._dgrid) {\n this._dgrid.destroy();\n delete this._dgrid;\n }\n super.exit(domNode, element);\n }\n\n click(row, col, sel, more) {\n }\n}\nCommon.prototype._class += \" dgrid_Common\";\n\nexport interface Common {\n noDataMessage(): string;\n noDataMessage(_: string): this;\n loadingMessage(): string;\n loadingMessage(_: string): this;\n pagination(): boolean;\n pagination(_: boolean): this;\n pageSize(): number;\n pageSize(_: number): this;\n sortable(): boolean;\n sortable(_: boolean): this;\n sortBy(): string;\n sortBy(_: string): this;\n sortByDescending(): boolean;\n sortByDescending(_: boolean): this;\n multiSelect(): boolean;\n multiSelect(_: boolean): this;\n renderHtml(): boolean;\n renderHtml(_: boolean): this;\n}\n\nCommon.prototype.publish(\"noDataMessage\", \"...empty...\", \"string\", \"No Data Message\");\nCommon.prototype.publish(\"loadingMessage\", \"loading...\", \"string\", \"Loading Message\");\nCommon.prototype.publish(\"pagination\", false, \"boolean\", \"Enable paging\");\nCommon.prototype.publish(\"pageSize\", 25, \"number\", \"Page size\");\nCommon.prototype.publish(\"sortable\", false, \"boolean\", \"Enable sorting by column\");\nCommon.prototype.publish(\"sortBy\", null, \"set\", \"Default 'sort by' Column ID\", function (this: Common) { return this.columns(); }, { optional: true });\nCommon.prototype.publish(\"sortByDescending\", false, \"boolean\", \"Default 'sort by' descending\", undefined, { disable: self => !self.sortBy() });\nCommon.prototype.publish(\"multiSelect\", false, \"boolean\", \"Multiple Selection\");\nCommon.prototype.publish(\"renderHtml\", true, \"boolean\", \"Render HTML\");\n\n","import type { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { Deferred, QueryResults } from \"./dgrid-shim.ts\";\nimport { ColumnType, RowFormatter } from \"./RowFormatter.ts\";\n\nexport interface IDatasource {\n id: () => string;\n hash: () => string;\n label: () => string;\n\n outFields: () => DDL2.IField[];\n total: () => number;\n fetch: (from: number, count: number) => Promise<ReadonlyArray<object>>;\n}\n\nexport class DatasourceCache implements IDatasource {\n protected _datasource: IDatasource;\n _prevHash: string;\n _fetchCache: { [key: string]: Promise<ReadonlyArray<object>> } = {};\n\n constructor(datasource: IDatasource) {\n this._datasource = datasource;\n }\n\n validateCache() {\n const hash = this.hash();\n if (this._prevHash !== hash) {\n this._prevHash = hash;\n this._fetchCache = {};\n }\n }\n\n id() { return this._datasource.id(); }\n hash() { return this._datasource.hash(); }\n label() { return this._datasource.label(); }\n\n outFields() { return this._datasource.outFields(); }\n total() { return this._datasource.total(); }\n fetch(from: number, count: number): Promise<ReadonlyArray<object>> {\n this.validateCache();\n const cacheID = `${from}->${count}`;\n let retVal = this._fetchCache[cacheID];\n if (!retVal) {\n retVal = this._datasource.fetch(from, count);\n this._fetchCache[cacheID] = retVal;\n }\n return retVal;\n }\n}\n\nexport class DatasourceStore {\n _datasource: DatasourceCache;\n _columnsIdx: { [key: string]: number } = {};\n _columns;\n\n private rowFormatter: RowFormatter;\n\n constructor(datasource: IDatasource, renderHtml: boolean) {\n this._datasource = new DatasourceCache(datasource);\n\n this._columnsIdx = {};\n this._columns = this.db2Columns(this._datasource.outFields()).map((column, idx) => {\n this._columnsIdx[column.field] = idx;\n return column;\n });\n this.rowFormatter = new RowFormatter(this._columns, renderHtml);\n }\n\n columns() {\n return this._columns;\n }\n\n db2Columns(fields: DDL2.IField[], prefix = \"\"): ColumnType[] {\n if (!fields) return [];\n return fields.map((field, idx) => {\n const column: ColumnType = {\n field: prefix + field.id,\n leafID: field.id,\n label: field.id,\n idx,\n className: \"resultGridCell\",\n sortable: true,\n isSet: false\n };\n if (field.type === \"dataset\") {\n column.children = this.db2Columns(field.children, prefix + field.id + \"_\");\n } else {\n column.formatter = (cell, row) => {\n switch (typeof cell) {\n case \"string\":\n return cell.replace(/\\t/g, \"&nbsp;&nbsp;&nbsp;&nbsp;\");\n }\n return cell;\n };\n }\n return column;\n });\n }\n\n getIdentity(row) {\n return row.__hpcc_id;\n }\n\n _request(start, end): Promise<{ totalLength: number, data: any[] }> {\n if (!this._datasource) return Promise.resolve({ totalLength: 0, data: [] });\n const retVal = this._datasource.fetch(start, end - start).then(response => {\n return {\n totalLength: this._datasource.total(),\n data: response.map((row, idx) => {\n const formattedRow: any = this.rowFormatter.format(row);\n formattedRow.__hpcc_id = start + idx;\n formattedRow.__origRow = row;\n return formattedRow;\n })\n };\n });\n return retVal;\n }\n\n fetchRange(options): Promise<any[]> {\n const retVal = new Deferred();\n this._request(options.start, options.end).then(response => retVal.resolve(response));\n return new QueryResults(retVal.then(response => response.data), {\n totalLength: retVal.then(response => response.totalLength)\n });\n }\n}\n","import { Widget } from \"@hpcc-js/common\";\nimport { Memory } from \"./dgrid-shim.ts\";\nimport { Common } from \"./Common.ts\";\nimport { DatasourceStore, IDatasource } from \"./DatasourceStore.ts\";\n\nexport class DatasourceTable extends Common {\n _prevDatasource?: IDatasource;\n\n constructor() {\n super();\n }\n\n invalidate(): this {\n delete this._prevDatasource;\n return this;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n }\n render(callback?: (w: Widget) => void): this {\n return super.render(w => {\n if (this._prevDatasource !== this.datasource()) {\n this._dgrid.set(\"collection\", new Memory());\n this._dgrid.set(\"columns\", []);\n this._prevDatasource = this.datasource();\n if (this._prevDatasource) {\n const store = new DatasourceStore(this._prevDatasource, this.renderHtml());\n this._dgrid.set(\"columns\", store.columns());\n this._dgrid.set(\"collection\", store);\n if (callback) {\n callback(w);\n }\n } else {\n if (callback) {\n callback(w);\n }\n }\n } else {\n if (callback) {\n callback(w);\n }\n }\n });\n }\n\n click(row, col, sel) {\n }\n}\nDatasourceTable.prototype._class += \" dgrid_DatasourceTable\";\n\nexport interface DatasourceTable {\n datasource(): IDatasource;\n datasource(_: IDatasource): this;\n}\n\nDatasourceTable.prototype.publish(\"datasource\", null, \"object\", \"Datasource\");\n\n","import { Palette, PropertyExt, Field } from \"@hpcc-js/common\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { format as d3Format } from \"d3-format\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Common } from \"./Common.ts\";\nimport { CellFormatter, CellRenderer, ColumnType, RowType } from \"./RowFormatter.ts\";\n\n// ColumnPalette ---\nexport class ColumnFormat extends PropertyExt {\n _owner: Table;\n\n constructor() {\n super();\n }\n\n owner(): Table;\n owner(_: Table): this;\n owner(_?: Table): Table | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.column();\n }\n\n formatterFunc(): CellFormatter | undefined {\n const defaultFormatter = this._owner.formatterFunc();\n if (this.valid() && this.format()) {\n const numberFormatter = d3Format(this.format());\n\n return function (this: ColumnType, cell: any, row: RowType): string {\n if (typeof cell === \"number\")\n return numberFormatter(cell);\n return defaultFormatter.call(this, cell, row);\n };\n }\n return defaultFormatter;\n }\n\n renderCellFunc(): CellRenderer | undefined {\n const defaultRenderCell = this._owner.renderCellFunc();\n const defaultFormatter = this.formatterFunc();\n if (this.valid() && this.paletteID()) {\n const columns = this._owner.columns();\n const palette = Palette.rainbow(this.paletteID());\n const min = this.min();\n const max = this.max();\n const valueColIdx = this.valueColumn() ? columns.indexOf(this.valueColumn()) : undefined;\n return function (this: ColumnType, row: RowType, cell: any, cellElement: HTMLElement): HTMLElement | void {\n if (defaultRenderCell) {\n defaultRenderCell.call(this, row, cell, cellElement);\n }\n const value = valueColIdx ? row.__origRow[valueColIdx] : cell;\n const background = palette(value, min, max);\n const cellText: any = defaultFormatter.call(this, cell, row);\n d3Select(cellElement)\n .style(\"background\", background)\n .style(\"color\", background && Palette.textColor(background))\n .text(cellText?.html ?? cellText ?? cell)\n ;\n };\n }\n return defaultRenderCell;\n }\n}\nColumnFormat.prototype._class += \" dgrid_Table.ColumnFormat\";\n\nexport interface ColumnFormat {\n column(): string;\n column(_: string): this;\n width(): number;\n width(_: number): this;\n format(): string;\n format(_: string): this;\n paletteID(): string;\n paletteID(_: string): this;\n min(): number;\n min(_: number): this;\n max(): number;\n max(_: number): this;\n valueColumn(): string;\n valueColumn(_: string): this;\n}\nColumnFormat.prototype.publish(\"column\", null, \"set\", \"Column\", function (this: ColumnFormat) { return this._owner.columns(); }, { optional: true });\nColumnFormat.prototype.publish(\"width\", null, \"number\", \"Width\", null, { optional: true });\nColumnFormat.prototype.publish(\"format\", null, \"string\", \"Format (d3-format)\", null, { optional: true });\nColumnFormat.prototype.publish(\"paletteID\", null, \"set\", \"Color palette for this widget\", [\"\", ...Palette.rainbow(\"default\").switch()], { optional: true });\nColumnFormat.prototype.publish(\"min\", 0, \"number\", \"Min Value\", null, { disable: (cf: ColumnFormat) => !cf.paletteID() });\nColumnFormat.prototype.publish(\"max\", 100, \"number\", \"Max Value\", null, { disable: (cf: ColumnFormat) => !cf.paletteID() });\nColumnFormat.prototype.publish(\"valueColumn\", null, \"set\", \"Column\", function (this: ColumnFormat) { return this._owner.columns(); }, { optional: true, disable: (cf: ColumnFormat) => !cf.paletteID() });\n\n// Table ---\nexport class Table extends Common {\n private _prevColsHash;\n private _prevFieldsHash;\n _colsRefresh = false;\n _dataRefresh = false;\n\n constructor() {\n super();\n }\n\n fields(): Field[];\n fields(_: Field[]): this;\n fields(_?: Field[]): Field[] | this {\n const retVal = super.fields.apply(this, arguments as any);\n if (arguments.length) {\n const hash = hashSum({ _ });\n if (this._prevFieldsHash !== hash) {\n this._prevFieldsHash = hash;\n this._colsRefresh = true;\n }\n }\n return retVal;\n }\n\n columns(): string[];\n columns(_: string[], asDefault?: boolean): this;\n columns(_?: string[], asDefault?: boolean): string[] | this {\n const retVal = super.columns.apply(this, arguments as any);\n if (arguments.length) {\n const hash = hashSum({ _ });\n if (this._prevColsHash !== hash) {\n this._prevColsHash = hash;\n this._colsRefresh = true;\n }\n }\n return retVal;\n }\n\n data(): any;\n data(_: any): this;\n data(_?: any): any | this {\n const retVal = super.data.apply(this, arguments as any);\n if (arguments.length) {\n this._dataRefresh = true;\n }\n return retVal;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n guessWidth(columns, data) {\n const sortablePadding = this.sortable() ? 12 : 0;\n for (const column of columns) {\n if (column.children) {\n let sampleData = [];\n for (let i = 0; i < Math.min(3, data.length); ++i) {\n sampleData = sampleData.concat(data[i][column.idx]);\n }\n this.guessWidth(column.children, sampleData);\n } else {\n column.width = data.reduce((prevVal: number, row) => {\n const cell = (\"\" + row[column.idx]).trim();\n return Math.max(prevVal, this.textSize(cell).width);\n }, this.textSize(\"\" + column.label, undefined, undefined, true).width + sortablePadding) + 8; // +12 for the sort icon, +8 for the cell padding.\n }\n }\n }\n\n _prevHash;\n update(domNode, element) {\n super.update(domNode, element);\n const hash = this.hashSum();\n if (this._prevHash !== hash) {\n this._prevHash = hash;\n this._colsRefresh = true;\n }\n if (this._colsRefresh) {\n this._columns = this._store.columns(this.sortable(), this.formatterFunc(), this.renderCellFunc());\n switch (this.columnWidth()) {\n case \"auto\":\n const tenRows = this.data().filter((row, idx) => idx < 10);\n this.guessWidth(this._columns, tenRows);\n break;\n }\n const columns = this.columns();\n for (const columnFormat of this.columnFormats()) {\n if (columnFormat.valid()) {\n const colIdx = columns.indexOf(columnFormat.column());\n if (this._columns[colIdx]) {\n this._columns[colIdx].hidden = columnFormat.width() === 0;\n this._columns[colIdx].width = columnFormat.width() || this._columns[colIdx].width;\n this._columns[colIdx].formatter = columnFormat.formatterFunc();\n this._columns[colIdx].renderCell = columnFormat.renderCellFunc();\n }\n }\n }\n this._dgrid.set(\"columns\", this._columns.filter(col => !col.hidden));\n this._colsRefresh = false;\n }\n if (this._colsRefresh || this._dataRefresh) {\n if (this._colsRefresh) {\n this._dgrid.refresh({});\n } else {\n this._dgrid.refresh();\n }\n this._colsRefresh = false;\n this._dataRefresh = false;\n }\n }\n\n exit(domNode, element) {\n delete this._prevColsHash;\n delete this._prevFieldsHash;\n super.exit(domNode, element);\n }\n\n // Cell ---\n formatterFunc(): CellFormatter | undefined {\n return function (this: ColumnType, cell: any, row: RowType): string | any {\n switch (typeof cell) {\n case \"string\":\n return {\n html: cell.replace(/\\t/g, \"&nbsp;&nbsp;&nbsp;&nbsp;\").trim()\n };\n case \"undefined\":\n return \"\";\n }\n return cell;\n };\n }\n\n renderCellFunc(): CellRenderer | undefined {\n return undefined; // Undefined will defualt to formatter ---\n }\n\n // Events ---\n click(row, col, sel) {\n }\n}\nTable.prototype._class += \" dgrid_Table\";\n\nexport interface Table {\n columnWidth(): \"auto\" | \"none\";\n columnWidth(_: \"auto\" | \"none\"): this;\n columnFormats(): ColumnFormat[];\n columnFormats(_: ColumnFormat[]): this;\n}\n\nTable.prototype.publish(\"columnWidth\", \"auto\", \"set\", \"Default column width\", [\"auto\", \"none\"]);\nTable.prototype.publish(\"columnFormats\", [], \"propertyArray\", \"Source Columns\", null, { autoExpand: ColumnFormat });\n"],"names":["row","_a","d3Format","d3Select"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ (function(){"use strict";try{if(typeof document<"u"){var i=document.createElement("style");i.appendChild(document.createTextNode(".dijitTooltip{position:absolute;z-index:2000;display:block;left:0;top:-10000px;overflow:visible;font-family:Verdana,Geneva,sans-serif;font-size:12px}.dijitTooltipContainer{border:solid black 2px;background:#b8b5b5;color:#000;font-size:small}.dijitTooltipFocusNode{padding:2px}.dijitTooltipConnector{position:absolute}.dj_a11y .dijitTooltipConnector,.dijitTooltipData{display:none}.dijitTooltip{background:transparent}.dijitTooltipContainer{background-color:#424242;opacity:1;-ms-filter:none;filter:none;padding:4px 8px;border-radius:3px}.dijitTooltip .dijitTooltipContainer{color:#fff;border:0 none}.dijitTooltipConnector{z-index:2;width:auto;height:auto;opacity:1;-ms-filter:none;filter:none}.dijitTooltipABRight .dijitTooltipConnector{left:auto!important;right:8px}.dijitTooltipBelow{padding-top:4px}.dijitTooltipBelow .dijitTooltipConnector{top:0;left:8px;border-bottom:4px solid #424242;border-left:4px solid transparent;border-right:4px solid transparent;border-top:0}.dijitTooltipAbove{padding-bottom:4px}.dijitTooltipAbove .dijitTooltipConnector{bottom:0;left:8px;border-top:4px solid #424242;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:0}.dijitTooltipLeft{padding-right:4px}.dijitTooltipLeft .dijitTooltipConnector{right:0;border-left:4px solid #424242;border-bottom:4px solid transparent;border-top:4px solid transparent;border-right:0}.dijitTooltipRight{padding-left:4px}.dijitTooltipRight .dijitTooltipConnector{left:0;border-bottom:4px solid transparent;border-top:4px solid transparent;border-right:4px solid #424242}.dgrid{position:relative;overflow:hidden;border:1px solid #ddd;height:30em;display:block}.dgrid-header{background-color:#eee}.dgrid-header-row{position:absolute;right:17px;left:0}.dgrid-header-scroll{position:absolute;top:0;right:0}.dgrid-footer{position:absolute;bottom:0;width:100%}.dgrid-header-hidden{font-size:0;height:0!important;border-top:none!important;border-bottom:none!important;margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important}.dgrid-footer-hidden{display:none}.dgrid-sortable{cursor:pointer}.dgrid-header,.dgrid-header-row,.dgrid-footer{overflow:hidden;background-color:#eee}.dgrid-row-table{border-collapse:collapse;border:none;table-layout:fixed;empty-cells:show;width:100%;height:100%}.dgrid-cell{padding:3px;text-align:left;overflow:hidden;vertical-align:top;border:1px solid #ddd;border-top-style:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap}.dgrid-content{position:relative;height:99%}.dgrid-scroller{overflow-x:auto;overflow-y:scroll;position:absolute;top:0;margin-top:25px;bottom:0;width:100%}.dgrid-preload{font-size:0;line-height:0}.dgrid-loading{position:relative;height:100%}.dgrid-above{position:absolute;bottom:0}.ui-icon{width:12px;height:16px;background-image:url(data:image/png;base64,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)}.dgrid-sort-arrow{background-position:-64px -16px;display:block;float:right;margin:0 4px 0 5px;height:12px}.dgrid-sort-up .dgrid-sort-arrow{background-position:0px -16px}.dgrid-selected{background-color:#bbb}.dgrid-input{width:99%}html.has-mozilla .dgrid .dgrid-row:focus,html.has-mozilla .dgrid .dgrid-cell:focus{outline:1px dotted}html.has-mozilla .dgrid-focus{outline-offset:-1px}.dgrid-scrollbar-measure{width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px}.dgrid-autoheight{height:auto}.dgrid-autoheight .dgrid-scroller{position:relative;overflow-y:hidden}.dgrid-autoheight .dgrid-header-scroll{display:none}.dgrid-autoheight .dgrid-header{right:0}.dgrid-column-set{overflow:hidden;width:100%;position:relative;height:100%;-ms-touch-action:pan-y;touch-action:pan-y}.dgrid-column-set-cell{vertical-align:top;height:100%}.dgrid-column-set-scroller-container{font-size:0;position:absolute;bottom:0}.dgrid-autoheight .dgrid-column-set-scroller-container{position:relative}.dgrid-column-set-scroller{display:inline-block;overflow-x:auto;overflow-y:hidden}.dgrid-column-set-scroller-content{height:1px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.dgrid-expando-icon{width:16px;height:16px}.dgrid-tree-container{-webkit-transition-duration:.3s;-moz-transition-duration:.3s;-o-transition-duration:.3s;-ms-transition-duration:.3s;transition-duration:.3s;overflow:hidden}.dgrid-tree-container.dgrid-tree-resetting{-webkit-transition-duration:0;-moz-transition-duration:0;-o-transition-duration:0;-ms-transition-duration:0;transition-duration:0}.dgrid-hider-toggle{background-position:0 -192px;background-color:transparent;border:none;cursor:pointer;position:absolute;right:0;top:0}.dgrid-rtl-swap .dgrid-hider-toggle{right:auto;left:0}.dgrid-hider-menu{position:absolute;top:0;right:17px;width:184px;background-color:#fff;border:1px solid #000;z-index:99999;padding:4px;overflow-x:hidden;overflow-y:auto}.dgrid-rtl-swap .dgrid-hider-menu{right:auto;left:17px}.dgrid-hider-menu-row{position:relative;padding:2px}.dgrid-hider-menu-check{position:absolute;top:2px;left:2px;padding:0}.dgrid-hider-menu-label{display:block;padding-left:20px}.dgrid-header .dojoDndTarget .dgrid-cell{display:table-cell}.dgrid-header .dojoDndItemBefore{border-left:2px dotted #000!important}.dgrid-header .dojoDndItemAfter{border-right:2px dotted #000!important}.dgrid-column-resizer{cursor:col-resize;position:absolute;width:2px;background-color:#666;z-index:1000}.dgrid-resize-handle{height:100px;width:0;position:absolute;right:-4px;top:-4px;cursor:col-resize;z-index:999;border-left:5px solid transparent;outline:none}.dgrid-resize-header-container{height:100%}.dgrid-resize-guard{cursor:col-resize;position:absolute;bottom:0;left:0;right:0;top:0}html.has-touch .dgrid-resize-handle{border-left:20px solid transparent}html.has-touch .dgrid-column-resizer{width:2px}.dgrid-resize-header-container{position:relative}.dgrid-header .dgrid-cell{overflow:hidden}.dgrid-spacer-row{height:0}.dgrid-spacer-row th{padding-top:0;padding-bottom:0;border-top:none;border-bottom:none}.dgrid-status{padding:2px}.dgrid-pagination .dgrid-status{float:left}.dgrid-pagination .dgrid-navigation,.dgrid-pagination .dgrid-page-size{float:right}.dgrid-navigation .dgrid-page-link{cursor:pointer;font-weight:700;text-decoration:none;color:inherit;padding:0 4px}.dgrid-first,.dgrid-last,.dgrid-next,.dgrid-previous{font-size:130%}.dgrid-pagination .dgrid-page-disabled{color:#aaa;cursor:default}.dgrid-page-input{margin-top:1px;width:2em;text-align:center}.dgrid-page-size{margin:1px 4px 0}.dgrid-rtl-swap .dgrid-header-row{right:0;left:17px}.dgrid-rtl-swap .dgrid-header-scroll{left:0;right:auto}.dgrid-rtl .dgrid-cell{text-align:right}.dgrid-rtl .dgrid-sort-arrow{float:left;margin:0 5px 0 4px}.dgrid-rtl .ui-icon-triangle-1-e{background-position:-96px -16px}.dgrid-rtl .ui-icon-triangle-1-se{background-position:-80px -16px}.dgrid-rtl .dgrid-pagination .dgrid-status,.dgrid-rtl .dgrid-pagination .dgrid-page-size{float:right}.dgrid-rtl .dgrid-pagination .dgrid-navigation{float:left}.dgrid-rtl.dgrid-autoheight .dgrid-header{left:0}.dgrid_Table .placeholder{border:none;padding:0;overflow:hidden}.dgrid_Table .dgrid-fakeline{border:0px;border-bottom:1px solid rgb(221,221,221);margin:2px -3px}.dgrid_Table .dgrid-sortable .dgrid-sort-arrow.ui-icon{margin:0}")),document.head.appendChild(i)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
2
+ (function(global,factory){typeof exports=="object"&&typeof module<"u"?factory(exports,require("@hpcc-js/common"),require("@hpcc-js/util")):typeof define=="function"&&define.amd?define(["exports","@hpcc-js/common","@hpcc-js/util"],factory):(global=typeof globalThis<"u"?globalThis:global||self,factory(global["@hpcc-js/dgrid"]={},global["@hpcc-js/common"],global["@hpcc-js/util"]))})(this,function(exports2,common,util){"use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);const PKG_NAME="@hpcc-js/dgrid",PKG_VERSION="3.1.0",BUILD_VERSION="3.2.1";globalThis["@hpcc-js/dgrid-shim"]||console.error('dgrid-shim not loaded, please add `<script src="https://cdn.jsdelivr.net/npm/@hpcc-js/dgrid-shim@2.26.0/dist/index.min.js"><\/script>` or similar to your HTML file');const Deferred=globalThis["@hpcc-js/dgrid-shim"].Deferred,Memory=globalThis["@hpcc-js/dgrid-shim"].Memory,QueryResults=globalThis["@hpcc-js/dgrid-shim"].QueryResults,Grid=globalThis["@hpcc-js/dgrid-shim"].Grid,PagingGrid=globalThis["@hpcc-js/dgrid-shim"].PagingGrid,domConstruct=globalThis["@hpcc-js/dgrid-shim"].domConstruct;function entitiesEncode(str){return String(str).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function safeEncode(item){switch(Object.prototype.toString.call(item)){case"[object Undefined]":case"[object Boolean]":case"[object Number]":return item;case"[object String]":return entitiesEncode(item);default:console.warn("Unknown cell type: "+Object.prototype.toString.call(item))}return item}const LINE_SPLITTER="<br><hr class='dgrid-fakeline'>",LINE_SPLITTER2="<br><hr class='dgrid-fakeline' style='visibility: hidden'>";class RowFormatter{constructor(columns,_renderHtml){__publicField(this,"_columns");__publicField(this,"_flattenedColumns",[]);__publicField(this,"_columnIdx",{});__publicField(this,"_formattedRow",{});this._renderHtml=_renderHtml,this._columns=columns,this.flattenColumns(columns)}flattenColumns(columns){for(const column of columns)this.flattenColumn(column)}flattenColumn(column){if(column.children)for(const childColumn of column.children)this.flattenColumn(childColumn);else this._columnIdx[column.field]=this._flattenedColumns.length,this._flattenedColumns.push(column.field)}format(row){return this._formattedRow={},this.formatRow(this._columns,row),this.row()}calcDepth(columns,row){let maxChildDepth=1;for(const column of columns)if(column.children&&row[column.leafID]){let childDepth=0;for(const childRow of row[column.leafID])childDepth+=this.calcDepth(column.children,childRow);maxChildDepth=Math.max(maxChildDepth,childDepth)}return maxChildDepth}formatCell(column,cell,maxChildDepth){if(column.children){let childDepth=0;cell instanceof Array||(cell instanceof Object&&cell.Row instanceof Array?cell=cell.Row:cell=[cell]);for(const row of cell)childDepth=Math.max(childDepth,this.formatRow(column.children,row))}else if(column.isSet&&(cell=JSON.stringify(cell.Item)),this._formattedRow[column.field]===void 0?this._formattedRow[column.field]=""+(cell===void 0?"":this._renderHtml?cell:safeEncode(cell)):(this._formattedRow[column.field]+=LINE_SPLITTER,this._formattedRow[column.field]+=""+(cell===void 0?"":this._renderHtml?cell:safeEncode(cell))),maxChildDepth>1){const paddingArr=[];paddingArr.length=maxChildDepth;const padding=paddingArr.join(LINE_SPLITTER2);this._formattedRow[column.field]+=padding}}formatRow(columns,row=[],rowIdx=0){const maxChildDepth=this.calcDepth(columns,row);for(const column of columns)this.formatCell(column,row[column.leafID],maxChildDepth);return maxChildDepth}row(){const retVal={};for(const column of this._flattenedColumns)retVal[column]=this._formattedRow[column];return retVal}}class DBStore{constructor(db){__publicField(this,"_db");__publicField(this,"Model");__publicField(this,"idProperty");__publicField(this,"_renderHtml",!0);this._db=db}renderHtml(_){this._renderHtml=_}db2Columns(sortable,fields,prefix="",formatter,renderCell){return fields?fields.map((field,idx)=>{const column={label:field.label(),leafID:""+idx,field:prefix+idx,idx,className:"resultGridCell",sortable,isSet:!1};switch(field.type()){case"nested":column.children=this.db2Columns(!1,field.children(),prefix+idx+"_",formatter),column.sortable=!1;break;default:column.formatter=formatter,column.renderCell=renderCell}return column}):[]}columns(sortable,formatter,renderCell){return this.db2Columns(sortable,this._db.fields(),"",formatter,renderCell)}getIdentity(object){return object.__hpcc_id}get(row){return this._db.row(row+1)}_fetchRange(opts){const rowFormatter=new RowFormatter(this.columns(!1),this._renderHtml);return this._db.data().slice(opts.start,opts.end).map((row,idx)=>({...rowFormatter.format(row),__hpcc_id:opts.start+idx,__origRow:row}))}fetchRange(opts){const data=this._fetchRange(opts),retVal=new Deferred;return retVal.totalLength=new Deferred,retVal.resolve(data),retVal.totalLength.resolve(this._db.length()-1),retVal}sort(opts){return this._db.data().sort((l,r)=>{for(const item of opts){const idx=item.property;if(l[idx]===void 0&&r[idx]!==void 0||l[idx]<r[idx])return item.descending?1:-1;if(l[idx]!==void 0&&r[idx]===void 0||l[idx]>r[idx])return item.descending?-1:1}return 0}),this}}class Common extends common.HTMLWidget{constructor(){super();__publicField(this,"_columns",[]);__publicField(this,"_store",new DBStore(this._db));__publicField(this,"_dgridDiv");__publicField(this,"_dgrid");__publicField(this,"_prevPaging");__publicField(this,"_prevSortBy");__publicField(this,"_prevSortByDescending");__publicField(this,"_prevMultiSelect");__publicField(this,"_supressEvents");this._tag="div"}formatSortBy(){const idx=this.columns().indexOf(this.sortBy());return idx>=0?[{property:idx.toString(),descending:this.sortByDescending()}]:void 0}selection(_){var _a;if(!arguments.length){const retVal=[];for(const id in this._dgrid.selection)if(this._dgrid.selection[id]){const storeItem=this._store.get(+id);retVal.push(this.rowToObj(storeItem))}return retVal}this._supressEvents=!0,(_a=this._dgrid)==null||_a.clearSelection();let first=!0;this.data().forEach((row,idx)=>{var _a2,_b;if(_.indexOf(row)>=0){const row2=(_a2=this._dgrid)==null?void 0:_a2.row(idx);row2.element&&first&&(first=!1,row2.element.scrollIntoView()),(_b=this._dgrid)==null||_b.select(idx)}}),this._supressEvents=!1}enter(domNode,element){super.enter(domNode,element),this._dgridDiv=element.append("div").attr("class","flat")}update(domNode,element){super.update(domNode,element),this._store.renderHtml(this.renderHtml()),(!this._dgrid||this._prevPaging!==this.pagination()||this._prevSortBy!==this.sortBy()||this._prevSortByDescending!==this.sortByDescending()||this._prevMultiSelect!==this.multiSelect())&&(this._prevPaging=this.pagination(),this._prevSortBy=this.sortBy(),this._prevSortByDescending=this.sortByDescending(),this._prevMultiSelect=this.multiSelect(),this._dgrid&&(this._dgrid.destroy(),this._dgridDiv=element.append("div").attr("class","flat")),this._dgrid=new(this._prevPaging?PagingGrid:Grid)({columns:this._columns,collection:this._store,sort:this.formatSortBy(),selectionMode:this.multiSelect()?"extended":"single",deselectOnRefresh:!0,cellNavigation:!1,pagingLinks:1,pagingTextBox:!0,previousNextArrows:!0,firstLastArrows:!0,rowsPerPage:this.pageSize(),pageSizeOptions:[1,10,25,50,100,1e3]},this._dgridDiv.node()),this._dgrid.on("dgrid-select",evt=>{this._supressEvents||evt.rows&&evt.rows.length&&evt.rows[0].data&&this.click(this.rowToObj(evt.rows[0].data.__origRow),"",!0,{selection:this.selection()})}),this._dgrid.on("dgrid-deselect",evt=>{this._supressEvents||evt.rows&&evt.rows.length&&evt.rows[0].data&&this.click(this.rowToObj(evt.rows[0].data.__origRow),"",!1,{selection:this.selection()})}),this._dgrid.refresh({})),this._dgrid.noDataMessage=`<span class='dojoxGridNoData'>${this.noDataMessage()}</span>`,this._dgrid.loadingMessage=`<span class='dojoxGridNoData'>${this.loadingMessage()}</span>`,this._dgridDiv.style("width",this.width()+"px").style("height",this.height()-2+"px"),this._dgrid.resize()}exit(domNode,element){delete this._prevPaging,this._dgrid&&(this._dgrid.destroy(),delete this._dgrid),super.exit(domNode,element)}click(row,col,sel,more){}}Common.prototype._class+=" dgrid_Common",Common.prototype.publish("noDataMessage","...empty...","string","No Data Message"),Common.prototype.publish("loadingMessage","loading...","string","Loading Message"),Common.prototype.publish("pagination",!1,"boolean","Enable paging"),Common.prototype.publish("pageSize",25,"number","Page size"),Common.prototype.publish("sortable",!1,"boolean","Enable sorting by column"),Common.prototype.publish("sortBy",null,"set","Default 'sort by' Column ID",function(){return this.columns()},{optional:!0}),Common.prototype.publish("sortByDescending",!1,"boolean","Default 'sort by' descending",void 0,{disable:self2=>!self2.sortBy()}),Common.prototype.publish("multiSelect",!1,"boolean","Multiple Selection"),Common.prototype.publish("renderHtml",!0,"boolean","Render HTML");class DatasourceCache{constructor(datasource){__publicField(this,"_datasource");__publicField(this,"_prevHash");__publicField(this,"_fetchCache",{});this._datasource=datasource}validateCache(){const hash=this.hash();this._prevHash!==hash&&(this._prevHash=hash,this._fetchCache={})}id(){return this._datasource.id()}hash(){return this._datasource.hash()}label(){return this._datasource.label()}outFields(){return this._datasource.outFields()}total(){return this._datasource.total()}fetch(from,count){this.validateCache();const cacheID=`${from}->${count}`;let retVal=this._fetchCache[cacheID];return retVal||(retVal=this._datasource.fetch(from,count),this._fetchCache[cacheID]=retVal),retVal}}class DatasourceStore{constructor(datasource,renderHtml){__publicField(this,"_datasource");__publicField(this,"_columnsIdx",{});__publicField(this,"_columns");__publicField(this,"rowFormatter");this._datasource=new DatasourceCache(datasource),this._columnsIdx={},this._columns=this.db2Columns(this._datasource.outFields()).map((column,idx)=>(this._columnsIdx[column.field]=idx,column)),this.rowFormatter=new RowFormatter(this._columns,renderHtml)}columns(){return this._columns}db2Columns(fields,prefix=""){return fields?fields.map((field,idx)=>{const column={field:prefix+field.id,leafID:field.id,label:field.id,idx,className:"resultGridCell",sortable:!0,isSet:!1};return field.type==="dataset"?column.children=this.db2Columns(field.children,prefix+field.id+"_"):column.formatter=(cell,row)=>{switch(typeof cell){case"string":return cell.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;")}return cell},column}):[]}getIdentity(row){return row.__hpcc_id}_request(start,end){return this._datasource?this._datasource.fetch(start,end-start).then(response=>({totalLength:this._datasource.total(),data:response.map((row,idx)=>{const formattedRow=this.rowFormatter.format(row);return formattedRow.__hpcc_id=start+idx,formattedRow.__origRow=row,formattedRow})})):Promise.resolve({totalLength:0,data:[]})}fetchRange(options){const retVal=new Deferred;return this._request(options.start,options.end).then(response=>retVal.resolve(response)),new QueryResults(retVal.then(response=>response.data),{totalLength:retVal.then(response=>response.totalLength)})}}class DatasourceTable extends Common{constructor(){super();__publicField(this,"_prevDatasource")}invalidate(){return delete this._prevDatasource,this}enter(domNode,element){super.enter(domNode,element)}update(domNode,element){super.update(domNode,element)}render(callback){return super.render(w=>{if(this._prevDatasource!==this.datasource())if(this._dgrid.set("collection",new Memory),this._dgrid.set("columns",[]),this._prevDatasource=this.datasource(),this._prevDatasource){const store=new DatasourceStore(this._prevDatasource,this.renderHtml());this._dgrid.set("columns",store.columns()),this._dgrid.set("collection",store),callback&&callback(w)}else callback&&callback(w);else callback&&callback(w)})}click(row,col,sel){}}DatasourceTable.prototype._class+=" dgrid_DatasourceTable",DatasourceTable.prototype.publish("datasource",null,"object","Datasource");class ColumnFormat extends common.PropertyExt{constructor(){super();__publicField(this,"_owner")}owner(_){return arguments.length?(this._owner=_,this):this._owner}valid(){return!!this.column()}formatterFunc(){const defaultFormatter=this._owner.formatterFunc();if(this.valid()&&this.format()){const numberFormatter=common.format(this.format());return function(cell,row){return typeof cell=="number"?numberFormatter(cell):defaultFormatter.call(this,cell,row)}}return defaultFormatter}renderCellFunc(){const defaultRenderCell=this._owner.renderCellFunc(),defaultFormatter=this.formatterFunc();if(this.valid()&&this.paletteID()){const columns=this._owner.columns(),palette=common.Palette.rainbow(this.paletteID()),min=this.min(),max=this.max(),valueColIdx=this.valueColumn()?columns.indexOf(this.valueColumn()):void 0;return function(row,cell,cellElement){defaultRenderCell&&defaultRenderCell.call(this,row,cell,cellElement);const value=valueColIdx?row.__origRow[valueColIdx]:cell,background=palette(value,min,max),cellText=defaultFormatter.call(this,cell,row);common.select(cellElement).style("background",background).style("color",background&&common.Palette.textColor(background)).text((cellText==null?void 0:cellText.html)??cellText??cell)}}return defaultRenderCell}}ColumnFormat.prototype._class+=" dgrid_Table.ColumnFormat",ColumnFormat.prototype.publish("column",null,"set","Column",function(){return this._owner.columns()},{optional:!0}),ColumnFormat.prototype.publish("width",null,"number","Width",null,{optional:!0}),ColumnFormat.prototype.publish("format",null,"string","Format (d3-format)",null,{optional:!0}),ColumnFormat.prototype.publish("paletteID",null,"set","Color palette for this widget",["",...common.Palette.rainbow("default").switch()],{optional:!0}),ColumnFormat.prototype.publish("min",0,"number","Min Value",null,{disable:cf=>!cf.paletteID()}),ColumnFormat.prototype.publish("max",100,"number","Max Value",null,{disable:cf=>!cf.paletteID()}),ColumnFormat.prototype.publish("valueColumn",null,"set","Column",function(){return this._owner.columns()},{optional:!0,disable:cf=>!cf.paletteID()});class Table extends Common{constructor(){super();__publicField(this,"_prevColsHash");__publicField(this,"_prevFieldsHash");__publicField(this,"_colsRefresh",!1);__publicField(this,"_dataRefresh",!1);__publicField(this,"_prevHash")}fields(_){const retVal=super.fields.apply(this,arguments);if(arguments.length){const hash=util.hashSum({_});this._prevFieldsHash!==hash&&(this._prevFieldsHash=hash,this._colsRefresh=!0)}return retVal}columns(_,asDefault){const retVal=super.columns.apply(this,arguments);if(arguments.length){const hash=util.hashSum({_});this._prevColsHash!==hash&&(this._prevColsHash=hash,this._colsRefresh=!0)}return retVal}data(_){const retVal=super.data.apply(this,arguments);return arguments.length&&(this._dataRefresh=!0),retVal}enter(domNode,element){super.enter(domNode,element)}guessWidth(columns,data){const sortablePadding=this.sortable()?12:0;for(const column of columns)if(column.children){let sampleData=[];for(let i=0;i<Math.min(3,data.length);++i)sampleData=sampleData.concat(data[i][column.idx]);this.guessWidth(column.children,sampleData)}else column.width=data.reduce((prevVal,row)=>{const cell=(""+row[column.idx]).trim();return Math.max(prevVal,this.textSize(cell).width)},this.textSize(""+column.label,void 0,void 0,!0).width+sortablePadding)+8}update(domNode,element){super.update(domNode,element);const hash=this.hashSum();if(this._prevHash!==hash&&(this._prevHash=hash,this._colsRefresh=!0),this._colsRefresh){switch(this._columns=this._store.columns(this.sortable(),this.formatterFunc(),this.renderCellFunc()),this.columnWidth()){case"auto":const tenRows=this.data().filter((row,idx)=>idx<10);this.guessWidth(this._columns,tenRows);break}const columns=this.columns();for(const columnFormat of this.columnFormats())if(columnFormat.valid()){const colIdx=columns.indexOf(columnFormat.column());this._columns[colIdx]&&(this._columns[colIdx].hidden=columnFormat.width()===0,this._columns[colIdx].width=columnFormat.width()||this._columns[colIdx].width,this._columns[colIdx].formatter=columnFormat.formatterFunc(),this._columns[colIdx].renderCell=columnFormat.renderCellFunc())}this._dgrid.set("columns",this._columns.filter(col=>!col.hidden)),this._colsRefresh=!1}(this._colsRefresh||this._dataRefresh)&&(this._colsRefresh?this._dgrid.refresh({}):this._dgrid.refresh(),this._colsRefresh=!1,this._dataRefresh=!1)}exit(domNode,element){delete this._prevColsHash,delete this._prevFieldsHash,super.exit(domNode,element)}formatterFunc(){return function(cell,row){switch(typeof cell){case"string":return{html:cell.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;").trim()};case"undefined":return""}return cell}}renderCellFunc(){}click(row,col,sel){}}Table.prototype._class+=" dgrid_Table",Table.prototype.publish("columnWidth","auto","set","Default column width",["auto","none"]),Table.prototype.publish("columnFormats",[],"propertyArray","Source Columns",null,{autoExpand:ColumnFormat}),exports2.BUILD_VERSION=BUILD_VERSION,exports2.ColumnFormat=ColumnFormat,exports2.Common=Common,exports2.DBStore=DBStore,exports2.DatasourceCache=DatasourceCache,exports2.DatasourceStore=DatasourceStore,exports2.DatasourceTable=DatasourceTable,exports2.Deferred=Deferred,exports2.Grid=Grid,exports2.Memory=Memory,exports2.PKG_NAME=PKG_NAME,exports2.PKG_VERSION=PKG_VERSION,exports2.PagingGrid=PagingGrid,exports2.QueryResults=QueryResults,exports2.RowFormatter=RowFormatter,exports2.Table=Table,exports2.domConstruct=domConstruct,Object.defineProperty(exports2,Symbol.toStringTag,{value:"Module"})});
3
+ //# sourceMappingURL=index.umd.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.umd.cjs","sources":["../src/__package__.ts","../src/dgrid-shim.ts","../src/RowFormatter.ts","../src/DBStore.ts","../src/Common.ts","../src/DatasourceStore.ts","../src/DatasourceTable.ts","../src/Table.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/dgrid\";\nexport const PKG_VERSION = \"3.1.0\";\nexport const BUILD_VERSION = \"3.2.1\";\n","import type * as dgrid_shim from \"@hpcc-js/dgrid-shim\";\n\nif (!globalThis[\"@hpcc-js/dgrid-shim\"]) {\n console.error(\"dgrid-shim not loaded, please add `<script src=\\\"https://cdn.jsdelivr.net/npm/@hpcc-js/dgrid-shim@2.26.0/dist/index.min.js\\\"></script>` or similar to your HTML file\");\n}\n\nexport const Deferred = globalThis[\"@hpcc-js/dgrid-shim\"].Deferred as typeof dgrid_shim.Deferred;\nexport const Memory = globalThis[\"@hpcc-js/dgrid-shim\"].Memory as typeof dgrid_shim.Memory;\nexport const QueryResults = globalThis[\"@hpcc-js/dgrid-shim\"].QueryResults as typeof dgrid_shim.QueryResults;\nexport const Grid = globalThis[\"@hpcc-js/dgrid-shim\"].Grid as typeof dgrid_shim.Grid;\nexport const PagingGrid = globalThis[\"@hpcc-js/dgrid-shim\"].PagingGrid as typeof dgrid_shim.PagingGrid;\nexport const domConstruct = globalThis[\"@hpcc-js/dgrid-shim\"].domConstruct as typeof dgrid_shim.domConstruct;\n","\nfunction entitiesEncode(str) {\n return String(str).replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\");\n}\n\nfunction safeEncode(item) {\n switch (Object.prototype.toString.call(item)) {\n case \"[object Undefined]\":\n case \"[object Boolean]\":\n case \"[object Number]\":\n return item;\n case \"[object String]\":\n return entitiesEncode(item);\n default:\n console.warn(\"Unknown cell type: \" + Object.prototype.toString.call(item));\n }\n return item;\n}\n\nconst LINE_SPLITTER = \"<br><hr class='dgrid-fakeline'>\";\nconst LINE_SPLITTER2 = \"<br><hr class='dgrid-fakeline' style='visibility: hidden'>\";\n\nexport interface ColumnType {\n field: string;\n leafID: string;\n label: string;\n idx: number;\n className: string;\n sortable: boolean;\n isSet: boolean;\n width?: number;\n formatter?: CellFormatter;\n renderCell?: CellRenderer;\n children?: ColumnType[];\n}\nexport interface RowType {\n __hpcc_id: number;\n __origRow: any[];\n [colIdx: number]: any;\n}\nexport type CellFormatter = (this: ColumnType, cell: any, row: RowType) => string;\nexport type CellRenderer = (this: ColumnType, row: RowType, cell: any, cellElement: HTMLElement) => HTMLElement | void;\n\nexport class RowFormatter {\n private _columns: ColumnType[];\n private _flattenedColumns = [];\n private _columnIdx = {};\n private _formattedRow = {};\n\n constructor(columns: ColumnType[], protected _renderHtml) {\n this._columns = columns;\n this.flattenColumns(columns);\n }\n\n flattenColumns(columns: ColumnType[]) {\n for (const column of columns) {\n this.flattenColumn(column);\n }\n }\n\n flattenColumn(column: ColumnType) {\n if (column.children) {\n for (const childColumn of column.children) this.flattenColumn(childColumn);\n } else {\n this._columnIdx[column.field] = this._flattenedColumns.length;\n this._flattenedColumns.push(column.field);\n }\n }\n\n format(row) {\n this._formattedRow = {};\n this.formatRow(this._columns, row);\n return this.row();\n }\n\n calcDepth(columns: ColumnType[], row) {\n let maxChildDepth = 1;\n for (const column of columns) {\n if (column.children && row[column.leafID]) {\n let childDepth = 0;\n for (const childRow of row[column.leafID]) {\n if (childRow instanceof Array) {\n }\n childDepth += this.calcDepth(column.children, childRow);\n }\n maxChildDepth = Math.max(maxChildDepth, childDepth);\n }\n }\n return maxChildDepth;\n }\n\n formatCell(column: ColumnType, cell, maxChildDepth) {\n if (column.children) {\n let childDepth = 0;\n if (!(cell instanceof Array)) {\n if (cell instanceof Object && cell.Row instanceof Array) { // Push fix in comms?\n cell = cell.Row;\n } else {\n cell = [cell];\n }\n }\n for (const row of cell) {\n childDepth = Math.max(childDepth, this.formatRow(column.children, row));\n }\n } else {\n if (column.isSet) {\n cell = JSON.stringify(cell.Item);\n }\n if (this._formattedRow[column.field] === undefined) {\n this._formattedRow[column.field] = \"\" + (cell === undefined ? \"\" : (this._renderHtml ? cell : safeEncode(cell)));\n } else {\n this._formattedRow[column.field] += LINE_SPLITTER;\n this._formattedRow[column.field] += \"\" + (cell === undefined ? \"\" : (this._renderHtml ? cell : safeEncode(cell)));\n }\n if (maxChildDepth > 1) {\n const paddingArr = [];\n paddingArr.length = maxChildDepth;\n const padding = paddingArr.join(LINE_SPLITTER2);\n this._formattedRow[column.field] += padding;\n }\n }\n }\n\n formatRow(columns: ColumnType[], row: { [key: string]: any } = [], rowIdx: number = 0) {\n const maxChildDepth = this.calcDepth(columns, row);\n for (const column of columns) {\n this.formatCell(column, row[column.leafID], maxChildDepth);\n }\n return maxChildDepth;\n }\n\n row() {\n const retVal = {};\n for (const column of this._flattenedColumns) {\n retVal[column] = this._formattedRow[column];\n }\n return retVal;\n }\n}\n","import { Database } from \"@hpcc-js/common\";\nimport { Deferred } from \"./dgrid-shim.ts\";\nimport { CellFormatter, CellRenderer, ColumnType, RowFormatter } from \"./RowFormatter.ts\";\n\nexport class DBStore {\n private _db: Database.Grid;\n\n Model: null;\n idProperty: \"__hpcc_id\";\n\n constructor(db: Database.Grid) {\n this._db = db;\n }\n\n protected _renderHtml = true;\n renderHtml(_: boolean) {\n this._renderHtml = _;\n }\n\n db2Columns(sortable: boolean, fields: Database.Field[], prefix = \"\", formatter?: CellFormatter, renderCell?: CellRenderer): ColumnType[] {\n if (!fields) return [];\n return fields.map((field, idx) => {\n const label = field.label();\n const column: ColumnType = {\n label,\n leafID: \"\" + idx,\n field: prefix + idx,\n idx,\n className: \"resultGridCell\",\n sortable,\n isSet: false\n };\n switch (field.type()) {\n case \"nested\":\n column.children = this.db2Columns(false, field.children(), prefix + idx + \"_\", formatter);\n column.sortable = false;\n break;\n default:\n column.formatter = formatter;\n column.renderCell = renderCell;\n }\n return column;\n });\n }\n\n columns(sortable: boolean, formatter?: CellFormatter, renderCell?: CellRenderer) {\n return this.db2Columns(sortable, this._db.fields(), \"\", formatter, renderCell);\n }\n\n getIdentity(object) {\n return object.__hpcc_id;\n }\n\n get(row: number) {\n return this._db.row(row + 1);\n }\n\n _fetchRange(opts: { start: number, end: number }): object[] {\n const rowFormatter = new RowFormatter(this.columns(false), this._renderHtml);\n return this._db.data().slice(opts.start, opts.end).map((row, idx) => {\n const formattedRow: any = rowFormatter.format(row);\n return {\n ...formattedRow,\n __hpcc_id: opts.start + idx,\n __origRow: row\n };\n });\n }\n\n fetchRange(opts: { start: number, end: number }): Promise<object[]> {\n const data = this._fetchRange(opts);\n const retVal: any = new Deferred();\n retVal.totalLength = new Deferred();\n retVal.resolve(data);\n retVal.totalLength.resolve(this._db.length() - 1);\n return retVal;\n }\n\n sort(opts) {\n this._db.data().sort((l, r) => {\n for (const item of opts) {\n const idx = item.property;\n if ((l[idx] === undefined && r[idx] !== undefined) || l[idx] < r[idx]) return item.descending ? 1 : -1;\n if ((l[idx] !== undefined && r[idx] === undefined) || l[idx] > r[idx]) return item.descending ? -1 : 1;\n }\n return 0;\n });\n return this;\n }\n}\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { Grid, PagingGrid } from \"./dgrid-shim.ts\";\nimport { DBStore } from \"./DBStore.ts\";\n\nimport \"../src/Common.css\";\n\nexport class Common extends HTMLWidget {\n protected _columns = [];\n protected _store = new DBStore(this._db);\n protected _dgridDiv;\n protected _dgrid;\n protected _prevPaging;\n private _prevSortBy: string;\n private _prevSortByDescending: boolean;\n private _prevMultiSelect: boolean;\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n protected formatSortBy(): [{ property: string, descending: boolean }] | undefined {\n const idx = this.columns().indexOf(this.sortBy());\n return idx >= 0 ? [{ property: idx.toString(), descending: this.sortByDescending() }] : undefined;\n }\n\n protected _supressEvents;\n selection(): any[];\n selection(_: any[]): this;\n selection(_?: any[]): any[] | this {\n if (!arguments.length) {\n const retVal = [];\n for (const id in this._dgrid.selection) {\n if (this._dgrid.selection[id]) {\n const storeItem = this._store.get(+id);\n retVal.push(this.rowToObj(storeItem));\n }\n }\n return retVal;\n }\n this._supressEvents = true;\n this._dgrid?.clearSelection();\n let first = true;\n this.data().forEach((row, idx) => {\n if (_.indexOf(row) >= 0) {\n const row = this._dgrid?.row(idx);\n if (row.element && first) {\n first = false;\n row.element.scrollIntoView();\n }\n this._dgrid?.select(idx);\n }\n });\n this._supressEvents = false;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._dgridDiv = element.append(\"div\")\n .attr(\"class\", \"flat\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n this._store.renderHtml(this.renderHtml());\n\n if (!this._dgrid || this._prevPaging !== this.pagination() ||\n this._prevSortBy !== this.sortBy() ||\n this._prevSortByDescending !== this.sortByDescending() ||\n this._prevMultiSelect !== this.multiSelect()) {\n\n this._prevPaging = this.pagination();\n this._prevSortBy = this.sortBy();\n this._prevSortByDescending = this.sortByDescending();\n this._prevMultiSelect = this.multiSelect();\n if (this._dgrid) {\n this._dgrid.destroy();\n this._dgridDiv = element.append(\"div\")\n .attr(\"class\", \"flat\")\n ;\n }\n this._dgrid = new (this._prevPaging ? PagingGrid : Grid)({\n columns: this._columns,\n collection: this._store,\n sort: this.formatSortBy(),\n selectionMode: this.multiSelect() ? \"extended\" : \"single\",\n deselectOnRefresh: true,\n cellNavigation: false,\n pagingLinks: 1,\n pagingTextBox: true,\n previousNextArrows: true,\n firstLastArrows: true,\n rowsPerPage: this.pageSize(),\n pageSizeOptions: [1, 10, 25, 50, 100, 1000]\n }, this._dgridDiv.node());\n this._dgrid.on(\"dgrid-select\", (evt) => {\n if (this._supressEvents) return;\n if (evt.rows && evt.rows.length && evt.rows[0].data) {\n this.click(this.rowToObj(evt.rows[0].data.__origRow), \"\", true, { selection: this.selection() });\n }\n });\n this._dgrid.on(\"dgrid-deselect\", (evt) => {\n if (this._supressEvents) return;\n if (evt.rows && evt.rows.length && evt.rows[0].data) {\n this.click(this.rowToObj(evt.rows[0].data.__origRow), \"\", false, { selection: this.selection() });\n }\n });\n this._dgrid.refresh({});\n }\n this._dgrid.noDataMessage = `<span class='dojoxGridNoData'>${this.noDataMessage()}</span>`;\n this._dgrid.loadingMessage = `<span class='dojoxGridNoData'>${this.loadingMessage()}</span>`;\n\n this._dgridDiv\n .style(\"width\", this.width() + \"px\")\n .style(\"height\", this.height() - 2 + \"px\")\n ;\n this._dgrid.resize();\n }\n\n exit(domNode, element) {\n delete this._prevPaging;\n if (this._dgrid) {\n this._dgrid.destroy();\n delete this._dgrid;\n }\n super.exit(domNode, element);\n }\n\n click(row, col, sel, more) {\n }\n}\nCommon.prototype._class += \" dgrid_Common\";\n\nexport interface Common {\n noDataMessage(): string;\n noDataMessage(_: string): this;\n loadingMessage(): string;\n loadingMessage(_: string): this;\n pagination(): boolean;\n pagination(_: boolean): this;\n pageSize(): number;\n pageSize(_: number): this;\n sortable(): boolean;\n sortable(_: boolean): this;\n sortBy(): string;\n sortBy(_: string): this;\n sortByDescending(): boolean;\n sortByDescending(_: boolean): this;\n multiSelect(): boolean;\n multiSelect(_: boolean): this;\n renderHtml(): boolean;\n renderHtml(_: boolean): this;\n}\n\nCommon.prototype.publish(\"noDataMessage\", \"...empty...\", \"string\", \"No Data Message\");\nCommon.prototype.publish(\"loadingMessage\", \"loading...\", \"string\", \"Loading Message\");\nCommon.prototype.publish(\"pagination\", false, \"boolean\", \"Enable paging\");\nCommon.prototype.publish(\"pageSize\", 25, \"number\", \"Page size\");\nCommon.prototype.publish(\"sortable\", false, \"boolean\", \"Enable sorting by column\");\nCommon.prototype.publish(\"sortBy\", null, \"set\", \"Default 'sort by' Column ID\", function (this: Common) { return this.columns(); }, { optional: true });\nCommon.prototype.publish(\"sortByDescending\", false, \"boolean\", \"Default 'sort by' descending\", undefined, { disable: self => !self.sortBy() });\nCommon.prototype.publish(\"multiSelect\", false, \"boolean\", \"Multiple Selection\");\nCommon.prototype.publish(\"renderHtml\", true, \"boolean\", \"Render HTML\");\n\n","import type { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { Deferred, QueryResults } from \"./dgrid-shim.ts\";\nimport { ColumnType, RowFormatter } from \"./RowFormatter.ts\";\n\nexport interface IDatasource {\n id: () => string;\n hash: () => string;\n label: () => string;\n\n outFields: () => DDL2.IField[];\n total: () => number;\n fetch: (from: number, count: number) => Promise<ReadonlyArray<object>>;\n}\n\nexport class DatasourceCache implements IDatasource {\n protected _datasource: IDatasource;\n _prevHash: string;\n _fetchCache: { [key: string]: Promise<ReadonlyArray<object>> } = {};\n\n constructor(datasource: IDatasource) {\n this._datasource = datasource;\n }\n\n validateCache() {\n const hash = this.hash();\n if (this._prevHash !== hash) {\n this._prevHash = hash;\n this._fetchCache = {};\n }\n }\n\n id() { return this._datasource.id(); }\n hash() { return this._datasource.hash(); }\n label() { return this._datasource.label(); }\n\n outFields() { return this._datasource.outFields(); }\n total() { return this._datasource.total(); }\n fetch(from: number, count: number): Promise<ReadonlyArray<object>> {\n this.validateCache();\n const cacheID = `${from}->${count}`;\n let retVal = this._fetchCache[cacheID];\n if (!retVal) {\n retVal = this._datasource.fetch(from, count);\n this._fetchCache[cacheID] = retVal;\n }\n return retVal;\n }\n}\n\nexport class DatasourceStore {\n _datasource: DatasourceCache;\n _columnsIdx: { [key: string]: number } = {};\n _columns;\n\n private rowFormatter: RowFormatter;\n\n constructor(datasource: IDatasource, renderHtml: boolean) {\n this._datasource = new DatasourceCache(datasource);\n\n this._columnsIdx = {};\n this._columns = this.db2Columns(this._datasource.outFields()).map((column, idx) => {\n this._columnsIdx[column.field] = idx;\n return column;\n });\n this.rowFormatter = new RowFormatter(this._columns, renderHtml);\n }\n\n columns() {\n return this._columns;\n }\n\n db2Columns(fields: DDL2.IField[], prefix = \"\"): ColumnType[] {\n if (!fields) return [];\n return fields.map((field, idx) => {\n const column: ColumnType = {\n field: prefix + field.id,\n leafID: field.id,\n label: field.id,\n idx,\n className: \"resultGridCell\",\n sortable: true,\n isSet: false\n };\n if (field.type === \"dataset\") {\n column.children = this.db2Columns(field.children, prefix + field.id + \"_\");\n } else {\n column.formatter = (cell, row) => {\n switch (typeof cell) {\n case \"string\":\n return cell.replace(/\\t/g, \"&nbsp;&nbsp;&nbsp;&nbsp;\");\n }\n return cell;\n };\n }\n return column;\n });\n }\n\n getIdentity(row) {\n return row.__hpcc_id;\n }\n\n _request(start, end): Promise<{ totalLength: number, data: any[] }> {\n if (!this._datasource) return Promise.resolve({ totalLength: 0, data: [] });\n const retVal = this._datasource.fetch(start, end - start).then(response => {\n return {\n totalLength: this._datasource.total(),\n data: response.map((row, idx) => {\n const formattedRow: any = this.rowFormatter.format(row);\n formattedRow.__hpcc_id = start + idx;\n formattedRow.__origRow = row;\n return formattedRow;\n })\n };\n });\n return retVal;\n }\n\n fetchRange(options): Promise<any[]> {\n const retVal = new Deferred();\n this._request(options.start, options.end).then(response => retVal.resolve(response));\n return new QueryResults(retVal.then(response => response.data), {\n totalLength: retVal.then(response => response.totalLength)\n });\n }\n}\n","import { Widget } from \"@hpcc-js/common\";\nimport { Memory } from \"./dgrid-shim.ts\";\nimport { Common } from \"./Common.ts\";\nimport { DatasourceStore, IDatasource } from \"./DatasourceStore.ts\";\n\nexport class DatasourceTable extends Common {\n _prevDatasource?: IDatasource;\n\n constructor() {\n super();\n }\n\n invalidate(): this {\n delete this._prevDatasource;\n return this;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n }\n render(callback?: (w: Widget) => void): this {\n return super.render(w => {\n if (this._prevDatasource !== this.datasource()) {\n this._dgrid.set(\"collection\", new Memory());\n this._dgrid.set(\"columns\", []);\n this._prevDatasource = this.datasource();\n if (this._prevDatasource) {\n const store = new DatasourceStore(this._prevDatasource, this.renderHtml());\n this._dgrid.set(\"columns\", store.columns());\n this._dgrid.set(\"collection\", store);\n if (callback) {\n callback(w);\n }\n } else {\n if (callback) {\n callback(w);\n }\n }\n } else {\n if (callback) {\n callback(w);\n }\n }\n });\n }\n\n click(row, col, sel) {\n }\n}\nDatasourceTable.prototype._class += \" dgrid_DatasourceTable\";\n\nexport interface DatasourceTable {\n datasource(): IDatasource;\n datasource(_: IDatasource): this;\n}\n\nDatasourceTable.prototype.publish(\"datasource\", null, \"object\", \"Datasource\");\n\n","import { Palette, PropertyExt, Field } from \"@hpcc-js/common\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { format as d3Format } from \"d3-format\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Common } from \"./Common.ts\";\nimport { CellFormatter, CellRenderer, ColumnType, RowType } from \"./RowFormatter.ts\";\n\n// ColumnPalette ---\nexport class ColumnFormat extends PropertyExt {\n _owner: Table;\n\n constructor() {\n super();\n }\n\n owner(): Table;\n owner(_: Table): this;\n owner(_?: Table): Table | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.column();\n }\n\n formatterFunc(): CellFormatter | undefined {\n const defaultFormatter = this._owner.formatterFunc();\n if (this.valid() && this.format()) {\n const numberFormatter = d3Format(this.format());\n\n return function (this: ColumnType, cell: any, row: RowType): string {\n if (typeof cell === \"number\")\n return numberFormatter(cell);\n return defaultFormatter.call(this, cell, row);\n };\n }\n return defaultFormatter;\n }\n\n renderCellFunc(): CellRenderer | undefined {\n const defaultRenderCell = this._owner.renderCellFunc();\n const defaultFormatter = this.formatterFunc();\n if (this.valid() && this.paletteID()) {\n const columns = this._owner.columns();\n const palette = Palette.rainbow(this.paletteID());\n const min = this.min();\n const max = this.max();\n const valueColIdx = this.valueColumn() ? columns.indexOf(this.valueColumn()) : undefined;\n return function (this: ColumnType, row: RowType, cell: any, cellElement: HTMLElement): HTMLElement | void {\n if (defaultRenderCell) {\n defaultRenderCell.call(this, row, cell, cellElement);\n }\n const value = valueColIdx ? row.__origRow[valueColIdx] : cell;\n const background = palette(value, min, max);\n const cellText: any = defaultFormatter.call(this, cell, row);\n d3Select(cellElement)\n .style(\"background\", background)\n .style(\"color\", background && Palette.textColor(background))\n .text(cellText?.html ?? cellText ?? cell)\n ;\n };\n }\n return defaultRenderCell;\n }\n}\nColumnFormat.prototype._class += \" dgrid_Table.ColumnFormat\";\n\nexport interface ColumnFormat {\n column(): string;\n column(_: string): this;\n width(): number;\n width(_: number): this;\n format(): string;\n format(_: string): this;\n paletteID(): string;\n paletteID(_: string): this;\n min(): number;\n min(_: number): this;\n max(): number;\n max(_: number): this;\n valueColumn(): string;\n valueColumn(_: string): this;\n}\nColumnFormat.prototype.publish(\"column\", null, \"set\", \"Column\", function (this: ColumnFormat) { return this._owner.columns(); }, { optional: true });\nColumnFormat.prototype.publish(\"width\", null, \"number\", \"Width\", null, { optional: true });\nColumnFormat.prototype.publish(\"format\", null, \"string\", \"Format (d3-format)\", null, { optional: true });\nColumnFormat.prototype.publish(\"paletteID\", null, \"set\", \"Color palette for this widget\", [\"\", ...Palette.rainbow(\"default\").switch()], { optional: true });\nColumnFormat.prototype.publish(\"min\", 0, \"number\", \"Min Value\", null, { disable: (cf: ColumnFormat) => !cf.paletteID() });\nColumnFormat.prototype.publish(\"max\", 100, \"number\", \"Max Value\", null, { disable: (cf: ColumnFormat) => !cf.paletteID() });\nColumnFormat.prototype.publish(\"valueColumn\", null, \"set\", \"Column\", function (this: ColumnFormat) { return this._owner.columns(); }, { optional: true, disable: (cf: ColumnFormat) => !cf.paletteID() });\n\n// Table ---\nexport class Table extends Common {\n private _prevColsHash;\n private _prevFieldsHash;\n _colsRefresh = false;\n _dataRefresh = false;\n\n constructor() {\n super();\n }\n\n fields(): Field[];\n fields(_: Field[]): this;\n fields(_?: Field[]): Field[] | this {\n const retVal = super.fields.apply(this, arguments as any);\n if (arguments.length) {\n const hash = hashSum({ _ });\n if (this._prevFieldsHash !== hash) {\n this._prevFieldsHash = hash;\n this._colsRefresh = true;\n }\n }\n return retVal;\n }\n\n columns(): string[];\n columns(_: string[], asDefault?: boolean): this;\n columns(_?: string[], asDefault?: boolean): string[] | this {\n const retVal = super.columns.apply(this, arguments as any);\n if (arguments.length) {\n const hash = hashSum({ _ });\n if (this._prevColsHash !== hash) {\n this._prevColsHash = hash;\n this._colsRefresh = true;\n }\n }\n return retVal;\n }\n\n data(): any;\n data(_: any): this;\n data(_?: any): any | this {\n const retVal = super.data.apply(this, arguments as any);\n if (arguments.length) {\n this._dataRefresh = true;\n }\n return retVal;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n guessWidth(columns, data) {\n const sortablePadding = this.sortable() ? 12 : 0;\n for (const column of columns) {\n if (column.children) {\n let sampleData = [];\n for (let i = 0; i < Math.min(3, data.length); ++i) {\n sampleData = sampleData.concat(data[i][column.idx]);\n }\n this.guessWidth(column.children, sampleData);\n } else {\n column.width = data.reduce((prevVal: number, row) => {\n const cell = (\"\" + row[column.idx]).trim();\n return Math.max(prevVal, this.textSize(cell).width);\n }, this.textSize(\"\" + column.label, undefined, undefined, true).width + sortablePadding) + 8; // +12 for the sort icon, +8 for the cell padding.\n }\n }\n }\n\n _prevHash;\n update(domNode, element) {\n super.update(domNode, element);\n const hash = this.hashSum();\n if (this._prevHash !== hash) {\n this._prevHash = hash;\n this._colsRefresh = true;\n }\n if (this._colsRefresh) {\n this._columns = this._store.columns(this.sortable(), this.formatterFunc(), this.renderCellFunc());\n switch (this.columnWidth()) {\n case \"auto\":\n const tenRows = this.data().filter((row, idx) => idx < 10);\n this.guessWidth(this._columns, tenRows);\n break;\n }\n const columns = this.columns();\n for (const columnFormat of this.columnFormats()) {\n if (columnFormat.valid()) {\n const colIdx = columns.indexOf(columnFormat.column());\n if (this._columns[colIdx]) {\n this._columns[colIdx].hidden = columnFormat.width() === 0;\n this._columns[colIdx].width = columnFormat.width() || this._columns[colIdx].width;\n this._columns[colIdx].formatter = columnFormat.formatterFunc();\n this._columns[colIdx].renderCell = columnFormat.renderCellFunc();\n }\n }\n }\n this._dgrid.set(\"columns\", this._columns.filter(col => !col.hidden));\n this._colsRefresh = false;\n }\n if (this._colsRefresh || this._dataRefresh) {\n if (this._colsRefresh) {\n this._dgrid.refresh({});\n } else {\n this._dgrid.refresh();\n }\n this._colsRefresh = false;\n this._dataRefresh = false;\n }\n }\n\n exit(domNode, element) {\n delete this._prevColsHash;\n delete this._prevFieldsHash;\n super.exit(domNode, element);\n }\n\n // Cell ---\n formatterFunc(): CellFormatter | undefined {\n return function (this: ColumnType, cell: any, row: RowType): string | any {\n switch (typeof cell) {\n case \"string\":\n return {\n html: cell.replace(/\\t/g, \"&nbsp;&nbsp;&nbsp;&nbsp;\").trim()\n };\n case \"undefined\":\n return \"\";\n }\n return cell;\n };\n }\n\n renderCellFunc(): CellRenderer | undefined {\n return undefined; // Undefined will defualt to formatter ---\n }\n\n // Events ---\n click(row, col, sel) {\n }\n}\nTable.prototype._class += \" dgrid_Table\";\n\nexport interface Table {\n columnWidth(): \"auto\" | \"none\";\n columnWidth(_: \"auto\" | \"none\"): this;\n columnFormats(): ColumnFormat[];\n columnFormats(_: ColumnFormat[]): this;\n}\n\nTable.prototype.publish(\"columnWidth\", \"auto\", \"set\", \"Default column width\", [\"auto\", \"none\"]);\nTable.prototype.publish(\"columnFormats\", [], \"propertyArray\", \"Source Columns\", null, { autoExpand: ColumnFormat });\n"],"names":["HTMLWidget","row","_a","self","PropertyExt","d3Format","Palette","d3Select","hashSum"],"mappings":"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"}
package/package.json CHANGED
@@ -1,17 +1,19 @@
1
1
  {
2
2
  "name": "@hpcc-js/dgrid",
3
- "version": "3.1.0",
3
+ "version": "3.2.0",
4
4
  "description": "hpcc-js - Viz DGrid",
5
5
  "type": "module",
6
+ "main": "./dist/index.umd.cjs",
7
+ "module": "./dist/index.js",
6
8
  "exports": {
7
9
  ".": {
8
10
  "types": "./types/index.d.ts",
9
- "default": "./dist/index.js"
11
+ "import": "./dist/index.js",
12
+ "require": "./dist/index.umd.cjs"
10
13
  },
11
14
  "./dist/*": "./dist/*"
12
15
  },
13
- "module": "./dist/index.js",
14
- "browser": "./dist/index.js",
16
+ "browser": "./dist/index.umd.cjs",
15
17
  "types": "./types/index.d.ts",
16
18
  "files": [
17
19
  "dist/*",
@@ -20,8 +22,8 @@
20
22
  ],
21
23
  "scripts": {
22
24
  "clean": "rimraf --glob lib* types dist *.tsbuildinfo .turbo",
23
- "bundle": "node esbuild.js",
24
- "bundle-watch": "npm run bundle -- --development --watch",
25
+ "bundle": "vite build",
26
+ "bundle-watch": "vite --port 5506",
25
27
  "gen-types": "tsc --project tsconfig.json",
26
28
  "gen-types-watch": "npm run gen-types -- --watch",
27
29
  "build": "run-p gen-types bundle",
@@ -32,16 +34,16 @@
32
34
  "test": "vitest run",
33
35
  "coverage": "vitest run --coverage",
34
36
  "update": "npx --yes npm-check-updates -u -t minor",
35
- "update-major": "npx -yes npm-check-updates -u"
37
+ "update-major": "npx --yes npm-check-updates -u"
36
38
  },
37
39
  "dependencies": {
38
- "@hpcc-js/common": "^3.2.0",
40
+ "@hpcc-js/common": "^3.3.0",
39
41
  "@hpcc-js/dgrid-shim": "^3.1.0",
40
- "@hpcc-js/util": "^3.2.0"
42
+ "@hpcc-js/util": "^3.3.0"
41
43
  },
42
44
  "devDependencies": {
43
45
  "@hpcc-js/ddl-shim": "^3.0.0",
44
- "@hpcc-js/esbuild-plugins": "^1.3.0",
46
+ "@hpcc-js/esbuild-plugins": "^1.4.0",
45
47
  "@testing-library/dom": "10.4.0",
46
48
  "d3-format": "^1",
47
49
  "d3-selection": "^1"
@@ -57,5 +59,5 @@
57
59
  "url": "https://github.com/hpcc-systems/Visualization/issues"
58
60
  },
59
61
  "homepage": "https://github.com/hpcc-systems/Visualization",
60
- "gitHead": "658c50fd965a7744ba8db675ba6878607c44d5e2"
62
+ "gitHead": "145a4d4c8189c70f08e9804e63959d6dd398bd9f"
61
63
  }
@@ -107,10 +107,10 @@ export class RowFormatter {
107
107
  cell = JSON.stringify(cell.Item);
108
108
  }
109
109
  if (this._formattedRow[column.field] === undefined) {
110
- this._formattedRow[column.field] = "" + cell === undefined ? "" : (this._renderHtml ? cell : safeEncode(cell));
110
+ this._formattedRow[column.field] = "" + (cell === undefined ? "" : (this._renderHtml ? cell : safeEncode(cell)));
111
111
  } else {
112
112
  this._formattedRow[column.field] += LINE_SPLITTER;
113
- this._formattedRow[column.field] += "" + cell === undefined ? "" : (this._renderHtml ? cell : safeEncode(cell));
113
+ this._formattedRow[column.field] += "" + (cell === undefined ? "" : (this._renderHtml ? cell : safeEncode(cell)));
114
114
  }
115
115
  if (maxChildDepth > 1) {
116
116
  const paddingArr = [];
@@ -1,3 +1,3 @@
1
1
  export const PKG_NAME = "@hpcc-js/dgrid";
2
2
  export const PKG_VERSION = "3.1.0";
3
- export const BUILD_VERSION = "3.2.0";
3
+ export const BUILD_VERSION = "3.2.1";
package/src/i18n.js CHANGED
@@ -1,4 +1,5 @@
1
- define({
1
+ // eslint-disable-next-line no-undef
2
+ define({
2
3
  load: function (name, req, onload, config) {
3
4
  if (config.isBuild) {
4
5
  onload();
@@ -1,3 +1,3 @@
1
1
  export declare const PKG_NAME = "@hpcc-js/dgrid";
2
2
  export declare const PKG_VERSION = "3.1.0";
3
- export declare const BUILD_VERSION = "3.2.0";
3
+ export declare const BUILD_VERSION = "3.2.1";