@sisense/sdk-ui-angular 1.4.1 → 1.6.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 (107) hide show
  1. package/dist/esm2020/lib/component-wrapper-helpers/context-connectors.mjs +17 -2
  2. package/dist/esm2020/lib/components/charts/area-chart.component.mjs +137 -0
  3. package/dist/esm2020/lib/components/charts/areamap-chart.component.mjs +100 -0
  4. package/dist/esm2020/lib/components/charts/bar-chart.component.mjs +136 -0
  5. package/dist/esm2020/lib/components/charts/boxplot-chart.component.mjs +129 -0
  6. package/dist/esm2020/lib/components/charts/chart.component.mjs +171 -0
  7. package/dist/esm2020/lib/components/charts/column-chart.component.mjs +137 -0
  8. package/dist/esm2020/lib/components/charts/funnel-chart.component.mjs +135 -0
  9. package/dist/esm2020/lib/components/charts/index.mjs +18 -0
  10. package/dist/esm2020/lib/components/charts/indicator-chart.component.mjs +107 -0
  11. package/dist/esm2020/lib/components/charts/line-chart.component.mjs +135 -0
  12. package/dist/esm2020/lib/components/charts/pie-chart.component.mjs +137 -0
  13. package/dist/esm2020/lib/components/charts/pivot-table.component.mjs +116 -0
  14. package/dist/esm2020/lib/components/charts/polar-chart.component.mjs +136 -0
  15. package/dist/esm2020/lib/components/charts/scatter-chart.component.mjs +140 -0
  16. package/dist/esm2020/lib/components/charts/scattermap-chart.component.mjs +108 -0
  17. package/dist/esm2020/lib/components/charts/sunburst-chart.component.mjs +137 -0
  18. package/dist/esm2020/lib/components/charts/table.component.mjs +94 -0
  19. package/dist/esm2020/lib/components/{treemap-chart.component.mjs → charts/treemap-chart.component.mjs} +52 -1
  20. package/dist/esm2020/lib/components/context-menu.component.mjs +3 -1
  21. package/dist/esm2020/lib/components/drilldown-breadcrumbs.component.mjs +3 -1
  22. package/dist/esm2020/lib/components/filters/basic-member-filter-tile.component.mjs +62 -0
  23. package/dist/esm2020/lib/components/filters/date-range-filter-tile.component.mjs +141 -0
  24. package/dist/esm2020/lib/components/filters/index.mjs +4 -0
  25. package/dist/esm2020/lib/components/filters/member-filter-tile.component.mjs +131 -0
  26. package/dist/esm2020/lib/components/index.mjs +4 -25
  27. package/dist/esm2020/lib/components/widgets/chart-widget.component.mjs +167 -0
  28. package/dist/esm2020/lib/components/widgets/dashboard-widget.component.mjs +115 -0
  29. package/dist/esm2020/lib/components/widgets/drilldown-widget.component.mjs +174 -0
  30. package/dist/esm2020/lib/components/widgets/index.mjs +5 -0
  31. package/dist/esm2020/lib/components/widgets/table-widget.component.mjs +104 -0
  32. package/dist/esm2020/lib/sdk-ui-core-exports.mjs +1 -1
  33. package/dist/esm2020/lib/sdk-ui.module.mjs +3 -1
  34. package/dist/esm2020/lib/services/dashboard.service.mjs +6 -1
  35. package/dist/esm2020/lib/services/query.service.mjs +12 -3
  36. package/dist/esm2020/lib/services/sisense-context.service.mjs +7 -1
  37. package/dist/esm2020/lib/services/theme.service.mjs +7 -1
  38. package/dist/esm2020/public-api.mjs +9 -1
  39. package/dist/esm2020/version.mjs +2 -2
  40. package/dist/fesm2015/sisense-sdk-ui-angular.mjs +1736 -712
  41. package/dist/fesm2015/sisense-sdk-ui-angular.mjs.map +1 -1
  42. package/dist/fesm2020/sisense-sdk-ui-angular.mjs +1732 -708
  43. package/dist/fesm2020/sisense-sdk-ui-angular.mjs.map +1 -1
  44. package/dist/lib/component-wrapper-helpers/context-connectors.d.ts +12 -0
  45. package/dist/lib/components/{area-chart.component.d.ts → charts/area-chart.component.d.ts} +53 -2
  46. package/dist/lib/components/{areamap-chart.component.d.ts → charts/areamap-chart.component.d.ts} +40 -1
  47. package/dist/lib/components/{bar-chart.component.d.ts → charts/bar-chart.component.d.ts} +52 -2
  48. package/dist/lib/components/{boxplot-chart.component.d.ts → charts/boxplot-chart.component.d.ts} +45 -2
  49. package/dist/lib/components/{chart.component.d.ts → charts/chart.component.d.ts} +6 -4
  50. package/dist/lib/components/{column-chart.component.d.ts → charts/column-chart.component.d.ts} +53 -2
  51. package/dist/lib/components/{funnel-chart.component.d.ts → charts/funnel-chart.component.d.ts} +52 -2
  52. package/dist/lib/components/charts/index.d.ts +17 -0
  53. package/dist/lib/components/{indicator-chart.component.d.ts → charts/indicator-chart.component.d.ts} +57 -1
  54. package/dist/lib/components/{line-chart.component.d.ts → charts/line-chart.component.d.ts} +52 -2
  55. package/dist/lib/components/{pie-chart.component.d.ts → charts/pie-chart.component.d.ts} +53 -2
  56. package/dist/lib/components/{pivot-table.component.d.ts → charts/pivot-table.component.d.ts} +53 -2
  57. package/dist/lib/components/{polar-chart.component.d.ts → charts/polar-chart.component.d.ts} +53 -2
  58. package/dist/lib/components/{scatter-chart.component.d.ts → charts/scatter-chart.component.d.ts} +50 -2
  59. package/dist/lib/components/{scattermap-chart.component.d.ts → charts/scattermap-chart.component.d.ts} +49 -2
  60. package/dist/lib/components/{sunburst-chart.component.d.ts → charts/sunburst-chart.component.d.ts} +53 -2
  61. package/dist/lib/components/{table.component.d.ts → charts/table.component.d.ts} +32 -2
  62. package/dist/lib/components/{treemap-chart.component.d.ts → charts/treemap-chart.component.d.ts} +53 -2
  63. package/dist/lib/components/context-menu.component.d.ts +2 -0
  64. package/dist/lib/components/drilldown-breadcrumbs.component.d.ts +2 -0
  65. package/dist/lib/components/{date-range-filter-tile.component.d.ts → filters/date-range-filter-tile.component.d.ts} +43 -3
  66. package/dist/lib/components/filters/index.d.ts +3 -0
  67. package/dist/lib/components/{member-filter-tile.component.d.ts → filters/member-filter-tile.component.d.ts} +39 -3
  68. package/dist/lib/components/index.d.ts +3 -24
  69. package/dist/lib/components/{chart-widget.component.d.ts → widgets/chart-widget.component.d.ts} +58 -3
  70. package/dist/lib/components/{dashboard-widget.component.d.ts → widgets/dashboard-widget.component.d.ts} +31 -3
  71. package/dist/lib/components/{drilldown-widget.component.d.ts → widgets/drilldown-widget.component.d.ts} +5 -2
  72. package/dist/lib/components/widgets/index.d.ts +4 -0
  73. package/dist/lib/components/{table-widget.component.d.ts → widgets/table-widget.component.d.ts} +37 -2
  74. package/dist/lib/sdk-ui-core-exports.d.ts +1 -1
  75. package/dist/lib/sdk-ui.module.d.ts +26 -24
  76. package/dist/lib/services/dashboard.service.d.ts +5 -0
  77. package/dist/lib/services/query.service.d.ts +11 -2
  78. package/dist/lib/services/sisense-context.service.d.ts +6 -0
  79. package/dist/lib/services/theme.service.d.ts +6 -0
  80. package/dist/package.json +1 -1
  81. package/dist/public-api.d.ts +8 -0
  82. package/dist/version.d.ts +1 -1
  83. package/package.json +5 -5
  84. package/dist/esm2020/lib/components/area-chart.component.mjs +0 -86
  85. package/dist/esm2020/lib/components/areamap-chart.component.mjs +0 -61
  86. package/dist/esm2020/lib/components/bar-chart.component.mjs +0 -86
  87. package/dist/esm2020/lib/components/basic-member-filter-tile.component.mjs +0 -62
  88. package/dist/esm2020/lib/components/boxplot-chart.component.mjs +0 -86
  89. package/dist/esm2020/lib/components/chart-widget.component.mjs +0 -112
  90. package/dist/esm2020/lib/components/chart.component.mjs +0 -169
  91. package/dist/esm2020/lib/components/column-chart.component.mjs +0 -86
  92. package/dist/esm2020/lib/components/dashboard-widget.component.mjs +0 -87
  93. package/dist/esm2020/lib/components/date-range-filter-tile.component.mjs +0 -101
  94. package/dist/esm2020/lib/components/drilldown-widget.component.mjs +0 -171
  95. package/dist/esm2020/lib/components/funnel-chart.component.mjs +0 -85
  96. package/dist/esm2020/lib/components/indicator-chart.component.mjs +0 -51
  97. package/dist/esm2020/lib/components/line-chart.component.mjs +0 -85
  98. package/dist/esm2020/lib/components/member-filter-tile.component.mjs +0 -95
  99. package/dist/esm2020/lib/components/pie-chart.component.mjs +0 -86
  100. package/dist/esm2020/lib/components/pivot-table.component.mjs +0 -65
  101. package/dist/esm2020/lib/components/polar-chart.component.mjs +0 -85
  102. package/dist/esm2020/lib/components/scatter-chart.component.mjs +0 -92
  103. package/dist/esm2020/lib/components/scattermap-chart.component.mjs +0 -61
  104. package/dist/esm2020/lib/components/sunburst-chart.component.mjs +0 -86
  105. package/dist/esm2020/lib/components/table-widget.component.mjs +0 -69
  106. package/dist/esm2020/lib/components/table.component.mjs +0 -64
  107. /package/dist/lib/components/{basic-member-filter-tile.component.d.ts → filters/basic-member-filter-tile.component.d.ts} +0 -0
@@ -0,0 +1,140 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./chart.component";
4
+ /**
5
+ * A component displaying the distribution of two variables on an X-Axis, Y-Axis,
6
+ * and two additional fields of data that are shown as colored circles scattered across the chart.
7
+ *
8
+ * **Point**: A field that for each of its members a scatter point is drawn. The maximum amount of data points is 500.
9
+ *
10
+ * **Size**: An optional field represented by the size of the circles.
11
+ * If omitted, all scatter points are equal in size. If used, the circle sizes are relative to their values.
12
+ *
13
+ * See [Scatter Chart](https://docs.sisense.com/main/SisenseLinux/scatter-chart.htm) for more information.
14
+ *
15
+ * @example
16
+ * ```html
17
+ * <csdk-scatter-chart
18
+ * [dataSet]="scatter.dataSet"
19
+ * [dataOptions]="scatter.dataOptions"
20
+ * [highlights]="filters"
21
+ * [beforeRender]="onBeforeRender"
22
+ * (dataPointClick)="logArguments($event)"
23
+ * (dataPointContextMenu)="logArguments($event)"
24
+ * (dataPointsSelect)="logArguments($event)"
25
+ * />
26
+ * ```
27
+ * ```ts
28
+ import { Component } from '@angular/core';
29
+ import { measureFactory, filterFactory } from '@sisense/sdk-data';
30
+ import * as DM from '../../assets/sample-healthcare-model';
31
+
32
+ @Component({
33
+ selector: 'app-analytics',
34
+ templateUrl: './analytics.component.html',
35
+ styleUrls: ['./analytics.component.scss'],
36
+ })
37
+ export class AnalyticsComponent {
38
+ DM = DM;
39
+ filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];
40
+ scatter = {
41
+ dataSet: DM.DataSource,
42
+ dataOptions: {
43
+ x: DM.Admissions.Room_ID,
44
+ y: measureFactory.sum(DM.Admissions.Cost_of_admission),
45
+ },
46
+ };
47
+
48
+ onBeforeRender(options: any) {
49
+ console.log('beforeRender');
50
+ console.log(options);
51
+ return options;
52
+ }
53
+
54
+ logArguments(...args: any[]) {
55
+ console.log(args);
56
+ }
57
+ }
58
+ * ```
59
+ * <img src="media://angular-scatter-chart-example.png" width="800px" />
60
+ *
61
+ * @group Charts
62
+ */
63
+ export class ScatterChartComponent {
64
+ constructor() {
65
+ /**
66
+ * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onDataPointClick}
67
+ *
68
+ * @category Callbacks
69
+ */
70
+ this.dataPointClick = new EventEmitter();
71
+ /**
72
+ * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onDataPointContextMenu}
73
+ *
74
+ * @category Callbacks
75
+ */
76
+ this.dataPointContextMenu = new EventEmitter();
77
+ /**
78
+ * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onDataPointsSelected}
79
+ *
80
+ * @category Callbacks
81
+ */
82
+ this.dataPointsSelect = new EventEmitter();
83
+ /** @internal */
84
+ this.chartType = 'scatter';
85
+ }
86
+ }
87
+ ScatterChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScatterChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
88
+ ScatterChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ScatterChartComponent, selector: "csdk-scatter-chart", inputs: { dataSet: "dataSet", dataOptions: "dataOptions", filters: "filters", highlights: "highlights", styleOptions: "styleOptions", beforeRender: "beforeRender" }, outputs: { dataPointClick: "dataPointClick", dataPointContextMenu: "dataPointContextMenu", dataPointsSelect: "dataPointsSelect" }, ngImport: i0, template: `
89
+ <csdk-chart
90
+ [chartType]="chartType"
91
+ [dataSet]="dataSet"
92
+ [dataOptions]="dataOptions"
93
+ [filters]="filters"
94
+ [highlights]="highlights"
95
+ [styleOptions]="styleOptions"
96
+ [beforeRender]="beforeRender"
97
+ (dataPointClick)="dataPointClick.emit($event)"
98
+ (dataPointContextMenu)="dataPointContextMenu.emit($event)"
99
+ (dataPointsSelect)="dataPointsSelect.emit($event)"
100
+ />
101
+ `, isInline: true, dependencies: [{ kind: "component", type: i1.ChartComponent, selector: "csdk-chart", inputs: ["chartType", "dataSet", "dataOptions", "filters", "highlights", "styleOptions", "beforeRender"], outputs: ["dataPointClick", "dataPointContextMenu", "dataPointsSelect"] }] });
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScatterChartComponent, decorators: [{
103
+ type: Component,
104
+ args: [{
105
+ selector: 'csdk-scatter-chart',
106
+ template: `
107
+ <csdk-chart
108
+ [chartType]="chartType"
109
+ [dataSet]="dataSet"
110
+ [dataOptions]="dataOptions"
111
+ [filters]="filters"
112
+ [highlights]="highlights"
113
+ [styleOptions]="styleOptions"
114
+ [beforeRender]="beforeRender"
115
+ (dataPointClick)="dataPointClick.emit($event)"
116
+ (dataPointContextMenu)="dataPointContextMenu.emit($event)"
117
+ (dataPointsSelect)="dataPointsSelect.emit($event)"
118
+ />
119
+ `,
120
+ }]
121
+ }], propDecorators: { dataSet: [{
122
+ type: Input
123
+ }], dataOptions: [{
124
+ type: Input
125
+ }], filters: [{
126
+ type: Input
127
+ }], highlights: [{
128
+ type: Input
129
+ }], styleOptions: [{
130
+ type: Input
131
+ }], beforeRender: [{
132
+ type: Input
133
+ }], dataPointClick: [{
134
+ type: Output
135
+ }], dataPointContextMenu: [{
136
+ type: Output
137
+ }], dataPointsSelect: [{
138
+ type: Output
139
+ }] } });
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhdHRlci1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnRzL3NjYXR0ZXItY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUt2RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBERztBQWtCSCxNQUFNLE9BQU8scUJBQXFCO0lBakJsQztRQWtFRTs7OztXQUlHO1FBRUgsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFFOUIsQ0FBQztRQUVKOzs7O1dBSUc7UUFFSCx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFFcEMsQ0FBQztRQUVKOzs7O1dBSUc7UUFFSCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFFaEMsQ0FBQztRQUVKLGdCQUFnQjtRQUNULGNBQVMsR0FBYyxTQUFTLENBQUM7S0FDekM7O21IQWpGWSxxQkFBcUI7dUdBQXJCLHFCQUFxQixtV0FmdEI7Ozs7Ozs7Ozs7Ozs7R0FhVDs0RkFFVSxxQkFBcUI7a0JBakJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztHQWFUO2lCQUNGOzhCQVFDLE9BQU87c0JBRE4sS0FBSztnQkFTTixXQUFXO3NCQURWLEtBQUs7Z0JBU04sT0FBTztzQkFETixLQUFLO2dCQVNOLFVBQVU7c0JBRFQsS0FBSztnQkFTTixZQUFZO3NCQURYLEtBQUs7Z0JBU04sWUFBWTtzQkFEWCxLQUFLO2dCQVNOLGNBQWM7c0JBRGIsTUFBTTtnQkFXUCxvQkFBb0I7c0JBRG5CLE1BQU07Z0JBV1AsZ0JBQWdCO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHlwZSBDaGFydFR5cGUgfSBmcm9tICcuLi8uLi9zZGstdWktY29yZS1leHBvcnRzJztcbmltcG9ydCB7IHR5cGUgU2NhdHRlckNoYXJ0UHJvcHMgfSBmcm9tICdAc2lzZW5zZS9zZGstdWktcHJlYWN0JztcbmltcG9ydCB7IHR5cGUgQXJndW1lbnRzQXNPYmplY3QgfSBmcm9tICcuLi8uLi90eXBlcy91dGlsaXR5LXR5cGVzJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCBkaXNwbGF5aW5nIHRoZSBkaXN0cmlidXRpb24gb2YgdHdvIHZhcmlhYmxlcyBvbiBhbiBYLUF4aXMsIFktQXhpcyxcbiAqIGFuZCB0d28gYWRkaXRpb25hbCBmaWVsZHMgb2YgZGF0YSB0aGF0IGFyZSBzaG93biBhcyBjb2xvcmVkIGNpcmNsZXMgc2NhdHRlcmVkIGFjcm9zcyB0aGUgY2hhcnQuXG4gKlxuICogKipQb2ludCoqOiBBIGZpZWxkIHRoYXQgZm9yIGVhY2ggb2YgaXRzIG1lbWJlcnMgYSBzY2F0dGVyIHBvaW50IGlzIGRyYXduLiBUaGUgbWF4aW11bSBhbW91bnQgb2YgZGF0YSBwb2ludHMgaXMgNTAwLlxuICpcbiAqICoqU2l6ZSoqOiBBbiBvcHRpb25hbCBmaWVsZCByZXByZXNlbnRlZCBieSB0aGUgc2l6ZSBvZiB0aGUgY2lyY2xlcy5cbiAqIElmIG9taXR0ZWQsIGFsbCBzY2F0dGVyIHBvaW50cyBhcmUgZXF1YWwgaW4gc2l6ZS4gSWYgdXNlZCwgdGhlIGNpcmNsZSBzaXplcyBhcmUgcmVsYXRpdmUgdG8gdGhlaXIgdmFsdWVzLlxuICpcbiAqIFNlZSBbU2NhdHRlciBDaGFydF0oaHR0cHM6Ly9kb2NzLnNpc2Vuc2UuY29tL21haW4vU2lzZW5zZUxpbnV4L3NjYXR0ZXItY2hhcnQuaHRtKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogICAgPGNzZGstc2NhdHRlci1jaGFydFxuICogICAgICBbZGF0YVNldF09XCJzY2F0dGVyLmRhdGFTZXRcIlxuICogICAgICBbZGF0YU9wdGlvbnNdPVwic2NhdHRlci5kYXRhT3B0aW9uc1wiXG4gKiAgICAgIFtoaWdobGlnaHRzXT1cImZpbHRlcnNcIlxuICogICAgICBbYmVmb3JlUmVuZGVyXT1cIm9uQmVmb3JlUmVuZGVyXCJcbiAqICAgICAgKGRhdGFQb2ludENsaWNrKT1cImxvZ0FyZ3VtZW50cygkZXZlbnQpXCJcbiAqICAgICAgKGRhdGFQb2ludENvbnRleHRNZW51KT1cImxvZ0FyZ3VtZW50cygkZXZlbnQpXCJcbiAqICAgICAgKGRhdGFQb2ludHNTZWxlY3QpPVwibG9nQXJndW1lbnRzKCRldmVudClcIlxuICogICAgLz5cbiAqIGBgYFxuICogYGBgdHNcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVhc3VyZUZhY3RvcnksIGZpbHRlckZhY3RvcnkgfSBmcm9tICdAc2lzZW5zZS9zZGstZGF0YSc7XG5pbXBvcnQgKiBhcyBETSBmcm9tICcuLi8uLi9hc3NldHMvc2FtcGxlLWhlYWx0aGNhcmUtbW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYW5hbHl0aWNzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FuYWx5dGljcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FuYWx5dGljcy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBbmFseXRpY3NDb21wb25lbnQge1xuICBETSA9IERNO1xuICBmaWx0ZXJzID0gW2ZpbHRlckZhY3RvcnkubWVtYmVycyhETS5EaXZpc2lvbnMuRGl2aXNvbl9uYW1lLCBbJ0NhcmRpb2xvZ3knLCAnTmV1cm9sb2d5J10pXTtcbiAgc2NhdHRlciA9IHtcbiAgICBkYXRhU2V0OiBETS5EYXRhU291cmNlLFxuICAgIGRhdGFPcHRpb25zOiB7XG4gICAgICB4OiBETS5BZG1pc3Npb25zLlJvb21fSUQsXG4gICAgICB5OiBtZWFzdXJlRmFjdG9yeS5zdW0oRE0uQWRtaXNzaW9ucy5Db3N0X29mX2FkbWlzc2lvbiksXG4gICAgfSxcbiAgfTtcblxuICBvbkJlZm9yZVJlbmRlcihvcHRpb25zOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZygnYmVmb3JlUmVuZGVyJyk7XG4gICAgY29uc29sZS5sb2cob3B0aW9ucyk7XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICBsb2dBcmd1bWVudHMoLi4uYXJnczogYW55W10pIHtcbiAgICBjb25zb2xlLmxvZyhhcmdzKTtcbiAgfVxufVxuICogYGBgXG4gKiA8aW1nIHNyYz1cIm1lZGlhOi8vYW5ndWxhci1zY2F0dGVyLWNoYXJ0LWV4YW1wbGUucG5nXCIgd2lkdGg9XCI4MDBweFwiIC8+XG4gKlxuICogQGdyb3VwIENoYXJ0c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjc2RrLXNjYXR0ZXItY2hhcnQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxjc2RrLWNoYXJ0XG4gICAgICBbY2hhcnRUeXBlXT1cImNoYXJ0VHlwZVwiXG4gICAgICBbZGF0YVNldF09XCJkYXRhU2V0XCJcbiAgICAgIFtkYXRhT3B0aW9uc109XCJkYXRhT3B0aW9uc1wiXG4gICAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcbiAgICAgIFtoaWdobGlnaHRzXT1cImhpZ2hsaWdodHNcIlxuICAgICAgW3N0eWxlT3B0aW9uc109XCJzdHlsZU9wdGlvbnNcIlxuICAgICAgW2JlZm9yZVJlbmRlcl09XCJiZWZvcmVSZW5kZXJcIlxuICAgICAgKGRhdGFQb2ludENsaWNrKT1cImRhdGFQb2ludENsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAoZGF0YVBvaW50Q29udGV4dE1lbnUpPVwiZGF0YVBvaW50Q29udGV4dE1lbnUuZW1pdCgkZXZlbnQpXCJcbiAgICAgIChkYXRhUG9pbnRzU2VsZWN0KT1cImRhdGFQb2ludHNTZWxlY3QuZW1pdCgkZXZlbnQpXCJcbiAgICAvPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBTY2F0dGVyQ2hhcnRDb21wb25lbnQge1xuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFTY2F0dGVyQ2hhcnRQcm9wcy5kYXRhU2V0fVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgRGF0YVxuICAgKi9cbiAgQElucHV0KClcbiAgZGF0YVNldDogU2NhdHRlckNoYXJ0UHJvcHNbJ2RhdGFTZXQnXTtcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFTY2F0dGVyQ2hhcnRQcm9wcy5oaWdobGlnaHRzfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgRGF0YVxuICAgKi9cbiAgQElucHV0KClcbiAgZGF0YU9wdGlvbnMhOiBTY2F0dGVyQ2hhcnRQcm9wc1snZGF0YU9wdGlvbnMnXTtcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFTY2F0dGVyQ2hhcnRQcm9wcy5maWx0ZXJzfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgRGF0YVxuICAgKi9cbiAgQElucHV0KClcbiAgZmlsdGVyczogU2NhdHRlckNoYXJ0UHJvcHNbJ2ZpbHRlcnMnXTtcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFTY2F0dGVyQ2hhcnRQcm9wcy5oaWdobGlnaHRzfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgRGF0YVxuICAgKi9cbiAgQElucHV0KClcbiAgaGlnaGxpZ2h0czogU2NhdHRlckNoYXJ0UHJvcHNbJ2hpZ2hsaWdodHMnXTtcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFTY2F0dGVyQ2hhcnRQcm9wcy5zdHlsZU9wdGlvbnN9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDaGFydFxuICAgKi9cbiAgQElucHV0KClcbiAgc3R5bGVPcHRpb25zOiBTY2F0dGVyQ2hhcnRQcm9wc1snc3R5bGVPcHRpb25zJ107XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhU2NhdHRlckNoYXJ0UHJvcHMub25CZWZvcmVSZW5kZXJ9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIEBJbnB1dCgpXG4gIGJlZm9yZVJlbmRlcjogU2NhdHRlckNoYXJ0UHJvcHNbJ29uQmVmb3JlUmVuZGVyJ107XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhU2NhdHRlckNoYXJ0UHJvcHMub25EYXRhUG9pbnRDbGlja31cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgQE91dHB1dCgpXG4gIGRhdGFQb2ludENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBBcmd1bWVudHNBc09iamVjdDxTY2F0dGVyQ2hhcnRQcm9wc1snb25EYXRhUG9pbnRDbGljayddLCBbJ3BvaW50JywgJ25hdGl2ZUV2ZW50J10+XG4gID4oKTtcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFTY2F0dGVyQ2hhcnRQcm9wcy5vbkRhdGFQb2ludENvbnRleHRNZW51fVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZGF0YVBvaW50Q29udGV4dE1lbnUgPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIEFyZ3VtZW50c0FzT2JqZWN0PFNjYXR0ZXJDaGFydFByb3BzWydvbkRhdGFQb2ludENvbnRleHRNZW51J10sIFsncG9pbnQnLCAnbmF0aXZlRXZlbnQnXT5cbiAgPigpO1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVNjYXR0ZXJDaGFydFByb3BzLm9uRGF0YVBvaW50c1NlbGVjdGVkfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZGF0YVBvaW50c1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQXJndW1lbnRzQXNPYmplY3Q8U2NhdHRlckNoYXJ0UHJvcHNbJ29uRGF0YVBvaW50c1NlbGVjdGVkJ10sIFsncG9pbnRzJywgJ25hdGl2ZUV2ZW50J10+XG4gID4oKTtcblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBjaGFydFR5cGU6IENoYXJ0VHlwZSA9ICdzY2F0dGVyJztcbn1cbiJdfQ==
@@ -0,0 +1,108 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./chart.component";
4
+ /**
5
+ * An Angular component that allows to visualize geographical data as data points on a map.
6
+ * See [Scattermap Chart](https://docs.sisense.com/main/SisenseLinux/scatter-map.htm) for more information.
7
+ *
8
+ * @example
9
+ * ```html
10
+ * <csdk-scattermap-chart
11
+ * [dataSet]="scattermapChart.dataSet"
12
+ * [dataOptions]="scattermapChart.dataOptions"
13
+ * [styleOptions]="scattermapChart.styleOptions"
14
+ * (dataPointClick)="logArguments($event)"
15
+ * />
16
+ * ```
17
+ * ```ts
18
+ import { Component } from '@angular/core';
19
+ import { measureFactory, filterFactory } from '@sisense/sdk-data';
20
+ import type { ScattermapStyleOptions,ScattermapChartDataOptions } from '@sisense/sdk-ui-angular';
21
+ import * as DM from '../../assets/sample-ecommerce';
22
+
23
+ @Component({
24
+ selector: 'app-analytics',
25
+ templateUrl: './analytics.component.html',
26
+ styleUrls: ['./analytics.component.scss'],
27
+ })
28
+ export class AnalyticsComponent {
29
+ scattermapChart = {
30
+ dataSet: DM.DataSource,
31
+ dataOptions: {
32
+ geo: [DM.Country.Country],
33
+ size: measureFactory.sum(DM.Commerce.Cost, 'Size by Cost'),
34
+ colorBy: {
35
+ column: measureFactory.sum(DM.Commerce.Revenue, 'Color by Revenue'),
36
+ color: 'green',
37
+ },
38
+ details: DM.Category.Category,
39
+ } as ScattermapChartDataOptions,
40
+ styleOptions: {
41
+ markers: {
42
+ fill: 'hollow-bold',
43
+ },
44
+ } as ScattermapStyleOptions,
45
+ };
46
+
47
+ logArguments(...args: any[]) {
48
+ console.log(args);
49
+ }
50
+ }
51
+ * ```
52
+ * <img src="media://angular-scattermap-chart-example.png" width="800px" />
53
+ * @group Charts
54
+ */
55
+ export class ScattermapChartComponent {
56
+ constructor() {
57
+ /**
58
+ * {@inheritDoc @sisense/sdk-ui!ScattermapChartProps.onDataPointClick}
59
+ *
60
+ * @category Callbacks
61
+ */
62
+ this.dataPointClick = new EventEmitter();
63
+ /** @internal */
64
+ this.chartType = 'scattermap';
65
+ }
66
+ }
67
+ ScattermapChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScattermapChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
+ ScattermapChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ScattermapChartComponent, selector: "csdk-scattermap-chart", inputs: { dataSet: "dataSet", dataOptions: "dataOptions", filters: "filters", highlights: "highlights", styleOptions: "styleOptions" }, outputs: { dataPointClick: "dataPointClick" }, ngImport: i0, template: `
69
+ <csdk-chart
70
+ [chartType]="chartType"
71
+ [dataSet]="dataSet"
72
+ [dataOptions]="dataOptions"
73
+ [filters]="filters"
74
+ [highlights]="highlights"
75
+ [styleOptions]="styleOptions"
76
+ (dataPointClick)="dataPointClick.emit($event)"
77
+ />
78
+ `, isInline: true, dependencies: [{ kind: "component", type: i1.ChartComponent, selector: "csdk-chart", inputs: ["chartType", "dataSet", "dataOptions", "filters", "highlights", "styleOptions", "beforeRender"], outputs: ["dataPointClick", "dataPointContextMenu", "dataPointsSelect"] }] });
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScattermapChartComponent, decorators: [{
80
+ type: Component,
81
+ args: [{
82
+ selector: 'csdk-scattermap-chart',
83
+ template: `
84
+ <csdk-chart
85
+ [chartType]="chartType"
86
+ [dataSet]="dataSet"
87
+ [dataOptions]="dataOptions"
88
+ [filters]="filters"
89
+ [highlights]="highlights"
90
+ [styleOptions]="styleOptions"
91
+ (dataPointClick)="dataPointClick.emit($event)"
92
+ />
93
+ `,
94
+ }]
95
+ }], propDecorators: { dataSet: [{
96
+ type: Input
97
+ }], dataOptions: [{
98
+ type: Input
99
+ }], filters: [{
100
+ type: Input
101
+ }], highlights: [{
102
+ type: Input
103
+ }], styleOptions: [{
104
+ type: Input
105
+ }], dataPointClick: [{
106
+ type: Output
107
+ }] } });
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhdHRlcm1hcC1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnRzL3NjYXR0ZXJtYXAtY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUt2RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrREc7QUFlSCxNQUFNLE9BQU8sd0JBQXdCO0lBZHJDO1FBdURFOzs7O1dBSUc7UUFFSCxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUU5QixDQUFDO1FBRUosZ0JBQWdCO1FBQ1QsY0FBUyxHQUFjLFlBQVksQ0FBQztLQUM1Qzs7c0hBckRZLHdCQUF3QjswR0FBeEIsd0JBQXdCLG9QQVp6Qjs7Ozs7Ozs7OztHQVVUOzRGQUVVLHdCQUF3QjtrQkFkcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7R0FVVDtpQkFDRjs4QkFRQyxPQUFPO3NCQUROLEtBQUs7Z0JBU04sV0FBVztzQkFEVixLQUFLO2dCQVNOLE9BQU87c0JBRE4sS0FBSztnQkFTTixVQUFVO3NCQURULEtBQUs7Z0JBU04sWUFBWTtzQkFEWCxLQUFLO2dCQVNOLGNBQWM7c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIENoYXJ0VHlwZSB9IGZyb20gJy4uLy4uL3Nkay11aS1jb3JlLWV4cG9ydHMnO1xuaW1wb3J0IHsgdHlwZSBTY2F0dGVybWFwQ2hhcnRQcm9wcyB9IGZyb20gJ0BzaXNlbnNlL3Nkay11aS1wcmVhY3QnO1xuaW1wb3J0IHsgQXJndW1lbnRzQXNPYmplY3QgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbi8qKlxuICogQW4gQW5ndWxhciBjb21wb25lbnQgdGhhdCBhbGxvd3MgdG8gdmlzdWFsaXplIGdlb2dyYXBoaWNhbCBkYXRhIGFzIGRhdGEgcG9pbnRzIG9uIGEgbWFwLlxuICogU2VlIFtTY2F0dGVybWFwIENoYXJ0XShodHRwczovL2RvY3Muc2lzZW5zZS5jb20vbWFpbi9TaXNlbnNlTGludXgvc2NhdHRlci1tYXAuaHRtKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogICAgPGNzZGstc2NhdHRlcm1hcC1jaGFydFxuICogICAgICBbZGF0YVNldF09XCJzY2F0dGVybWFwQ2hhcnQuZGF0YVNldFwiXG4gKiAgICAgIFtkYXRhT3B0aW9uc109XCJzY2F0dGVybWFwQ2hhcnQuZGF0YU9wdGlvbnNcIlxuICogICAgICBbc3R5bGVPcHRpb25zXT1cInNjYXR0ZXJtYXBDaGFydC5zdHlsZU9wdGlvbnNcIlxuICogICAgICAoZGF0YVBvaW50Q2xpY2spPVwibG9nQXJndW1lbnRzKCRldmVudClcIlxuICogICAgLz5cbiAqIGBgYFxuICogYGBgdHNcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVhc3VyZUZhY3RvcnksIGZpbHRlckZhY3RvcnkgfSBmcm9tICdAc2lzZW5zZS9zZGstZGF0YSc7XG5pbXBvcnQgdHlwZSB7IFNjYXR0ZXJtYXBTdHlsZU9wdGlvbnMsU2NhdHRlcm1hcENoYXJ0RGF0YU9wdGlvbnMgfSBmcm9tICdAc2lzZW5zZS9zZGstdWktYW5ndWxhcic7XG5pbXBvcnQgKiBhcyBETSBmcm9tICcuLi8uLi9hc3NldHMvc2FtcGxlLWVjb21tZXJjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hbmFseXRpY3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vYW5hbHl0aWNzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYW5hbHl0aWNzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFuYWx5dGljc0NvbXBvbmVudCB7XG4gIHNjYXR0ZXJtYXBDaGFydCA9IHtcbiAgICBkYXRhU2V0OiBETS5EYXRhU291cmNlLFxuICAgIGRhdGFPcHRpb25zOiB7XG4gICAgICBnZW86IFtETS5Db3VudHJ5LkNvdW50cnldLFxuICAgICAgc2l6ZTogbWVhc3VyZUZhY3Rvcnkuc3VtKERNLkNvbW1lcmNlLkNvc3QsICdTaXplIGJ5IENvc3QnKSxcbiAgICAgIGNvbG9yQnk6IHtcbiAgICAgICAgY29sdW1uOiBtZWFzdXJlRmFjdG9yeS5zdW0oRE0uQ29tbWVyY2UuUmV2ZW51ZSwgJ0NvbG9yIGJ5IFJldmVudWUnKSxcbiAgICAgICAgY29sb3I6ICdncmVlbicsXG4gICAgICB9LFxuICAgICAgZGV0YWlsczogRE0uQ2F0ZWdvcnkuQ2F0ZWdvcnksXG4gICAgfSBhcyBTY2F0dGVybWFwQ2hhcnREYXRhT3B0aW9ucyxcbiAgICBzdHlsZU9wdGlvbnM6IHtcbiAgICAgIG1hcmtlcnM6IHtcbiAgICAgICAgZmlsbDogJ2hvbGxvdy1ib2xkJyxcbiAgICAgIH0sXG4gICAgfSBhcyBTY2F0dGVybWFwU3R5bGVPcHRpb25zLFxuICB9O1xuXG4gIGxvZ0FyZ3VtZW50cyguLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnNvbGUubG9nKGFyZ3MpO1xuICB9XG59XG4gKiBgYGBcbiAqIDxpbWcgc3JjPVwibWVkaWE6Ly9hbmd1bGFyLXNjYXR0ZXJtYXAtY2hhcnQtZXhhbXBsZS5wbmdcIiB3aWR0aD1cIjgwMHB4XCIgLz5cbiAqIEBncm91cCBDaGFydHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3Nkay1zY2F0dGVybWFwLWNoYXJ0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8Y3Nkay1jaGFydFxuICAgICAgW2NoYXJ0VHlwZV09XCJjaGFydFR5cGVcIlxuICAgICAgW2RhdGFTZXRdPVwiZGF0YVNldFwiXG4gICAgICBbZGF0YU9wdGlvbnNdPVwiZGF0YU9wdGlvbnNcIlxuICAgICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXG4gICAgICBbaGlnaGxpZ2h0c109XCJoaWdobGlnaHRzXCJcbiAgICAgIFtzdHlsZU9wdGlvbnNdPVwic3R5bGVPcHRpb25zXCJcbiAgICAgIChkYXRhUG9pbnRDbGljayk9XCJkYXRhUG9pbnRDbGljay5lbWl0KCRldmVudClcIlxuICAgIC8+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNjYXR0ZXJtYXBDaGFydENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVNjYXR0ZXJtYXBDaGFydFByb3BzLmRhdGFTZXR9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBEYXRhXG4gICAqL1xuICBASW5wdXQoKVxuICBkYXRhU2V0OiBTY2F0dGVybWFwQ2hhcnRQcm9wc1snZGF0YVNldCddO1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVNjYXR0ZXJtYXBDaGFydFByb3BzLmRhdGFPcHRpb25zfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2hhcnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGRhdGFPcHRpb25zITogU2NhdHRlcm1hcENoYXJ0UHJvcHNbJ2RhdGFPcHRpb25zJ107XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhU2NhdHRlcm1hcENoYXJ0UHJvcHMuZmlsdGVyc31cbiAgICpcbiAgICogQGNhdGVnb3J5IERhdGFcbiAgICovXG4gIEBJbnB1dCgpXG4gIGZpbHRlcnM6IFNjYXR0ZXJtYXBDaGFydFByb3BzWydmaWx0ZXJzJ107XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhU2NhdHRlcm1hcENoYXJ0UHJvcHMuaGlnaGxpZ2h0c31cbiAgICpcbiAgICogQGNhdGVnb3J5IERhdGFcbiAgICovXG4gIEBJbnB1dCgpXG4gIGhpZ2hsaWdodHM6IFNjYXR0ZXJtYXBDaGFydFByb3BzWydoaWdobGlnaHRzJ107XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhU2NhdHRlcm1hcENoYXJ0UHJvcHMuc3R5bGVPcHRpb25zfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2hhcnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHN0eWxlT3B0aW9uczogU2NhdHRlcm1hcENoYXJ0UHJvcHNbJ3N0eWxlT3B0aW9ucyddO1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVNjYXR0ZXJtYXBDaGFydFByb3BzLm9uRGF0YVBvaW50Q2xpY2t9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIEBPdXRwdXQoKVxuICBkYXRhUG9pbnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQXJndW1lbnRzQXNPYmplY3Q8U2NhdHRlcm1hcENoYXJ0UHJvcHNbJ29uRGF0YVBvaW50Q2xpY2snXSwgWydwb2ludCcsICduYXRpdmVFdmVudCddPlxuICA+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgY2hhcnRUeXBlOiBDaGFydFR5cGUgPSAnc2NhdHRlcm1hcCc7XG59XG4iXX0=
@@ -0,0 +1,137 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./chart.component";
4
+ /**
5
+ * A component displaying hierarchical data in the form of nested slices.
6
+ * This type of chart can be used instead of a pie chart for comparing a large number of categories and sub-categories.
7
+ * See [Sunburst Chart](https://docs.sisense.com/main/SisenseLinux/sunburst-widget.htm) for more information.
8
+ *
9
+ * @example
10
+ * ```html
11
+ * <csdk-sunburst-chart
12
+ * [dataSet]="chart.dataSet"
13
+ * [dataOptions]="chart.dataOptions"
14
+ * [highlights]="filters"
15
+ * [beforeRender]="onBeforeRender"
16
+ * (dataPointClick)="logArguments($event)"
17
+ * (dataPointContextMenu)="logArguments($event)"
18
+ * (dataPointsSelect)="logArguments($event)"
19
+ * />
20
+ * ```
21
+ * ```ts
22
+ import { Component } from '@angular/core';
23
+ import { measureFactory, filterFactory } from '@sisense/sdk-data';
24
+ import * as DM from '../../assets/sample-healthcare-model';
25
+ import type { ChartType } from '@sisense/sdk-ui-angular';
26
+
27
+ @Component({
28
+ selector: 'app-analytics',
29
+ templateUrl: './analytics.component.html',
30
+ styleUrls: ['./analytics.component.scss'],
31
+ })
32
+ export class AnalyticsComponent {
33
+ DM = DM;
34
+ filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];
35
+ chart = {
36
+ chartType: 'column' as ChartType,
37
+ dataSet: DM.DataSource,
38
+ dataOptions: {
39
+ category: [DM.Divisions.Divison_name],
40
+ value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],
41
+ breakBy: [],
42
+ },
43
+ };
44
+
45
+ onBeforeRender(options: any) {
46
+ console.log('beforeRender');
47
+ console.log(options);
48
+ return options;
49
+ }
50
+
51
+ logArguments(...args: any[]) {
52
+ console.log(args);
53
+ }
54
+ }
55
+ * ```
56
+ * <img src="media://angular-sunburst-chart-example.png" width="800px" />
57
+ *
58
+ * @group Charts
59
+ */
60
+ export class SunburstChartComponent {
61
+ constructor() {
62
+ /**
63
+ * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onDataPointClick}
64
+ *
65
+ * @category Callbacks
66
+ */
67
+ this.dataPointClick = new EventEmitter();
68
+ /**
69
+ * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onDataPointContextMenu}
70
+ *
71
+ * @category Callbacks
72
+ */
73
+ this.dataPointContextMenu = new EventEmitter();
74
+ /**
75
+ * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onDataPointsSelected}
76
+ *
77
+ * @category Callbacks
78
+ */
79
+ this.dataPointsSelect = new EventEmitter();
80
+ /** @internal */
81
+ this.chartType = 'sunburst';
82
+ }
83
+ }
84
+ SunburstChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SunburstChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
85
+ SunburstChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SunburstChartComponent, selector: "csdk-sunburst-chart", inputs: { dataSet: "dataSet", dataOptions: "dataOptions", filters: "filters", highlights: "highlights", styleOptions: "styleOptions", beforeRender: "beforeRender" }, outputs: { dataPointClick: "dataPointClick", dataPointContextMenu: "dataPointContextMenu", dataPointsSelect: "dataPointsSelect" }, ngImport: i0, template: `
86
+ <csdk-chart
87
+ [chartType]="chartType"
88
+ [dataSet]="dataSet"
89
+ [dataOptions]="dataOptions"
90
+ [filters]="filters"
91
+ [highlights]="highlights"
92
+ [styleOptions]="styleOptions"
93
+ [beforeRender]="beforeRender"
94
+ (dataPointClick)="dataPointClick.emit($event)"
95
+ (dataPointContextMenu)="dataPointContextMenu.emit($event)"
96
+ (dataPointsSelect)="dataPointsSelect.emit($event)"
97
+ />
98
+ `, isInline: true, dependencies: [{ kind: "component", type: i1.ChartComponent, selector: "csdk-chart", inputs: ["chartType", "dataSet", "dataOptions", "filters", "highlights", "styleOptions", "beforeRender"], outputs: ["dataPointClick", "dataPointContextMenu", "dataPointsSelect"] }] });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SunburstChartComponent, decorators: [{
100
+ type: Component,
101
+ args: [{
102
+ selector: 'csdk-sunburst-chart',
103
+ template: `
104
+ <csdk-chart
105
+ [chartType]="chartType"
106
+ [dataSet]="dataSet"
107
+ [dataOptions]="dataOptions"
108
+ [filters]="filters"
109
+ [highlights]="highlights"
110
+ [styleOptions]="styleOptions"
111
+ [beforeRender]="beforeRender"
112
+ (dataPointClick)="dataPointClick.emit($event)"
113
+ (dataPointContextMenu)="dataPointContextMenu.emit($event)"
114
+ (dataPointsSelect)="dataPointsSelect.emit($event)"
115
+ />
116
+ `,
117
+ }]
118
+ }], propDecorators: { dataSet: [{
119
+ type: Input
120
+ }], dataOptions: [{
121
+ type: Input
122
+ }], filters: [{
123
+ type: Input
124
+ }], highlights: [{
125
+ type: Input
126
+ }], styleOptions: [{
127
+ type: Input
128
+ }], beforeRender: [{
129
+ type: Input
130
+ }], dataPointClick: [{
131
+ type: Output
132
+ }], dataPointContextMenu: [{
133
+ type: Output
134
+ }], dataPointsSelect: [{
135
+ type: Output
136
+ }] } });
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VuYnVyc3QtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0cy9zdW5idXJzdC1jaGFydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBS3ZFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdURHO0FBa0JILE1BQU0sT0FBTyxzQkFBc0I7SUFqQm5DO1FBa0VFOzs7O1dBSUc7UUFFSCxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUU5QixDQUFDO1FBRUo7Ozs7V0FJRztRQUVILHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUVwQyxDQUFDO1FBRUo7Ozs7V0FJRztRQUVILHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUVoQyxDQUFDO1FBRUosZ0JBQWdCO1FBQ1QsY0FBUyxHQUFjLFVBQVUsQ0FBQztLQUMxQzs7b0hBakZZLHNCQUFzQjt3R0FBdEIsc0JBQXNCLG9XQWZ2Qjs7Ozs7Ozs7Ozs7OztHQWFUOzRGQUVVLHNCQUFzQjtrQkFqQmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0dBYVQ7aUJBQ0Y7OEJBUUMsT0FBTztzQkFETixLQUFLO2dCQVNOLFdBQVc7c0JBRFYsS0FBSztnQkFTTixPQUFPO3NCQUROLEtBQUs7Z0JBU04sVUFBVTtzQkFEVCxLQUFLO2dCQVNOLFlBQVk7c0JBRFgsS0FBSztnQkFTTixZQUFZO3NCQURYLEtBQUs7Z0JBU04sY0FBYztzQkFEYixNQUFNO2dCQVdQLG9CQUFvQjtzQkFEbkIsTUFBTTtnQkFXUCxnQkFBZ0I7c0JBRGYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIENoYXJ0VHlwZSB9IGZyb20gJy4uLy4uL3Nkay11aS1jb3JlLWV4cG9ydHMnO1xuaW1wb3J0IHsgdHlwZSBTdW5idXJzdENoYXJ0UHJvcHMgfSBmcm9tICdAc2lzZW5zZS9zZGstdWktcHJlYWN0JztcbmltcG9ydCB7IHR5cGUgQXJndW1lbnRzQXNPYmplY3QgfSBmcm9tICcuLi8uLi90eXBlcy91dGlsaXR5LXR5cGVzJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCBkaXNwbGF5aW5nIGhpZXJhcmNoaWNhbCBkYXRhIGluIHRoZSBmb3JtIG9mIG5lc3RlZCBzbGljZXMuXG4gKiBUaGlzIHR5cGUgb2YgY2hhcnQgY2FuIGJlIHVzZWQgaW5zdGVhZCBvZiBhIHBpZSBjaGFydCBmb3IgY29tcGFyaW5nIGEgbGFyZ2UgbnVtYmVyIG9mIGNhdGVnb3JpZXMgYW5kIHN1Yi1jYXRlZ29yaWVzLlxuICogU2VlIFtTdW5idXJzdCBDaGFydF0oaHR0cHM6Ly9kb2NzLnNpc2Vuc2UuY29tL21haW4vU2lzZW5zZUxpbnV4L3N1bmJ1cnN0LXdpZGdldC5odG0pIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiAgICA8Y3Nkay1zdW5idXJzdC1jaGFydFxuICogICAgICBbZGF0YVNldF09XCJjaGFydC5kYXRhU2V0XCJcbiAqICAgICAgW2RhdGFPcHRpb25zXT1cImNoYXJ0LmRhdGFPcHRpb25zXCJcbiAqICAgICAgW2hpZ2hsaWdodHNdPVwiZmlsdGVyc1wiXG4gKiAgICAgIFtiZWZvcmVSZW5kZXJdPVwib25CZWZvcmVSZW5kZXJcIlxuICogICAgICAoZGF0YVBvaW50Q2xpY2spPVwibG9nQXJndW1lbnRzKCRldmVudClcIlxuICogICAgICAoZGF0YVBvaW50Q29udGV4dE1lbnUpPVwibG9nQXJndW1lbnRzKCRldmVudClcIlxuICogICAgICAoZGF0YVBvaW50c1NlbGVjdCk9XCJsb2dBcmd1bWVudHMoJGV2ZW50KVwiXG4gKiAgICAvPlxuICogYGBgXG4gKiBgYGB0c1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZWFzdXJlRmFjdG9yeSwgZmlsdGVyRmFjdG9yeSB9IGZyb20gJ0BzaXNlbnNlL3Nkay1kYXRhJztcbmltcG9ydCAqIGFzIERNIGZyb20gJy4uLy4uL2Fzc2V0cy9zYW1wbGUtaGVhbHRoY2FyZS1tb2RlbCc7XG5pbXBvcnQgdHlwZSB7IENoYXJ0VHlwZSB9IGZyb20gJ0BzaXNlbnNlL3Nkay11aS1hbmd1bGFyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFuYWx5dGljcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbmFseXRpY3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hbmFseXRpY3MuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQW5hbHl0aWNzQ29tcG9uZW50IHtcbiAgRE0gPSBETTtcbiAgZmlsdGVycyA9IFtmaWx0ZXJGYWN0b3J5Lm1lbWJlcnMoRE0uRGl2aXNpb25zLkRpdmlzb25fbmFtZSwgWydDYXJkaW9sb2d5JywgJ05ldXJvbG9neSddKV07XG4gIGNoYXJ0ID0ge1xuICAgIGNoYXJ0VHlwZTogJ2NvbHVtbicgYXMgQ2hhcnRUeXBlLFxuICAgIGRhdGFTZXQ6IERNLkRhdGFTb3VyY2UsXG4gICAgZGF0YU9wdGlvbnM6IHtcbiAgICAgIGNhdGVnb3J5OiBbRE0uRGl2aXNpb25zLkRpdmlzb25fbmFtZV0sXG4gICAgICB2YWx1ZTogW21lYXN1cmVGYWN0b3J5LnN1bShETS5BZG1pc3Npb25zLkNvc3Rfb2ZfYWRtaXNzaW9uKV0sXG4gICAgICBicmVha0J5OiBbXSxcbiAgICB9LFxuICB9O1xuXG4gIG9uQmVmb3JlUmVuZGVyKG9wdGlvbnM6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKCdiZWZvcmVSZW5kZXInKTtcbiAgICBjb25zb2xlLmxvZyhvcHRpb25zKTtcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIGxvZ0FyZ3VtZW50cyguLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnNvbGUubG9nKGFyZ3MpO1xuICB9XG59XG4gKiBgYGBcbiAqIDxpbWcgc3JjPVwibWVkaWE6Ly9hbmd1bGFyLXN1bmJ1cnN0LWNoYXJ0LWV4YW1wbGUucG5nXCIgd2lkdGg9XCI4MDBweFwiIC8+XG4gKlxuICogQGdyb3VwIENoYXJ0c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjc2RrLXN1bmJ1cnN0LWNoYXJ0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8Y3Nkay1jaGFydFxuICAgICAgW2NoYXJ0VHlwZV09XCJjaGFydFR5cGVcIlxuICAgICAgW2RhdGFTZXRdPVwiZGF0YVNldFwiXG4gICAgICBbZGF0YU9wdGlvbnNdPVwiZGF0YU9wdGlvbnNcIlxuICAgICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXG4gICAgICBbaGlnaGxpZ2h0c109XCJoaWdobGlnaHRzXCJcbiAgICAgIFtzdHlsZU9wdGlvbnNdPVwic3R5bGVPcHRpb25zXCJcbiAgICAgIFtiZWZvcmVSZW5kZXJdPVwiYmVmb3JlUmVuZGVyXCJcbiAgICAgIChkYXRhUG9pbnRDbGljayk9XCJkYXRhUG9pbnRDbGljay5lbWl0KCRldmVudClcIlxuICAgICAgKGRhdGFQb2ludENvbnRleHRNZW51KT1cImRhdGFQb2ludENvbnRleHRNZW51LmVtaXQoJGV2ZW50KVwiXG4gICAgICAoZGF0YVBvaW50c1NlbGVjdCk9XCJkYXRhUG9pbnRzU2VsZWN0LmVtaXQoJGV2ZW50KVwiXG4gICAgLz5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU3VuYnVyc3RDaGFydENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVN1bmJ1cnN0Q2hhcnRQcm9wcy5kYXRhU2V0fVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgRGF0YVxuICAgKi9cbiAgQElucHV0KClcbiAgZGF0YVNldDogU3VuYnVyc3RDaGFydFByb3BzWydkYXRhU2V0J107XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhU3VuYnVyc3RDaGFydFByb3BzLmRhdGFPcHRpb25zfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2hhcnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGRhdGFPcHRpb25zITogU3VuYnVyc3RDaGFydFByb3BzWydkYXRhT3B0aW9ucyddO1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVN1bmJ1cnN0Q2hhcnRQcm9wcy5maWx0ZXJzfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgRGF0YVxuICAgKi9cbiAgQElucHV0KClcbiAgZmlsdGVyczogU3VuYnVyc3RDaGFydFByb3BzWydmaWx0ZXJzJ107XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhU3VuYnVyc3RDaGFydFByb3BzLmhpZ2hsaWdodHN9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBEYXRhXG4gICAqL1xuICBASW5wdXQoKVxuICBoaWdobGlnaHRzOiBTdW5idXJzdENoYXJ0UHJvcHNbJ2hpZ2hsaWdodHMnXTtcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFTdW5idXJzdENoYXJ0UHJvcHMuc3R5bGVPcHRpb25zfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2hhcnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHN0eWxlT3B0aW9uczogU3VuYnVyc3RDaGFydFByb3BzWydzdHlsZU9wdGlvbnMnXTtcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFTdW5idXJzdENoYXJ0UHJvcHMub25CZWZvcmVSZW5kZXJ9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIEBJbnB1dCgpXG4gIGJlZm9yZVJlbmRlcjogU3VuYnVyc3RDaGFydFByb3BzWydvbkJlZm9yZVJlbmRlciddO1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVN1bmJ1cnN0Q2hhcnRQcm9wcy5vbkRhdGFQb2ludENsaWNrfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZGF0YVBvaW50Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIEFyZ3VtZW50c0FzT2JqZWN0PFN1bmJ1cnN0Q2hhcnRQcm9wc1snb25EYXRhUG9pbnRDbGljayddLCBbJ3BvaW50JywgJ25hdGl2ZUV2ZW50J10+XG4gID4oKTtcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFTdW5idXJzdENoYXJ0UHJvcHMub25EYXRhUG9pbnRDb250ZXh0TWVudX1cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgQE91dHB1dCgpXG4gIGRhdGFQb2ludENvbnRleHRNZW51ID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBBcmd1bWVudHNBc09iamVjdDxTdW5idXJzdENoYXJ0UHJvcHNbJ29uRGF0YVBvaW50Q29udGV4dE1lbnUnXSwgWydwb2ludCcsICduYXRpdmVFdmVudCddPlxuICA+KCk7XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhU3VuYnVyc3RDaGFydFByb3BzLm9uRGF0YVBvaW50c1NlbGVjdGVkfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBAT3V0cHV0KClcbiAgZGF0YVBvaW50c1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQXJndW1lbnRzQXNPYmplY3Q8U3VuYnVyc3RDaGFydFByb3BzWydvbkRhdGFQb2ludHNTZWxlY3RlZCddLCBbJ3BvaW50cycsICduYXRpdmVFdmVudCddPlxuICA+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgY2hhcnRUeXBlOiBDaGFydFR5cGUgPSAnc3VuYnVyc3QnO1xufVxuIl19
@@ -0,0 +1,94 @@
1
+ import { Component, Input, ViewChild, } from '@angular/core';
2
+ import { Table, ComponentAdapter, createElement } from '@sisense/sdk-ui-preact';
3
+ import { createSisenseContextConnector, createThemeContextConnector, } from '../../component-wrapper-helpers';
4
+ import { template, rootId } from '../../component-wrapper-helpers/template';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../services/sisense-context.service";
7
+ import * as i2 from "../../services/theme.service";
8
+ /**
9
+ * Table with aggregation and pagination.
10
+ *
11
+ * @example
12
+ * ```html
13
+ * <csdk-table [dataSet]="table.dataSet" [dataOptions]="table.dataOptions" [filters]="filters" />
14
+ * ```
15
+ * ```ts
16
+ import { Component } from '@angular/core';
17
+ import { measureFactory, filterFactory } from '@sisense/sdk-data';
18
+ import * as DM from '../../assets/sample-healthcare-model';
19
+
20
+ @Component({
21
+ selector: 'app-analytics',
22
+ templateUrl: './analytics.component.html',
23
+ styleUrls: ['./analytics.component.scss'],
24
+ })
25
+ export class AnalyticsComponent {
26
+ DM = DM;
27
+ filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];
28
+ table = {
29
+ dataSet: DM.DataSource,
30
+ dataOptions: {
31
+ columns: [DM.Admissions.Patient_ID, measureFactory.sum(DM.Admissions.Cost_of_admission)],
32
+ },
33
+ };
34
+
35
+ }
36
+ * ```
37
+ * <img src="media://angular-table-chart-example.png" width="800px" />
38
+ *
39
+ * @group Data Grids
40
+ */
41
+ export class TableComponent {
42
+ constructor(sisenseContextService, themeService) {
43
+ this.sisenseContextService = sisenseContextService;
44
+ this.themeService = themeService;
45
+ this.componentAdapter = new ComponentAdapter(() => this.createPreactComponent(), [
46
+ createSisenseContextConnector(this.sisenseContextService),
47
+ createThemeContextConnector(this.themeService),
48
+ ]);
49
+ }
50
+ /** @internal */
51
+ ngAfterViewInit() {
52
+ this.componentAdapter.render(this.preactRef.nativeElement);
53
+ }
54
+ /** @internal */
55
+ ngOnChanges() {
56
+ if (this.preactRef) {
57
+ this.componentAdapter.render(this.preactRef.nativeElement);
58
+ }
59
+ }
60
+ createPreactComponent() {
61
+ const props = {
62
+ dataSet: this.dataSet,
63
+ dataOptions: this.dataOptions,
64
+ filters: this.filters,
65
+ styleOptions: this.styleOptions,
66
+ };
67
+ return createElement(Table, props);
68
+ }
69
+ /** @internal */
70
+ ngOnDestroy() {
71
+ this.componentAdapter.destroy();
72
+ }
73
+ }
74
+ TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableComponent, deps: [{ token: i1.SisenseContextService }, { token: i2.ThemeService }], target: i0.ɵɵFactoryTarget.Component });
75
+ TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TableComponent, selector: "csdk-table", inputs: { dataSet: "dataSet", dataOptions: "dataOptions", filters: "filters", styleOptions: "styleOptions" }, viewQueries: [{ propertyName: "preactRef", first: true, predicate: ["preact"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\n <div #preact style=\"width: 100%; height: 100%\"></div>\n", isInline: true });
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableComponent, decorators: [{
77
+ type: Component,
78
+ args: [{
79
+ selector: 'csdk-table',
80
+ template,
81
+ }]
82
+ }], ctorParameters: function () { return [{ type: i1.SisenseContextService }, { type: i2.ThemeService }]; }, propDecorators: { preactRef: [{
83
+ type: ViewChild,
84
+ args: [rootId]
85
+ }], dataSet: [{
86
+ type: Input
87
+ }], dataOptions: [{
88
+ type: Input
89
+ }], filters: [{
90
+ type: Input
91
+ }], styleOptions: [{
92
+ type: Input
93
+ }] } });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0cy90YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxLQUFLLEVBR0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQW1CLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR2pHLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsMkJBQTJCLEdBQzVCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQUU1RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ0c7QUFLSCxNQUFNLE9BQU8sY0FBYztJQXVDekIsWUFDVSxxQkFBNEMsRUFDNUMsWUFBMEI7UUFEMUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUVsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FDMUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQ2xDO1lBQ0UsNkJBQTZCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1lBQ3pELDJCQUEyQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDL0MsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELGdCQUFnQjtJQUNoQixlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLE1BQU0sS0FBSyxHQUFHO1lBQ1osT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ2hDLENBQUM7UUFFRixPQUFPLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixXQUFXO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7OzRHQTlFVSxjQUFjO2dHQUFkLGNBQWM7NEZBQWQsY0FBYztrQkFKMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUTtpQkFDVDt1SUFJQyxTQUFTO3NCQURSLFNBQVM7dUJBQUMsTUFBTTtnQkFTakIsT0FBTztzQkFETixLQUFLO2dCQVNOLFdBQVc7c0JBRFYsS0FBSztnQkFTTixPQUFPO3NCQUROLEtBQUs7Z0JBU04sWUFBWTtzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZSwgdHlwZSBUYWJsZVByb3BzLCBDb21wb25lbnRBZGFwdGVyLCBjcmVhdGVFbGVtZW50IH0gZnJvbSAnQHNpc2Vuc2Uvc2RrLXVpLXByZWFjdCc7XG5pbXBvcnQgeyBTaXNlbnNlQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zaXNlbnNlLWNvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGNyZWF0ZVNpc2Vuc2VDb250ZXh0Q29ubmVjdG9yLFxuICBjcmVhdGVUaGVtZUNvbnRleHRDb25uZWN0b3IsXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudC13cmFwcGVyLWhlbHBlcnMnO1xuaW1wb3J0IHsgdGVtcGxhdGUsIHJvb3RJZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudC13cmFwcGVyLWhlbHBlcnMvdGVtcGxhdGUnO1xuXG4vKipcbiAqIFRhYmxlIHdpdGggYWdncmVnYXRpb24gYW5kIHBhZ2luYXRpb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqICA8Y3Nkay10YWJsZSBbZGF0YVNldF09XCJ0YWJsZS5kYXRhU2V0XCIgW2RhdGFPcHRpb25zXT1cInRhYmxlLmRhdGFPcHRpb25zXCIgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiIC8+XG4gKiBgYGBcbiAqIGBgYHRzXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1lYXN1cmVGYWN0b3J5LCBmaWx0ZXJGYWN0b3J5IH0gZnJvbSAnQHNpc2Vuc2Uvc2RrLWRhdGEnO1xuaW1wb3J0ICogYXMgRE0gZnJvbSAnLi4vLi4vYXNzZXRzL3NhbXBsZS1oZWFsdGhjYXJlLW1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFuYWx5dGljcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbmFseXRpY3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hbmFseXRpY3MuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQW5hbHl0aWNzQ29tcG9uZW50IHtcbiAgRE0gPSBETTtcbiAgZmlsdGVycyA9IFtmaWx0ZXJGYWN0b3J5Lm1lbWJlcnMoRE0uRGl2aXNpb25zLkRpdmlzb25fbmFtZSwgWydDYXJkaW9sb2d5JywgJ05ldXJvbG9neSddKV07XG4gIHRhYmxlID0ge1xuICAgIGRhdGFTZXQ6IERNLkRhdGFTb3VyY2UsXG4gICAgZGF0YU9wdGlvbnM6IHtcbiAgICAgIGNvbHVtbnM6IFtETS5BZG1pc3Npb25zLlBhdGllbnRfSUQsIG1lYXN1cmVGYWN0b3J5LnN1bShETS5BZG1pc3Npb25zLkNvc3Rfb2ZfYWRtaXNzaW9uKV0sXG4gICAgfSxcbiAgfTtcblxufVxuICogYGBgXG4gKiA8aW1nIHNyYz1cIm1lZGlhOi8vYW5ndWxhci10YWJsZS1jaGFydC1leGFtcGxlLnBuZ1wiIHdpZHRoPVwiODAwcHhcIiAvPlxuICpcbiAqIEBncm91cCBEYXRhIEdyaWRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NzZGstdGFibGUnLFxuICB0ZW1wbGF0ZSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQFZpZXdDaGlsZChyb290SWQpXG4gIHByZWFjdFJlZiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVRhYmxlUHJvcHMuZGF0YVNldH1cbiAgICpcbiAgICogQGNhdGVnb3J5IERhdGFcbiAgICovXG4gIEBJbnB1dCgpXG4gIGRhdGFTZXQ6IFRhYmxlUHJvcHNbJ2RhdGFTZXQnXTtcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFUYWJsZVByb3BzLmRhdGFPcHRpb25zfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgRGF0YVxuICAgKi9cbiAgQElucHV0KClcbiAgZGF0YU9wdGlvbnMhOiBUYWJsZVByb3BzWydkYXRhT3B0aW9ucyddO1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVRhYmxlUHJvcHMuZmlsdGVyc31cbiAgICpcbiAgICogQGNhdGVnb3J5IERhdGFcbiAgICovXG4gIEBJbnB1dCgpXG4gIGZpbHRlcnM6IFRhYmxlUHJvcHNbJ2ZpbHRlcnMnXTtcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFUYWJsZVByb3BzLnN0eWxlT3B0aW9uc31cbiAgICpcbiAgICogQGNhdGVnb3J5IFJlcHJlc2VudGF0aW9uXG4gICAqL1xuICBASW5wdXQoKVxuICBzdHlsZU9wdGlvbnM6IFRhYmxlUHJvcHNbJ3N0eWxlT3B0aW9ucyddO1xuXG4gIHByaXZhdGUgY29tcG9uZW50QWRhcHRlcjogQ29tcG9uZW50QWRhcHRlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNpc2Vuc2VDb250ZXh0U2VydmljZTogU2lzZW5zZUNvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGhlbWVTZXJ2aWNlOiBUaGVtZVNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuY29tcG9uZW50QWRhcHRlciA9IG5ldyBDb21wb25lbnRBZGFwdGVyKFxuICAgICAgKCkgPT4gdGhpcy5jcmVhdGVQcmVhY3RDb21wb25lbnQoKSxcbiAgICAgIFtcbiAgICAgICAgY3JlYXRlU2lzZW5zZUNvbnRleHRDb25uZWN0b3IodGhpcy5zaXNlbnNlQ29udGV4dFNlcnZpY2UpLFxuICAgICAgICBjcmVhdGVUaGVtZUNvbnRleHRDb25uZWN0b3IodGhpcy50aGVtZVNlcnZpY2UpLFxuICAgICAgXSxcbiAgICApO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jb21wb25lbnRBZGFwdGVyLnJlbmRlcih0aGlzLnByZWFjdFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMucHJlYWN0UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudEFkYXB0ZXIucmVuZGVyKHRoaXMucHJlYWN0UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHJlYWN0Q29tcG9uZW50KCkge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgZGF0YVNldDogdGhpcy5kYXRhU2V0LFxuICAgICAgZGF0YU9wdGlvbnM6IHRoaXMuZGF0YU9wdGlvbnMsXG4gICAgICBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMsXG4gICAgICBzdHlsZU9wdGlvbnM6IHRoaXMuc3R5bGVPcHRpb25zLFxuICAgIH07XG5cbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudChUYWJsZSwgcHJvcHMpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmNvbXBvbmVudEFkYXB0ZXIuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
@@ -5,6 +5,57 @@ import * as i1 from "./chart.component";
5
5
  * A component displaying hierarchical data in the form of nested rectangles.
6
6
  * This type of chart can be used instead of a column chart for comparing a large number of categories and sub-categories.
7
7
  * See [Treemap Chart](https://docs.sisense.com/main/SisenseLinux/treemap.htm) for more information.
8
+ *
9
+ * @example
10
+ * ```html
11
+ * <csdk-treemap-chart
12
+ * [dataSet]="chart.dataSet"
13
+ * [dataOptions]="chart.dataOptions"
14
+ * [highlights]="filters"
15
+ * [beforeRender]="onBeforeRender"
16
+ * (dataPointClick)="logArguments($event)"
17
+ * (dataPointContextMenu)="logArguments($event)"
18
+ * (dataPointsSelect)="logArguments($event)"
19
+ * />
20
+ * ```
21
+ * ```ts
22
+ import { Component } from '@angular/core';
23
+ import { measureFactory, filterFactory } from '@sisense/sdk-data';
24
+ import type { ChartType } from '@sisense/sdk-ui-angular';
25
+ import * as DM from '../../assets/sample-healthcare-model';
26
+
27
+ @Component({
28
+ selector: 'app-analytics',
29
+ templateUrl: './analytics.component.html',
30
+ styleUrls: ['./analytics.component.scss'],
31
+ })
32
+ export class AnalyticsComponent {
33
+ DM = DM;
34
+ filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];
35
+ chart = {
36
+ chartType: 'column' as ChartType,
37
+ dataSet: DM.DataSource,
38
+ dataOptions: {
39
+ category: [DM.Divisions.Divison_name],
40
+ value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],
41
+ breakBy: [],
42
+ },
43
+ };
44
+
45
+ onBeforeRender(options: any) {
46
+ console.log('beforeRender');
47
+ console.log(options);
48
+ return options;
49
+ }
50
+
51
+ logArguments(...args: any[]) {
52
+ console.log(args);
53
+ }
54
+ }
55
+ * ```
56
+ * <img src="media://angular-treemap-chart-example.png" width="800px" />
57
+ *
58
+ * @group Charts
8
59
  */
9
60
  export class TreemapChartComponent {
10
61
  constructor() {
@@ -83,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
83
134
  }], dataPointsSelect: [{
84
135
  type: Output
85
136
  }] } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZW1hcC1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdHJlZW1hcC1jaGFydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBS3ZFOzs7O0dBSUc7QUFrQkgsTUFBTSxPQUFPLHFCQUFxQjtJQWpCbEM7UUFrRUU7Ozs7V0FJRztRQUVILG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBRTlCLENBQUM7UUFFSjs7OztXQUlHO1FBRUgseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBRXBDLENBQUM7UUFFSjs7OztXQUlHO1FBRUgscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBRWhDLENBQUM7UUFFSixnQkFBZ0I7UUFDVCxjQUFTLEdBQWMsU0FBUyxDQUFDO0tBQ3pDOzttSEFqRlkscUJBQXFCO3VHQUFyQixxQkFBcUIsbVdBZnRCOzs7Ozs7Ozs7Ozs7O0dBYVQ7NEZBRVUscUJBQXFCO2tCQWpCakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7R0FhVDtpQkFDRjs4QkFRQyxPQUFPO3NCQUROLEtBQUs7Z0JBU04sV0FBVztzQkFEVixLQUFLO2dCQVNOLE9BQU87c0JBRE4sS0FBSztnQkFTTixVQUFVO3NCQURULEtBQUs7Z0JBU04sWUFBWTtzQkFEWCxLQUFLO2dCQVNOLFlBQVk7c0JBRFgsS0FBSztnQkFTTixjQUFjO3NCQURiLE1BQU07Z0JBV1Asb0JBQW9CO3NCQURuQixNQUFNO2dCQVdQLGdCQUFnQjtzQkFEZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHR5cGUgQ2hhcnRUeXBlIH0gZnJvbSAnLi4vc2RrLXVpLWNvcmUtZXhwb3J0cyc7XG5pbXBvcnQgeyB0eXBlIFRyZWVtYXBDaGFydFByb3BzIH0gZnJvbSAnQHNpc2Vuc2Uvc2RrLXVpLXByZWFjdCc7XG5pbXBvcnQgeyB0eXBlIEFyZ3VtZW50c0FzT2JqZWN0IH0gZnJvbSAnLi4vdHlwZXMvdXRpbGl0eS10eXBlcyc7XG5cbi8qKlxuICogQSBjb21wb25lbnQgZGlzcGxheWluZyBoaWVyYXJjaGljYWwgZGF0YSBpbiB0aGUgZm9ybSBvZiBuZXN0ZWQgcmVjdGFuZ2xlcy5cbiAqIFRoaXMgdHlwZSBvZiBjaGFydCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGEgY29sdW1uIGNoYXJ0IGZvciBjb21wYXJpbmcgYSBsYXJnZSBudW1iZXIgb2YgY2F0ZWdvcmllcyBhbmQgc3ViLWNhdGVnb3JpZXMuXG4gKiBTZWUgW1RyZWVtYXAgQ2hhcnRdKGh0dHBzOi8vZG9jcy5zaXNlbnNlLmNvbS9tYWluL1Npc2Vuc2VMaW51eC90cmVlbWFwLmh0bSkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NzZGstdHJlZW1hcC1jaGFydCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGNzZGstY2hhcnRcbiAgICAgIFtjaGFydFR5cGVdPVwiY2hhcnRUeXBlXCJcbiAgICAgIFtkYXRhU2V0XT1cImRhdGFTZXRcIlxuICAgICAgW2RhdGFPcHRpb25zXT1cImRhdGFPcHRpb25zXCJcbiAgICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgICAgW2hpZ2hsaWdodHNdPVwiaGlnaGxpZ2h0c1wiXG4gICAgICBbc3R5bGVPcHRpb25zXT1cInN0eWxlT3B0aW9uc1wiXG4gICAgICBbYmVmb3JlUmVuZGVyXT1cImJlZm9yZVJlbmRlclwiXG4gICAgICAoZGF0YVBvaW50Q2xpY2spPVwiZGF0YVBvaW50Q2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgIChkYXRhUG9pbnRDb250ZXh0TWVudSk9XCJkYXRhUG9pbnRDb250ZXh0TWVudS5lbWl0KCRldmVudClcIlxuICAgICAgKGRhdGFQb2ludHNTZWxlY3QpPVwiZGF0YVBvaW50c1NlbGVjdC5lbWl0KCRldmVudClcIlxuICAgIC8+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVtYXBDaGFydENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVRyZWVtYXBDaGFydFByb3BzLmRhdGFTZXR9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBEYXRhXG4gICAqL1xuICBASW5wdXQoKVxuICBkYXRhU2V0OiBUcmVlbWFwQ2hhcnRQcm9wc1snZGF0YVNldCddO1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVRyZWVtYXBDaGFydFByb3BzLmRhdGFPcHRpb25zfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2hhcnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGRhdGFPcHRpb25zITogVHJlZW1hcENoYXJ0UHJvcHNbJ2RhdGFPcHRpb25zJ107XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhVHJlZW1hcENoYXJ0UHJvcHMuZmlsdGVyc31cbiAgICpcbiAgICogQGNhdGVnb3J5IERhdGFcbiAgICovXG4gIEBJbnB1dCgpXG4gIGZpbHRlcnM6IFRyZWVtYXBDaGFydFByb3BzWydmaWx0ZXJzJ107XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhVHJlZW1hcENoYXJ0UHJvcHMuaGlnaGxpZ2h0c31cbiAgICpcbiAgICogQGNhdGVnb3J5IERhdGFcbiAgICovXG4gIEBJbnB1dCgpXG4gIGhpZ2hsaWdodHM6IFRyZWVtYXBDaGFydFByb3BzWydoaWdobGlnaHRzJ107XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhVHJlZW1hcENoYXJ0UHJvcHMuc3R5bGVPcHRpb25zfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2hhcnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHN0eWxlT3B0aW9uczogVHJlZW1hcENoYXJ0UHJvcHNbJ3N0eWxlT3B0aW9ucyddO1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVRyZWVtYXBDaGFydFByb3BzLm9uQmVmb3JlUmVuZGVyfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBASW5wdXQoKVxuICBiZWZvcmVSZW5kZXI6IFRyZWVtYXBDaGFydFByb3BzWydvbkJlZm9yZVJlbmRlciddO1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVRyZWVtYXBDaGFydFByb3BzLm9uRGF0YVBvaW50Q2xpY2t9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIEBPdXRwdXQoKVxuICBkYXRhUG9pbnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQXJndW1lbnRzQXNPYmplY3Q8VHJlZW1hcENoYXJ0UHJvcHNbJ29uRGF0YVBvaW50Q2xpY2snXSwgWydwb2ludCcsICduYXRpdmVFdmVudCddPlxuICA+KCk7XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhVHJlZW1hcENoYXJ0UHJvcHMub25EYXRhUG9pbnRDb250ZXh0TWVudX1cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgQE91dHB1dCgpXG4gIGRhdGFQb2ludENvbnRleHRNZW51ID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBBcmd1bWVudHNBc09iamVjdDxUcmVlbWFwQ2hhcnRQcm9wc1snb25EYXRhUG9pbnRDb250ZXh0TWVudSddLCBbJ3BvaW50JywgJ25hdGl2ZUV2ZW50J10+XG4gID4oKTtcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFUcmVlbWFwQ2hhcnRQcm9wcy5vbkRhdGFQb2ludHNTZWxlY3RlZH1cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgQE91dHB1dCgpXG4gIGRhdGFQb2ludHNTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIEFyZ3VtZW50c0FzT2JqZWN0PFRyZWVtYXBDaGFydFByb3BzWydvbkRhdGFQb2ludHNTZWxlY3RlZCddLCBbJ3BvaW50cycsICduYXRpdmVFdmVudCddPlxuICA+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgY2hhcnRUeXBlOiBDaGFydFR5cGUgPSAndHJlZW1hcCc7XG59XG4iXX0=
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZW1hcC1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnRzL3RyZWVtYXAtY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUt2RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVERztBQWtCSCxNQUFNLE9BQU8scUJBQXFCO0lBakJsQztRQWtFRTs7OztXQUlHO1FBRUgsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFFOUIsQ0FBQztRQUVKOzs7O1dBSUc7UUFFSCx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFFcEMsQ0FBQztRQUVKOzs7O1dBSUc7UUFFSCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFFaEMsQ0FBQztRQUVKLGdCQUFnQjtRQUNULGNBQVMsR0FBYyxTQUFTLENBQUM7S0FDekM7O21IQWpGWSxxQkFBcUI7dUdBQXJCLHFCQUFxQixtV0FmdEI7Ozs7Ozs7Ozs7Ozs7R0FhVDs0RkFFVSxxQkFBcUI7a0JBakJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztHQWFUO2lCQUNGOzhCQVFDLE9BQU87c0JBRE4sS0FBSztnQkFTTixXQUFXO3NCQURWLEtBQUs7Z0JBU04sT0FBTztzQkFETixLQUFLO2dCQVNOLFVBQVU7c0JBRFQsS0FBSztnQkFTTixZQUFZO3NCQURYLEtBQUs7Z0JBU04sWUFBWTtzQkFEWCxLQUFLO2dCQVNOLGNBQWM7c0JBRGIsTUFBTTtnQkFXUCxvQkFBb0I7c0JBRG5CLE1BQU07Z0JBV1AsZ0JBQWdCO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHlwZSBDaGFydFR5cGUgfSBmcm9tICcuLi8uLi9zZGstdWktY29yZS1leHBvcnRzJztcbmltcG9ydCB7IHR5cGUgVHJlZW1hcENoYXJ0UHJvcHMgfSBmcm9tICdAc2lzZW5zZS9zZGstdWktcHJlYWN0JztcbmltcG9ydCB7IHR5cGUgQXJndW1lbnRzQXNPYmplY3QgfSBmcm9tICcuLi8uLi90eXBlcy91dGlsaXR5LXR5cGVzJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCBkaXNwbGF5aW5nIGhpZXJhcmNoaWNhbCBkYXRhIGluIHRoZSBmb3JtIG9mIG5lc3RlZCByZWN0YW5nbGVzLlxuICogVGhpcyB0eXBlIG9mIGNoYXJ0IGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgYSBjb2x1bW4gY2hhcnQgZm9yIGNvbXBhcmluZyBhIGxhcmdlIG51bWJlciBvZiBjYXRlZ29yaWVzIGFuZCBzdWItY2F0ZWdvcmllcy5cbiAqIFNlZSBbVHJlZW1hcCBDaGFydF0oaHR0cHM6Ly9kb2NzLnNpc2Vuc2UuY29tL21haW4vU2lzZW5zZUxpbnV4L3RyZWVtYXAuaHRtKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogICAgPGNzZGstdHJlZW1hcC1jaGFydFxuICogICAgICBbZGF0YVNldF09XCJjaGFydC5kYXRhU2V0XCJcbiAqICAgICAgW2RhdGFPcHRpb25zXT1cImNoYXJ0LmRhdGFPcHRpb25zXCJcbiAqICAgICAgW2hpZ2hsaWdodHNdPVwiZmlsdGVyc1wiXG4gKiAgICAgIFtiZWZvcmVSZW5kZXJdPVwib25CZWZvcmVSZW5kZXJcIlxuICogICAgICAoZGF0YVBvaW50Q2xpY2spPVwibG9nQXJndW1lbnRzKCRldmVudClcIlxuICogICAgICAoZGF0YVBvaW50Q29udGV4dE1lbnUpPVwibG9nQXJndW1lbnRzKCRldmVudClcIlxuICogICAgICAoZGF0YVBvaW50c1NlbGVjdCk9XCJsb2dBcmd1bWVudHMoJGV2ZW50KVwiXG4gKiAgICAvPlxuICogYGBgXG4gKiBgYGB0c1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZWFzdXJlRmFjdG9yeSwgZmlsdGVyRmFjdG9yeSB9IGZyb20gJ0BzaXNlbnNlL3Nkay1kYXRhJztcbmltcG9ydCB0eXBlIHsgQ2hhcnRUeXBlIH0gZnJvbSAnQHNpc2Vuc2Uvc2RrLXVpLWFuZ3VsYXInO1xuaW1wb3J0ICogYXMgRE0gZnJvbSAnLi4vLi4vYXNzZXRzL3NhbXBsZS1oZWFsdGhjYXJlLW1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFuYWx5dGljcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbmFseXRpY3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hbmFseXRpY3MuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQW5hbHl0aWNzQ29tcG9uZW50IHtcbiAgRE0gPSBETTtcbiAgZmlsdGVycyA9IFtmaWx0ZXJGYWN0b3J5Lm1lbWJlcnMoRE0uRGl2aXNpb25zLkRpdmlzb25fbmFtZSwgWydDYXJkaW9sb2d5JywgJ05ldXJvbG9neSddKV07XG4gIGNoYXJ0ID0ge1xuICAgIGNoYXJ0VHlwZTogJ2NvbHVtbicgYXMgQ2hhcnRUeXBlLFxuICAgIGRhdGFTZXQ6IERNLkRhdGFTb3VyY2UsXG4gICAgZGF0YU9wdGlvbnM6IHtcbiAgICAgIGNhdGVnb3J5OiBbRE0uRGl2aXNpb25zLkRpdmlzb25fbmFtZV0sXG4gICAgICB2YWx1ZTogW21lYXN1cmVGYWN0b3J5LnN1bShETS5BZG1pc3Npb25zLkNvc3Rfb2ZfYWRtaXNzaW9uKV0sXG4gICAgICBicmVha0J5OiBbXSxcbiAgICB9LFxuICB9O1xuXG4gIG9uQmVmb3JlUmVuZGVyKG9wdGlvbnM6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKCdiZWZvcmVSZW5kZXInKTtcbiAgICBjb25zb2xlLmxvZyhvcHRpb25zKTtcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIGxvZ0FyZ3VtZW50cyguLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnNvbGUubG9nKGFyZ3MpO1xuICB9XG59XG4gKiBgYGBcbiAqIDxpbWcgc3JjPVwibWVkaWE6Ly9hbmd1bGFyLXRyZWVtYXAtY2hhcnQtZXhhbXBsZS5wbmdcIiB3aWR0aD1cIjgwMHB4XCIgLz5cbiAqXG4gKiBAZ3JvdXAgQ2hhcnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NzZGstdHJlZW1hcC1jaGFydCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGNzZGstY2hhcnRcbiAgICAgIFtjaGFydFR5cGVdPVwiY2hhcnRUeXBlXCJcbiAgICAgIFtkYXRhU2V0XT1cImRhdGFTZXRcIlxuICAgICAgW2RhdGFPcHRpb25zXT1cImRhdGFPcHRpb25zXCJcbiAgICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgICAgW2hpZ2hsaWdodHNdPVwiaGlnaGxpZ2h0c1wiXG4gICAgICBbc3R5bGVPcHRpb25zXT1cInN0eWxlT3B0aW9uc1wiXG4gICAgICBbYmVmb3JlUmVuZGVyXT1cImJlZm9yZVJlbmRlclwiXG4gICAgICAoZGF0YVBvaW50Q2xpY2spPVwiZGF0YVBvaW50Q2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgIChkYXRhUG9pbnRDb250ZXh0TWVudSk9XCJkYXRhUG9pbnRDb250ZXh0TWVudS5lbWl0KCRldmVudClcIlxuICAgICAgKGRhdGFQb2ludHNTZWxlY3QpPVwiZGF0YVBvaW50c1NlbGVjdC5lbWl0KCRldmVudClcIlxuICAgIC8+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVtYXBDaGFydENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVRyZWVtYXBDaGFydFByb3BzLmRhdGFTZXR9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBEYXRhXG4gICAqL1xuICBASW5wdXQoKVxuICBkYXRhU2V0OiBUcmVlbWFwQ2hhcnRQcm9wc1snZGF0YVNldCddO1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVRyZWVtYXBDaGFydFByb3BzLmRhdGFPcHRpb25zfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2hhcnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGRhdGFPcHRpb25zITogVHJlZW1hcENoYXJ0UHJvcHNbJ2RhdGFPcHRpb25zJ107XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhVHJlZW1hcENoYXJ0UHJvcHMuZmlsdGVyc31cbiAgICpcbiAgICogQGNhdGVnb3J5IERhdGFcbiAgICovXG4gIEBJbnB1dCgpXG4gIGZpbHRlcnM6IFRyZWVtYXBDaGFydFByb3BzWydmaWx0ZXJzJ107XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhVHJlZW1hcENoYXJ0UHJvcHMuaGlnaGxpZ2h0c31cbiAgICpcbiAgICogQGNhdGVnb3J5IERhdGFcbiAgICovXG4gIEBJbnB1dCgpXG4gIGhpZ2hsaWdodHM6IFRyZWVtYXBDaGFydFByb3BzWydoaWdobGlnaHRzJ107XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhVHJlZW1hcENoYXJ0UHJvcHMuc3R5bGVPcHRpb25zfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2hhcnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHN0eWxlT3B0aW9uczogVHJlZW1hcENoYXJ0UHJvcHNbJ3N0eWxlT3B0aW9ucyddO1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVRyZWVtYXBDaGFydFByb3BzLm9uQmVmb3JlUmVuZGVyfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBASW5wdXQoKVxuICBiZWZvcmVSZW5kZXI6IFRyZWVtYXBDaGFydFByb3BzWydvbkJlZm9yZVJlbmRlciddO1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVRyZWVtYXBDaGFydFByb3BzLm9uRGF0YVBvaW50Q2xpY2t9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIEBPdXRwdXQoKVxuICBkYXRhUG9pbnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQXJndW1lbnRzQXNPYmplY3Q8VHJlZW1hcENoYXJ0UHJvcHNbJ29uRGF0YVBvaW50Q2xpY2snXSwgWydwb2ludCcsICduYXRpdmVFdmVudCddPlxuICA+KCk7XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhVHJlZW1hcENoYXJ0UHJvcHMub25EYXRhUG9pbnRDb250ZXh0TWVudX1cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgQE91dHB1dCgpXG4gIGRhdGFQb2ludENvbnRleHRNZW51ID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBBcmd1bWVudHNBc09iamVjdDxUcmVlbWFwQ2hhcnRQcm9wc1snb25EYXRhUG9pbnRDb250ZXh0TWVudSddLCBbJ3BvaW50JywgJ25hdGl2ZUV2ZW50J10+XG4gID4oKTtcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFUcmVlbWFwQ2hhcnRQcm9wcy5vbkRhdGFQb2ludHNTZWxlY3RlZH1cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgQE91dHB1dCgpXG4gIGRhdGFQb2ludHNTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIEFyZ3VtZW50c0FzT2JqZWN0PFRyZWVtYXBDaGFydFByb3BzWydvbkRhdGFQb2ludHNTZWxlY3RlZCddLCBbJ3BvaW50cycsICduYXRpdmVFdmVudCddPlxuICA+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgY2hhcnRUeXBlOiBDaGFydFR5cGUgPSAndHJlZW1hcCc7XG59XG4iXX0=