@one-grid-core/angular 0.1.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/README.md +168 -0
  2. package/esm2022/lib/components/one-grid/one-grid.component.mjs +388 -0
  3. package/esm2022/lib/components/one-grid-body/one-grid-body.component.mjs +570 -0
  4. package/esm2022/lib/components/one-grid-cell-currency/one-grid-cell-currency.component.mjs +90 -0
  5. package/esm2022/lib/components/one-grid-cell-group-renderer/one-grid-cell-group-renderer.component.mjs +31 -0
  6. package/esm2022/lib/components/one-grid-cell-option-menu/one-grid-cell-option-menu.component.mjs +67 -0
  7. package/esm2022/lib/components/one-grid-checkbox/one-grid-checkbox.component.mjs +47 -0
  8. package/esm2022/lib/components/one-grid-checkbox-header/one-grid-checkbox-header.component.mjs +62 -0
  9. package/esm2022/lib/components/one-grid-header/one-grid-header.component.mjs +140 -0
  10. package/esm2022/lib/components/one-grid-pagination/one-grid-pagination.component.mjs +76 -0
  11. package/esm2022/lib/components/one-grid-row-action/one-grid-row-action.component.mjs +193 -0
  12. package/esm2022/lib/components/one-grid-status/one-grid-status.component.mjs +35 -0
  13. package/esm2022/lib/core/directives/one-cell-input-validator.directive.mjs +71 -0
  14. package/esm2022/lib/core/directives/one-cell-renderer-component.directive.mjs +77 -0
  15. package/esm2022/lib/core/directives/one-cell-text-expand.directive.mjs +82 -0
  16. package/esm2022/lib/core/instants/one-grid-api.class.mjs +591 -0
  17. package/esm2022/lib/core/instants/one-row-node.class.mjs +90 -0
  18. package/esm2022/lib/core/models/constants/one-pagination.constant.mjs +2 -0
  19. package/esm2022/lib/core/models/one-column-def-types.model.mjs +2 -0
  20. package/esm2022/lib/core/models/one-event-types.model.mjs +2 -0
  21. package/esm2022/lib/core/models/one-filter.model.mjs +2 -0
  22. package/esm2022/lib/core/models/one-grid-types.model.mjs +2 -0
  23. package/esm2022/lib/core/models/one-master-detail.model.mjs +2 -0
  24. package/esm2022/lib/core/models/one-pagination-types.model.mjs +2 -0
  25. package/esm2022/lib/core/models/one-row.model.mjs +13 -0
  26. package/esm2022/lib/core/models/one-tree-data.model.mjs +2 -0
  27. package/esm2022/lib/core/models/one-validation.model.mjs +2 -0
  28. package/esm2022/lib/core/pipes/cell-action-button-enable.pipe.mjs +21 -0
  29. package/esm2022/lib/core/pipes/cell-action-button-visible.pipe.mjs +17 -0
  30. package/esm2022/lib/core/pipes/cell-disable-resolver.pipe.mjs +26 -0
  31. package/esm2022/lib/core/pipes/cell-editable.pipe.mjs +30 -0
  32. package/esm2022/lib/core/pipes/cell-field-value-empty.pipe.mjs +21 -0
  33. package/esm2022/lib/core/pipes/cell-field-value.pipe.mjs +25 -0
  34. package/esm2022/lib/core/pipes/cell-field.pipe.mjs +20 -0
  35. package/esm2022/lib/core/pipes/cell-invalid.pipe.mjs +21 -0
  36. package/esm2022/lib/core/pipes/cell-key.pipe.mjs +21 -0
  37. package/esm2022/lib/core/pipes/cell-level-padding.pipe.mjs +18 -0
  38. package/esm2022/lib/core/pipes/cell-number-value.pipe.mjs +19 -0
  39. package/esm2022/lib/core/pipes/cell-selected.pipe.mjs +20 -0
  40. package/esm2022/lib/core/pipes/cell-state-group-renderer.pipe.mjs +21 -0
  41. package/esm2022/lib/core/pipes/cell-state-renderer.pipe.mjs +24 -0
  42. package/esm2022/lib/core/pipes/cell-value-getter.pipe.mjs +23 -0
  43. package/esm2022/lib/core/pipes/column-sort-state.pipe.mjs +19 -0
  44. package/esm2022/lib/core/pipes/header-checkbox-checked.pipe.mjs +17 -0
  45. package/esm2022/lib/core/pipes/header-checkbox-disabled.pipe.mjs +17 -0
  46. package/esm2022/lib/core/pipes/header-checkbox-indeterminate.pipe.mjs +17 -0
  47. package/esm2022/lib/core/services/og-column.service.mjs +81 -0
  48. package/esm2022/lib/core/services/one-grid-cell.service.mjs +88 -0
  49. package/esm2022/lib/core/services/one-grid-event.service.mjs +42 -0
  50. package/esm2022/lib/core/services/one-grid-expansion.service.mjs +40 -0
  51. package/esm2022/lib/core/services/one-grid-row.service.mjs +29 -0
  52. package/esm2022/lib/core/services/one-grid-selection.service.mjs +54 -0
  53. package/esm2022/lib/core/services/one-grid-tree-data.service.mjs +59 -0
  54. package/esm2022/lib/helpers/one-cell.helper.mjs +42 -0
  55. package/esm2022/lib/helpers/one-column-def.helper.mjs +28 -0
  56. package/esm2022/lib/helpers/one-filter.helper.mjs +52 -0
  57. package/esm2022/lib/helpers/one-validation.helper.mjs +95 -0
  58. package/esm2022/lib/index.mjs +19 -0
  59. package/esm2022/lib/one-grid.module.mjs +142 -0
  60. package/esm2022/one-grid-core-angular.mjs +5 -0
  61. package/esm2022/public-api.mjs +5 -0
  62. package/fesm2022/one-grid-core-angular.mjs +3573 -0
  63. package/fesm2022/one-grid-core-angular.mjs.map +1 -0
  64. package/index.d.ts +5 -0
  65. package/lib/components/one-grid/one-grid.component.d.ts +139 -0
  66. package/lib/components/one-grid-body/one-grid-body.component.d.ts +176 -0
  67. package/lib/components/one-grid-cell-currency/one-grid-cell-currency.component.d.ts +27 -0
  68. package/lib/components/one-grid-cell-group-renderer/one-grid-cell-group-renderer.component.d.ts +16 -0
  69. package/lib/components/one-grid-cell-option-menu/one-grid-cell-option-menu.component.d.ts +21 -0
  70. package/lib/components/one-grid-checkbox/one-grid-checkbox.component.d.ts +19 -0
  71. package/lib/components/one-grid-checkbox-header/one-grid-checkbox-header.component.d.ts +24 -0
  72. package/lib/components/one-grid-header/one-grid-header.component.d.ts +41 -0
  73. package/lib/components/one-grid-pagination/one-grid-pagination.component.d.ts +21 -0
  74. package/lib/components/one-grid-row-action/one-grid-row-action.component.d.ts +59 -0
  75. package/lib/components/one-grid-status/one-grid-status.component.d.ts +15 -0
  76. package/lib/core/directives/one-cell-input-validator.directive.d.ts +15 -0
  77. package/lib/core/directives/one-cell-renderer-component.directive.d.ts +20 -0
  78. package/lib/core/directives/one-cell-text-expand.directive.d.ts +21 -0
  79. package/lib/core/instants/one-grid-api.class.d.ts +161 -0
  80. package/lib/core/instants/one-row-node.class.d.ts +49 -0
  81. package/lib/core/models/constants/one-pagination.constant.d.ts +1 -0
  82. package/lib/core/models/one-column-def-types.model.d.ts +139 -0
  83. package/lib/core/models/one-event-types.model.d.ts +78 -0
  84. package/lib/core/models/one-filter.model.d.ts +15 -0
  85. package/lib/core/models/one-grid-types.model.d.ts +48 -0
  86. package/lib/core/models/one-master-detail.model.d.ts +18 -0
  87. package/lib/core/models/one-pagination-types.model.d.ts +9 -0
  88. package/lib/core/models/one-row.model.d.ts +38 -0
  89. package/lib/core/models/one-tree-data.model.d.ts +9 -0
  90. package/lib/core/models/one-validation.model.d.ts +9 -0
  91. package/lib/core/pipes/cell-action-button-enable.pipe.d.ts +8 -0
  92. package/lib/core/pipes/cell-action-button-visible.pipe.d.ts +9 -0
  93. package/lib/core/pipes/cell-disable-resolver.pipe.d.ts +9 -0
  94. package/lib/core/pipes/cell-editable.pipe.d.ts +9 -0
  95. package/lib/core/pipes/cell-field-value-empty.pipe.d.ts +7 -0
  96. package/lib/core/pipes/cell-field-value.pipe.d.ts +7 -0
  97. package/lib/core/pipes/cell-field.pipe.d.ts +7 -0
  98. package/lib/core/pipes/cell-invalid.pipe.d.ts +9 -0
  99. package/lib/core/pipes/cell-key.pipe.d.ts +7 -0
  100. package/lib/core/pipes/cell-level-padding.pipe.d.ts +7 -0
  101. package/lib/core/pipes/cell-number-value.pipe.d.ts +7 -0
  102. package/lib/core/pipes/cell-selected.pipe.d.ts +7 -0
  103. package/lib/core/pipes/cell-state-group-renderer.pipe.d.ts +9 -0
  104. package/lib/core/pipes/cell-state-renderer.pipe.d.ts +8 -0
  105. package/lib/core/pipes/cell-value-getter.pipe.d.ts +9 -0
  106. package/lib/core/pipes/column-sort-state.pipe.d.ts +8 -0
  107. package/lib/core/pipes/header-checkbox-checked.pipe.d.ts +9 -0
  108. package/lib/core/pipes/header-checkbox-disabled.pipe.d.ts +9 -0
  109. package/lib/core/pipes/header-checkbox-indeterminate.pipe.d.ts +9 -0
  110. package/lib/core/services/og-column.service.d.ts +22 -0
  111. package/lib/core/services/one-grid-cell.service.d.ts +29 -0
  112. package/lib/core/services/one-grid-event.service.d.ts +17 -0
  113. package/lib/core/services/one-grid-expansion.service.d.ts +13 -0
  114. package/lib/core/services/one-grid-row.service.d.ts +15 -0
  115. package/lib/core/services/one-grid-selection.service.d.ts +17 -0
  116. package/lib/core/services/one-grid-tree-data.service.d.ts +10 -0
  117. package/lib/helpers/one-cell.helper.d.ts +26 -0
  118. package/lib/helpers/one-column-def.helper.d.ts +17 -0
  119. package/lib/helpers/one-filter.helper.d.ts +20 -0
  120. package/lib/helpers/one-validation.helper.d.ts +21 -0
  121. package/lib/index.d.ts +18 -0
  122. package/lib/one-grid.module.d.ts +45 -0
  123. package/package.json +48 -0
  124. package/public-api.d.ts +1 -0
  125. package/scss/_one-grid.scss +999 -0
@@ -0,0 +1,19 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ColumnSortStatePipe {
4
+ transform(field, sortModel) {
5
+ if (!sortModel || !field)
6
+ return null;
7
+ return sortModel.find(s => s.colId === field)?.sort ?? null;
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ColumnSortStatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
10
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ColumnSortStatePipe, name: "columnSortState" }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ColumnSortStatePipe, decorators: [{
13
+ type: Pipe,
14
+ args: [{
15
+ standalone: false,
16
+ name: 'columnSortState'
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXNvcnQtc3RhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29yZS9waXBlcy9jb2x1bW4tc29ydC1zdGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU9wRCxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFNBQVMsQ0FBQyxLQUFhLEVBQUUsU0FBeUI7UUFFaEQsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV0QyxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUM7SUFDOUQsQ0FBQzsrR0FQVSxtQkFBbUI7NkdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFKL0IsSUFBSTttQkFBQztvQkFDSixVQUFVLEVBQUUsS0FBSztvQkFDakIsSUFBSSxFQUFFLGlCQUFpQjtpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPbmVTb3J0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvb25lLWdyaWQtdHlwZXMubW9kZWwnO1xuXG5AUGlwZSh7XG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBuYW1lOiAnY29sdW1uU29ydFN0YXRlJ1xufSlcbmV4cG9ydCBjbGFzcyBDb2x1bW5Tb3J0U3RhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgdHJhbnNmb3JtKGZpZWxkOiBzdHJpbmcsIHNvcnRNb2RlbDogT25lU29ydE1vZGVsW10pOiAnYXNjJyB8ICdkZXNjJyB8IG51bGwge1xuXG4gICAgaWYgKCFzb3J0TW9kZWwgfHwgIWZpZWxkKSByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiBzb3J0TW9kZWwuZmluZChzID0+IHMuY29sSWQgPT09IGZpZWxkKT8uc29ydCA/PyBudWxsO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class HeaderCheckboxCheckedPipe {
4
+ transform(rowNodes, selectionMode, state) {
5
+ return rowNodes?.length > 0 && selectionMode === 'multiple' && state === 'checked';
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderCheckboxCheckedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: HeaderCheckboxCheckedPipe, name: "headerCheckboxChecked" }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderCheckboxCheckedPipe, decorators: [{
11
+ type: Pipe,
12
+ args: [{
13
+ standalone: false,
14
+ name: 'headerCheckboxChecked'
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNoZWNrYm94LWNoZWNrZWQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29yZS9waXBlcy9oZWFkZXItY2hlY2tib3gtY2hlY2tlZC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQVFwRCxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFNBQVMsQ0FBQyxRQUFzQixFQUFFLGFBQStCLEVBQUUsS0FBdUI7UUFFeEYsT0FBTyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxhQUFhLEtBQUssVUFBVSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7SUFDckYsQ0FBQzsrR0FMVSx5QkFBeUI7NkdBQXpCLHlCQUF5Qjs7NEZBQXpCLHlCQUF5QjtrQkFKckMsSUFBSTttQkFBQztvQkFDSixVQUFVLEVBQUUsS0FBSztvQkFDakIsSUFBSSxFQUFFLHVCQUF1QjtpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPbmVSb3dOb2RlIH0gZnJvbSAnLi4vaW5zdGFudHMvb25lLXJvdy1ub2RlLmNsYXNzJztcbmltcG9ydCB7IE9uZUNoZWNrYm94U3RhdGUsIFJvd1NlbGVjdGlvbk1vZGUgfSBmcm9tICcuLi9tb2RlbHMvb25lLWV2ZW50LXR5cGVzLm1vZGVsJztcblxuQFBpcGUoe1xuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgbmFtZTogJ2hlYWRlckNoZWNrYm94Q2hlY2tlZCdcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ2hlY2tib3hDaGVja2VkUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHRyYW5zZm9ybShyb3dOb2RlczogT25lUm93Tm9kZVtdLCBzZWxlY3Rpb25Nb2RlOiBSb3dTZWxlY3Rpb25Nb2RlLCBzdGF0ZTogT25lQ2hlY2tib3hTdGF0ZSk6IGJvb2xlYW4ge1xuXG4gICAgcmV0dXJuIHJvd05vZGVzPy5sZW5ndGggPiAwICYmIHNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXBsZScgJiYgc3RhdGUgPT09ICdjaGVja2VkJztcbiAgfVxufVxuIl19
@@ -0,0 +1,17 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class HeaderCheckboxDisabledPipe {
4
+ transform(rowNodes, selectionMode, allowedEdit) {
5
+ return rowNodes?.length === 0 || selectionMode !== 'multiple' || !allowedEdit;
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderCheckboxDisabledPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: HeaderCheckboxDisabledPipe, name: "headerCheckboxDisabled" }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderCheckboxDisabledPipe, decorators: [{
11
+ type: Pipe,
12
+ args: [{
13
+ standalone: false,
14
+ name: 'headerCheckboxDisabled'
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNoZWNrYm94LWRpc2FibGVkLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvcmUvcGlwZXMvaGVhZGVyLWNoZWNrYm94LWRpc2FibGVkLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBUXBELE1BQU0sT0FBTywwQkFBMEI7SUFFckMsU0FBUyxDQUFDLFFBQXNCLEVBQUUsYUFBK0IsRUFBRSxXQUFvQjtRQUVyRixPQUFPLFFBQVEsRUFBRSxNQUFNLEtBQUssQ0FBQyxJQUFJLGFBQWEsS0FBSyxVQUFVLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDaEYsQ0FBQzsrR0FMVSwwQkFBMEI7NkdBQTFCLDBCQUEwQjs7NEZBQTFCLDBCQUEwQjtrQkFKdEMsSUFBSTttQkFBQztvQkFDSixVQUFVLEVBQUUsS0FBSztvQkFDakIsSUFBSSxFQUFFLHdCQUF3QjtpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPbmVSb3dOb2RlIH0gZnJvbSAnLi4vaW5zdGFudHMvb25lLXJvdy1ub2RlLmNsYXNzJztcbmltcG9ydCB7IFJvd1NlbGVjdGlvbk1vZGUgfSBmcm9tICcuLi9tb2RlbHMvb25lLWV2ZW50LXR5cGVzLm1vZGVsJztcblxuQFBpcGUoe1xuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgbmFtZTogJ2hlYWRlckNoZWNrYm94RGlzYWJsZWQnXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckNoZWNrYm94RGlzYWJsZWRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgdHJhbnNmb3JtKHJvd05vZGVzOiBPbmVSb3dOb2RlW10sIHNlbGVjdGlvbk1vZGU6IFJvd1NlbGVjdGlvbk1vZGUsIGFsbG93ZWRFZGl0OiBib29sZWFuKTogYm9vbGVhbiB7XG5cbiAgICByZXR1cm4gcm93Tm9kZXM/Lmxlbmd0aCA9PT0gMCB8fCBzZWxlY3Rpb25Nb2RlICE9PSAnbXVsdGlwbGUnIHx8ICFhbGxvd2VkRWRpdDtcbiAgfVxufVxuIl19
@@ -0,0 +1,17 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class HeaderCheckboxIndeterminatePipe {
4
+ transform(rowNodes, selectionMode, state) {
5
+ return rowNodes?.length > 0 && selectionMode === 'multiple' && state === 'indeterminate';
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderCheckboxIndeterminatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: HeaderCheckboxIndeterminatePipe, name: "headerCheckboxIndeterminate" }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderCheckboxIndeterminatePipe, decorators: [{
11
+ type: Pipe,
12
+ args: [{
13
+ standalone: false,
14
+ name: 'headerCheckboxIndeterminate'
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29yZS9waXBlcy9oZWFkZXItY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQVFwRCxNQUFNLE9BQU8sK0JBQStCO0lBRTFDLFNBQVMsQ0FBQyxRQUFzQixFQUFFLGFBQStCLEVBQUUsS0FBdUI7UUFFeEYsT0FBTyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxhQUFhLEtBQUssVUFBVSxJQUFJLEtBQUssS0FBSyxlQUFlLENBQUM7SUFDM0YsQ0FBQzsrR0FMVSwrQkFBK0I7NkdBQS9CLCtCQUErQjs7NEZBQS9CLCtCQUErQjtrQkFKM0MsSUFBSTttQkFBQztvQkFDSixVQUFVLEVBQUUsS0FBSztvQkFDakIsSUFBSSxFQUFFLDZCQUE2QjtpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPbmVSb3dOb2RlIH0gZnJvbSAnLi4vaW5zdGFudHMvb25lLXJvdy1ub2RlLmNsYXNzJztcbmltcG9ydCB7IE9uZUNoZWNrYm94U3RhdGUsIFJvd1NlbGVjdGlvbk1vZGUgfSBmcm9tICcuLi9tb2RlbHMvb25lLWV2ZW50LXR5cGVzLm1vZGVsJztcblxuQFBpcGUoe1xuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgbmFtZTogJ2hlYWRlckNoZWNrYm94SW5kZXRlcm1pbmF0ZSdcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ2hlY2tib3hJbmRldGVybWluYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHRyYW5zZm9ybShyb3dOb2RlczogT25lUm93Tm9kZVtdLCBzZWxlY3Rpb25Nb2RlOiBSb3dTZWxlY3Rpb25Nb2RlLCBzdGF0ZTogT25lQ2hlY2tib3hTdGF0ZSk6IHVua25vd24ge1xuXG4gICAgcmV0dXJuIHJvd05vZGVzPy5sZW5ndGggPiAwICYmIHNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXBsZScgJiYgc3RhdGUgPT09ICdpbmRldGVybWluYXRlJztcbiAgfVxufVxuIl19
@@ -0,0 +1,81 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import lodash from 'lodash';
4
+ import * as i0 from "@angular/core";
5
+ export class OgColumnService {
6
+ constructor() {
7
+ this.defaultColumnDef = null;
8
+ this.columnDefs$ = new BehaviorSubject([]);
9
+ this.groupColumnDefs$ = new BehaviorSubject([]);
10
+ }
11
+ initColumnDefs(defaultColumnDef, columnDefs, groupColumnDefs) {
12
+ this.defaultColumnDef = defaultColumnDef;
13
+ this.setGroupColumnDefs(groupColumnDefs);
14
+ this.setColumnDefs(columnDefs);
15
+ }
16
+ getColumnState() {
17
+ const columns = this.columnDefs$.getValue();
18
+ const groups = this.groupColumnDefs$.getValue();
19
+ return { columns, groups };
20
+ }
21
+ setGroupColumnDefs(groupColumnDefs) {
22
+ const groups = groupColumnDefs.map((group) => this.resolveGroupPresentation(group));
23
+ this.groupColumnDefs$.next(groups);
24
+ }
25
+ setColumnDefs(columnDefs) {
26
+ const columns = columnDefs.map((col) => {
27
+ const column = {
28
+ ...this.defaultColumnDef,
29
+ ...col,
30
+ id: col?.field ? col.field : lodash.uniqueId('col_'),
31
+ };
32
+ return this.resolveCellPresentation(column);
33
+ });
34
+ this.recalculateGroups(columns);
35
+ this.columnDefs$.next(columns);
36
+ }
37
+ // Update single column
38
+ updateColumnDef(id, changes) {
39
+ const columns = this.getColumnState().columns;
40
+ const updatedColumns = columns.map(col => col.id === id ? { ...col, ...changes } : col);
41
+ this.recalculateGroups(updatedColumns);
42
+ this.columnDefs$.next(updatedColumns);
43
+ }
44
+ // Reorder columns
45
+ reorderColumnDefs(fromIndex, toIndex) {
46
+ const columns = lodash.clone(this.getColumnState().columns);
47
+ const [moved] = columns.splice(fromIndex, 1);
48
+ columns.splice(toIndex, 0, moved);
49
+ this.columnDefs$.next(columns);
50
+ }
51
+ /**
52
+ * Group Header Columns
53
+ */
54
+ recalculateGroups(columnDefs) {
55
+ if (this.groupColumnDefs$.getValue().length > 0) {
56
+ const groups = this.groupColumnDefs$.value.map(group => ({
57
+ ...group,
58
+ width: columnDefs.filter(c => c.groupId === group.id).reduce((sum, col) => sum + (col.width ? col.width > col.maxWidth ? col.maxWidth : col.width < col.minWidth ? col.minWidth : col.width : col.minWidth), 0)
59
+ }));
60
+ this.groupColumnDefs$.next(groups);
61
+ }
62
+ }
63
+ resolveGroupPresentation(col, params) {
64
+ col._resolvedGroupClass = typeof col.groupClass === 'function' ? col.groupClass(params) : col.groupClass;
65
+ col._resolvedGroupStyle = typeof col.groupStyle === 'function' ? col.groupStyle(params) : col.groupStyle;
66
+ return col;
67
+ }
68
+ resolveCellPresentation(col, params) {
69
+ col._resolvedHeaderClass = typeof col.headerClass === 'function' ? col.headerClass(params) : col.headerClass;
70
+ col._resolvedHeaderStyle = typeof col.headerStyle === 'function' ? col.headerStyle(params) : col.headerStyle;
71
+ col._resolvedCellClass = typeof col.cellClass === 'function' ? col.cellClass(params) : col.cellClass;
72
+ col._resolvedCellStyle = typeof col.cellStyle === 'function' ? col.cellStyle(params) : col.cellStyle;
73
+ return col;
74
+ }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OgColumnService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
76
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OgColumnService }); }
77
+ }
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OgColumnService, decorators: [{
79
+ type: Injectable
80
+ }] });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ctY29sdW1uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvcmUvc2VydmljZXMvb2ctY29sdW1uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7QUFJNUIsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFHVSxxQkFBZ0IsR0FBaUIsSUFBSSxDQUFDO1FBQ3RDLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFzQixFQUFFLENBQUMsQ0FBQztLQXVHekU7SUFyR0MsY0FBYyxDQUFDLGdCQUE4QixFQUFFLFVBQTBCLEVBQUUsZUFBb0M7UUFFN0csSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBRXpDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxjQUFjO1FBRVosTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUU1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsZUFBb0M7UUFFckQsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FB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QUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUNyRyxHQUFHLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxHQUFHLENBQUMsU0FBUyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUVyRyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7K0dBMUdVLGVBQWU7bUhBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT25lQ2VsbFJlbmRlcmVyUGFyYW1zLCBPbmVDb2x1bW5EZWYsIE9uZUdyb3VwQ29sdW1uRGVmIH0gZnJvbSAnLi4vbW9kZWxzL29uZS1jb2x1bW4tZGVmLXR5cGVzLm1vZGVsJztcbmltcG9ydCBsb2Rhc2ggZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENvbHVtbkNoYW5nZWRFdmVudCB9IGZyb20gJy4uL21vZGVscy9vbmUtZXZlbnQtdHlwZXMubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT2dDb2x1bW5TZXJ2aWNlIHtcblxuICBwcml2YXRlIGRlZmF1bHRDb2x1bW5EZWY6IE9uZUNvbHVtbkRlZiA9IG51bGw7XG4gIHByaXZhdGUgY29sdW1uRGVmcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE9uZUNvbHVtbkRlZltdPihbXSk7XG4gIHByaXZhdGUgZ3JvdXBDb2x1bW5EZWZzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T25lR3JvdXBDb2x1bW5EZWZbXT4oW10pO1xuXG4gIGluaXRDb2x1bW5EZWZzKGRlZmF1bHRDb2x1bW5EZWY6IE9uZUNvbHVtbkRlZiwgY29sdW1uRGVmczogT25lQ29sdW1uRGVmW10sIGdyb3VwQ29sdW1uRGVmczogT25lR3JvdXBDb2x1bW5EZWZbXSk6IHZvaWQge1xuXG4gICAgdGhpcy5kZWZhdWx0Q29sdW1uRGVmID0gZGVmYXVsdENvbHVtbkRlZjtcblxuICAgIHRoaXMuc2V0R3JvdXBDb2x1bW5EZWZzKGdyb3VwQ29sdW1uRGVmcyk7XG4gICAgXG4gICAgdGhpcy5zZXRDb2x1bW5EZWZzKGNvbHVtbkRlZnMpO1xuICB9XG5cbiAgZ2V0Q29sdW1uU3RhdGUoKTogQ29sdW1uQ2hhbmdlZEV2ZW50IHtcblxuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmNvbHVtbkRlZnMkLmdldFZhbHVlKCk7XG5cbiAgICBjb25zdCBncm91cHMgPSB0aGlzLmdyb3VwQ29sdW1uRGVmcyQuZ2V0VmFsdWUoKTtcblxuICAgIHJldHVybiB7IGNvbHVtbnMsIGdyb3VwcyB9O1xuICB9XG5cbiAgc2V0R3JvdXBDb2x1bW5EZWZzKGdyb3VwQ29sdW1uRGVmczogT25lR3JvdXBDb2x1bW5EZWZbXSk6IHZvaWQge1xuXG4gICAgY29uc3QgZ3JvdXBzID0gZ3JvdXBDb2x1bW5EZWZzLm1hcCgoZ3JvdXA6IE9uZUdyb3VwQ29sdW1uRGVmKSA9PiB0aGlzLnJlc29sdmVHcm91cFByZXNlbnRhdGlvbihncm91cCkpO1xuXG4gICAgdGhpcy5ncm91cENvbHVtbkRlZnMkLm5leHQoZ3JvdXBzKTtcbiAgfVxuXG4gIHNldENvbHVtbkRlZnMoY29sdW1uRGVmczogT25lQ29sdW1uRGVmW10pOiB2b2lkIHtcblxuICAgIGNvbnN0IGNvbHVtbnMgPSBjb2x1bW5EZWZzLm1hcCgoY29sOiBPbmVDb2x1bW5EZWYpID0+IHtcblxuICAgICAgY29uc3QgY29sdW1uID0ge1xuICAgICAgICAuLi50aGlzLmRlZmF1bHRDb2x1bW5EZWYsXG4gICAgICAgIC4uLmNvbCxcbiAgICAgICAgaWQ6IGNvbD8uZmllbGQgPyBjb2wuZmllbGQgOiBsb2Rhc2gudW5pcXVlSWQoJ2NvbF8nKSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB0aGlzLnJlc29sdmVDZWxsUHJlc2VudGF0aW9uKGNvbHVtbik7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJlY2FsY3VsYXRlR3JvdXBzKGNvbHVtbnMpO1xuXG4gICAgdGhpcy5jb2x1bW5EZWZzJC5uZXh0KGNvbHVtbnMpO1xuICB9XG5cbiAgLy8gVXBkYXRlIHNpbmdsZSBjb2x1bW5cbiAgdXBkYXRlQ29sdW1uRGVmKGlkOiBzdHJpbmcsIGNoYW5nZXM6IFBhcnRpYWw8T25lQ29sdW1uRGVmPik6IHZvaWQge1xuXG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMuZ2V0Q29sdW1uU3RhdGUoKS5jb2x1bW5zO1xuXG4gICAgY29uc3QgdXBkYXRlZENvbHVtbnMgPSBjb2x1bW5zLm1hcChjb2wgPT4gY29sLmlkID09PSBpZCA/IHsgLi4uY29sLCAuLi5jaGFuZ2VzIH0gOiBjb2wpO1xuXG4gICAgdGhpcy5yZWNhbGN1bGF0ZUdyb3Vwcyh1cGRhdGVkQ29sdW1ucyk7XG4gICAgXG4gICAgdGhpcy5jb2x1bW5EZWZzJC5uZXh0KHVwZGF0ZWRDb2x1bW5zKTtcbiAgfVxuXG4gIC8vIFJlb3JkZXIgY29sdW1uc1xuICByZW9yZGVyQ29sdW1uRGVmcyhmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyKTogdm9pZCB7XG5cbiAgICBjb25zdCBjb2x1bW5zID0gbG9kYXNoLmNsb25lKHRoaXMuZ2V0Q29sdW1uU3RhdGUoKS5jb2x1bW5zKTtcblxuICAgIGNvbnN0IFttb3ZlZF0gPSBjb2x1bW5zLnNwbGljZShmcm9tSW5kZXgsIDEpO1xuXG4gICAgY29sdW1ucy5zcGxpY2UodG9JbmRleCwgMCwgbW92ZWQpO1xuXG4gICAgdGhpcy5jb2x1bW5EZWZzJC5uZXh0KGNvbHVtbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyb3VwIEhlYWRlciBDb2x1bW5zXG4gICAqL1xuICBwcml2YXRlIHJlY2FsY3VsYXRlR3JvdXBzKGNvbHVtbkRlZnM6IE9uZUNvbHVtbkRlZltdKSB7XG5cbiAgICBpZiAodGhpcy5ncm91cENvbHVtbkRlZnMkLmdldFZhbHVlKCkubGVuZ3RoID4gMCkge1xuXG4gICAgICBjb25zdCBncm91cHMgPSB0aGlzLmdyb3VwQ29sdW1uRGVmcyQudmFsdWUubWFwKGdyb3VwID0+ICh7XG4gICAgICAgIC4uLmdyb3VwLFxuICAgICAgICB3aWR0aDogY29sdW1uRGVmcy5maWx0ZXIoYyA9PiBjLmdyb3VwSWQgPT09IGdyb3VwLmlkKS5yZWR1Y2UoKHN1bSwgY29sKSA9PiBzdW0gKyAoY29sLndpZHRoID8gY29sLndpZHRoID4gY29sLm1heFdpZHRoID8gY29sLm1heFdpZHRoIDogY29sLndpZHRoIDwgY29sLm1pbldpZHRoID8gY29sLm1pbldpZHRoIDogY29sLndpZHRoIDogY29sLm1pbldpZHRoKSwgMClcbiAgICAgIH0pKTtcblxuICAgICAgdGhpcy5ncm91cENvbHVtbkRlZnMkLm5leHQoZ3JvdXBzKTtcbiAgICB9XG4gIH1cblxuICByZXNvbHZlR3JvdXBQcmVzZW50YXRpb24oY29sOiBPbmVHcm91cENvbHVtbkRlZiwgcGFyYW1zPzogT25lQ2VsbFJlbmRlcmVyUGFyYW1zKTogT25lR3JvdXBDb2x1bW5EZWYge1xuXG4gICAgY29sLl9yZXNvbHZlZEdyb3VwQ2xhc3MgPSB0eXBlb2YgY29sLmdyb3VwQ2xhc3MgPT09ICdmdW5jdGlvbicgPyBjb2wuZ3JvdXBDbGFzcyhwYXJhbXMpIDogY29sLmdyb3VwQ2xhc3M7XG4gICAgY29sLl9yZXNvbHZlZEdyb3VwU3R5bGUgPSB0eXBlb2YgY29sLmdyb3VwU3R5bGUgPT09ICdmdW5jdGlvbicgPyBjb2wuZ3JvdXBTdHlsZShwYXJhbXMpIDogY29sLmdyb3VwU3R5bGU7XG5cbiAgICByZXR1cm4gY29sO1xuICB9XG5cbiAgcmVzb2x2ZUNlbGxQcmVzZW50YXRpb24oY29sOiBPbmVDb2x1bW5EZWYsIHBhcmFtcz86IE9uZUNlbGxSZW5kZXJlclBhcmFtcyk6IE9uZUNvbHVtbkRlZiB7XG5cbiAgICBjb2wuX3Jlc29sdmVkSGVhZGVyQ2xhc3MgPSB0eXBlb2YgY29sLmhlYWRlckNsYXNzID09PSAnZnVuY3Rpb24nID8gY29sLmhlYWRlckNsYXNzKHBhcmFtcykgOiBjb2wuaGVhZGVyQ2xhc3M7XG4gICAgY29sLl9yZXNvbHZlZEhlYWRlclN0eWxlID0gdHlwZW9mIGNvbC5oZWFkZXJTdHlsZSA9PT0gJ2Z1bmN0aW9uJyA/IGNvbC5oZWFkZXJTdHlsZShwYXJhbXMpIDogY29sLmhlYWRlclN0eWxlO1xuXG4gICAgY29sLl9yZXNvbHZlZENlbGxDbGFzcyA9IHR5cGVvZiBjb2wuY2VsbENsYXNzID09PSAnZnVuY3Rpb24nID8gY29sLmNlbGxDbGFzcyhwYXJhbXMpIDogY29sLmNlbGxDbGFzcztcbiAgICBjb2wuX3Jlc29sdmVkQ2VsbFN0eWxlID0gdHlwZW9mIGNvbC5jZWxsU3R5bGUgPT09ICdmdW5jdGlvbicgPyBjb2wuY2VsbFN0eWxlKHBhcmFtcykgOiBjb2wuY2VsbFN0eWxlO1xuXG4gICAgcmV0dXJuIGNvbDtcbiAgfVxufSJdfQ==
@@ -0,0 +1,88 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { CellFieldValueEmptyPipe } from '../pipes/cell-field-value-empty.pipe';
3
+ import { resolveOneCellRendererParams, resolveOneValueGetterParams } from '../../helpers/one-column-def.helper';
4
+ import { CellValueGetterPipe } from '../pipes/cell-value-getter.pipe';
5
+ import { CellFieldValuePipe } from '../pipes/cell-field-value.pipe';
6
+ import * as i0 from "@angular/core";
7
+ export class OneGridCellService {
8
+ constructor() {
9
+ this._cellFieldValueEmpty = new CellFieldValueEmptyPipe();
10
+ this._cellValueGetter = new CellValueGetterPipe();
11
+ this._cellFieldValue = new CellFieldValuePipe();
12
+ this._columnDefs = [];
13
+ /**
14
+ * One Column Def Params Resolver
15
+ */
16
+ this.editableFn = (column, node) => resolveOneCellRendererParams(column.editable, { node, data: node.data, columnDef: column, rowIndex: node.rowIndex, context: this._context });
17
+ this.updatableFn = (column, node) => resolveOneCellRendererParams(column.updatable, { node, data: node.data, columnDef: column, rowIndex: node.rowIndex, context: this._context });
18
+ this.disableFn = (column, node) => resolveOneCellRendererParams(column.disable, { node, data: node.data, columnDef: column, rowIndex: node.rowIndex, context: this._context });
19
+ this.dragableFn = (column, node) => resolveOneCellRendererParams(column.dragable, { node, data: node.data, columnDef: column, rowIndex: node.rowIndex, context: this._context });
20
+ this.valueGetterFn = (column, node) => resolveOneValueGetterParams(column.valueGetter, { data: node.data, rowIndex: node.rowIndex, node: node, context: this._context });
21
+ }
22
+ applyColumnDefs(columnDefs, context) {
23
+ this._columnDefs = columnDefs;
24
+ this._context = context;
25
+ }
26
+ /**
27
+ * Generate New Node States
28
+ */
29
+ generateCellStates(node) {
30
+ if (!node)
31
+ return null;
32
+ const newStates = {};
33
+ for (const column of this._columnDefs) {
34
+ const field = column.field;
35
+ if (field !== '_oneRowNumber') {
36
+ newStates[field] = this.generateCellState(node, column) ?? node.cellStates[field] ?? { type: 'none', value: '' };
37
+ }
38
+ else {
39
+ newStates[field] = node.cellStates[column.field];
40
+ }
41
+ }
42
+ return newStates;
43
+ }
44
+ /**
45
+ * Generate New Node State Based on Column Field
46
+ */
47
+ generateCellState(node, column) {
48
+ const isField = column.field !== undefined || column.field !== '' || column.field !== null;
49
+ const isEmpty = this._cellFieldValueEmpty.transform(node.data, column.field);
50
+ const isGroup = node.group || node.leafGroup;
51
+ const isAutoGroup = column?.autoGroupField;
52
+ if (column && column.cellRenderer && !isGroup) {
53
+ const value = column.cellRenderer({ node, columnDef: column });
54
+ return { type: 'html', value: value };
55
+ }
56
+ // 1. Cell Group Placeholder
57
+ if (isField && isEmpty && isGroup && isAutoGroup) {
58
+ return { type: 'placeholder', value: column?.cellRendererParams?.placeholder ?? this._cellValueGetter.transform(node.data, node, column, this._context) ?? '' };
59
+ }
60
+ // 2. Cell Group Text Value
61
+ if (isField && isGroup && isAutoGroup) {
62
+ const value = column?.valueGetter ? this._cellValueGetter.transform(node.data, node, column, this._context) : this._cellFieldValue.transform(node.data, column.field);
63
+ return { type: 'text', value: value ?? '' };
64
+ }
65
+ // 3. Cell Placeholder
66
+ if (isField && isEmpty && !isGroup && !isAutoGroup) {
67
+ const valueGetter = this._cellValueGetter.transform(node.data, node, column, this._context);
68
+ if (valueGetter) {
69
+ return { type: 'text', value: valueGetter };
70
+ }
71
+ const placeholder = column?.cellRendererParams?.placeholder ?? '';
72
+ return { type: 'placeholder', value: placeholder };
73
+ }
74
+ // 4. Cell Text Value
75
+ if (isField && !(isGroup || isAutoGroup)) {
76
+ const value = column?.valueGetter ? this._cellValueGetter.transform(node.data, node, column, this._context) : this._cellFieldValue.transform(node.data, column.field);
77
+ return { type: 'text', value: value ?? '' };
78
+ }
79
+ // 5. Default
80
+ return { type: 'none', value: '' };
81
+ }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridCellService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
83
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridCellService }); }
84
+ }
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridCellService, decorators: [{
86
+ type: Injectable
87
+ }] });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtY2VsbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lLWdyaWQvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL29uZS1ncmlkLWNlbGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUdwRSxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBR1UseUJBQW9CLEdBQUcsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQ3JELHFCQUFnQixHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUM3QyxvQkFBZSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUMzQyxnQkFBVyxHQUFtQixFQUFFLENBQUM7UUE2RnpDOztXQUVHO1FBQ0ksZUFBVSxHQUFHLENBQUMsTUFBb0IsRUFBRSxJQUFnQixFQUFFLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRXRNLGdCQUFXLEdBQUcsQ0FBQyxNQUFvQixFQUFFLElBQWdCLEVBQUUsRUFBRSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxT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LGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9uZUNlbGxTdGF0ZSwgT25lQ2VsbFN0YXRlcywgT25lQ29sdW1uRGVmIH0gZnJvbSAnLi4vbW9kZWxzL29uZS1jb2x1bW4tZGVmLXR5cGVzLm1vZGVsJztcbmltcG9ydCB7IENlbGxGaWVsZFZhbHVlRW1wdHlQaXBlIH0gZnJvbSAnLi4vcGlwZXMvY2VsbC1maWVsZC12YWx1ZS1lbXB0eS5waXBlJztcbmltcG9ydCB7IE9uZVJvd05vZGUgfSBmcm9tICcuLi9pbnN0YW50cy9vbmUtcm93LW5vZGUuY2xhc3MnO1xuaW1wb3J0IHsgcmVzb2x2ZU9uZUNlbGxSZW5kZXJlclBhcmFtcywgcmVzb2x2ZU9uZVZhbHVlR2V0dGVyUGFyYW1zIH0gZnJvbSAnLi4vLi4vaGVscGVycy9vbmUtY29sdW1uLWRlZi5oZWxwZXInO1xuaW1wb3J0IHsgQ2VsbFZhbHVlR2V0dGVyUGlwZSB9IGZyb20gJy4uL3BpcGVzL2NlbGwtdmFsdWUtZ2V0dGVyLnBpcGUnO1xuaW1wb3J0IHsgQ2VsbEZpZWxkVmFsdWVQaXBlIH0gZnJvbSAnLi4vcGlwZXMvY2VsbC1maWVsZC12YWx1ZS5waXBlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9uZUdyaWRDZWxsU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBfY2VsbEZpZWxkVmFsdWVFbXB0eSA9IG5ldyBDZWxsRmllbGRWYWx1ZUVtcHR5UGlwZSgpO1xuICBwcml2YXRlIF9jZWxsVmFsdWVHZXR0ZXIgPSBuZXcgQ2VsbFZhbHVlR2V0dGVyUGlwZSgpO1xuICBwcml2YXRlIF9jZWxsRmllbGRWYWx1ZSA9IG5ldyBDZWxsRmllbGRWYWx1ZVBpcGUoKTtcbiAgcHJpdmF0ZSBfY29sdW1uRGVmczogT25lQ29sdW1uRGVmW10gPSBbXTtcbiAgcHJpdmF0ZSBfY29udGV4dDogYW55O1xuXG4gIHB1YmxpYyBhcHBseUNvbHVtbkRlZnMoY29sdW1uRGVmczogT25lQ29sdW1uRGVmW10sIGNvbnRleHQ6IGFueSkge1xuXG4gICAgdGhpcy5fY29sdW1uRGVmcyA9IGNvbHVtbkRlZnM7XG4gICAgdGhpcy5fY29udGV4dCA9IGNvbnRleHQ7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgTmV3IE5vZGUgU3RhdGVzXG4gICAqL1xuICBwdWJsaWMgZ2VuZXJhdGVDZWxsU3RhdGVzKG5vZGU6IE9uZVJvd05vZGUpOiBPbmVDZWxsU3RhdGVzIHwgbnVsbCB7XG5cbiAgICBpZiAoIW5vZGUpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgbmV3U3RhdGVzOiBPbmVDZWxsU3RhdGVzID0ge307XG5cbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB0aGlzLl9jb2x1bW5EZWZzKSB7XG5cbiAgICAgIGNvbnN0IGZpZWxkID0gY29sdW1uLmZpZWxkO1xuXG4gICAgICBpZiAoZmllbGQgIT09ICdfb25lUm93TnVtYmVyJykge1xuXG4gICAgICAgIG5ld1N0YXRlc1tmaWVsZF0gPSB0aGlzLmdlbmVyYXRlQ2VsbFN0YXRlKG5vZGUsIGNvbHVtbikgPz8gbm9kZS5jZWxsU3RhdGVzW2ZpZWxkXSA/PyB7IHR5cGU6ICdub25lJywgdmFsdWU6ICcnIH07XG5cbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgbmV3U3RhdGVzW2ZpZWxkXSA9IG5vZGUuY2VsbFN0YXRlc1tjb2x1bW4uZmllbGRdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXdTdGF0ZXM7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgTmV3IE5vZGUgU3RhdGUgQmFzZWQgb24gQ29sdW1uIEZpZWxkXG4gICAqL1xuICBwdWJsaWMgZ2VuZXJhdGVDZWxsU3RhdGUobm9kZTogT25lUm93Tm9kZSwgY29sdW1uOiBPbmVDb2x1bW5EZWYpOiBPbmVDZWxsU3RhdGUge1xuXG4gICAgY29uc3QgaXNGaWVsZCA9IGNvbHVtbi5maWVsZCAhPT0gdW5kZWZpbmVkIHx8IGNvbHVtbi5maWVsZCAhPT0gJycgfHwgY29sdW1uLmZpZWxkICE9PSBudWxsO1xuICAgIGNvbnN0IGlzRW1wdHkgPSB0aGlzLl9jZWxsRmllbGRWYWx1ZUVtcHR5LnRyYW5zZm9ybShub2RlLmRhdGEsIGNvbHVtbi5maWVsZCk7XG4gICAgY29uc3QgaXNHcm91cCA9IG5vZGUuZ3JvdXAgfHwgbm9kZS5sZWFmR3JvdXA7XG4gICAgY29uc3QgaXNBdXRvR3JvdXAgPSBjb2x1bW4/LmF1dG9Hcm91cEZpZWxkO1xuXG4gICAgaWYgKGNvbHVtbiAmJiBjb2x1bW4uY2VsbFJlbmRlcmVyICYmICFpc0dyb3VwKSB7XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gY29sdW1uLmNlbGxSZW5kZXJlcih7IG5vZGUsIGNvbHVtbkRlZjogY29sdW1uIH0pO1xuXG4gICAgICByZXR1cm4geyB0eXBlOiAnaHRtbCcsIHZhbHVlOiB2YWx1ZSB9XG4gICAgfVxuXG4gICAgLy8gMS4gQ2VsbCBHcm91cCBQbGFjZWhvbGRlclxuICAgIGlmIChpc0ZpZWxkICYmIGlzRW1wdHkgJiYgaXNHcm91cCAmJiBpc0F1dG9Hcm91cCkge1xuXG4gICAgICByZXR1cm4geyB0eXBlOiAncGxhY2Vob2xkZXInLCB2YWx1ZTogY29sdW1uPy5jZWxsUmVuZGVyZXJQYXJhbXM/LnBsYWNlaG9sZGVyID8/IHRoaXMuX2NlbGxWYWx1ZUdldHRlci50cmFuc2Zvcm0obm9kZS5kYXRhLCBub2RlLCBjb2x1bW4sIHRoaXMuX2NvbnRleHQpID8/ICcnIH07XG4gICAgfVxuXG4gICAgLy8gMi4gQ2VsbCBHcm91cCBUZXh0IFZhbHVlXG4gICAgaWYgKGlzRmllbGQgJiYgaXNHcm91cCAmJiBpc0F1dG9Hcm91cCkge1xuXG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbHVtbj8udmFsdWVHZXR0ZXIgPyB0aGlzLl9jZWxsVmFsdWVHZXR0ZXIudHJhbnNmb3JtKG5vZGUuZGF0YSwgbm9kZSwgY29sdW1uLCB0aGlzLl9jb250ZXh0KSA6IHRoaXMuX2NlbGxGaWVsZFZhbHVlLnRyYW5zZm9ybShub2RlLmRhdGEsIGNvbHVtbi5maWVsZCk7XG5cbiAgICAgIHJldHVybiB7IHR5cGU6ICd0ZXh0JywgdmFsdWU6IHZhbHVlID8/ICcnIH07XG4gICAgfVxuXG4gICAgLy8gMy4gQ2VsbCBQbGFjZWhvbGRlclxuICAgIGlmIChpc0ZpZWxkICYmIGlzRW1wdHkgJiYgIWlzR3JvdXAgJiYgIWlzQXV0b0dyb3VwKSB7XG5cbiAgICAgIGNvbnN0IHZhbHVlR2V0dGVyID0gdGhpcy5fY2VsbFZhbHVlR2V0dGVyLnRyYW5zZm9ybShub2RlLmRhdGEsIG5vZGUsIGNvbHVtbiwgdGhpcy5fY29udGV4dCk7XG5cbiAgICAgIGlmICh2YWx1ZUdldHRlcikge1xuXG4gICAgICAgIHJldHVybiB7IHR5cGU6ICd0ZXh0JywgdmFsdWU6IHZhbHVlR2V0dGVyIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gY29sdW1uPy5jZWxsUmVuZGVyZXJQYXJhbXM/LnBsYWNlaG9sZGVyID8/ICcnO1xuXG4gICAgICByZXR1cm4geyB0eXBlOiAncGxhY2Vob2xkZXInLCB2YWx1ZTogcGxhY2Vob2xkZXIgfTtcbiAgICB9XG5cbiAgICAvLyA0LiBDZWxsIFRleHQgVmFsdWVcbiAgICBpZiAoaXNGaWVsZCAmJiAhKGlzR3JvdXAgfHwgaXNBdXRvR3JvdXApKSB7XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gY29sdW1uPy52YWx1ZUdldHRlciA/IHRoaXMuX2NlbGxWYWx1ZUdldHRlci50cmFuc2Zvcm0obm9kZS5kYXRhLCBub2RlLCBjb2x1bW4sIHRoaXMuX2NvbnRleHQpIDogdGhpcy5fY2VsbEZpZWxkVmFsdWUudHJhbnNmb3JtKG5vZGUuZGF0YSwgY29sdW1uLmZpZWxkKTtcblxuICAgICAgcmV0dXJuIHsgdHlwZTogJ3RleHQnLCB2YWx1ZTogdmFsdWUgPz8gJycgfTtcbiAgICB9XG5cbiAgICAvLyA1LiBEZWZhdWx0XG4gICAgcmV0dXJuIHsgdHlwZTogJ25vbmUnLCB2YWx1ZTogJycgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbmUgQ29sdW1uIERlZiBQYXJhbXMgUmVzb2x2ZXJcbiAgICovXG4gIHB1YmxpYyBlZGl0YWJsZUZuID0gKGNvbHVtbjogT25lQ29sdW1uRGVmLCBub2RlOiBPbmVSb3dOb2RlKSA9PiByZXNvbHZlT25lQ2VsbFJlbmRlcmVyUGFyYW1zKGNvbHVtbi5lZGl0YWJsZSwgeyBub2RlLCBkYXRhOiBub2RlLmRhdGEsIGNvbHVtbkRlZjogY29sdW1uLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgY29udGV4dDogdGhpcy5fY29udGV4dCB9KTtcblxuICBwdWJsaWMgdXBkYXRhYmxlRm4gPSAoY29sdW1uOiBPbmVDb2x1bW5EZWYsIG5vZGU6IE9uZVJvd05vZGUpID0+IHJlc29sdmVPbmVDZWxsUmVuZGVyZXJQYXJhbXMoY29sdW1uLnVwZGF0YWJsZSwgeyBub2RlLCBkYXRhOiBub2RlLmRhdGEsIGNvbHVtbkRlZjogY29sdW1uLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgY29udGV4dDogdGhpcy5fY29udGV4dCB9KTtcblxuICBwdWJsaWMgZGlzYWJsZUZuID0gKGNvbHVtbjogT25lQ29sdW1uRGVmLCBub2RlOiBPbmVSb3dOb2RlKSA9PiByZXNvbHZlT25lQ2VsbFJlbmRlcmVyUGFyYW1zKGNvbHVtbi5kaXNhYmxlLCB7IG5vZGUsIGRhdGE6IG5vZGUuZGF0YSwgY29sdW1uRGVmOiBjb2x1bW4sIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBjb250ZXh0OiB0aGlzLl9jb250ZXh0IH0pO1xuXG4gIHB1YmxpYyBkcmFnYWJsZUZuID0gKGNvbHVtbjogT25lQ29sdW1uRGVmLCBub2RlOiBPbmVSb3dOb2RlKSA9PiByZXNvbHZlT25lQ2VsbFJlbmRlcmVyUGFyYW1zKGNvbHVtbi5kcmFnYWJsZSwgeyBub2RlLCBkYXRhOiBub2RlLmRhdGEsIGNvbHVtbkRlZjogY29sdW1uLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgY29udGV4dDogdGhpcy5fY29udGV4dCB9KTtcblxuICBwdWJsaWMgdmFsdWVHZXR0ZXJGbiA9IChjb2x1bW46IE9uZUNvbHVtbkRlZiwgbm9kZTogT25lUm93Tm9kZSkgPT4gcmVzb2x2ZU9uZVZhbHVlR2V0dGVyUGFyYW1zKGNvbHVtbi52YWx1ZUdldHRlciwgeyBkYXRhOiBub2RlLmRhdGEsIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBub2RlOiBub2RlLCBjb250ZXh0OiB0aGlzLl9jb250ZXh0IH0pO1xufVxuIl19
@@ -0,0 +1,42 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { filter, map } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ export class OneGridEventService {
6
+ constructor() {
7
+ this.events$ = new Subject();
8
+ this.subscriptions = [];
9
+ }
10
+ // Dispatch event
11
+ dispatchEvent(type, payload) {
12
+ this.events$.next({ type, payload });
13
+ }
14
+ // Subscribe to event
15
+ addEventListener(type, handler) {
16
+ const subscription = this.events$
17
+ .pipe(filter(e => e.type === type), map(e => e.payload))
18
+ .subscribe(handler);
19
+ // Track subscription for bulk cleanup
20
+ this.subscriptions.push(subscription);
21
+ // Return an unsubscribe function
22
+ return () => subscription.unsubscribe();
23
+ }
24
+ // RxJS API
25
+ eventStream(type) {
26
+ return this.events$.pipe(filter(e => e.type === type), map(e => e.payload));
27
+ }
28
+ /**
29
+ * Clear All Subscriptions
30
+ */
31
+ ngOnDestroy() {
32
+ this.subscriptions.forEach(sub => sub.unsubscribe());
33
+ this.subscriptions = [];
34
+ this.events$.complete();
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
37
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridEventService }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridEventService, decorators: [{
40
+ type: Injectable
41
+ }] });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9vbmUtZ3JpZC1ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFJN0MsTUFBTSxPQUFPLG1CQUFtQjtJQURoQztRQUdVLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBcUMsQ0FBQztRQUMzRCxrQkFBYSxHQUFtQixFQUFFLENBQUM7S0F1QzVDO0lBckNDLGlCQUFpQjtJQUNqQixhQUFhLENBQXNCLElBQU8sRUFBRSxPQUEyQjtRQUVyRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxxQkFBcUI7SUFDckIsZ0JBQWdCLENBQXNCLElBQU8sRUFBRSxPQUE4QztRQUUzRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTzthQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBNkIsQ0FBQyxDQUFDO2FBQzdFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV0QixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdEMsaUNBQWlDO1FBQ2pDLE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXO0lBQ1gsV0FBVyxDQUFzQixJQUFPO1FBRXRDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBNkIsQ0FBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUVULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFckQsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQixDQUFDOytHQXpDVSxtQkFBbUI7bUhBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50UGF5bG9hZE1hcCwgRXZlbnRUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL29uZS1ldmVudC10eXBlcy5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPbmVHcmlkRXZlbnRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcml2YXRlIGV2ZW50cyQgPSBuZXcgU3ViamVjdDx7IHR5cGU6IEV2ZW50VHlwZTsgcGF5bG9hZDogYW55IH0+KCk7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAvLyBEaXNwYXRjaCBldmVudFxuICBkaXNwYXRjaEV2ZW50PEsgZXh0ZW5kcyBFdmVudFR5cGU+KHR5cGU6IEssIHBheWxvYWQ6IEV2ZW50UGF5bG9hZE1hcFtLXSk6IHZvaWQge1xuXG4gICAgdGhpcy5ldmVudHMkLm5leHQoeyB0eXBlLCBwYXlsb2FkIH0pO1xuICB9XG5cbiAgLy8gU3Vic2NyaWJlIHRvIGV2ZW50XG4gIGFkZEV2ZW50TGlzdGVuZXI8SyBleHRlbmRzIEV2ZW50VHlwZT4odHlwZTogSywgaGFuZGxlcjogKHBheWxvYWQ6IEV2ZW50UGF5bG9hZE1hcFtLXSkgPT4gdm9pZCk6ICgpID0+IHZvaWQge1xuXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5ldmVudHMkXG4gICAgICAucGlwZShmaWx0ZXIoZSA9PiBlLnR5cGUgPT09IHR5cGUpLCBtYXAoZSA9PiBlLnBheWxvYWQgYXMgRXZlbnRQYXlsb2FkTWFwW0tdKSlcbiAgICAgIC5zdWJzY3JpYmUoaGFuZGxlcik7XG5cbiAgICAvLyBUcmFjayBzdWJzY3JpcHRpb24gZm9yIGJ1bGsgY2xlYW51cFxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YnNjcmlwdGlvbik7XG5cbiAgICAvLyBSZXR1cm4gYW4gdW5zdWJzY3JpYmUgZnVuY3Rpb25cbiAgICByZXR1cm4gKCkgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvLyBSeEpTIEFQSVxuICBldmVudFN0cmVhbTxLIGV4dGVuZHMgRXZlbnRUeXBlPih0eXBlOiBLKTogT2JzZXJ2YWJsZTxFdmVudFBheWxvYWRNYXBbS10+IHtcblxuICAgIHJldHVybiB0aGlzLmV2ZW50cyQucGlwZShmaWx0ZXIoZSA9PiBlLnR5cGUgPT09IHR5cGUpLCBtYXAoZSA9PiBlLnBheWxvYWQgYXMgRXZlbnRQYXlsb2FkTWFwW0tdKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgQWxsIFN1YnNjcmlwdGlvbnNcbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuXG4gICAgdGhpcy5ldmVudHMkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class OneGridExpansionService {
4
+ constructor() {
5
+ this._expandedIds = new Set();
6
+ this._collapsedIds = new Set();
7
+ }
8
+ getExpandedIds() {
9
+ return this._expandedIds;
10
+ }
11
+ getCollapsedIds() {
12
+ return this._collapsedIds;
13
+ }
14
+ toggleExpanded(rowId, expanded) {
15
+ if (expanded) {
16
+ this._expandedIds.add(rowId);
17
+ this._collapsedIds.delete(rowId);
18
+ }
19
+ else {
20
+ this._expandedIds.delete(rowId);
21
+ this._collapsedIds.add(rowId);
22
+ }
23
+ }
24
+ isExpanded(rowId) {
25
+ return this._expandedIds.has(rowId);
26
+ }
27
+ isCollapsed(rowId) {
28
+ return this._collapsedIds.has(rowId);
29
+ }
30
+ clear() {
31
+ this._expandedIds.clear();
32
+ this._collapsedIds.clear();
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridExpansionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
35
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridExpansionService }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridExpansionService, decorators: [{
38
+ type: Injectable
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtZXhwYW5zaW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvcmUvc2VydmljZXMvb25lLWdyaWQtZXhwYW5zaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLHVCQUF1QjtJQURwQztRQUdVLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUNqQyxrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7S0E0QzNDO0lBMUNDLGNBQWM7UUFFWixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFFYixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFhLEVBQUUsUUFBaUI7UUFFN0MsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUViLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTdCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5DLENBQUM7YUFBTSxDQUFDO1lBRU4sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUV0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYTtRQUV2QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLO1FBRUgsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUUxQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLENBQUM7K0dBOUNVLHVCQUF1QjttSEFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT25lR3JpZEV4cGFuc2lvblNlcnZpY2Uge1xuXG4gIHByaXZhdGUgX2V4cGFuZGVkSWRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgX2NvbGxhcHNlZElkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGdldEV4cGFuZGVkSWRzKCk6IFNldDxzdHJpbmc+IHtcblxuICAgIHJldHVybiB0aGlzLl9leHBhbmRlZElkcztcbiAgfVxuXG4gIGdldENvbGxhcHNlZElkcygpOiBTZXQ8c3RyaW5nPiB7XG5cbiAgICByZXR1cm4gdGhpcy5fY29sbGFwc2VkSWRzO1xuICB9XG5cbiAgdG9nZ2xlRXhwYW5kZWQocm93SWQ6IHN0cmluZywgZXhwYW5kZWQ6IGJvb2xlYW4pOiB2b2lkIHtcblxuICAgIGlmIChleHBhbmRlZCkge1xuXG4gICAgICB0aGlzLl9leHBhbmRlZElkcy5hZGQocm93SWQpO1xuXG4gICAgICB0aGlzLl9jb2xsYXBzZWRJZHMuZGVsZXRlKHJvd0lkKTtcblxuICAgIH0gZWxzZSB7XG5cbiAgICAgIHRoaXMuX2V4cGFuZGVkSWRzLmRlbGV0ZShyb3dJZCk7XG5cbiAgICAgIHRoaXMuX2NvbGxhcHNlZElkcy5hZGQocm93SWQpO1xuICAgIH1cbiAgfVxuXG4gIGlzRXhwYW5kZWQocm93SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuXG4gICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkSWRzLmhhcyhyb3dJZCk7XG4gIH1cblxuICBpc0NvbGxhcHNlZChyb3dJZDogc3RyaW5nKTogYm9vbGVhbiB7XG5cbiAgICByZXR1cm4gdGhpcy5fY29sbGFwc2VkSWRzLmhhcyhyb3dJZCk7XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcblxuICAgIHRoaXMuX2V4cGFuZGVkSWRzLmNsZWFyKCk7XG5cbiAgICB0aGlzLl9jb2xsYXBzZWRJZHMuY2xlYXIoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,29 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { v4 as uuidv4 } from 'uuid';
3
+ import * as i0 from "@angular/core";
4
+ export class OneGridRowService {
5
+ constructor() {
6
+ this._getRowId = null;
7
+ }
8
+ /**
9
+ * Set Row Id Funciton
10
+ */
11
+ setGetRowIdFn(getRowId) {
12
+ this._getRowId = getRowId;
13
+ }
14
+ /**
15
+ * Generate Unique Row ID
16
+ */
17
+ generateRowId(data, rowIndex) {
18
+ if (this._getRowId) {
19
+ return this._getRowId({ data, rowIndex }) ?? uuidv4();
20
+ }
21
+ return uuidv4();
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridRowService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
24
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridRowService }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridRowService, decorators: [{
27
+ type: Injectable
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtcm93LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvcmUvc2VydmljZXMvb25lLWdyaWQtcm93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHcEMsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUdZLGNBQVMsR0FBOEMsSUFBSSxDQUFDO0tBc0J2RTtJQXBCRzs7T0FFRztJQUNJLGFBQWEsQ0FBQyxRQUFtRDtRQUVwRSxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxhQUFhLENBQUMsSUFBUyxFQUFFLFFBQWdCO1FBRTVDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRWpCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzFELENBQUM7UUFFRCxPQUFPLE1BQU0sRUFBRSxDQUFDO0lBQ3BCLENBQUM7K0dBdkJRLGlCQUFpQjttSEFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT25lR3JpZEdldFJvd0lkUGFyYW1zIH0gZnJvbSAnLi4vbW9kZWxzL29uZS1ncmlkLXR5cGVzLm1vZGVsJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT25lR3JpZFJvd1NlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBfZ2V0Um93SWQ6IChwYXJhbXM6IE9uZUdyaWRHZXRSb3dJZFBhcmFtcykgPT4gc3RyaW5nID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFNldCBSb3cgSWQgRnVuY2l0b25cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0R2V0Um93SWRGbihnZXRSb3dJZDogKHBhcmFtczogT25lR3JpZEdldFJvd0lkUGFyYW1zKSA9PiBzdHJpbmcpIHtcblxuICAgICAgICB0aGlzLl9nZXRSb3dJZCA9IGdldFJvd0lkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlIFVuaXF1ZSBSb3cgSURcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2VuZXJhdGVSb3dJZChkYXRhOiBhbnksIHJvd0luZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuXG4gICAgICAgIGlmICh0aGlzLl9nZXRSb3dJZCkge1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Um93SWQoeyBkYXRhLCByb3dJbmRleCB9KSA/PyB1dWlkdjQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1dWlkdjQoKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,54 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class OneGridSelectionService {
4
+ constructor() {
5
+ this._selectedIds = new Set();
6
+ this._selectionMode = null;
7
+ }
8
+ getSelectedIds() {
9
+ return this._selectedIds;
10
+ }
11
+ setSelectedIds(rowIds) {
12
+ this._selectedIds = new Set(rowIds);
13
+ }
14
+ getSelectionMode() {
15
+ return this._selectionMode;
16
+ }
17
+ setSelectionMode(mode) {
18
+ this._selectionMode = mode;
19
+ if (mode === 'single' && this._selectedIds.size > 1) {
20
+ // keep only one if mode is single
21
+ const first = this._selectedIds.values().next().value;
22
+ this._selectedIds = new Set([first]);
23
+ }
24
+ }
25
+ toggleSelection(rowId, selected) {
26
+ if (this._selectionMode === 'single') {
27
+ this._selectedIds.clear();
28
+ }
29
+ selected ? this._selectedIds.add(rowId) : this._selectedIds.delete(rowId);
30
+ }
31
+ toggleAllSelection(allIds, selected) {
32
+ selected ? this._selectedIds = new Set(allIds) : this._selectedIds.clear();
33
+ }
34
+ // Header Checkbox State
35
+ getSelectAllState(allIds) {
36
+ if (this._selectedIds.size === 0)
37
+ return 'unchecked';
38
+ if (this._selectedIds.size === allIds.length)
39
+ return 'checked';
40
+ return 'indeterminate';
41
+ }
42
+ selectAll(rowIds) {
43
+ this._selectedIds = new Set(rowIds);
44
+ }
45
+ deselectAll() {
46
+ this._selectedIds.clear();
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridSelectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
49
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridSelectionService }); }
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridSelectionService, decorators: [{
52
+ type: Injectable
53
+ }] });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtc2VsZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvcmUvc2VydmljZXMvb25lLWdyaWQtc2VsZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0MsTUFBTSxPQUFPLHVCQUF1QjtJQURwQztRQUdVLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUNqQyxtQkFBYyxHQUFxQixJQUFJLENBQUM7S0FnRWpEO0lBOURRLGNBQWM7UUFFbkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBZ0I7UUFFcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sZ0JBQWdCO1FBRXJCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsSUFBc0I7UUFFNUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFFM0IsSUFBSSxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBRXBELGtDQUFrQztZQUNsQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQztZQUV0RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFhLEVBQUUsUUFBaUI7UUFFckQsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBRXJDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUVELFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxNQUFnQixFQUFFLFFBQWlCO1FBRTNELFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3RSxDQUFDO0lBRUQsd0JBQXdCO0lBQ2pCLGlCQUFpQixDQUFDLE1BQWtCO1FBRXpDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssQ0FBQztZQUFFLE9BQU8sV0FBVyxDQUFDO1FBRXJELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLE1BQU07WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUUvRCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRU0sU0FBUyxDQUFDLE1BQWdCO1FBRS9CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLFdBQVc7UUFFaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDOytHQWxFVSx1QkFBdUI7bUhBQXZCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9uZUNoZWNrYm94U3RhdGUsIFJvd1NlbGVjdGlvbk1vZGUgfSBmcm9tICcuLi9tb2RlbHMvb25lLWV2ZW50LXR5cGVzLm1vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9uZUdyaWRTZWxlY3Rpb25TZXJ2aWNlIHtcblxuICBwcml2YXRlIF9zZWxlY3RlZElkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBwcml2YXRlIF9zZWxlY3Rpb25Nb2RlOiBSb3dTZWxlY3Rpb25Nb2RlID0gbnVsbDtcblxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRJZHMoKTogU2V0PHN0cmluZz4ge1xuXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSWRzO1xuICB9XG5cbiAgcHVibGljIHNldFNlbGVjdGVkSWRzKHJvd0lkczogc3RyaW5nW10pIHtcblxuICAgIHRoaXMuX3NlbGVjdGVkSWRzID0gbmV3IFNldChyb3dJZHMpO1xuICB9XG5cbiAgcHVibGljIGdldFNlbGVjdGlvbk1vZGUoKTogUm93U2VsZWN0aW9uTW9kZSB7XG5cbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uTW9kZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTZWxlY3Rpb25Nb2RlKG1vZGU6IFJvd1NlbGVjdGlvbk1vZGUpIHtcblxuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGUgPSBtb2RlO1xuXG4gICAgaWYgKG1vZGUgPT09ICdzaW5nbGUnICYmIHRoaXMuX3NlbGVjdGVkSWRzLnNpemUgPiAxKSB7XG5cbiAgICAgIC8vIGtlZXAgb25seSBvbmUgaWYgbW9kZSBpcyBzaW5nbGVcbiAgICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5fc2VsZWN0ZWRJZHMudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuXG4gICAgICB0aGlzLl9zZWxlY3RlZElkcyA9IG5ldyBTZXQoW2ZpcnN0XSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvZ2dsZVNlbGVjdGlvbihyb3dJZDogc3RyaW5nLCBzZWxlY3RlZDogYm9vbGVhbikge1xuXG4gICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGUnKSB7XG5cbiAgICAgIHRoaXMuX3NlbGVjdGVkSWRzLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgc2VsZWN0ZWQgPyB0aGlzLl9zZWxlY3RlZElkcy5hZGQocm93SWQpIDogdGhpcy5fc2VsZWN0ZWRJZHMuZGVsZXRlKHJvd0lkKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVBbGxTZWxlY3Rpb24oYWxsSWRzOiBzdHJpbmdbXSwgc2VsZWN0ZWQ6IGJvb2xlYW4pIHtcblxuICAgIHNlbGVjdGVkID8gdGhpcy5fc2VsZWN0ZWRJZHMgPSBuZXcgU2V0KGFsbElkcykgOiB0aGlzLl9zZWxlY3RlZElkcy5jbGVhcigpO1xuICB9XG5cbiAgLy8gSGVhZGVyIENoZWNrYm94IFN0YXRlXG4gIHB1YmxpYyBnZXRTZWxlY3RBbGxTdGF0ZShhbGxJZHM6IChzdHJpbmcpW10pOiBPbmVDaGVja2JveFN0YXRlIHtcblxuICAgIGlmICh0aGlzLl9zZWxlY3RlZElkcy5zaXplID09PSAwKSByZXR1cm4gJ3VuY2hlY2tlZCc7XG5cbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRJZHMuc2l6ZSA9PT0gYWxsSWRzLmxlbmd0aCkgcmV0dXJuICdjaGVja2VkJztcblxuICAgIHJldHVybiAnaW5kZXRlcm1pbmF0ZSc7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0QWxsKHJvd0lkczogc3RyaW5nW10pOiB2b2lkIHtcblxuICAgIHRoaXMuX3NlbGVjdGVkSWRzID0gbmV3IFNldChyb3dJZHMpO1xuICB9XG5cbiAgcHVibGljIGRlc2VsZWN0QWxsKCk6IHZvaWQge1xuXG4gICAgdGhpcy5fc2VsZWN0ZWRJZHMuY2xlYXIoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,59 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class OneGridTreeDataService {
4
+ create(tree, parentId, newNode) {
5
+ if (!parentId) {
6
+ return [newNode, ...tree];
7
+ }
8
+ return tree.map(node => {
9
+ if (node.id === parentId) {
10
+ return { ...node, children: [newNode, ...(node.children || [])] };
11
+ }
12
+ if (node.children) {
13
+ return { ...node, children: this.create(node.children, parentId, newNode) };
14
+ }
15
+ return node;
16
+ });
17
+ }
18
+ update(tree, nodeId, updatedData) {
19
+ return tree.map(node => {
20
+ if (node.id === nodeId) {
21
+ return { ...node, ...updatedData };
22
+ }
23
+ if (node.children) {
24
+ return { ...node, children: this.update(node.children, nodeId, updatedData) };
25
+ }
26
+ return node;
27
+ });
28
+ }
29
+ delete(tree, nodeId) {
30
+ return tree.map(node => {
31
+ if (node.children && node.children.length > 0) {
32
+ return { ...node, children: this.delete(node.children, nodeId) };
33
+ }
34
+ return node;
35
+ }).filter(node => node.id !== nodeId);
36
+ }
37
+ find(treeData, nodeId) {
38
+ for (const node of treeData) {
39
+ if (node.id === nodeId) {
40
+ return node;
41
+ }
42
+ if (node.children) {
43
+ const found = this.find(node.children, nodeId);
44
+ if (found)
45
+ return found;
46
+ }
47
+ }
48
+ return null;
49
+ }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridTreeDataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
51
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridTreeDataService, providedIn: 'root' }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridTreeDataService, decorators: [{
54
+ type: Injectable,
55
+ args: [{
56
+ providedIn: 'root'
57
+ }]
58
+ }] });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtdHJlZS1kYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvcmUvc2VydmljZXMvb25lLWdyaWQtdHJlZS1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyxNQUFNLENBQUksSUFBbUIsRUFBRSxRQUF1QixFQUFFLE9BQW9CO1FBRTFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUVkLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBRXJCLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFFekIsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDcEUsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUVsQixPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM5RSxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUksSUFBbUIsRUFBRSxNQUFjLEVBQUUsV0FBdUI7UUFFcEUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBRXJCLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFFdkIsT0FBUSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsV0FBVyxFQUFFLENBQUM7WUFDdEMsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUVsQixPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNoRixDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUksSUFBbUIsRUFBRSxNQUFjO1FBRTNDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUVuQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBRTlDLE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbkUsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDO1FBRWhCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUdELElBQUksQ0FBVSxRQUF1QixFQUFFLE1BQWM7UUFFbkQsS0FBSyxNQUFNLElBQUksSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUU1QixJQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBRXZCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUVsQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBRS9DLElBQUksS0FBSztvQkFBRSxPQUFPLEtBQUssQ0FBQztZQUMxQixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0E1RVUsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7NEZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyZWVOb2RlIH0gZnJvbSAnLi4vbW9kZWxzL29uZS10cmVlLWRhdGEubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBPbmVHcmlkVHJlZURhdGFTZXJ2aWNlIHtcblxuICBjcmVhdGU8VD4odHJlZTogVHJlZU5vZGU8VD5bXSwgcGFyZW50SWQ6IHN0cmluZyB8IG51bGwsIG5ld05vZGU6IFRyZWVOb2RlPFQ+KTogVHJlZU5vZGU8VD5bXSB7XG4gIFxuICAgIGlmICghcGFyZW50SWQpIHtcblxuICAgICAgcmV0dXJuIFtuZXdOb2RlLCAuLi50cmVlXTtcbiAgICB9XG4gIFxuICAgIHJldHVybiB0cmVlLm1hcChub2RlID0+IHtcblxuICAgICAgaWYgKG5vZGUuaWQgPT09IHBhcmVudElkKSB7XG5cbiAgICAgICAgcmV0dXJuIHsgLi4ubm9kZSwgY2hpbGRyZW46IFtuZXdOb2RlLCAuLi4obm9kZS5jaGlsZHJlbiB8fCBbXSldIH07XG4gICAgICB9XG4gIFxuICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcblxuICAgICAgICByZXR1cm4geyAuLi5ub2RlLCBjaGlsZHJlbjogdGhpcy5jcmVhdGUobm9kZS5jaGlsZHJlbiwgcGFyZW50SWQsIG5ld05vZGUpIH07XG4gICAgICB9XG4gIFxuICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfSk7XG4gIH1cbiAgXG4gIHVwZGF0ZTxUPih0cmVlOiBUcmVlTm9kZTxUPltdLCBub2RlSWQ6IHN0cmluZywgdXBkYXRlZERhdGE6IFBhcnRpYWw8VD4pOiBUcmVlTm9kZTxUPltdIHtcbiAgXG4gICAgcmV0dXJuIHRyZWUubWFwKG5vZGUgPT4ge1xuXG4gICAgICBpZiAobm9kZS5pZCA9PT0gbm9kZUlkKSB7XG5cbiAgICAgICAgcmV0dXJuICB7IC4uLm5vZGUsIC4uLnVwZGF0ZWREYXRhIH07XG4gICAgICB9XG4gIFxuICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcblxuICAgICAgICByZXR1cm4geyAuLi5ub2RlLCBjaGlsZHJlbjogdGhpcy51cGRhdGUobm9kZS5jaGlsZHJlbiwgbm9kZUlkLCB1cGRhdGVkRGF0YSkgfTtcbiAgICAgIH1cbiAgXG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZTxUPih0cmVlOiBUcmVlTm9kZTxUPltdLCBub2RlSWQ6IHN0cmluZyk6IFRyZWVOb2RlPFQ+W10ge1xuXG4gICAgcmV0dXJuIHRyZWUubWFwKG5vZGUgPT4ge1xuXG4gICAgICAgIGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuXG4gICAgICAgICAgcmV0dXJuIHsgLi4ubm9kZSwgY2hpbGRyZW46IHRoaXMuZGVsZXRlKG5vZGUuY2hpbGRyZW4sIG5vZGVJZCkgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlO1xuXG4gICAgfSkuZmlsdGVyKG5vZGUgPT4gbm9kZS5pZCAhPT0gbm9kZUlkKTtcbiAgfVxuXG4gIFxuICBmaW5kPFQgPSBhbnk+KHRyZWVEYXRhOiBUcmVlTm9kZTxUPltdLCBub2RlSWQ6IHN0cmluZyk6IFRyZWVOb2RlPFQ+IHwgbnVsbCB7XG4gIFxuICAgIGZvciAoY29uc3Qgbm9kZSBvZiB0cmVlRGF0YSkge1xuXG4gICAgICBpZiAobm9kZS5pZCA9PT0gbm9kZUlkKSB7XG5cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICB9XG4gIFxuICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcblxuICAgICAgICBjb25zdCBmb3VuZCA9IHRoaXMuZmluZChub2RlLmNoaWxkcmVuLCBub2RlSWQpO1xuXG4gICAgICAgIGlmIChmb3VuZCkgcmV0dXJuIGZvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Generate Cell Field
3
+ */
4
+ export function getCellField(rowIndex, field) {
5
+ return `${rowIndex}--${field}`;
6
+ }
7
+ export function getCellKey(rowId, field) {
8
+ return `${rowId}--${field}`;
9
+ }
10
+ /**
11
+ * Get Value From Data Field
12
+ */
13
+ export function getFieldValue(data, field) {
14
+ return field?.split('.')?.reduce((obj, key) => obj?.[key], data);
15
+ }
16
+ /**
17
+ * Resolve cell style (handles both static and function-based)
18
+ * @param column
19
+ * @param row
20
+ * @returns
21
+ */
22
+ export function resolveCellStyle(column, row) {
23
+ if (!column.cellStyle)
24
+ return {};
25
+ return typeof column.cellStyle === 'function'
26
+ ? column.cellStyle(row)
27
+ : column.cellStyle;
28
+ }
29
+ /**
30
+ * Resolve cell class (handles both static and function-based)
31
+ * @param column
32
+ * @param row
33
+ * @returns
34
+ */
35
+ export function resolveCellClass(column, row) {
36
+ if (!column.cellClass)
37
+ return '';
38
+ return typeof column.cellClass === 'function'
39
+ ? column.cellClass(row)
40
+ : column.cellClass;
41
+ }
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWNlbGwuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lLWdyaWQvc3JjL2xpYi9oZWxwZXJzL29uZS1jZWxsLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsUUFBZ0IsRUFBRSxLQUFhO0lBRTFELE9BQU8sR0FBRyxRQUFRLEtBQUssS0FBSyxFQUFFLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBYSxFQUFFLEtBQWE7SUFFckQsT0FBTyxHQUFHLEtBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQztBQUM5QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFJLElBQU8sRUFBRSxLQUFhO0lBRXJELE9BQU8sS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQVcsQ0FBQztBQUM3RSxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBb0IsRUFBRSxHQUFRO0lBRTdELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBRWpDLE9BQU8sT0FBTyxNQUFNLENBQUMsU0FBUyxLQUFLLFVBQVU7UUFDM0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0FBQ3ZCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFvQixFQUFFLEdBQVE7SUFFN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFFakMsT0FBTyxPQUFPLE1BQU0sQ0FBQyxTQUFTLEtBQUssVUFBVTtRQUMzQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7UUFDdkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uZUNvbHVtbkRlZiB9IGZyb20gXCIuLi9jb3JlL21vZGVscy9vbmUtY29sdW1uLWRlZi10eXBlcy5tb2RlbFwiO1xuXG4vKipcbiAqIEdlbmVyYXRlIENlbGwgRmllbGRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENlbGxGaWVsZChyb3dJbmRleDogbnVtYmVyLCBmaWVsZDogc3RyaW5nKTogc3RyaW5nIHtcblxuICByZXR1cm4gYCR7cm93SW5kZXh9LS0ke2ZpZWxkfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDZWxsS2V5KHJvd0lkOiBzdHJpbmcsIGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xuXG4gIHJldHVybiBgJHtyb3dJZH0tLSR7ZmllbGR9YDtcbn1cblxuLyoqXG4gKiBHZXQgVmFsdWUgRnJvbSBEYXRhIEZpZWxkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZFZhbHVlPFQ+KGRhdGE6IFQsIGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xuXG4gIHJldHVybiBmaWVsZD8uc3BsaXQoJy4nKT8ucmVkdWNlKChvYmosIGtleSkgPT4gb2JqPy5ba2V5XSwgZGF0YSkgYXMgc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc29sdmUgY2VsbCBzdHlsZSAoaGFuZGxlcyBib3RoIHN0YXRpYyBhbmQgZnVuY3Rpb24tYmFzZWQpXG4gKiBAcGFyYW0gY29sdW1uIFxuICogQHBhcmFtIHJvdyBcbiAqIEByZXR1cm5zIFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNlbGxTdHlsZShjb2x1bW46IE9uZUNvbHVtbkRlZiwgcm93OiBhbnkpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcblxuICBpZiAoIWNvbHVtbi5jZWxsU3R5bGUpIHJldHVybiB7fTtcblxuICByZXR1cm4gdHlwZW9mIGNvbHVtbi5jZWxsU3R5bGUgPT09ICdmdW5jdGlvbidcbiAgICA/IGNvbHVtbi5jZWxsU3R5bGUocm93KVxuICAgIDogY29sdW1uLmNlbGxTdHlsZTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGNlbGwgY2xhc3MgKGhhbmRsZXMgYm90aCBzdGF0aWMgYW5kIGZ1bmN0aW9uLWJhc2VkKVxuICogQHBhcmFtIGNvbHVtbiBcbiAqIEBwYXJhbSByb3cgXG4gKiBAcmV0dXJucyBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDZWxsQ2xhc3MoY29sdW1uOiBPbmVDb2x1bW5EZWYsIHJvdzogYW55KTogc3RyaW5nIHwgc3RyaW5nW10ge1xuXG4gIGlmICghY29sdW1uLmNlbGxDbGFzcykgcmV0dXJuICcnO1xuXG4gIHJldHVybiB0eXBlb2YgY29sdW1uLmNlbGxDbGFzcyA9PT0gJ2Z1bmN0aW9uJ1xuICAgID8gY29sdW1uLmNlbGxDbGFzcyhyb3cpXG4gICAgOiBjb2x1bW4uY2VsbENsYXNzO1xufSJdfQ==