apex-grid 1.0.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +76 -5
- package/README.md +520 -10
- package/components/cell.d.ts +74 -0
- package/components/cell.js +376 -0
- package/components/cell.js.map +1 -0
- package/{dist/src/components → components}/filter-row.d.ts +13 -12
- package/components/filter-row.js +396 -0
- package/components/filter-row.js.map +1 -0
- package/components/grid.d.ts +1173 -0
- package/components/grid.js +620 -0
- package/components/grid.js.map +1 -0
- package/components/header-row.d.ts +43 -0
- package/components/header-row.js +205 -0
- package/components/header-row.js.map +1 -0
- package/{dist/src/components → components}/header.d.ts +11 -5
- package/components/header.js +263 -0
- package/components/header.js.map +1 -0
- package/components/paginator.d.ts +56 -0
- package/components/paginator.js +148 -0
- package/components/paginator.js.map +1 -0
- package/components/row.d.ts +43 -0
- package/components/row.js +239 -0
- package/components/row.js.map +1 -0
- package/components/toolbar.d.ts +60 -0
- package/components/toolbar.js +275 -0
- package/components/toolbar.js.map +1 -0
- package/{dist/src/components → components}/virtualizer.d.ts +2 -3
- package/{dist/src/components → components}/virtualizer.js +3 -3
- package/components/virtualizer.js.map +1 -0
- package/controllers/data-operation.d.ts +31 -0
- package/controllers/data-operation.js +53 -0
- package/controllers/data-operation.js.map +1 -0
- package/controllers/dom.d.ts +55 -0
- package/controllers/dom.js +221 -0
- package/controllers/dom.js.map +1 -0
- package/controllers/editing.d.ts +130 -0
- package/controllers/editing.js +197 -0
- package/controllers/editing.js.map +1 -0
- package/controllers/expansion.d.ts +68 -0
- package/controllers/expansion.js +126 -0
- package/controllers/expansion.js.map +1 -0
- package/{dist/src/controllers → controllers}/filter.d.ts +2 -3
- package/controllers/filter.js +105 -0
- package/controllers/filter.js.map +1 -0
- package/{dist/src/controllers → controllers}/navigation.d.ts +18 -8
- package/{dist/src/controllers → controllers}/navigation.js +31 -20
- package/controllers/navigation.js.map +1 -0
- package/controllers/pagination.d.ts +102 -0
- package/controllers/pagination.js +106 -0
- package/controllers/pagination.js.map +1 -0
- package/controllers/reorder.d.ts +78 -0
- package/controllers/reorder.js +124 -0
- package/controllers/reorder.js.map +1 -0
- package/{dist/src/controllers → controllers}/resize.d.ts +2 -3
- package/controllers/resize.js +52 -0
- package/controllers/resize.js.map +1 -0
- package/controllers/selection.d.ts +109 -0
- package/controllers/selection.js +168 -0
- package/controllers/selection.js.map +1 -0
- package/{dist/src/controllers → controllers}/sort.d.ts +1 -2
- package/controllers/sort.js +122 -0
- package/controllers/sort.js.map +1 -0
- package/controllers/state.d.ts +56 -0
- package/controllers/state.js +74 -0
- package/controllers/state.js.map +1 -0
- package/controllers/tree.d.ts +87 -0
- package/controllers/tree.js +0 -0
- package/controllers/tree.js.map +1 -0
- package/custom-elements.json +6901 -1554
- package/{dist/src/define.d.ts → define.d.ts} +0 -1
- package/define.js.map +1 -0
- package/docs/assets/hierarchy.js +1 -0
- package/docs/assets/highlight.css +127 -0
- package/docs/assets/icons.js +18 -0
- package/docs/assets/icons.svg +1 -0
- package/docs/assets/main.js +60 -0
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1633 -0
- package/docs/classes/ApexGrid.html +371 -0
- package/docs/functions/setup.html +22 -0
- package/docs/hierarchy.html +1 -0
- package/docs/index.html +504 -0
- package/docs/interfaces/ApexCellValueChangedEvent.html +11 -0
- package/docs/interfaces/ApexCellValueChangingEvent.html +13 -0
- package/docs/interfaces/ApexColumnMovedEvent.html +8 -0
- package/docs/interfaces/ApexColumnMovingEvent.html +11 -0
- package/docs/interfaces/ApexColumnPinnedEvent.html +6 -0
- package/docs/interfaces/ApexColumnPinningEvent.html +8 -0
- package/docs/interfaces/ApexDetailContext.html +8 -0
- package/docs/interfaces/ApexFilteredEvent.html +6 -0
- package/docs/interfaces/ApexFilteringEvent.html +12 -0
- package/docs/interfaces/ApexGridEventMap.html +68 -0
- package/docs/interfaces/ApexHeaderContext.html +6 -0
- package/docs/interfaces/ApexPageChangedEvent.html +10 -0
- package/docs/interfaces/ApexPageChangingEvent.html +10 -0
- package/docs/interfaces/ApexQuickFilterChangedEvent.html +4 -0
- package/docs/interfaces/ApexQuickFilterChangingEvent.html +6 -0
- package/docs/interfaces/ApexRowEditEndedEvent.html +6 -0
- package/docs/interfaces/ApexRowEditStartedEvent.html +4 -0
- package/docs/interfaces/ApexRowExpandedEvent.html +8 -0
- package/docs/interfaces/ApexRowExpandingEvent.html +11 -0
- package/docs/interfaces/ApexRowSelectedEvent.html +8 -0
- package/docs/interfaces/ApexRowSelectingEvent.html +11 -0
- package/docs/interfaces/ApexTreeRowExpandedEvent.html +8 -0
- package/docs/interfaces/ApexTreeRowExpandingEvent.html +10 -0
- package/docs/interfaces/BaseApexCellContext.html +16 -0
- package/docs/interfaces/BaseApexEditorContext.html +19 -0
- package/docs/interfaces/BaseColumnConfiguration.html +83 -0
- package/docs/interfaces/BaseColumnSortConfiguration.html +6 -0
- package/docs/interfaces/BaseFilterExpression.html +15 -0
- package/docs/interfaces/BaseSortExpression.html +12 -0
- package/docs/interfaces/CSVExportOptions.html +22 -0
- package/docs/interfaces/ColumnFilterConfiguration.html +4 -0
- package/docs/interfaces/DataPipelineConfiguration.html +15 -0
- package/docs/interfaces/ExportOptions.html +15 -0
- package/docs/interfaces/GridEditingConfiguration.html +10 -0
- package/docs/interfaces/GridExpansionConfiguration.html +15 -0
- package/docs/interfaces/GridSelectionConfiguration.html +11 -0
- package/docs/interfaces/GridSortConfiguration.html +6 -0
- package/docs/interfaces/GridTreeConfiguration.html +33 -0
- package/docs/interfaces/PaginationConfiguration.html +18 -0
- package/docs/interfaces/PaginationState.html +10 -0
- package/docs/interfaces/XLSXExportOptions.html +17 -0
- package/docs/media/package.json +83 -0
- package/docs/media/publish.yml +111 -0
- package/docs/modules.html +1 -0
- package/docs/types/ApexCellContext.html +2 -0
- package/docs/types/ApexEditorContext.html +2 -0
- package/docs/types/BasePropertyType.html +2 -0
- package/docs/types/BaseSortComparer.html +2 -0
- package/docs/types/ColumnConfiguration.html +2 -0
- package/docs/types/ColumnDropPosition.html +2 -0
- package/docs/types/ColumnSortConfiguration.html +2 -0
- package/docs/types/DataPipelineHook.html +2 -0
- package/docs/types/DataPipelineParams.html +8 -0
- package/docs/types/DataType.html +30 -0
- package/docs/types/EditMode.html +6 -0
- package/docs/types/EditTrigger.html +4 -0
- package/docs/types/ExportCellValue.html +5 -0
- package/docs/types/ExportSource.html +8 -0
- package/docs/types/FilterCriteria.html +6 -0
- package/docs/types/FilterExpression.html +2 -0
- package/docs/types/Keys.html +2 -0
- package/docs/types/PaginationMode.html +6 -0
- package/docs/types/PinPosition.html +5 -0
- package/docs/types/PropertyType.html +2 -0
- package/docs/types/SelectionMode.html +7 -0
- package/docs/types/SortComparer.html +2 -0
- package/docs/types/SortExpression.html +2 -0
- package/docs/types/SortState.html +2 -0
- package/docs/types/SortingDirection.html +3 -0
- package/index.d.ts +11 -0
- package/{dist/src/index.js → index.js} +1 -0
- package/index.js.map +1 -0
- package/internal/column-types.d.ts +94 -0
- package/internal/column-types.js +268 -0
- package/internal/column-types.js.map +1 -0
- package/{dist/src/internal → internal}/constants.d.ts +0 -1
- package/internal/constants.js.map +1 -0
- package/internal/export.d.ts +106 -0
- package/internal/export.js +122 -0
- package/internal/export.js.map +1 -0
- package/internal/flip.d.ts +80 -0
- package/internal/flip.js +52 -0
- package/internal/flip.js.map +1 -0
- package/internal/icons.d.ts +24 -0
- package/internal/icons.js +134 -0
- package/internal/icons.js.map +1 -0
- package/{dist/src/internal → internal}/is-defined.d.ts +0 -1
- package/internal/is-defined.js.map +1 -0
- package/{dist/src/internal → internal}/mixins/event-emitter.d.ts +0 -1
- package/internal/mixins/event-emitter.js.map +1 -0
- package/{dist/src/internal → internal}/normalize-case.d.ts +0 -1
- package/internal/normalize-case.js.map +1 -0
- package/{dist/src/internal → internal}/part-map.d.ts +0 -1
- package/{dist/src/internal → internal}/part-map.js +1 -1
- package/internal/part-map.js.map +1 -0
- package/{dist/src/internal → internal}/register.d.ts +3 -4
- package/internal/register.js +9 -0
- package/internal/register.js.map +1 -0
- package/{dist/src/internal → internal}/tags.d.ts +2 -1
- package/{dist/src/internal → internal}/tags.js +2 -0
- package/internal/tags.js.map +1 -0
- package/internal/theming.d.ts +34 -0
- package/internal/theming.js +123 -0
- package/internal/theming.js.map +1 -0
- package/internal/types.d.ts +619 -0
- package/internal/types.js.map +1 -0
- package/internal/utils.d.ts +29 -0
- package/internal/utils.js +75 -0
- package/internal/utils.js.map +1 -0
- package/{dist/src/internal → internal}/watch.d.ts +0 -1
- package/{dist/src/internal → internal}/watch.js +2 -2
- package/internal/watch.js.map +1 -0
- package/internal/xlsx.d.ts +22 -0
- package/internal/xlsx.js +228 -0
- package/internal/xlsx.js.map +1 -0
- package/{dist/src/operations → operations}/base.d.ts +0 -1
- package/operations/base.js.map +1 -0
- package/{dist/src/operations → operations}/filter/operands/boolean.d.ts +0 -1
- package/{dist/src/operations → operations}/filter/operands/boolean.js +5 -5
- package/operations/filter/operands/boolean.js.map +1 -0
- package/{dist/src/operations → operations}/filter/operands/number.d.ts +0 -1
- package/{dist/src/operations → operations}/filter/operands/number.js +2 -2
- package/operations/filter/operands/number.js.map +1 -0
- package/{dist/src/operations → operations}/filter/operands/string.d.ts +0 -1
- package/{dist/src/operations → operations}/filter/operands/string.js +2 -2
- package/operations/filter/operands/string.js.map +1 -0
- package/{dist/src/operations → operations}/filter/state.d.ts +1 -2
- package/{dist/src/operations → operations}/filter/state.js +3 -4
- package/operations/filter/state.js.map +1 -0
- package/{dist/src/operations → operations}/filter/tree.d.ts +1 -2
- package/{dist/src/operations → operations}/filter/tree.js +5 -6
- package/operations/filter/tree.js.map +1 -0
- package/{dist/src/operations → operations}/filter/types.d.ts +0 -1
- package/operations/filter/types.js.map +1 -0
- package/{dist/src/operations → operations}/filter.d.ts +0 -1
- package/{dist/src/operations → operations}/filter.js +4 -7
- package/operations/filter.js.map +1 -0
- package/operations/pagination.d.ts +19 -0
- package/operations/pagination.js +12 -0
- package/operations/pagination.js.map +1 -0
- package/operations/quick-filter.d.ts +21 -0
- package/operations/quick-filter.js +26 -0
- package/operations/quick-filter.js.map +1 -0
- package/{dist/src/operations → operations}/sort/types.d.ts +0 -1
- package/operations/sort/types.js.map +1 -0
- package/{dist/src/operations → operations}/sort.d.ts +0 -1
- package/{dist/src/operations → operations}/sort.js +5 -5
- package/operations/sort.js.map +1 -0
- package/package.json +25 -83
- package/setup.d.ts +58 -0
- package/setup.js +29 -0
- package/setup.js.map +1 -0
- package/{dist/src/styles/body-row/body-row-styles.css.d.ts → styles/_common.css.d.ts} +0 -1
- package/styles/_common.css.js +3 -0
- package/styles/_common.css.js.map +1 -0
- package/{dist/src/styles/body-cell/body-cell-styles.css.d.ts → styles/body-cell/body-cell.css.d.ts} +0 -1
- package/styles/body-cell/body-cell.css.js +3 -0
- package/styles/body-cell/body-cell.css.js.map +1 -0
- package/{dist/src/styles/filter-row/filter-row-styles.css.d.ts → styles/body-row/body-row.css.d.ts} +0 -1
- package/styles/body-row/body-row.css.js +3 -0
- package/styles/body-row/body-row.css.js.map +1 -0
- package/{dist/src/styles/grid/themes/light/grid.fluent-styles.css.d.ts → styles/filter-row/filter-row.css.d.ts} +0 -1
- package/styles/filter-row/filter-row.css.js +3 -0
- package/styles/filter-row/filter-row.css.js.map +1 -0
- package/styles/grid/_grid.base.css.d.ts +1 -0
- package/styles/grid/_grid.base.css.js +3 -0
- package/styles/grid/_grid.base.css.js.map +1 -0
- package/styles/grid/themes/light/grid.bootstrap.css.d.ts +1 -0
- package/styles/grid/themes/light/grid.bootstrap.css.js +3 -0
- package/styles/grid/themes/light/grid.bootstrap.css.js.map +1 -0
- package/styles/grid/themes/light/grid.fluent.css.d.ts +1 -0
- package/styles/grid/themes/light/grid.fluent.css.js +3 -0
- package/styles/grid/themes/light/grid.fluent.css.js.map +1 -0
- package/styles/grid/themes/light/grid.indigo.css.d.ts +1 -0
- package/styles/grid/themes/light/grid.indigo.css.js +3 -0
- package/styles/grid/themes/light/grid.indigo.css.js.map +1 -0
- package/styles/grid/themes/light/grid.material.css.d.ts +1 -0
- package/styles/grid/themes/light/grid.material.css.js +3 -0
- package/styles/grid/themes/light/grid.material.css.js.map +1 -0
- package/styles/header-cell/header-cell.css.d.ts +1 -0
- package/styles/header-cell/header-cell.css.js +3 -0
- package/styles/header-cell/header-cell.css.js.map +1 -0
- package/styles/header-row/header-row.base.css.d.ts +1 -0
- package/styles/header-row/header-row.base.css.js +3 -0
- package/styles/header-row/header-row.base.css.js.map +1 -0
- package/styles/paginator/paginator.css.d.ts +1 -0
- package/styles/paginator/paginator.css.js +3 -0
- package/styles/paginator/paginator.css.js.map +1 -0
- package/styles/toolbar/toolbar.css.d.ts +1 -0
- package/styles/toolbar/toolbar.css.js +3 -0
- package/styles/toolbar/toolbar.css.js.map +1 -0
- package/styles.css +17 -0
- package/dist/bundle.js +0 -2194
- package/dist/docs/assets/highlight.css +0 -43
- package/dist/docs/assets/main.js +0 -58
- package/dist/docs/assets/search.js +0 -1
- package/dist/docs/assets/style.css +0 -1365
- package/dist/docs/classes/ApexGrid.html +0 -327
- package/dist/docs/index.html +0 -82
- package/dist/docs/interfaces/ApexFilteredEvent.html +0 -104
- package/dist/docs/interfaces/ApexFilteringEvent.html +0 -116
- package/dist/docs/interfaces/ApexGridEventMap.html +0 -127
- package/dist/docs/interfaces/ApexHeaderContext.html +0 -104
- package/dist/docs/interfaces/BaseApexCellContext.html +0 -120
- package/dist/docs/interfaces/BaseColumnConfiguration.html +0 -196
- package/dist/docs/interfaces/BaseColumnSortConfiguration.html +0 -106
- package/dist/docs/interfaces/BaseFilterExpression.html +0 -132
- package/dist/docs/interfaces/BaseSortExpression.html +0 -124
- package/dist/docs/interfaces/ColumnFilterConfiguration.html +0 -92
- package/dist/docs/interfaces/DataPipelineConfiguration.html +0 -104
- package/dist/docs/interfaces/GridSortConfiguration.html +0 -99
- package/dist/docs/modules.html +0 -102
- package/dist/docs/types/ApexCellContext.html +0 -74
- package/dist/docs/types/BasePropertyType.html +0 -74
- package/dist/docs/types/BaseSortComparer.html +0 -89
- package/dist/docs/types/ColumnConfiguration.html +0 -74
- package/dist/docs/types/ColumnSortConfiguration.html +0 -74
- package/dist/docs/types/DataPipelineHook.html +0 -85
- package/dist/docs/types/DataPipelineParams.html +0 -87
- package/dist/docs/types/DataType.html +0 -67
- package/dist/docs/types/FilterCriteria.html +0 -71
- package/dist/docs/types/FilterExpression.html +0 -74
- package/dist/docs/types/Keys.html +0 -72
- package/dist/docs/types/PropertyType.html +0 -74
- package/dist/docs/types/SortComparer.html +0 -74
- package/dist/docs/types/SortExpression.html +0 -74
- package/dist/docs/types/SortState.html +0 -72
- package/dist/docs/types/SortingDirection.html +0 -69
- package/dist/src/components/cell.d.ts +0 -36
- package/dist/src/components/cell.d.ts.map +0 -1
- package/dist/src/components/cell.js +0 -55
- package/dist/src/components/cell.js.map +0 -1
- package/dist/src/components/filter-row.d.ts.map +0 -1
- package/dist/src/components/filter-row.js +0 -316
- package/dist/src/components/filter-row.js.map +0 -1
- package/dist/src/components/grid.d.ts +0 -226
- package/dist/src/components/grid.d.ts.map +0 -1
- package/dist/src/components/grid.js +0 -309
- package/dist/src/components/grid.js.map +0 -1
- package/dist/src/components/header-row.d.ts +0 -24
- package/dist/src/components/header-row.d.ts.map +0 -1
- package/dist/src/components/header-row.js +0 -78
- package/dist/src/components/header-row.js.map +0 -1
- package/dist/src/components/header.d.ts.map +0 -1
- package/dist/src/components/header.js +0 -144
- package/dist/src/components/header.js.map +0 -1
- package/dist/src/components/row.d.ts +0 -25
- package/dist/src/components/row.d.ts.map +0 -1
- package/dist/src/components/row.js +0 -68
- package/dist/src/components/row.js.map +0 -1
- package/dist/src/components/virtualizer.d.ts.map +0 -1
- package/dist/src/components/virtualizer.js.map +0 -1
- package/dist/src/controllers/data-operation.d.ts +0 -18
- package/dist/src/controllers/data-operation.d.ts.map +0 -1
- package/dist/src/controllers/data-operation.js +0 -37
- package/dist/src/controllers/data-operation.js.map +0 -1
- package/dist/src/controllers/dom.d.ts +0 -20
- package/dist/src/controllers/dom.d.ts.map +0 -1
- package/dist/src/controllers/dom.js +0 -60
- package/dist/src/controllers/dom.js.map +0 -1
- package/dist/src/controllers/filter.d.ts.map +0 -1
- package/dist/src/controllers/filter.js +0 -119
- package/dist/src/controllers/filter.js.map +0 -1
- package/dist/src/controllers/navigation.d.ts.map +0 -1
- package/dist/src/controllers/navigation.js.map +0 -1
- package/dist/src/controllers/resize.d.ts.map +0 -1
- package/dist/src/controllers/resize.js +0 -70
- package/dist/src/controllers/resize.js.map +0 -1
- package/dist/src/controllers/sort.d.ts.map +0 -1
- package/dist/src/controllers/sort.js +0 -94
- package/dist/src/controllers/sort.js.map +0 -1
- package/dist/src/controllers/state.d.ts +0 -25
- package/dist/src/controllers/state.d.ts.map +0 -1
- package/dist/src/controllers/state.js +0 -40
- package/dist/src/controllers/state.js.map +0 -1
- package/dist/src/define.d.ts.map +0 -1
- package/dist/src/define.js.map +0 -1
- package/dist/src/index.d.ts +0 -9
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/internal/constants.d.ts.map +0 -1
- package/dist/src/internal/constants.js.map +0 -1
- package/dist/src/internal/icon-registry.d.ts +0 -2
- package/dist/src/internal/icon-registry.d.ts.map +0 -1
- package/dist/src/internal/icon-registry.js +0 -29
- package/dist/src/internal/icon-registry.js.map +0 -1
- package/dist/src/internal/is-defined.d.ts.map +0 -1
- package/dist/src/internal/is-defined.js.map +0 -1
- package/dist/src/internal/mixins/event-emitter.d.ts.map +0 -1
- package/dist/src/internal/mixins/event-emitter.js.map +0 -1
- package/dist/src/internal/normalize-case.d.ts.map +0 -1
- package/dist/src/internal/normalize-case.js.map +0 -1
- package/dist/src/internal/part-map.d.ts.map +0 -1
- package/dist/src/internal/part-map.js.map +0 -1
- package/dist/src/internal/register.d.ts.map +0 -1
- package/dist/src/internal/register.js +0 -9
- package/dist/src/internal/register.js.map +0 -1
- package/dist/src/internal/tags.d.ts.map +0 -1
- package/dist/src/internal/tags.js.map +0 -1
- package/dist/src/internal/types.d.ts +0 -199
- package/dist/src/internal/types.d.ts.map +0 -1
- package/dist/src/internal/types.js.map +0 -1
- package/dist/src/internal/utils.d.ts +0 -7
- package/dist/src/internal/utils.d.ts.map +0 -1
- package/dist/src/internal/utils.js +0 -37
- package/dist/src/internal/utils.js.map +0 -1
- package/dist/src/internal/watch.d.ts.map +0 -1
- package/dist/src/internal/watch.js.map +0 -1
- package/dist/src/operations/base.d.ts.map +0 -1
- package/dist/src/operations/base.js.map +0 -1
- package/dist/src/operations/filter/operands/boolean.d.ts.map +0 -1
- package/dist/src/operations/filter/operands/boolean.js.map +0 -1
- package/dist/src/operations/filter/operands/number.d.ts.map +0 -1
- package/dist/src/operations/filter/operands/number.js.map +0 -1
- package/dist/src/operations/filter/operands/string.d.ts.map +0 -1
- package/dist/src/operations/filter/operands/string.js.map +0 -1
- package/dist/src/operations/filter/state.d.ts.map +0 -1
- package/dist/src/operations/filter/state.js.map +0 -1
- package/dist/src/operations/filter/tree.d.ts.map +0 -1
- package/dist/src/operations/filter/tree.js.map +0 -1
- package/dist/src/operations/filter/types.d.ts.map +0 -1
- package/dist/src/operations/filter/types.js.map +0 -1
- package/dist/src/operations/filter.d.ts.map +0 -1
- package/dist/src/operations/filter.js.map +0 -1
- package/dist/src/operations/sort/types.d.ts.map +0 -1
- package/dist/src/operations/sort/types.js.map +0 -1
- package/dist/src/operations/sort.d.ts.map +0 -1
- package/dist/src/operations/sort.js.map +0 -1
- package/dist/src/styles/body-cell/body-cell-styles.css.d.ts.map +0 -1
- package/dist/src/styles/body-cell/body-cell-styles.css.js +0 -71
- package/dist/src/styles/body-cell/body-cell-styles.css.js.map +0 -1
- package/dist/src/styles/body-row/body-row-styles.css.d.ts.map +0 -1
- package/dist/src/styles/body-row/body-row-styles.css.js +0 -38
- package/dist/src/styles/body-row/body-row-styles.css.js.map +0 -1
- package/dist/src/styles/filter-row/filter-row-styles.css.d.ts.map +0 -1
- package/dist/src/styles/filter-row/filter-row-styles.css.js +0 -96
- package/dist/src/styles/filter-row/filter-row-styles.css.js.map +0 -1
- package/dist/src/styles/grid/themes/light/grid.bootstrap-styles.css.d.ts +0 -2
- package/dist/src/styles/grid/themes/light/grid.bootstrap-styles.css.d.ts.map +0 -1
- package/dist/src/styles/grid/themes/light/grid.bootstrap-styles.css.js +0 -83
- package/dist/src/styles/grid/themes/light/grid.bootstrap-styles.css.js.map +0 -1
- package/dist/src/styles/grid/themes/light/grid.fluent-styles.css.d.ts.map +0 -1
- package/dist/src/styles/grid/themes/light/grid.fluent-styles.css.js +0 -83
- package/dist/src/styles/grid/themes/light/grid.fluent-styles.css.js.map +0 -1
- package/dist/src/styles/grid/themes/light/grid.indigo-styles.css.d.ts +0 -2
- package/dist/src/styles/grid/themes/light/grid.indigo-styles.css.d.ts.map +0 -1
- package/dist/src/styles/grid/themes/light/grid.indigo-styles.css.js +0 -83
- package/dist/src/styles/grid/themes/light/grid.indigo-styles.css.js.map +0 -1
- package/dist/src/styles/grid/themes/light/grid.material-styles.css.d.ts +0 -2
- package/dist/src/styles/grid/themes/light/grid.material-styles.css.d.ts.map +0 -1
- package/dist/src/styles/grid/themes/light/grid.material-styles.css.js +0 -83
- package/dist/src/styles/grid/themes/light/grid.material-styles.css.js.map +0 -1
- package/dist/src/styles/header-cell/header-cell-styles.css.d.ts +0 -2
- package/dist/src/styles/header-cell/header-cell-styles.css.d.ts.map +0 -1
- package/dist/src/styles/header-cell/header-cell-styles.css.js +0 -141
- package/dist/src/styles/header-cell/header-cell-styles.css.js.map +0 -1
- package/dist/src/styles/header-row/header-row.base-styles.css.d.ts +0 -2
- package/dist/src/styles/header-row/header-row.base-styles.css.d.ts.map +0 -1
- package/dist/src/styles/header-row/header-row.base-styles.css.js +0 -35
- package/dist/src/styles/header-row/header-row.base-styles.css.js.map +0 -1
- /package/{dist/src/define.js → define.js} +0 -0
- /package/{dist/docs → docs}/.nojekyll +0 -0
- /package/{dist/src/internal → internal}/constants.js +0 -0
- /package/{dist/src/internal → internal}/is-defined.js +0 -0
- /package/{dist/src/internal → internal}/mixins/event-emitter.js +0 -0
- /package/{dist/src/internal → internal}/normalize-case.js +0 -0
- /package/{dist/src/internal → internal}/types.js +0 -0
- /package/{dist/src/operations → operations}/base.js +0 -0
- /package/{dist/src/operations → operations}/filter/types.js +0 -0
- /package/{dist/src/operations → operations}/sort/types.js +0 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import { type StateController } from '../controllers/state.js';
|
|
3
|
+
import type { ApexCellContext, ColumnConfiguration, PropertyType } from '../internal/types.js';
|
|
4
|
+
import type ApexGridRow from './row.js';
|
|
5
|
+
/**
|
|
6
|
+
* Component representing a DOM cell of the Apex grid.
|
|
7
|
+
*
|
|
8
|
+
* @csspart cell - The cell host element.
|
|
9
|
+
* @csspart editor - The editor wrapper rendered while the cell is in edit mode.
|
|
10
|
+
*/
|
|
11
|
+
export default class ApexGridCell<T extends object> extends LitElement {
|
|
12
|
+
#private;
|
|
13
|
+
static get tagName(): "apex-grid-cell";
|
|
14
|
+
static styles: import("lit").CSSResult;
|
|
15
|
+
static register(): void;
|
|
16
|
+
/**
|
|
17
|
+
* The value which will be rendered by the component.
|
|
18
|
+
*/
|
|
19
|
+
value: PropertyType<T>;
|
|
20
|
+
/**
|
|
21
|
+
* A reference to the column configuration object.
|
|
22
|
+
*/
|
|
23
|
+
column: ColumnConfiguration<T>;
|
|
24
|
+
/**
|
|
25
|
+
* Indicates whether this is the active cell in the grid.
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
28
|
+
active: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Whether the cell is currently in edit mode. Set by the parent row from the
|
|
31
|
+
* editing controller's state so cells re-render on edit state changes.
|
|
32
|
+
*/
|
|
33
|
+
editing: boolean;
|
|
34
|
+
state: StateController<T>;
|
|
35
|
+
/**
|
|
36
|
+
* The parent row component holding this cell.
|
|
37
|
+
*/
|
|
38
|
+
row: ApexGridRow<T>;
|
|
39
|
+
protected editorElement: HTMLElement | null;
|
|
40
|
+
protected get context(): ApexCellContext<T>;
|
|
41
|
+
protected get editingController(): import("../controllers/editing.js").EditingController<T>;
|
|
42
|
+
protected get isEditing(): boolean;
|
|
43
|
+
protected get isEditable(): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* 1-based column index used to populate `aria-colindex`. Accounts for the
|
|
46
|
+
* auto-rendered selection + expansion columns ahead of the data columns.
|
|
47
|
+
*/
|
|
48
|
+
colindex: number;
|
|
49
|
+
connectedCallback(): void;
|
|
50
|
+
disconnectedCallback(): void;
|
|
51
|
+
protected willUpdate(): void;
|
|
52
|
+
protected updated(): void;
|
|
53
|
+
protected renderDefaultEditor(): import("lit-html").TemplateResult<1>;
|
|
54
|
+
protected renderEditor(): unknown;
|
|
55
|
+
/**
|
|
56
|
+
* Renders the tree affordance — depth-based indent + a chevron toggle (or
|
|
57
|
+
* leaf spacer) — that prefixes the group cell when {@link ApexGrid.tree}
|
|
58
|
+
* is enabled. Returns `nothing` for every other cell.
|
|
59
|
+
*/
|
|
60
|
+
protected renderTreeAffordance(): import("lit-html").TemplateResult<1> | null;
|
|
61
|
+
/**
|
|
62
|
+
* Resolves the value to display for the cell. Synthesized tree parents
|
|
63
|
+
* (those that appear only as a path segment with no backing data) render
|
|
64
|
+
* their last path segment in the group column and nothing elsewhere.
|
|
65
|
+
*/
|
|
66
|
+
protected resolveDisplayValue(): unknown;
|
|
67
|
+
protected renderCellBody(): unknown;
|
|
68
|
+
protected render(): unknown;
|
|
69
|
+
}
|
|
70
|
+
declare global {
|
|
71
|
+
interface HTMLElementTagNameMap {
|
|
72
|
+
[ApexGridCell.tagName]: ApexGridCell<object>;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { consume } from '@lit/context';
|
|
8
|
+
import { html, LitElement } from 'lit';
|
|
9
|
+
import { property, query } from 'lit/decorators.js';
|
|
10
|
+
import { gridStateContext } from '../controllers/state.js';
|
|
11
|
+
import { getColumnTypeRenderer } from '../internal/column-types.js';
|
|
12
|
+
import { registerComponent } from '../internal/register.js';
|
|
13
|
+
import { GRID_CELL_TAG } from '../internal/tags.js';
|
|
14
|
+
import { styles } from '../styles/body-cell/body-cell.css.js';
|
|
15
|
+
export default class ApexGridCell extends LitElement {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
this.active = false;
|
|
19
|
+
this.editing = false;
|
|
20
|
+
this.colindex = 0;
|
|
21
|
+
this.#handleClick = (event) => {
|
|
22
|
+
if (this.isEditing) {
|
|
23
|
+
event.stopPropagation();
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
if (!this.isEditable)
|
|
27
|
+
return;
|
|
28
|
+
if (this.column.type === 'boolean')
|
|
29
|
+
return;
|
|
30
|
+
if (this.editingController.trigger !== 'click')
|
|
31
|
+
return;
|
|
32
|
+
this.#startEdit();
|
|
33
|
+
};
|
|
34
|
+
this.#handleDoubleClick = (event) => {
|
|
35
|
+
if (this.isEditing) {
|
|
36
|
+
event.stopPropagation();
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (!this.isEditable)
|
|
40
|
+
return;
|
|
41
|
+
if (this.column.type === 'boolean')
|
|
42
|
+
return;
|
|
43
|
+
if (this.editingController.trigger !== 'doubleClick')
|
|
44
|
+
return;
|
|
45
|
+
this.#startEdit();
|
|
46
|
+
};
|
|
47
|
+
this.#commitWith = async (value) => {
|
|
48
|
+
return this.editingController.commitCell(value ?? this.#pendingValue);
|
|
49
|
+
};
|
|
50
|
+
this.#cancel = () => {
|
|
51
|
+
this.editingController.cancelCell();
|
|
52
|
+
};
|
|
53
|
+
this.#handleKeydown = (event) => {
|
|
54
|
+
event.stopPropagation();
|
|
55
|
+
switch (event.key) {
|
|
56
|
+
case 'Enter':
|
|
57
|
+
event.preventDefault();
|
|
58
|
+
this.#commitWith();
|
|
59
|
+
return;
|
|
60
|
+
case 'Escape':
|
|
61
|
+
event.preventDefault();
|
|
62
|
+
this.#cancel();
|
|
63
|
+
return;
|
|
64
|
+
case 'Tab':
|
|
65
|
+
event.preventDefault();
|
|
66
|
+
this.#commitWith();
|
|
67
|
+
return;
|
|
68
|
+
default:
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
this.#handleBlur = () => {
|
|
73
|
+
if (!this.isEditing)
|
|
74
|
+
return;
|
|
75
|
+
if (this.editingController.mode === 'cell') {
|
|
76
|
+
this.#commitWith();
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.editingController.commitCell(this.#pendingValue);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
this.#handleCellKeydown = (event) => {
|
|
83
|
+
if (!this.isEditing)
|
|
84
|
+
return;
|
|
85
|
+
if (event.key === 'Escape') {
|
|
86
|
+
event.preventDefault();
|
|
87
|
+
this.#cancel();
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (event.key === 'Tab') {
|
|
91
|
+
event.preventDefault();
|
|
92
|
+
this.#commitWith();
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
this.#handleCellFocusOut = (event) => {
|
|
96
|
+
if (!this.isEditing)
|
|
97
|
+
return;
|
|
98
|
+
const next = event.relatedTarget;
|
|
99
|
+
if (next && (this.contains(next) || this.shadowRoot?.contains(next)))
|
|
100
|
+
return;
|
|
101
|
+
if (this.editingController.mode === 'cell') {
|
|
102
|
+
this.#commitWith();
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.editingController.commitCell(this.#pendingValue);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
this.#handleTextInput = (event) => {
|
|
109
|
+
const target = event.target;
|
|
110
|
+
this.#pendingValue = this.column.type === 'number' ? target.valueAsNumber : target.value;
|
|
111
|
+
};
|
|
112
|
+
this.#handleCheckboxChange = (event) => {
|
|
113
|
+
const target = event.target;
|
|
114
|
+
this.#pendingValue = target.checked;
|
|
115
|
+
this.#commitWith(target.checked);
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
static get tagName() {
|
|
119
|
+
return GRID_CELL_TAG;
|
|
120
|
+
}
|
|
121
|
+
static { this.styles = styles; }
|
|
122
|
+
static register() {
|
|
123
|
+
registerComponent(ApexGridCell);
|
|
124
|
+
}
|
|
125
|
+
get context() {
|
|
126
|
+
const ctx = {
|
|
127
|
+
parent: this,
|
|
128
|
+
row: this.row,
|
|
129
|
+
column: this.column,
|
|
130
|
+
value: this.value,
|
|
131
|
+
};
|
|
132
|
+
if (this.isEditable) {
|
|
133
|
+
ctx.commit = (next) => this.editingController.commitImmediate(this.row.index, this.column.key, next);
|
|
134
|
+
}
|
|
135
|
+
return ctx;
|
|
136
|
+
}
|
|
137
|
+
get editingController() {
|
|
138
|
+
return this.state.editing;
|
|
139
|
+
}
|
|
140
|
+
get isEditing() {
|
|
141
|
+
return this.editing;
|
|
142
|
+
}
|
|
143
|
+
get isEditable() {
|
|
144
|
+
if (!this.editingController)
|
|
145
|
+
return false;
|
|
146
|
+
return this.editingController.isEditable(this.column);
|
|
147
|
+
}
|
|
148
|
+
connectedCallback() {
|
|
149
|
+
super.connectedCallback();
|
|
150
|
+
this.setAttribute('role', 'gridcell');
|
|
151
|
+
this.addEventListener('click', this.#handleClick);
|
|
152
|
+
this.addEventListener('dblclick', this.#handleDoubleClick);
|
|
153
|
+
this.addEventListener('keydown', this.#handleCellKeydown);
|
|
154
|
+
this.addEventListener('focusout', this.#handleCellFocusOut);
|
|
155
|
+
}
|
|
156
|
+
disconnectedCallback() {
|
|
157
|
+
this.removeEventListener('click', this.#handleClick);
|
|
158
|
+
this.removeEventListener('dblclick', this.#handleDoubleClick);
|
|
159
|
+
this.removeEventListener('keydown', this.#handleCellKeydown);
|
|
160
|
+
this.removeEventListener('focusout', this.#handleCellFocusOut);
|
|
161
|
+
super.disconnectedCallback();
|
|
162
|
+
}
|
|
163
|
+
willUpdate() {
|
|
164
|
+
if (this.colindex > 0) {
|
|
165
|
+
this.setAttribute('aria-colindex', String(this.colindex));
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
this.removeAttribute('aria-colindex');
|
|
169
|
+
}
|
|
170
|
+
if (this.active) {
|
|
171
|
+
this.setAttribute('aria-current', 'true');
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
this.removeAttribute('aria-current');
|
|
175
|
+
}
|
|
176
|
+
const tree = this.state?.tree;
|
|
177
|
+
const isGroup = tree?.enabled && this.row?.data && tree.isGroupColumn(this.column.key);
|
|
178
|
+
if (isGroup && tree.isExpanded(this.row.data)) {
|
|
179
|
+
this.setAttribute('data-tree-expanded', '');
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
this.removeAttribute('data-tree-expanded');
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
updated() {
|
|
186
|
+
if (this.isEditing) {
|
|
187
|
+
const editor = this.editorElement;
|
|
188
|
+
editor?.focus();
|
|
189
|
+
if (editor instanceof HTMLInputElement) {
|
|
190
|
+
if (editor.type === 'text' || editor.type === 'number') {
|
|
191
|
+
editor.select();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
#handleClick;
|
|
197
|
+
#handleDoubleClick;
|
|
198
|
+
#startEdit() {
|
|
199
|
+
if (!this.row)
|
|
200
|
+
return;
|
|
201
|
+
this.editingController.editCell(this.row.index, this.column.key);
|
|
202
|
+
}
|
|
203
|
+
#pendingValue;
|
|
204
|
+
#commitWith;
|
|
205
|
+
#cancel;
|
|
206
|
+
#handleKeydown;
|
|
207
|
+
#handleBlur;
|
|
208
|
+
#handleCellKeydown;
|
|
209
|
+
#handleCellFocusOut;
|
|
210
|
+
#handleTextInput;
|
|
211
|
+
#handleCheckboxChange;
|
|
212
|
+
renderDefaultEditor() {
|
|
213
|
+
const value = this.value;
|
|
214
|
+
if (this.column.type === 'boolean') {
|
|
215
|
+
this.#pendingValue = Boolean(value);
|
|
216
|
+
return html `<input
|
|
217
|
+
type="checkbox"
|
|
218
|
+
part="editor"
|
|
219
|
+
data-apex-editor
|
|
220
|
+
?checked=${Boolean(value)}
|
|
221
|
+
@change=${this.#handleCheckboxChange}
|
|
222
|
+
@keydown=${this.#handleKeydown}
|
|
223
|
+
@blur=${this.#handleBlur}
|
|
224
|
+
/>`;
|
|
225
|
+
}
|
|
226
|
+
if (this.column.type === 'number') {
|
|
227
|
+
this.#pendingValue = value;
|
|
228
|
+
return html `<input
|
|
229
|
+
type="number"
|
|
230
|
+
part="editor"
|
|
231
|
+
data-apex-editor
|
|
232
|
+
.value=${value == null ? '' : String(value)}
|
|
233
|
+
@input=${this.#handleTextInput}
|
|
234
|
+
@keydown=${this.#handleKeydown}
|
|
235
|
+
@blur=${this.#handleBlur}
|
|
236
|
+
/>`;
|
|
237
|
+
}
|
|
238
|
+
this.#pendingValue = value;
|
|
239
|
+
return html `<input
|
|
240
|
+
type="text"
|
|
241
|
+
part="editor"
|
|
242
|
+
data-apex-editor
|
|
243
|
+
.value=${value == null ? '' : String(value)}
|
|
244
|
+
@input=${this.#handleTextInput}
|
|
245
|
+
@keydown=${this.#handleKeydown}
|
|
246
|
+
@blur=${this.#handleBlur}
|
|
247
|
+
/>`;
|
|
248
|
+
}
|
|
249
|
+
renderEditor() {
|
|
250
|
+
const template = this.column.editorTemplate;
|
|
251
|
+
const ctx = {
|
|
252
|
+
parent: this,
|
|
253
|
+
row: this.row,
|
|
254
|
+
column: this.column,
|
|
255
|
+
value: this.value,
|
|
256
|
+
commit: (next) => this.editingController.commitCell(next),
|
|
257
|
+
cancel: () => this.editingController.cancelCell(),
|
|
258
|
+
};
|
|
259
|
+
if (template) {
|
|
260
|
+
this.#pendingValue = this.value;
|
|
261
|
+
return template(ctx);
|
|
262
|
+
}
|
|
263
|
+
const typeRenderer = getColumnTypeRenderer(this.column.type);
|
|
264
|
+
if (typeRenderer?.editor) {
|
|
265
|
+
this.#pendingValue = this.value;
|
|
266
|
+
return typeRenderer.editor(ctx);
|
|
267
|
+
}
|
|
268
|
+
return this.renderDefaultEditor();
|
|
269
|
+
}
|
|
270
|
+
renderTreeAffordance() {
|
|
271
|
+
const tree = this.state?.tree;
|
|
272
|
+
if (!tree?.enabled)
|
|
273
|
+
return null;
|
|
274
|
+
if (!this.row?.data)
|
|
275
|
+
return null;
|
|
276
|
+
if (!tree.isGroupColumn(this.column.key))
|
|
277
|
+
return null;
|
|
278
|
+
const data = this.row.data;
|
|
279
|
+
const meta = tree.getMeta(data);
|
|
280
|
+
if (!meta)
|
|
281
|
+
return null;
|
|
282
|
+
const indent = meta.depth * tree.childIndent;
|
|
283
|
+
const expanded = tree.isExpanded(data);
|
|
284
|
+
const handleClick = (event) => {
|
|
285
|
+
event.stopPropagation();
|
|
286
|
+
if (!meta.hasChildren)
|
|
287
|
+
return;
|
|
288
|
+
void tree.toggleRow(data);
|
|
289
|
+
};
|
|
290
|
+
const chevron = meta.hasChildren
|
|
291
|
+
? html `<button
|
|
292
|
+
type="button"
|
|
293
|
+
part="tree-toggle"
|
|
294
|
+
aria-label=${expanded ? 'Collapse row' : 'Expand row'}
|
|
295
|
+
aria-expanded=${expanded ? 'true' : 'false'}
|
|
296
|
+
@click=${handleClick}
|
|
297
|
+
>
|
|
298
|
+
<svg
|
|
299
|
+
part="tree-chevron"
|
|
300
|
+
viewBox="0 0 24 24"
|
|
301
|
+
aria-hidden="true"
|
|
302
|
+
width="14"
|
|
303
|
+
height="14"
|
|
304
|
+
>
|
|
305
|
+
<path
|
|
306
|
+
d="M9 6l6 6-6 6"
|
|
307
|
+
fill="none"
|
|
308
|
+
stroke="currentColor"
|
|
309
|
+
stroke-width="2"
|
|
310
|
+
stroke-linecap="round"
|
|
311
|
+
stroke-linejoin="round"
|
|
312
|
+
/>
|
|
313
|
+
</svg>
|
|
314
|
+
</button>`
|
|
315
|
+
: html `<span part="tree-spacer" aria-hidden="true"></span>`;
|
|
316
|
+
return html `<span
|
|
317
|
+
part="tree-indent"
|
|
318
|
+
aria-hidden="true"
|
|
319
|
+
style=${`inline-size: ${indent}px`}
|
|
320
|
+
></span>${chevron}`;
|
|
321
|
+
}
|
|
322
|
+
resolveDisplayValue() {
|
|
323
|
+
const tree = this.state?.tree;
|
|
324
|
+
if (tree?.enabled && this.row?.data && tree.isSynthesized(this.row.data)) {
|
|
325
|
+
return tree.isGroupColumn(this.column.key) ? tree.getLabel(this.row.data) : '';
|
|
326
|
+
}
|
|
327
|
+
return this.value;
|
|
328
|
+
}
|
|
329
|
+
renderCellBody() {
|
|
330
|
+
if (this.column.cellTemplate) {
|
|
331
|
+
return this.column.cellTemplate(this.context);
|
|
332
|
+
}
|
|
333
|
+
const typeRenderer = getColumnTypeRenderer(this.column.type);
|
|
334
|
+
if (typeRenderer?.display) {
|
|
335
|
+
const tree = this.state?.tree;
|
|
336
|
+
if (tree?.enabled && this.row?.data && tree.isSynthesized(this.row.data)) {
|
|
337
|
+
return html `${this.resolveDisplayValue()}`;
|
|
338
|
+
}
|
|
339
|
+
return typeRenderer.display(this.context);
|
|
340
|
+
}
|
|
341
|
+
return html `${this.resolveDisplayValue()}`;
|
|
342
|
+
}
|
|
343
|
+
render() {
|
|
344
|
+
if (this.isEditing) {
|
|
345
|
+
return this.renderEditor();
|
|
346
|
+
}
|
|
347
|
+
const affordance = this.renderTreeAffordance();
|
|
348
|
+
if (affordance) {
|
|
349
|
+
return html `${affordance}<span part="tree-cell-content">${this.renderCellBody()}</span>`;
|
|
350
|
+
}
|
|
351
|
+
return this.renderCellBody();
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
__decorate([
|
|
355
|
+
property({ attribute: false })
|
|
356
|
+
], ApexGridCell.prototype, "value", void 0);
|
|
357
|
+
__decorate([
|
|
358
|
+
property({ attribute: false })
|
|
359
|
+
], ApexGridCell.prototype, "column", void 0);
|
|
360
|
+
__decorate([
|
|
361
|
+
property({ type: Boolean, reflect: true })
|
|
362
|
+
], ApexGridCell.prototype, "active", void 0);
|
|
363
|
+
__decorate([
|
|
364
|
+
property({ type: Boolean, reflect: true })
|
|
365
|
+
], ApexGridCell.prototype, "editing", void 0);
|
|
366
|
+
__decorate([
|
|
367
|
+
consume({ context: gridStateContext, subscribe: true }),
|
|
368
|
+
property({ attribute: false })
|
|
369
|
+
], ApexGridCell.prototype, "state", void 0);
|
|
370
|
+
__decorate([
|
|
371
|
+
query('input, [data-apex-editor]')
|
|
372
|
+
], ApexGridCell.prototype, "editorElement", void 0);
|
|
373
|
+
__decorate([
|
|
374
|
+
property({ attribute: false, type: Number })
|
|
375
|
+
], ApexGridCell.prototype, "colindex", void 0);
|
|
376
|
+
//# sourceMappingURL=cell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cell.js","sourceRoot":"","sources":["../../src/components/cell.ts"],"names":[],"mappings":"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","sourcesContent":["import { consume } from '@lit/context';\nimport { html, LitElement } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { gridStateContext, type StateController } from '../controllers/state.js';\nimport { getColumnTypeRenderer } from '../internal/column-types.js';\nimport { registerComponent } from '../internal/register.js';\nimport { GRID_CELL_TAG } from '../internal/tags.js';\nimport type {\n ApexCellContext,\n ApexEditorContext,\n ColumnConfiguration,\n PropertyType,\n} from '../internal/types.js';\nimport { styles } from '../styles/body-cell/body-cell.css.js';\nimport type ApexGridRow from './row.js';\n\n/**\n * Component representing a DOM cell of the Apex grid.\n *\n * @csspart cell - The cell host element.\n * @csspart editor - The editor wrapper rendered while the cell is in edit mode.\n */\nexport default class ApexGridCell<T extends object> extends LitElement {\n public static get tagName() {\n return GRID_CELL_TAG;\n }\n\n public static override styles = styles;\n\n public static register(): void {\n registerComponent(ApexGridCell);\n }\n\n /**\n * The value which will be rendered by the component.\n */\n @property({ attribute: false })\n public value!: PropertyType<T>;\n\n /**\n * A reference to the column configuration object.\n */\n @property({ attribute: false })\n public column!: ColumnConfiguration<T>;\n\n /**\n * Indicates whether this is the active cell in the grid.\n *\n */\n @property({ type: Boolean, reflect: true })\n public active = false;\n\n /**\n * Whether the cell is currently in edit mode. Set by the parent row from the\n * editing controller's state so cells re-render on edit state changes.\n */\n @property({ type: Boolean, reflect: true })\n public editing = false;\n\n @consume({ context: gridStateContext, subscribe: true })\n @property({ attribute: false })\n public state!: StateController<T>;\n\n /**\n * The parent row component holding this cell.\n */\n public row!: ApexGridRow<T>;\n\n @query('input, [data-apex-editor]')\n protected editorElement!: HTMLElement | null;\n\n protected get context(): ApexCellContext<T> {\n const ctx = {\n parent: this,\n row: this.row,\n column: this.column,\n value: this.value,\n } as unknown as {\n parent: ApexGridCell<T>;\n row: ApexGridRow<T>;\n column: ColumnConfiguration<T>;\n value: PropertyType<T>;\n commit?: (value: unknown) => Promise<boolean>;\n };\n // Only expose `commit` when the column is editable — non-editable\n // interactive widgets should render as read-only.\n if (this.isEditable) {\n ctx.commit = (next: unknown) =>\n this.editingController.commitImmediate(this.row.index, this.column.key, next);\n }\n return ctx as unknown as ApexCellContext<T>;\n }\n\n protected get editingController() {\n return this.state.editing;\n }\n\n protected get isEditing(): boolean {\n return this.editing;\n }\n\n protected get isEditable(): boolean {\n if (!this.editingController) return false;\n return this.editingController.isEditable(this.column);\n }\n\n /**\n * 1-based column index used to populate `aria-colindex`. Accounts for the\n * auto-rendered selection + expansion columns ahead of the data columns.\n */\n @property({ attribute: false, type: Number })\n public colindex = 0;\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', 'gridcell');\n this.addEventListener('click', this.#handleClick);\n this.addEventListener('dblclick', this.#handleDoubleClick);\n this.addEventListener('keydown', this.#handleCellKeydown);\n this.addEventListener('focusout', this.#handleCellFocusOut);\n }\n\n public override disconnectedCallback(): void {\n this.removeEventListener('click', this.#handleClick);\n this.removeEventListener('dblclick', this.#handleDoubleClick);\n this.removeEventListener('keydown', this.#handleCellKeydown);\n this.removeEventListener('focusout', this.#handleCellFocusOut);\n super.disconnectedCallback();\n }\n\n protected override willUpdate() {\n if (this.colindex > 0) {\n this.setAttribute('aria-colindex', String(this.colindex));\n } else {\n this.removeAttribute('aria-colindex');\n }\n if (this.active) {\n this.setAttribute('aria-current', 'true');\n } else {\n this.removeAttribute('aria-current');\n }\n // Reflect tree-expanded state on the group cell so the SCSS chevron\n // rotation triggers from this attribute (cheaper than per-render style\n // mutations and keeps the SVG transform purely declarative).\n const tree = this.state?.tree;\n const isGroup = tree?.enabled && this.row?.data && tree.isGroupColumn(this.column.key);\n if (isGroup && tree.isExpanded(this.row.data)) {\n this.setAttribute('data-tree-expanded', '');\n } else {\n this.removeAttribute('data-tree-expanded');\n }\n }\n\n protected override updated() {\n if (this.isEditing) {\n const editor = this.editorElement;\n editor?.focus();\n if (editor instanceof HTMLInputElement) {\n if (editor.type === 'text' || editor.type === 'number') {\n editor.select();\n }\n }\n }\n }\n\n #handleClick = (event: MouseEvent) => {\n if (this.isEditing) {\n // Don't let clicks inside the editor bubble into navigation / outside-click commits.\n event.stopPropagation();\n return;\n }\n if (!this.isEditable) return;\n // Boolean cells handle interaction in their display widget — clicking the\n // checkbox commits inline via `ctx.commit`. We never enter edit mode for\n // booleans, which avoids the visual reflow between display/editor markup\n // and lets a single click toggle the value.\n if (this.column.type === 'boolean') return;\n if (this.editingController.trigger !== 'click') return;\n this.#startEdit();\n };\n\n #handleDoubleClick = (event: MouseEvent) => {\n if (this.isEditing) {\n event.stopPropagation();\n return;\n }\n if (!this.isEditable) return;\n if (this.column.type === 'boolean') return;\n if (this.editingController.trigger !== 'doubleClick') return;\n this.#startEdit();\n };\n\n #startEdit() {\n if (!this.row) return;\n this.editingController.editCell(this.row.index, this.column.key);\n }\n\n #pendingValue: unknown;\n\n #commitWith = async (value?: unknown): Promise<boolean> => {\n return this.editingController.commitCell(value ?? this.#pendingValue);\n };\n\n #cancel = () => {\n this.editingController.cancelCell();\n };\n\n #handleKeydown = (event: KeyboardEvent) => {\n event.stopPropagation();\n switch (event.key) {\n case 'Enter':\n event.preventDefault();\n this.#commitWith();\n return;\n case 'Escape':\n event.preventDefault();\n this.#cancel();\n return;\n case 'Tab':\n // Commit first; navigation moves to the next/prev cell. Editing of the\n // landed cell stays manual (Enter to re-edit) for predictability.\n event.preventDefault();\n this.#commitWith();\n return;\n default:\n return;\n }\n };\n\n #handleBlur = () => {\n if (!this.isEditing) return;\n if (this.editingController.mode === 'cell') {\n this.#commitWith();\n } else {\n // Row mode — stash the value and exit the cell editor; the row stays open.\n this.editingController.commitCell(this.#pendingValue);\n }\n };\n\n /**\n * Cell-level keydown that catches keys bubbling out of registry-built\n * editors (the default editor stops propagation on its own input).\n *\n * - Escape always cancels the edit.\n * - Tab commits (or closes when there's no draft — `commitCell()` with\n * `undefined` value is treated as \"no change\" by the controller).\n *\n * Per-editor `keydown` handlers that need to consume Enter (e.g. the\n * built-in `<select>` editor) still get the first crack — they call\n * `event.stopPropagation()` and we never see those keys here.\n */\n #handleCellKeydown = (event: KeyboardEvent) => {\n if (!this.isEditing) return;\n if (event.key === 'Escape') {\n event.preventDefault();\n this.#cancel();\n return;\n }\n if (event.key === 'Tab') {\n event.preventDefault();\n this.#commitWith();\n }\n };\n\n /**\n * Cell-level focus-out: commits the active edit when focus truly leaves\n * the cell (clicking another cell, tabbing past the editor, blurring to\n * the document body). The default editor's input also has `@blur` which\n * commits first; by that time `isEditing` is false and this is a no-op.\n *\n * For built-in registry editors `commitCell()` with no explicit value\n * resolves to the current data value — same shape as \"no change\", so\n * losing focus without picking discards the open editor without writing\n * spurious data.\n */\n #handleCellFocusOut = (event: FocusEvent) => {\n if (!this.isEditing) return;\n const next = event.relatedTarget as Node | null;\n if (next && (this.contains(next) || this.shadowRoot?.contains(next))) return;\n if (this.editingController.mode === 'cell') {\n this.#commitWith();\n } else {\n this.editingController.commitCell(this.#pendingValue);\n }\n };\n\n #handleTextInput = (event: Event) => {\n const target = event.target as HTMLInputElement;\n this.#pendingValue = this.column.type === 'number' ? target.valueAsNumber : target.value;\n };\n\n #handleCheckboxChange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n this.#pendingValue = target.checked;\n // Booleans commit immediately — toggling is the whole interaction.\n this.#commitWith(target.checked);\n };\n\n protected renderDefaultEditor() {\n const value = this.value as unknown;\n if (this.column.type === 'boolean') {\n this.#pendingValue = Boolean(value);\n return html`<input\n type=\"checkbox\"\n part=\"editor\"\n data-apex-editor\n ?checked=${Boolean(value)}\n @change=${this.#handleCheckboxChange}\n @keydown=${this.#handleKeydown}\n @blur=${this.#handleBlur}\n />`;\n }\n if (this.column.type === 'number') {\n this.#pendingValue = value;\n return html`<input\n type=\"number\"\n part=\"editor\"\n data-apex-editor\n .value=${value == null ? '' : String(value)}\n @input=${this.#handleTextInput}\n @keydown=${this.#handleKeydown}\n @blur=${this.#handleBlur}\n />`;\n }\n this.#pendingValue = value;\n return html`<input\n type=\"text\"\n part=\"editor\"\n data-apex-editor\n .value=${value == null ? '' : String(value)}\n @input=${this.#handleTextInput}\n @keydown=${this.#handleKeydown}\n @blur=${this.#handleBlur}\n />`;\n }\n\n protected renderEditor() {\n const template = this.column.editorTemplate;\n const ctx = {\n parent: this,\n row: this.row,\n column: this.column,\n value: this.value,\n commit: (next: unknown) => this.editingController.commitCell(next),\n cancel: () => this.editingController.cancelCell(),\n };\n if (template) {\n // For custom editors we don't know the draft shape; reset pending so\n // cell-level commit doesn't write a stale value from a previous edit.\n this.#pendingValue = this.value;\n return template(ctx as unknown as ApexEditorContext<T> as never);\n }\n const typeRenderer = getColumnTypeRenderer<T>(this.column.type);\n if (typeRenderer?.editor) {\n this.#pendingValue = this.value;\n return typeRenderer.editor(ctx as never);\n }\n return this.renderDefaultEditor();\n }\n\n /**\n * Renders the tree affordance — depth-based indent + a chevron toggle (or\n * leaf spacer) — that prefixes the group cell when {@link ApexGrid.tree}\n * is enabled. Returns `nothing` for every other cell.\n */\n protected renderTreeAffordance() {\n const tree = this.state?.tree;\n if (!tree?.enabled) return null;\n if (!this.row?.data) return null;\n if (!tree.isGroupColumn(this.column.key)) return null;\n\n const data = this.row.data;\n const meta = tree.getMeta(data);\n if (!meta) return null;\n\n const indent = meta.depth * tree.childIndent;\n const expanded = tree.isExpanded(data);\n const handleClick = (event: MouseEvent) => {\n event.stopPropagation();\n if (!meta.hasChildren) return;\n void tree.toggleRow(data);\n };\n\n const chevron = meta.hasChildren\n ? html`<button\n type=\"button\"\n part=\"tree-toggle\"\n aria-label=${expanded ? 'Collapse row' : 'Expand row'}\n aria-expanded=${expanded ? 'true' : 'false'}\n @click=${handleClick}\n >\n <svg\n part=\"tree-chevron\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n width=\"14\"\n height=\"14\"\n >\n <path\n d=\"M9 6l6 6-6 6\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </button>`\n : html`<span part=\"tree-spacer\" aria-hidden=\"true\"></span>`;\n\n return html`<span\n part=\"tree-indent\"\n aria-hidden=\"true\"\n style=${`inline-size: ${indent}px`}\n ></span>${chevron}`;\n }\n\n /**\n * Resolves the value to display for the cell. Synthesized tree parents\n * (those that appear only as a path segment with no backing data) render\n * their last path segment in the group column and nothing elsewhere.\n */\n protected resolveDisplayValue(): unknown {\n const tree = this.state?.tree;\n if (tree?.enabled && this.row?.data && tree.isSynthesized(this.row.data)) {\n return tree.isGroupColumn(this.column.key) ? tree.getLabel(this.row.data) : '';\n }\n return this.value;\n }\n\n protected renderCellBody() {\n if (this.column.cellTemplate) {\n return this.column.cellTemplate(this.context as ApexCellContext<T> as never);\n }\n const typeRenderer = getColumnTypeRenderer<T>(this.column.type);\n if (typeRenderer?.display) {\n // Synthesized parents have no real backing data — route them through\n // a plain text render instead of the typed renderer.\n const tree = this.state?.tree;\n if (tree?.enabled && this.row?.data && tree.isSynthesized(this.row.data)) {\n return html`${this.resolveDisplayValue()}`;\n }\n return typeRenderer.display(this.context as never);\n }\n return html`${this.resolveDisplayValue()}`;\n }\n\n protected override render() {\n if (this.isEditing) {\n return this.renderEditor();\n }\n const affordance = this.renderTreeAffordance();\n if (affordance) {\n return html`${affordance}<span part=\"tree-cell-content\">${this.renderCellBody()}</span>`;\n }\n return this.renderCellBody();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [ApexGridCell.tagName]: ApexGridCell<object>;\n }\n}\n"]}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { LitElement, nothing } from 'lit';
|
|
2
|
-
import { StateController } from '../controllers/state.js';
|
|
2
|
+
import { type StateController } from '../controllers/state.js';
|
|
3
|
+
import type { ColumnConfiguration } from '../internal/types.js';
|
|
3
4
|
import type { FilterExpressionTree } from '../operations/filter/tree.js';
|
|
4
5
|
import type { FilterExpression, FilterOperation } from '../operations/filter/types.js';
|
|
5
|
-
import type { ColumnConfiguration } from '../internal/types.js';
|
|
6
|
-
import { IgcInputComponent, IgcDropdownComponent, IgcIconComponent } from 'igniteui-webcomponents';
|
|
7
6
|
type ExpressionChipProps<T> = {
|
|
8
7
|
expression: FilterExpression<T>;
|
|
9
8
|
selected: boolean;
|
|
10
|
-
onRemove:
|
|
11
|
-
onSelect:
|
|
9
|
+
onRemove: (e: Event) => Promise<void>;
|
|
10
|
+
onSelect: (e: Event) => Promise<void>;
|
|
12
11
|
};
|
|
13
12
|
export default class ApexFilterRow<T extends object> extends LitElement {
|
|
14
13
|
#private;
|
|
15
|
-
static get
|
|
14
|
+
static get tagName(): "apex-filter-row";
|
|
16
15
|
static styles: import("lit").CSSResult;
|
|
17
16
|
static register(): void;
|
|
18
17
|
state: StateController<T>;
|
|
@@ -20,11 +19,14 @@ export default class ApexFilterRow<T extends object> extends LitElement {
|
|
|
20
19
|
protected get filterController(): import("../controllers/filter.js").FilterController<T>;
|
|
21
20
|
protected get condition(): FilterOperation<T>;
|
|
22
21
|
active: boolean;
|
|
23
|
-
input:
|
|
24
|
-
conditionElement:
|
|
25
|
-
dropdown:
|
|
22
|
+
input: HTMLInputElement;
|
|
23
|
+
conditionElement: HTMLElement;
|
|
24
|
+
dropdown: HTMLElement;
|
|
25
|
+
protected dropdownOpen: boolean;
|
|
26
26
|
column: ColumnConfiguration<T>;
|
|
27
27
|
expression: FilterExpression<T>;
|
|
28
|
+
connectedCallback(): void;
|
|
29
|
+
disconnectedCallback(): void;
|
|
28
30
|
protected activeChanged(): void;
|
|
29
31
|
protected renderCriteriaButton(expr: FilterExpression<T>, index: number): typeof nothing | import("lit-html").TemplateResult<1>;
|
|
30
32
|
protected renderExpressionChip(props: ExpressionChipProps<T>): import("lit-html").TemplateResult<1>;
|
|
@@ -36,13 +38,12 @@ export default class ApexFilterRow<T extends object> extends LitElement {
|
|
|
36
38
|
protected renderActiveState(): import("lit-html").TemplateResult<1>;
|
|
37
39
|
protected renderInactiveChips(column: ColumnConfiguration<T>, state: FilterExpressionTree<T>): import("lit-html").TemplateResult<1>[];
|
|
38
40
|
protected renderFilterState(column: ColumnConfiguration<T>): import("lit-html").TemplateResult<1> | import("lit-html").TemplateResult<1>[];
|
|
39
|
-
protected renderInactiveState():
|
|
41
|
+
protected renderInactiveState(): import("lit-html").TemplateResult<1>;
|
|
40
42
|
protected render(): import("lit-html").TemplateResult<1>;
|
|
41
43
|
}
|
|
42
44
|
declare global {
|
|
43
45
|
interface HTMLElementTagNameMap {
|
|
44
|
-
[ApexFilterRow.
|
|
46
|
+
[ApexFilterRow.tagName]: ApexFilterRow<object>;
|
|
45
47
|
}
|
|
46
48
|
}
|
|
47
49
|
export {};
|
|
48
|
-
//# sourceMappingURL=filter-row.d.ts.map
|