@sisense/sdk-ui-angular 2.19.0 → 2.21.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 (124) hide show
  1. package/dist/esm2020/lib/components/dashboard/dashboard.component.mjs +3 -3
  2. package/dist/esm2020/lib/components/widgets/widget.component.mjs +3 -3
  3. package/dist/esm2020/lib/helpers/chart-props-preact-translator.mjs +22 -0
  4. package/dist/esm2020/lib/helpers/dashboard-props-preact-translator.mjs +8 -8
  5. package/dist/esm2020/lib/helpers/widget-props-preact-translator.mjs +25 -5
  6. package/dist/esm2020/lib/services/angular-component-adapter.mjs +100 -0
  7. package/dist/esm2020/lib/services/custom-widgets.service.mjs +26 -6
  8. package/dist/esm2020/lib/services/dashboard.service.mjs +4 -4
  9. package/dist/esm2020/lib/services/formula.service.mjs +102 -0
  10. package/dist/esm2020/lib/services/index.mjs +2 -1
  11. package/dist/esm2020/lib/services/widget.service.mjs +4 -4
  12. package/dist/esm2020/lib/types/custom-widget-component-props.mjs +2 -0
  13. package/dist/esm2020/lib/types/index.mjs +2 -1
  14. package/dist/esm2020/lib/utilities/dashboard-helpers.mjs +9 -8
  15. package/dist/esm2020/lib/utilities/dashboard-model-translator.mjs +3 -2
  16. package/dist/esm2020/lib/utilities/widget-model-translator.mjs +10 -8
  17. package/dist/esm2020/translation/__external__/de-de/index.mjs +2 -0
  18. package/dist/esm2020/translation/__external__/de-de/sisense-sdk-ui-angular-translation-__external__-de-de.mjs +5 -0
  19. package/dist/esm2020/translation/__external__/en-us/index.mjs +2 -0
  20. package/dist/esm2020/translation/__external__/en-us/sisense-sdk-ui-angular-translation-__external__-en-us.mjs +5 -0
  21. package/dist/esm2020/translation/__external__/es-ar/index.mjs +2 -0
  22. package/dist/esm2020/translation/__external__/es-ar/sisense-sdk-ui-angular-translation-__external__-es-ar.mjs +5 -0
  23. package/dist/esm2020/translation/__external__/es-es/index.mjs +2 -0
  24. package/dist/esm2020/translation/__external__/es-es/sisense-sdk-ui-angular-translation-__external__-es-es.mjs +5 -0
  25. package/dist/esm2020/translation/__external__/fr-fr/index.mjs +2 -0
  26. package/dist/esm2020/translation/__external__/fr-fr/sisense-sdk-ui-angular-translation-__external__-fr-fr.mjs +5 -0
  27. package/dist/esm2020/translation/__external__/it-it/index.mjs +2 -0
  28. package/dist/esm2020/translation/__external__/it-it/sisense-sdk-ui-angular-translation-__external__-it-it.mjs +5 -0
  29. package/dist/esm2020/translation/__external__/ja-jp/index.mjs +2 -0
  30. package/dist/esm2020/translation/__external__/ja-jp/sisense-sdk-ui-angular-translation-__external__-ja-jp.mjs +5 -0
  31. package/dist/esm2020/translation/__external__/ko-kr/index.mjs +2 -0
  32. package/dist/esm2020/translation/__external__/ko-kr/sisense-sdk-ui-angular-translation-__external__-ko-kr.mjs +5 -0
  33. package/dist/esm2020/translation/__external__/nl-nl/index.mjs +2 -0
  34. package/dist/esm2020/translation/__external__/nl-nl/sisense-sdk-ui-angular-translation-__external__-nl-nl.mjs +5 -0
  35. package/dist/esm2020/translation/__external__/pt-br/index.mjs +2 -0
  36. package/dist/esm2020/translation/__external__/pt-br/sisense-sdk-ui-angular-translation-__external__-pt-br.mjs +5 -0
  37. package/dist/esm2020/translation/__external__/ru-ru/index.mjs +2 -0
  38. package/dist/esm2020/translation/__external__/ru-ru/sisense-sdk-ui-angular-translation-__external__-ru-ru.mjs +5 -0
  39. package/dist/esm2020/translation/__external__/tr-tr/index.mjs +2 -0
  40. package/dist/esm2020/translation/__external__/tr-tr/sisense-sdk-ui-angular-translation-__external__-tr-tr.mjs +5 -0
  41. package/dist/esm2020/translation/__external__/zh-cn/index.mjs +2 -0
  42. package/dist/esm2020/translation/__external__/zh-cn/sisense-sdk-ui-angular-translation-__external__-zh-cn.mjs +5 -0
  43. package/dist/esm2020/version.mjs +2 -2
  44. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-de-de.mjs +6 -0
  45. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-de-de.mjs.map +1 -0
  46. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-en-us.mjs +6 -0
  47. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-en-us.mjs.map +1 -0
  48. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-es-ar.mjs +6 -0
  49. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-es-ar.mjs.map +1 -0
  50. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-es-es.mjs +6 -0
  51. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-es-es.mjs.map +1 -0
  52. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-fr-fr.mjs +6 -0
  53. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-fr-fr.mjs.map +1 -0
  54. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-it-it.mjs +6 -0
  55. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-it-it.mjs.map +1 -0
  56. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-ja-jp.mjs +6 -0
  57. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-ja-jp.mjs.map +1 -0
  58. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-ko-kr.mjs +6 -0
  59. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-ko-kr.mjs.map +1 -0
  60. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-nl-nl.mjs +6 -0
  61. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-nl-nl.mjs.map +1 -0
  62. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-pt-br.mjs +6 -0
  63. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-pt-br.mjs.map +1 -0
  64. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-ru-ru.mjs +6 -0
  65. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-ru-ru.mjs.map +1 -0
  66. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-tr-tr.mjs +6 -0
  67. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-tr-tr.mjs.map +1 -0
  68. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-zh-cn.mjs +6 -0
  69. package/dist/fesm2015/sisense-sdk-ui-angular-translation-__external__-zh-cn.mjs.map +1 -0
  70. package/dist/fesm2015/sisense-sdk-ui-angular.mjs +276 -36
  71. package/dist/fesm2015/sisense-sdk-ui-angular.mjs.map +1 -1
  72. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-de-de.mjs +6 -0
  73. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-de-de.mjs.map +1 -0
  74. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-en-us.mjs +6 -0
  75. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-en-us.mjs.map +1 -0
  76. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-es-ar.mjs +6 -0
  77. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-es-ar.mjs.map +1 -0
  78. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-es-es.mjs +6 -0
  79. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-es-es.mjs.map +1 -0
  80. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-fr-fr.mjs +6 -0
  81. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-fr-fr.mjs.map +1 -0
  82. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-it-it.mjs +6 -0
  83. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-it-it.mjs.map +1 -0
  84. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-ja-jp.mjs +6 -0
  85. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-ja-jp.mjs.map +1 -0
  86. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-ko-kr.mjs +6 -0
  87. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-ko-kr.mjs.map +1 -0
  88. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-nl-nl.mjs +6 -0
  89. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-nl-nl.mjs.map +1 -0
  90. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-pt-br.mjs +6 -0
  91. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-pt-br.mjs.map +1 -0
  92. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-ru-ru.mjs +6 -0
  93. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-ru-ru.mjs.map +1 -0
  94. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-tr-tr.mjs +6 -0
  95. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-tr-tr.mjs.map +1 -0
  96. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-zh-cn.mjs +6 -0
  97. package/dist/fesm2020/sisense-sdk-ui-angular-translation-__external__-zh-cn.mjs.map +1 -0
  98. package/dist/fesm2020/sisense-sdk-ui-angular.mjs +292 -38
  99. package/dist/fesm2020/sisense-sdk-ui-angular.mjs.map +1 -1
  100. package/dist/lib/helpers/chart-props-preact-translator.d.ts +5 -0
  101. package/dist/lib/helpers/dashboard-props-preact-translator.d.ts +2 -2
  102. package/dist/lib/helpers/widget-props-preact-translator.d.ts +7 -4
  103. package/dist/lib/services/angular-component-adapter.d.ts +55 -0
  104. package/dist/lib/services/custom-widgets.service.d.ts +2 -1
  105. package/dist/lib/services/formula.service.d.ts +73 -0
  106. package/dist/lib/services/index.d.ts +1 -0
  107. package/dist/lib/types/custom-widget-component-props.d.ts +73 -0
  108. package/dist/lib/types/index.d.ts +1 -0
  109. package/dist/package.json +111 -4
  110. package/dist/translation/__external__/de-de/index.d.ts +1 -0
  111. package/dist/translation/__external__/en-us/index.d.ts +1 -0
  112. package/dist/translation/__external__/es-ar/index.d.ts +1 -0
  113. package/dist/translation/__external__/es-es/index.d.ts +1 -0
  114. package/dist/translation/__external__/fr-fr/index.d.ts +1 -0
  115. package/dist/translation/__external__/it-it/index.d.ts +1 -0
  116. package/dist/translation/__external__/ja-jp/index.d.ts +1 -0
  117. package/dist/translation/__external__/ko-kr/index.d.ts +1 -0
  118. package/dist/translation/__external__/nl-nl/index.d.ts +1 -0
  119. package/dist/translation/__external__/pt-br/index.d.ts +1 -0
  120. package/dist/translation/__external__/ru-ru/index.d.ts +1 -0
  121. package/dist/translation/__external__/tr-tr/index.d.ts +1 -0
  122. package/dist/translation/__external__/zh-cn/index.d.ts +1 -0
  123. package/dist/version.d.ts +1 -1
  124. package/package.json +18 -7
@@ -0,0 +1,5 @@
1
+ import type { ChartProps as ChartPropsPreact, PivotTableProps as PivotTablePropsPreact, TableProps as TablePropsPreact } from '@sisense/sdk-ui-preact';
2
+ import type { ChartProps, PivotTableProps, TableProps } from '../components';
3
+ export declare function toChartProps(preactProps: ChartPropsPreact): ChartProps;
4
+ export declare function toTableProps(preactProps: TablePropsPreact): TableProps;
5
+ export declare function toPivotTableProps(preactProps: PivotTablePropsPreact): PivotTableProps;
@@ -1,4 +1,4 @@
1
1
  import { DashboardProps as DashboardPropsPreact } from '@sisense/sdk-ui-preact';
2
2
  import type { DashboardProps } from '../components/dashboard';
3
- export declare function translateToPreactDashboardProps(dashboardProps: DashboardProps): DashboardPropsPreact;
4
- export declare function translateFromPreactDashboardProps(dashboardProps: DashboardPropsPreact): DashboardProps;
3
+ export declare function toPreactDashboardProps(angularProps: DashboardProps): DashboardPropsPreact;
4
+ export declare function toDashboardProps(preactProps: DashboardPropsPreact): DashboardProps;
@@ -1,4 +1,7 @@
1
- import { WidgetProps as WidgetPropsPreact } from '@sisense/sdk-ui-preact';
2
- import type { WidgetProps } from '../components/widgets';
3
- export declare function translateToPreactWidgetProps(widgetProps: WidgetProps): WidgetPropsPreact;
4
- export declare function translateFromPreactWidgetProps(widgetProps: WidgetPropsPreact): WidgetProps;
1
+ import type { ChartWidgetProps as ChartWidgetPropsPreact, PivotTableWidgetProps as PivotTableWidgetPropsPreact, TextWidgetProps as TextWidgetPropsPreact, WidgetProps as WidgetPropsPreact } from '@sisense/sdk-ui-preact';
2
+ import type { ChartWidgetProps, PivotTableWidgetProps, TextWidgetProps, WidgetProps } from '../components/widgets';
3
+ export declare function toPreactWidgetProps(angularProps: WidgetProps): WidgetPropsPreact;
4
+ export declare function toWidgetProps(preactProps: WidgetPropsPreact): WidgetProps;
5
+ export declare function toChartWidgetProps(preactProps: ChartWidgetPropsPreact): ChartWidgetProps;
6
+ export declare function toPivotTableWidgetProps(preactProps: PivotTableWidgetPropsPreact): PivotTableWidgetProps;
7
+ export declare function toTextWidgetProps(preactProps: TextWidgetPropsPreact): TextWidgetProps;
@@ -0,0 +1,55 @@
1
+ import { Type } from '@angular/core';
2
+ import { type ExternalComponentAdapter } from '@sisense/sdk-ui-preact';
3
+ import { DynamicRenderer } from './dynamic-renderer.service';
4
+ /**
5
+ * Adapter class that manages the lifecycle of an Angular component
6
+ * rendered within a Preact context. This provides efficient updates
7
+ * by reusing the component instance instead of recreating it on every
8
+ * props change.
9
+ *
10
+ * This pattern mirrors how `ComponentAdapter` works for regular Preact
11
+ * components, ensuring consistent behavior between regular widgets
12
+ * and custom Angular widgets.
13
+ *
14
+ * Implements ExternalComponentAdapter interface to be compatible with
15
+ * the ExternalComponentAdapterElement in sdk-ui-preact.
16
+ *
17
+ * @internal
18
+ */
19
+ export declare class AngularComponentAdapter<Props> implements ExternalComponentAdapter<Props> {
20
+ private dynamicRenderer;
21
+ private componentClass;
22
+ private componentRef;
23
+ private element;
24
+ private isDestroyed;
25
+ /** Set of property names declared as @Input() on the component */
26
+ private inputNames;
27
+ constructor(dynamicRenderer: DynamicRenderer, componentClass: Type<Props>);
28
+ /**
29
+ * Mounts the Angular component into the container element.
30
+ * This should only be called once when the Preact wrapper mounts.
31
+ *
32
+ * @param container - The DOM element to mount the Angular component into
33
+ * @param props - Initial props to pass to the component
34
+ */
35
+ mount(container: HTMLElement, props: Props): void;
36
+ /**
37
+ * Updates the props on the existing Angular component instance.
38
+ * Uses ComponentRef.setInput() for @Input properties to ensure proper
39
+ * change detection, OnPush component marking, and ngOnChanges lifecycle
40
+ * hook execution. Uses direct assignment for non-input properties
41
+ * (e.g., event callbacks).
42
+ *
43
+ * @param props - New props to apply to the component
44
+ */
45
+ update(props: Props): void;
46
+ /**
47
+ * Destroys the Angular component and cleans up resources.
48
+ * This should be called when the Preact wrapper unmounts.
49
+ */
50
+ destroy(): void;
51
+ /**
52
+ * Returns whether the adapter has an active component instance.
53
+ */
54
+ isActive(): boolean;
55
+ }
@@ -1,6 +1,7 @@
1
1
  import { Type } from '@angular/core';
2
- import { type CustomWidgetComponent as CustomWidgetComponentPreact, type CustomWidgetComponentProps, type GenericDataOptions } from '@sisense/sdk-ui-preact';
2
+ import { type CustomWidgetComponent as CustomWidgetComponentPreact, type GenericDataOptions } from '@sisense/sdk-ui-preact';
3
3
  import { BehaviorSubject } from 'rxjs';
4
+ import type { CustomWidgetComponentProps } from '../types';
4
5
  import { DynamicRenderer } from './dynamic-renderer.service';
5
6
  import * as i0 from "@angular/core";
6
7
  /** Re-export related types */
@@ -0,0 +1,73 @@
1
+ import type { CalculatedMeasure } from '@sisense/sdk-data';
2
+ import { type UseGetSharedFormulaParams as UseGetSharedFormulaParamsPreact } from '@sisense/sdk-ui-preact';
3
+ import { SisenseContextService } from './sisense-context.service';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Parameters for retrieving a shared formula.
7
+ */
8
+ export interface GetSharedFormulaParams extends Omit<UseGetSharedFormulaParamsPreact, 'enabled'> {
9
+ }
10
+ /**
11
+ * Service for working with shared formulas.
12
+ *
13
+ * @group Fusion Assets
14
+ * @fusionEmbed
15
+ */
16
+ export declare class FormulaService {
17
+ private sisenseContextService;
18
+ constructor(sisenseContextService: SisenseContextService);
19
+ /**
20
+ * Fetch a [shared formula](https://docs.sisense.com/main/SisenseLinux/shared-formulas.htm) from a Fusion instance.
21
+ *
22
+ * The formula can be identified either by `oid` or by `name` and `dataSource` pair.
23
+ *
24
+ * When the retrieval is successful but the shared formula is not found, the result is `null`. When the retrieval is not successful, the promise is rejected with an error.
25
+ *
26
+ * ## Example
27
+ *
28
+ * Retrieve a shared formula by oid:
29
+ *
30
+ * ```ts
31
+ * try {
32
+ * const formula = await formulaService.getSharedFormula({
33
+ * oid: 'd61c337b-fabc-4e9e-b4cc-a30116857153',
34
+ * });
35
+ *
36
+ * if (formula) {
37
+ * console.log('Formula found:', formula);
38
+ * } else {
39
+ * console.log('Formula not found');
40
+ * }
41
+ * } catch (error) {
42
+ * console.error('Error:', error);
43
+ * }
44
+ * ```
45
+ *
46
+ * ## Example
47
+ *
48
+ * Retrieve a shared formula by name and data source:
49
+ *
50
+ * ```ts
51
+ * try {
52
+ * const formula = await formulaService.getSharedFormula({
53
+ * name: 'My Shared Formula',
54
+ * dataSource: DM.DataSource,
55
+ * });
56
+ *
57
+ * if (formula) {
58
+ * console.log('Formula found:', formula);
59
+ * } else {
60
+ * console.log('Formula not found');
61
+ * }
62
+ * } catch (error) {
63
+ * console.error('Error:', error);
64
+ * }
65
+ * ```
66
+ *
67
+ * @param params - Parameters for retrieving the shared formula. Must include either `oid` or both `name` and `dataSource`.
68
+ * @returns Promise that resolves to the shared formula, or `null` if not found
69
+ */
70
+ getSharedFormula(params: GetSharedFormulaParams): Promise<CalculatedMeasure | null>;
71
+ static ɵfac: i0.ɵɵFactoryDeclaration<FormulaService, never>;
72
+ static ɵprov: i0.ɵɵInjectableDeclaration<FormulaService>;
73
+ }
@@ -1,6 +1,7 @@
1
1
  export * from './custom-widgets.service';
2
2
  export * from './dashboard.service';
3
3
  export * from './filter.service';
4
+ export * from './formula.service';
4
5
  export * from './hierarchy.service';
5
6
  export * from './query.service';
6
7
  export * from './sisense-context.service';
@@ -0,0 +1,73 @@
1
+ import type { DataSource, Filter, FilterRelations } from '@sisense/sdk-data';
2
+ import type { AbstractDataPointWithEntries, CustomWidgetEventProps, CustomWidgetStyleOptions, GenericDataOptions } from '@sisense/sdk-ui-preact';
3
+ /**
4
+ * Props passed to a user-defined custom widget component.
5
+ *
6
+ * @typeParam DataOptions - The shape of data options for this custom widget
7
+ * @typeParam StyleOptions - The shape of style options for this custom widget
8
+ * @typeParam DataPoint - The shape of data points for event handlers
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * import { Component, Input } from '@angular/core';
13
+ * import {
14
+ * CustomWidgetComponentProps,
15
+ * CustomWidgetsService,
16
+ * GenericDataOptions,
17
+ * AbstractDataPointWithEntries,
18
+ * DataPointEntry,
19
+ * StyledColumn,
20
+ * StyledMeasureColumn,
21
+ * } from '@sisense/sdk-ui-angular';
22
+ * import type { DataSource, Filter, FilterRelations } from '@sisense/sdk-data';
23
+ *
24
+ * interface MyDataOptions extends GenericDataOptions {
25
+ * category: StyledColumn[];
26
+ * value: StyledMeasureColumn[];
27
+ * }
28
+ *
29
+ * interface MyDataPoint extends AbstractDataPointWithEntries {
30
+ * entries: {
31
+ * category: DataPointEntry[];
32
+ * value: DataPointEntry[];
33
+ * };
34
+ * }
35
+ *
36
+ * type MyWidgetProps = CustomWidgetComponentProps<MyDataOptions, object, MyDataPoint>;
37
+ *
38
+ * @Component({
39
+ * selector: 'app-my-widget',
40
+ * template: `<div>My Custom Widget</div>`,
41
+ * })
42
+ * export class MyWidgetComponent implements MyWidgetProps {
43
+ * @Input() dataOptions!: MyDataOptions;
44
+ * @Input() dataSource?: DataSource;
45
+ * @Input() styleOptions?: object;
46
+ * @Input() filters?: Filter[] | FilterRelations;
47
+ * @Input() highlights?: Filter[];
48
+ * @Input() description?: string;
49
+ * @Input() onDataPointClick?: (point: MyDataPoint, nativeEvent: MouseEvent) => void;
50
+ * @Input() onDataPointContextMenu?: (point: MyDataPoint, nativeEvent: MouseEvent) => void;
51
+ * @Input() onDataPointsSelected?: (points: MyDataPoint[], nativeEvent: MouseEvent) => void;
52
+ * }
53
+ *
54
+ * // In AppModule or a component, register the custom widget:
55
+ * constructor(private customWidgets: CustomWidgetsService) {
56
+ * this.customWidgets.registerCustomWidget('my-widget', MyWidgetComponent);
57
+ * }
58
+ * ```
59
+ */
60
+ export interface CustomWidgetComponentProps<DataOptions = GenericDataOptions, StyleOptions = CustomWidgetStyleOptions, DataPoint extends AbstractDataPointWithEntries = AbstractDataPointWithEntries> extends CustomWidgetEventProps<DataPoint> {
61
+ /** Data source for the custom widget */
62
+ dataSource?: DataSource;
63
+ /** Data options defining what data to display */
64
+ dataOptions: DataOptions;
65
+ /** Style options for customizing appearance */
66
+ styleOptions?: StyleOptions;
67
+ /** Filters to apply to the data */
68
+ filters?: Filter[] | FilterRelations;
69
+ /** Highlight filters for interactive highlighting */
70
+ highlights?: Filter[];
71
+ /** Description of the widget */
72
+ description?: string;
73
+ }
@@ -1,4 +1,5 @@
1
1
  export * from './chart-event-props';
2
+ export * from './custom-widget-component-props';
2
3
  export * from './data-point';
3
4
  export * from './filter-event-props';
4
5
  export * from './utility-types';
package/dist/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "Sisense",
12
12
  "Compose SDK"
13
13
  ],
14
- "version": "2.19.0",
14
+ "version": "2.21.0",
15
15
  "author": "Sisense",
16
16
  "license": "SEE LICENSE IN LICENSE.md",
17
17
  "main": "dist",
@@ -44,12 +44,119 @@
44
44
  "es2015": "./fesm2015/sisense-sdk-ui-angular-ai.mjs",
45
45
  "node": "./fesm2015/sisense-sdk-ui-angular-ai.mjs",
46
46
  "default": "./fesm2020/sisense-sdk-ui-angular-ai.mjs"
47
+ },
48
+ "./translation/__external__/de-de": {
49
+ "types": "./translation/__external__/de-de/index.d.ts",
50
+ "esm2020": "./esm2020/translation/__external__/de-de/sisense-sdk-ui-angular-translation-__external__-de-de.mjs",
51
+ "es2020": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-de-de.mjs",
52
+ "es2015": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-de-de.mjs",
53
+ "node": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-de-de.mjs",
54
+ "default": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-de-de.mjs"
55
+ },
56
+ "./translation/__external__/en-us": {
57
+ "types": "./translation/__external__/en-us/index.d.ts",
58
+ "esm2020": "./esm2020/translation/__external__/en-us/sisense-sdk-ui-angular-translation-__external__-en-us.mjs",
59
+ "es2020": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-en-us.mjs",
60
+ "es2015": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-en-us.mjs",
61
+ "node": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-en-us.mjs",
62
+ "default": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-en-us.mjs"
63
+ },
64
+ "./translation/__external__/es-ar": {
65
+ "types": "./translation/__external__/es-ar/index.d.ts",
66
+ "esm2020": "./esm2020/translation/__external__/es-ar/sisense-sdk-ui-angular-translation-__external__-es-ar.mjs",
67
+ "es2020": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-es-ar.mjs",
68
+ "es2015": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-es-ar.mjs",
69
+ "node": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-es-ar.mjs",
70
+ "default": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-es-ar.mjs"
71
+ },
72
+ "./translation/__external__/es-es": {
73
+ "types": "./translation/__external__/es-es/index.d.ts",
74
+ "esm2020": "./esm2020/translation/__external__/es-es/sisense-sdk-ui-angular-translation-__external__-es-es.mjs",
75
+ "es2020": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-es-es.mjs",
76
+ "es2015": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-es-es.mjs",
77
+ "node": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-es-es.mjs",
78
+ "default": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-es-es.mjs"
79
+ },
80
+ "./translation/__external__/fr-fr": {
81
+ "types": "./translation/__external__/fr-fr/index.d.ts",
82
+ "esm2020": "./esm2020/translation/__external__/fr-fr/sisense-sdk-ui-angular-translation-__external__-fr-fr.mjs",
83
+ "es2020": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-fr-fr.mjs",
84
+ "es2015": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-fr-fr.mjs",
85
+ "node": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-fr-fr.mjs",
86
+ "default": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-fr-fr.mjs"
87
+ },
88
+ "./translation/__external__/it-it": {
89
+ "types": "./translation/__external__/it-it/index.d.ts",
90
+ "esm2020": "./esm2020/translation/__external__/it-it/sisense-sdk-ui-angular-translation-__external__-it-it.mjs",
91
+ "es2020": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-it-it.mjs",
92
+ "es2015": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-it-it.mjs",
93
+ "node": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-it-it.mjs",
94
+ "default": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-it-it.mjs"
95
+ },
96
+ "./translation/__external__/ja-jp": {
97
+ "types": "./translation/__external__/ja-jp/index.d.ts",
98
+ "esm2020": "./esm2020/translation/__external__/ja-jp/sisense-sdk-ui-angular-translation-__external__-ja-jp.mjs",
99
+ "es2020": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-ja-jp.mjs",
100
+ "es2015": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-ja-jp.mjs",
101
+ "node": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-ja-jp.mjs",
102
+ "default": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-ja-jp.mjs"
103
+ },
104
+ "./translation/__external__/ko-kr": {
105
+ "types": "./translation/__external__/ko-kr/index.d.ts",
106
+ "esm2020": "./esm2020/translation/__external__/ko-kr/sisense-sdk-ui-angular-translation-__external__-ko-kr.mjs",
107
+ "es2020": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-ko-kr.mjs",
108
+ "es2015": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-ko-kr.mjs",
109
+ "node": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-ko-kr.mjs",
110
+ "default": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-ko-kr.mjs"
111
+ },
112
+ "./translation/__external__/nl-nl": {
113
+ "types": "./translation/__external__/nl-nl/index.d.ts",
114
+ "esm2020": "./esm2020/translation/__external__/nl-nl/sisense-sdk-ui-angular-translation-__external__-nl-nl.mjs",
115
+ "es2020": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-nl-nl.mjs",
116
+ "es2015": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-nl-nl.mjs",
117
+ "node": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-nl-nl.mjs",
118
+ "default": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-nl-nl.mjs"
119
+ },
120
+ "./translation/__external__/pt-br": {
121
+ "types": "./translation/__external__/pt-br/index.d.ts",
122
+ "esm2020": "./esm2020/translation/__external__/pt-br/sisense-sdk-ui-angular-translation-__external__-pt-br.mjs",
123
+ "es2020": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-pt-br.mjs",
124
+ "es2015": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-pt-br.mjs",
125
+ "node": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-pt-br.mjs",
126
+ "default": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-pt-br.mjs"
127
+ },
128
+ "./translation/__external__/ru-ru": {
129
+ "types": "./translation/__external__/ru-ru/index.d.ts",
130
+ "esm2020": "./esm2020/translation/__external__/ru-ru/sisense-sdk-ui-angular-translation-__external__-ru-ru.mjs",
131
+ "es2020": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-ru-ru.mjs",
132
+ "es2015": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-ru-ru.mjs",
133
+ "node": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-ru-ru.mjs",
134
+ "default": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-ru-ru.mjs"
135
+ },
136
+ "./translation/__external__/tr-tr": {
137
+ "types": "./translation/__external__/tr-tr/index.d.ts",
138
+ "esm2020": "./esm2020/translation/__external__/tr-tr/sisense-sdk-ui-angular-translation-__external__-tr-tr.mjs",
139
+ "es2020": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-tr-tr.mjs",
140
+ "es2015": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-tr-tr.mjs",
141
+ "node": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-tr-tr.mjs",
142
+ "default": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-tr-tr.mjs"
143
+ },
144
+ "./translation/__external__/zh-cn": {
145
+ "types": "./translation/__external__/zh-cn/index.d.ts",
146
+ "esm2020": "./esm2020/translation/__external__/zh-cn/sisense-sdk-ui-angular-translation-__external__-zh-cn.mjs",
147
+ "es2020": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-zh-cn.mjs",
148
+ "es2015": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-zh-cn.mjs",
149
+ "node": "./fesm2015/sisense-sdk-ui-angular-translation-__external__-zh-cn.mjs",
150
+ "default": "./fesm2020/sisense-sdk-ui-angular-translation-__external__-zh-cn.mjs"
47
151
  }
48
152
  },
49
153
  "typesVersions": {
50
154
  "*": {
51
155
  "ai": [
52
156
  "./dist/ai/index.d.ts"
157
+ ],
158
+ "translations/*": [
159
+ "./dist/translations/*/index.d.ts"
53
160
  ]
54
161
  }
55
162
  },
@@ -57,9 +164,9 @@
57
164
  "directory": "dist"
58
165
  },
59
166
  "peerDependencies": {
60
- "@angular/common": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0",
61
- "@angular/compiler": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0",
62
- "@angular/core": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0"
167
+ "@angular/common": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0",
168
+ "@angular/compiler": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0",
169
+ "@angular/core": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0"
63
170
  },
64
171
  "dependencies": {
65
172
  "@sisense/sdk-data": "workspace:*",
@@ -0,0 +1 @@
1
+ export { default } from '@sisense/sdk-ui-preact/translations/de-de';
@@ -0,0 +1 @@
1
+ export { default } from '@sisense/sdk-ui-preact/translations/en-us';
@@ -0,0 +1 @@
1
+ export { default } from '@sisense/sdk-ui-preact/translations/es-ar';
@@ -0,0 +1 @@
1
+ export { default } from '@sisense/sdk-ui-preact/translations/es-es';
@@ -0,0 +1 @@
1
+ export { default } from '@sisense/sdk-ui-preact/translations/fr-fr';
@@ -0,0 +1 @@
1
+ export { default } from '@sisense/sdk-ui-preact/translations/it-it';
@@ -0,0 +1 @@
1
+ export { default } from '@sisense/sdk-ui-preact/translations/ja-jp';
@@ -0,0 +1 @@
1
+ export { default } from '@sisense/sdk-ui-preact/translations/ko-kr';
@@ -0,0 +1 @@
1
+ export { default } from '@sisense/sdk-ui-preact/translations/nl-nl';
@@ -0,0 +1 @@
1
+ export { default } from '@sisense/sdk-ui-preact/translations/pt-br';
@@ -0,0 +1 @@
1
+ export { default } from '@sisense/sdk-ui-preact/translations/ru-ru';
@@ -0,0 +1 @@
1
+ export { default } from '@sisense/sdk-ui-preact/translations/tr-tr';
@@ -0,0 +1 @@
1
+ export { default } from '@sisense/sdk-ui-preact/translations/zh-cn';
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const _default: "2.19.0";
1
+ declare const _default: "2.21.0";
2
2
  export default _default;
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "Sisense",
12
12
  "Compose SDK"
13
13
  ],
14
- "version": "2.19.0",
14
+ "version": "2.21.0",
15
15
  "author": "Sisense",
16
16
  "license": "SEE LICENSE IN LICENSE.md",
17
17
  "main": "dist",
@@ -41,12 +41,23 @@
41
41
  "es2015": "./dist/fesm2015/sisense-sdk-ui-angular-ai.mjs",
42
42
  "node": "./dist/fesm2015/sisense-sdk-ui-angular-ai.mjs",
43
43
  "default": "./dist/fesm2020/sisense-sdk-ui-angular-ai.mjs"
44
+ },
45
+ "./translations/*": {
46
+ "types": "./dist/translations/*/index.d.ts",
47
+ "esm2020": "./dist/esm2020/translations/*/index.mjs",
48
+ "es2020": "./dist/esm2020/translations/*/index.mjs",
49
+ "es2015": "./dist/esm2020/translations/*/index.mjs",
50
+ "node": "./dist/esm2020/translations/*/index.mjs",
51
+ "default": "./dist/esm2020/translations/*/index.mjs"
44
52
  }
45
53
  },
46
54
  "typesVersions": {
47
55
  "*": {
48
56
  "ai": [
49
57
  "./dist/ai/index.d.ts"
58
+ ],
59
+ "translations/*": [
60
+ "./dist/translations/*/index.d.ts"
50
61
  ]
51
62
  }
52
63
  },
@@ -71,14 +82,14 @@
71
82
  "sync-version": "node ./scripts/sync-version.cjs"
72
83
  },
73
84
  "peerDependencies": {
74
- "@angular/common": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0",
75
- "@angular/compiler": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0",
76
- "@angular/core": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0"
85
+ "@angular/common": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0",
86
+ "@angular/compiler": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0",
87
+ "@angular/core": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0"
77
88
  },
78
89
  "dependencies": {
79
- "@sisense/sdk-data": "2.19.0",
80
- "@sisense/sdk-tracking": "2.19.0",
81
- "@sisense/sdk-ui-preact": "2.19.0",
90
+ "@sisense/sdk-data": "2.21.0",
91
+ "@sisense/sdk-tracking": "2.21.0",
92
+ "@sisense/sdk-ui-preact": "2.21.0",
82
93
  "rxjs": "^7.8.1",
83
94
  "ts-deepmerge": "^6.2.0",
84
95
  "tslib": "^2.3.0"