photon-grid-core 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -0
- package/README.md +0 -0
- package/cell-selection/active-grid-registry.d.ts +37 -0
- package/cell-selection/active-grid-registry.d.ts.map +1 -0
- package/cell-selection/active-grid-registry.js +25 -0
- package/cell-selection/active-grid-registry.js.map +1 -0
- package/cell-selection/cell-selection-engine.d.ts +336 -0
- package/cell-selection/cell-selection-engine.d.ts.map +1 -0
- package/cell-selection/cell-selection-engine.js +1534 -0
- package/cell-selection/cell-selection-engine.js.map +1 -0
- package/cell-selection/selection-range.d.ts +16 -0
- package/cell-selection/selection-range.d.ts.map +1 -0
- package/cell-selection/selection-range.js +48 -0
- package/cell-selection/selection-range.js.map +1 -0
- package/cell-selection/selection-renderer.d.ts +24 -0
- package/cell-selection/selection-renderer.d.ts.map +1 -0
- package/cell-selection/selection-renderer.js +107 -0
- package/cell-selection/selection-renderer.js.map +1 -0
- package/chart/chart-analyzer/aggregation-analyzer.d.ts +18 -0
- package/chart/chart-analyzer/aggregation-analyzer.d.ts.map +1 -0
- package/chart/chart-analyzer/aggregation-analyzer.js +63 -0
- package/chart/chart-analyzer/aggregation-analyzer.js.map +1 -0
- package/chart/chart-analyzer/bar-analyzer.d.ts +19 -0
- package/chart/chart-analyzer/bar-analyzer.d.ts.map +1 -0
- package/chart/chart-analyzer/bar-analyzer.js +56 -0
- package/chart/chart-analyzer/bar-analyzer.js.map +1 -0
- package/chart/chart-analyzer/bubble-analyzer.d.ts +16 -0
- package/chart/chart-analyzer/bubble-analyzer.d.ts.map +1 -0
- package/chart/chart-analyzer/bubble-analyzer.js +61 -0
- package/chart/chart-analyzer/bubble-analyzer.js.map +1 -0
- package/chart/chart-analyzer/cardinality-analyzer.d.ts +13 -0
- package/chart/chart-analyzer/cardinality-analyzer.d.ts.map +1 -0
- package/chart/chart-analyzer/cardinality-analyzer.js +28 -0
- package/chart/chart-analyzer/cardinality-analyzer.js.map +1 -0
- package/chart/chart-analyzer/dimension-analyzer.d.ts +12 -0
- package/chart/chart-analyzer/dimension-analyzer.d.ts.map +1 -0
- package/chart/chart-analyzer/dimension-analyzer.js +33 -0
- package/chart/chart-analyzer/dimension-analyzer.js.map +1 -0
- package/chart/chart-analyzer/histogram-analyzer.d.ts +11 -0
- package/chart/chart-analyzer/histogram-analyzer.d.ts.map +1 -0
- package/chart/chart-analyzer/histogram-analyzer.js +43 -0
- package/chart/chart-analyzer/histogram-analyzer.js.map +1 -0
- package/chart/chart-analyzer/index.d.ts +58 -0
- package/chart/chart-analyzer/index.d.ts.map +1 -0
- package/chart/chart-analyzer/index.js +130 -0
- package/chart/chart-analyzer/index.js.map +1 -0
- package/chart/chart-analyzer/line-analyzer.d.ts +23 -0
- package/chart/chart-analyzer/line-analyzer.d.ts.map +1 -0
- package/chart/chart-analyzer/line-analyzer.js +61 -0
- package/chart/chart-analyzer/line-analyzer.js.map +1 -0
- package/chart/chart-analyzer/measure-analyzer.d.ts +11 -0
- package/chart/chart-analyzer/measure-analyzer.d.ts.map +1 -0
- package/chart/chart-analyzer/measure-analyzer.js +44 -0
- package/chart/chart-analyzer/measure-analyzer.js.map +1 -0
- package/chart/chart-analyzer/pie-analyzer.d.ts +19 -0
- package/chart/chart-analyzer/pie-analyzer.d.ts.map +1 -0
- package/chart/chart-analyzer/pie-analyzer.js +64 -0
- package/chart/chart-analyzer/pie-analyzer.js.map +1 -0
- package/chart/chart-analyzer/recommendation-engine.d.ts +18 -0
- package/chart/chart-analyzer/recommendation-engine.d.ts.map +1 -0
- package/chart/chart-analyzer/recommendation-engine.js +82 -0
- package/chart/chart-analyzer/recommendation-engine.js.map +1 -0
- package/chart/chart-analyzer/scatter-analyzer.d.ts +16 -0
- package/chart/chart-analyzer/scatter-analyzer.d.ts.map +1 -0
- package/chart/chart-analyzer/scatter-analyzer.js +70 -0
- package/chart/chart-analyzer/scatter-analyzer.js.map +1 -0
- package/chart/chart-analyzer/types.d.ts +52 -0
- package/chart/chart-analyzer/types.d.ts.map +1 -0
- package/chart/chart-analyzer/types.js +10 -0
- package/chart/chart-analyzer/types.js.map +1 -0
- package/chart/chart-analyzer.d.ts +12 -0
- package/chart/chart-analyzer.d.ts.map +1 -0
- package/chart/chart-analyzer.js +77 -0
- package/chart/chart-analyzer.js.map +1 -0
- package/chart/chart-data-transformer.d.ts +26 -0
- package/chart/chart-data-transformer.d.ts.map +1 -0
- package/chart/chart-data-transformer.js +93 -0
- package/chart/chart-data-transformer.js.map +1 -0
- package/chart/chart-engine.d.ts +38 -0
- package/chart/chart-engine.d.ts.map +1 -0
- package/chart/chart-engine.js +96 -0
- package/chart/chart-engine.js.map +1 -0
- package/chart/chart-panel.d.ts +54 -0
- package/chart/chart-panel.d.ts.map +1 -0
- package/chart/chart-panel.js +350 -0
- package/chart/chart-panel.js.map +1 -0
- package/chart/chart-renderer.d.ts +93 -0
- package/chart/chart-renderer.d.ts.map +1 -0
- package/chart/chart-renderer.js +1330 -0
- package/chart/chart-renderer.js.map +1 -0
- package/chart/sparkline/sparkline-renderer.d.ts +269 -0
- package/chart/sparkline/sparkline-renderer.d.ts.map +1 -0
- package/chart/sparkline/sparkline-renderer.js +875 -0
- package/chart/sparkline/sparkline-renderer.js.map +1 -0
- package/chart/sparkline/sparkline.types.d.ts +214 -0
- package/chart/sparkline/sparkline.types.d.ts.map +1 -0
- package/chart/sparkline/sparkline.types.js +8 -0
- package/chart/sparkline/sparkline.types.js.map +1 -0
- package/column-groups/column-group-drag-handler.d.ts +169 -0
- package/column-groups/column-group-drag-handler.d.ts.map +1 -0
- package/column-groups/column-group-drag-handler.js +517 -0
- package/column-groups/column-group-drag-handler.js.map +1 -0
- package/column-groups/column-group-header-builder.d.ts +106 -0
- package/column-groups/column-group-header-builder.d.ts.map +1 -0
- package/column-groups/column-group-header-builder.js +311 -0
- package/column-groups/column-group-header-builder.js.map +1 -0
- package/column-groups/column-group-model.d.ts +248 -0
- package/column-groups/column-group-model.d.ts.map +1 -0
- package/column-groups/column-group-model.js +668 -0
- package/column-groups/column-group-model.js.map +1 -0
- package/column-groups/column-group-state-manager.d.ts +110 -0
- package/column-groups/column-group-state-manager.d.ts.map +1 -0
- package/column-groups/column-group-state-manager.js +153 -0
- package/column-groups/column-group-state-manager.js.map +1 -0
- package/column-groups/column-group.types.d.ts +250 -0
- package/column-groups/column-group.types.d.ts.map +1 -0
- package/column-groups/column-group.types.js +20 -0
- package/column-groups/column-group.types.js.map +1 -0
- package/column-groups/display-group-builder.d.ts +91 -0
- package/column-groups/display-group-builder.d.ts.map +1 -0
- package/column-groups/display-group-builder.js +225 -0
- package/column-groups/display-group-builder.js.map +1 -0
- package/column-groups/display-group-drag-handler.d.ts +205 -0
- package/column-groups/display-group-drag-handler.d.ts.map +1 -0
- package/column-groups/display-group-drag-handler.js +536 -0
- package/column-groups/display-group-drag-handler.js.map +1 -0
- package/column-groups/display-group-engine.d.ts +310 -0
- package/column-groups/display-group-engine.d.ts.map +1 -0
- package/column-groups/display-group-engine.js +549 -0
- package/column-groups/display-group-engine.js.map +1 -0
- package/column-groups/display-group-header-builder.d.ts +94 -0
- package/column-groups/display-group-header-builder.d.ts.map +1 -0
- package/column-groups/display-group-header-builder.js +224 -0
- package/column-groups/display-group-header-builder.js.map +1 -0
- package/column-groups/display-group.types.d.ts +140 -0
- package/column-groups/display-group.types.d.ts.map +1 -0
- package/column-groups/display-group.types.js +2 -0
- package/column-groups/display-group.types.js.map +1 -0
- package/column-groups/index.d.ts +25 -0
- package/column-groups/index.d.ts.map +1 -0
- package/column-groups/index.js +26 -0
- package/column-groups/index.js.map +1 -0
- package/column-groups/logical-group-registry.d.ts +77 -0
- package/column-groups/logical-group-registry.d.ts.map +1 -0
- package/column-groups/logical-group-registry.js +118 -0
- package/column-groups/logical-group-registry.js.map +1 -0
- package/core/column-model.d.ts +30 -0
- package/core/column-model.d.ts.map +1 -0
- package/core/column-model.js +203 -0
- package/core/column-model.js.map +1 -0
- package/core/grid-api.d.ts +187 -0
- package/core/grid-api.d.ts.map +1 -0
- package/core/grid-api.js +569 -0
- package/core/grid-api.js.map +1 -0
- package/core/grid-context.d.ts +61 -0
- package/core/grid-context.d.ts.map +1 -0
- package/core/grid-context.js +2 -0
- package/core/grid-context.js.map +1 -0
- package/core/grid-core.d.ts +49 -0
- package/core/grid-core.d.ts.map +1 -0
- package/core/grid-core.js +675 -0
- package/core/grid-core.js.map +1 -0
- package/core/grid-store.d.ts +62 -0
- package/core/grid-store.d.ts.map +1 -0
- package/core/grid-store.js +104 -0
- package/core/grid-store.js.map +1 -0
- package/core/row-model.d.ts +32 -0
- package/core/row-model.d.ts.map +1 -0
- package/core/row-model.js +150 -0
- package/core/row-model.js.map +1 -0
- package/drag-drop/drag-autoscroll.d.ts +14 -0
- package/drag-drop/drag-autoscroll.d.ts.map +1 -0
- package/drag-drop/drag-autoscroll.js +66 -0
- package/drag-drop/drag-autoscroll.js.map +1 -0
- package/drag-drop/drag-drop-engine.d.ts +55 -0
- package/drag-drop/drag-drop-engine.d.ts.map +1 -0
- package/drag-drop/drag-drop-engine.js +179 -0
- package/drag-drop/drag-drop-engine.js.map +1 -0
- package/drag-drop/drag-preview.d.ts +32 -0
- package/drag-drop/drag-preview.d.ts.map +1 -0
- package/drag-drop/drag-preview.js +74 -0
- package/drag-drop/drag-preview.js.map +1 -0
- package/engines/aggregation/aggregation-engine.d.ts +66 -0
- package/engines/aggregation/aggregation-engine.d.ts.map +1 -0
- package/engines/aggregation/aggregation-engine.js +149 -0
- package/engines/aggregation/aggregation-engine.js.map +1 -0
- package/engines/clipboard/clipboard-engine.d.ts +89 -0
- package/engines/clipboard/clipboard-engine.d.ts.map +1 -0
- package/engines/clipboard/clipboard-engine.js +323 -0
- package/engines/clipboard/clipboard-engine.js.map +1 -0
- package/engines/editing/cell-editor-engine.d.ts +62 -0
- package/engines/editing/cell-editor-engine.d.ts.map +1 -0
- package/engines/editing/cell-editor-engine.js +359 -0
- package/engines/editing/cell-editor-engine.js.map +1 -0
- package/engines/editing/custom-dropdown-editor.d.ts +99 -0
- package/engines/editing/custom-dropdown-editor.d.ts.map +1 -0
- package/engines/editing/custom-dropdown-editor.js +355 -0
- package/engines/editing/custom-dropdown-editor.js.map +1 -0
- package/engines/editing/value-parser.d.ts +12 -0
- package/engines/editing/value-parser.d.ts.map +1 -0
- package/engines/editing/value-parser.js +125 -0
- package/engines/editing/value-parser.js.map +1 -0
- package/engines/export/export-engine.d.ts +16 -0
- package/engines/export/export-engine.d.ts.map +1 -0
- package/engines/export/export-engine.js +99 -0
- package/engines/export/export-engine.js.map +1 -0
- package/engines/filter/filter-condition.d.ts +7 -0
- package/engines/filter/filter-condition.d.ts.map +1 -0
- package/engines/filter/filter-condition.js +126 -0
- package/engines/filter/filter-condition.js.map +1 -0
- package/engines/filter/filter-engine.d.ts +35 -0
- package/engines/filter/filter-engine.d.ts.map +1 -0
- package/engines/filter/filter-engine.js +150 -0
- package/engines/filter/filter-engine.js.map +1 -0
- package/engines/filter/filter-panel.d.ts +103 -0
- package/engines/filter/filter-panel.d.ts.map +1 -0
- package/engines/filter/filter-panel.js +645 -0
- package/engines/filter/filter-panel.js.map +1 -0
- package/engines/grouping/group-node.d.ts +21 -0
- package/engines/grouping/group-node.d.ts.map +1 -0
- package/engines/grouping/group-node.js +96 -0
- package/engines/grouping/group-node.js.map +1 -0
- package/engines/grouping/grouping-engine.d.ts +33 -0
- package/engines/grouping/grouping-engine.d.ts.map +1 -0
- package/engines/grouping/grouping-engine.js +118 -0
- package/engines/grouping/grouping-engine.js.map +1 -0
- package/engines/master-detail/master-detail-engine.d.ts +77 -0
- package/engines/master-detail/master-detail-engine.d.ts.map +1 -0
- package/engines/master-detail/master-detail-engine.js +199 -0
- package/engines/master-detail/master-detail-engine.js.map +1 -0
- package/engines/pagination/pagination-engine.d.ts +33 -0
- package/engines/pagination/pagination-engine.d.ts.map +1 -0
- package/engines/pagination/pagination-engine.js +110 -0
- package/engines/pagination/pagination-engine.js.map +1 -0
- package/engines/selection/row-selection-engine.d.ts +26 -0
- package/engines/selection/row-selection-engine.d.ts.map +1 -0
- package/engines/selection/row-selection-engine.js +145 -0
- package/engines/selection/row-selection-engine.js.map +1 -0
- package/engines/sort/sort-comparator.d.ts +43 -0
- package/engines/sort/sort-comparator.d.ts.map +1 -0
- package/engines/sort/sort-comparator.js +113 -0
- package/engines/sort/sort-comparator.js.map +1 -0
- package/engines/sort/sort-engine.d.ts +67 -0
- package/engines/sort/sort-engine.d.ts.map +1 -0
- package/engines/sort/sort-engine.js +178 -0
- package/engines/sort/sort-engine.js.map +1 -0
- package/engines/summary/summary-engine.d.ts +17 -0
- package/engines/summary/summary-engine.d.ts.map +1 -0
- package/engines/summary/summary-engine.js +72 -0
- package/engines/summary/summary-engine.js.map +1 -0
- package/engines/tree/tree-data-service.d.ts +117 -0
- package/engines/tree/tree-data-service.d.ts.map +1 -0
- package/engines/tree/tree-data-service.js +296 -0
- package/engines/tree/tree-data-service.js.map +1 -0
- package/engines/tree/tree-expansion-service.d.ts +35 -0
- package/engines/tree/tree-expansion-service.d.ts.map +1 -0
- package/engines/tree/tree-expansion-service.js +84 -0
- package/engines/tree/tree-expansion-service.js.map +1 -0
- package/engines/tree/tree-node.d.ts +40 -0
- package/engines/tree/tree-node.d.ts.map +1 -0
- package/engines/tree/tree-node.js +199 -0
- package/engines/tree/tree-node.js.map +1 -0
- package/engines/tree/tree-selection-service.d.ts +35 -0
- package/engines/tree/tree-selection-service.d.ts.map +1 -0
- package/engines/tree/tree-selection-service.js +72 -0
- package/engines/tree/tree-selection-service.js.map +1 -0
- package/engines/undo-redo/undo-redo-engine.d.ts +114 -0
- package/engines/undo-redo/undo-redo-engine.d.ts.map +1 -0
- package/engines/undo-redo/undo-redo-engine.js +165 -0
- package/engines/undo-redo/undo-redo-engine.js.map +1 -0
- package/event-bus/event-bus.d.ts +21 -0
- package/event-bus/event-bus.d.ts.map +1 -0
- package/event-bus/event-bus.js +106 -0
- package/event-bus/event-bus.js.map +1 -0
- package/icons/icon-registry.d.ts +19 -0
- package/icons/icon-registry.d.ts.map +1 -0
- package/icons/icon-registry.js +37 -0
- package/icons/icon-registry.js.map +1 -0
- package/icons/icon-renderer.d.ts +18 -0
- package/icons/icon-renderer.d.ts.map +1 -0
- package/icons/icon-renderer.js +75 -0
- package/icons/icon-renderer.js.map +1 -0
- package/icons/icon-sets/core-icons.d.ts +2 -0
- package/icons/icon-sets/core-icons.d.ts.map +1 -0
- package/icons/icon-sets/core-icons.js +48 -0
- package/icons/icon-sets/core-icons.js.map +1 -0
- package/index.d.ts +72 -0
- package/index.d.ts.map +1 -0
- package/index.js +54 -0
- package/index.js.map +1 -0
- package/package.json +64 -0
- package/photon-ai/builtins/filter.commands.d.ts +4 -0
- package/photon-ai/builtins/filter.commands.d.ts.map +1 -0
- package/photon-ai/builtins/filter.commands.js +189 -0
- package/photon-ai/builtins/filter.commands.js.map +1 -0
- package/photon-ai/builtins/grouping.commands.d.ts +4 -0
- package/photon-ai/builtins/grouping.commands.d.ts.map +1 -0
- package/photon-ai/builtins/grouping.commands.js +115 -0
- package/photon-ai/builtins/grouping.commands.js.map +1 -0
- package/photon-ai/builtins/index.d.ts +10 -0
- package/photon-ai/builtins/index.d.ts.map +1 -0
- package/photon-ai/builtins/index.js +26 -0
- package/photon-ai/builtins/index.js.map +1 -0
- package/photon-ai/builtins/info.commands.d.ts +4 -0
- package/photon-ai/builtins/info.commands.d.ts.map +1 -0
- package/photon-ai/builtins/info.commands.js +201 -0
- package/photon-ai/builtins/info.commands.js.map +1 -0
- package/photon-ai/builtins/move.commands.d.ts +4 -0
- package/photon-ai/builtins/move.commands.d.ts.map +1 -0
- package/photon-ai/builtins/move.commands.js +53 -0
- package/photon-ai/builtins/move.commands.js.map +1 -0
- package/photon-ai/builtins/pin.commands.d.ts +4 -0
- package/photon-ai/builtins/pin.commands.d.ts.map +1 -0
- package/photon-ai/builtins/pin.commands.js +106 -0
- package/photon-ai/builtins/pin.commands.js.map +1 -0
- package/photon-ai/builtins/selection.commands.d.ts +4 -0
- package/photon-ai/builtins/selection.commands.d.ts.map +1 -0
- package/photon-ai/builtins/selection.commands.js +102 -0
- package/photon-ai/builtins/selection.commands.js.map +1 -0
- package/photon-ai/builtins/sort.commands.d.ts +4 -0
- package/photon-ai/builtins/sort.commands.d.ts.map +1 -0
- package/photon-ai/builtins/sort.commands.js +67 -0
- package/photon-ai/builtins/sort.commands.js.map +1 -0
- package/photon-ai/builtins/visibility.commands.d.ts +4 -0
- package/photon-ai/builtins/visibility.commands.d.ts.map +1 -0
- package/photon-ai/builtins/visibility.commands.js +75 -0
- package/photon-ai/builtins/visibility.commands.js.map +1 -0
- package/photon-ai/command-builder.d.ts +21 -0
- package/photon-ai/command-builder.d.ts.map +1 -0
- package/photon-ai/command-builder.js +18 -0
- package/photon-ai/command-builder.js.map +1 -0
- package/photon-ai/command-executor.d.ts +15 -0
- package/photon-ai/command-executor.d.ts.map +1 -0
- package/photon-ai/command-executor.js +26 -0
- package/photon-ai/command-executor.js.map +1 -0
- package/photon-ai/entity-resolver.d.ts +121 -0
- package/photon-ai/entity-resolver.d.ts.map +1 -0
- package/photon-ai/entity-resolver.js +393 -0
- package/photon-ai/entity-resolver.js.map +1 -0
- package/photon-ai/fuzzy-match.d.ts +12 -0
- package/photon-ai/fuzzy-match.d.ts.map +1 -0
- package/photon-ai/fuzzy-match.js +37 -0
- package/photon-ai/fuzzy-match.js.map +1 -0
- package/photon-ai/index.d.ts +15 -0
- package/photon-ai/index.d.ts.map +1 -0
- package/photon-ai/index.js +13 -0
- package/photon-ai/index.js.map +1 -0
- package/photon-ai/intent-parser.d.ts +20 -0
- package/photon-ai/intent-parser.d.ts.map +1 -0
- package/photon-ai/intent-parser.js +52 -0
- package/photon-ai/intent-parser.js.map +1 -0
- package/photon-ai/photon-ai-memory.d.ts +42 -0
- package/photon-ai/photon-ai-memory.d.ts.map +1 -0
- package/photon-ai/photon-ai-memory.js +86 -0
- package/photon-ai/photon-ai-memory.js.map +1 -0
- package/photon-ai/photon-ai-panel.d.ts +54 -0
- package/photon-ai/photon-ai-panel.d.ts.map +1 -0
- package/photon-ai/photon-ai-panel.js +191 -0
- package/photon-ai/photon-ai-panel.js.map +1 -0
- package/photon-ai/photon-ai-registry.d.ts +25 -0
- package/photon-ai/photon-ai-registry.d.ts.map +1 -0
- package/photon-ai/photon-ai-registry.js +41 -0
- package/photon-ai/photon-ai-registry.js.map +1 -0
- package/photon-ai/photon-ai-service.d.ts +71 -0
- package/photon-ai/photon-ai-service.d.ts.map +1 -0
- package/photon-ai/photon-ai-service.js +165 -0
- package/photon-ai/photon-ai-service.js.map +1 -0
- package/photon-ai/photon-ai.types.d.ts +100 -0
- package/photon-ai/photon-ai.types.d.ts.map +1 -0
- package/photon-ai/photon-ai.types.js +2 -0
- package/photon-ai/photon-ai.types.js.map +1 -0
- package/photon-ai/query-splitter.d.ts +22 -0
- package/photon-ai/query-splitter.d.ts.map +1 -0
- package/photon-ai/query-splitter.js +81 -0
- package/photon-ai/query-splitter.js.map +1 -0
- package/photon-ai/text-normalizer.d.ts +33 -0
- package/photon-ai/text-normalizer.d.ts.map +1 -0
- package/photon-ai/text-normalizer.js +132 -0
- package/photon-ai/text-normalizer.js.map +1 -0
- package/renderer/auto-scroller.d.ts +78 -0
- package/renderer/auto-scroller.d.ts.map +1 -0
- package/renderer/auto-scroller.js +141 -0
- package/renderer/auto-scroller.js.map +1 -0
- package/renderer/body-renderer.d.ts +191 -0
- package/renderer/body-renderer.d.ts.map +1 -0
- package/renderer/body-renderer.js +806 -0
- package/renderer/body-renderer.js.map +1 -0
- package/renderer/cell-renderer.d.ts +26 -0
- package/renderer/cell-renderer.d.ts.map +1 -0
- package/renderer/cell-renderer.js +201 -0
- package/renderer/cell-renderer.js.map +1 -0
- package/renderer/column-menu.d.ts +285 -0
- package/renderer/column-menu.d.ts.map +1 -0
- package/renderer/column-menu.js +873 -0
- package/renderer/column-menu.js.map +1 -0
- package/renderer/column-style-manager.d.ts +38 -0
- package/renderer/column-style-manager.d.ts.map +1 -0
- package/renderer/column-style-manager.js +110 -0
- package/renderer/column-style-manager.js.map +1 -0
- package/renderer/detail-row-renderer.d.ts +153 -0
- package/renderer/detail-row-renderer.d.ts.map +1 -0
- package/renderer/detail-row-renderer.js +388 -0
- package/renderer/detail-row-renderer.js.map +1 -0
- package/renderer/dom-utils.d.ts +22 -0
- package/renderer/dom-utils.d.ts.map +1 -0
- package/renderer/dom-utils.js +132 -0
- package/renderer/dom-utils.js.map +1 -0
- package/renderer/footer-renderer.d.ts +25 -0
- package/renderer/footer-renderer.d.ts.map +1 -0
- package/renderer/footer-renderer.js +168 -0
- package/renderer/footer-renderer.js.map +1 -0
- package/renderer/grid-renderer.d.ts +295 -0
- package/renderer/grid-renderer.d.ts.map +1 -0
- package/renderer/grid-renderer.js +1456 -0
- package/renderer/grid-renderer.js.map +1 -0
- package/renderer/group-context-menu.d.ts +79 -0
- package/renderer/group-context-menu.d.ts.map +1 -0
- package/renderer/group-context-menu.js +238 -0
- package/renderer/group-context-menu.js.map +1 -0
- package/renderer/group-drop-zone.d.ts +56 -0
- package/renderer/group-drop-zone.d.ts.map +1 -0
- package/renderer/group-drop-zone.js +376 -0
- package/renderer/group-drop-zone.js.map +1 -0
- package/renderer/header-renderer.d.ts +264 -0
- package/renderer/header-renderer.d.ts.map +1 -0
- package/renderer/header-renderer.js +1321 -0
- package/renderer/header-renderer.js.map +1 -0
- package/renderer/overlay-renderer.d.ts +16 -0
- package/renderer/overlay-renderer.d.ts.map +1 -0
- package/renderer/overlay-renderer.js +64 -0
- package/renderer/overlay-renderer.js.map +1 -0
- package/renderer/renderer-resolver.d.ts +18 -0
- package/renderer/renderer-resolver.d.ts.map +1 -0
- package/renderer/renderer-resolver.js +18 -0
- package/renderer/renderer-resolver.js.map +1 -0
- package/renderer/row-animator.d.ts +72 -0
- package/renderer/row-animator.d.ts.map +1 -0
- package/renderer/row-animator.js +175 -0
- package/renderer/row-animator.js.map +1 -0
- package/renderer/row-drag-renderer.d.ts +58 -0
- package/renderer/row-drag-renderer.d.ts.map +1 -0
- package/renderer/row-drag-renderer.js +395 -0
- package/renderer/row-drag-renderer.js.map +1 -0
- package/renderer/row-offset-search.d.ts +17 -0
- package/renderer/row-offset-search.d.ts.map +1 -0
- package/renderer/row-offset-search.js +31 -0
- package/renderer/row-offset-search.js.map +1 -0
- package/renderer/row-position-sheet.d.ts +11 -0
- package/renderer/row-position-sheet.d.ts.map +1 -0
- package/renderer/row-position-sheet.js +29 -0
- package/renderer/row-position-sheet.js.map +1 -0
- package/renderer/scroll-controller.d.ts +58 -0
- package/renderer/scroll-controller.d.ts.map +1 -0
- package/renderer/scroll-controller.js +200 -0
- package/renderer/scroll-controller.js.map +1 -0
- package/renderer/sticky-row-tracker.d.ts +40 -0
- package/renderer/sticky-row-tracker.d.ts.map +1 -0
- package/renderer/sticky-row-tracker.js +63 -0
- package/renderer/sticky-row-tracker.js.map +1 -0
- package/renderer/tooltip-renderer.d.ts +36 -0
- package/renderer/tooltip-renderer.d.ts.map +1 -0
- package/renderer/tooltip-renderer.js +133 -0
- package/renderer/tooltip-renderer.js.map +1 -0
- package/renderer/tree-cell-renderer.d.ts +37 -0
- package/renderer/tree-cell-renderer.d.ts.map +1 -0
- package/renderer/tree-cell-renderer.js +75 -0
- package/renderer/tree-cell-renderer.js.map +1 -0
- package/renderer/tree-sticky-row-tracker.d.ts +62 -0
- package/renderer/tree-sticky-row-tracker.d.ts.map +1 -0
- package/renderer/tree-sticky-row-tracker.js +120 -0
- package/renderer/tree-sticky-row-tracker.js.map +1 -0
- package/renderer/virtual-scroll-renderer.d.ts +37 -0
- package/renderer/virtual-scroll-renderer.d.ts.map +1 -0
- package/renderer/virtual-scroll-renderer.js +133 -0
- package/renderer/virtual-scroll-renderer.js.map +1 -0
- package/styles/base-styles.d.ts +3 -0
- package/styles/base-styles.d.ts.map +1 -0
- package/styles/base-styles.js +3045 -0
- package/styles/base-styles.js.map +1 -0
- package/styles/themes/theme-alpine.d.ts +2 -0
- package/styles/themes/theme-alpine.d.ts.map +1 -0
- package/styles/themes/theme-alpine.js +120 -0
- package/styles/themes/theme-alpine.js.map +1 -0
- package/styles/themes/theme-balham.d.ts +2 -0
- package/styles/themes/theme-balham.d.ts.map +1 -0
- package/styles/themes/theme-balham.js +120 -0
- package/styles/themes/theme-balham.js.map +1 -0
- package/styles/themes/theme-dark.d.ts +2 -0
- package/styles/themes/theme-dark.d.ts.map +1 -0
- package/styles/themes/theme-dark.js +216 -0
- package/styles/themes/theme-dark.js.map +1 -0
- package/styles/themes/theme-material.d.ts +2 -0
- package/styles/themes/theme-material.d.ts.map +1 -0
- package/styles/themes/theme-material.js +134 -0
- package/styles/themes/theme-material.js.map +1 -0
- package/styles/themes/theme-quartz.d.ts +2 -0
- package/styles/themes/theme-quartz.d.ts.map +1 -0
- package/styles/themes/theme-quartz.js +120 -0
- package/styles/themes/theme-quartz.js.map +1 -0
- package/theme/css-var-injector.d.ts +10 -0
- package/theme/css-var-injector.d.ts.map +1 -0
- package/theme/css-var-injector.js +63 -0
- package/theme/css-var-injector.js.map +1 -0
- package/theme/theme-manager.d.ts +20 -0
- package/theme/theme-manager.d.ts.map +1 -0
- package/theme/theme-manager.js +79 -0
- package/theme/theme-manager.js.map +1 -0
- package/theme/themes/dark-theme.d.ts +3 -0
- package/theme/themes/dark-theme.d.ts.map +1 -0
- package/theme/themes/dark-theme.js +149 -0
- package/theme/themes/dark-theme.js.map +1 -0
- package/theme/themes/light-theme.d.ts +3 -0
- package/theme/themes/light-theme.d.ts.map +1 -0
- package/theme/themes/light-theme.js +149 -0
- package/theme/themes/light-theme.js.map +1 -0
- package/types/column.types.d.ts +195 -0
- package/types/column.types.d.ts.map +1 -0
- package/types/column.types.js +2 -0
- package/types/column.types.js.map +1 -0
- package/types/event.types.d.ts +213 -0
- package/types/event.types.d.ts.map +1 -0
- package/types/event.types.js +67 -0
- package/types/event.types.js.map +1 -0
- package/types/filter.types.d.ts +42 -0
- package/types/filter.types.d.ts.map +1 -0
- package/types/filter.types.js +2 -0
- package/types/filter.types.js.map +1 -0
- package/types/grid.types.d.ts +214 -0
- package/types/grid.types.d.ts.map +1 -0
- package/types/grid.types.js +2 -0
- package/types/grid.types.js.map +1 -0
- package/types/master-detail.types.d.ts +112 -0
- package/types/master-detail.types.d.ts.map +1 -0
- package/types/master-detail.types.js +2 -0
- package/types/master-detail.types.js.map +1 -0
- package/types/photon-ai.types.d.ts +19 -0
- package/types/photon-ai.types.d.ts.map +1 -0
- package/types/photon-ai.types.js +2 -0
- package/types/photon-ai.types.js.map +1 -0
- package/types/renderer.types.d.ts +156 -0
- package/types/renderer.types.d.ts.map +1 -0
- package/types/renderer.types.js +19 -0
- package/types/renderer.types.js.map +1 -0
- package/types/row.types.d.ts +127 -0
- package/types/row.types.d.ts.map +1 -0
- package/types/row.types.js +9 -0
- package/types/row.types.js.map +1 -0
- package/types/theme.types.d.ts +159 -0
- package/types/theme.types.d.ts.map +1 -0
- package/types/theme.types.js +2 -0
- package/types/theme.types.js.map +1 -0
- package/types/tree-data.types.d.ts +94 -0
- package/types/tree-data.types.d.ts.map +1 -0
- package/types/tree-data.types.js +2 -0
- package/types/tree-data.types.js.map +1 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { GridEventType } from '../../types/event.types';
|
|
2
|
+
import { getComparator } from './sort-comparator';
|
|
3
|
+
// ── Nested-property resolver ──────────────────────────────────────────────────
|
|
4
|
+
/**
|
|
5
|
+
* Resolves a dot-notation path against a plain data object.
|
|
6
|
+
* Only called during the key-extraction pass (O(n)), never inside the comparator.
|
|
7
|
+
*/
|
|
8
|
+
function resolveNestedValue(obj, path) {
|
|
9
|
+
const parts = path.split('.');
|
|
10
|
+
let current = obj;
|
|
11
|
+
for (const part of parts) {
|
|
12
|
+
if (current == null)
|
|
13
|
+
return undefined;
|
|
14
|
+
current = current[part];
|
|
15
|
+
}
|
|
16
|
+
return current;
|
|
17
|
+
}
|
|
18
|
+
// ── SortEngine ────────────────────────────────────────────────────────────────
|
|
19
|
+
export class SortEngine {
|
|
20
|
+
constructor(store, eventBus) {
|
|
21
|
+
this.store = store;
|
|
22
|
+
this.eventBus = eventBus;
|
|
23
|
+
this.sortConfig = [];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Sets a single-column sort and emits `SORT_CHANGED`.
|
|
27
|
+
*
|
|
28
|
+
* @param colId - Column identifier
|
|
29
|
+
* @param field - Data field path (dot-notation supported)
|
|
30
|
+
* @param order - `'asc'` or `'desc'`
|
|
31
|
+
*/
|
|
32
|
+
sort(colId, field, order) {
|
|
33
|
+
this.sortConfig = [{ colId, field, order }];
|
|
34
|
+
this.store.set('sortConfig', [...this.sortConfig]);
|
|
35
|
+
this.eventBus.emit(GridEventType.SORT_CHANGED, { colId, field, order });
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Replaces the entire sort configuration with a multi-column spec and emits
|
|
39
|
+
* `SORT_CHANGED` using the last entry as the "active" column.
|
|
40
|
+
*
|
|
41
|
+
* @param configs - Ordered sort descriptors (primary → secondary → …)
|
|
42
|
+
*/
|
|
43
|
+
multiSort(configs) {
|
|
44
|
+
this.sortConfig = [...configs];
|
|
45
|
+
this.store.set('sortConfig', [...this.sortConfig]);
|
|
46
|
+
const last = configs[configs.length - 1];
|
|
47
|
+
if (last) {
|
|
48
|
+
this.eventBus.emit(GridEventType.SORT_CHANGED, {
|
|
49
|
+
colId: last.colId,
|
|
50
|
+
field: last.field,
|
|
51
|
+
order: last.order,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** Removes all active sort columns. */
|
|
56
|
+
clearSort() {
|
|
57
|
+
this.sortConfig = [];
|
|
58
|
+
this.store.set('sortConfig', []);
|
|
59
|
+
this.eventBus.emit(GridEventType.SORT_CHANGED, { colId: '', field: '', order: null });
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Removes the sort configuration for a single column without affecting others.
|
|
63
|
+
*
|
|
64
|
+
* @param colId - Column to remove from the sort config
|
|
65
|
+
*/
|
|
66
|
+
clearColumnSort(colId) {
|
|
67
|
+
this.sortConfig = this.sortConfig.filter((s) => s.colId !== colId);
|
|
68
|
+
this.store.set('sortConfig', [...this.sortConfig]);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Sorts `rows` according to the current sort configuration and returns a new
|
|
72
|
+
* sorted array. Returns the original array reference when no sort is active.
|
|
73
|
+
*
|
|
74
|
+
* ### Performance strategy (Schwartzian transform + index sort)
|
|
75
|
+
* For large datasets the naive approach of resolving nested field paths inside
|
|
76
|
+
* the comparator function is O(n log n × pathDepth × keyCount). Instead:
|
|
77
|
+
*
|
|
78
|
+
* 1. **Extract** all sort-key values for every row in a single O(n) pass into
|
|
79
|
+
* a flat 2-D array `vals[rowIdx][keyIdx]`. No objects are created here —
|
|
80
|
+
* just raw value reads.
|
|
81
|
+
* 2. **Sort** a compact `Int32Array` of row indices. The comparator reads
|
|
82
|
+
* pre-extracted values by index — zero allocation, zero property resolution.
|
|
83
|
+
* 3. **Reconstruct** the final array by mapping sorted indices back to rows.
|
|
84
|
+
*
|
|
85
|
+
* This reduces per-comparison cost from O(pathDepth × keyCount) to O(keyCount)
|
|
86
|
+
* pure comparisons, giving roughly 20–50× speedup on 1M rows for typical
|
|
87
|
+
* single-column sorts.
|
|
88
|
+
*
|
|
89
|
+
* @param rows - Input rows (filtered, not yet paged)
|
|
90
|
+
* @param columns - All visible column definitions (used to resolve comparators)
|
|
91
|
+
* @returns New sorted array; original is not mutated.
|
|
92
|
+
*/
|
|
93
|
+
applySorting(rows, columns) {
|
|
94
|
+
if (this.sortConfig.length === 0)
|
|
95
|
+
return rows;
|
|
96
|
+
// ── Build sort-key descriptors (once per sort call) ────────────────────
|
|
97
|
+
const colMap = new Map(columns.map((c) => [c.colId, c]));
|
|
98
|
+
const keys = this.sortConfig.map(({ colId, field, order }) => {
|
|
99
|
+
const col = colMap.get(colId);
|
|
100
|
+
return {
|
|
101
|
+
field,
|
|
102
|
+
nested: field.includes('.'),
|
|
103
|
+
compareFn: getComparator(col?.type ?? 'string'),
|
|
104
|
+
direction: (order === 'asc' ? 1 : -1),
|
|
105
|
+
};
|
|
106
|
+
});
|
|
107
|
+
// ── Single-pass separation of data rows from group / summary rows ──────
|
|
108
|
+
const dataRows = [];
|
|
109
|
+
const otherRows = [];
|
|
110
|
+
for (const row of rows) {
|
|
111
|
+
if (row.type === 'data')
|
|
112
|
+
dataRows.push(row);
|
|
113
|
+
else
|
|
114
|
+
otherRows.push(row);
|
|
115
|
+
}
|
|
116
|
+
const n = dataRows.length;
|
|
117
|
+
if (n === 0)
|
|
118
|
+
return rows;
|
|
119
|
+
const keyCount = keys.length;
|
|
120
|
+
// ── Step 1: Extract all sort-key values (O(n × keyCount)) ─────────────
|
|
121
|
+
// `vals` is a flat 2D array: vals[i] is an array of sort-key values for
|
|
122
|
+
// dataRows[i]. Accessing vals[i][k] inside the comparator is a plain
|
|
123
|
+
// array index read — no object creation, no field resolution.
|
|
124
|
+
const vals = new Array(n);
|
|
125
|
+
for (let i = 0; i < n; i++) {
|
|
126
|
+
const data = dataRows[i].data;
|
|
127
|
+
const v = new Array(keyCount);
|
|
128
|
+
for (let k = 0; k < keyCount; k++) {
|
|
129
|
+
const key = keys[k];
|
|
130
|
+
v[k] = key.nested
|
|
131
|
+
? resolveNestedValue(data, key.field)
|
|
132
|
+
: data[key.field];
|
|
133
|
+
}
|
|
134
|
+
vals[i] = v;
|
|
135
|
+
}
|
|
136
|
+
// ── Step 2: Sort an index array (O(n log n)) ───────────────────────────
|
|
137
|
+
// Sorting Int32Array elements (4 bytes) instead of RowNode references
|
|
138
|
+
// (8 bytes + GC bookkeeping) gives better cache utilisation during sort.
|
|
139
|
+
const indices = new Int32Array(n);
|
|
140
|
+
for (let i = 0; i < n; i++)
|
|
141
|
+
indices[i] = i;
|
|
142
|
+
if (keyCount === 1) {
|
|
143
|
+
// Fast path: single sort column — eliminates the inner loop entirely.
|
|
144
|
+
const { compareFn, direction } = keys[0];
|
|
145
|
+
indices.sort((ai, bi) => compareFn(vals[ai][0], vals[bi][0]) * direction);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
indices.sort((ai, bi) => {
|
|
149
|
+
const av = vals[ai];
|
|
150
|
+
const bv = vals[bi];
|
|
151
|
+
for (let k = 0; k < keyCount; k++) {
|
|
152
|
+
const r = keys[k].compareFn(av[k], bv[k]) * keys[k].direction;
|
|
153
|
+
if (r !== 0)
|
|
154
|
+
return r;
|
|
155
|
+
}
|
|
156
|
+
return 0;
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
// ── Step 3: Reconstruct sorted rows from the index array (O(n)) ────────
|
|
160
|
+
const sortedData = new Array(n);
|
|
161
|
+
for (let i = 0; i < n; i++)
|
|
162
|
+
sortedData[i] = dataRows[indices[i]];
|
|
163
|
+
return otherRows.length === 0 ? sortedData : sortedData.concat(otherRows);
|
|
164
|
+
}
|
|
165
|
+
/** Returns a copy of the current sort configuration. */
|
|
166
|
+
getSortConfig() {
|
|
167
|
+
return [...this.sortConfig];
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Returns the current sort direction for a column, or `null` if unsorted.
|
|
171
|
+
*
|
|
172
|
+
* @param colId - Column identifier to query
|
|
173
|
+
*/
|
|
174
|
+
isSorted(colId) {
|
|
175
|
+
return this.sortConfig.find((s) => s.colId === colId)?.order ?? null;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=sort-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sort-engine.js","sourceRoot":"","sources":["../../../src/engines/sort/sort-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { RowNode } from '../../types/row.types';
|
|
2
|
+
import type { ColumnDef } from '../../types/column.types';
|
|
3
|
+
export interface SummaryRow {
|
|
4
|
+
[colId: string]: SummaryCellValue;
|
|
5
|
+
}
|
|
6
|
+
export interface SummaryCellValue {
|
|
7
|
+
value: number | string | null;
|
|
8
|
+
label: string;
|
|
9
|
+
aggregation: string;
|
|
10
|
+
formatted: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class SummaryEngine {
|
|
13
|
+
compute(rows: RowNode[], columns: ColumnDef[]): SummaryRow;
|
|
14
|
+
private formatSummaryValue;
|
|
15
|
+
private resolveValue;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=summary-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary-engine.d.ts","sourceRoot":"","sources":["../../../src/engines/summary/summary-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,UAAU;IAoD1D,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,YAAY;CASrB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export class SummaryEngine {
|
|
2
|
+
compute(rows, columns) {
|
|
3
|
+
const dataRows = rows.filter((r) => r.type === 'data');
|
|
4
|
+
const result = {};
|
|
5
|
+
for (const col of columns) {
|
|
6
|
+
if (!col.showSummary)
|
|
7
|
+
continue;
|
|
8
|
+
const aggregation = col.summaryAggregation ?? 'sum';
|
|
9
|
+
const values = dataRows
|
|
10
|
+
.map((r) => this.resolveValue(r.data, col.field))
|
|
11
|
+
.filter((v) => typeof v === 'number' && !isNaN(v));
|
|
12
|
+
let value = null;
|
|
13
|
+
let label = col.summaryLabel ?? '';
|
|
14
|
+
switch (aggregation) {
|
|
15
|
+
case 'sum':
|
|
16
|
+
value = values.reduce((acc, v) => acc + v, 0);
|
|
17
|
+
label = label || 'Sum';
|
|
18
|
+
break;
|
|
19
|
+
case 'avg':
|
|
20
|
+
value = values.length > 0 ? values.reduce((acc, v) => acc + v, 0) / values.length : null;
|
|
21
|
+
label = label || 'Avg';
|
|
22
|
+
break;
|
|
23
|
+
case 'min':
|
|
24
|
+
value = values.length > 0 ? Math.min(...values) : null;
|
|
25
|
+
label = label || 'Min';
|
|
26
|
+
break;
|
|
27
|
+
case 'max':
|
|
28
|
+
value = values.length > 0 ? Math.max(...values) : null;
|
|
29
|
+
label = label || 'Max';
|
|
30
|
+
break;
|
|
31
|
+
case 'count':
|
|
32
|
+
value = dataRows.length;
|
|
33
|
+
label = label || 'Count';
|
|
34
|
+
break;
|
|
35
|
+
case 'none':
|
|
36
|
+
value = null;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
result[col.colId] = {
|
|
40
|
+
value,
|
|
41
|
+
label,
|
|
42
|
+
aggregation,
|
|
43
|
+
formatted: this.formatSummaryValue(value, col, aggregation),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
formatSummaryValue(value, col, aggregation) {
|
|
49
|
+
if (value === null || value === undefined)
|
|
50
|
+
return '';
|
|
51
|
+
if (aggregation === 'count')
|
|
52
|
+
return String(value);
|
|
53
|
+
const n = Number(value);
|
|
54
|
+
if (isNaN(n))
|
|
55
|
+
return String(value);
|
|
56
|
+
if (col.isCurrency) {
|
|
57
|
+
return n.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
|
|
58
|
+
}
|
|
59
|
+
return n.toLocaleString('en-US', { maximumFractionDigits: 2 });
|
|
60
|
+
}
|
|
61
|
+
resolveValue(data, path) {
|
|
62
|
+
const parts = path.split('.');
|
|
63
|
+
let current = data;
|
|
64
|
+
for (const part of parts) {
|
|
65
|
+
if (current == null)
|
|
66
|
+
return undefined;
|
|
67
|
+
current = current[part];
|
|
68
|
+
}
|
|
69
|
+
return current;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=summary-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary-engine.js","sourceRoot":"","sources":["../../../src/engines/summary/summary-engine.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,aAAa;IACxB,OAAO,CAAC,IAAe,EAAE,OAAoB;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACvD,MAAM,MAAM,GAAe,EAAE,CAAC;QAE9B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,WAAW;gBAAE,SAAS;YAE/B,MAAM,WAAW,GAAG,GAAG,CAAC,kBAAkB,IAAI,KAAK,CAAC;YACpD,MAAM,MAAM,GAAG,QAAQ;iBACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;iBAChD,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAElE,IAAI,KAAK,GAAkB,IAAI,CAAC;YAChC,IAAI,KAAK,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;YAEnC,QAAQ,WAAW,EAAE,CAAC;gBACpB,KAAK,KAAK;oBACR,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC9C,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC;oBACvB,MAAM;gBACR,KAAK,KAAK;oBACR,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;oBACzF,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC;oBACvB,MAAM;gBACR,KAAK,KAAK;oBACR,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACvD,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC;oBACvB,MAAM;gBACR,KAAK,KAAK;oBACR,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACvD,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC;oBACvB,MAAM;gBACR,KAAK,OAAO;oBACV,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;oBACxB,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC;oBACzB,MAAM;gBACR,KAAK,MAAM;oBACT,KAAK,GAAG,IAAI,CAAC;oBACb,MAAM;YACV,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG;gBAClB,KAAK;gBACL,KAAK;gBACL,WAAW;gBACX,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC;aAC5D,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,kBAAkB,CACxB,KAA6B,EAC7B,GAAc,EACd,WAAmB;QAEnB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACrD,IAAI,WAAW,KAAK,OAAO;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QAElD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAEO,YAAY,CAAC,IAA6B,EAAE,IAAY;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,OAAO,GAAY,IAAI,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,IAAI,IAAI;gBAAE,OAAO,SAAS,CAAC;YACtC,OAAO,GAAI,OAAmC,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { RowNode } from '../../types/row.types';
|
|
2
|
+
import type { ColumnDef } from '../../types/column.types';
|
|
3
|
+
import type { TreeDataConfig } from '../../types/tree-data.types';
|
|
4
|
+
import type { GridStore } from '../../core/grid-store';
|
|
5
|
+
import type { EventBus } from '../../event-bus/event-bus';
|
|
6
|
+
import type { FilterEngine } from '../filter/filter-engine';
|
|
7
|
+
import type { SortEngine } from '../sort/sort-engine';
|
|
8
|
+
import type { TreeExpansionService } from './tree-expansion-service';
|
|
9
|
+
/**
|
|
10
|
+
* Orchestrates Tree Data end to end: builds the hierarchy from raw row data,
|
|
11
|
+
* filters it, sorts it, and flattens it into the plain `RowNode[]` the rest
|
|
12
|
+
* of the pipeline already expects. Plays the same role for self-referential
|
|
13
|
+
* hierarchies that `GroupingEngine` plays for column-value grouping —
|
|
14
|
+
* expansion state lives in the separate `TreeExpansionService`, and
|
|
15
|
+
* filtering/sorting are done by *calling* `FilterEngine`/`SortEngine`, never
|
|
16
|
+
* by re-implementing condition matching or comparison here.
|
|
17
|
+
*/
|
|
18
|
+
export declare class TreeDataService {
|
|
19
|
+
private store;
|
|
20
|
+
private eventBus;
|
|
21
|
+
private filterEngine;
|
|
22
|
+
private sortEngine;
|
|
23
|
+
private expansionService;
|
|
24
|
+
private config;
|
|
25
|
+
/** The last-built, unfiltered/unsorted tree — kept so `moveNode`/`loadChildren`/selection cascades can resolve a node by id without re-walking raw data. */
|
|
26
|
+
private lastRoots;
|
|
27
|
+
private lastNodesById;
|
|
28
|
+
/** Node ids already evaluated against `defaultExpanded` — mirrors `MasterDetailEngine.defaultAppliedNodeIds` so a user-collapsed node is never silently re-expanded on the next pipeline run. */
|
|
29
|
+
private defaultAppliedNodeIds;
|
|
30
|
+
private pendingLoadNodeIds;
|
|
31
|
+
private refreshCallback;
|
|
32
|
+
constructor(store: GridStore, eventBus: EventBus, filterEngine: FilterEngine, sortEngine: SortEngine, expansionService: TreeExpansionService);
|
|
33
|
+
/** Applies the grid's `treeData` option block. Called once from `GridCore.initialize`. */
|
|
34
|
+
configure(config: TreeDataConfig | undefined): void;
|
|
35
|
+
isEnabled(): boolean;
|
|
36
|
+
getConfig(): TreeDataConfig | null;
|
|
37
|
+
/** Registers the callback used to re-run the pipeline after an async lazy-load resolves or a reparent commits. Wired from `GridCore`. */
|
|
38
|
+
setRefreshCallback(fn: () => void): void;
|
|
39
|
+
/** `'parentId'`/`'childrenField'` hierarchies are stored data and can be mutated by drag-to-reparent; `'dataPath'`/`'custom'` are derived and read-only. */
|
|
40
|
+
supportsReparenting(): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* The full build → filter → sort → flatten sequence `GridApi.applyPipeline`
|
|
43
|
+
* calls when Tree Data is enabled, replacing the flat filter/sort/group
|
|
44
|
+
* steps for this pipeline run.
|
|
45
|
+
*/
|
|
46
|
+
getFlatVisibleRows(allRows: RowNode[], columns: ColumnDef[]): RowNode[];
|
|
47
|
+
/** O(n) hierarchy construction from the grid's raw (flat, un-treed) row data. Caches the result for `moveNode`/`loadChildren`/selection-cascade lookups. */
|
|
48
|
+
buildRoots(allRows: RowNode[]): RowNode[];
|
|
49
|
+
/**
|
|
50
|
+
* Tree-aware filtering: a node survives if it matches the active filters
|
|
51
|
+
* itself (via `FilterEngine.matchesRow` — the exact predicate the flat
|
|
52
|
+
* path uses) **or** any descendant does, so a matching leaf's ancestor
|
|
53
|
+
* chain stays visible. Builds filtered node copies rather than mutating
|
|
54
|
+
* the cached hierarchy, so `lastRoots`/`lastNodesById` stay the true,
|
|
55
|
+
* unfiltered tree for reparenting/selection.
|
|
56
|
+
*/
|
|
57
|
+
filterTree(roots: RowNode[], columns: ColumnDef[]): RowNode[];
|
|
58
|
+
/**
|
|
59
|
+
* Tree-aware sorting: reuses `SortEngine.applySorting` completely
|
|
60
|
+
* unchanged, once per sibling array (including the roots array itself).
|
|
61
|
+
* `applySorting` already no-ops when no sort is configured, so an
|
|
62
|
+
* unsorted tree walk costs one cheap pass with zero allocation.
|
|
63
|
+
*/
|
|
64
|
+
sortTree(roots: RowNode[], columns: ColumnDef[]): RowNode[];
|
|
65
|
+
/**
|
|
66
|
+
* Computes `RowNode.subtreeEndTop` for every tree row in the final,
|
|
67
|
+
* laid-out `visibleRows` array. Must run *after* `RowModel.setVisibleRows`
|
|
68
|
+
* assigns `top`/`height` — subtree extents can't be known before layout —
|
|
69
|
+
* so `GridApi.applyPipeline` calls this as a separate step, not from
|
|
70
|
+
* `getFlatVisibleRows`. One O(n) stack-based pass: whenever a row appears
|
|
71
|
+
* whose `level` is <= an open ancestor's level, that ancestor's subtree
|
|
72
|
+
* just ended at the new row's `top`.
|
|
73
|
+
*/
|
|
74
|
+
annotateSubtreeExtents(rows: RowNode[]): void;
|
|
75
|
+
getNode(nodeId: string): RowNode | undefined;
|
|
76
|
+
/** The full, unfiltered/unsorted hierarchy from the most recent `getFlatVisibleRows`/`buildRoots` call — what `expandAllTreeNodes`/`collapseAllTreeNodes` walk. */
|
|
77
|
+
getRoots(): RowNode[];
|
|
78
|
+
/**
|
|
79
|
+
* Mutates the underlying raw hierarchy so a subsequent pipeline run
|
|
80
|
+
* rebuilds the tree with `draggedId` under its new parent, then requests a
|
|
81
|
+
* refresh — never hand-splices `visibleRows`, since tree mode always
|
|
82
|
+
* rebuilds it from raw data on every pipeline run anyway.
|
|
83
|
+
*
|
|
84
|
+
* `position: 'before'/'after'` reparents onto the *same parent as*
|
|
85
|
+
* `targetId`; precise sibling ordering within that parent is not yet
|
|
86
|
+
* tracked (a follow-up — see plan notes), so the node lands as that
|
|
87
|
+
* parent's last child rather than at the exact hover position.
|
|
88
|
+
*/
|
|
89
|
+
moveNode(draggedId: string, targetId: string, position: 'before' | 'after' | 'inside'): boolean;
|
|
90
|
+
/** `'childrenField'` mode: splice the raw record out of its old parent's `children` array and into the new one — both are live references shared with `RowModel`'s raw data, so this mutation is visible on the next pipeline run. */
|
|
91
|
+
private reparentChildrenField;
|
|
92
|
+
private isDescendantOf;
|
|
93
|
+
/**
|
|
94
|
+
* Lazy-loads a node's children via `TreeDataConfig.lazyLoadChildren`.
|
|
95
|
+
* No-ops if lazy loading isn't configured, children are already loaded, or
|
|
96
|
+
* a fetch for this node is already in flight. On resolve, appends the
|
|
97
|
+
* fetched raw records as children of `node.data` (mode-appropriate: sets
|
|
98
|
+
* `parentId` for `'parentId'` mode, pushes into the `children` array for
|
|
99
|
+
* `'childrenField'` mode) and refreshes.
|
|
100
|
+
*/
|
|
101
|
+
loadChildren(nodeId: string): void;
|
|
102
|
+
isLoadPending(nodeId: string): boolean;
|
|
103
|
+
private attachLoadedChildren;
|
|
104
|
+
/**
|
|
105
|
+
* Applies `TreeDataConfig.defaultExpanded` — but only to nodes never seen
|
|
106
|
+
* before (tracked in `defaultAppliedNodeIds`, mirroring
|
|
107
|
+
* `MasterDetailEngine.defaultAppliedNodeIds`). This runs on *every*
|
|
108
|
+
* pipeline refresh (including the one right after a user collapses a
|
|
109
|
+
* node), so re-evaluating already-seen nodes here would immediately
|
|
110
|
+
* stomp a manual collapse back open — the exact bug this guard prevents.
|
|
111
|
+
* `maxLevel` is `Infinity` for `defaultExpanded: true` (expand everything)
|
|
112
|
+
* or the configured depth for a number.
|
|
113
|
+
*/
|
|
114
|
+
private applyDefaultExpansion;
|
|
115
|
+
destroy(): void;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=tree-data-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-data-service.d.ts","sourceRoot":"","sources":["../../../src/engines/tree/tree-data-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAIrE;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAcxB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,gBAAgB;IAjB1B,OAAO,CAAC,MAAM,CAA+B;IAE7C,4JAA4J;IAC5J,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,aAAa,CAA8B;IAEnD,iMAAiM;IACjM,OAAO,CAAC,qBAAqB,CAAqB;IAElD,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,eAAe,CAA6B;gBAG1C,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,oBAAoB;IAGhD,0FAA0F;IAC1F,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI;IAInD,SAAS,IAAI,OAAO;IAIpB,SAAS,IAAI,cAAc,GAAG,IAAI;IAIlC,yIAAyI;IACzI,kBAAkB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAIxC,4JAA4J;IAC5J,mBAAmB,IAAI,OAAO;IAI9B;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE;IAUvE,4JAA4J;IAC5J,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAmBzC;;;;;;;OAOG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE;IAiB7D;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE;IAW3D;;;;;;;;OAQG;IACH,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAe7C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI5C,mKAAmK;IACnK,QAAQ,IAAI,OAAO,EAAE;IAIrB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO;IAyB/F,sOAAsO;IACtO,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,cAAc;IAStB;;;;;;;OAOG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAqBlC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAItC,OAAO,CAAC,oBAAoB;IAa5B;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,IAAI,IAAI;CAOhB"}
|