@vonage/vwc-data-grid 2.28.2 → 2.30.1
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/adapters/vaadin/vwc-data-grid-adapter-vaadin.d.ts +1 -3
- package/adapters/vaadin/vwc-data-grid-adapter-vaadin.js +14 -3
- package/adapters/vaadin/vwc-data-grid-adapter-vaadin.js.map +1 -1
- package/package.json +8 -8
- package/readme.md +2 -1
- package/vwc-data-grid-column-api.d.ts +1 -0
- package/vwc-data-grid-column-api.js.map +1 -1
- package/vwc-data-grid-column.d.ts +1 -0
- package/vwc-data-grid-column.js +5 -0
- package/vwc-data-grid-column.js.map +1 -1
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import '@vaadin/vaadin-grid/src/
|
|
2
|
-
import '@vaadin/vaadin-grid/src/vaadin-grid-column.js';
|
|
3
|
-
import '@vaadin/vaadin-grid/src/vaadin-grid-tree-column.js';
|
|
1
|
+
import '@vaadin/vaadin-grid/src/all-imports.js';
|
|
4
2
|
import '../../headers/vwc-data-grid-header.js';
|
|
5
3
|
import type { EventContext, DataGrid } from '../../vwc-data-grid-api.js';
|
|
6
4
|
import type { DataGridAdapter } from '../vwc-data-grid-adapter-api.js';
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
var _VWCDataGridAdapterVaadin_vwcGrid;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
import '@vaadin/vaadin-grid/src/
|
|
4
|
-
import '@vaadin/vaadin-grid/src/vaadin-grid-column.js';
|
|
5
|
-
import '@vaadin/vaadin-grid/src/vaadin-grid-tree-column.js';
|
|
3
|
+
import '@vaadin/vaadin-grid/src/all-imports.js';
|
|
6
4
|
import '../../headers/vwc-data-grid-header.js';
|
|
7
5
|
import { GRID_COMPONENT, GRID_ENGINE_ROOT_CLASS } from '../../vwc-data-grid-api.js';
|
|
8
6
|
import { headerRendererProvider } from './vwc-renderer-provider-header-vaadin.js';
|
|
@@ -149,6 +147,19 @@ class VWCDataGridAdapterVaadin {
|
|
|
149
147
|
>
|
|
150
148
|
</vaadin-grid-tree-column>`;
|
|
151
149
|
}
|
|
150
|
+
else if (cc.filterable) {
|
|
151
|
+
return html `<vaadin-grid-filter-column
|
|
152
|
+
path="${ifDefined(cc.path)}"
|
|
153
|
+
?hidden="${cc.hidden}"
|
|
154
|
+
?frozen="${cc.frozen}"
|
|
155
|
+
?resizable="${cc.resizable}"
|
|
156
|
+
?auto-width="${cc.autoWidth}"
|
|
157
|
+
width="${ifDefined(cc.width)}"
|
|
158
|
+
.footerRenderer="${this.adaptMetaRenderer(footerRendererProvider, cc, __classPrivateFieldGet(this, _VWCDataGridAdapterVaadin_vwcGrid, "f"))}"
|
|
159
|
+
.renderer="${this.adaptDataRenderer(cellRendererProvider, cc, __classPrivateFieldGet(this, _VWCDataGridAdapterVaadin_vwcGrid, "f"))}"
|
|
160
|
+
>
|
|
161
|
+
</vaadin-grid-filter-column>`;
|
|
162
|
+
}
|
|
152
163
|
else {
|
|
153
164
|
return html `<vaadin-grid-column
|
|
154
165
|
path="${ifDefined(cc.path)}"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vwc-data-grid-adapter-vaadin.js","sourceRoot":"","sources":["../../src/adapters/vaadin/vwc-data-grid-adapter-vaadin.ts"],"names":[],"mappings":"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","sourcesContent":["import '@vaadin/vaadin-grid/src/vaadin-grid.js';\nimport '@vaadin/vaadin-grid/src/vaadin-grid-column.js';\nimport '@vaadin/vaadin-grid/src/vaadin-grid-tree-column.js';\nimport '../../headers/vwc-data-grid-header.js';\nimport {\n\tGRID_COMPONENT, GRID_ENGINE_ROOT_CLASS\n} from '../../vwc-data-grid-api.js';\nimport type { GridElement } from '@vaadin/vaadin-grid/src/vaadin-grid.js';\nimport type { GridColumnElement } from '@vaadin/vaadin-grid/src/vaadin-grid-column.js';\nimport type { GridEventContext } from '@vaadin/vaadin-grid/src/interfaces.js';\nimport type { EventContext, DataGrid } from '../../vwc-data-grid-api.js';\nimport type { DataGridColumn } from '../../vwc-data-grid-column-api.js';\nimport type { DataGridAdapter } from '../vwc-data-grid-adapter-api.js';\nimport type { MetaRendererProvider, DataRendererProvider, RowDetailsRendererProvider } from '../vwc-data-grid-render-provider-api.js';\nimport { headerRendererProvider } from './vwc-renderer-provider-header-vaadin.js';\nimport { footerRendererProvider } from './vwc-renderer-provider-footer-vaadin.js';\nimport { cellRendererProvider } from './vwc-renderer-provider-cell-vaadin.js';\nimport { rowDetailsRendererProvider } from './vwc-renderer-provider-row-details-vaadin.js';\nimport { style as vwcDataGridStyleVaadin } from './vwc-data-grid-adapter-vaadin.css.js';\nimport { CSSResult, html, TemplateResult } from 'lit-element';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\n\nexport {\n\tVWCDataGridAdapterVaadin\n};\n\ninterface VaadinMetaRenderer {\n\t(container: HTMLElement, column: GridColumnElement): void;\n}\n\ninterface VaadinDataRenderer {\n\t(container: HTMLElement, column: GridColumnElement, data: { item: unknown, selected: boolean }): void;\n}\n\ninterface VaadinRowDetailsRenderer {\n\t(container: HTMLElement, grid: GridElement, data: { item: unknown, selected: boolean }): void;\n}\n\n/**\n * VWCDataGridProviderVaadin service implements DataGridProvider API\n * - it provides the whole rendering functionality of Vivid data grid over the Vaadin grid engine\n */\nclass VWCDataGridAdapterVaadin implements DataGridAdapter {\n\tstatic getStylesOverlay(): CSSResult[] {\n\t\treturn [vwcDataGridStyleVaadin];\n\t}\n\n\t#vwcGrid: HTMLElement & DataGrid;\n\n\tconstructor(vwcGrid: HTMLElement & DataGrid) {\n\t\tif (!vwcGrid || vwcGrid.localName !== GRID_COMPONENT) {\n\t\t\tthrow new Error(`'vwcDataGrid' parameter invalid; expected '${GRID_COMPONENT}' component, got '${vwcGrid}'`);\n\t\t}\n\t\tthis.#vwcGrid = vwcGrid;\n\t}\n\n\trender(): TemplateResult {\n\t\tconst _dataProvider = this.#vwcGrid.dataProvider;\n\t\tlet _items = this.#vwcGrid.items;\n\t\tif (this.#vwcGrid.dataProvider && this.#vwcGrid.items) {\n\t\t\tconsole.error('\\'items\\' and \\'dataProvider\\' MUST NOT be used both; \\'dataProvider\\' will be used');\n\t\t\t_items = undefined;\n\t\t}\n\t\treturn html`\n\t\t\t<dom-module id=\"my-grid-styles\" theme-for=\"vaadin-grid\">\n\t\t\t\t<template>\n\t\t\t\t\t<style>\n\t\t\t\t\t\t[part~=\"cell\"] ::slotted(vaadin-grid-cell-content) {\n\t\t\t\t\t\t\tpadding: 4px 16px;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t:host(:not([reordering])) [part~='row'][selected] [part~='body-cell']:not([part~='details-cell']) {\n\t\t\t\t\t\t\tbackground-image: linear-gradient(var(--vvd-color-neutral-30), var(--vvd-color-neutral-30));\n\t\t\t\t\t\t}\n\t\t\t\t\t</style>\n\t\t\t\t</template>\n\t\t\t</dom-module>\n\t\t\t<vaadin-grid\n\t\t\t\tclass=\"${GRID_ENGINE_ROOT_CLASS}\"\n\t\t\t\ttheme=\"no-border\"\n\t\t\t\t?multi-sort=\"${this.#vwcGrid.multiSort}\"\n\t\t\t\t?column-reordering-allowed=\"${this.#vwcGrid.reordering}\"\n\t\t\t\t.rowDetailsRenderer=\"${this.adaptRowDetailsRenderer(rowDetailsRendererProvider, this.#vwcGrid)}\"\n\t\t\t\t.items=\"${_items}\"\n\t\t\t\t.heightByRows=\"${this.#vwcGrid.heightByRows}\"\n\t\t\t\t.dataProvider=\"${_dataProvider}\"\n\t\t\t>\n\n\t\t\t\t${this.#vwcGrid.columns.map(cc => this.renderColumnDef(cc))}\n\t\t\t</vaadin-grid>\n\t\t`;\n\t}\n\n\topenItemDetails(item: unknown): void {\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\tiGrid.openItemDetails(item);\n\t}\n\n\tcloseItemDetails(item: unknown): void {\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\tiGrid.closeItemDetails(item);\n\t}\n\n\tgetSelectedItems(): unknown[] {\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\treturn iGrid.selectedItems || (iGrid.selectedItems = []);\n\t}\n\n\tselectItem(item: unknown, singleSelectMode = false) {\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\tif (singleSelectMode) {\n\t\t\tif (iGrid.selectedItems?.length !== 1 || iGrid.selectedItems[0] !== item) {\n\t\t\t\tiGrid.selectedItems = [item];\n\t\t\t}\n\t\t} else {\n\t\t\tiGrid.selectItem(item);\n\t\t}\n\t}\n\n\tdeselectItem(item: unknown) {\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\tiGrid.deselectItem(item);\n\t}\n\n\tselectAll(): void {\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\tconst selectAllCandidates = Array.isArray(iGrid.items) ? iGrid._filter(iGrid.items) : [];\n\t\tif (selectAllCandidates.length === 0 && iGrid.selectedItems?.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tiGrid.selectedItems = selectAllCandidates;\n\t}\n\n\tdeselectAll(): void {\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\tif (iGrid.selectedItems?.length) {\n\t\t\tiGrid.selectedItems = [];\n\t\t}\n\t}\n\n\tgetEventContext(event: Event): EventContext | null {\n\t\tlet result = null;\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\tconst vContext = iGrid.getEventContext(event) as GridEventContext;\n\t\tif (vContext && typeof vContext.index === 'number') {\n\t\t\tresult = {\n\t\t\t\trow: vContext.index,\n\t\t\t\titem: vContext.item,\n\t\t\t};\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate getImplementationOrThrow(): GridElement {\n\t\tconst vaadinGrid = this.#vwcGrid.shadowRoot?.querySelector('vaadin-grid');\n\t\tif (!vaadinGrid) {\n\t\t\tthrow new Error(`'${GRID_COMPONENT}' is not yet fully initialized`);\n\t\t} else {\n\t\t\treturn vaadinGrid;\n\t\t}\n\t}\n\n\tprivate renderColumnDef(cc: DataGridColumn): TemplateResult {\n\t\tif (cc.selector) {\n\t\t\treturn html`<vaadin-grid-column\n\t\t\t\twidth=\"56px\"\n\t\t\t\tflex-grow=\"0\"\n\t\t\t\t.headerRenderer=\"${this.adaptMetaRenderer(headerRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t\t.renderer=\"${this.adaptDataRenderer(cellRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t>\n\t\t\t</vaadin-grid-column>`;\n\t\t} else if (cc.tree) {\n\t\t\treturn html`<vaadin-grid-tree-column\n\t\t\t\tpath=\"${ifDefined(cc.path)}\"\n\t\t\t\t?hidden=\"${cc.hidden}\"\n\t\t\t\t?frozen=\"${cc.frozen}\"\n\t\t\t\t?resizable=\"${cc.resizable}\"\n\t\t\t\t?auto-width=\"${cc.autoWidth}\"\n\t\t\t\twidth=\"${ifDefined(cc.width)}\"\n\t\t\t\t.headerRenderer=\"${this.adaptMetaRenderer(headerRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t\t.footerRenderer=\"${this.adaptMetaRenderer(footerRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t\t.renderer=\"${this.adaptDataRenderer(cellRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t>\n\t\t\t</vaadin-grid-tree-column>`;\n\t\t} else {\n\t\t\treturn html`<vaadin-grid-column\n\t\t\t\tpath=\"${ifDefined(cc.path)}\"\n\t\t\t\t?hidden=\"${cc.hidden}\"\n\t\t\t\t?frozen=\"${cc.frozen}\"\n\t\t\t\t?resizable=\"${cc.resizable}\"\n\t\t\t\t?auto-width=\"${cc.autoWidth}\"\n\t\t\t\twidth=\"${ifDefined(cc.width)}\"\n\t\t\t\t.headerRenderer=\"${this.adaptMetaRenderer(headerRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t\t.footerRenderer=\"${this.adaptMetaRenderer(footerRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t\t.renderer=\"${this.adaptDataRenderer(cellRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t>\n\t\t\t</vaadin-grid-column>`;\n\t\t}\n\t}\n\n\tprivate adaptMetaRenderer(rendererProvider: MetaRendererProvider, column: DataGridColumn, grid: DataGrid): VaadinMetaRenderer | undefined {\n\t\tconst renderer = rendererProvider(column);\n\t\tif (!renderer) {\n\t\t\treturn;\n\t\t}\n\t\tconst vvdColumnIndex = grid.columns.indexOf(column);\n\t\treturn (container: HTMLElement): void => {\n\t\t\trenderer(container, {\n\t\t\t\tgrid: grid,\n\t\t\t\tcolumn: grid.columns[vvdColumnIndex]\n\t\t\t});\n\t\t};\n\t}\n\n\tprivate adaptDataRenderer(rendererProvider: DataRendererProvider, column: DataGridColumn, grid: DataGrid): VaadinDataRenderer | undefined {\n\t\tconst renderer = rendererProvider(column);\n\t\tif (!renderer) {\n\t\t\treturn;\n\t\t}\n\t\tconst vvdColumnIndex = grid.columns.indexOf(column);\n\t\treturn (container: HTMLElement, _column: GridColumnElement, data: { item: unknown, selected: boolean }): void => {\n\t\t\trenderer(container, {\n\t\t\t\tgrid: grid,\n\t\t\t\tcolumn: grid.columns[vvdColumnIndex]\n\t\t\t}, data);\n\t\t};\n\t}\n\n\tprivate adaptRowDetailsRenderer(rendererProvider: RowDetailsRendererProvider, grid: DataGrid): VaadinRowDetailsRenderer | undefined {\n\t\tconst renderer = rendererProvider(grid);\n\t\tif (!renderer) {\n\t\t\treturn;\n\t\t}\n\t\treturn (container: HTMLElement, _grid: GridElement, data: { item: unknown, selected: boolean }): void => {\n\t\t\trenderer(container, {\n\t\t\t\tgrid: grid\n\t\t\t}, data);\n\t\t};\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"vwc-data-grid-adapter-vaadin.js","sourceRoot":"","sources":["../../src/adapters/vaadin/vwc-data-grid-adapter-vaadin.ts"],"names":[],"mappings":"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","sourcesContent":["import '@vaadin/vaadin-grid/src/all-imports.js';\nimport '../../headers/vwc-data-grid-header.js';\nimport {\n\tGRID_COMPONENT, GRID_ENGINE_ROOT_CLASS\n} from '../../vwc-data-grid-api.js';\nimport type { GridElement } from '@vaadin/vaadin-grid/src/vaadin-grid.js';\nimport type { GridColumnElement } from '@vaadin/vaadin-grid/src/vaadin-grid-column.js';\nimport type { GridEventContext } from '@vaadin/vaadin-grid/src/interfaces.js';\nimport type { EventContext, DataGrid } from '../../vwc-data-grid-api.js';\nimport type { DataGridColumn } from '../../vwc-data-grid-column-api.js';\nimport type { DataGridAdapter } from '../vwc-data-grid-adapter-api.js';\nimport type { MetaRendererProvider, DataRendererProvider, RowDetailsRendererProvider } from '../vwc-data-grid-render-provider-api.js';\nimport { headerRendererProvider } from './vwc-renderer-provider-header-vaadin.js';\nimport { footerRendererProvider } from './vwc-renderer-provider-footer-vaadin.js';\nimport { cellRendererProvider } from './vwc-renderer-provider-cell-vaadin.js';\nimport { rowDetailsRendererProvider } from './vwc-renderer-provider-row-details-vaadin.js';\nimport { style as vwcDataGridStyleVaadin } from './vwc-data-grid-adapter-vaadin.css.js';\nimport { CSSResult, html, TemplateResult } from 'lit-element';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\n\nexport {\n\tVWCDataGridAdapterVaadin\n};\n\ninterface VaadinMetaRenderer {\n\t(container: HTMLElement, column: GridColumnElement): void;\n}\n\ninterface VaadinDataRenderer {\n\t(container: HTMLElement, column: GridColumnElement, data: { item: unknown, selected: boolean }): void;\n}\n\ninterface VaadinRowDetailsRenderer {\n\t(container: HTMLElement, grid: GridElement, data: { item: unknown, selected: boolean }): void;\n}\n\n/**\n * VWCDataGridProviderVaadin service implements DataGridProvider API\n * - it provides the whole rendering functionality of Vivid data grid over the Vaadin grid engine\n */\nclass VWCDataGridAdapterVaadin implements DataGridAdapter {\n\tstatic getStylesOverlay(): CSSResult[] {\n\t\treturn [vwcDataGridStyleVaadin];\n\t}\n\n\t#vwcGrid: HTMLElement & DataGrid;\n\n\tconstructor(vwcGrid: HTMLElement & DataGrid) {\n\t\tif (!vwcGrid || vwcGrid.localName !== GRID_COMPONENT) {\n\t\t\tthrow new Error(`'vwcDataGrid' parameter invalid; expected '${GRID_COMPONENT}' component, got '${vwcGrid}'`);\n\t\t}\n\t\tthis.#vwcGrid = vwcGrid;\n\t}\n\n\trender(): TemplateResult {\n\t\tconst _dataProvider = this.#vwcGrid.dataProvider;\n\t\tlet _items = this.#vwcGrid.items;\n\t\tif (this.#vwcGrid.dataProvider && this.#vwcGrid.items) {\n\t\t\tconsole.error('\\'items\\' and \\'dataProvider\\' MUST NOT be used both; \\'dataProvider\\' will be used');\n\t\t\t_items = undefined;\n\t\t}\n\t\treturn html`\n\t\t\t<dom-module id=\"my-grid-styles\" theme-for=\"vaadin-grid\">\n\t\t\t\t<template>\n\t\t\t\t\t<style>\n\t\t\t\t\t\t[part~=\"cell\"] ::slotted(vaadin-grid-cell-content) {\n\t\t\t\t\t\t\tpadding: 4px 16px;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t:host(:not([reordering])) [part~='row'][selected] [part~='body-cell']:not([part~='details-cell']) {\n\t\t\t\t\t\t\tbackground-image: linear-gradient(var(--vvd-color-neutral-30), var(--vvd-color-neutral-30));\n\t\t\t\t\t\t}\n\t\t\t\t\t</style>\n\t\t\t\t</template>\n\t\t\t</dom-module>\n\t\t\t<vaadin-grid\n\t\t\t\tclass=\"${GRID_ENGINE_ROOT_CLASS}\"\n\t\t\t\ttheme=\"no-border\"\n\t\t\t\t?multi-sort=\"${this.#vwcGrid.multiSort}\"\n\t\t\t\t?column-reordering-allowed=\"${this.#vwcGrid.reordering}\"\n\t\t\t\t.rowDetailsRenderer=\"${this.adaptRowDetailsRenderer(rowDetailsRendererProvider, this.#vwcGrid)}\"\n\t\t\t\t.items=\"${_items}\"\n\t\t\t\t.heightByRows=\"${this.#vwcGrid.heightByRows}\"\n\t\t\t\t.dataProvider=\"${_dataProvider}\"\n\t\t\t>\n\n\t\t\t\t${this.#vwcGrid.columns.map(cc => this.renderColumnDef(cc))}\n\t\t\t</vaadin-grid>\n\t\t`;\n\t}\n\n\topenItemDetails(item: unknown): void {\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\tiGrid.openItemDetails(item);\n\t}\n\n\tcloseItemDetails(item: unknown): void {\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\tiGrid.closeItemDetails(item);\n\t}\n\n\tgetSelectedItems(): unknown[] {\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\treturn iGrid.selectedItems || (iGrid.selectedItems = []);\n\t}\n\n\tselectItem(item: unknown, singleSelectMode = false) {\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\tif (singleSelectMode) {\n\t\t\tif (iGrid.selectedItems?.length !== 1 || iGrid.selectedItems[0] !== item) {\n\t\t\t\tiGrid.selectedItems = [item];\n\t\t\t}\n\t\t} else {\n\t\t\tiGrid.selectItem(item);\n\t\t}\n\t}\n\n\tdeselectItem(item: unknown) {\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\tiGrid.deselectItem(item);\n\t}\n\n\tselectAll(): void {\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\tconst selectAllCandidates = Array.isArray(iGrid.items) ? iGrid._filter(iGrid.items) : [];\n\t\tif (selectAllCandidates.length === 0 && iGrid.selectedItems?.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tiGrid.selectedItems = selectAllCandidates;\n\t}\n\n\tdeselectAll(): void {\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\tif (iGrid.selectedItems?.length) {\n\t\t\tiGrid.selectedItems = [];\n\t\t}\n\t}\n\n\tgetEventContext(event: Event): EventContext | null {\n\t\tlet result = null;\n\t\tconst iGrid = this.getImplementationOrThrow();\n\t\tconst vContext = iGrid.getEventContext(event) as GridEventContext;\n\t\tif (vContext && typeof vContext.index === 'number') {\n\t\t\tresult = {\n\t\t\t\trow: vContext.index,\n\t\t\t\titem: vContext.item,\n\t\t\t};\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate getImplementationOrThrow(): GridElement {\n\t\tconst vaadinGrid = this.#vwcGrid.shadowRoot?.querySelector('vaadin-grid');\n\t\tif (!vaadinGrid) {\n\t\t\tthrow new Error(`'${GRID_COMPONENT}' is not yet fully initialized`);\n\t\t} else {\n\t\t\treturn vaadinGrid;\n\t\t}\n\t}\n\n\tprivate renderColumnDef(cc: DataGridColumn): TemplateResult {\n\t\tif (cc.selector) {\n\t\t\treturn html`<vaadin-grid-column\n\t\t\t\twidth=\"56px\"\n\t\t\t\tflex-grow=\"0\"\n\t\t\t\t.headerRenderer=\"${this.adaptMetaRenderer(headerRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t\t.renderer=\"${this.adaptDataRenderer(cellRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t>\n\t\t\t</vaadin-grid-column>`;\n\t\t} else if (cc.tree) {\n\t\t\treturn html`<vaadin-grid-tree-column\n\t\t\t\tpath=\"${ifDefined(cc.path)}\"\n\t\t\t\t?hidden=\"${cc.hidden}\"\n\t\t\t\t?frozen=\"${cc.frozen}\"\n\t\t\t\t?resizable=\"${cc.resizable}\"\n\t\t\t\t?auto-width=\"${cc.autoWidth}\"\n\t\t\t\twidth=\"${ifDefined(cc.width)}\"\n\t\t\t\t.headerRenderer=\"${this.adaptMetaRenderer(headerRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t\t.footerRenderer=\"${this.adaptMetaRenderer(footerRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t\t.renderer=\"${this.adaptDataRenderer(cellRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t>\n\t\t\t</vaadin-grid-tree-column>`;\n\t\t} else if (cc.filterable) {\n\t\t\treturn html`<vaadin-grid-filter-column\n\t\t\t\tpath=\"${ifDefined(cc.path)}\"\n\t\t\t\t?hidden=\"${cc.hidden}\"\n\t\t\t\t?frozen=\"${cc.frozen}\"\n\t\t\t\t?resizable=\"${cc.resizable}\"\n\t\t\t\t?auto-width=\"${cc.autoWidth}\"\n\t\t\t\twidth=\"${ifDefined(cc.width)}\"\n\t\t\t\t.footerRenderer=\"${this.adaptMetaRenderer(footerRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t\t.renderer=\"${this.adaptDataRenderer(cellRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t>\n\t\t\t</vaadin-grid-filter-column>`;\n\t\t} else {\n\t\t\treturn html`<vaadin-grid-column\n\t\t\t\tpath=\"${ifDefined(cc.path)}\"\n\t\t\t\t?hidden=\"${cc.hidden}\"\n\t\t\t\t?frozen=\"${cc.frozen}\"\n\t\t\t\t?resizable=\"${cc.resizable}\"\n\t\t\t\t?auto-width=\"${cc.autoWidth}\"\n\t\t\t\twidth=\"${ifDefined(cc.width)}\"\n\t\t\t\t.headerRenderer=\"${this.adaptMetaRenderer(headerRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t\t.footerRenderer=\"${this.adaptMetaRenderer(footerRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t\t.renderer=\"${this.adaptDataRenderer(cellRendererProvider, cc, this.#vwcGrid)}\"\n\t\t\t>\n\t\t\t</vaadin-grid-column>`;\n\t\t}\n\t}\n\n\tprivate adaptMetaRenderer(rendererProvider: MetaRendererProvider, column: DataGridColumn, grid: DataGrid): VaadinMetaRenderer | undefined {\n\t\tconst renderer = rendererProvider(column);\n\t\tif (!renderer) {\n\t\t\treturn;\n\t\t}\n\t\tconst vvdColumnIndex = grid.columns.indexOf(column);\n\t\treturn (container: HTMLElement): void => {\n\t\t\trenderer(container, {\n\t\t\t\tgrid: grid,\n\t\t\t\tcolumn: grid.columns[vvdColumnIndex]\n\t\t\t});\n\t\t};\n\t}\n\n\tprivate adaptDataRenderer(rendererProvider: DataRendererProvider, column: DataGridColumn, grid: DataGrid): VaadinDataRenderer | undefined {\n\t\tconst renderer = rendererProvider(column);\n\t\tif (!renderer) {\n\t\t\treturn;\n\t\t}\n\t\tconst vvdColumnIndex = grid.columns.indexOf(column);\n\t\treturn (container: HTMLElement, _column: GridColumnElement, data: { item: unknown, selected: boolean }): void => {\n\t\t\trenderer(container, {\n\t\t\t\tgrid: grid,\n\t\t\t\tcolumn: grid.columns[vvdColumnIndex]\n\t\t\t}, data);\n\t\t};\n\t}\n\n\tprivate adaptRowDetailsRenderer(rendererProvider: RowDetailsRendererProvider, grid: DataGrid): VaadinRowDetailsRenderer | undefined {\n\t\tconst renderer = rendererProvider(grid);\n\t\tif (!renderer) {\n\t\t\treturn;\n\t\t}\n\t\treturn (container: HTMLElement, _grid: GridElement, data: { item: unknown, selected: boolean }): void => {\n\t\t\trenderer(container, {\n\t\t\t\tgrid: grid\n\t\t\t}, data);\n\t\t};\n\t}\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vonage/vwc-data-grid",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.30.1",
|
|
4
4
|
"description": "Data Grid component - highly efficient and feature full columnar data view",
|
|
5
5
|
"homepage": "https://github.com/Vonage/vivid/tree/master/components/data-grid#readme",
|
|
6
6
|
"license": "ISC",
|
|
@@ -29,21 +29,21 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@vaadin/vaadin-grid": "6.0.1",
|
|
32
|
-
"@vonage/vvd-core": "2.
|
|
33
|
-
"@vonage/vwc-checkbox": "2.
|
|
34
|
-
"@vonage/vwc-icon": "2.
|
|
32
|
+
"@vonage/vvd-core": "2.30.1",
|
|
33
|
+
"@vonage/vwc-checkbox": "2.30.1",
|
|
34
|
+
"@vonage/vwc-icon": "2.30.1",
|
|
35
35
|
"lit-element": "^2.4.0",
|
|
36
36
|
"lit-html": "^1.3.0",
|
|
37
37
|
"tslib": "^2.3.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@vonage/vvd-design-tokens": "2.
|
|
41
|
-
"@vonage/vvd-typography": "2.
|
|
42
|
-
"@vonage/vvd-umbrella": "2.
|
|
40
|
+
"@vonage/vvd-design-tokens": "2.30.1",
|
|
41
|
+
"@vonage/vvd-typography": "2.30.1",
|
|
42
|
+
"@vonage/vvd-umbrella": "2.30.1",
|
|
43
43
|
"typescript": "^4.3.2"
|
|
44
44
|
},
|
|
45
45
|
"vaadin": {
|
|
46
46
|
"disableUsageStatistics": true
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "b33204e17adaf85866c337562d8e3dfade4105af"
|
|
49
49
|
}
|
package/readme.md
CHANGED
|
@@ -6,7 +6,7 @@ As in opposite to a simple HTML table, this component is performance oriented, c
|
|
|
6
6
|
|
|
7
7
|
Highlights:
|
|
8
8
|
- static (all upfront) and dynamic (chunks on demand) data provisioning
|
|
9
|
-
- sorting
|
|
9
|
+
- sorting / filtering
|
|
10
10
|
- tree view (group view)
|
|
11
11
|
- expanded row view
|
|
12
12
|
- rows selection (one / all / partial)
|
|
@@ -151,6 +151,7 @@ There are 2 ways to configure grid's columns:
|
|
|
151
151
|
| `hidden` | `hidden` | `boolean` | `false` | show/hide column |
|
|
152
152
|
| `frozen` | `frozen` | `boolean` | `false` | freeze/unfreeze column (horizontal scroll pinning) |
|
|
153
153
|
| `sortable` | `sortable` | `boolean` | `false` | shows sorting UI and provides OOTB sorting support |
|
|
154
|
+
| `filterable` | `filterable` | `boolean` | `false` | shows filtering UI and provides OOTB filtering support |
|
|
154
155
|
| `resizable` | `resizable` | `boolean` | `false` | controls column resizeability support (UI) |
|
|
155
156
|
| `selector` | `selector` | `string: 'single' | 'multi'` | `undefined` | column designated as `selector` will provide and OOTB header (checkbox) and cells (checkbox) to manage / reflect selection; see 'Selection API' above |
|
|
156
157
|
| `autoWidth` | `auto-width` | `boolean` | `false` | should the column to auto calculate and set it's own width (based on currently rendered content) |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vwc-data-grid-column-api.js","sourceRoot":"","sources":["src/vwc-data-grid-column-api.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,2BAA2B,EAC3B,8BAA8B,EAC9B,eAAe,EACf,cAAc,GAEd,CAAC;AAEF,MAAM,2BAA2B,GAAG,sBAAsB,EACzD,8BAA8B,GAAG,0BAA0B,EAC3D,eAAe,GAAG,QAAQ,EAC1B,cAAc,GAAG,OAAO,CAAC","sourcesContent":["import type { DataRenderer, MetaRenderer } from './vwc-data-grid-renderer-api.js';\n\nexport {\n\tCOLUMN_DEFINITION_COMPONENT,\n\tCOLUMN_DEFINITION_UPDATE_EVENT,\n\tSELECTOR_SINGLE,\n\tSELECTOR_MULTI,\n\tDataGridColumn,\n};\n\nconst COLUMN_DEFINITION_COMPONENT = 'vwc-data-grid-column',\n\tCOLUMN_DEFINITION_UPDATE_EVENT = 'column-definition-update',\n\tSELECTOR_SINGLE = 'single',\n\tSELECTOR_MULTI = 'multi';\n\n/**\n * API definition of the Vivid data grid column, component\n * - column here is a metadata definition of grid column's configuration and behavior\n * - as such, column has NO visual representation and serves as a configuration data management unit\n * - this API is to be applied to each column in the data grid\n */\ninterface DataGridColumn {\n\t/**\n\t * path into the item to retrieve the data to be shown\n\t * - won't be relevant for `selector` column\n\t */\n\tpath?: string;\n\n\t/**\n\t * designates the column as a collapsible tree / groupable in case of a single level\n\t */\n\ttree: boolean;\n\n\t/**\n\t * hides / shows the column\n\t */\n\thidden: boolean;\n\n\t/**\n\t * prevents columns from being scrolled / moved\n\t */\n\tfrozen: boolean;\n\n\t/**\n\t * turns the column into sortable and vice-versa\n\t * - when sortable and no custom header renderer,
|
|
1
|
+
{"version":3,"file":"vwc-data-grid-column-api.js","sourceRoot":"","sources":["src/vwc-data-grid-column-api.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,2BAA2B,EAC3B,8BAA8B,EAC9B,eAAe,EACf,cAAc,GAEd,CAAC;AAEF,MAAM,2BAA2B,GAAG,sBAAsB,EACzD,8BAA8B,GAAG,0BAA0B,EAC3D,eAAe,GAAG,QAAQ,EAC1B,cAAc,GAAG,OAAO,CAAC","sourcesContent":["import type { DataRenderer, MetaRenderer } from './vwc-data-grid-renderer-api.js';\n\nexport {\n\tCOLUMN_DEFINITION_COMPONENT,\n\tCOLUMN_DEFINITION_UPDATE_EVENT,\n\tSELECTOR_SINGLE,\n\tSELECTOR_MULTI,\n\tDataGridColumn,\n};\n\nconst COLUMN_DEFINITION_COMPONENT = 'vwc-data-grid-column',\n\tCOLUMN_DEFINITION_UPDATE_EVENT = 'column-definition-update',\n\tSELECTOR_SINGLE = 'single',\n\tSELECTOR_MULTI = 'multi';\n\n/**\n * API definition of the Vivid data grid column, component\n * - column here is a metadata definition of grid column's configuration and behavior\n * - as such, column has NO visual representation and serves as a configuration data management unit\n * - this API is to be applied to each column in the data grid\n */\ninterface DataGridColumn {\n\t/**\n\t * path into the item to retrieve the data to be shown\n\t * - won't be relevant for `selector` column\n\t */\n\tpath?: string;\n\n\t/**\n\t * designates the column as a collapsible tree / groupable in case of a single level\n\t */\n\ttree: boolean;\n\n\t/**\n\t * hides / shows the column\n\t */\n\thidden: boolean;\n\n\t/**\n\t * prevents columns from being scrolled / moved\n\t */\n\tfrozen: boolean;\n\n\t/**\n\t * turns the column into sortable and vice-versa\n\t * - when sortable and no custom header renderer, default sorting renderer will be shown and effective\n\t */\n\tsortable: boolean;\n\n\t/**\n\t * turns the column into filterable\n\t * - when filterable and no custom header renderer, default filter renderer will be shown and effective\n\t */\n\t filterable: boolean;\n\n\t/**\n\t * makes columns resizable an vice-versa\n\t * - when resizable, a resize handle is available in UI to resize the column's width\n\t */\n\tresizable: boolean;\n\n\t/**\n\t * makes the column `selector`\n\t * - won't react on features like `header`, `path`, `sortable`, `resizable` etc\n\t * - unless overridden, will provide an OOTB UI for selecting the rows\n\t * - if the values is `single`\n\t * \t - only one item will be selected, other unselected automatically\n\t * - no select all UI in the header will be provided\n\t * - if `multi`\n\t * - header managing the select / deselect all will be shown\n\t */\n\tselector?: string;\n\n\tautoWidth: boolean;\n\twidth?: string;\n\n\theader: string;\n\theaderRenderer?: MetaRenderer;\n\tfooter: string;\n\tfooterRenderer?: MetaRenderer;\n\tcellRenderer?: DataRenderer;\n}\n"]}
|
package/vwc-data-grid-column.js
CHANGED
|
@@ -9,6 +9,7 @@ let VWCDataGridColumn = class VWCDataGridColumn extends LitElement {
|
|
|
9
9
|
this.hidden = false;
|
|
10
10
|
this.frozen = false;
|
|
11
11
|
this.sortable = false;
|
|
12
|
+
this.filterable = false;
|
|
12
13
|
this.resizable = false;
|
|
13
14
|
this.selector = undefined;
|
|
14
15
|
this.autoWidth = false;
|
|
@@ -26,6 +27,7 @@ let VWCDataGridColumn = class VWCDataGridColumn extends LitElement {
|
|
|
26
27
|
hidden: this.selector ? false : this.hidden,
|
|
27
28
|
frozen: this.frozen,
|
|
28
29
|
sortable: this.selector ? false : this.sortable,
|
|
30
|
+
filterable: this.selector ? false : this.filterable,
|
|
29
31
|
resizable: this.resizable,
|
|
30
32
|
selector: this.selector,
|
|
31
33
|
autoWidth: this.width ? false : this.autoWidth,
|
|
@@ -78,6 +80,9 @@ __decorate([
|
|
|
78
80
|
__decorate([
|
|
79
81
|
property({ type: Boolean, reflect: true })
|
|
80
82
|
], VWCDataGridColumn.prototype, "sortable", void 0);
|
|
83
|
+
__decorate([
|
|
84
|
+
property({ type: Boolean, reflect: true })
|
|
85
|
+
], VWCDataGridColumn.prototype, "filterable", void 0);
|
|
81
86
|
__decorate([
|
|
82
87
|
property({ type: Boolean, reflect: true })
|
|
83
88
|
], VWCDataGridColumn.prototype, "resizable", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vwc-data-grid-column.js","sourceRoot":"","sources":["src/vwc-data-grid-column.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,2BAA2B,EAC3B,8BAA8B,EAC9B,eAAe,EACf,cAAc,EACd,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACN,aAAa,EACb,QAAQ,EACR,UAAU,GACV,MAAM,aAAa,CAAC;AAerB,IAAa,iBAAiB,GAA9B,MAAa,iBAAkB,SAAQ,UAAU;IAAjD;;QAEE,SAAI,GAAY,SAAS,CAAC;QAG1B,SAAI,GAAG,KAAK,CAAC;QAEL,WAAM,GAAG,KAAK,CAAC;QAEvB,WAAM,GAAG,KAAK,CAAC;QAEf,aAAQ,GAAG,KAAK,CAAC;QAEjB,cAAS,GAAG,KAAK,CAAC;QAMlB,aAAQ,GAAY,SAAS,CAAC;QAG9B,cAAS,GAAG,KAAK,CAAC;QAElB,UAAK,GAAY,SAAS,CAAC;QAG3B,WAAM,GAAG,EAAE,CAAC;QAEZ,mBAAc,GAAG,SAAS,CAAC;QAE3B,WAAM,GAAG,EAAE,CAAC;QAEZ,mBAAc,GAAG,SAAS,CAAC;QAE3B,iBAAY,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"vwc-data-grid-column.js","sourceRoot":"","sources":["src/vwc-data-grid-column.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,2BAA2B,EAC3B,8BAA8B,EAC9B,eAAe,EACf,cAAc,EACd,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACN,aAAa,EACb,QAAQ,EACR,UAAU,GACV,MAAM,aAAa,CAAC;AAerB,IAAa,iBAAiB,GAA9B,MAAa,iBAAkB,SAAQ,UAAU;IAAjD;;QAEE,SAAI,GAAY,SAAS,CAAC;QAG1B,SAAI,GAAG,KAAK,CAAC;QAEL,WAAM,GAAG,KAAK,CAAC;QAEvB,WAAM,GAAG,KAAK,CAAC;QAEf,aAAQ,GAAG,KAAK,CAAC;QAEjB,eAAU,GAAG,KAAK,CAAC;QAEnB,cAAS,GAAG,KAAK,CAAC;QAMlB,aAAQ,GAAY,SAAS,CAAC;QAG9B,cAAS,GAAG,KAAK,CAAC;QAElB,UAAK,GAAY,SAAS,CAAC;QAG3B,WAAM,GAAG,EAAE,CAAC;QAEZ,mBAAc,GAAG,SAAS,CAAC;QAE3B,WAAM,GAAG,EAAE,CAAC;QAEZ,mBAAc,GAAG,SAAS,CAAC;QAE3B,iBAAY,GAAG,SAAS,CAAC;IAsD3B,CAAC;IApDA,eAAe;QACd,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YAEf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;YAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;YAC/C,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU;YACnD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YAEvB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;YAC9C,KAAK,EAAE,IAAI,CAAC,KAAK;YAEjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,YAAY,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAC;IACH,CAAC;IAEkB,gBAAgB;QAClC,OAAO,IAAI,CAAC;IACb,CAAC;IAEkB,OAAO;QAEzB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,wBAAwB,EAAE,CAAC;SAChC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC7B;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,8BAA8B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAClF,CAAC;IAEO,wBAAwB;QAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;SACrG;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;SACjG;IACF,CAAC;IAEO,qBAAqB;QAC5B,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;SAC3F;IACF,CAAC;CACD,CAAA;AAzFC;IADA,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CACf;AAG1B;IADA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAC7B;AAEd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDACnB;AAEvB;IADA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDAC3B;AAEf;IADA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDACzB;AAEjB;IADA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qDACvB;AAEnB;IADA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oDACxB;AAMlB;IALA,QAAQ,CAAC;QACT,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,eAAe,IAAI,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;KAC/E,CAAC;mDAC6B;AAG9B;IADA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;oDACjD;AAElB;IADA,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDACd;AAG3B;IADA,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDAC7B;AAEZ;IADA,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;yDACnB;AAE3B;IADA,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDAC7B;AAEZ;IADA,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;yDACnB;AAE3B;IADA,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;uDACrB;AArCd,iBAAiB;IAD7B,aAAa,CAAC,2BAA2B,CAAC;GAC9B,iBAAiB,CA2F7B;SA3FY,iBAAiB","sourcesContent":["import {\n\tCOLUMN_DEFINITION_COMPONENT,\n\tCOLUMN_DEFINITION_UPDATE_EVENT,\n\tSELECTOR_SINGLE,\n\tSELECTOR_MULTI\n} from './vwc-data-grid-column-api.js';\nimport type { DataGridColumn } from './vwc-data-grid-column-api.js';\nimport {\n\tcustomElement,\n\tproperty,\n\tLitElement,\n} from 'lit-element';\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t[COLUMN_DEFINITION_COMPONENT]: VWCDataGridColumn;\n\t}\n}\n\n/**\n * `vwc-data-grid-column` is a configuration bearer component only\n * - it has not own UI functionality and/or visual semantics/HTML\n * - it reflects exactly the DataGridColumn API\n * - it serves as holder of that configuration, validator of changes and observer and notifier of them\n */\n@customElement(COLUMN_DEFINITION_COMPONENT)\nexport class VWCDataGridColumn extends LitElement implements DataGridColumn {\n\t@property({ type: String, reflect: true })\n\t\tpath?: string = undefined;\n\n\t@property({ type: Boolean, reflect: true })\n\t\ttree = false;\n\t@property({ type: Boolean, reflect: true })\n\toverride hidden = false;\n\t@property({ type: Boolean, reflect: true })\n\t\tfrozen = false;\n\t@property({ type: Boolean, reflect: true })\n\t\tsortable = false;\n\t@property({ type: Boolean, reflect: true })\n\t\tfilterable = false;\n\t@property({ type: Boolean, reflect: true })\n\t\tresizable = false;\n\t@property({\n\t\ttype: String,\n\t\treflect: true,\n\t\tconverter: v => (v === SELECTOR_SINGLE || v === SELECTOR_MULTI ? v : undefined)\n\t})\n\t\tselector?: string = undefined;\n\n\t@property({ type: Boolean, reflect: true, attribute: 'auto-width' })\n\t\tautoWidth = false;\n\t@property({ type: String, reflect: true })\n\t\twidth?: string = undefined;\n\n\t@property({ type: String, reflect: true })\n\t\theader = '';\n\t@property({ reflect: false, attribute: false })\n\t\theaderRenderer = undefined;\n\t@property({ type: String, reflect: true })\n\t\tfooter = '';\n\t@property({ reflect: false, attribute: false })\n\t\tfooterRenderer = undefined;\n\t@property({ reflect: false, attribute: false })\n\t\tcellRenderer = undefined;\n\n\tgetColumnConfig(): DataGridColumn {\n\t\treturn {\n\t\t\tpath: this.path,\n\n\t\t\ttree: this.tree,\n\t\t\thidden: this.selector ? false : this.hidden,\n\t\t\tfrozen: this.frozen,\n\t\t\tsortable: this.selector ? false : this.sortable,\n\t\t\tfilterable: this.selector ? false : this.filterable,\n\t\t\tresizable: this.resizable,\n\t\t\tselector: this.selector,\n\n\t\t\tautoWidth: this.width ? false : this.autoWidth,\n\t\t\twidth: this.width,\n\n\t\t\theader: this.header,\n\t\t\theaderRenderer: this.headerRenderer,\n\t\t\tfooter: this.footer,\n\t\t\tfooterRenderer: this.footerRenderer,\n\t\t\tcellRenderer: this.cellRenderer\n\t\t};\n\t}\n\n\tprotected override createRenderRoot(): HTMLElement {\n\t\treturn this;\n\t}\n\n\tprotected override updated(): void {\n\t\t//\tTODO: after the limitations of co-existing definitions are clear - add more validations here\n\t\tif (this.selector) {\n\t\t\tthis.verifySelectorViolations();\n\t\t}\n\t\tif (this.width) {\n\t\t\tthis.verifyWidthViolations();\n\t\t}\n\t\tthis.dispatchEvent(new Event(COLUMN_DEFINITION_UPDATE_EVENT, { bubbles: true }));\n\t}\n\n\tprivate verifySelectorViolations() {\n\t\tif (this.sortable) {\n\t\t\tconsole.warn('column MAY NOT have both \\'selector\\' and \\'sortable\\'; \\'sortable\\' will be ignored');\n\t\t}\n\t\tif (this.hidden) {\n\t\t\tconsole.warn('column MAY NOT have both \\'selector\\' and \\'hidden\\'; \\'hidden\\' will be ignored');\n\t\t}\n\t}\n\n\tprivate verifyWidthViolations() {\n\t\tif (this.autoWidth) {\n\t\t\tconsole.error('\\'width\\' and \\'autoWidth\\' MUST NOT be used both; \\'width\\' will be used');\n\t\t}\n\t}\n}\n"]}
|