@ic3/reporting-api 8.0.0-rc.4 → 8.1.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 (152) hide show
  1. package/dist/ApiUtils.d.ts +46 -8
  2. package/dist/ApiUtils.js +37 -21
  3. package/dist/ApiUtils.js.map +1 -1
  4. package/dist/INotification.d.ts +26 -6
  5. package/dist/IOnNewEventJsContext.d.ts +66 -0
  6. package/dist/{theme/ThemeGoogleMapMarker.js → IOnNewEventJsContext.js} +1 -1
  7. package/dist/IOnNewEventJsContext.js.map +1 -0
  8. package/dist/IPluginDefinition.d.ts +9 -0
  9. package/dist/IReporting.d.ts +15 -5
  10. package/dist/IThemeManager.d.ts +12 -13
  11. package/dist/IThemeManager.js.map +1 -1
  12. package/dist/ITypes.d.ts +22 -0
  13. package/dist/ITypes.js +28 -0
  14. package/dist/ITypes.js.map +1 -1
  15. package/dist/IWidgetManager.d.ts +5 -2
  16. package/dist/LazyTreeView.d.ts +6 -24
  17. package/dist/LazyTreeView.js +0 -13
  18. package/dist/LazyTreeView.js.map +1 -1
  19. package/dist/Loader.d.ts +78 -0
  20. package/dist/Loader.js +160 -3
  21. package/dist/Loader.js.map +1 -1
  22. package/dist/PublicAmchartsData.d.ts +62 -0
  23. package/dist/PublicAmchartsData.js +126 -0
  24. package/dist/PublicAmchartsData.js.map +1 -0
  25. package/dist/PublicContext.d.ts +40 -3
  26. package/dist/PublicLayout.d.ts +5 -1
  27. package/dist/PublicTemplate.d.ts +90 -36
  28. package/dist/PublicTemplate.js +1 -10
  29. package/dist/PublicTemplate.js.map +1 -1
  30. package/dist/PublicTemplateForm.d.ts +66 -8
  31. package/dist/PublicTemplateForm.js +1 -9
  32. package/dist/PublicTemplateForm.js.map +1 -1
  33. package/dist/PublicTemplates.d.ts +61 -0
  34. package/dist/{theme/ThemeReportAppMenu.js → PublicTemplates.js} +1 -1
  35. package/dist/PublicTemplates.js.map +1 -0
  36. package/dist/PublicTheme.d.ts +157 -16
  37. package/dist/PublicTheme.js.map +1 -1
  38. package/dist/PublicTidyColumn.d.ts +76 -21
  39. package/dist/PublicTidyColumn.js +8 -0
  40. package/dist/PublicTidyColumn.js.map +1 -1
  41. package/dist/PublicTidyHistogram.d.ts +39 -1
  42. package/dist/PublicTidyHistogram.js +6 -1
  43. package/dist/PublicTidyHistogram.js.map +1 -1
  44. package/dist/PublicTidyMath.d.ts +26 -20
  45. package/dist/PublicTidyTable.d.ts +44 -19
  46. package/dist/PublicTidyTableInteractions.d.ts +80 -17
  47. package/dist/PublicTidyTableTypes.d.ts +109 -19
  48. package/dist/PublicTidyTableTypes.js +18 -1
  49. package/dist/PublicTidyTableTypes.js.map +1 -1
  50. package/dist/PublicTidyTree.d.ts +19 -12
  51. package/dist/PublicTidyTree.js +25 -16
  52. package/dist/PublicTidyTree.js.map +1 -1
  53. package/dist/index.d.ts +20 -3
  54. package/dist/index.js +25 -4
  55. package/dist/index.js.map +1 -1
  56. package/dist/theme/ThemeAmCharts4.d.ts +1358 -0
  57. package/dist/theme/ThemeAmCharts4.js +61 -0
  58. package/dist/theme/ThemeAmCharts4.js.map +1 -0
  59. package/dist/theme/ThemeApp.d.ts +26 -11
  60. package/dist/theme/ThemeApp.js +51 -0
  61. package/dist/theme/ThemeApp.js.map +1 -1
  62. package/dist/theme/ThemeAppMenuIcon.d.ts +7 -0
  63. package/dist/theme/ThemeAppMenuIcon.js +8 -0
  64. package/dist/theme/ThemeAppMenuIcon.js.map +1 -0
  65. package/dist/theme/ThemeBaseTable.d.ts +94 -0
  66. package/dist/theme/ThemeBaseTable.js +10 -0
  67. package/dist/theme/ThemeBaseTable.js.map +1 -0
  68. package/dist/theme/ThemeDatePicker.d.ts +118 -0
  69. package/dist/theme/ThemeDatePicker.js +11 -0
  70. package/dist/theme/ThemeDatePicker.js.map +1 -0
  71. package/dist/theme/ThemeEditorTopBar.d.ts +31 -0
  72. package/dist/theme/ThemeEditorTopBar.js +35 -0
  73. package/dist/theme/ThemeEditorTopBar.js.map +1 -0
  74. package/dist/theme/ThemeEmbeddedReport.d.ts +25 -0
  75. package/dist/theme/ThemeEmbeddedReport.js +3 -0
  76. package/dist/theme/ThemeEmbeddedReport.js.map +1 -0
  77. package/dist/theme/ThemeFilter.d.ts +28 -0
  78. package/dist/theme/ThemeFilter.js +3 -0
  79. package/dist/theme/ThemeFilter.js.map +1 -0
  80. package/dist/theme/ThemeFilterAutocomplete.d.ts +31 -15
  81. package/dist/theme/ThemeFilterAutocomplete.js.map +1 -1
  82. package/dist/theme/ThemeFilterButtons.d.ts +40 -23
  83. package/dist/theme/ThemeFilterButtons.js +1 -1
  84. package/dist/theme/ThemeFilterButtons.js.map +1 -1
  85. package/dist/theme/ThemeFilterCheckboxRadio.d.ts +48 -0
  86. package/dist/theme/ThemeFilterCheckboxRadio.js +23 -0
  87. package/dist/theme/ThemeFilterCheckboxRadio.js.map +1 -0
  88. package/dist/theme/ThemeFilterPanel.d.ts +94 -0
  89. package/dist/theme/ThemeFilterPanel.js +35 -0
  90. package/dist/theme/ThemeFilterPanel.js.map +1 -0
  91. package/dist/theme/ThemeFilterSlider.d.ts +42 -28
  92. package/dist/theme/ThemeFilterSlider.js +7 -7
  93. package/dist/theme/ThemeFilterSlider.js.map +1 -1
  94. package/dist/theme/ThemeFilterTree.d.ts +61 -30
  95. package/dist/theme/ThemeFilterTree.js +2 -1
  96. package/dist/theme/ThemeFilterTree.js.map +1 -1
  97. package/dist/theme/ThemeGlobal.d.ts +4 -0
  98. package/dist/theme/ThemeGlobal.js +9 -0
  99. package/dist/theme/ThemeGlobal.js.map +1 -0
  100. package/dist/theme/ThemeGoogle.d.ts +132 -0
  101. package/dist/theme/ThemeGoogle.js +64 -0
  102. package/dist/theme/ThemeGoogle.js.map +1 -0
  103. package/dist/theme/ThemeGoogleHeatMap.d.ts +58 -0
  104. package/dist/theme/ThemeGoogleHeatMap.js +3 -0
  105. package/dist/theme/ThemeGoogleHeatMap.js.map +1 -0
  106. package/dist/theme/ThemeGoogleKmlLayer.d.ts +40 -0
  107. package/dist/theme/ThemeGoogleKmlLayer.js +3 -0
  108. package/dist/theme/ThemeGoogleKmlLayer.js.map +1 -0
  109. package/dist/theme/ThemeGoogleMarker.d.ts +147 -0
  110. package/dist/theme/ThemeGoogleMarker.js +3 -0
  111. package/dist/theme/ThemeGoogleMarker.js.map +1 -0
  112. package/dist/theme/ThemeHtmlBox.d.ts +5 -1
  113. package/dist/theme/ThemeImage.d.ts +19 -0
  114. package/dist/theme/ThemeImage.js +3 -0
  115. package/dist/theme/ThemeImage.js.map +1 -0
  116. package/dist/theme/ThemeKpiBox.d.ts +46 -0
  117. package/dist/theme/ThemeKpiBox.js +3 -0
  118. package/dist/theme/ThemeKpiBox.js.map +1 -0
  119. package/dist/theme/ThemeKpiCard.d.ts +98 -0
  120. package/dist/theme/ThemeKpiCard.js +3 -0
  121. package/dist/theme/ThemeKpiCard.js.map +1 -0
  122. package/dist/theme/ThemeLazyTreeClasses.d.ts +14 -0
  123. package/dist/theme/ThemeLazyTreeClasses.js +19 -0
  124. package/dist/theme/ThemeLazyTreeClasses.js.map +1 -0
  125. package/dist/theme/ThemeMarkdownText.d.ts +27 -0
  126. package/dist/theme/ThemeMarkdownText.js +3 -0
  127. package/dist/theme/ThemeMarkdownText.js.map +1 -0
  128. package/dist/theme/ThemePivotTable.d.ts +63 -0
  129. package/dist/theme/ThemePivotTable.js +10 -1
  130. package/dist/theme/ThemePivotTable.js.map +1 -1
  131. package/dist/theme/ThemeQueryBuilderNode.d.ts +8 -0
  132. package/dist/theme/ThemeQueryBuilderNode.js +8 -0
  133. package/dist/theme/ThemeQueryBuilderNode.js.map +1 -0
  134. package/dist/theme/ThemeRepetitionWidget.d.ts +51 -0
  135. package/dist/theme/ThemeRepetitionWidget.js +3 -0
  136. package/dist/theme/ThemeRepetitionWidget.js.map +1 -0
  137. package/dist/theme/ThemeReportAppLeftPanel.d.ts +7 -0
  138. package/dist/theme/ThemeReportAppLeftPanel.js +11 -0
  139. package/dist/theme/ThemeReportAppLeftPanel.js.map +1 -0
  140. package/dist/theme/ThemeTable.d.ts +56 -1
  141. package/dist/theme/ThemeTable.js.map +1 -1
  142. package/dist/theme/ThemeWidgetBox.d.ts +77 -0
  143. package/dist/theme/ThemeWidgetBox.js +50 -14
  144. package/dist/theme/ThemeWidgetBox.js.map +1 -1
  145. package/package.json +6 -6
  146. package/dist/theme/ThemeFilterCheckboxes.d.ts +0 -18
  147. package/dist/theme/ThemeFilterCheckboxes.js +0 -11
  148. package/dist/theme/ThemeFilterCheckboxes.js.map +0 -1
  149. package/dist/theme/ThemeGoogleMapMarker.d.ts +0 -51
  150. package/dist/theme/ThemeGoogleMapMarker.js.map +0 -1
  151. package/dist/theme/ThemeReportAppMenu.d.ts +0 -18
  152. package/dist/theme/ThemeReportAppMenu.js.map +0 -1
@@ -1,31 +1,41 @@
1
1
  import { ITidyBaseColumnReadonly } from "./PublicTidyColumn";
2
2
  import { HistogramData, HistogramOptions } from "./PublicTidyTableTypes";
3
+ /**
4
+ * Utility class for doing maths in columns
5
+ *
6
+ *
7
+ * As a general rule, functions will return NaN once a value of the column is Nan
8
+ */
3
9
  export interface ITidyMath {
10
+ /**
11
+ * For each not null column value (numbers including Nan or Infinity)
12
+ *
13
+ * @param callback true to stop the for each
14
+ */
15
+ forEachNotNull(column: ITidyBaseColumnReadonly<number | null> | ITidyBaseColumnReadonly<number | null>[], callback: (value: number) => void): void;
4
16
  /**
5
17
  * Sum of all values in the column.
6
18
  */
7
- sum(column: ITidyBaseColumnReadonly<number | null>): number | null;
19
+ sum(column: ITidyBaseColumnReadonly<number | null> | ITidyBaseColumnReadonly<number | null>[]): number | null;
8
20
  /**
9
21
  * Get the extreme value of the column. Null values are skipped.
10
22
  * @param column
11
- * @returns the minimum value of the column. Returns undefined if the column has no values or if the column contains
12
- * a NaN-value.
23
+ * @returns the minimum value of the column. Returns undefined if the column has no values.
13
24
  */
14
- min<T>(column: ITidyBaseColumnReadonly<T>): T | undefined;
25
+ min<T>(column: ITidyBaseColumnReadonly<T> | ITidyBaseColumnReadonly<T | null>[]): T | undefined;
15
26
  /**
16
27
  * Get the extreme value of the column. Null values are skipped.
17
28
  * @param column
18
- * @returns the maximum value of the column. Returns undefined if the column has no values or if the column contains
19
- * a NaN-value.
29
+ * @returns the maximum value of the column. Returns undefined if the column has no values.
20
30
  */
21
- max<T>(column: ITidyBaseColumnReadonly<T>): T | undefined;
31
+ max<T>(column: ITidyBaseColumnReadonly<T> | ITidyBaseColumnReadonly<T | null>[]): T | undefined;
22
32
  /**
23
33
  * Get the maximum of the absolute values of the column.
24
34
  * @param column
25
35
  * @returns If x_1, x_2, ..., x_n are the columns values, then it returns max(|x_1|, ..., |x_n|). Null values are
26
36
  * skipped.
27
37
  */
28
- absoluteMax(column: ITidyBaseColumnReadonly<number | null>): number | undefined;
38
+ absoluteMax(column: ITidyBaseColumnReadonly<number | null> | ITidyBaseColumnReadonly<number | null>[]): number | undefined;
29
39
  /**
30
40
  * Sum all values matching the lowest depth level of axis column
31
41
  */
@@ -33,33 +43,29 @@ export interface ITidyMath {
33
43
  /**
34
44
  * Estimate the population mean of the column, skipping null values.
35
45
  *
36
- * @returns the mean of the numeric column. Returns undefined if the column has no values or if the column contains
37
- * a NaN-value.
46
+ * @returns the mean of the numeric column. Returns undefined if the column has no values.
38
47
  */
39
- mean(column: ITidyBaseColumnReadonly<number | null>): number | undefined;
48
+ mean(column: ITidyBaseColumnReadonly<number | null> | ITidyBaseColumnReadonly<number | null>[]): number | undefined;
40
49
  /**
41
50
  * Estimate the population variance of the column. Null values are skipped.
42
51
  * @param column
43
- * @returns the variance of the column. Returns undefined if the column has no values or if the column contains a
44
- * NaN-value.
52
+ * @returns the variance of the column. Returns undefined if the column has no values
45
53
  */
46
- variance(column: ITidyBaseColumnReadonly<number | null>): number | undefined;
54
+ variance(column: ITidyBaseColumnReadonly<number | null> | ITidyBaseColumnReadonly<number | null>[]): number | undefined;
47
55
  /**
48
56
  * Estimate the population standard deviation of the column. Null values are skipped.
49
57
  * @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.
58
+ * @returns the standard deviation of the column. Returns undefined if the column has no values
52
59
  */
53
- standardDeviation(column: ITidyBaseColumnReadonly<number | null>): number | undefined;
60
+ standardDeviation(column: ITidyBaseColumnReadonly<number | null> | ITidyBaseColumnReadonly<number | null>[]): number | undefined;
54
61
  /**
55
62
  * Return the number of non-null values in the column.
56
63
  */
57
- count(column: ITidyBaseColumnReadonly<any>): number;
64
+ count(column: ITidyBaseColumnReadonly<any> | ITidyBaseColumnReadonly<any>[]): number;
58
65
  /**
59
66
  * Calculate the median of the column. Null-values are ignored.
60
67
  * @param column
61
- * @returns the median of the numeric column. Returns undefined if the column has no values or if the column contains
62
- * a NaN-value.
68
+ * @returns the median of the numeric column. Returns undefined if the column has no values
63
69
  */
64
70
  median(column: ITidyBaseColumnReadonly<number | null>): number | undefined;
65
71
  /**
@@ -1,9 +1,9 @@
1
- import { AxisCoordinate, IAmCharts4Data, IAmCharts4DataTreeMap, ITotalRowValues, SortingType, TidyColumnIndex, TidyColumnsType, TidyTableColumnSelector } from "./PublicTidyTableTypes";
1
+ import { AxisCoordinate, ChartTemplateDataMapping, GroupRowIndices, IAmCharts4Data, IAmCharts4DataTreeMap, ITotalRowValues, SortingType, TidyColumnIndex, TidyColumnsType, TidyTableColumnIdentifier, TidyTableColumnSelector } from "./PublicTidyTableTypes";
2
2
  import { AllowedColumnType, ITidyBaseColumn, ITidyBaseColumnReadonly, ITidyCharacterColumn, ITidyColumn, ITidyNumericColumn, ITidyUnknownColumn } from "./PublicTidyColumn";
3
3
  import { TidyTree } from "./PublicTidyTree";
4
- import { SelectionGranularityOptions } from "./PublicTemplate";
5
4
  import { TidyHistogramOptions } from "./PublicTidyHistogram";
6
5
  import { IPublicContext } from "./PublicContext";
6
+ import { ITidyMath } from "./PublicTidyMath";
7
7
  /**
8
8
  * Identifies a Mdx node in a query.
9
9
  *
@@ -15,6 +15,7 @@ export interface MdxNodeIdentifier {
15
15
  readonly hierarchyIdx: number;
16
16
  readonly tupleUNs: ReadonlyArray<string>;
17
17
  readonly tupleIdx: number;
18
+ readonly levelDepthR?: number;
18
19
  }
19
20
  /**
20
21
  * Result of a MDX, SQL, ... query with additional transformations (e.g., colors, sizes, changing MDX names,...).
@@ -35,6 +36,7 @@ export interface ITidyTable {
35
36
  * Get the query uid
36
37
  */
37
38
  getQueryUid(): number;
39
+ isSameDimensionality(other: ITidyTable): boolean;
38
40
  asPivotTableForExcel(nullValue: any): ITidyColumn[];
39
41
  /**
40
42
  * Return all columns in the table
@@ -87,24 +89,30 @@ export interface ITidyTable {
87
89
  * @param alias mapping name
88
90
  */
89
91
  getColumnByAlias(alias: string): ITidyColumn;
92
+ /**
93
+ * @see {getOptionalColumnByRole}
94
+ * @param role mapping name
95
+ * @returns list of columns with the role 'role'.
96
+ */
97
+ getColumnsByRole(role: string): ITidyColumn[];
90
98
  /**
91
99
  * @see {getColumnByAlias}
92
100
  */
93
101
  getOptionalColumnByAlias(alias: string): ITidyColumn | undefined;
94
102
  /**
95
- * Get the coordinate of the column using the alias for the mapping
96
- * @param alias the name of the mapping
103
+ * @see {getColumnByAlias}
97
104
  */
98
- getOptionalColumnCoordinateByAlias(alias: string): TidyTableColumnSelector | undefined;
105
+ getOptionalColumnsByAlias(alias: string): ITidyColumn[] | undefined;
99
106
  /**
100
- * @param granularityOption , if valid a SelectionGranularityOptions
107
+ * Get the coordinate of the column using the alias for the mapping
108
+ * @param alias the name of the mapping
101
109
  */
102
- getOptionalColumnBySelectionGranularity(granularityOption: string | SelectionGranularityOptions): ITidyColumn[] | undefined;
110
+ getOptionalColumnCoordinateByAlias(alias: string): TidyTableColumnIdentifier | undefined;
103
111
  /**
104
- * Get column(s) using a selector
105
- * @param selector coordinate to the column or property.
112
+ * Get columns using a selector
113
+ * @param selector selector object
106
114
  */
107
- getColumnBySelector(selector?: TidyTableColumnSelector): ITidyColumn[] | undefined;
115
+ getColumnsBySelector(selector: TidyTableColumnSelector | TidyTableColumnSelector[]): ITidyColumn[];
108
116
  /**
109
117
  * Get a column using the coordinate of an axis.
110
118
  * @param coordinate
@@ -219,18 +227,20 @@ export interface ITidyTable {
219
227
  */
220
228
  buildTidyTree(treeColumns: ITidyColumn[], rootLabel?: string, expandHierarchicalColumn?: boolean): TidyTree;
221
229
  /**
222
- * Construct list of tidy tables
230
+ * Group the table by some of its columns. Rows are in the same group, if their values are equal.
223
231
  * @param columns groupIdx and groupRows for each unique value in this(ese) column(s)
224
- * @returns an map with indexes for each group.
232
+ * @param useMdx If true, use MDX values. Default = use column values.
233
+ * @returns an array with indexes for each group. The ith item represents the rows of the group, where i is the
234
+ * index of the ith unique value in the group column.
225
235
  */
226
- groupBy(columns: ITidyColumn[]): number[][];
236
+ groupBy(columns: ITidyColumn[], useMdx?: boolean): GroupRowIndices[];
227
237
  /**
228
- * Pivot a tidy table from wide to long format. See https://pandas.pydata.org/docs/reference/api/pandas.melt.html.
238
+ * Pivot a tidy table from wide to long format. See pivot longer in the documentation.
229
239
  * @param columns columns to melt.
230
- * @param namesCaption name of the column to which the variable name are melted.
231
- * @param valuesCaption name of the column to which the values are melted.
240
+ * @param variableName name of the column to which the variable name are melted.
241
+ * @param valuesName name of the column to which the values are melted.
232
242
  */
233
- melt(columns: ITidyColumn[], namesCaption?: string, valuesCaption?: string): void;
243
+ melt(columns: ITidyColumn[], variableName?: string, valuesName?: string): void;
234
244
  /**
235
245
  * Pivot a tidy table from long to wide format
236
246
  * Duplicated rows are discarded.
@@ -288,7 +298,7 @@ export interface ITidyTable {
288
298
  * @param level this column expands the axis so that widgets can plot level-like charts using guides. This expansion
289
299
  * follows the patters axis-label[level-label].
290
300
  */
291
- toAmcharts4Data<F extends string>(category: ITidyColumn, value: Record<F, ITidyColumn | undefined>, group?: ITidyColumn, level?: ITidyColumn): IAmCharts4Data[];
301
+ toAmcharts4Data<F extends string>(category: ITidyColumn, value: Record<F, ITidyColumn | undefined>, group?: ITidyColumn | ITidyColumn[], level?: ITidyColumn): IAmCharts4Data[];
292
302
  /**
293
303
  * Creates a data object for the Amcharts treemap
294
304
  * @param level0 names for the parent nodes
@@ -439,6 +449,7 @@ export interface ITidyTable {
439
449
  isTotalRow(rowIdx: number): boolean;
440
450
  /**
441
451
  * Transform the table to a table where each row is a bucket in the histogram for that group.
452
+ * Returns a new tidy table. Function does not mutate old tidy table and its columns.
442
453
  *
443
454
  * @see TidyHistogramBucketColName
444
455
  * @see TidyHistogramCountColName
@@ -448,7 +459,7 @@ export interface ITidyTable {
448
459
  * Create a histogram bucket column from the value column.
449
460
  */
450
461
  toHistogramBucketColumn(context: IPublicContext, valueCol: ITidyBaseColumnReadonly<number | null>, options: TidyHistogramOptions): ITidyColumn;
451
- addTotalRows(totals: Map<number, ITotalRowValues>): void;
462
+ addTotalRows(totals: Map<number, ITotalRowValues[]>): void;
452
463
  /**
453
464
  * Get a column by its role as defined in the mdxBuilderSettings.
454
465
  * @param role name of the axis-role
@@ -461,4 +472,18 @@ export interface ITidyTable {
461
472
  getLevelDepthR(nodeInfo: MdxNodeIdentifier): any;
462
473
  hasMdxChildren(nodeInfo: MdxNodeIdentifier): boolean;
463
474
  isLeaf(nodeInfo: MdxNodeIdentifier): any;
475
+ /**
476
+ * Sort the tidy table pivot style
477
+ */
478
+ sortLikePivotTable(sortingColumn: ITidyColumn, type: SortingType, rowIds: number[]): void;
479
+ /**
480
+ * The tidy table internally keeps track how columns are mapped to roles. If you apply a transformation
481
+ * in the widget template, you can update the mapping after whith this function.
482
+ * @param mapping new mapping = {old mapping , ...mapping}
483
+ */
484
+ updateMapping(mapping: ChartTemplateDataMapping): void;
485
+ /**
486
+ * Utility class for doing maths on columns
487
+ */
488
+ getMath(): ITidyMath;
464
489
  }
@@ -1,4 +1,4 @@
1
- import { SelectionBehaviour } from "./PublicTidyTableTypes";
1
+ import { SelectionBehaviour, WidgetTidySelectionOptions } from "./PublicTidyTableTypes";
2
2
  import { ITidyBaseColumn, ITidyColumn } from "./PublicTidyColumn";
3
3
  import { ILazyTreeViewLoader } from "./LazyTreeView";
4
4
  import { PublicIcEvent } from "./IcEvent";
@@ -29,11 +29,12 @@ export declare enum TidyPivotTableLikeNodeStatus {
29
29
  LOADING = 4
30
30
  }
31
31
  export declare type TidyEvent = MouseEvent | TouchEvent;
32
+ export declare type IWidgetInteractionMode = "drilldown" | "selection";
32
33
  export interface ITidyTableInteractionSelection {
33
34
  /**
34
35
  * Sets the selection at the creation of the widget
35
36
  */
36
- initializeSelection(): void;
37
+ initializeSelection(isRangeSelection?: boolean): void;
37
38
  /**
38
39
  * Returns true if the selection if empty. Returns false otherwise.
39
40
  */
@@ -44,6 +45,22 @@ export interface ITidyTableInteractionSelection {
44
45
  * @param rowIdx the index of the row
45
46
  */
46
47
  isSelected(rowIdx: number): boolean;
48
+ /**
49
+ * Returns true if and only if the column is selected.
50
+ * @param colIdx
51
+ */
52
+ isColumnSelected(colIdx: number): boolean;
53
+ /**
54
+ * Returns true if and only if the cell is selected.
55
+ * @param rowIdx
56
+ */
57
+ isCellSelected(rowIdx: number, colIdx: number): boolean;
58
+ /**
59
+ * For the sankey diagram, a row is selected if connecting nodes are in the selection.
60
+ * @param rowIdx the index of the row
61
+ * @param column selection should be in this column
62
+ */
63
+ isSelectedSankey(rowIdx: number, column: ITidyColumn): boolean;
47
64
  /**
48
65
  *
49
66
  * @param column
@@ -62,23 +79,39 @@ export interface ITidyTableInteractionSelection {
62
79
  * @param noSelectionValue if defined an the selection is empty, all row values have this value
63
80
  */
64
81
  applySelectionToNewColumn<T>(selectedItemValue: T, notSelectedItemValue: T, noSelectionValue?: T): ITidyBaseColumn<T>;
82
+ /**
83
+ * Handles the row click event for the selection
84
+ * @param rowIdx index of row clicked
85
+ * @param event the mouse event of the click
86
+ */
87
+ handleClickSelection(rowIdx: number, event?: TidyEvent): void;
65
88
  /**
66
89
  * Handles the click event for the selection on a given column.
67
90
  *
68
91
  * If the columns is not part of the selection columns of the widget nothing will happen
69
92
  *
70
- * @param column column that is in the selection columns
71
- * @param rowIdx index of row clicked
93
+ * @param column column index of the tidy table
72
94
  * @param event the mouse event of the click
73
95
  */
74
- handleColumnSelection(column: ITidyColumn, rowIdx: number, event?: TidyEvent): void;
75
- getColorOnSelection(theme: Theme, color: string | undefined, rowIdx: number): string | undefined;
96
+ handleColumnSelection(colIdx: number, event?: TidyEvent): void;
76
97
  /**
77
- * Handles the click event for the selection
78
- * @param rowIdx index of row clicked
98
+ * Handles the click event for the selection of a given cell
99
+ *
100
+ * If the columns is not part of the selection columns of the widget nothing will happen
101
+ *
102
+ * @param rowIdx row index of clicked cell in the tidy table
103
+ * @param colIdx column index of clicked cell in the tidy table
79
104
  * @param event the mouse event of the click
80
105
  */
81
- handleClickSelection(rowIdx: number, event?: TidyEvent): void;
106
+ handleCellSelection(rowIdx: number, colIdx: number, event?: TidyEvent): void;
107
+ /**
108
+ * Get the interaction mode:
109
+ * undefined = no interactions in the widget,
110
+ * selection = perform selection interaction,
111
+ * drilldown = perform drilldown interaction.
112
+ */
113
+ getInteractionMode(): IWidgetInteractionMode | undefined;
114
+ getColorOnSelection(theme: Theme, color: string | undefined, rowIdx: number): string | undefined;
82
115
  /**
83
116
  * Select multiple rows at once
84
117
  */
@@ -158,10 +191,6 @@ export interface ITidyTableInteractionEvent {
158
191
  * register a callback that will be called each time an event is send to the channel bound to the actionName
159
192
  */
160
193
  onNotification(actionName: string, callback: (event: any) => void): void;
161
- /**
162
- * Should the interactions be based on rowIds or on row values? Default = true = rowIds.
163
- */
164
- useHitRowIdxInSelection(value: boolean): void;
165
194
  }
166
195
  export interface ITidyTableInteraction extends ITidyTableInteractionSelection, ITidyTableInteractionEvent, ITidyTableDrilldown {
167
196
  /**
@@ -169,13 +198,41 @@ export interface ITidyTableInteraction extends ITidyTableInteractionSelection, I
169
198
  *
170
199
  * The column(s) for the selection or the drilldown are based on the widget options/settings
171
200
  *
172
- * This does not fire any event...for now
201
+ * This does not fire any event. To fire an event, use fireEvent.
202
+ *
203
+ * @see fireEvent
173
204
  */
174
205
  handleRowHit(rowIdx: number, event: TidyEvent | undefined): void;
175
206
  /**
176
- * Collapsed / Expand
207
+ * Handles a cell click in the tidy table.
208
+ * @param rowIdx row index of the cell
209
+ * @param colIdx column index of the cell
210
+ * @param event mouse/touch event
211
+ *
212
+ * @see handleRowHit
213
+ */
214
+ handleCellHit(rowIdx: number, colIdx: number, event: TidyEvent | undefined): void;
215
+ /**
216
+ * Handles a column click in the tidy table.
217
+ * @param colIdx index of clicked column in the tidy table
218
+ * @param event mouse/touch event
219
+ *
220
+ * @see handleRowHit
221
+ */
222
+ handleColumnHit(colIdx: number, event: TidyEvent | undefined): void;
223
+ /**
224
+ * Handles a row hit for the sankey diagram. The sankey differs from normal selection because it makes a tuple,
225
+ * not a set.
226
+ */
227
+ handleRowHitSankey(rowIdx: number, column: ITidyColumn, event: TidyEvent | undefined): void;
228
+ /**
229
+ * Collapsed / Expand on a column row (i.e. it's a tree)
177
230
  */
178
- toggleSeriesPoint(column: ITidyColumn, rowIdx: number): void;
231
+ toggleCollapse(column: ITidyColumn, rowIdx: number): void;
232
+ /**
233
+ * returns the collapse/expand state that has not yet been set by the end user (i.e. first time, on drilldowns..)
234
+ */
235
+ setCollapseUnsetFunction(collapseUnsetFunction?: (nodeInfo: MdxNodeIdentifier) => boolean): void;
179
236
  /**
180
237
  * Map a function to the visible rows only. Used in tree structures with expanded or collapsed items.
181
238
  * @param column column to map the values of
@@ -188,7 +245,7 @@ export interface ITidyTableInteraction extends ITidyTableInteractionSelection, I
188
245
  * Is the node loading
189
246
  */
190
247
  isLoading(column: ITidyColumn, rowIdx: number): boolean;
191
- setSelectionColumns(columns: ITidyColumn[]): void;
248
+ setSelectionColumns(columns: ITidyColumn[] | ((oldColumns: ITidyColumn[]) => ITidyColumn[])): void;
192
249
  /**
193
250
  * Change the default drilldown column.
194
251
  * @param column column to use for the drill-downs. Use undefined to reset to default.
@@ -205,4 +262,10 @@ export interface ITidyTableInteraction extends ITidyTableInteractionSelection, I
205
262
  asLazyTreeViewLoader(column: ITidyColumn): ILazyTreeViewLoader;
206
263
  getCompactedSelectionNames(): string[] | undefined;
207
264
  isSelectable(col: ITidyColumn): boolean;
265
+ getSelectedRows(): number[];
266
+ setSortSelectionToColumnOrder(value: boolean): void;
267
+ /**
268
+ * Returns the widgets selection options.
269
+ */
270
+ getWidgetSelectionOptions(): WidgetTidySelectionOptions;
208
271
  }
@@ -2,8 +2,9 @@
2
2
  * Tidy Column Types
3
3
  */
4
4
  import { TidyHistogramBucketType } from "./PublicTidyHistogram";
5
- import { ITidyColumnAddValueInsert } from "./PublicTidyColumn";
5
+ import { ITidyColumn, ITidyColumnAddValueInsert } from "./PublicTidyColumn";
6
6
  import { MdxNodeIdentifier } from "./PublicTidyTable";
7
+ import { SelectionMode } from "./PublicTidyTableInteractions";
7
8
  export declare enum TidyColumnsType {
8
9
  /**
9
10
  * Values represent a color, e.g. 'red', 'rbg(10, 10, 10)' or '#fff'. Can be null.
@@ -59,12 +60,11 @@ export declare enum ITidyColumnsSource {
59
60
  UNKNOWN = "unknown"
60
61
  }
61
62
  /**
62
- * Defines a mapping that maps columns to the coordinate system of the chart.
63
- *
64
- * The key represents the internal name for the mapping (is converted to lowercase).
65
- * undefined --> the editor sets names to undefined upon removing of a mapping.
63
+ * Defines a mapping that maps columns to the coordinate system of the widget.
64
+ * The key represents the internal lowercase-name for the mapping, e.g., axis, group, rows, columns.
65
+ * Note that a mapping can have multiple columns, for example, on the Rows.
66
66
  */
67
- export declare type ChartTemplateDataMapping = Record<string, TidyTableColumnSelector | undefined>;
67
+ export declare type ChartTemplateDataMapping = Record<string, ITidyColumn[] | undefined>;
68
68
  /**
69
69
  * Defines an index from column tag (name, mapping, role, etc..) to the name or index of the column in the table.
70
70
  * The column tag is converted to lower case.
@@ -77,7 +77,7 @@ export declare enum TidyTableMappingColumnSelectorOptions {
77
77
  ALL_MEASURES = "@IC3_ALL_MEASURES",
78
78
  ALL_AXIS = "@IC3_ALL_AXIS"
79
79
  }
80
- export declare type TidyTableColumnSelector = {
80
+ export interface TidyTableColumnIdentifier {
81
81
  /**
82
82
  * Search column by name
83
83
  */
@@ -86,7 +86,34 @@ export declare type TidyTableColumnSelector = {
86
86
  * If we want a property, the name of the column's property.
87
87
  */
88
88
  property?: string;
89
- } | TidyTableMappingColumnSelectorOptions;
89
+ }
90
+ export declare type TidyTableColumnSelector = TidyTableColumnIdentifier | TidyTableMappingColumnSelectorOptions;
91
+ export declare type IFormFieldGranularityItem = IFormFieldGranularityItemColumn | IFormFieldGranularityItemRole | IFormFieldGranularityItemHierarchy;
92
+ export interface IFormFieldGranularityItemColumn {
93
+ type: "column";
94
+ /**
95
+ * For selecting columns from the tidy table
96
+ */
97
+ name: string;
98
+ }
99
+ export interface IFormFieldGranularityItemRole {
100
+ type: "role";
101
+ /**
102
+ * For selecting mapping/roles in a chart
103
+ */
104
+ role: string;
105
+ }
106
+ export interface IFormFieldGranularityItemHierarchy {
107
+ type: "hierarchy";
108
+ /**
109
+ * Show in editor.
110
+ */
111
+ caption: string;
112
+ /**
113
+ * Hierarchy for entity items in columns
114
+ */
115
+ hierarchyIdx: number;
116
+ }
90
117
  /**
91
118
  * Coordinate of an MDX member
92
119
  */
@@ -101,8 +128,9 @@ export interface MdxMemberCoordinates {
101
128
  tupleIdx: number;
102
129
  /**
103
130
  * index of the member in the tuple. E.g. AF in (AF, 2009) has index 0 and 2009 has index 1.
131
+ * undefined means use the whole tuple.
104
132
  */
105
- hierIdx: number;
133
+ hierIdx?: number;
106
134
  }
107
135
  declare type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
108
136
  /**
@@ -196,7 +224,6 @@ export interface EntityItem {
196
224
  selected?: boolean;
197
225
  empty?: boolean;
198
226
  tupleUNames?: string[];
199
- tidyIdxHint?: number;
200
227
  }
201
228
  export interface TidyCellError {
202
229
  errorCode: string;
@@ -213,18 +240,12 @@ export interface TidyCellError {
213
240
  */
214
241
  export interface ITidyTableSelection {
215
242
  /**
216
- * If the Table changes this rowIdx might not longer be valid
217
- * It's the clicked/hit row
218
- */
219
- hitRowIdx: number;
220
- /**
221
- * A list of unique names that identify the selection
243
+ * Object storing the selection coordinates.
222
244
  */
223
- rowIdentifier: string | string[];
224
245
  /**
225
- * A list with the columns names (for info)
246
+ * Fired event value. Arrays are combined into a single event.
226
247
  */
227
- columnNames: string | string[];
248
+ items: EntityItem[];
228
249
  }
229
250
  export declare enum SelectionBehaviour {
230
251
  /**
@@ -235,6 +256,11 @@ export declare enum SelectionBehaviour {
235
256
  * Select all items in the filter.
236
257
  */
237
258
  SELECT_ALL = "SELECT_ALL",
259
+ /**
260
+ * Easy to guess
261
+ */
262
+ SELECT_FIRST = "SELECT_FIRST",
263
+ SELECT_LAST = "SELECT_LAST",
238
264
  /**
239
265
  * Select no items in the filter and clear the event.
240
266
  */
@@ -313,6 +339,9 @@ export interface ConvertToTypeParseSettings {
313
339
  dateFormat?: string;
314
340
  listSeparator?: string;
315
341
  }
342
+ /**
343
+ * Interface for adding a single row to a tidy table
344
+ */
316
345
  export interface ITotalRowValues {
317
346
  /**
318
347
  * Keys as column names.
@@ -323,4 +352,65 @@ export interface ITotalRowValues {
323
352
  */
324
353
  totalTexts: Record<string, ITidyColumnAddValueInsert>;
325
354
  }
355
+ /**
356
+ * If we have (date)times available, then
357
+ * YES -> always use them
358
+ * NO -> never use them
359
+ * AUTO -> use them if the level is a date or datetime (in MDX, these are levels of type DAY, HOUR, MINUTE, SECOND).
360
+ */
361
+ export declare enum UseDatetimeAxis {
362
+ YES = "YES",
363
+ NO = "NO",
364
+ AUTO = "AUTO"
365
+ }
366
+ export interface ITidyColumnIndex {
367
+ /**
368
+ * Name of index
369
+ */
370
+ name: string;
371
+ /**
372
+ * Display label for index
373
+ */
374
+ label: string;
375
+ /**
376
+ * Unique name of mdx member
377
+ */
378
+ mdxUniqueName?: string;
379
+ /**
380
+ * Level of mdx member
381
+ */
382
+ mdxLevel?: string;
383
+ }
384
+ export interface WidgetTidySelectionOptions {
385
+ /**
386
+ * If true, the widget responds to selection events.
387
+ */
388
+ isSelectionActive: boolean;
389
+ /**
390
+ * User can set the selection mode in the interaction-settings.
391
+ */
392
+ selectionMode: SelectionMode;
393
+ /**
394
+ * These columns are considered in the selection.
395
+ */
396
+ selectionGranularity?: IFormFieldGranularityItem[];
397
+ /**
398
+ * Behaviour when all items in the filter are selected.
399
+ */
400
+ selectionAllBehaviour?: SelectionBehaviour;
401
+ /**
402
+ * Behaviour when the selection is empty, e.g. when no items are selected.
403
+ */
404
+ selectionEmptyBehaviour?: SelectionBehaviour;
405
+ /**
406
+ * List with items in the initial selection.
407
+ */
408
+ initSelectionUserDefined?: string[];
409
+ /**
410
+ * Column with items in the initial selection. The column has a truthy value for items that are in the initial
411
+ * selection.
412
+ */
413
+ initSelectionColumn?: TidyTableColumnSelector;
414
+ }
415
+ export declare type GroupRowIndices = [number, ...number[]];
326
416
  export {};
@@ -3,7 +3,7 @@
3
3
  * Tidy Column Types
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.InterpolationType = exports.SortingType = exports.SelectionBehaviour = exports.IAmcharts4DataKey = exports.TidyTableMappingColumnSelectorOptions = exports.ITidyColumnsSource = exports.TidyColumnsType = void 0;
6
+ exports.UseDatetimeAxis = exports.InterpolationType = exports.SortingType = exports.SelectionBehaviour = exports.IAmcharts4DataKey = exports.TidyTableMappingColumnSelectorOptions = exports.ITidyColumnsSource = exports.TidyColumnsType = void 0;
7
7
  var TidyColumnsType;
8
8
  (function (TidyColumnsType) {
9
9
  /**
@@ -93,6 +93,11 @@ var SelectionBehaviour;
93
93
  * Select all items in the filter.
94
94
  */
95
95
  SelectionBehaviour["SELECT_ALL"] = "SELECT_ALL";
96
+ /**
97
+ * Easy to guess
98
+ */
99
+ SelectionBehaviour["SELECT_FIRST"] = "SELECT_FIRST";
100
+ SelectionBehaviour["SELECT_LAST"] = "SELECT_LAST";
96
101
  /**
97
102
  * Select no items in the filter and clear the event.
98
103
  */
@@ -124,4 +129,16 @@ var InterpolationType;
124
129
  InterpolationType["HSL"] = "hsl";
125
130
  InterpolationType["LAB"] = "lab";
126
131
  })(InterpolationType = exports.InterpolationType || (exports.InterpolationType = {}));
132
+ /**
133
+ * If we have (date)times available, then
134
+ * YES -> always use them
135
+ * NO -> never use them
136
+ * AUTO -> use them if the level is a date or datetime (in MDX, these are levels of type DAY, HOUR, MINUTE, SECOND).
137
+ */
138
+ var UseDatetimeAxis;
139
+ (function (UseDatetimeAxis) {
140
+ UseDatetimeAxis["YES"] = "YES";
141
+ UseDatetimeAxis["NO"] = "NO";
142
+ UseDatetimeAxis["AUTO"] = "AUTO";
143
+ })(UseDatetimeAxis = exports.UseDatetimeAxis || (exports.UseDatetimeAxis = {}));
127
144
  //# sourceMappingURL=PublicTidyTableTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PublicTidyTableTypes.js","sourceRoot":"","sources":["../src/PublicTidyTableTypes.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAMH,IAAY,eA0DX;AA1DD,WAAY,eAAe;IACvB;;OAEG;IACH,kCAAe,CAAA;IAEf,0CAAuB,CAAA;IACvB,wCAAqB,CAAA;IAErB;;OAEG;IACH,sDAAmC,CAAA;IAEnC;;OAEG;IACH,wCAAqB,CAAA;IAErB;;OAEG;IACH,sCAAmB,CAAA;IAEnB;;OAEG;IACH,0CAAuB,CAAA;IAEvB;;OAEG;IACH,sCAAmB,CAAA;IAEnB;;OAEG;IACH,gCAAa,CAAA;IAEb;;OAEG;IACH,kCAAe,CAAA;IAEf;;OAEG;IACH,sCAAmB,CAAA;IAEnB;;OAEG;IACH,gCAAa,CAAA;IAEb;;OAEG;IACH,8BAAW,CAAA;AACf,CAAC,EA1DW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QA0D1B;AAkBD,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,qCAAe,CAAA;IACf,uDAAiC,CAAA;IACjC,yCAAmB,CAAA;AACvB,CAAC,EAJW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAI7B;AAgBD,IAAY,qCAQX;AARD,WAAY,qCAAqC;IAE7C,yDAAgB,CAAA;IAChB,yEAAgC,CAAA;IAChC,6EAAoC,CAAA;IACpC,2EAAkC,CAAA;IAClC,mEAA0B,CAAA;AAE9B,CAAC,EARW,qCAAqC,GAArC,6CAAqC,KAArC,6CAAqC,QAQhD;AAgED,IAAY,iBAgBX;AAhBD,WAAY,iBAAiB;IACzB;;;OAGG;IACH,kCAAa,CAAA;IAEb;;OAEG;IACH,gCAAW,CAAA;IAEX;;OAEG;IACH,+BAAU,CAAA;AACd,CAAC,EAhBW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAgB5B;AA6GD,IAAY,kBA8BX;AA9BD,WAAY,kBAAkB;IAC1B;;OAEG;IACH,iDAA2B,CAAA;IAE3B;;OAEG;IACH,+CAAyB,CAAA;IAEzB;;OAEG;IACH,iDAA2B,CAAA;IAE3B;;OAEG;IACH,iDAA2B,CAAA;IAE3B;;OAEG;IACH,6CAAuB,CAAA;IAEvB;;OAEG;IACH,yDAAmC,CAAA;AACvC,CAAC,EA9BW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QA8B7B;AAED,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,sCAAuB,CAAA;IACvB,wCAAyB,CAAA;IACzB,wCAAuB,CAAA;AAC3B,CAAC,EAJW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAItB;AAsDD,IAAY,iBAMX;AAND,WAAY,iBAAiB;IACzB,kCAAa,CAAA;IACb,gCAAW,CAAA;IACX,gCAAW,CAAA;IACX,gCAAW,CAAA;IACX,gCAAW,CAAA;AACf,CAAC,EANW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAM5B"}
1
+ {"version":3,"file":"PublicTidyTableTypes.js","sourceRoot":"","sources":["../src/PublicTidyTableTypes.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAOH,IAAY,eA0DX;AA1DD,WAAY,eAAe;IACvB;;OAEG;IACH,kCAAe,CAAA;IAEf,0CAAuB,CAAA;IACvB,wCAAqB,CAAA;IAErB;;OAEG;IACH,sDAAmC,CAAA;IAEnC;;OAEG;IACH,wCAAqB,CAAA;IAErB;;OAEG;IACH,sCAAmB,CAAA;IAEnB;;OAEG;IACH,0CAAuB,CAAA;IAEvB;;OAEG;IACH,sCAAmB,CAAA;IAEnB;;OAEG;IACH,gCAAa,CAAA;IAEb;;OAEG;IACH,kCAAe,CAAA;IAEf;;OAEG;IACH,sCAAmB,CAAA;IAEnB;;OAEG;IACH,gCAAa,CAAA;IAEb;;OAEG;IACH,8BAAW,CAAA;AACf,CAAC,EA1DW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QA0D1B;AAkBD,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,qCAAe,CAAA;IACf,uDAAiC,CAAA;IACjC,yCAAmB,CAAA;AACvB,CAAC,EAJW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAI7B;AAeD,IAAY,qCAQX;AARD,WAAY,qCAAqC;IAE7C,yDAAgB,CAAA;IAChB,yEAAgC,CAAA;IAChC,6EAAoC,CAAA;IACpC,2EAAkC,CAAA;IAClC,mEAA0B,CAAA;AAE9B,CAAC,EARW,qCAAqC,GAArC,6CAAqC,KAArC,6CAAqC,QAQhD;AAsGD,IAAY,iBAgBX;AAhBD,WAAY,iBAAiB;IACzB;;;OAGG;IACH,kCAAa,CAAA;IAEb;;OAEG;IACH,gCAAW,CAAA;IAEX;;OAEG;IACH,+BAAU,CAAA;AACd,CAAC,EAhBW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAgB5B;AAsGD,IAAY,kBAqCX;AArCD,WAAY,kBAAkB;IAC1B;;OAEG;IACH,iDAA2B,CAAA;IAE3B;;OAEG;IACH,+CAAyB,CAAA;IAEzB;;OAEG;IACH,mDAA6B,CAAA;IAE7B,iDAA2B,CAAA;IAE3B;;OAEG;IACH,iDAA2B,CAAA;IAE3B;;OAEG;IACH,iDAA2B,CAAA;IAE3B;;OAEG;IACH,6CAAuB,CAAA;IAEvB;;OAEG;IACH,yDAAmC,CAAA;AACvC,CAAC,EArCW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAqC7B;AAED,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,sCAAuB,CAAA;IACvB,wCAAyB,CAAA;IACzB,wCAAyB,CAAA;AAC7B,CAAC,EAJW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAItB;AAwDD,IAAY,iBAMX;AAND,WAAY,iBAAiB;IACzB,kCAAa,CAAA;IACb,gCAAW,CAAA;IACX,gCAAW,CAAA;IACX,gCAAW,CAAA;IACX,gCAAW,CAAA;AACf,CAAC,EANW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAM5B;AAyBD;;;;;GAKG;AACH,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,8BAAW,CAAA;IACX,4BAAS,CAAA;IACT,gCAAa,CAAA;AACjB,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B"}