@c8y/ngx-components 1024.16.21 → 1024.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +14 -4
  2. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs.map +1 -1
  3. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +1 -1
  4. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  5. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +1 -1
  6. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
  7. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +77 -20
  8. package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  9. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs +29 -7
  10. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs.map +1 -1
  11. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs +24 -24
  12. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs.map +1 -1
  13. package/fesm2022/c8y-ngx-components-widgets-implementations-scada.mjs +1 -1
  14. package/fesm2022/c8y-ngx-components-widgets-implementations-scada.mjs.map +1 -1
  15. package/fesm2022/c8y-ngx-components.mjs +159 -75
  16. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  17. package/locales/locales.pot +31 -17
  18. package/package.json +1 -1
  19. package/types/c8y-ngx-components-ai-agent-chat.d.ts +8 -1
  20. package/types/c8y-ngx-components-ai-agent-chat.d.ts.map +1 -1
  21. package/types/c8y-ngx-components-repository-configuration.d.ts +20 -4
  22. package/types/c8y-ngx-components-repository-configuration.d.ts.map +1 -1
  23. package/types/c8y-ngx-components-widgets-implementations-asset-notes.d.ts +7 -0
  24. package/types/c8y-ngx-components-widgets-implementations-asset-notes.d.ts.map +1 -1
  25. package/types/c8y-ngx-components.d.ts +80 -23
  26. package/types/c8y-ngx-components.d.ts.map +1 -1
@@ -1247,7 +1247,7 @@ class ScadaWidgetSvgSelectorComponent {
1247
1247
  await this.scadaConfigService.applyScadaOutput(content);
1248
1248
  }
1249
1249
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ScadaWidgetSvgSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1250
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: ScadaWidgetSvgSelectorComponent, isStandalone: true, selector: "c8y-scada-widget-svg-selector", viewQueries: [{ propertyName: "dropArea", first: true, predicate: ["dropArea"], descendants: true, isSignal: true }], ngImport: i0, template: "<form [formGroup]=\"formGroup\">\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Source' | translate }}</legend>\n <div class=\"form-group\">\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Upload file' | translate }}\"\n >\n <input\n name=\"source\"\n type=\"radio\"\n value=\"file\"\n formControlName=\"source\"\n />\n <span></span>\n <span>{{ 'Upload file' | translate }}</span>\n </label>\n <label\n class=\"c8y-radio radio-inline m-l-8\"\n title=\"{{ 'Paste text' | translate }}\"\n >\n <input\n name=\"source\"\n type=\"radio\"\n value=\"text\"\n formControlName=\"source\"\n />\n <span></span>\n <span>\n {{ 'Paste text' | translate }}\n </span>\n </label>\n @if (isAiAvailable()) {\n <label\n class=\"c8y-radio radio-inline m-l-8\"\n title=\"{{ 'Generate with AI' | translate }}\"\n >\n <input\n name=\"source\"\n type=\"radio\"\n value=\"ai\"\n formControlName=\"source\"\n />\n <span></span>\n <div\n class=\"btn btn-ai btn-icon-dot btn-sm btn-ai-hint m-l-4 m-r-4\"\n aria-hidden=\"true\"\n >\n <span></span>\n </div>\n <span>\n {{ 'Generate with AI' | translate }}\n </span>\n </label>\n }\n </div>\n\n @switch (formGroup.get('source')?.value) {\n @case ('file') {\n <c8y-form-group class=\"m-b-24\">\n <c8y-drop-area\n class=\"drop-area-sm\"\n [icon]=\"'upload'\"\n #dropArea\n [accept]=\"'.svg'\"\n [maxAllowedFiles]=\"1\"\n (dropped)=\"onSvgFileDropped($event)\"\n [message]=\"'Browse or drop file here\u2026' | translate\"\n ></c8y-drop-area>\n </c8y-form-group>\n }\n @case ('text') {\n <c8y-form-group class=\"m-b-24\">\n <textarea\n class=\"form-control\"\n aria-label=\"{{ 'Paste SVG code here' | translate }}\"\n id=\"svgCode\"\n placeholder=\"{{ placeholderText }}\"\n rows=\"6\"\n formControlName=\"svgCode\"\n ></textarea>\n </c8y-form-group>\n <button\n class=\"btn btn-default\"\n (click)=\"applySvgCode()\"\n translate\n [disabled]=\"!formGroup.get('svgCode')?.value?.trim()\"\n >\n Apply\n </button>\n }\n @case ('ai') {\n @if (isAiAvailable()) {\n <c8y-agent-chat\n #agentChat\n [chatConfig]=\"chatConfig\"\n [suggestions]=\"agentChat.isWelcoming() ? suggestions : []\"\n [agent]=\"agent\"\n [variables]=\"variables\"\n [preprocessAgentMessage]=\"preprocessAgentMessage\"\n [assistantMessageDisplayConfig]=\"assistantMessageDisplayConfig\"\n ></c8y-agent-chat>\n }\n }\n }\n </fieldset>\n\n <div formGroupName=\"svgDisplaySettings\">\n <fieldset class=\"c8y-fieldset\">\n <legend>\n {{ 'Image display' | translate }}\n </legend>\n <c8y-form-group class=\"form-group-sm m-b-0\">\n <c8y-list-group\n class=\"no-border-last p-b-16\"\n role=\"list\"\n >\n @for (displayOption of displayOptions; track displayOption.value) {\n <c8y-li role=\"listitem\">\n <label class=\"c8y-radio\">\n <input\n type=\"radio\"\n formControlName=\"displayOption\"\n [value]=\"displayOption.value\"\n />\n <span></span>\n <span class=\"l-h-1\">\n {{ displayOption.label | translate }}\n <br />\n <small class=\"text-muted\">\n {{ displayOption.description | translate }}\n </small>\n </span>\n </label>\n </c8y-li>\n }\n </c8y-list-group>\n </c8y-form-group>\n </fieldset>\n @if (formGroup.get('svgDisplaySettings')?.get('displayOption')?.value === 'contain') {\n <fieldset class=\"c8y-fieldset\">\n <legend>\n {{ 'Image alignment' | translate }}\n </legend>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <c8y-form-group class=\"form-group-sm\">\n <label>{{ 'Horizontal`alignment`' | translate }}</label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"horizontalAlignment\"\n >\n @for (option of horizontalAlignmentOptions; track option.value) {\n <option [ngValue]=\"option.value\">\n {{ option.label | translate }}\n </option>\n }\n </select>\n </div>\n </c8y-form-group>\n </div>\n <div class=\"col-md-6\">\n <c8y-form-group class=\"form-group-sm\">\n <label>{{ 'Vertical`alignment`' | translate }}</label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"verticalAlignment\"\n >\n @for (option of verticalAlignmentOptions; track option.value) {\n <option [ngValue]=\"option.value\">\n {{ option.label | translate }}\n </option>\n }\n </select>\n </div>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n }\n </div>\n</form>\n", dependencies: [{ kind: "component", type: DropAreaComponent, selector: "c8y-drop-area", inputs: ["formControl", "title", "message", "icon", "loadingMessage", "forceHideList", "alwaysShow", "clickToOpen", "loading", "progress", "maxAllowedFiles", "files", "maxFileSizeInMegaBytes", "accept"], outputs: ["dropped"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "ngmodule", type: BsDropdownModule }, { kind: "ngmodule", type: A11yModule }, { kind: "component", type: AgentChatComponent, selector: "c8y-agent-chat", inputs: ["agent", "suggestions", "chatConfig", "welcomeTemplate", "autoCreateAgents", "variables", "assistantMessageComponent", "assistantMessageDisplayConfig", "preprocessAgentMessage", "pruneMessagesForAgent", "skipHealthCheck", "initialChatHistory", "groundingContextProvider", "userAnalyticsContext", "telemetry"], outputs: ["onMessageFinish", "onToolResult", "onFeedback", "onMessagesChange"] }, { kind: "ngmodule", type: ListGroupModule }, { kind: "component", type: i2.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i2.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1250
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: ScadaWidgetSvgSelectorComponent, isStandalone: true, selector: "c8y-scada-widget-svg-selector", viewQueries: [{ propertyName: "dropArea", first: true, predicate: ["dropArea"], descendants: true, isSignal: true }], ngImport: i0, template: "<form [formGroup]=\"formGroup\">\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Source' | translate }}</legend>\n <div class=\"form-group\">\n <label\n class=\"c8y-radio radio-inline\"\n title=\"{{ 'Upload file' | translate }}\"\n >\n <input\n name=\"source\"\n type=\"radio\"\n value=\"file\"\n formControlName=\"source\"\n />\n <span></span>\n <span>{{ 'Upload file' | translate }}</span>\n </label>\n <label\n class=\"c8y-radio radio-inline m-l-8\"\n title=\"{{ 'Paste text' | translate }}\"\n >\n <input\n name=\"source\"\n type=\"radio\"\n value=\"text\"\n formControlName=\"source\"\n />\n <span></span>\n <span>\n {{ 'Paste text' | translate }}\n </span>\n </label>\n @if (isAiAvailable()) {\n <label\n class=\"c8y-radio radio-inline m-l-8\"\n title=\"{{ 'Generate with AI' | translate }}\"\n >\n <input\n name=\"source\"\n type=\"radio\"\n value=\"ai\"\n formControlName=\"source\"\n />\n <span></span>\n <div\n class=\"btn btn-ai btn-icon-dot btn-sm btn-ai-hint m-l-4 m-r-4\"\n aria-hidden=\"true\"\n >\n <span></span>\n </div>\n <span>\n {{ 'Generate with AI' | translate }}\n </span>\n </label>\n }\n </div>\n\n @switch (formGroup.get('source')?.value) {\n @case ('file') {\n <c8y-form-group class=\"m-b-24\">\n <c8y-drop-area\n class=\"drop-area-sm\"\n [icon]=\"'upload'\"\n #dropArea\n [accept]=\"'.svg'\"\n [maxAllowedFiles]=\"1\"\n (dropped)=\"onSvgFileDropped($event)\"\n [message]=\"'Browse or drop file here\u2026' | translate\"\n ></c8y-drop-area>\n </c8y-form-group>\n }\n @case ('text') {\n <c8y-form-group class=\"m-b-24\">\n <textarea\n class=\"form-control\"\n aria-label=\"{{ 'Paste SVG code here' | translate }}\"\n id=\"svgCode\"\n placeholder=\"{{ placeholderText }}\"\n rows=\"6\"\n formControlName=\"svgCode\"\n ></textarea>\n </c8y-form-group>\n <button\n class=\"btn btn-default\"\n (click)=\"applySvgCode()\"\n translate\n [disabled]=\"!formGroup.get('svgCode')?.value?.trim()\"\n >\n Apply\n </button>\n }\n @case ('ai') {\n @if (isAiAvailable()) {\n <c8y-agent-chat\n #agentChat\n [chatConfig]=\"chatConfig\"\n [suggestions]=\"agentChat.isWelcoming() ? suggestions : []\"\n [agent]=\"agent\"\n [variables]=\"variables\"\n [preprocessAgentMessage]=\"preprocessAgentMessage\"\n [assistantMessageDisplayConfig]=\"assistantMessageDisplayConfig\"\n ></c8y-agent-chat>\n }\n }\n }\n </fieldset>\n\n <div formGroupName=\"svgDisplaySettings\">\n <fieldset class=\"c8y-fieldset\">\n <legend>\n {{ 'Image display' | translate }}\n </legend>\n <c8y-form-group class=\"form-group-sm m-b-0\">\n <c8y-list-group\n class=\"no-border-last p-b-16\"\n role=\"list\"\n >\n @for (displayOption of displayOptions; track displayOption.value) {\n <c8y-li role=\"listitem\">\n <label class=\"c8y-radio\">\n <input\n type=\"radio\"\n formControlName=\"displayOption\"\n [value]=\"displayOption.value\"\n />\n <span></span>\n <span class=\"l-h-1\">\n {{ displayOption.label | translate }}\n <br />\n <small class=\"text-muted\">\n {{ displayOption.description | translate }}\n </small>\n </span>\n </label>\n </c8y-li>\n }\n </c8y-list-group>\n </c8y-form-group>\n </fieldset>\n @if (formGroup.get('svgDisplaySettings')?.get('displayOption')?.value === 'contain') {\n <fieldset class=\"c8y-fieldset\">\n <legend>\n {{ 'Image alignment' | translate }}\n </legend>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <c8y-form-group class=\"form-group-sm\">\n <label>{{ 'Horizontal`alignment`' | translate }}</label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"horizontalAlignment\"\n >\n @for (option of horizontalAlignmentOptions; track option.value) {\n <option [ngValue]=\"option.value\">\n {{ option.label | translate }}\n </option>\n }\n </select>\n </div>\n </c8y-form-group>\n </div>\n <div class=\"col-md-6\">\n <c8y-form-group class=\"form-group-sm\">\n <label>{{ 'Vertical`alignment`' | translate }}</label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"verticalAlignment\"\n >\n @for (option of verticalAlignmentOptions; track option.value) {\n <option [ngValue]=\"option.value\">\n {{ option.label | translate }}\n </option>\n }\n </select>\n </div>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n }\n </div>\n</form>\n", dependencies: [{ kind: "component", type: DropAreaComponent, selector: "c8y-drop-area", inputs: ["formControl", "title", "message", "icon", "loadingMessage", "forceHideList", "alwaysShow", "clickToOpen", "loading", "progress", "maxAllowedFiles", "files", "maxFileSizeInMegaBytes", "accept"], outputs: ["dropped"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "ngmodule", type: BsDropdownModule }, { kind: "ngmodule", type: A11yModule }, { kind: "component", type: AgentChatComponent, selector: "c8y-agent-chat", inputs: ["agent", "suggestions", "chatConfig", "welcomeTemplate", "autoCreateAgents", "variables", "contextPath", "assistantMessageComponent", "assistantMessageDisplayConfig", "preprocessAgentMessage", "pruneMessagesForAgent", "skipHealthCheck", "initialChatHistory", "groundingContextProvider", "userAnalyticsContext", "telemetry"], outputs: ["onMessageFinish", "onToolResult", "onFeedback", "onMessagesChange"] }, { kind: "ngmodule", type: ListGroupModule }, { kind: "component", type: i2.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i2.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1251
1251
  }
1252
1252
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ScadaWidgetSvgSelectorComponent, decorators: [{
1253
1253
  type: Component,