@sisense/sdk-ui 1.4.1 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/ai/ai-context-provider.d.ts +1 -0
  2. package/dist/ai/api/chat-rest-api.d.ts +3 -0
  3. package/dist/ai/api/errors.d.ts +2 -1
  4. package/dist/ai/api/types.d.ts +10 -11
  5. package/dist/ai/chat-config.d.ts +10 -3
  6. package/dist/ai/chat-intro-blurb.d.ts +4 -0
  7. package/dist/ai/chatbot.d.ts +3 -2
  8. package/dist/ai/common/collapsible.d.ts +11 -0
  9. package/dist/ai/get-nlg-query-result.d.ts +12 -52
  10. package/dist/ai/icons/loading-dots-gif-base64.d.ts +2 -0
  11. package/dist/ai/index.d.ts +4 -2
  12. package/dist/ai/messages/feedback-wrapper.d.ts +2 -1
  13. package/dist/ai/messages/insights-message.d.ts +6 -4
  14. package/dist/ai/messages/message-list-resolver.d.ts +1 -2
  15. package/dist/ai/messages/message-resolver.d.ts +1 -3
  16. package/dist/ai/messages/nlq-message-group.d.ts +10 -0
  17. package/dist/ai/suggestions/index.d.ts +1 -1
  18. package/dist/ai/suggestions/suggestion-list.d.ts +1 -1
  19. package/dist/ai/suggestions/suggestions-with-intro.d.ts +2 -2
  20. package/dist/ai/translators/code-templates.d.ts +11 -0
  21. package/dist/ai/translators/generate-code.d.ts +9 -0
  22. package/dist/ai/translators/index.d.ts +4 -0
  23. package/dist/ai/translators/model-translator.d.ts +50 -0
  24. package/dist/ai/translators/query-translator.d.ts +122 -0
  25. package/dist/ai/translators/translate-props-to-code.d.ts +8 -0
  26. package/dist/ai/translators/types.d.ts +105 -0
  27. package/dist/ai/translators/use-get-data-source.d.ts +12 -0
  28. package/dist/ai/translators/utils.d.ts +2 -0
  29. package/dist/ai/use-chat-session.d.ts +9 -3
  30. package/dist/ai/use-get-nlg-query-result.d.ts +42 -66
  31. package/dist/ai/use-get-query-recommendations.d.ts +32 -34
  32. package/dist/ai.js +7101 -1729
  33. package/dist/area-chart.d.ts +1 -0
  34. package/dist/areamap-chart.d.ts +1 -0
  35. package/dist/bar-chart.d.ts +3 -0
  36. package/dist/boxplot-chart.d.ts +1 -0
  37. package/dist/boxplot-utils.d.ts +2 -1
  38. package/dist/chart/chart.d.ts +1 -0
  39. package/dist/chart-data-options/types.d.ts +3 -3
  40. package/dist/chart-options-processor/subtype-to-design-options.d.ts +6 -6
  41. package/dist/chart-options-processor/translations/tooltip-utils.d.ts +1 -0
  42. package/dist/charts/table/helpers/calc-column-widths.d.ts +1 -1
  43. package/dist/charts/table/styles/style-constants.d.ts +2 -2
  44. package/dist/column-chart.d.ts +4 -0
  45. package/dist/common/components/loading-indicator.d.ts +2 -0
  46. package/dist/common/components/loading-spinner.d.ts +5 -0
  47. package/dist/dashboard-widget/dashboard-widget.d.ts +5 -1
  48. package/dist/dashboard-widget/translate-widget-data-options.d.ts +5 -0
  49. package/dist/dashboard-widget/translate-widget-filters.d.ts +1 -0
  50. package/dist/dashboard-widget/types.d.ts +4 -3
  51. package/dist/filters/components/criteria-filter-tile/criteria-filter-tile.d.ts +1 -0
  52. package/dist/filters/components/date-filter/date-range-filter-tile/date-range-filter-tile.d.ts +1 -0
  53. package/dist/filters/components/date-filter/relative-date-filter-tile/relative-date-filter-tile.d.ts +1 -0
  54. package/dist/filters/components/member-filter-tile/member-filter-tile.d.ts +1 -0
  55. package/dist/formulas/fetch-formula.d.ts +2 -2
  56. package/dist/formulas/use-get-shared-formula.d.ts +1 -0
  57. package/dist/funnel-chart.d.ts +1 -0
  58. package/dist/index.d.ts +4 -0
  59. package/dist/index.js +6728 -37696
  60. package/dist/indicator-chart.d.ts +1 -0
  61. package/dist/line-chart.d.ts +1 -0
  62. package/dist/models/dashboard/get-dashboard-models.d.ts +1 -3
  63. package/dist/models/dashboard/translate-dashboard.d.ts +1 -1
  64. package/dist/models/dashboard/types.d.ts +17 -0
  65. package/dist/models/dashboard/use-get-dashboard-model.d.ts +1 -0
  66. package/dist/models/dashboard/use-get-dashboard-models.d.ts +1 -0
  67. package/dist/models/widget/use-get-widget-model.d.ts +1 -0
  68. package/dist/models/widget/widget-model.d.ts +10 -1
  69. package/dist/pie-chart.d.ts +1 -0
  70. package/dist/pivot-table/pivot-table.d.ts +1 -0
  71. package/dist/polar-chart.d.ts +1 -0
  72. package/dist/props.d.ts +197 -120
  73. package/dist/query-execution/execute-query-by-widget-id.d.ts +1 -0
  74. package/dist/query-execution/execute-query.d.ts +1 -0
  75. package/dist/query-execution/types.d.ts +46 -16
  76. package/dist/query-execution/use-execute-csv-query.d.ts +1 -0
  77. package/dist/query-execution/use-execute-pivot-query.d.ts +1 -0
  78. package/dist/query-execution/use-execute-query-by-widget-id.d.ts +1 -0
  79. package/dist/query-execution/use-execute-query.d.ts +1 -0
  80. package/dist/scatter-chart.d.ts +1 -0
  81. package/dist/scattermap-chart.d.ts +1 -0
  82. package/dist/sisense-context/sisense-context-provider.d.ts +1 -0
  83. package/dist/sisense-context/sisense-context.d.ts +4 -1
  84. package/dist/sunburst-chart.d.ts +1 -0
  85. package/dist/table/table.d.ts +1 -0
  86. package/dist/theme-provider/theme-provider.d.ts +8 -1
  87. package/dist/treemap-chart.d.ts +1 -0
  88. package/dist/types.d.ts +32 -32
  89. package/dist/widgets/chart-widget.d.ts +1 -0
  90. package/dist/widgets/common/context-menu.d.ts +5 -0
  91. package/dist/widgets/common/drilldown-breadcrumbs/drilldown-breadcrumbs.d.ts +5 -0
  92. package/dist/widgets/drilldown-widget.d.ts +1 -0
  93. package/dist/widgets/table-widget.d.ts +1 -1
  94. package/dist/with-tracking-e2a077f9.js +109112 -0
  95. package/package.json +19 -14
  96. package/dist/ai/loading-page.d.ts +0 -2
  97. package/dist/with-tracking-d12a4632.js +0 -78010
@@ -27,6 +27,7 @@ export type AiContextProviderProps = {
27
27
  * );
28
28
  * }
29
29
  * ```
30
+ * @group Generative AI
30
31
  * @beta
31
32
  */
32
33
  export default function AiContextProvider({ children, config }: AiContextProviderProps): JSX.Element;
@@ -1,5 +1,6 @@
1
1
  import { HttpClient } from '@sisense/sdk-rest-client';
2
2
  import type { Chat, ChatRequest, ChatResponse, ChatWithoutHistory, DataModel, GetNlgQueryResultRequest, GetNlgQueryResultResponse, LlmConfig, Perspective, QueryRecommendationConfig, QueryRecommendationResponse, SendFeedbackRequest } from './types';
3
+ import { DataSourceField } from '@sisense/sdk-query-client';
3
4
  export declare class ChatRestApi {
4
5
  private httpClient;
5
6
  constructor(httpClient: HttpClient);
@@ -14,11 +15,13 @@ export declare class ChatRestApi {
14
15
  private postChat;
15
16
  private deleteChatHistory;
16
17
  private sendFeedback;
18
+ private getDataSourceFields;
17
19
  ai: {
18
20
  getNlgQueryResult: (request: GetNlgQueryResultRequest) => Promise<GetNlgQueryResultResponse>;
19
21
  getQueryRecommendations: (contextTitle: string, config: QueryRecommendationConfig) => Promise<QueryRecommendationResponse>;
20
22
  setLlmConfig: (config: LlmConfig) => Promise<unknown>;
21
23
  sendFeedback: (request: SendFeedbackRequest) => Promise<unknown>;
24
+ getDataSourceFields: (dataSource: string) => Promise<DataSourceField[]>;
22
25
  chat: {
23
26
  getAll: () => Promise<ChatWithoutHistory[]>;
24
27
  getById: (chatId: string) => Promise<Chat>;
@@ -1 +1,2 @@
1
- export declare const UNKNOWN_ERROR = "Oh snap, something went wrong. Please try again later or try asking a different question.";
1
+ export declare const UNEXPECTED_ERROR = "Oh snap, something went wrong. Please try again later.";
2
+ export declare const UNEXPECTED_CHAT_RESPONSE_ERROR = "Oh snap, something went wrong. Please try again later or try asking a different question.";
@@ -1,4 +1,4 @@
1
- import { MetadataItem } from '@sisense/sdk-query-client';
1
+ import { JaqlQueryPayload, MetadataItem } from '@sisense/sdk-query-client';
2
2
  import { ChartDataOptions } from '../../types';
3
3
  export interface ChatContext {
4
4
  id: string;
@@ -61,7 +61,7 @@ export type AllPossibleChartOptionKeys = KeysOfUnion<ChartDataOptions>;
61
61
  export type AxesMappingKey = Exclude<AllPossibleChartOptionKeys, 'seriesToColorMap'>;
62
62
  export type AxesMapping = Partial<Record<AxesMappingKey, Array<{
63
63
  name: string;
64
- type: string;
64
+ type?: string;
65
65
  }>>>;
66
66
  export interface ChartRecommendations {
67
67
  chartFamily: string;
@@ -103,15 +103,7 @@ export interface Perspective {
103
103
  isDefault: boolean;
104
104
  }
105
105
  export interface GetNlgQueryResultRequest {
106
- style: 'Small' | 'Medium' | 'Large';
107
- jaql: {
108
- /** The data source that the JAQL metadata targets - e.g. `Sample ECommerce` */
109
- datasource: {
110
- title: string;
111
- };
112
- /** The metadata that composes the JAQL to be analyzed */
113
- metadata: unknown[];
114
- };
106
+ jaql: Pick<JaqlQueryPayload, 'datasource' | 'metadata' | 'filterRelations'>;
115
107
  }
116
108
  export interface GetNlgQueryResultResponse {
117
109
  data?: {
@@ -125,4 +117,11 @@ export interface SendFeedbackRequest {
125
117
  sourceId: string;
126
118
  rating: -1 | 1;
127
119
  }
120
+ /**
121
+ * The chat mode to use for a chat session
122
+ *
123
+ * analyze: Enable business users to uncover data insights
124
+ * develop: Enable developers to build queries and charts for embedded analytics
125
+ */
126
+ export type ChatMode = 'analyze' | 'develop';
128
127
  export {};
@@ -1,9 +1,10 @@
1
1
  import { ReactNode } from 'react';
2
+ import { ChatMode } from '../ai/api/types';
2
3
  export interface ChatConfig {
3
4
  /**
4
- * Boolean flag to show or hide suggested questions following a chat response
5
- *
6
- * If not specified, the default value is `false`
5
+ * Boolean flag to show or hide suggested questions following a chat response. Currently
6
+ * follow-up questions are still under development and are not validated. Therefore, follow-up
7
+ * questions are disabled by default.
7
8
  */
8
9
  enableFollowupQuestions: boolean;
9
10
  /**
@@ -18,6 +19,12 @@ export interface ChatConfig {
18
19
  * If specified, the data topic selector screen will not be shown.
19
20
  */
20
21
  defaultContextTitle?: string;
22
+ /**
23
+ * The chat mode to use for a chat session.
24
+ *
25
+ * @internal
26
+ */
27
+ chatMode?: ChatMode;
21
28
  }
22
29
  export declare const DEFAULTS: Readonly<ChatConfig>;
23
30
  export type ChatConfigProviderProps = {
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export default function ChatIntroBlurb(props: {
3
+ title: string;
4
+ }): JSX.Element;
@@ -7,13 +7,13 @@ export type ChatbotProps = {
7
7
  /**
8
8
  * Total width of the chatbot
9
9
  *
10
- * If not specified, a default width of 500px will be used
10
+ * If not specified, a default width of `500px` will be used.
11
11
  */
12
12
  width?: CSSProperties['width'];
13
13
  /**
14
14
  * Total height of the chatbot
15
15
  *
16
- * If not specified, a default height of 500px will be used
16
+ * If not specified, a default height of `900px` will be used.
17
17
  */
18
18
  height?: CSSProperties['height'];
19
19
  /**
@@ -44,6 +44,7 @@ export type ChatbotProps = {
44
44
  * }
45
45
  * ```
46
46
  * @param props - {@link ChatbotProps}
47
+ * @group Generative AI
47
48
  * @beta
48
49
  */
49
50
  export declare const Chatbot: import("react").FunctionComponent<ChatbotProps>;
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ type CollapsibleProps = {
3
+ text: string;
4
+ };
5
+ /**
6
+ * Text container with an expand/collapse button for text over the character limit.
7
+ *
8
+ * @internal
9
+ */
10
+ export default function Collapsible({ text }: CollapsibleProps): JSX.Element;
11
+ export {};
@@ -1,13 +1,13 @@
1
1
  /// <reference types="react" />
2
- import { GetNlgQueryResultRequest } from './api/types';
2
+ import { UseGetNlgQueryResultParams } from './use-get-nlg-query-result';
3
3
  /**
4
4
  * Props for {@link GetNlgQueryResult} component.
5
5
  */
6
- export type GetNlgQueryResultProps = GetNlgQueryResultRequest;
6
+ export interface GetNlgQueryResultProps extends Omit<UseGetNlgQueryResultParams, 'enabled'> {
7
+ }
7
8
  /**
8
- * React component that fetches and displays a collapsible analysis of the provided JAQL using natural language generation (NLG).
9
- *
10
- * This takes the same props as {@link useGetNlgQueryResult} and makes the same API call but presents the result in a collapsible container.
9
+ * React component that fetches and displays a collapsible analysis of the provided query using natural language generation (NLG).
10
+ * Specifying a query is similar to providing parameters to a {@link useExecuteQuery} hook, using dimensions, measures, and filters.
11
11
  *
12
12
  * ::: warning Note
13
13
  * This component is currently under private beta for selected customers and is subject to change as we make fixes and improvements.
@@ -15,56 +15,16 @@ export type GetNlgQueryResultProps = GetNlgQueryResultRequest;
15
15
  *
16
16
  * @example
17
17
  * ```tsx
18
- * import { SisenseContextProvider } from '@sisense/sdk-ui';
19
- * import { AiContextProvider, GetNlgQueryResult } from '@sisense/sdk-ui/ai';
20
- *
21
- * function Page() {
22
- * return (
23
- * <GetNlgQueryResult
24
- * jaql={{
25
- * datasource: { title: 'Sample ECommerce' },
26
- * metadata: [
27
- * {
28
- * jaql: {
29
- * column: 'Date',
30
- * datatype: 'datetime',
31
- * dim: '[Commerce.Date]',
32
- * firstday: 'mon',
33
- * level: 'years',
34
- * table: 'Commerce',
35
- * title: 'Date',
36
- * },
37
- * },
38
- * {
39
- * jaql: {
40
- * agg: 'sum',
41
- * column: 'Revenue',
42
- * datatype: 'numeric',
43
- * dim: '[Commerce.Revenue]',
44
- * table: 'Commerce',
45
- * title: 'total of Revenue',
46
- * },
47
- * },
48
- * ],
49
- * }}
50
- * style="Large"
51
- * />
52
- * );
53
- * }
54
- *
55
- * function App() {
56
- * return (
57
- * <SisenseContextProvider {...sisenseContextProps}>
58
- * <AiContextProvider>
59
- * <Page />
60
- * </AiContextProvider>
61
- * </SisenseContextProvider>
62
- * );
63
- * }
18
+ * <GetNlgQueryResult
19
+ * dataSource="Sample ECommerce"
20
+ * dimensions={[DM.Commerce.Date.Years]}
21
+ * measures={[measureFactory.sum(DM.Commerce.Revenue)]}
22
+ * />
64
23
  * ```
65
24
  * @param props - {@link GetNlgQueryResultProps}
66
25
  * @returns Collapsible container wrapping a text summary
26
+ * @group Generative AI
67
27
  * @beta
68
28
  */
69
- declare const _default: import("react").FunctionComponent<GetNlgQueryResultRequest>;
29
+ declare const _default: import("react").FunctionComponent<GetNlgQueryResultProps>;
70
30
  export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: "data:image/gif;base64,R0lGODlh9AFNAff/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFAwD/ACwAAAAA9AFNAYcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnkkkw26eSTUEYp5ZRUVmnllVhmqeWWXHbp5ZdghhkUAGSWaWaZcJ2pJplprnnmW26+uVacdJppVp143olnnGftyedYfgYKVqB+Dkponl4dimhXigqqVaOOZgVpoY9OuuhVlkZKVaaaTsUppVV9uqdVonb6VKmgQoVqqqeueqlTrpr/qlSsrC5F66tM3VqnqrrielSvo+YK7K7CDvvnrMb6OlSyygrFLJ22PusmstIeW1S10P6K7bRGbcttt95+u2y4a15LbrlEnYvuuOrK6Wy77gIFr5rszsvmu/aiKW++du7L770//atvwAID3FPBBu+EcMI6LQwAwQv75PDDPE1MscITH2xxxRtjnHHDHYNs8cU3jcwwTSZ7/HFOJp8cU8sk1wQzyy3TXHPJM9sEs8sv7RyzTD7/DFPQOu+Mc84y+5y00igT3TTTMwXN80pSC91S1VFL/bTWL2MNtNddcx222D1XbbVKZp+NUtpfs1222WOTfbXbb8NdN9hz081S2lOf/8S32ib9fTfeVAvu0t99j4T44HKjbXjefB++OOR6p4Q44CRdTnnla2u+t+eFg2656KNPHvrjjpPu9+WYg8T65nafjnrnqpfEeuIf3d567q+nXnvmt8s+e+C6+2467b8rHrzxxxO/PPLNO5+8SLrvzlH1zEeePee2F19679BHr/zz4Q8PPPnST887+umLPz747bsfUvXWb4T99+p7RD/++evvffnaW93/4me+9/WvI/cTIPsMeMDrDZCA3KNeAiEYQQkukIEFtCD8undBDAZQgQ203wPPt0EKEo6DJSSh/DS4wvmNUIUtXF8IRZhCGGbQhTX0YOwAuEMeNg6FMZRhEP/9l0Md/hCIHwThDXE4QxoOkYhPRGATnZhEHzpte0dEYg+taDTYZdGGJ1TiFsUYRjJeUXhlNCHSsAi1zy3RiGtE4xnl2EY3jpF/c2RjHPV4M8lV0Ix75OPIGFdHO6YRkCkb2h8ROci4FdKQj6RjIgnZR0UekosOy9oX8VhJS0YSkp2kZMg82cWthVKUmTTlKf1YSk0GEpUIK9orYSkwnLRSlSvDZS5dOUlZNtKXo1zaL4G5S2EWU5cFE9kxkfkvji2TmflyZiptNk2VJVNjEZNmLLV5TWzWEmLf9GY4ucmvMY1TnNH0VzPVWU582ate73RnPM3ZTniqC1zzMtc85dn/Lm3105/3xOc/9TlQgYaLWuRCqLeildBibcuh2GpKQxn6UFhFtFXV4lVGLbrRqDzLUx+VirRAyqxQGYtUw8JUSlEKLEnpqlK02spLYRqrRKHKUKXCqai+siqyZEpPkwIqpMryU7XIqk+1QktSlRosMTn1qVCNqlSnStWqWvWqWM2qVrfK1a569atgDatYx0rWspr1rGhNq1rXyta2uvWtcI2rXOdK17ra9a54zate98rXvvr1r4ANrGAHS9jCGvawiE2sYhfL2MY69rGQjaxkJ0vZylr2spjNrGY3y9nOevazoA2taEdL2tKa9rSoTa1qV8va1rr2tbCNrWxnS9vaPNr2trjNrW53y9ve+va3wA2ucIdL3OIa97jITa5yl8vc5jr3udCNrnSnS93qWve62M2udrfL3e5690QBAQAh+QQJBAD/ACwAAAAA9AFNAQAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnkkkw26eSTUEYp5ZRU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sZCNrGQnS9nKWvaymM2sZjfL2c569rOgDa1oR0va0pr2tKhNrWpXy9rWuva1sI2tbGdL29oy2va2uM2tbnfL29769rfADa5wh0vc4hr3uMhNrnKXy9zmOve50I2udKdL3epa97qcDQgAIfkECQMA/wAsAAAAAPQBTQEACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhh94BIKKIICI34okopghAibyp6OKLI7JIG4w01iijazXmaOONqOno4448jvbjkDAGGRqRSBZpJGdJNunikpk5KeWTUFI25ZUpVikZllyeqOVjXYZJ4peLiWkmmYmZqSaahqnpJpuEubkmnIHJ+SadftkpJ5586Wknn3r5uSegdwn6J6F1GTooonIpeiijcDm6KKRtSfoopWtZOimmaGl6KadmebopqGSJeiepZZk6KqpfqXoqq2G5/zonrLHKKiatYtl6Jq5e6borr1z5eiuwwQrbJbHFGoslslspyyWzWjm7LLRYSXsltdVaK2VTOUYKJFvdcqutk0htm2qTZ5Fb7rjoEhUmWO/2emxR7LYL1KpU4TuVvjrVm+S9fl4lqMABA+zvkD85uq/CUkma8MEI8+QpVJpGVbFPEPsosaniitrxxBtn/O1Ntiol61In7yRyuDj5um7JRrnc78o05mQsvTe7m3PLNFNJsrJDSRu0szb3rOLPQhtMtNJAI220lzaN+7C2U1vL89Nj1lRvT/5yvXXUWGc908Ehs6ty12CHrTXEM6NdtNs0qR13xm+TfbXdcz+9Nt1p8/+9t99jG/034DLR7DTbg4uc98qJIx644Y3DHZPej0M+ueB941045Zdj3nnPmUsOk9yjY/056KFLvbjnLoW9Yummp5706qyz5PrrLd1+t9WyM9667r+7fvjslceeO/DHCz/8zrRzvtLtYqcEPe69pxx57ShNT73009ctc/WWq6R98sgvr6r3yovfve3rt32+++WfpH30Js2/vfkMo59+9vM/33/ZlgJg/Or3P+6ND2MO81oB5bdABh6wap86WwNLYj//PZBpw8LgAEliv/uNpIM4i5dQQGjAC1Kwgke5VsxQ6MAJfpCEL/uRyVhIQBqe0IZMQZHFcPhCHoqkgx4EDQz/a+jCHw5RSD4MCRBLaELRHPGGTexhFI+URCVW8SNPdOIVsVhEKUKvR1v0SBjF2MXPjLEjZ+RIGjGzRo20MSNvtEwZrThFL25Qi+1jIunU98XU1JGDedSj8U7zRzsOUpDOI2Qf2XdHKO4RjPuz4CP5OElFVpJ/kaTkISG5SU1iD5G+Y00mJflJT4ZvNZc0peJgV0pOnjJ4qDtdKHHUSlKuUpaEa00tbem4zb1Sl798STCFOcvYFNOXucTl12ZzS/AtDX+8q00yi6c6/UXTNprbHdXgt83cLJObxLNm03RTTQGO05zM8+Y1FfhMBIaTnO2E4Pc0CDPgpJOe7xuasIgz/0991lNnujLOP1eYzxh6zEQcy2FCUbbQ5IDMKQ9VaACdk8AdKmphF43OwKyy0ap0dDr8suivsjUr7IiwKydt1ry+Y65SqWssLS2PxirFMnDVFFs4zalOd8rTnvr0p0ANqlCHStSiGvWoSE2qUpfK1KY69alQjapUp0rVqlr1qljNqla3ytWuevWrYA2rWMdK1rKa9axoTata18rWtrr1rXCNq1znSte62vWueM2rXvfK17769a+ADaxgB0vYwhr2sIhNrGIXy9jGOvaxkI2sZCdL2cpa9rKYzaxmN8vZznr2s6ANrWhHS9rSmva0qE2talfL2ta69rWwja1sZ0vb2ifa9ra4za1ud8vb3vr2t8ANrnCHS9ziGve4yE2ucpfL3OY697mpDQgAIfkECQQA/wAsAAAAAPQBTQEACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPrdw2gv38A+7H334AEDhggeAUmqKB/B2a34IMQNjgdhBRGKGFzFWZo4YXIaejhghwa9+GIIIYYHIkoJmiibym2qOKKubkoI4Ew3jbjjf/VSBuOPPanY2w9Bvkjf0EKOaRqRSZ5ZGpJKrlkaU06+aRoUTY5ZWhVRnnlZ1lauSVnXWr5pWZhejnmZWWKeWZlaZq5pmRtqvkmZHG6OWdjdcp552J52rlnYn1K+SeggQo6qGGFGnooYYkWuShijRr5aGGRSjppYJVaeulfmfa4qWCd8vgppqHeOCpgpZp6ql+pzrgqq626//hqX7HKOutetbZ4K665orirXr36+itewZI4LLHFfnjsXckqu6xdzWb4LLPRUjgttNVueK1c2Wq7bVzdKvhtXeG+OC635dJ47lzp5uiUtOtW1C6DSdka70Pz+miUp/c2NO++ivZb0L9DhSkwQukWnObBBiUcVJ5gWeuWxFKF+3CgWqV4lsZPZXtxolWJ6pXIS3n8U6ZR+RlywERFe3Ko72Z5VZdKJftyqSUvXLHORwV7c6r1xpmy0D336pPRRRXalNIAx3q0zwozHbTULbf6c65Codx0o0XD/LTNX2sdtdhVRwpUtWF3OrbaW2N8Ndg61fox0G3XObfLOSHdk95l2/99tsU4Fbs31HXLnHW5gQset+JIGby2yTU1u5PkNav8NuQyoZ045ZWT3DfiM3V7k+hL29t1u6FjnrrmUHlYer6ZA7666lPRu3O+AMLkcEy7s4a7vi6hHjvoq/0OfEsEv5Q8ksYrvzzyz59m/PEq4e589KZNn/tKv1+P/Wjab1+99cGTj1r40Js/vvrZo78++yhNz6T7KcnPkv3S0x9/8/fzn7/27+teAOFHJf2ZxIAHBOD/8HcSBJbEgViCoEgkOEEFts+CDcRgBhlImvCJL4EaJIkH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ZVJU4o6kqMcozKTucJ3UzCdD6RlIkpIzpjzlZjipSsqwspWSeSUsISPLWTqmlrZsjPFyWZld8nIyvvxlZPAoTFrKr5i9PCYyganIZT6mmc7UpQKjaUwLUpMx9rumK52ozVhysJveVCE4w0nIcQ6znOaspg7T6Ul4sTMz63xnO5koz1VKsZ7z9CI+7Un/xn2W0or+/Kf4Alo+OxL0eGI8qOPoqNAEIrKh93MkRMP0qYkWCVoWzahGN8rRjnr0oyANqUhHStKSmvSkKE2pSlfK0pa69KUwjalMZ0rTmtr0pjjNqU53ytOe+vSnQA2qUIdK1KIa9ahITapSl8rUpjr1qVCNqlSnStWqWvWqWM2qVrfK1a569atgDatYx0rWspr1rGhNq1rXyta2uvWtcI2rXOdK17ra9a54zate98rXvvr1r4ANrGAHS9jCGvawiE2sYhfL2MY69rGQjaxkJ0vZylr2spjNrGY3y9nOevazoA2taEdL2tKa9rSoTa1qV8va1rr2tbCNrWxnS9vaDdr2trjNrW53y1uPBAQAIfkECQQA/wAsAAAAAPQBTQEACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfDhWA9+/gwXP/H58yvPnz4cmr74i+vXvv6+NPfE//vfz7C+vrt4+/v8D9APLnX3wBFujegOQZqGB7CG634IPoNXgdhBSaJyF1FWYo3oXPaejhdxw29+GIAISoHIkkmogciimqSByLKGZ1notiwchiVArSqJWNNzaloY5V8dgjUjEC2Z2QQxLFo5E+IplkUE6WyGRSUT7ZU5UgTlkUlkX+xOWGWkL55Yg+jZlemF6a+eGVaoKJ5k5trqlTnGe+mROdHs6JZ5121rTnjzf9aWGffgpKYaCG8knoS4keWmijWS4KE6QPPkopfJIyemmOMm2qaKbleVpgp6K6CepJpY4aU6qmnkoSqwCu/worpq6aNOt+mt4qZa2v6kpfrrfyWpKvv7ZELK3CgnTsgcYem6xIyzLIUrS7PssetYOuRK21H2GbbajbcsuRt5/aiq2445IbKbjhoouRuuuiSq67GcGLrLze0vuuvdrOq69F9laLb77/UsSvSgcXLFHCKDGsMETw9qvuw/NNjHDEFEdk8cUYZ+zQxuz66/HHBIcs8nLlMlWyySsPZ2CT0U4bsMsZUtkuy+cC1+KWMcvscG5C8uxssx0DHeVQywJ78m1cIk2s0i3TpqaYuk5adG1xUj2r1SDP9idQwXK9dGyGpskqqV3D1qjZotJ09WuUsr2p22O7NneZnlp6M9x54/8dt949q12q3ILiFHVrqYKd6J05q4zrVLAq/rWegR/lKMxnEz41nJUrKafNYfvdJptJC72zUb5q/aXkqXu+pOmha46k6rHLDqPrVTvtJO5b0340660LNTvqudu+u/GJw/458b2LvjlPjSsPoeOZO581550zz6lTkVtPJ+V7gy6gVNVDv7bhh682uPeT21Q3a32T/jfd76s/v/nxo50+/OfLn7/Y0SNb2ZA3QP0FUIB7Al7bDHhAwX2PgJCS1dtkcz32LRBqDaTgmIQXPKKlDWtY4uDTXDKz3fxOhB2U2AeZZiPp1Q5n2TPh8niXQhiWLjg1I1L4GvYzHAYIczfk2Ar/j3OvI+3QXBMc2UHq16skKrEgQxxJCZ+okChCq4dUHIgTpYjFLP6ji1xkYhbBeEUxUpGMIdniGNWYRiuekY1tzKAXv4jGOB5xjlMUYgznSMc6KuuOeMyjDbvHR4METGA83CMfD0nCIBaSIIz0YA0f2Uc3NrF4lISkH8uIyUxqEY6XJKQnNWnJYTVvlKQ0IxLLh8r/gNKUyWtlKuXos//J0pX7k+T9bolLWtZyl7ysJCB1WcBgftKXjeyfMWc5NPQVc5nHVCQDKwhNKEqTfqOrJkKGic0NanObjsTf6r6ZkHD6b3jkLOcIaWildC5xkr7LkztJdkrLkWmeD+mk+BaE/8+KsRKI+uknwGJ5lZQJtCLrO6heLqjQhV6qoX55KET7EsGJRrRwFgVM+zKqUWpytKNm+qhhxinSkVappIpBJ0pT2s6VsjSHLqVMpWLKmWLR9KY4zalOd8rTnvr0p0ANqlCHStSiGvWoSE2qUpfK1KY69alQjapUp0rVqlr1qljNqla3ytWuevWrYA2rWMdK1rKa9axoTata18rWtrr1rXCNq1znSte62vWueM2rXvfK17769a+ADaxgB0vYwhr2sIhNrGIXy9jGOvaxkI2sZCdL2cpa9rKYzaxmN8vZznr2s6ANrWhHS9rSmva0qE2talfL2ta69rWwja1sZ0vb2jHa9ra4za1ud8vb3vr2t8ANrnCHS9ziGve4yE2ucpfL3OY697nQja50p0vd6lrXJAEBACH5BAkDAP8ALAAAAAD0AU0BAAj/AP8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr394cgPfv4MFz/x+PMrz58+bJq+eIvr377+vjT3xP/738+wvr67ePv7/A/QDy5198ARbo3oDkGahgewhut+CD5zV4HYQURiihdBVmGN6F0GnoIXwcMvfhiACEqByJJJp4HIooqliWhVex2KKLWykolYwz0miVhk3hyKKOU+V4lI8yAvmUj0gR+aORSynpXVFOLsmkUVGKJ1SVQk4ZFJYb/sRlilpe+aWVPY05YphemtnlTmp+iGaZbaanU5wevjknnXLehCePduq5Z541/VlhnzYJCiNNhlJI6EyJHhpToxAu+iikgMJE6YKSvnRppZpuamCmLXm6ZqeiBgjqSqWOGmqqAJ6aEqtkuv8E636uljfrk6TeemCtJekK4qq+MsjrSMHiCmyxjg7bEbIlHstsrMqyx6yzz/4arbTTolotp9diVC1L23LbbUXbghsutONaFK625xqb7kXrsnvuu97Gq1K77tI737z3tqsvvPy+6u+/FOErb7kE7xuwrQsn/JDB/TbscEP4NiswwhNDVPHB2Wb8MMQXf+vxxwNH/OzIJEts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JQdQiqlvhQ4sqMcE+rsPKZQi2lveoB5KLnjuCFMUrZc+i7erjAISgR5tjJNCGhkckbQyDj1pZkyn0s/oraUwjalMZ0rTmtr0pjjNqU53ytOe+vSnQA2qUIdK1KIa9ahITapSl8rUpjr1qVCNqlSnStWqWvWqWM2qVrfK1a569atgDatYx0rWspr1rGhNq1rXyta2uvWtcI2rXOdK17ra9a54zate98rXvvr1r4ANrGAHS9jCGvawiE2sYhfL2MY69rGQjaxkJ0vZylr2spjNrGY3y9nOevazoA2taEdL2tKa9rSoTa1qV8va1rr2tbCNrWxnS9vaItr2trjNrW53y9ve+va3wA2ucIdL3OIa97jITa5yl6uYgAAAIfkECQMA/wAsAAAAAPQBTQEACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry5c7EAokufTh3A8+tBq2vfLh27d5vcw4v//06+pfjz48urH4m+/fn18Du6n58+vv2J9PPXv89/of7/3PUn4EEAFrjdgAj+Y+CC2iXIH4MQUudgfBFW2N2E5VmooXUYerfhhh1e9+GHITY34oglKnciiikityKLLRL34okxDjcjjTUGdyOOOfa244o9+vgjjEHiNiSQRRp5JJFJzrYkj006+SSTUb42JZVVsnYllFlquSWJXbr2JZhhrjYmmWWmdiaaaZq2JohtovamhnHKOWeFdbp5J555krYnn32K9meEgY42KKGFgnYohIkqVR1UizLYqFD/JRXpgpP6xGhRlxqYqU5satpppZ/e9GJ2o+pXak0/ApVqfqvK//SkqK+6FytMW/JU63y3mjfmTrva2qtKb4Ia7HvDpnSnsccGmOxJf+bUbHjPmrSoqdMeWC17kYKX7aPbitQptt9eGO5HqXpbbnTnovuqut+261GwrK4rr3z0zmTvvRs1W2+2/GoEsL4DB4xRwbJOa/DB8dLk78IXlftvrRBHvC/BFFdc0bocOvyuxhRxzO7E3YIcssjwXmvyySiTHO3K+Ik8sstzwsxyyykXa3PMMku77M489+zzmUAHLfTQuRYtkczT6Zq00hExbS6wS0J989FO72j1xlLP3NOMW1vUtde00hk212NziujZaHeNFIBsCzx2x47u1xZ6cOG91Nx06/9YoFmeGsW3cBaCVThRcwOHJVVcls20b2BbdSOqbu82JOOtOo6zklU/NeXXlXM+K1NfZv34bWvW/SvSWEuZ+lE1s86xbXsK/jO5m8s2KOIv5ywxbSr/VDLNDes+POjBezy768cz23xMrYuZLtWj+v4wbLs6X73yxWOfPe7TY9y99N9bfynxGXt/rPnjin+9le9DrzD3+aof/0vj43q/mb/rj7D89YNf/lhysYSlT4D981UCDRg+BA5QWctz3/mMV0ACRlCCh2JeBSF4QQzWToML5GAHGdg7Co4QWqdjX+mAJzULRs+DK2RhCkWYO/qtrjaho+EJYdg52rWQWDnEyQ3/cZg2He4QfZET3QytVUTTaU03iTPiEVV4OMs1EYVBdCKchJRFkkSRUmb7zRex+EPeYcpGV2RiF4cCq+OMUY1ldErTnPPGktQRZnfk1hpNlkdxpdFmfQxJIDU2SHftEWSFnNcf8bhIPS4RaIcUZCQRGUeUTJKQlSRjDXd2SUNuEpIvhOMUGflJUYawaI+0ZClBuUEgtlJpqzTl/M4WSzu+Emq3lGL52JZLVf6Pl790yQPDNksS7jJuAimmMT+GTIKsD3wNbOZAAmjD9kmzIMdE4u6uaRBmyi553HSmNan3vHBOs5zfvJ05CZRBV4Fznd0sofC2CU+FfNCMOqunf/Kp/7bX6ZMh/oQd0f75kBha6mkELejo5LjQhEYtc1E5kkPFNrmqVHSiFlucVBqH0YxuyitV7Kgi4VaWwInUlnpji7BOytKWuvSlMI2pTGdK05ra9KY4zalOd8rTnvr0p0ANqlCHStSiGvWoSE2qUpfK1KY69alQjapUp0rVqlr1qljNqla3ytWuevWrYA2rWMdK1rKa9axoTata18rWtrr1rXCNq1znSte62vWueM2rXvfK17769a+ADaxgB0vYwhr2sIhNrGIXy9jGOvaxkI2sZCdL2cpa9rKYzaxmN8vZznr2s6ANrWhHS9rSmva0qE2talfL2ta69rWwja1sZ0vb2h7a9ra4za1ud8vb3vr2t8ANrnCHS9ziGve4yDVNQAAAIfkECQQA/wAsAAAAAPQBTQEACP8A/wkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzt0tgO/gw4f/707epPjz6M+XX68xvfv34NnLjwi/Pvz5+BPa338/v3/+APbn33oBFvjegOUZqKB7CG634IPoNXgdhBRGKKF0FWYo3oXQaehhfBwy9+GIAISoHIkkmngciiiqSByLLbooHIwxyugbjSza2BuOMOq4G485+ogbkD0KWRuRRRo5G5JJKvkak0062RqUUUqZGpVVWnkalllqSRqXQXq5JZg1ilkamWGaORqaZaoJGpttuukZnHHKuRmdKdr5GZ4j6rknnx76OSegGgrKGaGBGqoZooUqmhmjjTpqGaQZSnoZpRVaOimmEGpaGaedejoZqAuKShmpCpp6KqoBqjoqqwC6/yoZrLHKChmt/Nl6K6726borrwz6+hiwBwrrGLHBGssYshYqW9N4UzG7obMtpbqUtNBSi1KlSGH7nbYn1QmUt+CShGNR2JYrEpJESavuR1gKxey7HoEpL7H0bgRnUMDm2x6d4/LqL0aABgzrwBchajCpCFtEqU+sNlwRpj8xLPFEoFbM6cUSoaoxpBzTFzHEjIYMEa4f82nyySiTDPDKD/W7sL0wO4Qsv2TWHDO+OFMZVq9vAf2Uu/eyy1WoZCGdFNFDAXl0ol592G266KaJldVWdenyvFNzuxWPVzldNNVLl9oVk1ShPTPXTe0HFpdQwb0107nlzBSaPXmbrW0vd/+Nt056g8g3nn6zCXjgJQ6uctWL34T4t7SV3LTCNj0OuWwPr13ws5YvSXHK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9a1wjatc50rXutr1rnjNq173yte++vWvgA2sYAdL2MIa9rCITaxiF8vYxjr2sZCNrGQnS9nKWvaymM2sZjfL2c569rOgDa1oR0va0pr2tKhNrWpXy9rWuva1sI2tbGdL29o02va2uM2tbnfL29769rfADa5wh0vc4hr3uMhNrnKXy9zmOve50I2udKdL3epa97rY/UlAAAAh+QQJAwD/ACwAAAAA9AFNAQAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnkkkw26eSTUEYp5ZRUVmnllVhmqR4AXHbp5ZcAaGkYmGSW2aWYfpmp5ppo4rXmm2y2KRecdMYpJ1t15mnnV3DC1edbf3al56B7XkWol2YdemZZioaZVaOQLlpVpF+CRSmifF7KJVWaRsppp5g+CmqoWI1KalOmQgpVqpVaxWqrk77/KulSsiqKaq2nPoVrrrfuuqlSvhIKbLC8JkVssUgd++tRyuqZbLPLDguto7ROS+1Q1tZZVLazGsVttN5yS9S3dGJL7rXjnvssuUGdWy5Q7oLbbrzbxovuTvYWim++6dprLr895fumTwLLu2/B8yJ8cMFm8sSwwTk9fG/EEusksZoLM0zwxQFfPLFMHjeMU8gf00SywyHfRLLINa1cckwuW3yyTS6TqXLMN69Msc4m12xzzzjTXHPOQcPsM5hAD93y0UIrbfTRsD7tNMhQL8201FB321LWL6vEddI+Y/01TFxD7PXYYk/NUtlRb1021Wi/xLbcbCNrUt1dl1R32mG7/4S31inhTfbedM+99t9m302434sf3njgiCc+EuKMP3625SdFLrlIlLstuOeY66056IavFDnppUN+uumrX/4563873rnrr6seO+y1Z6553iCNjnvuireuu++0hz458SjtXvztyStvO/PNCx888tPPPrz0omNP0u6be8T98saH5Hz01Gev/fHlbz9+9dazD7z66aN/vvjrX9+++ffLP3/v9bsfPv/xo1//4Jc/AhaQcwNEYAIVeEAGNhCA+/sI93jXkQU6EHr+Sx3+HijBAF7wffrD4AZB+MG3/U6EBkRhCElYwqzJjoPesyAEVZhCE4JPgyP8XwcjKEAWttCG9vPhDP+FOMS43dCFR0Ti84hYxKqhDocZVCL5aFhDJ75Qh000YhCBeMKrPZGLW9RiGKXYxb5VDotZtGISzXhFNn5RjWssWhx5dkYv1hGMUxRjHsnYRjoODopLhOMcU8Y3QhZSbWV0YyIR+caKzYSJP/RjIyVZODn+kY99tGQmKVlJQz4Sj4v0ZCcVeUiANc2OlyTlJDlGtIfJTJWrdCXYNAk3We6MkaOc2SxFeUqBdYyWqeRlKTWWMX/9UpdWQ2YyhdlKd/0EmMM05siUWUxxJYyVr8TmLR35THX9y5bVNGU2wQkva/ZLYRsj5jHR+c1mrUuc65RmOn35zmBVS57dhOc86SX/LV/1ypvnZFdABcqUXa0KoPUi6ECzFZVXTUWh4TInsyQqlU6VyloFxWhGp6WVRnEFWgdVVkiPZSl9CcqeFSXWQ1UaHX/GqlaGwpV1ZNVRVm3FodoBVUk1tdNLgUdVjPJoUG1lHm21xah4CtSdlsrUpjr1qVCNqlSnStWqWvWqWM2qVrfK1a569atgDatYx0rWspr1rGhNq1rXyta2uvWtcI2rXOdK17ra9a54zate98rXvvr1r4ANrGAHS9jCGvawiE2sYhfL2MY69rGQjaxkJ0vZylr2spjNrGY3y9nOevazoA2taEdL2tKa9rSoTa1qV8va1rr2tbCNrWxnS9vaOdr2trjNrW53y9ve+va3wA2ucIdL3OIa97jITa5yl8vc5jr3udCNrnSnS93qWve62M2udrfL3akGBAAh+QQJAwD/ACwAAAAA9AFNAQAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnkkkw26eSTUEYp5ZRUVmnllVhmqeWWXHbp5ZdghhkUAGSWaWaZcJ2pJplprnnmW26+uVacdJppVp143olnnGftyedYfgYKVqB+Dkponl4dimhXigqqVaOOZgVpoY9OuuhVlkZKVaaaTsUppVV9uqdVonb6VKmgQoVqqqeueqlTrpr/qlSsrC5F66tM3VqnqrrielSvo+YK7K7CDvvnrMb6OlSyygrFLJ22PusmstIeW1S10P6K7bRGbcttt95+u2y4a15LbrlEnYvuuOrK6Wy77gIFr5rszsvmu/aiKW++du7L770//atvwAID3FPBBu+EcMI6LQwAwQv75PDDPE1MscITH2xxxRtjnHHDHYNs8cU3jcwwTSZ7/HFOJp8cU8sk1wQzyy3TXHPJM9sEs8sv7RyzTD7/DFPQOu+Mc84y+5y00igT3TTTMwXN80pSC91S1VFL/bTWL2MNtNddcx222D1XbbVKZp+NUtpfs1222WOTfbXbb8NdN9hz081S2lOf/8S32ib9fTfeVAvu0t99j4T44HKjbXjefB++OOR6p4Q44CRdTnnla2u+t+eFg2656KNPHvrjjpPu9+WYg8T65nafjnrnqpfEeuIf3d567q+nXnvmt8s+e+C6+2467b8rHrzxxxO/PPLNO5+8SLrvzlH1zEeePee2F19679BHr/zz4Q8PPPnST887+umLPz747bsfUvXWb4T99+p7RD/++evvffnaW93/4me+9/WvI/cTIPsMeMDrDZCA3KNeAiEYQQkukIEFtCD8undBDAZQgQ203wPPt0EKEo6DJSSh/DS4wvmNUIUtXF8IRZhCGGbQhTX0YOwAuEMeNg6FMZRhEP/9l0Md/hCIHwThDXE4QxoOkYhPRGATnZhEHzpte0dEYg+taDTYZdGGJ1TiFsUYRjJeUXhlNCHSsAi1zy3RiGtE4xnl2EY3jpF/c2RjHPV4M8lV0Ix75OPIGFdHO6YRkCkb2h8ROci4FdKQj6RjIgnZR0UekosOy9oX8VhJS0YSkp2kZMg82cWthVKUmTTlKf1YSk0GEpUIK9orYSkwnLRSlSvDZS5dOUlZNtKXo1zaL4G5S2EWU5cFE9kxkfkvji2TmflyZiptNk2VJVNjEZNmLLV5TWzWEmLf9GY4ucmvMY1TnNH0VzPVWU582ate73RnPM3ZTniqC1zzMtc85dn/Lm3105/3xOc/9TlQgYaLWuRCqLeildBibcuh2GpKQxn6UFhFtFXV4lVGLbrRqDzLUx+VirRAyqxQGYtUw8JUSlEKLEnpqlK02spLYRqrRKHKUKXCqai+siqyZEpPkwIqpMryU7XIqk+1QktSlRosMTn1qVCNqlSnStWqWvWqWM2qVrfK1a569atgDatYx0rWspr1rGhNq1rXyta2uvWtcI2rXOdK17ra9a54zate98rXvvr1r4ANrGAHS9jCGvawiE2sYhfL2MY69rGQjaxkJ0vZylr2spjNrGY3y9nOevazoA2taEdL2tKa9rSoTa1qV8va1rr2tbCNrWxnS9vaPNr2trjNrW53y9ve+va3wA2ucIdL3OIa97jITa5yl8vc5jr3udCNrnSnS93qWve62M2udrfL3e5690QBAQAh+QQJBAD/ACwAAAAA9AFNAQAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnkkkw26eSTUEYp5ZRUVmnllVhmqeWWXHbp5ZdghhkUAGSWaWaZcJ2pJplprnnmW26+uVacdJppVp143olnnGftyedYfgYKVqB+Dkponl4dimhXigqqVaOOZgVpoY9OuuhVlkZKVaaaTsUppVV9uqdVonb6VKmgQoVqqqeueqlTrpr/qlSsrC5F66tM3VqnqrrielSvo+YK7K7CDvvnrMb6OlSyygrFLJ22PusmstIeW1S10P6K7bRGbcttt95+u2y4a15LbrlEnYvuuOrK6Wy77gIFr5rszsvmu/aiKW++du7L770//atvwAID3FPBBu+EcMI6LQwAwQv75PDDPE1MscITH2xxxRtjnHHDHYNs8cU3jcwwTSZ7/HFOJp8cU8sk1wQzyy3TXHPJM9sEs8sv7RyzTD7/DFPQOu+Mc84y+5y00igT3TTTMwXN80pSC91S1VFL/bTWL2MNtNddcx222D1XbbVKZp+NUtpfs1222WOTfbXbb8NdN9hz081S2lOf/8S32ib9fTfeVAvu0t99j4T44HKjbXjefB++OOR6p4Q44CRdTnnla2u+t+eFg2656KNPHvrjjpPu9+WYg8T65nafjnrnqpfEeuIf3d567q+nXnvmt8s+e+C6+2467b8rHrzxxxO/PPLNO5+8SLrvzlH1zEeePee2F19679BHr/zz4Q8PPPnST887+umLPz747bsfUvXWb4T99+p7RD/++evvffnaW93/4me+9/WvI/cTIPsMeMDrDZCA3KNeAiEYQQkukIEFtCD8undBDAZQgQ203wPPt0EKEo6DJSSh/DS4wvmNUIUtXF8IRZhCGGbQhTX0YOwAuEMeNg6FMZRhEP/9l0Md/hCIHwThDXE4QxoOkYhPRGATnZhEHzpte0dEYg+taDTYZdGGJ1TiFsUYRjJeUXhlNCHSsAi1zy3RiGtE4xnl2EY3jpF/c2RjHPV4M8lV0Ix75OPIGFdHO6YRkCkb2h8ROci4FdKQj6RjIgnZR0UekosOy9oX8VhJS0YSkp2kZMg82cWthVKUmTTlKf1YSk0GEpUIK9orYSkwnLRSlSvDZS5dOUlZNtKXo1zaL4G5S2EWU5cFE9kxkfkvji2TmflyZiptNk2VJVNjEZNmLLV5TWzWEmLf9GY4ucmvMY1TnNH0VzPVWU582ate73RnPM3ZTniqC1zzMtc85dn/Lm3105/3xOc/9TlQgYaLWuRCqLeildBibcuh2GpKQxn6UFhFtFXV4lVGLbrRqDzLUx+VirRAyqxQGYtUw8JUSlEKLEnpqlK02spLYRqrRKHKUKXCqai+siqyZEpPkwIqpMryU7XIqk+1QktSlRosMTn1qVCNqlSnStWqWvWqWM2qVrfK1a569atgDatYx0rWspr1rGhNq1rXyta2uvWtcI2rXOdK17ra9a54zate98rXvvr1r4ANrGAHS9jCGvawiE2sYhfL2MY69rGQjaxkJ0vZylr2spjNrGY3y9nOevazoA2taEdL2tKa9rSoTa1qV8va1rr2tbCNrWxnS9vaPNr2trjNrW53y9ve+va3wA2ucIdL3OIa97jITa5yl8vc5jr3udCNrnSnS93qWve62M2udrfL3e5690QBAQAh+QQJBAD/ACwAAAAA9AFNAQAI/wD/CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi/8fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnkkkw26eSTUEYp5ZRUVmnllVhmqeWWXHbp5ZdghhkUAGSWaWaZcJ2pJplprnnmW26+uVacdJppVp143olnnGftyedYfgYKVqB+Dkponl4dimhXigqqVaOOZgVpoY9OuuhVlkZKVaaaTsUppVV9uqdVonb6VKmgQoVqqqeueqlTrpr/qlSsrC5F66tM3VqnqrrielSvo+YK7K7CDvvnrMb6OlSyygrFLJ22PusmstIeW1S10P6K7bRGbcttt95+u2y4a15LbrlEnYvuuOrK6Wy77gIFr5rszsvmu/aiKW++du7L770//atvwAID3FPBBu+EcMI6LQwAwQv75PDDPE1MscITH2xxxRtjnHHDHYNs8cU3jcwwTSZ7/HFOJp8cU8sk1wQzyy3TXHPJM9sEs8sv7RyzTD7/DFPQOu+Mc84y+5y00igT3TTTMwXN80pSC91S1VFL/bTWL2MNtNddcx222D1XbbVKZp+NUtpfs1222WOTfbXbb8NdN9hz081S2lOf/8S32ib9fTfeVAvu0t99j4T44HKjbXjefB++OOR6p4Q44CRdTnnla2u+t+eFg2656KNPHvrjjpPu9+WYg8T65nafjnrnqpfEeuIf3d567q+nXnvmt8s+e+C6+2467b8rHrzxxxO/PPLNO5+8SLrvzlH1zEeePee2F19679BHr/zz4Q8PPPnST887+umLPz747bsfUvXWb4T99+p7RD/++evvffnaW93/4me+9/WvI/cTIPsMeMDrDZCA3KNeAiEYQQkukIEFtCD8undBDAZQgQ203wPPt0EKEo6DJSSh/DS4wvmNUIUtXF8IRZhCGGbQhTX0YOwAuEMeNg6FMZRhEP/9l0Md/hCIHwThDXE4QxoOkYhPRGATnZhEHzpte0dEYg+taDTYZdGGJ1TiFsUYRjJeUXhlNCHSsAi1zy3RiGtE4xnl2EY3jpF/c2RjHPV4M8lV0Ix75OPIGFdHO6YRkCkb2h8ROci4FdKQj6RjIgnZR0UekosOy9oX8VhJS0YSkp2kZMg82cWthVKUmTTlKf1YSk0GEpUIK9orYSkwnLRSlSvDZS5dOUlZNtKXo1zaL4G5S2EWU5cFE9kxkfkvji2TmflyZiptNk2VJVNjEZNmLLV5TWzWEmLf9GY4ucmvMY1TnNH0VzPVWU582ate73RnPM3ZTniqC1zzMtc85dn/Lm3105/3xOc/9TlQgYaLWuRCqLeildBibcuh2GpKQxn6UFhFtFXV4lVGLbrRqDzLUx+VirRAyqxQGYtUw8JUSlEKLEnpqlK02spLYRqrRKHKUKXCqai+siqyZEpPkwIqpMryU7XIqk+1QktSlRosMTn1qVCNqlSnStWqWvWqWM2qVrfK1a569atgDatYx0rWspr1rGhNq1rXyta2uvWtcI2rXOdK17ra9a54zate98rXvvr1r4ANrGAHS9jCGvawiE2sYhfL2MY69rGQjaxkJ0vZylr2spjNrGY3y9nOevazoA2taEdL2tKa9rSoTa1qV8va1rr2tbCNrWxnS9vaPNr2trjNrW53y9ve+va3wA2ucIdL3OIa97jITa5yl8vc5jr3udCNrnSnS93qWve62M2udrfL3e5690QBAQAh/gMyNDIAOw==";
2
+ export default _default;
@@ -1,7 +1,9 @@
1
1
  export { default as AiContextProvider, type AiContextProviderProps } from './ai-context-provider';
2
2
  export { type ChatConfig } from './chat-config';
3
- export { useGetNlgQueryResult, type UseGetNlgQueryResultParams } from './use-get-nlg-query-result';
4
- export { useGetQueryRecommendations, type UseGetQueryRecommendationsParams, } from './use-get-query-recommendations';
3
+ export { useGetNlgQueryResult, type UseGetNlgQueryResultParams, type UseGetNlgQueryResultState, } from './use-get-nlg-query-result';
4
+ export { useGetQueryRecommendations, type UseGetQueryRecommendationsParams, type UseGetQueryRecommendationsState, } from './use-get-query-recommendations';
5
+ export { useChatSession, type UseChatSessionResult } from './use-chat-session';
5
6
  export type { GetNlgQueryResultRequest, QueryRecommendationResponse, QueryRecommendation, NlqResponseData, ChartRecommendations, AxesMapping, AxesMappingKey, AllPossibleChartOptionKeys, KeysOfUnion, } from './api/types';
6
7
  export { Chatbot, type ChatbotProps } from './chatbot';
7
8
  export { default as GetNlgQueryResult, type GetNlgQueryResultProps } from './get-nlg-query-result';
9
+ export * from './translators';
@@ -3,7 +3,8 @@ type FeedbackWrapperProps = {
3
3
  sourceId: string;
4
4
  data: object;
5
5
  type: string;
6
+ rightFooter?: ReactNode;
6
7
  children: ReactNode;
7
8
  };
8
- export default function FeedbackWrapper({ sourceId, data, type, children }: FeedbackWrapperProps): JSX.Element;
9
+ export default function FeedbackWrapper({ sourceId, data, type, rightFooter, children, }: FeedbackWrapperProps): JSX.Element;
9
10
  export {};
@@ -1,10 +1,12 @@
1
1
  /// <reference types="react" />
2
- export declare function InsightsSummary({ summary }: {
3
- summary: string;
2
+ export declare function InsightsButton({ onClick, disabled, }: {
3
+ onClick?: () => void;
4
+ disabled?: boolean;
4
5
  }): JSX.Element;
5
6
  type InsightsMessageProps = {
6
7
  dataSource: string;
7
- metadata: unknown[];
8
+ metadata: object[];
9
+ visible?: boolean;
8
10
  };
9
- export default function InsightsMessage({ dataSource, metadata }: InsightsMessageProps): JSX.Element;
11
+ export default function InsightsMessage({ dataSource, metadata, visible, }: InsightsMessageProps): JSX.Element | null;
10
12
  export {};
@@ -2,6 +2,5 @@
2
2
  import { ChatMessage } from '../api/types';
3
3
  export type MessageListResolverProps = {
4
4
  messages: ChatMessage[];
5
- sendMessage?: (message: string) => void;
6
5
  };
7
- export default function MessageListResolver({ messages, sendMessage, }: MessageListResolverProps): JSX.Element;
6
+ export default function MessageListResolver({ messages }: MessageListResolverProps): JSX.Element;
@@ -2,9 +2,7 @@
2
2
  import { ChatMessage } from '../api/types';
3
3
  type MessageResolverProps = {
4
4
  message: ChatMessage;
5
- sendMessage?: (message: string) => void;
6
- allowFollowupQuestions?: boolean;
7
5
  };
8
- declare function MessageResolver({ message, allowFollowupQuestions, sendMessage, }: MessageResolverProps): JSX.Element;
6
+ declare function MessageResolver({ message }: MessageResolverProps): JSX.Element;
9
7
  declare const _default: import("react").MemoExoticComponent<typeof MessageResolver>;
10
8
  export default _default;
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { NlqResponseData } from '../api/types';
3
+ /**
4
+ * Renders a NLQ response as a series of chat messages/buttons.
5
+ *
6
+ * @internal
7
+ */
8
+ export default function NlqMessageGroup({ data }: {
9
+ data: NlqResponseData;
10
+ }): JSX.Element;
@@ -1,4 +1,4 @@
1
1
  export { default as SuggestionItem } from './suggestion-item';
2
2
  export { default as SuggestionList } from './suggestion-list';
3
- export { default as SuggestionListWithIntro } from './suggestions-with-intro';
4
3
  export { default as SuggestionListSkeleton } from './suggestion-list-skeleton';
4
+ export { default as SuggestionsWithIntro } from './suggestions-with-intro';
@@ -3,5 +3,5 @@ type Props = {
3
3
  questions: string[];
4
4
  onSelection: (question: string) => void;
5
5
  };
6
- export default function SuggestionList(props: Props): JSX.Element;
6
+ export default function SuggestionList({ questions, onSelection }: Props): JSX.Element;
7
7
  export {};
@@ -1,8 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  type Props = {
3
3
  questions: string[];
4
- title: string;
4
+ isLoading: boolean;
5
5
  onSelection: (question: string) => void;
6
6
  };
7
- export default function SuggestionsWithIntro(props: Props): JSX.Element;
7
+ export default function SuggestionsWithIntro({ questions, isLoading, onSelection }: Props): JSX.Element | null;
8
8
  export {};
@@ -0,0 +1,11 @@
1
+ import { CodeTemplates } from '../../ai/translators/types';
2
+ /**
3
+ * Code templates for different UI frameworks.
4
+ *
5
+ * A code template is made up of other code templates and placeholders.
6
+ * This allows a code template to be reused in other code templates.
7
+ * For example, a chart widget template can be reused in a dashboard template.
8
+ *
9
+ * @internal
10
+ */
11
+ export declare const CODE_TEMPLATES: CodeTemplates;
@@ -0,0 +1,9 @@
1
+ import { CodeTemplateKey, UiFramework } from '../../ai/translators/types';
2
+ /**
3
+ * Generates code from a template with the given data and UI framework.
4
+ *
5
+ * @param templateKey - the key of the template to use
6
+ * @param data - the data to populate the template with
7
+ * @param uiFramework - the UI framework for the generated code
8
+ */
9
+ export declare const generateCode: (templateKey: CodeTemplateKey, data: Record<string, string>, uiFramework?: UiFramework) => string;
@@ -0,0 +1,4 @@
1
+ export * from './types';
2
+ export { useGetDataSource } from './use-get-data-source';
3
+ export { ModelTranslator } from './model-translator';
4
+ export { QueryTranslator } from './query-translator';
@@ -0,0 +1,50 @@
1
+ import { ExpandedQueryModel, ChartWidgetModel, UiFramework } from '../../ai/translators/types';
2
+ /**
3
+ * A class that translates expanded query model to CSDK chart model and code.
4
+ *
5
+ * @internal
6
+ */
7
+ export declare class ModelTranslator {
8
+ queryModel: ExpandedQueryModel;
9
+ constructor(queryModel: ExpandedQueryModel);
10
+ /**
11
+ * Gets chart recommendations or default to table.
12
+ *
13
+ * @param chart - chart recommendations
14
+ * @returns chart recommendations or default to table
15
+ */
16
+ private getChartRecommendationsOrDefault;
17
+ /**
18
+ * Gets filters from metadata.
19
+ *
20
+ * @param metadata - metadata items
21
+ */
22
+ private getFilters;
23
+ /**
24
+ * Splits metadata into columns and filters.
25
+ *
26
+ * @param metadata - metadata items
27
+ */
28
+ private splitMetadata;
29
+ /**
30
+ * Converts query model to chart.
31
+ *
32
+ * TODO Refactor Chatbot to use this method to render the chart
33
+ */
34
+ toChart(): ChartWidgetModel | undefined;
35
+ private stringifyDataSource;
36
+ private stringifyChartType;
37
+ private stringifyFilters;
38
+ private stringifyDataOptions;
39
+ private stringifyExtraImports;
40
+ private getChartWidgetCode;
41
+ private getTableWidgetCode;
42
+ /**
43
+ * Converts chart widget model to CSDK code.
44
+ *
45
+ * @param chartWidgetModel - chart widget model
46
+ * @param uiFramework - UI framework
47
+ * @returns CSDK code string of the UI framework
48
+ */
49
+ toCode(chartWidgetModel: ChartWidgetModel, uiFramework?: UiFramework): string;
50
+ }