@adaptabletools/adaptable 24.0.1 → 24.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/package.json +1 -1
  2. package/src/Api/Internal/FormatColumnInternalApi.d.ts +3 -2
  3. package/src/Api/Internal/FormatColumnInternalApi.js +15 -7
  4. package/src/Utilities/Services/QueryLanguageService.js +1 -1
  5. package/src/agGrid/AdaptableAgGrid.js +22 -31
  6. package/src/env.js +2 -2
  7. package/tsconfig.esm.tsbuildinfo +1 -1
  8. package/vendor/aql/api/QueryLanguageApi.d.ts +2 -1
  9. package/vendor/aql/api/QueryLanguageApi.d.ts.map +1 -1
  10. package/vendor/aql/api/QueryLanguageApi.js +28 -108
  11. package/vendor/aql/api/QueryLanguageApi.js.map +1 -1
  12. package/vendor/aql/contract/index.js +0 -34
  13. package/vendor/aql/contract/index.js.map +1 -1
  14. package/vendor/aql/corpus/corpusExpressions.js +0 -13
  15. package/vendor/aql/corpus/corpusExpressions.js.map +1 -1
  16. package/vendor/aql/corpus/corpusFixture.js +0 -7
  17. package/vendor/aql/corpus/corpusFixture.js.map +1 -1
  18. package/vendor/aql/draft/index.js +0 -4
  19. package/vendor/aql/draft/index.js.map +1 -1
  20. package/vendor/aql/evaluate.js +0 -22
  21. package/vendor/aql/evaluate.js.map +1 -1
  22. package/vendor/aql/evaluator/ExpressionEvaluationError.js +0 -4
  23. package/vendor/aql/evaluator/ExpressionEvaluationError.js.map +1 -1
  24. package/vendor/aql/evaluator/ExpressionNaError.js +0 -4
  25. package/vendor/aql/evaluator/ExpressionNaError.js.map +1 -1
  26. package/vendor/aql/evaluator/evaluateNode.js +0 -23
  27. package/vendor/aql/evaluator/evaluateNode.js.map +1 -1
  28. package/vendor/aql/functions/dateUtils.js +0 -63
  29. package/vendor/aql/functions/dateUtils.js.map +1 -1
  30. package/vendor/aql/functions/numberUtils.js +0 -12
  31. package/vendor/aql/functions/numberUtils.js.map +1 -1
  32. package/vendor/aql/functions/operatorFunctions.js +0 -13
  33. package/vendor/aql/functions/operatorFunctions.js.map +1 -1
  34. package/vendor/aql/functions/scalar/functions/AND.js +0 -5
  35. package/vendor/aql/functions/scalar/functions/AND.js.map +1 -1
  36. package/vendor/aql/functions/scalar/functions/ANY_CHANGE.js +0 -4
  37. package/vendor/aql/functions/scalar/functions/ANY_CHANGE.js.map +1 -1
  38. package/vendor/aql/functions/scalar/functions/ANY_CONTAINS.js +0 -4
  39. package/vendor/aql/functions/scalar/functions/ANY_CONTAINS.js.map +1 -1
  40. package/vendor/aql/functions/scalar/functions/AVG.js +0 -1
  41. package/vendor/aql/functions/scalar/functions/AVG.js.map +1 -1
  42. package/vendor/aql/functions/scalar/functions/CASE.js +2 -2
  43. package/vendor/aql/functions/scalar/functions/CASE.js.map +1 -1
  44. package/vendor/aql/functions/scalar/functions/COL.js +0 -2
  45. package/vendor/aql/functions/scalar/functions/COL.js.map +1 -1
  46. package/vendor/aql/functions/scalar/functions/CONTAINS.js +0 -3
  47. package/vendor/aql/functions/scalar/functions/CONTAINS.js.map +1 -1
  48. package/vendor/aql/functions/scalar/functions/DATE.js +0 -2
  49. package/vendor/aql/functions/scalar/functions/DATE.js.map +1 -1
  50. package/vendor/aql/functions/scalar/functions/ENDS_WITH.js +0 -1
  51. package/vendor/aql/functions/scalar/functions/ENDS_WITH.js.map +1 -1
  52. package/vendor/aql/functions/scalar/functions/EQ.js +0 -5
  53. package/vendor/aql/functions/scalar/functions/EQ.js.map +1 -1
  54. package/vendor/aql/functions/scalar/functions/GT.js +0 -3
  55. package/vendor/aql/functions/scalar/functions/GT.js.map +1 -1
  56. package/vendor/aql/functions/scalar/functions/GTE.js +0 -3
  57. package/vendor/aql/functions/scalar/functions/GTE.js.map +1 -1
  58. package/vendor/aql/functions/scalar/functions/IF.js +0 -5
  59. package/vendor/aql/functions/scalar/functions/IF.js.map +1 -1
  60. package/vendor/aql/functions/scalar/functions/IFERROR.js +0 -4
  61. package/vendor/aql/functions/scalar/functions/IFERROR.js.map +1 -1
  62. package/vendor/aql/functions/scalar/functions/IFNA.js +0 -5
  63. package/vendor/aql/functions/scalar/functions/IFNA.js.map +1 -1
  64. package/vendor/aql/functions/scalar/functions/IN.d.ts.map +1 -1
  65. package/vendor/aql/functions/scalar/functions/IN.js +54 -11
  66. package/vendor/aql/functions/scalar/functions/IN.js.map +1 -1
  67. package/vendor/aql/functions/scalar/functions/IS_BLANK.js +0 -1
  68. package/vendor/aql/functions/scalar/functions/IS_BLANK.js.map +1 -1
  69. package/vendor/aql/functions/scalar/functions/IS_DIFFERENT_DAY.js +0 -1
  70. package/vendor/aql/functions/scalar/functions/IS_DIFFERENT_DAY.js.map +1 -1
  71. package/vendor/aql/functions/scalar/functions/IS_NOT_BLANK.js +0 -1
  72. package/vendor/aql/functions/scalar/functions/IS_NOT_BLANK.js.map +1 -1
  73. package/vendor/aql/functions/scalar/functions/LT.js +0 -3
  74. package/vendor/aql/functions/scalar/functions/LT.js.map +1 -1
  75. package/vendor/aql/functions/scalar/functions/LTE.js +0 -3
  76. package/vendor/aql/functions/scalar/functions/LTE.js.map +1 -1
  77. package/vendor/aql/functions/scalar/functions/NA.js +0 -3
  78. package/vendor/aql/functions/scalar/functions/NA.js.map +1 -1
  79. package/vendor/aql/functions/scalar/functions/NOT_CONTAINS.js +0 -1
  80. package/vendor/aql/functions/scalar/functions/NOT_CONTAINS.js.map +1 -1
  81. package/vendor/aql/functions/scalar/functions/NOT_IN.js +0 -3
  82. package/vendor/aql/functions/scalar/functions/NOT_IN.js.map +1 -1
  83. package/vendor/aql/functions/scalar/functions/OR.js +0 -4
  84. package/vendor/aql/functions/scalar/functions/OR.js.map +1 -1
  85. package/vendor/aql/functions/scalar/functions/PRODUCT.js +0 -6
  86. package/vendor/aql/functions/scalar/functions/PRODUCT.js.map +1 -1
  87. package/vendor/aql/functions/scalar/functions/QUERY.js +0 -1
  88. package/vendor/aql/functions/scalar/functions/QUERY.js.map +1 -1
  89. package/vendor/aql/functions/scalar/functions/REGEX.js +0 -1
  90. package/vendor/aql/functions/scalar/functions/REGEX.js.map +1 -1
  91. package/vendor/aql/functions/scalar/functions/SCOPE.js +0 -4
  92. package/vendor/aql/functions/scalar/functions/SCOPE.js.map +1 -1
  93. package/vendor/aql/functions/scalar/functions/STARTS_WITH.js +0 -1
  94. package/vendor/aql/functions/scalar/functions/STARTS_WITH.js.map +1 -1
  95. package/vendor/aql/functions/scalar/functions/SUB.js +0 -1
  96. package/vendor/aql/functions/scalar/functions/SUB.js.map +1 -1
  97. package/vendor/aql/functions/scalar/functions/SUM.js +0 -5
  98. package/vendor/aql/functions/scalar/functions/SUM.js.map +1 -1
  99. package/vendor/aql/functions/scalar/helpers.js +0 -3
  100. package/vendor/aql/functions/scalar/helpers.js.map +1 -1
  101. package/vendor/aql/functions/shared/FIELD.js +0 -3
  102. package/vendor/aql/functions/shared/FIELD.js.map +1 -1
  103. package/vendor/aql/functions/shared/VAR.js +0 -4
  104. package/vendor/aql/functions/shared/VAR.js.map +1 -1
  105. package/vendor/aql/functions/shared/index.js +0 -9
  106. package/vendor/aql/functions/shared/index.js.map +1 -1
  107. package/vendor/aql/functions/stringUtils.js +0 -25
  108. package/vendor/aql/functions/stringUtils.js.map +1 -1
  109. package/vendor/aql/functions/utils.js +0 -20
  110. package/vendor/aql/functions/utils.js.map +1 -1
  111. package/vendor/aql/host/access.js +0 -2
  112. package/vendor/aql/host/access.js.map +1 -1
  113. package/vendor/aql/host/createHostExpressionContext.js +0 -25
  114. package/vendor/aql/host/createHostExpressionContext.js.map +1 -1
  115. package/vendor/aql/host/createObjectDataHost.js +0 -9
  116. package/vendor/aql/host/createObjectDataHost.js.map +1 -1
  117. package/vendor/aql/index.js +0 -2
  118. package/vendor/aql/index.js.map +1 -1
  119. package/vendor/aql/normalize/canonicalize.js +0 -7
  120. package/vendor/aql/normalize/canonicalize.js.map +1 -1
  121. package/vendor/aql/normalize/migrateExpression.js +0 -8
  122. package/vendor/aql/normalize/migrateExpression.js.map +1 -1
  123. package/vendor/aql/normalize/names.js +0 -72
  124. package/vendor/aql/normalize/names.js.map +1 -1
  125. package/vendor/aql/normalize/normalizeAst.js +0 -102
  126. package/vendor/aql/normalize/normalizeAst.js.map +1 -1
  127. package/vendor/aql/normalize/print.js +0 -35
  128. package/vendor/aql/normalize/print.js.map +1 -1
  129. package/vendor/aql/operator/primitiveSlots.js +0 -4
  130. package/vendor/aql/operator/primitiveSlots.js.map +1 -1
  131. package/vendor/aql/operator/resolve.js +0 -18
  132. package/vendor/aql/operator/resolve.js.map +1 -1
  133. package/vendor/aql/parser/parser.js +4 -125
  134. package/vendor/aql/parser/parser.js.map +1 -1
  135. package/vendor/aql/plan/catalogue.js +0 -35
  136. package/vendor/aql/plan/catalogue.js.map +1 -1
  137. package/vendor/aql/plan/compile.js +0 -68
  138. package/vendor/aql/plan/compile.js.map +1 -1
  139. package/vendor/aql/plan/deepMap.js +0 -16
  140. package/vendor/aql/plan/deepMap.js.map +1 -1
  141. package/vendor/aql/plan/execute.js +0 -91
  142. package/vendor/aql/plan/execute.js.map +1 -1
  143. package/vendor/aql/plan/magnitudeLiteral.js +0 -29
  144. package/vendor/aql/plan/magnitudeLiteral.js.map +1 -1
  145. package/vendor/aql/plan/observable.js +0 -31
  146. package/vendor/aql/plan/observable.js.map +1 -1
  147. package/vendor/aql/plan/observableFixture.js +0 -3
  148. package/vendor/aql/plan/observableFixture.js.map +1 -1
  149. package/vendor/aql/plan/operators.js +0 -35
  150. package/vendor/aql/plan/operators.js.map +1 -1
  151. package/vendor/aql/plan/outer.js +0 -16
  152. package/vendor/aql/plan/outer.js.map +1 -1
  153. package/vendor/aql/predicate/mapExpressionToQlPredicate.js +1 -46
  154. package/vendor/aql/predicate/mapExpressionToQlPredicate.js.map +1 -1
  155. package/vendor/aql/predicate/mapQlPredicateToExpression.js +0 -13
  156. package/vendor/aql/predicate/mapQlPredicateToExpression.js.map +1 -1
  157. package/vendor/aql/store/computedValueStore.js +0 -35
  158. package/vendor/aql/store/computedValueStore.js.map +1 -1
  159. package/vendor/aql/store/history/clock.js +0 -1
  160. package/vendor/aql/store/history/clock.js.map +1 -1
  161. package/vendor/aql/store/history/historyStore.js +0 -14
  162. package/vendor/aql/store/history/historyStore.js.map +1 -1
  163. package/vendor/aql/store/history/monotonicDeque.js +0 -9
  164. package/vendor/aql/store/history/monotonicDeque.js.map +1 -1
  165. package/vendor/aql/store/history/operators.js +0 -13
  166. package/vendor/aql/store/history/operators.js.map +1 -1
  167. package/vendor/aql/store/history/ringBuffer.js +0 -12
  168. package/vendor/aql/store/history/ringBuffer.js.map +1 -1
  169. package/vendor/aql/store/history/rowSeries.js +0 -17
  170. package/vendor/aql/store/history/rowSeries.js.map +1 -1
  171. package/vendor/aql/store/history/types.js +0 -18
  172. package/vendor/aql/store/history/types.js.map +1 -1
  173. package/vendor/aql/tokenizer/tokenizer.js +0 -3
  174. package/vendor/aql/tokenizer/tokenizer.js.map +1 -1
  175. package/vendor/aql/types.js +0 -27
  176. package/vendor/aql/types.js.map +1 -1
  177. package/vendor/aql/utils/astUtils.js +0 -1
  178. package/vendor/aql/utils/astUtils.js.map +1 -1
  179. package/vendor/aql/utils/dependencyCycle.js +0 -5
  180. package/vendor/aql/utils/dependencyCycle.js.map +1 -1
  181. package/vendor/aql/validation/classifyExpression.js +0 -4
  182. package/vendor/aql/validation/classifyExpression.js.map +1 -1
  183. package/vendor/aql/validation/functionMetadata.js +0 -31
  184. package/vendor/aql/validation/functionMetadata.js.map +1 -1
  185. package/vendor/aql/validation/validateAqlExpression.js +2 -81
  186. package/vendor/aql/validation/validateAqlExpression.js.map +1 -1
  187. package/vendor/aql/validation/validateExpressionTypes.js +0 -64
  188. package/vendor/aql/validation/validateExpressionTypes.js.map +1 -1
  189. package/vendor/components/Button/index.js +0 -6
  190. package/vendor/components/Button/index.js.map +1 -1
  191. package/vendor/components/ColorField/index.js +0 -18
  192. package/vendor/components/ColorField/index.js.map +1 -1
  193. package/vendor/components/ColorPicker/colorPickerTab.js +0 -6
  194. package/vendor/components/ColorPicker/colorPickerTab.js.map +1 -1
  195. package/vendor/components/ColorPicker/index.js +1 -66
  196. package/vendor/components/ColorPicker/index.js.map +1 -1
  197. package/vendor/components/ColorPicker/themeColors.js +0 -55
  198. package/vendor/components/ColorPicker/themeColors.js.map +1 -1
  199. package/vendor/components/Combobox/VirtualizedList.js +0 -5
  200. package/vendor/components/Combobox/VirtualizedList.js.map +1 -1
  201. package/vendor/components/Combobox/comboboxUtils.js +0 -5
  202. package/vendor/components/Combobox/comboboxUtils.js.map +1 -1
  203. package/vendor/components/Combobox/index.js +7 -106
  204. package/vendor/components/Combobox/index.js.map +1 -1
  205. package/vendor/components/Combobox/useScrollNearEnd.js +0 -6
  206. package/vendor/components/Combobox/useScrollNearEnd.js.map +1 -1
  207. package/vendor/components/DropdownButton/index.js +0 -5
  208. package/vendor/components/DropdownButton/index.js.map +1 -1
  209. package/vendor/components/NumberInput/index.js +0 -10
  210. package/vendor/components/NumberInput/index.js.map +1 -1
  211. package/vendor/components/Resizable/index.js +3 -26
  212. package/vendor/components/Resizable/index.js.map +1 -1
  213. package/vendor/components/Resizable/resizableUtils.js +0 -24
  214. package/vendor/components/Resizable/resizableUtils.js.map +1 -1
  215. package/vendor/components/SearchInput/index.js +0 -5
  216. package/vendor/components/SearchInput/index.js.map +1 -1
  217. package/vendor/components/Tree/TreeDropdown/index.js +3 -139
  218. package/vendor/components/Tree/TreeDropdown/index.js.map +1 -1
  219. package/vendor/components/Tree/treeUtils.js +0 -4
  220. package/vendor/components/Tree/treeUtils.js.map +1 -1
  221. package/vendor/components/index.js +0 -5
  222. package/vendor/components/index.js.map +1 -1
  223. package/vendor/components/lib/useProperty.js +0 -18
  224. package/vendor/components/lib/useProperty.js.map +1 -1
  225. package/vendor/components/twMerge.js +0 -2
  226. package/vendor/components/twMerge.js.map +1 -1
  227. package/vendor/components/twUtils.js +3 -12
  228. package/vendor/components/twUtils.js.map +1 -1
  229. package/vendor/components/ui/alert-dialog.js +0 -4
  230. package/vendor/components/ui/alert-dialog.js.map +1 -1
  231. package/vendor/components/ui/calendar.js +1 -9
  232. package/vendor/components/ui/calendar.js.map +1 -1
  233. package/vendor/components/ui/combobox.js +2 -38
  234. package/vendor/components/ui/combobox.js.map +1 -1
  235. package/vendor/components/ui/dialog.js +0 -4
  236. package/vendor/components/ui/dialog.js.map +1 -1
  237. package/vendor/components/ui/input-group.js +3 -12
  238. package/vendor/components/ui/input-group.js.map +1 -1
  239. package/vendor/components/ui/tabs.js +0 -3
  240. package/vendor/components/ui/tabs.js.map +1 -1
@@ -12,11 +12,6 @@ import { rowEventSeriesKey } from '../store/history/types.js';
12
12
  import { SKIP_ROW, } from './operators.js';
13
13
  import { DEFAULT_ROW_SET_KIND, } from './types.js';
14
14
  const coerceValue = (rawValue) => rawValue instanceof Date ? rawValue.getTime() : rawValue;
15
- /**
16
- * Lazily built host context shared by expression inputs, filters and the
17
- * outer evaluator. Host-less runs never build one (the field fast path and a
18
- * pure single-aggregation root need no context).
19
- */
20
15
  const createLazyBaseContext = (config) => {
21
16
  let baseContext;
22
17
  return () => {
@@ -36,26 +31,15 @@ const createLazyBaseContext = (config) => {
36
31
  return baseContext;
37
32
  };
38
33
  };
39
- /**
40
- * Outer evaluation for one expression over its (already executed) slot
41
- * results: the scalar evaluator runs the normalized root with each plan's
42
- * `sourceNode` resolving to that plan's global value (row-independent
43
- * reading) or per-row value (`getValueForRow`). A pure single-aggregation
44
- * root short-circuits to the slot result — no scalar evaluation, no host.
45
- */
46
34
  const assembleValueExecutionResult = (compiled, expressionResults, getBaseContext, config, fallbackRowCount = 0) => {
47
35
  const rootSlot = isRootAggregation(compiled);
48
36
  const observableSlots = compiled.observable ?? [];
49
- // Earliest expiry seen by any observable read made through this result —
50
- // accumulates across `getValueForRow` calls (the store reads it after the
51
- // per-row reads of a flush).
52
37
  let nextChangeAt;
53
38
  const noteNext = (t) => {
54
39
  if (t !== undefined && (nextChangeAt === undefined || t < nextChangeAt)) {
55
40
  nextChangeAt = t;
56
41
  }
57
42
  };
58
- // Grid-scope slots are the same for every row: read once per run.
59
43
  const gridReads = new Map();
60
44
  const readObservable = (slotIndex, rowRef) => {
61
45
  const slot = observableSlots[slotIndex];
@@ -124,9 +108,6 @@ const assembleValueExecutionResult = (compiled, expressionResults, getBaseContex
124
108
  value = evaluateOuter(undefined, false);
125
109
  getValueForRow = (rowRef) => evaluateOuter(rowRef, true);
126
110
  }
127
- // Seed the expiry from the series themselves: a row-scoped `WITHIN` slot
128
- // has no row in the global reading, and the store must be able to arm its
129
- // timer without depending on which rows subscribers happen to read.
130
111
  if (config.history) {
131
112
  for (const slot of observableSlots) {
132
113
  if (slot.window.kind !== 'within') {
@@ -136,7 +117,6 @@ const assembleValueExecutionResult = (compiled, expressionResults, getBaseContex
136
117
  ? rowEventSeriesKey(slot.rowEventKind, slot.key.filterKey)
137
118
  : slot.key;
138
119
  noteNext(config.history.nextExpiryAt(key, slot.window.ms));
139
- // `NO_CHANGES` turns true at `epoch + d` with no history at all.
140
120
  if (slot.source === 'NO_CHANGES') {
141
121
  noteNext(config.history.nextEpochElapseAt(slot.window.ms, slot.key.scope));
142
122
  }
@@ -152,25 +132,16 @@ const assembleValueExecutionResult = (compiled, expressionResults, getBaseContex
152
132
  },
153
133
  };
154
134
  };
155
- /**
156
- * Batch execution: every aggregation plan from every expression joins ONE
157
- * signature-grouped scan pool, so expressions sharing a row set share a
158
- * single host row pass (the store's cross-node scan grouping). Results are
159
- * returned in input order.
160
- */
161
135
  export const executeValueExpressionBatch = (compiledExpressions, config) => {
162
136
  const registry = config.registry ?? SYSTEM_AGGREGATION_CATALOGUE;
163
137
  const host = config.host;
164
138
  const sortDirection = config.sort === 'desc' ? -1 : 1;
165
- // --- value readers ---------------------------------------------------------
166
139
  const readRaw = (rowRef, columnId) => config.getValue
167
140
  ? config.getValue(rowRef, columnId)
168
141
  : host
169
142
  ? hostGetRawColumnValue(host, rowRef, columnId)
170
143
  : undefined;
171
144
  const readValue = (rowRef, columnId) => coerceValue(readRaw(rowRef, columnId));
172
- // Contexts are needed only for expression inputs, filters and the outer
173
- // evaluator; the field fast path never touches them.
174
145
  const getBaseContext = createLazyBaseContext(config);
175
146
  const prepareRowEvaluator = (node, functions) => {
176
147
  const context = deriveHostExpressionContext(getBaseContext(), {
@@ -197,7 +168,6 @@ export const executeValueExpressionBatch = (compiledExpressions, config) => {
197
168
  }
198
169
  return prepareRowEvaluator(input.node);
199
170
  };
200
- // --- filter / row-set resolution ---------------------------------------------
201
171
  const nodeIds = new Map();
202
172
  const idOf = (node) => {
203
173
  let id = nodeIds.get(node);
@@ -207,9 +177,6 @@ export const executeValueExpressionBatch = (compiledExpressions, config) => {
207
177
  }
208
178
  return id;
209
179
  };
210
- // Textually identical predicates / sort expressions from different call
211
- // sites are different AST nodes — key caches by canonical text so those
212
- // plans share one row pass (and one sorted copy).
213
180
  const exprKeys = new Map();
214
181
  const exprKey = (expression) => {
215
182
  let key = exprKeys.get(expression);
@@ -277,15 +244,12 @@ export const executeValueExpressionBatch = (compiledExpressions, config) => {
277
244
  if (sorted) {
278
245
  return sorted;
279
246
  }
280
- // Decorate–sort–undecorate: the key is read once per row and the scan
281
- // array is never mutated (it is shared across plans in the group).
282
247
  const keyOf = resolveInput(sort.input);
283
248
  const direction = sort.direction === 'desc' ? -sortDirection : sortDirection;
284
249
  const decorated = scan.rows.map((rowRef) => {
285
250
  const key = keyOf(rowRef);
286
251
  return { rowRef, key: key, blank: isUndefinedValue(key) };
287
252
  });
288
- // Blanks sort last in either direction.
289
253
  decorated.sort((first, second) => {
290
254
  if (first.blank || second.blank) {
291
255
  return Number(first.blank) - Number(second.blank);
@@ -309,7 +273,6 @@ export const executeValueExpressionBatch = (compiledExpressions, config) => {
309
273
  return (rowRef) => host.rows.getRowId(rowRef);
310
274
  };
311
275
  const optionalRowId = () => host?.rows?.getRowId ? (rowRef) => host.rows.getRowId(rowRef) : undefined;
312
- // --- plan runtimes -------------------------------------------------------------
313
276
  const allPlans = compiledExpressions.flatMap((compiled) => compiled.aggregations);
314
277
  const runtimes = allPlans.map((plan, planIndex) => {
315
278
  const operator = registry.get(plan.operator.name);
@@ -348,9 +311,6 @@ export const executeValueExpressionBatch = (compiledExpressions, config) => {
348
311
  const rowIdToGroupKeys = grouped && rowId ? new Map() : undefined;
349
312
  for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {
350
313
  const rowRef = rows[rowIndex];
351
- // Legacy `aggregate()` parity: reducers accumulate at EVERY group-key
352
- // prefix depth (`[make]`, `[make, currency]`, …), so `groupValues`
353
- // exposes subtotal entries top-down. Per-row lookup stays full-depth.
354
314
  let prefixStates;
355
315
  if (grouped) {
356
316
  const keys = groupBy.map((field) => readValue(rowRef, field));
@@ -393,7 +353,6 @@ export const executeValueExpressionBatch = (compiledExpressions, config) => {
393
353
  const globalValues = finalize(globalStates);
394
354
  if (groups) {
395
355
  groups.visitDepthFirst((states, _keys, _indexInGroup, next) => {
396
- // finalize in place: replace each state with its done() value
397
356
  const finalized = finalize(states);
398
357
  states.length = 0;
399
358
  states.push(...finalized);
@@ -484,8 +443,6 @@ export const executeValueExpressionBatch = (compiledExpressions, config) => {
484
443
  if (runtime.weightOf) {
485
444
  rowCtx.weightValue = runtime.weightOf(rowRef);
486
445
  }
487
- // Operator-level row gate (custom `filterRow`) applies to the running
488
- // walk as well: gated rows neither advance the state nor get a value.
489
446
  if (operator.rowGate &&
490
447
  !operator.rowGate(rowRef, host?.getRowData(rowRef), runtime.spec, rowCtx)) {
491
448
  continue;
@@ -517,7 +474,6 @@ export const executeValueExpressionBatch = (compiledExpressions, config) => {
517
474
  perRowOnly: true,
518
475
  });
519
476
  };
520
- // --- result assembly --------------------------------------------------------------
521
477
  const applyProjection = (projection, rowRef, baseValue) => {
522
478
  if (projection.kind === 'percentage') {
523
479
  const cellValue = toFiniteNumber(readRaw(rowRef, projection.column));
@@ -566,14 +522,9 @@ export const executeValueExpressionBatch = (compiledExpressions, config) => {
566
522
  const getValueForRow = (rowRef) => {
567
523
  const baseValue = baseValueForRow(rowRef);
568
524
  if (parts.perRowOnly) {
569
- // Legacy parity: per-row maps resolve through the map only; a diff
570
- // projection over a missing per-row value yields null.
571
525
  if (projection) {
572
526
  return applyProjection(projection, rowRef, baseValue);
573
527
  }
574
- // A cumulative reducer's per-row projection (custom `prepareRowValue`)
575
- // applies to the running value recorded for the row; rows the walk
576
- // never recorded stay undefined.
577
528
  return baseValue === undefined ? undefined : projectCustom(rowRef, baseValue);
578
529
  }
579
530
  if (baseValue == undefined) {
@@ -593,9 +544,7 @@ export const executeValueExpressionBatch = (compiledExpressions, config) => {
593
544
  rowCount: parts.rowCount,
594
545
  };
595
546
  };
596
- // --- execution --------------------------------------------------------------------
597
547
  const aggResults = new Array(runtimes.length);
598
- // Group shareable reducer passes: same scan rows, same sort, same groupBy.
599
548
  const reducerGroups = new Map();
600
549
  for (const runtime of runtimes) {
601
550
  const scan = resolveScanRows(runtime.plan);
@@ -654,9 +603,6 @@ export const executeValueExpressionBatch = (compiledExpressions, config) => {
654
603
  aggResults[runtime.planIndex] = aggResult;
655
604
  });
656
605
  }
657
- // --- outer evaluation (per expression, over the shared slot results) -----------
658
- // A observable-only expression (the common Alert case `CHANGE_COUNT{…} >= 3`)
659
- // never joined the scan pool; its row count is the explicit row set's.
660
606
  const observableOnlyRowCount = (compiled) => compiled.aggregations.length === 0 && compiled.observable?.length ? explicitRows?.length ?? 0 : 0;
661
607
  let slotBase = 0;
662
608
  return compiledExpressions.map((compiled) => {
@@ -666,15 +612,6 @@ export const executeValueExpressionBatch = (compiledExpressions, config) => {
666
612
  });
667
613
  };
668
614
  export const executeValueExpression = (compiled, config) => executeValueExpressionBatch([compiled], config)[0];
669
- // --- incremental update -------------------------------------------------------------
670
- /**
671
- * Whether a plan's result can be updated from a single cell change without a
672
- * rescan: an ungrouped, unfiltered, unweighted, non-cumulative reducer over
673
- * a bare column, whose operator declares `capabilities.delta`, with no
674
- * per-row projection / row gate (custom `filterRow` / `prepareRowValue`).
675
- * Grouped plans are excluded on purpose: a change would have to be applied
676
- * at every prefix depth and re-fanned into the per-row map.
677
- */
678
615
  const isDeltaCapablePlan = (plan, operator) => operator.kind === 'reducer' &&
679
616
  !!operator.capabilities.delta &&
680
617
  !operator.rowGate &&
@@ -685,11 +622,6 @@ const isDeltaCapablePlan = (plan, operator) => operator.kind === 'reducer' &&
685
622
  !plan.modifiers.weight &&
686
623
  !plan.projection &&
687
624
  !plan.scanSignature.filterPredicates?.length;
688
- /**
689
- * Every column a plan reads during its scan — main input, WEIGHT, sort key,
690
- * group keys, WHERE predicates and projection column. Memoized per plan
691
- * object (plans are immutable IR).
692
- */
693
625
  const planColumnsCache = new WeakMap();
694
626
  const planColumns = (plan) => {
695
627
  let columns = planColumnsCache.get(plan);
@@ -721,32 +653,13 @@ const planColumns = (plan) => {
721
653
  planColumnsCache.set(plan, columns);
722
654
  return columns;
723
655
  };
724
- /**
725
- * Incremental re-execution: updates `previous` for a batch of cell changes
726
- * using the operators' `delta` contracts, or returns `undefined` when the
727
- * expression (or any change) is not delta-eligible and a rescan is needed.
728
- *
729
- * Eligible when every plan whose main input is a changed column satisfies
730
- * {@link isDeltaCapablePlan} and the changed rows are in its row set. Plans
731
- * reading other columns keep their previous result untouched; the outer
732
- * expression is re-evaluated over the updated slot values (so
733
- * `[price] / SUM{[price]}` re-derives per row from the new total).
734
- *
735
- * Changes are applied in order, so a batch containing several edits of the
736
- * same cell (a→b, b→c) is exact. Row additions / removals and row-set
737
- * changes are not cell changes — callers must rescan for those.
738
- */
739
656
  export const applyValueExpressionDelta = (compiled, previous, changes, config) => {
740
657
  if (changes.length === 0) {
741
658
  return previous;
742
659
  }
743
- // A value-read override may transform what the scan saw; the reported raw
744
- // old/new values would not match it.
745
660
  if (config.getValue || previous.aggregations.length !== compiled.aggregations.length) {
746
661
  return undefined;
747
662
  }
748
- // Observable / clock-dependent expressions re-read history and time on
749
- // every execution — there is no accumulator to patch.
750
663
  if (compiled.dependencies.observable || compiled.dependencies.time) {
751
664
  return undefined;
752
665
  }
@@ -764,7 +677,6 @@ export const applyValueExpressionDelta = (compiled, previous, changes, config) =
764
677
  for (let index = 0; index < compiled.aggregations.length; index++) {
765
678
  const plan = compiled.aggregations[index];
766
679
  if (!readsChangedColumn(planColumns(plan))) {
767
- // Untouched by this batch: the previous slot result stands.
768
680
  continue;
769
681
  }
770
682
  const operator = registry.get(plan.operator.name);
@@ -773,8 +685,6 @@ export const applyValueExpressionDelta = (compiled, previous, changes, config) =
773
685
  previous.aggregations[index].accumulator === undefined) {
774
686
  return undefined;
775
687
  }
776
- // Delta-capable plans read exactly one column (the bare input), so the
777
- // change is on the input; the row must be in the plan's row set.
778
688
  const kind = plan.scanSignature.rowSetKind;
779
689
  if (kind !== DEFAULT_ROW_SET_KIND) {
780
690
  const inputField = plan.input.field;
@@ -788,7 +698,6 @@ export const applyValueExpressionDelta = (compiled, previous, changes, config) =
788
698
  touched.push({ index, operator: operator });
789
699
  }
790
700
  if (touched.length === 0) {
791
- // No plan reads a changed column; only the outer expression may (per row).
792
701
  return assembleValueExecutionResult(compiled, previous.aggregations, createLazyBaseContext(config), config);
793
702
  }
794
703
  const aggResults = previous.aggregations.slice();
@@ -1 +1 @@
1
- {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/plan/execute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/plan/execute.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,5 @@
1
1
  import { isAST_Function } from '../types.js';
2
- /**
3
- * Magnitude-suffix literals: a quoted number with an optional K / M / B
4
- * suffix (`'5M'`, `'-500K'`, `'1.5B'`) compared against an aggregation reads
5
- * as a number (`SUM{[PnL]} > '5M'`). The compiler lowers such literals to
6
- * numbers and the static type checker types them as numbers — both through
7
- * `magnitudeLiteralOperandIndex`, so they always agree.
8
- */
9
2
  const kindOf = (fn) => fn.kind ?? fn.metaInfo;
10
- /** Evaluation-time sugar wrappers (not rewritten by migrate). */
11
3
  export const DIFF_WRAPPERS = new Set(['ABSOLUTE_DIFF', 'PERCENT_DIFF']);
12
4
  export const FILTERED_SUGAR = {
13
5
  SUMIF: 'SUM',
@@ -25,11 +17,9 @@ export const parseMagnitudeLiteral = (value) => {
25
17
  if (!match) {
26
18
  return undefined;
27
19
  }
28
- // Exponent notation keeps decimals exact ('1.1K' → 1100, not 1100.0000000000002).
29
20
  const exponent = match[2] ? MAGNITUDE_EXPONENTS[match[2].toLowerCase()] : 0;
30
21
  return Number(`${match[1]}e${exponent}`);
31
22
  };
32
- /** An aggregation root: an `AGG_CALL` or one of the paren wrappers `normalizeAst` leaves as `FUNCTION`. */
33
23
  const isAggregationRoot = (node) => {
34
24
  const kind = kindOf(node);
35
25
  if (kind === 'AGG_CALL') {
@@ -41,14 +31,6 @@ const isAggregationRoot = (node) => {
41
31
  node.type in FILTERED_SUGAR ||
42
32
  node.type === 'CUMUL'));
43
33
  };
44
- /**
45
- * True when the subtree contains anything the value plan compiles as an
46
- * aggregation: an `AGG_CALL`, or one of the evaluation-time paren wrappers
47
- * (`PERCENTAGE`, `ABSOLUTE_DIFF`, `PERCENT_DIFF`, `SUMIF` / `COUNTIF` /
48
- * `AVGIF`, leftover `CUMUL`) that `normalizeAst` deliberately leaves as
49
- * `FUNCTION` nodes. This is the complete "is aggregated" test; a bare
50
- * `AGG_CALL` count misses the wrappers.
51
- */
52
34
  export const containsAggregation = (node) => {
53
35
  if (node == null || typeof node !== 'object') {
54
36
  return false;
@@ -64,10 +46,6 @@ export const containsAggregation = (node) => {
64
46
  }
65
47
  return node.args.some((arg) => containsAggregation(arg));
66
48
  };
67
- /**
68
- * Index (0 or 1) of the magnitude literal in a comparator whose other
69
- * operand contains an aggregation; `undefined` for any other node.
70
- */
71
49
  export const magnitudeLiteralOperandIndex = (node) => {
72
50
  if (kindOf(node) !== 'INFIX' || !COMPARATOR_TYPES.has(node.type) || node.args.length !== 2) {
73
51
  return undefined;
@@ -81,13 +59,6 @@ export const magnitudeLiteralOperandIndex = (node) => {
81
59
  }
82
60
  return undefined;
83
61
  };
84
- /**
85
- * Rewrites every magnitude literal compared against an aggregation to its
86
- * numeric value, at any depth of the outer expression (`IF(SUM{…} > '5M', …)`).
87
- * Aggregation, observable and clause subtrees are returned untouched, so plan
88
- * node identities are preserved; only the ancestors of a rewritten
89
- * comparator are rebuilt.
90
- */
91
62
  export const lowerMagnitudeLiterals = (node) => {
92
63
  if (node == null || typeof node !== 'object' || Array.isArray(node) || !isAST_Function(node)) {
93
64
  return node;
@@ -1 +1 @@
1
- {"version":3,"file":"magnitudeLiteral.js","sourceRoot":"","sources":["../../../src/plan/magnitudeLiteral.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"magnitudeLiteral.js","sourceRoot":"","sources":["../../../src/plan/magnitudeLiteral.ts"],"names":[],"mappings":"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"}
@@ -4,18 +4,10 @@ import { printExpression } from '../normalize/print.js';
4
4
  import { ALL_TRIGGERS, ANY_COLUMN_ID, anyColumnSubsetId, } from '../store/history/types.js';
5
5
  import * as operators from '../store/history/operators.js';
6
6
  import { CUSTOM_OBSERVABLE_FALLBACK_SPEC, getObservableCallSpec, } from '../validation/functionMetadata.js';
7
- /**
8
- * Observable-call lowering and reads. A normalized `OBSERVABLE_CALL` compiles to
9
- * a {@link ObservableSlot} (pure data: series key, window, triggers); reading
10
- * a slot is a dispatch into the pure operators over a `HistoryReader`.
11
- * Shared by the value-plan executor (`resolveContractNode`) and the prepared
12
- * evaluator (`evaluateNode`), so both paths agree by construction.
13
- */
14
7
  const kindOf = (fn) => fn.kind ?? fn.metaInfo;
15
8
  const isClause = (arg) => isAST_Function(arg) && kindOf(arg) === 'CLAUSE';
16
9
  const isColRef = (arg) => arg !== undefined && isAST_Function(arg) && arg.type === 'COL' && typeof arg.args[0] === 'string';
17
10
  const TRIGGER_SET = new Set(ALL_TRIGGERS);
18
- /** Pseudo column id for input-less sources (`ROW_AGE`, `ADDED_AT`). */
19
11
  export const observablePseudoColumnId = (source) => `\u0000${source}`;
20
12
  export class ObservableCompileError extends Error {
21
13
  node;
@@ -25,7 +17,6 @@ export class ObservableCompileError extends Error {
25
17
  this.name = 'ObservableCompileError';
26
18
  }
27
19
  }
28
- /** Compiles one normalized `OBSERVABLE_CALL` node into a {@link ObservableSlot}. */
29
20
  export const compileObservableCallNode = (node, options = {}) => {
30
21
  const spec = getObservableCallSpec(node.type) ?? CUSTOM_OBSERVABLE_FALLBACK_SPEC;
31
22
  const clauses = [];
@@ -143,10 +134,6 @@ export const compileObservableCallNode = (node, options = {}) => {
143
134
  }
144
135
  return slot;
145
136
  };
146
- /**
147
- * Start of a full-window read's window: the observation start, or for a
148
- * row-scope read the row's add instant when it is later.
149
- */
150
137
  const epochOf = (slot, history, rowId) => {
151
138
  const start = history.observationStartAt();
152
139
  if (slot.key.scope !== 'row' || rowId === undefined) {
@@ -155,7 +142,6 @@ const epochOf = (slot, history, rowId) => {
155
142
  const addedAt = history.rowAddedAt(rowId);
156
143
  return addedAt === undefined ? start : Math.max(start, addedAt);
157
144
  };
158
- /** Reads one slot from the history. `rowId` is required for row-scope slots. */
159
145
  export const evaluateObservableSlot = (slot, history, rowId) => {
160
146
  const now = history.now();
161
147
  if (slot.rowEventKind) {
@@ -193,12 +179,6 @@ export const evaluateObservableSlot = (slot, history, rowId) => {
193
179
  throw new ExpressionEvaluationError(slot.source, 'has no observable read handler in this context');
194
180
  }
195
181
  };
196
- /**
197
- * What a slot needs the history store to retain. Cumulative reads with the
198
- * default trigger set are answered from the series counters (`{}` retains
199
- * nothing); explicit `TRIGGER(...)` selections need the entries themselves,
200
- * so they ask for everything (the store caps at `maxEntriesPerCell`).
201
- */
202
182
  export const retentionForSlot = (slot) => {
203
183
  switch (slot.window.kind) {
204
184
  case 'within':
@@ -212,18 +192,11 @@ export const retentionForSlot = (slot) => {
212
192
  const n = slot.positional[0] ?? 1;
213
193
  return slot.triggers === 'default' ? { count: n } : { count: Number.MAX_SAFE_INTEGER };
214
194
  }
215
- // Counters (`CHANGE_COUNT` / `NO_CHANGES`) are kept per trigger, and the
216
- // default-trigger last change survives pruning (`lastEntry`).
217
195
  if (slot.source === 'CHANGE_COUNT' || slot.source === 'NO_CHANGES') {
218
196
  return {};
219
197
  }
220
198
  return slot.triggers === 'default' ? {} : { count: Number.MAX_SAFE_INTEGER };
221
199
  };
222
- /**
223
- * Registers every slot's series with the store (the host's per-node hook)
224
- * and returns a release for all of them. `ROW_AGE` / `ADDED_AT` read row
225
- * ages the store tracks unconditionally and register nothing.
226
- */
227
200
  export const acquireObservableSlots = (store, slots) => {
228
201
  const handles = [];
229
202
  for (const slot of slots) {
@@ -238,10 +211,6 @@ export const acquireObservableSlots = (store, slots) => {
238
211
  }
239
212
  return () => handles.forEach((handle) => handle.release());
240
213
  };
241
- /**
242
- * Slot cache for the prepared-evaluator path: normalized ASTs are reused
243
- * across rows, so a `OBSERVABLE_CALL` node compiles once per node identity.
244
- */
245
214
  const observableSlotCache = new WeakMap();
246
215
  export const getOrCompileObservableSlot = (node, options = {}) => {
247
216
  let slot = observableSlotCache.get(node);