@luzmo/analytics-components-kit 1.0.1-alpha.97 → 1.0.1-alpha.99

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 (116) hide show
  1. package/angular/README.md +2 -2
  2. package/angular/components/ai-interaction-textarea.component.ts +8 -0
  3. package/angular/components/{filter-data-item-picker.component.ts → data-items-select.component.ts} +34 -17
  4. package/angular/components/edit-filters/index.ts +1 -0
  5. package/angular/components/edit-filters/types.ts +10 -0
  6. package/angular/components/edit-filters.component.ts +41 -0
  7. package/angular/components/slot-contents-picker.component.ts +8 -6
  8. package/angular/esm/components/ai-interaction-textarea.component.d.ts +5 -1
  9. package/angular/esm/components/ai-interaction-textarea.component.js +22 -2
  10. package/angular/esm/components/data-items-select.component.d.ts +33 -0
  11. package/angular/esm/components/{filter-data-item-picker.component.js → data-items-select.component.js} +41 -26
  12. package/angular/esm/components/edit-filters/index.d.ts +1 -0
  13. package/angular/esm/components/edit-filters/index.js +1 -0
  14. package/angular/esm/components/edit-filters/types.d.ts +8 -0
  15. package/angular/esm/components/edit-filters/types.js +1 -0
  16. package/angular/esm/components/edit-filters.component.d.ts +21 -0
  17. package/angular/esm/components/edit-filters.component.js +89 -0
  18. package/angular/esm/components/slot-contents-picker.component.d.ts +7 -6
  19. package/angular/esm/components/slot-contents-picker.component.js +11 -6
  20. package/angular/esm/index.d.ts +5 -5
  21. package/angular/esm/index.js +6 -6
  22. package/angular/esm/types.d.ts +9 -0
  23. package/angular/index.ts +6 -6
  24. package/angular/types.ts +17 -0
  25. package/angular/utils/filters/expressions.d.ts +1 -1
  26. package/components/ai-interaction-textarea/ai-interaction-textarea.d.ts +21 -0
  27. package/components/ai-interaction-textarea/index.cjs +17 -15
  28. package/components/ai-interaction-textarea/index.js +90 -65
  29. package/components/{filter-data-item-picker/filter-data-item-picker.d.ts → data-items-select/data-items-select.d.ts} +36 -21
  30. package/components/data-items-select/index.cjs +39 -0
  31. package/components/data-items-select/index.d.ts +6 -0
  32. package/components/{filter-data-item-picker → data-items-select}/index.js +127 -109
  33. package/components/dataset-selector-list/index.cjs +1 -1
  34. package/components/dataset-selector-list/index.js +3 -3
  35. package/components/dataset-selector-row/index.cjs +1 -1
  36. package/components/dataset-selector-row/index.js +1 -1
  37. package/components/{de-COKGBX9L.cjs → de-DOYL4txr.cjs} +1 -1
  38. package/components/{de-DU0DlXuf.js → de-SDzGVifr.js} +10 -1
  39. package/components/display-settings-binning/index.cjs +1 -1
  40. package/components/display-settings-binning/index.js +1 -1
  41. package/components/display-settings-datetime/index.cjs +1 -1
  42. package/components/display-settings-datetime/index.js +1 -1
  43. package/components/display-settings-grand-totals/index.cjs +1 -1
  44. package/components/display-settings-grand-totals/index.js +1 -1
  45. package/components/display-settings-numeric/index.cjs +1 -1
  46. package/components/display-settings-numeric/index.js +1 -1
  47. package/components/display-settings-period-over-period/index.cjs +1 -1
  48. package/components/display-settings-period-over-period/index.js +1 -1
  49. package/components/draggable-data-item/index.cjs +1 -1
  50. package/components/draggable-data-item/index.js +1 -1
  51. package/components/draggable-data-item-level/index.cjs +1 -1
  52. package/components/draggable-data-item-level/index.js +1 -1
  53. package/components/droppable-slot/index.cjs +9 -9
  54. package/components/droppable-slot/index.js +82 -158
  55. package/components/edit-filters/edit-filters.d.ts +79 -0
  56. package/components/edit-filters/index.cjs +144 -0
  57. package/components/edit-filters/index.d.ts +8 -0
  58. package/components/edit-filters/index.js +341 -0
  59. package/components/edit-filters/types.d.ts +8 -0
  60. package/components/{es-BxR1uGKR.js → es-B1TeapPZ.js} +10 -1
  61. package/components/{es-CaKfa7fn.cjs → es-DcQvrHgz.cjs} +1 -1
  62. package/components/filter-expression-picker/index.cjs +1 -1
  63. package/components/filter-expression-picker/index.js +1 -1
  64. package/components/filter-item/filter-item.d.ts +1 -1
  65. package/components/filter-item/index.cjs +7 -5
  66. package/components/filter-item/index.js +78 -68
  67. package/components/filter-value-picker/index.cjs +1 -1
  68. package/components/filter-value-picker/index.js +1 -1
  69. package/components/filter-value-picker-datetime/index.cjs +2 -2
  70. package/components/filter-value-picker-datetime/index.js +4 -4
  71. package/components/filter-value-picker-hierarchy/index.cjs +1 -1
  72. package/components/filter-value-picker-hierarchy/index.js +2 -2
  73. package/components/filter-value-picker-numeric/index.cjs +2 -1
  74. package/components/filter-value-picker-numeric/index.js +3 -2
  75. package/components/{fr-DiZbjx_a.cjs → fr-D6QmA3Ve.cjs} +1 -1
  76. package/components/{fr-CvltYxR_.js → fr-sZFBmltf.js} +10 -1
  77. package/components/{get-css-variable-Pzks_rOx.cjs → get-css-variable-C0B_Sxqf.cjs} +1 -1
  78. package/components/{get-css-variable-Bb7TxJdX.js → get-css-variable-DgTBQV3c.js} +2 -1
  79. package/components/grid/index.cjs +1 -1
  80. package/components/grid/index.js +1 -1
  81. package/components/{index-DNPULp4A.js → index-BikhVAa1.js} +1 -1
  82. package/components/{index-CFL6gmIu.cjs → index-CAbDIHYI.cjs} +1 -1
  83. package/components/{index-BNAmjOkm.cjs → index-DM58h73U.cjs} +3 -3
  84. package/components/{index-DdyZ2g5L.js → index-DR5275fa.js} +48 -18
  85. package/components/index.cjs +1 -1
  86. package/components/index.js +105 -106
  87. package/components/{nl-CLs7FmRK.js → nl-BYXZ-qNp.js} +10 -1
  88. package/components/{nl-Bot6bJ4g.cjs → nl-D7oNsLn0.cjs} +1 -1
  89. package/components/{set-locale-hKTMz37h.js → set-locale-B5562CBM.js} +1 -1
  90. package/components/{set-locale-BRRalqne.cjs → set-locale-B8iQGfk0.cjs} +1 -1
  91. package/components/slot-contents-picker/index.cjs +31 -27
  92. package/components/slot-contents-picker/index.js +137 -124
  93. package/components/slot-contents-picker/slot-contents-picker.d.ts +26 -5
  94. package/components/slot-menu/index.cjs +6 -6
  95. package/components/slot-menu/index.js +76 -76
  96. package/components/slot-menu-list/index.cjs +1 -1
  97. package/components/slot-menu-list/index.js +1 -1
  98. package/components/slot-store-CRfN0nD3.js +98 -0
  99. package/components/slot-store-Dd_cPNXk.cjs +20 -0
  100. package/components/utils.cjs +1 -1
  101. package/components/utils.js +1 -1
  102. package/components/viz-item-menu/index.cjs +6 -6
  103. package/components/viz-item-menu/index.js +27 -28
  104. package/custom-elements.json +1922 -1631
  105. package/index.d.ts +1 -1
  106. package/package.json +12 -12
  107. package/types.d.ts +9 -0
  108. package/utils/filters/expressions.d.ts +1 -1
  109. package/angular/components/filter-group.component.ts +0 -29
  110. package/angular/esm/components/filter-data-item-picker.component.d.ts +0 -30
  111. package/angular/esm/components/filter-group.component.d.ts +0 -12
  112. package/angular/esm/components/filter-group.component.js +0 -56
  113. package/components/filter-data-item-picker/index.cjs +0 -47
  114. package/components/filter-data-item-picker/index.d.ts +0 -7
  115. package/components/filter-group/filter-group.d.ts +0 -26
  116. package/components/filter-group/index.d.ts +0 -7
package/angular/README.md CHANGED
@@ -26,6 +26,7 @@ bootstrapApplication(AiChatMessageAssistantComponent);
26
26
  - `AiChatMessageUserComponent` → <luzmo-ai-chat-message-user>
27
27
  - `AiChatMessagesContainerComponent` → <luzmo-ai-chat-messages-container>
28
28
  - `AiInteractionTextareaComponent` → <luzmo-ai-interaction-textarea>
29
+ - `DataItemsSelectComponent` → <luzmo-data-items-select>
29
30
  - `DatasetIconComponent` → <luzmo-dataset-icon>
30
31
  - `DatasetSelectorListComponent` → <luzmo-dataset-selector-list>
31
32
  - `DatasetSelectorRowComponent` → <luzmo-dataset-selector-row>
@@ -38,13 +39,12 @@ bootstrapApplication(AiChatMessageAssistantComponent);
38
39
  - `DraggableDataItemComponent` → <luzmo-draggable-data-item>
39
40
  - `DraggableDataItemLevelComponent` → <luzmo-draggable-data-item-level>
40
41
  - `DroppableSlotComponent` → <luzmo-droppable-slot>
42
+ - `EditFiltersComponent` → <luzmo-edit-filters>
41
43
  - `EditItemComponent` → <luzmo-edit-item>
42
44
  - `EditOptionComponent` → <luzmo-edit-option>
43
45
  - `EditOptionColorPickerComponent` → <luzmo-edit-option-color-picker>
44
46
  - `EditOptionColorRangeComponent` → <luzmo-edit-option-color-range>
45
- - `FilterDataItemPickerComponent` → <luzmo-filter-data-item-picker>
46
47
  - `FilterExpressionPickerComponent` → <luzmo-filter-expression-picker>
47
- - `FilterGroupComponent` → <luzmo-filter-group>
48
48
  - `FilterItemComponent` → <luzmo-filter-item>
49
49
  - `FilterParameterPickerComponent` → <luzmo-filter-parameter-picker>
50
50
  - `FilterValuePickerComponent` → <luzmo-filter-value-picker>
@@ -14,6 +14,10 @@ import type { Dataset } from '../types';
14
14
  [attr.app-server]="appServer"
15
15
  [attr.flag-opendata]="flagOpendata"
16
16
  [attr.disabled]="disabled"
17
+ [attr.single-line]="singleLine"
18
+ [attr.hide-dataset-button]="hideDatasetButton"
19
+ [attr.is-generating]="isGenerating"
20
+ [attr.value]="value"
17
21
  (prompt-submitted)="promptSubmitted.emit($event)">
18
22
  <ng-content></ng-content>
19
23
  </luzmo-ai-interaction-textarea>`
@@ -27,5 +31,9 @@ export class AiInteractionTextareaComponent {
27
31
  @Input() appServer?: string;
28
32
  @Input() flagOpendata?: boolean;
29
33
  @Input() disabled?: boolean;
34
+ @Input() singleLine?: boolean;
35
+ @Input() hideDatasetButton?: boolean;
36
+ @Input() isGenerating?: boolean;
37
+ @Input() value?: string;
30
38
  @Output() promptSubmitted = new EventEmitter<CustomEvent>();
31
39
  }
@@ -1,50 +1,67 @@
1
1
  import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
2
- import type { DataItem } from '../types';
2
+ import type { DataItemExtended } from '../types';
3
3
 
4
4
  @Component({
5
- selector: 'luzmo-filter-data-item-picker',
5
+ selector: 'luzmo-data-items-select',
6
6
  standalone: true,
7
7
  changeDetection: ChangeDetectionStrategy.OnPush,
8
- template: `<luzmo-filter-data-item-picker
8
+ template: `<luzmo-data-items-select
9
9
  [attr.language]="language"
10
10
  [attr.content-language]="contentLanguage"
11
- [attr.has-label]="hasLabel"
12
11
  [attr.label]="label"
13
12
  [attr.icons]="icons"
14
13
  [attr.allow-empty]="allowEmpty"
15
14
  [attr.placeholder]="placeholder"
16
- [attr.data-item-id]="dataItemId"
15
+ [attr.selects]="selects"
16
+ [attr.data-item-ids]="dataItemIds"
17
17
  [attr.loading]="loading"
18
18
  [attr.invalid]="invalid"
19
+ [attr.clearable]="clearable"
20
+ [attr.pending]="pending"
21
+ [attr.disabled]="disabled"
22
+ [attr.placement]="placement"
19
23
  [attr.datasetsDataItems]="datasetsDataItems"
20
24
  [attr.size]="size"
21
- [attr.disabled]="disabled"
22
25
  [attr.autofocus]="autofocus"
23
26
  [attr.tabIndex]="tabIndex"
24
- (data-item-selected)="dataItemSelected.emit($event)">
27
+ (data-items-selected)="dataItemsSelected.emit($event)">
25
28
  <ng-content></ng-content>
26
- </luzmo-filter-data-item-picker>`
29
+ </luzmo-data-items-select>`
27
30
  })
28
- export class FilterDataItemPickerComponent {
31
+ export class DataItemsSelectComponent {
29
32
  @Input() language?: string;
30
33
  @Input() contentLanguage?: string;
31
- @Input() hasLabel?: boolean;
32
34
  @Input() label?: string;
33
- @Input() icons?: 'none' | 'only-menu' | 'all';
35
+ @Input() icons?: 'none' | 'menu-only' | 'all';
34
36
  @Input() allowEmpty?: boolean;
35
- @Input() placeholder?: string;
36
- @Input() dataItemId?: string;
37
+ @Input() placeholder?: any;
38
+ @Input() selects?: 'single' | 'multiple';
39
+ @Input() dataItemIds?: string[];
37
40
  @Input() loading?: boolean;
38
41
  @Input() invalid?: boolean;
42
+ @Input() clearable?: boolean;
43
+ @Input() pending?: boolean;
44
+ @Input() disabled?: boolean;
45
+ @Input() placement?: | 'top'
46
+ | 'top-start'
47
+ | 'top-end'
48
+ | 'right'
49
+ | 'right-start'
50
+ | 'right-end'
51
+ | 'bottom'
52
+ | 'bottom-start'
53
+ | 'bottom-end'
54
+ | 'left'
55
+ | 'left-start'
56
+ | 'left-end';
39
57
  @Input() datasetsDataItems?: {
40
58
  id: string;
41
59
  name: { [key: string]: string };
42
- columns: DataItem[];
43
- formulas: DataItem[];
60
+ columns: DataItemExtended[];
61
+ formulas: DataItemExtended[];
44
62
  }[];
45
63
  @Input() size?: any;
46
- @Input() disabled?: any;
47
64
  @Input() autofocus?: any;
48
65
  @Input() tabIndex?: any;
49
- @Output() dataItemSelected = new EventEmitter<CustomEvent>();
66
+ @Output() dataItemsSelected = new EventEmitter<CustomEvent>();
50
67
  }
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,10 @@
1
+ export interface FilterCondition {
2
+ expression?: string;
3
+ parameters?: any[];
4
+ }
5
+
6
+ export interface FilterGroup {
7
+ condition: 'AND' | 'OR';
8
+ filters: (FilterCondition | FilterGroup)[];
9
+ }
10
+
@@ -0,0 +1,41 @@
1
+ import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
2
+ import type { FilterGroup } from '../types';
3
+
4
+ @Component({
5
+ selector: 'luzmo-edit-filters',
6
+ standalone: true,
7
+ changeDetection: ChangeDetectionStrategy.OnPush,
8
+ template: `<luzmo-edit-filters
9
+ [attr.api-url]="apiUrl"
10
+ [attr.auth-key]="authKey"
11
+ [attr.auth-token]="authToken"
12
+ [attr.cache-time]="cacheTime"
13
+ [attr.language]="language"
14
+ [attr.content-language]="contentLanguage"
15
+ [attr.time-zone]="timeZone"
16
+ [attr.dataset-ids]="datasetIds"
17
+ [attr.filters]="filters"
18
+ [attr.size]="size"
19
+ [attr.disabled]="disabled"
20
+ [attr.autofocus]="autofocus"
21
+ [attr.tabIndex]="tabIndex"
22
+ (filters-changed)="filtersChanged.emit($event)">
23
+ <ng-content></ng-content>
24
+ </luzmo-edit-filters>`
25
+ })
26
+ export class EditFiltersComponent {
27
+ @Input() apiUrl?: string;
28
+ @Input() authKey?: string;
29
+ @Input() authToken?: string;
30
+ @Input() cacheTime?: number;
31
+ @Input() language?: string;
32
+ @Input() contentLanguage?: string;
33
+ @Input() timeZone?: string;
34
+ @Input() datasetIds?: string[];
35
+ @Input() filters?: FilterGroup | null;
36
+ @Input() size?: any;
37
+ @Input() disabled?: any;
38
+ @Input() autofocus?: any;
39
+ @Input() tabIndex?: any;
40
+ @Output() filtersChanged = new EventEmitter<CustomEvent>();
41
+ }
@@ -1,5 +1,5 @@
1
1
  import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
2
- import type { Placement } from '../types';
2
+ import type { VizItemType, SlotName, Placement } from '../types';
3
3
 
4
4
  @Component({
5
5
  selector: 'luzmo-slot-contents-picker',
@@ -22,15 +22,16 @@ import type { Placement } from '../types';
22
22
  [attr.placement]="placement"
23
23
  [attr.hide-delete]="hideDelete"
24
24
  [attr.hide-configuration]="hideConfiguration"
25
- [attr.stretch]="stretch"
25
+ [attr.hide-clear]="hideClear"
26
+ [attr.search]="search"
26
27
  [attr.size]="size"
27
28
  (slot-contents-changed)="slotContentsChanged.emit($event)">
28
29
  <ng-content></ng-content>
29
30
  </luzmo-slot-contents-picker>`
30
31
  })
31
32
  export class SlotContentsPickerComponent {
32
- @Input() itemType?: string;
33
- @Input() slotName?: string;
33
+ @Input() itemType?: VizItemType;
34
+ @Input() slotName?: SlotName;
34
35
  @Input() slotConfiguration?: any;
35
36
  @Input() slotContents?: any;
36
37
  @Input() language?: string;
@@ -39,7 +40,7 @@ export class SlotContentsPickerComponent {
39
40
  @Input() hasLabel?: boolean;
40
41
  @Input() label?: string;
41
42
  @Input() selects?: 'single' | 'multiple';
42
- @Input() icons?: 'none' | 'only-menu' | 'all';
43
+ @Input() icons?: 'none' | 'menu-only' | 'all';
43
44
  @Input() placeholder?: string;
44
45
  @Input() datasetsDataItems?: {
45
46
  id: string;
@@ -50,7 +51,8 @@ export class SlotContentsPickerComponent {
50
51
  @Input() placement?: Placement;
51
52
  @Input() hideDelete?: boolean;
52
53
  @Input() hideConfiguration?: boolean;
53
- @Input() stretch?: boolean;
54
+ @Input() hideClear?: boolean;
55
+ @Input() search?: any;
54
56
  @Input() size?: any;
55
57
  @Output() slotContentsChanged = new EventEmitter<CustomEvent>();
56
58
  }
@@ -10,7 +10,11 @@ export declare class AiInteractionTextareaComponent {
10
10
  appServer?: string;
11
11
  flagOpendata?: boolean;
12
12
  disabled?: boolean;
13
+ singleLine?: boolean;
14
+ hideDatasetButton?: boolean;
15
+ isGenerating?: boolean;
16
+ value?: string;
13
17
  promptSubmitted: EventEmitter<CustomEvent<any>>;
14
18
  static ɵfac: i0.ɵɵFactoryDeclaration<AiInteractionTextareaComponent, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<AiInteractionTextareaComponent, "luzmo-ai-interaction-textarea", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "selectedDatasets": { "alias": "selectedDatasets"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "apiUrl": { "alias": "apiUrl"; "required": false; }; "appServer": { "alias": "appServer"; "required": false; }; "flagOpendata": { "alias": "flagOpendata"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "promptSubmitted": "promptSubmitted"; }, never, ["*"], true, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<AiInteractionTextareaComponent, "luzmo-ai-interaction-textarea", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "selectedDatasets": { "alias": "selectedDatasets"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "apiUrl": { "alias": "apiUrl"; "required": false; }; "appServer": { "alias": "appServer"; "required": false; }; "flagOpendata": { "alias": "flagOpendata"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "singleLine": { "alias": "singleLine"; "required": false; }; "hideDatasetButton": { "alias": "hideDatasetButton"; "required": false; }; "isGenerating": { "alias": "isGenerating"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "promptSubmitted": "promptSubmitted"; }, never, ["*"], true, never>;
16
20
  }
@@ -9,9 +9,13 @@ export class AiInteractionTextareaComponent {
9
9
  appServer;
10
10
  flagOpendata;
11
11
  disabled;
12
+ singleLine;
13
+ hideDatasetButton;
14
+ isGenerating;
15
+ value;
12
16
  promptSubmitted = new EventEmitter();
13
17
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AiInteractionTextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: AiInteractionTextareaComponent, isStandalone: true, selector: "luzmo-ai-interaction-textarea", inputs: { placeholder: "placeholder", selectedDatasets: "selectedDatasets", authKey: "authKey", authToken: "authToken", apiUrl: "apiUrl", appServer: "appServer", flagOpendata: "flagOpendata", disabled: "disabled" }, outputs: { promptSubmitted: "promptSubmitted" }, ngImport: i0, template: `<luzmo-ai-interaction-textarea
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: AiInteractionTextareaComponent, isStandalone: true, selector: "luzmo-ai-interaction-textarea", inputs: { placeholder: "placeholder", selectedDatasets: "selectedDatasets", authKey: "authKey", authToken: "authToken", apiUrl: "apiUrl", appServer: "appServer", flagOpendata: "flagOpendata", disabled: "disabled", singleLine: "singleLine", hideDatasetButton: "hideDatasetButton", isGenerating: "isGenerating", value: "value" }, outputs: { promptSubmitted: "promptSubmitted" }, ngImport: i0, template: `<luzmo-ai-interaction-textarea
15
19
  [attr.placeholder]="placeholder"
16
20
  [attr.selectedDatasets]="selectedDatasets"
17
21
  [attr.auth-key]="authKey"
@@ -20,9 +24,13 @@ export class AiInteractionTextareaComponent {
20
24
  [attr.app-server]="appServer"
21
25
  [attr.flag-opendata]="flagOpendata"
22
26
  [attr.disabled]="disabled"
27
+ [attr.single-line]="singleLine"
28
+ [attr.hide-dataset-button]="hideDatasetButton"
29
+ [attr.is-generating]="isGenerating"
30
+ [attr.value]="value"
23
31
  (prompt-submitted)="promptSubmitted.emit($event)">
24
32
  <ng-content></ng-content>
25
- </luzmo-ai-interaction-textarea>`, isInline: true, dependencies: [{ kind: "component", type: AiInteractionTextareaComponent, selector: "luzmo-ai-interaction-textarea", inputs: ["placeholder", "selectedDatasets", "authKey", "authToken", "apiUrl", "appServer", "flagOpendata", "disabled"], outputs: ["promptSubmitted"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33
+ </luzmo-ai-interaction-textarea>`, isInline: true, dependencies: [{ kind: "component", type: AiInteractionTextareaComponent, selector: "luzmo-ai-interaction-textarea", inputs: ["placeholder", "selectedDatasets", "authKey", "authToken", "apiUrl", "appServer", "flagOpendata", "disabled", "singleLine", "hideDatasetButton", "isGenerating", "value"], outputs: ["promptSubmitted"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
26
34
  }
27
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AiInteractionTextareaComponent, decorators: [{
28
36
  type: Component,
@@ -39,6 +47,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImpor
39
47
  [attr.app-server]="appServer"
40
48
  [attr.flag-opendata]="flagOpendata"
41
49
  [attr.disabled]="disabled"
50
+ [attr.single-line]="singleLine"
51
+ [attr.hide-dataset-button]="hideDatasetButton"
52
+ [attr.is-generating]="isGenerating"
53
+ [attr.value]="value"
42
54
  (prompt-submitted)="promptSubmitted.emit($event)">
43
55
  <ng-content></ng-content>
44
56
  </luzmo-ai-interaction-textarea>`
@@ -59,6 +71,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImpor
59
71
  type: Input
60
72
  }], disabled: [{
61
73
  type: Input
74
+ }], singleLine: [{
75
+ type: Input
76
+ }], hideDatasetButton: [{
77
+ type: Input
78
+ }], isGenerating: [{
79
+ type: Input
80
+ }], value: [{
81
+ type: Input
62
82
  }], promptSubmitted: [{
63
83
  type: Output
64
84
  }] } });
@@ -0,0 +1,33 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import type { DataItemExtended } from '../types';
3
+ import * as i0 from "@angular/core";
4
+ export declare class DataItemsSelectComponent {
5
+ language?: string;
6
+ contentLanguage?: string;
7
+ label?: string;
8
+ icons?: 'none' | 'menu-only' | 'all';
9
+ allowEmpty?: boolean;
10
+ placeholder?: any;
11
+ selects?: 'single' | 'multiple';
12
+ dataItemIds?: string[];
13
+ loading?: boolean;
14
+ invalid?: boolean;
15
+ clearable?: boolean;
16
+ pending?: boolean;
17
+ disabled?: boolean;
18
+ placement?: 'top' | 'top-start' | 'top-end' | 'right' | 'right-start' | 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end';
19
+ datasetsDataItems?: {
20
+ id: string;
21
+ name: {
22
+ [key: string]: string;
23
+ };
24
+ columns: DataItemExtended[];
25
+ formulas: DataItemExtended[];
26
+ }[];
27
+ size?: any;
28
+ autofocus?: any;
29
+ tabIndex?: any;
30
+ dataItemsSelected: EventEmitter<CustomEvent<any>>;
31
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataItemsSelectComponent, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataItemsSelectComponent, "luzmo-data-items-select", never, { "language": { "alias": "language"; "required": false; }; "contentLanguage": { "alias": "contentLanguage"; "required": false; }; "label": { "alias": "label"; "required": false; }; "icons": { "alias": "icons"; "required": false; }; "allowEmpty": { "alias": "allowEmpty"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "selects": { "alias": "selects"; "required": false; }; "dataItemIds": { "alias": "dataItemIds"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "pending": { "alias": "pending"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "datasetsDataItems": { "alias": "datasetsDataItems"; "required": false; }; "size": { "alias": "size"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "dataItemsSelected": "dataItemsSelected"; }, never, ["*"], true, never>;
33
+ }
@@ -1,75 +1,82 @@
1
1
  import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export class FilterDataItemPickerComponent {
3
+ export class DataItemsSelectComponent {
4
4
  language;
5
5
  contentLanguage;
6
- hasLabel;
7
6
  label;
8
7
  icons;
9
8
  allowEmpty;
10
9
  placeholder;
11
- dataItemId;
10
+ selects;
11
+ dataItemIds;
12
12
  loading;
13
13
  invalid;
14
+ clearable;
15
+ pending;
16
+ disabled;
17
+ placement;
14
18
  datasetsDataItems;
15
19
  size;
16
- disabled;
17
20
  autofocus;
18
21
  tabIndex;
19
- dataItemSelected = new EventEmitter();
20
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: FilterDataItemPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: FilterDataItemPickerComponent, isStandalone: true, selector: "luzmo-filter-data-item-picker", inputs: { language: "language", contentLanguage: "contentLanguage", hasLabel: "hasLabel", label: "label", icons: "icons", allowEmpty: "allowEmpty", placeholder: "placeholder", dataItemId: "dataItemId", loading: "loading", invalid: "invalid", datasetsDataItems: "datasetsDataItems", size: "size", disabled: "disabled", autofocus: "autofocus", tabIndex: "tabIndex" }, outputs: { dataItemSelected: "dataItemSelected" }, ngImport: i0, template: `<luzmo-filter-data-item-picker
22
+ dataItemsSelected = new EventEmitter();
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DataItemsSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: DataItemsSelectComponent, isStandalone: true, selector: "luzmo-data-items-select", inputs: { language: "language", contentLanguage: "contentLanguage", label: "label", icons: "icons", allowEmpty: "allowEmpty", placeholder: "placeholder", selects: "selects", dataItemIds: "dataItemIds", loading: "loading", invalid: "invalid", clearable: "clearable", pending: "pending", disabled: "disabled", placement: "placement", datasetsDataItems: "datasetsDataItems", size: "size", autofocus: "autofocus", tabIndex: "tabIndex" }, outputs: { dataItemsSelected: "dataItemsSelected" }, ngImport: i0, template: `<luzmo-data-items-select
22
25
  [attr.language]="language"
23
26
  [attr.content-language]="contentLanguage"
24
- [attr.has-label]="hasLabel"
25
27
  [attr.label]="label"
26
28
  [attr.icons]="icons"
27
29
  [attr.allow-empty]="allowEmpty"
28
30
  [attr.placeholder]="placeholder"
29
- [attr.data-item-id]="dataItemId"
31
+ [attr.selects]="selects"
32
+ [attr.data-item-ids]="dataItemIds"
30
33
  [attr.loading]="loading"
31
34
  [attr.invalid]="invalid"
35
+ [attr.clearable]="clearable"
36
+ [attr.pending]="pending"
37
+ [attr.disabled]="disabled"
38
+ [attr.placement]="placement"
32
39
  [attr.datasetsDataItems]="datasetsDataItems"
33
40
  [attr.size]="size"
34
- [attr.disabled]="disabled"
35
41
  [attr.autofocus]="autofocus"
36
42
  [attr.tabIndex]="tabIndex"
37
- (data-item-selected)="dataItemSelected.emit($event)">
43
+ (data-items-selected)="dataItemsSelected.emit($event)">
38
44
  <ng-content></ng-content>
39
- </luzmo-filter-data-item-picker>`, isInline: true, dependencies: [{ kind: "component", type: FilterDataItemPickerComponent, selector: "luzmo-filter-data-item-picker", inputs: ["language", "contentLanguage", "hasLabel", "label", "icons", "allowEmpty", "placeholder", "dataItemId", "loading", "invalid", "datasetsDataItems", "size", "disabled", "autofocus", "tabIndex"], outputs: ["dataItemSelected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
45
+ </luzmo-data-items-select>`, isInline: true, dependencies: [{ kind: "component", type: DataItemsSelectComponent, selector: "luzmo-data-items-select", inputs: ["language", "contentLanguage", "label", "icons", "allowEmpty", "placeholder", "selects", "dataItemIds", "loading", "invalid", "clearable", "pending", "disabled", "placement", "datasetsDataItems", "size", "autofocus", "tabIndex"], outputs: ["dataItemsSelected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
46
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: FilterDataItemPickerComponent, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DataItemsSelectComponent, decorators: [{
42
48
  type: Component,
43
49
  args: [{
44
- selector: 'luzmo-filter-data-item-picker',
50
+ selector: 'luzmo-data-items-select',
45
51
  standalone: true,
46
52
  changeDetection: ChangeDetectionStrategy.OnPush,
47
- template: `<luzmo-filter-data-item-picker
53
+ template: `<luzmo-data-items-select
48
54
  [attr.language]="language"
49
55
  [attr.content-language]="contentLanguage"
50
- [attr.has-label]="hasLabel"
51
56
  [attr.label]="label"
52
57
  [attr.icons]="icons"
53
58
  [attr.allow-empty]="allowEmpty"
54
59
  [attr.placeholder]="placeholder"
55
- [attr.data-item-id]="dataItemId"
60
+ [attr.selects]="selects"
61
+ [attr.data-item-ids]="dataItemIds"
56
62
  [attr.loading]="loading"
57
63
  [attr.invalid]="invalid"
64
+ [attr.clearable]="clearable"
65
+ [attr.pending]="pending"
66
+ [attr.disabled]="disabled"
67
+ [attr.placement]="placement"
58
68
  [attr.datasetsDataItems]="datasetsDataItems"
59
69
  [attr.size]="size"
60
- [attr.disabled]="disabled"
61
70
  [attr.autofocus]="autofocus"
62
71
  [attr.tabIndex]="tabIndex"
63
- (data-item-selected)="dataItemSelected.emit($event)">
72
+ (data-items-selected)="dataItemsSelected.emit($event)">
64
73
  <ng-content></ng-content>
65
- </luzmo-filter-data-item-picker>`
74
+ </luzmo-data-items-select>`
66
75
  }]
67
76
  }], propDecorators: { language: [{
68
77
  type: Input
69
78
  }], contentLanguage: [{
70
79
  type: Input
71
- }], hasLabel: [{
72
- type: Input
73
80
  }], label: [{
74
81
  type: Input
75
82
  }], icons: [{
@@ -78,22 +85,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImpor
78
85
  type: Input
79
86
  }], placeholder: [{
80
87
  type: Input
81
- }], dataItemId: [{
88
+ }], selects: [{
89
+ type: Input
90
+ }], dataItemIds: [{
82
91
  type: Input
83
92
  }], loading: [{
84
93
  type: Input
85
94
  }], invalid: [{
86
95
  type: Input
87
- }], datasetsDataItems: [{
96
+ }], clearable: [{
88
97
  type: Input
89
- }], size: [{
98
+ }], pending: [{
90
99
  type: Input
91
100
  }], disabled: [{
92
101
  type: Input
102
+ }], placement: [{
103
+ type: Input
104
+ }], datasetsDataItems: [{
105
+ type: Input
106
+ }], size: [{
107
+ type: Input
93
108
  }], autofocus: [{
94
109
  type: Input
95
110
  }], tabIndex: [{
96
111
  type: Input
97
- }], dataItemSelected: [{
112
+ }], dataItemsSelected: [{
98
113
  type: Output
99
114
  }] } });
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,8 @@
1
+ export interface FilterCondition {
2
+ expression?: string;
3
+ parameters?: any[];
4
+ }
5
+ export interface FilterGroup {
6
+ condition: 'AND' | 'OR';
7
+ filters: (FilterCondition | FilterGroup)[];
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import type { FilterGroup } from '../types';
3
+ import * as i0 from "@angular/core";
4
+ export declare class EditFiltersComponent {
5
+ apiUrl?: string;
6
+ authKey?: string;
7
+ authToken?: string;
8
+ cacheTime?: number;
9
+ language?: string;
10
+ contentLanguage?: string;
11
+ timeZone?: string;
12
+ datasetIds?: string[];
13
+ filters?: FilterGroup | null;
14
+ size?: any;
15
+ disabled?: any;
16
+ autofocus?: any;
17
+ tabIndex?: any;
18
+ filtersChanged: EventEmitter<CustomEvent<any>>;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<EditFiltersComponent, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<EditFiltersComponent, "luzmo-edit-filters", never, { "apiUrl": { "alias": "apiUrl"; "required": false; }; "authKey": { "alias": "authKey"; "required": false; }; "authToken": { "alias": "authToken"; "required": false; }; "cacheTime": { "alias": "cacheTime"; "required": false; }; "language": { "alias": "language"; "required": false; }; "contentLanguage": { "alias": "contentLanguage"; "required": false; }; "timeZone": { "alias": "timeZone"; "required": false; }; "datasetIds": { "alias": "datasetIds"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "filtersChanged": "filtersChanged"; }, never, ["*"], true, never>;
21
+ }
@@ -0,0 +1,89 @@
1
+ import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class EditFiltersComponent {
4
+ apiUrl;
5
+ authKey;
6
+ authToken;
7
+ cacheTime;
8
+ language;
9
+ contentLanguage;
10
+ timeZone;
11
+ datasetIds;
12
+ filters;
13
+ size;
14
+ disabled;
15
+ autofocus;
16
+ tabIndex;
17
+ filtersChanged = new EventEmitter();
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: EditFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: EditFiltersComponent, isStandalone: true, selector: "luzmo-edit-filters", inputs: { apiUrl: "apiUrl", authKey: "authKey", authToken: "authToken", cacheTime: "cacheTime", language: "language", contentLanguage: "contentLanguage", timeZone: "timeZone", datasetIds: "datasetIds", filters: "filters", size: "size", disabled: "disabled", autofocus: "autofocus", tabIndex: "tabIndex" }, outputs: { filtersChanged: "filtersChanged" }, ngImport: i0, template: `<luzmo-edit-filters
20
+ [attr.api-url]="apiUrl"
21
+ [attr.auth-key]="authKey"
22
+ [attr.auth-token]="authToken"
23
+ [attr.cache-time]="cacheTime"
24
+ [attr.language]="language"
25
+ [attr.content-language]="contentLanguage"
26
+ [attr.time-zone]="timeZone"
27
+ [attr.dataset-ids]="datasetIds"
28
+ [attr.filters]="filters"
29
+ [attr.size]="size"
30
+ [attr.disabled]="disabled"
31
+ [attr.autofocus]="autofocus"
32
+ [attr.tabIndex]="tabIndex"
33
+ (filters-changed)="filtersChanged.emit($event)">
34
+ <ng-content></ng-content>
35
+ </luzmo-edit-filters>`, isInline: true, dependencies: [{ kind: "component", type: EditFiltersComponent, selector: "luzmo-edit-filters", inputs: ["apiUrl", "authKey", "authToken", "cacheTime", "language", "contentLanguage", "timeZone", "datasetIds", "filters", "size", "disabled", "autofocus", "tabIndex"], outputs: ["filtersChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: EditFiltersComponent, decorators: [{
38
+ type: Component,
39
+ args: [{
40
+ selector: 'luzmo-edit-filters',
41
+ standalone: true,
42
+ changeDetection: ChangeDetectionStrategy.OnPush,
43
+ template: `<luzmo-edit-filters
44
+ [attr.api-url]="apiUrl"
45
+ [attr.auth-key]="authKey"
46
+ [attr.auth-token]="authToken"
47
+ [attr.cache-time]="cacheTime"
48
+ [attr.language]="language"
49
+ [attr.content-language]="contentLanguage"
50
+ [attr.time-zone]="timeZone"
51
+ [attr.dataset-ids]="datasetIds"
52
+ [attr.filters]="filters"
53
+ [attr.size]="size"
54
+ [attr.disabled]="disabled"
55
+ [attr.autofocus]="autofocus"
56
+ [attr.tabIndex]="tabIndex"
57
+ (filters-changed)="filtersChanged.emit($event)">
58
+ <ng-content></ng-content>
59
+ </luzmo-edit-filters>`
60
+ }]
61
+ }], propDecorators: { apiUrl: [{
62
+ type: Input
63
+ }], authKey: [{
64
+ type: Input
65
+ }], authToken: [{
66
+ type: Input
67
+ }], cacheTime: [{
68
+ type: Input
69
+ }], language: [{
70
+ type: Input
71
+ }], contentLanguage: [{
72
+ type: Input
73
+ }], timeZone: [{
74
+ type: Input
75
+ }], datasetIds: [{
76
+ type: Input
77
+ }], filters: [{
78
+ type: Input
79
+ }], size: [{
80
+ type: Input
81
+ }], disabled: [{
82
+ type: Input
83
+ }], autofocus: [{
84
+ type: Input
85
+ }], tabIndex: [{
86
+ type: Input
87
+ }], filtersChanged: [{
88
+ type: Output
89
+ }] } });