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,376 @@
|
|
|
1
|
+
import { createDiv } from './dom-utils';
|
|
2
|
+
export class GroupDropZone {
|
|
3
|
+
constructor(store, groupingEngine, iconRenderer) {
|
|
4
|
+
this.store = store;
|
|
5
|
+
this.groupingEngine = groupingEngine;
|
|
6
|
+
this.iconRenderer = iconRenderer;
|
|
7
|
+
this.el = null;
|
|
8
|
+
this.chipsEl = null;
|
|
9
|
+
this.dockPos = 'top';
|
|
10
|
+
this.outerRowEl = null;
|
|
11
|
+
this.mainColEl = null;
|
|
12
|
+
this.isDockDragging = false;
|
|
13
|
+
this.dockIndicatorEl = null;
|
|
14
|
+
this._onDockMove = null;
|
|
15
|
+
this._onDockUp = null;
|
|
16
|
+
this.draggingChipId = null;
|
|
17
|
+
this.chipGhostEl = null;
|
|
18
|
+
this.chipDropIndex = -1;
|
|
19
|
+
this._onChipMove = null;
|
|
20
|
+
this._onChipUp = null;
|
|
21
|
+
this.isResizing = false;
|
|
22
|
+
this.resizeStartSize = 0;
|
|
23
|
+
this.resizeStartPos = 0;
|
|
24
|
+
this._onResizeMove = null;
|
|
25
|
+
this._onResizeUp = null;
|
|
26
|
+
this.searchCallback = null;
|
|
27
|
+
this.searchInputEl = null;
|
|
28
|
+
this.searchClearEl = null;
|
|
29
|
+
this.searchDebounceTimer = null;
|
|
30
|
+
}
|
|
31
|
+
mount(outerRowEl, mainColEl) {
|
|
32
|
+
this.outerRowEl = outerRowEl;
|
|
33
|
+
this.mainColEl = mainColEl;
|
|
34
|
+
this.el = createDiv('pg-group-drop-zone pg-group-drop-zone--top');
|
|
35
|
+
mainColEl.insertBefore(this.el, mainColEl.firstChild);
|
|
36
|
+
this.buildStructure();
|
|
37
|
+
this.render();
|
|
38
|
+
}
|
|
39
|
+
update() {
|
|
40
|
+
this.render();
|
|
41
|
+
}
|
|
42
|
+
highlight(on) {
|
|
43
|
+
this.chipsEl?.classList.toggle('pg-group-zone-chips--over', on);
|
|
44
|
+
}
|
|
45
|
+
isOver(x, y) {
|
|
46
|
+
const rect = this.el?.getBoundingClientRect();
|
|
47
|
+
if (!rect)
|
|
48
|
+
return false;
|
|
49
|
+
return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;
|
|
50
|
+
}
|
|
51
|
+
isGrouped(colId) {
|
|
52
|
+
return this.store.get('groupedColumnIds').includes(colId);
|
|
53
|
+
}
|
|
54
|
+
dropColumn(colId) {
|
|
55
|
+
this.groupingEngine.addGroupColumn(colId);
|
|
56
|
+
}
|
|
57
|
+
removeColumn(colId) {
|
|
58
|
+
this.groupingEngine.removeGroupColumn(colId);
|
|
59
|
+
}
|
|
60
|
+
setSearchCallback(fn) {
|
|
61
|
+
this.searchCallback = fn;
|
|
62
|
+
}
|
|
63
|
+
destroy() {
|
|
64
|
+
if (this.searchDebounceTimer !== null) {
|
|
65
|
+
clearTimeout(this.searchDebounceTimer);
|
|
66
|
+
this.searchDebounceTimer = null;
|
|
67
|
+
}
|
|
68
|
+
this.cleanupDockDrag();
|
|
69
|
+
this.cleanupChipDrag();
|
|
70
|
+
this.cleanupResize();
|
|
71
|
+
this.el?.remove();
|
|
72
|
+
this.el = null;
|
|
73
|
+
this.chipsEl = null;
|
|
74
|
+
this.searchInputEl = null;
|
|
75
|
+
this.searchClearEl = null;
|
|
76
|
+
}
|
|
77
|
+
// ─── Build ──────────────────────────────────────────────────────────────────
|
|
78
|
+
buildStructure() {
|
|
79
|
+
if (!this.el)
|
|
80
|
+
return;
|
|
81
|
+
this.chipsEl = createDiv('pg-group-zone-chips');
|
|
82
|
+
this.el.appendChild(this.chipsEl);
|
|
83
|
+
// Search box — right side of the bar, hidden in left/right dock via CSS
|
|
84
|
+
const searchWrap = createDiv('pg-group-search');
|
|
85
|
+
const fieldEl = createDiv('pg-group-search__field');
|
|
86
|
+
const iconEl = createDiv('pg-group-search__icon');
|
|
87
|
+
iconEl.innerHTML = this.iconRenderer.renderToString('search', 14);
|
|
88
|
+
const input = document.createElement('input');
|
|
89
|
+
input.type = 'text';
|
|
90
|
+
input.className = 'pg-group-search__input';
|
|
91
|
+
input.placeholder = 'Search...';
|
|
92
|
+
input.spellcheck = false;
|
|
93
|
+
input.setAttribute('autocomplete', 'off');
|
|
94
|
+
this.searchInputEl = input;
|
|
95
|
+
const clearBtn = createDiv('pg-group-search__clear');
|
|
96
|
+
clearBtn.innerHTML = this.iconRenderer.renderToString('close', 12);
|
|
97
|
+
clearBtn.title = 'Clear search';
|
|
98
|
+
this.searchClearEl = clearBtn;
|
|
99
|
+
input.addEventListener('input', () => {
|
|
100
|
+
const val = input.value;
|
|
101
|
+
clearBtn.classList.toggle('pg-group-search__clear--visible', val.length > 0);
|
|
102
|
+
if (this.searchDebounceTimer !== null)
|
|
103
|
+
clearTimeout(this.searchDebounceTimer);
|
|
104
|
+
this.searchDebounceTimer = setTimeout(() => {
|
|
105
|
+
this.searchDebounceTimer = null;
|
|
106
|
+
this.searchCallback?.(val);
|
|
107
|
+
}, 180);
|
|
108
|
+
});
|
|
109
|
+
clearBtn.addEventListener('mousedown', (e) => {
|
|
110
|
+
e.preventDefault(); // keep input focused
|
|
111
|
+
input.value = '';
|
|
112
|
+
clearBtn.classList.remove('pg-group-search__clear--visible');
|
|
113
|
+
if (this.searchDebounceTimer !== null) {
|
|
114
|
+
clearTimeout(this.searchDebounceTimer);
|
|
115
|
+
this.searchDebounceTimer = null;
|
|
116
|
+
}
|
|
117
|
+
this.searchCallback?.('');
|
|
118
|
+
input.focus();
|
|
119
|
+
});
|
|
120
|
+
fieldEl.appendChild(iconEl);
|
|
121
|
+
fieldEl.appendChild(input);
|
|
122
|
+
fieldEl.appendChild(clearBtn);
|
|
123
|
+
searchWrap.appendChild(fieldEl);
|
|
124
|
+
this.el.appendChild(searchWrap);
|
|
125
|
+
}
|
|
126
|
+
render() {
|
|
127
|
+
if (!this.chipsEl)
|
|
128
|
+
return;
|
|
129
|
+
this.chipsEl.innerHTML = '';
|
|
130
|
+
const groupedIds = this.store.get('groupedColumnIds');
|
|
131
|
+
const allColumns = this.store.get('columns');
|
|
132
|
+
const isVertical = this.dockPos === 'left' || this.dockPos === 'right';
|
|
133
|
+
if (groupedIds.length === 0) {
|
|
134
|
+
const hint = createDiv('pg-group-drop-zone__hint');
|
|
135
|
+
hint.textContent = 'Drag a column here to group rows';
|
|
136
|
+
this.chipsEl.appendChild(hint);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
for (let i = 0; i < groupedIds.length; i++) {
|
|
140
|
+
const colId = groupedIds[i];
|
|
141
|
+
const col = allColumns.find((c) => c.colId === colId);
|
|
142
|
+
if (!col)
|
|
143
|
+
continue;
|
|
144
|
+
if (i > 0 && !isVertical) {
|
|
145
|
+
const sep = createDiv('pg-group-chip__sep');
|
|
146
|
+
sep.innerHTML = this.iconRenderer.renderToString('chevronRight', 12);
|
|
147
|
+
this.chipsEl.appendChild(sep);
|
|
148
|
+
}
|
|
149
|
+
const chip = createDiv('pg-group-chip');
|
|
150
|
+
chip.setAttribute('data-col-id', colId);
|
|
151
|
+
chip.setAttribute('data-chip-index', String(i));
|
|
152
|
+
chip.style.cursor = 'grab';
|
|
153
|
+
const labelEl = createDiv('pg-group-chip__label');
|
|
154
|
+
labelEl.textContent = col.header;
|
|
155
|
+
chip.appendChild(labelEl);
|
|
156
|
+
const closeBtn = createDiv('pg-group-chip__close');
|
|
157
|
+
closeBtn.innerHTML = this.iconRenderer.renderToString('close', 11);
|
|
158
|
+
closeBtn.title = 'Remove grouping';
|
|
159
|
+
closeBtn.addEventListener('click', (e) => {
|
|
160
|
+
e.stopPropagation();
|
|
161
|
+
this.removeColumn(colId);
|
|
162
|
+
});
|
|
163
|
+
chip.appendChild(closeBtn);
|
|
164
|
+
chip.addEventListener('mousedown', (e) => {
|
|
165
|
+
if (e.target.closest('.pg-group-chip__close'))
|
|
166
|
+
return;
|
|
167
|
+
e.preventDefault();
|
|
168
|
+
this.startChipDrag(e, colId, i);
|
|
169
|
+
});
|
|
170
|
+
this.chipsEl.appendChild(chip);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// ─── Dock drag ─────────────────────────────────────────────────────────────
|
|
174
|
+
startDockDrag(e) {
|
|
175
|
+
this.isDockDragging = true;
|
|
176
|
+
this.dockIndicatorEl = document.createElement('div');
|
|
177
|
+
this.dockIndicatorEl.style.cssText =
|
|
178
|
+
'position:fixed;pointer-events:none;z-index:99999;border:2px dashed var(--pg-colors-primary,#2563eb);background:var(--pg-colors-group-zone-over,rgba(37,99,235,0.1));border-radius:var(--pg-borders-radius-sm,4px);';
|
|
179
|
+
document.body.appendChild(this.dockIndicatorEl);
|
|
180
|
+
this._onDockMove = (ev) => this.onDockMove(ev);
|
|
181
|
+
this._onDockUp = (ev) => this.onDockUp(ev);
|
|
182
|
+
document.addEventListener('mousemove', this._onDockMove);
|
|
183
|
+
document.addEventListener('mouseup', this._onDockUp);
|
|
184
|
+
this.onDockMove(e);
|
|
185
|
+
}
|
|
186
|
+
onDockMove(e) {
|
|
187
|
+
if (!this.isDockDragging || !this.el || !this.dockIndicatorEl)
|
|
188
|
+
return;
|
|
189
|
+
const gridEl = this.el.closest('.pg-grid');
|
|
190
|
+
if (!gridEl)
|
|
191
|
+
return;
|
|
192
|
+
const gr = gridEl.getBoundingClientRect();
|
|
193
|
+
const pct = (e.clientX - gr.left) / gr.width;
|
|
194
|
+
if (pct < 0.2) {
|
|
195
|
+
Object.assign(this.dockIndicatorEl.style, {
|
|
196
|
+
left: `${gr.left}px`, top: `${gr.top}px`,
|
|
197
|
+
width: '160px', height: `${gr.height}px`,
|
|
198
|
+
borderRadius: '4px 0 0 4px',
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
else if (pct > 0.8) {
|
|
202
|
+
Object.assign(this.dockIndicatorEl.style, {
|
|
203
|
+
left: `${gr.right - 160}px`, top: `${gr.top}px`,
|
|
204
|
+
width: '160px', height: `${gr.height}px`,
|
|
205
|
+
borderRadius: '0 4px 4px 0',
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
Object.assign(this.dockIndicatorEl.style, {
|
|
210
|
+
left: `${gr.left}px`, top: `${gr.top}px`,
|
|
211
|
+
width: `${gr.width}px`, height: '48px',
|
|
212
|
+
borderRadius: '4px 4px 0 0',
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
onDockUp(e) {
|
|
217
|
+
if (!this.isDockDragging || !this.el) {
|
|
218
|
+
this.cleanupDockDrag();
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
const gridEl = this.el.closest('.pg-grid');
|
|
222
|
+
if (gridEl) {
|
|
223
|
+
const gr = gridEl.getBoundingClientRect();
|
|
224
|
+
const pct = (e.clientX - gr.left) / gr.width;
|
|
225
|
+
const newDock = pct < 0.2 ? 'left' : pct > 0.8 ? 'right' : 'top';
|
|
226
|
+
this.setDock(newDock);
|
|
227
|
+
}
|
|
228
|
+
this.cleanupDockDrag();
|
|
229
|
+
}
|
|
230
|
+
setDock(pos) {
|
|
231
|
+
if (pos === this.dockPos || !this.el || !this.outerRowEl || !this.mainColEl)
|
|
232
|
+
return;
|
|
233
|
+
this.dockPos = pos;
|
|
234
|
+
this.el.remove();
|
|
235
|
+
this.el.classList.remove('pg-group-drop-zone--top', 'pg-group-drop-zone--left', 'pg-group-drop-zone--right');
|
|
236
|
+
this.el.classList.add(`pg-group-drop-zone--${pos}`);
|
|
237
|
+
this.el.style.height = '';
|
|
238
|
+
this.el.style.width = '';
|
|
239
|
+
if (pos === 'top') {
|
|
240
|
+
this.mainColEl.insertBefore(this.el, this.mainColEl.firstChild);
|
|
241
|
+
}
|
|
242
|
+
else if (pos === 'left') {
|
|
243
|
+
this.outerRowEl.insertBefore(this.el, this.mainColEl);
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
this.outerRowEl.appendChild(this.el);
|
|
247
|
+
}
|
|
248
|
+
this.render();
|
|
249
|
+
}
|
|
250
|
+
cleanupDockDrag() {
|
|
251
|
+
this.isDockDragging = false;
|
|
252
|
+
this.dockIndicatorEl?.remove();
|
|
253
|
+
this.dockIndicatorEl = null;
|
|
254
|
+
if (this._onDockMove)
|
|
255
|
+
document.removeEventListener('mousemove', this._onDockMove);
|
|
256
|
+
if (this._onDockUp)
|
|
257
|
+
document.removeEventListener('mouseup', this._onDockUp);
|
|
258
|
+
this._onDockMove = null;
|
|
259
|
+
this._onDockUp = null;
|
|
260
|
+
}
|
|
261
|
+
// ─── Chip drag-reorder ─────────────────────────────────────────────────────
|
|
262
|
+
startChipDrag(e, colId, index) {
|
|
263
|
+
this.draggingChipId = colId;
|
|
264
|
+
this.chipDropIndex = index;
|
|
265
|
+
const col = this.store.get('columns').find((c) => c.colId === colId);
|
|
266
|
+
const ghost = createDiv('pg-group-chip pg-group-chip--ghost');
|
|
267
|
+
const ghostLabel = createDiv('pg-group-chip__label');
|
|
268
|
+
ghostLabel.textContent = col?.header ?? colId;
|
|
269
|
+
ghost.appendChild(ghostLabel);
|
|
270
|
+
ghost.style.cssText = `position:fixed;pointer-events:none;z-index:99999;opacity:0.85;left:${e.clientX + 8}px;top:${e.clientY - 14}px;`;
|
|
271
|
+
document.body.appendChild(ghost);
|
|
272
|
+
this.chipGhostEl = ghost;
|
|
273
|
+
this._onChipMove = (ev) => this.onChipMove(ev);
|
|
274
|
+
this._onChipUp = (ev) => this.onChipUp(ev);
|
|
275
|
+
document.addEventListener('mousemove', this._onChipMove);
|
|
276
|
+
document.addEventListener('mouseup', this._onChipUp);
|
|
277
|
+
}
|
|
278
|
+
onChipMove(e) {
|
|
279
|
+
if (!this.chipGhostEl || !this.chipsEl)
|
|
280
|
+
return;
|
|
281
|
+
this.chipGhostEl.style.left = `${e.clientX + 8}px`;
|
|
282
|
+
this.chipGhostEl.style.top = `${e.clientY - 14}px`;
|
|
283
|
+
const isVertical = this.dockPos === 'left' || this.dockPos === 'right';
|
|
284
|
+
const chips = Array.from(this.chipsEl.querySelectorAll('.pg-group-chip:not(.pg-group-chip--ghost)'));
|
|
285
|
+
let newIndex = chips.length;
|
|
286
|
+
for (let i = 0; i < chips.length; i++) {
|
|
287
|
+
const r = chips[i].getBoundingClientRect();
|
|
288
|
+
const mid = isVertical ? (r.top + r.bottom) / 2 : (r.left + r.right) / 2;
|
|
289
|
+
const pos = isVertical ? e.clientY : e.clientX;
|
|
290
|
+
if (pos < mid) {
|
|
291
|
+
newIndex = i;
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
this.chipDropIndex = newIndex;
|
|
296
|
+
for (const chip of chips) {
|
|
297
|
+
chip.style.opacity = chip.getAttribute('data-col-id') === this.draggingChipId ? '0.3' : '';
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
onChipUp(_e) {
|
|
301
|
+
const fromId = this.draggingChipId;
|
|
302
|
+
const toIndex = this.chipDropIndex;
|
|
303
|
+
this.cleanupChipDrag();
|
|
304
|
+
if (!fromId)
|
|
305
|
+
return;
|
|
306
|
+
const groupedIds = [...this.store.get('groupedColumnIds')];
|
|
307
|
+
const fromIndex = groupedIds.indexOf(fromId);
|
|
308
|
+
if (fromIndex === -1 || fromIndex === toIndex)
|
|
309
|
+
return;
|
|
310
|
+
groupedIds.splice(fromIndex, 1);
|
|
311
|
+
const insertAt = toIndex > fromIndex ? Math.max(0, toIndex - 1) : toIndex;
|
|
312
|
+
groupedIds.splice(insertAt, 0, fromId);
|
|
313
|
+
this.groupingEngine.reorderGroupColumns(groupedIds);
|
|
314
|
+
}
|
|
315
|
+
cleanupChipDrag() {
|
|
316
|
+
this.draggingChipId = null;
|
|
317
|
+
this.chipDropIndex = -1;
|
|
318
|
+
if (this.chipsEl) {
|
|
319
|
+
for (const chip of Array.from(this.chipsEl.querySelectorAll('.pg-group-chip'))) {
|
|
320
|
+
chip.style.opacity = '';
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
this.chipGhostEl?.remove();
|
|
324
|
+
this.chipGhostEl = null;
|
|
325
|
+
if (this._onChipMove)
|
|
326
|
+
document.removeEventListener('mousemove', this._onChipMove);
|
|
327
|
+
if (this._onChipUp)
|
|
328
|
+
document.removeEventListener('mouseup', this._onChipUp);
|
|
329
|
+
this._onChipMove = null;
|
|
330
|
+
this._onChipUp = null;
|
|
331
|
+
}
|
|
332
|
+
// ─── Resize ─────────────────────────────────────────────────────────────────
|
|
333
|
+
startResize(e) {
|
|
334
|
+
if (!this.el)
|
|
335
|
+
return;
|
|
336
|
+
this.isResizing = true;
|
|
337
|
+
if (this.dockPos === 'top') {
|
|
338
|
+
this.resizeStartSize = this.el.offsetHeight;
|
|
339
|
+
this.resizeStartPos = e.clientY;
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
this.resizeStartSize = this.el.offsetWidth;
|
|
343
|
+
this.resizeStartPos = e.clientX;
|
|
344
|
+
}
|
|
345
|
+
this._onResizeMove = (ev) => this.onResizeMove(ev);
|
|
346
|
+
this._onResizeUp = () => this.cleanupResize();
|
|
347
|
+
document.addEventListener('mousemove', this._onResizeMove);
|
|
348
|
+
document.addEventListener('mouseup', this._onResizeUp);
|
|
349
|
+
}
|
|
350
|
+
onResizeMove(e) {
|
|
351
|
+
if (!this.isResizing || !this.el)
|
|
352
|
+
return;
|
|
353
|
+
if (this.dockPos === 'top') {
|
|
354
|
+
const delta = e.clientY - this.resizeStartPos;
|
|
355
|
+
this.el.style.height = `${Math.max(48, this.resizeStartSize + delta)}px`;
|
|
356
|
+
}
|
|
357
|
+
else if (this.dockPos === 'left') {
|
|
358
|
+
const delta = e.clientX - this.resizeStartPos;
|
|
359
|
+
this.el.style.width = `${Math.max(80, this.resizeStartSize + delta)}px`;
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
362
|
+
const delta = this.resizeStartPos - e.clientX;
|
|
363
|
+
this.el.style.width = `${Math.max(80, this.resizeStartSize + delta)}px`;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
cleanupResize() {
|
|
367
|
+
this.isResizing = false;
|
|
368
|
+
if (this._onResizeMove)
|
|
369
|
+
document.removeEventListener('mousemove', this._onResizeMove);
|
|
370
|
+
if (this._onResizeUp)
|
|
371
|
+
document.removeEventListener('mouseup', this._onResizeUp);
|
|
372
|
+
this._onResizeMove = null;
|
|
373
|
+
this._onResizeUp = null;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
//# sourceMappingURL=group-drop-zone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-drop-zone.js","sourceRoot":"","sources":["../../src/renderer/group-drop-zone.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import type { ColumnDef } from '../types/column.types';
|
|
2
|
+
import type { GridStore } from '../core/grid-store';
|
|
3
|
+
import type { EventBus } from '../event-bus/event-bus';
|
|
4
|
+
import type { IconRenderer } from '../icons/icon-renderer';
|
|
5
|
+
import type { ColumnModel } from '../core/column-model';
|
|
6
|
+
import type { SortEngine } from '../engines/sort/sort-engine';
|
|
7
|
+
import type { GroupDropZone } from './group-drop-zone';
|
|
8
|
+
import type { ColumnGroupModel } from '../column-groups/column-group-model';
|
|
9
|
+
import type { ColumnGroupHeaderBuilder } from '../column-groups/column-group-header-builder';
|
|
10
|
+
import type { ColumnGroupDragHandler } from '../column-groups/column-group-drag-handler';
|
|
11
|
+
import type { DisplayGroupEngine } from '../column-groups/display-group-engine';
|
|
12
|
+
import { ColumnStyleManager } from './column-style-manager';
|
|
13
|
+
export interface HeaderRendererOptions {
|
|
14
|
+
showCheckboxes?: boolean;
|
|
15
|
+
showSerialNumber?: boolean;
|
|
16
|
+
showFilterRow?: boolean;
|
|
17
|
+
showColumnMenu?: boolean;
|
|
18
|
+
headerRowHeight?: number;
|
|
19
|
+
filterRowHeight?: number;
|
|
20
|
+
hasGroupedColumns?: boolean;
|
|
21
|
+
autoGroupColWidth?: number;
|
|
22
|
+
}
|
|
23
|
+
export declare class HeaderRenderer {
|
|
24
|
+
private store;
|
|
25
|
+
private eventBus;
|
|
26
|
+
private iconRenderer;
|
|
27
|
+
private columnModel;
|
|
28
|
+
private sortEngine;
|
|
29
|
+
private colStyles;
|
|
30
|
+
private leftHeaderRowEl;
|
|
31
|
+
private centerHeaderRowEl;
|
|
32
|
+
private rightHeaderRowEl;
|
|
33
|
+
private centerFilterRowEl;
|
|
34
|
+
private headerCheckbox;
|
|
35
|
+
private columnMenu;
|
|
36
|
+
private groupContextMenu;
|
|
37
|
+
private groupDropZone;
|
|
38
|
+
/** Tree model for the column group hierarchy. `null` until wired via `setColumnGroupModel`. */
|
|
39
|
+
private groupModel;
|
|
40
|
+
/** DOM builder for multi-row grouped header rows. `null` until wired. */
|
|
41
|
+
private groupHeaderBuilder;
|
|
42
|
+
/** Group header row elements per panel — indexed 0..maxDepth-1. */
|
|
43
|
+
private leftGroupRowEls;
|
|
44
|
+
private centerGroupRowEls;
|
|
45
|
+
private rightGroupRowEls;
|
|
46
|
+
/**
|
|
47
|
+
* Callback invoked when the user clicks a group collapse/expand toggle.
|
|
48
|
+
* Provided by `GridRenderer` so it can coordinate header + body rebuild.
|
|
49
|
+
*/
|
|
50
|
+
private onGroupToggleFn;
|
|
51
|
+
/**
|
|
52
|
+
* Callback invoked when the user finishes dragging a group resize handle.
|
|
53
|
+
* `GridRenderer` wires this to distribute the delta and trigger reflow.
|
|
54
|
+
*/
|
|
55
|
+
private onGroupResizeFn;
|
|
56
|
+
/**
|
|
57
|
+
* Wired by `GridRenderer` after group model setup — used in `onGlobalMouseUp`
|
|
58
|
+
* to create a clone group when a leaf is dropped onto a different group header.
|
|
59
|
+
*/
|
|
60
|
+
private groupDragHandler;
|
|
61
|
+
/**
|
|
62
|
+
* Display Group Engine — the new architecture that replaces ColumnGroupModel.
|
|
63
|
+
* When set, `renderInPanels` uses this engine instead of the legacy model.
|
|
64
|
+
*/
|
|
65
|
+
private displayGroupEngine;
|
|
66
|
+
/**
|
|
67
|
+
* Cached header row height from the last `renderInPanels` / `updateCenterVisibleCols`
|
|
68
|
+
* call. Used by `rebuildGroupRowsForPanel` which is called during drag when
|
|
69
|
+
* `HeaderRendererOptions` is not available on the call stack.
|
|
70
|
+
*/
|
|
71
|
+
private lastGroupRowHeight;
|
|
72
|
+
private draggingColId;
|
|
73
|
+
private isDragging;
|
|
74
|
+
private draggingPanelRowEl;
|
|
75
|
+
private draggingIsGroupable;
|
|
76
|
+
private isOverGroupZone;
|
|
77
|
+
private ghostEl;
|
|
78
|
+
private dragStyleEl;
|
|
79
|
+
private draggingGridEl;
|
|
80
|
+
private draggedColWidth;
|
|
81
|
+
private dragStartScrollX;
|
|
82
|
+
private dragIsHideMode;
|
|
83
|
+
private dragSourcePanel;
|
|
84
|
+
private dragTargetPanel;
|
|
85
|
+
private dragTargetLocalIdx;
|
|
86
|
+
private panelDragData;
|
|
87
|
+
private livePanelMoveInProgress;
|
|
88
|
+
private scrollByX;
|
|
89
|
+
private canScrollX;
|
|
90
|
+
private onResizeCb;
|
|
91
|
+
private autoScrollRAF;
|
|
92
|
+
private autoScrollSpeed;
|
|
93
|
+
private centerPanelRect;
|
|
94
|
+
/** Last known cursor X during column drag — used to replay `onDragMove` after auto-scroll ticks. */
|
|
95
|
+
private lastDragClientX;
|
|
96
|
+
private boundMouseMove;
|
|
97
|
+
private boundMouseUp;
|
|
98
|
+
/** Callback wired by GridRenderer to open a filter panel for a column. */
|
|
99
|
+
private openFilterPanelFn;
|
|
100
|
+
/** Read by grid-renderer's columns-store watcher to skip header destroy during drag */
|
|
101
|
+
get isDraggingCol(): boolean;
|
|
102
|
+
/** True while the user holds the resize handle and is actively moving the mouse. */
|
|
103
|
+
private _isResizingColumn;
|
|
104
|
+
/**
|
|
105
|
+
* `true` between the resize-handle `mousedown` and the corresponding `mouseup`.
|
|
106
|
+
* Grid-renderer uses this to suppress body `renderRows` during resize — column
|
|
107
|
+
* widths are driven by CSS rules from `ColumnStyleManager`, so the body DOM
|
|
108
|
+
* never needs to be rebuilt while the user is dragging a resize handle.
|
|
109
|
+
*/
|
|
110
|
+
get isResizingColumn(): boolean;
|
|
111
|
+
constructor(store: GridStore, eventBus: EventBus, iconRenderer: IconRenderer, columnModel: ColumnModel, sortEngine: SortEngine, colStyles: ColumnStyleManager);
|
|
112
|
+
setScrollCallback(fn: (dx: number) => void, canScrollX?: (dir: 1 | -1) => boolean): void;
|
|
113
|
+
setResizeCallback(cb: () => void): void;
|
|
114
|
+
/**
|
|
115
|
+
* Register the callback invoked when the user clicks the filter icon on a
|
|
116
|
+
* filterable column header. Wired by `GridRenderer.buildLayout()`.
|
|
117
|
+
*
|
|
118
|
+
* @param fn - Opens/positions a `FilterPanel` for the given column.
|
|
119
|
+
*/
|
|
120
|
+
setOpenFilterPanelCallback(fn: (colDef: ColumnDef, anchorEl: HTMLElement) => void): void;
|
|
121
|
+
/**
|
|
122
|
+
* Wire the column-group model and DOM builder into the header renderer.
|
|
123
|
+
*
|
|
124
|
+
* Call this before the first `renderInPanels` when the grid's column
|
|
125
|
+
* definitions contain groups (i.e. `ColumnDef.children` is present on any
|
|
126
|
+
* top-level column). Once wired, `renderInPanels` and `updateCenterVisibleCols`
|
|
127
|
+
* automatically insert and update the multi-row grouped header rows.
|
|
128
|
+
*
|
|
129
|
+
* @param model - The live {@link ColumnGroupModel} for the grid.
|
|
130
|
+
* @param builder - The {@link ColumnGroupHeaderBuilder} instance.
|
|
131
|
+
*/
|
|
132
|
+
setColumnGroupModel(model: ColumnGroupModel, builder: ColumnGroupHeaderBuilder): void;
|
|
133
|
+
/**
|
|
134
|
+
* Wire the new Display Group Engine into the header renderer.
|
|
135
|
+
* When set, `renderInPanels` uses the engine's builder instead of the legacy
|
|
136
|
+
* `ColumnGroupModel` + `ColumnGroupHeaderBuilder`.
|
|
137
|
+
*
|
|
138
|
+
* @param engine - The fully-initialised `DisplayGroupEngine` instance.
|
|
139
|
+
*/
|
|
140
|
+
setDisplayGroupEngine(engine: DisplayGroupEngine): void;
|
|
141
|
+
/**
|
|
142
|
+
* Register the callback fired when a user toggles a group's collapse state.
|
|
143
|
+
*
|
|
144
|
+
* `GridRenderer` wires this to coordinate header rebuild + leaf-column
|
|
145
|
+
* visibility update in `ColumnModel`.
|
|
146
|
+
*
|
|
147
|
+
* @param fn - Receives the `groupId` of the toggled group.
|
|
148
|
+
*/
|
|
149
|
+
setGroupToggleCallback(fn: (groupId: string) => void): void;
|
|
150
|
+
/**
|
|
151
|
+
* Register the callback fired when a user finishes dragging a group resize handle.
|
|
152
|
+
*
|
|
153
|
+
* `GridRenderer` wires this to call {@link ColumnGroupModel.distributeResizeDelta}
|
|
154
|
+
* and flush the updated widths to `ColumnStyleManager`.
|
|
155
|
+
*
|
|
156
|
+
* @param fn - Receives `groupId` and the new desired total group width.
|
|
157
|
+
*/
|
|
158
|
+
setGroupResizeCallback(fn: (groupId: string, newWidth: number) => void): void;
|
|
159
|
+
/**
|
|
160
|
+
* Wire the group drag handler so that leaf drops on foreign group header cells
|
|
161
|
+
* create solo clone groups instead of doing a plain column reorder.
|
|
162
|
+
*
|
|
163
|
+
* @param handler - The active `ColumnGroupDragHandler` instance.
|
|
164
|
+
*/
|
|
165
|
+
setGroupDragHandler(handler: ColumnGroupDragHandler): void;
|
|
166
|
+
/**
|
|
167
|
+
* Rebuild only the group-header rows for all panels without touching the leaf
|
|
168
|
+
* row or filter row. Call this after a group collapse/expand event has already
|
|
169
|
+
* been processed by the model (i.e. `group.collapsed` flag is up to date).
|
|
170
|
+
*
|
|
171
|
+
* @param options - Header renderer options (passed from last `renderInPanels` call).
|
|
172
|
+
*/
|
|
173
|
+
rebuildGroupRows(options: HeaderRendererOptions): void;
|
|
174
|
+
/**
|
|
175
|
+
* Updates the filter-active indicator (`pg-th--filter-active` class and icon
|
|
176
|
+
* swap) on every rendered header cell based on the current `FilterModel`.
|
|
177
|
+
* Called from the renderer's `filterModel` store watcher.
|
|
178
|
+
*
|
|
179
|
+
* @param activeColIds - Set of `colId` strings that currently have an active filter.
|
|
180
|
+
*/
|
|
181
|
+
updateFilterIndicators(activeColIds: Set<string>): void;
|
|
182
|
+
/**
|
|
183
|
+
* Build the {@link GroupCellBuildOptions} object forwarded to the DOM builder.
|
|
184
|
+
* Wires the toggle and resize callbacks registered by `GridRenderer`.
|
|
185
|
+
*/
|
|
186
|
+
private buildGroupCellOptions;
|
|
187
|
+
renderInPanels(leftContainer: HTMLElement, centerInnerEl: HTMLElement, rightContainer: HTMLElement, allColumns: ColumnDef[], options?: HeaderRendererOptions): void;
|
|
188
|
+
updateSortIndicator(colId: string, order: 'asc' | 'desc' | null): void;
|
|
189
|
+
updateAllChecked(isAll: boolean, isIndeterminate: boolean): void;
|
|
190
|
+
setGroupDropZone(zone: GroupDropZone): void;
|
|
191
|
+
destroy(): void;
|
|
192
|
+
updateCenterVisibleCols(visibleCols: ColumnDef[], leftSpacerW: number, rightSpacerW: number, options: HeaderRendererOptions): void;
|
|
193
|
+
private makeSpacer;
|
|
194
|
+
private capturePanelDragData;
|
|
195
|
+
private buildHeaderRow;
|
|
196
|
+
private buildAutoGroupTh;
|
|
197
|
+
private buildCheckboxHeaderCell;
|
|
198
|
+
private buildSerialHeaderCell;
|
|
199
|
+
private buildHeaderCell;
|
|
200
|
+
private buildFilterCell;
|
|
201
|
+
private buildFilterRow;
|
|
202
|
+
private attachColumnDragListeners;
|
|
203
|
+
private startColumnDrag;
|
|
204
|
+
/**
|
|
205
|
+
* When the cursor crosses into a new panel:
|
|
206
|
+
* 1. Immediately DOM-move the source TH into the target panel header row
|
|
207
|
+
* 2. Call moveAndPin() so body cells and panel widths update via the guarded re-render
|
|
208
|
+
* 3. After 2 frames (re-render complete), re-capture rects and continue drag
|
|
209
|
+
*/
|
|
210
|
+
private moveToPanelLive;
|
|
211
|
+
private readonly tickAutoScroll;
|
|
212
|
+
private updateAutoScroll;
|
|
213
|
+
private stopAutoScroll;
|
|
214
|
+
/**
|
|
215
|
+
* Re-captures header column rects and re-applies drag transforms after each
|
|
216
|
+
* auto-scroll step. Runs 2 animation frames after the scroll so the grid's
|
|
217
|
+
* virtual column render (`updateCenterVisibleCols`) has completed and the DOM
|
|
218
|
+
* reflects any newly visible columns before `getBoundingClientRect` is called.
|
|
219
|
+
*
|
|
220
|
+
* This mirrors the 2-frame pattern used by `moveToPanelLive` and ensures the
|
|
221
|
+
* dragged-column ghost and sibling transforms stay accurate even when the
|
|
222
|
+
* mouse is stationary at the viewport edge while auto-scroll is running.
|
|
223
|
+
*/
|
|
224
|
+
private refreshDragAfterScroll;
|
|
225
|
+
/**
|
|
226
|
+
* Rebuild the group header rows for one panel using a new (possibly preview)
|
|
227
|
+
* column order. Safe to call during drag — only the group row `<div>`s are
|
|
228
|
+
* replaced; the leaf row `<tr>` that carries the live drag element is untouched.
|
|
229
|
+
*
|
|
230
|
+
* @param panel - Which panel's group rows to refresh.
|
|
231
|
+
* @param cols - Ordered visible columns for this panel (preview or committed).
|
|
232
|
+
*/
|
|
233
|
+
private rebuildGroupRowsForPanel;
|
|
234
|
+
/**
|
|
235
|
+
* Compute the preview column order for the drag source panel (same-panel drag)
|
|
236
|
+
* and rebuild its group rows.
|
|
237
|
+
*
|
|
238
|
+
* Called from `onDragMove` whenever the effective drop slot changes. Always
|
|
239
|
+
* derives the preview from the captured `panelDragData` colIds so the
|
|
240
|
+
* `LogicalGroupRegistry` sees the exact order the column would land in on drop.
|
|
241
|
+
*
|
|
242
|
+
* @param targetIdx - Effective slot index the dragged column is hovering over.
|
|
243
|
+
* @param sourceIdx - Original slot index of the dragged column in its panel.
|
|
244
|
+
* @param pd - Panel drag data for the source panel.
|
|
245
|
+
*/
|
|
246
|
+
private rebuildGroupRowsWithPreview;
|
|
247
|
+
private onDragMove;
|
|
248
|
+
private onGlobalMouseMove;
|
|
249
|
+
private onGlobalMouseUp;
|
|
250
|
+
private cleanupDrag;
|
|
251
|
+
private startResize;
|
|
252
|
+
/**
|
|
253
|
+
* Returns `true` when `colId` (at its new position `newIdx` in the visible
|
|
254
|
+
* columns array) is no longer adjacent to any sibling leaf from its parent
|
|
255
|
+
* group — meaning it has been dragged outside the group's contiguous span.
|
|
256
|
+
*
|
|
257
|
+
* @param colId - The moved leaf column.
|
|
258
|
+
* @param newIdx - Its new index in `cols`.
|
|
259
|
+
* @param cols - Current flat visible-column array (after the move).
|
|
260
|
+
*/
|
|
261
|
+
private isLeafOutsideGroup;
|
|
262
|
+
private onAction;
|
|
263
|
+
}
|
|
264
|
+
//# sourceMappingURL=header-renderer.d.ts.map
|