@sisense/sdk-data 1.33.0 → 2.0.0

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 (97) hide show
  1. package/dist/cjs/dimensional-model/analytics/factory.d.ts +10 -10
  2. package/dist/cjs/dimensional-model/analytics/factory.js +15 -16
  3. package/dist/cjs/dimensional-model/attributes.d.ts +13 -6
  4. package/dist/cjs/dimensional-model/attributes.js +39 -12
  5. package/dist/cjs/dimensional-model/base.d.ts +3 -3
  6. package/dist/cjs/dimensional-model/base.js +7 -4
  7. package/dist/cjs/dimensional-model/compose-code-utils.d.ts +41 -0
  8. package/dist/cjs/dimensional-model/compose-code-utils.js +127 -0
  9. package/dist/cjs/dimensional-model/consts.d.ts +1 -0
  10. package/dist/cjs/dimensional-model/consts.js +4 -0
  11. package/dist/cjs/dimensional-model/data-model.d.ts +1 -1
  12. package/dist/cjs/dimensional-model/data-model.js +1 -1
  13. package/dist/cjs/dimensional-model/dimensions/dimensions.d.ts +6 -6
  14. package/dist/cjs/dimensional-model/dimensions/dimensions.js +34 -17
  15. package/dist/cjs/dimensional-model/dimensions/utils.d.ts +1 -0
  16. package/dist/cjs/dimensional-model/dimensions/utils.js +2 -1
  17. package/dist/cjs/dimensional-model/factory.js +5 -5
  18. package/dist/cjs/dimensional-model/filters/factory.d.ts +42 -42
  19. package/dist/cjs/dimensional-model/filters/factory.js +53 -168
  20. package/dist/cjs/dimensional-model/filters/filter-relations.d.ts +11 -2
  21. package/dist/cjs/dimensional-model/filters/filter-relations.js +14 -7
  22. package/dist/cjs/dimensional-model/filters/filters.d.ts +40 -24
  23. package/dist/cjs/dimensional-model/filters/filters.js +106 -56
  24. package/dist/cjs/dimensional-model/filters/helpers.d.ts +1 -1
  25. package/dist/cjs/dimensional-model/filters/helpers.js +2 -2
  26. package/dist/cjs/dimensional-model/filters/utils/attribute-measure-util.js +9 -17
  27. package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.d.ts +1 -1
  28. package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.js +31 -29
  29. package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.d.ts +1 -1
  30. package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.js +13 -19
  31. package/dist/cjs/dimensional-model/filters/utils/filter-types-util.d.ts +1 -1
  32. package/dist/cjs/dimensional-model/filters/utils/filter-types-util.js +1 -1
  33. package/dist/cjs/dimensional-model/filters/utils/types.d.ts +10 -0
  34. package/dist/cjs/dimensional-model/interfaces.d.ts +17 -7
  35. package/dist/cjs/dimensional-model/jaql-element.d.ts +13 -1
  36. package/dist/cjs/dimensional-model/jaql-element.js +54 -2
  37. package/dist/cjs/dimensional-model/measures/factory.d.ts +46 -53
  38. package/dist/cjs/dimensional-model/measures/factory.js +57 -186
  39. package/dist/cjs/dimensional-model/measures/measures.d.ts +10 -10
  40. package/dist/cjs/dimensional-model/measures/measures.js +35 -33
  41. package/dist/cjs/dimensional-model/types.d.ts +41 -16
  42. package/dist/cjs/index.d.ts +7 -7
  43. package/dist/cjs/index.js +7 -7
  44. package/dist/cjs/utils.d.ts +45 -22
  45. package/dist/cjs/utils.js +119 -47
  46. package/dist/dimensional-model/analytics/factory.d.ts +10 -10
  47. package/dist/dimensional-model/analytics/factory.js +15 -14
  48. package/dist/dimensional-model/attributes.d.ts +13 -6
  49. package/dist/dimensional-model/attributes.js +39 -12
  50. package/dist/dimensional-model/base.d.ts +3 -3
  51. package/dist/dimensional-model/base.js +7 -4
  52. package/dist/dimensional-model/compose-code-utils.d.ts +41 -0
  53. package/dist/dimensional-model/compose-code-utils.js +119 -0
  54. package/dist/dimensional-model/consts.d.ts +1 -0
  55. package/dist/dimensional-model/consts.js +1 -0
  56. package/dist/dimensional-model/data-model.d.ts +1 -1
  57. package/dist/dimensional-model/data-model.js +1 -1
  58. package/dist/dimensional-model/dimensions/dimensions.d.ts +6 -6
  59. package/dist/dimensional-model/dimensions/dimensions.js +35 -18
  60. package/dist/dimensional-model/dimensions/utils.d.ts +1 -0
  61. package/dist/dimensional-model/dimensions/utils.js +3 -2
  62. package/dist/dimensional-model/factory.js +5 -5
  63. package/dist/dimensional-model/filters/factory.d.ts +42 -42
  64. package/dist/dimensional-model/filters/factory.js +52 -126
  65. package/dist/dimensional-model/filters/filter-relations.d.ts +11 -2
  66. package/dist/dimensional-model/filters/filter-relations.js +14 -7
  67. package/dist/dimensional-model/filters/filters.d.ts +40 -24
  68. package/dist/dimensional-model/filters/filters.js +106 -56
  69. package/dist/dimensional-model/filters/helpers.d.ts +1 -1
  70. package/dist/dimensional-model/filters/helpers.js +2 -2
  71. package/dist/dimensional-model/filters/utils/attribute-measure-util.js +10 -18
  72. package/dist/dimensional-model/filters/utils/condition-filter-util.d.ts +1 -1
  73. package/dist/dimensional-model/filters/utils/condition-filter-util.js +31 -29
  74. package/dist/dimensional-model/filters/utils/filter-from-jaql-util.d.ts +1 -1
  75. package/dist/dimensional-model/filters/utils/filter-from-jaql-util.js +13 -19
  76. package/dist/dimensional-model/filters/utils/filter-types-util.d.ts +1 -1
  77. package/dist/dimensional-model/filters/utils/filter-types-util.js +1 -1
  78. package/dist/dimensional-model/filters/utils/types.d.ts +10 -0
  79. package/dist/dimensional-model/interfaces.d.ts +17 -7
  80. package/dist/dimensional-model/jaql-element.d.ts +13 -1
  81. package/dist/dimensional-model/jaql-element.js +52 -1
  82. package/dist/dimensional-model/measures/factory.d.ts +46 -53
  83. package/dist/dimensional-model/measures/factory.js +56 -143
  84. package/dist/dimensional-model/measures/measures.d.ts +10 -10
  85. package/dist/dimensional-model/measures/measures.js +35 -33
  86. package/dist/dimensional-model/types.d.ts +41 -16
  87. package/dist/index.d.ts +7 -7
  88. package/dist/index.js +7 -7
  89. package/dist/translation/initialize-i18n.js +1 -1
  90. package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -1
  91. package/dist/utils.d.ts +45 -22
  92. package/dist/utils.js +94 -49
  93. package/package.json +5 -4
  94. package/dist/cjs/dimensional-model/filters/utils/filter-code-util.d.ts +0 -17
  95. package/dist/cjs/dimensional-model/filters/utils/filter-code-util.js +0 -82
  96. package/dist/dimensional-model/filters/utils/filter-code-util.d.ts +0 -17
  97. package/dist/dimensional-model/filters/utils/filter-code-util.js +0 -77
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rank = exports.forecast = exports.trend = exports.contribution = exports.pastYear = exports.pastQuarter = exports.pastMonth = exports.pastWeek = exports.pastDay = exports.diffPastYear = exports.diffPastQuarter = exports.diffPastMonth = exports.diffPastWeek = exports.difference = exports.growthPastYear = exports.growthPastQuarter = exports.growthPastMonth = exports.growthPastWeek = exports.growthRate = exports.growth = exports.runningSum = exports.weekToDateSum = exports.monthToDateSum = exports.quarterToDateSum = exports.yearToDateSum = exports.divide = exports.multiply = exports.subtract = exports.add = exports.measuredValue = exports.countDistinct = exports.count = exports.median = exports.max = exports.min = exports.avg = exports.average = exports.sum = exports.constant = exports.aggregate = exports.customFormula = exports.transformCustomFormulaJaql = exports.RankingSortTypes = exports.RankingTypes = void 0;
4
- const measures_js_1 = require("./measures.js");
5
- const types_js_1 = require("../types.js");
3
+ exports.rank = exports.forecast = exports.trend = exports.contribution = exports.pastYear = exports.pastQuarter = exports.pastMonth = exports.pastWeek = exports.pastDay = exports.diffPastYear = exports.diffPastQuarter = exports.diffPastMonth = exports.diffPastWeek = exports.difference = exports.growthPastYear = exports.growthPastQuarter = exports.growthPastMonth = exports.growthPastWeek = exports.growthRate = exports.growth = exports.runningSum = exports.weekToDateSum = exports.monthToDateSum = exports.quarterToDateSum = exports.yearToDateSum = exports.divide = exports.multiply = exports.subtract = exports.add = exports.measuredValue = exports.countDistinct = exports.count = exports.median = exports.max = exports.min = exports.avg = exports.average = exports.sum = exports.constant = exports.aggregate = exports.customFormula = exports.RankingSortTypes = exports.RankingTypes = void 0;
6
4
  const base_js_1 = require("../base.js");
7
- const utils_js_1 = require("../../utils.js");
8
- const translatable_error_js_1 = require("../../translation/translatable-error.js");
5
+ const compose_code_utils_js_1 = require("../compose-code-utils.js");
6
+ const types_js_1 = require("../types.js");
7
+ const measures_js_1 = require("./measures.js");
9
8
  /**
10
9
  * Defines the different numeric operators that can be used with numeric filters
11
10
  *
@@ -75,23 +74,6 @@ function measureFunction(measure, name, func, options) {
75
74
  builder.push(')');
76
75
  return new measures_js_1.DimensionalCalculatedMeasure(name, builder.join(''), context);
77
76
  }
78
- /**
79
- * Transforms a custom formula jaql into a calculated measure instance.
80
- *
81
- * As custom formulas can be nested, the function performs a recursive transformation via a helper function.
82
- *
83
- * @param jaql - Custom formula jaql
84
- * @returns Calculated measure instance
85
- * @internal
86
- */
87
- function transformCustomFormulaJaql(jaql) {
88
- const isFormulaJaql = 'formula' in jaql;
89
- if (!isFormulaJaql) {
90
- throw new translatable_error_js_1.TranslatableError('errors.measure.notAFormula');
91
- }
92
- return (0, utils_js_1.createCalculatedMeasureHelper)(jaql);
93
- }
94
- exports.transformCustomFormulaJaql = transformCustomFormulaJaql;
95
77
  /**
96
78
  * Creates a calculated measure for a valid custom formula built from [base functions](/guides/sdk/reference/functions.html#measured-value-functions).
97
79
  *
@@ -144,14 +126,11 @@ exports.transformCustomFormulaJaql = transformCustomFormulaJaql;
144
126
  * @returns A calculated measure instance
145
127
  * @group Advanced Analytics
146
128
  */
147
- function customFormula(title, formula, context) {
148
- const newContext = Object.entries(context).reduce((acc, [key, val]) => {
149
- acc[`[${key}]`] = val.jaql().jaql;
150
- return acc;
151
- }, {});
152
- return transformCustomFormulaJaql({ title, formula, context: newContext });
153
- }
154
- exports.customFormula = customFormula;
129
+ exports.customFormula = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((title, formula, context) => {
130
+ // context keys must be in brackets
131
+ const newContext = Object.fromEntries(Object.entries(context).map(([key, val]) => [key.startsWith('[') ? key : `[${key}]`, val]));
132
+ return new measures_js_1.DimensionalCalculatedMeasure(title, formula, newContext);
133
+ }, 'customFormula');
155
134
  function arithmetic(operand1, operator, operand2, name, withParentheses) {
156
135
  const builder = [];
157
136
  const context = {};
@@ -185,10 +164,7 @@ function arithmetic(operand1, operator, operand2, name, withParentheses) {
185
164
  * @returns A measure instance
186
165
  * @group Aggregation
187
166
  */
188
- function aggregate(attribute, aggregationType, name, format) {
189
- return new measures_js_1.DimensionalBaseMeasure(name !== null && name !== void 0 ? name : `${aggregationType.toString()} ${attribute.name}`, attribute, aggregationType, format);
190
- }
191
- exports.aggregate = aggregate;
167
+ exports.aggregate = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((attribute, aggregationType, name, format) => new measures_js_1.DimensionalBaseMeasure(name !== null && name !== void 0 ? name : `${aggregationType.toString()} ${attribute.name}`, attribute, aggregationType, format), 'aggregate');
192
168
  /**
193
169
  * Creates a calculated measure from a numeric value.
194
170
  *
@@ -201,10 +177,7 @@ exports.aggregate = aggregate;
201
177
  * @returns A calculated measure instance
202
178
  * @group Arithmetic
203
179
  */
204
- function constant(value) {
205
- return new measures_js_1.DimensionalCalculatedMeasure(`${value}`, `${value}`, {});
206
- }
207
- exports.constant = constant;
180
+ exports.constant = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((value) => new measures_js_1.DimensionalCalculatedMeasure(`${value}`, `${value}`, {}), 'constant');
208
181
  /**
209
182
  * Creates a sum aggregation measure over the given attribute.
210
183
  *
@@ -221,10 +194,7 @@ exports.constant = constant;
221
194
  * @returns A measure instance
222
195
  * @group Aggregation
223
196
  */
224
- function sum(attribute, name, format) {
225
- return aggregate(attribute, types_js_1.AggregationTypes.Sum, name, format);
226
- }
227
- exports.sum = sum;
197
+ exports.sum = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((attribute, name, format) => (0, exports.aggregate)(attribute, types_js_1.AggregationTypes.Sum, name, format), 'sum');
228
198
  /**
229
199
  * Creates an average aggregation measure over the given attribute.
230
200
  *
@@ -241,10 +211,7 @@ exports.sum = sum;
241
211
  * @returns A measure instance
242
212
  * @group Aggregation
243
213
  */
244
- function average(attribute, name, format) {
245
- return aggregate(attribute, types_js_1.AggregationTypes.Average, name, format);
246
- }
247
- exports.average = average;
214
+ exports.average = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((attribute, name, format) => (0, exports.aggregate)(attribute, types_js_1.AggregationTypes.Average, name, format), 'average');
248
215
  /**
249
216
  * {@inheritDoc average}
250
217
  *
@@ -253,12 +220,13 @@ exports.average = average;
253
220
  * ```ts
254
221
  * measureFactory.avg(DM.Commerce.Cost)
255
222
  * ```
223
+ * @param attribute - Attribute to aggregate
224
+ * @param name - Optional name for the new measure
225
+ * @param format - Optional numeric formatting to apply using a Numeral.js format string. Can only be used for explicit queries. Cannot be used in charts, tables, etc.
226
+ * @returns A measure instance
256
227
  * @group Aggregation
257
228
  */
258
- function avg(attribute, name, format) {
259
- return average(attribute, name, format);
260
- }
261
- exports.avg = avg;
229
+ exports.avg = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((attribute, name, format) => (0, exports.aggregate)(attribute, types_js_1.AggregationTypes.Average, name, format), 'avg');
262
230
  /**
263
231
  * Creates a min aggregation measure over the given attribute.
264
232
  *
@@ -273,10 +241,7 @@ exports.avg = avg;
273
241
  * @returns A measure instance
274
242
  * @group Aggregation
275
243
  */
276
- function min(attribute, name, format) {
277
- return aggregate(attribute, types_js_1.AggregationTypes.Min, name, format);
278
- }
279
- exports.min = min;
244
+ exports.min = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((attribute, name, format) => (0, exports.aggregate)(attribute, types_js_1.AggregationTypes.Min, name, format), 'min');
280
245
  /**
281
246
  * Creates a max aggregation measure over the given attribute.
282
247
  *
@@ -291,10 +256,7 @@ exports.min = min;
291
256
  * @returns A measure instance
292
257
  * @group Aggregation
293
258
  */
294
- function max(attribute, name, format) {
295
- return aggregate(attribute, types_js_1.AggregationTypes.Max, name, format);
296
- }
297
- exports.max = max;
259
+ exports.max = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((attribute, name, format) => (0, exports.aggregate)(attribute, types_js_1.AggregationTypes.Max, name, format), 'max');
298
260
  /**
299
261
  * Creates a median aggregation measure over the given attribute.
300
262
  *
@@ -309,10 +271,7 @@ exports.max = max;
309
271
  * @returns A measure instance
310
272
  * @group Aggregation
311
273
  */
312
- function median(attribute, name, format) {
313
- return aggregate(attribute, types_js_1.AggregationTypes.Median, name, format);
314
- }
315
- exports.median = median;
274
+ exports.median = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((attribute, name, format) => (0, exports.aggregate)(attribute, types_js_1.AggregationTypes.Median, name, format), 'median');
316
275
  /**
317
276
  * Creates a count aggregation measure over the given attribute.
318
277
  *
@@ -329,10 +288,7 @@ exports.median = median;
329
288
  * @returns A measure instance
330
289
  * @group Aggregation
331
290
  */
332
- function count(attribute, name, format) {
333
- return aggregate(attribute, types_js_1.AggregationTypes.Count, name, format);
334
- }
335
- exports.count = count;
291
+ exports.count = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((attribute, name, format) => (0, exports.aggregate)(attribute, types_js_1.AggregationTypes.Count, name, format), 'count');
336
292
  /**
337
293
  * Creates a count distinct aggregation measure over the given attribute.
338
294
  *
@@ -349,10 +305,7 @@ exports.count = count;
349
305
  * @returns A measure instance
350
306
  * @group Aggregation
351
307
  */
352
- function countDistinct(attribute, name, format) {
353
- return aggregate(attribute, types_js_1.AggregationTypes.CountDistinct, name, format);
354
- }
355
- exports.countDistinct = countDistinct;
308
+ exports.countDistinct = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((attribute, name, format) => (0, exports.aggregate)(attribute, types_js_1.AggregationTypes.CountDistinct, name, format), 'countDistinct');
356
309
  /**
357
310
  * Creates a measured value with the given measure and set of filters.
358
311
  *
@@ -380,7 +333,7 @@ exports.countDistinct = countDistinct;
380
333
  * @returns A calculated measure instance
381
334
  * @group Advanced Analytics
382
335
  */
383
- function measuredValue(measure, filters, name, format) {
336
+ exports.measuredValue = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, filters, name, format) => {
384
337
  const builder = [];
385
338
  const context = {};
386
339
  builder.push('(');
@@ -392,8 +345,7 @@ function measuredValue(measure, filters, name, format) {
392
345
  builder.push(')');
393
346
  const exp = builder.join('');
394
347
  return new measures_js_1.DimensionalCalculatedMeasure(name !== null && name !== void 0 ? name : exp, exp, context, format);
395
- }
396
- exports.measuredValue = measuredValue;
348
+ }, 'measuredValue');
397
349
  /**
398
350
  * Creates a calculated measure by adding two given numbers or measures.
399
351
  *
@@ -410,10 +362,7 @@ exports.measuredValue = measuredValue;
410
362
  * @returns A calculated measure instance
411
363
  * @group Arithmetic
412
364
  */
413
- function add(value1, value2, name, withParentheses) {
414
- return arithmetic(value1, '+', value2, name, withParentheses);
415
- }
416
- exports.add = add;
365
+ exports.add = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((value1, value2, name, withParentheses) => arithmetic(value1, '+', value2, name, withParentheses), 'add');
417
366
  /**
418
367
  * Creates a calculated measure by subtracting two given numbers or measures. Subtracts `value2` from `value1`.
419
368
  *
@@ -430,10 +379,7 @@ exports.add = add;
430
379
  * @returns A calculated measure instance
431
380
  * @group Arithmetic
432
381
  */
433
- function subtract(value1, value2, name, withParentheses) {
434
- return arithmetic(value1, '-', value2, name, withParentheses);
435
- }
436
- exports.subtract = subtract;
382
+ exports.subtract = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((value1, value2, name, withParentheses) => arithmetic(value1, '-', value2, name, withParentheses), 'subtract');
437
383
  /**
438
384
  * Creates a calculated measure by multiplying two given numbers or measures.
439
385
  *
@@ -450,10 +396,7 @@ exports.subtract = subtract;
450
396
  * @returns A calculated measure instance
451
397
  * @group Arithmetic
452
398
  */
453
- function multiply(value1, value2, name, withParentheses) {
454
- return arithmetic(value1, '*', value2, name, withParentheses);
455
- }
456
- exports.multiply = multiply;
399
+ exports.multiply = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((value1, value2, name, withParentheses) => arithmetic(value1, '*', value2, name, withParentheses), 'multiply');
457
400
  /**
458
401
  * Creates a calculated measure by dividing two given numbers or measures. Divides `value1` by `value2`.
459
402
  *
@@ -470,10 +413,7 @@ exports.multiply = multiply;
470
413
  * @returns A calculated measure instance
471
414
  * @group Arithmetic
472
415
  */
473
- function divide(value1, value2, name, withParentheses) {
474
- return arithmetic(value1, '/', value2, name, withParentheses);
475
- }
476
- exports.divide = divide;
416
+ exports.divide = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((value1, value2, name, withParentheses) => arithmetic(value1, '/', value2, name, withParentheses), 'divide');
477
417
  /**
478
418
  * Creates a calculated measure that calculates the running total starting from the beginning
479
419
  * of the year up to the current day, week, month, or quarter.
@@ -492,10 +432,7 @@ exports.divide = divide;
492
432
  * @returns A calculated measure instance
493
433
  * @group Time-based
494
434
  */
495
- function yearToDateSum(measure, name) {
496
- return measureFunction(measure, name !== null && name !== void 0 ? name : 'YTD ' + measure.name, 'YTDSum');
497
- }
498
- exports.yearToDateSum = yearToDateSum;
435
+ exports.yearToDateSum = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : 'YTD ' + measure.name, 'YTDSum'), 'yearToDateSum');
499
436
  /**
500
437
  * Creates a calculated measure that calculates the running total starting from the beginning
501
438
  * of the quarter up to the current day, week, or month.
@@ -514,10 +451,7 @@ exports.yearToDateSum = yearToDateSum;
514
451
  * @returns A calculated measure instance
515
452
  * @group Time-based
516
453
  */
517
- function quarterToDateSum(measure, name) {
518
- return measureFunction(measure, name !== null && name !== void 0 ? name : 'QTD ' + name, 'QTDSum');
519
- }
520
- exports.quarterToDateSum = quarterToDateSum;
454
+ exports.quarterToDateSum = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : 'QTD ' + name, 'QTDSum'), 'quarterToDateSum');
521
455
  /**
522
456
  * Creates a calculated measure that calculates the running total starting from the beginning
523
457
  * of the month up to the current day or week.
@@ -536,10 +470,7 @@ exports.quarterToDateSum = quarterToDateSum;
536
470
  * @returns A calculated measure instance
537
471
  * @group Time-based
538
472
  */
539
- function monthToDateSum(measure, name) {
540
- return measureFunction(measure, name !== null && name !== void 0 ? name : 'MTD ' + measure.name, 'MTDSum');
541
- }
542
- exports.monthToDateSum = monthToDateSum;
473
+ exports.monthToDateSum = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : 'MTD ' + measure.name, 'MTDSum'), 'monthToDateSum');
543
474
  /**
544
475
  * Creates a calculated measure that calculates the running total starting from the beginning
545
476
  * of the week up to the current day.
@@ -558,10 +489,7 @@ exports.monthToDateSum = monthToDateSum;
558
489
  * @returns A calculated measure instance
559
490
  * @group Time-based
560
491
  */
561
- function weekToDateSum(measure, name) {
562
- return measureFunction(measure, name !== null && name !== void 0 ? name : 'MTD ' + measure.name, 'WTDSum');
563
- }
564
- exports.weekToDateSum = weekToDateSum;
492
+ exports.weekToDateSum = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : 'MTD ' + measure.name, 'WTDSum'), 'weekToDateSum');
565
493
  /**
566
494
  * Creates a calculated measure that calculates the running total of a given measure.
567
495
  *
@@ -590,10 +518,7 @@ exports.weekToDateSum = weekToDateSum;
590
518
  * @returns A calculated measure instance
591
519
  * @group Statistics
592
520
  */
593
- function runningSum(measure, _continuous, name) {
594
- return measureFunction(measure, name !== null && name !== void 0 ? name : 'Running Sum ' + measure.name, 'RSum');
595
- }
596
- exports.runningSum = runningSum;
521
+ exports.runningSum = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, _continuous, name) => measureFunction(measure, name !== null && name !== void 0 ? name : 'Running Sum ' + measure.name, 'RSum'), 'runningSum');
597
522
  /**
598
523
  * Creates a calculated measure that calculates growth over a period of time.
599
524
  *
@@ -621,10 +546,7 @@ exports.runningSum = runningSum;
621
546
  * @returns A calculated measure instance
622
547
  * @group Statistics
623
548
  */
624
- function growth(measure, name) {
625
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Growth', 'growth');
626
- }
627
- exports.growth = growth;
549
+ exports.growth = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Growth', 'growth'), 'growth');
628
550
  /**
629
551
  * Creates a calculated measure that calculates growth rate over a period of time.
630
552
  *
@@ -652,10 +574,7 @@ exports.growth = growth;
652
574
  * @returns A calculated measure instance
653
575
  * @group Statistics
654
576
  */
655
- function growthRate(measure, name) {
656
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Growth', 'growthrate');
657
- }
658
- exports.growthRate = growthRate;
577
+ exports.growthRate = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Growth', 'growthrate'), 'growthRate');
659
578
  /**
660
579
  * Creates a calculated measure that calculates the growth from the previous week to the current week.
661
580
  *
@@ -682,10 +601,7 @@ exports.growthRate = growthRate;
682
601
  * @returns A calculated measure instance
683
602
  * @group Statistics
684
603
  */
685
- function growthPastWeek(measure, name) {
686
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Growth', 'growthpastweek');
687
- }
688
- exports.growthPastWeek = growthPastWeek;
604
+ exports.growthPastWeek = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Growth', 'growthpastweek'), 'growthPastWeek');
689
605
  /**
690
606
  * Creates a calculated measure that calculates the growth from the previous month to the current month.
691
607
  *
@@ -712,10 +628,7 @@ exports.growthPastWeek = growthPastWeek;
712
628
  * @returns A calculated measure instance
713
629
  * @group Statistics
714
630
  */
715
- function growthPastMonth(measure, name) {
716
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Growth', 'growthpastmonth');
717
- }
718
- exports.growthPastMonth = growthPastMonth;
631
+ exports.growthPastMonth = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Growth', 'growthpastmonth'), 'growthPastMonth');
719
632
  /**
720
633
  * Creates a calculated measure that calculates the growth from the previous quarter to the current quarter.
721
634
  *
@@ -742,10 +655,7 @@ exports.growthPastMonth = growthPastMonth;
742
655
  * @returns A calculated measure instance
743
656
  * @group Statistics
744
657
  */
745
- function growthPastQuarter(measure, name) {
746
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Growth', 'growthpastquarter');
747
- }
748
- exports.growthPastQuarter = growthPastQuarter;
658
+ exports.growthPastQuarter = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Growth', 'growthpastquarter'), 'growthPastQuarter');
749
659
  /**
750
660
  * Creates a calculated measure that calculates the growth from the previous year to the current year.
751
661
  *
@@ -772,10 +682,7 @@ exports.growthPastQuarter = growthPastQuarter;
772
682
  * @returns A calculated measure instance
773
683
  * @group Statistics
774
684
  */
775
- function growthPastYear(measure, name) {
776
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Growth', 'growthpastyear');
777
- }
778
- exports.growthPastYear = growthPastYear;
685
+ exports.growthPastYear = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Growth', 'growthpastyear'), 'growthPastYear');
779
686
  /**
780
687
  * Creates a calculated measure that calculates the difference between this period's data
781
688
  * and the data from the previous period for the given measure.
@@ -794,10 +701,7 @@ exports.growthPastYear = growthPastYear;
794
701
  * @returns A calculated measure instance
795
702
  * @group Time-based
796
703
  */
797
- function difference(measure, name) {
798
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Difference', 'diffpastperiod');
799
- }
800
- exports.difference = difference;
704
+ exports.difference = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Difference', 'diffpastperiod'), 'difference');
801
705
  /**
802
706
  * Creates a calculated measure that calculates the difference between this week's data
803
707
  * and the data from the previous week for the given measure.
@@ -815,10 +719,7 @@ exports.difference = difference;
815
719
  * @returns A calculated measure instance
816
720
  * @group Time-based
817
721
  */
818
- function diffPastWeek(measure, name) {
819
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Difference', 'diffpastweek');
820
- }
821
- exports.diffPastWeek = diffPastWeek;
722
+ exports.diffPastWeek = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Difference', 'diffpastweek'), 'diffPastWeek');
822
723
  /**
823
724
  * Creates a calculated measure that calculates the difference between this month's data
824
725
  * and the data from the previous month for the given measure.
@@ -836,10 +737,7 @@ exports.diffPastWeek = diffPastWeek;
836
737
  * @returns A calculated measure instance
837
738
  * @group Time-based
838
739
  */
839
- function diffPastMonth(measure, name) {
840
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Difference', 'diffpastmonth');
841
- }
842
- exports.diffPastMonth = diffPastMonth;
740
+ exports.diffPastMonth = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Difference', 'diffpastmonth'), 'diffPastMonth');
843
741
  /**
844
742
  * Creates a calculated measure that calculates the difference between this quarter's data
845
743
  * and the data from the previous quarter for the given measure.
@@ -857,10 +755,7 @@ exports.diffPastMonth = diffPastMonth;
857
755
  * @returns A calculated measure instance
858
756
  * @group Time-based
859
757
  */
860
- function diffPastQuarter(measure, name) {
861
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Difference', 'diffpastquarter');
862
- }
863
- exports.diffPastQuarter = diffPastQuarter;
758
+ exports.diffPastQuarter = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Difference', 'diffpastquarter'), 'diffPastQuarter');
864
759
  /**
865
760
  * Creates a calculated measure that calculates the difference between this year's data
866
761
  * and the data from the previous year for the given measure.
@@ -878,10 +773,7 @@ exports.diffPastQuarter = diffPastQuarter;
878
773
  * @returns A calculated measure instance
879
774
  * @group Time-based
880
775
  */
881
- function diffPastYear(measure, name) {
882
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Difference', 'diffpastyear');
883
- }
884
- exports.diffPastYear = diffPastYear;
776
+ exports.diffPastYear = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Difference', 'diffpastyear'), 'diffPastYear');
885
777
  /**
886
778
  * Creates a calculated measure that calculates the value for the previous day.
887
779
  *
@@ -895,10 +787,7 @@ exports.diffPastYear = diffPastYear;
895
787
  * @returns A calculated measure instance
896
788
  * @group Time-based
897
789
  */
898
- function pastDay(measure, name) {
899
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Past Day', 'pastday');
900
- }
901
- exports.pastDay = pastDay;
790
+ exports.pastDay = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Past Day', 'pastday'), 'pastDay');
902
791
  /**
903
792
  * Creates a calculated measure that calculates the value for the same day in the previous week.
904
793
  *
@@ -915,10 +804,7 @@ exports.pastDay = pastDay;
915
804
  * @returns A calculated measure instance
916
805
  * @group Time-based
917
806
  */
918
- function pastWeek(measure, name) {
919
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Past Week', 'pastweek');
920
- }
921
- exports.pastWeek = pastWeek;
807
+ exports.pastWeek = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Past Week', 'pastweek'), 'pastWeek');
922
808
  /**
923
809
  * Creates a calculated measure that calculates the value for the same day or week in the previous month.
924
810
  *
@@ -936,10 +822,7 @@ exports.pastWeek = pastWeek;
936
822
  * @returns A calculated measure instance
937
823
  * @group Time-based
938
824
  */
939
- function pastMonth(measure, name) {
940
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Past Month', 'pastmonth');
941
- }
942
- exports.pastMonth = pastMonth;
825
+ exports.pastMonth = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Past Month', 'pastmonth'), 'pastMonth');
943
826
  /**
944
827
  * Creates a calculated measure that calculates the value for the same day, week, or month in the previous quarter.
945
828
  *
@@ -957,10 +840,7 @@ exports.pastMonth = pastMonth;
957
840
  * @returns A calculated measure instance
958
841
  * @group Time-based
959
842
  */
960
- function pastQuarter(measure, name) {
961
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Past Quarter', 'pastquarter');
962
- }
963
- exports.pastQuarter = pastQuarter;
843
+ exports.pastQuarter = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Past Quarter', 'pastquarter'), 'pastQuarter');
964
844
  /**
965
845
  * Creates a calculated measure that calculates the value for the same day, week, month, or quarter in the previous year.
966
846
  *
@@ -978,10 +858,7 @@ exports.pastQuarter = pastQuarter;
978
858
  * @returns A calculated measure instance
979
859
  * @group Time-based
980
860
  */
981
- function pastYear(measure, name) {
982
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Past Year', 'pastyear');
983
- }
984
- exports.pastYear = pastYear;
861
+ exports.pastYear = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Past Year', 'pastyear'), 'pastYear');
985
862
  /**
986
863
  * Creates a calculated contribution measure.
987
864
  *
@@ -1016,10 +893,7 @@ exports.pastYear = pastYear;
1016
893
  * @returns A calculated measure instance
1017
894
  * @group Statistics
1018
895
  */
1019
- function contribution(measure, name) {
1020
- return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Contribution', 'contribution');
1021
- }
1022
- exports.contribution = contribution;
896
+ exports.contribution = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name) => measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Contribution', 'contribution'), 'contribution');
1023
897
  /**
1024
898
  * Creates a calculated measure that computes a specified trend type for a given measure.
1025
899
  *
@@ -1046,7 +920,7 @@ exports.contribution = contribution;
1046
920
  * @returns A calculated measure instance
1047
921
  * @group Advanced Analytics
1048
922
  */
1049
- function trend(measure, name, options) {
923
+ exports.trend = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name, options) => {
1050
924
  let params;
1051
925
  const adjustValues = (value) => value.replace('advancedSmoothing', 'smooth').replace('localEstimates', 'local');
1052
926
  if (options) {
@@ -1057,8 +931,7 @@ function trend(measure, name, options) {
1057
931
  .join(',');
1058
932
  }
1059
933
  return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Trend', 'trend', params);
1060
- }
1061
- exports.trend = trend;
934
+ }, 'trend');
1062
935
  /**
1063
936
  * Creates a calculated measure that generates a forecast based on a specified measure employing
1064
937
  * advanced autoML techniques.
@@ -1093,7 +966,7 @@ exports.trend = trend;
1093
966
  * @returns A calculated measure instance
1094
967
  * @group Advanced Analytics
1095
968
  */
1096
- function forecast(measure, name, options) {
969
+ exports.forecast = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name, options) => {
1097
970
  let params;
1098
971
  if (options) {
1099
972
  // create ISO string values for any Date objects
@@ -1116,8 +989,7 @@ function forecast(measure, name, options) {
1116
989
  params = '"forecastHorizon=3"';
1117
990
  }
1118
991
  return measureFunction(measure, name !== null && name !== void 0 ? name : measure.name + ' Forecast', 'forecast', params);
1119
- }
1120
- exports.forecast = forecast;
992
+ }, 'forecast');
1121
993
  /**
1122
994
  * Creates a calculated measure that calculates the rank of a value in a list of values.
1123
995
  *
@@ -1168,7 +1040,7 @@ exports.forecast = forecast;
1168
1040
  * @returns A calculated measure instance
1169
1041
  * @group Statistics
1170
1042
  */
1171
- function rank(measure, name, sort = exports.RankingSortTypes.Descending, rankType = exports.RankingTypes.StandardCompetition, groupBy = []) {
1043
+ exports.rank = (0, compose_code_utils_js_1.withComposeCodeForMeasure)((measure, name, sort = exports.RankingSortTypes.Descending, rankType = exports.RankingTypes.StandardCompetition, groupBy = []) => {
1172
1044
  const builder = [];
1173
1045
  const context = {};
1174
1046
  builder.push('rank(');
@@ -1185,5 +1057,4 @@ function rank(measure, name, sort = exports.RankingSortTypes.Descending, rankTyp
1185
1057
  name = `${measure.name} rank`;
1186
1058
  }
1187
1059
  return new measures_js_1.DimensionalCalculatedMeasure(name, exp, context);
1188
- }
1189
- exports.rank = rank;
1060
+ }, 'rank');
@@ -1,13 +1,13 @@
1
- import { Attribute, Measure, BaseMeasure, MeasureTemplate, CalculatedMeasure, MeasureContext } from '../interfaces.js';
2
- import { Sort } from '../types.js';
3
1
  import { DimensionalElement } from '../base.js';
2
+ import { Attribute, BaseMeasure, CalculatedMeasure, Measure, MeasureContext, MeasureTemplate } from '../interfaces.js';
3
+ import { JaqlDataSource, JSONObject, Sort } from '../types.js';
4
4
  /**
5
5
  * @internal
6
6
  */
7
7
  export declare abstract class AbstractMeasure extends DimensionalElement {
8
8
  protected _sort: Sort;
9
9
  protected _format: string | undefined;
10
- constructor(name: string, type: string, format?: string, desc?: string, sort?: Sort, composeCode?: string);
10
+ constructor(name: string, type: string, format?: string, desc?: string, sort?: Sort, dataSource?: JaqlDataSource, composeCode?: string);
11
11
  /**
12
12
  * gets the element's ID
13
13
  */
@@ -27,7 +27,7 @@ export declare abstract class AbstractMeasure extends DimensionalElement {
27
27
  /**
28
28
  * Gets a serializable representation of the element
29
29
  */
30
- serializable(): any;
30
+ serialize(): JSONObject;
31
31
  /**
32
32
  * Gets a sorted {@link Measure} with the given definition
33
33
  *
@@ -51,7 +51,7 @@ export declare abstract class AbstractMeasure extends DimensionalElement {
51
51
  export declare class DimensionalBaseMeasure extends AbstractMeasure implements BaseMeasure {
52
52
  static aggregationFromJAQL(agg: string): string;
53
53
  static aggregationToJAQL(agg: string): string;
54
- constructor(name: string, attribute: Attribute, agg: string, format?: string, desc?: string, sort?: Sort, composeCode?: string);
54
+ constructor(name: string, attribute: Attribute, agg: string, format?: string, desc?: string, sort?: Sort, dataSource?: JaqlDataSource, composeCode?: string);
55
55
  /**
56
56
  * Aggregating attribute
57
57
  */
@@ -83,7 +83,7 @@ export declare class DimensionalBaseMeasure extends AbstractMeasure implements B
83
83
  /**
84
84
  * Gets a serializable representation of the element
85
85
  */
86
- serializable(): any;
86
+ serialize(): JSONObject;
87
87
  jaql(nested?: boolean): any;
88
88
  }
89
89
  /**
@@ -93,7 +93,7 @@ export declare class DimensionalBaseMeasure extends AbstractMeasure implements B
93
93
  * @internal
94
94
  */
95
95
  export declare class DimensionalCalculatedMeasure extends AbstractMeasure implements CalculatedMeasure {
96
- constructor(name: string, expression: string, context: MeasureContext, format?: string, desc?: string, sort?: Sort, composeCode?: string);
96
+ constructor(name: string, expression: string, context: MeasureContext, format?: string, desc?: string, sort?: Sort, dataSource?: JaqlDataSource, composeCode?: string);
97
97
  /**
98
98
  * Defines the Calculated measure's expression
99
99
  */
@@ -125,7 +125,7 @@ export declare class DimensionalCalculatedMeasure extends AbstractMeasure implem
125
125
  /**
126
126
  * Gets a serializable representation of the element
127
127
  */
128
- serializable(): any;
128
+ serialize(): JSONObject;
129
129
  jaql(nested?: boolean): any;
130
130
  }
131
131
  /**
@@ -134,7 +134,7 @@ export declare class DimensionalCalculatedMeasure extends AbstractMeasure implem
134
134
  * @internal
135
135
  */
136
136
  export declare class DimensionalMeasureTemplate extends AbstractMeasure implements MeasureTemplate {
137
- constructor(name: string, attribute: Attribute, format?: string, desc?: string, sort?: Sort);
137
+ constructor(name: string, attribute: Attribute, format?: string, desc?: string, sort?: Sort, dataSource?: JaqlDataSource, composeCode?: string);
138
138
  /**
139
139
  * Aggregating attribute
140
140
  */
@@ -146,7 +146,7 @@ export declare class DimensionalMeasureTemplate extends AbstractMeasure implemen
146
146
  /**
147
147
  * Gets a serializable representation of the element
148
148
  */
149
- serializable(): any;
149
+ serialize(): JSONObject;
150
150
  /**
151
151
  * Gets a sorted {@link MeasureTemplate} with the given definition
152
152
  *