@ic3/reporting-api 8.0.1 → 8.2.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 (91) hide show
  1. package/dist/ApiUtils.js +1 -1
  2. package/dist/IOnNewEventJsContext.d.ts +66 -0
  3. package/dist/{theme/ThemeReportAppMenu.js → IOnNewEventJsContext.js} +1 -1
  4. package/dist/IOnNewEventJsContext.js.map +1 -0
  5. package/dist/IReporting.d.ts +9 -3
  6. package/dist/IThemeManager.d.ts +0 -2
  7. package/dist/LazyTreeView.d.ts +0 -23
  8. package/dist/LazyTreeView.js +0 -13
  9. package/dist/LazyTreeView.js.map +1 -1
  10. package/dist/Loader.d.ts +70 -1
  11. package/dist/Loader.js +150 -1
  12. package/dist/Loader.js.map +1 -1
  13. package/dist/PublicAmchartsData.d.ts +60 -0
  14. package/dist/PublicAmchartsData.js +122 -0
  15. package/dist/PublicAmchartsData.js.map +1 -0
  16. package/dist/PublicContext.d.ts +40 -3
  17. package/dist/PublicLayout.d.ts +5 -1
  18. package/dist/PublicTemplate.d.ts +39 -15
  19. package/dist/PublicTemplate.js.map +1 -1
  20. package/dist/PublicTemplateForm.d.ts +45 -57
  21. package/dist/PublicTemplateForm.js +10 -1
  22. package/dist/PublicTemplateForm.js.map +1 -1
  23. package/dist/PublicTheme.d.ts +155 -15
  24. package/dist/PublicTheme.js.map +1 -1
  25. package/dist/PublicTidyColumn.d.ts +69 -23
  26. package/dist/PublicTidyColumn.js +8 -0
  27. package/dist/PublicTidyColumn.js.map +1 -1
  28. package/dist/PublicTidyHistogram.d.ts +1 -1
  29. package/dist/PublicTidyMath.d.ts +26 -20
  30. package/dist/PublicTidyTable.d.ts +12 -5
  31. package/dist/PublicTidyTableInteractions.d.ts +76 -22
  32. package/dist/PublicTidyTableTypeGuards.d.ts +4 -0
  33. package/dist/PublicTidyTableTypeGuards.js +16 -0
  34. package/dist/PublicTidyTableTypeGuards.js.map +1 -0
  35. package/dist/PublicTidyTableTypes.d.ts +98 -16
  36. package/dist/PublicTidyTableTypes.js +1 -1
  37. package/dist/PublicTidyTableTypes.js.map +1 -1
  38. package/dist/PublicTidyTree.d.ts +10 -13
  39. package/dist/PublicTidyTree.js +11 -8
  40. package/dist/PublicTidyTree.js.map +1 -1
  41. package/dist/index.d.ts +3 -1
  42. package/dist/index.js +3 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/theme/ThemeAmCharts4.d.ts +25 -6
  45. package/dist/theme/ThemeApp.d.ts +26 -11
  46. package/dist/theme/ThemeApp.js +23 -12
  47. package/dist/theme/ThemeApp.js.map +1 -1
  48. package/dist/theme/ThemeAppMenuIcon.d.ts +7 -0
  49. package/dist/theme/ThemeAppMenuIcon.js +8 -0
  50. package/dist/theme/ThemeAppMenuIcon.js.map +1 -0
  51. package/dist/theme/ThemeDatePicker.d.ts +7 -0
  52. package/dist/theme/ThemeDatePicker.js +8 -0
  53. package/dist/theme/ThemeDatePicker.js.map +1 -1
  54. package/dist/theme/ThemeEditorTopBar.d.ts +31 -0
  55. package/dist/theme/ThemeEditorTopBar.js +35 -0
  56. package/dist/theme/ThemeEditorTopBar.js.map +1 -0
  57. package/dist/theme/ThemeEmbeddedReport.d.ts +3 -0
  58. package/dist/theme/ThemeFilterAutocomplete.d.ts +1 -0
  59. package/dist/theme/ThemeFilterAutocomplete.js +1 -0
  60. package/dist/theme/ThemeFilterAutocomplete.js.map +1 -1
  61. package/dist/theme/ThemeFilterButtons.d.ts +1 -1
  62. package/dist/theme/ThemeFilterButtons.js +1 -1
  63. package/dist/theme/ThemeFilterButtons.js.map +1 -1
  64. package/dist/theme/ThemeFilterPanel.d.ts +80 -9
  65. package/dist/theme/ThemeFilterPanel.js +45 -3
  66. package/dist/theme/ThemeFilterPanel.js.map +1 -1
  67. package/dist/theme/ThemeFilterTree.d.ts +4 -3
  68. package/dist/theme/ThemeFilterTree.js +2 -1
  69. package/dist/theme/ThemeFilterTree.js.map +1 -1
  70. package/dist/theme/ThemeGlobal.d.ts +4 -0
  71. package/dist/theme/ThemeGlobal.js +9 -0
  72. package/dist/theme/ThemeGlobal.js.map +1 -0
  73. package/dist/theme/ThemeKpiCard.d.ts +41 -5
  74. package/dist/theme/ThemeKpiCard.js +15 -0
  75. package/dist/theme/ThemeKpiCard.js.map +1 -1
  76. package/dist/theme/ThemeLazyTreeClasses.d.ts +14 -0
  77. package/dist/theme/ThemeLazyTreeClasses.js +19 -0
  78. package/dist/theme/ThemeLazyTreeClasses.js.map +1 -0
  79. package/dist/theme/ThemePivotTable.d.ts +0 -5
  80. package/dist/theme/ThemePivotTable.js.map +1 -1
  81. package/dist/theme/ThemeQueryBuilderNode.d.ts +8 -0
  82. package/dist/theme/ThemeQueryBuilderNode.js +8 -0
  83. package/dist/theme/ThemeQueryBuilderNode.js.map +1 -0
  84. package/dist/theme/ThemeTable.d.ts +0 -14
  85. package/dist/theme/ThemeTable.js.map +1 -1
  86. package/dist/theme/ThemeWidgetBox.d.ts +8 -0
  87. package/dist/theme/ThemeWidgetBox.js +24 -16
  88. package/dist/theme/ThemeWidgetBox.js.map +1 -1
  89. package/package.json +5 -5
  90. package/dist/theme/ThemeReportAppMenu.d.ts +0 -18
  91. package/dist/theme/ThemeReportAppMenu.js.map +0 -1
package/dist/ApiUtils.js CHANGED
@@ -8,7 +8,7 @@ const ReportingVersion_1 = __importDefault(require("./ReportingVersion"));
8
8
  class ApiUtils {
9
9
  static makePlugin(definition) {
10
10
  return () => {
11
- return Object.assign({ apiVersion: new ReportingVersion_1.default("8.0.1" || "-", "Fri, 22 Apr 2022 04:03:44 GMT" || "-") }, definition);
11
+ return Object.assign({ apiVersion: new ReportingVersion_1.default("8.2.0" || "-", "Thu, 14 Jul 2022 12:18:27 GMT" || "-") }, definition);
12
12
  };
13
13
  }
14
14
  /**
@@ -0,0 +1,66 @@
1
+ import { PublicIcEvent } from "./IcEvent";
2
+ export interface IEventPayLoad {
3
+ nsId: string;
4
+ widgetId: string;
5
+ eventName: string;
6
+ event: PublicIcEvent | null | undefined;
7
+ }
8
+ export interface IOnNewEventJsContext {
9
+ /**
10
+ * A context cache that persist over calls.
11
+ */
12
+ getCache(): Map<string, any>;
13
+ /**
14
+ * Report user name.
15
+ */
16
+ getUserName(): string;
17
+ /**
18
+ * Report tenant, if any.
19
+ */
20
+ getTenant(): string | undefined;
21
+ /**
22
+ * Reporting version.
23
+ */
24
+ getReportingVersion(): string;
25
+ /**
26
+ * Returns true if the event is empty.
27
+ */
28
+ isEmptyEvent(event: IEventPayLoad): boolean;
29
+ /**
30
+ * The name of the event/channel.
31
+ */
32
+ getEventName(event: IEventPayLoad): string;
33
+ /**
34
+ * The caption of the event (i.e. 'United Kingdom').
35
+ */
36
+ getEventCaption(event: IEventPayLoad): string | undefined;
37
+ /**
38
+ * The MDX of the event (i.e. [Geography].[Country].&[UK]).
39
+ */
40
+ getEventMdx(event: IEventPayLoad): string | undefined;
41
+ /**
42
+ * The widgetId from the widget the event was generated, if available.
43
+ */
44
+ getEventWidgetId(event: IEventPayLoad): string | undefined;
45
+ /**
46
+ * Returns the widget jQuery object
47
+ *
48
+ * Using JQuery might conflit with React's state.
49
+ * Use with care as you will modify the DOM directly.
50
+ */
51
+ getWidget$(widgetId: string): any;
52
+ /**
53
+ * Returns the widget header jQuery object.
54
+ *
55
+ * Using JQuery might conflit with React's state.
56
+ * Use with care as you will modify the DOM directly.
57
+ */
58
+ getWidgetHeader$(widgetId: string): any;
59
+ /**
60
+ * Returns the widget header jQuery object (you can user text() to modify the header's title.
61
+ *
62
+ * Using JQuery might conflit with React's state.
63
+ * Use with care as you will modify the DOM directly.
64
+ */
65
+ getWidgetHeaderTitle$(widgetId: string): any;
66
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=ThemeReportAppMenu.js.map
3
+ //# sourceMappingURL=IOnNewEventJsContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IOnNewEventJsContext.js","sourceRoot":"","sources":["../src/IOnNewEventJsContext.ts"],"names":[],"mappings":""}
@@ -34,6 +34,12 @@ export interface IOpenReportOptions {
34
34
  * Full path of the report (e.g., shared:/marc/my-report).
35
35
  */
36
36
  path: string;
37
+ /**
38
+ * When opening a report in viewer mode (i.e., /viewer URL) icCube is checking that the default schema
39
+ * is being authorized and generates an error. When opening a report from a host application and changing
40
+ * the default schema on the fly, you might want to disable that check.
41
+ */
42
+ disableDefaultSchemaAuthCheck?: boolean;
37
43
  /**
38
44
  * Optional JSON object (i.e., constant / filter default value).
39
45
  */
@@ -71,9 +77,9 @@ export interface IOpenReportAppOptions {
71
77
  export interface IReporting {
72
78
  getVersion(): ReportingVersion;
73
79
  /**
74
- * @param options path, ...
75
- * @param pushToHistory defaulted to true
76
- * @param keepGlobalFilter defaulted to false
80
+ * @param options path, ...
81
+ * @param pushToHistory defaulted to true
82
+ * @param keepGlobalFilter defaulted to true. Apply the global filter to the newly opened report.
77
83
  *
78
84
  * @see IOpenReportOptions#onDefinition
79
85
  */
@@ -49,10 +49,8 @@ export declare type IThemeWidgetVariant = {
49
49
  };
50
50
  export interface IThemeManager {
51
51
  /**
52
- *
53
52
  * The theme decorator allows to setup the Theme.components and Theme.ic3 using the theme
54
53
  * created from its partial options (e.g., using palette, typography, spacing, etc...)
55
- *
56
54
  */
57
55
  registerTheme(themeOptions: any, themeDecorator?: (theme: any) => ic3Components, baseTheme?: EmbeddedThemeNames): void;
58
56
  }
@@ -24,29 +24,6 @@ export interface LazyTreeItemClasses {
24
24
  /** Styles applied to the label element. */
25
25
  label: string;
26
26
  }
27
- export interface LazyTreeClasses {
28
- /** Styles applied to the search toolbar element */
29
- toolbar: string;
30
- /** Styles applied to the search search input element */
31
- input: string;
32
- /** Styles applied to the select filter button (on) */
33
- button: string;
34
- /** Styles applied to the select filter button (on) */
35
- buttonFilterSelectedOn: string;
36
- /** Styles applied to the select filter button (off) */
37
- buttonFilterSelectedOff: string;
38
- /** Styles applied to the TreeRoot element */
39
- treeRoot: string;
40
- }
41
- /**
42
- * Global classes
43
- */
44
- export interface Ic3GlobalClasses {
45
- singleSelection: string;
46
- multipleSelection: string;
47
- }
48
- export declare const ic3GlobalClasses: Ic3GlobalClasses;
49
- export declare const lazyTreeClasses: LazyTreeClasses;
50
27
  export interface ILazyTreeViewLoader {
51
28
  /**
52
29
  * This will build the tree with react children
@@ -1,16 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.lazyTreeClasses = exports.ic3GlobalClasses = void 0;
4
- exports.ic3GlobalClasses = {
5
- singleSelection: 'Ic3-SingleSelection',
6
- multipleSelection: 'Ic3-MultipleSelection',
7
- };
8
- exports.lazyTreeClasses = {
9
- toolbar: 'Ic3-LazyTreeView-toolbar',
10
- input: 'Ic3-LazyTreeView-toolbar-input',
11
- button: 'Ic3-LazyTreeView-toolbar-button',
12
- buttonFilterSelectedOn: 'Ic3-LazyTreeView-toolbar-buttonOn',
13
- buttonFilterSelectedOff: 'Ic3-LazyTreeView-toolbar-buttonOff',
14
- treeRoot: 'Ic3-LazyTreeView-treeRoot',
15
- };
16
3
  //# sourceMappingURL=LazyTreeView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LazyTreeView.js","sourceRoot":"","sources":["../src/LazyTreeView.ts"],"names":[],"mappings":";;;AA0Da,QAAA,gBAAgB,GAAqB;IAC9C,eAAe,EAAE,qBAAqB;IACtC,iBAAiB,EAAE,uBAAuB;CAC7C,CAAA;AAGY,QAAA,eAAe,GAAoB;IAC5C,OAAO,EAAE,0BAA0B;IACnC,KAAK,EAAE,gCAAgC;IACvC,MAAM,EAAE,iCAAiC;IACzC,sBAAsB,EAAE,mCAAmC;IAC3D,uBAAuB,EAAE,oCAAoC;IAC7D,QAAQ,EAAE,2BAA2B;CACxC,CAAA"}
1
+ {"version":3,"file":"LazyTreeView.js","sourceRoot":"","sources":["../src/LazyTreeView.ts"],"names":[],"mappings":""}
package/dist/Loader.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { IReporting } from "./IReporting";
2
- export declare type AppType = "console" | "viewer" | "editor" | "admin" | "appEditor";
2
+ export declare type AppType = "embedded-div-init" | "console" | "viewer" | "editor" | "admin" | "appEditor";
3
3
  export interface IDashboardsLoaderFrameParams {
4
4
  /**
5
5
  * An unique ID (DOM) that is identifying the icCube dashboards instance.
@@ -16,4 +16,73 @@ export interface IDashboardsLoaderFrameParams {
16
16
  onReady: (ic3: IReporting) => void;
17
17
  url: string;
18
18
  }
19
+ /**
20
+ * Support for embedding icCube via an iFrame.
21
+ */
19
22
  export declare function DashboardsLoaderFrame(params: IDashboardsLoaderFrameParams): void;
23
+ export interface IDashboardsLoaderDivParams {
24
+ /**
25
+ * identifier of the IReporting instance
26
+ */
27
+ uid: string;
28
+ /**
29
+ * the container to put icCube
30
+ */
31
+ container: string | HTMLElement;
32
+ /**
33
+ * an optional container where icCube will set the height to fit the current report
34
+ */
35
+ resizingContainer?: HTMLElement;
36
+ /**
37
+ * The type of application (default: 'viewer')
38
+ */
39
+ appType?: AppType;
40
+ }
41
+ /**
42
+ * Support for embedding icCube via a DIV.
43
+ *
44
+ * icCube uses Webpack: loading the entry point (i.e., main.js) will start loading all initial chunks.
45
+ *
46
+ * You can create this context ASAP. Actually can be done at any point in your app life time before
47
+ * any icCube rendering is required yet.
48
+ *
49
+ * Can be easily wrapped into a React context (see ic3-demo-embedded-react Github project).
50
+ */
51
+ export declare class DashboardsLoaderDivContext {
52
+ private static readonly crfCodeRE;
53
+ private static readonly mainJsCacheKeyRE;
54
+ private static readonly buildVersionRE;
55
+ private static readonly buildTimestampRE;
56
+ /**
57
+ * The URL path of the icCube index.html containing the Webpack main entry point (i.e., main.js).
58
+ */
59
+ private readonly indexHtmlUrl;
60
+ /**
61
+ * The URL path where icCube Webpack files are located:
62
+ *
63
+ * /icCube/report
64
+ * app -- public path
65
+ * index.html
66
+ * main.js
67
+ * chunks
68
+ * ...
69
+ * plugins -- e.g., amCharts
70
+ * ...
71
+ *
72
+ */
73
+ private readonly publicPath;
74
+ private readonly mainJsUrl;
75
+ private buildVersion;
76
+ private buildTimestamp;
77
+ private libLoader;
78
+ constructor(suffix?: string);
79
+ private static extractMatch;
80
+ private static loadScript;
81
+ getBuildVersion(): string;
82
+ getBuildTimestamp(): string;
83
+ loadLibsAndInitialize(options: IDashboardsLoaderDivParams): Promise<IReporting>;
84
+ /**
85
+ * First step load main.js, associated chunks
86
+ */
87
+ private loadLibs;
88
+ }
package/dist/Loader.js CHANGED
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DashboardsLoaderFrame = void 0;
3
+ exports.DashboardsLoaderDivContext = exports.DashboardsLoaderFrame = void 0;
4
+ /**
5
+ * Support for embedding icCube via an iFrame.
6
+ */
4
7
  function DashboardsLoaderFrame(params) {
5
8
  const { containerId, className, style, onReady, url } = params;
6
9
  const containerELT = document.getElementById(containerId);
@@ -38,4 +41,150 @@ function DashboardsLoaderFrame(params) {
38
41
  containerELT.appendChild(iFrame);
39
42
  }
40
43
  exports.DashboardsLoaderFrame = DashboardsLoaderFrame;
44
+ /**
45
+ * Support for embedding icCube via a DIV.
46
+ *
47
+ * icCube uses Webpack: loading the entry point (i.e., main.js) will start loading all initial chunks.
48
+ *
49
+ * You can create this context ASAP. Actually can be done at any point in your app life time before
50
+ * any icCube rendering is required yet.
51
+ *
52
+ * Can be easily wrapped into a React context (see ic3-demo-embedded-react Github project).
53
+ */
54
+ class DashboardsLoaderDivContext {
55
+ constructor(suffix) {
56
+ /**
57
+ * The URL path of the icCube index.html containing the Webpack main entry point (i.e., main.js).
58
+ */
59
+ this.indexHtmlUrl = "/icCube/report/console";
60
+ /**
61
+ * The URL path where icCube Webpack files are located:
62
+ *
63
+ * /icCube/report
64
+ * app -- public path
65
+ * index.html
66
+ * main.js
67
+ * chunks
68
+ * ...
69
+ * plugins -- e.g., amCharts
70
+ * ...
71
+ *
72
+ */
73
+ this.publicPath = "/icCube/report/app/";
74
+ this.buildVersion = "";
75
+ this.buildTimestamp = "";
76
+ !suffix && (suffix = "");
77
+ this.indexHtmlUrl += suffix;
78
+ this.mainJsUrl = this.publicPath + "main.js" + suffix;
79
+ // Start loading all required initial libraries (in the background).
80
+ this.libLoader = this.loadLibs();
81
+ }
82
+ static extractMatch(indexHtml, regExp, error) {
83
+ const match = indexHtml.match(regExp);
84
+ if (match == null || match.length !== 2) {
85
+ if (error != null)
86
+ throw new Error(error);
87
+ else
88
+ return "";
89
+ }
90
+ const token = match[1];
91
+ return token;
92
+ }
93
+ getBuildVersion() {
94
+ return this.buildVersion;
95
+ }
96
+ getBuildTimestamp() {
97
+ return this.buildTimestamp;
98
+ }
99
+ loadLibsAndInitialize(options) {
100
+ const { uid, container, appType, resizingContainer } = options;
101
+ const loader = this.loadLibs();
102
+ return loader.then((starter) => {
103
+ return new Promise((resolve, reject) => {
104
+ const start = performance.now();
105
+ starter(Object.assign(Object.assign({}, options), { uid, appType: appType !== null && appType !== void 0 ? appType : "viewer", container,
106
+ resizingContainer, callback: (reporting) => {
107
+ const timeDiff = Math.round(performance.now() - start);
108
+ console.log("[ic3-dashboards-context] loadLibsAndInitialize completed in " + timeDiff + " ms.");
109
+ resolve(reporting);
110
+ } }));
111
+ });
112
+ }).catch(reason => Promise.reject(reason));
113
+ }
114
+ /**
115
+ * First step load main.js, associated chunks
116
+ */
117
+ loadLibs() {
118
+ if (this.libLoader == null) {
119
+ const wnd = window;
120
+ const start = performance.now();
121
+ this.libLoader = fetch(this.indexHtmlUrl, { cache: 'no-cache' })
122
+ .then(response => {
123
+ if (!response.ok) {
124
+ throw new Error(response.status + ":" + response.statusText + " (" + response.url + ")");
125
+ }
126
+ return response.text();
127
+ }).then(indexHtml => {
128
+ // CSRF code
129
+ {
130
+ const token = DashboardsLoaderDivContext.extractMatch(indexHtml, DashboardsLoaderDivContext.crfCodeRE, "Internal Error (user not authenticated?)");
131
+ if (token.includes("ic3-CSRF-Token")) {
132
+ throw new Error("Internal Error (token not replaced in [" + this.indexHtmlUrl + "] )");
133
+ }
134
+ wnd['ic3_CSRF_token'] = token;
135
+ }
136
+ // Webpack entry point (main.js) cache busting key
137
+ let cacheKey = "";
138
+ if (!this.mainJsUrl.includes("?")) {
139
+ cacheKey = "?" + DashboardsLoaderDivContext.extractMatch(indexHtml, DashboardsLoaderDivContext.mainJsCacheKeyRE, "Internal Error (main.js version missing)");
140
+ }
141
+ // Build information
142
+ this.buildVersion = DashboardsLoaderDivContext.extractMatch(indexHtml, DashboardsLoaderDivContext.buildVersionRE);
143
+ this.buildTimestamp = DashboardsLoaderDivContext.extractMatch(indexHtml, DashboardsLoaderDivContext.buildTimestampRE);
144
+ const scriptUrl = this.mainJsUrl + cacheKey;
145
+ // Load Webpack entry point: main.js
146
+ console.log("[ic3-dashboards-context] start loading library [version:" + this.buildVersion + "] [build:" + this.buildTimestamp + "]");
147
+ wnd["__ic3__webpack_public_path__"] = this.publicPath;
148
+ wnd["__ic3_div_embedded__"] = true;
149
+ return DashboardsLoaderDivContext.loadScript(scriptUrl).catch(reason => Promise.reject("Error loading main.js script : " + scriptUrl));
150
+ }).then(() => {
151
+ console.log("[ic3-dashboards-context] main.js loaded in " + Math.round(performance.now() - start) + " ms");
152
+ let count = 0;
153
+ return new Promise((resolve, reject) => {
154
+ // Busy wait till icCube has loaded all initial Webpack chunks and initialized itself.
155
+ (function waitUtil() {
156
+ if (wnd["__ic3_div_embedded_starter__"] !== undefined) {
157
+ const timeDiff = Math.round(performance.now() - start);
158
+ console.log("[ic3-dashboards-context] scripts ready in " + timeDiff + " ms");
159
+ resolve(wnd["__ic3_div_embedded_starter__"]);
160
+ }
161
+ else {
162
+ if (count++ === 4) {
163
+ console.log("[ic3-dashboards-context] scripts : waiting for icCube initialized");
164
+ count = 0;
165
+ }
166
+ setTimeout(waitUtil, 250);
167
+ }
168
+ })();
169
+ });
170
+ }).catch(reason => { var _a; return Promise.reject((_a = reason.message) !== null && _a !== void 0 ? _a : reason); });
171
+ }
172
+ return this.libLoader;
173
+ }
174
+ }
175
+ exports.DashboardsLoaderDivContext = DashboardsLoaderDivContext;
176
+ DashboardsLoaderDivContext.crfCodeRE = /ic3_CSRF_token = "(.*)"/;
177
+ DashboardsLoaderDivContext.mainJsCacheKeyRE = /main\.js\?(.*)">/;
178
+ DashboardsLoaderDivContext.buildVersionRE = /ic3_build_version = "(.*)"/;
179
+ DashboardsLoaderDivContext.buildTimestampRE = /ic3_build_timestamp = "(.*)"/;
180
+ DashboardsLoaderDivContext.loadScript = (src) => {
181
+ return new Promise((resolve, reject) => {
182
+ const script = document.createElement('script');
183
+ script.type = 'text/javascript';
184
+ script.onload = resolve;
185
+ script.onerror = reject;
186
+ script.src = src;
187
+ document.head.append(script);
188
+ });
189
+ };
41
190
  //# sourceMappingURL=Loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Loader.js","sourceRoot":"","sources":["../src/Loader.ts"],"names":[],"mappings":";;;AAkCA,SAAgB,qBAAqB,CAAC,MAAoC;IAEtE,MAAM,EAAC,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAC,GAAG,MAAM,CAAC;IAE7D,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAE1D,IAAI,CAAC,YAAY,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,GAAG,WAAW,GAAG,GAAG,CAAC,CAAA;KAClF;IAED,OAAO,CAAC,GAAG,CAAC,oCAAoC,GAAG,GAAG,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,oCAAoC,GAAG,WAAW,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,oCAAoC,GAAG,OAAO,CAAC,CAAC;IAE5D,MAAM,GAAG,GAAI,MAAc,CAAC;IAE5B,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;IAEpC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,GAAe,EAAE,EAAE;QAE7C,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;QAEvD,OAAO,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAClC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAE5B,CAAC,CAAA;IAED,iEAAiE;IACjE,6CAA6C;IAE7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAEhD,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAE5C,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;IACtB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IAEvB,IAAI,KAAK,EAAE;QACP,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;YACzB,MAAM,CAAC,KAAa,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;SACrD;KACJ;SAAM;QACH,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;KACpC;IAED,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAChD,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,wBAAwB,GAAG,WAAW,CAAC;IAE/D,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEhC,OAAO,CAAC,GAAG,CAAC,oCAAoC,GAAG,GAAG,CAAC,CAAC;IAExD,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAErC,CAAC;AAtDD,sDAsDC"}
1
+ {"version":3,"file":"Loader.js","sourceRoot":"","sources":["../src/Loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { ITidyColorColumn, ITidyColumn, ITidyNumericColumn } from "./PublicTidyColumn";
2
+ import { ITidyTable } from "./PublicTidyTable";
3
+ import { GroupRowIndices, IAmCharts4Data } from "./PublicTidyTableTypes";
4
+ export declare enum ISeriesValuesType {
5
+ LINE = 0,
6
+ COLUMN = 1,
7
+ TREND = 2
8
+ }
9
+ export interface ISeriesValues {
10
+ type: ISeriesValuesType;
11
+ values: ITidyNumericColumn;
12
+ colors?: ITidyColorColumn;
13
+ }
14
+ /**
15
+ * Used for managing amcharts data in the Amcharts plugin. This class controls both the creation of the charts
16
+ * data and the creation of the series of that chart.
17
+ */
18
+ export declare class PublicAmchartsData {
19
+ private readonly onValues;
20
+ private readonly onAxis;
21
+ private readonly onLevel;
22
+ private readonly onGroup;
23
+ private readonly table;
24
+ constructor(table: ITidyTable, onValues: ISeriesValues[], onAxis: ITidyColumn, onGroup?: ITidyColumn, onLevel?: ITidyColumn);
25
+ /**
26
+ * Get the data for the chart.
27
+ */
28
+ getChartData(): IAmCharts4Data[];
29
+ /**
30
+ * Create, update and remove series in the chart.
31
+ * @param itemControl map keeping track of current series in the chart.
32
+ * @param create create a new series if it is not in itemControl.
33
+ * - seriesId: unique id of the series
34
+ * - groupKey: key for the group by (if defined). If not defined, use _
35
+ * - valueKey: series value datafield
36
+ * - fillKey: series fill datafield
37
+ * - sValue: the onValues part used
38
+ * @param update update a series.
39
+ * - seriesId: unique id of the series
40
+ * - groupKey: key for the group by (if defined). If not defined, use _
41
+ * - series: the charts series to update
42
+ * - sValue: the onValues part used
43
+ * - groupRows: row indices of the group. Length >= 1.
44
+ * @param remove remove the series.
45
+ * @param typeFilter if defined, only call create, update and remove for this type.
46
+ * @param firstGroupOnly only call the first group
47
+ */
48
+ updateSeries<T>(itemControl: Map<string, T>, create: (seriesId: string, groupKey: string, valueKey: string, fillKey: string, sValue: ISeriesValues) => T, update: (seriesId: string, groupKey: string, series: T, sValue: ISeriesValues, groupRows: GroupRowIndices) => void, remove: (item: T) => void, typeFilter?: ISeriesValuesType, firstGroupOnly?: boolean): void;
49
+ getAxis(): ITidyColumn;
50
+ getLevel(): ITidyColumn | undefined;
51
+ getGroup(): ITidyColumn | undefined;
52
+ /**
53
+ * Returns the first item in the onValues argument of the constructor.
54
+ */
55
+ getFirstValue(): ITidyNumericColumn;
56
+ /**
57
+ * Returns true if and only if there are multiple non-trend measures in the chart.
58
+ */
59
+ isMultiMeasure(): boolean;
60
+ }
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublicAmchartsData = exports.ISeriesValuesType = void 0;
4
+ const PublicTidyTableTypes_1 = require("./PublicTidyTableTypes");
5
+ var ISeriesValuesType;
6
+ (function (ISeriesValuesType) {
7
+ ISeriesValuesType[ISeriesValuesType["LINE"] = 0] = "LINE";
8
+ ISeriesValuesType[ISeriesValuesType["COLUMN"] = 1] = "COLUMN";
9
+ ISeriesValuesType[ISeriesValuesType["TREND"] = 2] = "TREND";
10
+ })(ISeriesValuesType = exports.ISeriesValuesType || (exports.ISeriesValuesType = {}));
11
+ /**
12
+ * Used for managing amcharts data in the Amcharts plugin. This class controls both the creation of the charts
13
+ * data and the creation of the series of that chart.
14
+ */
15
+ class PublicAmchartsData {
16
+ constructor(table, onValues, onAxis, onGroup, onLevel) {
17
+ this.onValues = onValues;
18
+ this.onAxis = onAxis;
19
+ this.onGroup = onGroup;
20
+ this.onLevel = onLevel;
21
+ this.table = table;
22
+ }
23
+ /**
24
+ * Get the data for the chart.
25
+ */
26
+ getChartData() {
27
+ const chartValues = {};
28
+ this.onValues.forEach((value, idx) => {
29
+ chartValues[String(idx) + "v"] = value.values;
30
+ if (value.colors) {
31
+ chartValues[String(idx) + "c"] = value.colors;
32
+ }
33
+ });
34
+ return this.table.toAmcharts4Data(this.onAxis, chartValues, this.onGroup, this.onLevel);
35
+ }
36
+ /**
37
+ * Create, update and remove series in the chart.
38
+ * @param itemControl map keeping track of current series in the chart.
39
+ * @param create create a new series if it is not in itemControl.
40
+ * - seriesId: unique id of the series
41
+ * - groupKey: key for the group by (if defined). If not defined, use _
42
+ * - valueKey: series value datafield
43
+ * - fillKey: series fill datafield
44
+ * - sValue: the onValues part used
45
+ * @param update update a series.
46
+ * - seriesId: unique id of the series
47
+ * - groupKey: key for the group by (if defined). If not defined, use _
48
+ * - series: the charts series to update
49
+ * - sValue: the onValues part used
50
+ * - groupRows: row indices of the group. Length >= 1.
51
+ * @param remove remove the series.
52
+ * @param typeFilter if defined, only call create, update and remove for this type.
53
+ * @param firstGroupOnly only call the first group
54
+ */
55
+ updateSeries(itemControl, create, update, remove, typeFilter, firstGroupOnly) {
56
+ const group = this.onGroup;
57
+ const updated = new Set();
58
+ const forEachSeries = (groupKey, groupIdx) => {
59
+ this.onValues.forEach((onValue, idx) => {
60
+ if (typeFilter != null && onValue.type !== typeFilter) {
61
+ return;
62
+ }
63
+ const seriesKey = groupKey + "." + String(idx);
64
+ let item = itemControl.get(seriesKey);
65
+ if (item == null) {
66
+ const newItem = create(seriesKey, groupKey, seriesKey + "v", seriesKey + "c", onValue);
67
+ itemControl.set(seriesKey, newItem);
68
+ item = newItem;
69
+ }
70
+ update(seriesKey, groupKey, item, onValue, groupIdx);
71
+ updated.add(seriesKey);
72
+ });
73
+ };
74
+ if (group != null) {
75
+ const index = group.groupBy(true);
76
+ if (firstGroupOnly) {
77
+ const groupIdx = index.values().next().value;
78
+ const groupKey = group.getUid(groupIdx[0]);
79
+ forEachSeries(groupKey, groupIdx);
80
+ }
81
+ else {
82
+ index.forEach(groupIdx => {
83
+ const groupKey = group.getUid(groupIdx[0]);
84
+ forEachSeries(groupKey, groupIdx);
85
+ });
86
+ }
87
+ }
88
+ else {
89
+ const groupKey = PublicTidyTableTypes_1.IAmcharts4DataKey.NULL;
90
+ forEachSeries(groupKey, [0]);
91
+ }
92
+ itemControl.forEach((item, key) => {
93
+ if (!updated.has(key)) {
94
+ itemControl.delete(key);
95
+ remove(item);
96
+ }
97
+ });
98
+ }
99
+ getAxis() {
100
+ return this.onAxis;
101
+ }
102
+ getLevel() {
103
+ return this.onLevel;
104
+ }
105
+ getGroup() {
106
+ return this.onGroup;
107
+ }
108
+ /**
109
+ * Returns the first item in the onValues argument of the constructor.
110
+ */
111
+ getFirstValue() {
112
+ return this.onValues[0].values;
113
+ }
114
+ /**
115
+ * Returns true if and only if there are multiple non-trend measures in the chart.
116
+ */
117
+ isMultiMeasure() {
118
+ return this.onValues.filter(i => i.type !== ISeriesValuesType.TREND).length > 1;
119
+ }
120
+ }
121
+ exports.PublicAmchartsData = PublicAmchartsData;
122
+ //# sourceMappingURL=PublicAmchartsData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublicAmchartsData.js","sourceRoot":"","sources":["../src/PublicAmchartsData.ts"],"names":[],"mappings":"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"}