apex-grid 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{dist/src/components → components}/cell.d.ts +2 -3
- package/{dist/src/components → components}/cell.js +4 -11
- package/components/cell.js.map +1 -0
- package/{dist/src/components → components}/filter-row.d.ts +8 -9
- package/{dist/src/components → components}/filter-row.js +112 -114
- package/components/filter-row.js.map +1 -0
- package/{dist/src/components → components}/grid.d.ts +9 -9
- package/{dist/src/components → components}/grid.js +72 -148
- package/components/grid.js.map +1 -0
- package/{dist/src/components → components}/header-row.d.ts +5 -6
- package/{dist/src/components → components}/header-row.js +20 -25
- package/components/header-row.js.map +1 -0
- package/{dist/src/components → components}/header.d.ts +5 -6
- package/components/header.js +137 -0
- package/components/header.js.map +1 -0
- package/{dist/src/components → components}/row.d.ts +2 -3
- package/{dist/src/components → components}/row.js +7 -10
- package/components/row.js.map +1 -0
- package/{dist/src/components → components}/virtualizer.d.ts +2 -3
- package/{dist/src/components → components}/virtualizer.js +2 -2
- package/components/virtualizer.js.map +1 -0
- package/{dist/src/controllers → controllers}/data-operation.d.ts +5 -6
- package/{dist/src/controllers → controllers}/data-operation.js +10 -11
- package/controllers/data-operation.js.map +1 -0
- package/{dist/src/controllers → controllers}/dom.d.ts +5 -6
- package/controllers/dom.js +54 -0
- package/controllers/dom.js.map +1 -0
- package/{dist/src/controllers → controllers}/filter.d.ts +5 -6
- package/controllers/filter.js +105 -0
- package/controllers/filter.js.map +1 -0
- package/{dist/src/controllers → controllers}/navigation.d.ts +3 -4
- package/{dist/src/controllers → controllers}/navigation.js +9 -14
- package/controllers/navigation.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/{dist/src/controllers → controllers}/sort.d.ts +1 -2
- package/controllers/sort.js +94 -0
- package/controllers/sort.js.map +1 -0
- package/{dist/src/controllers → controllers}/state.d.ts +5 -6
- package/{dist/src/controllers → controllers}/state.js +4 -7
- package/controllers/state.js.map +1 -0
- package/custom-elements.json +1229 -980
- 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/{dist/docs → docs}/assets/highlight.css +28 -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 +74 -0
- package/docs/hierarchy.html +1 -0
- package/docs/index.html +10 -0
- package/docs/interfaces/ApexFilteredEvent.html +6 -0
- package/docs/interfaces/ApexFilteringEvent.html +12 -0
- package/docs/interfaces/ApexGridEventMap.html +17 -0
- package/docs/interfaces/ApexHeaderContext.html +6 -0
- package/docs/interfaces/BaseApexCellContext.html +10 -0
- package/docs/interfaces/BaseColumnConfiguration.html +28 -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/ColumnFilterConfiguration.html +4 -0
- package/docs/interfaces/DataPipelineConfiguration.html +6 -0
- package/docs/interfaces/GridSortConfiguration.html +6 -0
- package/docs/modules.html +1 -0
- package/docs/types/ApexCellContext.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/ColumnSortConfiguration.html +2 -0
- package/docs/types/DataPipelineHook.html +2 -0
- package/docs/types/DataPipelineParams.html +8 -0
- package/docs/types/DataType.html +2 -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/PropertyType.html +2 -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/{dist/src/index.d.ts → index.d.ts} +4 -5
- package/index.js.map +1 -0
- package/{dist/src/internal → internal}/constants.d.ts +2 -3
- package/internal/constants.js.map +1 -0
- package/{dist/src/internal → internal}/icon-registry.d.ts +0 -1
- package/internal/icon-registry.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 +0 -1
- 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/{dist/src/internal → internal}/types.d.ts +3 -4
- package/internal/types.js.map +1 -0
- package/{dist/src/internal → internal}/utils.d.ts +1 -2
- package/{dist/src/internal → internal}/utils.js +3 -6
- 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/{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 +4 -5
- 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/{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 +23 -82
- 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/dist/bundle.js +0 -2191
- package/dist/docs/assets/main.js +0 -58
- package/dist/docs/assets/search.js +0 -1
- package/dist/docs/assets/style.css +0 -1280
- package/dist/docs/classes/ApexGrid.html +0 -301
- package/dist/docs/index.html +0 -88
- package/dist/docs/interfaces/ApexFilteredEvent.html +0 -78
- package/dist/docs/interfaces/ApexFilteringEvent.html +0 -90
- package/dist/docs/interfaces/ApexGridEventMap.html +0 -101
- package/dist/docs/interfaces/ApexHeaderContext.html +0 -78
- package/dist/docs/interfaces/BaseApexCellContext.html +0 -94
- package/dist/docs/interfaces/BaseColumnConfiguration.html +0 -170
- package/dist/docs/interfaces/BaseColumnSortConfiguration.html +0 -80
- package/dist/docs/interfaces/BaseFilterExpression.html +0 -106
- package/dist/docs/interfaces/BaseSortExpression.html +0 -98
- package/dist/docs/interfaces/ColumnFilterConfiguration.html +0 -66
- package/dist/docs/interfaces/DataPipelineConfiguration.html +0 -78
- package/dist/docs/interfaces/GridSortConfiguration.html +0 -73
- package/dist/docs/modules.html +0 -107
- package/dist/docs/types/ApexCellContext.html +0 -79
- package/dist/docs/types/BasePropertyType.html +0 -79
- package/dist/docs/types/BaseSortComparer.html +0 -94
- package/dist/docs/types/ColumnConfiguration.html +0 -79
- package/dist/docs/types/ColumnSortConfiguration.html +0 -79
- package/dist/docs/types/DataPipelineHook.html +0 -90
- package/dist/docs/types/DataPipelineParams.html +0 -92
- package/dist/docs/types/DataType.html +0 -72
- package/dist/docs/types/FilterCriteria.html +0 -76
- package/dist/docs/types/FilterExpression.html +0 -79
- package/dist/docs/types/Keys.html +0 -77
- package/dist/docs/types/PropertyType.html +0 -79
- package/dist/docs/types/SortComparer.html +0 -79
- package/dist/docs/types/SortExpression.html +0 -79
- package/dist/docs/types/SortState.html +0 -77
- package/dist/docs/types/SortingDirection.html +0 -74
- package/dist/src/components/cell.d.ts.map +0 -1
- 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.map +0 -1
- package/dist/src/components/grid.d.ts.map +0 -1
- package/dist/src/components/grid.js.map +0 -1
- package/dist/src/components/header-row.d.ts.map +0 -1
- 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 -143
- package/dist/src/components/header.js.map +0 -1
- package/dist/src/components/row.d.ts.map +0 -1
- 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.map +0 -1
- package/dist/src/controllers/data-operation.js.map +0 -1
- 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.map +0 -1
- 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.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.map +0 -1
- 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.map +0 -1
- package/dist/src/internal/types.js.map +0 -1
- package/dist/src/internal/utils.d.ts.map +0 -1
- 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/index.js → index.js} +0 -0
- /package/{dist/src/internal → internal}/constants.js +0 -0
- /package/{dist/src/internal → internal}/icon-registry.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}/tags.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,137 @@
|
|
|
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 { IgcIconComponent } from 'igniteui-webcomponents';
|
|
9
|
+
import { html, LitElement, nothing } from 'lit';
|
|
10
|
+
import { property } from 'lit/decorators.js';
|
|
11
|
+
import { gridStateContext } from '../controllers/state.js';
|
|
12
|
+
import { MIN_COL_RESIZE_WIDTH, SORT_ICON_ASCENDING, SORT_ICON_DESCENDING, } from '../internal/constants.js';
|
|
13
|
+
import { partNameMap } from '../internal/part-map.js';
|
|
14
|
+
import { registerComponent } from '../internal/register.js';
|
|
15
|
+
import { GRID_HEADER_TAG } from '../internal/tags.js';
|
|
16
|
+
import { styles } from '../styles/header-cell/header-cell.css.js';
|
|
17
|
+
export default class ApexGridHeader extends LitElement {
|
|
18
|
+
static get tagName() {
|
|
19
|
+
return GRID_HEADER_TAG;
|
|
20
|
+
}
|
|
21
|
+
static { this.styles = styles; }
|
|
22
|
+
static register() {
|
|
23
|
+
registerComponent(ApexGridHeader, IgcIconComponent);
|
|
24
|
+
}
|
|
25
|
+
get context() {
|
|
26
|
+
return {
|
|
27
|
+
parent: this,
|
|
28
|
+
column: this.column,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
get isSortable() {
|
|
32
|
+
return Boolean(this.column.sort);
|
|
33
|
+
}
|
|
34
|
+
get resizeController() {
|
|
35
|
+
return this.state.resizing;
|
|
36
|
+
}
|
|
37
|
+
#addResizeEventHandlers() {
|
|
38
|
+
const config = { once: true };
|
|
39
|
+
this.addEventListener('gotpointercapture', () => {
|
|
40
|
+
this.resizeController.indicatorActive = true;
|
|
41
|
+
}, config);
|
|
42
|
+
this.addEventListener('lostpointercapture', this.#handlePointerLost, config);
|
|
43
|
+
this.addEventListener('pointerup', (e) => this.releasePointerCapture(e.pointerId), config);
|
|
44
|
+
this.addEventListener('pointermove', this.#handleResize);
|
|
45
|
+
}
|
|
46
|
+
#handleClick(e) {
|
|
47
|
+
e.stopPropagation();
|
|
48
|
+
this.state.sorting.sortFromHeaderClick(this.column);
|
|
49
|
+
}
|
|
50
|
+
#handleResize = ({ clientX }) => {
|
|
51
|
+
const { left } = this.getBoundingClientRect();
|
|
52
|
+
const width = Math.max(clientX - left, MIN_COL_RESIZE_WIDTH);
|
|
53
|
+
const x = this.offsetLeft + width;
|
|
54
|
+
this.resizeController.resize(this.column, width, x);
|
|
55
|
+
};
|
|
56
|
+
#handleResizeStart(ev) {
|
|
57
|
+
const { target, pointerId } = ev;
|
|
58
|
+
ev.preventDefault();
|
|
59
|
+
this.#addResizeEventHandlers();
|
|
60
|
+
this.resizeController.start(this);
|
|
61
|
+
target.setPointerCapture(pointerId);
|
|
62
|
+
}
|
|
63
|
+
#handlePointerLost = () => {
|
|
64
|
+
this.resizeController.indicatorActive = false;
|
|
65
|
+
this.removeEventListener('pointermove', this.#handleResize);
|
|
66
|
+
this.resizeController.stop();
|
|
67
|
+
};
|
|
68
|
+
#handleAutosize = () => this.resizeController.autosize(this.column, this);
|
|
69
|
+
renderSortPart() {
|
|
70
|
+
const state = this.state.sorting.state.get(this.column.key);
|
|
71
|
+
const idx = Array.from(this.state.sorting.state.values()).indexOf(state);
|
|
72
|
+
const attr = this.state.host.sortConfiguration.multiple
|
|
73
|
+
? idx > -1
|
|
74
|
+
? idx + 1
|
|
75
|
+
: nothing
|
|
76
|
+
: nothing;
|
|
77
|
+
const icon = state
|
|
78
|
+
? state.direction === 'ascending'
|
|
79
|
+
? SORT_ICON_ASCENDING
|
|
80
|
+
: SORT_ICON_DESCENDING
|
|
81
|
+
: SORT_ICON_ASCENDING;
|
|
82
|
+
return state || this.isSortable
|
|
83
|
+
? html `<span
|
|
84
|
+
part=${partNameMap({ action: true, sorted: !!state?.direction })}
|
|
85
|
+
@click=${this.isSortable ? this.#handleClick : nothing}
|
|
86
|
+
>
|
|
87
|
+
<igc-icon
|
|
88
|
+
part=${partNameMap({ 'sorting-action': !!state })}
|
|
89
|
+
data-sortIndex=${attr}
|
|
90
|
+
name=${icon}
|
|
91
|
+
collection="internal"
|
|
92
|
+
></igc-icon>
|
|
93
|
+
</span>`
|
|
94
|
+
: nothing;
|
|
95
|
+
}
|
|
96
|
+
renderContentPart() {
|
|
97
|
+
const defaultContent = this.column.headerText ?? this.column.key;
|
|
98
|
+
const template = this.column.headerTemplate;
|
|
99
|
+
return html `
|
|
100
|
+
<span part="title">
|
|
101
|
+
<span>${template ? template(this.context) : html `${defaultContent}`}</span>
|
|
102
|
+
</span>
|
|
103
|
+
`;
|
|
104
|
+
}
|
|
105
|
+
renderResizePart() {
|
|
106
|
+
return this.column.resizable
|
|
107
|
+
? html `<span
|
|
108
|
+
part="resizable"
|
|
109
|
+
@dblclick=${this.#handleAutosize}
|
|
110
|
+
@pointerdown=${this.#handleResizeStart}
|
|
111
|
+
></span>`
|
|
112
|
+
: nothing;
|
|
113
|
+
}
|
|
114
|
+
render() {
|
|
115
|
+
return html `
|
|
116
|
+
<div
|
|
117
|
+
part=${partNameMap({
|
|
118
|
+
content: true,
|
|
119
|
+
sortable: this.isSortable,
|
|
120
|
+
resizing: this.resizeController.indicatorActive,
|
|
121
|
+
})}
|
|
122
|
+
>
|
|
123
|
+
${this.renderContentPart()}
|
|
124
|
+
<div part="actions">${this.renderSortPart()}</div>
|
|
125
|
+
</div>
|
|
126
|
+
${this.renderResizePart()}
|
|
127
|
+
`;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
__decorate([
|
|
131
|
+
consume({ context: gridStateContext, subscribe: true }),
|
|
132
|
+
property({ attribute: false })
|
|
133
|
+
], ApexGridHeader.prototype, "state", void 0);
|
|
134
|
+
__decorate([
|
|
135
|
+
property({ attribute: false })
|
|
136
|
+
], ApexGridHeader.prototype, "column", void 0);
|
|
137
|
+
//# sourceMappingURL=header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.js","sourceRoot":"","sources":["../../src/components/header.ts"],"names":[],"mappings":"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","sourcesContent":["import { consume } from '@lit/context';\nimport { IgcIconComponent } from 'igniteui-webcomponents';\nimport { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { gridStateContext, type StateController } from '../controllers/state.js';\nimport {\n MIN_COL_RESIZE_WIDTH,\n SORT_ICON_ASCENDING,\n SORT_ICON_DESCENDING,\n} from '../internal/constants.js';\nimport { partNameMap } from '../internal/part-map.js';\nimport { registerComponent } from '../internal/register.js';\nimport { GRID_HEADER_TAG } from '../internal/tags.js';\nimport type { ApexHeaderContext, ColumnConfiguration } from '../internal/types.js';\nimport { styles } from '../styles/header-cell/header-cell.css.js';\n\nexport default class ApexGridHeader<T extends object> extends LitElement {\n public static get tagName() {\n return GRID_HEADER_TAG;\n }\n\n public static override styles = styles;\n\n public static register(): void {\n registerComponent(ApexGridHeader, IgcIconComponent);\n }\n\n protected get context(): ApexHeaderContext<T> {\n return {\n parent: this,\n column: this.column,\n };\n }\n\n protected get isSortable() {\n return Boolean(this.column.sort);\n }\n\n protected get resizeController() {\n return this.state.resizing;\n }\n\n @consume({ context: gridStateContext, subscribe: true })\n @property({ attribute: false })\n public state!: StateController<T>;\n\n @property({ attribute: false })\n public column!: ColumnConfiguration<T>;\n\n #addResizeEventHandlers() {\n const config: AddEventListenerOptions = { once: true };\n\n this.addEventListener(\n 'gotpointercapture',\n () => {\n this.resizeController.indicatorActive = true;\n },\n config\n );\n this.addEventListener('lostpointercapture', this.#handlePointerLost, config);\n this.addEventListener('pointerup', (e) => this.releasePointerCapture(e.pointerId), config);\n this.addEventListener('pointermove', this.#handleResize);\n }\n\n #handleClick(e: Event) {\n e.stopPropagation();\n this.state.sorting.sortFromHeaderClick(this.column);\n }\n\n #handleResize = ({ clientX }: PointerEvent) => {\n const { left } = this.getBoundingClientRect();\n const width = Math.max(clientX - left, MIN_COL_RESIZE_WIDTH);\n const x = this.offsetLeft + width;\n\n this.resizeController.resize(this.column, width, x);\n };\n\n #handleResizeStart(ev: PointerEvent) {\n const { target, pointerId } = ev;\n\n ev.preventDefault();\n\n this.#addResizeEventHandlers();\n this.resizeController.start(this);\n\n (target as HTMLElement).setPointerCapture(pointerId);\n }\n\n #handlePointerLost = () => {\n this.resizeController.indicatorActive = false;\n this.removeEventListener('pointermove', this.#handleResize);\n this.resizeController.stop();\n };\n\n #handleAutosize = () => this.resizeController.autosize(this.column, this);\n\n protected renderSortPart() {\n const state = this.state.sorting.state.get(this.column.key);\n const idx = Array.from(this.state.sorting.state.values()).indexOf(state!);\n const attr = this.state.host.sortConfiguration.multiple\n ? idx > -1\n ? idx + 1\n : nothing\n : nothing;\n const icon = state\n ? state.direction === 'ascending'\n ? SORT_ICON_ASCENDING\n : SORT_ICON_DESCENDING\n : SORT_ICON_ASCENDING;\n\n return state || this.isSortable\n ? html`<span\n part=${partNameMap({ action: true, sorted: !!state?.direction })}\n @click=${this.isSortable ? this.#handleClick : nothing}\n >\n <igc-icon\n part=${partNameMap({ 'sorting-action': !!state })}\n data-sortIndex=${attr}\n name=${icon}\n collection=\"internal\"\n ></igc-icon>\n </span>`\n : nothing;\n }\n\n protected renderContentPart() {\n const defaultContent = this.column.headerText ?? this.column.key;\n const template = this.column.headerTemplate;\n\n return html`\n <span part=\"title\">\n <span>${template ? template(this.context) : html`${defaultContent}`}</span>\n </span>\n `;\n }\n\n protected renderResizePart() {\n return this.column.resizable\n ? html`<span\n part=\"resizable\"\n @dblclick=${this.#handleAutosize}\n @pointerdown=${this.#handleResizeStart}\n ></span>`\n : nothing;\n }\n\n protected override render() {\n return html`\n <div\n part=${partNameMap({\n content: true,\n sortable: this.isSortable,\n resizing: this.resizeController.indicatorActive,\n })}\n >\n ${this.renderContentPart()}\n <div part=\"actions\">${this.renderSortPart()}</div>\n </div>\n ${this.renderResizePart()}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [ApexGridHeader.tagName]: ApexGridHeader<object>;\n }\n}\n"]}
|
|
@@ -5,7 +5,7 @@ import ApexGridCell from './cell.js';
|
|
|
5
5
|
* Component representing the DOM row in the Apex grid.
|
|
6
6
|
*/
|
|
7
7
|
export default class ApexGridRow<T extends object> extends LitElement {
|
|
8
|
-
static get
|
|
8
|
+
static get tagName(): "apex-grid-row";
|
|
9
9
|
static styles: import("lit").CSSResult;
|
|
10
10
|
static register(): void;
|
|
11
11
|
protected _cells: NodeListOf<ApexGridCell<T>>;
|
|
@@ -19,7 +19,6 @@ export default class ApexGridRow<T extends object> extends LitElement {
|
|
|
19
19
|
}
|
|
20
20
|
declare global {
|
|
21
21
|
interface HTMLElementTagNameMap {
|
|
22
|
-
[ApexGridRow.
|
|
22
|
+
[ApexGridRow.tagName]: ApexGridRow<object>;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
//# sourceMappingURL=row.d.ts.map
|
|
@@ -7,24 +7,22 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { html, LitElement, nothing } from 'lit';
|
|
8
8
|
import { property, queryAll } from 'lit/decorators.js';
|
|
9
9
|
import { map } from 'lit/directives/map.js';
|
|
10
|
-
import { GRID_ROW_TAG } from '../internal/tags.js';
|
|
11
10
|
import { registerComponent } from '../internal/register.js';
|
|
11
|
+
import { GRID_ROW_TAG } from '../internal/tags.js';
|
|
12
|
+
import { styles } from '../styles/body-row/body-row.css.js';
|
|
12
13
|
import ApexGridCell from './cell.js';
|
|
13
|
-
import { styles } from '../styles/body-row/body-row-styles.css.js';
|
|
14
|
-
/**
|
|
15
|
-
* Component representing the DOM row in the Apex grid.
|
|
16
|
-
*/
|
|
17
14
|
export default class ApexGridRow extends LitElement {
|
|
18
15
|
constructor() {
|
|
19
16
|
super(...arguments);
|
|
20
17
|
this.columns = [];
|
|
21
18
|
this.index = -1;
|
|
22
19
|
}
|
|
23
|
-
static get
|
|
20
|
+
static get tagName() {
|
|
24
21
|
return GRID_ROW_TAG;
|
|
25
22
|
}
|
|
23
|
+
static { this.styles = styles; }
|
|
26
24
|
static register() {
|
|
27
|
-
registerComponent(
|
|
25
|
+
registerComponent(ApexGridRow, ApexGridCell);
|
|
28
26
|
}
|
|
29
27
|
get cells() {
|
|
30
28
|
return Array.from(this._cells);
|
|
@@ -36,7 +34,7 @@ export default class ApexGridRow extends LitElement {
|
|
|
36
34
|
render() {
|
|
37
35
|
const { column: key, row: index } = this.activeNode;
|
|
38
36
|
return html `
|
|
39
|
-
${map(this.columns, column => column.hidden
|
|
37
|
+
${map(this.columns, (column) => column.hidden
|
|
40
38
|
? nothing
|
|
41
39
|
: html `<apex-grid-cell
|
|
42
40
|
part="cell"
|
|
@@ -48,9 +46,8 @@ export default class ApexGridRow extends LitElement {
|
|
|
48
46
|
`;
|
|
49
47
|
}
|
|
50
48
|
}
|
|
51
|
-
ApexGridRow.styles = styles;
|
|
52
49
|
__decorate([
|
|
53
|
-
queryAll(ApexGridCell.
|
|
50
|
+
queryAll(ApexGridCell.tagName)
|
|
54
51
|
], ApexGridRow.prototype, "_cells", void 0);
|
|
55
52
|
__decorate([
|
|
56
53
|
property({ attribute: false })
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row.js","sourceRoot":"","sources":["../../src/components/row.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,YAAY,MAAM,WAAW,CAAC;AAKrC,MAAM,CAAC,OAAO,OAAO,WAA8B,SAAQ,UAAU;IAArE;;QAiBS,YAAO,GAAkC,EAAE,CAAC;QAU5C,UAAK,GAAG,CAAC,CAAC,CAAC;IAwBpB,CAAC;IAlDQ,MAAM,KAAK,OAAO;QACvB,OAAO,YAAY,CAAC;IACtB,CAAC;aACsB,WAAM,GAAG,MAAM,AAAT,CAAU;IAEhC,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC/C,CAAC;IAWD,IAAW,KAAK;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAQe,iBAAiB;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEkB,MAAM;QACvB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAEpD,OAAO,IAAI,CAAA;QACP,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAC7B,MAAM,CAAC,MAAM;YACX,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,IAAI,CAAA;;wBAEQ,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK;wBAC1C,MAAM;qBACT,IAAsB;uBACpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;+BACb,CACxB;KACF,CAAC;IACJ,CAAC;;AAvCS;IADT,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC;2CACgB;AAGxC;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;yCACf;AAGT;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;4CACoB;AAO5C;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;+CACG;AAG3B;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CAC3B","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, queryAll } from 'lit/decorators.js';\nimport { map } from 'lit/directives/map.js';\nimport { registerComponent } from '../internal/register.js';\nimport { GRID_ROW_TAG } from '../internal/tags.js';\nimport type { ActiveNode, ColumnConfiguration } from '../internal/types.js';\nimport { styles } from '../styles/body-row/body-row.css.js';\nimport ApexGridCell from './cell.js';\n\n/**\n * Component representing the DOM row in the Apex grid.\n */\nexport default class ApexGridRow<T extends object> extends LitElement {\n public static get tagName() {\n return GRID_ROW_TAG;\n }\n public static override styles = styles;\n\n public static register(): void {\n registerComponent(ApexGridRow, ApexGridCell);\n }\n\n @queryAll(ApexGridCell.tagName)\n protected _cells!: NodeListOf<ApexGridCell<T>>;\n\n @property({ attribute: false })\n public data!: T;\n\n @property({ attribute: false })\n public columns: Array<ColumnConfiguration<T>> = [];\n\n public get cells() {\n return Array.from(this._cells);\n }\n\n @property({ attribute: false })\n public activeNode!: ActiveNode<T>;\n\n @property({ attribute: false, type: Number })\n public index = -1;\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('exportparts', 'cell');\n }\n\n protected override render() {\n const { column: key, row: index } = this.activeNode;\n\n return html`\n ${map(this.columns, (column) =>\n column.hidden\n ? nothing\n : html`<apex-grid-cell\n part=\"cell\"\n .active=${key === column.key && index === this.index}\n .column=${column}\n .row=${this as ApexGridRow<T>}\n .value=${this.data[column.key]}\n ></apex-grid-cell>`\n )}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [ApexGridRow.tagName]: ApexGridRow<object>;\n }\n}\n"]}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { LitVirtualizer } from '@lit-labs/virtualizer/LitVirtualizer.js';
|
|
2
2
|
export default class ApexVirtualizer extends LitVirtualizer {
|
|
3
|
-
static get
|
|
3
|
+
static get tagName(): "apex-virtualizer";
|
|
4
4
|
static register(): void;
|
|
5
5
|
scroller: boolean;
|
|
6
6
|
connectedCallback(): Promise<void>;
|
|
7
7
|
}
|
|
8
8
|
declare global {
|
|
9
9
|
interface HTMLElementTagNameMap {
|
|
10
|
-
[ApexVirtualizer.
|
|
10
|
+
[ApexVirtualizer.tagName]: ApexVirtualizer;
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=virtualizer.d.ts.map
|
|
@@ -6,11 +6,11 @@ export default class ApexVirtualizer extends LitVirtualizer {
|
|
|
6
6
|
super(...arguments);
|
|
7
7
|
this.scroller = true;
|
|
8
8
|
}
|
|
9
|
-
static get
|
|
9
|
+
static get tagName() {
|
|
10
10
|
return GRID_BODY;
|
|
11
11
|
}
|
|
12
12
|
static register() {
|
|
13
|
-
registerComponent(
|
|
13
|
+
registerComponent(ApexVirtualizer);
|
|
14
14
|
}
|
|
15
15
|
async connectedCallback() {
|
|
16
16
|
await super.layoutComplete;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtualizer.js","sourceRoot":"","sources":["../../src/components/virtualizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,cAAc;IAA3D;;QASkB,aAAQ,GAAG,IAAI,CAAC;IAQlC,CAAC;IAhBQ,MAAM,KAAK,OAAO;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC;IAIe,KAAK,CAAC,iBAAiB;QACrC,MAAM,KAAK,CAAC,cAAc,CAAC;QAE3B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;CACF","sourcesContent":["import { LitVirtualizer } from '@lit-labs/virtualizer/LitVirtualizer.js';\nimport { registerComponent } from '../internal/register.js';\nimport { GRID_BODY } from '../internal/tags.js';\n\nexport default class ApexVirtualizer extends LitVirtualizer {\n public static get tagName() {\n return GRID_BODY;\n }\n\n public static register(): void {\n registerComponent(ApexVirtualizer);\n }\n\n public override scroller = true;\n\n public override async connectedCallback() {\n await super.layoutComplete;\n\n super.connectedCallback();\n this.setAttribute('tabindex', '0');\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [ApexVirtualizer.tagName]: ApexVirtualizer;\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ReactiveController } from 'lit';
|
|
2
|
-
import SortDataOperation from '../operations/sort.js';
|
|
3
|
-
import FilterDataOperation from '../operations/filter.js';
|
|
1
|
+
import type { ReactiveController } from 'lit';
|
|
4
2
|
import type { GridHost } from '../internal/types.js';
|
|
3
|
+
import FilterDataOperation from '../operations/filter.js';
|
|
4
|
+
import SortDataOperation from '../operations/sort.js';
|
|
5
5
|
import type { StateController } from './state.js';
|
|
6
6
|
export declare class DataOperationsController<T extends object> implements ReactiveController {
|
|
7
7
|
protected host: GridHost<T>;
|
|
@@ -11,8 +11,7 @@ export declare class DataOperationsController<T extends object> implements React
|
|
|
11
11
|
hostConnected(): void;
|
|
12
12
|
protected get hasCustomSort(): boolean;
|
|
13
13
|
protected get hasCustomFilter(): boolean;
|
|
14
|
-
protected get customFilter(): import("../
|
|
15
|
-
protected get customSort(): import("../
|
|
14
|
+
protected get customFilter(): import("../index.js").DataPipelineHook<T>;
|
|
15
|
+
protected get customSort(): import("../index.js").DataPipelineHook<T>;
|
|
16
16
|
apply(data: T[], state: StateController<T>): Promise<T[]>;
|
|
17
17
|
}
|
|
18
|
-
//# sourceMappingURL=data-operation.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import SortDataOperation from '../operations/sort.js';
|
|
2
|
-
import FilterDataOperation from '../operations/filter.js';
|
|
3
1
|
import { isDefined } from '../internal/is-defined.js';
|
|
2
|
+
import FilterDataOperation from '../operations/filter.js';
|
|
3
|
+
import SortDataOperation from '../operations/sort.js';
|
|
4
4
|
export class DataOperationsController {
|
|
5
5
|
constructor(host) {
|
|
6
6
|
this.host = host;
|
|
@@ -10,12 +10,10 @@ export class DataOperationsController {
|
|
|
10
10
|
}
|
|
11
11
|
hostConnected() { }
|
|
12
12
|
get hasCustomSort() {
|
|
13
|
-
|
|
14
|
-
return isDefined((_a = this.host.dataPipelineConfiguration) === null || _a === void 0 ? void 0 : _a.sort);
|
|
13
|
+
return isDefined(this.host.dataPipelineConfiguration?.sort);
|
|
15
14
|
}
|
|
16
15
|
get hasCustomFilter() {
|
|
17
|
-
|
|
18
|
-
return isDefined((_a = this.host.dataPipelineConfiguration) === null || _a === void 0 ? void 0 : _a.filter);
|
|
16
|
+
return isDefined(this.host.dataPipelineConfiguration?.filter);
|
|
19
17
|
}
|
|
20
18
|
get customFilter() {
|
|
21
19
|
return this.host.dataPipelineConfiguration.filter;
|
|
@@ -25,13 +23,14 @@ export class DataOperationsController {
|
|
|
25
23
|
}
|
|
26
24
|
async apply(data, state) {
|
|
27
25
|
const { filtering, sorting } = state;
|
|
28
|
-
|
|
26
|
+
let transformed;
|
|
27
|
+
transformed = this.hasCustomFilter
|
|
29
28
|
? await this.customFilter({ data, grid: this.host, type: 'filter' })
|
|
30
29
|
: this.filtering.apply(data, filtering.state);
|
|
31
|
-
|
|
32
|
-
? await this.customSort({ data, grid: this.host, type: 'sort' })
|
|
33
|
-
: this.sorting.apply(
|
|
34
|
-
return
|
|
30
|
+
transformed = this.hasCustomSort
|
|
31
|
+
? await this.customSort({ data: transformed, grid: this.host, type: 'sort' })
|
|
32
|
+
: this.sorting.apply(transformed, sorting.state);
|
|
33
|
+
return transformed;
|
|
35
34
|
}
|
|
36
35
|
}
|
|
37
36
|
//# sourceMappingURL=data-operation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-operation.js","sourceRoot":"","sources":["../../src/controllers/data-operation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,mBAAmB,MAAM,yBAAyB,CAAC;AAC1D,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;AAGtD,MAAM,OAAO,wBAAwB;IAInC,YAAsB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QAH7B,YAAO,GAAG,IAAI,iBAAiB,EAAK,CAAC;QACrC,cAAS,GAAG,IAAI,mBAAmB,EAAK,CAAC;QAGjD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAEM,aAAa,KAAI,CAAC;IAEzB,IAAc,aAAa;QACzB,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,IAAc,eAAe;QAC3B,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,IAAc,YAAY;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,yBAA0B,CAAC,MAAO,CAAC;IACtD,CAAC;IAED,IAAc,UAAU;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,yBAA0B,CAAC,IAAK,CAAC;IACpD,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAS,EAAE,KAAyB;QACrD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QACrC,IAAI,WAAgB,CAAC;QAErB,WAAW,GAAG,IAAI,CAAC,eAAe;YAChC,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACpE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAEhD,WAAW,GAAG,IAAI,CAAC,aAAa;YAC9B,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC7E,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAEnD,OAAO,WAAW,CAAC;IACrB,CAAC;CACF","sourcesContent":["import type { ReactiveController } from 'lit';\nimport { isDefined } from '../internal/is-defined.js';\nimport type { GridHost } from '../internal/types.js';\nimport FilterDataOperation from '../operations/filter.js';\nimport SortDataOperation from '../operations/sort.js';\nimport type { StateController } from './state.js';\n\nexport class DataOperationsController<T extends object> implements ReactiveController {\n protected sorting = new SortDataOperation<T>();\n protected filtering = new FilterDataOperation<T>();\n\n constructor(protected host: GridHost<T>) {\n this.host.addController(this);\n }\n\n public hostConnected() {}\n\n protected get hasCustomSort() {\n return isDefined(this.host.dataPipelineConfiguration?.sort);\n }\n\n protected get hasCustomFilter() {\n return isDefined(this.host.dataPipelineConfiguration?.filter);\n }\n\n protected get customFilter() {\n return this.host.dataPipelineConfiguration!.filter!;\n }\n\n protected get customSort() {\n return this.host.dataPipelineConfiguration!.sort!;\n }\n\n public async apply(data: T[], state: StateController<T>) {\n const { filtering, sorting } = state;\n let transformed: T[];\n\n transformed = this.hasCustomFilter\n ? await this.customFilter({ data, grid: this.host, type: 'filter' })\n : this.filtering.apply(data, filtering.state);\n\n transformed = this.hasCustomSort\n ? await this.customSort({ data: transformed, grid: this.host, type: 'sort' })\n : this.sorting.apply(transformed, sorting.state);\n\n return transformed;\n }\n}\n"]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { StateController } from './state.js';
|
|
1
|
+
import type { RenderItemFunction } from '@lit-labs/virtualizer/virtualize.js';
|
|
2
|
+
import { type ReactiveController } from 'lit';
|
|
3
|
+
import { type StyleInfo } from 'lit/directives/style-map.js';
|
|
5
4
|
import type { GridHost } from '../internal/types.js';
|
|
5
|
+
import type { StateController } from './state.js';
|
|
6
6
|
export declare class GridDOMController<T extends object> implements ReactiveController {
|
|
7
7
|
#private;
|
|
8
8
|
protected host: GridHost<T>;
|
|
9
9
|
protected state: StateController<T>;
|
|
10
10
|
constructor(host: GridHost<T>, state: StateController<T>);
|
|
11
|
-
get container(): import("../components/virtualizer").default;
|
|
11
|
+
get container(): import("../components/virtualizer.js").default;
|
|
12
12
|
columnSizes: StyleInfo;
|
|
13
13
|
rowRenderer: RenderItemFunction<T>;
|
|
14
14
|
hostConnected(): Promise<void>;
|
|
@@ -17,4 +17,3 @@ export declare class GridDOMController<T extends object> implements ReactiveCont
|
|
|
17
17
|
protected setGridColumnSizes(): void;
|
|
18
18
|
getActiveRowStyles(index: number): StyleInfo;
|
|
19
19
|
}
|
|
20
|
-
//# sourceMappingURL=dom.d.ts.map
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
import { styleMap } from 'lit/directives/style-map.js';
|
|
3
|
+
import { registerGridIcons } from '../internal/icon-registry.js';
|
|
4
|
+
import { applyColumnWidths } from '../internal/utils.js';
|
|
5
|
+
export class GridDOMController {
|
|
6
|
+
constructor(host, state) {
|
|
7
|
+
this.host = host;
|
|
8
|
+
this.state = state;
|
|
9
|
+
this.#initialSize = () => {
|
|
10
|
+
setTimeout(() => this.setScrollOffset());
|
|
11
|
+
};
|
|
12
|
+
this.columnSizes = {};
|
|
13
|
+
this.rowRenderer = (data, index) => {
|
|
14
|
+
return html `
|
|
15
|
+
<apex-grid-row
|
|
16
|
+
part="row"
|
|
17
|
+
style=${styleMap({ ...this.columnSizes, ...this.getActiveRowStyles(index) })}
|
|
18
|
+
.index=${index}
|
|
19
|
+
.activeNode=${this.state.active}
|
|
20
|
+
.data=${data}
|
|
21
|
+
.columns=${this.host.columns}
|
|
22
|
+
>
|
|
23
|
+
</apex-grid-row>
|
|
24
|
+
`;
|
|
25
|
+
};
|
|
26
|
+
this.host.addController(this);
|
|
27
|
+
}
|
|
28
|
+
#initialSize;
|
|
29
|
+
get container() {
|
|
30
|
+
return this.host.scrollContainer;
|
|
31
|
+
}
|
|
32
|
+
async hostConnected() {
|
|
33
|
+
registerGridIcons();
|
|
34
|
+
this.setGridColumnSizes();
|
|
35
|
+
await this.host.updateComplete;
|
|
36
|
+
this.container.addEventListener('visibilityChanged', this.#initialSize, { once: true });
|
|
37
|
+
}
|
|
38
|
+
hostUpdate() {
|
|
39
|
+
this.setScrollOffset();
|
|
40
|
+
this.setGridColumnSizes();
|
|
41
|
+
}
|
|
42
|
+
setScrollOffset() {
|
|
43
|
+
const size = this.container ? this.container.offsetWidth - this.container.clientWidth : 0;
|
|
44
|
+
this.host.style.setProperty('--scrollbar-offset', `${size}px`);
|
|
45
|
+
}
|
|
46
|
+
setGridColumnSizes() {
|
|
47
|
+
this.columnSizes = applyColumnWidths(this.host.columns);
|
|
48
|
+
}
|
|
49
|
+
getActiveRowStyles(index) {
|
|
50
|
+
const { row } = this.state.active;
|
|
51
|
+
return row === index ? { 'z-index': '3' } : {};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=dom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/controllers/dom.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAA2B,MAAM,KAAK,CAAC;AACpD,OAAO,EAAkB,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,MAAM,OAAO,iBAAiB;IAC5B,YACY,IAAiB,EACjB,KAAyB;QADzB,SAAI,GAAJ,IAAI,CAAa;QACjB,UAAK,GAAL,KAAK,CAAoB;QAKrC,iBAAY,GAAG,GAAG,EAAE;YAClB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC;QAOK,gBAAW,GAAc,EAAE,CAAC;QAE5B,gBAAW,GAA0B,CAAC,IAAO,EAAE,KAAa,EAAE,EAAE;YACrE,OAAO,IAAI,CAAA;;;gBAGC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;iBACnE,KAAK;sBACA,IAAI,CAAC,KAAK,CAAC,MAAM;gBACvB,IAAI;mBACD,IAAI,CAAC,IAAI,CAAC,OAAO;;;KAG/B,CAAC;QACJ,CAAC,CAAC;QA1BA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAEV;IAEF,IAAW,SAAS;QAElB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;IACnC,CAAC;IAkBM,KAAK,CAAC,aAAa;QACxB,iBAAiB,EAAE,CAAC;QACpB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAG1B,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1F,CAAC;IAEM,UAAU;QACf,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEM,eAAe;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC;IACjE,CAAC;IAES,kBAAkB;QAC1B,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEM,kBAAkB,CAAC,KAAa;QACrC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAClC,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { RenderItemFunction } from '@lit-labs/virtualizer/virtualize.js';\nimport { html, type ReactiveController } from 'lit';\nimport { type StyleInfo, styleMap } from 'lit/directives/style-map.js';\nimport { registerGridIcons } from '../internal/icon-registry.js';\nimport type { GridHost } from '../internal/types.js';\nimport { applyColumnWidths } from '../internal/utils.js';\nimport type { StateController } from './state.js';\n\nexport class GridDOMController<T extends object> implements ReactiveController {\n constructor(\n protected host: GridHost<T>,\n protected state: StateController<T>\n ) {\n this.host.addController(this);\n }\n\n #initialSize = () => {\n setTimeout(() => this.setScrollOffset());\n };\n\n public get container() {\n // @ts-expect-error: protected member access\n return this.host.scrollContainer;\n }\n\n public columnSizes: StyleInfo = {};\n\n public rowRenderer: RenderItemFunction<T> = (data: T, index: number) => {\n return html`\n <apex-grid-row\n part=\"row\"\n style=${styleMap({ ...this.columnSizes, ...this.getActiveRowStyles(index) })}\n .index=${index}\n .activeNode=${this.state.active}\n .data=${data}\n .columns=${this.host.columns}\n >\n </apex-grid-row>\n `;\n };\n\n public async hostConnected() {\n registerGridIcons();\n this.setGridColumnSizes();\n // Wait for the initial paint of the virtualizer and recalculate the scrollbar offset\n // for the next one\n await this.host.updateComplete;\n this.container.addEventListener('visibilityChanged', this.#initialSize, { once: true });\n }\n\n public hostUpdate(): void {\n this.setScrollOffset();\n this.setGridColumnSizes();\n }\n\n public setScrollOffset() {\n const size = this.container ? this.container.offsetWidth - this.container.clientWidth : 0;\n this.host.style.setProperty('--scrollbar-offset', `${size}px`);\n }\n\n protected setGridColumnSizes() {\n this.columnSizes = applyColumnWidths(this.host.columns);\n }\n\n public getActiveRowStyles(index: number): StyleInfo {\n const { row } = this.state.active;\n return row === index ? { 'z-index': '3' } : {};\n }\n}\n"]}
|
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
import { ReactiveController } from 'lit';
|
|
2
|
-
import { FilterState } from '../operations/filter/state.js';
|
|
1
|
+
import type { ReactiveController } from 'lit';
|
|
3
2
|
import type { ColumnConfiguration, GridHost, Keys } from '../internal/types.js';
|
|
3
|
+
import { FilterState } from '../operations/filter/state.js';
|
|
4
4
|
import type { FilterExpression } from '../operations/filter/types.js';
|
|
5
5
|
export declare class FilterController<T extends object> implements ReactiveController {
|
|
6
6
|
#private;
|
|
7
7
|
protected host: GridHost<T>;
|
|
8
8
|
constructor(host: GridHost<T>);
|
|
9
9
|
state: FilterState<T>;
|
|
10
|
-
get filterRow(): import("../components/filter-row").default<T>;
|
|
10
|
+
get filterRow(): import("../components/filter-row.js").default<T>;
|
|
11
11
|
hostConnected(): void;
|
|
12
12
|
hostUpdate(): void;
|
|
13
|
-
get(key: Keys<T>): import("../operations/filter/tree").FilterExpressionTree<T> | undefined;
|
|
13
|
+
get(key: Keys<T>): import("../operations/filter/tree.js").FilterExpressionTree<T> | undefined;
|
|
14
14
|
reset(key?: Keys<T>): void;
|
|
15
15
|
setActiveColumn(column?: ColumnConfiguration<T>): void;
|
|
16
|
-
getDefaultExpression(column: ColumnConfiguration<T>): FilterExpression<T
|
|
16
|
+
getDefaultExpression(column: ColumnConfiguration<T>): FilterExpression<T>;
|
|
17
17
|
removeAllExpressions(key: Keys<T>): Promise<void>;
|
|
18
18
|
removeExpression(expression: FilterExpression<T>): Promise<void>;
|
|
19
19
|
filterWithEvent(expression: FilterExpression<T>, type: 'add' | 'modify' | 'remove'): Promise<void>;
|
|
20
20
|
filter(expression: FilterExpression<T> | FilterExpression<T>[]): void;
|
|
21
21
|
}
|
|
22
|
-
//# sourceMappingURL=filter.d.ts.map
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { PIPELINE } from '../internal/constants.js';
|
|
2
|
+
import { asArray, getFilterOperandsFor } from '../internal/utils.js';
|
|
3
|
+
import { FilterState } from '../operations/filter/state.js';
|
|
4
|
+
export class FilterController {
|
|
5
|
+
constructor(host) {
|
|
6
|
+
this.host = host;
|
|
7
|
+
this.state = new FilterState();
|
|
8
|
+
this.host.addController(this);
|
|
9
|
+
}
|
|
10
|
+
get filterRow() {
|
|
11
|
+
return this.host.filterRow;
|
|
12
|
+
}
|
|
13
|
+
get #virtualizer() {
|
|
14
|
+
return this.host.scrollContainer;
|
|
15
|
+
}
|
|
16
|
+
#emitFilteringEvent(expression, type) {
|
|
17
|
+
return this.host.emitEvent('filtering', {
|
|
18
|
+
detail: {
|
|
19
|
+
key: expression.key,
|
|
20
|
+
expressions: [expression],
|
|
21
|
+
type,
|
|
22
|
+
},
|
|
23
|
+
cancelable: true,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
#emitFilteredEvent(detail) {
|
|
27
|
+
return this.host.emitEvent('filtered', { detail });
|
|
28
|
+
}
|
|
29
|
+
#filter(expression) {
|
|
30
|
+
for (const expr of asArray(expression)) {
|
|
31
|
+
this.state.set(expr);
|
|
32
|
+
}
|
|
33
|
+
this.#virtualizer?.scrollTo({ top: 0 });
|
|
34
|
+
this.host.requestUpdate(PIPELINE);
|
|
35
|
+
}
|
|
36
|
+
hostConnected() { }
|
|
37
|
+
hostUpdate() {
|
|
38
|
+
this.filterRow?.requestUpdate();
|
|
39
|
+
}
|
|
40
|
+
get(key) {
|
|
41
|
+
return this.state.get(key);
|
|
42
|
+
}
|
|
43
|
+
reset(key) {
|
|
44
|
+
key ? this.state.delete(key) : this.state.clear();
|
|
45
|
+
}
|
|
46
|
+
setActiveColumn(column) {
|
|
47
|
+
if (column?.filter && this.filterRow?.active) {
|
|
48
|
+
this.filterRow.column = column;
|
|
49
|
+
this.filterRow.expression = this.getDefaultExpression(column);
|
|
50
|
+
this.host.requestUpdate();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
getDefaultExpression(column) {
|
|
54
|
+
const caseSensitive = typeof column.filter === 'boolean' ? false : Boolean(column.filter?.caseSensitive);
|
|
55
|
+
const operands = getFilterOperandsFor(column);
|
|
56
|
+
const keys = Object.keys(operands);
|
|
57
|
+
return {
|
|
58
|
+
key: column.key,
|
|
59
|
+
condition: operands[keys[0]],
|
|
60
|
+
caseSensitive,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
async removeAllExpressions(key) {
|
|
64
|
+
const state = this.get(key)?.all ?? [];
|
|
65
|
+
if (!this.host.emitEvent('filtering', {
|
|
66
|
+
detail: {
|
|
67
|
+
key,
|
|
68
|
+
expressions: state,
|
|
69
|
+
type: 'remove',
|
|
70
|
+
},
|
|
71
|
+
cancelable: true,
|
|
72
|
+
})) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
this.reset(key);
|
|
76
|
+
this.#filter([]);
|
|
77
|
+
await this.host.updateComplete;
|
|
78
|
+
this.#emitFilteredEvent({ key, state: this.get(key)?.all ?? [] });
|
|
79
|
+
}
|
|
80
|
+
async removeExpression(expression) {
|
|
81
|
+
const state = this.get(expression.key);
|
|
82
|
+
if (!this.#emitFilteringEvent(expression, 'remove')) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
state?.remove(expression);
|
|
86
|
+
if (state?.empty) {
|
|
87
|
+
this.reset(state.key);
|
|
88
|
+
}
|
|
89
|
+
this.#filter([]);
|
|
90
|
+
await this.host.updateComplete;
|
|
91
|
+
this.#emitFilteredEvent({ key: expression.key, state: state?.all ?? [] });
|
|
92
|
+
}
|
|
93
|
+
async filterWithEvent(expression, type) {
|
|
94
|
+
if (!this.#emitFilteringEvent(expression, type)) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
this.#filter(expression);
|
|
98
|
+
await this.host.updateComplete;
|
|
99
|
+
this.#emitFilteredEvent({ key: expression.key, state: this.get(expression.key)?.all ?? [] });
|
|
100
|
+
}
|
|
101
|
+
filter(expression) {
|
|
102
|
+
this.#filter(asArray(expression).map((expr) => Object.assign(this.getDefaultExpression(this.host.getColumn(expr.key)), expr)));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/controllers/filter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController } from 'lit';\nimport type { ApexFilteredEvent } from '../components/grid.js';\nimport { PIPELINE } from '../internal/constants.js';\nimport type { ColumnConfiguration, GridHost, Keys } from '../internal/types.js';\nimport { asArray, getFilterOperandsFor } from '../internal/utils.js';\nimport { FilterState } from '../operations/filter/state.js';\nimport type { FilterExpression } from '../operations/filter/types.js';\n\nexport class FilterController<T extends object> implements ReactiveController {\n constructor(protected host: GridHost<T>) {\n this.host.addController(this);\n }\n\n public state: FilterState<T> = new FilterState();\n\n public get filterRow() {\n // @ts-expect-error - protected access\n return this.host.filterRow;\n }\n\n get #virtualizer() {\n // @ts-expect-error - protected access\n return this.host.scrollContainer;\n }\n\n #emitFilteringEvent(expression: FilterExpression<T>, type: 'add' | 'modify' | 'remove') {\n return this.host.emitEvent('filtering', {\n detail: {\n key: expression.key,\n expressions: [expression],\n type,\n },\n cancelable: true,\n });\n }\n\n #emitFilteredEvent(detail?: ApexFilteredEvent<T>) {\n return this.host.emitEvent('filtered', { detail });\n }\n\n #filter(expression: FilterExpression<T> | FilterExpression<T>[]) {\n for (const expr of asArray(expression)) {\n this.state.set(expr);\n }\n\n // HACK: In the case where the scrollTop is a large and amount and a big chunk of data is filtered out\n // HACK: the virtualizer can't recalculate its scroll position correctly. Thus, we reset the scrollTop state.\n this.#virtualizer?.scrollTo({ top: 0 });\n this.host.requestUpdate(PIPELINE);\n }\n\n public hostConnected() {}\n\n public hostUpdate(): void {\n this.filterRow?.requestUpdate();\n }\n\n public get(key: Keys<T>) {\n return this.state.get(key);\n }\n\n public reset(key?: Keys<T>) {\n key ? this.state.delete(key) : this.state.clear();\n }\n\n public setActiveColumn(column?: ColumnConfiguration<T>) {\n if (column?.filter && this.filterRow?.active) {\n this.filterRow.column = column;\n this.filterRow.expression = this.getDefaultExpression(column);\n this.host.requestUpdate();\n }\n }\n\n public getDefaultExpression(column: ColumnConfiguration<T>) {\n const caseSensitive =\n typeof column.filter === 'boolean' ? false : Boolean(column.filter?.caseSensitive);\n const operands = getFilterOperandsFor(column);\n const keys = Object.keys(operands) as Keys<typeof operands>[];\n\n // XXX: Types\n return {\n key: column.key,\n condition: operands[keys[0]],\n caseSensitive,\n } as unknown as FilterExpression<T>;\n }\n\n public async removeAllExpressions(key: Keys<T>) {\n const state = this.get(key)?.all ?? [];\n\n if (\n !this.host.emitEvent('filtering', {\n detail: {\n key,\n expressions: state,\n type: 'remove',\n },\n cancelable: true,\n })\n ) {\n return;\n }\n\n this.reset(key);\n this.#filter([]);\n\n await this.host.updateComplete;\n this.#emitFilteredEvent({ key, state: this.get(key)?.all ?? [] });\n }\n\n public async removeExpression(expression: FilterExpression<T>) {\n const state = this.get(expression.key);\n\n if (!this.#emitFilteringEvent(expression, 'remove')) {\n return;\n }\n\n state?.remove(expression);\n\n if (state?.empty) {\n this.reset(state.key);\n }\n\n this.#filter([]);\n\n await this.host.updateComplete;\n this.#emitFilteredEvent({ key: expression.key, state: state?.all ?? [] });\n }\n\n public async filterWithEvent(expression: FilterExpression<T>, type: 'add' | 'modify' | 'remove') {\n if (!this.#emitFilteringEvent(expression, type)) {\n return;\n }\n\n this.#filter(expression);\n\n await this.host.updateComplete;\n this.#emitFilteredEvent({ key: expression.key, state: this.get(expression.key)?.all ?? [] });\n }\n\n public filter(expression: FilterExpression<T> | FilterExpression<T>[]) {\n this.#filter(\n asArray(expression).map((expr) =>\n Object.assign(this.getDefaultExpression(this.host.getColumn(expr.key)!), expr)\n )\n );\n }\n}\n"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { ReactiveController } from 'lit';
|
|
1
|
+
import type { ReactiveController } from 'lit';
|
|
2
2
|
import type { ActiveNode, GridHost, Keys } from '../internal/types.js';
|
|
3
3
|
export declare class NavigationController<T extends object> implements ReactiveController {
|
|
4
4
|
protected host: GridHost<T>;
|
|
5
5
|
protected handlers: Map<string, (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void)>;
|
|
6
|
-
protected get virtualizer(): import("../components/virtualizer").default;
|
|
6
|
+
protected get virtualizer(): import("../components/virtualizer.js").default;
|
|
7
7
|
protected state: Map<import("../internal/types.js").NavigationState, ActiveNode<any>>;
|
|
8
8
|
protected _active: Readonly<ActiveNode<any>>;
|
|
9
9
|
protected get nextNode(): ActiveNode<T>;
|
|
10
|
-
protected get columns(): import("../
|
|
10
|
+
protected get columns(): import("../index.js").ColumnConfiguration<T, keyof T>[];
|
|
11
11
|
protected get firstColumn(): (keyof T & string) | (keyof T & number) | (keyof T & symbol);
|
|
12
12
|
protected getPreviousColumn(key: Keys<T>): (keyof T & string) | (keyof T & number) | (keyof T & symbol);
|
|
13
13
|
protected getNextColumn(key: Keys<T>): (keyof T & string) | (keyof T & number) | (keyof T & symbol);
|
|
@@ -25,4 +25,3 @@ export declare class NavigationController<T extends object> implements ReactiveC
|
|
|
25
25
|
hostDisconnected(): void;
|
|
26
26
|
navigate(event: KeyboardEvent): void;
|
|
27
27
|
}
|
|
28
|
-
//# sourceMappingURL=navigation.d.ts.map
|