@3mo/data-grid 0.7.0 → 0.7.2

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 (60) hide show
  1. package/dist/DataGrid.d.ts +5 -10
  2. package/dist/DataGrid.d.ts.map +1 -1
  3. package/dist/DataGrid.js +15 -33
  4. package/dist/DataGridCell.d.ts +2 -2
  5. package/dist/DataGridCell.d.ts.map +1 -1
  6. package/dist/DataGridColumn.d.ts +29 -0
  7. package/dist/DataGridColumn.d.ts.map +1 -0
  8. package/dist/DataGridColumn.js +40 -0
  9. package/dist/DataGridHeader.d.ts +1 -0
  10. package/dist/DataGridHeader.d.ts.map +1 -1
  11. package/dist/DataGridHeader.js +12 -4
  12. package/dist/DataGridHeaderSeparator.d.ts +2 -2
  13. package/dist/DataGridHeaderSeparator.d.ts.map +1 -1
  14. package/dist/DataGridPrimaryContextMenuItem.js +5 -5
  15. package/dist/columns/DataGridColumnBoolean.d.ts +2 -2
  16. package/dist/columns/DataGridColumnBoolean.d.ts.map +1 -1
  17. package/dist/columns/DataGridColumnBoolean.js +2 -2
  18. package/dist/columns/{DataGridColumn.d.ts → DataGridColumnComponent.d.ts} +6 -6
  19. package/dist/columns/DataGridColumnComponent.d.ts.map +1 -0
  20. package/dist/columns/{DataGridColumn.js → DataGridColumnComponent.js} +21 -20
  21. package/dist/columns/DataGridColumnComponent.test.d.ts +2 -0
  22. package/dist/columns/DataGridColumnComponent.test.d.ts.map +1 -0
  23. package/dist/columns/{DataGridColumn.test.js → DataGridColumnComponent.test.js} +3 -3
  24. package/dist/columns/DataGridColumnDeletion.d.ts +2 -2
  25. package/dist/columns/DataGridColumnDeletion.d.ts.map +1 -1
  26. package/dist/columns/DataGridColumnDeletion.js +2 -2
  27. package/dist/columns/DataGridColumnImage.d.ts +2 -2
  28. package/dist/columns/DataGridColumnImage.d.ts.map +1 -1
  29. package/dist/columns/DataGridColumnImage.js +2 -2
  30. package/dist/columns/DataGridColumnText.d.ts +3 -3
  31. package/dist/columns/DataGridColumnText.d.ts.map +1 -1
  32. package/dist/columns/DataGridColumnText.js +4 -4
  33. package/dist/columns/date-time/DataGridColumnDateTimeBase.d.ts +2 -2
  34. package/dist/columns/date-time/DataGridColumnDateTimeBase.d.ts.map +1 -1
  35. package/dist/columns/date-time/DataGridColumnDateTimeBase.js +2 -2
  36. package/dist/columns/index.d.ts +1 -1
  37. package/dist/columns/index.d.ts.map +1 -1
  38. package/dist/columns/index.js +1 -1
  39. package/dist/columns/number/DataGridColumnNumberBase.d.ts +4 -18
  40. package/dist/columns/number/DataGridColumnNumberBase.d.ts.map +1 -1
  41. package/dist/columns/number/DataGridColumnNumberBase.js +7 -6
  42. package/dist/columns/number/DataGridFooterSum.js +20 -20
  43. package/dist/custom-elements.json +217 -217
  44. package/dist/excel.svg.js +47 -47
  45. package/dist/index.d.ts +1 -1
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +1 -1
  48. package/dist/rows/DataGridDefaultRow.d.ts.map +1 -1
  49. package/dist/rows/DataGridDefaultRow.js +1 -0
  50. package/dist/rows/DataGridRow.d.ts +4 -3
  51. package/dist/rows/DataGridRow.d.ts.map +1 -1
  52. package/dist/rows/DataGridRow.js +3 -0
  53. package/dist/tsconfig.tsbuildinfo +1 -1
  54. package/package.json +1 -1
  55. package/dist/ColumnDefinition.d.ts +0 -18
  56. package/dist/ColumnDefinition.d.ts.map +0 -1
  57. package/dist/ColumnDefinition.js +0 -1
  58. package/dist/columns/DataGridColumn.d.ts.map +0 -1
  59. package/dist/columns/DataGridColumn.test.d.ts +0 -2
  60. package/dist/columns/DataGridColumn.test.d.ts.map +0 -1
@@ -4,7 +4,7 @@ import { InstanceofAttributeController } from '@3mo/instanceof-attribute-control
4
4
  import { SlotController } from '@3mo/slot-controller';
5
5
  import { ThemeController } from '@3mo/theme';
6
6
  import { MediaQueryController } from '@3mo/media-query-observer';
7
- import { DataGridColumn, DataGridSidePanelTab, type ColumnDefinition, type DataGridCell, type DataGridRow } from './index.js';
7
+ import { DataGridSidePanelTab, type DataGridColumn, type DataGridCell, type DataGridRow } from './index.js';
8
8
  import { DataGridSelectionController } from './DataGridSelectionController.js';
9
9
  export type DataGridPagination = 'auto' | number;
10
10
  export declare enum DataGridSelectionMode {
@@ -30,9 +30,6 @@ export type DataGridSortingDefinition<TData> = {
30
30
  selector: KeyPathOf<TData>;
31
31
  strategy: DataGridSortingStrategy;
32
32
  };
33
- export type DataGridRankedSortDefinition<TData> = DataGridSortingDefinition<TData> & {
34
- rank: number;
35
- };
36
33
  export type DataGridSorting<TData> = DataGridSortingDefinition<TData> | Array<DataGridSortingDefinition<TData>>;
37
34
  /**
38
35
  * @element mo-data-grid
@@ -106,7 +103,7 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
106
103
  readonly selectionChange: EventDispatcher<Array<TData>>;
107
104
  readonly pageChange: EventDispatcher<number>;
108
105
  readonly paginationChange: EventDispatcher<DataGridPagination | undefined>;
109
- readonly columnsChange: EventDispatcher<Array<ColumnDefinition<TData>>>;
106
+ readonly columnsChange: EventDispatcher<Array<DataGridColumn<TData>>>;
110
107
  readonly sidePanelOpen: EventDispatcher<DataGridSidePanelTab>;
111
108
  readonly sidePanelClose: EventDispatcher;
112
109
  readonly sortingChange: EventDispatcher<DataGridSorting<TData> | undefined>;
@@ -117,7 +114,7 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
117
114
  readonly rowMiddleClick: EventDispatcher<DataGridRow<TData, TDetailsElement>>;
118
115
  readonly cellEdit: EventDispatcher<DataGridCell<any, TData, TDetailsElement>>;
119
116
  data: TData[];
120
- columns: ColumnDefinition<TData>[];
117
+ columns: DataGridColumn<TData, unknown>[];
121
118
  headerHidden: boolean;
122
119
  preventVerticalContentScroll: boolean;
123
120
  virtualizationThreshold: number;
@@ -175,7 +172,7 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
175
172
  sort(sorting?: DataGridSorting<TData>): void;
176
173
  unsort(): void;
177
174
  handleSortChange(sorting?: DataGridSorting<TData>): void;
178
- setColumns(columns: Array<ColumnDefinition<TData>>): void;
175
+ setColumns(columns: Array<DataGridColumn<TData>>): void;
179
176
  extractColumnsIfNotSetExplicitly(): void;
180
177
  extractColumns(): void;
181
178
  getRow(data: TData): DataGridRow<TData, TDetailsElement> | undefined;
@@ -225,7 +222,6 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
225
222
  protected get footerTemplate(): HTMLTemplateResult;
226
223
  get sumsData(): TData[];
227
224
  get sumsTemplate(): HTMLTemplateResult;
228
- getSumTemplate(column: ColumnDefinition<TData>): HTMLTemplateResult | undefined;
229
225
  protected get toolbarTemplate(): HTMLTemplateResult;
230
226
  protected get toolbarDefaultTemplate(): HTMLTemplateResult;
231
227
  protected get toolbarActionDefaultTemplate(): HTMLTemplateResult;
@@ -241,14 +237,13 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
241
237
  private lastScrollElementTop;
242
238
  private readonly handleScroll;
243
239
  getSorting(): DataGridSortingDefinition<TData>[];
244
- getSortingDefinition(column: ColumnDefinition<TData>): DataGridRankedSortDefinition<TData> | undefined;
245
240
  private getFlattenedData;
246
241
  get flattenedData(): TData[];
247
242
  protected get sortedData(): TData[];
248
243
  get renderData(): TData[];
249
244
  private get elementExtractedColumns();
250
245
  private get autoGeneratedColumns();
251
- get visibleColumns(): ColumnDefinition<TData>[];
246
+ get visibleColumns(): DataGridColumn<TData, unknown>[];
252
247
  }
253
248
  declare global {
254
249
  interface HTMLElementTagNameMap {
@@ -1 +1 @@
1
- {"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../DataGrid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../DataGrid.ts"],"names":[],"mappings":"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"}
package/dist/DataGrid.js CHANGED
@@ -12,7 +12,7 @@ import { MediaQueryController } from '@3mo/media-query-observer';
12
12
  import { observeResize } from '@3mo/resize-observer';
13
13
  import { Localizer } from '@3mo/localization';
14
14
  import { ContextMenu } from '@3mo/context-menu';
15
- import { CsvGenerator, DataGridColumn, DataGridSidePanelTab } from './index.js';
15
+ import { CsvGenerator, DataGridColumnComponent, DataGridSidePanelTab } from './index.js';
16
16
  import { DataGridSelectionController } from './DataGridSelectionController.js';
17
17
  Localizer.register('en', {
18
18
  '${count:pluralityNumber} entries selected': [
@@ -385,7 +385,7 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
385
385
  :host {
386
386
  --mo-data-grid-column-details-width: 20px;
387
387
  --mo-data-grid-column-selection-width: 40px;
388
- --mo-data-grid-column-more-width: minmax(28px, 1fr);
388
+ --mo-data-grid-column-more-width: 28px;
389
389
  --mo-data-grid-cell-padding: 10px;
390
390
  --mo-data-grid-header-height: 32px;
391
391
  --mo-data-grid-footer-min-height: 40px;
@@ -471,7 +471,6 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
471
471
 
472
472
  #fab {
473
473
  position: absolute;
474
- bottom: 8px;
475
474
  inset-inline-end: 16px;
476
475
  transition: var(--mo-data-grid-fab-transition, 250ms);
477
476
  z-index: 3;
@@ -675,25 +674,10 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
675
674
  get sumsTemplate() {
676
675
  return html `
677
676
  <mo-flex direction='horizontal' gap='10px' wrap='wrap-reverse' alignItems='center' ${style({ padding: '2px 4px' })}>
678
- ${this.columns.map(column => this.getSumTemplate(column))}
677
+ ${this.columns.map(c => c.sumTemplate)}
679
678
  </mo-flex>
680
679
  `;
681
680
  }
682
- getSumTemplate(column) {
683
- if (column.sumHeading === undefined || column.getSumTemplate === undefined) {
684
- return;
685
- }
686
- const sum = this.sumsData
687
- .map(data => parseFloat(getValueByKeyPath(data, column.dataSelector)))
688
- .filter(n => isNaN(n) === false)
689
- .reduce(((a, b) => a + b), 0)
690
- || 0;
691
- return html `
692
- <mo-data-grid-footer-sum heading=${column.sumHeading + ''} ${style({ color: this.selectedData.length > 0 ? 'var(--mo-color-accent)' : 'currentColor' })}>
693
- ${column.getSumTemplate(sum)}
694
- </mo-data-grid-footer-sum>
695
- `;
696
- }
697
681
  get toolbarTemplate() {
698
682
  return this.hasToolbar === false ? html.nothing : html `
699
683
  <mo-flex id='toolbar' direction='horizontal' gap='8px' wrap='wrap' justifyContent='end' alignItems='center'>
@@ -767,6 +751,7 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
767
751
  this.detailsColumnWidth,
768
752
  this.selectionColumnWidth,
769
753
  ...this.dataColumnsWidths,
754
+ '1fr',
770
755
  this.moreColumnWidth
771
756
  ].filter((c) => c !== undefined);
772
757
  }
@@ -791,14 +776,6 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
791
776
  ? this.sorting
792
777
  : [this.sorting];
793
778
  }
794
- getSortingDefinition(column) {
795
- const sorting = this.getSorting();
796
- const definition = sorting.find(s => s.selector === (column.sortDataSelector || column.dataSelector));
797
- return !definition ? undefined : {
798
- ...definition,
799
- rank: sorting.indexOf(definition) + 1
800
- };
801
- }
802
779
  *getFlattenedData() {
803
780
  if (!this.subDataGridDataSelector) {
804
781
  yield* this.data.map(d => ({ level: 0, data: d }));
@@ -859,13 +836,13 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
859
836
  const assigned = this.columnsSlot.assignedElements().length > 0 ? Array.from(this.columnsSlot.assignedElements()) : undefined;
860
837
  return Array.from(assigned ?? children ?? [])
861
838
  .filter((c) => {
862
- const isColumn = c instanceof DataGridColumn;
839
+ const isColumn = c instanceof DataGridColumnComponent;
863
840
  if (isColumn) {
864
841
  c.dataGrid = this;
865
842
  }
866
843
  return isColumn;
867
844
  })
868
- .map(c => c.definition);
845
+ .map(c => c.column);
869
846
  }
870
847
  get autoGeneratedColumns() {
871
848
  if (!this.dataLength) {
@@ -888,10 +865,10 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
888
865
  .map(key => {
889
866
  const columnElement = document.createElement(getDefaultColumnElement(getValueByKeyPath(sampleData, key)));
890
867
  columnElement.heading = key.replace(/([A-Z])/g, ' $1').charAt(0).toUpperCase() + key.replace(/([A-Z])/g, ' $1').slice(1);
891
- columnElement.dataGrid = key;
892
- const definition = columnElement.definition;
868
+ columnElement.dataGrid = this;
869
+ const column = columnElement.column;
893
870
  columnElement.remove();
894
- return definition;
871
+ return column;
895
872
  });
896
873
  }
897
874
  get visibleColumns() {
@@ -949,7 +926,12 @@ __decorate([
949
926
  property({ type: Array })
950
927
  ], DataGrid.prototype, "data", void 0);
951
928
  __decorate([
952
- property({ type: Array })
929
+ property({
930
+ type: Array,
931
+ updated() {
932
+ this.columns.forEach(column => column.dataGrid = this);
933
+ }
934
+ })
953
935
  ], DataGrid.prototype, "columns", void 0);
954
936
  __decorate([
955
937
  property({ type: Boolean, reflect: true })
@@ -1,6 +1,6 @@
1
1
  import { Component, type HTMLTemplateResult } from '@a11d/lit';
2
2
  import { FocusController } from '@3mo/focus-controller';
3
- import { type ColumnDefinition, type DataGridRow } from './index.js';
3
+ import { type DataGridColumn, type DataGridRow } from './index.js';
4
4
  /**
5
5
  * @element mo-data-grid-cell
6
6
  *
@@ -10,7 +10,7 @@ import { type ColumnDefinition, type DataGridRow } from './index.js';
10
10
  */
11
11
  export declare class DataGridCell<TValue extends KeyPathValueOf<TData>, TData = any, TDetailsElement extends Element | undefined = undefined> extends Component {
12
12
  value: TValue;
13
- column: ColumnDefinition<TData, TValue>;
13
+ column: DataGridColumn<TData, TValue>;
14
14
  row: DataGridRow<TData, TDetailsElement>;
15
15
  private editing;
16
16
  get dataGrid(): import("./DataGrid.js").DataGrid<TData, TDetailsElement>;
@@ -1 +1 @@
1
- {"version":3,"file":"DataGridCell.d.ts","sourceRoot":"","sources":["../DataGridCell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAA6C,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAGpH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,KAAK,gBAAgB,EAAuB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAOzF;;;;;;GAMG;AACH,qBACa,YAAY,CAAC,MAAM,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,eAAe,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,CAAE,SAAQ,SAAS;IAC1H,KAAK,EAAG,MAAM,CAAA;IACd,MAAM,EAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACxC,GAAG,EAAG,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;IAQlE,OAAO,CAAC,OAAO,CAAQ;IAE1B,IAAI,QAAQ,6DAA+B;IAC3C,IAAI,IAAI,UAA2B;IACnC,IAAI,YAAY,+/CAAsC;IAEtD,OAAO,KAAK,SAAS,GAAkD;IACvE,OAAO,KAAK,QAAQ,GAA0D;IAE9E,OAAO,KAAK,gBAAgB,GAAuD;IAEnF,OAAO,KAAK,UAAU,GAIrB;IAED,IAAI,SAAS,YAGZ;IAED,SAAS,CAAC,QAAQ,CAAC,eAAe,kBAA4B;IAG9D,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY;IAO/C,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU;cAQ7B,aAAa,CAAC,KAAK,EAAE,aAAa;IA2ClD,OAAO,CAAC,SAAS;IAWjB,WAAoB,MAAM,kCA2CzB;IAED,OAAO,KAAK,OAAO,GAAmC;IAEtD,cAAuB,QAAQ,uBAU9B;IAED,OAAO,KAAK,eAAe,GAK1B;IAED,OAAO,KAAK,mBAAmB,GAE9B;CACD;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,mBAAmB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;KAC1C;CACD"}
1
+ {"version":3,"file":"DataGridCell.d.ts","sourceRoot":"","sources":["../DataGridCell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAA6C,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAGpH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,KAAK,cAAc,EAAuB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAOvF;;;;;;GAMG;AACH,qBACa,YAAY,CAAC,MAAM,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,eAAe,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,CAAE,SAAQ,SAAS;IAC1H,KAAK,EAAG,MAAM,CAAA;IACd,MAAM,EAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACtC,GAAG,EAAG,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;IAQlE,OAAO,CAAC,OAAO,CAAQ;IAE1B,IAAI,QAAQ,6DAA+B;IAC3C,IAAI,IAAI,UAA2B;IACnC,IAAI,YAAY,+/CAAsC;IAEtD,OAAO,KAAK,SAAS,GAAkD;IACvE,OAAO,KAAK,QAAQ,GAA0D;IAE9E,OAAO,KAAK,gBAAgB,GAAuD;IAEnF,OAAO,KAAK,UAAU,GAIrB;IAED,IAAI,SAAS,YAGZ;IAED,SAAS,CAAC,QAAQ,CAAC,eAAe,kBAA4B;IAG9D,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY;IAO/C,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU;cAQ7B,aAAa,CAAC,KAAK,EAAE,aAAa;IA2ClD,OAAO,CAAC,SAAS;IAWjB,WAAoB,MAAM,kCA2CzB;IAED,OAAO,KAAK,OAAO,GAAmC;IAEtD,cAAuB,QAAQ,uBAU9B;IAED,OAAO,KAAK,eAAe,GAK1B;IAED,OAAO,KAAK,mBAAmB,GAE9B;CACD;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,mBAAmB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;KAC1C;CACD"}
@@ -0,0 +1,29 @@
1
+ import { type HTMLTemplateResult } from '@a11d/lit';
2
+ import type { DataGrid, DataGridSortingDefinition } from './index.js';
3
+ import type * as CSS from 'csstype';
4
+ export type DataGridColumnAlignment = 'start' | 'center' | 'end';
5
+ export type DataGridRankedSortDefinition<TData> = DataGridSortingDefinition<TData> & {
6
+ rank: number;
7
+ };
8
+ export declare class DataGridColumn<TData, TValue = unknown> {
9
+ dataGrid?: DataGrid<TData, any>;
10
+ dataSelector: KeyPathOf<TData>;
11
+ heading: string;
12
+ description?: string;
13
+ width: CSS.DataType.TrackBreadth<(string & {}) | 0>;
14
+ alignment: DataGridColumnAlignment;
15
+ hidden: boolean;
16
+ sortable: boolean;
17
+ private _sortDataSelector?;
18
+ get sortDataSelector(): object extends TData ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | (Extract<keyof TData, `${number}`> extends infer T ? T extends Extract<keyof TData, `${number}`> ? T extends keyof TData ? `${T}.${object extends TData[T] ? string : TData[T] extends infer T_1 ? T_1 extends TData[T] ? T_1 extends readonly any[] ? Extract<keyof T_1, `${number}`> | (Extract<keyof T_1, `${number}`> extends infer T_2 ? T_2 extends Extract<keyof T_1, `${number}`> ? T_2 extends keyof T_1 ? never : never : never : never) : T_1 extends object ? Extract<keyof T_1, string> | (Extract<keyof T_1, string> extends infer T_3 ? T_3 extends Extract<keyof T_1, string> ? T_3 extends keyof T_1 ? never : never : never : never) : never : never : never}` : never : never : never) : TData extends object ? Extract<keyof TData, string> | (Extract<keyof TData, string> extends infer T_4 ? T_4 extends Extract<keyof TData, string> ? T_4 extends keyof TData ? `${T_4}.${object extends TData[T_4] ? string : TData[T_4] extends infer T_5 ? T_5 extends TData[T_4] ? T_5 extends readonly any[] ? Extract<keyof T_5, `${number}`> | (Extract<keyof T_5, `${number}`> extends infer T_6 ? T_6 extends Extract<keyof T_5, `${number}`> ? T_6 extends keyof T_5 ? never : never : never : never) : T_5 extends object ? Extract<keyof T_5, string> | (Extract<keyof T_5, string> extends infer T_7 ? T_7 extends Extract<keyof T_5, string> ? T_7 extends keyof T_5 ? never : never : never : never) : never : never : never}` : never : never : never) : never;
19
+ set sortDataSelector(value: object extends TData ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | (Extract<keyof TData, `${number}`> extends infer T ? T extends Extract<keyof TData, `${number}`> ? T extends keyof TData ? `${T}.${object extends TData[T] ? string : TData[T] extends infer T_1 ? T_1 extends TData[T] ? T_1 extends readonly any[] ? Extract<keyof T_1, `${number}`> | (Extract<keyof T_1, `${number}`> extends infer T_2 ? T_2 extends Extract<keyof T_1, `${number}`> ? T_2 extends keyof T_1 ? never : never : never : never) : T_1 extends object ? Extract<keyof T_1, string> | (Extract<keyof T_1, string> extends infer T_3 ? T_3 extends Extract<keyof T_1, string> ? T_3 extends keyof T_1 ? never : never : never : never) : never : never : never}` : never : never : never) : TData extends object ? Extract<keyof TData, string> | (Extract<keyof TData, string> extends infer T_4 ? T_4 extends Extract<keyof TData, string> ? T_4 extends keyof TData ? `${T_4}.${object extends TData[T_4] ? string : TData[T_4] extends infer T_5 ? T_5 extends TData[T_4] ? T_5 extends readonly any[] ? Extract<keyof T_5, `${number}`> | (Extract<keyof T_5, `${number}`> extends infer T_6 ? T_6 extends Extract<keyof T_5, `${number}`> ? T_6 extends keyof T_5 ? never : never : never : never) : T_5 extends object ? Extract<keyof T_5, string> | (Extract<keyof T_5, string> extends infer T_7 ? T_7 extends Extract<keyof T_5, string> ? T_7 extends keyof T_5 ? never : never : never : never) : never : never : never}` : never : never : never) : never);
20
+ getContentTemplate?(value: TValue, data: TData): HTMLTemplateResult;
21
+ editable: boolean | Predicate<TData>;
22
+ getEditContentTemplate?(value: TValue, data: TData): HTMLTemplateResult;
23
+ sumHeading?: string;
24
+ getSumTemplate?(sum: number): HTMLTemplateResult;
25
+ constructor(column: Partial<DataGridColumn<TData, TValue>>);
26
+ get sortingDefinition(): DataGridRankedSortDefinition<TData> | undefined;
27
+ get sumTemplate(): HTMLTemplateResult | undefined;
28
+ }
29
+ //# sourceMappingURL=DataGridColumn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataGridColumn.d.ts","sourceRoot":"","sources":["../DataGridColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AACrE,OAAO,KAAK,KAAK,GAAG,MAAM,SAAS,CAAA;AAEnC,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;AAEhE,MAAM,MAAM,4BAA4B,CAAC,KAAK,IAAI,yBAAyB,CAAC,KAAK,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAErG,qBAAa,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAClD,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC/B,YAAY,EAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAE/B,OAAO,EAAG,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IAGpB,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAgB;IACnE,SAAS,EAAE,uBAAuB,CAAU;IAC5C,MAAM,UAAQ;IAEd,QAAQ,UAAO;IAEf,OAAO,CAAC,iBAAiB,CAAC,CAAkB;IAC5C,IAAI,gBAAgB,+/CAAyD;IAC7E,IAAI,gBAAgB,CAAC,KAAK,4/CAAA,EAAoC;IAE9D,kBAAkB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,kBAAkB;IAEnE,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAQ;IAC5C,sBAAsB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,kBAAkB;IAEvE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;gBAEpC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAI1D,IAAI,iBAAiB,oDAUpB;IAED,IAAI,WAAW,mCAgBd;CACD"}
@@ -0,0 +1,40 @@
1
+ import { html, style } from '@a11d/lit';
2
+ export class DataGridColumn {
3
+ get sortDataSelector() { return this._sortDataSelector || this.dataSelector; }
4
+ set sortDataSelector(value) { this._sortDataSelector = value; }
5
+ constructor(column) {
6
+ // eslint-disable-next-line @typescript-eslint/ban-types
7
+ this.width = 'max-content';
8
+ this.alignment = 'start';
9
+ this.hidden = false;
10
+ this.sortable = true;
11
+ this.editable = false;
12
+ Object.assign(this, column);
13
+ }
14
+ get sortingDefinition() {
15
+ if (!this.dataGrid) {
16
+ return undefined;
17
+ }
18
+ const sorting = this.dataGrid.getSorting();
19
+ const definition = sorting.find(s => s.selector === this.sortDataSelector);
20
+ return !definition ? undefined : {
21
+ ...definition,
22
+ rank: sorting.indexOf(definition) + 1
23
+ };
24
+ }
25
+ get sumTemplate() {
26
+ if (!this.dataGrid || this.sumHeading === undefined || this.getSumTemplate === undefined) {
27
+ return;
28
+ }
29
+ const sum = this.dataGrid.sumsData
30
+ .map(data => parseFloat(getValueByKeyPath(data, this.dataSelector)))
31
+ .filter(n => isNaN(n) === false)
32
+ .reduce(((a, b) => a + b), 0)
33
+ || 0;
34
+ return html `
35
+ <mo-data-grid-footer-sum heading=${this.sumHeading || ''} ${style({ color: this.dataGrid.selectedData.length > 0 ? 'var(--mo-color-accent)' : 'currentColor' })}>
36
+ ${this.getSumTemplate(sum)}
37
+ </mo-data-grid-footer-sum>
38
+ `;
39
+ }
40
+ }
@@ -16,6 +16,7 @@ export declare class DataGridHeader<TData> extends Component {
16
16
  private get selectionTemplate();
17
17
  private get contentTemplate();
18
18
  private readonly getHeaderCellTemplate;
19
+ private get fillerTemplate();
19
20
  private get moreTemplate();
20
21
  private sort;
21
22
  private toggleAllDetails;
@@ -1 +1 @@
1
- {"version":3,"file":"DataGridHeader.d.ts","sourceRoot":"","sources":["../DataGridHeader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAgD,MAAM,WAAW,CAAA;AAG9F,OAAO,EAAyE,KAAK,QAAQ,EAAwB,MAAM,YAAY,CAAA;AAEvI,qBACa,cAAc,CAAC,KAAK,CAAE,SAAQ,SAAS;IAC1C,QAAQ,CAAC,UAAU,EAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IAC7C,QAAQ,CAAC,mBAAmB,EAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IAEnC,QAAQ,EAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC/C,SAAS,EAAE,iBAAiB,CAAQ;IACJ,WAAW,UAAQ;cAE5C,SAAS;cAKT,YAAY;IAK/B,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAExC;IAED,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAQ7C;IAED,WAAoB,MAAM,kCA+CzB;IAED,cAAuB,QAAQ,0CAO9B;IAED,OAAO,KAAK,uBAAuB,GAYlC;IAED,OAAO,KAAK,iBAAiB,GAQ5B;IAED,OAAO,KAAK,eAAe,GAI1B;IAED,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAwBrC;IAED,OAAO,KAAK,YAAY,GAUvB;IAED,OAAO,CAAC,IAAI;IAqCZ,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAOrC;CACD;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,qBAAqB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;KAC9C;CACD"}
1
+ {"version":3,"file":"DataGridHeader.d.ts","sourceRoot":"","sources":["../DataGridHeader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAgD,MAAM,WAAW,CAAA;AAI9F,OAAO,EAAuE,KAAK,QAAQ,EAAwB,MAAM,YAAY,CAAA;AAErI,qBACa,cAAc,CAAC,KAAK,CAAE,SAAQ,SAAS;IAC1C,QAAQ,CAAC,UAAU,EAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IAC7C,QAAQ,CAAC,mBAAmB,EAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IAEnC,QAAQ,EAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC/C,SAAS,EAAE,iBAAiB,CAAQ;IACJ,WAAW,UAAQ;cAE5C,SAAS;cAKT,YAAY;IAK/B,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAExC;IAED,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAQ7C;IAED,WAAoB,MAAM,kCA+CzB;IAED,cAAuB,QAAQ,0CAQ9B;IAED,OAAO,KAAK,uBAAuB,GAYlC;IAED,OAAO,KAAK,iBAAiB,GAQ5B;IAED,OAAO,KAAK,eAAe,GAI1B;IAED,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CA2BrC;IAED,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,YAAY,GAUvB;IAED,OAAO,CAAC,IAAI;IAoCZ,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAOrC;CACD;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,qBAAqB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;KAC9C;CACD"}
@@ -1,6 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { component, Component, css, html, ifDefined, property, event, style } from '@a11d/lit';
3
3
  import { KeyboardController } from '@3mo/keyboard-controller';
4
+ import { tooltip } from '@3mo/tooltip';
4
5
  import { DataGridSelectionMode, DataGridSortingStrategy, DataGridSidePanelTab } from './index.js';
5
6
  let DataGridHeader = class DataGridHeader extends Component {
6
7
  constructor() {
@@ -22,7 +23,7 @@ let DataGridHeader = class DataGridHeader extends Component {
22
23
  }
23
24
  };
24
25
  this.getHeaderCellTemplate = (column, index) => {
25
- const sortingDefinition = this.dataGrid.getSortingDefinition(column);
26
+ const sortingDefinition = column.sortingDefinition;
26
27
  const sortIcon = !sortingDefinition ? undefined : sortingDefinition.strategy === DataGridSortingStrategy.Ascending ? 'arrow_upward' : 'arrow_downward';
27
28
  const sortingRank = !sortingDefinition || this.dataGrid.getSorting().length <= 1 ? undefined : sortingDefinition.rank;
28
29
  return html `
@@ -31,7 +32,10 @@ let DataGridHeader = class DataGridHeader extends Component {
31
32
  ${style({ overflow: 'hidden', cursor: 'pointer', flex: '1' })}
32
33
  @click=${() => this.sort(column)}
33
34
  >
34
- <div class='headerContent' ${style({ width: '100%', textAlign: column.alignment })} title=${column.title || column.heading}>${column.heading}</div>
35
+ <div class='headerContent'
36
+ ${style({ width: '100%', textAlign: column.alignment })}
37
+ ${!column.description ? html.nothing : tooltip(column.description)}
38
+ >${column.heading}</div>
35
39
 
36
40
  ${sortIcon === undefined ? html.nothing : html `
37
41
  ${!sortingRank ? html.nothing : html `<span class='sort-rank'>${sortingRank}</span>`}
@@ -116,6 +120,7 @@ let DataGridHeader = class DataGridHeader extends Component {
116
120
  ${this.detailsExpanderTemplate}
117
121
  ${this.selectionTemplate}
118
122
  ${this.contentTemplate}
123
+ ${this.fillerTemplate}
119
124
  ${this.moreTemplate}
120
125
  `;
121
126
  }
@@ -146,6 +151,9 @@ let DataGridHeader = class DataGridHeader extends Component {
146
151
  ${this.dataGrid.visibleColumns.map(this.getHeaderCellTemplate)}
147
152
  `;
148
153
  }
154
+ get fillerTemplate() {
155
+ return html `<span></span>`;
156
+ }
149
157
  get moreTemplate() {
150
158
  return this.dataGrid.hasToolbar || this.dataGrid.sidePanelHidden ? html.nothing : html `
151
159
  <mo-flex alignItems='end' justifyContent='center'
@@ -162,8 +170,8 @@ let DataGridHeader = class DataGridHeader extends Component {
162
170
  return;
163
171
  }
164
172
  const defaultSortingStrategy = DataGridSortingStrategy.Descending;
165
- const sortDataSelector = column.sortDataSelector || column.dataSelector;
166
- const sortingDefinition = this.dataGrid.getSortingDefinition(column);
173
+ const sortDataSelector = column.sortDataSelector;
174
+ const sortingDefinition = column.sortingDefinition;
167
175
  if (KeyboardController.shift || KeyboardController.meta || KeyboardController.ctrl) {
168
176
  const sortings = this.dataGrid.getSorting();
169
177
  if (sortingDefinition?.selector !== sortDataSelector) {
@@ -1,8 +1,8 @@
1
1
  import { Component } from '@a11d/lit';
2
- import { type ColumnDefinition, type DataGrid } from './index.js';
2
+ import { type DataGridColumn, type DataGrid } from './index.js';
3
3
  export declare class DataGridHeaderSeparator extends Component {
4
4
  dataGrid: DataGrid<unknown>;
5
- column: ColumnDefinition<unknown>;
5
+ column: DataGridColumn<unknown>;
6
6
  private isResizing;
7
7
  private pointerInlineStart;
8
8
  private readonly minimum;
@@ -1 +1 @@
1
- {"version":3,"file":"DataGridHeaderSeparator.d.ts","sourceRoot":"","sources":["../DataGridHeaderSeparator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA+D,MAAM,WAAW,CAAA;AAClG,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAA;AAEjE,qBACa,uBAAwB,SAAQ,SAAS;IACzB,QAAQ,EAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC5B,MAAM,EAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAErD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,kBAAkB,CAAI;IAEvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAK;IAE7B,OAAO,CAAC,YAAY,CAAC,CAAQ;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAQ;IAE5B,WAAoB,MAAM,kCA8CzB;IAED,cAAuB,QAAQ,0CAU9B;IAGD,SAAS,CAAC,eAAe;IAczB,SAAS,CAAC,iBAAiB,CAAC,CAAC,EAAE,YAAY,GAAG,UAAU;IAmBxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAIjC;IAED,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAIjC;IAED,OAAO,CAAC,cAAc;CAmBtB;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,+BAA+B,EAAE,uBAAuB,CAAA;KACxD;CACD"}
1
+ {"version":3,"file":"DataGridHeaderSeparator.d.ts","sourceRoot":"","sources":["../DataGridHeaderSeparator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA+D,MAAM,WAAW,CAAA;AAClG,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE/D,qBACa,uBAAwB,SAAQ,SAAS;IACzB,QAAQ,EAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC5B,MAAM,EAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAEnD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,kBAAkB,CAAI;IAEvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAK;IAE7B,OAAO,CAAC,YAAY,CAAC,CAAQ;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAQ;IAE5B,WAAoB,MAAM,kCA8CzB;IAED,cAAuB,QAAQ,0CAU9B;IAGD,SAAS,CAAC,eAAe;IAczB,SAAS,CAAC,iBAAiB,CAAC,CAAC,EAAE,YAAY,GAAG,UAAU;IAmBxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAIjC;IAED,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAIjC;IAED,OAAO,CAAC,cAAc;CAmBtB;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,+BAA+B,EAAE,uBAAuB,CAAA;KACxD;CACD"}
@@ -3,11 +3,11 @@ import { component, css } from '@a11d/lit';
3
3
  import { ContextMenuItem } from '@3mo/context-menu';
4
4
  let DataGridPrimaryContextMenuItem = class DataGridPrimaryContextMenuItem extends ContextMenuItem {
5
5
  static get styles() {
6
- return css `
7
- ${super.styles}
8
- :host {
9
- font-weight: bold;
10
- }
6
+ return css `
7
+ ${super.styles}
8
+ :host {
9
+ font-weight: bold;
10
+ }
11
11
  `;
12
12
  }
13
13
  };
@@ -1,5 +1,5 @@
1
1
  import { type MaterialIcon } from '@3mo/icon';
2
- import { DataGridColumn } from './DataGridColumn.js';
2
+ import { DataGridColumnComponent } from './DataGridColumnComponent.js';
3
3
  /**
4
4
  * @element mo-data-grid-column-boolean
5
5
  *
@@ -8,7 +8,7 @@ import { DataGridColumn } from './DataGridColumn.js';
8
8
  * @attr trueIconColor - Color of the true icon
9
9
  * @attr falseIconColor - Color of the false icon
10
10
  */
11
- export declare class DataGridColumnBoolean<TData> extends DataGridColumn<TData, boolean> {
11
+ export declare class DataGridColumnBoolean<TData> extends DataGridColumnComponent<TData, boolean> {
12
12
  trueIcon: MaterialIcon;
13
13
  falseIcon: MaterialIcon;
14
14
  trueIconColor: string;
@@ -1 +1 @@
1
- {"version":3,"file":"DataGridColumnBoolean.d.ts","sourceRoot":"","sources":["../../columns/DataGridColumnBoolean.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD;;;;;;;GAOG;AACH,qBACa,qBAAqB,CAAC,KAAK,CAAE,SAAQ,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC;IACnE,QAAQ,EAAE,YAAY,CAAS;IAC/B,SAAS,EAAE,YAAY,CAAU;IAEjC,aAAa,SAA2B;IACxC,cAAc,SAAyB;IAGnD,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK;IAQ3D,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;CAQ9D;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,6BAA6B,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAA;KAC7D;CACD"}
1
+ {"version":3,"file":"DataGridColumnBoolean.d.ts","sourceRoot":"","sources":["../../columns/DataGridColumnBoolean.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAEtE;;;;;;;GAOG;AACH,qBACa,qBAAqB,CAAC,KAAK,CAAE,SAAQ,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC;IAC5E,QAAQ,EAAE,YAAY,CAAS;IAC/B,SAAS,EAAE,YAAY,CAAU;IAEjC,aAAa,SAA2B;IACxC,cAAc,SAAyB;IAGnD,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK;IAQ3D,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;CAQ9D;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,6BAA6B,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAA;KAC7D;CACD"}
@@ -1,6 +1,6 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { component, html, property, style } from '@a11d/lit';
3
- import { DataGridColumn } from './DataGridColumn.js';
3
+ import { DataGridColumnComponent } from './DataGridColumnComponent.js';
4
4
  /**
5
5
  * @element mo-data-grid-column-boolean
6
6
  *
@@ -9,7 +9,7 @@ import { DataGridColumn } from './DataGridColumn.js';
9
9
  * @attr trueIconColor - Color of the true icon
10
10
  * @attr falseIconColor - Color of the false icon
11
11
  */
12
- let DataGridColumnBoolean = class DataGridColumnBoolean extends DataGridColumn {
12
+ let DataGridColumnBoolean = class DataGridColumnBoolean extends DataGridColumnComponent {
13
13
  constructor() {
14
14
  super(...arguments);
15
15
  this.trueIcon = 'done';
@@ -1,35 +1,35 @@
1
1
  import { Component, type HTMLTemplateResult } from '@a11d/lit';
2
2
  import { DataGrid } from '../DataGrid.js';
3
- import type { ColumnDefinition, DataGridColumnAlignment } from '../ColumnDefinition.js';
3
+ import { DataGridColumn, type DataGridColumnAlignment } from '../DataGridColumn.js';
4
4
  /**
5
5
  * @attr width - The width of the column
6
6
  * @attr hidden - Whether the column is hidden. The column can be made visible by the user in the settings panel if available.
7
7
  * @attr heading - The heading of the column
8
8
  * @attr textAlign - The text alignment of the column
9
- * @attr title - The title of the column
9
+ * @attr description - The description of the column. It will be displayed as a tooltip on the heading.
10
10
  * @attr dataSelector - The data selector of the column
11
11
  * @attr sortDataSelector - The data selector of the column
12
12
  * @attr nonSortable - Whether the column is sortable
13
13
  * @attr nonEditable - Whether the column is editable
14
14
  */
15
- export declare abstract class DataGridColumn<TData, TValue> extends Component {
15
+ export declare abstract class DataGridColumnComponent<TData, TValue> extends Component {
16
16
  static readonly regex: RegExp;
17
17
  private static getProportion;
18
18
  dataGrid?: DataGrid<TData, any> | undefined;
19
19
  width: string;
20
20
  hidden: boolean;
21
21
  heading: string;
22
+ description?: string;
22
23
  textAlign: DataGridColumnAlignment;
23
- title: string;
24
24
  dataSelector: KeyPathOf<TData>;
25
25
  sortDataSelector?: KeyPathOf<TData>;
26
26
  nonSortable: boolean;
27
27
  nonEditable: boolean | Predicate<TData>;
28
- get definition(): ColumnDefinition<TData, TValue>;
28
+ get column(): DataGridColumn<TData, TValue>;
29
29
  abstract getContentTemplate(value: TValue | undefined, data: TData): HTMLTemplateResult;
30
30
  abstract getEditContentTemplate?(value: TValue | undefined, data: TData): HTMLTemplateResult;
31
31
  protected handleEdit(value: TValue | undefined, data: TData): void;
32
32
  connectedCallback(): void;
33
33
  protected updated(): void;
34
34
  }
35
- //# sourceMappingURL=DataGridColumn.d.ts.map
35
+ //# sourceMappingURL=DataGridColumnComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataGridColumnComponent.d.ts","sourceRoot":"","sources":["../../columns/DataGridColumnComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAEnF;;;;;;;;;;GAUG;AACH,8BAAsB,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAE,SAAQ,SAAS;IAC7E,MAAM,CAAC,QAAQ,CAAC,KAAK,SAAkC;IAEvD,OAAO,CAAC,MAAM,CAAC,aAAa;IAIA,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,SAAS,CAAA;IAE3D,KAAK,SAAgB;IACK,MAAM,UAAQ;IACvB,OAAO,SAAK;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,uBAAuB,CAAU;IAC5C,YAAY,EAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAC/B,gBAAgB,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;IACpB,WAAW,UAAQ;IAO5D,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAQ;IAElD,IAAI,MAAM,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAe1C;IAED,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,kBAAkB;IACvF,QAAQ,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,kBAAkB;IAE5F,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;IAIlD,iBAAiB;cAOP,OAAO;CAI1B"}
@@ -1,18 +1,19 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { Component, property } from '@a11d/lit';
3
3
  import { DataGrid } from '../DataGrid.js';
4
+ import { DataGridColumn } from '../DataGridColumn.js';
4
5
  /**
5
6
  * @attr width - The width of the column
6
7
  * @attr hidden - Whether the column is hidden. The column can be made visible by the user in the settings panel if available.
7
8
  * @attr heading - The heading of the column
8
9
  * @attr textAlign - The text alignment of the column
9
- * @attr title - The title of the column
10
+ * @attr description - The description of the column. It will be displayed as a tooltip on the heading.
10
11
  * @attr dataSelector - The data selector of the column
11
12
  * @attr sortDataSelector - The data selector of the column
12
13
  * @attr nonSortable - Whether the column is sortable
13
14
  * @attr nonEditable - Whether the column is editable
14
15
  */
15
- export class DataGridColumn extends Component {
16
+ export class DataGridColumnComponent extends Component {
16
17
  constructor() {
17
18
  super(...arguments);
18
19
  this.width = 'max-content';
@@ -23,26 +24,26 @@ export class DataGridColumn extends Component {
23
24
  this.nonEditable = false;
24
25
  }
25
26
  static getProportion(value) {
26
- return Number(value.replace(DataGridColumn.regex, '$1') || 1);
27
+ return Number(value.replace(DataGridColumnComponent.regex, '$1') || 1);
27
28
  }
28
- get definition() {
29
+ get column() {
29
30
  const nonEditable = this.nonEditable;
30
- return {
31
+ return new DataGridColumn({
31
32
  dataSelector: this.dataSelector,
32
33
  sortDataSelector: this.sortDataSelector,
33
34
  heading: this.heading,
34
- title: this.title || undefined,
35
+ description: this.description,
35
36
  alignment: this.textAlign,
36
37
  hidden: this.hidden,
37
- width: !DataGridColumn.regex.test(this.width) ? this.width : `${DataGridColumn.getProportion(this.width)}fr`,
38
+ width: !DataGridColumnComponent.regex.test(this.width) ? this.width : `${DataGridColumnComponent.getProportion(this.width)}fr`,
38
39
  sortable: !this.nonSortable,
39
40
  editable: this.getEditContentTemplate !== undefined && (typeof nonEditable !== 'function' ? !nonEditable : x => !nonEditable(x)),
40
41
  getContentTemplate: this.getContentTemplate.bind(this),
41
42
  getEditContentTemplate: this.getEditContentTemplate?.bind(this),
42
- };
43
+ });
43
44
  }
44
45
  handleEdit(value, data) {
45
- this.dataGrid?.handleEdit(data, this, value);
46
+ this.dataGrid?.handleEdit(data, this.column, value);
46
47
  }
47
48
  connectedCallback() {
48
49
  if (this.parentElement instanceof DataGrid) {
@@ -55,34 +56,34 @@ export class DataGridColumn extends Component {
55
56
  this.dataGrid?.requestUpdate();
56
57
  }
57
58
  }
58
- DataGridColumn.regex = /^\s*(0|[1-9][0-9]*)?\s*\*\s*$/;
59
+ DataGridColumnComponent.regex = /^\s*(0|[1-9][0-9]*)?\s*\*\s*$/;
59
60
  __decorate([
60
61
  property({ type: Object })
61
- ], DataGridColumn.prototype, "dataGrid", void 0);
62
+ ], DataGridColumnComponent.prototype, "dataGrid", void 0);
62
63
  __decorate([
63
64
  property()
64
- ], DataGridColumn.prototype, "width", void 0);
65
+ ], DataGridColumnComponent.prototype, "width", void 0);
65
66
  __decorate([
66
67
  property({ type: Boolean })
67
- ], DataGridColumn.prototype, "hidden", void 0);
68
+ ], DataGridColumnComponent.prototype, "hidden", void 0);
68
69
  __decorate([
69
70
  property({ reflect: true })
70
- ], DataGridColumn.prototype, "heading", void 0);
71
+ ], DataGridColumnComponent.prototype, "heading", void 0);
71
72
  __decorate([
72
73
  property({ reflect: true })
73
- ], DataGridColumn.prototype, "textAlign", void 0);
74
+ ], DataGridColumnComponent.prototype, "description", void 0);
74
75
  __decorate([
75
76
  property({ reflect: true })
76
- ], DataGridColumn.prototype, "title", void 0);
77
+ ], DataGridColumnComponent.prototype, "textAlign", void 0);
77
78
  __decorate([
78
79
  property({ reflect: true })
79
- ], DataGridColumn.prototype, "dataSelector", void 0);
80
+ ], DataGridColumnComponent.prototype, "dataSelector", void 0);
80
81
  __decorate([
81
82
  property({ reflect: true })
82
- ], DataGridColumn.prototype, "sortDataSelector", void 0);
83
+ ], DataGridColumnComponent.prototype, "sortDataSelector", void 0);
83
84
  __decorate([
84
85
  property({ type: Boolean, reflect: true })
85
- ], DataGridColumn.prototype, "nonSortable", void 0);
86
+ ], DataGridColumnComponent.prototype, "nonSortable", void 0);
86
87
  __decorate([
87
88
  property({
88
89
  type: Boolean,
@@ -91,4 +92,4 @@ __decorate([
91
92
  return String(value) !== String(oldValue);
92
93
  }
93
94
  })
94
- ], DataGridColumn.prototype, "nonEditable", void 0);
95
+ ], DataGridColumnComponent.prototype, "nonEditable", void 0);