@c8y/ngx-components 1023.14.60 → 1023.14.70

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 (71) hide show
  1. package/context-dashboard/index.d.ts.map +1 -1
  2. package/datapoint-explorer/view/index.d.ts +1 -1
  3. package/datapoint-selector/index.d.ts.map +1 -1
  4. package/ecosystem/application-plugins/index.d.ts.map +1 -1
  5. package/ecosystem/index.d.ts.map +1 -1
  6. package/ecosystem/shared/index.d.ts +1 -1
  7. package/ecosystem/shared/index.d.ts.map +1 -1
  8. package/fesm2022/c8y-ngx-components-asset-properties.mjs +5 -6
  9. package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
  10. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-CDjsn5j9.mjs → c8y-ngx-components-asset-property-grid.component-CfTLV3QX.mjs} +2 -2
  11. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-CDjsn5j9.mjs.map → c8y-ngx-components-asset-property-grid.component-CfTLV3QX.mjs.map} +1 -1
  12. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +1 -1
  13. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  14. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +15 -5
  15. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  16. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +2 -2
  17. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs.map +1 -1
  18. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +2 -1
  19. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
  20. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +4 -12
  21. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  22. package/fesm2022/c8y-ngx-components-device-grid.mjs +1 -1
  23. package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
  24. package/fesm2022/c8y-ngx-components-device-profile.mjs +1 -1
  25. package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
  26. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +1 -1
  27. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
  28. package/fesm2022/c8y-ngx-components-echart.mjs +6 -3
  29. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  30. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +10 -7
  31. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  32. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  33. package/fesm2022/c8y-ngx-components-ecosystem.mjs +4 -4
  34. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  35. package/fesm2022/c8y-ngx-components-exports-list.mjs +1 -1
  36. package/fesm2022/c8y-ngx-components-exports-list.mjs.map +1 -1
  37. package/fesm2022/c8y-ngx-components-files-repository.mjs +1 -1
  38. package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
  39. package/fesm2022/c8y-ngx-components-messaging-management.mjs +2 -2
  40. package/fesm2022/c8y-ngx-components-messaging-management.mjs.map +1 -1
  41. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +1 -1
  42. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs.map +1 -1
  43. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +1 -1
  44. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -1
  45. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +1 -1
  46. package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  47. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +1 -1
  48. package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
  49. package/fesm2022/c8y-ngx-components-repository-software.mjs +1 -1
  50. package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
  51. package/fesm2022/c8y-ngx-components-search.mjs +1 -1
  52. package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
  53. package/fesm2022/c8y-ngx-components-services.mjs +1 -1
  54. package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
  55. package/fesm2022/c8y-ngx-components-sub-assets.mjs +1 -1
  56. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  57. package/fesm2022/c8y-ngx-components-tenants.mjs +7 -6
  58. package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
  59. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +1 -1
  60. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -1
  61. package/fesm2022/c8y-ngx-components-widgets-exports.mjs +52 -50
  62. package/fesm2022/c8y-ngx-components-widgets-exports.mjs.map +1 -1
  63. package/fesm2022/c8y-ngx-components.mjs +15 -7
  64. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  65. package/index.d.ts +21 -1
  66. package/index.d.ts.map +1 -1
  67. package/locales/de.po +6 -0
  68. package/locales/locales.pot +285 -3
  69. package/package.json +1 -1
  70. package/tenants/index.d.ts.map +1 -1
  71. package/widgets/exports/index.d.ts.map +1 -1
@@ -214,7 +214,7 @@ class TranslationEditorComponent {
214
214
  return columns;
215
215
  }
216
216
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TranslationEditorComponent, deps: [{ token: i1$2.TranslationStoreService }, { token: i2.BsModalService }, { token: i1.AlertService }, { token: i1.AppStateService }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
217
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: TranslationEditorComponent, isStandalone: true, selector: "c8y-translation-editor", ngImport: i0, template: "<c8y-title>{{ 'Localization' | translate }}</c8y-title>\n\n@if (isLoading) {\n <c8y-loading></c8y-loading>\n} @else {\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n (click)=\"addEntry()\"\n data-cy=\"c8y-translation-editor--add-translation\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n <span translate>Add translation</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n (click)=\"saveTranslations()\"\n data-cy=\"c8y-translation-editor--save-and-apply\"\n >\n <i c8yIcon=\"save\"></i>\n <span translate>Save and apply</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-help src=\"/docs/standard-tenant/changing-settings/#localization\"></c8y-help>\n\n <c8y-data-grid\n class=\"content-fullpage d-flex d-col\"\n [title]=\"'Translations' | translate\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [displayOptions]=\"displayOptions\"\n (onReload)=\"refresh()\"\n [rows]=\"items\"\n ></c8y-data-grid>\n}\n", dependencies: [{ kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "ngmodule", type: DataGridModule }, { kind: "component", type: i1.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
217
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: TranslationEditorComponent, isStandalone: true, selector: "c8y-translation-editor", ngImport: i0, template: "<c8y-title>{{ 'Localization' | translate }}</c8y-title>\n\n@if (isLoading) {\n <c8y-loading></c8y-loading>\n} @else {\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n (click)=\"addEntry()\"\n data-cy=\"c8y-translation-editor--add-translation\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n <span translate>Add translation</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n (click)=\"saveTranslations()\"\n data-cy=\"c8y-translation-editor--save-and-apply\"\n >\n <i c8yIcon=\"save\"></i>\n <span translate>Save and apply</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-help src=\"/docs/standard-tenant/changing-settings/#localization\"></c8y-help>\n\n <c8y-data-grid\n class=\"content-fullpage d-flex d-col\"\n [title]=\"'Translations' | translate\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [displayOptions]=\"displayOptions\"\n (onReload)=\"refresh()\"\n [rows]=\"items\"\n ></c8y-data-grid>\n}\n", dependencies: [{ kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "ngmodule", type: DataGridModule }, { kind: "component", type: i1.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "loading", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
218
218
  }
219
219
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TranslationEditorComponent, decorators: [{
220
220
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-translation-editor-lazy.mjs","sources":["../../translation-editor/lazy/manage-translation-cell-renderer/manage-translation-cell-renderer.component.ts","../../translation-editor/lazy/manage-translation-cell-renderer/manage-translation-cell-renderer.component.html","../../translation-editor/lazy/add-translation-modal/add-translation-modal.component.ts","../../translation-editor/lazy/add-translation-modal/add-translation-modal.component.html","../../translation-editor/lazy/translation-editor/translation-editor.component.ts","../../translation-editor/lazy/translation-editor/translation-editor.component.html","../../translation-editor/lazy/advanced-translation-editor/advanced-translation-editor.component.ts","../../translation-editor/lazy/advanced-translation-editor/advanced-translation-editor.component.html","../../translation-editor/lazy/c8y-ngx-components-translation-editor-lazy.ts"],"sourcesContent":["import { NgIf } from '@angular/common';\nimport { Component, ElementRef, Optional, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n CellRendererContext,\n Permissions,\n C8yTranslatePipe,\n IconDirective\n} from '@c8y/ngx-components';\nimport { TranslationEditorComponent } from '../translation-editor/translation-editor.component';\n\n@Component({\n selector: 'c8y-manage-translation-cell-renderer',\n templateUrl: 'manage-translation-cell-renderer.component.html',\n standalone: true,\n imports: [NgIf, C8yTranslatePipe, IconDirective, FormsModule]\n})\nexport class ManageTranslationCellRendererComponent {\n private readonly FOCUS_RENDER_WAIT_TIME_IN_MS = 100;\n isCellEditable = false;\n cellValue = '';\n @ViewChild('cellInput') cellInput: ElementRef;\n isCreateDisabled = false;\n\n constructor(\n public context: CellRendererContext,\n private permissions: Permissions,\n @Optional() private grid: TranslationEditorComponent\n ) {}\n\n ngOnInit() {\n this.isCreateDisabled = !this.permissions.hasRole('ROLE_APPLICATION_MANAGEMENT_ADMIN');\n }\n\n async save(): Promise<void> {\n this.isCellEditable = false;\n const cellValueTrimed = this.cellValue.trim();\n this.context.value = cellValueTrimed;\n this.context.item[this.context.property.path] = cellValueTrimed;\n this.grid?.valueChanged();\n }\n\n cancel(): void {\n this.isCellEditable = false;\n }\n\n editCell(): void {\n this.cellValue = this.context.value;\n this.isCellEditable = true;\n\n // Focuses the input box after the input text box is visible\n setTimeout(() => {\n this.cellInput.nativeElement.focus();\n }, this.FOCUS_RENDER_WAIT_TIME_IN_MS);\n }\n}\n","<div\n class=\"text-truncate pointer d-flex\"\n title=\"{{ context.value }}\"\n data-cy=\"c8y-manage-translation-cell-renderer--edit\"\n (click)=\"!isCreateDisabled ? editCell() : ''\"\n *ngIf=\"!isCellEditable\"\n>\n <span\n class=\"text-truncate\"\n *ngIf=\"!isCellEditable && context.value !== ''\"\n >\n {{ context.value }}\n </span>\n <span\n class=\"text-truncate\"\n title=\"{{ 'Add translation' | translate }}\"\n *ngIf=\"!isCellEditable && context.value === ''\"\n >\n <em class=\"text-muted\">{{ 'Add translation' | translate }}</em>\n </span>\n <i\n class=\"showOnHover text-primary m-l-4\"\n c8yIcon=\"pencil\"\n title=\"{{ 'Edit translation' | translate }}\"\n *ngIf=\"!isCreateDisabled\"\n ></i>\n</div>\n\n<div\n class=\"input-group input-group-sm\"\n *ngIf=\"isCellEditable && !isCreateDisabled\"\n>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'Add translation' | translate }}\"\n type=\"text\"\n #cellInput\n data-cy=\"c8y-manage-translation-cell-renderer--input\"\n [(ngModel)]=\"cellValue\"\n />\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-clean\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cancel()\"\n data-cy=\"c8y-manage-translation-cell-renderer--cancel\"\n >\n <i\n class=\"text-danger\"\n c8yIcon=\"times\"\n ></i>\n </button>\n <button\n class=\"btn btn-clean\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n (click)=\"save()\"\n data-cy=\"c8y-manage-translation-cell-renderer--save\"\n >\n <i\n class=\"text-primary\"\n c8yIcon=\"check\"\n ></i>\n </button>\n </div>\n</div>\n","import { NgForOf } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n ReactiveFormsModule,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport {\n C8yTranslateDirective,\n C8yTranslatePipe,\n FormGroupComponent,\n IconDirective,\n MessageDirective,\n MessagesComponent,\n ModalModule\n} from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\n@Component({\n selector: 'c8y-add-translation-modal',\n templateUrl: './add-translation-modal.component.html',\n standalone: true,\n imports: [\n ModalModule,\n IconDirective,\n MessagesComponent,\n MessageDirective,\n C8yTranslatePipe,\n C8yTranslateDirective,\n ReactiveFormsModule,\n NgForOf,\n FormGroupComponent\n ]\n})\nexport class AddTranslationModalComponent implements OnInit {\n readonly title = gettext('Add translation');\n form: ReturnType<typeof this.initForm>;\n\n result = new Promise<ReturnType<typeof this.initForm>['value']>((resolve, reject) => {\n this._resovle = resolve;\n this._reject = reject;\n });\n alreadyTakenMsg = gettext('The provided translation key has already been defined.');\n alreadyDefinedKeys: string[] = [];\n availableLangs: {\n lang: string;\n nativeLanguage: string;\n }[] = [];\n\n private _resovle: (value: ReturnType<typeof this.initForm>['value']) => void;\n private _reject: (reason?: any) => void;\n\n constructor(private formBuilder: FormBuilder) {}\n\n ngOnInit(): void {\n this.form = this.initForm();\n }\n\n initForm() {\n return this.formBuilder.group({\n key: ['', [Validators.required, this.ensureNotExistingKey()]],\n ...this.availableLangs\n .map(language => {\n return {\n [language.lang]: ['']\n };\n })\n .reduceRight((acc, curr) => ({ ...curr, ...acc }), {})\n });\n }\n\n cancel() {\n this._reject();\n }\n\n save() {\n this._resovle(this.form.value);\n }\n\n private ensureNotExistingKey(): ValidatorFn {\n return (control: AbstractControl) => {\n if (typeof control.value === 'string') {\n const keyAlreadyTaken = this.alreadyDefinedKeys.some(name => name === control.value);\n if (keyAlreadyTaken) {\n return { keyAlreadyTaken: {} };\n }\n }\n return null;\n };\n }\n}\n","<c8y-modal\n [title]=\"title\"\n [headerClasses]=\"'dialog-header'\"\n (onDismiss)=\"cancel()\"\n (onClose)=\"save()\"\n [disabled]=\"form.invalid\"\n [labels]=\"{ cancel: 'Cancel', ok: 'Add' }\"\n>\n<ng-container c8y-modal-title>\n <span [c8yIcon]=\"'language1'\"></span>\n</ng-container>\n <div [formGroup]=\"form\" class=\"p-24\">\n <c8y-form-group>\n <label\n for=\"label\"\n translate\n >\n Translation key\n </label>\n <input\n class=\"form-control\"\n name=\"key\"\n id=\"key\"\n type=\"text\"\n formControlName=\"key\"\n placeholder=\"{{'e.g. {{ example }}' | translate : { example: 'Home' } }}\"\n />\n <c8y-messages>\n <c8y-message\n name=\"keyAlreadyTaken\"\n [text]=\"alreadyTakenMsg | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group *ngFor=\"let language of availableLangs\">\n <label\n [for]=\"language.lang\"\n >\n {{ language.nativeLanguage }} ({{ language.lang }})\n </label>\n <input\n class=\"form-control\"\n [name]=\"language.lang\"\n [id]=\"language.lang\"\n type=\"text\"\n [formControlName]=\"language.lang\"\n />\n </c8y-form-group>\n </div>\n</c8y-modal>\n","import { Component, OnInit } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n ActionBarItemComponent,\n ActionControl,\n AlertService,\n AppStateService,\n BuiltInActionType,\n C8yTranslateDirective,\n C8yTranslatePipe,\n Column,\n DataGridModule,\n DisplayOptions,\n HelpComponent,\n IconDirective,\n LoadingComponent,\n Pagination,\n TitleComponent,\n TranslateService\n} from '@c8y/ngx-components';\nimport { TranslationStoreService } from '@c8y/ngx-components/translation-editor/data';\nimport { ManageTranslationCellRendererComponent } from '../manage-translation-cell-renderer/manage-translation-cell-renderer.component';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { AddTranslationModalComponent } from '../add-translation-modal/add-translation-modal.component';\n\n@Component({\n selector: 'c8y-translation-editor',\n templateUrl: './translation-editor.component.html',\n standalone: true,\n imports: [\n TitleComponent,\n DataGridModule,\n LoadingComponent,\n C8yTranslatePipe,\n ActionBarItemComponent,\n IconDirective,\n C8yTranslateDirective,\n HelpComponent\n ]\n})\nexport class TranslationEditorComponent implements OnInit {\n pagination: Pagination = {\n pageSize: 10,\n currentPage: 1\n };\n displayOptions: DisplayOptions = {\n bordered: false,\n striped: true,\n filter: true,\n gridHeader: true,\n hover: true\n };\n actionControls: ActionControl[] = [\n {\n type: BuiltInActionType.Delete,\n callback: item => {\n this.items = this.items.filter(i => i.key !== item.key);\n }\n }\n ];\n columns: Column[] = [];\n isLoading = true;\n items: Awaited<ReturnType<TranslationStoreService['getCombinedListOfTranslationsForPerKey']>> =\n new Array<any>();\n isHavingChanges = false;\n availableLangs: {\n lang: string;\n nativeLanguage: string;\n }[] = [];\n\n constructor(\n private translationStore: TranslationStoreService,\n private modalService: BsModalService,\n private alert: AlertService,\n private appState: AppStateService,\n private translate: TranslateService\n ) {\n this.availableLangs = (this.appState.state.langs as string[])\n .sort((a, b) => a.localeCompare(b))\n .map(l => ({\n lang: l,\n nativeLanguage: this.translate.getNativeLanguage(l)\n }));\n }\n\n async ngOnInit() {\n this.refresh();\n }\n\n async refresh() {\n this.isLoading = true;\n this.refreshColumns();\n\n const translations = await this.translationStore.getCombinedListOfTranslationsForPerKey(\n this.availableLangs.map(l => l.lang)\n );\n\n this.items = translations;\n\n this.isLoading = false;\n }\n\n async addEntry() {\n const currentKeys = this.items.map(item => item.key);\n const modalRef = this.modalService.show(AddTranslationModalComponent, {\n initialState: { alreadyDefinedKeys: currentKeys, availableLangs: this.availableLangs }\n });\n try {\n const result = await modalRef.content.result;\n this.items = [...this.items, result as any];\n } catch (e) {\n // do nothing, modal was closed.\n }\n }\n\n refreshColumns() {\n this.columns = this.getColumnsForLocales();\n }\n\n valueChanged() {\n this.isHavingChanges = true;\n }\n\n async saveTranslations() {\n try {\n await this.translationStore.updateTranslations(this.items);\n await this.refresh();\n this.alert.success(gettext('Translations saved'));\n } catch (e) {\n this.alert.danger(gettext('Failed to save translations'));\n this.alert.addServerFailure(e);\n }\n }\n\n private getColumnsForLocales() {\n const columns = new Array<Column>();\n columns.push({\n name: 'key',\n header: gettext('Translation key'),\n path: 'key',\n filterable: true\n });\n\n columns.push(\n ...this.availableLangs.map(\n (language, index) =>\n ({\n name: language.lang,\n header: `${language.nativeLanguage} (${language.lang})`,\n path: language.lang,\n filterable: false,\n visible: index < 5,\n cellRendererComponent: ManageTranslationCellRendererComponent\n }) as Column\n )\n );\n\n return columns;\n }\n}\n","<c8y-title>{{ 'Localization' | translate }}</c8y-title>\n\n@if (isLoading) {\n <c8y-loading></c8y-loading>\n} @else {\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n (click)=\"addEntry()\"\n data-cy=\"c8y-translation-editor--add-translation\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n <span translate>Add translation</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n (click)=\"saveTranslations()\"\n data-cy=\"c8y-translation-editor--save-and-apply\"\n >\n <i c8yIcon=\"save\"></i>\n <span translate>Save and apply</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-help src=\"/docs/standard-tenant/changing-settings/#localization\"></c8y-help>\n\n <c8y-data-grid\n class=\"content-fullpage d-flex d-col\"\n [title]=\"'Translations' | translate\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [displayOptions]=\"displayOptions\"\n (onReload)=\"refresh()\"\n [rows]=\"items\"\n ></c8y-data-grid>\n}\n","import { Component, signal, ViewChild, computed } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n ActionBarItemComponent,\n AlertService,\n AppStateService,\n IconDirective,\n LoadingComponent,\n TitleComponent,\n C8yTranslatePipe,\n C8yTranslateDirective\n} from '@c8y/ngx-components';\nimport { EditorComponent, MonacoEditorMarkerValidatorDirective } from '@c8y/ngx-components/editor';\nimport { TranslationStoreService } from '@c8y/ngx-components/translation-editor/data';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport type * as Monaco from 'monaco-editor';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'c8y-advanced-translation-editor',\n templateUrl: './advanced-translation-editor.component.html',\n standalone: true,\n imports: [\n EditorComponent,\n MonacoEditorMarkerValidatorDirective,\n FormsModule,\n TitleComponent,\n LoadingComponent,\n ActionBarItemComponent,\n IconDirective,\n C8yTranslatePipe,\n C8yTranslateDirective\n ]\n})\nexport class AdvancedTranslationEditorComponent {\n valueString = signal('');\n editorOptions: EditorComponent['editorOptions'] = {\n language: 'json'\n };\n isLoading = signal(false);\n isValidJSON = computed(() => {\n const data = this.valueString();\n try {\n JSON.parse(data);\n return true;\n } catch (e) {\n return false;\n }\n });\n JSONSchema: any;\n @ViewChild(EditorComponent) editorComponent!: EditorComponent;\n availableLangs: string[] = [];\n\n constructor(\n private appState: AppStateService,\n private translationStore: TranslationStoreService,\n private alert: AlertService,\n private translation: TranslateService\n ) {\n this.availableLangs = (this.appState.state.langs as string[]).sort((a, b) =>\n a.localeCompare(b)\n );\n this.refresh();\n }\n\n onValueChange(data: string) {\n this.valueString.set(data);\n }\n\n onEditorInit(_data: Monaco.editor.IStandaloneCodeEditor) {\n this.editorComponent.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\n validate: true,\n schemas: [{ schema: this.JSONSchema, fileMatch: ['*'], uri: 'translation' }],\n enableSchemaRequest: false,\n allowComments: false\n });\n }\n\n async refresh() {\n this.isLoading.set(true);\n\n const translationProperties: { key: { type: 'string' }; [key: string]: { type: 'string' } } =\n this.availableLangs.reduceRight(\n (acc, lang) => {\n acc[lang] = {\n type: 'string',\n description: this.translation.instant(\n gettext('Translation for \"{{ languageCode }}\" language.'),\n { languageCode: lang }\n )\n };\n return acc;\n },\n {\n key: {\n type: 'string',\n description: this.translation.instant(gettext('The key to be translated.'))\n }\n }\n );\n this.JSONSchema = {\n $schema: 'http://json-schema.org/draft-04/schema#',\n\n type: 'array',\n items: {\n type: 'object',\n properties: translationProperties,\n required: ['key'],\n minProperties: 2\n }\n };\n\n const translations = await this.translationStore.getCombinedListOfTranslationsForPerKey(\n this.availableLangs\n );\n\n this.valueString.set(JSON.stringify(translations, undefined, 2));\n\n this.isLoading.set(false);\n }\n\n async importTranslationKeys() {\n try {\n this.alert.info(\n gettext(\n 'Importing translation from available Web SDK based applications. This may take a while...'\n )\n );\n\n // since we are only interested in the keys, we only need to retrieve the translations for one (well supported) language\n // we assume that the keys are the same for all other languages, otherwise we would need to perform a lot more requests.\n const data = await this.translationStore.getAvailableTranslations(['de']);\n const valueString = this.valueString();\n const values: Array<{ key: string }> = JSON.parse(valueString);\n const previousNumberOfEntries = values.length;\n const retrievedKeys = Object.keys(data);\n for (const key of retrievedKeys) {\n const foundKey = values.find(value => value.key === key);\n if (!foundKey) {\n values.push({ key });\n }\n }\n const newpreviousNumberOfEntries = values.length;\n this.valueString.set(JSON.stringify(values, undefined, 2));\n this.alert.success(\n this.translation.instant(\n gettext(\n 'Retrieved {{ numberOfRetrievedKeys }} keys from available applications. {{ numberOfNewKeys }} new translation keys were added.'\n ),\n {\n numberOfRetrievedKeys: retrievedKeys.length,\n numberOfNewKeys: newpreviousNumberOfEntries - previousNumberOfEntries\n }\n )\n );\n } catch (e) {\n this.alert.danger(gettext('Failed to import translation keys'));\n this.alert.addServerFailure(e);\n }\n }\n\n async saveTranslations() {\n try {\n await this.translationStore.updateTranslations(JSON.parse(this.valueString()));\n await this.refresh();\n this.alert.success(gettext('Translations saved'));\n } catch (e) {\n this.alert.danger(gettext('Failed to save translations'));\n this.alert.addServerFailure(e);\n }\n }\n}\n","<c8y-title>{{ 'Localization' | translate }}</c8y-title>\n\n@if (isLoading()) {\n <c8y-loading></c8y-loading>\n} @else {\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n [disabled]=\"!isValidJSON()\"\n (click)=\"saveTranslations()\"\n data-cy=\"c8y-translation-editor--save-and-apply\"\n >\n <i c8yIcon=\"save\"></i>\n <span translate>Save and apply</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n [disabled]=\"!isValidJSON()\"\n (click)=\"importTranslationKeys()\"\n data-cy=\"c8y-translation-editor--import-translation-keys\"\n >\n <i [c8yIcon]=\"'import'\"></i>\n <span translate>Import translation keys from apps</span>\n </button>\n </c8y-action-bar-item>\n\n <div class=\"card card--fullpage content-fullpage\">\n <c8y-editor\n class=\"flex-grow\"\n [editorOptions]=\"editorOptions\"\n [ngModel]=\"valueString()\"\n (ngModelChange)=\"onValueChange($event)\"\n (editorInit)=\"onEditorInit($event)\"\n monacoEditorMarkerValidator\n ></c8y-editor>\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.TranslationEditorComponent","i3","i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-translation-editor-lazy.mjs","sources":["../../translation-editor/lazy/manage-translation-cell-renderer/manage-translation-cell-renderer.component.ts","../../translation-editor/lazy/manage-translation-cell-renderer/manage-translation-cell-renderer.component.html","../../translation-editor/lazy/add-translation-modal/add-translation-modal.component.ts","../../translation-editor/lazy/add-translation-modal/add-translation-modal.component.html","../../translation-editor/lazy/translation-editor/translation-editor.component.ts","../../translation-editor/lazy/translation-editor/translation-editor.component.html","../../translation-editor/lazy/advanced-translation-editor/advanced-translation-editor.component.ts","../../translation-editor/lazy/advanced-translation-editor/advanced-translation-editor.component.html","../../translation-editor/lazy/c8y-ngx-components-translation-editor-lazy.ts"],"sourcesContent":["import { NgIf } from '@angular/common';\nimport { Component, ElementRef, Optional, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n CellRendererContext,\n Permissions,\n C8yTranslatePipe,\n IconDirective\n} from '@c8y/ngx-components';\nimport { TranslationEditorComponent } from '../translation-editor/translation-editor.component';\n\n@Component({\n selector: 'c8y-manage-translation-cell-renderer',\n templateUrl: 'manage-translation-cell-renderer.component.html',\n standalone: true,\n imports: [NgIf, C8yTranslatePipe, IconDirective, FormsModule]\n})\nexport class ManageTranslationCellRendererComponent {\n private readonly FOCUS_RENDER_WAIT_TIME_IN_MS = 100;\n isCellEditable = false;\n cellValue = '';\n @ViewChild('cellInput') cellInput: ElementRef;\n isCreateDisabled = false;\n\n constructor(\n public context: CellRendererContext,\n private permissions: Permissions,\n @Optional() private grid: TranslationEditorComponent\n ) {}\n\n ngOnInit() {\n this.isCreateDisabled = !this.permissions.hasRole('ROLE_APPLICATION_MANAGEMENT_ADMIN');\n }\n\n async save(): Promise<void> {\n this.isCellEditable = false;\n const cellValueTrimed = this.cellValue.trim();\n this.context.value = cellValueTrimed;\n this.context.item[this.context.property.path] = cellValueTrimed;\n this.grid?.valueChanged();\n }\n\n cancel(): void {\n this.isCellEditable = false;\n }\n\n editCell(): void {\n this.cellValue = this.context.value;\n this.isCellEditable = true;\n\n // Focuses the input box after the input text box is visible\n setTimeout(() => {\n this.cellInput.nativeElement.focus();\n }, this.FOCUS_RENDER_WAIT_TIME_IN_MS);\n }\n}\n","<div\n class=\"text-truncate pointer d-flex\"\n title=\"{{ context.value }}\"\n data-cy=\"c8y-manage-translation-cell-renderer--edit\"\n (click)=\"!isCreateDisabled ? editCell() : ''\"\n *ngIf=\"!isCellEditable\"\n>\n <span\n class=\"text-truncate\"\n *ngIf=\"!isCellEditable && context.value !== ''\"\n >\n {{ context.value }}\n </span>\n <span\n class=\"text-truncate\"\n title=\"{{ 'Add translation' | translate }}\"\n *ngIf=\"!isCellEditable && context.value === ''\"\n >\n <em class=\"text-muted\">{{ 'Add translation' | translate }}</em>\n </span>\n <i\n class=\"showOnHover text-primary m-l-4\"\n c8yIcon=\"pencil\"\n title=\"{{ 'Edit translation' | translate }}\"\n *ngIf=\"!isCreateDisabled\"\n ></i>\n</div>\n\n<div\n class=\"input-group input-group-sm\"\n *ngIf=\"isCellEditable && !isCreateDisabled\"\n>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'Add translation' | translate }}\"\n type=\"text\"\n #cellInput\n data-cy=\"c8y-manage-translation-cell-renderer--input\"\n [(ngModel)]=\"cellValue\"\n />\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-clean\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cancel()\"\n data-cy=\"c8y-manage-translation-cell-renderer--cancel\"\n >\n <i\n class=\"text-danger\"\n c8yIcon=\"times\"\n ></i>\n </button>\n <button\n class=\"btn btn-clean\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n (click)=\"save()\"\n data-cy=\"c8y-manage-translation-cell-renderer--save\"\n >\n <i\n class=\"text-primary\"\n c8yIcon=\"check\"\n ></i>\n </button>\n </div>\n</div>\n","import { NgForOf } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n ReactiveFormsModule,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport {\n C8yTranslateDirective,\n C8yTranslatePipe,\n FormGroupComponent,\n IconDirective,\n MessageDirective,\n MessagesComponent,\n ModalModule\n} from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\n@Component({\n selector: 'c8y-add-translation-modal',\n templateUrl: './add-translation-modal.component.html',\n standalone: true,\n imports: [\n ModalModule,\n IconDirective,\n MessagesComponent,\n MessageDirective,\n C8yTranslatePipe,\n C8yTranslateDirective,\n ReactiveFormsModule,\n NgForOf,\n FormGroupComponent\n ]\n})\nexport class AddTranslationModalComponent implements OnInit {\n readonly title = gettext('Add translation');\n form: ReturnType<typeof this.initForm>;\n\n result = new Promise<ReturnType<typeof this.initForm>['value']>((resolve, reject) => {\n this._resovle = resolve;\n this._reject = reject;\n });\n alreadyTakenMsg = gettext('The provided translation key has already been defined.');\n alreadyDefinedKeys: string[] = [];\n availableLangs: {\n lang: string;\n nativeLanguage: string;\n }[] = [];\n\n private _resovle: (value: ReturnType<typeof this.initForm>['value']) => void;\n private _reject: (reason?: any) => void;\n\n constructor(private formBuilder: FormBuilder) {}\n\n ngOnInit(): void {\n this.form = this.initForm();\n }\n\n initForm() {\n return this.formBuilder.group({\n key: ['', [Validators.required, this.ensureNotExistingKey()]],\n ...this.availableLangs\n .map(language => {\n return {\n [language.lang]: ['']\n };\n })\n .reduceRight((acc, curr) => ({ ...curr, ...acc }), {})\n });\n }\n\n cancel() {\n this._reject();\n }\n\n save() {\n this._resovle(this.form.value);\n }\n\n private ensureNotExistingKey(): ValidatorFn {\n return (control: AbstractControl) => {\n if (typeof control.value === 'string') {\n const keyAlreadyTaken = this.alreadyDefinedKeys.some(name => name === control.value);\n if (keyAlreadyTaken) {\n return { keyAlreadyTaken: {} };\n }\n }\n return null;\n };\n }\n}\n","<c8y-modal\n [title]=\"title\"\n [headerClasses]=\"'dialog-header'\"\n (onDismiss)=\"cancel()\"\n (onClose)=\"save()\"\n [disabled]=\"form.invalid\"\n [labels]=\"{ cancel: 'Cancel', ok: 'Add' }\"\n>\n<ng-container c8y-modal-title>\n <span [c8yIcon]=\"'language1'\"></span>\n</ng-container>\n <div [formGroup]=\"form\" class=\"p-24\">\n <c8y-form-group>\n <label\n for=\"label\"\n translate\n >\n Translation key\n </label>\n <input\n class=\"form-control\"\n name=\"key\"\n id=\"key\"\n type=\"text\"\n formControlName=\"key\"\n placeholder=\"{{'e.g. {{ example }}' | translate : { example: 'Home' } }}\"\n />\n <c8y-messages>\n <c8y-message\n name=\"keyAlreadyTaken\"\n [text]=\"alreadyTakenMsg | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group *ngFor=\"let language of availableLangs\">\n <label\n [for]=\"language.lang\"\n >\n {{ language.nativeLanguage }} ({{ language.lang }})\n </label>\n <input\n class=\"form-control\"\n [name]=\"language.lang\"\n [id]=\"language.lang\"\n type=\"text\"\n [formControlName]=\"language.lang\"\n />\n </c8y-form-group>\n </div>\n</c8y-modal>\n","import { Component, OnInit } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n ActionBarItemComponent,\n ActionControl,\n AlertService,\n AppStateService,\n BuiltInActionType,\n C8yTranslateDirective,\n C8yTranslatePipe,\n Column,\n DataGridModule,\n DisplayOptions,\n HelpComponent,\n IconDirective,\n LoadingComponent,\n Pagination,\n TitleComponent,\n TranslateService\n} from '@c8y/ngx-components';\nimport { TranslationStoreService } from '@c8y/ngx-components/translation-editor/data';\nimport { ManageTranslationCellRendererComponent } from '../manage-translation-cell-renderer/manage-translation-cell-renderer.component';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { AddTranslationModalComponent } from '../add-translation-modal/add-translation-modal.component';\n\n@Component({\n selector: 'c8y-translation-editor',\n templateUrl: './translation-editor.component.html',\n standalone: true,\n imports: [\n TitleComponent,\n DataGridModule,\n LoadingComponent,\n C8yTranslatePipe,\n ActionBarItemComponent,\n IconDirective,\n C8yTranslateDirective,\n HelpComponent\n ]\n})\nexport class TranslationEditorComponent implements OnInit {\n pagination: Pagination = {\n pageSize: 10,\n currentPage: 1\n };\n displayOptions: DisplayOptions = {\n bordered: false,\n striped: true,\n filter: true,\n gridHeader: true,\n hover: true\n };\n actionControls: ActionControl[] = [\n {\n type: BuiltInActionType.Delete,\n callback: item => {\n this.items = this.items.filter(i => i.key !== item.key);\n }\n }\n ];\n columns: Column[] = [];\n isLoading = true;\n items: Awaited<ReturnType<TranslationStoreService['getCombinedListOfTranslationsForPerKey']>> =\n new Array<any>();\n isHavingChanges = false;\n availableLangs: {\n lang: string;\n nativeLanguage: string;\n }[] = [];\n\n constructor(\n private translationStore: TranslationStoreService,\n private modalService: BsModalService,\n private alert: AlertService,\n private appState: AppStateService,\n private translate: TranslateService\n ) {\n this.availableLangs = (this.appState.state.langs as string[])\n .sort((a, b) => a.localeCompare(b))\n .map(l => ({\n lang: l,\n nativeLanguage: this.translate.getNativeLanguage(l)\n }));\n }\n\n async ngOnInit() {\n this.refresh();\n }\n\n async refresh() {\n this.isLoading = true;\n this.refreshColumns();\n\n const translations = await this.translationStore.getCombinedListOfTranslationsForPerKey(\n this.availableLangs.map(l => l.lang)\n );\n\n this.items = translations;\n\n this.isLoading = false;\n }\n\n async addEntry() {\n const currentKeys = this.items.map(item => item.key);\n const modalRef = this.modalService.show(AddTranslationModalComponent, {\n initialState: { alreadyDefinedKeys: currentKeys, availableLangs: this.availableLangs }\n });\n try {\n const result = await modalRef.content.result;\n this.items = [...this.items, result as any];\n } catch (e) {\n // do nothing, modal was closed.\n }\n }\n\n refreshColumns() {\n this.columns = this.getColumnsForLocales();\n }\n\n valueChanged() {\n this.isHavingChanges = true;\n }\n\n async saveTranslations() {\n try {\n await this.translationStore.updateTranslations(this.items);\n await this.refresh();\n this.alert.success(gettext('Translations saved'));\n } catch (e) {\n this.alert.danger(gettext('Failed to save translations'));\n this.alert.addServerFailure(e);\n }\n }\n\n private getColumnsForLocales() {\n const columns = new Array<Column>();\n columns.push({\n name: 'key',\n header: gettext('Translation key'),\n path: 'key',\n filterable: true\n });\n\n columns.push(\n ...this.availableLangs.map(\n (language, index) =>\n ({\n name: language.lang,\n header: `${language.nativeLanguage} (${language.lang})`,\n path: language.lang,\n filterable: false,\n visible: index < 5,\n cellRendererComponent: ManageTranslationCellRendererComponent\n }) as Column\n )\n );\n\n return columns;\n }\n}\n","<c8y-title>{{ 'Localization' | translate }}</c8y-title>\n\n@if (isLoading) {\n <c8y-loading></c8y-loading>\n} @else {\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n (click)=\"addEntry()\"\n data-cy=\"c8y-translation-editor--add-translation\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n <span translate>Add translation</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n (click)=\"saveTranslations()\"\n data-cy=\"c8y-translation-editor--save-and-apply\"\n >\n <i c8yIcon=\"save\"></i>\n <span translate>Save and apply</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-help src=\"/docs/standard-tenant/changing-settings/#localization\"></c8y-help>\n\n <c8y-data-grid\n class=\"content-fullpage d-flex d-col\"\n [title]=\"'Translations' | translate\"\n [columns]=\"columns\"\n [actionControls]=\"actionControls\"\n [pagination]=\"pagination\"\n [displayOptions]=\"displayOptions\"\n (onReload)=\"refresh()\"\n [rows]=\"items\"\n ></c8y-data-grid>\n}\n","import { Component, signal, ViewChild, computed } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n ActionBarItemComponent,\n AlertService,\n AppStateService,\n IconDirective,\n LoadingComponent,\n TitleComponent,\n C8yTranslatePipe,\n C8yTranslateDirective\n} from '@c8y/ngx-components';\nimport { EditorComponent, MonacoEditorMarkerValidatorDirective } from '@c8y/ngx-components/editor';\nimport { TranslationStoreService } from '@c8y/ngx-components/translation-editor/data';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport type * as Monaco from 'monaco-editor';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'c8y-advanced-translation-editor',\n templateUrl: './advanced-translation-editor.component.html',\n standalone: true,\n imports: [\n EditorComponent,\n MonacoEditorMarkerValidatorDirective,\n FormsModule,\n TitleComponent,\n LoadingComponent,\n ActionBarItemComponent,\n IconDirective,\n C8yTranslatePipe,\n C8yTranslateDirective\n ]\n})\nexport class AdvancedTranslationEditorComponent {\n valueString = signal('');\n editorOptions: EditorComponent['editorOptions'] = {\n language: 'json'\n };\n isLoading = signal(false);\n isValidJSON = computed(() => {\n const data = this.valueString();\n try {\n JSON.parse(data);\n return true;\n } catch (e) {\n return false;\n }\n });\n JSONSchema: any;\n @ViewChild(EditorComponent) editorComponent!: EditorComponent;\n availableLangs: string[] = [];\n\n constructor(\n private appState: AppStateService,\n private translationStore: TranslationStoreService,\n private alert: AlertService,\n private translation: TranslateService\n ) {\n this.availableLangs = (this.appState.state.langs as string[]).sort((a, b) =>\n a.localeCompare(b)\n );\n this.refresh();\n }\n\n onValueChange(data: string) {\n this.valueString.set(data);\n }\n\n onEditorInit(_data: Monaco.editor.IStandaloneCodeEditor) {\n this.editorComponent.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\n validate: true,\n schemas: [{ schema: this.JSONSchema, fileMatch: ['*'], uri: 'translation' }],\n enableSchemaRequest: false,\n allowComments: false\n });\n }\n\n async refresh() {\n this.isLoading.set(true);\n\n const translationProperties: { key: { type: 'string' }; [key: string]: { type: 'string' } } =\n this.availableLangs.reduceRight(\n (acc, lang) => {\n acc[lang] = {\n type: 'string',\n description: this.translation.instant(\n gettext('Translation for \"{{ languageCode }}\" language.'),\n { languageCode: lang }\n )\n };\n return acc;\n },\n {\n key: {\n type: 'string',\n description: this.translation.instant(gettext('The key to be translated.'))\n }\n }\n );\n this.JSONSchema = {\n $schema: 'http://json-schema.org/draft-04/schema#',\n\n type: 'array',\n items: {\n type: 'object',\n properties: translationProperties,\n required: ['key'],\n minProperties: 2\n }\n };\n\n const translations = await this.translationStore.getCombinedListOfTranslationsForPerKey(\n this.availableLangs\n );\n\n this.valueString.set(JSON.stringify(translations, undefined, 2));\n\n this.isLoading.set(false);\n }\n\n async importTranslationKeys() {\n try {\n this.alert.info(\n gettext(\n 'Importing translation from available Web SDK based applications. This may take a while...'\n )\n );\n\n // since we are only interested in the keys, we only need to retrieve the translations for one (well supported) language\n // we assume that the keys are the same for all other languages, otherwise we would need to perform a lot more requests.\n const data = await this.translationStore.getAvailableTranslations(['de']);\n const valueString = this.valueString();\n const values: Array<{ key: string }> = JSON.parse(valueString);\n const previousNumberOfEntries = values.length;\n const retrievedKeys = Object.keys(data);\n for (const key of retrievedKeys) {\n const foundKey = values.find(value => value.key === key);\n if (!foundKey) {\n values.push({ key });\n }\n }\n const newpreviousNumberOfEntries = values.length;\n this.valueString.set(JSON.stringify(values, undefined, 2));\n this.alert.success(\n this.translation.instant(\n gettext(\n 'Retrieved {{ numberOfRetrievedKeys }} keys from available applications. {{ numberOfNewKeys }} new translation keys were added.'\n ),\n {\n numberOfRetrievedKeys: retrievedKeys.length,\n numberOfNewKeys: newpreviousNumberOfEntries - previousNumberOfEntries\n }\n )\n );\n } catch (e) {\n this.alert.danger(gettext('Failed to import translation keys'));\n this.alert.addServerFailure(e);\n }\n }\n\n async saveTranslations() {\n try {\n await this.translationStore.updateTranslations(JSON.parse(this.valueString()));\n await this.refresh();\n this.alert.success(gettext('Translations saved'));\n } catch (e) {\n this.alert.danger(gettext('Failed to save translations'));\n this.alert.addServerFailure(e);\n }\n }\n}\n","<c8y-title>{{ 'Localization' | translate }}</c8y-title>\n\n@if (isLoading()) {\n <c8y-loading></c8y-loading>\n} @else {\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n [disabled]=\"!isValidJSON()\"\n (click)=\"saveTranslations()\"\n data-cy=\"c8y-translation-editor--save-and-apply\"\n >\n <i c8yIcon=\"save\"></i>\n <span translate>Save and apply</span>\n </button>\n </c8y-action-bar-item>\n\n <c8y-action-bar-item placement=\"right\">\n <button\n class=\"btn btn-link\"\n [disabled]=\"!isValidJSON()\"\n (click)=\"importTranslationKeys()\"\n data-cy=\"c8y-translation-editor--import-translation-keys\"\n >\n <i [c8yIcon]=\"'import'\"></i>\n <span translate>Import translation keys from apps</span>\n </button>\n </c8y-action-bar-item>\n\n <div class=\"card card--fullpage content-fullpage\">\n <c8y-editor\n class=\"flex-grow\"\n [editorOptions]=\"editorOptions\"\n [ngModel]=\"valueString()\"\n (ngModelChange)=\"onValueChange($event)\"\n (editorInit)=\"onEditorInit($event)\"\n monacoEditorMarkerValidator\n ></c8y-editor>\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.TranslationEditorComponent","i3","i1","i2"],"mappings":"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"}
@@ -1,176 +1,178 @@
1
+ import { gettext } from '@c8y/ngx-components/gettext';
2
+
1
3
  const radialGaugeWidgetExport = {
2
- name: 'Widgets: Radial Gauge widget',
4
+ name: gettext('Widgets: Radial Gauge widget'),
3
5
  module: 'radialGaugeWidgetProviders',
4
6
  path: '@c8y/ngx-components/widgets/definitions/radial-gauge',
5
- description: 'Radial gauge widget',
7
+ description: gettext('Radial gauge widget'),
6
8
  scope: 'self'
7
9
  };
8
10
  const kpiWidgetExport = {
9
- name: 'Widgets: KPI widget',
11
+ name: gettext('Widgets: KPI widget'),
10
12
  module: 'kpiWidgetProviders',
11
13
  path: '@c8y/ngx-components/widgets/definitions/kpi',
12
- description: 'KPI widget',
14
+ description: gettext('KPI widget'),
13
15
  scope: 'self'
14
16
  };
15
17
  const alarmListWidgetExport = {
16
- name: 'Widgets: Alarm list',
18
+ name: gettext('Widgets: Alarm list'),
17
19
  module: 'alarmListWidgetProviders',
18
20
  path: '@c8y/ngx-components/widgets/definitions/alarms/alarm-list',
19
- description: 'Alarm list widget',
21
+ description: gettext('Alarm list widget'),
20
22
  scope: 'self'
21
23
  };
22
24
  const criticalAlarmsWidgetExport = {
23
- name: 'Widgets: All critical alarms',
25
+ name: gettext('Widgets: All critical alarms'),
24
26
  module: 'criticalAlarmsWidgetProviders',
25
27
  path: '@c8y/ngx-components/widgets/definitions/alarms/all-critical-alarms',
26
- description: 'All critical alarms widget',
28
+ description: gettext('All critical alarms widget'),
27
29
  scope: 'self'
28
30
  };
29
31
  const recentAlarmsWidgetExport = {
30
- name: 'Widgets: Recent alarms',
32
+ name: gettext('Widgets: Recent alarms'),
31
33
  module: 'recentAlarmsWidgetProviders',
32
34
  path: '@c8y/ngx-components/widgets/definitions/alarms/recent-alarms',
33
- description: 'Recent alarms widget',
35
+ description: gettext('Recent alarms widget'),
34
36
  scope: 'self'
35
37
  };
36
38
  const applicationsWidgetExport = {
37
- name: 'Widgets: Applications',
39
+ name: gettext('Widgets: Applications'),
38
40
  module: 'applicationsWidgetProviders',
39
41
  path: '@c8y/ngx-components/widgets/definitions/applications',
40
- description: 'Applications widget',
42
+ description: gettext('Applications widget'),
41
43
  scope: 'self'
42
44
  };
43
45
  const legacyCockpitWelcomeWidgetExport = {
44
- name: 'Widgets: Legacy welcome to Cockpit',
46
+ name: gettext('Widgets: Legacy welcome to Cockpit'),
45
47
  module: 'legacyCockpitWelcomeWidgetProviders',
46
48
  path: '@c8y/ngx-components/widgets/definitions/cockpit-legacy-welcome',
47
- description: 'Legacy welcome to Cockpit widget',
49
+ description: gettext('Legacy welcome to Cockpit widget'),
48
50
  scope: 'self'
49
51
  };
50
52
  const cockpitWelcomeWidgetExport = {
51
- name: 'Widgets: Welcome to Cockpit',
53
+ name: gettext('Widgets: Welcome to Cockpit'),
52
54
  module: 'cockpitWelcomeWidgetProviders',
53
55
  path: '@c8y/ngx-components/widgets/definitions/cockpit-welcome',
54
- description: 'Welcome to Cockpit widget',
56
+ description: gettext('Welcome to Cockpit widget'),
55
57
  scope: 'self'
56
58
  };
57
59
  const deviceControlMessageWidgetExport = {
58
- name: 'Widgets: Message sending',
60
+ name: gettext('Widgets: Message sending'),
59
61
  module: 'deviceControlMessageWidgetProviders',
60
62
  path: '@c8y/ngx-components/widgets/definitions/device-control-message',
61
- description: 'Message sending widget',
63
+ description: gettext('Message sending widget'),
62
64
  scope: 'self'
63
65
  };
64
66
  const helpAndServiceWidgetExport = {
65
- name: 'Widgets: Help and service',
67
+ name: gettext('Widgets: Help and service'),
66
68
  module: 'helpAndServiceWidgetProviders',
67
69
  path: '@c8y/ngx-components/widgets/definitions/help-and-service',
68
- description: 'Help and service widget',
70
+ description: gettext('Help and service widget'),
69
71
  scope: 'self'
70
72
  };
71
73
  const imageWidgetExport = {
72
- name: 'Widgets: Image',
74
+ name: gettext('Widgets: Image'),
73
75
  module: 'imageWidgetProviders',
74
76
  path: '@c8y/ngx-components/widgets/definitions/image',
75
- description: 'Image widget',
77
+ description: gettext('Image widget'),
76
78
  scope: 'self'
77
79
  };
78
80
  const infoGaugeWidgetExport = {
79
- name: 'Widgets: Info gauge',
81
+ name: gettext('Widgets: Info gauge'),
80
82
  module: 'infoGaugeWidgetProviders',
81
83
  path: '@c8y/ngx-components/widgets/definitions/info-gauge',
82
- description: 'Info gauge widget',
84
+ description: gettext('Info gauge widget'),
83
85
  scope: 'self'
84
86
  };
85
87
  const mapWidgetExport = {
86
- name: 'Widgets: Map',
88
+ name: gettext('Widgets: Map'),
87
89
  module: 'mapWidgetProviders',
88
90
  path: '@c8y/ngx-components/widgets/definitions/map',
89
- description: 'Map widget',
91
+ description: gettext('Map widget'),
90
92
  scope: 'self'
91
93
  };
92
94
  const markdownWidgetExport = {
93
- name: 'Widgets: Markdown',
95
+ name: gettext('Widgets: Markdown'),
94
96
  module: 'markdownWidgetProviders',
95
97
  path: '@c8y/ngx-components/widgets/definitions/markdown',
96
- description: 'Markdown widget',
98
+ description: gettext('Markdown widget'),
97
99
  scope: 'self'
98
100
  };
99
101
  const threeDRotationWidgetExport = {
100
- name: 'Widgets: Rotation',
102
+ name: gettext('Widgets: Rotation'),
101
103
  module: 'threeDRotationWidgetProviders',
102
104
  path: '@c8y/ngx-components/widgets/definitions/three-d-rotation',
103
- description: 'Rotation widget',
105
+ description: gettext('Rotation widget'),
104
106
  scope: 'self'
105
107
  };
106
108
  const siloWidgetExport = {
107
- name: 'Widgets: Silo',
109
+ name: gettext('Widgets: Silo'),
108
110
  module: 'siloWidgetProviders',
109
111
  path: '@c8y/ngx-components/widgets/definitions/silo',
110
- description: 'Silo widget',
112
+ description: gettext('Silo widget'),
111
113
  scope: 'self'
112
114
  };
113
115
  const linearGaugeWidgetExport = {
114
- name: 'Widgets: Linear Gauge',
116
+ name: gettext('Widgets: Linear Gauge'),
115
117
  module: 'linearGaugeWidgetProviders',
116
118
  path: '@c8y/ngx-components/widgets/definitions/linear-gauge',
117
- description: 'Linear Gauge widget',
119
+ description: gettext('Linear Gauge widget'),
118
120
  scope: 'self'
119
121
  };
120
122
  const datapointGraphWidgetExport = {
121
- name: 'Widgets: Data points graph',
123
+ name: gettext('Widgets: Data points graph'),
122
124
  module: 'datapointGraphWidgetproviders',
123
125
  path: '@c8y/ngx-components/widgets/definitions/datapoints-graph',
124
- description: 'Data points graph widget',
126
+ description: gettext('Data points graph widget'),
125
127
  scope: 'self'
126
128
  };
127
129
  const dataPointsTableWidgetExport = {
128
- name: 'Widgets: Data Points Table',
130
+ name: gettext('Widgets: Data Points Table'),
129
131
  module: 'dataPointsTableWidgetProviders',
130
132
  path: '@c8y/ngx-components/widgets/definitions/datapoints-table',
131
- description: 'Data Points Table widget',
133
+ description: gettext('Data Points Table widget'),
132
134
  scope: 'self'
133
135
  };
134
136
  const htmlWidgetExport = {
135
- name: 'Widgets: HTML Widget',
137
+ name: gettext('Widgets: HTML Widget'),
136
138
  module: 'htmlWidgetProviders',
137
139
  path: '@c8y/ngx-components/widgets/definitions/html-widget',
138
- description: 'Allows to set custom HTML on a dashboard',
140
+ description: gettext('Allows to set custom HTML on a dashboard'),
139
141
  scope: 'self'
140
142
  };
141
143
  const quickLinksWidgetExport = {
142
- name: 'Widgets: Quick Links',
144
+ name: gettext('Widgets: Quick Links'),
143
145
  module: 'quickLinksWidgetProviders',
144
146
  path: '@c8y/ngx-components/widgets/definitions/quick-links',
145
- description: 'Quick Links widget',
147
+ description: gettext('Quick Links widget'),
146
148
  scope: 'self'
147
149
  };
148
150
  const deviceManagementWelcomeWidgetExport = {
149
- name: 'Widgets: Welcome to Device Management',
151
+ name: gettext('Widgets: Welcome to Device Management'),
150
152
  module: 'deviceManagementWelcomeWidgetProviders',
151
153
  path: '@c8y/ngx-components/widgets/definitions/device-management-welcome',
152
- description: 'Welcome to Device Management widget',
154
+ description: gettext('Welcome to Device Management widget'),
153
155
  scope: 'self'
154
156
  };
155
157
  const assetNotesWidgetExport = {
156
- name: 'Widgets: Asset notes',
158
+ name: gettext('Widgets: Asset notes'),
157
159
  module: 'assetNotesWidgetProviders',
158
160
  path: '@c8y/ngx-components/widgets/definitions/asset-notes',
159
- description: 'Asset notes widget',
161
+ description: gettext('Asset notes widget'),
160
162
  scope: 'self'
161
163
  };
162
164
  const eventListWidgetExport = {
163
- name: 'Widgets: Event list',
165
+ name: gettext('Widgets: Event list'),
164
166
  module: 'eventListWidgetProviders',
165
167
  path: '@c8y/ngx-components/widgets/definitions/event-list',
166
- description: 'Event list widget',
168
+ description: gettext('Event list widget'),
167
169
  scope: 'self'
168
170
  };
169
171
  const htmlWidgetAIChat = {
170
- name: 'Widgets: HTML Widget AI Code Assistant',
172
+ name: gettext('Widgets: HTML Widget AI Code Assistant'),
171
173
  module: 'htmlWidgetAIChatProviders',
172
174
  path: '@c8y/ngx-components/widgets/definitions/html-widget-ai-config',
173
- description: 'Adds AI Code Assistant capabilities to the HTML Widget',
175
+ description: gettext('Adds AI Code Assistant capabilities to the HTML Widget'),
174
176
  scope: 'self'
175
177
  };
176
178
 
@@ -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\nexport const eventListWidgetExport = {\n name: 'Widgets: Event list',\n module: 'eventListWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/event-list',\n description: 'Event list 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
+ {"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';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\nexport const radialGaugeWidgetExport = {\n name: gettext('Widgets: Radial Gauge widget'),\n module: 'radialGaugeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/radial-gauge',\n description: gettext('Radial gauge widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const kpiWidgetExport = {\n name: gettext('Widgets: KPI widget'),\n module: 'kpiWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/kpi',\n description: gettext('KPI widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const alarmListWidgetExport = {\n name: gettext('Widgets: Alarm list'),\n module: 'alarmListWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/alarms/alarm-list',\n description: gettext('Alarm list widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const criticalAlarmsWidgetExport = {\n name: gettext('Widgets: All critical alarms'),\n module: 'criticalAlarmsWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/alarms/all-critical-alarms',\n description: gettext('All critical alarms widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const recentAlarmsWidgetExport = {\n name: gettext('Widgets: Recent alarms'),\n module: 'recentAlarmsWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/alarms/recent-alarms',\n description: gettext('Recent alarms widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const applicationsWidgetExport = {\n name: gettext('Widgets: Applications'),\n module: 'applicationsWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/applications',\n description: gettext('Applications widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const legacyCockpitWelcomeWidgetExport = {\n name: gettext('Widgets: Legacy welcome to Cockpit'),\n module: 'legacyCockpitWelcomeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/cockpit-legacy-welcome',\n description: gettext('Legacy welcome to Cockpit widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const cockpitWelcomeWidgetExport = {\n name: gettext('Widgets: Welcome to Cockpit'),\n module: 'cockpitWelcomeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/cockpit-welcome',\n description: gettext('Welcome to Cockpit widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const deviceControlMessageWidgetExport = {\n name: gettext('Widgets: Message sending'),\n module: 'deviceControlMessageWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/device-control-message',\n description: gettext('Message sending widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const helpAndServiceWidgetExport = {\n name: gettext('Widgets: Help and service'),\n module: 'helpAndServiceWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/help-and-service',\n description: gettext('Help and service widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const imageWidgetExport = {\n name: gettext('Widgets: Image'),\n module: 'imageWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/image',\n description: gettext('Image widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const infoGaugeWidgetExport = {\n name: gettext('Widgets: Info gauge'),\n module: 'infoGaugeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/info-gauge',\n description: gettext('Info gauge widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const mapWidgetExport = {\n name: gettext('Widgets: Map'),\n module: 'mapWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/map',\n description: gettext('Map widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const markdownWidgetExport = {\n name: gettext('Widgets: Markdown'),\n module: 'markdownWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/markdown',\n description: gettext('Markdown widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const threeDRotationWidgetExport = {\n name: gettext('Widgets: Rotation'),\n module: 'threeDRotationWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/three-d-rotation',\n description: gettext('Rotation widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const siloWidgetExport = {\n name: gettext('Widgets: Silo'),\n module: 'siloWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/silo',\n description: gettext('Silo widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const linearGaugeWidgetExport = {\n name: gettext('Widgets: Linear Gauge'),\n module: 'linearGaugeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/linear-gauge',\n description: gettext('Linear Gauge widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const datapointGraphWidgetExport = {\n name: gettext('Widgets: Data points graph'),\n module: 'datapointGraphWidgetproviders',\n path: '@c8y/ngx-components/widgets/definitions/datapoints-graph',\n description: gettext('Data points graph widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const dataPointsTableWidgetExport = {\n name: gettext('Widgets: Data Points Table'),\n module: 'dataPointsTableWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/datapoints-table',\n description: gettext('Data Points Table widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const htmlWidgetExport = {\n name: gettext('Widgets: HTML Widget'),\n module: 'htmlWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/html-widget',\n description: gettext('Allows to set custom HTML on a dashboard'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const quickLinksWidgetExport = {\n name: gettext('Widgets: Quick Links'),\n module: 'quickLinksWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/quick-links',\n description: gettext('Quick Links widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const deviceManagementWelcomeWidgetExport = {\n name: gettext('Widgets: Welcome to Device Management'),\n module: 'deviceManagementWelcomeWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/device-management-welcome',\n description: gettext('Welcome to Device Management widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const assetNotesWidgetExport = {\n name: gettext('Widgets: Asset notes'),\n module: 'assetNotesWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/asset-notes',\n description: gettext('Asset notes widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const eventListWidgetExport = {\n name: gettext('Widgets: Event list'),\n module: 'eventListWidgetProviders',\n path: '@c8y/ngx-components/widgets/definitions/event-list',\n description: gettext('Event list widget'),\n scope: 'self'\n} as const satisfies PluginsExports;\n\nexport const htmlWidgetAIChat = {\n name: gettext('Widgets: HTML Widget AI Code Assistant'),\n module: 'htmlWidgetAIChatProviders',\n path: '@c8y/ngx-components/widgets/definitions/html-widget-ai-config',\n description: gettext('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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"}