@guiexpert/table 0.0.2 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +42 -0
- package/LICENSE +35 -0
- package/README.md +102 -0
- package/jest.config.ts +18 -0
- package/ng-package.json +7 -0
- package/package.json +10 -20
- package/project.json +47 -0
- package/{index.d.ts → src/index.ts} +72 -20
- package/src/lib/table/action/action-id.type.ts +24 -0
- package/{lib/table/action/on-action-triggered.if.d.ts → src/lib/table/action/on-action-triggered.if.ts} +4 -1
- package/src/lib/table/action/osx-shortcut-actionId-mapping.ts +29 -0
- package/src/lib/table/action/shortcut-actionid-mapping.type.ts +3 -0
- package/src/lib/table/action/shortcut.service.ts +134 -0
- package/src/lib/table/action/windows-shortcut-actionId-mapping.ts +27 -0
- package/src/lib/table/checkbox/checkbox-model.if.ts +16 -0
- package/src/lib/table/checkbox/checkbox-model.ts +62 -0
- package/src/lib/table/checkbox/tree-checkbox-model.ts +123 -0
- package/src/lib/table/color/color-rgb.if.ts +7 -0
- package/src/lib/table/color/color-rgb.ts +10 -0
- package/src/lib/table/color/ge-css-color-util.ts +43 -0
- package/src/lib/table/color/three-color-gradient-arg.if.ts +10 -0
- package/src/lib/table/color/three-color-gradient-arg.ts +14 -0
- package/src/lib/table/color/two-color-gradient-arg.if.ts +8 -0
- package/src/lib/table/color/two-color-gradient-arg.ts +12 -0
- package/src/lib/table/css-vars.ts +243 -0
- package/src/lib/table/data/common/aligns.ts +19 -0
- package/src/lib/table/data/common/area-map-factory.ts +14 -0
- package/src/lib/table/data/common/area-map.ts +11 -0
- package/src/lib/table/data/common/area-map.type.ts +5 -0
- package/{lib/table/data/common/args-adjust-columns-to-row-parent-params.d.ts → src/lib/table/data/common/args-adjust-columns-to-row-parent-params.ts} +11 -9
- package/src/lib/table/data/common/args-render-cell-div.ts +18 -0
- package/src/lib/table/data/common/boolean-function.ts +4 -0
- package/src/lib/table/data/common/cell-range.ts +57 -0
- package/src/lib/table/data/common/checkbox-column-def.ts +25 -0
- package/src/lib/table/data/common/checked-type.ts +1 -0
- package/src/lib/table/data/common/event/ge-cell-indices.ts +9 -0
- package/src/lib/table/data/common/event/ge-key-event.ts +10 -0
- package/src/lib/table/data/common/event/ge-model-change-event.ts +13 -0
- package/src/lib/table/data/common/event/ge-mouse-event.ts +38 -0
- package/src/lib/table/data/common/event/input/table-cell-update-event.if.ts +10 -0
- package/src/lib/table/data/common/event/input/table-cell-update-event.ts +14 -0
- package/src/lib/table/data/common/index-and-px.ts +9 -0
- package/src/lib/table/data/common/size.if.ts +4 -0
- package/src/lib/table/data/common/size.ts +9 -0
- package/src/lib/table/data/common/sizes.ts +35 -0
- package/src/lib/table/data/common/sort-item.ts +11 -0
- package/src/lib/table/data/common/tree-row-if.ts +11 -0
- package/src/lib/table/data/common/tree-row.ts +16 -0
- package/src/lib/table/data/common/value-label.if.ts +6 -0
- package/src/lib/table/data/common/value-label.ts +13 -0
- package/src/lib/table/data/div-scope.type.ts +5 -0
- package/src/lib/table/data/event/mouse-target-data.ts +45 -0
- package/src/lib/table/data/geo-data.ts +13 -0
- package/src/lib/table/data/options/auto-restore-options.if.ts +21 -0
- package/src/lib/table/data/options/auto-restore-options.ts +50 -0
- package/src/lib/table/data/options/default-row-heights.if.ts +5 -0
- package/src/lib/table/data/options/default-row-heights.ts +10 -0
- package/src/lib/table/data/options/icon.if.ts +7 -0
- package/src/lib/table/data/options/icon.ts +10 -0
- package/{lib/table/data/options/sorted-options.if.d.ts → src/lib/table/data/options/sorted-options.if.ts} +6 -3
- package/src/lib/table/data/options/sorted-options.ts +15 -0
- package/src/lib/table/data/options/table-options.if.ts +54 -0
- package/src/lib/table/data/options/table-options.ts +66 -0
- package/src/lib/table/data/options/tree-options.if.ts +10 -0
- package/src/lib/table/data/options/tree-options.ts +32 -0
- package/src/lib/table/data/table-model-and-options.if.ts +8 -0
- package/src/lib/table/data/table-model-and-options.ts +13 -0
- package/src/lib/table/data/tablemodel/area-ident.type.ts +18 -0
- package/src/lib/table/data/tablemodel/areamodel/abstract-area-model.ts +183 -0
- package/src/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.ts +59 -0
- package/src/lib/table/data/tablemodel/areamodel/area-model-cell-groups.ts +210 -0
- package/src/lib/table/data/tablemodel/areamodel/area-model-hidden.ts +120 -0
- package/src/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.ts +23 -0
- package/src/lib/table/data/tablemodel/areamodel/area-model-object-array.ts +105 -0
- package/src/lib/table/data/tablemodel/areamodel/area-model-tree.ts +215 -0
- package/src/lib/table/data/tablemodel/areamodel/area-model.if.ts +186 -0
- package/src/lib/table/data/tablemodel/areamodel/area-model.ts +110 -0
- package/src/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.ts +61 -0
- package/src/lib/table/data/tablemodel/areamodel/has-default-row-height-if.ts +3 -0
- package/src/lib/table/data/tablemodel/cellgroup/cell-group-ext.ts +167 -0
- package/src/lib/table/data/tablemodel/cellgroup/cell-group.if.ts +12 -0
- package/src/lib/table/data/tablemodel/cellgroup/cell-group.ts +18 -0
- package/src/lib/table/data/tablemodel/cellgroup/cellgroup-factory.ts +148 -0
- package/src/lib/table/data/tablemodel/column/column-def.if.ts +28 -0
- package/src/lib/table/data/tablemodel/column/column-def.ts +104 -0
- package/src/lib/table/data/tablemodel/padding.ts +9 -0
- package/src/lib/table/data/tablemodel/table-model.if.ts +90 -0
- package/src/lib/table/data/tablemodel/table-model.ts +352 -0
- package/src/lib/table/ele-scope.ts +283 -0
- package/src/lib/table/event-adapter.ts +28 -0
- package/src/lib/table/event-listener.if.ts +19 -0
- package/src/lib/table/factory/table-factory.ts +378 -0
- package/src/lib/table/factory/tree-factory.ts +51 -0
- package/src/lib/table/focus/focus-model.if.ts +14 -0
- package/src/lib/table/focus/focus-model.ts +48 -0
- package/{lib/table/focus/focus.type.d.ts → src/lib/table/focus/focus.type.ts} +3 -0
- package/src/lib/table/input-handler.ts +34 -0
- package/src/lib/table/mouse-handler.ts +236 -0
- package/src/lib/table/render-scope.ts +936 -0
- package/src/lib/table/renderer/cell-group-ext-cell-renderer.ts +27 -0
- package/{lib/table/renderer/cell-render.if.d.ts → src/lib/table/renderer/cell-render.if.ts} +10 -1
- package/src/lib/table/renderer/checkbox-boolean-property-cell-renderer.ts +63 -0
- package/src/lib/table/renderer/checkbox-cell-renderer.ts +39 -0
- package/src/lib/table/renderer/date-to-int-date-cell-renderer.ts +39 -0
- package/src/lib/table/renderer/date-to-iso-cell-renderer.ts +25 -0
- package/src/lib/table/renderer/date-to-locale-date-cell-renderer.ts +24 -0
- package/src/lib/table/renderer/date-to-tec-cell-renderer.ts +28 -0
- package/{lib/table/renderer/edit/edit-cell-renderer.type.d.ts → src/lib/table/renderer/edit/edit-cell-renderer.type.ts} +1 -0
- package/src/lib/table/renderer/edit/edit-input-pipe-for-number.ts +6 -0
- package/src/lib/table/renderer/edit/edit-input-pipe.if.ts +7 -0
- package/src/lib/table/renderer/edit/input-cell-renderer.ts +41 -0
- package/src/lib/table/renderer/edit/select-cell-renderer.ts +60 -0
- package/src/lib/table/renderer/male-female-to-icon-cell-renderer.ts +26 -0
- package/src/lib/table/renderer/number-cell-renderer.ts +38 -0
- package/src/lib/table/renderer/progress-bar-cell-renderer.ts +60 -0
- package/src/lib/table/renderer/renderer.ts +11 -0
- package/src/lib/table/renderer/star-rating-cell-renderer.ts +45 -0
- package/src/lib/table/renderer/true-false-cell-renderer.ts +28 -0
- package/src/lib/table/selection/selection-model.if.ts +20 -0
- package/src/lib/table/selection/selection-model.ts +109 -0
- package/src/lib/table/selection/selection-service.ts +120 -0
- package/{lib/table/selection/selection.type.d.ts → src/lib/table/selection/selection.type.ts} +3 -0
- package/src/lib/table/service/abstract-store-state.service.ts +105 -0
- package/src/lib/table/service/convenience-dom.service.ts +548 -0
- package/src/lib/table/service/data/collapsed-expanded.data.ts +11 -0
- package/src/lib/table/service/data/html-style.type.ts +1 -0
- package/src/lib/table/service/dom-service.if.ts +16 -0
- package/src/lib/table/service/ge-filter.service.ts +123 -0
- package/src/lib/table/service/simple-dom-service.ts +46 -0
- package/src/lib/table/service/sorter.service.ts +30 -0
- package/src/lib/table/service/store-state-collapsed-expand.service.ts +76 -0
- package/src/lib/table/service/store-state-scroll-pos.service.ts +40 -0
- package/src/lib/table/service/store-state-sorting.service.ts +41 -0
- package/src/lib/table/service/tree-row.service.ts +31 -0
- package/src/lib/table/table-api.ts +61 -0
- package/src/lib/table/table-scope.ts +433 -0
- package/src/test-setup.ts +1 -0
- package/tsconfig.json +22 -0
- package/tsconfig.lib.json +19 -0
- package/tsconfig.lib.prod.json +7 -0
- package/tsconfig.spec.json +20 -0
- package/esm2020/guiexpert-table.mjs +0 -5
- package/esm2020/index.mjs +0 -108
- package/esm2020/lib/table/action/action-id.type.mjs +0 -20
- package/esm2020/lib/table/action/on-action-triggered.if.mjs +0 -2
- package/esm2020/lib/table/action/osx-shortcut-actionId-mapping.mjs +0 -17
- package/esm2020/lib/table/action/shortcut-actionid-mapping.type.mjs +0 -2
- package/esm2020/lib/table/action/shortcut.service.mjs +0 -105
- package/esm2020/lib/table/action/windows-shortcut-actionId-mapping.mjs +0 -15
- package/esm2020/lib/table/checkbox/checkbox-model.if.mjs +0 -2
- package/esm2020/lib/table/checkbox/checkbox-model.mjs +0 -52
- package/esm2020/lib/table/checkbox/tree-checkbox-model.mjs +0 -106
- package/esm2020/lib/table/data/common/aligns.mjs +0 -19
- package/esm2020/lib/table/data/common/area-map-factory.mjs +0 -7
- package/esm2020/lib/table/data/common/area-map.mjs +0 -8
- package/esm2020/lib/table/data/common/area-map.type.mjs +0 -2
- package/esm2020/lib/table/data/common/args-adjust-columns-to-row-parent-params.mjs +0 -2
- package/esm2020/lib/table/data/common/args-render-cell-div.mjs +0 -2
- package/esm2020/lib/table/data/common/boolean-function.mjs +0 -3
- package/esm2020/lib/table/data/common/cell-range.mjs +0 -27
- package/esm2020/lib/table/data/common/checkbox-column.mjs +0 -15
- package/esm2020/lib/table/data/common/checked-type.mjs +0 -2
- package/esm2020/lib/table/data/common/event/ge-cell-indices.mjs +0 -7
- package/esm2020/lib/table/data/common/event/ge-key-event.mjs +0 -7
- package/esm2020/lib/table/data/common/event/ge-model-change-event.mjs +0 -10
- package/esm2020/lib/table/data/common/event/ge-mouse-event.mjs +0 -19
- package/esm2020/lib/table/data/common/filter-function.mjs +0 -2
- package/esm2020/lib/table/data/common/get-t.mjs +0 -2
- package/esm2020/lib/table/data/common/index-and-px.mjs +0 -7
- package/esm2020/lib/table/data/common/size.if.mjs +0 -2
- package/esm2020/lib/table/data/common/size.mjs +0 -7
- package/esm2020/lib/table/data/common/sizes.mjs +0 -33
- package/esm2020/lib/table/data/common/sort-item.mjs +0 -7
- package/esm2020/lib/table/data/common/sort-state.type.mjs +0 -2
- package/esm2020/lib/table/data/common/tree-arrow.type.mjs +0 -2
- package/esm2020/lib/table/data/common/tree-row-if.mjs +0 -2
- package/esm2020/lib/table/data/common/tree-row.mjs +0 -12
- package/esm2020/lib/table/data/common/value-label.if.mjs +0 -2
- package/esm2020/lib/table/data/common/value-label.mjs +0 -7
- package/esm2020/lib/table/data/div-scope.type.mjs +0 -2
- package/esm2020/lib/table/data/geo-data.mjs +0 -10
- package/esm2020/lib/table/data/options/auto-restore-options.if.mjs +0 -2
- package/esm2020/lib/table/data/options/auto-restore-options.mjs +0 -42
- package/esm2020/lib/table/data/options/default-row-heights.if.mjs +0 -2
- package/esm2020/lib/table/data/options/default-row-heights.mjs +0 -8
- package/esm2020/lib/table/data/options/icon.if.mjs +0 -2
- package/esm2020/lib/table/data/options/icon.mjs +0 -8
- package/esm2020/lib/table/data/options/sorted-options.if.mjs +0 -2
- package/esm2020/lib/table/data/options/sorted-options.mjs +0 -9
- package/esm2020/lib/table/data/options/table-options.if.mjs +0 -2
- package/esm2020/lib/table/data/options/table-options.mjs +0 -37
- package/esm2020/lib/table/data/options/tree-options.if.mjs +0 -2
- package/esm2020/lib/table/data/options/tree-options.mjs +0 -10
- package/esm2020/lib/table/data/side-ident.type.mjs +0 -2
- package/esm2020/lib/table/data/tablemodel/area-ident.type.mjs +0 -10
- package/esm2020/lib/table/data/tablemodel/areamodel/abstract-area-model.mjs +0 -108
- package/esm2020/lib/table/data/tablemodel/areamodel/area-model-array-array.mjs +0 -34
- package/esm2020/lib/table/data/tablemodel/areamodel/area-model-hidden.mjs +0 -80
- package/esm2020/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.mjs +0 -11
- package/esm2020/lib/table/data/tablemodel/areamodel/area-model-object-array.mjs +0 -79
- package/esm2020/lib/table/data/tablemodel/areamodel/area-model-tree.mjs +0 -166
- package/esm2020/lib/table/data/tablemodel/areamodel/area-model.if.mjs +0 -2
- package/esm2020/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.mjs +0 -48
- package/esm2020/lib/table/data/tablemodel/column/column-def.if.mjs +0 -2
- package/esm2020/lib/table/data/tablemodel/column/column-def.mjs +0 -32
- package/esm2020/lib/table/data/tablemodel/padding.mjs +0 -9
- package/esm2020/lib/table/data/tablemodel/table-model.if.mjs +0 -2
- package/esm2020/lib/table/data/tablemodel/table-model.mjs +0 -268
- package/esm2020/lib/table/ele-scope.mjs +0 -173
- package/esm2020/lib/table/event-adapter.mjs +0 -17
- package/esm2020/lib/table/event-listener.if.mjs +0 -2
- package/esm2020/lib/table/focus/focus-model.if.mjs +0 -2
- package/esm2020/lib/table/focus/focus-model.mjs +0 -22
- package/esm2020/lib/table/focus/focus.type.mjs +0 -2
- package/esm2020/lib/table/input-handler.mjs +0 -24
- package/esm2020/lib/table/mouse-handler.mjs +0 -191
- package/esm2020/lib/table/render-scope.mjs +0 -595
- package/esm2020/lib/table/renderer/cell-render.if.mjs +0 -2
- package/esm2020/lib/table/renderer/checkbox-cell-renderer.mjs +0 -22
- package/esm2020/lib/table/renderer/date-to-int-date-cell-renderer.mjs +0 -21
- package/esm2020/lib/table/renderer/date-to-iso-cell-renderer.mjs +0 -9
- package/esm2020/lib/table/renderer/date-to-locale-date-cell-renderer.mjs +0 -9
- package/esm2020/lib/table/renderer/date-to-tec-cell-renderer.mjs +0 -12
- package/esm2020/lib/table/renderer/edit/edit-cell-renderer.type.mjs +0 -2
- package/esm2020/lib/table/renderer/edit/input-cell-renderer.mjs +0 -23
- package/esm2020/lib/table/renderer/edit/select-cell-renderer.mjs +0 -35
- package/esm2020/lib/table/renderer/male-female-to-icon-cell-renderer.mjs +0 -12
- package/esm2020/lib/table/renderer/number-cell-renderer.mjs +0 -19
- package/esm2020/lib/table/renderer/renderer-cleanup-fn.type.mjs +0 -2
- package/esm2020/lib/table/renderer/renderer.mjs +0 -7
- package/esm2020/lib/table/renderer/true-false-cell-renderer.mjs +0 -15
- package/esm2020/lib/table/selection/selection-model.if.mjs +0 -2
- package/esm2020/lib/table/selection/selection-model.mjs +0 -97
- package/esm2020/lib/table/selection/selection-service.mjs +0 -97
- package/esm2020/lib/table/selection/selection.type.mjs +0 -2
- package/esm2020/lib/table/service/abstract-store-state.service.mjs +0 -49
- package/esm2020/lib/table/service/convenience-dom.service.mjs +0 -394
- package/esm2020/lib/table/service/data/collapsed-expanded.data.mjs +0 -9
- package/esm2020/lib/table/service/data/html-style.type.mjs +0 -2
- package/esm2020/lib/table/service/dom-service.if.mjs +0 -2
- package/esm2020/lib/table/service/ge-filter.service.mjs +0 -98
- package/esm2020/lib/table/service/simple-dom-service.mjs +0 -34
- package/esm2020/lib/table/service/sorter.service.mjs +0 -27
- package/esm2020/lib/table/service/store-state-collapsed-expand.service.mjs +0 -57
- package/esm2020/lib/table/service/store-state-scroll-pos.service.mjs +0 -29
- package/esm2020/lib/table/service/store-state-sorting.service.mjs +0 -29
- package/esm2020/lib/table/service/tree-row.service.mjs +0 -23
- package/esm2020/lib/table/table-api.mjs +0 -38
- package/esm2020/lib/table/table-model-factory.mjs +0 -124
- package/esm2020/lib/table/table-scope.mjs +0 -313
- package/lib/table/action/action-id.type.d.ts +0 -2
- package/lib/table/action/osx-shortcut-actionId-mapping.d.ts +0 -6
- package/lib/table/action/shortcut-actionid-mapping.type.d.ts +0 -4
- package/lib/table/action/shortcut.service.d.ts +0 -17
- package/lib/table/action/windows-shortcut-actionId-mapping.d.ts +0 -6
- package/lib/table/checkbox/checkbox-model.d.ts +0 -12
- package/lib/table/checkbox/checkbox-model.if.d.ts +0 -9
- package/lib/table/checkbox/tree-checkbox-model.d.ts +0 -17
- package/lib/table/data/common/aligns.d.ts +0 -24
- package/lib/table/data/common/area-map-factory.d.ts +0 -5
- package/lib/table/data/common/area-map.d.ts +0 -7
- package/lib/table/data/common/area-map.type.d.ts +0 -5
- package/lib/table/data/common/args-render-cell-div.d.ts +0 -13
- package/lib/table/data/common/boolean-function.d.ts +0 -3
- package/lib/table/data/common/cell-range.d.ts +0 -17
- package/lib/table/data/common/checkbox-column.d.ts +0 -13
- package/lib/table/data/common/checked-type.d.ts +0 -1
- package/lib/table/data/common/event/ge-cell-indices.d.ts +0 -5
- package/lib/table/data/common/event/ge-key-event.d.ts +0 -5
- package/lib/table/data/common/event/ge-model-change-event.d.ts +0 -6
- package/lib/table/data/common/event/ge-mouse-event.d.ts +0 -17
- package/lib/table/data/common/index-and-px.d.ts +0 -5
- package/lib/table/data/common/size.d.ts +0 -6
- package/lib/table/data/common/size.if.d.ts +0 -4
- package/lib/table/data/common/sizes.d.ts +0 -32
- package/lib/table/data/common/sort-item.d.ts +0 -6
- package/lib/table/data/common/tree-row-if.d.ts +0 -10
- package/lib/table/data/common/tree-row.d.ts +0 -11
- package/lib/table/data/common/value-label.d.ts +0 -6
- package/lib/table/data/common/value-label.if.d.ts +0 -4
- package/lib/table/data/div-scope.type.d.ts +0 -7
- package/lib/table/data/geo-data.d.ts +0 -8
- package/lib/table/data/options/auto-restore-options.d.ts +0 -11
- package/lib/table/data/options/auto-restore-options.if.d.ts +0 -16
- package/lib/table/data/options/default-row-heights.d.ts +0 -7
- package/lib/table/data/options/default-row-heights.if.d.ts +0 -5
- package/lib/table/data/options/icon.d.ts +0 -7
- package/lib/table/data/options/icon.if.d.ts +0 -5
- package/lib/table/data/options/sorted-options.d.ts +0 -8
- package/lib/table/data/options/table-options.d.ts +0 -35
- package/lib/table/data/options/table-options.if.d.ts +0 -36
- package/lib/table/data/options/tree-options.d.ts +0 -9
- package/lib/table/data/options/tree-options.if.d.ts +0 -7
- package/lib/table/data/tablemodel/area-ident.type.d.ts +0 -2
- package/lib/table/data/tablemodel/areamodel/abstract-area-model.d.ts +0 -43
- package/lib/table/data/tablemodel/areamodel/area-model-array-array.d.ts +0 -18
- package/lib/table/data/tablemodel/areamodel/area-model-hidden.d.ts +0 -37
- package/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.d.ts +0 -10
- package/lib/table/data/tablemodel/areamodel/area-model-object-array.d.ts +0 -27
- package/lib/table/data/tablemodel/areamodel/area-model-tree.d.ts +0 -39
- package/lib/table/data/tablemodel/areamodel/area-model.if.d.ts +0 -146
- package/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.d.ts +0 -12
- package/lib/table/data/tablemodel/column/column-def.d.ts +0 -46
- package/lib/table/data/tablemodel/column/column-def.if.d.ts +0 -22
- package/lib/table/data/tablemodel/padding.d.ts +0 -7
- package/lib/table/data/tablemodel/table-model.d.ts +0 -61
- package/lib/table/data/tablemodel/table-model.if.d.ts +0 -35
- package/lib/table/ele-scope.d.ts +0 -37
- package/lib/table/event-adapter.d.ts +0 -12
- package/lib/table/event-listener.if.d.ts +0 -11
- package/lib/table/focus/focus-model.d.ts +0 -12
- package/lib/table/focus/focus-model.if.d.ts +0 -6
- package/lib/table/input-handler.d.ts +0 -6
- package/lib/table/mouse-handler.d.ts +0 -25
- package/lib/table/render-scope.d.ts +0 -82
- package/lib/table/renderer/checkbox-cell-renderer.d.ts +0 -8
- package/lib/table/renderer/date-to-int-date-cell-renderer.d.ts +0 -9
- package/lib/table/renderer/date-to-iso-cell-renderer.d.ts +0 -8
- package/lib/table/renderer/date-to-locale-date-cell-renderer.d.ts +0 -8
- package/lib/table/renderer/date-to-tec-cell-renderer.d.ts +0 -8
- package/lib/table/renderer/edit/input-cell-renderer.d.ts +0 -8
- package/lib/table/renderer/edit/select-cell-renderer.d.ts +0 -12
- package/lib/table/renderer/male-female-to-icon-cell-renderer.d.ts +0 -8
- package/lib/table/renderer/number-cell-renderer.d.ts +0 -11
- package/lib/table/renderer/renderer.d.ts +0 -5
- package/lib/table/renderer/true-false-cell-renderer.d.ts +0 -8
- package/lib/table/selection/selection-model.d.ts +0 -21
- package/lib/table/selection/selection-model.if.d.ts +0 -11
- package/lib/table/selection/selection-service.d.ts +0 -17
- package/lib/table/service/abstract-store-state.service.d.ts +0 -10
- package/lib/table/service/convenience-dom.service.d.ts +0 -46
- package/lib/table/service/data/collapsed-expanded.data.d.ts +0 -7
- package/lib/table/service/data/html-style.type.d.ts +0 -3
- package/lib/table/service/dom-service.if.d.ts +0 -9
- package/lib/table/service/ge-filter.service.d.ts +0 -5
- package/lib/table/service/simple-dom-service.d.ts +0 -10
- package/lib/table/service/sorter.service.d.ts +0 -3
- package/lib/table/service/store-state-collapsed-expand.service.d.ts +0 -15
- package/lib/table/service/store-state-scroll-pos.service.d.ts +0 -10
- package/lib/table/service/store-state-sorting.service.d.ts +0 -11
- package/lib/table/service/tree-row.service.d.ts +0 -5
- package/lib/table/table-api.d.ts +0 -16
- package/lib/table/table-model-factory.d.ts +0 -60
- package/lib/table/table-scope.d.ts +0 -56
- /package/{lib/table/data/common/filter-function.d.ts → src/lib/table/data/common/filter-function.ts} +0 -0
- /package/{lib/table/data/common/get-t.d.ts → src/lib/table/data/common/get-t.ts} +0 -0
- /package/{lib/table/data/common/sort-state.type.d.ts → src/lib/table/data/common/sort-state.type.ts} +0 -0
- /package/{lib/table/data/common/tree-arrow.type.d.ts → src/lib/table/data/common/tree-arrow.type.ts} +0 -0
- /package/{lib/table/data/side-ident.type.d.ts → src/lib/table/data/side-ident.type.ts} +0 -0
- /package/{lib/table/renderer/renderer-cleanup-fn.type.d.ts → src/lib/table/renderer/renderer-cleanup-fn.type.ts} +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { AbstractAreaModel } from "./abstract-area-model";
|
|
2
|
+
import { TreeRow } from "../../common/tree-row";
|
|
3
|
+
import { ColumnDefIf } from "../column/column-def.if";
|
|
4
|
+
import { AreaIdent } from "../area-ident.type";
|
|
5
|
+
import { FilterFunction } from "../../common/filter-function";
|
|
6
|
+
import { SorterService } from "../../../service/sorter.service";
|
|
7
|
+
import { SortItem } from "../../common/sort-item";
|
|
8
|
+
|
|
9
|
+
export class AreaModelObjectyArray<T> extends AbstractAreaModel<T> {
|
|
10
|
+
|
|
11
|
+
protected readonly properties: string[];
|
|
12
|
+
protected filteredRows: T[];
|
|
13
|
+
protected sorterService: SorterService = new SorterService();
|
|
14
|
+
|
|
15
|
+
constructor(
|
|
16
|
+
public override areaIdent: AreaIdent,
|
|
17
|
+
protected readonly rows: T[],
|
|
18
|
+
public override defaultRowHeight: number,
|
|
19
|
+
protected override columnDefs: ColumnDefIf[] = []
|
|
20
|
+
) {
|
|
21
|
+
super(areaIdent, columnDefs, defaultRowHeight);
|
|
22
|
+
this.filteredRows = [...rows];
|
|
23
|
+
this.properties = columnDefs.map(def => def.property);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
getRowCount(): number {
|
|
27
|
+
return this.filteredRows?.length ?? 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
getValueAt(rowIndex: number, columnIndex: number): any {
|
|
31
|
+
const property = this.properties[columnIndex];
|
|
32
|
+
let t = this.filteredRows[rowIndex];
|
|
33
|
+
if (t instanceof TreeRow) {
|
|
34
|
+
t = t.data;
|
|
35
|
+
}
|
|
36
|
+
if (t) {
|
|
37
|
+
return this.getValueByT(t, property);
|
|
38
|
+
}
|
|
39
|
+
return "";
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
getFilteredRows(): T[] {
|
|
43
|
+
return this.filteredRows;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
getAllRows(): T[] {
|
|
47
|
+
return this.rows;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
getRowHeight(_rowIndex: number): number {
|
|
51
|
+
return this.defaultRowHeight;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
override getRowByIndex(rowIndex: number): any {
|
|
55
|
+
return this.filteredRows[rowIndex];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
externalFilterChanged(predictFn: FilterFunction<any>): void {
|
|
59
|
+
this.filteredRows = (this.rows ? this.rows.filter(predictFn) : []);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
override doSort(sortItems: SortItem[]): boolean {
|
|
63
|
+
for (const sortItem of sortItems) {
|
|
64
|
+
const { columnIndex, sortState } = sortItem;
|
|
65
|
+
const f = sortState === "asc" ? 1 :
|
|
66
|
+
sortState === "desc" ? -1 : 0;
|
|
67
|
+
const property = this.properties[columnIndex];
|
|
68
|
+
this.filteredRows = this.filteredRows.sort(this.genericFlatTableSortComparator(property, f));
|
|
69
|
+
}
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
getValueByT(t: T, property: string) {
|
|
74
|
+
if (property.includes(".")) {
|
|
75
|
+
return this.getPropertyValue(t, property.split("."));
|
|
76
|
+
}
|
|
77
|
+
// @ts-ignore
|
|
78
|
+
return t[property];
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
override changeColumnOrder(sourceColumnIndex: number, targetColumnIndex: number): void {
|
|
82
|
+
this.arrayMove(this.properties, sourceColumnIndex, targetColumnIndex);
|
|
83
|
+
super.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
protected genericFlatTableSortComparator(property: string, f: number) {
|
|
87
|
+
return (a: T, b: T) => {
|
|
88
|
+
const va = this.getValueByT(a, property);
|
|
89
|
+
const vb = this.getValueByT(b, property);
|
|
90
|
+
return this.sorterService.genericSortComparator(va, vb, f);
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
private getPropertyValue(o: any, props: string[]): any {
|
|
96
|
+
const prop = props.shift();
|
|
97
|
+
// @ts-ignore
|
|
98
|
+
let o2 = o[prop];
|
|
99
|
+
if (o2 && props.length) {
|
|
100
|
+
return this.getPropertyValue(o2, props);
|
|
101
|
+
}
|
|
102
|
+
return o2;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { TreeRow } from "../../common/tree-row";
|
|
2
|
+
import { TreeRowService } from "../../../service/tree-row.service";
|
|
3
|
+
import { AbstractAreaModel } from "./abstract-area-model";
|
|
4
|
+
import { AreaIdent } from "../area-ident.type";
|
|
5
|
+
import { ColumnDefIf } from "../column/column-def.if";
|
|
6
|
+
import { FilterFunction } from "../../common/filter-function";
|
|
7
|
+
import { SorterService } from "../../../service/sorter.service";
|
|
8
|
+
import { SortItem } from "../../common/sort-item";
|
|
9
|
+
|
|
10
|
+
export class AreaModelTree<S> extends AbstractAreaModel<TreeRow<S>> {
|
|
11
|
+
|
|
12
|
+
protected readonly properties: string[];
|
|
13
|
+
protected sorterService: SorterService = new SorterService();
|
|
14
|
+
|
|
15
|
+
private readonly service = new TreeRowService();
|
|
16
|
+
private filteredFlattenRows: TreeRow<S>[];
|
|
17
|
+
private flattenRows: TreeRow<S>[];
|
|
18
|
+
private lastPredictFn?: FilterFunction<any>;
|
|
19
|
+
|
|
20
|
+
constructor(
|
|
21
|
+
public override areaIdent: AreaIdent,
|
|
22
|
+
public readonly rows: TreeRow<S>[],
|
|
23
|
+
public override defaultRowHeight: number,
|
|
24
|
+
protected override columnDefs: ColumnDefIf[] = []
|
|
25
|
+
) {
|
|
26
|
+
super(areaIdent, columnDefs, defaultRowHeight);
|
|
27
|
+
this.properties = columnDefs.map(def => def.property);
|
|
28
|
+
this.flattenRows = this.service.flattenTree(rows);
|
|
29
|
+
this.filteredFlattenRows = [...this.flattenRows];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
override changeColumnOrder(sourceColumnIndex: number, targetColumnIndex: number): void {
|
|
33
|
+
// not this! this.arrayMove(this.columnDefs...)
|
|
34
|
+
this.arrayMove(this.properties, sourceColumnIndex, targetColumnIndex);
|
|
35
|
+
super.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
recalcVisibleTreeRows() {
|
|
39
|
+
this.filteredFlattenRows = this.service.flattenTree(this.rows);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
getFilteredFlattenRows(): TreeRow<S>[] {
|
|
43
|
+
return this.filteredFlattenRows;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
getRowCount(): number {
|
|
47
|
+
let n = 0;
|
|
48
|
+
for (const r of this.filteredFlattenRows) {
|
|
49
|
+
if (this.service.isVisible(r)) {
|
|
50
|
+
n++;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return n;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
getValueAt(rowIndex: number, columnIndex: number): any {
|
|
57
|
+
const row = this.getRowByIndex(rowIndex);
|
|
58
|
+
if (row) {
|
|
59
|
+
const prop = this.properties[columnIndex];
|
|
60
|
+
if (prop) {
|
|
61
|
+
if (prop.includes(".")) {
|
|
62
|
+
return this.getPropertyValue(row.data, prop.split("."));
|
|
63
|
+
}
|
|
64
|
+
// @ts-ignore
|
|
65
|
+
return row.data[prop];
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return "";
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
getRowHeight(_rowIndex: number): number {
|
|
72
|
+
return this.defaultRowHeight;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
override getCustomClassesAt(rowIndex: number, _columnIndex: number): string[] {
|
|
76
|
+
const row = this.filteredFlattenRows[rowIndex];
|
|
77
|
+
return ["ge-table-tree-cell", "ge-table-tree-deep-" + row.deep];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
override getRowByIndex(idx: number): TreeRow<S> | undefined {
|
|
81
|
+
return this.filteredFlattenRows[idx];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
getValueByT(t: S, property: string) {
|
|
85
|
+
if (property.includes(".")) {
|
|
86
|
+
return this.getPropertyValue(t, property.split("."));
|
|
87
|
+
}
|
|
88
|
+
// @ts-ignore
|
|
89
|
+
return t[property];
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
externalFilterChanged<S>(predictFn: FilterFunction<S>): void {
|
|
93
|
+
this.lastPredictFn = predictFn;
|
|
94
|
+
this.doFiltering();
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
override doSort(sortItems: SortItem[]): boolean {
|
|
98
|
+
const { columnIndex, sortState } = sortItems[sortItems.length - 1];
|
|
99
|
+
const f = sortState === "asc" ? 1 :
|
|
100
|
+
sortState === "desc" ? -1 : 0;
|
|
101
|
+
|
|
102
|
+
const property = this.properties[columnIndex];
|
|
103
|
+
this.treeSort(this.rows, property, f);
|
|
104
|
+
|
|
105
|
+
this.flattenRows = this.service.flattenTree(this.rows);
|
|
106
|
+
this.filteredFlattenRows = [...this.flattenRows];
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
toggleExpandCollapseAll(expanded: boolean) {
|
|
111
|
+
this.expandAllRecursive(this.rows, expanded);
|
|
112
|
+
|
|
113
|
+
this.flattenRows = this.service.flattenTree(this.rows);
|
|
114
|
+
this.doFiltering();
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
setAllParentsOk(item: TreeRow<any>) {
|
|
118
|
+
if (item.parent) {
|
|
119
|
+
item.parent.keep = true;
|
|
120
|
+
this.setAllParentsOk(item.parent);
|
|
121
|
+
}
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
override setValue(rowIndex: number, columnIndex: number, value: any): boolean {
|
|
126
|
+
const editInputPipe = this.columnDefs[columnIndex]?.editInputPipe;
|
|
127
|
+
if (editInputPipe) {
|
|
128
|
+
value = editInputPipe(value, rowIndex, columnIndex);
|
|
129
|
+
}
|
|
130
|
+
const treeRow: TreeRow<S> | undefined = this.getRowByIndex(rowIndex);
|
|
131
|
+
if (treeRow) {
|
|
132
|
+
const row: S = treeRow.data;
|
|
133
|
+
const property = this.columnDefs[columnIndex].property;
|
|
134
|
+
if (property.includes(".")) {
|
|
135
|
+
return this.setPropertyValue(row, property.split("."), value);
|
|
136
|
+
}
|
|
137
|
+
// @ts-ignore
|
|
138
|
+
row[property] = value;
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
protected genericTreeTableSortComparator(property: string, f: number) {
|
|
145
|
+
return (a: TreeRow<S>, b: TreeRow<S>) => {
|
|
146
|
+
const va = this.getValueByT(a.data, property);
|
|
147
|
+
const vb = this.getValueByT(b.data, property);
|
|
148
|
+
return this.sorterService.genericSortComparator(va, vb, f);
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
private expandAllRecursive(arr: TreeRow<S>[], expanded: boolean) {
|
|
153
|
+
for (const row of arr) {
|
|
154
|
+
row.expanded = expanded;
|
|
155
|
+
if (row.children) {
|
|
156
|
+
this.expandAllRecursive(row.children, expanded);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
private doFiltering() {
|
|
162
|
+
if (!this.lastPredictFn) {
|
|
163
|
+
this.filteredFlattenRows = [...(this.flattenRows ? this.flattenRows : [])];
|
|
164
|
+
} else {
|
|
165
|
+
|
|
166
|
+
if (!this.flattenRows) {
|
|
167
|
+
this.flattenRows = [];
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
let maxDeep = 0;
|
|
171
|
+
this.flattenRows.forEach(v => {
|
|
172
|
+
maxDeep = Math.max(maxDeep, v.deep);
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
const okRows = this.flattenRows.filter(
|
|
176
|
+
(value, index, array) => {
|
|
177
|
+
// @ts-ignore
|
|
178
|
+
return this.lastPredictFn(value, index, array);
|
|
179
|
+
}
|
|
180
|
+
);
|
|
181
|
+
this.flattenRows.forEach(v => v.keep = false);
|
|
182
|
+
this.flattenRows.forEach(v => {
|
|
183
|
+
if (okRows.includes(v)) {
|
|
184
|
+
v.keep = true;
|
|
185
|
+
this.setAllParentsOk(v);
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
this.filteredFlattenRows = this.flattenRows.filter(
|
|
190
|
+
(value, _index, _array) => {
|
|
191
|
+
return value.keep;
|
|
192
|
+
}
|
|
193
|
+
);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
private getPropertyValue(o: any, props: string[]): any {
|
|
198
|
+
const prop = props.shift();
|
|
199
|
+
// @ts-ignore
|
|
200
|
+
let o2 = o[prop];
|
|
201
|
+
if (o2 && props.length) {
|
|
202
|
+
return this.getPropertyValue(o2, props);
|
|
203
|
+
}
|
|
204
|
+
return o2;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
private treeSort(rows: TreeRow<S>[], property: string, f: number) {
|
|
208
|
+
rows.sort(this.genericTreeTableSortComparator(property, f));
|
|
209
|
+
for (const row of rows) {
|
|
210
|
+
if (row.children) {
|
|
211
|
+
this.treeSort(row.children, property, f);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { CellRendererIf } from "../../../renderer/cell-render.if";
|
|
2
|
+
import { CheckedType } from "../../common/checked-type";
|
|
3
|
+
import { CheckboxModelIf } from "../../../checkbox/checkbox-model.if";
|
|
4
|
+
import { FilterFunction } from "../../common/filter-function";
|
|
5
|
+
import { SortItem } from "../../common/sort-item";
|
|
6
|
+
import { AreaIdent } from "../area-ident.type";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* This is the model interface for an area model. A table can have three of these models, one for the header,
|
|
10
|
+
* one for the body , and one for the footer.
|
|
11
|
+
* An AreaModelIf gives you information about the rows and cell contents.
|
|
12
|
+
* The column information is given by the TableModelIf.
|
|
13
|
+
*/
|
|
14
|
+
export interface AreaModelIf {
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The identifier for one of the areas: header, body, footer.
|
|
19
|
+
*/
|
|
20
|
+
areaIdent: AreaIdent;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* A model and controller for a row checkbox selection
|
|
24
|
+
*/
|
|
25
|
+
rowSelectionModel: CheckboxModelIf<any> | undefined;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Method for moving a column from position sourceColumnIndex to targetColumnIndex.
|
|
29
|
+
*/
|
|
30
|
+
changeColumnOrder(sourceColumnIndex: number, targetColumnIndex: number): void;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Method for changing a cell value.
|
|
34
|
+
*/
|
|
35
|
+
setValue(rowIndex: number, columnIndex: number, value: any): boolean;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Internally used by TableModel.
|
|
39
|
+
*/
|
|
40
|
+
init(): void;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Returns the number of rows of the area
|
|
44
|
+
*/
|
|
45
|
+
getRowCount(): number;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Returns the value of the cell at position rowIndex/columnIndex.
|
|
49
|
+
*/
|
|
50
|
+
getValueAt(rowIndex: number, columnIndex: number): any;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Returns the value of a colspan of the cell at position rowIndex/columnIndex.
|
|
54
|
+
* A value below 2 is ignored.
|
|
55
|
+
*/
|
|
56
|
+
getColspanAt(rowIndex: number, columnIndex: number): number;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* This return value is internally used to optimize the render performance.
|
|
60
|
+
* Set this value to the lowest possible value. If the model has no colspan,
|
|
61
|
+
* a value of 0 would be good. The dafault is 32. If your model has a colspan
|
|
62
|
+
* cell greater 32, don't forget to increase this value.
|
|
63
|
+
*/
|
|
64
|
+
getMaxColspan(): number;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Returns the value of a rowspan of the cell at position rowIndex/columnIndex.
|
|
68
|
+
* A value below 2 is ignored.
|
|
69
|
+
*/
|
|
70
|
+
getRowspanAt(rowIndex: number, columnIndex: number): number;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* This return value is internally used to optimize the render performance.
|
|
74
|
+
* Set this value to the lowest possible value. If the model has no rowspan,
|
|
75
|
+
* a value of 0 would be good. The dafault is 32. If your model has a rowspan
|
|
76
|
+
* cell greater 32, don't forget to increase this value.
|
|
77
|
+
*/
|
|
78
|
+
getMaxRowspan(): number;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* This method can be used to return a list of css classes for the given cell
|
|
82
|
+
* @param rowIndex row index of the cell
|
|
83
|
+
* @param columnIndex column index of the cell
|
|
84
|
+
*/
|
|
85
|
+
getCustomClassesAt(rowIndex: number, columnIndex: number): string[];
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* This method can be used to return an object with css style information for the given cell
|
|
89
|
+
* @param rowIndex row index of the cell
|
|
90
|
+
* @param columnIndex column index of the cell
|
|
91
|
+
*/
|
|
92
|
+
getCustomStyleAt(rowIndex: number, columnIndex: number): { [key: string]: string } | undefined;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Returns the cell value of the given cell. This value will be rendered
|
|
96
|
+
* directly in the cell or rendered by a cell renderer: see {@link getCellRenderer}.
|
|
97
|
+
* @param rowIndex
|
|
98
|
+
* @param columnIndex
|
|
99
|
+
*/
|
|
100
|
+
getValueAt(rowIndex: number, columnIndex: number): any;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Returns the value of a tooltip of the given cell (rowIndex/columnIndex).
|
|
104
|
+
* @param rowIndex
|
|
105
|
+
* @param columnIndex
|
|
106
|
+
*/
|
|
107
|
+
getTooltipAt(rowIndex: number, columnIndex: number): any;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Returns a cell renderer class for the given cell (rowIndex/columnIndex).
|
|
111
|
+
* If the return value is undefined, no renderer is used and the model value will be rendered directly in the cell.
|
|
112
|
+
* @param rowIndex
|
|
113
|
+
* @param columnIndex
|
|
114
|
+
*/
|
|
115
|
+
getCellRenderer(rowIndex: number, columnIndex: number): CellRendererIf | undefined;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Returns the row height in pixel of the given row (rowIndex).
|
|
119
|
+
* @param rowIndex
|
|
120
|
+
*/
|
|
121
|
+
getRowHeight(rowIndex: number): number;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Returns the row of the model, which correspond to the rowIndex.
|
|
125
|
+
* @param rowIndex
|
|
126
|
+
*/
|
|
127
|
+
getRowByIndex(rowIndex: number): any;
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Return the y-position in pixel of the top of the row on the scrollpane.
|
|
131
|
+
* For big tables it can be a big value (greate than the height of the viewport).
|
|
132
|
+
* @param rowIndex
|
|
133
|
+
*/
|
|
134
|
+
getYPosByRowIndex(rowIndex: number): number;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* If this method returns true, the cell can be edited by the user.
|
|
138
|
+
* @param rowIndex
|
|
139
|
+
* @param columnIndex
|
|
140
|
+
*/
|
|
141
|
+
isEditable(rowIndex: number, columnIndex: number): boolean;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* If true, the cell is selectable.
|
|
145
|
+
* @param rowIndex
|
|
146
|
+
* @param columnIndex
|
|
147
|
+
*/
|
|
148
|
+
isSelectable(rowIndex: number, columnIndex: number): boolean;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* If true, the row is checkable and a checkbox is rendered at the beginning of the row.
|
|
152
|
+
* @param rowIndex
|
|
153
|
+
*/
|
|
154
|
+
isRowCheckable(rowIndex: number): boolean;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Returns the checked state of an row.
|
|
158
|
+
* @param rowIndex
|
|
159
|
+
*/
|
|
160
|
+
isRowChecked(rowIndex: number): CheckedType | undefined;
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Set the checked state of the row (rowIndex) to #checked.
|
|
164
|
+
* @param rowIndex
|
|
165
|
+
* @param checked
|
|
166
|
+
*/
|
|
167
|
+
setRowChecked(rowIndex: number, checked: boolean): void;
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* If true, the table is filterable. Rows can be filtered with help of {@link #externalFilterChanged()}
|
|
171
|
+
*/
|
|
172
|
+
isFilterable(): boolean;
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Will be called internally, when a filtering is trigger.
|
|
176
|
+
* @param predictFn Defines, what row are invisible or visible after filtering.
|
|
177
|
+
*/
|
|
178
|
+
externalFilterChanged<T>(predictFn: FilterFunction<T>): void;
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* If the 'restore sort' option is set (see), this method will be triggered automatically by the table,
|
|
182
|
+
* @param sortItems
|
|
183
|
+
*/
|
|
184
|
+
doSort(sortItems: SortItem[]): boolean;
|
|
185
|
+
}
|
|
186
|
+
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { AreaModelIf } from "./area-model.if";
|
|
2
|
+
import { AreaIdent } from "../area-ident.type";
|
|
3
|
+
import { CheckboxModelIf } from "../../../checkbox/checkbox-model.if";
|
|
4
|
+
import { SortItem } from "../../common/sort-item";
|
|
5
|
+
import { FilterFunction } from "../../common/filter-function";
|
|
6
|
+
import { CellRendererIf } from "../../../renderer/cell-render.if";
|
|
7
|
+
import { CheckedType } from "../../common/checked-type";
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
export class AreaModel implements AreaModelIf {
|
|
11
|
+
|
|
12
|
+
areaIdent: AreaIdent = "body";
|
|
13
|
+
rowSelectionModel: CheckboxModelIf<any> | undefined = undefined;
|
|
14
|
+
|
|
15
|
+
changeColumnOrder(_sourceColumnIndex: number, _targetColumnIndex: number): void {
|
|
16
|
+
// ignore
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
doSort(_sortItems: SortItem[]): boolean {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
externalFilterChanged<T>(_predictFn: FilterFunction<T>): void {
|
|
24
|
+
// ignore
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
getCellRenderer(_rowIndex: number, _columnIndex: number): CellRendererIf | undefined {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
getColspanAt(_rowIndex: number, _columnIndex: number): number {
|
|
32
|
+
return 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
getCustomClassesAt(_rowIndex: number, _columnIndex: number): string[] {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
getCustomStyleAt(_rowIndex: number, _columnIndex: number): { [p: string]: string } | undefined {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
getMaxColspan(): number {
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
getMaxRowspan(): number {
|
|
48
|
+
return 0;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
getRowByIndex(_rowIndex: number): any {
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
getRowCount(): number {
|
|
55
|
+
return 0;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
getRowHeight(_rowIndex: number): number {
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
getRowspanAt(_rowIndex: number, _columnIndex: number): number {
|
|
63
|
+
return 0;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
getTooltipAt(_rowIndex: number, _columnIndex: number): any {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
getValueAt(_rowIndex: number, _columnIndex: number): any {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
getYPosByRowIndex(_rowIndex: number): number {
|
|
75
|
+
return 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
init(): void {
|
|
79
|
+
// ignore
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
isEditable(_rowIndex: number, _columnIndex: number): boolean {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
isFilterable(): boolean {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
isRowCheckable(_rowIndex: number): boolean {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
isRowChecked(_rowIndex: number): CheckedType | undefined {
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
isSelectable(_rowIndex: number, _columnIndex: number): boolean {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
setRowChecked(_rowIndex: number, _checked: boolean): void {
|
|
103
|
+
// ignore
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
setValue(_rowIndex: number, _columnIndex: number, _value: any): boolean {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { CellRange } from "../../common/cell-range";
|
|
2
|
+
import { AreaModelIf } from "./area-model.if";
|
|
3
|
+
import { TableModelIf } from "../table-model.if";
|
|
4
|
+
|
|
5
|
+
export class ColAndRowspanModel {
|
|
6
|
+
|
|
7
|
+
protected colAndRowspanRanges: CellRange[] | undefined = undefined;
|
|
8
|
+
|
|
9
|
+
constructor(
|
|
10
|
+
protected tableModel: TableModelIf,
|
|
11
|
+
protected areaModel: AreaModelIf
|
|
12
|
+
) {
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
init() {
|
|
16
|
+
if (this.areaModel.getMaxColspan() < 2 && this.areaModel.getMaxRowspan() < 2) {
|
|
17
|
+
return; // sip
|
|
18
|
+
}
|
|
19
|
+
this.colAndRowspanRanges = [];
|
|
20
|
+
const rowCount = this.areaModel.getRowCount();
|
|
21
|
+
const colCount = this.tableModel.getColumnCount();
|
|
22
|
+
for (let r = 0; r < rowCount; r++) {
|
|
23
|
+
for (let c = 0; c < colCount; c++) {
|
|
24
|
+
let cs = this.areaModel.getColspanAt(r, c);
|
|
25
|
+
let rs = this.areaModel.getRowspanAt(r, c);
|
|
26
|
+
if (cs > 1 || rs > 1) {
|
|
27
|
+
if (cs === 0) {
|
|
28
|
+
cs = 1;
|
|
29
|
+
}
|
|
30
|
+
if (rs === 0) {
|
|
31
|
+
rs = 1;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const gammaRange = this.areaModel.hasOwnProperty('gammaCells');
|
|
35
|
+
this.colAndRowspanRanges.push(
|
|
36
|
+
new CellRange(r, c, r + rs - 1, c + cs - 1, gammaRange)
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
getRanges(): CellRange[] {
|
|
44
|
+
if (this.colAndRowspanRanges) {
|
|
45
|
+
return this.colAndRowspanRanges;
|
|
46
|
+
}
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
isInRange(rowIndex: number, columnIndex: number): boolean {
|
|
51
|
+
if (this.colAndRowspanRanges) {
|
|
52
|
+
for (const range of this.colAndRowspanRanges) {
|
|
53
|
+
if (range.isInRange(rowIndex, columnIndex)) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
}
|