@c8y/ngx-components 1023.0.0 → 1023.4.1
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/ai/agent-chat/index.d.ts +114 -0
- package/ai/agent-chat/index.d.ts.map +1 -0
- package/ai/ai-chat/index.d.ts +145 -0
- package/ai/ai-chat/index.d.ts.map +1 -0
- package/ai/index.d.ts +203 -0
- package/ai/index.d.ts.map +1 -0
- package/context-dashboard/device/add/index.d.ts +15 -1
- package/context-dashboard/device/add/index.d.ts.map +1 -1
- package/context-dashboard/device/view/index.d.ts +14 -2
- package/context-dashboard/device/view/index.d.ts.map +1 -1
- package/context-dashboard/devicemanagement/index.d.ts +10 -0
- package/context-dashboard/devicemanagement/index.d.ts.map +1 -0
- package/context-dashboard/index.d.ts +6 -30
- package/context-dashboard/index.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +387 -0
- package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs +258 -0
- package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-ai.mjs +291 -0
- package/fesm2022/c8y-ngx-components-ai.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs +2 -2
- package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs +68 -0
- package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +27 -45
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +15 -17
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-global-context.mjs +10 -10
- package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-register-device.mjs +4 -6
- package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs +2 -2
- package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs +574 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-widgets-exports.mjs +8 -1
- package/fesm2022/c8y-ngx-components-widgets-exports.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +176 -41
- package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +96 -44
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/index.d.ts +25 -4
- package/index.d.ts.map +1 -1
- package/locales/de.po +49 -52
- package/locales/es.po +42 -42
- package/locales/fr.po +35 -39
- package/locales/ja_JP.po +32 -32
- package/locales/ko.po +39 -40
- package/locales/locales.pot +144 -9
- package/locales/nl.po +37 -37
- package/locales/pl.po +51 -54
- package/locales/pt_BR.po +38 -39
- package/locales/zh_CN.po +36 -36
- package/locales/zh_TW.po +45 -45
- package/package.json +1 -1
- package/register-device/index.d.ts.map +1 -1
- package/widgets/cockpit-exports/index.d.ts +6 -0
- package/widgets/cockpit-exports/index.d.ts.map +1 -1
- package/widgets/definitions/html-widget-ai-config/index.d.ts +6 -0
- package/widgets/definitions/html-widget-ai-config/index.d.ts.map +1 -0
- package/widgets/device-management-exports/index.d.ts +6 -0
- package/widgets/device-management-exports/index.d.ts.map +1 -1
- package/widgets/exports/index.d.ts +8 -1
- package/widgets/exports/index.d.ts.map +1 -1
- package/widgets/implementations/html-widget/index.d.ts +72 -16
- package/widgets/implementations/html-widget/index.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-widgets-exports.mjs","sources":["../../widgets/exports/index.ts","../../widgets/exports/c8y-ngx-components-widgets-exports.ts"],"sourcesContent":["import { PluginsExports } from '@c8y/options';\n\nexport const radialGaugeWidgetExport = {\n name: 'Widgets: Radial Gauge widget',\n module: 'radialGaugeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/radial-gauge',\n description: 'Radial gauge widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const kpiWidgetExport = {\n name: 'Widgets: KPI widget',\n module: 'kpiWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/kpi',\n description: 'KPI widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const alarmListWidgetExport = {\n name: 'Widgets: Alarm list',\n module: 'alarmListWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/alarms/alarm-list',\n description: 'Alarm list widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const criticalAlarmsWidgetExport = {\n name: 'Widgets: All critical alarms',\n module: 'criticalAlarmsWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/alarms/all-critical-alarms',\n description: 'All critical alarms widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const recentAlarmsWidgetExport = {\n name: 'Widgets: Recent alarms',\n module: 'recentAlarmsWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/alarms/recent-alarms',\n description: 'Recent alarms widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const applicationsWidgetExport = {\n name: 'Widgets: Applications',\n module: 'applicationsWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/applications',\n description: 'Applications widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const legacyCockpitWelcomeWidgetExport = {\n name: 'Widgets: Legacy welcome to Cockpit',\n module: 'legacyCockpitWelcomeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/cockpit-legacy-welcome',\n description: 'Legacy welcome to Cockpit widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const cockpitWelcomeWidgetExport = {\n name: 'Widgets: Welcome to Cockpit',\n module: 'cockpitWelcomeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/cockpit-welcome',\n description: 'Welcome to Cockpit widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const deviceControlMessageWidgetExport = {\n name: 'Widgets: Message sending',\n module: 'deviceControlMessageWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/device-control-message',\n description: 'Message sending widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const helpAndServiceWidgetExport = {\n name: 'Widgets: Help and service',\n module: 'helpAndServiceWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/help-and-service',\n description: 'Help and service widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const imageWidgetExport = {\n name: 'Widgets: Image',\n module: 'imageWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/image',\n description: 'Image widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const infoGaugeWidgetExport = {\n name: 'Widgets: Info gauge',\n module: 'infoGaugeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/info-gauge',\n description: 'Info gauge widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const mapWidgetExport = {\n name: 'Widgets: Map',\n module: 'mapWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/map',\n description: 'Map widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const markdownWidgetExport = {\n name: 'Widgets: Markdown',\n module: 'markdownWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/markdown',\n description: 'Markdown widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const threeDRotationWidgetExport = {\n name: 'Widgets: Rotation',\n module: 'threeDRotationWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/three-d-rotation',\n description: 'Rotation widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const siloWidgetExport = {\n name: 'Widgets: Silo',\n module: 'siloWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/silo',\n description: 'Silo widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const linearGaugeWidgetExport = {\n name: 'Widgets: Linear Gauge',\n module: 'linearGaugeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/linear-gauge',\n description: 'Linear Gauge widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const datapointGraphWidgetExport = {\n name: 'Widgets: Data points graph',\n module: 'datapointGraphWidgetproviders',\n path: '@c8y/ngx-components/widgets/definitions/datapoints-graph',\n description: 'Data points graph widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const dataPointsTableWidgetExport = {\n name: 'Widgets: Data Points Table',\n module: 'dataPointsTableWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/datapoints-table',\n description: 'Data Points Table widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const htmlWidgetExport = {\n name: 'Widgets: HTML Widget',\n module: 'htmlWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/html-widget',\n description: 'Allows to set custom HTML on a dashboard',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const quickLinksWidgetExport = {\n name: 'Widgets: Quick Links',\n module: 'quickLinksWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/quick-links',\n description: 'Quick Links widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const deviceManagementWelcomeWidgetExport = {\n name: 'Widgets: Welcome to Device Management',\n module: 'deviceManagementWelcomeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/device-management-welcome',\n description: 'Welcome to Device Management widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const assetNotesWidgetExport = {\n name: 'Widgets: Asset notes',\n module: 'assetNotesWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/asset-notes',\n description: 'Asset notes widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-widgets-exports.mjs","sources":["../../widgets/exports/index.ts","../../widgets/exports/c8y-ngx-components-widgets-exports.ts"],"sourcesContent":["import { PluginsExports } from '@c8y/options';\n\nexport const radialGaugeWidgetExport = {\n name: 'Widgets: Radial Gauge widget',\n module: 'radialGaugeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/radial-gauge',\n description: 'Radial gauge widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const kpiWidgetExport = {\n name: 'Widgets: KPI widget',\n module: 'kpiWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/kpi',\n description: 'KPI widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const alarmListWidgetExport = {\n name: 'Widgets: Alarm list',\n module: 'alarmListWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/alarms/alarm-list',\n description: 'Alarm list widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const criticalAlarmsWidgetExport = {\n name: 'Widgets: All critical alarms',\n module: 'criticalAlarmsWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/alarms/all-critical-alarms',\n description: 'All critical alarms widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const recentAlarmsWidgetExport = {\n name: 'Widgets: Recent alarms',\n module: 'recentAlarmsWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/alarms/recent-alarms',\n description: 'Recent alarms widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const applicationsWidgetExport = {\n name: 'Widgets: Applications',\n module: 'applicationsWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/applications',\n description: 'Applications widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const legacyCockpitWelcomeWidgetExport = {\n name: 'Widgets: Legacy welcome to Cockpit',\n module: 'legacyCockpitWelcomeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/cockpit-legacy-welcome',\n description: 'Legacy welcome to Cockpit widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const cockpitWelcomeWidgetExport = {\n name: 'Widgets: Welcome to Cockpit',\n module: 'cockpitWelcomeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/cockpit-welcome',\n description: 'Welcome to Cockpit widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const deviceControlMessageWidgetExport = {\n name: 'Widgets: Message sending',\n module: 'deviceControlMessageWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/device-control-message',\n description: 'Message sending widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const helpAndServiceWidgetExport = {\n name: 'Widgets: Help and service',\n module: 'helpAndServiceWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/help-and-service',\n description: 'Help and service widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const imageWidgetExport = {\n name: 'Widgets: Image',\n module: 'imageWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/image',\n description: 'Image widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const infoGaugeWidgetExport = {\n name: 'Widgets: Info gauge',\n module: 'infoGaugeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/info-gauge',\n description: 'Info gauge widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const mapWidgetExport = {\n name: 'Widgets: Map',\n module: 'mapWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/map',\n description: 'Map widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const markdownWidgetExport = {\n name: 'Widgets: Markdown',\n module: 'markdownWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/markdown',\n description: 'Markdown widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const threeDRotationWidgetExport = {\n name: 'Widgets: Rotation',\n module: 'threeDRotationWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/three-d-rotation',\n description: 'Rotation widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const siloWidgetExport = {\n name: 'Widgets: Silo',\n module: 'siloWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/silo',\n description: 'Silo widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const linearGaugeWidgetExport = {\n name: 'Widgets: Linear Gauge',\n module: 'linearGaugeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/linear-gauge',\n description: 'Linear Gauge widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const datapointGraphWidgetExport = {\n name: 'Widgets: Data points graph',\n module: 'datapointGraphWidgetproviders',\n path: '@c8y/ngx-components/widgets/definitions/datapoints-graph',\n description: 'Data points graph widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const dataPointsTableWidgetExport = {\n name: 'Widgets: Data Points Table',\n module: 'dataPointsTableWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/datapoints-table',\n description: 'Data Points Table widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const htmlWidgetExport = {\n name: 'Widgets: HTML Widget',\n module: 'htmlWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/html-widget',\n description: 'Allows to set custom HTML on a dashboard',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const quickLinksWidgetExport = {\n name: 'Widgets: Quick Links',\n module: 'quickLinksWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/quick-links',\n description: 'Quick Links widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const deviceManagementWelcomeWidgetExport = {\n name: 'Widgets: Welcome to Device Management',\n module: 'deviceManagementWelcomeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/device-management-welcome',\n description: 'Welcome to Device Management widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const assetNotesWidgetExport = {\n name: 'Widgets: Asset notes',\n module: 'assetNotesWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/asset-notes',\n description: 'Asset notes widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const htmlWidgetAIChat = {\n name: 'Widgets: HTML Widget AI Code Assistant',\n module: 'htmlWidgetAIChatProviders',\n path: '@c8y/ngx-components/widgets/definitions/html-widget-ai-config',\n description: 'Adds AI Code Assistant capabilities to the HTML Widget',\n scope: 'self'\n} as const satisfies PluginsExports;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NgIf,
|
|
1
|
+
import { NgIf, NgClass, JsonPipe, AsyncPipe, NgFor } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { inject, Injectable, Input, Component, viewChild, SecurityContext, ViewChild } from '@angular/core';
|
|
4
4
|
import * as i2 from '@angular/forms';
|
|
@@ -6,12 +6,12 @@ import { FormsModule } from '@angular/forms';
|
|
|
6
6
|
import { Router, RouterModule } from '@angular/router';
|
|
7
7
|
import { gettext } from '@c8y/ngx-components/gettext';
|
|
8
8
|
import * as i2$1 from '@c8y/ngx-components';
|
|
9
|
-
import { AppStateService, Permissions, IconDirective, C8yTranslatePipe, TabsModule, LoadingComponent, OptionsService, ClipboardService } from '@c8y/ngx-components';
|
|
10
|
-
import { WidgetConfigService,
|
|
9
|
+
import { AppStateService, Permissions, IconDirective, C8yTranslatePipe, ListGroupComponent, ListItemComponent, ListItemCollapseComponent, ListItemBodyComponent, ListItemIconComponent, MarkdownToHtmlPipe, TabsModule, LoadingComponent, OptionsService, ClipboardService } from '@c8y/ngx-components';
|
|
10
|
+
import { WidgetConfigService, WidgetConfigFeedbackComponent } from '@c8y/ngx-components/context-dashboard';
|
|
11
11
|
import * as i1 from 'ngx-bootstrap/popover';
|
|
12
12
|
import { PopoverModule } from 'ngx-bootstrap/popover';
|
|
13
13
|
import * as i3 from 'ngx-bootstrap/tooltip';
|
|
14
|
-
import { TooltipModule } from 'ngx-bootstrap/tooltip';
|
|
14
|
+
import { TooltipModule, TooltipDirective } from 'ngx-bootstrap/tooltip';
|
|
15
15
|
import { isEmpty } from 'lodash';
|
|
16
16
|
import { Subject, first, map, filter, withLatestFrom, switchMap, shareReplay, takeUntil, startWith, combineLatest, distinctUntilChanged, debounceTime, of, merge, from, isEmpty as isEmpty$1, catchError, EMPTY, fromEvent } from 'rxjs';
|
|
17
17
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
@@ -165,7 +165,6 @@ class HtmlWidgetConfigService {
|
|
|
165
165
|
initConfig(appConfig, widgetConfig) {
|
|
166
166
|
const defaultToAdvancedMode = appConfig?.htmlWidgetDefaultToAdvancedMode ?? false;
|
|
167
167
|
const isEmptyConfig = isEmpty(widgetConfig);
|
|
168
|
-
this.widgetConfigService.changeMode$.next(WidgetConfigChangeMode.ASSIGN);
|
|
169
168
|
if (isEmptyConfig && !defaultToAdvancedMode) {
|
|
170
169
|
widgetConfig = this.initDefaultMode(!appConfig?.htmlWidgetDisableSanitization);
|
|
171
170
|
this.save(widgetConfig);
|
|
@@ -300,6 +299,140 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
300
299
|
type: Input
|
|
301
300
|
}] } });
|
|
302
301
|
|
|
302
|
+
class HtmlAiChatFeedbackComponent {
|
|
303
|
+
constructor() {
|
|
304
|
+
/**
|
|
305
|
+
* Indicates whether the feedback section is in a loading state.
|
|
306
|
+
*/
|
|
307
|
+
this.loading = false;
|
|
308
|
+
/**
|
|
309
|
+
* Indicates whether the detailed feedback section is collapsed.
|
|
310
|
+
*/
|
|
311
|
+
this.collapsed = true;
|
|
312
|
+
/**
|
|
313
|
+
* Indicates whether the feedback section can be collapsed.
|
|
314
|
+
*/
|
|
315
|
+
this.canCollapse = false;
|
|
316
|
+
/**
|
|
317
|
+
* The code extracted from the agent step (if any).
|
|
318
|
+
*/
|
|
319
|
+
this.code = '';
|
|
320
|
+
/**
|
|
321
|
+
* The text before the code block (if any).
|
|
322
|
+
*/
|
|
323
|
+
this.textBeforeCode = '';
|
|
324
|
+
/**
|
|
325
|
+
* The text after the code block (if any).
|
|
326
|
+
*/
|
|
327
|
+
this.textAfterCode = '';
|
|
328
|
+
this.codeTag = 'c8y-code-extract';
|
|
329
|
+
this.htmlWidgetConfigService = inject(HtmlWidgetConfigService);
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* @ignore
|
|
333
|
+
*/
|
|
334
|
+
ngOnInit() {
|
|
335
|
+
if (this.step) {
|
|
336
|
+
this.parseAgentStep(this.step);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* @ignore
|
|
341
|
+
*/
|
|
342
|
+
ngOnChanges(changes) {
|
|
343
|
+
if (changes.step) {
|
|
344
|
+
this.parseAgentStep(changes.step.currentValue);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Parse the agent step. Extracts the code block if present and updates the state accordingly.
|
|
349
|
+
* @param step The agent step to parse.
|
|
350
|
+
*/
|
|
351
|
+
parseAgentStep(step) {
|
|
352
|
+
if (step.reasoning) {
|
|
353
|
+
this.label = gettext('Reasoning');
|
|
354
|
+
this.loading = false;
|
|
355
|
+
this.canCollapse = true;
|
|
356
|
+
this.collapsed = false;
|
|
357
|
+
}
|
|
358
|
+
if (step.toolCalls?.length > 0 && !step.toolResults?.length) {
|
|
359
|
+
this.label = gettext('Analyzing query…');
|
|
360
|
+
this.loading = true;
|
|
361
|
+
this.canCollapse = false;
|
|
362
|
+
this.collapsed = true;
|
|
363
|
+
}
|
|
364
|
+
else if (step.toolResults?.length > 0) {
|
|
365
|
+
this.label = gettext('Query analyzed.');
|
|
366
|
+
this.loading = false;
|
|
367
|
+
this.canCollapse = true;
|
|
368
|
+
this.collapsed = true;
|
|
369
|
+
}
|
|
370
|
+
this.parseCodeBlock(step);
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Revert to the last applied code.
|
|
374
|
+
*/
|
|
375
|
+
revert() {
|
|
376
|
+
this.applyCurrentCode();
|
|
377
|
+
}
|
|
378
|
+
parseCodeBlock(step) {
|
|
379
|
+
const text = step.text;
|
|
380
|
+
const codeBlockStart = text.lastIndexOf(`<${this.codeTag}>`);
|
|
381
|
+
const codeBlockEnd = text.lastIndexOf(`</${this.codeTag}>`);
|
|
382
|
+
const codeBlockStartLength = this.codeTag.length + 2;
|
|
383
|
+
const codeBlockEndLength = this.codeTag.length + 3;
|
|
384
|
+
if (codeBlockStart !== -1) {
|
|
385
|
+
this.code = text.substring(codeBlockStart + codeBlockStartLength);
|
|
386
|
+
this.textBeforeCode = text.substring(0, codeBlockStart + codeBlockStartLength);
|
|
387
|
+
this.label = gettext('Creating widget…');
|
|
388
|
+
this.loading = true;
|
|
389
|
+
this.canCollapse = true;
|
|
390
|
+
this.collapsed = true;
|
|
391
|
+
}
|
|
392
|
+
if (codeBlockEnd !== -1) {
|
|
393
|
+
this.label = gettext('Widget created');
|
|
394
|
+
this.code = text.substring(codeBlockStart + codeBlockStartLength, codeBlockEnd);
|
|
395
|
+
this.loading = false;
|
|
396
|
+
this.textAfterCode = text.substring(codeBlockEnd + codeBlockEndLength);
|
|
397
|
+
this.canCollapse = true;
|
|
398
|
+
this.collapsed = true;
|
|
399
|
+
this.applyCurrentCode();
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
applyCurrentCode() {
|
|
403
|
+
const newConfig = {
|
|
404
|
+
code: this.code,
|
|
405
|
+
css: '',
|
|
406
|
+
devMode: true,
|
|
407
|
+
legacy: false,
|
|
408
|
+
options: { advancedSecurity: false, cssEncapsulation: false }
|
|
409
|
+
};
|
|
410
|
+
this.htmlWidgetConfigService.configChanged$.next(newConfig);
|
|
411
|
+
this.htmlWidgetConfigService.widgetConfigService.updateConfig({ config: newConfig }, true);
|
|
412
|
+
}
|
|
413
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: HtmlAiChatFeedbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
414
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: HtmlAiChatFeedbackComponent, isStandalone: true, selector: "c8y-html-ai-chat-feedback", inputs: { step: "step" }, host: { classAttribute: "agent-step-feedback" }, usesOnChanges: true, ngImport: i0, template: "@if (!step.reasoning && !code) {\n <div [innerHTML]=\"step.text | markdownToHtml | async\"></div>\n}\n@if (code) {\n <div [innerHTML]=\"textBeforeCode | markdownToHtml | async\"></div>\n}\n@if (label) {\n <c8y-list-group class=\"m-t-16 m-b-16\">\n <c8y-li\n [active]=\"!loading\"\n [collapsed]=\"collapsed\"\n >\n <c8y-li-icon>\n <span\n class=\"btn-ai btn-ai-hint btn-sm\"\n [ngClass]=\"{ working: loading }\"\n >\n <span></span>\n </span>\n </c8y-li-icon>\n <c8y-li-body>\n {{ label }}\n </c8y-li-body>\n\n @if (canCollapse) {\n <c8y-li-collapse>\n @if (step.reasoning) {\n <div [innerHTML]=\"step.reasoning | markdownToHtml | async\"></div>\n } @else if (code) {\n <pre\n class=\"fit-w\"\n style=\"max-height: 320px\"\n >{{ code }}</pre\n >\n @if (!loading) {\n <button\n class=\"btn btn-default btn-sm\"\n [attr.aria-label]=\"'Revert to this version' | translate\"\n [tooltip]=\"'Revert to this version' | translate\"\n container=\"body\"\n (click)=\"revert()\"\n >\n <i c8yIcon=\"undo\"></i>\n </button>\n }\n } @else if (step) {\n <pre\n class=\"fit-w\"\n style=\"max-height: 320px\"\n >{{ step | json }}</pre\n >\n }\n </c8y-li-collapse>\n }\n </c8y-li>\n </c8y-list-group>\n}\n\n@if (code) {\n <div [innerHTML]=\"textAfterCode | markdownToHtml | async\"></div>\n}\n", dependencies: [{ kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "pipe", type: JsonPipe, name: "json" }, { kind: "pipe", type: MarkdownToHtmlPipe, name: "markdownToHtml" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
415
|
+
}
|
|
416
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: HtmlAiChatFeedbackComponent, decorators: [{
|
|
417
|
+
type: Component,
|
|
418
|
+
args: [{ selector: 'c8y-html-ai-chat-feedback', imports: [
|
|
419
|
+
ListGroupComponent,
|
|
420
|
+
ListItemComponent,
|
|
421
|
+
ListItemCollapseComponent,
|
|
422
|
+
ListItemBodyComponent,
|
|
423
|
+
ListItemIconComponent,
|
|
424
|
+
NgClass,
|
|
425
|
+
JsonPipe,
|
|
426
|
+
MarkdownToHtmlPipe,
|
|
427
|
+
TooltipDirective,
|
|
428
|
+
AsyncPipe,
|
|
429
|
+
C8yTranslatePipe
|
|
430
|
+
], standalone: true, host: { class: 'agent-step-feedback' }, template: "@if (!step.reasoning && !code) {\n <div [innerHTML]=\"step.text | markdownToHtml | async\"></div>\n}\n@if (code) {\n <div [innerHTML]=\"textBeforeCode | markdownToHtml | async\"></div>\n}\n@if (label) {\n <c8y-list-group class=\"m-t-16 m-b-16\">\n <c8y-li\n [active]=\"!loading\"\n [collapsed]=\"collapsed\"\n >\n <c8y-li-icon>\n <span\n class=\"btn-ai btn-ai-hint btn-sm\"\n [ngClass]=\"{ working: loading }\"\n >\n <span></span>\n </span>\n </c8y-li-icon>\n <c8y-li-body>\n {{ label }}\n </c8y-li-body>\n\n @if (canCollapse) {\n <c8y-li-collapse>\n @if (step.reasoning) {\n <div [innerHTML]=\"step.reasoning | markdownToHtml | async\"></div>\n } @else if (code) {\n <pre\n class=\"fit-w\"\n style=\"max-height: 320px\"\n >{{ code }}</pre\n >\n @if (!loading) {\n <button\n class=\"btn btn-default btn-sm\"\n [attr.aria-label]=\"'Revert to this version' | translate\"\n [tooltip]=\"'Revert to this version' | translate\"\n container=\"body\"\n (click)=\"revert()\"\n >\n <i c8yIcon=\"undo\"></i>\n </button>\n }\n } @else if (step) {\n <pre\n class=\"fit-w\"\n style=\"max-height: 320px\"\n >{{ step | json }}</pre\n >\n }\n </c8y-li-collapse>\n }\n </c8y-li>\n </c8y-list-group>\n}\n\n@if (code) {\n <div [innerHTML]=\"textAfterCode | markdownToHtml | async\"></div>\n}\n" }]
|
|
431
|
+
}], propDecorators: { step: [{
|
|
432
|
+
type: Input,
|
|
433
|
+
args: [{ required: true }]
|
|
434
|
+
}] } });
|
|
435
|
+
|
|
303
436
|
class HtmlFrameComponent {
|
|
304
437
|
constructor() {
|
|
305
438
|
/**
|
|
@@ -485,6 +618,9 @@ class WidgetCodeEditorComponent {
|
|
|
485
618
|
this.destroy$.complete();
|
|
486
619
|
}
|
|
487
620
|
ngOnChanges(changes) {
|
|
621
|
+
if (changes.config) {
|
|
622
|
+
this.changeCode(this.config.code);
|
|
623
|
+
}
|
|
488
624
|
if (changes.config?.currentValue) {
|
|
489
625
|
this.loadCode();
|
|
490
626
|
}
|
|
@@ -539,7 +675,7 @@ class WidgetCodeEditorComponent {
|
|
|
539
675
|
this.configService.changeCss(code);
|
|
540
676
|
}
|
|
541
677
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: WidgetCodeEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
542
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
678
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: WidgetCodeEditorComponent, isStandalone: true, selector: "c8y-widget-code-editor", inputs: { mode: "mode", config: "config" }, viewQueries: [{ propertyName: "editorComponent", first: true, predicate: EditorComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<c8y-widget-config-feedback>\n <div class=\"d-flex\">\n @if (config?.devMode && !config?.legacy) {\n <span\n class=\"tag tag--warning text-12\"\n translate\n >\n Advanced developer mode\n </span>\n }\n </div>\n <div class=\"d-flex\">\n @if (config?.legacy) {\n <span\n class=\"tag tag--warning text-12\"\n [title]=\"\n 'This widget is in legacy mode. Consider to upgrade this to a new HTML widget. Read our documentation on details to transform your widget'\n | translate\n \"\n translate\n >\n Legacy mode\n </span>\n }\n </div>\n</c8y-widget-config-feedback>\n\n<div class=\"d-flex d-col fit-h fit-w\">\n <c8y-html-widget-advanced-settings\n [devMode]=\"config?.devMode\"\n [cssEncapsulation]=\"config?.options?.cssEncapsulation\"\n ></c8y-html-widget-advanced-settings>\n\n <fieldset class=\"c8y-fieldset p-0 overflow-hidden\">\n <legend class=\"m-l-16 p-l-0\">{{ 'Code' | translate }}</legend>\n\n <div class=\"btn-group btn-group-sm m-l-0 p-t-8 p-b-8 p-l-16 p-r-16 fit-w d-flex\">\n <button\n class=\"btn btn-default\"\n [attr.aria-label]=\"'Undo' | translate\"\n [tooltip]=\"'Undo' | translate\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"undo()\"\n >\n <i [c8yIcon]=\"'undo'\"></i>\n </button>\n\n <button\n class=\"btn btn-default\"\n [attr.aria-label]=\"'Redo' | translate\"\n [tooltip]=\"'Redo' | translate\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"redo()\"\n >\n <i [c8yIcon]=\"'redo'\"></i>\n </button>\n\n <button\n class=\"btn btn-default\"\n [attr.aria-label]=\"'Format code' | translate\"\n [tooltip]=\"'Format code' | translate\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"formatCode()\"\n >\n <i [c8yIcon]=\"'format-align-left'\"></i>\n </button>\n\n <label class=\"c8y-switch m-l-auto\">\n <input\n type=\"checkbox\"\n [checked]=\"isAutoSaveEnabled\"\n (change)=\"isAutoSaveEnabled = !isAutoSaveEnabled\"\n />\n <span></span>\n <span translate>Auto save</span>\n </label>\n </div>\n\n <div\n class=\"btn-toolbar m-0 p-relative\"\n role=\"toolbar\"\n >\n <c8y-tabs-outlet\n class=\"elevation-none\"\n [outletName]=\"TAB_OUTLET_NAME\"\n [orientation]=\"'horizontal'\"\n [openFirstTab]=\"false\"\n ></c8y-tabs-outlet>\n <c8y-tab\n [icon]=\"'code'\"\n [label]=\"(config?.devMode ? TAB_WEBCOMPONENT_LABEL : TAB_HTML_LABEL) | translate\"\n [priority]=\"100\"\n [showAlways]=\"true\"\n [tabsOutlet]=\"TAB_OUTLET_NAME\"\n [isActive]=\"mode === 'code'\"\n (onSelect)=\"switchMode('code')\"\n ></c8y-tab>\n @if (!config?.devMode && !config?.legacy) {\n <c8y-tab\n [icon]=\"'c8y-css'\"\n [label]=\"TAB_CSS_LABEL | translate\"\n [priority]=\"0\"\n [tabsOutlet]=\"TAB_OUTLET_NAME\"\n [isActive]=\"mode === 'css'\"\n (onSelect)=\"switchMode('css')\"\n ></c8y-tab>\n }\n </div>\n\n @if (!isLoading) {\n @if (!(mode === 'css' && config?.devMode)) {\n <c8y-editor\n class=\"flex-grow d-block\"\n style=\"height: 450px\"\n [ngModel]=\"value\"\n (ngModelChange)=\"changeCode($event)\"\n [editorOptions]=\"{\n language,\n tabSize: 2,\n insertSpaces: true,\n minimap: { enabled: false }\n }\"\n (editorInit)=\"editorLoaded($event)\"\n ></c8y-editor>\n }\n } @else {\n <c8y-loading></c8y-loading>\n }\n </fieldset>\n</div>\n", dependencies: [{ kind: "component", type: EditorComponent, selector: "c8y-editor", inputs: ["editorOptions", "theme"], outputs: ["editorInit"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: WidgetConfigFeedbackComponent, selector: "c8y-widget-config-feedback" }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i2$1.TabsOutletComponent, selector: "c8y-tabs-outlet,c8y-ui-tabs", inputs: ["tabs", "orientation", "navigatorOpen", "outletName", "context", "openFirstTab", "hasHeader"] }, { kind: "component", type: i2$1.TabComponent, selector: "c8y-tab", inputs: ["path", "label", "icon", "priority", "orientation", "injector", "tabsOutlet", "isActive", "text", "showAlways"], outputs: ["onSelect"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "component", type: LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "component", type: AdvancedSettingsComponent, selector: "c8y-html-widget-advanced-settings", inputs: ["devMode", "cssEncapsulation"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
543
679
|
}
|
|
544
680
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: WidgetCodeEditorComponent, decorators: [{
|
|
545
681
|
type: Component,
|
|
@@ -548,14 +684,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
548
684
|
FormsModule,
|
|
549
685
|
IconDirective,
|
|
550
686
|
C8yTranslatePipe,
|
|
551
|
-
NgIf,
|
|
552
687
|
WidgetConfigFeedbackComponent,
|
|
553
688
|
TabsModule,
|
|
554
689
|
TooltipModule,
|
|
555
690
|
PopoverModule,
|
|
556
691
|
LoadingComponent,
|
|
557
692
|
AdvancedSettingsComponent
|
|
558
|
-
], selector: 'c8y-widget-code-editor', template: "<c8y-widget-config-feedback>\n <div class=\"d-flex\">\n <span\n
|
|
693
|
+
], selector: 'c8y-widget-code-editor', template: "<c8y-widget-config-feedback>\n <div class=\"d-flex\">\n @if (config?.devMode && !config?.legacy) {\n <span\n class=\"tag tag--warning text-12\"\n translate\n >\n Advanced developer mode\n </span>\n }\n </div>\n <div class=\"d-flex\">\n @if (config?.legacy) {\n <span\n class=\"tag tag--warning text-12\"\n [title]=\"\n 'This widget is in legacy mode. Consider to upgrade this to a new HTML widget. Read our documentation on details to transform your widget'\n | translate\n \"\n translate\n >\n Legacy mode\n </span>\n }\n </div>\n</c8y-widget-config-feedback>\n\n<div class=\"d-flex d-col fit-h fit-w\">\n <c8y-html-widget-advanced-settings\n [devMode]=\"config?.devMode\"\n [cssEncapsulation]=\"config?.options?.cssEncapsulation\"\n ></c8y-html-widget-advanced-settings>\n\n <fieldset class=\"c8y-fieldset p-0 overflow-hidden\">\n <legend class=\"m-l-16 p-l-0\">{{ 'Code' | translate }}</legend>\n\n <div class=\"btn-group btn-group-sm m-l-0 p-t-8 p-b-8 p-l-16 p-r-16 fit-w d-flex\">\n <button\n class=\"btn btn-default\"\n [attr.aria-label]=\"'Undo' | translate\"\n [tooltip]=\"'Undo' | translate\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"undo()\"\n >\n <i [c8yIcon]=\"'undo'\"></i>\n </button>\n\n <button\n class=\"btn btn-default\"\n [attr.aria-label]=\"'Redo' | translate\"\n [tooltip]=\"'Redo' | translate\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"redo()\"\n >\n <i [c8yIcon]=\"'redo'\"></i>\n </button>\n\n <button\n class=\"btn btn-default\"\n [attr.aria-label]=\"'Format code' | translate\"\n [tooltip]=\"'Format code' | translate\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"formatCode()\"\n >\n <i [c8yIcon]=\"'format-align-left'\"></i>\n </button>\n\n <label class=\"c8y-switch m-l-auto\">\n <input\n type=\"checkbox\"\n [checked]=\"isAutoSaveEnabled\"\n (change)=\"isAutoSaveEnabled = !isAutoSaveEnabled\"\n />\n <span></span>\n <span translate>Auto save</span>\n </label>\n </div>\n\n <div\n class=\"btn-toolbar m-0 p-relative\"\n role=\"toolbar\"\n >\n <c8y-tabs-outlet\n class=\"elevation-none\"\n [outletName]=\"TAB_OUTLET_NAME\"\n [orientation]=\"'horizontal'\"\n [openFirstTab]=\"false\"\n ></c8y-tabs-outlet>\n <c8y-tab\n [icon]=\"'code'\"\n [label]=\"(config?.devMode ? TAB_WEBCOMPONENT_LABEL : TAB_HTML_LABEL) | translate\"\n [priority]=\"100\"\n [showAlways]=\"true\"\n [tabsOutlet]=\"TAB_OUTLET_NAME\"\n [isActive]=\"mode === 'code'\"\n (onSelect)=\"switchMode('code')\"\n ></c8y-tab>\n @if (!config?.devMode && !config?.legacy) {\n <c8y-tab\n [icon]=\"'c8y-css'\"\n [label]=\"TAB_CSS_LABEL | translate\"\n [priority]=\"0\"\n [tabsOutlet]=\"TAB_OUTLET_NAME\"\n [isActive]=\"mode === 'css'\"\n (onSelect)=\"switchMode('css')\"\n ></c8y-tab>\n }\n </div>\n\n @if (!isLoading) {\n @if (!(mode === 'css' && config?.devMode)) {\n <c8y-editor\n class=\"flex-grow d-block\"\n style=\"height: 450px\"\n [ngModel]=\"value\"\n (ngModelChange)=\"changeCode($event)\"\n [editorOptions]=\"{\n language,\n tabSize: 2,\n insertSpaces: true,\n minimap: { enabled: false }\n }\"\n (editorInit)=\"editorLoaded($event)\"\n ></c8y-editor>\n }\n } @else {\n <c8y-loading></c8y-loading>\n }\n </fieldset>\n</div>\n" }]
|
|
559
694
|
}], propDecorators: { mode: [{
|
|
560
695
|
type: Input
|
|
561
696
|
}], config: [{
|
|
@@ -596,38 +731,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
596
731
|
args: ['htmlPreview']
|
|
597
732
|
}] } });
|
|
598
733
|
|
|
599
|
-
class HtmlWidgetComponent {
|
|
600
|
-
ngOnInit() {
|
|
601
|
-
if (this.config.html && !this.config.config) {
|
|
602
|
-
this.config.config = this.mapLegacyConfig(this.config);
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
mapLegacyConfig(current) {
|
|
606
|
-
const isAlreadyInAdvancedMode = current?.config?.devMode === true;
|
|
607
|
-
if (isAlreadyInAdvancedMode) {
|
|
608
|
-
return current.config;
|
|
609
|
-
}
|
|
610
|
-
return {
|
|
611
|
-
code: current.html,
|
|
612
|
-
css: '',
|
|
613
|
-
legacy: true,
|
|
614
|
-
devMode: false,
|
|
615
|
-
options: {
|
|
616
|
-
cssEncapsulation: false,
|
|
617
|
-
advancedSecurity: current.sanitization === 'strict'
|
|
618
|
-
}
|
|
619
|
-
};
|
|
620
|
-
}
|
|
621
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: HtmlWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
622
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: HtmlWidgetComponent, isStandalone: true, selector: "c8y-html-widget", inputs: { config: "config" }, ngImport: i0, template: "<c8y-html-frame\n [config]=\"config.config\"\n [device]=\"config.device\"\n></c8y-html-frame>\n\n", dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "component", type: HtmlFrameComponent, selector: "c8y-html-frame", inputs: ["config", "device", "useSalt"] }] }); }
|
|
623
|
-
}
|
|
624
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: HtmlWidgetComponent, decorators: [{
|
|
625
|
-
type: Component,
|
|
626
|
-
args: [{ selector: 'c8y-html-widget', standalone: true, imports: [RouterModule, HtmlFrameComponent], template: "<c8y-html-frame\n [config]=\"config.config\"\n [device]=\"config.device\"\n></c8y-html-frame>\n\n" }]
|
|
627
|
-
}], propDecorators: { config: [{
|
|
628
|
-
type: Input
|
|
629
|
-
}] } });
|
|
630
|
-
|
|
631
734
|
class HtmlWidgetPropertiesSelectorComponent {
|
|
632
735
|
constructor() {
|
|
633
736
|
this.widgetConfigService = inject(WidgetConfigService);
|
|
@@ -669,9 +772,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
669
772
|
], template: "<div\n class=\"d-flex m-b-8\"\n style=\"margin-top: -16px\"\n>\n <em\n class=\"m-l-24 text-muted\"\n translate\n >\n How to use properties in the widget\n </em>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"helpContent\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n</div>\n<c8y-asset-property-list\n class=\"inner-scroll bg-inherit d-block\"\n style=\"max-height: 450px\"\n [asset]=\"(widgetConfigService.currentConfig$ | async).device\"\n [config]=\"{\n selectMode: 'none',\n expansionMode: 'expandedByDefault',\n filterable: false,\n allowDragAndDrop: true\n }\"\n>\n <button\n class=\"btn-dot btn fit-h\"\n [attr.aria-label]=\"'Copy' | translate\"\n tooltip=\"{{ 'Copy' | translate }}\"\n type=\"button\"\n *c8yAssetPropertyAction=\"let context\"\n [delay]=\"500\"\n (click)=\"copyProperty(context)\"\n >\n <i class=\"dlt-c8y-icon-copy\"></i>\n </button>\n</c8y-asset-property-list>\n\n<ng-template #helpContent>\n <p\n class=\"p-b-8\"\n translate\n >\n Click the copy icon next to a property, then paste it into the HTML editor below as a template\n literal.\n </p>\n</ng-template>\n" }]
|
|
670
773
|
}] });
|
|
671
774
|
|
|
775
|
+
class HtmlWidgetComponent {
|
|
776
|
+
ngOnInit() {
|
|
777
|
+
if (this.config.html && !this.config.config) {
|
|
778
|
+
this.config.config = this.mapLegacyConfig(this.config);
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
mapLegacyConfig(current) {
|
|
782
|
+
const isAlreadyInAdvancedMode = current?.config?.devMode === true;
|
|
783
|
+
if (isAlreadyInAdvancedMode) {
|
|
784
|
+
return current.config;
|
|
785
|
+
}
|
|
786
|
+
return {
|
|
787
|
+
code: current.html,
|
|
788
|
+
css: '',
|
|
789
|
+
legacy: true,
|
|
790
|
+
devMode: false,
|
|
791
|
+
options: {
|
|
792
|
+
cssEncapsulation: false,
|
|
793
|
+
advancedSecurity: current.sanitization === 'strict'
|
|
794
|
+
}
|
|
795
|
+
};
|
|
796
|
+
}
|
|
797
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: HtmlWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
798
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: HtmlWidgetComponent, isStandalone: true, selector: "c8y-html-widget", inputs: { config: "config" }, ngImport: i0, template: "<c8y-html-frame\n [config]=\"config.config\"\n [device]=\"config.device\"\n></c8y-html-frame>\n", dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "component", type: HtmlFrameComponent, selector: "c8y-html-frame", inputs: ["config", "device", "useSalt"] }] }); }
|
|
799
|
+
}
|
|
800
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: HtmlWidgetComponent, decorators: [{
|
|
801
|
+
type: Component,
|
|
802
|
+
args: [{ selector: 'c8y-html-widget', standalone: true, imports: [RouterModule, HtmlFrameComponent], template: "<c8y-html-frame\n [config]=\"config.config\"\n [device]=\"config.device\"\n></c8y-html-frame>\n" }]
|
|
803
|
+
}], propDecorators: { config: [{
|
|
804
|
+
type: Input
|
|
805
|
+
}] } });
|
|
806
|
+
|
|
672
807
|
/**
|
|
673
808
|
* Generated bundle index. Do not edit.
|
|
674
809
|
*/
|
|
675
810
|
|
|
676
|
-
export { AdvancedSettingsComponent, HtmlFrameComponent, HtmlWidgetComponent, HtmlWidgetConfigComponent, HtmlWidgetConfigService, HtmlWidgetPropertiesSelectorComponent, INITIAL_CSS_FORMATTED, INITIAL_HTML_FORMATTED, WidgetCodeEditorComponent, defaultWebComponentAttributeNameContext, defaultWebComponentName, legacyTemplate, webComponentTemplate };
|
|
811
|
+
export { AdvancedSettingsComponent, HtmlAiChatFeedbackComponent, HtmlFrameComponent, HtmlWidgetComponent, HtmlWidgetConfigComponent, HtmlWidgetConfigService, HtmlWidgetPropertiesSelectorComponent, INITIAL_CSS_FORMATTED, INITIAL_HTML_FORMATTED, WidgetCodeEditorComponent, defaultWebComponentAttributeNameContext, defaultWebComponentName, legacyTemplate, webComponentTemplate };
|
|
677
812
|
//# sourceMappingURL=c8y-ngx-components-widgets-implementations-html-widget.mjs.map
|