@polygrid/core 1.0.530 → 1.0.532

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/api/index.d.ts +1 -0
  2. package/dist/api/index.d.ts.map +1 -1
  3. package/dist/api/index.js +2 -0
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/api/set-show-statusbar.d.ts +3 -0
  6. package/dist/api/set-show-statusbar.d.ts.map +1 -0
  7. package/dist/api/set-show-statusbar.js +6 -0
  8. package/dist/api/set-show-statusbar.js.map +1 -0
  9. package/dist/engine/const/pg-css-class.d.ts +2 -0
  10. package/dist/engine/const/pg-css-class.d.ts.map +1 -1
  11. package/dist/engine/const/pg-css-class.js +2 -0
  12. package/dist/engine/const/pg-css-class.js.map +1 -1
  13. package/dist/engine/core/grid-dom.d.ts +1 -0
  14. package/dist/engine/core/grid-dom.d.ts.map +1 -1
  15. package/dist/engine/core/grid-dom.js.map +1 -1
  16. package/dist/engine/core/grid-runtime.d.ts +1 -0
  17. package/dist/engine/core/grid-runtime.d.ts.map +1 -1
  18. package/dist/engine/core/grid-runtime.js +1 -0
  19. package/dist/engine/core/grid-runtime.js.map +1 -1
  20. package/dist/engine/core/interfaces/grid-options.d.ts +1 -0
  21. package/dist/engine/core/interfaces/grid-options.d.ts.map +1 -1
  22. package/dist/engine/core/methods/consume-options.d.ts.map +1 -1
  23. package/dist/engine/core/methods/consume-options.js +5 -0
  24. package/dist/engine/core/methods/consume-options.js.map +1 -1
  25. package/dist/engine/services/layout/index.d.ts +2 -0
  26. package/dist/engine/services/layout/index.d.ts.map +1 -1
  27. package/dist/engine/services/layout/index.js +2 -0
  28. package/dist/engine/services/layout/index.js.map +1 -1
  29. package/dist/engine/services/layout/layout.d.ts +1 -0
  30. package/dist/engine/services/layout/layout.d.ts.map +1 -1
  31. package/dist/engine/services/layout/layout.js +4 -0
  32. package/dist/engine/services/layout/layout.js.map +1 -1
  33. package/dist/engine/services/layout/methods/set-show-statusbar.d.ts +5 -0
  34. package/dist/engine/services/layout/methods/set-show-statusbar.d.ts.map +1 -0
  35. package/dist/engine/services/layout/methods/set-show-statusbar.js +28 -0
  36. package/dist/engine/services/layout/methods/set-show-statusbar.js.map +1 -0
  37. package/dist/engine/services/layout/methods/set-up-resize-observer.d.ts.map +1 -1
  38. package/dist/engine/services/layout/methods/set-up-resize-observer.js +6 -1
  39. package/dist/engine/services/layout/methods/set-up-resize-observer.js.map +1 -1
  40. package/dist/engine/services/renderer/interfaces/renderer-adapter.d.ts +2 -0
  41. package/dist/engine/services/renderer/interfaces/renderer-adapter.d.ts.map +1 -1
  42. package/dist/engine/services/renderer/interfaces/statusbar-renderer-params.d.ts +5 -0
  43. package/dist/engine/services/renderer/interfaces/statusbar-renderer-params.d.ts.map +1 -0
  44. package/dist/engine/services/renderer/interfaces/statusbar-renderer-params.js +2 -0
  45. package/dist/engine/services/renderer/interfaces/statusbar-renderer-params.js.map +1 -0
  46. package/dist/engine/services/renderer/interfaces/template-mounts/statusbar-mount.d.ts +8 -0
  47. package/dist/engine/services/renderer/interfaces/template-mounts/statusbar-mount.d.ts.map +1 -0
  48. package/dist/engine/services/renderer/interfaces/template-mounts/statusbar-mount.js +2 -0
  49. package/dist/engine/services/renderer/interfaces/template-mounts/statusbar-mount.js.map +1 -0
  50. package/dist/engine/services/renderer/parts/grid/grid.d.ts.map +1 -1
  51. package/dist/engine/services/renderer/parts/grid/grid.js +4 -0
  52. package/dist/engine/services/renderer/parts/grid/grid.js.map +1 -1
  53. package/dist/engine/services/renderer/parts/statusbar/statusbar.d.ts +3 -0
  54. package/dist/engine/services/renderer/parts/statusbar/statusbar.d.ts.map +1 -0
  55. package/dist/engine/services/renderer/parts/statusbar/statusbar.js +42 -0
  56. package/dist/engine/services/renderer/parts/statusbar/statusbar.js.map +1 -0
  57. package/dist/engine/services/selection/index.d.ts +10 -0
  58. package/dist/engine/services/selection/index.d.ts.map +1 -1
  59. package/dist/engine/services/selection/index.js +10 -0
  60. package/dist/engine/services/selection/index.js.map +1 -1
  61. package/dist/engine/services/selection/methods/aggregates/compute-selection-aggregates.d.ts +3 -0
  62. package/dist/engine/services/selection/methods/aggregates/compute-selection-aggregates.d.ts.map +1 -0
  63. package/dist/engine/services/selection/methods/aggregates/compute-selection-aggregates.js +73 -0
  64. package/dist/engine/services/selection/methods/aggregates/compute-selection-aggregates.js.map +1 -0
  65. package/dist/engine/services/selection/methods/aggregates/empty-aggregates.d.ts +3 -0
  66. package/dist/engine/services/selection/methods/aggregates/empty-aggregates.d.ts.map +1 -0
  67. package/dist/engine/services/selection/methods/aggregates/empty-aggregates.js +4 -0
  68. package/dist/engine/services/selection/methods/aggregates/empty-aggregates.js.map +1 -0
  69. package/dist/engine/services/selection/methods/aggregates/extract-cell-value.d.ts +4 -0
  70. package/dist/engine/services/selection/methods/aggregates/extract-cell-value.d.ts.map +1 -0
  71. package/dist/engine/services/selection/methods/aggregates/extract-cell-value.js +17 -0
  72. package/dist/engine/services/selection/methods/aggregates/extract-cell-value.js.map +1 -0
  73. package/dist/engine/services/selection/methods/aggregates/extract-number.d.ts +2 -0
  74. package/dist/engine/services/selection/methods/aggregates/extract-number.d.ts.map +1 -0
  75. package/dist/engine/services/selection/methods/aggregates/extract-number.js +15 -0
  76. package/dist/engine/services/selection/methods/aggregates/extract-number.js.map +1 -0
  77. package/dist/engine/services/selection/methods/aggregates/ranges-equal.d.ts +3 -0
  78. package/dist/engine/services/selection/methods/aggregates/ranges-equal.d.ts.map +1 -0
  79. package/dist/engine/services/selection/methods/aggregates/ranges-equal.js +11 -0
  80. package/dist/engine/services/selection/methods/aggregates/ranges-equal.js.map +1 -0
  81. package/dist/engine/services/selection/methods/cell/select-cell.d.ts.map +1 -1
  82. package/dist/engine/services/selection/methods/cell/select-cell.js +8 -0
  83. package/dist/engine/services/selection/methods/cell/select-cell.js.map +1 -1
  84. package/dist/engine/services/selection/selection.d.ts +4 -0
  85. package/dist/engine/services/selection/selection.d.ts.map +1 -1
  86. package/dist/engine/services/selection/selection.js +4 -0
  87. package/dist/engine/services/selection/selection.js.map +1 -1
  88. package/dist/engine/store/interfaces/selection-aggregates.d.ts +8 -0
  89. package/dist/engine/store/interfaces/selection-aggregates.d.ts.map +1 -0
  90. package/dist/engine/store/interfaces/selection-aggregates.js +2 -0
  91. package/dist/engine/store/interfaces/selection-aggregates.js.map +1 -0
  92. package/dist/engine/store/interfaces/selection-state.d.ts +2 -0
  93. package/dist/engine/store/interfaces/selection-state.d.ts.map +1 -1
  94. package/dist/engine/store/interfaces/view-state.d.ts +1 -0
  95. package/dist/engine/store/interfaces/view-state.d.ts.map +1 -1
  96. package/dist/engine/store/methods/create-initial-state.d.ts.map +1 -1
  97. package/dist/engine/store/methods/create-initial-state.js +2 -0
  98. package/dist/engine/store/methods/create-initial-state.js.map +1 -1
  99. package/dist/polygrid.css +13 -0
  100. package/package.json +1 -1
@@ -0,0 +1,42 @@
1
+ import { PG_CSS_CLASS } from "../../../../const/pg-css-class";
2
+ export function renderStatusbar(grid) {
3
+ const state = grid._store.getState();
4
+ const statusBar = document.createElement("div");
5
+ statusBar.classList.add(PG_CSS_CLASS.statusBar);
6
+ grid._gridDom.statusBar = statusBar;
7
+ // destroy previous dynamic template if any
8
+ grid._runtime.statusBarHandle?.destroy();
9
+ grid._runtime.statusBarHandle = null;
10
+ // try dynamic template first
11
+ const handle = state.view.rendererAdapter?.renderStatusBarTemplate?.({
12
+ container: statusBar,
13
+ context: { selectionAggregates: state.view.selectionState.aggregates },
14
+ });
15
+ const sub = grid._services.selection
16
+ .selectionAggregates()
17
+ .subscribe((aggregates) => {
18
+ if (handle) {
19
+ // update Angular template context
20
+ handle.update({ selectionAggregates: aggregates });
21
+ }
22
+ else {
23
+ // update built-in fallback
24
+ renderFallbackStatusbar(statusBar, aggregates);
25
+ }
26
+ });
27
+ // store dynamic handle
28
+ if (handle) {
29
+ grid._runtime.statusBarHandle = handle;
30
+ }
31
+ return statusBar;
32
+ }
33
+ function renderFallbackStatusbar(container, aggs) {
34
+ container.innerHTML = `
35
+ <div class="${PG_CSS_CLASS.statusItem}">Sum: ${aggs.sum}</div>
36
+ <div class="${PG_CSS_CLASS.statusItem}">Min: ${aggs.min}</div>
37
+ <div class="${PG_CSS_CLASS.statusItem}">Max: ${aggs.max}</div>
38
+ <div class="${PG_CSS_CLASS.statusItem}">Avg: ${aggs.avg}</div>
39
+ <div class="${PG_CSS_CLASS.statusItem}">Count: ${aggs.count}</div>
40
+ `;
41
+ }
42
+ //# sourceMappingURL=statusbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusbar.js","sourceRoot":"","sources":["../../../../../../src/engine/services/renderer/parts/statusbar/statusbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAI9D,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAEhD,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IAEpC,2CAA2C;IAC3C,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;IACzC,IAAI,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC;IAErC,6BAA6B;IAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,uBAAuB,EAAE,CAAC;QACnE,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,EAAE,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;KACvE,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS;SACjC,mBAAmB,EAAE;SACrB,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE;QACxB,IAAI,MAAM,EAAE,CAAC;YACX,kCAAkC;YAClC,MAAM,CAAC,MAAM,CAAC,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,2BAA2B;YAC3B,uBAAuB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,uBAAuB;IACvB,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,QAAQ,CAAC,eAAe,GAAG,MAAM,CAAC;IACzC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,uBAAuB,CAC9B,SAAsB,EACtB,IAAyB;IAEzB,SAAS,CAAC,SAAS,GAAG;kBACN,YAAY,CAAC,UAAU,UAAU,IAAI,CAAC,GAAG;kBACzC,YAAY,CAAC,UAAU,UAAU,IAAI,CAAC,GAAG;kBACzC,YAAY,CAAC,UAAU,UAAU,IAAI,CAAC,GAAG;kBACzC,YAAY,CAAC,UAAU,UAAU,IAAI,CAAC,GAAG;kBACzC,YAAY,CAAC,UAAU,YAAY,IAAI,CAAC,KAAK;GAC5D,CAAC;AACJ,CAAC"}
@@ -33,6 +33,11 @@ import { selectRowByKeyboard } from "./methods/cell/select-row-by-keyboard";
33
33
  import { selectColumnByKeyboard } from "./methods/cell/select-column-by-keyboard";
34
34
  import { selectAllByKeyboard } from "./methods/cell/select-all-by-keyboard";
35
35
  import { clearSelectionByKeyboard } from "./methods/cell/clear-selection-by-keyboard";
36
+ import { extractNumber } from "./methods/aggregates/extract-number";
37
+ import { computeSelectionAggregates } from "./methods/aggregates/compute-selection-aggregates";
38
+ import { emptyAggregates } from "./methods/aggregates/empty-aggregates";
39
+ import { extractCellValue } from "./methods/aggregates/extract-cell-value";
40
+ import { rangesEqual } from "./methods/aggregates/ranges-equal";
36
41
  export declare const methods: {
37
42
  clearRowSelection: typeof clearRowSelection;
38
43
  clearCellSelection: typeof clearCellSelection;
@@ -68,6 +73,11 @@ export declare const methods: {
68
73
  selectColumnByKeyboard: typeof selectColumnByKeyboard;
69
74
  selectAllByKeyboard: typeof selectAllByKeyboard;
70
75
  clearSelectionByKeyboard: typeof clearSelectionByKeyboard;
76
+ extractNumber: typeof extractNumber;
77
+ computeSelectionAggregates: typeof computeSelectionAggregates;
78
+ emptyAggregates: typeof emptyAggregates;
79
+ extractCellValue: typeof extractCellValue;
80
+ rangesEqual: typeof rangesEqual;
71
81
  };
72
82
  export type SelectionMethods = typeof methods;
73
83
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engine/services/selection/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAEtF,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,OAAO,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engine/services/selection/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,OAAO,OAAO,CAAC"}
@@ -33,6 +33,11 @@ import { selectRowByKeyboard } from "./methods/cell/select-row-by-keyboard";
33
33
  import { selectColumnByKeyboard } from "./methods/cell/select-column-by-keyboard";
34
34
  import { selectAllByKeyboard } from "./methods/cell/select-all-by-keyboard";
35
35
  import { clearSelectionByKeyboard } from "./methods/cell/clear-selection-by-keyboard";
36
+ import { extractNumber } from "./methods/aggregates/extract-number";
37
+ import { computeSelectionAggregates } from "./methods/aggregates/compute-selection-aggregates";
38
+ import { emptyAggregates } from "./methods/aggregates/empty-aggregates";
39
+ import { extractCellValue } from "./methods/aggregates/extract-cell-value";
40
+ import { rangesEqual } from "./methods/aggregates/ranges-equal";
36
41
  export const methods = {
37
42
  clearRowSelection,
38
43
  clearCellSelection,
@@ -68,5 +73,10 @@ export const methods = {
68
73
  selectColumnByKeyboard,
69
74
  selectAllByKeyboard,
70
75
  clearSelectionByKeyboard,
76
+ extractNumber,
77
+ computeSelectionAggregates,
78
+ emptyAggregates,
79
+ extractCellValue,
80
+ rangesEqual,
71
81
  };
72
82
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engine/services/selection/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAEtF,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,iBAAiB;IACjB,kBAAkB;IAClB,YAAY;IACZ,SAAS;IACT,cAAc;IACd,aAAa;IACb,YAAY;IACZ,WAAW;IACX,gBAAgB;IAChB,aAAa;IACb,mBAAmB;IACnB,cAAc;IACd,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,aAAa;IACb,iBAAiB;IACjB,kBAAkB;IAClB,SAAS;IACT,aAAa;IACb,UAAU;IACV,SAAS;IACT,UAAU;IACV,OAAO;IACP,gBAAgB;IAChB,iBAAiB;IACjB,WAAW;IACX,WAAW;IACX,eAAe;IACf,sBAAsB;IACtB,mBAAmB;IACnB,sBAAsB;IACtB,mBAAmB;IACnB,wBAAwB;CACzB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engine/services/selection/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { PolyGrid } from "../../../../core/grid";
2
+ export declare function computeSelectionAggregates(grid: PolyGrid): void;
3
+ //# sourceMappingURL=compute-selection-aggregates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compute-selection-aggregates.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/services/selection/methods/aggregates/compute-selection-aggregates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAMjD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,QAiFxD"}
@@ -0,0 +1,73 @@
1
+ import { emptyAggregates } from "./empty-aggregates";
2
+ import { extractCellValue } from "./extract-cell-value";
3
+ import { extractNumber } from "./extract-number";
4
+ export function computeSelectionAggregates(grid) {
5
+ const state = grid._store.getState();
6
+ const sel = state.view.selectionState.cell;
7
+ const range = sel.range;
8
+ if (!range) {
9
+ updateAggregates(grid, emptyAggregates());
10
+ return;
11
+ }
12
+ const { start, end } = range;
13
+ const isSingle = start.rowId === end.rowId && start.colId === end.colId;
14
+ if (isSingle) {
15
+ updateAggregates(grid, emptyAggregates());
16
+ return;
17
+ }
18
+ const viewRows = state.view.viewRows; // ordered ViewRow[]
19
+ const columns = state.view.internalColumns; // ordered InternalColumn[]
20
+ // Find row indices
21
+ const startRowIndex = viewRows.findIndex((r) => r.rowId === start.rowId);
22
+ const endRowIndex = viewRows.findIndex((r) => r.rowId === end.rowId);
23
+ if (startRowIndex < 0 || endRowIndex < 0) {
24
+ updateAggregates(grid, emptyAggregates());
25
+ return;
26
+ }
27
+ const r0 = Math.min(startRowIndex, endRowIndex);
28
+ const r1 = Math.max(startRowIndex, endRowIndex);
29
+ // Find column indices
30
+ const startColIndex = columns.findIndex((c) => c.id === start.colId);
31
+ const endColIndex = columns.findIndex((c) => c.id === end.colId);
32
+ if (startColIndex < 0 || endColIndex < 0) {
33
+ updateAggregates(grid, emptyAggregates());
34
+ return;
35
+ }
36
+ const c0 = Math.min(startColIndex, endColIndex);
37
+ const c1 = Math.max(startColIndex, endColIndex);
38
+ let sum = 0;
39
+ let min = Infinity;
40
+ let max = -Infinity;
41
+ let count = 0;
42
+ for (let r = r0; r <= r1; r++) {
43
+ const vr = viewRows[r];
44
+ for (let c = c0; c <= c1; c++) {
45
+ const col = columns[c];
46
+ const value = extractCellValue(vr, col);
47
+ const num = extractNumber(value);
48
+ if (num == null)
49
+ continue;
50
+ sum += num;
51
+ if (num < min)
52
+ min = num;
53
+ if (num > max)
54
+ max = num;
55
+ count++;
56
+ }
57
+ }
58
+ if (count === 0) {
59
+ updateAggregates(grid, emptyAggregates());
60
+ return;
61
+ }
62
+ updateAggregates(grid, {
63
+ sum,
64
+ min,
65
+ max,
66
+ avg: sum / count,
67
+ count,
68
+ });
69
+ }
70
+ function updateAggregates(grid, aggregates) {
71
+ grid._store.update((draft) => (draft.view.selectionState.aggregates = aggregates));
72
+ }
73
+ //# sourceMappingURL=compute-selection-aggregates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compute-selection-aggregates.js","sourceRoot":"","sources":["../../../../../../src/engine/services/selection/methods/aggregates/compute-selection-aggregates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { SelectionAggregates } from "../../../../store/interfaces/selection-aggregates";
2
+ export declare function emptyAggregates(): SelectionAggregates;
3
+ //# sourceMappingURL=empty-aggregates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-aggregates.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/services/selection/methods/aggregates/empty-aggregates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAExF,wBAAgB,eAAe,IAAI,mBAAmB,CAErD"}
@@ -0,0 +1,4 @@
1
+ export function emptyAggregates() {
2
+ return { sum: 0, min: 0, max: 0, avg: 0, count: 0 };
3
+ }
4
+ //# sourceMappingURL=empty-aggregates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-aggregates.js","sourceRoot":"","sources":["../../../../../../src/engine/services/selection/methods/aggregates/empty-aggregates.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe;IAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACtD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { InternalColumn } from "../../../column/interfaces/internal-column";
2
+ import { ViewRow } from "../../../row/types/view-row";
3
+ export declare function extractCellValue(vr: ViewRow, col: InternalColumn): unknown;
4
+ //# sourceMappingURL=extract-cell-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-cell-value.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/services/selection/methods/aggregates/extract-cell-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAkB1E"}
@@ -0,0 +1,17 @@
1
+ export function extractCellValue(vr, col) {
2
+ switch (vr.kind) {
3
+ case "data":
4
+ return vr.row.data[col.field];
5
+ case "group":
6
+ // Option A: group aggregate for this column
7
+ const agg = vr.group.getAggregate(col.field);
8
+ return agg?.value ?? null;
9
+ case "footer":
10
+ // Option B: footer aggregate for this column
11
+ const fagg = vr.group.getAggregate(col.field);
12
+ return fagg?.value ?? null;
13
+ default:
14
+ return null;
15
+ }
16
+ }
17
+ //# sourceMappingURL=extract-cell-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-cell-value.js","sourceRoot":"","sources":["../../../../../../src/engine/services/selection/methods/aggregates/extract-cell-value.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,gBAAgB,CAAC,EAAW,EAAE,GAAmB;IAC/D,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEhC,KAAK,OAAO;YACV,4CAA4C;YAC5C,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7C,OAAO,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC;QAE5B,KAAK,QAAQ;YACX,6CAA6C;YAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC;QAE7B;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function extractNumber(value: unknown): number | null;
2
+ //# sourceMappingURL=extract-number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-number.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/services/selection/methods/aggregates/extract-number.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAe3D"}
@@ -0,0 +1,15 @@
1
+ export function extractNumber(value) {
2
+ if (value == null)
3
+ return null;
4
+ if (typeof value === "number" && !Number.isNaN(value)) {
5
+ return value;
6
+ }
7
+ if (typeof value === "string") {
8
+ // Remove common formatting: commas, currency symbols, spaces
9
+ const cleaned = value.replace(/[^0-9.\-]/g, "");
10
+ const num = Number(cleaned);
11
+ return Number.isFinite(num) ? num : null;
12
+ }
13
+ return null;
14
+ }
15
+ //# sourceMappingURL=extract-number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-number.js","sourceRoot":"","sources":["../../../../../../src/engine/services/selection/methods/aggregates/extract-number.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAE/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,6DAA6D;QAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { CellRange } from "../../interfaces/cell-range";
2
+ export declare function rangesEqual(a: CellRange | null, b: CellRange | null): boolean;
3
+ //# sourceMappingURL=ranges-equal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ranges-equal.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/services/selection/methods/aggregates/ranges-equal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,EAAE,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAU7E"}
@@ -0,0 +1,11 @@
1
+ export function rangesEqual(a, b) {
2
+ if (a === b)
3
+ return true;
4
+ if (!a || !b)
5
+ return false;
6
+ return (a.start.rowId === b.start.rowId &&
7
+ a.start.colId === b.start.colId &&
8
+ a.end.rowId === b.end.rowId &&
9
+ a.end.colId === b.end.colId);
10
+ }
11
+ //# sourceMappingURL=ranges-equal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ranges-equal.js","sourceRoot":"","sources":["../../../../../../src/engine/services/selection/methods/aggregates/ranges-equal.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CAAC,CAAmB,EAAE,CAAmB;IAClE,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3B,OAAO,CACL,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK;QAC/B,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK;QAC/B,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK;QAC3B,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAC5B,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"select-cell.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/services/selection/methods/cell/select-cell.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,wBAAgB,UAAU,CACxB,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,EAC9B,IAAI,EAAE,QAAQ,QAOf"}
1
+ {"version":3,"file":"select-cell.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/services/selection/methods/cell/select-cell.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKnD,wBAAgB,UAAU,CACxB,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,EAC9B,IAAI,EAAE,QAAQ,QAcf"}
@@ -1,10 +1,18 @@
1
1
  import { takeUntil } from "../../../../rx-lite/operators/takeuntil";
2
+ import { computeSelectionAggregates } from "../aggregates/compute-selection-aggregates";
3
+ import { rangesEqual } from "../aggregates/ranges-equal";
2
4
  import { updateSelectionOverlay } from "./update-selection-overlay";
3
5
  export function selectCell(selectionService, destroy$, grid) {
4
6
  selectionService.selectedCells$
5
7
  .pipe(takeUntil(destroy$))
6
8
  .subscribe((cellSelState) => {
7
9
  updateSelectionOverlay(grid);
10
+ const newRange = cellSelState.range;
11
+ // Only compute aggregates if the range actually changed
12
+ if (!rangesEqual(selectionService.lastRange, newRange)) {
13
+ computeSelectionAggregates(grid);
14
+ selectionService.lastRange = newRange;
15
+ }
8
16
  }, "SELECT-CELL");
9
17
  }
10
18
  //# sourceMappingURL=select-cell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-cell.js","sourceRoot":"","sources":["../../../../../../src/engine/services/selection/methods/cell/select-cell.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,UAAU,UAAU,CACxB,gBAAkC,EAClC,QAA8B,EAC9B,IAAc;IAEd,gBAAgB,CAAC,cAAc;SAC5B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SACzB,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;QAC1B,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,EAAE,aAAa,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"select-cell.js","sourceRoot":"","sources":["../../../../../../src/engine/services/selection/methods/cell/select-cell.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,UAAU,UAAU,CACxB,gBAAkC,EAClC,QAA8B,EAC9B,IAAc;IAEd,gBAAgB,CAAC,cAAc;SAC5B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SACzB,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;QAC1B,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;QACpC,wDAAwD;QACxD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YACvD,0BAA0B,CAAC,IAAI,CAAC,CAAC;YACjC,gBAAgB,CAAC,SAAS,GAAG,QAAQ,CAAC;QACxC,CAAC;IACH,CAAC,EAAE,aAAa,CAAC,CAAC;AACtB,CAAC"}
@@ -2,9 +2,11 @@ import type { PolyGrid } from "../../core/grid";
2
2
  import { GridDOM } from "../../core/grid-dom";
3
3
  import { ObservableLike } from "../../rx-lite/interfaces/observable-like";
4
4
  import { CellSelectionState } from "../../store/interfaces/cell-selection-state";
5
+ import { SelectionAggregates } from "../../store/interfaces/selection-aggregates";
5
6
  import type { PolyGridStore } from "../../store/store";
6
7
  import { ServiceWithMethods } from "../services";
7
8
  import { SelectionMethods } from "./index";
9
+ import { CellRange } from "./interfaces/cell-range";
8
10
  import { PolyGridSelectionSettings } from "./interfaces/selection-settings";
9
11
  export declare class SelectionService {
10
12
  store: PolyGridStore;
@@ -15,6 +17,7 @@ export declare class SelectionService {
15
17
  selectedRows$: ObservableLike<Set<number>>;
16
18
  selectedCells$: ObservableLike<CellSelectionState>;
17
19
  selectAllState(): ObservableLike<"checked" | "unchecked" | "indeterminate">;
20
+ selectionAggregates(): ObservableLike<SelectionAggregates>;
18
21
  scrollZone: number;
19
22
  scrollSpeed: number;
20
23
  scrollTimer: number | null;
@@ -29,6 +32,7 @@ export declare class SelectionService {
29
32
  height: number;
30
33
  } | null;
31
34
  accelY: number;
35
+ lastRange: CellRange | null;
32
36
  constructor(grid: PolyGrid);
33
37
  initApiSubscriptions(): void;
34
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../../src/engine/services/selection/selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAgB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAW,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAE5E,qBAAa,gBAAgB;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IAEf,WAAW,EAAG,cAAc,CAAC,OAAO,GAAG,yBAAyB,CAAC,CAAC;IAClE,aAAa,EAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,cAAc,EAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAEpD,cAAc,IAAI,cAAc,CAAC,SAAS,GAAG,WAAW,GAAG,eAAe,CAAC;IAuB3E,UAAU,EAAE,MAAM,CAAM;IACxB,WAAW,EAAE,MAAM,CAAM;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClC,eAAe;;;MAAkB;IACjC,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI,CAAQ;IAChB,MAAM,EAAE,MAAM,CAAK;gBAEP,IAAI,EAAE,QAAQ;IAS1B,oBAAoB;CAkBrB;AAED,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,CACnD,gBAAgB,EAChB,gBAAgB,CACjB,CAAC"}
1
+ {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../../src/engine/services/selection/selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAgB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAW,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAE5E,qBAAa,gBAAgB;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IAEf,WAAW,EAAG,cAAc,CAAC,OAAO,GAAG,yBAAyB,CAAC,CAAC;IAClE,aAAa,EAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,cAAc,EAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAEpD,cAAc,IAAI,cAAc,CAAC,SAAS,GAAG,WAAW,GAAG,eAAe,CAAC;IAuB3E,mBAAmB,IAAI,cAAc,CAAC,mBAAmB,CAAC;IAO1D,UAAU,EAAE,MAAM,CAAM;IACxB,WAAW,EAAE,MAAM,CAAM;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClC,eAAe;;;MAAkB;IACjC,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI,CAAQ;IAChB,MAAM,EAAE,MAAM,CAAK;IACnB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAQ;gBAEvB,IAAI,EAAE,QAAQ;IAS1B,oBAAoB;CAkBrB;AAED,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,CACnD,gBAAgB,EAChB,gBAAgB,CACjB,CAAC"}
@@ -22,6 +22,9 @@ export class SelectionService {
22
22
  return "indeterminate";
23
23
  });
24
24
  }
25
+ selectionAggregates() {
26
+ return this.store.selectKeyed("view.selectionState.aggregates", (s) => s.view.selectionState.aggregates);
27
+ }
25
28
  constructor(grid) {
26
29
  this.scrollZone = 10;
27
30
  this.scrollSpeed = 20;
@@ -29,6 +32,7 @@ export class SelectionService {
29
32
  this.scrollDirection = { x: 0, y: 0 };
30
33
  this.dragBounds = null;
31
34
  this.accelY = 0;
35
+ this.lastRange = null;
32
36
  this.store = grid._store;
33
37
  this.destroy$ = grid._destroy$;
34
38
  this.gridDom = grid._gridDom;
@@ -1 +1 @@
1
- {"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../../src/engine/services/selection/selection.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAGtF,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAoB,OAAO,EAAE,MAAM,SAAS,CAAC;AAGpD,MAAM,OAAO,gBAAgB;IAU3B,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,yBAAyB,EAAE,CAAC,CAAC,EAAE,EAAE;YAC7D,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YACtC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,QAAS,CAAC,MAAM,CACnC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAC7B,CAAC,MAAM,CAAC;YAET,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,WAAW,CAAC;YAEpC,IAAI,aAAqB,CAAC;YAE1B,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;gBACtB,aAAa,GAAG,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YACpC,CAAC;YAED,IAAI,aAAa,KAAK,CAAC;gBAAE,OAAO,WAAW,CAAC;YAC5C,IAAI,aAAa,KAAK,KAAK;gBAAE,OAAO,SAAS,CAAC;YAC9C,OAAO,eAAe,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAcD,YAAY,IAAc;QAZ1B,eAAU,GAAW,EAAE,CAAC;QACxB,gBAAW,GAAW,EAAE,CAAC;QACzB,gBAAW,GAAkB,IAAI,CAAC;QAClC,oBAAe,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACjC,eAAU,GAKC,IAAI,CAAC;QAChB,WAAM,GAAW,CAAC,CAAC;QAGjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK;aAC1B,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;aACxD,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAChC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CACzC,kCAAkC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAC1C,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAC1C,0BAA0B,EAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAClC,CAAC;QACF,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;CACF"}
1
+ {"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../../src/engine/services/selection/selection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface SelectionAggregates {
2
+ sum: number;
3
+ min: number;
4
+ max: number;
5
+ avg: number;
6
+ count: number;
7
+ }
8
+ //# sourceMappingURL=selection-aggregates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-aggregates.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/selection-aggregates.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=selection-aggregates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-aggregates.js","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/selection-aggregates.ts"],"names":[],"mappings":""}
@@ -1,9 +1,11 @@
1
1
  import { CellSelectionState } from "./cell-selection-state";
2
2
  import { RowSelectionState } from "./row-selection-state";
3
3
  import { SelectionMode } from "../types/selection-mode";
4
+ import { SelectionAggregates } from "./selection-aggregates";
4
5
  export interface SelectionState {
5
6
  row: RowSelectionState;
6
7
  cell: CellSelectionState;
7
8
  active: SelectionMode;
9
+ aggregates: SelectionAggregates;
8
10
  }
9
11
  //# sourceMappingURL=selection-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"selection-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/selection-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,iBAAiB,CAAC;IACvB,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,aAAa,CAAC;CACvB"}
1
+ {"version":3,"file":"selection-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/selection-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,iBAAiB,CAAC;IACvB,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,mBAAmB,CAAC;CACjC"}
@@ -91,5 +91,6 @@ export interface PolyGridViewState {
91
91
  columnSchemaChanged: boolean;
92
92
  rowPositions: Record<string, RowPosition>;
93
93
  colPositions: Record<string, ColumnPosition>;
94
+ showStatusBar: boolean;
94
95
  }
95
96
  //# sourceMappingURL=view-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"view-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/view-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/view-state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-initial-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/methods/create-initial-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,wBAAgB,kBAAkB,IAAI,aAAa,CA8JlD"}
1
+ {"version":3,"file":"create-initial-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/methods/create-initial-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,wBAAgB,kBAAkB,IAAI,aAAa,CAgKlD"}
@@ -117,11 +117,13 @@ export function createInitialState() {
117
117
  focusedCell: null,
118
118
  },
119
119
  active: "none",
120
+ aggregates: { sum: 0, min: 0, max: 0, avg: 0, count: 0 },
120
121
  },
121
122
  selectable: false,
122
123
  columnSchemaChanged: false,
123
124
  rowPositions: {},
124
125
  colPositions: {},
126
+ showStatusBar: false,
125
127
  },
126
128
  ui: {
127
129
  resize: {
@@ -1 +1 @@
1
- {"version":3,"file":"create-initial-state.js","sourceRoot":"","sources":["../../../../src/engine/store/methods/create-initial-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-initial-state.js","sourceRoot":"","sources":["../../../../src/engine/store/methods/create-initial-state.ts"],"names":[],"mappings":"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"}
package/dist/polygrid.css CHANGED
@@ -1123,3 +1123,16 @@
1123
1123
  display: flex;
1124
1124
  justify-content: center;
1125
1125
  }
1126
+
1127
+ .pg-statusbar {
1128
+ display: flex;
1129
+ height: 40px;
1130
+ background-color: #f0f0f0;
1131
+ font-size: 12px;
1132
+ padding: 5px;
1133
+ border-top: 1px solid #d0d0d0;
1134
+ }
1135
+
1136
+ .pg-status-item {
1137
+ padding: 4px;
1138
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polygrid/core",
3
- "version": "1.0.530",
3
+ "version": "1.0.532",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",