@sisense/sdk-ui-angular 1.31.0 → 1.32.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 (105) hide show
  1. package/dist/ai/lib/component-wrapper-helpers/context-connectors.d.ts +10 -0
  2. package/dist/ai/lib/component-wrapper-helpers/index.d.ts +2 -0
  3. package/dist/ai/lib/component-wrapper-helpers/template.d.ts +2 -0
  4. package/dist/ai/lib/components/chatbot.component.d.ts +133 -0
  5. package/dist/ai/lib/components/get-nlg-insights.component.d.ts +142 -0
  6. package/dist/ai/lib/components/index.d.ts +2 -0
  7. package/dist/ai/lib/sdk-ai.module.d.ts +40 -5
  8. package/dist/ai/lib/sdk-ui-core-exports.d.ts +1 -0
  9. package/dist/ai/lib/services/ai.service.d.ts +88 -0
  10. package/dist/ai/lib/services/index.d.ts +1 -0
  11. package/dist/ai/public-api.d.ts +6 -0
  12. package/dist/esm2020/ai/lib/component-wrapper-helpers/context-connectors.mjs +20 -0
  13. package/dist/esm2020/ai/lib/component-wrapper-helpers/index.mjs +3 -0
  14. package/dist/esm2020/ai/lib/component-wrapper-helpers/template.mjs +5 -0
  15. package/dist/esm2020/ai/lib/components/chatbot.component.mjs +139 -0
  16. package/dist/esm2020/ai/lib/components/get-nlg-insights.component.mjs +146 -0
  17. package/dist/esm2020/ai/lib/components/index.mjs +3 -0
  18. package/dist/esm2020/ai/lib/sdk-ai.module.mjs +40 -6
  19. package/dist/esm2020/ai/lib/sdk-ui-core-exports.mjs +3 -0
  20. package/dist/esm2020/ai/lib/services/ai.service.mjs +137 -0
  21. package/dist/esm2020/ai/lib/services/index.mjs +2 -0
  22. package/dist/esm2020/ai/public-api.mjs +7 -1
  23. package/dist/esm2020/lib/component-wrapper-helpers/index.mjs +2 -1
  24. package/dist/esm2020/lib/components/charts/area-chart.component.mjs +1 -1
  25. package/dist/esm2020/lib/components/charts/area-range-chart.component.mjs +1 -1
  26. package/dist/esm2020/lib/components/charts/areamap-chart.component.mjs +1 -1
  27. package/dist/esm2020/lib/components/charts/bar-chart.component.mjs +1 -1
  28. package/dist/esm2020/lib/components/charts/boxplot-chart.component.mjs +1 -1
  29. package/dist/esm2020/lib/components/charts/chart.component.mjs +1 -1
  30. package/dist/esm2020/lib/components/charts/column-chart.component.mjs +1 -1
  31. package/dist/esm2020/lib/components/charts/funnel-chart.component.mjs +1 -1
  32. package/dist/esm2020/lib/components/charts/indicator-chart.component.mjs +1 -1
  33. package/dist/esm2020/lib/components/charts/line-chart.component.mjs +1 -1
  34. package/dist/esm2020/lib/components/charts/pie-chart.component.mjs +1 -1
  35. package/dist/esm2020/lib/components/charts/pivot-table.component.mjs +1 -1
  36. package/dist/esm2020/lib/components/charts/polar-chart.component.mjs +1 -1
  37. package/dist/esm2020/lib/components/charts/scatter-chart.component.mjs +1 -1
  38. package/dist/esm2020/lib/components/charts/scattermap-chart.component.mjs +1 -1
  39. package/dist/esm2020/lib/components/charts/sunburst-chart.component.mjs +1 -1
  40. package/dist/esm2020/lib/components/charts/table.component.mjs +1 -1
  41. package/dist/esm2020/lib/components/charts/treemap-chart.component.mjs +1 -1
  42. package/dist/esm2020/lib/components/dashboard/dashboard-by-id.component.mjs +1 -1
  43. package/dist/esm2020/lib/components/dashboard/dashboard.component.mjs +1 -1
  44. package/dist/esm2020/lib/components/drilldown-breadcrumbs.component.mjs +1 -1
  45. package/dist/esm2020/lib/components/filters/criteria-filter-tile.component.mjs +1 -1
  46. package/dist/esm2020/lib/components/filters/date-range-filter-tile.component.mjs +1 -1
  47. package/dist/esm2020/lib/components/filters/member-filter-tile.component.mjs +1 -1
  48. package/dist/esm2020/lib/components/filters/relative-date-filter-tile.component.mjs +1 -1
  49. package/dist/esm2020/lib/components/widgets/chart-widget.component.mjs +1 -1
  50. package/dist/esm2020/lib/components/widgets/table-widget.component.mjs +1 -1
  51. package/dist/esm2020/lib/components/widgets/widget-by-id.component.mjs +1 -1
  52. package/dist/esm2020/lib/decorators/index.mjs +3 -0
  53. package/dist/esm2020/lib/decorators/trackable.decorator.mjs +2 -1
  54. package/dist/esm2020/lib/sdk-ui.module.mjs +3 -3
  55. package/dist/esm2020/lib/services/sisense-context.service.mjs +3 -3
  56. package/dist/esm2020/lib/services/theme.service.mjs +3 -3
  57. package/dist/esm2020/public-api.mjs +5 -25
  58. package/dist/esm2020/version.mjs +2 -2
  59. package/dist/fesm2015/sisense-sdk-ui-angular-ai.mjs +473 -8
  60. package/dist/fesm2015/sisense-sdk-ui-angular-ai.mjs.map +1 -1
  61. package/dist/fesm2015/sisense-sdk-ui-angular.mjs +10 -32
  62. package/dist/fesm2015/sisense-sdk-ui-angular.mjs.map +1 -1
  63. package/dist/fesm2020/sisense-sdk-ui-angular-ai.mjs +468 -8
  64. package/dist/fesm2020/sisense-sdk-ui-angular-ai.mjs.map +1 -1
  65. package/dist/fesm2020/sisense-sdk-ui-angular.mjs +10 -32
  66. package/dist/fesm2020/sisense-sdk-ui-angular.mjs.map +1 -1
  67. package/dist/lib/component-wrapper-helpers/index.d.ts +1 -0
  68. package/dist/lib/components/charts/area-chart.component.d.ts +3 -0
  69. package/dist/lib/components/charts/area-range-chart.component.d.ts +3 -0
  70. package/dist/lib/components/charts/areamap-chart.component.d.ts +3 -0
  71. package/dist/lib/components/charts/bar-chart.component.d.ts +3 -0
  72. package/dist/lib/components/charts/boxplot-chart.component.d.ts +3 -0
  73. package/dist/lib/components/charts/chart.component.d.ts +3 -0
  74. package/dist/lib/components/charts/column-chart.component.d.ts +3 -0
  75. package/dist/lib/components/charts/funnel-chart.component.d.ts +3 -0
  76. package/dist/lib/components/charts/indicator-chart.component.d.ts +3 -0
  77. package/dist/lib/components/charts/line-chart.component.d.ts +3 -0
  78. package/dist/lib/components/charts/pie-chart.component.d.ts +3 -0
  79. package/dist/lib/components/charts/pivot-table.component.d.ts +3 -0
  80. package/dist/lib/components/charts/polar-chart.component.d.ts +3 -0
  81. package/dist/lib/components/charts/scatter-chart.component.d.ts +3 -0
  82. package/dist/lib/components/charts/scattermap-chart.component.d.ts +3 -0
  83. package/dist/lib/components/charts/sunburst-chart.component.d.ts +3 -0
  84. package/dist/lib/components/charts/table.component.d.ts +3 -2
  85. package/dist/lib/components/charts/treemap-chart.component.d.ts +3 -0
  86. package/dist/lib/components/dashboard/dashboard-by-id.component.d.ts +3 -0
  87. package/dist/lib/components/dashboard/dashboard.component.d.ts +3 -0
  88. package/dist/lib/components/drilldown-breadcrumbs.component.d.ts +3 -0
  89. package/dist/lib/components/filters/criteria-filter-tile.component.d.ts +3 -0
  90. package/dist/lib/components/filters/date-range-filter-tile.component.d.ts +3 -0
  91. package/dist/lib/components/filters/member-filter-tile.component.d.ts +3 -0
  92. package/dist/lib/components/filters/relative-date-filter-tile.component.d.ts +3 -0
  93. package/dist/lib/components/widgets/chart-widget.component.d.ts +3 -0
  94. package/dist/lib/components/widgets/table-widget.component.d.ts +5 -0
  95. package/dist/lib/components/widgets/widget-by-id.component.d.ts +3 -2
  96. package/dist/lib/decorators/index.d.ts +2 -0
  97. package/dist/lib/decorators/trackable.decorator.d.ts +1 -0
  98. package/dist/lib/sdk-ui.module.d.ts +2 -2
  99. package/dist/lib/services/plugins.service.d.ts +1 -1
  100. package/dist/lib/services/sisense-context.service.d.ts +2 -2
  101. package/dist/lib/services/theme.service.d.ts +2 -2
  102. package/dist/package.json +1 -1
  103. package/dist/public-api.d.ts +3 -21
  104. package/dist/version.d.ts +1 -1
  105. package/package.json +4 -4
@@ -1,35 +1,495 @@
1
1
  import * as i0 from '@angular/core';
2
- import { NgModule } from '@angular/core';
2
+ import { InjectionToken, Injectable, Optional, Inject, Component, ViewChild, Input, NgModule } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
- import { SdkUiModule } from '@sisense/sdk-ui-angular';
4
+ import * as i1 from '@sisense/sdk-ui-angular';
5
+ import { TrackableService, createSisenseContextConnector, createThemeContextConnector, SdkUiModule } from '@sisense/sdk-ui-angular';
6
+ import { createContextProviderRenderer, ComponentAdapter, createElement } from '@sisense/sdk-ui-preact';
7
+ import { CustomAiContextProvider, ChatRestApi, prepareGetNlgInsightsPayload, DEFAULT_RECOMMENDATIONS_COUNT, widgetComposer, prepareGetNlqResultPayload, Chatbot, GetNlgInsights } from '@sisense/sdk-ui-preact/ai';
8
+ import { __decorate } from 'tslib';
9
+
10
+ const rootId = 'preact';
11
+ const template = `
12
+ <div #${rootId} style="width: 100%; height: 100%"></div>
13
+ `;
5
14
 
6
- /* eslint-disable import/no-extraneous-dependencies */
7
15
  /**
8
- * SDK AI Module
16
+ * Creates AI context connector
9
17
  *
18
+ * @param aiService - The AI service
10
19
  * @internal
11
20
  */
21
+ const createAiContextConnector = (aiService) => {
22
+ return {
23
+ async prepareContext() {
24
+ const api = await aiService.getApi();
25
+ return {
26
+ api,
27
+ };
28
+ },
29
+ renderContextProvider: createContextProviderRenderer(CustomAiContextProvider),
30
+ };
31
+ };
32
+
33
+ /**
34
+ * Token used to inject {@link AiContextConfig} into your application.
35
+ *
36
+ * @example
37
+ * Example of importing {@link SdkAiModule} and injecting {@link AiContextConfig} into your application,
38
+ * along with importing dependency {@link SdkUiModule} and injecting {@link SisenseContextConfig} to connect to a Sisense instance:
39
+ *
40
+ * ```ts
41
+ * import { SdkUiModule, SisenseContextConfig } from '@sisense/sdk-ui-angular';
42
+ * import { SdkAiModule, AI_CONTEXT_CONFIG_TOKEN, AiContextConfig } from '@sisense/sdk-ui-angular/ai';
43
+ *
44
+ * const AI_CONTEXT_CONFIG: AiContextConfig = {
45
+ * volatile: true,
46
+ * };
47
+ * const SISENSE_CONTEXT_CONFIG: SisenseContextConfig = {
48
+ * url: "<instance url>", // replace with the URL of your Sisense instance
49
+ * token: "<api token>", // replace with the API token of your user account
50
+ * defaultDataSource: DM.DataSource,
51
+ * };
52
+ *
53
+ * @NgModule({
54
+ * imports: [
55
+ * BrowserModule,
56
+ * SdkUiModule,
57
+ * SdkAiModule,
58
+ * ],
59
+ * declarations: [AppComponent],
60
+ * providers: [
61
+ * { provide: AI_CONTEXT_CONFIG_TOKEN, useValue: AI_CONTEXT_CONFIG },
62
+ * { provide: SISENSE_CONTEXT_CONFIG_TOKEN, useValue: SISENSE_CONTEXT_CONFIG },
63
+ * ],
64
+ * bootstrap: [AppComponent],
65
+ * })
66
+ * ```
67
+ *
68
+ * @group Generative AI
69
+ * @beta
70
+ */
71
+ const AI_CONTEXT_CONFIG_TOKEN = new InjectionToken('AI Context Config');
72
+ /**
73
+ * Service for working with Sisense Fusion Generative AI.
74
+ *
75
+ * ::: warning Note
76
+ * This service is currently under beta release for our managed cloud customers on version L2024.2 or above. It is subject to changes as we make fixes and improvements.
77
+ * :::
78
+ *
79
+ * @group Generative AI
80
+ * @beta
81
+ */
82
+ let AiService = class AiService {
83
+ constructor(sisenseContextService, aiContextConfig) {
84
+ this.sisenseContextService = sisenseContextService;
85
+ this.apiPromise = this.sisenseContextService
86
+ .getApp()
87
+ .then((app) => new ChatRestApi(app.httpClient, aiContextConfig?.volatile));
88
+ }
89
+ /** @internal */
90
+ getApi() {
91
+ return this.apiPromise;
92
+ }
93
+ /**
94
+ * Fetches an analysis of the provided query using natural language generation (NLG).
95
+ * Specifying NLG parameters is similar to providing parameters to the {@link QueryService.executeQuery} service method, using dimensions, measures, and filters.
96
+ *
97
+ * @param params - Parameters for getting NLG insights
98
+ * @returns NLG insights text summary
99
+ */
100
+ async getNlgInsights(params) {
101
+ const api = await this.getApi();
102
+ const payload = prepareGetNlgInsightsPayload(params);
103
+ return api.ai
104
+ .getNlgInsights(payload)
105
+ .then((response) => response?.data?.answer);
106
+ }
107
+ /**
108
+ * Fetches recommended questions for a data model or perspective.
109
+ *
110
+ * @param params - Parameters for recommendations
111
+ * @returns An array of objects, each containing recommended question text and its corresponding `widgetProps`
112
+ */
113
+ async getQueryRecommendations(params) {
114
+ const api = await this.getApi();
115
+ const { contextTitle, count, enableAxisTitlesInWidgetProps } = params;
116
+ const recCount = count ?? DEFAULT_RECOMMENDATIONS_COUNT;
117
+ const rawRecommendations = (await api.ai.getQueryRecommendations(contextTitle, { numOfRecommendations: recCount })) ||
118
+ [];
119
+ return rawRecommendations.map((recommendation) => ({
120
+ ...recommendation,
121
+ widgetProps: recommendation.jaql
122
+ ? widgetComposer.toWidgetProps(recommendation, {
123
+ useCustomizedStyleOptions: enableAxisTitlesInWidgetProps,
124
+ })
125
+ : undefined,
126
+ }));
127
+ }
128
+ /**
129
+ * Executes a natural language query (NLQ) against a data model or perspective
130
+ *
131
+ * @param params - NLQ query parameters
132
+ * @returns The result as WidgetProps
133
+ */
134
+ async getNlqResult(params) {
135
+ const { contextTitle, request } = prepareGetNlqResultPayload(params);
136
+ const api = await this.getApi();
137
+ const data = await api?.ai.getNlqResult(contextTitle, request);
138
+ return data
139
+ ? widgetComposer.toWidgetProps(data, {
140
+ useCustomizedStyleOptions: params.enableAxisTitlesInWidgetProps || false,
141
+ })
142
+ : undefined;
143
+ }
144
+ };
145
+ AiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AiService, deps: [{ token: i1.SisenseContextService }, { token: AI_CONTEXT_CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
146
+ AiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AiService, providedIn: 'root' });
147
+ AiService = __decorate([
148
+ TrackableService(['getNlgInsights', 'getQueryRecommendations'])
149
+ ], AiService);
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AiService, decorators: [{
151
+ type: Injectable,
152
+ args: [{
153
+ providedIn: 'root',
154
+ }]
155
+ }], ctorParameters: function () { return [{ type: i1.SisenseContextService }, { type: undefined, decorators: [{
156
+ type: Optional
157
+ }, {
158
+ type: Inject,
159
+ args: [AI_CONTEXT_CONFIG_TOKEN]
160
+ }] }]; } });
161
+
162
+ /**
163
+ * An Angular component that renders a chatbot with data topic selection.
164
+ *
165
+ * ::: warning Note
166
+ * This component is currently under beta release for our managed cloud customers on version L2024.2 or above. It is subject to changes as we make fixes and improvements.
167
+ * :::
168
+ *
169
+ * @example
170
+ * An example of using the `ChatbotComponent`:
171
+ *
172
+ * ```html
173
+ <!--Component HTML template in example.component.html-->
174
+ <csdk-chatbot
175
+ [width]="chatbot.width"
176
+ [height]="chatbot.height"
177
+ [config]="chatbot.config"
178
+ />
179
+ * ```
180
+ *
181
+ * ```ts
182
+ // Component behavior in example.component.ts
183
+ import { Component } from '@angular/core';
184
+
185
+ @Component({
186
+ selector: 'example',
187
+ templateUrl: './example.component.html',
188
+ styleUrls: ['./example.component.scss'],
189
+ })
190
+ export class ExampleComponent {
191
+ chatbot = {
192
+ width: '500px',
193
+ height: '700px',
194
+ config: {
195
+ numOfRecommendations: 5,
196
+ },
197
+ };
198
+ }
199
+ * ```
200
+ *
201
+ * <img src="media://angular-chatbot-example.png" width="800px" />
202
+ * @shortDescription Angular component that renders a chatbot with data topic selection.
203
+ *
204
+ * @group Generative AI
205
+ * @beta
206
+ */
207
+ class ChatbotComponent {
208
+ /**
209
+ * Constructor for the `ChatbotComponent`.
210
+ *
211
+ * @param sisenseContextService - Sisense context service
212
+ * @param themeService - Theme service
213
+ * @param aiService - AI service
214
+ */
215
+ constructor(
216
+ /**
217
+ * Sisense context service
218
+ *
219
+ * @category Constructor
220
+ */
221
+ sisenseContextService,
222
+ /**
223
+ * Theme service
224
+ *
225
+ * @category Constructor
226
+ */
227
+ themeService,
228
+ /**
229
+ * AI service
230
+ *
231
+ * @category Constructor
232
+ */
233
+ aiService) {
234
+ this.sisenseContextService = sisenseContextService;
235
+ this.themeService = themeService;
236
+ this.aiService = aiService;
237
+ this.componentAdapter = new ComponentAdapter(() => this.createPreactComponent(), [
238
+ createSisenseContextConnector(this.sisenseContextService),
239
+ createThemeContextConnector(this.themeService),
240
+ createAiContextConnector(this.aiService),
241
+ ]);
242
+ }
243
+ /**
244
+ * @internal
245
+ */
246
+ ngAfterViewInit() {
247
+ this.componentAdapter.render(this.preactRef.nativeElement);
248
+ }
249
+ /**
250
+ * @internal
251
+ */
252
+ ngOnChanges() {
253
+ if (this.preactRef) {
254
+ this.componentAdapter.render(this.preactRef.nativeElement);
255
+ }
256
+ }
257
+ createPreactComponent() {
258
+ const props = {
259
+ width: this.width,
260
+ height: this.height,
261
+ config: this.config,
262
+ };
263
+ return createElement(Chatbot, props);
264
+ }
265
+ /**
266
+ * @internal
267
+ */
268
+ ngOnDestroy() {
269
+ this.componentAdapter.destroy();
270
+ }
271
+ }
272
+ ChatbotComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChatbotComponent, deps: [{ token: i1.SisenseContextService }, { token: i1.ThemeService }, { token: AiService }], target: i0.ɵɵFactoryTarget.Component });
273
+ ChatbotComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ChatbotComponent, selector: "csdk-chatbot", inputs: { width: "width", height: "height", config: "config" }, 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 });
274
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChatbotComponent, decorators: [{
275
+ type: Component,
276
+ args: [{
277
+ selector: 'csdk-chatbot',
278
+ template,
279
+ }]
280
+ }], ctorParameters: function () { return [{ type: i1.SisenseContextService }, { type: i1.ThemeService }, { type: AiService }]; }, propDecorators: { preactRef: [{
281
+ type: ViewChild,
282
+ args: [rootId]
283
+ }], width: [{
284
+ type: Input
285
+ }], height: [{
286
+ type: Input
287
+ }], config: [{
288
+ type: Input
289
+ }] } });
290
+
291
+ /**
292
+ * An Angular component that fetches and displays a collapsible analysis of the provided query using natural language generation (NLG).
293
+ * Specifying NLG parameters is similar to providing parameters to the {@link QueryService.executeQuery} service method, using dimensions, measures, and filters.
294
+ *
295
+ * ::: warning Note
296
+ * This component is currently under beta release for our managed cloud customers on version L2024.2 or above. It is subject to changes as we make fixes and improvements.
297
+ * :::
298
+ *
299
+ * @example
300
+ * An example of using the `GetNlgInsightsComponent`:
301
+ *
302
+ * ```html
303
+ <!--Component HTML template in example.component.html-->
304
+ <csdk-get-nlg-insights
305
+ [dataSource]="nlgParams.dataSource"
306
+ [dimensions]="nlgParams.dimensions"
307
+ [measures]="nlgParams.measures"
308
+ />
309
+ * ```
310
+ *
311
+ * ```ts
312
+ // Component behavior in example.component.ts
313
+ import { Component } from '@angular/core';
314
+ import { measureFactory } from '@sisense/sdk-data';
315
+ import * as DM from '../../assets/sample-healthcare-model';
316
+
317
+ @Component({
318
+ selector: 'example',
319
+ templateUrl: './example.component.html',
320
+ styleUrls: ['./example.component.scss'],
321
+ })
322
+ export class ExampleComponent {
323
+ nlgParams = {
324
+ dataSource: DM.DataSource.title,
325
+ dimensions: [DM.Divisions.Divison_name],
326
+ measures: [measureFactory.sum(DM.Admissions.Cost_of_admission)],
327
+ };
328
+ }
329
+ * ```
330
+ *
331
+ * <img src="media://angular-get-nlg-insights-example.png" width="800px" />
332
+ * @shortDescription Angular component that displays NLG insights.
333
+ *
334
+ * @group Generative AI
335
+ * @beta
336
+ */
337
+ class GetNlgInsightsComponent {
338
+ /**
339
+ * Constructor for the `GetNlgInsightsProps`.
340
+ *
341
+ * @param sisenseContextService - Sisense context service
342
+ * @param themeService - Theme service
343
+ * @param aiService - AI service
344
+ */
345
+ constructor(
346
+ /**
347
+ * Sisense context service
348
+ *
349
+ * @category Constructor
350
+ */
351
+ sisenseContextService,
352
+ /**
353
+ * Theme service
354
+ *
355
+ * @category Constructor
356
+ */
357
+ themeService,
358
+ /**
359
+ * AI service
360
+ *
361
+ * @category Constructor
362
+ */
363
+ aiService) {
364
+ this.sisenseContextService = sisenseContextService;
365
+ this.themeService = themeService;
366
+ this.aiService = aiService;
367
+ this.componentAdapter = new ComponentAdapter(() => this.createPreactComponent(), [
368
+ createSisenseContextConnector(this.sisenseContextService),
369
+ createThemeContextConnector(this.themeService),
370
+ createAiContextConnector(this.aiService),
371
+ ]);
372
+ }
373
+ /**
374
+ * @internal
375
+ */
376
+ ngAfterViewInit() {
377
+ this.componentAdapter.render(this.preactRef.nativeElement);
378
+ }
379
+ /**
380
+ * @internal
381
+ */
382
+ ngOnChanges() {
383
+ if (this.preactRef) {
384
+ this.componentAdapter.render(this.preactRef.nativeElement);
385
+ }
386
+ }
387
+ createPreactComponent() {
388
+ const props = {
389
+ dataSource: this.dataSource,
390
+ dimensions: this.dimensions,
391
+ measures: this.measures,
392
+ filters: this.filters,
393
+ verbosity: this.verbosity,
394
+ };
395
+ return createElement(GetNlgInsights, props);
396
+ }
397
+ /**
398
+ * @internal
399
+ */
400
+ ngOnDestroy() {
401
+ this.componentAdapter.destroy();
402
+ }
403
+ }
404
+ GetNlgInsightsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GetNlgInsightsComponent, deps: [{ token: i1.SisenseContextService }, { token: i1.ThemeService }, { token: AiService }], target: i0.ɵɵFactoryTarget.Component });
405
+ GetNlgInsightsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GetNlgInsightsComponent, selector: "csdk-get-nlg-insights", inputs: { dataSource: "dataSource", dimensions: "dimensions", measures: "measures", filters: "filters", verbosity: "verbosity" }, 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 });
406
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GetNlgInsightsComponent, decorators: [{
407
+ type: Component,
408
+ args: [{
409
+ selector: 'csdk-get-nlg-insights',
410
+ template,
411
+ }]
412
+ }], ctorParameters: function () { return [{ type: i1.SisenseContextService }, { type: i1.ThemeService }, { type: AiService }]; }, propDecorators: { preactRef: [{
413
+ type: ViewChild,
414
+ args: [rootId]
415
+ }], dataSource: [{
416
+ type: Input
417
+ }], dimensions: [{
418
+ type: Input
419
+ }], measures: [{
420
+ type: Input
421
+ }], filters: [{
422
+ type: Input
423
+ }], verbosity: [{
424
+ type: Input
425
+ }] } });
426
+
427
+ /* eslint-disable import/no-extraneous-dependencies */
428
+ /**
429
+ * SDK AI Module, which is a container for generative AI components and services.
430
+ *
431
+ * @example
432
+ * Example of importing {@link SdkAiModule} and injecting {@link AiContextConfig} into your application,
433
+ * along with importing dependency {@link SdkUiModule} and injecting {@link SisenseContextConfig} to connect to a Sisense instance:
434
+ *
435
+ * ```ts
436
+ * import { SdkUiModule, SisenseContextConfig } from '@sisense/sdk-ui-angular';
437
+ * import { SdkAiModule, AI_CONTEXT_CONFIG_TOKEN, AiContextConfig } from '@sisense/sdk-ui-angular/ai';
438
+ *
439
+ * const AI_CONTEXT_CONFIG: AiContextConfig = {
440
+ * volatile: true,
441
+ * };
442
+ * const SISENSE_CONTEXT_CONFIG: SisenseContextConfig = {
443
+ * url: "<instance url>", // replace with the URL of your Sisense instance
444
+ * token: "<api token>", // replace with the API token of your user account
445
+ * defaultDataSource: DM.DataSource,
446
+ * };
447
+ *
448
+ * @NgModule({
449
+ * imports: [
450
+ * BrowserModule,
451
+ * SdkUiModule,
452
+ * SdkAiModule,
453
+ * ],
454
+ * declarations: [AppComponent],
455
+ * providers: [
456
+ * { provide: AI_CONTEXT_CONFIG_TOKEN, useValue: AI_CONTEXT_CONFIG },
457
+ * { provide: SISENSE_CONTEXT_CONFIG_TOKEN, useValue: SISENSE_CONTEXT_CONFIG },
458
+ * ],
459
+ * bootstrap: [AppComponent],
460
+ * })
461
+ * ```
462
+ *
463
+ * @group Generative AI
464
+ * @beta
465
+ */
12
466
  class SdkAiModule {
13
467
  constructor() {
14
468
  console.log('SdkAiModule loaded');
15
469
  }
16
470
  }
17
471
  SdkAiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SdkAiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
- SdkAiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SdkAiModule, imports: [CommonModule, SdkUiModule] });
472
+ SdkAiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SdkAiModule, declarations: [ChatbotComponent, GetNlgInsightsComponent], imports: [CommonModule, SdkUiModule], exports: [ChatbotComponent, GetNlgInsightsComponent] });
19
473
  SdkAiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SdkAiModule, imports: [CommonModule, SdkUiModule] });
20
474
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SdkAiModule, decorators: [{
21
475
  type: NgModule,
22
476
  args: [{
23
- declarations: [],
477
+ declarations: [ChatbotComponent, GetNlgInsightsComponent],
24
478
  imports: [CommonModule, SdkUiModule],
25
- exports: [],
479
+ exports: [ChatbotComponent, GetNlgInsightsComponent],
26
480
  providers: [],
27
481
  }]
28
482
  }], ctorParameters: function () { return []; } });
29
483
 
484
+ // This file re-exports common types/utils from @sisense/sdk-ui-preact/ai
485
+
486
+ /**
487
+ * Public API Surface of @sisense/sdk-ui-angular/ai
488
+ */
489
+
30
490
  /**
31
491
  * Generated bundle index. Do not edit.
32
492
  */
33
493
 
34
- export { SdkAiModule };
494
+ export { AI_CONTEXT_CONFIG_TOKEN, AiService, ChatbotComponent, GetNlgInsightsComponent, SdkAiModule };
35
495
  //# sourceMappingURL=sisense-sdk-ui-angular-ai.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sisense-sdk-ui-angular-ai.mjs","sources":["../../src/ai/lib/sdk-ai.module.ts","../../src/ai/sisense-sdk-ui-angular-ai.ts"],"sourcesContent":["/* eslint-disable import/no-extraneous-dependencies */\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SdkUiModule } from '@sisense/sdk-ui-angular';\n\n/**\n * SDK AI Module\n *\n * @internal\n */\n@NgModule({\n declarations: [],\n imports: [CommonModule, SdkUiModule],\n exports: [],\n providers: [],\n})\nexport class SdkAiModule {\n constructor() {\n console.log('SdkAiModule loaded');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAAA;AAKA;;;;AAIG;MAOU,WAAW,CAAA;AACtB,IAAA,WAAA,GAAA;AACE,QAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;KACnC;;yGAHU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;0GAAX,WAAW,EAAA,OAAA,EAAA,CAJZ,YAAY,EAAE,WAAW,CAAA,EAAA,CAAA,CAAA;0GAIxB,WAAW,EAAA,OAAA,EAAA,CAJZ,YAAY,EAAE,WAAW,CAAA,EAAA,CAAA,CAAA;4FAIxB,WAAW,EAAA,UAAA,EAAA,CAAA;kBANvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;AACpC,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;ACfD;;AAEG;;;;"}
1
+ {"version":3,"file":"sisense-sdk-ui-angular-ai.mjs","sources":["../../src/ai/lib/component-wrapper-helpers/template.ts","../../src/ai/lib/component-wrapper-helpers/context-connectors.ts","../../src/ai/lib/services/ai.service.ts","../../src/ai/lib/components/chatbot.component.ts","../../src/ai/lib/components/get-nlg-insights.component.ts","../../src/ai/lib/sdk-ai.module.ts","../../src/ai/lib/sdk-ui-core-exports.ts","../../src/ai/public-api.ts","../../src/ai/sisense-sdk-ui-angular-ai.ts"],"sourcesContent":["export const rootId = 'preact';\nexport const template = `\n <div #${rootId} style=\"width: 100%; height: 100%\"></div>\n`;\n","import { ContextConnector, createContextProviderRenderer } from '@sisense/sdk-ui-preact';\nimport { CustomAiContextProvider, CustomAiContext } from '@sisense/sdk-ui-preact/ai';\nimport { AiService } from '../services/ai.service';\n\n/**\n * Creates AI context connector\n *\n * @param aiService - The AI service\n * @internal\n */\nexport const createAiContextConnector = (\n aiService: AiService,\n): ContextConnector<CustomAiContext> => {\n return {\n async prepareContext() {\n const api = await aiService.getApi();\n return {\n api,\n };\n },\n renderContextProvider: createContextProviderRenderer(CustomAiContextProvider),\n };\n};\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport {\n ChatRestApi,\n UseGetNlgInsightsParams,\n prepareGetNlgInsightsPayload,\n GetQueryRecommendationsParams,\n AiContextProviderProps,\n GetNlgInsightsResponse,\n QueryRecommendation,\n GetNlqResultParams,\n DEFAULT_RECOMMENDATIONS_COUNT,\n widgetComposer,\n prepareGetNlqResultPayload,\n} from '@sisense/sdk-ui-preact/ai';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { SisenseContextService, TrackableService, WidgetProps } from '@sisense/sdk-ui-angular';\n\nexport interface AiContextConfig extends Omit<AiContextProviderProps, 'children'> {}\nexport interface GetNlgInsightsParams extends Omit<UseGetNlgInsightsParams, 'enabled'> {}\n\n/**\n * Token used to inject {@link AiContextConfig} into your application.\n *\n * @example\n * Example of importing {@link SdkAiModule} and injecting {@link AiContextConfig} into your application,\n * along with importing dependency {@link SdkUiModule} and injecting {@link SisenseContextConfig} to connect to a Sisense instance:\n *\n * ```ts\n * import { SdkUiModule, SisenseContextConfig } from '@sisense/sdk-ui-angular';\n * import { SdkAiModule, AI_CONTEXT_CONFIG_TOKEN, AiContextConfig } from '@sisense/sdk-ui-angular/ai';\n *\n * const AI_CONTEXT_CONFIG: AiContextConfig = {\n * volatile: true,\n * };\n * const SISENSE_CONTEXT_CONFIG: SisenseContextConfig = {\n * url: \"<instance url>\", // replace with the URL of your Sisense instance\n * token: \"<api token>\", // replace with the API token of your user account\n * defaultDataSource: DM.DataSource,\n * };\n *\n * @NgModule({\n * imports: [\n * BrowserModule,\n * SdkUiModule,\n * SdkAiModule,\n * ],\n * declarations: [AppComponent],\n * providers: [\n * { provide: AI_CONTEXT_CONFIG_TOKEN, useValue: AI_CONTEXT_CONFIG },\n * { provide: SISENSE_CONTEXT_CONFIG_TOKEN, useValue: SISENSE_CONTEXT_CONFIG },\n * ],\n * bootstrap: [AppComponent],\n * })\n * ```\n *\n * @group Generative AI\n * @beta\n */\nexport const AI_CONTEXT_CONFIG_TOKEN = new InjectionToken<AiContextConfig>('AI Context Config');\n\n/**\n * Service for working with Sisense Fusion Generative AI.\n *\n * ::: warning Note\n * This service is currently under beta release for our managed cloud customers on version L2024.2 or above. It is subject to changes as we make fixes and improvements.\n * :::\n *\n * @group Generative AI\n * @beta\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<AiService>(['getNlgInsights', 'getQueryRecommendations'])\nexport class AiService {\n private apiPromise: Promise<ChatRestApi>;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n @Optional() @Inject(AI_CONTEXT_CONFIG_TOKEN) aiContextConfig?: AiContextConfig,\n ) {\n this.apiPromise = this.sisenseContextService\n .getApp()\n .then((app) => new ChatRestApi(app.httpClient, aiContextConfig?.volatile));\n }\n\n /** @internal */\n getApi(): Promise<ChatRestApi> {\n return this.apiPromise;\n }\n\n /**\n * Fetches an analysis of the provided query using natural language generation (NLG).\n * Specifying NLG parameters is similar to providing parameters to the {@link QueryService.executeQuery} service method, using dimensions, measures, and filters.\n *\n * @param params - Parameters for getting NLG insights\n * @returns NLG insights text summary\n */\n async getNlgInsights(params: GetNlgInsightsParams): Promise<string | undefined> {\n const api = await this.getApi();\n const payload = prepareGetNlgInsightsPayload(params);\n return api.ai\n .getNlgInsights(payload)\n .then((response?: GetNlgInsightsResponse) => response?.data?.answer);\n }\n\n /**\n * Fetches recommended questions for a data model or perspective.\n *\n * @param params - Parameters for recommendations\n * @returns An array of objects, each containing recommended question text and its corresponding `widgetProps`\n */\n async getQueryRecommendations(\n params: GetQueryRecommendationsParams,\n ): Promise<QueryRecommendation[]> {\n const api = await this.getApi();\n const { contextTitle, count, enableAxisTitlesInWidgetProps } = params;\n const recCount = count ?? DEFAULT_RECOMMENDATIONS_COUNT;\n\n const rawRecommendations =\n (await api.ai.getQueryRecommendations(contextTitle, { numOfRecommendations: recCount })) ||\n [];\n\n return rawRecommendations.map(\n (recommendation: QueryRecommendation) =>\n ({\n ...recommendation,\n widgetProps: recommendation.jaql\n ? widgetComposer.toWidgetProps(recommendation, {\n useCustomizedStyleOptions: enableAxisTitlesInWidgetProps,\n })\n : undefined,\n } as QueryRecommendation),\n );\n }\n\n /**\n * Executes a natural language query (NLQ) against a data model or perspective\n *\n * @param params - NLQ query parameters\n * @returns The result as WidgetProps\n */\n async getNlqResult(params: GetNlqResultParams): Promise<WidgetProps | undefined> {\n const { contextTitle, request } = prepareGetNlqResultPayload(params);\n const api = await this.getApi();\n\n const data = await api?.ai.getNlqResult(contextTitle, request);\n\n return data\n ? widgetComposer.toWidgetProps(data, {\n useCustomizedStyleOptions: params.enableAxisTitlesInWidgetProps || false,\n })\n : undefined;\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { ComponentAdapter, createElement } from '@sisense/sdk-ui-preact';\nimport { Chatbot, type ChatbotProps as ChatbotPropsPreact } from '@sisense/sdk-ui-preact/ai';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport {\n SisenseContextService,\n ThemeService,\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '@sisense/sdk-ui-angular';\nimport { template, rootId } from '../component-wrapper-helpers/template';\nimport { AiService } from '../services/ai.service';\nimport { createAiContextConnector } from '../component-wrapper-helpers';\n\n/**\n * Props of the {@link ChatbotComponent}.\n */\nexport interface ChatbotProps extends ChatbotPropsPreact {}\n\n/**\n * An Angular component that renders a chatbot with data topic selection.\n *\n * ::: warning Note\n * This component is currently under beta release for our managed cloud customers on version L2024.2 or above. It is subject to changes as we make fixes and improvements.\n * :::\n *\n * @example\n * An example of using the `ChatbotComponent`:\n *\n * ```html\n<!--Component HTML template in example.component.html-->\n<csdk-chatbot\n [width]=\"chatbot.width\"\n [height]=\"chatbot.height\"\n [config]=\"chatbot.config\"\n/>\n * ```\n *\n * ```ts\n// Component behavior in example.component.ts\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n chatbot = {\n width: '500px',\n height: '700px',\n config: {\n numOfRecommendations: 5,\n },\n };\n}\n * ```\n *\n * <img src=\"media://angular-chatbot-example.png\" width=\"800px\" />\n * @shortDescription Angular component that renders a chatbot with data topic selection.\n *\n * @group Generative AI\n * @beta\n */\n@Component({\n selector: 'csdk-chatbot',\n template,\n})\nexport class ChatbotComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChatbotProps.width}\n */\n @Input()\n width: ChatbotProps['width'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChatbotProps.height}\n */\n @Input()\n height: ChatbotProps['height'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChatbotProps.config}\n */\n @Input()\n config: ChatbotProps['config'];\n\n private componentAdapter: ComponentAdapter;\n\n /**\n * Constructor for the `ChatbotComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n * @param aiService - AI service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n /**\n * AI service\n *\n * @category Constructor\n */\n public aiService: AiService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n createAiContextConnector(this.aiService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\n width: this.width,\n height: this.height,\n config: this.config,\n };\n\n return createElement(Chatbot, props);\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { ComponentAdapter, createElement } from '@sisense/sdk-ui-preact';\nimport {\n GetNlgInsights,\n type GetNlgInsightsProps as GetNlgInsightsPropsPreact,\n} from '@sisense/sdk-ui-preact/ai';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport {\n SisenseContextService,\n ThemeService,\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '@sisense/sdk-ui-angular';\nimport { AiService } from '../services/ai.service';\nimport { createAiContextConnector } from '../component-wrapper-helpers';\nimport { template, rootId } from '../component-wrapper-helpers/template';\n\n/**\n * Props of the {@link GetNlgInsightsComponent}.\n */\nexport interface GetNlgInsightsProps extends GetNlgInsightsPropsPreact {}\n\n/**\n * An Angular component that fetches and displays a collapsible analysis of the provided query using natural language generation (NLG).\n * Specifying NLG parameters is similar to providing parameters to the {@link QueryService.executeQuery} service method, using dimensions, measures, and filters.\n *\n * ::: warning Note\n * This component is currently under beta release for our managed cloud customers on version L2024.2 or above. It is subject to changes as we make fixes and improvements.\n * :::\n *\n * @example\n * An example of using the `GetNlgInsightsComponent`:\n *\n * ```html\n<!--Component HTML template in example.component.html-->\n<csdk-get-nlg-insights\n [dataSource]=\"nlgParams.dataSource\"\n [dimensions]=\"nlgParams.dimensions\"\n [measures]=\"nlgParams.measures\"\n/>\n * ```\n *\n * ```ts\n// Component behavior in example.component.ts\nimport { Component } from '@angular/core';\nimport { measureFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\n\n@Component({\n selector: 'example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n nlgParams = {\n dataSource: DM.DataSource.title,\n dimensions: [DM.Divisions.Divison_name],\n measures: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n };\n}\n * ```\n *\n * <img src=\"media://angular-get-nlg-insights-example.png\" width=\"800px\" />\n * @shortDescription Angular component that displays NLG insights.\n *\n * @group Generative AI\n * @beta\n */\n@Component({\n selector: 'csdk-get-nlg-insights',\n template,\n})\nexport class GetNlgInsightsComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!GetNlgInsightsProps.dataSource}\n */\n @Input()\n dataSource!: GetNlgInsightsProps['dataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!GetNlgInsightsProps.dimensions}\n */\n @Input()\n dimensions: GetNlgInsightsProps['dimensions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!GetNlgInsightsProps.measures}\n */\n @Input()\n measures: GetNlgInsightsProps['measures'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!GetNlgInsightsProps.filters}\n */\n @Input()\n filters: GetNlgInsightsProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!GetNlgInsightsProps.verbosity}\n */\n @Input()\n verbosity: GetNlgInsightsProps['verbosity'];\n\n private componentAdapter: ComponentAdapter;\n\n /**\n * Constructor for the `GetNlgInsightsProps`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n * @param aiService - AI service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n /**\n * AI service\n *\n * @category Constructor\n */\n public aiService: AiService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n createAiContextConnector(this.aiService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\n dataSource: this.dataSource,\n dimensions: this.dimensions,\n measures: this.measures,\n filters: this.filters,\n verbosity: this.verbosity,\n };\n\n return createElement(GetNlgInsights, props);\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SdkUiModule } from '@sisense/sdk-ui-angular';\nimport { ChatbotComponent, GetNlgInsightsComponent } from './components';\n\n/**\n * SDK AI Module, which is a container for generative AI components and services.\n *\n * @example\n * Example of importing {@link SdkAiModule} and injecting {@link AiContextConfig} into your application,\n * along with importing dependency {@link SdkUiModule} and injecting {@link SisenseContextConfig} to connect to a Sisense instance:\n *\n * ```ts\n * import { SdkUiModule, SisenseContextConfig } from '@sisense/sdk-ui-angular';\n * import { SdkAiModule, AI_CONTEXT_CONFIG_TOKEN, AiContextConfig } from '@sisense/sdk-ui-angular/ai';\n *\n * const AI_CONTEXT_CONFIG: AiContextConfig = {\n * volatile: true,\n * };\n * const SISENSE_CONTEXT_CONFIG: SisenseContextConfig = {\n * url: \"<instance url>\", // replace with the URL of your Sisense instance\n * token: \"<api token>\", // replace with the API token of your user account\n * defaultDataSource: DM.DataSource,\n * };\n *\n * @NgModule({\n * imports: [\n * BrowserModule,\n * SdkUiModule,\n * SdkAiModule,\n * ],\n * declarations: [AppComponent],\n * providers: [\n * { provide: AI_CONTEXT_CONFIG_TOKEN, useValue: AI_CONTEXT_CONFIG },\n * { provide: SISENSE_CONTEXT_CONFIG_TOKEN, useValue: SISENSE_CONTEXT_CONFIG },\n * ],\n * bootstrap: [AppComponent],\n * })\n * ```\n *\n * @group Generative AI\n * @beta\n */\n@NgModule({\n declarations: [ChatbotComponent, GetNlgInsightsComponent],\n imports: [CommonModule, SdkUiModule],\n exports: [ChatbotComponent, GetNlgInsightsComponent],\n providers: [],\n})\nexport class SdkAiModule {\n constructor() {\n console.log('SdkAiModule loaded');\n }\n}\n","// This file re-exports common types/utils from @sisense/sdk-ui-preact/ai\n\n// Re-exports types from @sisense/sdk-ui-preact/ai\nexport type {\n ChatConfig,\n GetQueryRecommendationsParams,\n QueryRecommendation,\n GetNlqResultParams,\n} from '@sisense/sdk-ui-preact/ai';\n","/**\n * Public API Surface of @sisense/sdk-ui-angular/ai\n */\n\nexport * from './lib/sdk-ai.module';\nexport * from './lib/components';\nexport * from './lib/services';\nexport * from './lib/sdk-ui-core-exports';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.AiService"],"mappings":"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"}
@@ -94,8 +94,8 @@ const templateWithContent = `
94
94
  *
95
95
  * ```ts
96
96
  * export const SISENSE_CONTEXT_CONFIG: SisenseContextConfig = {
97
- * url="<instance url>" // replace with the URL of your Sisense instance
98
- * token="<api token>" // replace with the API token of your user account
97
+ * url: "<instance url>", // replace with the URL of your Sisense instance
98
+ * token: "<api token>", // replace with the API token of your user account
99
99
  * defaultDataSource: DM.DataSource,
100
100
  * };
101
101
  *
@@ -390,7 +390,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
390
390
  }]
391
391
  }], ctorParameters: function () { return [{ type: SisenseContextService }]; } });
392
392
 
393
- var packageVersion = '1.31.0';
393
+ var packageVersion = '1.32.0';
394
394
 
395
395
  function Trackable(target, propertyKey, descriptor) {
396
396
  const originalMethod = descriptor.value;
@@ -400,6 +400,7 @@ function Trackable(target, propertyKey, descriptor) {
400
400
  };
401
401
  return descriptor;
402
402
  }
403
+ /** @internal */
403
404
  function TrackableService(trackableMethods) {
404
405
  return function (ServiceClass) {
405
406
  trackableMethods.forEach((methodName) => {
@@ -440,8 +441,8 @@ async function track(action, methodName) {
440
441
  *
441
442
  * ```ts
442
443
  * export const SISENSE_CONTEXT_CONFIG: SisenseContextConfig = {
443
- * url="<instance url>" // replace with the URL of your Sisense instance
444
- * token="<api token>" // replace with the API token of your user account
444
+ * url: "<instance url>", // replace with the URL of your Sisense instance
445
+ * token: "<api token>", // replace with the API token of your user account
445
446
  * defaultDataSource: DM.DataSource,
446
447
  * };
447
448
  *
@@ -4465,8 +4466,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
4465
4466
  *
4466
4467
  * ```ts
4467
4468
  * export const SISENSE_CONTEXT_CONFIG: SisenseContextConfig = {
4468
- * url="<instance url>" // replace with the URL of your Sisense instance
4469
- * token="<api token>" // replace with the API token of your user account
4469
+ * url: "<instance url>", // replace with the URL of your Sisense instance
4470
+ * token: "<api token>", // replace with the API token of your user account
4470
4471
  * defaultDataSource: DM.DataSource,
4471
4472
  * };
4472
4473
  *
@@ -4627,36 +4628,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
4627
4628
  // This file re-exports common types/utils from @sisense/sdk-ui-preact
4628
4629
  // Re-exports utils from @sisense/sdk-ui-preact
4629
4630
 
4630
- /*
4631
- * Public API Surface of @sisense/sdk-ui-angular
4632
- */
4633
4631
  /**
4634
- * @packageDocumentation
4635
- * @groupDescription Charts
4636
- * Angular components and utilities for working with charts
4637
- * @groupDescription Data Grids
4638
- * Angular components for data grids
4639
- * @groupDescription Drilldown
4640
- * Angular components for creating drilldown experiences
4641
- * @groupDescription Filter Tiles
4642
- * Angular filter tile components
4643
- * @groupDescription Contexts
4644
- * Angular context modules, services, and variables
4645
- * @groupDescription Queries
4646
- * Angular query service
4647
- * @groupDescription Dashboards
4648
- * Angular components and utilities for working with dashboards
4649
- * @groupDescription Fusion Assets
4650
- * Angular modules, services, and components for working with Fusion dashboards, widgets, queries, and formulas
4651
- * @groupDescription Interfaces
4652
- * TypeScript interfaces for components and services listed above
4653
- * @groupDescription Type Aliases
4654
- * TypeScript type aliases for components and services listed above
4632
+ * Public API Surface of @sisense/sdk-ui-angular
4655
4633
  */
4656
4634
 
4657
4635
  /**
4658
4636
  * Generated bundle index. Do not edit.
4659
4637
  */
4660
4638
 
4661
- export { AreaChartComponent, AreaRangeChartComponent, AreamapChartComponent, BarChartComponent, BoxplotChartComponent, ChartComponent, ChartWidgetComponent, ColumnChartComponent, ContextMenuComponent, CriteriaFilterTileComponent, DashboardByIdComponent, DashboardComponent, DashboardService, DashboardWidgetComponent, DateRangeFilterTileComponent, DrilldownBreadcrumbsComponent, DrilldownWidgetComponent, FunnelChartComponent, HierarchyService, IndicatorChartComponent, LineChartComponent, MemberFilterTileComponent, PieChartComponent, PivotTableComponent, PluginsService, PolarChartComponent, QueryService, RelativeDateFilterTileComponent, SISENSE_CONTEXT_CONFIG_TOKEN, ScatterChartComponent, ScattermapChartComponent, SdkUiModule, SisenseContextService, SunburstChartComponent, THEME_CONFIG_TOKEN, TableComponent, TableWidgetComponent, ThemeService, TreemapChartComponent, WidgetByIdComponent, WidgetService };
4639
+ export { AreaChartComponent, AreaRangeChartComponent, AreamapChartComponent, BarChartComponent, BoxplotChartComponent, ChartComponent, ChartWidgetComponent, ColumnChartComponent, ContextMenuComponent, CriteriaFilterTileComponent, DashboardByIdComponent, DashboardComponent, DashboardService, DashboardWidgetComponent, DateRangeFilterTileComponent, DrilldownBreadcrumbsComponent, DrilldownWidgetComponent, FunnelChartComponent, HierarchyService, IndicatorChartComponent, LineChartComponent, MemberFilterTileComponent, PieChartComponent, PivotTableComponent, PluginsService, PolarChartComponent, QueryService, RelativeDateFilterTileComponent, SISENSE_CONTEXT_CONFIG_TOKEN, ScatterChartComponent, ScattermapChartComponent, SdkUiModule, SisenseContextService, SunburstChartComponent, THEME_CONFIG_TOKEN, TableComponent, TableWidgetComponent, ThemeService, TrackableService, TreemapChartComponent, WidgetByIdComponent, WidgetService, createPluginsContextConnector, createSisenseContextConnector, createThemeContextConnector };
4662
4640
  //# sourceMappingURL=sisense-sdk-ui-angular.mjs.map