@sisense/sdk-ui-angular 2.9.0 → 2.11.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 (34) hide show
  1. package/dist/ai/lib/services/ai.service.d.ts +2 -2
  2. package/dist/esm2020/ai/lib/services/ai.service.mjs +5 -5
  3. package/dist/esm2020/lib/component-wrapper-helpers/context-connectors.mjs +34 -22
  4. package/dist/esm2020/lib/components/charts/calendar-heatmap-chart.component.mjs +133 -0
  5. package/dist/esm2020/lib/components/charts/index.mjs +2 -1
  6. package/dist/esm2020/lib/components/widgets/widget-by-id.component.mjs +2 -2
  7. package/dist/esm2020/lib/sdk-ui-core-exports.mjs +1 -1
  8. package/dist/esm2020/lib/sdk-ui.module.mjs +6 -2
  9. package/dist/esm2020/lib/services/sisense-context.service.mjs +100 -13
  10. package/dist/esm2020/lib/services/theme.service.mjs +14 -2
  11. package/dist/esm2020/lib/types/chart-event-props.mjs +1 -1
  12. package/dist/esm2020/lib/types/data-point.mjs +1 -1
  13. package/dist/esm2020/public-api.mjs +1 -1
  14. package/dist/esm2020/version.mjs +2 -2
  15. package/dist/fesm2015/sisense-sdk-ui-angular-ai.mjs +4 -4
  16. package/dist/fesm2015/sisense-sdk-ui-angular-ai.mjs.map +1 -1
  17. package/dist/fesm2015/sisense-sdk-ui-angular.mjs +283 -34
  18. package/dist/fesm2015/sisense-sdk-ui-angular.mjs.map +1 -1
  19. package/dist/fesm2020/sisense-sdk-ui-angular-ai.mjs +4 -4
  20. package/dist/fesm2020/sisense-sdk-ui-angular-ai.mjs.map +1 -1
  21. package/dist/fesm2020/sisense-sdk-ui-angular.mjs +281 -37
  22. package/dist/fesm2020/sisense-sdk-ui-angular.mjs.map +1 -1
  23. package/dist/lib/components/charts/calendar-heatmap-chart.component.d.ts +125 -0
  24. package/dist/lib/components/charts/index.d.ts +1 -0
  25. package/dist/lib/components/widgets/widget-by-id.component.d.ts +1 -1
  26. package/dist/lib/sdk-ui-core-exports.d.ts +1 -1
  27. package/dist/lib/sdk-ui.module.d.ts +32 -31
  28. package/dist/lib/services/sisense-context.service.d.ts +90 -7
  29. package/dist/lib/types/chart-event-props.d.ts +25 -1
  30. package/dist/lib/types/data-point.d.ts +24 -4
  31. package/dist/package.json +2 -2
  32. package/dist/public-api.d.ts +1 -1
  33. package/dist/version.d.ts +1 -1
  34. package/package.json +5 -5
@@ -1,5 +1,6 @@
1
- import { Inject, Injectable, InjectionToken } from '@angular/core';
1
+ import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
2
2
  import { createClientApplication } from '@sisense/sdk-ui-preact';
3
+ import { concat, firstValueFrom, of, ReplaySubject } from 'rxjs';
3
4
  import * as i0 from "@angular/core";
4
5
  /**
5
6
  * Token used to inject {@link SisenseContextConfig} into your application
@@ -30,28 +31,112 @@ import * as i0 from "@angular/core";
30
31
  */
31
32
  export const SISENSE_CONTEXT_CONFIG_TOKEN = new InjectionToken('Props for connecting to Sisense instance');
32
33
  /**
33
- * Service for working with Sisense Fusion context.
34
+ * Service for managing Sisense Fusion context and client application lifecycle.
35
+ *
36
+ * This service provides a centralized way to configure and manage the connection to a Sisense instance within Angular applications.
34
37
  *
35
38
  * @group Contexts
36
39
  */
37
40
  export class SisenseContextService {
38
41
  constructor(sisenseContextConfig) {
39
- this.appPromise = createClientApplication(sisenseContextConfig);
40
- const { showRuntimeErrors } = sisenseContextConfig;
41
- this.config = {
42
- ...sisenseContextConfig,
43
- showRuntimeErrors: showRuntimeErrors ?? true,
44
- };
42
+ /**
43
+ * Flag indicating whether the service has been initialized with configuration.
44
+ *
45
+ * @internal
46
+ */
47
+ this.isInitialized = false;
48
+ // The buffer size of 1 ensures only the most recent state is cached.
49
+ this.app$ = new ReplaySubject(1);
50
+ if (sisenseContextConfig) {
51
+ // Auto-configure if config is provided via DI
52
+ void this.setConfig(sisenseContextConfig);
53
+ }
54
+ }
55
+ /**
56
+ * Retrieves the initialized Sisense client application.
57
+ *
58
+ * This method provides access to the client application instance.
59
+ * It waits for the latest state from the reactive stream and either returns
60
+ * the application or throws the error if initialization failed.
61
+ *
62
+ * @returns Promise that resolves to the ClientApplication instance
63
+ * @throws {Error} When the service is not initialized or when application creation failed
64
+ *
65
+ * @internal
66
+ */
67
+ async getApp() {
68
+ if (!this.isInitialized) {
69
+ throw new Error('Sisense context is not initialized');
70
+ }
71
+ const { app, error } = await firstValueFrom(this.app$);
72
+ if (error) {
73
+ throw error;
74
+ }
75
+ return app;
45
76
  }
46
- /** @internal */
47
- getApp() {
48
- return this.appPromise;
77
+ /**
78
+ * Provides reactive access to the Sisense application state.
79
+ *
80
+ * This method returns an Observable that emits the current application state
81
+ * and all subsequent state changes. It's the preferred way to reactively
82
+ * handle application lifecycle events in Angular components.
83
+ *
84
+ * If the service is not initialized, it immediately emits an error state
85
+ * followed by any future state changes once initialization occurs.
86
+ *
87
+ * @returns Observable stream of AppState changes
88
+ *
89
+ * @internal
90
+ */
91
+ getApp$() {
92
+ if (!this.isInitialized) {
93
+ return concat(of({ error: new Error('Sisense context is not initialized') }), this.app$);
94
+ }
95
+ return this.app$;
49
96
  }
97
+ /**
98
+ * Retrieves the current {@link SisenseContextConfig} configuration object.
99
+ *
100
+ * @returns The current configuration object, or undefined if not yet configured
101
+ */
50
102
  getConfig() {
51
103
  return this.config;
52
104
  }
105
+ /**
106
+ * Configures and initializes the Sisense context with the provided settings.
107
+ *
108
+ * This method allows to establish a connection to a Sisense instance.
109
+ * It could be used as runtime alternative to {@link SISENSE_CONTEXT_CONFIG_TOKEN} based configuration.
110
+ *
111
+ * @param config - Configuration object
112
+ * @returns Promise that resolves when configuration is complete (success or failure)
113
+ *
114
+ * @example
115
+ * Basic configuration:
116
+ * ```ts
117
+ * await SisenseContextService.setConfig({
118
+ * url: 'https://your-sisense-instance.com',
119
+ * token: 'your-api-token',
120
+ * defaultDataSource: 'Sample ECommerce'
121
+ * });
122
+ * ```
123
+ */
124
+ async setConfig(config) {
125
+ this.config = {
126
+ ...config,
127
+ showRuntimeErrors: config.showRuntimeErrors ?? true,
128
+ };
129
+ this.isInitialized = true;
130
+ try {
131
+ const app = await createClientApplication(this.config);
132
+ this.app$.next({ app });
133
+ }
134
+ catch (error) {
135
+ this.app$.next({ error: error });
136
+ }
137
+ }
53
138
  }
54
- SisenseContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SisenseContextService, deps: [{ token: SISENSE_CONTEXT_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
139
+ SisenseContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SisenseContextService, deps: [{ token: SISENSE_CONTEXT_CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
55
140
  SisenseContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SisenseContextService, providedIn: 'root' });
56
141
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SisenseContextService, decorators: [{
57
142
  type: Injectable,
@@ -59,7 +144,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
59
144
  providedIn: 'root',
60
145
  }]
61
146
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
147
+ type: Optional
148
+ }, {
62
149
  type: Inject,
63
150
  args: [SISENSE_CONTEXT_CONFIG_TOKEN]
64
151
  }] }]; } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lzZW5zZS1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3Npc2Vuc2UtY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQXFCLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBSXBGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksY0FBYyxDQUM1RCwwQ0FBMEMsQ0FDM0MsQ0FBQztBQUVGOzs7O0dBSUc7QUFJSCxNQUFNLE9BQU8scUJBQXFCO0lBS2hDLFlBQWtELG9CQUEwQztRQUMxRixJQUFJLENBQUMsVUFBVSxHQUFHLHVCQUF1QixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFaEUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsb0JBQW9CLENBQUM7UUFDbkQsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLEdBQUcsb0JBQW9CO1lBQ3ZCLGlCQUFpQixFQUFFLGlCQUFpQixJQUFJLElBQUk7U0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDOzttSEF0QlUscUJBQXFCLGtCQUtaLDRCQUE0Qjt1SEFMckMscUJBQXFCLGNBRnBCLE1BQU07NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTWMsTUFBTTsyQkFBQyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IFNpc2Vuc2VDb250ZXh0UHJvdmlkZXJQcm9wcyBhcyBTaXNlbnNlQ29udGV4dENvbmZpZyB9IGZyb20gJ0BzaXNlbnNlL3Nkay11aS1wcmVhY3QnO1xuaW1wb3J0IHsgQ2xpZW50QXBwbGljYXRpb24sIGNyZWF0ZUNsaWVudEFwcGxpY2F0aW9uIH0gZnJvbSAnQHNpc2Vuc2Uvc2RrLXVpLXByZWFjdCc7XG5cbmV4cG9ydCB7IHR5cGUgU2lzZW5zZUNvbnRleHRDb25maWcgfTtcblxuLyoqXG4gKiBUb2tlbiB1c2VkIHRvIGluamVjdCB7QGxpbmsgU2lzZW5zZUNvbnRleHRDb25maWd9IGludG8geW91ciBhcHBsaWNhdGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiBFeGFtcGxlIG9mIGltcG9ydGluZyB7QGxpbmsgU2RrVWlNb2R1bGV9IGFuZCBpbmplY3Rpbmcge0BsaW5rIFNpc2Vuc2VDb250ZXh0Q29uZmlnfSBpbnRvIHlvdXIgYXBwbGljYXRpb246XG4gKlxuICogYGBgdHNcbiAqIGV4cG9ydCBjb25zdCBTSVNFTlNFX0NPTlRFWFRfQ09ORklHOiBTaXNlbnNlQ29udGV4dENvbmZpZyA9IHtcbiAqICAgdXJsOiBcIjxpbnN0YW5jZSB1cmw+XCIsIC8vIHJlcGxhY2Ugd2l0aCB0aGUgVVJMIG9mIHlvdXIgU2lzZW5zZSBpbnN0YW5jZVxuICogICB0b2tlbjogXCI8YXBpIHRva2VuPlwiLCAvLyByZXBsYWNlIHdpdGggdGhlIEFQSSB0b2tlbiBvZiB5b3VyIHVzZXIgYWNjb3VudFxuICogICBkZWZhdWx0RGF0YVNvdXJjZTogRE0uRGF0YVNvdXJjZSxcbiAqIH07XG4gKlxuICogQE5nTW9kdWxlKHtcbiAqICAgaW1wb3J0czogW1xuICogICAgIEJyb3dzZXJNb2R1bGUsXG4gKiAgICAgU2RrVWlNb2R1bGUsXG4gKiAgIF0sXG4gKiAgIGRlY2xhcmF0aW9uczogW0FwcENvbXBvbmVudF0sXG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHsgcHJvdmlkZTogU0lTRU5TRV9DT05URVhUX0NPTkZJR19UT0tFTiwgdXNlVmFsdWU6IFNJU0VOU0VfQ09OVEVYVF9DT05GSUcgfSxcbiAqICAgXSxcbiAqICAgYm9vdHN0cmFwOiBbQXBwQ29tcG9uZW50XSxcbiAqIH0pXG4gKiBgYGBcbiAqIEBncm91cCBDb250ZXh0c1xuICovXG5leHBvcnQgY29uc3QgU0lTRU5TRV9DT05URVhUX0NPTkZJR19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTaXNlbnNlQ29udGV4dENvbmZpZz4oXG4gICdQcm9wcyBmb3IgY29ubmVjdGluZyB0byBTaXNlbnNlIGluc3RhbmNlJyxcbik7XG5cbi8qKlxuICogU2VydmljZSBmb3Igd29ya2luZyB3aXRoIFNpc2Vuc2UgRnVzaW9uIGNvbnRleHQuXG4gKlxuICogQGdyb3VwIENvbnRleHRzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTaXNlbnNlQ29udGV4dFNlcnZpY2Uge1xuICBwcml2YXRlIGFwcFByb21pc2U6IFByb21pc2U8Q2xpZW50QXBwbGljYXRpb24+O1xuXG4gIHByaXZhdGUgY29uZmlnOiBTaXNlbnNlQ29udGV4dENvbmZpZztcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFNJU0VOU0VfQ09OVEVYVF9DT05GSUdfVE9LRU4pIHNpc2Vuc2VDb250ZXh0Q29uZmlnOiBTaXNlbnNlQ29udGV4dENvbmZpZykge1xuICAgIHRoaXMuYXBwUHJvbWlzZSA9IGNyZWF0ZUNsaWVudEFwcGxpY2F0aW9uKHNpc2Vuc2VDb250ZXh0Q29uZmlnKTtcblxuICAgIGNvbnN0IHsgc2hvd1J1bnRpbWVFcnJvcnMgfSA9IHNpc2Vuc2VDb250ZXh0Q29uZmlnO1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgLi4uc2lzZW5zZUNvbnRleHRDb25maWcsXG4gICAgICBzaG93UnVudGltZUVycm9yczogc2hvd1J1bnRpbWVFcnJvcnMgPz8gdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBnZXRBcHAoKTogUHJvbWlzZTxDbGllbnRBcHBsaWNhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmFwcFByb21pc2U7XG4gIH1cblxuICBnZXRDb25maWcoKTogU2lzZW5zZUNvbnRleHRDb25maWcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZztcbiAgfVxufVxuIl19
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lzZW5zZS1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3Npc2Vuc2UtY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0UsT0FBTyxFQUFxQix1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFjLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBbUI3RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQkc7QUFDSCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FDNUQsMENBQTBDLENBQzNDLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFJSCxNQUFNLE9BQU8scUJBQXFCO0lBdUJoQyxZQUNvRCxvQkFBMkM7UUFSL0Y7Ozs7V0FJRztRQUNILGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBS3BCLHFFQUFxRTtRQUNyRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWpDLElBQUksb0JBQW9CLEVBQUU7WUFDeEIsOENBQThDO1lBQzlDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7U0FDdkQ7UUFFRCxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV2RCxJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sS0FBSyxDQUFDO1NBQ2I7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0gsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLE9BQU8sTUFBTSxDQUNYLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxFQUFXLENBQUMsRUFDdkUsSUFBSSxDQUFDLElBQUksQ0FDVixDQUFDO1NBQ0g7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0JHO0lBQ0gsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUE0QjtRQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osR0FBRyxNQUFNO1lBQ1QsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixJQUFJLElBQUk7U0FDcEQsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBRTFCLElBQUk7WUFDRixNQUFNLEdBQUcsR0FBRyxNQUFNLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBVyxDQUFDLENBQUM7U0FDbEM7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQWMsRUFBVyxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDOzttSEE5SFUscUJBQXFCLGtCQXdCViw0QkFBNEI7dUhBeEJ2QyxxQkFBcUIsY0FGcEIsTUFBTTs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkF5QkksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBTaXNlbnNlQ29udGV4dFByb3ZpZGVyUHJvcHMgYXMgU2lzZW5zZUNvbnRleHRDb25maWcgfSBmcm9tICdAc2lzZW5zZS9zZGstdWktcHJlYWN0JztcbmltcG9ydCB7IENsaWVudEFwcGxpY2F0aW9uLCBjcmVhdGVDbGllbnRBcHBsaWNhdGlvbiB9IGZyb20gJ0BzaXNlbnNlL3Nkay11aS1wcmVhY3QnO1xuaW1wb3J0IHsgY29uY2F0LCBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHsgdHlwZSBTaXNlbnNlQ29udGV4dENvbmZpZyB9O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIHRoZSBTaXNlbnNlIGNsaWVudCBhcHBsaWNhdGlvbi5cbiAqL1xudHlwZSBBcHBTdGF0ZSA9XG4gIHwge1xuICAgICAgLyoqIFN1Y2Nlc3NmdWxseSBpbml0aWFsaXplZCBjbGllbnQgYXBwbGljYXRpb24gKi9cbiAgICAgIHJlYWRvbmx5IGFwcDogQ2xpZW50QXBwbGljYXRpb247XG4gICAgICByZWFkb25seSBlcnJvcj86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICAvKiogRXJyb3IgdGhhdCBvY2N1cnJlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gb3IgY29ubmVjdGlvbiAqL1xuICAgICAgcmVhZG9ubHkgZXJyb3I6IEVycm9yO1xuICAgICAgcmVhZG9ubHkgYXBwPzogbmV2ZXI7XG4gICAgfTtcblxuLyoqXG4gKiBUb2tlbiB1c2VkIHRvIGluamVjdCB7QGxpbmsgU2lzZW5zZUNvbnRleHRDb25maWd9IGludG8geW91ciBhcHBsaWNhdGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiBFeGFtcGxlIG9mIGltcG9ydGluZyB7QGxpbmsgU2RrVWlNb2R1bGV9IGFuZCBpbmplY3Rpbmcge0BsaW5rIFNpc2Vuc2VDb250ZXh0Q29uZmlnfSBpbnRvIHlvdXIgYXBwbGljYXRpb246XG4gKlxuICogYGBgdHNcbiAqIGV4cG9ydCBjb25zdCBTSVNFTlNFX0NPTlRFWFRfQ09ORklHOiBTaXNlbnNlQ29udGV4dENvbmZpZyA9IHtcbiAqICAgdXJsOiBcIjxpbnN0YW5jZSB1cmw+XCIsIC8vIHJlcGxhY2Ugd2l0aCB0aGUgVVJMIG9mIHlvdXIgU2lzZW5zZSBpbnN0YW5jZVxuICogICB0b2tlbjogXCI8YXBpIHRva2VuPlwiLCAvLyByZXBsYWNlIHdpdGggdGhlIEFQSSB0b2tlbiBvZiB5b3VyIHVzZXIgYWNjb3VudFxuICogICBkZWZhdWx0RGF0YVNvdXJjZTogRE0uRGF0YVNvdXJjZSxcbiAqIH07XG4gKlxuICogQE5nTW9kdWxlKHtcbiAqICAgaW1wb3J0czogW1xuICogICAgIEJyb3dzZXJNb2R1bGUsXG4gKiAgICAgU2RrVWlNb2R1bGUsXG4gKiAgIF0sXG4gKiAgIGRlY2xhcmF0aW9uczogW0FwcENvbXBvbmVudF0sXG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHsgcHJvdmlkZTogU0lTRU5TRV9DT05URVhUX0NPTkZJR19UT0tFTiwgdXNlVmFsdWU6IFNJU0VOU0VfQ09OVEVYVF9DT05GSUcgfSxcbiAqICAgXSxcbiAqICAgYm9vdHN0cmFwOiBbQXBwQ29tcG9uZW50XSxcbiAqIH0pXG4gKiBgYGBcbiAqIEBncm91cCBDb250ZXh0c1xuICovXG5leHBvcnQgY29uc3QgU0lTRU5TRV9DT05URVhUX0NPTkZJR19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTaXNlbnNlQ29udGV4dENvbmZpZz4oXG4gICdQcm9wcyBmb3IgY29ubmVjdGluZyB0byBTaXNlbnNlIGluc3RhbmNlJyxcbik7XG5cbi8qKlxuICogU2VydmljZSBmb3IgbWFuYWdpbmcgU2lzZW5zZSBGdXNpb24gY29udGV4dCBhbmQgY2xpZW50IGFwcGxpY2F0aW9uIGxpZmVjeWNsZS5cbiAqXG4gKiBUaGlzIHNlcnZpY2UgcHJvdmlkZXMgYSBjZW50cmFsaXplZCB3YXkgdG8gY29uZmlndXJlIGFuZCBtYW5hZ2UgdGhlIGNvbm5lY3Rpb24gdG8gYSBTaXNlbnNlIGluc3RhbmNlIHdpdGhpbiBBbmd1bGFyIGFwcGxpY2F0aW9ucy5cbiAqXG4gKiBAZ3JvdXAgQ29udGV4dHNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNpc2Vuc2VDb250ZXh0U2VydmljZSB7XG4gIC8qKlxuICAgKiBSZWFjdGl2ZSBzdHJlYW0gb2YgYXBwbGljYXRpb24gc3RhdGUgY2hhbmdlcy5cbiAgICpcbiAgICogVXNlcyBSZXBsYXlTdWJqZWN0IHRvIGVuc3VyZSBsYXRlIHN1YnNjcmliZXJzIHJlY2VpdmUgdGhlIGxhdGVzdCBzdGF0ZS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwJDogUmVwbGF5U3ViamVjdDxBcHBTdGF0ZT47XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGUgU2lzZW5zZSBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBUaGlzIGlzIHNldCBvbmNlIGR1cmluZyBpbml0aWFsaXphdGlvbiBhbmQgcmVtYWlucyByZWFkb25seSB0aGVyZWFmdGVyXG4gICAqIHRvIHByZXZlbnQgYWNjaWRlbnRhbCBtdXRhdGlvbnMgdGhhdCBjb3VsZCBsZWFkIHRvIGluY29uc2lzdGVudCBzdGF0ZS5cbiAgICovXG4gIHByaXZhdGUgY29uZmlnPzogU2lzZW5zZUNvbnRleHRDb25maWc7XG5cbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBzZXJ2aWNlIGhhcyBiZWVuIGluaXRpYWxpemVkIHdpdGggY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChTSVNFTlNFX0NPTlRFWFRfQ09ORklHX1RPS0VOKSBzaXNlbnNlQ29udGV4dENvbmZpZz86IFNpc2Vuc2VDb250ZXh0Q29uZmlnLFxuICApIHtcbiAgICAvLyBUaGUgYnVmZmVyIHNpemUgb2YgMSBlbnN1cmVzIG9ubHkgdGhlIG1vc3QgcmVjZW50IHN0YXRlIGlzIGNhY2hlZC5cbiAgICB0aGlzLmFwcCQgPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcblxuICAgIGlmIChzaXNlbnNlQ29udGV4dENvbmZpZykge1xuICAgICAgLy8gQXV0by1jb25maWd1cmUgaWYgY29uZmlnIGlzIHByb3ZpZGVkIHZpYSBESVxuICAgICAgdm9pZCB0aGlzLnNldENvbmZpZyhzaXNlbnNlQ29udGV4dENvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgaW5pdGlhbGl6ZWQgU2lzZW5zZSBjbGllbnQgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIHByb3ZpZGVzIGFjY2VzcyB0byB0aGUgY2xpZW50IGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICAgKiBJdCB3YWl0cyBmb3IgdGhlIGxhdGVzdCBzdGF0ZSBmcm9tIHRoZSByZWFjdGl2ZSBzdHJlYW0gYW5kIGVpdGhlciByZXR1cm5zXG4gICAqIHRoZSBhcHBsaWNhdGlvbiBvciB0aHJvd3MgdGhlIGVycm9yIGlmIGluaXRpYWxpemF0aW9uIGZhaWxlZC5cbiAgICpcbiAgICogQHJldHVybnMgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBDbGllbnRBcHBsaWNhdGlvbiBpbnN0YW5jZVxuICAgKiBAdGhyb3dzIHtFcnJvcn0gV2hlbiB0aGUgc2VydmljZSBpcyBub3QgaW5pdGlhbGl6ZWQgb3Igd2hlbiBhcHBsaWNhdGlvbiBjcmVhdGlvbiBmYWlsZWRcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBhc3luYyBnZXRBcHAoKTogUHJvbWlzZTxDbGllbnRBcHBsaWNhdGlvbj4ge1xuICAgIGlmICghdGhpcy5pc0luaXRpYWxpemVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Npc2Vuc2UgY29udGV4dCBpcyBub3QgaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IGFwcCwgZXJyb3IgfSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYXBwJCk7XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICByZXR1cm4gYXBwO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIHJlYWN0aXZlIGFjY2VzcyB0byB0aGUgU2lzZW5zZSBhcHBsaWNhdGlvbiBzdGF0ZS5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gc3RhdGVcbiAgICogYW5kIGFsbCBzdWJzZXF1ZW50IHN0YXRlIGNoYW5nZXMuIEl0J3MgdGhlIHByZWZlcnJlZCB3YXkgdG8gcmVhY3RpdmVseVxuICAgKiBoYW5kbGUgYXBwbGljYXRpb24gbGlmZWN5Y2xlIGV2ZW50cyBpbiBBbmd1bGFyIGNvbXBvbmVudHMuXG4gICAqXG4gICAqIElmIHRoZSBzZXJ2aWNlIGlzIG5vdCBpbml0aWFsaXplZCwgaXQgaW1tZWRpYXRlbHkgZW1pdHMgYW4gZXJyb3Igc3RhdGVcbiAgICogZm9sbG93ZWQgYnkgYW55IGZ1dHVyZSBzdGF0ZSBjaGFuZ2VzIG9uY2UgaW5pdGlhbGl6YXRpb24gb2NjdXJzLlxuICAgKlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHN0cmVhbSBvZiBBcHBTdGF0ZSBjaGFuZ2VzXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0QXBwJCgpOiBPYnNlcnZhYmxlPEFwcFN0YXRlPiB7XG4gICAgaWYgKCF0aGlzLmlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHJldHVybiBjb25jYXQoXG4gICAgICAgIG9mKHsgZXJyb3I6IG5ldyBFcnJvcignU2lzZW5zZSBjb250ZXh0IGlzIG5vdCBpbml0aWFsaXplZCcpIH0gYXMgY29uc3QpLFxuICAgICAgICB0aGlzLmFwcCQsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwcCQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IHtAbGluayBTaXNlbnNlQ29udGV4dENvbmZpZ30gY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gb2JqZWN0LCBvciB1bmRlZmluZWQgaWYgbm90IHlldCBjb25maWd1cmVkXG4gICAqL1xuICBnZXRDb25maWcoKTogU2lzZW5zZUNvbnRleHRDb25maWcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIGFuZCBpbml0aWFsaXplcyB0aGUgU2lzZW5zZSBjb250ZXh0IHdpdGggdGhlIHByb3ZpZGVkIHNldHRpbmdzLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBhbGxvd3MgdG8gZXN0YWJsaXNoIGEgY29ubmVjdGlvbiB0byBhIFNpc2Vuc2UgaW5zdGFuY2UuXG4gICAqIEl0IGNvdWxkIGJlIHVzZWQgYXMgcnVudGltZSBhbHRlcm5hdGl2ZSB0byB7QGxpbmsgU0lTRU5TRV9DT05URVhUX0NPTkZJR19UT0tFTn0gYmFzZWQgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIGNvbmZpZyAtIENvbmZpZ3VyYXRpb24gb2JqZWN0XG4gICAqIEByZXR1cm5zIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGNvbmZpZ3VyYXRpb24gaXMgY29tcGxldGUgKHN1Y2Nlc3Mgb3IgZmFpbHVyZSlcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogQmFzaWMgY29uZmlndXJhdGlvbjpcbiAgICogYGBgdHNcbiAgICogYXdhaXQgU2lzZW5zZUNvbnRleHRTZXJ2aWNlLnNldENvbmZpZyh7XG4gICAqICAgdXJsOiAnaHR0cHM6Ly95b3VyLXNpc2Vuc2UtaW5zdGFuY2UuY29tJyxcbiAgICogICB0b2tlbjogJ3lvdXItYXBpLXRva2VuJyxcbiAgICogICBkZWZhdWx0RGF0YVNvdXJjZTogJ1NhbXBsZSBFQ29tbWVyY2UnXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHNldENvbmZpZyhjb25maWc6IFNpc2Vuc2VDb250ZXh0Q29uZmlnKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBzaG93UnVudGltZUVycm9yczogY29uZmlnLnNob3dSdW50aW1lRXJyb3JzID8/IHRydWUsXG4gICAgfTtcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGFwcCA9IGF3YWl0IGNyZWF0ZUNsaWVudEFwcGxpY2F0aW9uKHRoaXMuY29uZmlnKTtcbiAgICAgIHRoaXMuYXBwJC5uZXh0KHsgYXBwIH0gYXMgY29uc3QpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmFwcCQubmV4dCh7IGVycm9yOiBlcnJvciBhcyBFcnJvciB9IGFzIGNvbnN0KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
3
3
  import { getDefaultThemeSettings, getThemeSettingsByOid, } from '@sisense/sdk-ui-preact';
4
- import { BehaviorSubject } from 'rxjs';
4
+ import { BehaviorSubject, skip } from 'rxjs';
5
5
  import merge from 'ts-deepmerge';
6
6
  import { track, TrackableService } from '../decorators/trackable.decorator';
7
7
  import * as i0 from "@angular/core";
@@ -54,6 +54,18 @@ let ThemeService = class ThemeService {
54
54
  this.initializationPromise = Promise.resolve();
55
55
  this.themeSettings$ = new BehaviorSubject(getDefaultThemeSettings());
56
56
  this.initializationPromise = this.initThemeSettings(themeConfig?.theme);
57
+ this.sisenseContextService
58
+ .getApp$()
59
+ // Skip current app value
60
+ .pipe(skip(1))
61
+ // Subscribe to new app values
62
+ .subscribe({
63
+ next: ({ app }) => {
64
+ if (app) {
65
+ this.initializationPromise = this.applyThemeSettings(app.settings.serverThemeSettings);
66
+ }
67
+ },
68
+ });
57
69
  }
58
70
  async initThemeSettings(theme) {
59
71
  const app = await this.sisenseContextService.getApp();
@@ -106,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
106
118
  type: Inject,
107
119
  args: [THEME_CONFIG_TOKEN]
108
120
  }] }]; } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdGhlbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLHFCQUFxQixHQUV0QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBRWpDLE9BQU8sRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBTTVFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBYyxxQkFBcUIsQ0FBQyxDQUFDO0FBRXpGOzs7Ozs7R0FNRztBQUtJLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQVk7SUFLdkIsWUFDVSxxQkFBNEMsRUFDWixXQUF5QjtRQUR6RCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBSDlDLDBCQUFxQixHQUFrQixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFNL0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBd0IsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTyxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBMkI7UUFDekQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFdEQsb0NBQW9DO1FBQ3BDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVoRSxJQUFJLEtBQUssRUFBRTtZQUNULDBHQUEwRztZQUMxRyxLQUFLLENBQUMsaUNBQWlDLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztZQUM3RSxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBNkI7UUFDNUQsSUFBSTtZQUNGLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RELE1BQU0sVUFBVSxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztZQUM3QyxJQUFJLGlCQUFpQixHQUFHLEtBQXNCLENBQUM7WUFFL0MsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsaUJBQWlCLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3hFO1lBRUQsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUMzQyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsRUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQ3pCLGlCQUFpQixDQUNPLENBQUM7WUFFM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUMvQztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEtBQTZCO1FBQ3JELE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBQ2pDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OzBHQXhEVSxZQUFZLHVEQU9ELGtCQUFrQjs4R0FQN0IsWUFBWSxjQUhYLE1BQU07QUFHUCxZQUFZO0lBRHhCLGdCQUFnQixDQUFlLENBQUMscUJBQXFCLENBQUMsQ0FBQztHQUMzQyxZQUFZLENBeUR4QjtTQXpEWSxZQUFZOzRGQUFaLFlBQVk7a0JBSnhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICB0eXBlIENvbXBsZXRlVGhlbWVTZXR0aW5ncyxcbiAgZ2V0RGVmYXVsdFRoZW1lU2V0dGluZ3MsXG4gIGdldFRoZW1lU2V0dGluZ3NCeU9pZCxcbiAgdHlwZSBUaGVtZVByb3ZpZGVyUHJvcHMgYXMgVGhlbWVDb25maWcsXG59IGZyb20gJ0BzaXNlbnNlL3Nkay11aS1wcmVhY3QnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgbWVyZ2UgZnJvbSAndHMtZGVlcG1lcmdlJztcblxuaW1wb3J0IHsgdHJhY2ssIFRyYWNrYWJsZVNlcnZpY2UgfSBmcm9tICcuLi9kZWNvcmF0b3JzL3RyYWNrYWJsZS5kZWNvcmF0b3InO1xuaW1wb3J0IHsgdHlwZSBUaGVtZVNldHRpbmdzIH0gZnJvbSAnLi4vc2RrLXVpLWNvcmUtZXhwb3J0cyc7XG5pbXBvcnQgeyBTaXNlbnNlQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL3Npc2Vuc2UtY29udGV4dC5zZXJ2aWNlJztcblxuZXhwb3J0IHsgdHlwZSBUaGVtZUNvbmZpZyB9O1xuXG4vKipcbiAqIFRva2VuIHVzZWQgdG8gaW5qZWN0IHtAbGluayBUaGVtZUNvbmZpZ30gaW50byB5b3VyIGFwcGxpY2F0aW9uXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBFeGFtcGxlIG9mIGluamVjdGluZyBib3RoIHtAbGluayBTaXNlbnNlQ29udGV4dENvbmZpZ30gYW5kIHtAbGluayBUaGVtZUNvbmZpZ30gaW50byB5b3VyIGFwcGxpY2F0aW9uOlxuICpcbiAqIGBgYHRzXG4gKiBleHBvcnQgY29uc3QgU0lTRU5TRV9DT05URVhUX0NPTkZJRzogU2lzZW5zZUNvbnRleHRDb25maWcgPSB7XG4gKiAgIHVybDogXCI8aW5zdGFuY2UgdXJsPlwiLCAvLyByZXBsYWNlIHdpdGggdGhlIFVSTCBvZiB5b3VyIFNpc2Vuc2UgaW5zdGFuY2VcbiAqICAgdG9rZW46IFwiPGFwaSB0b2tlbj5cIiwgLy8gcmVwbGFjZSB3aXRoIHRoZSBBUEkgdG9rZW4gb2YgeW91ciB1c2VyIGFjY291bnRcbiAqICAgZGVmYXVsdERhdGFTb3VyY2U6IERNLkRhdGFTb3VyY2UsXG4gKiB9O1xuICpcbiAqIEBOZ01vZHVsZSh7XG4gKiAgIGltcG9ydHM6IFtcbiAqICAgICBCcm93c2VyTW9kdWxlLFxuICogICAgIFNka1VpTW9kdWxlLFxuICogICBdLFxuICogICBkZWNsYXJhdGlvbnM6IFtBcHBDb21wb25lbnRdLFxuICogICBwcm92aWRlcnM6IFtcbiAqICAgICB7IHByb3ZpZGU6IFNJU0VOU0VfQ09OVEVYVF9DT05GSUdfVE9LRU4sIHVzZVZhbHVlOiBTSVNFTlNFX0NPTlRFWFRfQ09ORklHIH0sXG4gKiAgICAge1xuICogICAgICAgcHJvdmlkZTogVEhFTUVfQ09ORklHX1RPS0VOLFxuICogICAgICAgdXNlVmFsdWU6IHtcbiAqICAgICAgICAgLy8gaW5pdGlhbCB0aGVtZSBzZXR0aW5nc1xuICogICAgICAgfSBhcyBUaGVtZUNvbmZpZyxcbiAqICAgICB9LFxuICogICBdLFxuICogICBib290c3RyYXA6IFtBcHBDb21wb25lbnRdLFxuICogfSlcbiAqIGBgYFxuICogQGdyb3VwIENvbnRleHRzXG4gKi9cbmV4cG9ydCBjb25zdCBUSEVNRV9DT05GSUdfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48VGhlbWVDb25maWc+KCd0aGVtZSBjb25maWd1cmF0aW9uJyk7XG5cbi8qKlxuICogU2VydmljZSBmb3Igd29ya2luZyB3aXRoIFNpc2Vuc2UgRnVzaW9uIHRoZW1lcy5cbiAqXG4gKiBJZiBubyB0aGVtZSBzZXJ2aWNlIGlzIHVzZWQsIHRoZSBjdXJyZW50IEZ1c2lvbiB0aGVtZSBpcyBhcHBsaWVkIGJ5IGRlZmF1bHQuXG4gKlxuICogQGdyb3VwIENvbnRleHRzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbkBUcmFja2FibGVTZXJ2aWNlPFRoZW1lU2VydmljZT4oWyd1cGRhdGVUaGVtZVNldHRpbmdzJ10pXG5leHBvcnQgY2xhc3MgVGhlbWVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0aGVtZVNldHRpbmdzJDogQmVoYXZpb3JTdWJqZWN0PENvbXBsZXRlVGhlbWVTZXR0aW5ncz47XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXphdGlvblByb21pc2U6IFByb21pc2U8dm9pZD4gPSBQcm9taXNlLnJlc29sdmUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNpc2Vuc2VDb250ZXh0U2VydmljZTogU2lzZW5zZUNvbnRleHRTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVEhFTUVfQ09ORklHX1RPS0VOKSB0aGVtZUNvbmZpZz86IFRoZW1lQ29uZmlnLFxuICApIHtcbiAgICB0aGlzLnRoZW1lU2V0dGluZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb21wbGV0ZVRoZW1lU2V0dGluZ3M+KGdldERlZmF1bHRUaGVtZVNldHRpbmdzKCkpO1xuICAgIHRoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlID0gdGhpcy5pbml0VGhlbWVTZXR0aW5ncyh0aGVtZUNvbmZpZz8udGhlbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0VGhlbWVTZXR0aW5ncyh0aGVtZTogVGhlbWVDb25maWdbJ3RoZW1lJ10pIHtcbiAgICBjb25zdCBhcHAgPSBhd2FpdCB0aGlzLnNpc2Vuc2VDb250ZXh0U2VydmljZS5nZXRBcHAoKTtcblxuICAgIC8vIGFwcGx5IHN5c3RlbSB0aGVtZSBzZXR0aW5ncyBmaXJzdFxuICAgIGF3YWl0IHRoaXMuYXBwbHlUaGVtZVNldHRpbmdzKGFwcC5zZXR0aW5ncy5zZXJ2ZXJUaGVtZVNldHRpbmdzKTtcblxuICAgIGlmICh0aGVtZSkge1xuICAgICAgLy8gTWFudWFsbHkgdHJhY2tzIHRoZW1lIHVwZGF0ZSBkdXJpbmcgaW5pdGlhbGl6YXRpb24gYXMgZXhlY3V0aW9uIG9mIHVwZGF0ZVRoZW1lU2V0dGluZ3MgZm9yIGNvbnNpc3RlbmN5LlxuICAgICAgdHJhY2soJ3Nka0FuZ3VsYXJTZXJ2aWNlTWV0aG9kRXhlY3V0ZWQnLCAnVGhlbWVTZXJ2aWNlLnVwZGF0ZVRoZW1lU2V0dGluZ3MnKTtcbiAgICAgIGF3YWl0IHRoaXMuYXBwbHlUaGVtZVNldHRpbmdzKHRoZW1lKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFwcGx5VGhlbWVTZXR0aW5ncyh0aGVtZTogc3RyaW5nIHwgVGhlbWVTZXR0aW5ncykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBhcHAgPSBhd2FpdCB0aGlzLnNpc2Vuc2VDb250ZXh0U2VydmljZS5nZXRBcHAoKTtcbiAgICAgIGNvbnN0IGlzVGhlbWVPaWQgPSB0eXBlb2YgdGhlbWUgPT09ICdzdHJpbmcnO1xuICAgICAgbGV0IHVzZXJUaGVtZVNldHRpbmdzID0gdGhlbWUgYXMgVGhlbWVTZXR0aW5ncztcblxuICAgICAgaWYgKGlzVGhlbWVPaWQpIHtcbiAgICAgICAgdXNlclRoZW1lU2V0dGluZ3MgPSBhd2FpdCBnZXRUaGVtZVNldHRpbmdzQnlPaWQodGhlbWUsIGFwcC5odHRwQ2xpZW50KTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWVyZ2VkVGhlbWVTZXR0aW5ncyA9IG1lcmdlLndpdGhPcHRpb25zKFxuICAgICAgICB7IG1lcmdlQXJyYXlzOiBmYWxzZSB9LFxuICAgICAgICB0aGlzLnRoZW1lU2V0dGluZ3MkLnZhbHVlLFxuICAgICAgICB1c2VyVGhlbWVTZXR0aW5ncyxcbiAgICAgICkgYXMgQ29tcGxldGVUaGVtZVNldHRpbmdzO1xuXG4gICAgICB0aGlzLnRoZW1lU2V0dGluZ3MkLm5leHQobWVyZ2VkVGhlbWVTZXR0aW5ncyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMudGhlbWVTZXR0aW5ncyQuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZ2V0VGhlbWVTZXR0aW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy50aGVtZVNldHRpbmdzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVRoZW1lU2V0dGluZ3ModGhlbWU6IHN0cmluZyB8IFRoZW1lU2V0dGluZ3MpIHtcbiAgICBhd2FpdCB0aGlzLmluaXRpYWxpemF0aW9uUHJvbWlzZTtcbiAgICBhd2FpdCB0aGlzLmFwcGx5VGhlbWVTZXR0aW5ncyh0aGVtZSk7XG4gIH1cbn1cbiJdfQ==
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdGhlbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLHFCQUFxQixHQUV0QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUVqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQU01RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQWMscUJBQXFCLENBQUMsQ0FBQztBQUV6Rjs7Ozs7O0dBTUc7QUFLSSxJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFZO0lBS3ZCLFlBQ1UscUJBQTRDLEVBQ1osV0FBeUI7UUFEekQsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUg5QywwQkFBcUIsR0FBa0IsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBTS9ELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxlQUFlLENBQXdCLHVCQUF1QixFQUFFLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMscUJBQXFCO2FBQ3ZCLE9BQU8sRUFBRTtZQUNWLHlCQUF5QjthQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2QsOEJBQThCO2FBQzdCLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtnQkFDaEIsSUFBSSxHQUFHLEVBQUU7b0JBQ1AsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7aUJBQ3hGO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBMkI7UUFDekQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFdEQsb0NBQW9DO1FBQ3BDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVoRSxJQUFJLEtBQUssRUFBRTtZQUNULDBHQUEwRztZQUMxRyxLQUFLLENBQUMsaUNBQWlDLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztZQUM3RSxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBNkI7UUFDNUQsSUFBSTtZQUNGLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RELE1BQU0sVUFBVSxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztZQUM3QyxJQUFJLGlCQUFpQixHQUFHLEtBQXNCLENBQUM7WUFFL0MsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsaUJBQWlCLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3hFO1lBRUQsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUMzQyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsRUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQ3pCLGlCQUFpQixDQUNPLENBQUM7WUFFM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUMvQztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEtBQTZCO1FBQ3JELE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBQ2pDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OzBHQXBFVSxZQUFZLHVEQU9ELGtCQUFrQjs4R0FQN0IsWUFBWSxjQUhYLE1BQU07QUFHUCxZQUFZO0lBRHhCLGdCQUFnQixDQUFlLENBQUMscUJBQXFCLENBQUMsQ0FBQztHQUMzQyxZQUFZLENBcUV4QjtTQXJFWSxZQUFZOzRGQUFaLFlBQVk7a0JBSnhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICB0eXBlIENvbXBsZXRlVGhlbWVTZXR0aW5ncyxcbiAgZ2V0RGVmYXVsdFRoZW1lU2V0dGluZ3MsXG4gIGdldFRoZW1lU2V0dGluZ3NCeU9pZCxcbiAgdHlwZSBUaGVtZVByb3ZpZGVyUHJvcHMgYXMgVGhlbWVDb25maWcsXG59IGZyb20gJ0BzaXNlbnNlL3Nkay11aS1wcmVhY3QnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBza2lwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgbWVyZ2UgZnJvbSAndHMtZGVlcG1lcmdlJztcblxuaW1wb3J0IHsgdHJhY2ssIFRyYWNrYWJsZVNlcnZpY2UgfSBmcm9tICcuLi9kZWNvcmF0b3JzL3RyYWNrYWJsZS5kZWNvcmF0b3InO1xuaW1wb3J0IHsgdHlwZSBUaGVtZVNldHRpbmdzIH0gZnJvbSAnLi4vc2RrLXVpLWNvcmUtZXhwb3J0cyc7XG5pbXBvcnQgeyBTaXNlbnNlQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL3Npc2Vuc2UtY29udGV4dC5zZXJ2aWNlJztcblxuZXhwb3J0IHsgdHlwZSBUaGVtZUNvbmZpZyB9O1xuXG4vKipcbiAqIFRva2VuIHVzZWQgdG8gaW5qZWN0IHtAbGluayBUaGVtZUNvbmZpZ30gaW50byB5b3VyIGFwcGxpY2F0aW9uXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBFeGFtcGxlIG9mIGluamVjdGluZyBib3RoIHtAbGluayBTaXNlbnNlQ29udGV4dENvbmZpZ30gYW5kIHtAbGluayBUaGVtZUNvbmZpZ30gaW50byB5b3VyIGFwcGxpY2F0aW9uOlxuICpcbiAqIGBgYHRzXG4gKiBleHBvcnQgY29uc3QgU0lTRU5TRV9DT05URVhUX0NPTkZJRzogU2lzZW5zZUNvbnRleHRDb25maWcgPSB7XG4gKiAgIHVybDogXCI8aW5zdGFuY2UgdXJsPlwiLCAvLyByZXBsYWNlIHdpdGggdGhlIFVSTCBvZiB5b3VyIFNpc2Vuc2UgaW5zdGFuY2VcbiAqICAgdG9rZW46IFwiPGFwaSB0b2tlbj5cIiwgLy8gcmVwbGFjZSB3aXRoIHRoZSBBUEkgdG9rZW4gb2YgeW91ciB1c2VyIGFjY291bnRcbiAqICAgZGVmYXVsdERhdGFTb3VyY2U6IERNLkRhdGFTb3VyY2UsXG4gKiB9O1xuICpcbiAqIEBOZ01vZHVsZSh7XG4gKiAgIGltcG9ydHM6IFtcbiAqICAgICBCcm93c2VyTW9kdWxlLFxuICogICAgIFNka1VpTW9kdWxlLFxuICogICBdLFxuICogICBkZWNsYXJhdGlvbnM6IFtBcHBDb21wb25lbnRdLFxuICogICBwcm92aWRlcnM6IFtcbiAqICAgICB7IHByb3ZpZGU6IFNJU0VOU0VfQ09OVEVYVF9DT05GSUdfVE9LRU4sIHVzZVZhbHVlOiBTSVNFTlNFX0NPTlRFWFRfQ09ORklHIH0sXG4gKiAgICAge1xuICogICAgICAgcHJvdmlkZTogVEhFTUVfQ09ORklHX1RPS0VOLFxuICogICAgICAgdXNlVmFsdWU6IHtcbiAqICAgICAgICAgLy8gaW5pdGlhbCB0aGVtZSBzZXR0aW5nc1xuICogICAgICAgfSBhcyBUaGVtZUNvbmZpZyxcbiAqICAgICB9LFxuICogICBdLFxuICogICBib290c3RyYXA6IFtBcHBDb21wb25lbnRdLFxuICogfSlcbiAqIGBgYFxuICogQGdyb3VwIENvbnRleHRzXG4gKi9cbmV4cG9ydCBjb25zdCBUSEVNRV9DT05GSUdfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48VGhlbWVDb25maWc+KCd0aGVtZSBjb25maWd1cmF0aW9uJyk7XG5cbi8qKlxuICogU2VydmljZSBmb3Igd29ya2luZyB3aXRoIFNpc2Vuc2UgRnVzaW9uIHRoZW1lcy5cbiAqXG4gKiBJZiBubyB0aGVtZSBzZXJ2aWNlIGlzIHVzZWQsIHRoZSBjdXJyZW50IEZ1c2lvbiB0aGVtZSBpcyBhcHBsaWVkIGJ5IGRlZmF1bHQuXG4gKlxuICogQGdyb3VwIENvbnRleHRzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbkBUcmFja2FibGVTZXJ2aWNlPFRoZW1lU2VydmljZT4oWyd1cGRhdGVUaGVtZVNldHRpbmdzJ10pXG5leHBvcnQgY2xhc3MgVGhlbWVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0aGVtZVNldHRpbmdzJDogQmVoYXZpb3JTdWJqZWN0PENvbXBsZXRlVGhlbWVTZXR0aW5ncz47XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXphdGlvblByb21pc2U6IFByb21pc2U8dm9pZD4gPSBQcm9taXNlLnJlc29sdmUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNpc2Vuc2VDb250ZXh0U2VydmljZTogU2lzZW5zZUNvbnRleHRTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVEhFTUVfQ09ORklHX1RPS0VOKSB0aGVtZUNvbmZpZz86IFRoZW1lQ29uZmlnLFxuICApIHtcbiAgICB0aGlzLnRoZW1lU2V0dGluZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb21wbGV0ZVRoZW1lU2V0dGluZ3M+KGdldERlZmF1bHRUaGVtZVNldHRpbmdzKCkpO1xuICAgIHRoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlID0gdGhpcy5pbml0VGhlbWVTZXR0aW5ncyh0aGVtZUNvbmZpZz8udGhlbWUpO1xuICAgIHRoaXMuc2lzZW5zZUNvbnRleHRTZXJ2aWNlXG4gICAgICAuZ2V0QXBwJCgpXG4gICAgICAvLyBTa2lwIGN1cnJlbnQgYXBwIHZhbHVlXG4gICAgICAucGlwZShza2lwKDEpKVxuICAgICAgLy8gU3Vic2NyaWJlIHRvIG5ldyBhcHAgdmFsdWVzXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHsgYXBwIH0pID0+IHtcbiAgICAgICAgICBpZiAoYXBwKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemF0aW9uUHJvbWlzZSA9IHRoaXMuYXBwbHlUaGVtZVNldHRpbmdzKGFwcC5zZXR0aW5ncy5zZXJ2ZXJUaGVtZVNldHRpbmdzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaW5pdFRoZW1lU2V0dGluZ3ModGhlbWU6IFRoZW1lQ29uZmlnWyd0aGVtZSddKSB7XG4gICAgY29uc3QgYXBwID0gYXdhaXQgdGhpcy5zaXNlbnNlQ29udGV4dFNlcnZpY2UuZ2V0QXBwKCk7XG5cbiAgICAvLyBhcHBseSBzeXN0ZW0gdGhlbWUgc2V0dGluZ3MgZmlyc3RcbiAgICBhd2FpdCB0aGlzLmFwcGx5VGhlbWVTZXR0aW5ncyhhcHAuc2V0dGluZ3Muc2VydmVyVGhlbWVTZXR0aW5ncyk7XG5cbiAgICBpZiAodGhlbWUpIHtcbiAgICAgIC8vIE1hbnVhbGx5IHRyYWNrcyB0aGVtZSB1cGRhdGUgZHVyaW5nIGluaXRpYWxpemF0aW9uIGFzIGV4ZWN1dGlvbiBvZiB1cGRhdGVUaGVtZVNldHRpbmdzIGZvciBjb25zaXN0ZW5jeS5cbiAgICAgIHRyYWNrKCdzZGtBbmd1bGFyU2VydmljZU1ldGhvZEV4ZWN1dGVkJywgJ1RoZW1lU2VydmljZS51cGRhdGVUaGVtZVNldHRpbmdzJyk7XG4gICAgICBhd2FpdCB0aGlzLmFwcGx5VGhlbWVTZXR0aW5ncyh0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhcHBseVRoZW1lU2V0dGluZ3ModGhlbWU6IHN0cmluZyB8IFRoZW1lU2V0dGluZ3MpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYXBwID0gYXdhaXQgdGhpcy5zaXNlbnNlQ29udGV4dFNlcnZpY2UuZ2V0QXBwKCk7XG4gICAgICBjb25zdCBpc1RoZW1lT2lkID0gdHlwZW9mIHRoZW1lID09PSAnc3RyaW5nJztcbiAgICAgIGxldCB1c2VyVGhlbWVTZXR0aW5ncyA9IHRoZW1lIGFzIFRoZW1lU2V0dGluZ3M7XG5cbiAgICAgIGlmIChpc1RoZW1lT2lkKSB7XG4gICAgICAgIHVzZXJUaGVtZVNldHRpbmdzID0gYXdhaXQgZ2V0VGhlbWVTZXR0aW5nc0J5T2lkKHRoZW1lLCBhcHAuaHR0cENsaWVudCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1lcmdlZFRoZW1lU2V0dGluZ3MgPSBtZXJnZS53aXRoT3B0aW9ucyhcbiAgICAgICAgeyBtZXJnZUFycmF5czogZmFsc2UgfSxcbiAgICAgICAgdGhpcy50aGVtZVNldHRpbmdzJC52YWx1ZSxcbiAgICAgICAgdXNlclRoZW1lU2V0dGluZ3MsXG4gICAgICApIGFzIENvbXBsZXRlVGhlbWVTZXR0aW5ncztcblxuICAgICAgdGhpcy50aGVtZVNldHRpbmdzJC5uZXh0KG1lcmdlZFRoZW1lU2V0dGluZ3MpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLnRoZW1lU2V0dGluZ3MkLmVycm9yKGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGdldFRoZW1lU2V0dGluZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMudGhlbWVTZXR0aW5ncyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVUaGVtZVNldHRpbmdzKHRoZW1lOiBzdHJpbmcgfCBUaGVtZVNldHRpbmdzKSB7XG4gICAgYXdhaXQgdGhpcy5pbml0aWFsaXphdGlvblByb21pc2U7XG4gICAgYXdhaXQgdGhpcy5hcHBseVRoZW1lU2V0dGluZ3ModGhlbWUpO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtZXZlbnQtcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3R5cGVzL2NoYXJ0LWV2ZW50LXByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERhdGEgfSBmcm9tICdAc2lzZW5zZS9zZGstZGF0YSc7XG5pbXBvcnQgdHlwZSB7IEJlZm9yZVJlbmRlckhhbmRsZXIsIEluZGljYXRvckJlZm9yZVJlbmRlckhhbmRsZXIgfSBmcm9tICdAc2lzZW5zZS9zZGstdWktcHJlYWN0JztcblxuaW1wb3J0IHR5cGUge1xuICBBcmVhbWFwRGF0YVBvaW50RXZlbnRIYW5kbGVyLFxuICBCb3hwbG90RGF0YVBvaW50RXZlbnRIYW5kbGVyLFxuICBDaGFydERhdGFQb2ludENsaWNrRXZlbnRIYW5kbGVyLFxuICBDaGFydERhdGFQb2ludENvbnRleHRNZW51RXZlbnRIYW5kbGVyLFxuICBDaGFydERhdGFQb2ludHNFdmVudEhhbmRsZXIsXG4gIERhdGFQb2ludEV2ZW50SGFuZGxlcixcbiAgRGF0YVBvaW50c0V2ZW50SGFuZGxlcixcbiAgSW5kaWNhdG9yRGF0YVBvaW50RXZlbnRIYW5kbGVyLFxuICBTY2F0dGVyRGF0YVBvaW50RXZlbnRIYW5kbGVyLFxuICBTY2F0dGVyRGF0YVBvaW50c0V2ZW50SGFuZGxlcixcbiAgU2NhdHRlcm1hcERhdGFQb2ludEV2ZW50SGFuZGxlcixcbn0gZnJvbSAnLi9kYXRhLXBvaW50JztcblxuZXhwb3J0IGludGVyZmFjZSBIaWdoY2hhcnRzQmFzZWRDaGFydEV2ZW50UHJvcHMge1xuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFDaGFydFByb3BzLm9uQmVmb3JlUmVuZGVyfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBiZWZvcmVSZW5kZXI/OiBCZWZvcmVSZW5kZXJIYW5kbGVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VDaGFydEV2ZW50UHJvcHMge1xuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFDaGFydFByb3BzLm9uRGF0YVJlYWR5fVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBkYXRhUmVhZHk/OiAoZGF0YTogRGF0YSkgPT4gRGF0YTtcbn1cblxuLyoqXG4gKiBFdmVudCBwcm9wcyBmb3IgcmVndWxhciAobm9uLXNwZWNpZmljKSBjaGFydHMgd2hpY2ggdXNlcyBEYXRhUG9pbnQgdHlwZVxuICogdG8gZGVzY3JpYmUgZGF0YSBwb2ludHMgZm9yIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWd1bGFyQ2hhcnRFdmVudFByb3BzXG4gIGV4dGVuZHMgQmFzZUNoYXJ0RXZlbnRQcm9wcyxcbiAgICBIaWdoY2hhcnRzQmFzZWRDaGFydEV2ZW50UHJvcHMge1xuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFDaGFydFByb3BzLm9uRGF0YVBvaW50Q2xpY2t9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIGRhdGFQb2ludENsaWNrPzogRGF0YVBvaW50RXZlbnRIYW5kbGVyO1xuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFDaGFydFByb3BzLm9uRGF0YVBvaW50Q29udGV4dE1lbnV9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIGRhdGFQb2ludENvbnRleHRNZW51PzogRGF0YVBvaW50RXZlbnRIYW5kbGVyO1xuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFDaGFydFByb3BzLm9uRGF0YVBvaW50c1NlbGVjdGVkfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBkYXRhUG9pbnRzU2VsZWN0PzogRGF0YVBvaW50c0V2ZW50SGFuZGxlcjtcbn1cblxuLyoqXG4gKiBFdmVudCBwcm9wcyBmb3IgU2NhdHRlciBjaGFydCB3aGljaCB1c2VzIFNjYXR0ZXJEYXRhUG9pbnQgdHlwZVxuICogdG8gZGVzY3JpYmUgZGF0YSBwb2ludHMgZm9yIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2F0dGVyQ2hhcnRFdmVudFByb3BzXG4gIGV4dGVuZHMgQmFzZUNoYXJ0RXZlbnRQcm9wcyxcbiAgICBIaWdoY2hhcnRzQmFzZWRDaGFydEV2ZW50UHJvcHMge1xuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFTY2F0dGVyQ2hhcnRQcm9wcy5vbkRhdGFQb2ludENsaWNrfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBkYXRhUG9pbnRDbGljaz86IFNjYXR0ZXJEYXRhUG9pbnRFdmVudEhhbmRsZXI7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVNjYXR0ZXJDaGFydFByb3BzLm9uRGF0YVBvaW50Q29udGV4dE1lbnV9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIGRhdGFQb2ludENvbnRleHRNZW51PzogU2NhdHRlckRhdGFQb2ludEV2ZW50SGFuZGxlcjtcbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhU2NhdHRlckNoYXJ0UHJvcHMub25EYXRhUG9pbnRzU2VsZWN0ZWR9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIGRhdGFQb2ludHNTZWxlY3Q/OiBTY2F0dGVyRGF0YVBvaW50c0V2ZW50SGFuZGxlcjtcbn1cblxuLyoqXG4gKiBFdmVudCBwcm9wcyBmb3IgQXJlYW1hcCBjaGFydCB3aGljaCB1c2VzIEFyZWFtYXBEYXRhUG9pbnQgdHlwZVxuICogdG8gZGVzY3JpYmUgZGF0YSBwb2ludHMgZm9yIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcmVhbWFwQ2hhcnRFdmVudFByb3BzIGV4dGVuZHMgQmFzZUNoYXJ0RXZlbnRQcm9wcyB7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIUFyZWFtYXBDaGFydFByb3BzLm9uRGF0YVBvaW50Q2xpY2t9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIGRhdGFQb2ludENsaWNrPzogQXJlYW1hcERhdGFQb2ludEV2ZW50SGFuZGxlcjtcbn1cblxuLyoqXG4gKiBFdmVudCBwcm9wcyBmb3IgU2NhdHRlcm1hcCBjaGFydCB3aGljaCB1c2VzIFNjYXR0ZXJtYXBEYXRhUG9pbnQgdHlwZVxuICogdG8gZGVzY3JpYmUgZGF0YSBwb2ludHMgZm9yIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2F0dGVybWFwQ2hhcnRFdmVudFByb3BzIGV4dGVuZHMgQmFzZUNoYXJ0RXZlbnRQcm9wcyB7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVNjYXR0ZXJtYXBDaGFydFByb3BzLm9uRGF0YVBvaW50Q2xpY2t9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIGRhdGFQb2ludENsaWNrPzogU2NhdHRlcm1hcERhdGFQb2ludEV2ZW50SGFuZGxlcjtcbn1cblxuLyoqXG4gKiBFdmVudCBwcm9wcyBmb3IgQm94cGxvdCBjaGFydCB3aGljaCB1c2VzIEJveHBsb3REYXRhUG9pbnQgdHlwZVxuICogdG8gZGVzY3JpYmUgZGF0YSBwb2ludHMgZm9yIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCb3hwbG90Q2hhcnRFdmVudFByb3BzXG4gIGV4dGVuZHMgQmFzZUNoYXJ0RXZlbnRQcm9wcyxcbiAgICBIaWdoY2hhcnRzQmFzZWRDaGFydEV2ZW50UHJvcHMge1xuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFCb3hwbG90Q2hhcnRQcm9wcy5vbkRhdGFQb2ludENsaWNrfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBkYXRhUG9pbnRDbGljaz86IEJveHBsb3REYXRhUG9pbnRFdmVudEhhbmRsZXI7XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhQm94cGxvdENoYXJ0UHJvcHMub25EYXRhUG9pbnRDb250ZXh0TWVudX1cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgZGF0YVBvaW50Q29udGV4dE1lbnU/OiBCb3hwbG90RGF0YVBvaW50RXZlbnRIYW5kbGVyO1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIUJveHBsb3RDaGFydFByb3BzLm9uRGF0YVBvaW50c1NlbGVjdGVkfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBkYXRhUG9pbnRzU2VsZWN0PzogRGF0YVBvaW50c0V2ZW50SGFuZGxlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRpY2F0b3JDaGFydEV2ZW50UHJvcHMgZXh0ZW5kcyBCYXNlQ2hhcnRFdmVudFByb3BzIHtcbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhSW5kaWNhdG9yQ2hhcnRQcm9wcy5vbkJlZm9yZVJlbmRlcn1cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgYmVmb3JlUmVuZGVyPzogSW5kaWNhdG9yQmVmb3JlUmVuZGVySGFuZGxlcjtcbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhSW5kaWNhdG9yQ2hhcnRQcm9wcy5vbkRhdGFQb2ludENsaWNrfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZGF0YVBvaW50Q2xpY2s/OiBJbmRpY2F0b3JEYXRhUG9pbnRFdmVudEhhbmRsZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcnRFdmVudFByb3BzIGV4dGVuZHMgQmFzZUNoYXJ0RXZlbnRQcm9wcyB7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIUNoYXJ0UHJvcHMub25EYXRhUG9pbnRDbGlja31cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgZGF0YVBvaW50Q2xpY2s/OiBDaGFydERhdGFQb2ludENsaWNrRXZlbnRIYW5kbGVyO1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIUNoYXJ0UHJvcHMub25EYXRhUG9pbnRDb250ZXh0TWVudX1cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgZGF0YVBvaW50Q29udGV4dE1lbnU/OiBDaGFydERhdGFQb2ludENvbnRleHRNZW51RXZlbnRIYW5kbGVyO1xuXG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIUNoYXJ0UHJvcHMub25EYXRhUG9pbnRzU2VsZWN0ZWR9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIGRhdGFQb2ludHNTZWxlY3Q/OiBDaGFydERhdGFQb2ludHNFdmVudEhhbmRsZXI7XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhQ2hhcnRQcm9wcy5vbkJlZm9yZVJlbmRlcn1cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgYmVmb3JlUmVuZGVyPzpcbiAgICB8IEhpZ2hjaGFydHNCYXNlZENoYXJ0RXZlbnRQcm9wc1snYmVmb3JlUmVuZGVyJ11cbiAgICB8IEluZGljYXRvckNoYXJ0RXZlbnRQcm9wc1snYmVmb3JlUmVuZGVyJ107XG59XG5cbmV4cG9ydCB0eXBlIFdpdGhvdXRQcmVhY3RDaGFydEV2ZW50UHJvcHM8VD4gPSBPbWl0PFxuICBULFxuICB8ICdvbkJlZm9yZVJlbmRlcidcbiAgfCAnb25EYXRhUmVhZHknXG4gIHwgJ29uRGF0YVBvaW50Q2xpY2snXG4gIHwgJ29uRGF0YVBvaW50Q29udGV4dE1lbnUnXG4gIHwgJ29uRGF0YVBvaW50c1NlbGVjdGVkJ1xuPjtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtZXZlbnQtcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3R5cGVzL2NoYXJ0LWV2ZW50LXByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERhdGEgfSBmcm9tICdAc2lzZW5zZS9zZGstZGF0YSc7XG5pbXBvcnQgdHlwZSB7IEJlZm9yZVJlbmRlckhhbmRsZXIsIEluZGljYXRvckJlZm9yZVJlbmRlckhhbmRsZXIgfSBmcm9tICdAc2lzZW5zZS9zZGstdWktcHJlYWN0JztcblxuaW1wb3J0IHR5cGUge1xuICBBcmVhbWFwRGF0YVBvaW50RXZlbnRIYW5kbGVyLFxuICBCb3hwbG90RGF0YVBvaW50RXZlbnRIYW5kbGVyLFxuICBDYWxlbmRhckhlYXRtYXBEYXRhUG9pbnRFdmVudEhhbmRsZXIsXG4gIENhbGVuZGFySGVhdG1hcERhdGFQb2ludHNFdmVudEhhbmRsZXIsXG4gIENoYXJ0RGF0YVBvaW50Q2xpY2tFdmVudEhhbmRsZXIsXG4gIENoYXJ0RGF0YVBvaW50Q29udGV4dE1lbnVFdmVudEhhbmRsZXIsXG4gIENoYXJ0RGF0YVBvaW50c0V2ZW50SGFuZGxlcixcbiAgRGF0YVBvaW50RXZlbnRIYW5kbGVyLFxuICBEYXRhUG9pbnRzRXZlbnRIYW5kbGVyLFxuICBJbmRpY2F0b3JEYXRhUG9pbnRFdmVudEhhbmRsZXIsXG4gIFNjYXR0ZXJEYXRhUG9pbnRFdmVudEhhbmRsZXIsXG4gIFNjYXR0ZXJEYXRhUG9pbnRzRXZlbnRIYW5kbGVyLFxuICBTY2F0dGVybWFwRGF0YVBvaW50RXZlbnRIYW5kbGVyLFxufSBmcm9tICcuL2RhdGEtcG9pbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhpZ2hjaGFydHNCYXNlZENoYXJ0RXZlbnRQcm9wcyB7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIUNoYXJ0UHJvcHMub25CZWZvcmVSZW5kZXJ9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIGJlZm9yZVJlbmRlcj86IEJlZm9yZVJlbmRlckhhbmRsZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUNoYXJ0RXZlbnRQcm9wcyB7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIUNoYXJ0UHJvcHMub25EYXRhUmVhZHl9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIGRhdGFSZWFkeT86IChkYXRhOiBEYXRhKSA9PiBEYXRhO1xufVxuXG4vKipcbiAqIEV2ZW50IHByb3BzIGZvciByZWd1bGFyIChub24tc3BlY2lmaWMpIGNoYXJ0cyB3aGljaCB1c2VzIERhdGFQb2ludCB0eXBlXG4gKiB0byBkZXNjcmliZSBkYXRhIHBvaW50cyBmb3IgZXZlbnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ3VsYXJDaGFydEV2ZW50UHJvcHNcbiAgZXh0ZW5kcyBCYXNlQ2hhcnRFdmVudFByb3BzLFxuICAgIEhpZ2hjaGFydHNCYXNlZENoYXJ0RXZlbnRQcm9wcyB7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIUNoYXJ0UHJvcHMub25EYXRhUG9pbnRDbGlja31cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgZGF0YVBvaW50Q2xpY2s/OiBEYXRhUG9pbnRFdmVudEhhbmRsZXI7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIUNoYXJ0UHJvcHMub25EYXRhUG9pbnRDb250ZXh0TWVudX1cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgZGF0YVBvaW50Q29udGV4dE1lbnU/OiBEYXRhUG9pbnRFdmVudEhhbmRsZXI7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIUNoYXJ0UHJvcHMub25EYXRhUG9pbnRzU2VsZWN0ZWR9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIGRhdGFQb2ludHNTZWxlY3Q/OiBEYXRhUG9pbnRzRXZlbnRIYW5kbGVyO1xufVxuXG4vKipcbiAqIEV2ZW50IHByb3BzIGZvciBTY2F0dGVyIGNoYXJ0IHdoaWNoIHVzZXMgU2NhdHRlckRhdGFQb2ludCB0eXBlXG4gKiB0byBkZXNjcmliZSBkYXRhIHBvaW50cyBmb3IgZXZlbnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjYXR0ZXJDaGFydEV2ZW50UHJvcHNcbiAgZXh0ZW5kcyBCYXNlQ2hhcnRFdmVudFByb3BzLFxuICAgIEhpZ2hjaGFydHNCYXNlZENoYXJ0RXZlbnRQcm9wcyB7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVNjYXR0ZXJDaGFydFByb3BzLm9uRGF0YVBvaW50Q2xpY2t9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIGRhdGFQb2ludENsaWNrPzogU2NhdHRlckRhdGFQb2ludEV2ZW50SGFuZGxlcjtcbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhU2NhdHRlckNoYXJ0UHJvcHMub25EYXRhUG9pbnRDb250ZXh0TWVudX1cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgZGF0YVBvaW50Q29udGV4dE1lbnU/OiBTY2F0dGVyRGF0YVBvaW50RXZlbnRIYW5kbGVyO1xuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFTY2F0dGVyQ2hhcnRQcm9wcy5vbkRhdGFQb2ludHNTZWxlY3RlZH1cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgZGF0YVBvaW50c1NlbGVjdD86IFNjYXR0ZXJEYXRhUG9pbnRzRXZlbnRIYW5kbGVyO1xufVxuXG4vKipcbiAqIEV2ZW50IHByb3BzIGZvciBBcmVhbWFwIGNoYXJ0IHdoaWNoIHVzZXMgQXJlYW1hcERhdGFQb2ludCB0eXBlXG4gKiB0byBkZXNjcmliZSBkYXRhIHBvaW50cyBmb3IgZXZlbnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFyZWFtYXBDaGFydEV2ZW50UHJvcHMgZXh0ZW5kcyBCYXNlQ2hhcnRFdmVudFByb3BzIHtcbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhQXJlYW1hcENoYXJ0UHJvcHMub25EYXRhUG9pbnRDbGlja31cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgZGF0YVBvaW50Q2xpY2s/OiBBcmVhbWFwRGF0YVBvaW50RXZlbnRIYW5kbGVyO1xufVxuXG4vKipcbiAqIEV2ZW50IHByb3BzIGZvciBTY2F0dGVybWFwIGNoYXJ0IHdoaWNoIHVzZXMgU2NhdHRlcm1hcERhdGFQb2ludCB0eXBlXG4gKiB0byBkZXNjcmliZSBkYXRhIHBvaW50cyBmb3IgZXZlbnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjYXR0ZXJtYXBDaGFydEV2ZW50UHJvcHMgZXh0ZW5kcyBCYXNlQ2hhcnRFdmVudFByb3BzIHtcbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhU2NhdHRlcm1hcENoYXJ0UHJvcHMub25EYXRhUG9pbnRDbGlja31cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgZGF0YVBvaW50Q2xpY2s/OiBTY2F0dGVybWFwRGF0YVBvaW50RXZlbnRIYW5kbGVyO1xufVxuXG4vKipcbiAqIEV2ZW50IHByb3BzIGZvciBCb3hwbG90IGNoYXJ0IHdoaWNoIHVzZXMgQm94cGxvdERhdGFQb2ludCB0eXBlXG4gKiB0byBkZXNjcmliZSBkYXRhIHBvaW50cyBmb3IgZXZlbnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJveHBsb3RDaGFydEV2ZW50UHJvcHNcbiAgZXh0ZW5kcyBCYXNlQ2hhcnRFdmVudFByb3BzLFxuICAgIEhpZ2hjaGFydHNCYXNlZENoYXJ0RXZlbnRQcm9wcyB7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIUJveHBsb3RDaGFydFByb3BzLm9uRGF0YVBvaW50Q2xpY2t9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIGRhdGFQb2ludENsaWNrPzogQm94cGxvdERhdGFQb2ludEV2ZW50SGFuZGxlcjtcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFCb3hwbG90Q2hhcnRQcm9wcy5vbkRhdGFQb2ludENvbnRleHRNZW51fVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBkYXRhUG9pbnRDb250ZXh0TWVudT86IEJveHBsb3REYXRhUG9pbnRFdmVudEhhbmRsZXI7XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhQm94cGxvdENoYXJ0UHJvcHMub25EYXRhUG9pbnRzU2VsZWN0ZWR9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICovXG4gIGRhdGFQb2ludHNTZWxlY3Q/OiBEYXRhUG9pbnRzRXZlbnRIYW5kbGVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZGljYXRvckNoYXJ0RXZlbnRQcm9wcyBleHRlbmRzIEJhc2VDaGFydEV2ZW50UHJvcHMge1xuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFJbmRpY2F0b3JDaGFydFByb3BzLm9uQmVmb3JlUmVuZGVyfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBiZWZvcmVSZW5kZXI/OiBJbmRpY2F0b3JCZWZvcmVSZW5kZXJIYW5kbGVyO1xuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFJbmRpY2F0b3JDaGFydFByb3BzLm9uRGF0YVBvaW50Q2xpY2t9XG4gICAqXG4gICAqIEBjYXRlZ29yeSBDYWxsYmFja3NcbiAgICogQGludGVybmFsXG4gICAqL1xuICBkYXRhUG9pbnRDbGljaz86IEluZGljYXRvckRhdGFQb2ludEV2ZW50SGFuZGxlcjtcbn1cblxuLyoqXG4gKiBFdmVudCBwcm9wcyBmb3IgQ2FsZW5kYXJIZWF0bWFwIGNoYXJ0IHdoaWNoIHVzZXMgQ2FsZW5kYXJIZWF0bWFwRGF0YVBvaW50IHR5cGVcbiAqIHRvIGRlc2NyaWJlIGRhdGEgcG9pbnRzIGZvciBldmVudHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJIZWF0bWFwQ2hhcnRFdmVudFByb3BzXG4gIGV4dGVuZHMgQmFzZUNoYXJ0RXZlbnRQcm9wcyxcbiAgICBIaWdoY2hhcnRzQmFzZWRDaGFydEV2ZW50UHJvcHMge1xuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFTY2F0dGVyQ2hhcnRQcm9wcy5vbkRhdGFQb2ludENsaWNrfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBkYXRhUG9pbnRDbGljaz86IENhbGVuZGFySGVhdG1hcERhdGFQb2ludEV2ZW50SGFuZGxlcjtcbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhU2NhdHRlckNoYXJ0UHJvcHMub25EYXRhUG9pbnRDb250ZXh0TWVudX1cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgZGF0YVBvaW50Q29udGV4dE1lbnU/OiBDYWxlbmRhckhlYXRtYXBEYXRhUG9pbnRFdmVudEhhbmRsZXI7XG4gIC8qKlxuICAgKiB7QGluaGVyaXREb2MgQHNpc2Vuc2Uvc2RrLXVpIVNjYXR0ZXJDaGFydFByb3BzLm9uRGF0YVBvaW50c1NlbGVjdGVkfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBkYXRhUG9pbnRzU2VsZWN0PzogQ2FsZW5kYXJIZWF0bWFwRGF0YVBvaW50c0V2ZW50SGFuZGxlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFydEV2ZW50UHJvcHMgZXh0ZW5kcyBCYXNlQ2hhcnRFdmVudFByb3BzIHtcbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhQ2hhcnRQcm9wcy5vbkRhdGFQb2ludENsaWNrfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBkYXRhUG9pbnRDbGljaz86IENoYXJ0RGF0YVBvaW50Q2xpY2tFdmVudEhhbmRsZXI7XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhQ2hhcnRQcm9wcy5vbkRhdGFQb2ludENvbnRleHRNZW51fVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBkYXRhUG9pbnRDb250ZXh0TWVudT86IENoYXJ0RGF0YVBvaW50Q29udGV4dE1lbnVFdmVudEhhbmRsZXI7XG5cbiAgLyoqXG4gICAqIHtAaW5oZXJpdERvYyBAc2lzZW5zZS9zZGstdWkhQ2hhcnRQcm9wcy5vbkRhdGFQb2ludHNTZWxlY3RlZH1cbiAgICpcbiAgICogQGNhdGVnb3J5IENhbGxiYWNrc1xuICAgKi9cbiAgZGF0YVBvaW50c1NlbGVjdD86IENoYXJ0RGF0YVBvaW50c0V2ZW50SGFuZGxlcjtcblxuICAvKipcbiAgICoge0Bpbmhlcml0RG9jIEBzaXNlbnNlL3Nkay11aSFDaGFydFByb3BzLm9uQmVmb3JlUmVuZGVyfVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ2FsbGJhY2tzXG4gICAqL1xuICBiZWZvcmVSZW5kZXI/OlxuICAgIHwgSGlnaGNoYXJ0c0Jhc2VkQ2hhcnRFdmVudFByb3BzWydiZWZvcmVSZW5kZXInXVxuICAgIHwgSW5kaWNhdG9yQ2hhcnRFdmVudFByb3BzWydiZWZvcmVSZW5kZXInXTtcbn1cblxuZXhwb3J0IHR5cGUgV2l0aG91dFByZWFjdENoYXJ0RXZlbnRQcm9wczxUPiA9IE9taXQ8XG4gIFQsXG4gIHwgJ29uQmVmb3JlUmVuZGVyJ1xuICB8ICdvbkRhdGFSZWFkeSdcbiAgfCAnb25EYXRhUG9pbnRDbGljaydcbiAgfCAnb25EYXRhUG9pbnRDb250ZXh0TWVudSdcbiAgfCAnb25EYXRhUG9pbnRzU2VsZWN0ZWQnXG4+O1xuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHlwZXMvZGF0YS1wb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXJlYW1hcERhdGFQb2ludCxcbiAgQm94cGxvdERhdGFQb2ludCxcbiAgRGF0YVBvaW50LFxuICBJbmRpY2F0b3JEYXRhUG9pbnQsXG4gIFNjYXR0ZXJEYXRhUG9pbnQsXG4gIFNjYXR0ZXJtYXBEYXRhUG9pbnQsXG4gIFRleHRXaWRnZXREYXRhUG9pbnQsXG59IGZyb20gJ0BzaXNlbnNlL3Nkay11aS1wcmVhY3QnO1xuXG5leHBvcnQgdHlwZSBEYXRhUG9pbnRFdmVudCA9IHtcbiAgLyoqIERhdGEgcG9pbnQgdGhhdCB3YXMgY2xpY2tlZCAqL1xuICBwb2ludDogRGF0YVBvaW50O1xuICAvKiogTmF0aXZlIFBvaW50ZXJFdmVudCAqL1xuICBuYXRpdmVFdmVudDogUG9pbnRlckV2ZW50O1xufTtcblxuZXhwb3J0IHR5cGUgU2NhdHRlckRhdGFQb2ludEV2ZW50ID0ge1xuICAvKiogRGF0YSBwb2ludCB0aGF0IHdhcyBjbGlja2VkICovXG4gIHBvaW50OiBTY2F0dGVyRGF0YVBvaW50O1xuICAvKiogTmF0aXZlIFBvaW50ZXJFdmVudCAqL1xuICBuYXRpdmVFdmVudDogUG9pbnRlckV2ZW50O1xufTtcblxuZXhwb3J0IHR5cGUgQXJlYW1hcERhdGFQb2ludEV2ZW50ID0ge1xuICAvKiogRGF0YSBwb2ludCB0aGF0IHdhcyBjbGlja2VkICovXG4gIHBvaW50OiBBcmVhbWFwRGF0YVBvaW50O1xuICAvKiogTmF0aXZlIE1vdXNlRXZlbnQgKi9cbiAgbmF0aXZlRXZlbnQ6IE1vdXNlRXZlbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBTY2F0dGVybWFwRGF0YVBvaW50RXZlbnQgPSB7XG4gIC8qKiBEYXRhIHBvaW50IHRoYXQgd2FzIGNsaWNrZWQgKi9cbiAgcG9pbnQ6IFNjYXR0ZXJtYXBEYXRhUG9pbnQ7XG4gIC8qKiBOYXRpdmUgTW91c2VFdmVudCAqL1xuICBuYXRpdmVFdmVudDogTW91c2VFdmVudDtcbn07XG5cbmV4cG9ydCB0eXBlIEJveHBsb3REYXRhUG9pbnRFdmVudCA9IHtcbiAgLyoqIERhdGEgcG9pbnQgdGhhdCB3YXMgY2xpY2tlZCAqL1xuICBwb2ludDogQm94cGxvdERhdGFQb2ludDtcbiAgLyoqIE5hdGl2ZSBQb2ludGVyRXZlbnQgKi9cbiAgbmF0aXZlRXZlbnQ6IFBvaW50ZXJFdmVudDtcbn07XG5cbmV4cG9ydCB0eXBlIEluZGljYXRvckRhdGFQb2ludEV2ZW50ID0ge1xuICAvKiogRGF0YSBwb2ludCB0aGF0IHdhcyBjbGlja2VkICovXG4gIHBvaW50OiBJbmRpY2F0b3JEYXRhUG9pbnQ7XG4gIC8qKiBOYXRpdmUgTW91c2VFdmVudCAqL1xuICBuYXRpdmVFdmVudDogTW91c2VFdmVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFRleHRXaWRnZXREYXRhUG9pbnRFdmVudCA9IHtcbiAgLyoqIERhdGEgcG9pbnQgdGhhdCB3YXMgY2xpY2tlZCAqL1xuICBwb2ludDogVGV4dFdpZGdldERhdGFQb2ludDtcbiAgLyoqIE5hdGl2ZSBNb3VzZUV2ZW50ICovXG4gIG5hdGl2ZUV2ZW50OiBNb3VzZUV2ZW50O1xufTtcblxuZXhwb3J0IHR5cGUgQ2hhcnREYXRhUG9pbnRDbGlja0V2ZW50ID1cbiAgfCBEYXRhUG9pbnRFdmVudFxuICB8IFNjYXR0ZXJEYXRhUG9pbnRFdmVudFxuICB8IEJveHBsb3REYXRhUG9pbnRFdmVudFxuICB8IEFyZWFtYXBEYXRhUG9pbnRFdmVudFxuICB8IFNjYXR0ZXJtYXBEYXRhUG9pbnRFdmVudFxuICB8IEluZGljYXRvckRhdGFQb2ludEV2ZW50O1xuXG5leHBvcnQgdHlwZSBXaWRnZXREYXRhUG9pbnRDbGlja0V2ZW50ID0gQ2hhcnREYXRhUG9pbnRDbGlja0V2ZW50IHwgVGV4dFdpZGdldERhdGFQb2ludEV2ZW50O1xuXG5leHBvcnQgdHlwZSBDaGFydERhdGFQb2ludENvbnRleHRNZW51RXZlbnQgPVxuICB8IERhdGFQb2ludEV2ZW50XG4gIHwgU2NhdHRlckRhdGFQb2ludEV2ZW50XG4gIHwgQm94cGxvdERhdGFQb2ludEV2ZW50O1xuXG5leHBvcnQgdHlwZSBEYXRhUG9pbnRzRXZlbnQgPSB7XG4gIC8qKiBEYXRhIHBvaW50cyB0aGF0IHdlcmUgc2VsZWN0ZWQgKi9cbiAgcG9pbnRzOiBEYXRhUG9pbnRbXTtcbiAgLyoqIE5hdGl2ZSBNb3VzZUV2ZW50ICovXG4gIG5hdGl2ZUV2ZW50OiBNb3VzZUV2ZW50O1xufTtcblxuZXhwb3J0IHR5cGUgU2NhdHRlckRhdGFQb2ludHNFdmVudCA9IHtcbiAgLyoqIERhdGEgcG9pbnRzIHRoYXQgd2VyZSBzZWxlY3RlZCAqL1xuICBwb2ludHM6IFNjYXR0ZXJEYXRhUG9pbnRbXTtcbiAgLyoqIE5hdGl2ZSBNb3VzZUV2ZW50ICovXG4gIG5hdGl2ZUV2ZW50OiBNb3VzZUV2ZW50O1xufTtcblxuZXhwb3J0IHR5cGUgQm94cGxvdERhdGFQb2ludHNFdmVudCA9IHtcbiAgLyoqIERhdGEgcG9pbnQgdGhhdCB3ZXJlIHNlbGVjdGVkICovXG4gIHBvaW50czogQm94cGxvdERhdGFQb2ludFtdO1xuICAvKiogTmF0aXZlIE1vdXNlRXZlbnQgKi9cbiAgbmF0aXZlRXZlbnQ6IE1vdXNlRXZlbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBDaGFydERhdGFQb2ludHNFdmVudCA9IERhdGFQb2ludHNFdmVudCB8IFNjYXR0ZXJEYXRhUG9pbnRzRXZlbnQ7XG5cbi8qKlxuICogQSBoYW5kbGVyIGZ1bmN0aW9uIHRoYXQgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgd2hhdCBoYXBwZW5zIHdoZW4gY2VydGFpbiBldmVudHMgb2NjdXIgdG9cbiAqIGEgZGF0YSBwb2ludC5cbiAqL1xuZXhwb3J0IHR5cGUgRGF0YVBvaW50RXZlbnRIYW5kbGVyID0gKGV2ZW50OiBEYXRhUG9pbnRFdmVudCkgPT4gdm9pZDtcblxuLyoqIENsaWNrIGhhbmRsZXIgZm9yIHdoZW4gYSBzY2F0dGVyIGRhdGEgcG9pbnQgaXMgY2xpY2tlZCAqL1xuZXhwb3J0IHR5cGUgU2NhdHRlckRhdGFQb2ludEV2ZW50SGFuZGxlciA9IChldmVudDogU2NhdHRlckRhdGFQb2ludEV2ZW50KSA9PiB2b2lkO1xuXG4vKipcbiAqIENsaWNrIGhhbmRsZXIgZm9yIHdoZW4gYSBkYXRhIHBvaW50IG9uIEFyZWFtYXAgaXMgY2xpY2tlZC5cbiAqL1xuZXhwb3J0IHR5cGUgQXJlYW1hcERhdGFQb2ludEV2ZW50SGFuZGxlciA9IChldmVudDogQXJlYW1hcERhdGFQb2ludEV2ZW50KSA9PiB2b2lkO1xuXG4vKipcbiAqIENsaWNrIGhhbmRsZXIgZm9yIHdoZW4gYSBkYXRhIHBvaW50IG9uIFNjYXR0ZXJtYXAgaXMgY2xpY2tlZC5cbiAqL1xuZXhwb3J0IHR5cGUgU2NhdHRlcm1hcERhdGFQb2ludEV2ZW50SGFuZGxlciA9IChldmVudDogU2NhdHRlcm1hcERhdGFQb2ludEV2ZW50KSA9PiB2b2lkO1xuXG4vKipcbiAqIENsaWNrIGhhbmRsZXIgZm9yIHdoZW4gYSBkYXRhIHBvaW50IG9uIEJveHBsb3QgaXMgY2xpY2tlZC5cbiAqL1xuZXhwb3J0IHR5cGUgQm94cGxvdERhdGFQb2ludEV2ZW50SGFuZGxlciA9IChldmVudDogQm94cGxvdERhdGFQb2ludEV2ZW50KSA9PiB2b2lkO1xuXG4vKiogQ2xpY2sgaGFuZGxlciBmb3Igd2hlbiBhIGRhdGEgcG9pbnQgb24gSW5kaWNhdG9yIGlzIGNsaWNrZWQuICovXG5leHBvcnQgdHlwZSBJbmRpY2F0b3JEYXRhUG9pbnRFdmVudEhhbmRsZXIgPSAoZXZlbnQ6IEluZGljYXRvckRhdGFQb2ludEV2ZW50KSA9PiB2b2lkO1xuXG4vKipcbiAqIENsaWNrIGhhbmRsZXIgZm9yIHdoZW4gYSBkYXRhIHBvaW50IG9uIENoYXJ0IGlzIGNsaWNrZWQuXG4gKi9cbmV4cG9ydCB0eXBlIENoYXJ0RGF0YVBvaW50Q2xpY2tFdmVudEhhbmRsZXIgPSAoZXZlbnQ6IENoYXJ0RGF0YVBvaW50Q2xpY2tFdmVudCkgPT4gdm9pZDtcblxuLyoqIENsaWNrIGhhbmRsZXIgZm9yIHdoZW4gYSBkYXRhIHBvaW50IG9uIFRleHRXaWRnZXQgaXMgY2xpY2tlZC4gKi9cbmV4cG9ydCB0eXBlIFRleHRXaWRnZXREYXRhUG9pbnRFdmVudEhhbmRsZXIgPSAoZXZlbnQ6IFRleHRXaWRnZXREYXRhUG9pbnRFdmVudCkgPT4gdm9pZDtcblxuLyoqIENsaWNrIGhhbmRsZXIgZm9yIHdoZW4gYSBkYXRhIHBvaW50IG9uIFdpZGdldCBpcyBjbGlja2VkLiAqL1xuZXhwb3J0IHR5cGUgV2lkZ2V0RGF0YVBvaW50Q2xpY2tFdmVudEhhbmRsZXIgPSAoZXZlbnQ6IFdpZGdldERhdGFQb2ludENsaWNrRXZlbnQpID0+IHZvaWQ7XG5cbi8qKlxuICogQ29udGV4dCBtZW51IGhhbmRsZXIgZm9yIHdoZW4gYSBkYXRhIHBvaW50IG9uIHRoZSBDaGFydCBpcyByaWdodC1jbGlja2VkLlxuICovXG5leHBvcnQgdHlwZSBDaGFydERhdGFQb2ludENvbnRleHRNZW51RXZlbnRIYW5kbGVyID0gKGV2ZW50OiBDaGFydERhdGFQb2ludENvbnRleHRNZW51RXZlbnQpID0+IHZvaWQ7XG5cbi8qKiBDbGljayBoYW5kbGVyIGZvciB3aGVuIG11bHRpcGxlIHNjYXR0ZXIgZGF0YSBwb2ludHMgYXJlIHNlbGVjdGVkLiAqL1xuZXhwb3J0IHR5cGUgU2NhdHRlckRhdGFQb2ludHNFdmVudEhhbmRsZXIgPSAoZXZlbnQ6IFNjYXR0ZXJEYXRhUG9pbnRzRXZlbnQpID0+IHZvaWQ7XG5cbi8qKiBDbGljayBoYW5kbGVyIGZvciB3aGVuIG11bHRpcGxlIGRhdGEgcG9pbnRzIGFyZSBzZWxlY3RlZC4gKi9cbmV4cG9ydCB0eXBlIERhdGFQb2ludHNFdmVudEhhbmRsZXIgPSAoZXZlbnQ6IERhdGFQb2ludHNFdmVudCkgPT4gdm9pZDtcblxuLyoqIENsaWNrIGhhbmRsZXIgZm9yIHdoZW4gbXVsdGlwbGUgZGF0YSBwb2ludHMgb24gQ2hhcnQgYXJlIHNlbGVjdGVkLiAqL1xuZXhwb3J0IHR5cGUgQ2hhcnREYXRhUG9pbnRzRXZlbnRIYW5kbGVyID0gKGV2ZW50OiBDaGFydERhdGFQb2ludHNFdmVudCkgPT4gdm9pZDtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHlwZXMvZGF0YS1wb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXJlYW1hcERhdGFQb2ludCxcbiAgQm94cGxvdERhdGFQb2ludCxcbiAgQ2FsZW5kYXJIZWF0bWFwRGF0YVBvaW50LFxuICBEYXRhUG9pbnQsXG4gIEluZGljYXRvckRhdGFQb2ludCxcbiAgU2NhdHRlckRhdGFQb2ludCxcbiAgU2NhdHRlcm1hcERhdGFQb2ludCxcbiAgVGV4dFdpZGdldERhdGFQb2ludCxcbn0gZnJvbSAnQHNpc2Vuc2Uvc2RrLXVpLXByZWFjdCc7XG5cbmV4cG9ydCB0eXBlIERhdGFQb2ludEV2ZW50ID0ge1xuICAvKiogRGF0YSBwb2ludCB0aGF0IHdhcyBjbGlja2VkICovXG4gIHBvaW50OiBEYXRhUG9pbnQ7XG4gIC8qKiBOYXRpdmUgUG9pbnRlckV2ZW50ICovXG4gIG5hdGl2ZUV2ZW50OiBQb2ludGVyRXZlbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBTY2F0dGVyRGF0YVBvaW50RXZlbnQgPSB7XG4gIC8qKiBEYXRhIHBvaW50IHRoYXQgd2FzIGNsaWNrZWQgKi9cbiAgcG9pbnQ6IFNjYXR0ZXJEYXRhUG9pbnQ7XG4gIC8qKiBOYXRpdmUgUG9pbnRlckV2ZW50ICovXG4gIG5hdGl2ZUV2ZW50OiBQb2ludGVyRXZlbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBBcmVhbWFwRGF0YVBvaW50RXZlbnQgPSB7XG4gIC8qKiBEYXRhIHBvaW50IHRoYXQgd2FzIGNsaWNrZWQgKi9cbiAgcG9pbnQ6IEFyZWFtYXBEYXRhUG9pbnQ7XG4gIC8qKiBOYXRpdmUgTW91c2VFdmVudCAqL1xuICBuYXRpdmVFdmVudDogTW91c2VFdmVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFNjYXR0ZXJtYXBEYXRhUG9pbnRFdmVudCA9IHtcbiAgLyoqIERhdGEgcG9pbnQgdGhhdCB3YXMgY2xpY2tlZCAqL1xuICBwb2ludDogU2NhdHRlcm1hcERhdGFQb2ludDtcbiAgLyoqIE5hdGl2ZSBNb3VzZUV2ZW50ICovXG4gIG5hdGl2ZUV2ZW50OiBNb3VzZUV2ZW50O1xufTtcblxuZXhwb3J0IHR5cGUgQm94cGxvdERhdGFQb2ludEV2ZW50ID0ge1xuICAvKiogRGF0YSBwb2ludCB0aGF0IHdhcyBjbGlja2VkICovXG4gIHBvaW50OiBCb3hwbG90RGF0YVBvaW50O1xuICAvKiogTmF0aXZlIFBvaW50ZXJFdmVudCAqL1xuICBuYXRpdmVFdmVudDogUG9pbnRlckV2ZW50O1xufTtcblxuZXhwb3J0IHR5cGUgSW5kaWNhdG9yRGF0YVBvaW50RXZlbnQgPSB7XG4gIC8qKiBEYXRhIHBvaW50IHRoYXQgd2FzIGNsaWNrZWQgKi9cbiAgcG9pbnQ6IEluZGljYXRvckRhdGFQb2ludDtcbiAgLyoqIE5hdGl2ZSBNb3VzZUV2ZW50ICovXG4gIG5hdGl2ZUV2ZW50OiBNb3VzZUV2ZW50O1xufTtcblxuZXhwb3J0IHR5cGUgQ2FsZW5kYXJIZWF0bWFwRGF0YVBvaW50RXZlbnQgPSB7XG4gIC8qKiBEYXRhIHBvaW50IHRoYXQgd2FzIGNsaWNrZWQgKi9cbiAgcG9pbnQ6IENhbGVuZGFySGVhdG1hcERhdGFQb2ludDtcbiAgLyoqIE5hdGl2ZSBQb2ludGVyRXZlbnQgKi9cbiAgbmF0aXZlRXZlbnQ6IFBvaW50ZXJFdmVudDtcbn07XG5cbmV4cG9ydCB0eXBlIENhbGVuZGFySGVhdG1hcERhdGFQb2ludHNFdmVudCA9IHtcbiAgLyoqIERhdGEgcG9pbnRzIHRoYXQgd2VyZSBzZWxlY3RlZCAqL1xuICBwb2ludHM6IENhbGVuZGFySGVhdG1hcERhdGFQb2ludFtdO1xuICAvKiogTmF0aXZlIE1vdXNlRXZlbnQgKi9cbiAgbmF0aXZlRXZlbnQ6IE1vdXNlRXZlbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBUZXh0V2lkZ2V0RGF0YVBvaW50RXZlbnQgPSB7XG4gIC8qKiBEYXRhIHBvaW50IHRoYXQgd2FzIGNsaWNrZWQgKi9cbiAgcG9pbnQ6IFRleHRXaWRnZXREYXRhUG9pbnQ7XG4gIC8qKiBOYXRpdmUgTW91c2VFdmVudCAqL1xuICBuYXRpdmVFdmVudDogTW91c2VFdmVudDtcbn07XG5cbmV4cG9ydCB0eXBlIENoYXJ0RGF0YVBvaW50Q2xpY2tFdmVudCA9XG4gIHwgRGF0YVBvaW50RXZlbnRcbiAgfCBTY2F0dGVyRGF0YVBvaW50RXZlbnRcbiAgfCBCb3hwbG90RGF0YVBvaW50RXZlbnRcbiAgfCBBcmVhbWFwRGF0YVBvaW50RXZlbnRcbiAgfCBTY2F0dGVybWFwRGF0YVBvaW50RXZlbnRcbiAgfCBJbmRpY2F0b3JEYXRhUG9pbnRFdmVudFxuICB8IENhbGVuZGFySGVhdG1hcERhdGFQb2ludEV2ZW50O1xuXG5leHBvcnQgdHlwZSBXaWRnZXREYXRhUG9pbnRDbGlja0V2ZW50ID0gQ2hhcnREYXRhUG9pbnRDbGlja0V2ZW50IHwgVGV4dFdpZGdldERhdGFQb2ludEV2ZW50O1xuXG5leHBvcnQgdHlwZSBDaGFydERhdGFQb2ludENvbnRleHRNZW51RXZlbnQgPVxuICB8IERhdGFQb2ludEV2ZW50XG4gIHwgU2NhdHRlckRhdGFQb2ludEV2ZW50XG4gIHwgQm94cGxvdERhdGFQb2ludEV2ZW50XG4gIHwgQ2FsZW5kYXJIZWF0bWFwRGF0YVBvaW50RXZlbnQ7XG5cbmV4cG9ydCB0eXBlIERhdGFQb2ludHNFdmVudCA9IHtcbiAgLyoqIERhdGEgcG9pbnRzIHRoYXQgd2VyZSBzZWxlY3RlZCAqL1xuICBwb2ludHM6IERhdGFQb2ludFtdO1xuICAvKiogTmF0aXZlIE1vdXNlRXZlbnQgKi9cbiAgbmF0aXZlRXZlbnQ6IE1vdXNlRXZlbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBTY2F0dGVyRGF0YVBvaW50c0V2ZW50ID0ge1xuICAvKiogRGF0YSBwb2ludHMgdGhhdCB3ZXJlIHNlbGVjdGVkICovXG4gIHBvaW50czogU2NhdHRlckRhdGFQb2ludFtdO1xuICAvKiogTmF0aXZlIE1vdXNlRXZlbnQgKi9cbiAgbmF0aXZlRXZlbnQ6IE1vdXNlRXZlbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBCb3hwbG90RGF0YVBvaW50c0V2ZW50ID0ge1xuICAvKiogRGF0YSBwb2ludCB0aGF0IHdlcmUgc2VsZWN0ZWQgKi9cbiAgcG9pbnRzOiBCb3hwbG90RGF0YVBvaW50W107XG4gIC8qKiBOYXRpdmUgTW91c2VFdmVudCAqL1xuICBuYXRpdmVFdmVudDogTW91c2VFdmVudDtcbn07XG5cbmV4cG9ydCB0eXBlIENoYXJ0RGF0YVBvaW50c0V2ZW50ID1cbiAgfCBEYXRhUG9pbnRzRXZlbnRcbiAgfCBTY2F0dGVyRGF0YVBvaW50c0V2ZW50XG4gIHwgQ2FsZW5kYXJIZWF0bWFwRGF0YVBvaW50c0V2ZW50O1xuXG4vKipcbiAqIEEgaGFuZGxlciBmdW5jdGlvbiB0aGF0IGFsbG93cyB5b3UgdG8gY3VzdG9taXplIHdoYXQgaGFwcGVucyB3aGVuIGNlcnRhaW4gZXZlbnRzIG9jY3VyIHRvXG4gKiBhIGRhdGEgcG9pbnQuXG4gKi9cbmV4cG9ydCB0eXBlIERhdGFQb2ludEV2ZW50SGFuZGxlciA9IChldmVudDogRGF0YVBvaW50RXZlbnQpID0+IHZvaWQ7XG5cbi8qKiBDbGljayBoYW5kbGVyIGZvciB3aGVuIGEgc2NhdHRlciBkYXRhIHBvaW50IGlzIGNsaWNrZWQgKi9cbmV4cG9ydCB0eXBlIFNjYXR0ZXJEYXRhUG9pbnRFdmVudEhhbmRsZXIgPSAoZXZlbnQ6IFNjYXR0ZXJEYXRhUG9pbnRFdmVudCkgPT4gdm9pZDtcblxuLyoqXG4gKiBDbGljayBoYW5kbGVyIGZvciB3aGVuIGEgZGF0YSBwb2ludCBvbiBBcmVhbWFwIGlzIGNsaWNrZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEFyZWFtYXBEYXRhUG9pbnRFdmVudEhhbmRsZXIgPSAoZXZlbnQ6IEFyZWFtYXBEYXRhUG9pbnRFdmVudCkgPT4gdm9pZDtcblxuLyoqXG4gKiBDbGljayBoYW5kbGVyIGZvciB3aGVuIGEgZGF0YSBwb2ludCBvbiBTY2F0dGVybWFwIGlzIGNsaWNrZWQuXG4gKi9cbmV4cG9ydCB0eXBlIFNjYXR0ZXJtYXBEYXRhUG9pbnRFdmVudEhhbmRsZXIgPSAoZXZlbnQ6IFNjYXR0ZXJtYXBEYXRhUG9pbnRFdmVudCkgPT4gdm9pZDtcblxuLyoqXG4gKiBDbGljayBoYW5kbGVyIGZvciB3aGVuIGEgZGF0YSBwb2ludCBvbiBCb3hwbG90IGlzIGNsaWNrZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEJveHBsb3REYXRhUG9pbnRFdmVudEhhbmRsZXIgPSAoZXZlbnQ6IEJveHBsb3REYXRhUG9pbnRFdmVudCkgPT4gdm9pZDtcblxuLyoqIENsaWNrIGhhbmRsZXIgZm9yIHdoZW4gYSBkYXRhIHBvaW50IG9uIEluZGljYXRvciBpcyBjbGlja2VkLiAqL1xuZXhwb3J0IHR5cGUgSW5kaWNhdG9yRGF0YVBvaW50RXZlbnRIYW5kbGVyID0gKGV2ZW50OiBJbmRpY2F0b3JEYXRhUG9pbnRFdmVudCkgPT4gdm9pZDtcblxuLyoqXG4gKiBDbGljayBoYW5kbGVyIGZvciB3aGVuIGEgZGF0YSBwb2ludCBvbiBDaGFydCBpcyBjbGlja2VkLlxuICovXG5leHBvcnQgdHlwZSBDaGFydERhdGFQb2ludENsaWNrRXZlbnRIYW5kbGVyID0gKGV2ZW50OiBDaGFydERhdGFQb2ludENsaWNrRXZlbnQpID0+IHZvaWQ7XG5cbi8qKiBDbGljayBoYW5kbGVyIGZvciB3aGVuIGEgZGF0YSBwb2ludCBvbiBUZXh0V2lkZ2V0IGlzIGNsaWNrZWQuICovXG5leHBvcnQgdHlwZSBUZXh0V2lkZ2V0RGF0YVBvaW50RXZlbnRIYW5kbGVyID0gKGV2ZW50OiBUZXh0V2lkZ2V0RGF0YVBvaW50RXZlbnQpID0+IHZvaWQ7XG5cbi8qKiBDbGljayBoYW5kbGVyIGZvciB3aGVuIGEgZGF0YSBwb2ludCBvbiBXaWRnZXQgaXMgY2xpY2tlZC4gKi9cbmV4cG9ydCB0eXBlIFdpZGdldERhdGFQb2ludENsaWNrRXZlbnRIYW5kbGVyID0gKGV2ZW50OiBXaWRnZXREYXRhUG9pbnRDbGlja0V2ZW50KSA9PiB2b2lkO1xuXG4vKipcbiAqIENvbnRleHQgbWVudSBoYW5kbGVyIGZvciB3aGVuIGEgZGF0YSBwb2ludCBvbiB0aGUgQ2hhcnQgaXMgcmlnaHQtY2xpY2tlZC5cbiAqL1xuZXhwb3J0IHR5cGUgQ2hhcnREYXRhUG9pbnRDb250ZXh0TWVudUV2ZW50SGFuZGxlciA9IChldmVudDogQ2hhcnREYXRhUG9pbnRDb250ZXh0TWVudUV2ZW50KSA9PiB2b2lkO1xuXG4vKiogQ2xpY2sgaGFuZGxlciBmb3Igd2hlbiBtdWx0aXBsZSBzY2F0dGVyIGRhdGEgcG9pbnRzIGFyZSBzZWxlY3RlZC4gKi9cbmV4cG9ydCB0eXBlIFNjYXR0ZXJEYXRhUG9pbnRzRXZlbnRIYW5kbGVyID0gKGV2ZW50OiBTY2F0dGVyRGF0YVBvaW50c0V2ZW50KSA9PiB2b2lkO1xuXG4vKiogQ2xpY2sgaGFuZGxlciBmb3Igd2hlbiBtdWx0aXBsZSBkYXRhIHBvaW50cyBhcmUgc2VsZWN0ZWQuICovXG5leHBvcnQgdHlwZSBEYXRhUG9pbnRzRXZlbnRIYW5kbGVyID0gKGV2ZW50OiBEYXRhUG9pbnRzRXZlbnQpID0+IHZvaWQ7XG5cbi8qKlxuICogQ2xpY2sgaGFuZGxlciBmb3Igd2hlbiBhIGNhbGVuZGFyLWhlYXRtYXAgZGF0YSBwb2ludCBpcyBjbGlja2VkXG4gKi9cbmV4cG9ydCB0eXBlIENhbGVuZGFySGVhdG1hcERhdGFQb2ludEV2ZW50SGFuZGxlciA9IChldmVudDogQ2FsZW5kYXJIZWF0bWFwRGF0YVBvaW50RXZlbnQpID0+IHZvaWQ7XG5cbi8qKlxuICogQ2xpY2sgaGFuZGxlciBmb3Igd2hlbiBtdWx0aXBsZSBjYWxlbmRhci1oZWF0bWFwIGRhdGEgcG9pbnRzIGFyZSBzZWxlY3RlZC5cbiAqL1xuZXhwb3J0IHR5cGUgQ2FsZW5kYXJIZWF0bWFwRGF0YVBvaW50c0V2ZW50SGFuZGxlciA9IChldmVudDogQ2FsZW5kYXJIZWF0bWFwRGF0YVBvaW50c0V2ZW50KSA9PiB2b2lkO1xuXG4vKiogQ2xpY2sgaGFuZGxlciBmb3Igd2hlbiBtdWx0aXBsZSBkYXRhIHBvaW50cyBvbiBDaGFydCBhcmUgc2VsZWN0ZWQuICovXG5leHBvcnQgdHlwZSBDaGFydERhdGFQb2ludHNFdmVudEhhbmRsZXIgPSAoZXZlbnQ6IENoYXJ0RGF0YVBvaW50c0V2ZW50KSA9PiB2b2lkO1xuIl19
@@ -9,4 +9,4 @@ export * from './lib/utilities';
9
9
  /* Re-exports internal core functionalities to use in dependant angular modules */
10
10
  export { createCustomWidgetsContextConnector, createSisenseContextConnector, createThemeContextConnector, } from './lib/component-wrapper-helpers';
11
11
  export { TrackableService } from './lib/decorators';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxnQkFBZ0IsQ0FBQztBQWlDL0IsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxrRkFBa0Y7QUFDbEYsT0FBTyxFQUNMLG1DQUFtQyxFQUNuQyw2QkFBNkIsRUFDN0IsMkJBQTJCLEdBQzVCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAc2lzZW5zZS9zZGstdWktYW5ndWxhclxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Nkay11aS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2RrLXVpLWNvcmUtZXhwb3J0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgdHlwZSB7XG4gIEFyZWFtYXBEYXRhUG9pbnRFdmVudCxcbiAgQXJlYW1hcERhdGFQb2ludEV2ZW50SGFuZGxlcixcbiAgQm94cGxvdERhdGFQb2ludEV2ZW50LFxuICBCb3hwbG90RGF0YVBvaW50RXZlbnRIYW5kbGVyLFxuICBCb3hwbG90RGF0YVBvaW50c0V2ZW50LFxuICBDaGFydERhdGFQb2ludENsaWNrRXZlbnQsXG4gIENoYXJ0RGF0YVBvaW50Q2xpY2tFdmVudEhhbmRsZXIsXG4gIENoYXJ0RGF0YVBvaW50Q29udGV4dE1lbnVFdmVudCxcbiAgQ2hhcnREYXRhUG9pbnRDb250ZXh0TWVudUV2ZW50SGFuZGxlcixcbiAgQ2hhcnREYXRhUG9pbnRzRXZlbnQsXG4gIENoYXJ0RGF0YVBvaW50c0V2ZW50SGFuZGxlcixcbiAgRGF0YVBvaW50RXZlbnQsXG4gIERhdGFQb2ludEV2ZW50SGFuZGxlcixcbiAgRGF0YVBvaW50c0V2ZW50LFxuICBEYXRhUG9pbnRzRXZlbnRIYW5kbGVyLFxuICBGaWx0ZXJDaGFuZ2VFdmVudCxcbiAgRmlsdGVyQ2hhbmdlRXZlbnRIYW5kbGVyLFxuICBGaWx0ZXJEZWxldGVFdmVudEhhbmRsZXIsXG4gIEZpbHRlckVkaXRFdmVudCxcbiAgRmlsdGVyRWRpdEV2ZW50SGFuZGxlcixcbiAgRmlsdGVyc1BhbmVsQ2hhbmdlRXZlbnQsXG4gIEZpbHRlcnNQYW5lbENoYW5nZUV2ZW50SGFuZGxlcixcbiAgSW5kaWNhdG9yRGF0YVBvaW50RXZlbnQsXG4gIEluZGljYXRvckRhdGFQb2ludEV2ZW50SGFuZGxlcixcbiAgU2NhdHRlckRhdGFQb2ludEV2ZW50LFxuICBTY2F0dGVyRGF0YVBvaW50RXZlbnRIYW5kbGVyLFxuICBTY2F0dGVyRGF0YVBvaW50c0V2ZW50LFxuICBTY2F0dGVyRGF0YVBvaW50c0V2ZW50SGFuZGxlcixcbiAgU2NhdHRlcm1hcERhdGFQb2ludEV2ZW50LFxuICBTY2F0dGVybWFwRGF0YVBvaW50RXZlbnRIYW5kbGVyLFxufSBmcm9tICcuL2xpYi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlsaXRpZXMnO1xuXG4vKiBSZS1leHBvcnRzIGludGVybmFsIGNvcmUgZnVuY3Rpb25hbGl0aWVzIHRvIHVzZSBpbiBkZXBlbmRhbnQgYW5ndWxhciBtb2R1bGVzICovXG5leHBvcnQge1xuICBjcmVhdGVDdXN0b21XaWRnZXRzQ29udGV4dENvbm5lY3RvcixcbiAgY3JlYXRlU2lzZW5zZUNvbnRleHRDb25uZWN0b3IsXG4gIGNyZWF0ZVRoZW1lQ29udGV4dENvbm5lY3Rvcixcbn0gZnJvbSAnLi9saWIvY29tcG9uZW50LXdyYXBwZXItaGVscGVycyc7XG5leHBvcnQgeyBUcmFja2FibGVTZXJ2aWNlIH0gZnJvbSAnLi9saWIvZGVjb3JhdG9ycyc7XG4iXX0=
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxnQkFBZ0IsQ0FBQztBQXFDL0IsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxrRkFBa0Y7QUFDbEYsT0FBTyxFQUNMLG1DQUFtQyxFQUNuQyw2QkFBNkIsRUFDN0IsMkJBQTJCLEdBQzVCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAc2lzZW5zZS9zZGstdWktYW5ndWxhclxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Nkay11aS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2RrLXVpLWNvcmUtZXhwb3J0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgdHlwZSB7XG4gIEFyZWFtYXBEYXRhUG9pbnRFdmVudCxcbiAgQXJlYW1hcERhdGFQb2ludEV2ZW50SGFuZGxlcixcbiAgQm94cGxvdERhdGFQb2ludEV2ZW50LFxuICBCb3hwbG90RGF0YVBvaW50RXZlbnRIYW5kbGVyLFxuICBCb3hwbG90RGF0YVBvaW50c0V2ZW50LFxuICBDYWxlbmRhckhlYXRtYXBEYXRhUG9pbnRFdmVudCxcbiAgQ2FsZW5kYXJIZWF0bWFwRGF0YVBvaW50RXZlbnRIYW5kbGVyLFxuICBDYWxlbmRhckhlYXRtYXBEYXRhUG9pbnRzRXZlbnQsXG4gIENhbGVuZGFySGVhdG1hcERhdGFQb2ludHNFdmVudEhhbmRsZXIsXG4gIENoYXJ0RGF0YVBvaW50Q2xpY2tFdmVudCxcbiAgQ2hhcnREYXRhUG9pbnRDbGlja0V2ZW50SGFuZGxlcixcbiAgQ2hhcnREYXRhUG9pbnRDb250ZXh0TWVudUV2ZW50LFxuICBDaGFydERhdGFQb2ludENvbnRleHRNZW51RXZlbnRIYW5kbGVyLFxuICBDaGFydERhdGFQb2ludHNFdmVudCxcbiAgQ2hhcnREYXRhUG9pbnRzRXZlbnRIYW5kbGVyLFxuICBEYXRhUG9pbnRFdmVudCxcbiAgRGF0YVBvaW50RXZlbnRIYW5kbGVyLFxuICBEYXRhUG9pbnRzRXZlbnQsXG4gIERhdGFQb2ludHNFdmVudEhhbmRsZXIsXG4gIEZpbHRlckNoYW5nZUV2ZW50LFxuICBGaWx0ZXJDaGFuZ2VFdmVudEhhbmRsZXIsXG4gIEZpbHRlckRlbGV0ZUV2ZW50SGFuZGxlcixcbiAgRmlsdGVyRWRpdEV2ZW50LFxuICBGaWx0ZXJFZGl0RXZlbnRIYW5kbGVyLFxuICBGaWx0ZXJzUGFuZWxDaGFuZ2VFdmVudCxcbiAgRmlsdGVyc1BhbmVsQ2hhbmdlRXZlbnRIYW5kbGVyLFxuICBJbmRpY2F0b3JEYXRhUG9pbnRFdmVudCxcbiAgSW5kaWNhdG9yRGF0YVBvaW50RXZlbnRIYW5kbGVyLFxuICBTY2F0dGVyRGF0YVBvaW50RXZlbnQsXG4gIFNjYXR0ZXJEYXRhUG9pbnRFdmVudEhhbmRsZXIsXG4gIFNjYXR0ZXJEYXRhUG9pbnRzRXZlbnQsXG4gIFNjYXR0ZXJEYXRhUG9pbnRzRXZlbnRIYW5kbGVyLFxuICBTY2F0dGVybWFwRGF0YVBvaW50RXZlbnQsXG4gIFNjYXR0ZXJtYXBEYXRhUG9pbnRFdmVudEhhbmRsZXIsXG59IGZyb20gJy4vbGliL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxpdGllcyc7XG5cbi8qIFJlLWV4cG9ydHMgaW50ZXJuYWwgY29yZSBmdW5jdGlvbmFsaXRpZXMgdG8gdXNlIGluIGRlcGVuZGFudCBhbmd1bGFyIG1vZHVsZXMgKi9cbmV4cG9ydCB7XG4gIGNyZWF0ZUN1c3RvbVdpZGdldHNDb250ZXh0Q29ubmVjdG9yLFxuICBjcmVhdGVTaXNlbnNlQ29udGV4dENvbm5lY3RvcixcbiAgY3JlYXRlVGhlbWVDb250ZXh0Q29ubmVjdG9yLFxufSBmcm9tICcuL2xpYi9jb21wb25lbnQtd3JhcHBlci1oZWxwZXJzJztcbmV4cG9ydCB7IFRyYWNrYWJsZVNlcnZpY2UgfSBmcm9tICcuL2xpYi9kZWNvcmF0b3JzJztcbiJdfQ==
@@ -1,2 +1,2 @@
1
- export default '2.9.0';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQWUsT0FBTyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgJzIuOS4wJyJdfQ==
1
+ export default '2.11.0';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQWUsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgJzIuMTEuMCciXX0=
@@ -87,13 +87,13 @@ const AI_CONTEXT_CONFIG_TOKEN = new InjectionToken('AI Context Config');
87
87
  let AiService = class AiService {
88
88
  constructor(sisenseContextService, aiContextConfig) {
89
89
  this.sisenseContextService = sisenseContextService;
90
- this.apiPromise = this.sisenseContextService
91
- .getApp()
92
- .then((app) => new ChatRestApi(app.httpClient, aiContextConfig === null || aiContextConfig === void 0 ? void 0 : aiContextConfig.volatile));
90
+ this.aiContextConfig = aiContextConfig;
93
91
  }
94
92
  /** @internal */
95
93
  getApi() {
96
- return this.apiPromise;
94
+ return this.sisenseContextService
95
+ .getApp()
96
+ .then((app) => { var _a; return new ChatRestApi(app.httpClient, (_a = this.aiContextConfig) === null || _a === void 0 ? void 0 : _a.volatile); });
97
97
  }
98
98
  /**
99
99
  * Fetches an analysis of the provided query using natural language generation (NLG).
@@ -1 +1 @@
1
- {"version":3,"file":"sisense-sdk-ui-angular-ai.mjs","sources":["../../src/ai/lib/component-wrapper-helpers/context-connectors.ts","../../src/ai/lib/component-wrapper-helpers/template.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/public-api.ts","../../src/ai/sisense-sdk-ui-angular-ai.ts"],"sourcesContent":["import { ContextConnector, DataObserver } from '@sisense/sdk-ui-preact';\nimport { CustomAiContextProvider, CustomAiContextProviderProps } from '@sisense/sdk-ui-preact/ai';\n\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<CustomAiContextProviderProps> => {\n const propsObserver = new DataObserver<CustomAiContextProviderProps>();\n\n aiService\n .getApi()\n .then((api) =>\n propsObserver.setValue({\n context: {\n api,\n },\n }),\n )\n .catch((error) =>\n propsObserver.setValue({\n error,\n }),\n );\n\n return {\n propsObserver,\n providerComponent: CustomAiContextProvider,\n };\n};\n","export const rootId = 'preact';\nexport const template = `\n <div #${rootId} class=\"csdk-full-size-container\"></div>\n`;\nexport const styles = [\n `.csdk-full-size-container {\n width: 100%;\n height: 100%;\n }`,\n];\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { SisenseContextService, TrackableService, WidgetProps } from '@sisense/sdk-ui-angular';\nimport {\n AiContextProviderProps,\n ChatRestApi,\n DEFAULT_RECOMMENDATIONS_COUNT,\n GetNlgInsightsResponse,\n GetNlqResultParams,\n GetQueryRecommendationsParams,\n prepareGetNlgInsightsPayload,\n prepareGetNlqResultPayload,\n QueryRecommendation as QueryRecommendationPreact,\n UseGetNlgInsightsParams,\n widgetComposer,\n} from '@sisense/sdk-ui-preact/ai';\n\nexport interface AiContextConfig extends Omit<AiContextProviderProps, 'children'> {}\nexport interface GetNlgInsightsParams extends Omit<UseGetNlgInsightsParams, 'enabled'> {}\n\n/**\n * {@inheritDoc @sisense/sdk-ui!QueryRecommendation}\n */\nexport interface QueryRecommendation extends Omit<QueryRecommendationPreact, 'widgetProps'> {\n /**\n * {@inheritDoc @sisense/sdk-ui!QueryRecommendation.widgetProps}\n */\n widgetProps?: WidgetProps;\n}\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 * @group Generative AI\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 * @group Generative AI\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 * @beta\n */\n async getQueryRecommendations(\n params: GetQueryRecommendationsParams,\n ): Promise<QueryRecommendation[]> {\n const api = await this.getApi();\n const { contextTitle, count, enableAxisTitlesInWidgetProps, customPrompt } = params;\n const recCount = count ?? DEFAULT_RECOMMENDATIONS_COUNT;\n\n const rawRecommendations =\n (await api.ai.getQueryRecommendations(contextTitle, {\n numOfRecommendations: recCount,\n ...(customPrompt ? { userPrompt: customPrompt } : undefined),\n })) || [];\n\n return rawRecommendations.map(\n (recommendation: QueryRecommendationPreact) =>\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 * @beta\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 }) as WidgetProps)\n : undefined;\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n SisenseContextService,\n ThemeService,\n} from '@sisense/sdk-ui-angular';\nimport { ComponentAdapter } from '@sisense/sdk-ui-preact';\nimport {\n Chatbot as ChatbotPreact,\n type ChatbotProps as ChatbotPropsPreact,\n} from '@sisense/sdk-ui-preact/ai';\n\nimport { createAiContextConnector, rootId, styles, template } from '../component-wrapper-helpers';\nimport { AiService } from '../services/ai.service';\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 * @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=\"500px\" />\n * @group Generative AI\n */\n@Component({\n selector: 'csdk-chatbot',\n template,\n styles,\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<typeof ChatbotPreact>;\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(ChatbotPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n createAiContextConnector(this.aiService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): ChatbotPropsPreact {\n return {\n width: this.width,\n height: this.height,\n config: this.config,\n };\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';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n SisenseContextService,\n ThemeService,\n} from '@sisense/sdk-ui-angular';\nimport { ComponentAdapter } from '@sisense/sdk-ui-preact';\nimport {\n GetNlgInsights as GetNlgInsightsPreact,\n type GetNlgInsightsProps as GetNlgInsightsPropsPreact,\n} from '@sisense/sdk-ui-preact/ai';\n\nimport { createAiContextConnector, rootId, styles, template } from '../component-wrapper-helpers';\nimport { AiService } from '../services/ai.service';\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 * @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=\"700px\" />\n * @group Generative AI\n */\n@Component({\n selector: 'csdk-get-nlg-insights',\n template,\n styles,\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<typeof GetNlgInsightsPreact>;\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(GetNlgInsightsPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n createAiContextConnector(this.aiService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): GetNlgInsightsPropsPreact {\n return {\n dataSource: this.dataSource,\n dimensions: this.dimensions,\n measures: this.measures,\n filters: this.filters,\n verbosity: this.verbosity,\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SdkUiModule } from '@sisense/sdk-ui-angular';\n\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 * @group Generative AI\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","/**\n * Public API Surface of @sisense/sdk-ui-angular/ai\n */\n\nexport * from './lib/components';\nexport * from './lib/sdk-ai.module';\nexport * from './lib/sdk-ui-core-exports';\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ChatbotPreact","i2.AiService","GetNlgInsightsPreact"],"mappings":"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"}
1
+ {"version":3,"file":"sisense-sdk-ui-angular-ai.mjs","sources":["../../src/ai/lib/component-wrapper-helpers/context-connectors.ts","../../src/ai/lib/component-wrapper-helpers/template.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/public-api.ts","../../src/ai/sisense-sdk-ui-angular-ai.ts"],"sourcesContent":["import { ContextConnector, DataObserver } from '@sisense/sdk-ui-preact';\nimport { CustomAiContextProvider, CustomAiContextProviderProps } from '@sisense/sdk-ui-preact/ai';\n\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<CustomAiContextProviderProps> => {\n const propsObserver = new DataObserver<CustomAiContextProviderProps>();\n\n aiService\n .getApi()\n .then((api) =>\n propsObserver.setValue({\n context: {\n api,\n },\n }),\n )\n .catch((error) =>\n propsObserver.setValue({\n error,\n }),\n );\n\n return {\n propsObserver,\n providerComponent: CustomAiContextProvider,\n };\n};\n","export const rootId = 'preact';\nexport const template = `\n <div #${rootId} class=\"csdk-full-size-container\"></div>\n`;\nexport const styles = [\n `.csdk-full-size-container {\n width: 100%;\n height: 100%;\n }`,\n];\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { SisenseContextService, TrackableService, WidgetProps } from '@sisense/sdk-ui-angular';\nimport {\n AiContextProviderProps,\n ChatRestApi,\n DEFAULT_RECOMMENDATIONS_COUNT,\n GetNlgInsightsResponse,\n GetNlqResultParams,\n GetQueryRecommendationsParams,\n prepareGetNlgInsightsPayload,\n prepareGetNlqResultPayload,\n QueryRecommendation as QueryRecommendationPreact,\n UseGetNlgInsightsParams,\n widgetComposer,\n} from '@sisense/sdk-ui-preact/ai';\n\nexport interface AiContextConfig extends Omit<AiContextProviderProps, 'children'> {}\nexport interface GetNlgInsightsParams extends Omit<UseGetNlgInsightsParams, 'enabled'> {}\n\n/**\n * {@inheritDoc @sisense/sdk-ui!QueryRecommendation}\n */\nexport interface QueryRecommendation extends Omit<QueryRecommendationPreact, 'widgetProps'> {\n /**\n * {@inheritDoc @sisense/sdk-ui!QueryRecommendation.widgetProps}\n */\n widgetProps?: WidgetProps;\n}\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 * @group Generative AI\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 * @group Generative AI\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<AiService>(['getNlgInsights', 'getQueryRecommendations'])\nexport class AiService {\n constructor(\n private sisenseContextService: SisenseContextService,\n @Optional() @Inject(AI_CONTEXT_CONFIG_TOKEN) private aiContextConfig?: AiContextConfig,\n ) {}\n\n /** @internal */\n getApi(): Promise<ChatRestApi> {\n return this.sisenseContextService\n .getApp()\n .then((app) => new ChatRestApi(app.httpClient, this.aiContextConfig?.volatile));\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 * @beta\n */\n async getQueryRecommendations(\n params: GetQueryRecommendationsParams,\n ): Promise<QueryRecommendation[]> {\n const api = await this.getApi();\n const { contextTitle, count, enableAxisTitlesInWidgetProps, customPrompt } = params;\n const recCount = count ?? DEFAULT_RECOMMENDATIONS_COUNT;\n\n const rawRecommendations =\n (await api.ai.getQueryRecommendations(contextTitle, {\n numOfRecommendations: recCount,\n ...(customPrompt ? { userPrompt: customPrompt } : undefined),\n })) || [];\n\n return rawRecommendations.map(\n (recommendation: QueryRecommendationPreact) =>\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 * @beta\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 }) as WidgetProps)\n : undefined;\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n SisenseContextService,\n ThemeService,\n} from '@sisense/sdk-ui-angular';\nimport { ComponentAdapter } from '@sisense/sdk-ui-preact';\nimport {\n Chatbot as ChatbotPreact,\n type ChatbotProps as ChatbotPropsPreact,\n} from '@sisense/sdk-ui-preact/ai';\n\nimport { createAiContextConnector, rootId, styles, template } from '../component-wrapper-helpers';\nimport { AiService } from '../services/ai.service';\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 * @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=\"500px\" />\n * @group Generative AI\n */\n@Component({\n selector: 'csdk-chatbot',\n template,\n styles,\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<typeof ChatbotPreact>;\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(ChatbotPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n createAiContextConnector(this.aiService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): ChatbotPropsPreact {\n return {\n width: this.width,\n height: this.height,\n config: this.config,\n };\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';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n SisenseContextService,\n ThemeService,\n} from '@sisense/sdk-ui-angular';\nimport { ComponentAdapter } from '@sisense/sdk-ui-preact';\nimport {\n GetNlgInsights as GetNlgInsightsPreact,\n type GetNlgInsightsProps as GetNlgInsightsPropsPreact,\n} from '@sisense/sdk-ui-preact/ai';\n\nimport { createAiContextConnector, rootId, styles, template } from '../component-wrapper-helpers';\nimport { AiService } from '../services/ai.service';\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 * @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=\"700px\" />\n * @group Generative AI\n */\n@Component({\n selector: 'csdk-get-nlg-insights',\n template,\n styles,\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<typeof GetNlgInsightsPreact>;\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(GetNlgInsightsPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n createAiContextConnector(this.aiService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): GetNlgInsightsPropsPreact {\n return {\n dataSource: this.dataSource,\n dimensions: this.dimensions,\n measures: this.measures,\n filters: this.filters,\n verbosity: this.verbosity,\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SdkUiModule } from '@sisense/sdk-ui-angular';\n\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 * @group Generative AI\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","/**\n * Public API Surface of @sisense/sdk-ui-angular/ai\n */\n\nexport * from './lib/components';\nexport * from './lib/sdk-ai.module';\nexport * from './lib/sdk-ui-core-exports';\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ChatbotPreact","i2.AiService","GetNlgInsightsPreact"],"mappings":";;;;;;;;;AAKA;;;;;AAKG;AACI,MAAM,wBAAwB,GAAG,CACtC,SAAoB,KAC8B;AAClD,IAAA,MAAM,aAAa,GAAG,IAAI,YAAY,EAAgC,CAAC;IAEvE,SAAS;AACN,SAAA,MAAM,EAAE;SACR,IAAI,CAAC,CAAC,GAAG,KACR,aAAa,CAAC,QAAQ,CAAC;AACrB,QAAA,OAAO,EAAE;YACP,GAAG;AACJ,SAAA;AACF,KAAA,CAAC,CACH;SACA,KAAK,CAAC,CAAC,KAAK,KACX,aAAa,CAAC,QAAQ,CAAC;QACrB,KAAK;AACN,KAAA,CAAC,CACH,CAAC;IAEJ,OAAO;QACL,aAAa;AACb,QAAA,iBAAiB,EAAE,uBAAuB;KAC3C,CAAC;AACJ,CAAC;;ACnCM,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,QAAQ,GAAG,CAAA;YACZ,MAAM,CAAA;CACjB,CAAC;AACK,MAAM,MAAM,GAAG;AACpB,IAAA,CAAA;;;AAGI,KAAA,CAAA;CACL;;ACqBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCG;MACU,uBAAuB,GAAG,IAAI,cAAc,CAAkB,mBAAmB,EAAE;AAEhG;;;;AAIG;AAKU,IAAA,SAAS,GAAf,MAAM,SAAS,CAAA;IACpB,WACU,CAAA,qBAA4C,EACC,eAAiC,EAAA;AAD9E,QAAA,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;AACC,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;KACpF;;IAGJ,MAAM,GAAA;QACJ,OAAO,IAAI,CAAC,qBAAqB;AAC9B,aAAA,MAAM,EAAE;aACR,IAAI,CAAC,CAAC,GAAG,eAAK,OAAA,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,CAAA,EAAA,CAAC,CAAC;KACnF;AAED;;;;;;AAMG;AACG,IAAA,cAAc,CAAC,MAA4B,EAAA;;AAC/C,YAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AAChC,YAAA,MAAM,OAAO,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;YACrD,OAAO,GAAG,CAAC,EAAE;iBACV,cAAc,CAAC,OAAO,CAAC;iBACvB,IAAI,CAAC,CAAC,QAAiC,KAAK,EAAA,IAAA,EAAA,CAAA,CAAA,OAAA,MAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAA,EAAA,CAAC,CAAC;SACxE,CAAA,CAAA;AAAA,KAAA;AAED;;;;;;AAMG;AACG,IAAA,uBAAuB,CAC3B,MAAqC,EAAA;;AAErC,YAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,6BAA6B,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;YACpF,MAAM,QAAQ,GAAG,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAK,GAAI,6BAA6B,CAAC;AAExD,YAAA,MAAM,kBAAkB,GACtB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,uBAAuB,CAAC,YAAY,EAAA,MAAA,CAAA,MAAA,CAAA,EAChD,oBAAoB,EAAE,QAAQ,EAC3B,GAAC,YAAY,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,SAAS,EAAC,CAC5D,KAAK,EAAE,CAAC;AAEZ,YAAA,OAAO,kBAAkB,CAAC,GAAG,CAC3B,CAAC,cAAyC,MACxC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,cAAc,CACjB,EAAA,EAAA,WAAW,EAAE,cAAc,CAAC,IAAI;AAC9B,sBAAE,cAAc,CAAC,aAAa,CAAC,cAAc,EAAE;AAC3C,wBAAA,yBAAyB,EAAE,6BAA6B;qBACzD,CAAC;AACJ,sBAAE,SAAS,EACU,CAAA,CAAA,CAC5B,CAAC;SACH,CAAA,CAAA;AAAA,KAAA;AAED;;;;;;AAMG;AACG,IAAA,YAAY,CAAC,MAA0B,EAAA;;YAC3C,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;AACrE,YAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AAEhC,YAAA,MAAM,IAAI,GAAG,OAAM,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA,CAAC;AAE/D,YAAA,OAAO,IAAI;AACT,kBAAG,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE;AAClC,oBAAA,yBAAyB,EAAE,MAAM,CAAC,6BAA6B,IAAI,KAAK;iBACzE,CAAiB;kBAClB,SAAS,CAAC;SACf,CAAA,CAAA;AAAA,KAAA;;AA/EU,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,uDAGE,uBAAuB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAHlC,SAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,cAHR,MAAM,EAAA,CAAA,CAAA;AAGP,SAAS,GAAA,UAAA,CAAA;AADrB,IAAA,gBAAgB,CAAY,CAAC,gBAAgB,EAAE,yBAAyB,CAAC,CAAC;CAC9D,EAAA,SAAS,CAgFrB,CAAA;4FAhFY,SAAS,EAAA,UAAA,EAAA,CAAA;kBAJrB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;8BAKI,QAAQ;;8BAAI,MAAM;+BAAC,uBAAuB,CAAA;;;;AClD/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCG;MAMU,gBAAgB,CAAA;AA2B3B;;;;;;AAMG;AACH,IAAA,WAAA;AACE;;;;AAIG;IACI,qBAA4C;AACnD;;;;AAIG;IACI,YAA0B;AACjC;;;;AAIG;IACI,SAAoB,EAAA;AAZpB,QAAA,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;AAM5C,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAM1B,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AAE3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAACA,OAAa,EAAE;AAC1D,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC9C,YAAA,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,SAAA,CAAC,CAAC;KACJ;AAED;;AAEG;IACH,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;KAC5F;AAED;;AAEG;IACH,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAC5F,SAAA;KACF;IAEO,uBAAuB,GAAA;QAC7B,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;KACH;AAED;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;8GA1FU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA,CAAA,CAAA;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,YACxB,QAAQ,EAAA,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA,CAAA;4JAQR,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBAOjB,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAON,MAAM,EAAA,CAAA;sBADL,KAAK;gBAON,MAAM,EAAA,CAAA;sBADL,KAAK;;;ACjER;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCG;MAMU,uBAAuB,CAAA;AAuClC;;;;;;AAMG;AACH,IAAA,WAAA;AACE;;;;AAIG;IACI,qBAA4C;AACnD;;;;AAIG;IACI,YAA0B;AACjC;;;;AAIG;IACI,SAAoB,EAAA;AAZpB,QAAA,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;AAM5C,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAM1B,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AAE3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAACC,cAAoB,EAAE;AACjE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC9C,YAAA,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,SAAA,CAAC,CAAC;KACJ;AAED;;AAEG;IACH,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;KAC5F;AAED;;AAEG;IACH,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAC5F,SAAA;KACF;IAEO,uBAAuB,GAAA;QAC7B,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;KACH;AAED;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;qHAxGU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAAvB,uBAAuB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA,CAAA,CAAA;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,YACjC,QAAQ,EAAA,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA,CAAA;4JAQR,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBAOjB,UAAU,EAAA,CAAA;sBADT,KAAK;gBAON,UAAU,EAAA,CAAA;sBADT,KAAK;gBAON,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAON,OAAO,EAAA,CAAA;sBADN,KAAK;gBAON,SAAS,EAAA,CAAA;sBADR,KAAK;;;AC5GR;AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCG;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,YAAA,EAAA,CALP,gBAAgB,EAAE,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAC9C,YAAY,EAAE,WAAW,CAAA,EAAA,OAAA,EAAA,CACzB,gBAAgB,EAAE,uBAAuB,CAAA,EAAA,CAAA,CAAA;0GAGxC,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,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;AACzD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;AACpC,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;AACpD,oBAAA,SAAS,EAAE,EAAE;iBACd,CAAA;;;AChDD;;AAEG;;ACFH;;AAEG;;;;"}