@luzmo/analytics-components-kit 1.0.1-alpha.84 → 1.0.1-alpha.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/angular/README.md +1 -0
- package/angular/components/ai-interaction-textarea.component.ts +2 -0
- package/angular/components/dataset-icon.component.ts +21 -0
- package/angular/components/dataset-selector-row.component.ts +2 -0
- package/angular/components/droppable-slot.component.ts +2 -2
- package/angular/esm/components/ai-interaction-textarea.component.d.ts +2 -1
- package/angular/esm/components/ai-interaction-textarea.component.js +7 -2
- package/angular/esm/components/dataset-icon.component.d.ts +9 -0
- package/angular/esm/components/dataset-icon.component.js +36 -0
- package/angular/esm/components/dataset-selector-row.component.d.ts +2 -1
- package/angular/esm/components/dataset-selector-row.component.js +7 -2
- package/angular/esm/components/droppable-slot.component.d.ts +2 -2
- package/angular/esm/index.d.ts +3 -1
- package/angular/esm/index.js +3 -0
- package/angular/esm/types.d.ts +15 -1
- package/angular/index.ts +3 -0
- package/angular/types.ts +15 -2
- package/components/ai-interaction-textarea/ai-interaction-textarea.d.ts +7 -1
- package/components/ai-interaction-textarea/index.cjs +54 -0
- package/components/ai-interaction-textarea/index.d.ts +1 -1
- package/components/ai-interaction-textarea/index.js +165 -0
- package/components/dataset-icon/dataset-icon.d.ts +45 -0
- package/components/dataset-icon/index.cjs +60 -0
- package/components/dataset-icon/index.d.ts +7 -0
- package/components/dataset-icon/index.js +167 -0
- package/components/dataset-selector-list/dataset-selector-list.d.ts +1 -0
- package/components/dataset-selector-list/index.cjs +15 -13
- package/components/dataset-selector-list/index.js +42 -46
- package/components/dataset-selector-row/dataset-selector-row.d.ts +8 -0
- package/components/dataset-selector-row/index.cjs +82 -0
- package/components/dataset-selector-row/index.d.ts +1 -1
- package/components/dataset-selector-row/index.js +215 -0
- package/components/droppable-slot/droppable-slot.d.ts +2 -2
- package/components/index.cjs +1 -60
- package/components/index.js +104 -281
- package/custom-elements.json +156 -2
- package/index.d.ts +2 -0
- package/package.json +10 -5
- package/types.d.ts +15 -1
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
|
+
- `DatasetIconComponent` → <luzmo-dataset-icon>
|
|
29
30
|
- `DatasetSelectorListComponent` → <luzmo-dataset-selector-list>
|
|
30
31
|
- `DatasetSelectorRowComponent` → <luzmo-dataset-selector-row>
|
|
31
32
|
- `DisplaySettingsComponent` → <luzmo-display-settings>
|
|
@@ -13,6 +13,7 @@ import type { Dataset } from '../types';
|
|
|
13
13
|
[attr.api-url]="apiUrl"
|
|
14
14
|
[attr.app-server]="appServer"
|
|
15
15
|
[attr.flag-opendata]="flagOpendata"
|
|
16
|
+
[attr.disabled]="disabled"
|
|
16
17
|
(prompt-submitted)="promptSubmitted.emit($event)">
|
|
17
18
|
<ng-content></ng-content>
|
|
18
19
|
</luzmo-ai-interaction-textarea>`
|
|
@@ -25,5 +26,6 @@ export class AiInteractionTextareaComponent {
|
|
|
25
26
|
@Input() apiUrl?: string;
|
|
26
27
|
@Input() appServer?: string;
|
|
27
28
|
@Input() flagOpendata?: boolean;
|
|
29
|
+
@Input() disabled?: boolean;
|
|
28
30
|
@Output() promptSubmitted = new EventEmitter<CustomEvent>();
|
|
29
31
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import type { DatasetIcon } from '../types';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'luzmo-dataset-icon',
|
|
6
|
+
standalone: true,
|
|
7
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
8
|
+
template: `<luzmo-dataset-icon
|
|
9
|
+
[attr.dataset]="dataset"
|
|
10
|
+
[attr.size]="size"
|
|
11
|
+
[attr.app-url]="appUrl"
|
|
12
|
+
>
|
|
13
|
+
<ng-content></ng-content>
|
|
14
|
+
</luzmo-dataset-icon>`
|
|
15
|
+
})
|
|
16
|
+
export class DatasetIconComponent {
|
|
17
|
+
@Input() dataset?: DatasetIcon;
|
|
18
|
+
@Input() size?: '16px' | '24px' | '32px' | '48px' | '64px';
|
|
19
|
+
@Input() appUrl?: string;
|
|
20
|
+
|
|
21
|
+
}
|
|
@@ -13,6 +13,7 @@ import type { Dataset } from '../types';
|
|
|
13
13
|
[attr.api-url]="apiUrl"
|
|
14
14
|
[attr.app-server]="appServer"
|
|
15
15
|
[attr.flag-opendata]="flagOpendata"
|
|
16
|
+
[attr.disabled]="disabled"
|
|
16
17
|
(dataset-selected)="datasetSelected.emit($event)"
|
|
17
18
|
(dataset-removed)="datasetRemoved.emit($event)">
|
|
18
19
|
<ng-content></ng-content>
|
|
@@ -26,6 +27,7 @@ export class DatasetSelectorRowComponent {
|
|
|
26
27
|
@Input() apiUrl?: string;
|
|
27
28
|
@Input() appServer?: string;
|
|
28
29
|
@Input() flagOpendata?: boolean;
|
|
30
|
+
@Input() disabled?: boolean;
|
|
29
31
|
@Output() datasetSelected = new EventEmitter<CustomEvent>();
|
|
30
32
|
@Output() datasetRemoved = new EventEmitter<CustomEvent>();
|
|
31
33
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
-
import type {
|
|
2
|
+
import type { VizItemType, SlotName, VizItemSlots, Placement } from '../types';
|
|
3
3
|
|
|
4
4
|
@Component({
|
|
5
5
|
selector: 'luzmo-droppable-slot',
|
|
@@ -29,7 +29,7 @@ import type { ItemType, SlotName, VizItemSlots, Placement } from '../types';
|
|
|
29
29
|
</luzmo-droppable-slot>`
|
|
30
30
|
})
|
|
31
31
|
export class DroppableSlotComponent {
|
|
32
|
-
@Input() itemType?:
|
|
32
|
+
@Input() itemType?: VizItemType;
|
|
33
33
|
@Input() slotName?: SlotName;
|
|
34
34
|
@Input() slotConfiguration?: any;
|
|
35
35
|
@Input() slotsContents?: VizItemSlots;
|
|
@@ -9,7 +9,8 @@ export declare class AiInteractionTextareaComponent {
|
|
|
9
9
|
apiUrl?: string;
|
|
10
10
|
appServer?: string;
|
|
11
11
|
flagOpendata?: boolean;
|
|
12
|
+
disabled?: boolean;
|
|
12
13
|
promptSubmitted: EventEmitter<CustomEvent<any>>;
|
|
13
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<AiInteractionTextareaComponent, never>;
|
|
14
|
-
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; }; }, { "promptSubmitted": "promptSubmitted"; }, never, ["*"], true, 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>;
|
|
15
16
|
}
|
|
@@ -8,9 +8,10 @@ export class AiInteractionTextareaComponent {
|
|
|
8
8
|
apiUrl;
|
|
9
9
|
appServer;
|
|
10
10
|
flagOpendata;
|
|
11
|
+
disabled;
|
|
11
12
|
promptSubmitted = new EventEmitter();
|
|
12
13
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AiInteractionTextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
-
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" }, outputs: { promptSubmitted: "promptSubmitted" }, ngImport: i0, template: `<luzmo-ai-interaction-textarea
|
|
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
|
|
14
15
|
[attr.placeholder]="placeholder"
|
|
15
16
|
[attr.selectedDatasets]="selectedDatasets"
|
|
16
17
|
[attr.auth-key]="authKey"
|
|
@@ -18,9 +19,10 @@ export class AiInteractionTextareaComponent {
|
|
|
18
19
|
[attr.api-url]="apiUrl"
|
|
19
20
|
[attr.app-server]="appServer"
|
|
20
21
|
[attr.flag-opendata]="flagOpendata"
|
|
22
|
+
[attr.disabled]="disabled"
|
|
21
23
|
(prompt-submitted)="promptSubmitted.emit($event)">
|
|
22
24
|
<ng-content></ng-content>
|
|
23
|
-
</luzmo-ai-interaction-textarea>`, isInline: true, dependencies: [{ kind: "component", type: AiInteractionTextareaComponent, selector: "luzmo-ai-interaction-textarea", inputs: ["placeholder", "selectedDatasets", "authKey", "authToken", "apiUrl", "appServer", "flagOpendata"], outputs: ["promptSubmitted"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
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 });
|
|
24
26
|
}
|
|
25
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AiInteractionTextareaComponent, decorators: [{
|
|
26
28
|
type: Component,
|
|
@@ -36,6 +38,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImpor
|
|
|
36
38
|
[attr.api-url]="apiUrl"
|
|
37
39
|
[attr.app-server]="appServer"
|
|
38
40
|
[attr.flag-opendata]="flagOpendata"
|
|
41
|
+
[attr.disabled]="disabled"
|
|
39
42
|
(prompt-submitted)="promptSubmitted.emit($event)">
|
|
40
43
|
<ng-content></ng-content>
|
|
41
44
|
</luzmo-ai-interaction-textarea>`
|
|
@@ -54,6 +57,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImpor
|
|
|
54
57
|
type: Input
|
|
55
58
|
}], flagOpendata: [{
|
|
56
59
|
type: Input
|
|
60
|
+
}], disabled: [{
|
|
61
|
+
type: Input
|
|
57
62
|
}], promptSubmitted: [{
|
|
58
63
|
type: Output
|
|
59
64
|
}] } });
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DatasetIcon } from '../types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class DatasetIconComponent {
|
|
4
|
+
dataset?: DatasetIcon;
|
|
5
|
+
size?: '16px' | '24px' | '32px' | '48px' | '64px';
|
|
6
|
+
appUrl?: string;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DatasetIconComponent, never>;
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DatasetIconComponent, "luzmo-dataset-icon", never, { "dataset": { "alias": "dataset"; "required": false; }; "size": { "alias": "size"; "required": false; }; "appUrl": { "alias": "appUrl"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class DatasetIconComponent {
|
|
4
|
+
dataset;
|
|
5
|
+
size;
|
|
6
|
+
appUrl;
|
|
7
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DatasetIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: DatasetIconComponent, isStandalone: true, selector: "luzmo-dataset-icon", inputs: { dataset: "dataset", size: "size", appUrl: "appUrl" }, ngImport: i0, template: `<luzmo-dataset-icon
|
|
9
|
+
[attr.dataset]="dataset"
|
|
10
|
+
[attr.size]="size"
|
|
11
|
+
[attr.app-url]="appUrl"
|
|
12
|
+
>
|
|
13
|
+
<ng-content></ng-content>
|
|
14
|
+
</luzmo-dataset-icon>`, isInline: true, dependencies: [{ kind: "component", type: DatasetIconComponent, selector: "luzmo-dataset-icon", inputs: ["dataset", "size", "appUrl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DatasetIconComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{
|
|
19
|
+
selector: 'luzmo-dataset-icon',
|
|
20
|
+
standalone: true,
|
|
21
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
22
|
+
template: `<luzmo-dataset-icon
|
|
23
|
+
[attr.dataset]="dataset"
|
|
24
|
+
[attr.size]="size"
|
|
25
|
+
[attr.app-url]="appUrl"
|
|
26
|
+
>
|
|
27
|
+
<ng-content></ng-content>
|
|
28
|
+
</luzmo-dataset-icon>`
|
|
29
|
+
}]
|
|
30
|
+
}], propDecorators: { dataset: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], size: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], appUrl: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}] } });
|
|
@@ -9,8 +9,9 @@ export declare class DatasetSelectorRowComponent {
|
|
|
9
9
|
apiUrl?: string;
|
|
10
10
|
appServer?: string;
|
|
11
11
|
flagOpendata?: boolean;
|
|
12
|
+
disabled?: boolean;
|
|
12
13
|
datasetSelected: EventEmitter<CustomEvent<any>>;
|
|
13
14
|
datasetRemoved: EventEmitter<CustomEvent<any>>;
|
|
14
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatasetSelectorRowComponent, never>;
|
|
15
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DatasetSelectorRowComponent, "luzmo-dataset-selector-row", never, { "selectedDatasets": { "alias": "selectedDatasets"; "required": false; }; "buttonLabel": { "alias": "buttonLabel"; "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; }; }, { "datasetSelected": "datasetSelected"; "datasetRemoved": "datasetRemoved"; }, never, ["*"], true, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DatasetSelectorRowComponent, "luzmo-dataset-selector-row", never, { "selectedDatasets": { "alias": "selectedDatasets"; "required": false; }; "buttonLabel": { "alias": "buttonLabel"; "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; }; }, { "datasetSelected": "datasetSelected"; "datasetRemoved": "datasetRemoved"; }, never, ["*"], true, never>;
|
|
16
17
|
}
|
|
@@ -8,10 +8,11 @@ export class DatasetSelectorRowComponent {
|
|
|
8
8
|
apiUrl;
|
|
9
9
|
appServer;
|
|
10
10
|
flagOpendata;
|
|
11
|
+
disabled;
|
|
11
12
|
datasetSelected = new EventEmitter();
|
|
12
13
|
datasetRemoved = new EventEmitter();
|
|
13
14
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DatasetSelectorRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: DatasetSelectorRowComponent, isStandalone: true, selector: "luzmo-dataset-selector-row", inputs: { selectedDatasets: "selectedDatasets", buttonLabel: "buttonLabel", authKey: "authKey", authToken: "authToken", apiUrl: "apiUrl", appServer: "appServer", flagOpendata: "flagOpendata" }, outputs: { datasetSelected: "datasetSelected", datasetRemoved: "datasetRemoved" }, ngImport: i0, template: `<luzmo-dataset-selector-row
|
|
15
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.3", type: DatasetSelectorRowComponent, isStandalone: true, selector: "luzmo-dataset-selector-row", inputs: { selectedDatasets: "selectedDatasets", buttonLabel: "buttonLabel", authKey: "authKey", authToken: "authToken", apiUrl: "apiUrl", appServer: "appServer", flagOpendata: "flagOpendata", disabled: "disabled" }, outputs: { datasetSelected: "datasetSelected", datasetRemoved: "datasetRemoved" }, ngImport: i0, template: `<luzmo-dataset-selector-row
|
|
15
16
|
[attr.selectedDatasets]="selectedDatasets"
|
|
16
17
|
[attr.button-label]="buttonLabel"
|
|
17
18
|
[attr.auth-key]="authKey"
|
|
@@ -19,10 +20,11 @@ export class DatasetSelectorRowComponent {
|
|
|
19
20
|
[attr.api-url]="apiUrl"
|
|
20
21
|
[attr.app-server]="appServer"
|
|
21
22
|
[attr.flag-opendata]="flagOpendata"
|
|
23
|
+
[attr.disabled]="disabled"
|
|
22
24
|
(dataset-selected)="datasetSelected.emit($event)"
|
|
23
25
|
(dataset-removed)="datasetRemoved.emit($event)">
|
|
24
26
|
<ng-content></ng-content>
|
|
25
|
-
</luzmo-dataset-selector-row>`, isInline: true, dependencies: [{ kind: "component", type: DatasetSelectorRowComponent, selector: "luzmo-dataset-selector-row", inputs: ["selectedDatasets", "buttonLabel", "authKey", "authToken", "apiUrl", "appServer", "flagOpendata"], outputs: ["datasetSelected", "datasetRemoved"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
27
|
+
</luzmo-dataset-selector-row>`, isInline: true, dependencies: [{ kind: "component", type: DatasetSelectorRowComponent, selector: "luzmo-dataset-selector-row", inputs: ["selectedDatasets", "buttonLabel", "authKey", "authToken", "apiUrl", "appServer", "flagOpendata", "disabled"], outputs: ["datasetSelected", "datasetRemoved"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
26
28
|
}
|
|
27
29
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: DatasetSelectorRowComponent, decorators: [{
|
|
28
30
|
type: Component,
|
|
@@ -38,6 +40,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImpor
|
|
|
38
40
|
[attr.api-url]="apiUrl"
|
|
39
41
|
[attr.app-server]="appServer"
|
|
40
42
|
[attr.flag-opendata]="flagOpendata"
|
|
43
|
+
[attr.disabled]="disabled"
|
|
41
44
|
(dataset-selected)="datasetSelected.emit($event)"
|
|
42
45
|
(dataset-removed)="datasetRemoved.emit($event)">
|
|
43
46
|
<ng-content></ng-content>
|
|
@@ -57,6 +60,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImpor
|
|
|
57
60
|
type: Input
|
|
58
61
|
}], flagOpendata: [{
|
|
59
62
|
type: Input
|
|
63
|
+
}], disabled: [{
|
|
64
|
+
type: Input
|
|
60
65
|
}], datasetSelected: [{
|
|
61
66
|
type: Output
|
|
62
67
|
}], datasetRemoved: [{
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import type {
|
|
2
|
+
import type { VizItemType, SlotName, VizItemSlots, Placement } from '../types';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class DroppableSlotComponent {
|
|
5
|
-
itemType?:
|
|
5
|
+
itemType?: VizItemType;
|
|
6
6
|
slotName?: SlotName;
|
|
7
7
|
slotConfiguration?: any;
|
|
8
8
|
slotsContents?: VizItemSlots;
|
package/angular/esm/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { AiChatMessageAssistantComponent } from './components/ai-chat-message-as
|
|
|
2
2
|
import { AiChatMessageUserComponent } from './components/ai-chat-message-user.component';
|
|
3
3
|
import { AiChatMessagesContainerComponent } from './components/ai-chat-messages-container.component';
|
|
4
4
|
import { AiInteractionTextareaComponent } from './components/ai-interaction-textarea.component';
|
|
5
|
+
import { DatasetIconComponent } from './components/dataset-icon.component';
|
|
5
6
|
import { DatasetSelectorListComponent } from './components/dataset-selector-list.component';
|
|
6
7
|
import { DatasetSelectorRowComponent } from './components/dataset-selector-row.component';
|
|
7
8
|
import { DisplaySettingsComponent } from './components/display-settings.component';
|
|
@@ -35,6 +36,7 @@ export { AiChatMessageAssistantComponent } from './components/ai-chat-message-as
|
|
|
35
36
|
export { AiChatMessageUserComponent } from './components/ai-chat-message-user.component';
|
|
36
37
|
export { AiChatMessagesContainerComponent } from './components/ai-chat-messages-container.component';
|
|
37
38
|
export { AiInteractionTextareaComponent } from './components/ai-interaction-textarea.component';
|
|
39
|
+
export { DatasetIconComponent } from './components/dataset-icon.component';
|
|
38
40
|
export { DatasetSelectorListComponent } from './components/dataset-selector-list.component';
|
|
39
41
|
export { DatasetSelectorRowComponent } from './components/dataset-selector-row.component';
|
|
40
42
|
export { DisplaySettingsComponent } from './components/display-settings.component';
|
|
@@ -64,4 +66,4 @@ export { GridItemActionsMenuComponent } from './components/grid-item-actions-men
|
|
|
64
66
|
export { SlotContentsPickerComponent } from './components/slot-contents-picker.component';
|
|
65
67
|
export { SlotMenuComponent } from './components/slot-menu.component';
|
|
66
68
|
export { SlotMenuListComponent } from './components/slot-menu-list.component';
|
|
67
|
-
export declare const LUZMO_COMPONENTS: readonly [typeof AiChatMessageAssistantComponent, typeof AiChatMessageUserComponent, typeof AiChatMessagesContainerComponent, typeof AiInteractionTextareaComponent, typeof DatasetSelectorListComponent, typeof DatasetSelectorRowComponent, typeof DisplaySettingsComponent, typeof DisplaySettingsBinningComponent, typeof DisplaySettingsDatetimeComponent, typeof DisplaySettingsGrandTotalsComponent, typeof DisplaySettingsNumericComponent, typeof DisplaySettingsPeriodOverPeriodComponent, typeof DraggableDataItemComponent, typeof DraggableDataItemLevelComponent, typeof DroppableSlotComponent, typeof EditItemComponent, typeof EditOptionComponent, typeof EditOptionColorPickerComponent, typeof EditOptionColorRangeComponent, typeof FilterDataItemPickerComponent, typeof FilterExpressionPickerComponent, typeof FilterGroupComponent, typeof FilterItemComponent, typeof FilterParameterPickerComponent, typeof FilterValuePickerComponent, typeof FilterValuePickerDatetimeComponent, typeof FilterValuePickerHierarchyComponent, typeof FilterValuePickerNumericComponent, typeof GridComponent, typeof GridItemActionsMenuComponent, typeof SlotContentsPickerComponent, typeof SlotMenuComponent, typeof SlotMenuListComponent];
|
|
69
|
+
export declare const LUZMO_COMPONENTS: readonly [typeof AiChatMessageAssistantComponent, typeof AiChatMessageUserComponent, typeof AiChatMessagesContainerComponent, typeof AiInteractionTextareaComponent, typeof DatasetIconComponent, typeof DatasetSelectorListComponent, typeof DatasetSelectorRowComponent, typeof DisplaySettingsComponent, typeof DisplaySettingsBinningComponent, typeof DisplaySettingsDatetimeComponent, typeof DisplaySettingsGrandTotalsComponent, typeof DisplaySettingsNumericComponent, typeof DisplaySettingsPeriodOverPeriodComponent, typeof DraggableDataItemComponent, typeof DraggableDataItemLevelComponent, typeof DroppableSlotComponent, typeof EditItemComponent, typeof EditOptionComponent, typeof EditOptionColorPickerComponent, typeof EditOptionColorRangeComponent, typeof FilterDataItemPickerComponent, typeof FilterExpressionPickerComponent, typeof FilterGroupComponent, typeof FilterItemComponent, typeof FilterParameterPickerComponent, typeof FilterValuePickerComponent, typeof FilterValuePickerDatetimeComponent, typeof FilterValuePickerHierarchyComponent, typeof FilterValuePickerNumericComponent, typeof GridComponent, typeof GridItemActionsMenuComponent, typeof SlotContentsPickerComponent, typeof SlotMenuComponent, typeof SlotMenuListComponent];
|
package/angular/esm/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import { AiChatMessageAssistantComponent } from './components/ai-chat-message-as
|
|
|
2
2
|
import { AiChatMessageUserComponent } from './components/ai-chat-message-user.component';
|
|
3
3
|
import { AiChatMessagesContainerComponent } from './components/ai-chat-messages-container.component';
|
|
4
4
|
import { AiInteractionTextareaComponent } from './components/ai-interaction-textarea.component';
|
|
5
|
+
import { DatasetIconComponent } from './components/dataset-icon.component';
|
|
5
6
|
import { DatasetSelectorListComponent } from './components/dataset-selector-list.component';
|
|
6
7
|
import { DatasetSelectorRowComponent } from './components/dataset-selector-row.component';
|
|
7
8
|
import { DisplaySettingsComponent } from './components/display-settings.component';
|
|
@@ -35,6 +36,7 @@ export { AiChatMessageAssistantComponent } from './components/ai-chat-message-as
|
|
|
35
36
|
export { AiChatMessageUserComponent } from './components/ai-chat-message-user.component';
|
|
36
37
|
export { AiChatMessagesContainerComponent } from './components/ai-chat-messages-container.component';
|
|
37
38
|
export { AiInteractionTextareaComponent } from './components/ai-interaction-textarea.component';
|
|
39
|
+
export { DatasetIconComponent } from './components/dataset-icon.component';
|
|
38
40
|
export { DatasetSelectorListComponent } from './components/dataset-selector-list.component';
|
|
39
41
|
export { DatasetSelectorRowComponent } from './components/dataset-selector-row.component';
|
|
40
42
|
export { DisplaySettingsComponent } from './components/display-settings.component';
|
|
@@ -69,6 +71,7 @@ export const LUZMO_COMPONENTS = [
|
|
|
69
71
|
AiChatMessageUserComponent,
|
|
70
72
|
AiChatMessagesContainerComponent,
|
|
71
73
|
AiInteractionTextareaComponent,
|
|
74
|
+
DatasetIconComponent,
|
|
72
75
|
DatasetSelectorListComponent,
|
|
73
76
|
DatasetSelectorRowComponent,
|
|
74
77
|
DisplaySettingsComponent,
|
package/angular/esm/types.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { VizItemType } from '@luzmo/dashboard-contents-types';
|
|
|
7
7
|
import { IconDefinition } from '@luzmo/icons';
|
|
8
8
|
import { Placement } from '@luzmo/lucero';
|
|
9
9
|
import { TemplateResult } from 'lit';
|
|
10
|
-
export type { Column, ColumnSubtype, ColumnType, GenericSlotContent,
|
|
10
|
+
export type { Column, ColumnSubtype, ColumnType, GenericSlotContent, SlotName, VizItemSlots, VizItemType } from '@luzmo/dashboard-contents-types';
|
|
11
11
|
export declare enum PeriodOverPeriodCondition {
|
|
12
12
|
HasDatetimeColumnAndNoComparisonFilters = "hasDatetimeColumnAndNoComparisonFilters",
|
|
13
13
|
NoDatetimeColumnAndNoComparisonFilters = "noDatetimeColumnAndNoComparisonFilters",
|
|
@@ -64,6 +64,20 @@ export type DataItem = {
|
|
|
64
64
|
lowestLevel?: string;
|
|
65
65
|
};
|
|
66
66
|
export type GridItemRenderer = (item: GridItemData, index: number) => TemplateResult;
|
|
67
|
+
/**
|
|
68
|
+
* Dataset icon interface matching the Angular component
|
|
69
|
+
*/
|
|
70
|
+
export interface DatasetIcon {
|
|
71
|
+
subtype: string;
|
|
72
|
+
account?: {
|
|
73
|
+
plugin?: {
|
|
74
|
+
thumbnails?: {
|
|
75
|
+
url: string;
|
|
76
|
+
size: string;
|
|
77
|
+
}[];
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
}
|
|
67
81
|
export type { ElementSize, Placement } from '@luzmo/lucero';
|
|
68
82
|
export interface Dataset {
|
|
69
83
|
id: string;
|
package/angular/index.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { AiChatMessageAssistantComponent } from './components/ai-chat-message-as
|
|
|
2
2
|
import { AiChatMessageUserComponent } from './components/ai-chat-message-user.component';
|
|
3
3
|
import { AiChatMessagesContainerComponent } from './components/ai-chat-messages-container.component';
|
|
4
4
|
import { AiInteractionTextareaComponent } from './components/ai-interaction-textarea.component';
|
|
5
|
+
import { DatasetIconComponent } from './components/dataset-icon.component';
|
|
5
6
|
import { DatasetSelectorListComponent } from './components/dataset-selector-list.component';
|
|
6
7
|
import { DatasetSelectorRowComponent } from './components/dataset-selector-row.component';
|
|
7
8
|
import { DisplaySettingsComponent } from './components/display-settings.component';
|
|
@@ -36,6 +37,7 @@ export { AiChatMessageAssistantComponent } from './components/ai-chat-message-as
|
|
|
36
37
|
export { AiChatMessageUserComponent } from './components/ai-chat-message-user.component';
|
|
37
38
|
export { AiChatMessagesContainerComponent } from './components/ai-chat-messages-container.component';
|
|
38
39
|
export { AiInteractionTextareaComponent } from './components/ai-interaction-textarea.component';
|
|
40
|
+
export { DatasetIconComponent } from './components/dataset-icon.component';
|
|
39
41
|
export { DatasetSelectorListComponent } from './components/dataset-selector-list.component';
|
|
40
42
|
export { DatasetSelectorRowComponent } from './components/dataset-selector-row.component';
|
|
41
43
|
export { DisplaySettingsComponent } from './components/display-settings.component';
|
|
@@ -71,6 +73,7 @@ export const LUZMO_COMPONENTS = [
|
|
|
71
73
|
AiChatMessageUserComponent,
|
|
72
74
|
AiChatMessagesContainerComponent,
|
|
73
75
|
AiInteractionTextareaComponent,
|
|
76
|
+
DatasetIconComponent,
|
|
74
77
|
DatasetSelectorListComponent,
|
|
75
78
|
DatasetSelectorRowComponent,
|
|
76
79
|
DisplaySettingsComponent,
|
package/angular/types.ts
CHANGED
|
@@ -14,9 +14,9 @@ export type {
|
|
|
14
14
|
ColumnSubtype,
|
|
15
15
|
ColumnType,
|
|
16
16
|
GenericSlotContent,
|
|
17
|
-
ItemType,
|
|
18
17
|
SlotName,
|
|
19
|
-
VizItemSlots
|
|
18
|
+
VizItemSlots,
|
|
19
|
+
VizItemType
|
|
20
20
|
} from '@luzmo/dashboard-contents-types';
|
|
21
21
|
|
|
22
22
|
export enum PeriodOverPeriodCondition {
|
|
@@ -91,6 +91,19 @@ export type GridItemRenderer = (
|
|
|
91
91
|
index: number
|
|
92
92
|
) => TemplateResult;
|
|
93
93
|
|
|
94
|
+
/**
|
|
95
|
+
* Dataset icon interface matching the Angular component
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
export interface DatasetIcon {
|
|
99
|
+
subtype: string;
|
|
100
|
+
account?: {
|
|
101
|
+
plugin?: {
|
|
102
|
+
thumbnails?: { url: string; size: string }[];
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
|
|
94
107
|
export type { ElementSize, Placement } from '@luzmo/lucero';
|
|
95
108
|
|
|
96
109
|
// Dataset interface for dataset selector components
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { LitElement, TemplateResult } from 'lit';
|
|
2
2
|
import { Dataset } from '../../types';
|
|
3
|
-
import '../dataset-selector-row
|
|
3
|
+
import '../dataset-selector-row';
|
|
4
4
|
/**
|
|
5
5
|
* @element luzmo-ai-interaction-textarea
|
|
6
6
|
* @summary A textarea component for AI interaction with dataset selection
|
|
7
7
|
* @fires prompt-submitted - Fired when a prompt is submitted with selected datasets
|
|
8
8
|
*
|
|
9
|
+
* @attr {boolean} disabled - When true, disables the entire component (opacity 60%, no interactions)
|
|
10
|
+
*
|
|
9
11
|
* @cssprop --luzmo-ai-interaction-textarea-background-color - Override for background color of the component (client customization)
|
|
10
12
|
* @cssprop --ai-interaction-textarea-background-color - Background color of the component
|
|
11
13
|
* @cssprop --ai-interaction-textarea-border-color - Border color of the component
|
|
@@ -63,6 +65,10 @@ export declare class LuzmoAiInteractionTextarea extends LitElement {
|
|
|
63
65
|
* When true, restricts results to public datasets (opendata parity)
|
|
64
66
|
*/
|
|
65
67
|
flagOpendata: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* When true, disables the entire component (sets opacity to 60% and prevents all interactions)
|
|
70
|
+
*/
|
|
71
|
+
disabled: boolean;
|
|
66
72
|
private _promptValue;
|
|
67
73
|
private _isPromptValid;
|
|
68
74
|
private get _buttonDisabled();
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/*! * A kit of modern Luzmo Web Components for analytics in your web application.
|
|
2
|
+
*
|
|
3
|
+
* Copyright © 2025 Luzmo
|
|
4
|
+
* All rights reserved.
|
|
5
|
+
* Luzmo web components (“Luzmo Web Components”)
|
|
6
|
+
* must be used according to the Luzmo Terms of Service.
|
|
7
|
+
* This license allows users with a current active Luzmo account
|
|
8
|
+
* to use the Luzmo Web Components. This license terminates
|
|
9
|
+
* automatically if a user no longer has an active Luzmo account.
|
|
10
|
+
* Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
|
|
11
|
+
*
|
|
12
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
13
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
14
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
15
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
16
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
17
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
18
|
+
* SOFTWARE.
|
|
19
|
+
* */
|
|
20
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("@lit/localize"),u=require("@luzmo/icons"),l=require("lit"),o=require("lit/decorators.js"),p=require("lit/directives/class-map.js");require("../dataset-selector-row/index.cjs");const m=":host{box-sizing:border-box;display:flex;flex-direction:column;background-color:var(--luzmo-ai-interaction-textarea-background-color, var(--ai-interaction-textarea-background-color));border:1px solid var(--luzmo-ai-interaction-textarea-border-color, var(--ai-interaction-textarea-border-color));border-radius:var(--luzmo-ai-interaction-textarea-border-radius, var(--ai-interaction-textarea-border-radius));padding:var(--luzmo-ai-interaction-textarea-padding, var(--ai-interaction-textarea-padding));gap:var(--luzmo-ai-interaction-textarea-gap, var(--ai-interaction-textarea-gap));font-family:var(--luzmo-ai-interaction-textarea-font-family, var(--ai-interaction-textarea-font-family));font-size:var(--luzmo-ai-interaction-textarea-font-size, var(--ai-interaction-textarea-font-size))}:host:has(textarea:focus){border-color:var(--luzmo-ai-interaction-textarea-focus-border-color, var(--ai-interaction-textarea-focus-border-color));box-shadow:var(--luzmo-ai-interaction-textarea-focus-box-shadow, var(--ai-interaction-textarea-focus-box-shadow))}:host .content-wrapper{display:flex;flex-direction:column;gap:var(--luzmo-ai-interaction-textarea-gap, var(--ai-interaction-textarea-gap))}:host .content-wrapper.disabled{opacity:.6;pointer-events:none;cursor:not-allowed}:host .content-wrapper.disabled *{pointer-events:none}:host textarea{background-color:var(--luzmo-ai-interaction-textarea-textarea-background, var(--ai-interaction-textarea-textarea-background));border:none;resize:none;outline:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;vertical-align:middle;padding:0;min-height:3rem;color:var(--luzmo-ai-interaction-textarea-textarea-color, var(--ai-interaction-textarea-textarea-color));font-family:var(--luzmo-ai-interaction-textarea-font-family, var(--ai-interaction-textarea-font-family));font-size:var(--luzmo-ai-interaction-textarea-font-size, var(--ai-interaction-textarea-font-size));line-height:1.5}:host textarea::placeholder{color:var(--luzmo-ai-interaction-textarea-textarea-placeholder-color, var(--ai-interaction-textarea-textarea-placeholder-color))}:host .button-container{text-align:var(--luzmo-ai-interaction-textarea-button-container-text-align, var(--ai-interaction-textarea-button-container-text-align))}:host .button-container button{padding:var(--luzmo-ai-interaction-textarea-button-padding, var(--ai-interaction-textarea-button-padding));min-width:var(--luzmo-ai-interaction-textarea-button-min-width, var(--ai-interaction-textarea-button-min-width));min-height:var(--luzmo-ai-interaction-textarea-button-min-height, var(--ai-interaction-textarea-button-min-height));border:none;border-radius:var(--luzmo-ai-interaction-textarea-button-border-radius, var(--ai-interaction-textarea-button-border-radius));font-size:var(--luzmo-ai-interaction-textarea-button-font-size, var(--ai-interaction-textarea-button-font-size));cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}:host .button-container button:disabled{opacity:.6;cursor:not-allowed}:host .button-container button.disabled{opacity:.6;cursor:not-allowed}:host .button-container button svg{display:flex;align-items:center;justify-content:center}:host .button-container button.btn-primary{background-color:var(--luzmo-ai-interaction-textarea-button-background-color, var(--ai-interaction-textarea-button-background-color));color:var(--luzmo-ai-interaction-textarea-button-color, var(--ai-interaction-textarea-button-color))}:host .button-container button.btn-primary:hover:not(:disabled):not(.disabled){background-color:var(--luzmo-ai-interaction-textarea-button-background-color-hover, var(--ai-interaction-textarea-button-background-color-hover))}:host .button-container button.btn-primary:disabled,:host .button-container button.btn-primary.disabled{background-color:var(--luzmo-ai-interaction-textarea-button-background-color-disabled, var(--ai-interaction-textarea-button-background-color-disabled));opacity:.6}:host{--ai-interaction-textarea-background-color: var(--luzmo-background-color-alt-2);--ai-interaction-textarea-border-color: var(--luzmo-border-color);--ai-interaction-textarea-border-radius: .5rem;--ai-interaction-textarea-padding: .75rem;--ai-interaction-textarea-gap: 1rem;--ai-interaction-textarea-focus-border-color: var(--luzmo-primary);--ai-interaction-textarea-focus-box-shadow: 0 0 1rem 0 var(--luzmo-primary-50);--ai-interaction-textarea-font-family: var(--luzmo-font-family);--ai-interaction-textarea-font-size: .875rem;--ai-interaction-textarea-textarea-background: transparent;--ai-interaction-textarea-textarea-color: var(--luzmo-font-color);--ai-interaction-textarea-textarea-placeholder-color: var(--luzmo-font-color-extra-dimmed);--ai-interaction-textarea-button-container-text-align: right;--ai-interaction-textarea-button-padding: 0;--ai-interaction-textarea-button-min-width: 2rem;--ai-interaction-textarea-button-min-height: 1.875rem;--ai-interaction-textarea-button-border-radius: .5rem;--ai-interaction-textarea-button-font-size: 1rem;--ai-interaction-textarea-button-background-color: var(--luzmo-primary);--ai-interaction-textarea-button-background-color-hover: var(--luzmo-primary-hover);--ai-interaction-textarea-button-background-color-disabled: var(--luzmo-primary);--ai-interaction-textarea-button-color: var(--luzmo-primary-inverse-color)}";var b=Object.defineProperty,h=Object.getOwnPropertyDescriptor,e=(n,t,a,r)=>{for(var i=r>1?void 0:r?h(t,a):t,s=n.length-1,c;s>=0;s--)(c=n[s])&&(i=(r?c(t,a,i):c(i))||i);return r&&i&&b(t,a,i),i};exports.LuzmoAiInteractionTextarea=class extends l.LitElement{constructor(){super(...arguments),this.placeholder="Type your prompt here...",this.selectedDatasets=[],this.authKey="",this.authToken="",this.apiUrl="https://api.luzmo.com",this.appServer="https://app.luzmo.com",this.flagOpendata=!1,this.disabled=!1,this._promptValue="",this._isPromptValid=!1}get _buttonDisabled(){return this.disabled||this.selectedDatasets.length===0||!this._isPromptValid}_autoResizeTextarea(t){t.style.height="auto";const a=2*1.5*16,r=8*1.5*16,i=Math.max(a,Math.min(t.scrollHeight,r));t.style.height=`${i}px`}_handlePromptInput(t){const a=t.target;this._promptValue=a.value,this._isPromptValid=a.value.trim().length>0,this._autoResizeTextarea(a),a.scrollTo({top:a.scrollHeight})}_handleKeyDown(t){t.key==="Enter"&&!t.shiftKey&&(t.preventDefault(),this._submitPrompt())}_submitPrompt(){if(this._buttonDisabled)return;const t=this._promptValue.trim();this.dispatchEvent(new CustomEvent("prompt-submitted",{detail:{prompt:t,selectedDatasets:this.selectedDatasets},bubbles:!0,composed:!0}))}_handleDatasetSelected(t){const a=t.detail;this.selectedDatasets.some(r=>r.id===a.id)||(this.selectedDatasets=[...this.selectedDatasets,a])}_handleDatasetRemoved(t){const a=t.detail;this.selectedDatasets=this.selectedDatasets.filter(r=>r.id!==a.id)}firstUpdated(){var a;const t=(a=this.shadowRoot)==null?void 0:a.querySelector("textarea");t&&this._autoResizeTextarea(t)}render(){const t={"content-wrapper":!0,disabled:this.disabled};return l.html`
|
|
21
|
+
<div class=${p.classMap(t)}>
|
|
22
|
+
<luzmo-dataset-selector-row
|
|
23
|
+
.selectedDatasets=${this.selectedDatasets}
|
|
24
|
+
auth-key=${this.authKey}
|
|
25
|
+
auth-token=${this.authToken}
|
|
26
|
+
api-url=${this.apiUrl}
|
|
27
|
+
app-server=${this.appServer}
|
|
28
|
+
?flag-opendata=${this.flagOpendata}
|
|
29
|
+
?disabled=${this.disabled}
|
|
30
|
+
@dataset-selected=${this._handleDatasetSelected}
|
|
31
|
+
@dataset-removed=${this._handleDatasetRemoved}
|
|
32
|
+
></luzmo-dataset-selector-row>
|
|
33
|
+
|
|
34
|
+
<textarea
|
|
35
|
+
?autofocus=${!this.disabled}
|
|
36
|
+
?disabled=${this.disabled}
|
|
37
|
+
.placeholder=${this.placeholder}
|
|
38
|
+
.value=${this._promptValue}
|
|
39
|
+
@input=${this._handlePromptInput}
|
|
40
|
+
@keydown=${this._handleKeyDown}
|
|
41
|
+
rows="2"
|
|
42
|
+
></textarea>
|
|
43
|
+
|
|
44
|
+
<div class="button-container">
|
|
45
|
+
<button
|
|
46
|
+
class="btn btn-primary"
|
|
47
|
+
?disabled=${this._buttonDisabled}
|
|
48
|
+
@click=${this._submitPrompt}
|
|
49
|
+
>
|
|
50
|
+
${u.luzmoIcon(u.luzmoArrowRight)}
|
|
51
|
+
</button>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
`}};exports.LuzmoAiInteractionTextarea.styles=l.unsafeCSS(m);exports.LuzmoAiInteractionTextarea.tagName="luzmo-ai-interaction-textarea";e([o.property({type:String})],exports.LuzmoAiInteractionTextarea.prototype,"placeholder",2);e([o.property({type:Array})],exports.LuzmoAiInteractionTextarea.prototype,"selectedDatasets",2);e([o.property({type:String,attribute:"auth-key"})],exports.LuzmoAiInteractionTextarea.prototype,"authKey",2);e([o.property({type:String,attribute:"auth-token"})],exports.LuzmoAiInteractionTextarea.prototype,"authToken",2);e([o.property({type:String,attribute:"api-url"})],exports.LuzmoAiInteractionTextarea.prototype,"apiUrl",2);e([o.property({type:String,attribute:"app-server"})],exports.LuzmoAiInteractionTextarea.prototype,"appServer",2);e([o.property({type:Boolean,attribute:"flag-opendata"})],exports.LuzmoAiInteractionTextarea.prototype,"flagOpendata",2);e([o.property({type:Boolean,reflect:!0,attribute:"disabled"})],exports.LuzmoAiInteractionTextarea.prototype,"disabled",2);e([o.state()],exports.LuzmoAiInteractionTextarea.prototype,"_promptValue",2);e([o.state()],exports.LuzmoAiInteractionTextarea.prototype,"_isPromptValid",2);exports.LuzmoAiInteractionTextarea=e([d.localized()],exports.LuzmoAiInteractionTextarea);customElements.get("luzmo-ai-interaction-textarea")||customElements.define("luzmo-ai-interaction-textarea",exports.LuzmoAiInteractionTextarea);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LuzmoAiInteractionTextarea } from './ai-interaction-textarea';
|
|
2
|
-
export { LuzmoAiInteractionTextarea } from './ai-interaction-textarea';
|
|
3
2
|
declare global {
|
|
4
3
|
interface HTMLElementTagNameMap {
|
|
5
4
|
'luzmo-ai-interaction-textarea': LuzmoAiInteractionTextarea;
|
|
6
5
|
}
|
|
7
6
|
}
|
|
7
|
+
export { LuzmoAiInteractionTextarea } from './ai-interaction-textarea';
|