igniteui-grid-lite 0.1.0 → 0.3.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.
Files changed (44) hide show
  1. package/components/column.d.ts +15 -9
  2. package/components/column.js +20 -9
  3. package/components/column.js.map +1 -1
  4. package/components/filter-row.js +6 -6
  5. package/components/filter-row.js.map +1 -1
  6. package/components/grid.js +3 -3
  7. package/components/grid.js.map +1 -1
  8. package/components/header-row.js +1 -1
  9. package/components/header-row.js.map +1 -1
  10. package/components/header.js +3 -3
  11. package/components/header.js.map +1 -1
  12. package/components/row.js +2 -2
  13. package/components/row.js.map +1 -1
  14. package/controllers/filter.js +3 -3
  15. package/controllers/filter.js.map +1 -1
  16. package/controllers/navigation.js +4 -4
  17. package/controllers/navigation.js.map +1 -1
  18. package/controllers/resize.js +2 -2
  19. package/controllers/resize.js.map +1 -1
  20. package/controllers/sort.d.ts +1 -1
  21. package/controllers/sort.js +11 -11
  22. package/controllers/sort.js.map +1 -1
  23. package/controllers/state.js +1 -1
  24. package/controllers/state.js.map +1 -1
  25. package/custom-elements.json +92 -31
  26. package/docs/assets/hierarchy.js +1 -1
  27. package/docs/assets/navigation.js +1 -1
  28. package/docs/assets/search.js +1 -1
  29. package/docs/classes/IgcGridLite.html +1 -1
  30. package/docs/classes/IgcGridLiteColumn.html +21 -15
  31. package/docs/hierarchy.html +1 -1
  32. package/docs/interfaces/BaseColumnConfiguration.html +22 -16
  33. package/docs/interfaces/BaseColumnSortConfiguration.html +3 -5
  34. package/docs/modules.html +1 -1
  35. package/index.d.ts +1 -1
  36. package/index.js.map +1 -1
  37. package/internal/constants.js +4 -4
  38. package/internal/constants.js.map +1 -1
  39. package/internal/types.d.ts +21 -22
  40. package/internal/types.js.map +1 -1
  41. package/internal/utils.js +11 -8
  42. package/internal/utils.js.map +1 -1
  43. package/package.json +1 -1
  44. package/docs/interfaces/ColumnFilterConfiguration.html +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/controllers/filter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController } from 'lit';\nimport type IgcFilterRow from '../components/filter-row.js';\nimport type { IgcFilteredEvent } from '../components/grid.js';\nimport { PIPELINE } from '../internal/constants.js';\nimport type { ColumnConfiguration, Keys } from '../internal/types.js';\nimport { asArray, getFilterOperandsFor } from '../internal/utils.js';\nimport { FilterState } from '../operations/filter/state.js';\nimport type { FilterExpression } from '../operations/filter/types.js';\nimport type { StateController } from './state.js';\n\nexport class FilterController<T extends object> implements ReactiveController {\n private readonly _stateController: StateController<T>;\n\n constructor(state: StateController<T>) {\n this._stateController = state;\n this._stateController.host.addController(this);\n }\n\n public state: FilterState<T> = new FilterState();\n\n public get host() {\n return this._stateController.host;\n }\n\n public get filterRow(): IgcFilterRow<T> | null {\n return this._stateController.filterRow;\n }\n\n get #virtualizer() {\n return this._stateController.virtualizer;\n }\n\n #emitFilteringEvent(expression: FilterExpression<T>, type: 'add' | 'modify' | 'remove') {\n return this.host.emitEvent('filtering', {\n detail: {\n key: expression.key,\n expressions: [expression],\n type,\n },\n cancelable: true,\n });\n }\n\n #emitFilteredEvent(detail?: IgcFilteredEvent<T>) {\n return this.host.emitEvent('filtered', { detail });\n }\n\n #filter(expression: FilterExpression<T> | FilterExpression<T>[]) {\n for (const expr of asArray(expression)) {\n this.state.set(expr);\n }\n\n // HACK: In the case where the scrollTop is a large and amount and a big chunk of data is filtered out\n // HACK: the virtualizer can't recalculate its scroll position correctly. Thus, we reset the scrollTop state.\n this.#virtualizer?.scrollTo({ top: 0 });\n this.host.requestUpdate(PIPELINE);\n }\n\n public hostConnected() {}\n\n public hostUpdate(): void {\n this.filterRow?.requestUpdate();\n }\n\n public get(key: Keys<T>) {\n return this.state.get(key);\n }\n\n public reset(key?: Keys<T>) {\n key ? this.state.delete(key) : this.state.clear();\n }\n\n public setActiveColumn(column?: ColumnConfiguration<T>) {\n if (column?.filter && this.filterRow?.active) {\n this.filterRow.column = column;\n this.filterRow.expression = this.getDefaultExpression(column);\n this.host.requestUpdate();\n }\n }\n\n public getDefaultExpression(column: ColumnConfiguration<T>) {\n const caseSensitive =\n typeof column.filter === 'boolean' ? false : Boolean(column.filter?.caseSensitive);\n const operands = getFilterOperandsFor(column);\n const keys = Object.keys(operands) as Keys<typeof operands>[];\n\n // XXX: Types\n return {\n key: column.key,\n condition: operands[keys[0]],\n caseSensitive,\n } as unknown as FilterExpression<T>;\n }\n\n public async removeAllExpressions(key: Keys<T>) {\n const state = this.get(key)?.all ?? [];\n\n if (\n !this.host.emitEvent('filtering', {\n detail: {\n key,\n expressions: state,\n type: 'remove',\n },\n cancelable: true,\n })\n ) {\n return;\n }\n\n this.reset(key);\n this.#filter([]);\n\n await this.host.updateComplete;\n this.#emitFilteredEvent({ key, state: this.get(key)?.all ?? [] });\n }\n\n public async removeExpression(expression: FilterExpression<T>) {\n const state = this.get(expression.key);\n\n if (!this.#emitFilteringEvent(expression, 'remove')) {\n return;\n }\n\n state?.remove(expression);\n\n if (state?.empty) {\n this.reset(state.key);\n }\n\n this.#filter([]);\n\n await this.host.updateComplete;\n this.#emitFilteredEvent({ key: expression.key, state: state?.all ?? [] });\n }\n\n public async filterWithEvent(expression: FilterExpression<T>, type: 'add' | 'modify' | 'remove') {\n if (!this.#emitFilteringEvent(expression, type)) {\n return;\n }\n\n this.#filter(expression);\n\n await this.host.updateComplete;\n this.#emitFilteredEvent({ key: expression.key, state: this.get(expression.key)?.all ?? [] });\n }\n\n public filter(expression: FilterExpression<T> | FilterExpression<T>[]) {\n this.#filter(\n asArray(expression).map((expr) =>\n Object.assign(this.getDefaultExpression(this.host.getColumn(expr.key)!), expr)\n )\n );\n }\n}\n"]}
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/controllers/filter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController } from 'lit';\nimport type IgcFilterRow from '../components/filter-row.js';\nimport type { IgcFilteredEvent } from '../components/grid.js';\nimport { PIPELINE } from '../internal/constants.js';\nimport type { ColumnConfiguration, Keys } from '../internal/types.js';\nimport { asArray, getFilterOperandsFor } from '../internal/utils.js';\nimport { FilterState } from '../operations/filter/state.js';\nimport type { FilterExpression } from '../operations/filter/types.js';\nimport type { StateController } from './state.js';\n\nexport class FilterController<T extends object> implements ReactiveController {\n private readonly _stateController: StateController<T>;\n\n constructor(state: StateController<T>) {\n this._stateController = state;\n this._stateController.host.addController(this);\n }\n\n public state: FilterState<T> = new FilterState();\n\n public get host() {\n return this._stateController.host;\n }\n\n public get filterRow(): IgcFilterRow<T> | null {\n return this._stateController.filterRow;\n }\n\n get #virtualizer() {\n return this._stateController.virtualizer;\n }\n\n #emitFilteringEvent(expression: FilterExpression<T>, type: 'add' | 'modify' | 'remove') {\n return this.host.emitEvent('filtering', {\n detail: {\n key: expression.key,\n expressions: [expression],\n type,\n },\n cancelable: true,\n });\n }\n\n #emitFilteredEvent(detail?: IgcFilteredEvent<T>) {\n return this.host.emitEvent('filtered', { detail });\n }\n\n #filter(expression: FilterExpression<T> | FilterExpression<T>[]) {\n for (const expr of asArray(expression)) {\n this.state.set(expr);\n }\n\n // HACK: In the case where the scrollTop is a large and amount and a big chunk of data is filtered out\n // HACK: the virtualizer can't recalculate its scroll position correctly. Thus, we reset the scrollTop state.\n this.#virtualizer?.scrollTo({ top: 0 });\n this.host.requestUpdate(PIPELINE);\n }\n\n public hostConnected() {}\n\n public hostUpdate(): void {\n this.filterRow?.requestUpdate();\n }\n\n public get(key: Keys<T>) {\n return this.state.get(key);\n }\n\n public reset(key?: Keys<T>) {\n key ? this.state.delete(key) : this.state.clear();\n }\n\n public setActiveColumn(column?: ColumnConfiguration<T>) {\n if (column?.filterable && this.filterRow?.active) {\n this.filterRow.column = column;\n this.filterRow.expression = this.getDefaultExpression(column);\n this.host.requestUpdate();\n }\n }\n\n public getDefaultExpression(column: ColumnConfiguration<T>) {\n const caseSensitive = Boolean(column.filteringCaseSensitive);\n const operands = getFilterOperandsFor(column);\n const keys = Object.keys(operands) as Keys<typeof operands>[];\n\n // XXX: Types\n return {\n key: column.field,\n condition: operands[keys[0]],\n caseSensitive,\n } as unknown as FilterExpression<T>;\n }\n\n public async removeAllExpressions(key: Keys<T>) {\n const state = this.get(key)?.all ?? [];\n\n if (\n !this.host.emitEvent('filtering', {\n detail: {\n key,\n expressions: state,\n type: 'remove',\n },\n cancelable: true,\n })\n ) {\n return;\n }\n\n this.reset(key);\n this.#filter([]);\n\n await this.host.updateComplete;\n this.#emitFilteredEvent({ key, state: this.get(key)?.all ?? [] });\n }\n\n public async removeExpression(expression: FilterExpression<T>) {\n const state = this.get(expression.key);\n\n if (!this.#emitFilteringEvent(expression, 'remove')) {\n return;\n }\n\n state?.remove(expression);\n\n if (state?.empty) {\n this.reset(state.key);\n }\n\n this.#filter([]);\n\n await this.host.updateComplete;\n this.#emitFilteredEvent({ key: expression.key, state: state?.all ?? [] });\n }\n\n public async filterWithEvent(expression: FilterExpression<T>, type: 'add' | 'modify' | 'remove') {\n if (!this.#emitFilteringEvent(expression, type)) {\n return;\n }\n\n this.#filter(expression);\n\n await this.host.updateComplete;\n this.#emitFilteredEvent({ key: expression.key, state: this.get(expression.key)?.all ?? [] });\n }\n\n public filter(expression: FilterExpression<T> | FilterExpression<T>[]) {\n this.#filter(\n asArray(expression).map((expr) =>\n Object.assign(this.getDefaultExpression(this.host.getColumn(expr.key)!), expr)\n )\n );\n }\n}\n"]}
@@ -14,20 +14,20 @@ export class NavigationController {
14
14
  return this._state.columns;
15
15
  }
16
16
  get _firstColumn() {
17
- return this._state.host.getColumn(0).key ?? '';
17
+ return this._state.host.getColumn(0).field ?? '';
18
18
  }
19
19
  getPreviousColumn(key) {
20
20
  return this._columns[Math.max(this._columns.indexOf(this._state.host.getColumn(key)) - 1, 0)]
21
- .key;
21
+ .field;
22
22
  }
23
23
  getNextColumn(key) {
24
- return this._columns[Math.min(this._columns.indexOf(this._state.host.getColumn(key)) + 1, this._columns.length - 1)].key;
24
+ return this._columns[Math.min(this._columns.indexOf(this._state.host.getColumn(key)) + 1, this._columns.length - 1)].field;
25
25
  }
26
26
  scrollToCell(node) {
27
27
  const row = Array.from(this._virtualizer?.querySelectorAll(GRID_ROW_TAG) ?? []).find((row) => row.index === node.row);
28
28
  if (row) {
29
29
  row.cells
30
- .find((cell) => cell.column.key === node.column)
30
+ .find((cell) => cell.column.field === node.column)
31
31
  ?.scrollIntoView({ block: 'nearest' });
32
32
  }
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/controllers/navigation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController } from 'lit';\nimport type IgcGridLiteRow from '../components/row.js';\nimport { NAVIGATION_STATE, SENTINEL_NODE } from '../internal/constants.js';\nimport { GRID_ROW_TAG } from '../internal/tags.js';\nimport type { ActiveNode, Keys } from '../internal/types.js';\nimport type { StateController } from './state.js';\n\nexport class NavigationController<T extends object> implements ReactiveController {\n protected handlers = new Map(\n Object.entries({\n ArrowDown: this.arrowDown,\n ArrowUp: this.arrowUp,\n ArrowLeft: this.arrowLeft,\n ArrowRight: this.arrowRight,\n Home: this.home,\n End: this.end,\n })\n );\n\n protected get _virtualizer() {\n return this._state.virtualizer;\n }\n\n protected _navigationState = NAVIGATION_STATE;\n protected _active = SENTINEL_NODE;\n\n protected get nextNode() {\n const node = this._navigationState.get('current')!;\n return node === SENTINEL_NODE\n ? { column: this._firstColumn, row: 0 }\n : ({ ...node } as ActiveNode<T>);\n }\n\n protected get _columns() {\n return this._state.columns;\n }\n\n protected get _firstColumn() {\n return this._state.host.getColumn(0)!.key ?? '';\n }\n\n protected getPreviousColumn(key: Keys<T>) {\n return this._columns[Math.max(this._columns.indexOf(this._state.host.getColumn(key)!) - 1, 0)]\n .key;\n }\n\n protected getNextColumn(key: Keys<T>) {\n return this._columns[\n Math.min(\n this._columns.indexOf(this._state.host.getColumn(key)!) + 1,\n this._columns.length - 1\n )\n ].key;\n }\n\n protected scrollToCell(node: ActiveNode<T>) {\n const row = Array.from(this._virtualizer?.querySelectorAll(GRID_ROW_TAG) ?? []).find(\n (row) => row.index === node.row\n ) as unknown as IgcGridLiteRow<T>;\n\n if (row) {\n row.cells\n .find((cell) => cell.column.key === node.column)\n ?.scrollIntoView({ block: 'nearest' });\n }\n }\n\n public get active(): ActiveNode<T> {\n return this._active as ActiveNode<T>;\n }\n\n public set active(node: ActiveNode<T>) {\n this._active = node ?? SENTINEL_NODE;\n this._navigationState.set('previous', this._active);\n this._navigationState.set('current', node);\n this._state.host.requestUpdate();\n }\n\n constructor(protected _state: StateController<T>) {\n this._state.host.addController(this);\n }\n\n protected home() {\n this.active = Object.assign(this.nextNode, { row: 0 });\n this._virtualizer?.element(this.active.row)?.scrollIntoView({ block: 'nearest' });\n }\n\n protected end() {\n this.active = Object.assign(this.nextNode, { row: this._state.host.totalItems - 1 });\n this._virtualizer?.element(this.active.row)?.scrollIntoView({ block: 'nearest' });\n }\n\n protected arrowDown() {\n const next = this.nextNode;\n\n this.active = Object.assign(next, {\n row: Math.min(next.row + 1, this._state.host.totalItems - 1),\n });\n this._virtualizer?.element(next.row)?.scrollIntoView({ block: 'nearest' });\n }\n\n protected arrowUp() {\n const next = this.nextNode;\n this.active = Object.assign(next, { row: Math.max(0, next.row - 1) });\n this._virtualizer?.element(next.row)?.scrollIntoView({ block: 'nearest' });\n }\n\n protected arrowLeft() {\n const next = this.nextNode;\n this.active = Object.assign(next, { column: this.getPreviousColumn(next.column) });\n this.scrollToCell(this.active);\n }\n\n protected arrowRight() {\n const next = this.nextNode;\n this.active = Object.assign(next, { column: this.getNextColumn(next.column) });\n this.scrollToCell(this.active);\n }\n\n public hostDisconnected() {\n this.active = SENTINEL_NODE as ActiveNode<T>;\n this._navigationState = NAVIGATION_STATE;\n }\n\n public navigate(event: KeyboardEvent) {\n if (this.handlers.has(event.key)) {\n event.preventDefault();\n this.handlers.get(event.key)!.call(this);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/controllers/navigation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController } from 'lit';\nimport type IgcGridLiteRow from '../components/row.js';\nimport { NAVIGATION_STATE, SENTINEL_NODE } from '../internal/constants.js';\nimport { GRID_ROW_TAG } from '../internal/tags.js';\nimport type { ActiveNode, Keys } from '../internal/types.js';\nimport type { StateController } from './state.js';\n\nexport class NavigationController<T extends object> implements ReactiveController {\n protected handlers = new Map(\n Object.entries({\n ArrowDown: this.arrowDown,\n ArrowUp: this.arrowUp,\n ArrowLeft: this.arrowLeft,\n ArrowRight: this.arrowRight,\n Home: this.home,\n End: this.end,\n })\n );\n\n protected get _virtualizer() {\n return this._state.virtualizer;\n }\n\n protected _navigationState = NAVIGATION_STATE;\n protected _active = SENTINEL_NODE;\n\n protected get nextNode() {\n const node = this._navigationState.get('current')!;\n return node === SENTINEL_NODE\n ? { column: this._firstColumn, row: 0 }\n : ({ ...node } as ActiveNode<T>);\n }\n\n protected get _columns() {\n return this._state.columns;\n }\n\n protected get _firstColumn() {\n return this._state.host.getColumn(0)!.field ?? '';\n }\n\n protected getPreviousColumn(key: Keys<T>) {\n return this._columns[Math.max(this._columns.indexOf(this._state.host.getColumn(key)!) - 1, 0)]\n .field;\n }\n\n protected getNextColumn(key: Keys<T>) {\n return this._columns[\n Math.min(\n this._columns.indexOf(this._state.host.getColumn(key)!) + 1,\n this._columns.length - 1\n )\n ].field;\n }\n\n protected scrollToCell(node: ActiveNode<T>) {\n const row = Array.from(this._virtualizer?.querySelectorAll(GRID_ROW_TAG) ?? []).find(\n (row) => row.index === node.row\n ) as unknown as IgcGridLiteRow<T>;\n\n if (row) {\n row.cells\n .find((cell) => cell.column.field === node.column)\n ?.scrollIntoView({ block: 'nearest' });\n }\n }\n\n public get active(): ActiveNode<T> {\n return this._active as ActiveNode<T>;\n }\n\n public set active(node: ActiveNode<T>) {\n this._active = node ?? SENTINEL_NODE;\n this._navigationState.set('previous', this._active);\n this._navigationState.set('current', node);\n this._state.host.requestUpdate();\n }\n\n constructor(protected _state: StateController<T>) {\n this._state.host.addController(this);\n }\n\n protected home() {\n this.active = Object.assign(this.nextNode, { row: 0 });\n this._virtualizer?.element(this.active.row)?.scrollIntoView({ block: 'nearest' });\n }\n\n protected end() {\n this.active = Object.assign(this.nextNode, { row: this._state.host.totalItems - 1 });\n this._virtualizer?.element(this.active.row)?.scrollIntoView({ block: 'nearest' });\n }\n\n protected arrowDown() {\n const next = this.nextNode;\n\n this.active = Object.assign(next, {\n row: Math.min(next.row + 1, this._state.host.totalItems - 1),\n });\n this._virtualizer?.element(next.row)?.scrollIntoView({ block: 'nearest' });\n }\n\n protected arrowUp() {\n const next = this.nextNode;\n this.active = Object.assign(next, { row: Math.max(0, next.row - 1) });\n this._virtualizer?.element(next.row)?.scrollIntoView({ block: 'nearest' });\n }\n\n protected arrowLeft() {\n const next = this.nextNode;\n this.active = Object.assign(next, { column: this.getPreviousColumn(next.column) });\n this.scrollToCell(this.active);\n }\n\n protected arrowRight() {\n const next = this.nextNode;\n this.active = Object.assign(next, { column: this.getNextColumn(next.column) });\n this.scrollToCell(this.active);\n }\n\n public hostDisconnected() {\n this.active = SENTINEL_NODE as ActiveNode<T>;\n this._navigationState = NAVIGATION_STATE;\n }\n\n public navigate(event: KeyboardEvent) {\n if (this.handlers.has(event.key)) {\n event.preventDefault();\n this.handlers.get(event.key)!.call(this);\n }\n }\n}\n"]}
@@ -10,7 +10,7 @@ export class ResizeController {
10
10
  }
11
11
  #maxSize(key, headerWidth) {
12
12
  const max = this.host.rows
13
- .map((row) => row.cells.find((cell) => cell.column.key === key))
13
+ .map((row) => row.cells.find((cell) => cell.column.field === key))
14
14
  .reduce((prev, current) => (current.offsetWidth > prev ? current.offsetWidth : prev), 0);
15
15
  return Math.max(...[MIN_COL_RESIZE_WIDTH, max, headerWidth]);
16
16
  }
@@ -34,7 +34,7 @@ export class ResizeController {
34
34
  column.width = 'max-content';
35
35
  this.host.requestUpdate();
36
36
  await this.host.updateComplete;
37
- column.width = `${this.#maxSize(column.key, header.offsetWidth)}px`;
37
+ column.width = `${this.#maxSize(column.field, header.offsetWidth)}px`;
38
38
  this.host.requestUpdate();
39
39
  }
40
40
  hostConnected() { }
@@ -1 +1 @@
1
- {"version":3,"file":"resize.js","sourceRoot":"","sources":["../../src/controllers/resize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAA2B,MAAM,KAAK,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,MAAM,OAAO,gBAAgB;IAC3B,YAAsB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QAIhC,oBAAe,GAAG,KAAK,CAAC;QACxB,oBAAe,GAAG,CAAC,CAAC;QAJzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAKD,QAAQ,CAAC,GAAY,EAAE,WAAmB;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;aACvB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAE,CAAC;aAChE,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3F,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IAC/D,CAAC;IAOM,KAAK,CAAC,MAA4B;QACvC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAKM,IAAI;QACT,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,MAA8B,EAAE,KAAa,EAAE,WAAoB;QAC/E,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;QACrC,CAAC;QAED,MAAM,CAAC,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,MAA8B,EAAE,MAA4B;QAChF,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAE/B,MAAM,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAEM,aAAa,KAAI,CAAC;IAKlB,eAAe;QACpB,OAAO,IAAI,CAAC,eAAe;YACzB,CAAC,CAAC,IAAI,CAAA;;kBAEM,QAAQ,CAAC;gBACf,SAAS,EAAE,cAAc,IAAI,CAAC,eAAe,KAAK;aACnD,CAAC;gBACI;YACV,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;CACF","sourcesContent":["import { html, nothing, type ReactiveController } from 'lit';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport type IgcGridLiteHeader from '../components/header.js';\nimport { MIN_COL_RESIZE_WIDTH } from '../internal/constants.js';\nimport type { ColumnConfiguration, GridHost, Keys } from '../internal/types.js';\n\nexport class ResizeController<T extends object> implements ReactiveController {\n constructor(protected host: GridHost<T>) {\n this.host.addController(this);\n }\n\n public indicatorActive = false;\n public indicatorOffset = 0;\n\n #maxSize(key: Keys<T>, headerWidth: number) {\n const max = this.host.rows\n .map((row) => row.cells.find((cell) => cell.column.key === key)!)\n .reduce((prev, current) => (current.offsetWidth > prev ? current.offsetWidth : prev), 0);\n\n return Math.max(...[MIN_COL_RESIZE_WIDTH, max, headerWidth]);\n }\n\n /**\n * Begins resizing a column by showing and positioning the resize indicator in relation to the column.\n *\n * @param header the\n */\n public start(header: IgcGridLiteHeader<T>) {\n this.indicatorActive = true;\n this.indicatorOffset = header.offsetLeft + header.offsetWidth;\n this.host.requestUpdate();\n }\n\n /**\n * Stops and resets the resizing state.\n */\n public stop() {\n this.indicatorActive = false;\n this.host.requestUpdate();\n }\n\n public resize(column: ColumnConfiguration<T>, width: number, sizerOffset?: number) {\n if (sizerOffset) {\n this.indicatorOffset = sizerOffset;\n }\n\n column.width = `${width}px`;\n this.host.requestUpdate();\n }\n\n public async autosize(column: ColumnConfiguration<T>, header: IgcGridLiteHeader<T>) {\n column.width = 'max-content';\n\n this.host.requestUpdate();\n await this.host.updateComplete;\n\n column.width = `${this.#maxSize(column.key, header.offsetWidth)}px`;\n this.host.requestUpdate();\n }\n\n public hostConnected() {}\n\n /**\n * Renders the resize indicator in the grid.\n */\n public renderIndicator() {\n return this.indicatorActive\n ? html`<div\n part=\"resize-indicator\"\n style=${styleMap({\n transform: `translateX(${this.indicatorOffset}px)`,\n })}\n ></div>`\n : nothing;\n }\n}\n"]}
1
+ {"version":3,"file":"resize.js","sourceRoot":"","sources":["../../src/controllers/resize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAA2B,MAAM,KAAK,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,MAAM,OAAO,gBAAgB;IAC3B,YAAsB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QAIhC,oBAAe,GAAG,KAAK,CAAC;QACxB,oBAAe,GAAG,CAAC,CAAC;QAJzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAKD,QAAQ,CAAC,GAAY,EAAE,WAAmB;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;aACvB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,GAAG,CAAE,CAAC;aAClE,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3F,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IAC/D,CAAC;IAOM,KAAK,CAAC,MAA4B;QACvC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAKM,IAAI;QACT,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,MAA8B,EAAE,KAAa,EAAE,WAAoB;QAC/E,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;QACrC,CAAC;QAED,MAAM,CAAC,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,MAA8B,EAAE,MAA4B;QAChF,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAE/B,MAAM,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAEM,aAAa,KAAI,CAAC;IAKlB,eAAe;QACpB,OAAO,IAAI,CAAC,eAAe;YACzB,CAAC,CAAC,IAAI,CAAA;;kBAEM,QAAQ,CAAC;gBACf,SAAS,EAAE,cAAc,IAAI,CAAC,eAAe,KAAK;aACnD,CAAC;gBACI;YACV,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;CACF","sourcesContent":["import { html, nothing, type ReactiveController } from 'lit';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport type IgcGridLiteHeader from '../components/header.js';\nimport { MIN_COL_RESIZE_WIDTH } from '../internal/constants.js';\nimport type { ColumnConfiguration, GridHost, Keys } from '../internal/types.js';\n\nexport class ResizeController<T extends object> implements ReactiveController {\n constructor(protected host: GridHost<T>) {\n this.host.addController(this);\n }\n\n public indicatorActive = false;\n public indicatorOffset = 0;\n\n #maxSize(key: Keys<T>, headerWidth: number) {\n const max = this.host.rows\n .map((row) => row.cells.find((cell) => cell.column.field === key)!)\n .reduce((prev, current) => (current.offsetWidth > prev ? current.offsetWidth : prev), 0);\n\n return Math.max(...[MIN_COL_RESIZE_WIDTH, max, headerWidth]);\n }\n\n /**\n * Begins resizing a column by showing and positioning the resize indicator in relation to the column.\n *\n * @param header the\n */\n public start(header: IgcGridLiteHeader<T>) {\n this.indicatorActive = true;\n this.indicatorOffset = header.offsetLeft + header.offsetWidth;\n this.host.requestUpdate();\n }\n\n /**\n * Stops and resets the resizing state.\n */\n public stop() {\n this.indicatorActive = false;\n this.host.requestUpdate();\n }\n\n public resize(column: ColumnConfiguration<T>, width: number, sizerOffset?: number) {\n if (sizerOffset) {\n this.indicatorOffset = sizerOffset;\n }\n\n column.width = `${width}px`;\n this.host.requestUpdate();\n }\n\n public async autosize(column: ColumnConfiguration<T>, header: IgcGridLiteHeader<T>) {\n column.width = 'max-content';\n\n this.host.requestUpdate();\n await this.host.updateComplete;\n\n column.width = `${this.#maxSize(column.field, header.offsetWidth)}px`;\n this.host.requestUpdate();\n }\n\n public hostConnected() {}\n\n /**\n * Renders the resize indicator in the grid.\n */\n public renderIndicator() {\n return this.indicatorActive\n ? html`<div\n part=\"resize-indicator\"\n style=${styleMap({\n transform: `translateX(${this.indicatorOffset}px)`,\n })}\n ></div>`\n : nothing;\n }\n}\n"]}
@@ -7,7 +7,7 @@ export declare class SortController<T extends object> implements ReactiveControl
7
7
  constructor(host: GridHost<T>);
8
8
  state: SortState<T>;
9
9
  sortFromHeaderClick(column: ColumnConfiguration<T>): Promise<void>;
10
- prepareExpression({ key, sort: options }: ColumnConfiguration<T>): SortingExpression<T>;
10
+ prepareExpression(column: ColumnConfiguration<T>): SortingExpression<T>;
11
11
  reset(key?: Keys<T>): void;
12
12
  protected _sort(expressions: SortingExpression<T> | SortingExpression<T>[]): void;
13
13
  sort(expressions: SortingExpression<T> | SortingExpression<T>[]): void;
@@ -12,25 +12,25 @@ export class SortController {
12
12
  get #isTriStateSort() {
13
13
  return true;
14
14
  }
15
- #resolveSortOptions(options) {
15
+ #resolveSortOptions(column) {
16
16
  const expr = {
17
17
  caseSensitive: false,
18
18
  comparer: undefined,
19
19
  };
20
- if (!options || typeof options === 'boolean') {
20
+ if (!column) {
21
21
  return expr;
22
22
  }
23
23
  return Object.assign(expr, {
24
- caseSensitive: options.caseSensitive,
25
- comparer: options.comparer,
24
+ caseSensitive: column.sortingCaseSensitive,
25
+ comparer: column.sortConfiguration?.comparer,
26
26
  });
27
27
  }
28
28
  #createDefaultExpression(key) {
29
- const options = this.host.getColumn(key)?.sort;
29
+ const column = this.host.getColumn(key);
30
30
  return {
31
31
  key,
32
32
  direction: 'ascending',
33
- ...this.#resolveSortOptions(options),
33
+ ...this.#resolveSortOptions(column),
34
34
  };
35
35
  }
36
36
  #orderBy(dir) {
@@ -67,15 +67,15 @@ export class SortController {
67
67
  await this.host.updateComplete;
68
68
  this.#emitSortedEvent(expression);
69
69
  }
70
- prepareExpression({ key, sort: options }) {
71
- if (this.state.has(key)) {
72
- const expr = this.state.get(key);
70
+ prepareExpression(column) {
71
+ if (this.state.has(column.field)) {
72
+ const expr = this.state.get(column.field);
73
73
  return Object.assign(expr, {
74
74
  direction: this.#orderBy(expr.direction),
75
- ...this.#resolveSortOptions(options),
75
+ ...this.#resolveSortOptions(column),
76
76
  });
77
77
  }
78
- return this.#createDefaultExpression(key);
78
+ return this.#createDefaultExpression(column.field);
79
79
  }
80
80
  reset(key) {
81
81
  key ? this.state.delete(key) : this.state.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"sort.js","sourceRoot":"","sources":["../../src/controllers/sort.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController } from 'lit';\nimport { PIPELINE } from '../internal/constants.js';\nimport type {\n ColumnConfiguration,\n ColumnSortConfiguration,\n GridHost,\n Keys,\n} from '../internal/types.js';\nimport { asArray } from '../internal/utils.js';\nimport type { SortingDirection, SortingExpression, SortState } from '../operations/sort/types.js';\n\nexport class SortController<T extends object> implements ReactiveController {\n constructor(protected host: GridHost<T>) {\n this.host.addController(this);\n }\n\n public state: SortState<T> = new Map();\n\n get #isMultipleSort() {\n return this.host.sortingOptions.mode === 'multiple';\n }\n\n get #isTriStateSort() {\n return true;\n }\n\n #resolveSortOptions(options?: boolean | ColumnSortConfiguration<T>) {\n const expr: Pick<SortingExpression<T>, 'caseSensitive' | 'comparer'> = {\n caseSensitive: false,\n comparer: undefined,\n };\n\n if (!options || typeof options === 'boolean') {\n return expr as Partial<SortingExpression<T>>;\n }\n\n return Object.assign(expr, {\n caseSensitive: options.caseSensitive,\n comparer: options.comparer,\n }) as Partial<SortingExpression<T>>;\n }\n\n #createDefaultExpression(key: Keys<T>) {\n const options = this.host.getColumn(key)?.sort;\n\n return {\n key,\n direction: 'ascending',\n ...this.#resolveSortOptions(options),\n } as SortingExpression<T>;\n }\n\n #orderBy(dir?: SortingDirection): SortingDirection {\n return this.#isTriStateSort\n ? dir === 'ascending'\n ? 'descending'\n : dir === 'descending'\n ? 'none'\n : 'ascending'\n : dir === 'ascending'\n ? 'descending'\n : 'ascending';\n }\n\n #emitSortingEvent(detail: SortingExpression<T>) {\n return this.host.emitEvent('sorting', { detail, cancelable: true });\n }\n\n #emitSortedEvent(detail: SortingExpression<T>) {\n return this.host.emitEvent('sorted', { detail });\n }\n\n #setExpression(expression: SortingExpression<T>) {\n expression.direction === 'none'\n ? this.reset(expression.key)\n : this.state.set(expression.key, { ...expression });\n }\n\n public async sortFromHeaderClick(column: ColumnConfiguration<T>) {\n const expression = this.prepareExpression(column);\n\n if (!this.#emitSortingEvent(expression)) {\n return;\n }\n\n if (!this.#isMultipleSort) {\n this.reset();\n }\n\n this._sort(expression);\n\n await this.host.updateComplete;\n this.#emitSortedEvent(expression);\n }\n\n public prepareExpression({ key, sort: options }: ColumnConfiguration<T>): SortingExpression<T> {\n if (this.state.has(key)) {\n const expr = this.state.get(key)!;\n\n return Object.assign(expr, {\n direction: this.#orderBy(expr.direction),\n ...this.#resolveSortOptions(options),\n });\n }\n\n // Initial state\n return this.#createDefaultExpression(key);\n }\n\n public reset(key?: Keys<T>) {\n key ? this.state.delete(key) : this.state.clear();\n }\n\n protected _sort(expressions: SortingExpression<T> | SortingExpression<T>[]) {\n for (const expr of asArray(expressions)) {\n this.#setExpression(expr);\n }\n\n this.host.requestUpdate(PIPELINE);\n }\n\n public sort(expressions: SortingExpression<T> | SortingExpression<T>[]) {\n this._sort(\n asArray(expressions).map((expr) =>\n Object.assign(this.state.get(expr.key) ?? this.#createDefaultExpression(expr.key), expr)\n )\n );\n }\n\n public hostConnected() {}\n}\n"]}
1
+ {"version":3,"file":"sort.js","sourceRoot":"","sources":["../../src/controllers/sort.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController } from 'lit';\nimport { PIPELINE } from '../internal/constants.js';\nimport type { ColumnConfiguration, GridHost, Keys } from '../internal/types.js';\nimport { asArray } from '../internal/utils.js';\nimport type { SortingDirection, SortingExpression, SortState } from '../operations/sort/types.js';\n\nexport class SortController<T extends object> implements ReactiveController {\n constructor(protected host: GridHost<T>) {\n this.host.addController(this);\n }\n\n public state: SortState<T> = new Map();\n\n get #isMultipleSort() {\n return this.host.sortingOptions.mode === 'multiple';\n }\n\n get #isTriStateSort() {\n return true;\n }\n\n #resolveSortOptions(column?: ColumnConfiguration<T>) {\n const expr: Pick<SortingExpression<T>, 'caseSensitive' | 'comparer'> = {\n caseSensitive: false,\n comparer: undefined,\n };\n\n if (!column) {\n return expr as Partial<SortingExpression<T>>;\n }\n\n return Object.assign(expr, {\n caseSensitive: column.sortingCaseSensitive,\n comparer: column.sortConfiguration?.comparer,\n }) as Partial<SortingExpression<T>>;\n }\n\n #createDefaultExpression(key: Keys<T>) {\n const column = this.host.getColumn(key);\n\n return {\n key,\n direction: 'ascending',\n ...this.#resolveSortOptions(column),\n } as SortingExpression<T>;\n }\n\n #orderBy(dir?: SortingDirection): SortingDirection {\n return this.#isTriStateSort\n ? dir === 'ascending'\n ? 'descending'\n : dir === 'descending'\n ? 'none'\n : 'ascending'\n : dir === 'ascending'\n ? 'descending'\n : 'ascending';\n }\n\n #emitSortingEvent(detail: SortingExpression<T>) {\n return this.host.emitEvent('sorting', { detail, cancelable: true });\n }\n\n #emitSortedEvent(detail: SortingExpression<T>) {\n return this.host.emitEvent('sorted', { detail });\n }\n\n #setExpression(expression: SortingExpression<T>) {\n expression.direction === 'none'\n ? this.reset(expression.key)\n : this.state.set(expression.key, { ...expression });\n }\n\n public async sortFromHeaderClick(column: ColumnConfiguration<T>) {\n const expression = this.prepareExpression(column);\n\n if (!this.#emitSortingEvent(expression)) {\n return;\n }\n\n if (!this.#isMultipleSort) {\n this.reset();\n }\n\n this._sort(expression);\n\n await this.host.updateComplete;\n this.#emitSortedEvent(expression);\n }\n\n public prepareExpression(column: ColumnConfiguration<T>): SortingExpression<T> {\n if (this.state.has(column.field)) {\n const expr = this.state.get(column.field)!;\n\n return Object.assign(expr, {\n direction: this.#orderBy(expr.direction),\n ...this.#resolveSortOptions(column),\n });\n }\n\n // Initial state\n return this.#createDefaultExpression(column.field);\n }\n\n public reset(key?: Keys<T>) {\n key ? this.state.delete(key) : this.state.clear();\n }\n\n protected _sort(expressions: SortingExpression<T> | SortingExpression<T>[]) {\n for (const expr of asArray(expressions)) {\n this.#setExpression(expr);\n }\n\n this.host.requestUpdate(PIPELINE);\n }\n\n public sort(expressions: SortingExpression<T> | SortingExpression<T>[]) {\n this._sort(\n asArray(expressions).map((expr) =>\n Object.assign(this.state.get(expr.key) ?? this.#createDefaultExpression(expr.key), expr)\n )\n );\n }\n\n public hostConnected() {}\n}\n"]}
@@ -54,7 +54,7 @@ class StateController {
54
54
  }
55
55
  updateColumnsConfiguration(config) {
56
56
  for (const columnConfig of config) {
57
- const existing = this._columns.findIndex((column) => column.key === columnConfig.key);
57
+ const existing = this._columns.findIndex((column) => column.field === columnConfig.field);
58
58
  if (existing !== -1) {
59
59
  this._columns[existing] = {
60
60
  ...this._columns[existing],
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/controllers/state.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,eAAe;IAYnB,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAGD,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAA0B,mBAAmB,CAAC,CAAC;IAC1F,CAAC;IAGD,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAkB,mBAAmB,CAAC,CAAC;IAClF,CAAC;IAGD,IAAW,IAAI;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAoB,YAAY,CAAC,CAAC,CAAC;IAC5F,CAAC;IAGD,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAGD,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAChC,CAAC;IAGD,IAAW,MAAM,CAAC,IAAmB;QACnC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,YAAY,IAAiB,EAAE,iBAA6B;QA7CpD,aAAQ,GAA6B,EAAE,CAAC;QA8C9C,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAEM,UAAU;QACf,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC;IACpC,CAAC;IAEM,sBAAsB,CAAC,OAAiC;QAC7D,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAEM,0BAA0B;QAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAEM,0BAA0B,CAAC,MAAgC;QAChE,KAAK,MAAM,YAAY,IAAI,MAAM,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC;YACtF,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG;oBACxB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC1B,GAAG,yBAAyB,CAAC,YAAY,CAAC;iBAC3C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;CACF;AAED,SAAS,qBAAqB,CAC5B,IAAiB,EACjB,iBAA6B;IAE7B,OAAO,IAAI,eAAe,CAAI,IAAI,EAAE,iBAAiB,CAAC,CAAC;AACzD,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC","sourcesContent":["import type { ReactiveController } from 'lit';\nimport type IgcFilterRow from '../components/filter-row.js';\nimport type IgcGridLiteHeaderRow from '../components/header-row.js';\nimport type IgcGridLiteRow from '../components/row.js';\nimport type IgcVirtualizer from '../components/virtualizer.js';\nimport { PIPELINE } from '../internal/constants.js';\nimport {\n GRID_BODY,\n GRID_FILTER_ROW_TAG,\n GRID_HEADER_ROW_TAG,\n GRID_ROW_TAG,\n} from '../internal/tags.js';\nimport type { ActiveNode, ColumnConfiguration, GridHost } from '../internal/types.js';\nimport { createColumnConfiguration, setColumnsFromData } from '../internal/utils.js';\nimport { FilterController } from './filter.js';\nimport { NavigationController } from './navigation.js';\nimport { ResizeController } from './resize.js';\nimport { SortController } from './sort.js';\n\nclass StateController<T extends object> implements ReactiveController {\n private _columns: ColumnConfiguration<T>[] = [];\n private readonly _observersCallback: () => void;\n\n /** The grid host element. */\n public readonly host: GridHost<T>;\n\n public readonly sorting: SortController<T>;\n public readonly filtering: FilterController<T>;\n public readonly navigation: NavigationController<T>;\n public readonly resizing: ResizeController<T>;\n\n public get columns(): ColumnConfiguration<T>[] {\n return this._columns;\n }\n\n /** Returns the header row element of the grid. */\n public get headerRow(): IgcGridLiteHeaderRow<T> | null {\n return this.host.renderRoot.querySelector<IgcGridLiteHeaderRow<T>>(GRID_HEADER_ROW_TAG);\n }\n\n /** Returns the filter row element of the grid. */\n public get filterRow(): IgcFilterRow<T> | null {\n return this.host.renderRoot.querySelector<IgcFilterRow<T>>(GRID_FILTER_ROW_TAG);\n }\n\n /** Returns the data row elements of the grid. */\n public get rows(): IgcGridLiteRow<T>[] {\n return Array.from(this.host.renderRoot.querySelectorAll<IgcGridLiteRow<T>>(GRID_ROW_TAG));\n }\n\n /** Returns the virtualizer element of the grid. */\n public get virtualizer(): IgcVirtualizer | null {\n return this.host.renderRoot.querySelector(GRID_BODY);\n }\n\n /** The currently active node in the grid. */\n public get active(): ActiveNode<T> {\n return this.navigation.active;\n }\n\n /** Sets the currently active node in the grid. */\n public set active(node: ActiveNode<T>) {\n this.navigation.active = node;\n }\n\n constructor(host: GridHost<T>, observersCallback: () => void) {\n this._observersCallback = observersCallback;\n this.host = host;\n this.host.addController(this);\n\n this.sorting = new SortController(this.host);\n this.filtering = new FilterController(this);\n this.navigation = new NavigationController(this);\n this.resizing = new ResizeController(this.host);\n }\n\n public hostUpdate(): void {\n this.headerRow?.requestUpdate();\n this.virtualizer?.requestUpdate();\n }\n\n public setColumnConfiguration(columns: ColumnConfiguration<T>[]): void {\n this._columns = columns.map((column) => createColumnConfiguration(column));\n this._observersCallback.call(this.host);\n this.host.requestUpdate(PIPELINE);\n }\n\n public setAutoColumnConfiguration(): void {\n if (this.host.autoGenerate && this.host.data.length > 0) {\n this._columns = setColumnsFromData(this.host.data[0]);\n this.host.requestUpdate(PIPELINE);\n }\n }\n\n public updateColumnsConfiguration(config: ColumnConfiguration<T>[]): void {\n for (const columnConfig of config) {\n const existing = this._columns.findIndex((column) => column.key === columnConfig.key);\n if (existing !== -1) {\n this._columns[existing] = {\n ...this._columns[existing],\n ...createColumnConfiguration(columnConfig),\n };\n }\n }\n\n this._columns = [...this._columns];\n this._observersCallback.call(this.host);\n this.host.requestUpdate(PIPELINE);\n }\n}\n\nfunction createStateController<T extends object>(\n host: GridHost<T>,\n observersCallback: () => void\n): StateController<T> {\n return new StateController<T>(host, observersCallback);\n}\n\nexport { createStateController };\nexport type { StateController };\n"]}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/controllers/state.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController } from 'lit';\nimport type IgcFilterRow from '../components/filter-row.js';\nimport type IgcGridLiteHeaderRow from '../components/header-row.js';\nimport type IgcGridLiteRow from '../components/row.js';\nimport type IgcVirtualizer from '../components/virtualizer.js';\nimport { PIPELINE } from '../internal/constants.js';\nimport {\n GRID_BODY,\n GRID_FILTER_ROW_TAG,\n GRID_HEADER_ROW_TAG,\n GRID_ROW_TAG,\n} from '../internal/tags.js';\nimport type { ActiveNode, ColumnConfiguration, GridHost } from '../internal/types.js';\nimport { createColumnConfiguration, setColumnsFromData } from '../internal/utils.js';\nimport { FilterController } from './filter.js';\nimport { NavigationController } from './navigation.js';\nimport { ResizeController } from './resize.js';\nimport { SortController } from './sort.js';\n\nclass StateController<T extends object> implements ReactiveController {\n private _columns: ColumnConfiguration<T>[] = [];\n private readonly _observersCallback: () => void;\n\n /** The grid host element. */\n public readonly host: GridHost<T>;\n\n public readonly sorting: SortController<T>;\n public readonly filtering: FilterController<T>;\n public readonly navigation: NavigationController<T>;\n public readonly resizing: ResizeController<T>;\n\n public get columns(): ColumnConfiguration<T>[] {\n return this._columns;\n }\n\n /** Returns the header row element of the grid. */\n public get headerRow(): IgcGridLiteHeaderRow<T> | null {\n return this.host.renderRoot.querySelector<IgcGridLiteHeaderRow<T>>(GRID_HEADER_ROW_TAG);\n }\n\n /** Returns the filter row element of the grid. */\n public get filterRow(): IgcFilterRow<T> | null {\n return this.host.renderRoot.querySelector<IgcFilterRow<T>>(GRID_FILTER_ROW_TAG);\n }\n\n /** Returns the data row elements of the grid. */\n public get rows(): IgcGridLiteRow<T>[] {\n return Array.from(this.host.renderRoot.querySelectorAll<IgcGridLiteRow<T>>(GRID_ROW_TAG));\n }\n\n /** Returns the virtualizer element of the grid. */\n public get virtualizer(): IgcVirtualizer | null {\n return this.host.renderRoot.querySelector(GRID_BODY);\n }\n\n /** The currently active node in the grid. */\n public get active(): ActiveNode<T> {\n return this.navigation.active;\n }\n\n /** Sets the currently active node in the grid. */\n public set active(node: ActiveNode<T>) {\n this.navigation.active = node;\n }\n\n constructor(host: GridHost<T>, observersCallback: () => void) {\n this._observersCallback = observersCallback;\n this.host = host;\n this.host.addController(this);\n\n this.sorting = new SortController(this.host);\n this.filtering = new FilterController(this);\n this.navigation = new NavigationController(this);\n this.resizing = new ResizeController(this.host);\n }\n\n public hostUpdate(): void {\n this.headerRow?.requestUpdate();\n this.virtualizer?.requestUpdate();\n }\n\n public setColumnConfiguration(columns: ColumnConfiguration<T>[]): void {\n this._columns = columns.map((column) => createColumnConfiguration(column));\n this._observersCallback.call(this.host);\n this.host.requestUpdate(PIPELINE);\n }\n\n public setAutoColumnConfiguration(): void {\n if (this.host.autoGenerate && this.host.data.length > 0) {\n this._columns = setColumnsFromData(this.host.data[0]);\n this.host.requestUpdate(PIPELINE);\n }\n }\n\n public updateColumnsConfiguration(config: ColumnConfiguration<T>[]): void {\n for (const columnConfig of config) {\n const existing = this._columns.findIndex((column) => column.field === columnConfig.field);\n if (existing !== -1) {\n this._columns[existing] = {\n ...this._columns[existing],\n ...createColumnConfiguration(columnConfig),\n };\n }\n }\n\n this._columns = [...this._columns];\n this._observersCallback.call(this.host);\n this.host.requestUpdate(PIPELINE);\n }\n}\n\nfunction createStateController<T extends object>(\n host: GridHost<T>,\n observersCallback: () => void\n): StateController<T> {\n return new StateController<T>(host, observersCallback);\n}\n\nexport { createStateController };\nexport type { StateController };\n"]}
@@ -102,14 +102,6 @@
102
102
  "module": "./internal/types.js"
103
103
  }
104
104
  },
105
- {
106
- "kind": "js",
107
- "name": "ColumnFilterConfiguration",
108
- "declaration": {
109
- "name": "ColumnFilterConfiguration",
110
- "module": "./internal/types.js"
111
- }
112
- },
113
105
  {
114
106
  "kind": "js",
115
107
  "name": "ColumnSortConfiguration",
@@ -455,34 +447,34 @@
455
447
  },
456
448
  {
457
449
  "kind": "field",
458
- "name": "key",
450
+ "name": "field",
459
451
  "type": {
460
452
  "text": "keyof T"
461
453
  },
462
454
  "privacy": "public",
463
- "description": "The key of the column, used to identify the data field.",
464
- "attribute": "key"
455
+ "description": "The field from the data for this column.",
456
+ "attribute": "field"
465
457
  },
466
458
  {
467
459
  "kind": "field",
468
- "name": "type",
460
+ "name": "dataType",
469
461
  "type": {
470
462
  "text": "'number' | 'string' | 'boolean' | undefined"
471
463
  },
472
464
  "privacy": "public",
473
465
  "default": "'string'",
474
466
  "description": "The data type of the column's values.",
475
- "attribute": "type"
467
+ "attribute": "dataType"
476
468
  },
477
469
  {
478
470
  "kind": "field",
479
- "name": "headerText",
471
+ "name": "header",
480
472
  "type": {
481
473
  "text": "string | undefined"
482
474
  },
483
475
  "privacy": "public",
484
476
  "description": "The header text of the column.",
485
- "attribute": "headerText"
477
+ "attribute": "header"
486
478
  },
487
479
  {
488
480
  "kind": "field",
@@ -518,23 +510,56 @@
518
510
  },
519
511
  {
520
512
  "kind": "field",
521
- "name": "sort",
513
+ "name": "sortable",
522
514
  "type": {
523
- "text": "ColumnSortConfiguration<T> | boolean | undefined"
515
+ "text": "boolean"
524
516
  },
525
517
  "privacy": "public",
526
518
  "default": "false",
527
- "description": "Sort configuration for the column."
519
+ "description": "Indicates whether the column is sortable.",
520
+ "attribute": "sortable"
528
521
  },
529
522
  {
530
523
  "kind": "field",
531
- "name": "filter",
524
+ "name": "sortingCaseSensitive",
525
+ "type": {
526
+ "text": "boolean"
527
+ },
528
+ "privacy": "public",
529
+ "default": "false",
530
+ "description": "Whether sort operations will be case sensitive.",
531
+ "attribute": "sorting-case-sensitive"
532
+ },
533
+ {
534
+ "kind": "field",
535
+ "name": "sortConfiguration",
536
+ "type": {
537
+ "text": "ColumnSortConfiguration<T> | undefined"
538
+ },
539
+ "privacy": "public",
540
+ "description": "Sort configuration for the column (e.g., custom comparer)."
541
+ },
542
+ {
543
+ "kind": "field",
544
+ "name": "filterable",
545
+ "type": {
546
+ "text": "boolean"
547
+ },
548
+ "privacy": "public",
549
+ "default": "false",
550
+ "description": "Indicates whether the column is filterable.",
551
+ "attribute": "filterable"
552
+ },
553
+ {
554
+ "kind": "field",
555
+ "name": "filteringCaseSensitive",
532
556
  "type": {
533
- "text": "ColumnFilterConfiguration | boolean | undefined"
557
+ "text": "boolean"
534
558
  },
535
559
  "privacy": "public",
536
560
  "default": "false",
537
- "description": "Filter configuration for the column."
561
+ "description": "Whether filter operations will be case sensitive.",
562
+ "attribute": "filtering-case-sensitive"
538
563
  },
539
564
  {
540
565
  "kind": "field",
@@ -557,29 +582,29 @@
557
582
  ],
558
583
  "attributes": [
559
584
  {
560
- "name": "key",
585
+ "name": "field",
561
586
  "type": {
562
587
  "text": "keyof T"
563
588
  },
564
- "description": "The key of the column, used to identify the data field.",
565
- "fieldName": "key"
589
+ "description": "The field from the data for this column.",
590
+ "fieldName": "field"
566
591
  },
567
592
  {
568
- "name": "type",
593
+ "name": "dataType",
569
594
  "type": {
570
595
  "text": "'number' | 'string' | 'boolean' | undefined"
571
596
  },
572
597
  "default": "'string'",
573
598
  "description": "The data type of the column's values.",
574
- "fieldName": "type"
599
+ "fieldName": "dataType"
575
600
  },
576
601
  {
577
- "name": "headerText",
602
+ "name": "header",
578
603
  "type": {
579
604
  "text": "string | undefined"
580
605
  },
581
606
  "description": "The header text of the column.",
582
- "fieldName": "headerText"
607
+ "fieldName": "header"
583
608
  },
584
609
  {
585
610
  "name": "width",
@@ -606,6 +631,42 @@
606
631
  "default": "false",
607
632
  "description": "Indicates whether the column is resizable.",
608
633
  "fieldName": "resizable"
634
+ },
635
+ {
636
+ "name": "sortable",
637
+ "type": {
638
+ "text": "boolean"
639
+ },
640
+ "default": "false",
641
+ "description": "Indicates whether the column is sortable.",
642
+ "fieldName": "sortable"
643
+ },
644
+ {
645
+ "name": "sorting-case-sensitive",
646
+ "type": {
647
+ "text": "boolean"
648
+ },
649
+ "default": "false",
650
+ "description": "Whether sort operations will be case sensitive.",
651
+ "fieldName": "sortingCaseSensitive"
652
+ },
653
+ {
654
+ "name": "filterable",
655
+ "type": {
656
+ "text": "boolean"
657
+ },
658
+ "default": "false",
659
+ "description": "Indicates whether the column is filterable.",
660
+ "fieldName": "filterable"
661
+ },
662
+ {
663
+ "name": "filtering-case-sensitive",
664
+ "type": {
665
+ "text": "boolean"
666
+ },
667
+ "default": "false",
668
+ "description": "Whether filter operations will be case sensitive.",
669
+ "fieldName": "filteringCaseSensitive"
609
670
  }
610
671
  ],
611
672
  "superclass": {
@@ -2729,10 +2790,10 @@
2729
2790
  "privacy": "private",
2730
2791
  "parameters": [
2731
2792
  {
2732
- "name": "options",
2793
+ "name": "column",
2733
2794
  "optional": true,
2734
2795
  "type": {
2735
- "text": "boolean | ColumnSortConfiguration<T>"
2796
+ "text": "ColumnConfiguration<T>"
2736
2797
  }
2737
2798
  }
2738
2799
  ]
@@ -2832,7 +2893,7 @@
2832
2893
  },
2833
2894
  "parameters": [
2834
2895
  {
2835
- "name": "{ key, sort: options }",
2896
+ "name": "column",
2836
2897
  "type": {
2837
2898
  "text": "ColumnConfiguration<T>"
2838
2899
  }
@@ -1 +1 @@
1
- window.hierarchyData = "eJx1kMsKwjAQRf/lrlP7AK1kqQsR/APpIiTTNpgmkKSrkn+XUC2CdDOLmXs4w13gnYsB/Fm3VcfgqTcko3Y2gC+o87BiInDcB3nzWj10pKsz82TB8NJWgdfNmWH2BhzSiBAolH/hwxgnA7YGwBGDKjJdrIvEULfVj+0iwoe8OtvrYfYif7U5m+Pp69Q2ku+FpFDuULvyDc3HURvlyeYuupTSG3qEYGI="
1
+ window.hierarchyData = "eJx1kEEKgzAQRe/y17ESpbVk2S5KoTcoLkKMGhoTyMSV5O4l2EqhuJnFzH+84S8I3keCePKmbhmC7q1W0XhHEAt4Hk5OGgL3Qd2C6R4m6qu38+TA8DKug+DVmWEOFgLKSiJN5V/4MMbJgq0BCETqikwX6yIx8Kb+sV0kfcird70Z5iDzV5uzOp6+TuOiDr1Umsodale+ofk4GtsF7XIXbUrpDX9bYGg="
@@ -1 +1 @@
1
- window.navigationData = "eJyVlU1PwzAMhv9LzhNjk8bHjnSDTYCYBDfEIWq9LlqbREmGViH+O+raoSxN4vYav3lcx/bbzx9i4GjInKzz9Emx7IUZICMiqdmROUkLqjXosRW82pmyICOyZzwj88n07nfkYySiOJQ8SmokMd4D1a0qEXzL8oOihgmLyrgBtaUp6HFAe4mfzm68+HehzJAUHT2W5pEVBtTyKBVoHeO7Qgy8ztMEiiIR/HQYwl7KMGhdHuN5j8/tKGPo5u2aCvHXDqpjKRbU0A2TUDAOeIqgOpbiPL5t6W+yvqC9fL80Bl/naVMxZMtv4P6GuqJewLpLOPGsQpDnwk7aVypDUFeHYFdAs1Ozg7PsirBJ3ighQZnqo5KWrZlKtvNrxx3W9f3tZDb1bEYiSkkVKB/PjmO8qLM1SNzQAtSIodlkzMc6dHtjVkLsXawbH8LbUEVLHSM2ij5MX7/P59j91nIUq/eBupTLaD+Wz0htWtA+O7yQ3Te0qMt3WM9QdV67PsPuxXZqyD7FdmnIHrXuumAKUt+ou/GevHDTsJ+el/huqOk813/AT/j6A5M9UJQ="
1
+ window.navigationData = "eJyVlV1vwiAUhv8L12ZOE/fh5apOsy0zcXfLLkh7rEQKBHCxWfbfl9p2QcpHe8v78lAO57z9/EEazhrN0SZPnyXJXokGNEIC6wOao5RipUCNDfHmoAuKRuhIWIbmk+nD78jFSDg9FSxIqi0h3hNWjSvhbE/yk8SacINKmAa5xymoscd7jZ/O7pz4HZd6yBEdf+yYFaEa5PIsJCgV4tvGGHiTpwlQmnB2WfRhr20xaHU9wvIen9txhtALrPGWCKCEQbzaXnfoiLa3mu96F9UG5eS7rSH4Jk/r54Fs+Q3MXW3b1AtYlTBObF0RZHuxi/cNCx/U9kWwa8AZyFCj2aZYm20lFyB1+VEKI3N0KZrmMnWLdft4P5lNHW2b8EJgCdLFM/UYLxg7NTKeNh5qIG1McixkOnRzYtacH22srQ/hbbHEhQoRa0cfpuu92/XY/noSEkmqecA25Vrtx3KlnEnzZluH58vimhaM4A7rBcpOtau12L7QTA2Zp9AsDZmjJl0XRELqanVb78nzP1rsj+Qk7jTWnXL9C27C1x+joCzT"
@@ -1 +1 @@
1
- window.searchData = "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";
1
+ window.searchData = "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";
@@ -6,7 +6,7 @@ the ability to template cells and headers and column hiding.</p>
6
6
  </div><div class="tsd-tag-fires"><h4 class="tsd-anchor-link" id="fires-1">Fires<a href="#fires-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><p>sorted - Emitted when a sort operation initiated through the UI has completed.</p>
7
7
  </div><div class="tsd-tag-fires"><h4 class="tsd-anchor-link" id="fires-2">Fires<a href="#fires-2" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><p>filtering - Emitted when filtering is initiated through the UI.</p>
8
8
  </div><div class="tsd-tag-fires"><h4 class="tsd-anchor-link" id="fires-3">Fires<a href="#fires-3" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><p>filtered - Emitted when a filter operation initiated through the UI has completed.</p>
9
- </div></div></section><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="t"><span class="tsd-kind-type-parameter">T</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">object</span></span></li></ul></section><section class="tsd-panel tsd-hierarchy" data-refl="51"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">EventEmitterBase</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/IgcGridLiteEventMap.html" class="tsd-signature-type tsd-kind-interface">IgcGridLiteEventMap</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#t">T</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">IgcGridLite</span></li></ul></li></ul></section><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Other</h3><div class="tsd-index-list"><a href="#autogenerate" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>auto<wbr/>Generate</span></a>
9
+ </div></div></section><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="t"><span class="tsd-kind-type-parameter">T</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">object</span></span></li></ul></section><section class="tsd-panel tsd-hierarchy" data-refl="54"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">EventEmitterBase</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/IgcGridLiteEventMap.html" class="tsd-signature-type tsd-kind-interface">IgcGridLiteEventMap</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#t">T</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">IgcGridLite</span></li></ul></li></ul></section><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Other</h3><div class="tsd-index-list"><a href="#autogenerate" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>auto<wbr/>Generate</span></a>
10
10
  <a href="#data" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>data</span></a>
11
11
  <a href="#datapipelineconfiguration" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>data<wbr/>Pipeline<wbr/>Configuration</span></a>
12
12
  <a href="#sortingoptions" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>sorting<wbr/>Options</span></a>