@ic3/reporting-api 8.0.0-alpha.6 → 8.0.0-rc.3

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 (83) hide show
  1. package/dist/ApiUtils.d.ts +10 -0
  2. package/dist/ApiUtils.js +25 -1
  3. package/dist/ApiUtils.js.map +1 -1
  4. package/dist/INotification.d.ts +32 -0
  5. package/dist/INotification.js +3 -0
  6. package/dist/INotification.js.map +1 -0
  7. package/dist/IPluginDefinition.d.ts +4 -1
  8. package/dist/IReporting.d.ts +41 -4
  9. package/dist/IThemeManager.d.ts +13 -18
  10. package/dist/IThemeManager.js.map +1 -1
  11. package/dist/ITidyTableTransformation.d.ts +20 -1
  12. package/dist/IWidgetVariantManager.d.ts +20 -2
  13. package/dist/LazyTreeView.d.ts +43 -1
  14. package/dist/LazyTreeView.js +5 -1
  15. package/dist/LazyTreeView.js.map +1 -1
  16. package/dist/Loader.d.ts +10 -0
  17. package/dist/Loader.js +33 -0
  18. package/dist/Loader.js.map +1 -0
  19. package/dist/PublicContext.d.ts +75 -10
  20. package/dist/PublicContext.js.map +1 -1
  21. package/dist/PublicLayout.d.ts +6 -6
  22. package/dist/PublicTemplate.d.ts +161 -58
  23. package/dist/PublicTemplate.js +16 -1
  24. package/dist/PublicTemplate.js.map +1 -1
  25. package/dist/PublicTemplateForm.d.ts +131 -29
  26. package/dist/PublicTemplateForm.js +7 -1
  27. package/dist/PublicTemplateForm.js.map +1 -1
  28. package/dist/PublicTheme.d.ts +114 -69
  29. package/dist/PublicTheme.js.map +1 -1
  30. package/dist/PublicTidyColumn.d.ts +327 -259
  31. package/dist/PublicTidyColumn.js +48 -2
  32. package/dist/PublicTidyColumn.js.map +1 -1
  33. package/dist/PublicTidyHistogram.d.ts +24 -0
  34. package/dist/PublicTidyHistogram.js +77 -0
  35. package/dist/PublicTidyHistogram.js.map +1 -0
  36. package/dist/PublicTidyMath.d.ts +49 -45
  37. package/dist/PublicTidyMath.js +0 -280
  38. package/dist/PublicTidyMath.js.map +1 -1
  39. package/dist/PublicTidyTable.d.ts +170 -154
  40. package/dist/PublicTidyTableInteractions.d.ts +30 -23
  41. package/dist/PublicTidyTableInteractions.js +5 -4
  42. package/dist/PublicTidyTableInteractions.js.map +1 -1
  43. package/dist/PublicTidyTableTypes.d.ts +133 -55
  44. package/dist/PublicTidyTableTypes.js +35 -18
  45. package/dist/PublicTidyTableTypes.js.map +1 -1
  46. package/dist/PublicTidyTree.d.ts +27 -37
  47. package/dist/PublicTidyTree.js +30 -58
  48. package/dist/PublicTidyTree.js.map +1 -1
  49. package/dist/RemoteContainerUtils.d.ts +1 -1
  50. package/dist/RemoteContainerUtils.js +9 -1
  51. package/dist/RemoteContainerUtils.js.map +1 -1
  52. package/dist/ReportingVersion.d.ts +1 -1
  53. package/dist/ReportingVersion.js +1 -1
  54. package/dist/ReportingVersion.js.map +1 -1
  55. package/dist/index.d.ts +3 -0
  56. package/dist/index.js +3 -0
  57. package/dist/index.js.map +1 -1
  58. package/dist/theme/ThemeFilterAutocomplete.d.ts +30 -0
  59. package/dist/theme/ThemeFilterAutocomplete.js +23 -0
  60. package/dist/theme/ThemeFilterAutocomplete.js.map +1 -0
  61. package/dist/theme/ThemeFilterButtons.d.ts +28 -3
  62. package/dist/theme/ThemeFilterButtons.js +9 -3
  63. package/dist/theme/ThemeFilterButtons.js.map +1 -1
  64. package/dist/theme/ThemeFilterCheckboxes.d.ts +18 -0
  65. package/dist/theme/ThemeFilterCheckboxes.js +11 -0
  66. package/dist/theme/ThemeFilterCheckboxes.js.map +1 -0
  67. package/dist/theme/ThemeFilterSlider.d.ts +47 -0
  68. package/dist/theme/ThemeFilterSlider.js +29 -0
  69. package/dist/theme/ThemeFilterSlider.js.map +1 -0
  70. package/dist/theme/ThemeFilterTree.d.ts +70 -0
  71. package/dist/theme/ThemeFilterTree.js +11 -0
  72. package/dist/theme/ThemeFilterTree.js.map +1 -0
  73. package/dist/theme/ThemeGoogleMapMarker.d.ts +51 -0
  74. package/dist/theme/ThemeGoogleMapMarker.js +3 -0
  75. package/dist/theme/ThemeGoogleMapMarker.js.map +1 -0
  76. package/dist/theme/ThemeHtmlBox.d.ts +7 -1
  77. package/dist/theme/ThemePivotTable.d.ts +23 -0
  78. package/dist/theme/ThemePivotTable.js +21 -0
  79. package/dist/theme/ThemePivotTable.js.map +1 -0
  80. package/dist/theme/ThemeTable.d.ts +15 -0
  81. package/dist/theme/ThemeTable.js +5 -0
  82. package/dist/theme/ThemeTable.js.map +1 -0
  83. package/package.json +11 -10
@@ -1,16 +1,44 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TidyTableNumberExprColumnMetas = exports.TidyTableTextExprColumnMetas = exports.ITidyColumnNamedProperties = void 0;
3
+ exports.TidyTableNumberExprColumnMetas = exports.TidyTableTextExprColumnMetas = exports.CharacterTidyColumnProperties = exports.ITidyColumnNamedProperties = void 0;
4
4
  /**
5
5
  * Properties with a special meaning
6
6
  */
7
7
  var ITidyColumnNamedProperties;
8
8
  (function (ITidyColumnNamedProperties) {
9
+ /**
10
+ * The formatted value of a cell. For example, 5003 in euros is formatted as €5,003
11
+ */
9
12
  ITidyColumnNamedProperties["mdxCellFormattedValue"] = "formattedValue";
13
+ /**
14
+ * MDX related colorings
15
+ */
10
16
  ITidyColumnNamedProperties["mdxCellBackColor"] = "mdxCellBackColor";
17
+ /**
18
+ * MDX related colorings
19
+ */
11
20
  ITidyColumnNamedProperties["mdxCellForeColor"] = "mdxCellForeColor";
21
+ /**
22
+ * The format string for the cell value. For example, euros are formatted using €#,###.
23
+ * and percentages using #0.00%.
24
+ */
12
25
  ITidyColumnNamedProperties["mdxCellFormatString"] = "mdxCellFormatString";
26
+ /**
27
+ * The main color of the cell
28
+ */
13
29
  ITidyColumnNamedProperties["mdxCellColor"] = "color";
30
+ /**
31
+ * Column defined to fire an app. notification.
32
+ *
33
+ * The name of the notification (e.g., print-report).
34
+ */
35
+ ITidyColumnNamedProperties["appNotificationType"] = "appNotificationType";
36
+ /**
37
+ * Column defined to fire an app. notification.
38
+ *
39
+ * The parameters of the notification (e.g., page size, filename, ...) as a JSON or a string.
40
+ */
41
+ ITidyColumnNamedProperties["appNotificationPayload"] = "appNotificationPayload";
14
42
  /**
15
43
  * Column defined to fire events, the name of the event
16
44
  */
@@ -34,15 +62,30 @@ var ITidyColumnNamedProperties;
34
62
  /**
35
63
  * Column defined as an MDX axis, the key of the column
36
64
  */
37
- ITidyColumnNamedProperties["key"] = "key";
65
+ ITidyColumnNamedProperties["mdxCellKey"] = "key";
66
+ /**
67
+ * Show this when hovering over the cell (or the visualisation representing the cell)
68
+ */
38
69
  ITidyColumnNamedProperties["tooltip"] = "tooltip";
39
70
  })(ITidyColumnNamedProperties = exports.ITidyColumnNamedProperties || (exports.ITidyColumnNamedProperties = {}));
71
+ exports.CharacterTidyColumnProperties = new Set([
72
+ ITidyColumnNamedProperties.mdxCellFormattedValue,
73
+ ITidyColumnNamedProperties.uniqueName,
74
+ ITidyColumnNamedProperties.mdxCellFormatString,
75
+ ITidyColumnNamedProperties.appNotificationType,
76
+ ITidyColumnNamedProperties.eventName,
77
+ ITidyColumnNamedProperties.caption,
78
+ ITidyColumnNamedProperties.tooltip,
79
+ ]);
40
80
  exports.TidyTableTextExprColumnMetas = [
41
81
  { caption: "total", method: "sum" },
42
82
  { caption: "average", method: "mean" },
43
83
  { caption: "median", method: "median" },
44
84
  { caption: "min", method: "min" },
45
85
  { caption: "max", method: "max" },
86
+ { caption: "variance", method: "variance" },
87
+ { caption: "standardDeviation", method: "standardDeviation" },
88
+ { caption: "count", method: "count" },
46
89
  { caption: "percent", method: "percent", argRow: true },
47
90
  { caption: "caption", method: "getCaption" },
48
91
  ];
@@ -52,6 +95,9 @@ exports.TidyTableNumberExprColumnMetas = [
52
95
  { caption: "median", method: "median" },
53
96
  { caption: "min", method: "min" },
54
97
  { caption: "max", method: "max" },
98
+ { caption: "variance", method: "variance" },
99
+ { caption: "standardDeviation", method: "standardDeviation" },
100
+ { caption: "count", method: "count" },
55
101
  { caption: "percent", method: "percent", argRow: true },
56
102
  // {caption: "caption", method: "getCaption"},
57
103
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"PublicTidyColumn.js","sourceRoot":"","sources":["../src/PublicTidyColumn.ts"],"names":[],"mappings":";;;AAgBA;;GAEG;AACH,IAAY,0BAuCX;AAvCD,WAAY,0BAA0B;IAElC,sEAAwC,CAAA;IACxC,mEAAqC,CAAA;IACrC,mEAAqC,CAAA;IACrC,yEAA2C,CAAA;IAC3C,oDAAsB,CAAA;IAEtB;;OAEG;IACH,qDAAuB,CAAA;IAEvB;;OAEG;IACH,uDAAyB,CAAA;IAEzB;;OAEG;IACH,6DAA+B,CAAA;IAE/B;;OAEG;IACH,uDAAyB,CAAA;IAEzB;;OAEG;IACH,iDAAmB,CAAA;IAEnB;;OAEG;IACH,yCAAW,CAAA;IAEX,iDAAmB,CAAA;AACvB,CAAC,EAvCW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAuCrC;AAglBY,QAAA,4BAA4B,GAA8B;IAEnE,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAC;IACjC,EAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAC;IACpC,EAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAC;IACrC,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC;IAC/B,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC;IAE/B,EAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAC;IAErD,EAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAC;CAE7C,CAAC;AAEW,QAAA,8BAA8B,GAA8B;IAErE,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAC;IACjC,EAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAC;IACpC,EAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAC;IACrC,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC;IAC/B,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC;IAE/B,EAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAC;IAErD,8CAA8C;CAEjD,CAAC"}
1
+ {"version":3,"file":"PublicTidyColumn.js","sourceRoot":"","sources":["../src/PublicTidyColumn.ts"],"names":[],"mappings":";;;AA6CA;;GAEG;AACH,IAAY,0BA4EX;AA5ED,WAAY,0BAA0B;IAElC;;OAEG;IACH,sEAAwC,CAAA;IAExC;;OAEG;IACH,mEAAqC,CAAA;IAErC;;OAEG;IACH,mEAAqC,CAAA;IAErC;;;OAGG;IACH,yEAA2C,CAAA;IAE3C;;OAEG;IACH,oDAAsB,CAAA;IAEtB;;;;OAIG;IACH,yEAA2C,CAAA;IAE3C;;;;OAIG;IACH,+EAAiD,CAAA;IAEjD;;OAEG;IACH,qDAAuB,CAAA;IAEvB;;OAEG;IACH,uDAAyB,CAAA;IAEzB;;OAEG;IACH,6DAA+B,CAAA;IAE/B;;OAEG;IACH,uDAAyB,CAAA;IAEzB;;OAEG;IACH,iDAAmB,CAAA;IAEnB;;OAEG;IACH,gDAAkB,CAAA;IAElB;;OAEG;IACH,iDAAmB,CAAA;AACvB,CAAC,EA5EW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QA4ErC;AAEY,QAAA,6BAA6B,GAAG,IAAI,GAAG,CAAS;IAEzD,0BAA0B,CAAC,qBAAqB;IAChD,0BAA0B,CAAC,UAAU;IAErC,0BAA0B,CAAC,mBAAmB;IAE9C,0BAA0B,CAAC,mBAAmB;IAC9C,0BAA0B,CAAC,SAAS;IAEpC,0BAA0B,CAAC,OAAO;IAClC,0BAA0B,CAAC,OAAO;CAErC,CAAC,CAAC;AA4mBU,QAAA,4BAA4B,GAA8B;IAEnE,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAC;IACjC,EAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAC;IACpC,EAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAC;IACrC,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC;IAC/B,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC;IAC/B,EAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAC;IACzC,EAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,EAAC;IAC3D,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAC;IAEnC,EAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAC;IAErD,EAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAC;CAE7C,CAAC;AAEW,QAAA,8BAA8B,GAA8B;IAErE,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAC;IACjC,EAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAC;IACpC,EAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAC;IACrC,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC;IAC/B,EAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC;IAC/B,EAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAC;IACzC,EAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,EAAC;IAC3D,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAC;IAEnC,EAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAC;IAErD,8CAA8C;CAEjD,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { SortingType } from "./PublicTidyTableTypes";
2
+ import { FormFieldObject, FormFields } from "./PublicTemplateForm";
3
+ export declare enum TidyHistogramBucketFormat {
4
+ INTERVAL = "interval",
5
+ MATH_INTERVAL = "mathInterval",
6
+ MATH_INTERVAL_REVERSED = "mathIntervalReversed",
7
+ FROM_ONLY = "fromOnly",
8
+ TO_ONLY = "toOnly"
9
+ }
10
+ export declare enum TidyHistogramBucketType {
11
+ LEFT_CLOSED = "leftClosed",
12
+ RIGHT_CLOSED = "rightClosed"
13
+ }
14
+ export interface TidyHistogramOptions extends FormFieldObject {
15
+ binType: "automatic" | "userDefined";
16
+ numberOfBins: number;
17
+ customBins: string;
18
+ sortBins: SortingType;
19
+ bucketFormat: TidyHistogramBucketFormat;
20
+ intervalType: TidyHistogramBucketType;
21
+ }
22
+ export declare const TidyHistogramMetaOptions: (group?: string | undefined, hideSort?: boolean) => FormFields<TidyHistogramOptions>;
23
+ export declare const TidyHistogramBucketColName = "bucket";
24
+ export declare const TidyHistogramCountColName = "count";
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TidyHistogramCountColName = exports.TidyHistogramBucketColName = exports.TidyHistogramMetaOptions = exports.TidyHistogramBucketType = exports.TidyHistogramBucketFormat = void 0;
4
+ const PublicTidyTableTypes_1 = require("./PublicTidyTableTypes");
5
+ var TidyHistogramBucketFormat;
6
+ (function (TidyHistogramBucketFormat) {
7
+ TidyHistogramBucketFormat["INTERVAL"] = "interval";
8
+ TidyHistogramBucketFormat["MATH_INTERVAL"] = "mathInterval";
9
+ TidyHistogramBucketFormat["MATH_INTERVAL_REVERSED"] = "mathIntervalReversed";
10
+ TidyHistogramBucketFormat["FROM_ONLY"] = "fromOnly";
11
+ TidyHistogramBucketFormat["TO_ONLY"] = "toOnly";
12
+ })(TidyHistogramBucketFormat = exports.TidyHistogramBucketFormat || (exports.TidyHistogramBucketFormat = {}));
13
+ var TidyHistogramBucketType;
14
+ (function (TidyHistogramBucketType) {
15
+ TidyHistogramBucketType["LEFT_CLOSED"] = "leftClosed";
16
+ TidyHistogramBucketType["RIGHT_CLOSED"] = "rightClosed";
17
+ })(TidyHistogramBucketType = exports.TidyHistogramBucketType || (exports.TidyHistogramBucketType = {}));
18
+ const TidyHistogramMetaOptions = (group, hideSort = false) => {
19
+ return {
20
+ 'binType': {
21
+ group,
22
+ fieldType: "option",
23
+ editorConf: {
24
+ allowDuplicate: true,
25
+ optionValues: ["automatic", "userDefined"],
26
+ optionName: "HistogramBinType"
27
+ },
28
+ defaultValue: "automatic"
29
+ },
30
+ 'numberOfBins': {
31
+ group,
32
+ fieldType: "number",
33
+ defaultValue: 10,
34
+ dependsOn: "binType",
35
+ dependsOnVisibility: dependsOnValue => dependsOnValue === "automatic"
36
+ },
37
+ 'customBins': {
38
+ group,
39
+ fieldType: "json",
40
+ defaultValue: '[{"to": 10},{"from":10,"to":100},{"from":100}]',
41
+ dependsOn: "binType",
42
+ dependsOnVisibility: dependsOnValue => dependsOnValue === "userDefined"
43
+ },
44
+ 'sortBins': {
45
+ group,
46
+ fieldType: "option",
47
+ editorConf: {
48
+ optionValues: Object.values(PublicTidyTableTypes_1.SortingType),
49
+ optionName: "SortingType",
50
+ },
51
+ defaultValue: PublicTidyTableTypes_1.SortingType.ASCENDING,
52
+ visibility: !hideSort
53
+ },
54
+ 'bucketFormat': {
55
+ group,
56
+ fieldType: "option",
57
+ defaultValue: TidyHistogramBucketFormat.INTERVAL,
58
+ editorConf: {
59
+ optionValues: Object.values(TidyHistogramBucketFormat),
60
+ optionName: "TidyHistogramBucketFormat"
61
+ }
62
+ },
63
+ "intervalType": {
64
+ group,
65
+ fieldType: 'option',
66
+ defaultValue: TidyHistogramBucketType.RIGHT_CLOSED,
67
+ editorConf: {
68
+ optionValues: Object.values(TidyHistogramBucketType),
69
+ optionName: "TidyHistogramBucketType"
70
+ }
71
+ }
72
+ };
73
+ };
74
+ exports.TidyHistogramMetaOptions = TidyHistogramMetaOptions;
75
+ exports.TidyHistogramBucketColName = "bucket";
76
+ exports.TidyHistogramCountColName = "count";
77
+ //# sourceMappingURL=PublicTidyHistogram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublicTidyHistogram.js","sourceRoot":"","sources":["../src/PublicTidyHistogram.ts"],"names":[],"mappings":";;;AAAA,iEAAmD;AAGnD,IAAY,yBAMX;AAND,WAAY,yBAAyB;IACjC,kDAAqB,CAAA;IACrB,2DAA8B,CAAA;IAC9B,4EAA+C,CAAA;IAC/C,mDAAsB,CAAA;IACtB,+CAAkB,CAAA;AACtB,CAAC,EANW,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QAMpC;AAED,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IAC/B,qDAA0B,CAAA;IAC1B,uDAA4B,CAAA;AAChC,CAAC,EAHW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAGlC;AAWM,MAAM,wBAAwB,GAAG,CAAC,KAAc,EAAE,QAAQ,GAAG,KAAK,EAAoC,EAAE;IAC3G,OAAO;QACH,SAAS,EAAE;YACP,KAAK;YACL,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE;gBACR,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;gBAC1C,UAAU,EAAE,kBAAkB;aACjC;YACD,YAAY,EAAE,WAAW;SAC5B;QACD,cAAc,EAAE;YACZ,KAAK;YACL,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,SAAS;YACpB,mBAAmB,EAAE,cAAc,CAAC,EAAE,CAAC,cAAc,KAAK,WAAW;SACxE;QACD,YAAY,EAAE;YACV,KAAK;YACL,SAAS,EAAE,MAAM;YACjB,YAAY,EAAE,gDAAgD;YAC9D,SAAS,EAAE,SAAS;YACpB,mBAAmB,EAAE,cAAc,CAAC,EAAE,CAAC,cAAc,KAAK,aAAa;SAC1E;QACD,UAAU,EAAE;YACR,KAAK;YACL,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE;gBACR,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,kCAAW,CAAC;gBACxC,UAAU,EAAE,aAAa;aAC5B;YACD,YAAY,EAAE,kCAAW,CAAC,SAAS;YACnC,UAAU,EAAE,CAAC,QAAQ;SACxB;QACD,cAAc,EAAE;YACZ,KAAK;YACL,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,yBAAyB,CAAC,QAAQ;YAChD,UAAU,EAAE;gBACR,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC;gBACtD,UAAU,EAAE,2BAA2B;aAC1C;SACJ;QACD,cAAc,EAAE;YACZ,KAAK;YACL,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,uBAAuB,CAAC,YAAY;YAClD,UAAU,EAAE;gBACR,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC;gBACpD,UAAU,EAAE,yBAAyB;aACxC;SACJ;KACJ,CAAA;AACL,CAAC,CAAA;AAvDY,QAAA,wBAAwB,4BAuDpC;AAEY,QAAA,0BAA0B,GAAG,QAAQ,CAAC;AACtC,QAAA,yBAAyB,GAAG,OAAO,CAAC"}
@@ -1,110 +1,114 @@
1
- import { ITidyBaseColumn, ITidyColumn, ITidyNumericColumn } from "./PublicTidyColumn";
2
- import { HistogramData } from "./PublicTidyTableTypes";
3
- export declare type RealValuedFunction = (x: number) => number;
4
- interface ITidyMath {
1
+ import { ITidyBaseColumnReadonly } from "./PublicTidyColumn";
2
+ import { HistogramData, HistogramOptions } from "./PublicTidyTableTypes";
3
+ export interface ITidyMath {
5
4
  /**
6
- * Mathematical functions, null is counted as zero in the sum.
5
+ * Sum of all values in the column.
7
6
  */
8
- sum(column: ITidyNumericColumn): number;
7
+ sum(column: ITidyBaseColumnReadonly<number | null>): number | null;
9
8
  /**
10
9
  * Get the extreme value of the column. Null values are skipped.
11
10
  * @param column
12
11
  * @returns the minimum value of the column. Returns undefined if the column has no values or if the column contains
13
12
  * a NaN-value.
14
13
  */
15
- min<T>(column: ITidyBaseColumn<T>): T | undefined;
14
+ min<T>(column: ITidyBaseColumnReadonly<T>): T | undefined;
16
15
  /**
17
16
  * Get the extreme value of the column. Null values are skipped.
18
17
  * @param column
19
18
  * @returns the maximum value of the column. Returns undefined if the column has no values or if the column contains
20
19
  * a NaN-value.
21
20
  */
22
- max<T>(column: ITidyBaseColumn<T>): T | undefined;
21
+ max<T>(column: ITidyBaseColumnReadonly<T>): T | undefined;
22
+ /**
23
+ * Get the maximum of the absolute values of the column.
24
+ * @param column
25
+ * @returns If x_1, x_2, ..., x_n are the columns values, then it returns max(|x_1|, ..., |x_n|). Null values are
26
+ * skipped.
27
+ */
28
+ absoluteMax(column: ITidyBaseColumnReadonly<number | null>): number | undefined;
23
29
  /**
24
30
  * Sum all values matching the lowest depth level of axis column
25
31
  */
26
- sumOnRoot(column: ITidyNumericColumn, tree: ITidyColumn): number;
32
+ sumOnRoot(column: ITidyBaseColumnReadonly<number | null>, tree: ITidyBaseColumnReadonly<any>): number;
27
33
  /**
28
34
  * Estimate the population mean of the column, skipping null values.
29
35
  *
30
36
  * @returns the mean of the numeric column. Returns undefined if the column has no values or if the column contains
31
37
  * a NaN-value.
32
38
  */
33
- mean(column: ITidyNumericColumn): number | undefined;
39
+ mean(column: ITidyBaseColumnReadonly<number | null>): number | undefined;
34
40
  /**
35
41
  * Estimate the population variance of the column. Null values are skipped.
36
42
  * @param column
37
43
  * @returns the variance of the column. Returns undefined if the column has no values or if the column contains a
38
44
  * NaN-value.
39
45
  */
40
- variance(column: ITidyNumericColumn): number | undefined;
46
+ variance(column: ITidyBaseColumnReadonly<number | null>): number | undefined;
47
+ /**
48
+ * Estimate the population standard deviation of the column. Null values are skipped.
49
+ * @param column
50
+ * @returns the standard deviation of the column. Returns undefined if the column has no values or if the column
51
+ * contains a NaN-value.
52
+ */
53
+ standardDeviation(column: ITidyBaseColumnReadonly<number | null>): number | undefined;
41
54
  /**
42
55
  * Return the number of non-null values in the column.
43
56
  */
44
- count(column: ITidyColumn): number;
57
+ count(column: ITidyBaseColumnReadonly<any>): number;
45
58
  /**
46
59
  * Calculate the median of the column. Null-values are ignored.
47
60
  * @param column
48
61
  * @returns the median of the numeric column. Returns undefined if the column has no values or if the column contains
49
62
  * a NaN-value.
50
63
  */
51
- median(column: ITidyNumericColumn): number | undefined;
64
+ median(column: ITidyBaseColumnReadonly<number | null>): number | undefined;
52
65
  /**
53
66
  * Creates a histogram data object from the column.
54
67
  * @param column
55
- * @param numberOfBins the maximum number of bins.
68
+ * @param options see HistogramOptions
69
+ *
70
+ * @Returns an array of histogram buckets
56
71
  */
57
- hist(column: ITidyNumericColumn, numberOfBins?: number): HistogramData[];
58
- ols(column: ITidyNumericColumn): RealValuedFunction | undefined;
72
+ hist(column: ITidyBaseColumnReadonly<number | null>, options: Partial<HistogramOptions>): HistogramData[];
73
+ /**
74
+ * Return a regression model with one predictor: y = a0 + a1*x + error
75
+ * @param y column x
76
+ * @param x column y
77
+ */
78
+ ols(y: ITidyBaseColumnReadonly<number | null>, x: ITidyBaseColumnReadonly<number | null>): ((x: number) => number) | undefined;
59
79
  /**
60
80
  * Calculate the percentage w.r.t. the total of the column.
61
81
  * @param column
62
82
  * @param idx row index of the cell to calculate the percentage of.
63
83
  */
64
- percent(column: ITidyNumericColumn, idx: number): number | undefined;
84
+ percent(column: ITidyBaseColumnReadonly<number | null>, idx: number): number | undefined;
65
85
  /**
66
86
  * Count the values in the column. For example: [a, b, b] -> {a: 1, b: 2}.
67
87
  */
68
- valueCounts<T>(column: ITidyBaseColumn<T>): Map<T, number>;
88
+ valueCounts<T>(column: ITidyBaseColumnReadonly<T>): Map<T, number>;
69
89
  /**
70
- * Scale a numeric column so that its values are on [-1, 1].
71
- * For each value x, return x / max(|x_1|, ..., |x_n|).
90
+ * Normalize a numeric column so that its values are on [0, 1].
91
+ * For each value x, return (x - x_min) / (x_max - x_min).
72
92
  *
73
93
  * @returns undefined if one of the values in the scalar could not be calculated.
74
94
  */
75
- scaleMaxAbsolute(column: ITidyNumericColumn): RealValuedFunction | undefined;
95
+ scaleNormalize(column: ITidyBaseColumnReadonly<number | null> | undefined, idx: number, min: number | undefined, max: number | undefined, val: number | undefined): number | undefined;
76
96
  /**
77
- * Normalize a numeric column so that its values are on [0, 1].
78
- * For each value x, return (x - x_min) / (x_max - x_min).
97
+ * Scale a numeric column so that its values are on [-1, 1].
98
+ * For each value x, return x / max(|x_1|, ..., |x_n|).
79
99
  *
80
100
  * @returns undefined if one of the values in the scalar could not be calculated.
81
101
  */
82
- scaleNormalize(column: ITidyNumericColumn): RealValuedFunction | undefined;
102
+ scaleMaxAbsolute(column: ITidyBaseColumnReadonly<number | null>, idx: number): number | undefined;
83
103
  /**
84
104
  * Standardize the column.
85
105
  * For each value x, return (x - x_mean) / x_stdev.
86
106
  *
87
107
  * @returns undefined if one of the values in the scalar could not be calculated.
88
108
  */
89
- scaleStandardize(column: ITidyNumericColumn): RealValuedFunction | undefined;
90
- }
91
- declare class TidyMathImpl implements ITidyMath {
92
- percent(column: ITidyNumericColumn, idx: number): number | undefined;
93
- scaleMaxAbsolute(column: ITidyNumericColumn): RealValuedFunction | undefined;
94
- scaleNormalize_(column: ITidyNumericColumn, idx: number, min: number | undefined, max: number | undefined, val: number | undefined): number | undefined;
95
- scaleNormalize(column: ITidyNumericColumn): RealValuedFunction | undefined;
96
- scaleStandardize(column: ITidyNumericColumn): RealValuedFunction | undefined;
97
- variance(column: ITidyNumericColumn): number | undefined;
98
- sum(column: ITidyNumericColumn): number;
99
- min<T>(column: ITidyBaseColumn<T>): T | undefined;
100
- max<T>(column: ITidyBaseColumn<T>): T | undefined;
101
- sumOnRoot(column: ITidyNumericColumn, tree: ITidyBaseColumn<any>): number;
102
- count(column: ITidyColumn): number;
103
- mean(column: ITidyNumericColumn): number | undefined;
104
- median(column: ITidyNumericColumn): number | undefined;
105
- hist(column: ITidyNumericColumn, numberOfBins?: number): HistogramData[];
106
- ols(column: ITidyNumericColumn): RealValuedFunction | undefined;
107
- valueCounts<T>(column: ITidyBaseColumn<T>): Map<T, number>;
109
+ scaleStandardize(column: ITidyBaseColumnReadonly<number | null>, idx: number): number | undefined;
110
+ /**
111
+ * Returns the covariance between two columns. Nulls are interpreted as zeros.
112
+ */
113
+ covariance(x: ITidyBaseColumnReadonly<number | null>, y: ITidyBaseColumnReadonly<number | null>): number | undefined;
108
114
  }
109
- export declare const TidyMath: TidyMathImpl;
110
- export {};
@@ -1,283 +1,3 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
2
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.TidyMath = void 0;
10
- class TidyMathImpl {
11
- percent(column, idx) {
12
- const value = column.getValue(idx);
13
- if (value != null) {
14
- return value / this.sum(column);
15
- }
16
- return undefined;
17
- }
18
- scaleMaxAbsolute(column) {
19
- let max = 0;
20
- for (let i = 0; i < column.length(); i++) {
21
- const val = column.getValue(i);
22
- if (val != null) {
23
- if (isNaN(val))
24
- return undefined;
25
- const v = Math.abs(val);
26
- if (v > max)
27
- max = v;
28
- }
29
- }
30
- return (x) => x / max;
31
- }
32
- scaleNormalize_(column, idx, min, max, val) {
33
- var _a, _b, _c;
34
- if (min == null) {
35
- min = (_a = exports.TidyMath.min(column)) !== null && _a !== void 0 ? _a : undefined;
36
- }
37
- if (max == null) {
38
- max = (_b = exports.TidyMath.max(column)) !== null && _b !== void 0 ? _b : undefined;
39
- }
40
- if (val == null) {
41
- val = (_c = column.getValue(idx)) !== null && _c !== void 0 ? _c : undefined;
42
- }
43
- if (min == null || max == null || val == null) {
44
- return undefined;
45
- }
46
- if (min === max) {
47
- return 1;
48
- }
49
- return (val - min) / (max - min);
50
- }
51
- scaleNormalize(column) {
52
- const max = this.max(column);
53
- const min = this.min(column);
54
- if (min == null || max == null) {
55
- return undefined;
56
- }
57
- const range = max - min;
58
- return (x) => (x - min) / range;
59
- }
60
- scaleStandardize(column) {
61
- const mean = this.mean(column);
62
- const variance = this.variance(column);
63
- if (variance == null || mean == null) {
64
- return undefined;
65
- }
66
- const stdev = Math.sqrt(variance);
67
- return (x) => (x - mean) / stdev;
68
- }
69
- variance(column) {
70
- const count = this.count(column);
71
- const columnMean = this.mean(column);
72
- if (columnMean == null) {
73
- return undefined;
74
- }
75
- let sum_errors_squared = 0;
76
- for (let i = 0; i < column.length(); i++) {
77
- const value = column.getValue(i);
78
- if (value != null) {
79
- sum_errors_squared += Math.pow((value - columnMean), 2);
80
- }
81
- }
82
- const dof = count - 1;
83
- if (dof === 0)
84
- return undefined;
85
- return sum_errors_squared / dof;
86
- }
87
- sum(column) {
88
- var _a;
89
- if (column.length() === 0) {
90
- return 0; // https://en.wikipedia.org/wiki/Empty_sum
91
- }
92
- return (_a = column.getValues().reduce((a, b) => (a !== null && a !== void 0 ? a : 0) + (b !== null && b !== void 0 ? b : 0))) !== null && _a !== void 0 ? _a : 0;
93
- }
94
- min(column) {
95
- let result = undefined;
96
- for (let i = 0; i < column.length(); i++) {
97
- const value = column.getValue(i);
98
- if (typeof value === "number" && isNaN(value)) {
99
- return undefined;
100
- }
101
- if (value == null) {
102
- continue;
103
- }
104
- if (result === undefined) {
105
- result = value;
106
- }
107
- else if (column.compare(value, result) < 0) {
108
- result = value;
109
- }
110
- }
111
- return result;
112
- }
113
- max(column) {
114
- let result = undefined;
115
- for (let i = 0; i < column.length(); i++) {
116
- const value = column.getValue(i);
117
- if (typeof value === "number" && isNaN(value)) {
118
- return undefined;
119
- }
120
- if (value == null) {
121
- continue;
122
- }
123
- if (result === undefined) {
124
- result = value;
125
- }
126
- else if (column.compare(value, result) > 0) {
127
- result = value;
128
- }
129
- }
130
- return result;
131
- }
132
- sumOnRoot(column, tree) {
133
- var _a;
134
- if (tree.isHierarchy() && tree.length()) {
135
- let sum = 0;
136
- const N = column.length();
137
- for (let i = 0; i < N; i++) {
138
- const cLevel = tree.getLevelDepth(i) || 0;
139
- if (cLevel <= 0) {
140
- sum += (_a = column.getValue(i)) !== null && _a !== void 0 ? _a : 0;
141
- }
142
- }
143
- return sum;
144
- }
145
- else {
146
- return this.sum(column);
147
- }
148
- }
149
- count(column) {
150
- let count = 0;
151
- column.getValues().forEach(v => v != null && count++);
152
- return count;
153
- }
154
- mean(column) {
155
- const count = this.count(column);
156
- if (count !== 0) {
157
- const sum = this.sum(column);
158
- if (sum != null && !isNaN(sum)) {
159
- return sum / count;
160
- }
161
- }
162
- return undefined;
163
- }
164
- median(column) {
165
- const values = [];
166
- for (const v of column.getValues()) {
167
- if (v != null) {
168
- if (isNaN(v))
169
- return undefined;
170
- values.push(v);
171
- }
172
- }
173
- if (values.length === 0) {
174
- return undefined;
175
- }
176
- if (values.length === 1) {
177
- return values[0];
178
- }
179
- values.sort();
180
- const half = Math.floor(values.length / 2);
181
- if (values.length % 2)
182
- return values[half];
183
- return (values[half - 1] + values[half]) / 2.0;
184
- }
185
- hist(column, numberOfBins = 10) {
186
- const valueMin = this.min(column);
187
- const valueMax = this.max(column);
188
- if (numberOfBins <= 0 || column.length() === 0 || valueMin == null || valueMax == null) {
189
- return [];
190
- }
191
- const valueRange = valueMax - valueMin;
192
- if (valueRange === 0) {
193
- return [{
194
- from: valueMin,
195
- to: valueMax,
196
- count: column.length()
197
- }];
198
- }
199
- const valueStep = valueRange / numberOfBins;
200
- const binData = new Array(numberOfBins);
201
- for (let b = 0; b < numberOfBins; b++) {
202
- binData[b] = {
203
- from: valueMin + valueStep * b,
204
- to: valueMin + valueStep * (b + 1),
205
- count: 0
206
- };
207
- }
208
- column.getValues().forEach(value => {
209
- if (value != null) {
210
- const b = Math.floor((value - valueMin) / valueRange * (numberOfBins - 1));
211
- binData[b].count++;
212
- }
213
- });
214
- return binData;
215
- }
216
- ols(column) {
217
- const values = [];
218
- column.getValues().forEach(v => v && values.push(v));
219
- const data = values.map((value, index) => [index, value]);
220
- if (data.length < 2) {
221
- return undefined;
222
- }
223
- const sum_y = data.reduce((a, b) => a + b[1], 0);
224
- const sum_x = data.reduce((a, b) => a + b[0], 0);
225
- const sum_x_squared = data.reduce((a, b) => a + b[0] * b[0], 0);
226
- const variance_x = sum_x_squared - sum_x * sum_x / data.length;
227
- const cov = data.reduce((a, b) => a + b[0] * b[1], 0) - sum_x * sum_y / data.length;
228
- const b = cov / variance_x;
229
- const a = sum_y / data.length - b * sum_x / data.length;
230
- if (isNaN(b) || isNaN(a)) {
231
- return undefined;
232
- }
233
- return (x) => {
234
- return a + b * x;
235
- };
236
- }
237
- valueCounts(column) {
238
- const counts = new Map();
239
- column.getValues().forEach(value => {
240
- var _a;
241
- counts.set(value, ((_a = counts.get(value)) !== null && _a !== void 0 ? _a : 0) + 1);
242
- });
243
- return counts;
244
- }
245
- }
246
- __decorate([
247
- cached
248
- ], TidyMathImpl.prototype, "variance", null);
249
- __decorate([
250
- cached
251
- ], TidyMathImpl.prototype, "sum", null);
252
- __decorate([
253
- cached
254
- ], TidyMathImpl.prototype, "min", null);
255
- __decorate([
256
- cached
257
- ], TidyMathImpl.prototype, "max", null);
258
- __decorate([
259
- cached
260
- ], TidyMathImpl.prototype, "count", null);
261
- __decorate([
262
- cached
263
- ], TidyMathImpl.prototype, "mean", null);
264
- __decorate([
265
- cached
266
- ], TidyMathImpl.prototype, "median", null);
267
- /**
268
- * Cache the result of the function in the column. Note, the function should have one argument which is the column.
269
- */
270
- function cached(target, propertyName, descriptor) {
271
- const originalMethod = descriptor.value;
272
- descriptor.value = function (column) {
273
- const cachedValue = column.getCachedValue(propertyName);
274
- if (cachedValue != null) {
275
- return cachedValue;
276
- }
277
- const returnValue = originalMethod === null || originalMethod === void 0 ? void 0 : originalMethod.apply(this, [column]);
278
- column.setCachedValue(propertyName, returnValue);
279
- return returnValue;
280
- };
281
- }
282
- exports.TidyMath = new TidyMathImpl();
283
3
  //# sourceMappingURL=PublicTidyMath.js.map