@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
@@ -6,14 +6,13 @@ import { IPublicWidgetTemplateDefinition } from "./PublicTemplate";
6
6
  import { IWidgetLayoutDefinition } from "./PublicLayout";
7
7
  import { IThemeWidgetDefaults } from "./IThemeManager";
8
8
  import { AlertDialogClassKey } from "./theme/ThemeAlertDialog";
9
- import { AppClassKey } from "./theme/ThemeApp";
9
+ import { AppClassKey, AppDivProps } from "./theme/ThemeApp";
10
10
  import { DrilldownUserSelectMenuClassKey } from "./theme/ThemeDrilldownUserSelectMenu";
11
11
  import { ErrorRendererClassKey } from "./theme/ThemeErrorRenderer";
12
12
  import { HtmlBoxClassKey, HtmlBoxProps } from "./theme/ThemeHtmlBox";
13
13
  import { LayoutClassKey } from "./theme/ThemeLayout";
14
14
  import { LayoutPageClassKey } from "./theme/ThemeLayoutPage";
15
15
  import { ReportAppBarClassKey } from "./theme/ThemeReportAppBar";
16
- import { ReportAppMenuClassKey } from "./theme/ThemeReportAppMenu";
17
16
  import { WidgetBoxClassKey } from "./theme/ThemeWidgetBox";
18
17
  import { WidgetBoxContentMessageClassKey } from "./theme/ThemeWidgetBoxContentMessage";
19
18
  import { ReactElement } from "react";
@@ -26,9 +25,15 @@ import { IPublicContext } from "./PublicContext";
26
25
  import { TableClassKey, TableProps } from "./theme/ThemeTable";
27
26
  import { PivotTableClassKey, PivotTableProps } from "./theme/ThemePivotTable";
28
27
  import { Components } from "@mui/material/styles/components";
29
- import { FilterPanelClassesKey } from "./theme/ThemeFilterPanel";
28
+ import { FilterPanelClassesKey, FilterPanelProps } from "./theme/ThemeFilterPanel";
30
29
  import { FilterCheckboxRadioChartOptions, FilterCheckboxRadioClassKey } from "./theme/ThemeFilterCheckboxRadio";
31
30
  import { ReportAppLeftPanelClassKey } from "./theme/ThemeReportAppLeftPanel";
31
+ import { FilterTreeChartOptions, FilterTreeClassKey } from "./theme/ThemeFilterTree";
32
+ import { DatePickerChartOptions, DatePickerClassKey } from "./theme/ThemeDatePicker";
33
+ import { FilterAutocompleteChartOptions, FilterAutocompleteClassesKey } from "./theme/ThemeFilterAutocomplete";
34
+ import { AppMenuIconProps, ThemeAppMenuIconClassKey } from "./theme/ThemeAppMenuIcon";
35
+ import { QueryBuilderNodeProps, ThemeQueryBuilderNodeClassKey } from "./theme/ThemeQueryBuilderNode";
36
+ import { KpiCardClassKey, KpiCardProps } from "./theme/ThemeKpiCard";
32
37
  export interface INoSchemaRendererOptions {
33
38
  missingSchema: string;
34
39
  }
@@ -54,6 +59,11 @@ export declare type ThemeTextFormattersOptions = Record<string, ThemeTextFormatt
54
59
  defaultPercentage?: ThemeTextFormatter;
55
60
  };
56
61
  declare type Amcharts4ThemeDateFormatter = {
62
+ /**
63
+ * Amcharts date formatter.
64
+ * Read more about the format codes here: https://www.amcharts.com/docs/v4/concepts/formatters/formatting-date-time/#Format_codes
65
+ * Read more about how these settings are used here: https://www.amcharts.com/docs/v4/concepts/axes/date-axis/#Setting_date_formats
66
+ */
57
67
  dateFormatter: {
58
68
  millisecond: {
59
69
  dateFormat: string;
@@ -99,6 +109,10 @@ export declare type ThemeFormattersOptions = {
99
109
  amCharts4?: Amcharts4ThemeDateFormatterOptions;
100
110
  };
101
111
  export interface ic3Palette {
112
+ /**
113
+ * The color for the page background (can be overridden at layout level).
114
+ */
115
+ pageBackgroundColor: Property.Color;
102
116
  /**
103
117
  * The color for a selected item
104
118
  */
@@ -128,6 +142,12 @@ export interface ic3Palette {
128
142
  * Report Application Menu
129
143
  */
130
144
  reportAppMenu: string;
145
+ /**
146
+ * List of named colors for ic3 applications ( MDX IDE, Admin ... )
147
+ */
148
+ appColors?: {
149
+ 'default'?: Property.Color;
150
+ } & Record<string, Property.Color>;
131
151
  /**
132
152
  * Darkens a color for an onhover effect
133
153
  *
@@ -194,6 +214,7 @@ interface MandatorySingleColors {
194
214
  grey900: Property.Color;
195
215
  }
196
216
  export interface ic3PaletteOptions {
217
+ pageBackgroundColor: Property.Color;
197
218
  selected?: Property.Color;
198
219
  selectedText?: Property.Color;
199
220
  selectedBackground?: Property.Color;
@@ -204,10 +225,10 @@ export interface ic3PaletteOptions {
204
225
  'default': Property.Color[];
205
226
  } & Record<string, Property.Color[]>;
206
227
  chartSingleColors?: Partial<MandatorySingleColors> & Record<string, Property.Color>;
207
- /**
208
- * Report Application Menu
209
- */
210
228
  reportAppMenu?: Property.Color;
229
+ appColors?: {
230
+ 'default'?: Property.Color;
231
+ } & Record<string, Property.Color>;
211
232
  onHover?: (color: Property.Color) => Property.Color;
212
233
  }
213
234
  export interface ic3Typography {
@@ -310,6 +331,27 @@ export interface ic3Theme {
310
331
  };
311
332
  };
312
333
  noSchemaRenderer?: (context: IPublicContext, options: INoSchemaRendererOptions) => ReactElement;
334
+ /**
335
+ * Theme settings for the editor (application & report).
336
+ */
337
+ editor: {
338
+ /**
339
+ * Editor logo. Defaults to icCubes logo.
340
+ */
341
+ logo: string;
342
+ /**
343
+ * Alt text for the logo image. Default = icCube.
344
+ */
345
+ logoAlt: string;
346
+ /**
347
+ * Top - Offset of dashboard page to the editor. Default 25.
348
+ */
349
+ viewPortOffsetTop: number;
350
+ /**
351
+ * Left - Offset of dashboard page to the editor. Default 25.
352
+ */
353
+ viewPortOffsetLeft: number;
354
+ };
313
355
  }
314
356
  export interface ic3ThemeOptions {
315
357
  id: string;
@@ -336,7 +378,7 @@ export interface ic3ThemeOptions {
336
378
  disableUserMenuEdition?: boolean;
337
379
  userMenuFilter?: (options: string[], templateDef?: IPublicWidgetTemplateDefinition<any>) => string[];
338
380
  };
339
- widgetBox: {
381
+ widgetBox?: {
340
382
  contentOffset: {
341
383
  top: number;
342
384
  left: number;
@@ -349,7 +391,7 @@ export interface ic3ThemeOptions {
349
391
  /**
350
392
  * The first defined layout is used as the default one.
351
393
  */
352
- layouts: IWidgetLayoutDefinition[];
394
+ layouts?: IWidgetLayoutDefinition[];
353
395
  /**
354
396
  * Styling for the sparklines in the sparkline transformation and the KPI card
355
397
  */
@@ -374,6 +416,27 @@ export interface ic3ThemeOptions {
374
416
  };
375
417
  };
376
418
  noSchemaRenderer?: (context: IPublicContext, options: INoSchemaRendererOptions) => ReactElement;
419
+ /**
420
+ * Theme settings for the editor (application & report).
421
+ */
422
+ editor?: {
423
+ /**
424
+ * Editor logo. Defaults to icCubes logo.
425
+ */
426
+ logo?: string;
427
+ /**
428
+ * Alt text for the logo image. Default = icCube.
429
+ */
430
+ logoAlt?: string;
431
+ /**
432
+ * Top - Offset of dashboard page to the editor. Default 25.
433
+ */
434
+ viewPortOffsetTop?: number;
435
+ /**
436
+ * Left - Offset of dashboard page to the editor. Default 25.
437
+ */
438
+ viewPortOffsetLeft?: number;
439
+ };
377
440
  }
378
441
  interface ic3BaseComponents {
379
442
  AlertDialog?: {
@@ -404,6 +467,18 @@ interface ic3BaseComponents {
404
467
  styleOverrides?: ComponentsOverrides["FilterSlider"];
405
468
  variants?: ComponentsVariants["FilterSlider"];
406
469
  };
470
+ FilterTree?: {
471
+ styleOverrides?: ComponentsOverrides["FilterTree"];
472
+ variants?: ComponentsVariants["FilterTree"];
473
+ };
474
+ FilterDatePicker?: {
475
+ styleOverrides?: ComponentsOverrides["FilterDatePicker"];
476
+ variants?: ComponentsVariants["FilterDatePicker"];
477
+ };
478
+ FilterAutocomplete?: {
479
+ styleOverrides?: ComponentsOverrides["FilterAutocomplete"];
480
+ variants?: ComponentsVariants["FilterAutocomplete"];
481
+ };
407
482
  GoogleMarker?: {
408
483
  variants?: ComponentsVariants['GoogleMarker'];
409
484
  };
@@ -411,6 +486,10 @@ interface ic3BaseComponents {
411
486
  styleOverrides?: ComponentsOverrides["HtmlBox"];
412
487
  variants?: ComponentsVariants["HtmlBox"];
413
488
  };
489
+ KpiCard?: {
490
+ styleOverrides?: ComponentsOverrides["KpiCard"];
491
+ variants?: ComponentsVariants["KpiCard"];
492
+ };
414
493
  Layout?: {
415
494
  styleOverrides?: ComponentsOverrides["Layout"];
416
495
  };
@@ -427,9 +506,6 @@ interface ic3BaseComponents {
427
506
  ReportAppLeftPanel?: {
428
507
  styleOverrides?: ComponentsOverrides["ReportAppLeftPanel"];
429
508
  };
430
- ReportAppMenu?: {
431
- styleOverrides?: ComponentsOverrides["ReportAppMenu"];
432
- };
433
509
  Table?: {
434
510
  variants?: ComponentsVariants['Table'];
435
511
  styleOverrides?: ComponentsOverrides["Table"];
@@ -441,6 +517,12 @@ interface ic3BaseComponents {
441
517
  WidgetBoxContentMessage?: {
442
518
  styleOverrides?: ComponentsOverrides["WidgetBoxContentMessage"];
443
519
  };
520
+ AppMenuIcon?: {
521
+ styleOverrides?: ComponentsOverrides["AppMenuIcon"];
522
+ };
523
+ QueryBuilderNode?: {
524
+ styleOverrides?: ComponentsOverrides["QueryBuilderNode"];
525
+ };
444
526
  }
445
527
  /**
446
528
  * For Typing purpose extending MUI Theme with ic3 components
@@ -455,9 +537,55 @@ export interface ic3Components extends ic3BaseComponents, Components {
455
537
  declare module "@mui/material/styles/createPalette" {
456
538
  interface Palette {
457
539
  ic3: ic3Palette;
540
+ mdx: {
541
+ annotation: string;
542
+ comment: string;
543
+ definitionKeyword: string;
544
+ keyword: string;
545
+ labelName: string;
546
+ number: string;
547
+ operator: string;
548
+ propertyName: string;
549
+ separator: string;
550
+ string: string;
551
+ variableName: string;
552
+ dimension: string;
553
+ hierarchy: string;
554
+ level: string;
555
+ member: string;
556
+ measureGroup: string;
557
+ measureFolder: string;
558
+ measure: string;
559
+ set: string;
560
+ calcMeasure: string;
561
+ event: string;
562
+ };
458
563
  }
459
564
  interface PaletteOptions {
460
565
  ic3?: ic3PaletteOptions;
566
+ mdx?: {
567
+ annotation?: string;
568
+ comment?: string;
569
+ definitionKeyword?: string;
570
+ keyword?: string;
571
+ labelName?: string;
572
+ number?: string;
573
+ operator?: string;
574
+ propertyName?: string;
575
+ separator?: string;
576
+ string?: string;
577
+ variableName?: string;
578
+ dimension?: string;
579
+ hierarchy?: string;
580
+ level?: string;
581
+ member?: string;
582
+ measureGroup?: string;
583
+ measureFolder?: string;
584
+ measure?: string;
585
+ set?: string;
586
+ calcMeasure?: string;
587
+ event?: string;
588
+ };
461
589
  }
462
590
  }
463
591
  declare module "@mui/material/styles/createTypography" {
@@ -496,29 +624,41 @@ declare module '@mui/material/styles/overrides' {
496
624
  FilterButtons: FilterButtonsClassKey;
497
625
  FilterPanel: FilterPanelClassesKey;
498
626
  FilterSlider: FilterSliderClassKey;
627
+ FilterTree: FilterTreeClassKey;
628
+ FilterDatePicker: DatePickerClassKey;
629
+ FilterAutocomplete: FilterAutocompleteClassesKey;
499
630
  HtmlBox: HtmlBoxClassKey;
631
+ KpiCard: KpiCardClassKey;
500
632
  Layout: LayoutClassKey;
501
633
  LayoutPage: LayoutPageClassKey;
502
634
  PivotTable: PivotTableClassKey;
503
- ReportAppBar: ReportAppBarClassKey;
504
- ReportAppMenu: ReportAppMenuClassKey;
505
635
  Table: TableClassKey;
636
+ ReportAppBar: ReportAppBarClassKey;
506
637
  WidgetBox: WidgetBoxClassKey;
507
638
  WidgetBoxContentMessage: WidgetBoxContentMessageClassKey;
508
639
  ReportAppLeftPanel: ReportAppLeftPanelClassKey;
640
+ AppMenuIcon: ThemeAppMenuIconClassKey;
641
+ QueryBuilderNode: ThemeQueryBuilderNodeClassKey;
509
642
  }
510
643
  }
511
644
  declare module '@mui/material/styles/props' {
512
645
  interface ComponentsPropsList {
513
646
  FilterCheckbox: FilterCheckboxRadioChartOptions;
514
647
  FilterButtons: FilterButtonsChartOptions;
515
- FilterPanel: Record<never, any>;
648
+ FilterPanel: FilterPanelProps;
516
649
  FilterSlider: FilterSliderChartOptions;
517
- GoogleMarker: GoogleMarkerVariantChartOptions;
650
+ FilterTree: FilterTreeChartOptions;
651
+ FilterDatePicker: DatePickerChartOptions;
652
+ FilterAutocomplete: FilterAutocompleteChartOptions;
518
653
  HtmlBox: HtmlBoxProps;
654
+ KpiCard: KpiCardProps;
519
655
  PivotTable: PivotTableProps;
520
656
  Table: TableProps;
521
657
  WidgetBox: Record<never, any>;
658
+ GoogleMarker: GoogleMarkerVariantChartOptions;
659
+ AppMenuIconStyled: AppMenuIconProps;
660
+ App: AppDivProps;
661
+ QueryBuilderNode: QueryBuilderNodeProps;
522
662
  }
523
663
  }
524
664
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"PublicTheme.js","sourceRoot":"","sources":["../src/PublicTheme.ts"],"names":[],"mappings":";;;AAyQA,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC7B,8CAAqB,CAAA;IACrB,4CAAmB,CAAA;AACvB,CAAC,EAHW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAGhC"}
1
+ {"version":3,"file":"PublicTheme.js","sourceRoot":"","sources":["../src/PublicTheme.ts"],"names":[],"mappings":";;;AA8RA,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC7B,8CAAqB,CAAA;IACrB,4CAAmB,CAAA;AACvB,CAAC,EAHW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAGhC"}
@@ -1,9 +1,10 @@
1
- import { AxisCoordinate, ConvertToTypeParseSettings, EntityItem, IMdxAxisSeriesInfo, ITidyColumnsSource, ITidyTableSelection, MdxInfo, MdxMemberCoordinates, TidyCellError, TidyColumnsSubType, TidyColumnsType } from "./PublicTidyTableTypes";
1
+ import { AxisCoordinate, ConvertToTypeParseSettings, EntityItem, GroupRowIndices, IMdxAxisSeriesInfo, ITidyColumnIndex, ITidyColumnsSource, MdxInfo, MdxMemberCoordinates, TidyCellError, TidyColumnsSubType, TidyColumnsType } from "./PublicTidyTableTypes";
2
2
  import { TidyActionEvent } from "./IcEvent";
3
3
  import { ReactElement } from "react";
4
4
  import { ThemeTextFormatter } from "./PublicTheme";
5
5
  import { Property } from "csstype";
6
6
  import { AppNotification } from "./INotification";
7
+ import { MdxNodeIdentifier } from "./PublicTidyTable";
7
8
  export interface ITidyColumnTypedValue {
8
9
  value: any;
9
10
  fValue?: string;
@@ -22,6 +23,10 @@ export interface ITidyColumnAddValueCopyRow {
22
23
  * Properties with a special meaning
23
24
  */
24
25
  export declare enum ITidyColumnNamedProperties {
26
+ /**
27
+ * The value of a cell.
28
+ */
29
+ mdxCellValue = "value",
25
30
  /**
26
31
  * The formatted value of a cell. For example, 5003 in euros is formatted as €5,003
27
32
  */
@@ -82,7 +87,11 @@ export declare enum ITidyColumnNamedProperties {
82
87
  /**
83
88
  * Show this when hovering over the cell (or the visualisation representing the cell)
84
89
  */
85
- tooltip = "tooltip"
90
+ tooltip = "tooltip",
91
+ /**
92
+ * Name for datetime properties for levels of type Year, Month, Day, Hour, etc..
93
+ */
94
+ datetime = "datetime"
86
95
  }
87
96
  export declare const CharacterTidyColumnProperties: Set<string>;
88
97
  /**
@@ -200,12 +209,12 @@ export interface ITidyBaseColumnReadonly<T> {
200
209
  /**
201
210
  * Apply a function to the groups of unique values in this column
202
211
  *
203
- * @param useMdxUniqueName If true, use MDX-unique names to construct groups. Default = use column values.
204
- *
205
- * @return a map with getRowIdentifier for the group -> row indices in the group.
212
+ * @param useMdx If true, use MDX-unique names to construct groups. If false, use the columns values.
213
+ * Default = false.
206
214
  *
215
+ * @returns a map with indexes for each group. Key -> row indeces
207
216
  */
208
- groupBy(useMdxUniqueName?: boolean): Map<string, number[]>;
217
+ groupBy(useMdx?: boolean): Map<string, GroupRowIndices>;
209
218
  /**
210
219
  * Same as reIndex but creating a new column leaving this column untouched.
211
220
  *
@@ -301,6 +310,7 @@ export interface ITidyBaseColumn<T> extends ITidyBaseColumnReadonly<T> {
301
310
  * Return the properties of a column for a given cell index.
302
311
  *
303
312
  * @param idx row index of cell.
313
+ * @deprecated
304
314
  */
305
315
  getPropertiesAt(idx: number): Record<string, any>;
306
316
  /**
@@ -312,6 +322,13 @@ export interface ITidyBaseColumn<T> extends ITidyBaseColumnReadonly<T> {
312
322
  * Create and return the entity item at position idx for generating events.
313
323
  */
314
324
  getEntityItem(idx: number): EntityItem | undefined;
325
+ /**
326
+ * Get the entity item for the column. Used in column selection.
327
+ * Returns empty array if there are no entityItems.
328
+ * @param hierarchyIndeces only include these hierarchies for generating the EntityItem. Leave undefined to include
329
+ * all.
330
+ */
331
+ getColumnEntityItem(hierarchyIndeces?: number[]): EntityItem[];
315
332
  /**
316
333
  * Get the index of the parent. Returns -1 if the parent is the root.
317
334
  * @param idx the index to find the parent of.
@@ -347,6 +364,12 @@ export interface ITidyBaseColumn<T> extends ITidyBaseColumnReadonly<T> {
347
364
  * Returns the MDX info at a row index.
348
365
  */
349
366
  getMdxInfo(idx: number): MdxInfo | undefined;
367
+ /**
368
+ * Returns the key from the model. Values with the same key are the same in the underlying model. Rows
369
+ * with the same value but with a different key, are treated as different values.
370
+ * @param rowIdx
371
+ */
372
+ getUid(rowIdx: number): string;
350
373
  /**
351
374
  * Get extra information of the MDX axis used for this column, if available.
352
375
  */
@@ -377,7 +400,7 @@ export interface ITidyBaseColumn<T> extends ITidyBaseColumnReadonly<T> {
377
400
  */
378
401
  setName(name: string): void;
379
402
  /**
380
- * Set the number formatter of the column, calculating and adding the 'formattedValue' property.
403
+ * Set the number/date formatter of the column, calculating and adding the 'formattedValue' property.
381
404
  */
382
405
  setNumberFormat(format: ThemeTextFormatter | undefined): void;
383
406
  /**
@@ -470,8 +493,14 @@ export interface ITidyBaseColumn<T> extends ITidyBaseColumnReadonly<T> {
470
493
  /**
471
494
  * Set the formatted values. Use this if you have the formatted values pre-calculated
472
495
  * or a function to calculate the formatted values.
496
+ * @param caption the caption for the added property
473
497
  */
474
- setFormattedValues(formattedValues: (string | null)[] | ((value: T | undefined) => string)): void;
498
+ setFormattedValues(formattedValues: (string | null)[] | ((value: T | undefined) => string), caption?: string): void;
499
+ /**
500
+ * Set the colors for the column.
501
+ * @param caption the caption for the added property
502
+ */
503
+ setColors(colors: (Property.Color | null)[], caption?: string): void;
475
504
  /**
476
505
  * Return a new column with transformed values.
477
506
  * @param fun function with one parameter. Describes the transformation.
@@ -517,12 +546,6 @@ export interface ITidyBaseColumn<T> extends ITidyBaseColumnReadonly<T> {
517
546
  * The ITidyTableSelection row identifier for the row (uniqueName if it's an MDX like column)
518
547
  */
519
548
  getSelectionRowIdentifier(idx: number): string;
520
- /**
521
- * @param sel the selection columns
522
- * @param colIdx if multiple columns, the colIdx in the selectionColumn for the lookup
523
- * @param startIdx if defined, start lookup at this position
524
- */
525
- findRowIdxForSelection(sel: ITidyTableSelection, colIdx?: number, startIdx?: number): number | undefined;
526
549
  /**
527
550
  * Returns the row index of the first occurrence where the values of this column equals value.
528
551
  * Returns undefined if it did not find the value.
@@ -560,21 +583,44 @@ export interface ITidyBaseColumn<T> extends ITidyBaseColumnReadonly<T> {
560
583
  */
561
584
  setCellDecoration(decoration: PublicTidyColumnCellDecoration): void;
562
585
  /**
563
- * Returns true if and only if the column represents the underlying MDX structure.
564
- * Always false for non-mdx columns.
586
+ * Return the index of the column.
587
+ */
588
+ getIndex(): ITidyColumnIndex[];
589
+ /**
590
+ * undefined if it's not an Mdx member column
565
591
  */
566
- isMdxStructureIntact(): boolean;
592
+ getQueryNodeIdentifier(idx: number): MdxNodeIdentifier | undefined;
567
593
  }
568
594
  export interface PublicTidyColumnCellDecorationRenderedOptions {
569
595
  cellWidth?: number;
570
596
  cellHeight: number;
571
597
  }
572
- export declare type PublicTidyColumnCellDecoration = Partial<{
573
- handlesCellsOnError: boolean;
574
- appliesToCell: (rowIdx: number) => boolean;
575
- rendered: (rowIdx: number, options?: PublicTidyColumnCellDecorationRenderedOptions) => React.ReactElement;
576
- cssStyles: (rowIdx: number) => Record<string, any> | undefined;
577
- }>;
598
+ export interface BaseTidyColumnCellDecoration {
599
+ handlesCellsOnError?: boolean;
600
+ appliesToCell?: (rowIdx: number) => boolean;
601
+ /**
602
+ *
603
+ * If an object is returned the underlying code uses emotion css function to convert to a className so you can do className like css
604
+ *
605
+ * {
606
+ * fontSize: "0.7rem",
607
+ * ':hover': {
608
+ * fontSize: "1.4rem",
609
+ * }
610
+ * }
611
+ *
612
+ */
613
+ cssStyles?: (rowIdx: number) => Record<string, any> | undefined;
614
+ }
615
+ export interface ReactTidyColumnCellDecoration extends BaseTidyColumnCellDecoration {
616
+ stringRenderer?: false;
617
+ renderer?: (rowIdx: number, options?: PublicTidyColumnCellDecorationRenderedOptions) => React.ReactElement;
618
+ }
619
+ export interface HtmlTidyColumnCellDecoration extends BaseTidyColumnCellDecoration {
620
+ stringRenderer: true;
621
+ renderer: (rowIdx: number, options?: PublicTidyColumnCellDecorationRenderedOptions) => string;
622
+ }
623
+ export declare type PublicTidyColumnCellDecoration = ReactTidyColumnCellDecoration | HtmlTidyColumnCellDecoration;
578
624
  export declare type ITidyColumn = ITidyBaseColumn<any>;
579
625
  export declare type ITidyUnknownColumn = ITidyBaseColumn<unknown | null>;
580
626
  export declare type ITidyNullColumn = ITidyBaseColumn<null>;
@@ -6,6 +6,10 @@ exports.TidyTableNumberExprColumnMetas = exports.TidyTableTextExprColumnMetas =
6
6
  */
7
7
  var ITidyColumnNamedProperties;
8
8
  (function (ITidyColumnNamedProperties) {
9
+ /**
10
+ * The value of a cell.
11
+ */
12
+ ITidyColumnNamedProperties["mdxCellValue"] = "value";
9
13
  /**
10
14
  * The formatted value of a cell. For example, 5003 in euros is formatted as €5,003
11
15
  */
@@ -67,6 +71,10 @@ var ITidyColumnNamedProperties;
67
71
  * Show this when hovering over the cell (or the visualisation representing the cell)
68
72
  */
69
73
  ITidyColumnNamedProperties["tooltip"] = "tooltip";
74
+ /**
75
+ * Name for datetime properties for levels of type Year, Month, Day, Hour, etc..
76
+ */
77
+ ITidyColumnNamedProperties["datetime"] = "datetime";
70
78
  })(ITidyColumnNamedProperties = exports.ITidyColumnNamedProperties || (exports.ITidyColumnNamedProperties = {}));
71
79
  exports.CharacterTidyColumnProperties = new Set([
72
80
  ITidyColumnNamedProperties.mdxCellFormattedValue,
@@ -1 +1 @@
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;AAwoBU,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"}
1
+ {"version":3,"file":"PublicTidyColumn.js","sourceRoot":"","sources":["../src/PublicTidyColumn.ts"],"names":[],"mappings":";;;AA8CA;;GAEG;AACH,IAAY,0BAsFX;AAtFD,WAAY,0BAA0B;IAElC;;OAEG;IACH,oDAAsB,CAAA;IAEtB;;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;IAEnB;;OAEG;IACH,mDAAqB,CAAA;AACzB,CAAC,EAtFW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAsFrC;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;AAwrBU,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"}
@@ -56,7 +56,7 @@ export interface TidyHistogramOptions extends FormFieldObject {
56
56
  */
57
57
  includeRowIds?: boolean;
58
58
  }
59
- export declare const TidyHistogramMetaOptions: (group?: string | undefined, hideSort?: boolean) => FormFields<TidyHistogramOptions>;
59
+ export declare const TidyHistogramMetaOptions: (group?: string, hideSort?: boolean) => FormFields<TidyHistogramOptions>;
60
60
  export declare const TidyHistogramBucketColName = "bucket";
61
61
  export declare const TidyHistogramCountColName = "count";
62
62
  export declare const TidyHistogramRowIdsName = "rowIds";
@@ -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
  /**