@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.
- package/dist/ai/lib/component-wrapper-helpers/context-connectors.d.ts +10 -0
- package/dist/ai/lib/component-wrapper-helpers/index.d.ts +2 -0
- package/dist/ai/lib/component-wrapper-helpers/template.d.ts +2 -0
- package/dist/ai/lib/components/chatbot.component.d.ts +133 -0
- package/dist/ai/lib/components/get-nlg-insights.component.d.ts +142 -0
- package/dist/ai/lib/components/index.d.ts +2 -0
- package/dist/ai/lib/sdk-ai.module.d.ts +40 -5
- package/dist/ai/lib/sdk-ui-core-exports.d.ts +1 -0
- package/dist/ai/lib/services/ai.service.d.ts +88 -0
- package/dist/ai/lib/services/index.d.ts +1 -0
- package/dist/ai/public-api.d.ts +6 -0
- package/dist/esm2020/ai/lib/component-wrapper-helpers/context-connectors.mjs +20 -0
- package/dist/esm2020/ai/lib/component-wrapper-helpers/index.mjs +3 -0
- package/dist/esm2020/ai/lib/component-wrapper-helpers/template.mjs +5 -0
- package/dist/esm2020/ai/lib/components/chatbot.component.mjs +139 -0
- package/dist/esm2020/ai/lib/components/get-nlg-insights.component.mjs +146 -0
- package/dist/esm2020/ai/lib/components/index.mjs +3 -0
- package/dist/esm2020/ai/lib/sdk-ai.module.mjs +40 -6
- package/dist/esm2020/ai/lib/sdk-ui-core-exports.mjs +3 -0
- package/dist/esm2020/ai/lib/services/ai.service.mjs +137 -0
- package/dist/esm2020/ai/lib/services/index.mjs +2 -0
- package/dist/esm2020/ai/public-api.mjs +7 -1
- package/dist/esm2020/lib/component-wrapper-helpers/index.mjs +2 -1
- package/dist/esm2020/lib/components/charts/area-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/area-range-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/areamap-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/bar-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/boxplot-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/column-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/funnel-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/indicator-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/line-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/pie-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/pivot-table.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/polar-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/scatter-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/scattermap-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/sunburst-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/table.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/treemap-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/dashboard/dashboard-by-id.component.mjs +1 -1
- package/dist/esm2020/lib/components/dashboard/dashboard.component.mjs +1 -1
- package/dist/esm2020/lib/components/drilldown-breadcrumbs.component.mjs +1 -1
- package/dist/esm2020/lib/components/filters/criteria-filter-tile.component.mjs +1 -1
- package/dist/esm2020/lib/components/filters/date-range-filter-tile.component.mjs +1 -1
- package/dist/esm2020/lib/components/filters/member-filter-tile.component.mjs +1 -1
- package/dist/esm2020/lib/components/filters/relative-date-filter-tile.component.mjs +1 -1
- package/dist/esm2020/lib/components/widgets/chart-widget.component.mjs +1 -1
- package/dist/esm2020/lib/components/widgets/table-widget.component.mjs +1 -1
- package/dist/esm2020/lib/components/widgets/widget-by-id.component.mjs +1 -1
- package/dist/esm2020/lib/decorators/index.mjs +3 -0
- package/dist/esm2020/lib/decorators/trackable.decorator.mjs +2 -1
- package/dist/esm2020/lib/sdk-ui.module.mjs +3 -3
- package/dist/esm2020/lib/services/sisense-context.service.mjs +3 -3
- package/dist/esm2020/lib/services/theme.service.mjs +3 -3
- package/dist/esm2020/public-api.mjs +5 -25
- package/dist/esm2020/version.mjs +2 -2
- package/dist/fesm2015/sisense-sdk-ui-angular-ai.mjs +473 -8
- package/dist/fesm2015/sisense-sdk-ui-angular-ai.mjs.map +1 -1
- package/dist/fesm2015/sisense-sdk-ui-angular.mjs +10 -32
- package/dist/fesm2015/sisense-sdk-ui-angular.mjs.map +1 -1
- package/dist/fesm2020/sisense-sdk-ui-angular-ai.mjs +468 -8
- package/dist/fesm2020/sisense-sdk-ui-angular-ai.mjs.map +1 -1
- package/dist/fesm2020/sisense-sdk-ui-angular.mjs +10 -32
- package/dist/fesm2020/sisense-sdk-ui-angular.mjs.map +1 -1
- package/dist/lib/component-wrapper-helpers/index.d.ts +1 -0
- package/dist/lib/components/charts/area-chart.component.d.ts +3 -0
- package/dist/lib/components/charts/area-range-chart.component.d.ts +3 -0
- package/dist/lib/components/charts/areamap-chart.component.d.ts +3 -0
- package/dist/lib/components/charts/bar-chart.component.d.ts +3 -0
- package/dist/lib/components/charts/boxplot-chart.component.d.ts +3 -0
- package/dist/lib/components/charts/chart.component.d.ts +3 -0
- package/dist/lib/components/charts/column-chart.component.d.ts +3 -0
- package/dist/lib/components/charts/funnel-chart.component.d.ts +3 -0
- package/dist/lib/components/charts/indicator-chart.component.d.ts +3 -0
- package/dist/lib/components/charts/line-chart.component.d.ts +3 -0
- package/dist/lib/components/charts/pie-chart.component.d.ts +3 -0
- package/dist/lib/components/charts/pivot-table.component.d.ts +3 -0
- package/dist/lib/components/charts/polar-chart.component.d.ts +3 -0
- package/dist/lib/components/charts/scatter-chart.component.d.ts +3 -0
- package/dist/lib/components/charts/scattermap-chart.component.d.ts +3 -0
- package/dist/lib/components/charts/sunburst-chart.component.d.ts +3 -0
- package/dist/lib/components/charts/table.component.d.ts +3 -2
- package/dist/lib/components/charts/treemap-chart.component.d.ts +3 -0
- package/dist/lib/components/dashboard/dashboard-by-id.component.d.ts +3 -0
- package/dist/lib/components/dashboard/dashboard.component.d.ts +3 -0
- package/dist/lib/components/drilldown-breadcrumbs.component.d.ts +3 -0
- package/dist/lib/components/filters/criteria-filter-tile.component.d.ts +3 -0
- package/dist/lib/components/filters/date-range-filter-tile.component.d.ts +3 -0
- package/dist/lib/components/filters/member-filter-tile.component.d.ts +3 -0
- package/dist/lib/components/filters/relative-date-filter-tile.component.d.ts +3 -0
- package/dist/lib/components/widgets/chart-widget.component.d.ts +3 -0
- package/dist/lib/components/widgets/table-widget.component.d.ts +5 -0
- package/dist/lib/components/widgets/widget-by-id.component.d.ts +3 -2
- package/dist/lib/decorators/index.d.ts +2 -0
- package/dist/lib/decorators/trackable.decorator.d.ts +1 -0
- package/dist/lib/sdk-ui.module.d.ts +2 -2
- package/dist/lib/services/plugins.service.d.ts +1 -1
- package/dist/lib/services/sisense-context.service.d.ts +2 -2
- package/dist/lib/services/theme.service.d.ts +2 -2
- package/dist/package.json +1 -1
- package/dist/public-api.d.ts +3 -21
- package/dist/version.d.ts +1 -1
- 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
|
|
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
|
-
*
|
|
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
|
|
98
|
-
* token
|
|
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.
|
|
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
|
|
444
|
-
* token
|
|
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
|
|
4469
|
-
* token
|
|
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
|
-
* @
|
|
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
|