@c8y/ngx-components 1023.85.1 → 1023.88.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/alarm-event-selector/index.d.ts +6 -0
- package/alarm-event-selector/index.d.ts.map +1 -1
- package/context-dashboard/index.d.ts +11 -1
- package/context-dashboard/index.d.ts.map +1 -1
- package/data-preparation/index.d.ts +10 -0
- package/data-preparation/index.d.ts.map +1 -0
- package/datapoint-selector/index.d.ts +2 -1
- package/datapoint-selector/index.d.ts.map +1 -1
- package/echart/index.d.ts +1 -0
- package/echart/index.d.ts.map +1 -1
- package/echart/models/index.d.ts +1 -0
- package/echart/models/index.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +90 -21
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +10 -10
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-preparation.mjs +63 -0
- package/fesm2022/c8y-ngx-components-data-preparation.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +14 -12
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart-models.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +102 -44
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-global-context.mjs +2 -2
- package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector.mjs +2 -2
- package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +6 -6
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-list.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-event-list.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-definitions-event-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs +30 -6
- package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs +4 -4
- package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-pie-chart.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-definitions-pie-chart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-events.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-events.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs +10 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +32 -10
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/locales/locales.pot +33 -0
- package/package.json +1 -1
- package/widgets/definitions/info-gauge/index.d.ts.map +1 -1
- package/widgets/implementations/pie-chart/index.d.ts.map +1 -1
|
@@ -238,7 +238,7 @@ class IconSelectorWrapperComponent {
|
|
|
238
238
|
useExisting: forwardRef(() => IconSelectorWrapperComponent),
|
|
239
239
|
multi: true
|
|
240
240
|
}
|
|
241
|
-
], ngImport: i0, template: "<div class=\"d-flex a-i-center j-c-center p-relative\">\n @if (selectedIcon) {\n <div class=\"icon-{{ iconSize }} text-center l-h-1 fit-w fit-h\">\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"selectedIcon\"\n ></i>\n </div>\n }\n\n @if (!selectedIcon) {\n <div\n class=\"icon-{{ iconSize }} text-muted text-center a-s-stretch fit-w\"\n style=\"border: 2px dashed var(--c8y-root-component-border-color)\"\n >\n <span class=\"d-flex a-i-center j-c-center text-12 fit-h\">\n <em>{{ 'Auto' | translate }}</em>\n </span>\n </div>\n }\n <div class=\"showOnHover d-flex j-c-center p-absolute fit-h fit-w\">\n @if (!selectedIcon) {\n <button\n class=\"btn btn-clean btn-icon btn-sm m-0\"\n title=\"{{ 'Select icon' | translate }}\"\n [attr.aria-label]=\"'Select icon' | translate\"\n type=\"button\"\n (click)=\"openIconSelector()\"\n >\n {{ 'Select' | translate }}\n </button>\n }\n @if (selectedIcon) {\n <button\n class=\"btn
|
|
241
|
+
], ngImport: i0, template: "<div class=\"d-flex a-i-center j-c-center p-relative\">\n @if (selectedIcon) {\n <div class=\"icon-{{ iconSize }} text-center l-h-1 fit-w fit-h\">\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"selectedIcon\"\n ></i>\n </div>\n }\n\n @if (!selectedIcon) {\n <div\n class=\"icon-{{ iconSize }} text-muted text-center a-s-stretch fit-w\"\n style=\"border: 2px dashed var(--c8y-root-component-border-color)\"\n >\n <span class=\"d-flex a-i-center j-c-center text-12 fit-h\">\n <em>{{ 'Auto' | translate }}</em>\n </span>\n </div>\n }\n <div class=\"showOnHover d-flex j-c-center p-absolute fit-h fit-w\">\n @if (!selectedIcon) {\n <button\n class=\"btn btn-clean btn-icon btn-sm m-0\"\n title=\"{{ 'Select icon' | translate }}\"\n [attr.aria-label]=\"'Select icon' | translate\"\n type=\"button\"\n (click)=\"openIconSelector()\"\n >\n {{ 'Select' | translate }}\n </button>\n }\n @if (selectedIcon) {\n <button\n class=\"btn-dot btn-icon m-0 fit-h\"\n [attr.aria-label]=\"'Change icon' | translate\"\n tooltip=\"{{ 'Change icon' | translate }}\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"openIconSelector()\"\n >\n <i [c8yIcon]=\"'replace'\"></i>\n </button>\n }\n @if (selectedIcon && canRemoveIcon) {\n <button\n class=\"btn-dot btn-dot--danger btn-icon fit-h m-0\"\n [attr.aria-label]=\"'Remove icon and use default icon' | translate\"\n tooltip=\"{{ 'Remove icon and use default icon' | translate }}\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"removeIcon()\"\n >\n <i [c8yIcon]=\"'minus-circle'\"></i>\n </button>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
242
242
|
}
|
|
243
243
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IconSelectorWrapperComponent, decorators: [{
|
|
244
244
|
type: Component,
|
|
@@ -248,7 +248,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
248
248
|
useExisting: forwardRef(() => IconSelectorWrapperComponent),
|
|
249
249
|
multi: true
|
|
250
250
|
}
|
|
251
|
-
], imports: [NgIf, IconDirective, TooltipDirective, C8yTranslatePipe], template: "<div class=\"d-flex a-i-center j-c-center p-relative\">\n @if (selectedIcon) {\n <div class=\"icon-{{ iconSize }} text-center l-h-1 fit-w fit-h\">\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"selectedIcon\"\n ></i>\n </div>\n }\n\n @if (!selectedIcon) {\n <div\n class=\"icon-{{ iconSize }} text-muted text-center a-s-stretch fit-w\"\n style=\"border: 2px dashed var(--c8y-root-component-border-color)\"\n >\n <span class=\"d-flex a-i-center j-c-center text-12 fit-h\">\n <em>{{ 'Auto' | translate }}</em>\n </span>\n </div>\n }\n <div class=\"showOnHover d-flex j-c-center p-absolute fit-h fit-w\">\n @if (!selectedIcon) {\n <button\n class=\"btn btn-clean btn-icon btn-sm m-0\"\n title=\"{{ 'Select icon' | translate }}\"\n [attr.aria-label]=\"'Select icon' | translate\"\n type=\"button\"\n (click)=\"openIconSelector()\"\n >\n {{ 'Select' | translate }}\n </button>\n }\n @if (selectedIcon) {\n <button\n class=\"btn
|
|
251
|
+
], imports: [NgIf, IconDirective, TooltipDirective, C8yTranslatePipe], template: "<div class=\"d-flex a-i-center j-c-center p-relative\">\n @if (selectedIcon) {\n <div class=\"icon-{{ iconSize }} text-center l-h-1 fit-w fit-h\">\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"selectedIcon\"\n ></i>\n </div>\n }\n\n @if (!selectedIcon) {\n <div\n class=\"icon-{{ iconSize }} text-muted text-center a-s-stretch fit-w\"\n style=\"border: 2px dashed var(--c8y-root-component-border-color)\"\n >\n <span class=\"d-flex a-i-center j-c-center text-12 fit-h\">\n <em>{{ 'Auto' | translate }}</em>\n </span>\n </div>\n }\n <div class=\"showOnHover d-flex j-c-center p-absolute fit-h fit-w\">\n @if (!selectedIcon) {\n <button\n class=\"btn btn-clean btn-icon btn-sm m-0\"\n title=\"{{ 'Select icon' | translate }}\"\n [attr.aria-label]=\"'Select icon' | translate\"\n type=\"button\"\n (click)=\"openIconSelector()\"\n >\n {{ 'Select' | translate }}\n </button>\n }\n @if (selectedIcon) {\n <button\n class=\"btn-dot btn-icon m-0 fit-h\"\n [attr.aria-label]=\"'Change icon' | translate\"\n tooltip=\"{{ 'Change icon' | translate }}\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"openIconSelector()\"\n >\n <i [c8yIcon]=\"'replace'\"></i>\n </button>\n }\n @if (selectedIcon && canRemoveIcon) {\n <button\n class=\"btn-dot btn-dot--danger btn-icon fit-h m-0\"\n [attr.aria-label]=\"'Remove icon and use default icon' | translate\"\n tooltip=\"{{ 'Remove icon and use default icon' | translate }}\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"removeIcon()\"\n >\n <i [c8yIcon]=\"'minus-circle'\"></i>\n </button>\n }\n </div>\n</div>\n" }]
|
|
252
252
|
}], ctorParameters: () => [{ type: IconSelectorService }, { type: i2.GainsightService }], propDecorators: { canRemoveIcon: [{
|
|
253
253
|
type: Input
|
|
254
254
|
}], selectedIcon: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-icon-selector.mjs","sources":["../../icon-selector/icon-name.pipe.ts","../../icon-selector/icon-selector.component.ts","../../icon-selector/icon-selector.component.html","../../icon-selector/icon-selector-modal/icon-selector-modal.component.ts","../../icon-selector/icon-selector-modal/icon-selector-modal.component.html","../../icon-selector/icon-selector.service.ts","../../icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.ts","../../icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.html","../../icon-selector/icon-selector.module.ts","../../icon-selector/c8y-ngx-components-icon-selector.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'iconName' })\nexport class IconNamePipe implements PipeTransform {\n transform(icon: string): string {\n if (icon.startsWith('c8y-')) {\n return icon.replace(/^c8y-/, '');\n }\n return icon;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest, defer, from } from 'rxjs';\nimport { debounceTime, map, shareReplay, startWith } from 'rxjs/operators';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n IconDirective,\n C8yTranslateDirective,\n C8yTranslatePipe,\n EmptyStateComponent\n} from '@c8y/ngx-components';\nimport { clone } from 'lodash-es';\nimport { DefaultIconDefinition } from '@c8y/ngx-components/icon-selector/model';\nimport { SupportedIconsSuggestions } from '@c8y/ngx-components/icon-selector/icons';\nimport { FormsModule } from '@angular/forms';\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport { IconNamePipe } from './icon-name.pipe';\n\nconst allIconCategory = gettext('All`icons-category`');\n\n@Component({\n selector: 'c8y-icon-selector',\n templateUrl: './icon-selector.component.html',\n styleUrls: [],\n imports: [\n FormsModule,\n IconDirective,\n C8yTranslateDirective,\n C8yTranslatePipe,\n AsyncPipe,\n NgClass,\n IconNamePipe,\n EmptyStateComponent\n ]\n})\nexport class IconSelectorComponent {\n @Input() iconCategoriesToExclude: string[] = [];\n @Input() showIconClass = true;\n @Output() onSelect = new EventEmitter<string>();\n @Input() selectedIcon: SupportedIconsSuggestions;\n\n icons$: Observable<DefaultIconDefinition[]>;\n filteredIcons$: Observable<DefaultIconDefinition[]>;\n searchTerm$ = new BehaviorSubject('');\n selectedIconCategory$ = new BehaviorSubject<string>(allIconCategory);\n availableIconCategories$: Observable<string[]>;\n\n constructor() {\n this.icons$ = defer(() => from(this.loadIconDefinitions())).pipe(\n map(icons => icons.filter(tmp => !this.iconCategoriesToExclude.includes(tmp.label))),\n shareReplay({ refCount: true, bufferSize: 1 })\n );\n this.filteredIcons$ = combineLatest([\n this.icons$,\n this.searchTerm$.pipe(debounceTime(500), startWith(this.searchTerm$.value)),\n this.selectedIconCategory$\n ]).pipe(\n map(([icons, searchTerm, category]) =>\n this.filterIconsByCategoryAndSearchTerm(icons, category, searchTerm)\n )\n );\n this.availableIconCategories$ = this.icons$.pipe(\n map(icons => [allIconCategory, ...icons.map(tmp => tmp.label)])\n );\n }\n\n async loadIconDefinitions(): Promise<DefaultIconDefinition[]> {\n const { allIcons } = await import('@c8y/ngx-components/icon-selector/icons');\n return allIcons;\n }\n\n filterIconsByCategoryAndSearchTerm(\n iconCategories: DefaultIconDefinition[],\n selectedCategory: string,\n searchTerm: string\n ): DefaultIconDefinition[] {\n if (selectedCategory !== allIconCategory) {\n iconCategories = iconCategories.filter(category => category.label === selectedCategory);\n }\n\n if (searchTerm) {\n const lowerCaseSearchTerm = searchTerm.toLowerCase();\n const matchingCategories = new Array<DefaultIconDefinition>();\n for (const category of iconCategories) {\n const matchingIcons = category.icons.filter(iconClasses =>\n iconClasses.some(iconClass => iconClass.includes(lowerCaseSearchTerm))\n );\n if (matchingIcons.length) {\n matchingCategories.push({ ...clone(category), icons: matchingIcons });\n }\n }\n return matchingCategories;\n }\n\n return iconCategories;\n }\n\n onSearchChange(searchTerm: string) {\n this.searchTerm$.next(searchTerm);\n }\n\n onCategoryFilterChanged(categoryChange: string): void {\n this.selectedIconCategory$.next(categoryChange);\n }\n\n onIconClicked(icon: ReadonlyArray<string>): void {\n this.selectedIcon = icon[0];\n this.onSelect.emit(icon[0]);\n }\n}\n","<div class=\"p-l-24 p-r-24 p-t-8 p-b-8 separator-bottom\">\n <div class=\"row d-flex-sm\">\n <div class=\"col-sm-6 m-b-8\">\n <div\n class=\"input-group-search input-group\"\n style=\"width: auto\"\n >\n <input\n class=\"form-control\"\n id=\"filter-icons\"\n placeholder=\"{{ 'Type to filter icons…' | translate }}\"\n type=\"search\"\n [ngModel]=\"searchTerm$ | async\"\n (ngModelChange)=\"onSearchChange($event)\"\n />\n @if (searchTerm$ | async) {\n <span\n class=\"input-group-addon pointer\"\n (click)=\"onSearchChange('')\"\n >\n <i c8yIcon=\"times\"></i>\n </span>\n } @else {\n <span class=\"input-group-addon\">\n <i c8yIcon=\"search\"></i>\n </span>\n }\n </div>\n </div>\n <div class=\"col-sm-6 m-b-8 text-right\">\n <div class=\"d-inline-flex a-i-center text-left\">\n <label\n class=\"m-b-0 m-r-8 flex-no-shrink\"\n translate\n >\n Filter by type\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n id=\"exampleSelect\"\n [ngModel]=\"selectedIconCategory$ | async\"\n (ngModelChange)=\"onCategoryFilterChanged($event)\"\n >\n @for (category of availableIconCategories$ | async; track category) {\n <option [ngValue]=\"category\">\n {{ category | translate }}\n </option>\n }\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-inner-scroll\">\n <div\n class=\"modal-body\"\n style=\"height: calc(100vh - 293px)\"\n >\n <div class=\"dtm-icon-grid\">\n @for (iconDefinition of filteredIcons$ | async; track iconDefinition) {\n <div class=\"d-contents\">\n <div class=\"legend form-block center grid__col--fullspan\">\n {{ iconDefinition.label | translate }}\n </div>\n\n @for (icon of iconDefinition.icons; track icon) {\n <div class=\"d-contents\">\n <div\n class=\"dtm-icon-grid__item\"\n [ngClass]=\"{\n 'dtm-icon-grid__item--selected': selectedIcon && icon[0] === selectedIcon\n }\"\n >\n <button\n class=\"dtm-icon-grid__btn\"\n [title]=\"icon[0] | iconName\"\n (click)=\"onIconClicked(icon)\"\n >\n <i\n class=\"d-block icon-40 c8y-icon-duocolor\"\n [c8yIcon]=\"icon[0]\"\n ></i>\n @if (showIconClass) {\n <small class=\"text-break-word\">\n {{ icon[0] | iconName }}\n </small>\n }\n </button>\n </div>\n </div>\n }\n </div>\n } @empty {\n <c8y-ui-empty-state\n icon=\"search\"\n style=\"grid-column: 1 / 3\"\n [title]=\"'No icons found' | translate\"\n [subtitle]=\"\n 'Try adjusting your search or filter to find what you\\'re looking for.' | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n }\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { C8yTranslatePipe } from '@c8y/ngx-components';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { IconSelectorComponent } from '../icon-selector.component';\n\n@Component({\n selector: 'c8y-icon-selector-modal',\n templateUrl: './icon-selector-modal.component.html',\n imports: [IconSelectorComponent, C8yTranslatePipe]\n})\nexport class IconSelectorModalComponent {\n title: string = gettext('Select icon');\n currentSelection: string;\n saveButtonLabel: string = gettext('Select');\n iconCategoriesToExclude: string[] = [];\n showIconClass = true;\n\n readonly result: Promise<string> = new Promise((resolve, reject) => {\n this.save = resolve;\n this.cancel = reject;\n });\n\n private save: (value: string) => void;\n private cancel: (reason?: any) => void;\n\n constructor(private bsModal: BsModalRef) {}\n\n close() {\n this.bsModal.hide();\n this.cancel();\n }\n\n saveChanges(): void {\n this.bsModal.hide();\n this.save(this.currentSelection);\n }\n\n selectionChange(newSelection: string) {\n this.currentSelection = newSelection;\n }\n}\n","<div class=\"modal-header\">\n <div id=\"modal-title\" class=\"modal-title h4\">{{ title | translate }}</div>\n</div>\n<div id=\"modal-body\">\n <c8y-icon-selector\n (onSelect)=\"selectionChange($event)\"\n [selectedIcon]=\"currentSelection\"\n [iconCategoriesToExclude]=\"iconCategoriesToExclude\"\n [showIconClass]=\"showIconClass\"\n ></c8y-icon-selector>\n</div>\n<div class=\"modal-footer separator text-center\">\n <button class=\"btn btn-default\" (click)=\"close()\">\n {{ 'Cancel' | translate }}\n </button>\n <button class=\"btn btn-primary\" [disabled]=\"!currentSelection\" (click)=\"saveChanges()\">\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n","import { Injectable } from '@angular/core';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { IconSelectorModalComponent } from './icon-selector-modal/icon-selector-modal.component';\n\n@Injectable({ providedIn: 'root' })\nexport class IconSelectorService {\n constructor(protected modal: BsModalService) {}\n\n selectIcon(\n initialState: Partial<\n Pick<\n IconSelectorModalComponent,\n | 'currentSelection'\n | 'title'\n | 'saveButtonLabel'\n | 'iconCategoriesToExclude'\n | 'showIconClass'\n >\n > = {}\n ): Promise<string> {\n const modal = this.modal.show(IconSelectorModalComponent, {\n ignoreBackdropClick: true,\n keyboard: false,\n initialState,\n class: 'modal-lg'\n });\n const content = modal.content as IconSelectorModalComponent;\n return content.result;\n }\n}\n","import { Component, forwardRef, Input, Output, EventEmitter } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IconSelectorService } from '../icon-selector.service';\nimport { GainsightService, IconDirective, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { PRODUCT_EXPERIENCE_ICON_SELECTOR } from '@c8y/ngx-components/icon-selector/model';\nimport { NgIf } from '@angular/common';\nimport { TooltipDirective } from 'ngx-bootstrap/tooltip';\n\n/**\n * A component which acts as a wrapper for the icon selector.\n *\n * Example 1:\n * ```\n <c8y-icon-selector-wrapper\n [selectedIcon]=\"'water'\"\n (onSelect)=\"selectIcon($event)\"\n ></c8y-icon-selector-wrapper>\n * ```\n * OR as a part of a formGroup\n * Example 2:\n * ```\n <c8y-icon-selector-wrapper name=\"icon\" formControlName=\"icon\">\n </c8y-icon-selector-wrapper>\n * ```\n */\n@Component({\n selector: 'c8y-icon-selector-wrapper',\n templateUrl: './icon-selector-wrapper.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IconSelectorWrapperComponent),\n multi: true\n }\n ],\n imports: [NgIf, IconDirective, TooltipDirective, C8yTranslatePipe]\n})\nexport class IconSelectorWrapperComponent implements ControlValueAccessor {\n @Input() canRemoveIcon = false;\n @Input() selectedIcon: string;\n /**\n * The displayed icon size, the value has to be multiple of 8.\n */\n @Input() iconSize = 32;\n @Output() onSelect: EventEmitter<string> = new EventEmitter();\n\n /**\n * @ignore\n */\n onTouched: () => void;\n\n constructor(\n private iconSelector: IconSelectorService,\n private gainsightService: GainsightService\n ) {}\n\n /**\n * @ignore\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: (value: string) => void = () => {};\n\n /**\n * @ignore\n * @param icon The value to update\n */\n writeValue(icon: string): void {\n this.selectedIcon = icon;\n }\n\n /**\n * @ignore\n * @param fn The function to register for changes\n */\n registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n /**\n * @ignore\n * @param fn The function to register for changes\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n removeIcon() {\n this.onSelect.emit(undefined);\n }\n\n async openIconSelector() {\n try {\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE_ICON_SELECTOR.EVENTS.ICON_SELECTOR, {\n component: PRODUCT_EXPERIENCE_ICON_SELECTOR.COMPONENTS.ICON_SELECTOR_WRAPPER_COMPONENT,\n action: PRODUCT_EXPERIENCE_ICON_SELECTOR.ACTIONS.OPEN_ICON_SELECTOR\n });\n const icon = await this.iconSelector.selectIcon({\n currentSelection: this.selectedIcon\n });\n this.onChange(icon);\n this.selectedIcon = icon;\n this.onSelect.emit(icon);\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE_ICON_SELECTOR.EVENTS.ICON_SELECTOR, {\n component: PRODUCT_EXPERIENCE_ICON_SELECTOR.COMPONENTS.ICON_SELECTOR_WRAPPER_COMPONENT,\n action: PRODUCT_EXPERIENCE_ICON_SELECTOR.ACTIONS.ICON_SELECTED\n });\n } catch {\n // nothing to do\n }\n }\n}\n","<div class=\"d-flex a-i-center j-c-center p-relative\">\n @if (selectedIcon) {\n <div class=\"icon-{{ iconSize }} text-center l-h-1 fit-w fit-h\">\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"selectedIcon\"\n ></i>\n </div>\n }\n\n @if (!selectedIcon) {\n <div\n class=\"icon-{{ iconSize }} text-muted text-center a-s-stretch fit-w\"\n style=\"border: 2px dashed var(--c8y-root-component-border-color)\"\n >\n <span class=\"d-flex a-i-center j-c-center text-12 fit-h\">\n <em>{{ 'Auto' | translate }}</em>\n </span>\n </div>\n }\n <div class=\"showOnHover d-flex j-c-center p-absolute fit-h fit-w\">\n @if (!selectedIcon) {\n <button\n class=\"btn btn-clean btn-icon btn-sm m-0\"\n title=\"{{ 'Select icon' | translate }}\"\n [attr.aria-label]=\"'Select icon' | translate\"\n type=\"button\"\n (click)=\"openIconSelector()\"\n >\n {{ 'Select' | translate }}\n </button>\n }\n @if (selectedIcon) {\n <button\n class=\"btn btn-dot btn-sm btn-icon m-0\"\n [attr.aria-label]=\"'Change icon' | translate\"\n tooltip=\"{{ 'Change icon' | translate }}\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"openIconSelector()\"\n >\n <i [c8yIcon]=\"'replace'\"></i>\n </button>\n }\n @if (selectedIcon && canRemoveIcon) {\n <button\n class=\"btn btn-dot btn-dot--danger btn-icon btn-sm m-0\"\n [attr.aria-label]=\"'Remove icon and use default icon' | translate\"\n tooltip=\"{{ 'Remove icon and use default icon' | translate }}\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"removeIcon()\"\n >\n <i [c8yIcon]=\"'trash'\"></i>\n </button>\n }\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule, DropAreaModule } from '@c8y/ngx-components';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { IconNamePipe } from './icon-name.pipe';\nimport { IconSelectorModalComponent } from './icon-selector-modal/icon-selector-modal.component';\nimport { IconSelectorComponent } from './icon-selector.component';\nimport { IconSelectorWrapperComponent } from './icon-selector-wrapper/icon-selector-wrapper.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n DropAreaModule,\n TooltipModule,\n IconSelectorComponent,\n IconSelectorModalComponent,\n IconNamePipe,\n IconSelectorWrapperComponent\n ],\n exports: [\n IconSelectorComponent,\n IconSelectorModalComponent,\n IconNamePipe,\n IconSelectorWrapperComponent\n ]\n})\nexport class IconSelectorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.IconSelectorService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-icon-selector.mjs","sources":["../../icon-selector/icon-name.pipe.ts","../../icon-selector/icon-selector.component.ts","../../icon-selector/icon-selector.component.html","../../icon-selector/icon-selector-modal/icon-selector-modal.component.ts","../../icon-selector/icon-selector-modal/icon-selector-modal.component.html","../../icon-selector/icon-selector.service.ts","../../icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.ts","../../icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.html","../../icon-selector/icon-selector.module.ts","../../icon-selector/c8y-ngx-components-icon-selector.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'iconName' })\nexport class IconNamePipe implements PipeTransform {\n transform(icon: string): string {\n if (icon.startsWith('c8y-')) {\n return icon.replace(/^c8y-/, '');\n }\n return icon;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest, defer, from } from 'rxjs';\nimport { debounceTime, map, shareReplay, startWith } from 'rxjs/operators';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n IconDirective,\n C8yTranslateDirective,\n C8yTranslatePipe,\n EmptyStateComponent\n} from '@c8y/ngx-components';\nimport { clone } from 'lodash-es';\nimport { DefaultIconDefinition } from '@c8y/ngx-components/icon-selector/model';\nimport { SupportedIconsSuggestions } from '@c8y/ngx-components/icon-selector/icons';\nimport { FormsModule } from '@angular/forms';\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport { IconNamePipe } from './icon-name.pipe';\n\nconst allIconCategory = gettext('All`icons-category`');\n\n@Component({\n selector: 'c8y-icon-selector',\n templateUrl: './icon-selector.component.html',\n styleUrls: [],\n imports: [\n FormsModule,\n IconDirective,\n C8yTranslateDirective,\n C8yTranslatePipe,\n AsyncPipe,\n NgClass,\n IconNamePipe,\n EmptyStateComponent\n ]\n})\nexport class IconSelectorComponent {\n @Input() iconCategoriesToExclude: string[] = [];\n @Input() showIconClass = true;\n @Output() onSelect = new EventEmitter<string>();\n @Input() selectedIcon: SupportedIconsSuggestions;\n\n icons$: Observable<DefaultIconDefinition[]>;\n filteredIcons$: Observable<DefaultIconDefinition[]>;\n searchTerm$ = new BehaviorSubject('');\n selectedIconCategory$ = new BehaviorSubject<string>(allIconCategory);\n availableIconCategories$: Observable<string[]>;\n\n constructor() {\n this.icons$ = defer(() => from(this.loadIconDefinitions())).pipe(\n map(icons => icons.filter(tmp => !this.iconCategoriesToExclude.includes(tmp.label))),\n shareReplay({ refCount: true, bufferSize: 1 })\n );\n this.filteredIcons$ = combineLatest([\n this.icons$,\n this.searchTerm$.pipe(debounceTime(500), startWith(this.searchTerm$.value)),\n this.selectedIconCategory$\n ]).pipe(\n map(([icons, searchTerm, category]) =>\n this.filterIconsByCategoryAndSearchTerm(icons, category, searchTerm)\n )\n );\n this.availableIconCategories$ = this.icons$.pipe(\n map(icons => [allIconCategory, ...icons.map(tmp => tmp.label)])\n );\n }\n\n async loadIconDefinitions(): Promise<DefaultIconDefinition[]> {\n const { allIcons } = await import('@c8y/ngx-components/icon-selector/icons');\n return allIcons;\n }\n\n filterIconsByCategoryAndSearchTerm(\n iconCategories: DefaultIconDefinition[],\n selectedCategory: string,\n searchTerm: string\n ): DefaultIconDefinition[] {\n if (selectedCategory !== allIconCategory) {\n iconCategories = iconCategories.filter(category => category.label === selectedCategory);\n }\n\n if (searchTerm) {\n const lowerCaseSearchTerm = searchTerm.toLowerCase();\n const matchingCategories = new Array<DefaultIconDefinition>();\n for (const category of iconCategories) {\n const matchingIcons = category.icons.filter(iconClasses =>\n iconClasses.some(iconClass => iconClass.includes(lowerCaseSearchTerm))\n );\n if (matchingIcons.length) {\n matchingCategories.push({ ...clone(category), icons: matchingIcons });\n }\n }\n return matchingCategories;\n }\n\n return iconCategories;\n }\n\n onSearchChange(searchTerm: string) {\n this.searchTerm$.next(searchTerm);\n }\n\n onCategoryFilterChanged(categoryChange: string): void {\n this.selectedIconCategory$.next(categoryChange);\n }\n\n onIconClicked(icon: ReadonlyArray<string>): void {\n this.selectedIcon = icon[0];\n this.onSelect.emit(icon[0]);\n }\n}\n","<div class=\"p-l-24 p-r-24 p-t-8 p-b-8 separator-bottom\">\n <div class=\"row d-flex-sm\">\n <div class=\"col-sm-6 m-b-8\">\n <div\n class=\"input-group-search input-group\"\n style=\"width: auto\"\n >\n <input\n class=\"form-control\"\n id=\"filter-icons\"\n placeholder=\"{{ 'Type to filter icons…' | translate }}\"\n type=\"search\"\n [ngModel]=\"searchTerm$ | async\"\n (ngModelChange)=\"onSearchChange($event)\"\n />\n @if (searchTerm$ | async) {\n <span\n class=\"input-group-addon pointer\"\n (click)=\"onSearchChange('')\"\n >\n <i c8yIcon=\"times\"></i>\n </span>\n } @else {\n <span class=\"input-group-addon\">\n <i c8yIcon=\"search\"></i>\n </span>\n }\n </div>\n </div>\n <div class=\"col-sm-6 m-b-8 text-right\">\n <div class=\"d-inline-flex a-i-center text-left\">\n <label\n class=\"m-b-0 m-r-8 flex-no-shrink\"\n translate\n >\n Filter by type\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n id=\"exampleSelect\"\n [ngModel]=\"selectedIconCategory$ | async\"\n (ngModelChange)=\"onCategoryFilterChanged($event)\"\n >\n @for (category of availableIconCategories$ | async; track category) {\n <option [ngValue]=\"category\">\n {{ category | translate }}\n </option>\n }\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-inner-scroll\">\n <div\n class=\"modal-body\"\n style=\"height: calc(100vh - 293px)\"\n >\n <div class=\"dtm-icon-grid\">\n @for (iconDefinition of filteredIcons$ | async; track iconDefinition) {\n <div class=\"d-contents\">\n <div class=\"legend form-block center grid__col--fullspan\">\n {{ iconDefinition.label | translate }}\n </div>\n\n @for (icon of iconDefinition.icons; track icon) {\n <div class=\"d-contents\">\n <div\n class=\"dtm-icon-grid__item\"\n [ngClass]=\"{\n 'dtm-icon-grid__item--selected': selectedIcon && icon[0] === selectedIcon\n }\"\n >\n <button\n class=\"dtm-icon-grid__btn\"\n [title]=\"icon[0] | iconName\"\n (click)=\"onIconClicked(icon)\"\n >\n <i\n class=\"d-block icon-40 c8y-icon-duocolor\"\n [c8yIcon]=\"icon[0]\"\n ></i>\n @if (showIconClass) {\n <small class=\"text-break-word\">\n {{ icon[0] | iconName }}\n </small>\n }\n </button>\n </div>\n </div>\n }\n </div>\n } @empty {\n <c8y-ui-empty-state\n icon=\"search\"\n style=\"grid-column: 1 / 3\"\n [title]=\"'No icons found' | translate\"\n [subtitle]=\"\n 'Try adjusting your search or filter to find what you\\'re looking for.' | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n }\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { C8yTranslatePipe } from '@c8y/ngx-components';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { IconSelectorComponent } from '../icon-selector.component';\n\n@Component({\n selector: 'c8y-icon-selector-modal',\n templateUrl: './icon-selector-modal.component.html',\n imports: [IconSelectorComponent, C8yTranslatePipe]\n})\nexport class IconSelectorModalComponent {\n title: string = gettext('Select icon');\n currentSelection: string;\n saveButtonLabel: string = gettext('Select');\n iconCategoriesToExclude: string[] = [];\n showIconClass = true;\n\n readonly result: Promise<string> = new Promise((resolve, reject) => {\n this.save = resolve;\n this.cancel = reject;\n });\n\n private save: (value: string) => void;\n private cancel: (reason?: any) => void;\n\n constructor(private bsModal: BsModalRef) {}\n\n close() {\n this.bsModal.hide();\n this.cancel();\n }\n\n saveChanges(): void {\n this.bsModal.hide();\n this.save(this.currentSelection);\n }\n\n selectionChange(newSelection: string) {\n this.currentSelection = newSelection;\n }\n}\n","<div class=\"modal-header\">\n <div id=\"modal-title\" class=\"modal-title h4\">{{ title | translate }}</div>\n</div>\n<div id=\"modal-body\">\n <c8y-icon-selector\n (onSelect)=\"selectionChange($event)\"\n [selectedIcon]=\"currentSelection\"\n [iconCategoriesToExclude]=\"iconCategoriesToExclude\"\n [showIconClass]=\"showIconClass\"\n ></c8y-icon-selector>\n</div>\n<div class=\"modal-footer separator text-center\">\n <button class=\"btn btn-default\" (click)=\"close()\">\n {{ 'Cancel' | translate }}\n </button>\n <button class=\"btn btn-primary\" [disabled]=\"!currentSelection\" (click)=\"saveChanges()\">\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n","import { Injectable } from '@angular/core';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { IconSelectorModalComponent } from './icon-selector-modal/icon-selector-modal.component';\n\n@Injectable({ providedIn: 'root' })\nexport class IconSelectorService {\n constructor(protected modal: BsModalService) {}\n\n selectIcon(\n initialState: Partial<\n Pick<\n IconSelectorModalComponent,\n | 'currentSelection'\n | 'title'\n | 'saveButtonLabel'\n | 'iconCategoriesToExclude'\n | 'showIconClass'\n >\n > = {}\n ): Promise<string> {\n const modal = this.modal.show(IconSelectorModalComponent, {\n ignoreBackdropClick: true,\n keyboard: false,\n initialState,\n class: 'modal-lg'\n });\n const content = modal.content as IconSelectorModalComponent;\n return content.result;\n }\n}\n","import { Component, forwardRef, Input, Output, EventEmitter } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IconSelectorService } from '../icon-selector.service';\nimport { GainsightService, IconDirective, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { PRODUCT_EXPERIENCE_ICON_SELECTOR } from '@c8y/ngx-components/icon-selector/model';\nimport { NgIf } from '@angular/common';\nimport { TooltipDirective } from 'ngx-bootstrap/tooltip';\n\n/**\n * A component which acts as a wrapper for the icon selector.\n *\n * Example 1:\n * ```\n <c8y-icon-selector-wrapper\n [selectedIcon]=\"'water'\"\n (onSelect)=\"selectIcon($event)\"\n ></c8y-icon-selector-wrapper>\n * ```\n * OR as a part of a formGroup\n * Example 2:\n * ```\n <c8y-icon-selector-wrapper name=\"icon\" formControlName=\"icon\">\n </c8y-icon-selector-wrapper>\n * ```\n */\n@Component({\n selector: 'c8y-icon-selector-wrapper',\n templateUrl: './icon-selector-wrapper.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IconSelectorWrapperComponent),\n multi: true\n }\n ],\n imports: [NgIf, IconDirective, TooltipDirective, C8yTranslatePipe]\n})\nexport class IconSelectorWrapperComponent implements ControlValueAccessor {\n @Input() canRemoveIcon = false;\n @Input() selectedIcon: string;\n /**\n * The displayed icon size, the value has to be multiple of 8.\n */\n @Input() iconSize = 32;\n @Output() onSelect: EventEmitter<string> = new EventEmitter();\n\n /**\n * @ignore\n */\n onTouched: () => void;\n\n constructor(\n private iconSelector: IconSelectorService,\n private gainsightService: GainsightService\n ) {}\n\n /**\n * @ignore\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: (value: string) => void = () => {};\n\n /**\n * @ignore\n * @param icon The value to update\n */\n writeValue(icon: string): void {\n this.selectedIcon = icon;\n }\n\n /**\n * @ignore\n * @param fn The function to register for changes\n */\n registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n /**\n * @ignore\n * @param fn The function to register for changes\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n removeIcon() {\n this.onSelect.emit(undefined);\n }\n\n async openIconSelector() {\n try {\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE_ICON_SELECTOR.EVENTS.ICON_SELECTOR, {\n component: PRODUCT_EXPERIENCE_ICON_SELECTOR.COMPONENTS.ICON_SELECTOR_WRAPPER_COMPONENT,\n action: PRODUCT_EXPERIENCE_ICON_SELECTOR.ACTIONS.OPEN_ICON_SELECTOR\n });\n const icon = await this.iconSelector.selectIcon({\n currentSelection: this.selectedIcon\n });\n this.onChange(icon);\n this.selectedIcon = icon;\n this.onSelect.emit(icon);\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE_ICON_SELECTOR.EVENTS.ICON_SELECTOR, {\n component: PRODUCT_EXPERIENCE_ICON_SELECTOR.COMPONENTS.ICON_SELECTOR_WRAPPER_COMPONENT,\n action: PRODUCT_EXPERIENCE_ICON_SELECTOR.ACTIONS.ICON_SELECTED\n });\n } catch {\n // nothing to do\n }\n }\n}\n","<div class=\"d-flex a-i-center j-c-center p-relative\">\n @if (selectedIcon) {\n <div class=\"icon-{{ iconSize }} text-center l-h-1 fit-w fit-h\">\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"selectedIcon\"\n ></i>\n </div>\n }\n\n @if (!selectedIcon) {\n <div\n class=\"icon-{{ iconSize }} text-muted text-center a-s-stretch fit-w\"\n style=\"border: 2px dashed var(--c8y-root-component-border-color)\"\n >\n <span class=\"d-flex a-i-center j-c-center text-12 fit-h\">\n <em>{{ 'Auto' | translate }}</em>\n </span>\n </div>\n }\n <div class=\"showOnHover d-flex j-c-center p-absolute fit-h fit-w\">\n @if (!selectedIcon) {\n <button\n class=\"btn btn-clean btn-icon btn-sm m-0\"\n title=\"{{ 'Select icon' | translate }}\"\n [attr.aria-label]=\"'Select icon' | translate\"\n type=\"button\"\n (click)=\"openIconSelector()\"\n >\n {{ 'Select' | translate }}\n </button>\n }\n @if (selectedIcon) {\n <button\n class=\"btn-dot btn-icon m-0 fit-h\"\n [attr.aria-label]=\"'Change icon' | translate\"\n tooltip=\"{{ 'Change icon' | translate }}\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"openIconSelector()\"\n >\n <i [c8yIcon]=\"'replace'\"></i>\n </button>\n }\n @if (selectedIcon && canRemoveIcon) {\n <button\n class=\"btn-dot btn-dot--danger btn-icon fit-h m-0\"\n [attr.aria-label]=\"'Remove icon and use default icon' | translate\"\n tooltip=\"{{ 'Remove icon and use default icon' | translate }}\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"removeIcon()\"\n >\n <i [c8yIcon]=\"'minus-circle'\"></i>\n </button>\n }\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule, DropAreaModule } from '@c8y/ngx-components';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { IconNamePipe } from './icon-name.pipe';\nimport { IconSelectorModalComponent } from './icon-selector-modal/icon-selector-modal.component';\nimport { IconSelectorComponent } from './icon-selector.component';\nimport { IconSelectorWrapperComponent } from './icon-selector-wrapper/icon-selector-wrapper.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n DropAreaModule,\n TooltipModule,\n IconSelectorComponent,\n IconSelectorModalComponent,\n IconNamePipe,\n IconSelectorWrapperComponent\n ],\n exports: [\n IconSelectorComponent,\n IconSelectorModalComponent,\n IconNamePipe,\n IconSelectorWrapperComponent\n ]\n})\nexport class IconSelectorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.IconSelectorService"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs","sources":["../../widgets/definitions/alarms/alarm-list/index.ts","../../widgets/definitions/alarms/alarm-list/c8y-ngx-components-widgets-definitions-alarms-alarm-list.ts"],"sourcesContent":["import { gettext } from '@c8y/ngx-components/gettext';\nimport {\n type DynamicWidgetDefinition,\n DynamicComponentErrorStrategy,\n DynamicManagedObjectResolver,\n hookWidget\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithDevice,\n importConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\n\nexport const alarmListWidgetDefinition = {\n id: defaultWidgetIds.ALARM_LIST,\n label: gettext('Alarm list'),\n description: gettext(`Displays a list of alarms filtered by object, severity, status and date`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/alarms/alarm-list-widget.png',\n resolve: {\n device: DynamicManagedObjectResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=AlarmListWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/alarms'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n settings: {\n alarmListWidget: true,\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height:
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs","sources":["../../widgets/definitions/alarms/alarm-list/index.ts","../../widgets/definitions/alarms/alarm-list/c8y-ngx-components-widgets-definitions-alarms-alarm-list.ts"],"sourcesContent":["import { gettext } from '@c8y/ngx-components/gettext';\nimport {\n type DynamicWidgetDefinition,\n DynamicComponentErrorStrategy,\n DynamicManagedObjectResolver,\n hookWidget\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithDevice,\n importConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\n\nexport const alarmListWidgetDefinition = {\n id: defaultWidgetIds.ALARM_LIST,\n label: gettext('Alarm list'),\n description: gettext(`Displays a list of alarms filtered by object, severity, status and date`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/alarms').then(\n m => m.AlarmListWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/alarms/alarm-list-widget.png',\n resolve: {\n device: DynamicManagedObjectResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=AlarmListWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/alarms'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n settings: {\n alarmListWidget: true,\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 6\n },\n ng1: {\n options: {\n noDeviceTarget: false,\n groupsSelectable: true,\n deviceTargetNotRequired: true\n }\n }\n },\n controls: PRESET_NAME.ALARM_LIST_CONFIG,\n displaySettings: {\n globalTimeContext: true,\n globalAutoRefreshContext: true\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const alarmListWidgetProviders = [\n hookWidget(alarmListWidgetDefinition),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.ALARM_LIST,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.ALARM_LIST_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAkBO,MAAM,yBAAyB,GAAG;IACvC,EAAE,EAAE,gBAAgB,CAAC,UAAU;AAC/B,IAAA,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC;AAC5B,IAAA,WAAW,EAAE,OAAO,CAAC,CAAA,uEAAA,CAAyE,CAAC;AAC/F,IAAA,aAAa,EAAE,MACb,OAAO,oDAAoD,CAAC,CAAC,IAAI,CAC/D,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAChC;AACH,IAAA,mBAAmB,EAAE,MACnB,OAAO,oDAAoD,CAAC,CAAC,IAAI,CAC/D,CAAC,IAAI,CAAC,CAAC,8BAA8B,CACtC;AACH,IAAA,YAAY,EAAE,+CAA+C;AAC7D,IAAA,OAAO,EAAE;AACP,QAAA,MAAM,EAAE;AACT,KAAA;IACD,aAAa,EAAE,6BAA6B,CAAC,aAAa;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,6HAA6H,CAC9H;AACH,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,QAAQ,EAAE;AACR,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,cAAc,EAAE;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE;AACV,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,KAAK;AACrB,oBAAA,gBAAgB,EAAE,IAAI;AACtB,oBAAA,uBAAuB,EAAE;AAC1B;AACF;AACF,SAAA;QACD,QAAQ,EAAE,WAAW,CAAC,iBAAiB;AACvC,QAAA,eAAe,EAAE;AACf,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,wBAAwB,EAAE;AAC3B;AACF;;AAGI,MAAM,wBAAwB,GAAG;IACtC,UAAU,CAAC,yBAAyB,CAAC;AACrC,IAAA,gBAAgB,CAAgC;QAC9C,QAAQ,EAAE,gBAAgB,CAAC,UAAU;AACrC,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC;AAC9B,QAAA,YAAY,EAAE;YACZ,QAAQ,EAAE,WAAW,CAAC;AACvB,SAAA;AACD,QAAA,aAAa,EAAE,MACb,OAAO,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,6BAA6B;KAC5F;;;AC5EH;;AAEG;;;;"}
|
|
@@ -31,7 +31,7 @@ class DatapointGraphFactory {
|
|
|
31
31
|
noNewWidgets: false,
|
|
32
32
|
widgetDefaults: {
|
|
33
33
|
_width: 8,
|
|
34
|
-
_height:
|
|
34
|
+
_height: 6
|
|
35
35
|
},
|
|
36
36
|
noDeviceTarget: true,
|
|
37
37
|
groupsSelectable: false
|
|
@@ -84,7 +84,7 @@ const datapointGraphWidgetproviders = [
|
|
|
84
84
|
*/
|
|
85
85
|
hookWidgetConfig({
|
|
86
86
|
widgetId: defaultWidgetIds.DATAPOINTS_GRAPH_NEW,
|
|
87
|
-
priority:
|
|
87
|
+
priority: 90,
|
|
88
88
|
label: gettext('Time context'),
|
|
89
89
|
initialState: {
|
|
90
90
|
controls: PRESET_NAME.DATAPOINTS_GRAPH_CONFIG
|
|
@@ -93,7 +93,7 @@ const datapointGraphWidgetproviders = [
|
|
|
93
93
|
}),
|
|
94
94
|
hookWidgetConfig({
|
|
95
95
|
widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,
|
|
96
|
-
priority:
|
|
96
|
+
priority: 90,
|
|
97
97
|
label: gettext('Time context'),
|
|
98
98
|
initialState: {
|
|
99
99
|
controls: PRESET_NAME.DATAPOINTS_GRAPH_CONFIG
|
|
@@ -107,7 +107,7 @@ const datapointGraphWidgetproviders = [
|
|
|
107
107
|
initialState: {
|
|
108
108
|
configStoreMode: 'MIXED'
|
|
109
109
|
},
|
|
110
|
-
priority:
|
|
110
|
+
priority: 70
|
|
111
111
|
}),
|
|
112
112
|
hookWidgetConfig({
|
|
113
113
|
widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,
|
|
@@ -116,7 +116,7 @@ const datapointGraphWidgetproviders = [
|
|
|
116
116
|
initialState: {
|
|
117
117
|
configStoreMode: 'MIXED'
|
|
118
118
|
},
|
|
119
|
-
priority:
|
|
119
|
+
priority: 60
|
|
120
120
|
}),
|
|
121
121
|
hookWidgetConfig({
|
|
122
122
|
widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,
|
|
@@ -128,7 +128,7 @@ const datapointGraphWidgetproviders = [
|
|
|
128
128
|
useAdvancedChartOptions: true
|
|
129
129
|
},
|
|
130
130
|
expanded: true,
|
|
131
|
-
priority:
|
|
131
|
+
priority: 80
|
|
132
132
|
})
|
|
133
133
|
];
|
|
134
134
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-widgets-definitions-datapoints-graph.mjs","sources":["../../widgets/definitions/datapoints-graph/datapoint-graph-widget-factory.ts","../../widgets/definitions/datapoints-graph/datapoint-graph.constants.ts","../../widgets/definitions/datapoints-graph/index.ts","../../widgets/definitions/datapoints-graph/c8y-ngx-components-widgets-definitions-datapoints-graph.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicDatapointsResolver,\n PreviewService,\n DynamicWidgetDefinition\n} from '@c8y/ngx-components';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {\n exportConfigWithTargets,\n importConfigWithTargets\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\n\n@Injectable()\nexport class DatapointGraphFactory {\n private readonly previewFeatureService = inject(PreviewService);\n\n private readonly baseWidgetDefinition: DynamicWidgetDefinition = {\n id: defaultWidgetIds.DATAPOINTS_GRAPH,\n label: gettext('Data graph'),\n description: gettext('Displays a graph of selected data points'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-graph').then(\n m => m.DatapointsGraphWidgetViewComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-graph').then(\n m => m.DatapointsGraphWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/datapoints-graph-widget.png',\n resolve: {\n datapoints: DynamicDatapointsResolver\n },\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=DatapointsGraphWidgetConfig&type=widget-config!@c8y/ngx-components/echart'\n ),\n export: exportConfigWithTargets,\n import: importConfigWithTargets,\n controls: PRESET_NAME.DATAPOINTS_GRAPH,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height:
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-widgets-definitions-datapoints-graph.mjs","sources":["../../widgets/definitions/datapoints-graph/datapoint-graph-widget-factory.ts","../../widgets/definitions/datapoints-graph/datapoint-graph.constants.ts","../../widgets/definitions/datapoints-graph/index.ts","../../widgets/definitions/datapoints-graph/c8y-ngx-components-widgets-definitions-datapoints-graph.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicDatapointsResolver,\n PreviewService,\n DynamicWidgetDefinition\n} from '@c8y/ngx-components';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport cloneDeep from 'lodash/cloneDeep';\nimport {\n exportConfigWithTargets,\n importConfigWithTargets\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\n\n@Injectable()\nexport class DatapointGraphFactory {\n private readonly previewFeatureService = inject(PreviewService);\n\n private readonly baseWidgetDefinition: DynamicWidgetDefinition = {\n id: defaultWidgetIds.DATAPOINTS_GRAPH,\n label: gettext('Data graph'),\n description: gettext('Displays a graph of selected data points'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-graph').then(\n m => m.DatapointsGraphWidgetViewComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-graph').then(\n m => m.DatapointsGraphWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/datapoints-graph-widget.png',\n resolve: {\n datapoints: DynamicDatapointsResolver\n },\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=DatapointsGraphWidgetConfig&type=widget-config!@c8y/ngx-components/echart'\n ),\n export: exportConfigWithTargets,\n import: importConfigWithTargets,\n controls: PRESET_NAME.DATAPOINTS_GRAPH,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 6\n },\n noDeviceTarget: true,\n groupsSelectable: false\n },\n displaySettings: {\n globalTimeContext: true,\n globalAggregationContext: true,\n globalRealtimeContext: true\n }\n }\n };\n\n get(): Observable<DynamicWidgetDefinition[]> {\n return this.previewFeatureService.getState$('ui.datapoint-graph.v2').pipe(\n map(state => {\n if (state) {\n const newWidgetDefinition = cloneDeep(this.baseWidgetDefinition);\n newWidgetDefinition.id = defaultWidgetIds.DATAPOINTS_GRAPH_NEW;\n newWidgetDefinition.data.settings.noNewWidgets = true;\n\n return [this.baseWidgetDefinition, newWidgetDefinition];\n }\n return [];\n })\n );\n }\n}\n","import { DatapointAttributesFormConfig } from '@c8y/ngx-components/datapoint-selector';\n\nexport const DATAPOINT_SELECT_DEFAULT_OPTIONS: Partial<DatapointAttributesFormConfig> = {\n showRange: true,\n showChart: true\n};\n\nexport const MIN_ACTIVE_COUNT = 1;\n","import { hookPreview, hookWidget } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { DatapointGraphFactory } from './datapoint-graph-widget-factory';\nimport {\n hookWidgetConfig,\n GlobalContextSectionComponent\n} from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { DATAPOINT_SELECT_DEFAULT_OPTIONS, MIN_ACTIVE_COUNT } from './datapoint-graph.constants';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\n\nexport const datapointGraphWidgetproviders = [\n hookWidget(DatapointGraphFactory),\n hookPreview({\n key: 'ui.datapoint-graph.v2',\n label: 'Data graph',\n description: () =>\n import('@c8y/style/markdown-files/datapoint-graph-preview.md').then(m => m.default),\n settings: {\n reload: true\n }\n }),\n /* We need to register the widget config for both the new and old widget IDs. This ensures compatibility for widgets\n created with the new data graph id (e.g. if a data point graph widget was created via community plugins)\n and widgets using the default one (toggled via preview feature)\n */\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH_NEW,\n priority: 90,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.DATAPOINTS_GRAPH_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n }),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n priority: 90,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.DATAPOINTS_GRAPH_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n }),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n label: gettext('Alarm selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/alarm-event-selector').then(m => m.WidgetAlarmSelectorComponent),\n initialState: {\n configStoreMode: 'MIXED'\n },\n priority: 70\n }),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n label: gettext('Event selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/alarm-event-selector').then(m => m.WidgetEventSelectorComponent),\n initialState: {\n configStoreMode: 'MIXED'\n },\n priority: 60\n }),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.DATAPOINTS_GRAPH,\n label: gettext('Data point selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-selector').then(\n m => m.WidgetDatapointsSelectorComponent\n ),\n initialState: {\n minActiveCount: MIN_ACTIVE_COUNT,\n defaultFormOptions: DATAPOINT_SELECT_DEFAULT_OPTIONS,\n useAdvancedChartOptions: true\n },\n expanded: true,\n priority: 80\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ const dataPointsListWidgetDefinition = {
|
|
|
25
25
|
noNewWidgets: false,
|
|
26
26
|
widgetDefaults: {
|
|
27
27
|
_width: 8,
|
|
28
|
-
_height:
|
|
28
|
+
_height: 6
|
|
29
29
|
},
|
|
30
30
|
ng1: {
|
|
31
31
|
options: {
|
|
@@ -52,7 +52,7 @@ const dataPointsListWidgetProviders = [
|
|
|
52
52
|
hookWidget(dataPointsListWidgetDefinition),
|
|
53
53
|
hookWidgetConfig({
|
|
54
54
|
widgetId: defaultWidgetIds.DATA_POINTS_LIST,
|
|
55
|
-
priority:
|
|
55
|
+
priority: 90,
|
|
56
56
|
label: gettext('Time context'),
|
|
57
57
|
initialState: {
|
|
58
58
|
controls: PRESET_NAME.DATA_POINTS_LIST_CONFIG
|
|
@@ -68,7 +68,7 @@ const dataPointsListWidgetProviders = [
|
|
|
68
68
|
defaultFormOptions: DATAPOINT_SELECT_DEFAULT_OPTIONS
|
|
69
69
|
},
|
|
70
70
|
expanded: true,
|
|
71
|
-
priority:
|
|
71
|
+
priority: 80
|
|
72
72
|
})
|
|
73
73
|
];
|
|
74
74
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-widgets-definitions-datapoints-list.mjs","sources":["../../widgets/definitions/datapoints-list/index.ts","../../widgets/definitions/datapoints-list/c8y-ngx-components-widgets-definitions-datapoints-list.ts"],"sourcesContent":["import {\n DynamicComponentErrorStrategy,\n DynamicDatapointsResolver,\n DynamicWidgetDefinition,\n hookWidget\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithTargets,\n importConfigWithTargets\n} from '@c8y/ngx-components/widgets/import-export-config';\n\nexport const dataPointsListWidgetDefinition = {\n id: defaultWidgetIds.DATA_POINTS_LIST,\n label: gettext('Data points list'),\n description: gettext('A list displaying current values for selected measurements'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-list').then(\n m => m.DatapointsListViewComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-list').then(\n m => m.DatapointsListConfigComponent\n ),\n previewImage: 'c8y-style-assets/data-points-list-widget.png',\n resolve: {\n datapoints: DynamicDatapointsResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=DatapointsListConfig!@c8y/ngx-components/widgets/implementations/datapoints-list'\n ),\n export: exportConfigWithTargets,\n import: importConfigWithTargets,\n controls: PRESET_NAME.DATA_POINTS_LIST_CONFIG,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height:
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-widgets-definitions-datapoints-list.mjs","sources":["../../widgets/definitions/datapoints-list/index.ts","../../widgets/definitions/datapoints-list/c8y-ngx-components-widgets-definitions-datapoints-list.ts"],"sourcesContent":["import {\n DynamicComponentErrorStrategy,\n DynamicDatapointsResolver,\n DynamicWidgetDefinition,\n hookWidget\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithTargets,\n importConfigWithTargets\n} from '@c8y/ngx-components/widgets/import-export-config';\n\nexport const dataPointsListWidgetDefinition = {\n id: defaultWidgetIds.DATA_POINTS_LIST,\n label: gettext('Data points list'),\n description: gettext('A list displaying current values for selected measurements'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-list').then(\n m => m.DatapointsListViewComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-list').then(\n m => m.DatapointsListConfigComponent\n ),\n previewImage: 'c8y-style-assets/data-points-list-widget.png',\n resolve: {\n datapoints: DynamicDatapointsResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=DatapointsListConfig!@c8y/ngx-components/widgets/implementations/datapoints-list'\n ),\n export: exportConfigWithTargets,\n import: importConfigWithTargets,\n controls: PRESET_NAME.DATA_POINTS_LIST_CONFIG,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 6\n },\n ng1: {\n options: {\n noDeviceTarget: true,\n minCol: 6\n }\n }\n },\n displaySettings: {\n globalAutoRefreshContext: true,\n globalTimeContext: true,\n globalRealtimeContext: false,\n globalAggregationContext: true\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nconst DATAPOINT_SELECT_DEFAULT_OPTIONS: Partial<\n import('@c8y/ngx-components/datapoint-selector').DatapointAttributesFormConfig\n> = {\n showTarget: true,\n showRange: true,\n showRedRange: true,\n showYellowRange: true\n};\n\nexport const dataPointsListWidgetProviders = [\n hookWidget(dataPointsListWidgetDefinition),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.DATA_POINTS_LIST,\n priority: 90,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.DATA_POINTS_LIST_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n }),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.DATA_POINTS_LIST,\n label: gettext('Data point selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-selector').then(\n m => m.WidgetDatapointsSelectorComponent\n ),\n initialState: {\n minActiveCount: 1,\n defaultFormOptions: DATAPOINT_SELECT_DEFAULT_OPTIONS\n },\n expanded: true,\n priority: 80\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAkBO,MAAM,8BAA8B,GAAG;IAC5C,EAAE,EAAE,gBAAgB,CAAC,gBAAgB;AACrC,IAAA,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC;AAClC,IAAA,WAAW,EAAE,OAAO,CAAC,4DAA4D,CAAC;AAClF,IAAA,aAAa,EAAE,MACb,OAAO,6DAA6D,CAAC,CAAC,IAAI,CACxE,CAAC,IAAI,CAAC,CAAC,2BAA2B,CACnC;AACH,IAAA,mBAAmB,EAAE,MACnB,OAAO,6DAA6D,CAAC,CAAC,IAAI,CACxE,CAAC,IAAI,CAAC,CAAC,6BAA6B,CACrC;AACH,IAAA,YAAY,EAAE,8CAA8C;AAC5D,IAAA,OAAO,EAAE;AACP,QAAA,UAAU,EAAE;AACb,KAAA;IACD,aAAa,EAAE,6BAA6B,CAAC,aAAa;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,kHAAkH,CACnH;AACH,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,MAAM,EAAE,uBAAuB;QAC/B,QAAQ,EAAE,WAAW,CAAC,uBAAuB;AAC7C,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,cAAc,EAAE;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE;AACV,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,IAAI;AACpB,oBAAA,MAAM,EAAE;AACT;AACF;AACF,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,wBAAwB,EAAE,IAAI;AAC9B,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,wBAAwB,EAAE;AAC3B;AACF;;AAGH,MAAM,gCAAgC,GAElC;AACF,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,eAAe,EAAE;CAClB;AAEM,MAAM,6BAA6B,GAAG;IAC3C,UAAU,CAAC,8BAA8B,CAAC;AAC1C,IAAA,gBAAgB,CAAgC;QAC9C,QAAQ,EAAE,gBAAgB,CAAC,gBAAgB;AAC3C,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC;AAC9B,QAAA,YAAY,EAAE;YACZ,QAAQ,EAAE,WAAW,CAAC;AACvB,SAAA;AACD,QAAA,aAAa,EAAE,MACb,OAAO,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,6BAA6B;KAC5F,CAAC;AACF,IAAA,gBAAgB,CAAC;QACf,QAAQ,EAAE,gBAAgB,CAAC,gBAAgB;AAC3C,QAAA,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC;AACtC,QAAA,aAAa,EAAE,MACb,OAAO,wCAAwC,CAAC,CAAC,IAAI,CACnD,CAAC,IAAI,CAAC,CAAC,iCAAiC,CACzC;AACH,QAAA,YAAY,EAAE;AACZ,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,kBAAkB,EAAE;AACrB,SAAA;AACD,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,QAAQ,EAAE;KACX;;;ACnGH;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-widgets-definitions-datapoints-table.mjs","sources":["../../widgets/definitions/datapoints-table/datapoints-table.constants.ts","../../widgets/definitions/datapoints-table/index.ts","../../widgets/definitions/datapoints-table/c8y-ngx-components-widgets-definitions-datapoints-table.ts"],"sourcesContent":["import { DatapointAttributesFormConfig } from '@c8y/ngx-components/datapoint-selector';\n\nexport const DATAPOINT_SELECT_DEFAULT_OPTIONS: Partial<DatapointAttributesFormConfig> = {\n selectableChartLineTypes: [],\n selectableAxisTypes: [],\n showRedRange: true,\n showYellowRange: true\n};\nexport const MIN_ACTIVE_COUNT = 1;\n","import { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicWidgetDefinition,\n DynamicDatapointsResolver,\n DynamicComponentErrorStrategy,\n hookWidget\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithTargets,\n importConfigWithTargets\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { DATAPOINT_SELECT_DEFAULT_OPTIONS, MIN_ACTIVE_COUNT } from './datapoints-table.constants';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\n\nexport const dataPointsTableWidgetDefinition = {\n id: defaultWidgetIds.DATA_POINTS_TABLE,\n label: gettext('Data points table'),\n description: gettext(`A table display of a collection of data points`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-table').then(\n m => m.DatapointsTableViewWidgetComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-table').then(\n m => m.DatapointsTableWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/data-points-table-widget.png',\n resolve: {\n datapoints: DynamicDatapointsResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=DatapointsTableConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/datapoints-table'\n ),\n export: exportConfigWithTargets,\n import: importConfigWithTargets,\n controls: PRESET_NAME.DATA_TABLE_CONFIG,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height:
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-widgets-definitions-datapoints-table.mjs","sources":["../../widgets/definitions/datapoints-table/datapoints-table.constants.ts","../../widgets/definitions/datapoints-table/index.ts","../../widgets/definitions/datapoints-table/c8y-ngx-components-widgets-definitions-datapoints-table.ts"],"sourcesContent":["import { DatapointAttributesFormConfig } from '@c8y/ngx-components/datapoint-selector';\n\nexport const DATAPOINT_SELECT_DEFAULT_OPTIONS: Partial<DatapointAttributesFormConfig> = {\n selectableChartLineTypes: [],\n selectableAxisTypes: [],\n showRedRange: true,\n showYellowRange: true\n};\nexport const MIN_ACTIVE_COUNT = 1;\n","import { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicWidgetDefinition,\n DynamicDatapointsResolver,\n DynamicComponentErrorStrategy,\n hookWidget\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithTargets,\n importConfigWithTargets\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { DATAPOINT_SELECT_DEFAULT_OPTIONS, MIN_ACTIVE_COUNT } from './datapoints-table.constants';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\n\nexport const dataPointsTableWidgetDefinition = {\n id: defaultWidgetIds.DATA_POINTS_TABLE,\n label: gettext('Data points table'),\n description: gettext(`A table display of a collection of data points`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-table').then(\n m => m.DatapointsTableViewWidgetComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/datapoints-table').then(\n m => m.DatapointsTableWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/data-points-table-widget.png',\n resolve: {\n datapoints: DynamicDatapointsResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=DatapointsTableConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/datapoints-table'\n ),\n export: exportConfigWithTargets,\n import: importConfigWithTargets,\n controls: PRESET_NAME.DATA_TABLE_CONFIG,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 6\n },\n ng1: {\n options: {\n noDeviceTarget: true,\n minCol: 6,\n datapointAttributes: ['datapoints']\n }\n }\n },\n displaySettings: {\n globalAutoRefreshContext: true,\n globalTimeContext: true,\n globalRealtimeContext: false,\n globalAggregationContext: true\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const dataPointsTableWidgetProviders = [\n hookWidget(dataPointsTableWidgetDefinition),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.DATA_POINTS_TABLE,\n priority: 10,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.DATA_TABLE_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n }),\n hookWidgetConfig({\n widgetId: defaultWidgetIds.DATA_POINTS_TABLE,\n label: gettext('Data point selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-selector').then(\n m => m.WidgetDatapointsSelectorComponent\n ),\n initialState: {\n minActiveCount: MIN_ACTIVE_COUNT,\n defaultFormOptions: DATAPOINT_SELECT_DEFAULT_OPTIONS\n },\n expanded: true,\n priority: 100\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAEO,MAAM,gCAAgC,GAA2C;AACtF,IAAA,wBAAwB,EAAE,EAAE;AAC5B,IAAA,mBAAmB,EAAE,EAAE;AACvB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,eAAe,EAAE;CAClB;AACM,MAAM,gBAAgB,GAAG,CAAC;;ACW1B,MAAM,+BAA+B,GAAG;IAC7C,EAAE,EAAE,gBAAgB,CAAC,iBAAiB;AACtC,IAAA,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC;AACnC,IAAA,WAAW,EAAE,OAAO,CAAC,CAAA,8CAAA,CAAgD,CAAC;AACtE,IAAA,aAAa,EAAE,MACb,OAAO,8DAA8D,CAAC,CAAC,IAAI,CACzE,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAC1C;AACH,IAAA,mBAAmB,EAAE,MACnB,OAAO,8DAA8D,CAAC,CAAC,IAAI,CACzE,CAAC,IAAI,CAAC,CAAC,oCAAoC,CAC5C;AACH,IAAA,YAAY,EAAE,+CAA+C;AAC7D,IAAA,OAAO,EAAE;AACP,QAAA,UAAU,EAAE;AACb,KAAA;IACD,aAAa,EAAE,6BAA6B,CAAC,aAAa;AAC1D,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MACN,OACE,uIAAuI,CACxI;AACH,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,MAAM,EAAE,uBAAuB;QAC/B,QAAQ,EAAE,WAAW,CAAC,iBAAiB;AACvC,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,cAAc,EAAE;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE;AACV,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,IAAI;AACpB,oBAAA,MAAM,EAAE,CAAC;oBACT,mBAAmB,EAAE,CAAC,YAAY;AACnC;AACF;AACF,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,wBAAwB,EAAE,IAAI;AAC9B,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,qBAAqB,EAAE,KAAK;AAC5B,YAAA,wBAAwB,EAAE;AAC3B;AACF;;AAGI,MAAM,8BAA8B,GAAG;IAC5C,UAAU,CAAC,+BAA+B,CAAC;AAC3C,IAAA,gBAAgB,CAAgC;QAC9C,QAAQ,EAAE,gBAAgB,CAAC,iBAAiB;AAC5C,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC;AAC9B,QAAA,YAAY,EAAE;YACZ,QAAQ,EAAE,WAAW,CAAC;AACvB,SAAA;AACD,QAAA,aAAa,EAAE,MACb,OAAO,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,6BAA6B;KAC5F,CAAC;AACF,IAAA,gBAAgB,CAAC;QACf,QAAQ,EAAE,gBAAgB,CAAC,iBAAiB;AAC5C,QAAA,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC;AACtC,QAAA,aAAa,EAAE,MACb,OAAO,wCAAwC,CAAC,CAAC,IAAI,CACnD,CAAC,IAAI,CAAC,CAAC,iCAAiC,CACzC;AACH,QAAA,YAAY,EAAE;AACZ,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,kBAAkB,EAAE;AACrB,SAAA;AACD,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,QAAQ,EAAE;KACX;;;AC5FH;;AAEG;;;;"}
|
|
@@ -111,7 +111,7 @@ const eventListWidgetDefinition = {
|
|
|
111
111
|
noNewWidgets: false,
|
|
112
112
|
widgetDefaults: {
|
|
113
113
|
_width: 8,
|
|
114
|
-
_height:
|
|
114
|
+
_height: 6
|
|
115
115
|
},
|
|
116
116
|
ng1: {
|
|
117
117
|
options: {
|
|
@@ -131,7 +131,7 @@ const eventListWidgetProviders = [
|
|
|
131
131
|
hookWidget(eventListWidgetDefinition),
|
|
132
132
|
hookWidgetConfig({
|
|
133
133
|
widgetId: defaultWidgetIds.EVENT_LIST,
|
|
134
|
-
priority:
|
|
134
|
+
priority: 90,
|
|
135
135
|
label: gettext('Time context'),
|
|
136
136
|
initialState: {
|
|
137
137
|
widgetControls: eventListWidgetControls
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-widgets-definitions-event-list.mjs","sources":["../../widgets/definitions/event-list/event-list-widget-controls-definition.ts","../../widgets/definitions/event-list/index.ts","../../widgets/definitions/event-list/c8y-ngx-components-widgets-definitions-event-list.ts"],"sourcesContent":["import { defineWidgetControls } from '@c8y/ngx-components/global-context';\n\nexport const eventListWidgetControls = defineWidgetControls({\n name: 'event-list-widget',\n supports: ['timeRange', 'liveRefresh', 'displayMode', 'refreshInterval', 'refreshOption'],\n settings: {\n dashboard: {\n live: {\n inline: {\n showAutoRefresh: true,\n showTimeContext: true,\n showRefreshInterval: true\n }\n },\n history: {\n inline: {\n showTimeContext: true\n }\n }\n },\n config: {\n live: {\n inline: {\n showAutoRefresh: true,\n showTimeContext: false,\n showAggregation: false\n },\n configuration: {\n showTimeContext: true,\n showAutoRefresh: true,\n showAggregation: false\n }\n },\n history: {\n inline: {\n showRefresh: true,\n showTimeContext: false,\n showAggregation: false\n },\n configuration: {\n showAutoRefresh: false,\n showRefreshInterval: false,\n showTimeContext: true,\n showAggregation: false\n }\n }\n },\n viewAndConfig: {\n live: {\n inline: {\n showAutoRefresh: true,\n showRefreshInterval: true,\n showTimeContext: true,\n showAggregation: false\n },\n configuration: {\n showAutoRefresh: true,\n showRefreshInterval: true,\n showTimeContext: true,\n showAggregation: false\n }\n },\n history: {\n inline: {\n showTimeContext: true,\n showAggregation: false\n },\n configuration: {\n showTimeContext: true,\n showAggregation: false\n }\n }\n },\n defaultLinks: {\n config: {},\n dashboard: {\n live: {\n dateTimeContext: true,\n isAutoRefreshEnabled: true\n },\n history: {\n dateTimeContext: true\n }\n },\n viewAndConfig: {}\n }\n }\n});\n","import { gettext } from '@c8y/ngx-components/gettext';\nimport {\n type DynamicWidgetDefinition,\n DynamicComponentErrorStrategy,\n DynamicManagedObjectResolver,\n hookWidget\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithDevice,\n importConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { eventListWidgetControls } from './event-list-widget-controls-definition';\n\nexport const eventListWidgetDefinition = {\n id: defaultWidgetIds.EVENT_LIST,\n label: gettext('Event list'),\n description: gettext('Displays a list of events filtered by object, type and date'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/events').then(\n m => m.EventListWidgetComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/events').then(\n m => m.EventListWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/event-list-widget.png',\n resolve: {\n device: DynamicManagedObjectResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=EventListWidgetConfig!@c8y/ngx-components/widgets/implementations/events'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height:
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-widgets-definitions-event-list.mjs","sources":["../../widgets/definitions/event-list/event-list-widget-controls-definition.ts","../../widgets/definitions/event-list/index.ts","../../widgets/definitions/event-list/c8y-ngx-components-widgets-definitions-event-list.ts"],"sourcesContent":["import { defineWidgetControls } from '@c8y/ngx-components/global-context';\n\nexport const eventListWidgetControls = defineWidgetControls({\n name: 'event-list-widget',\n supports: ['timeRange', 'liveRefresh', 'displayMode', 'refreshInterval', 'refreshOption'],\n settings: {\n dashboard: {\n live: {\n inline: {\n showAutoRefresh: true,\n showTimeContext: true,\n showRefreshInterval: true\n }\n },\n history: {\n inline: {\n showTimeContext: true\n }\n }\n },\n config: {\n live: {\n inline: {\n showAutoRefresh: true,\n showTimeContext: false,\n showAggregation: false\n },\n configuration: {\n showTimeContext: true,\n showAutoRefresh: true,\n showAggregation: false\n }\n },\n history: {\n inline: {\n showRefresh: true,\n showTimeContext: false,\n showAggregation: false\n },\n configuration: {\n showAutoRefresh: false,\n showRefreshInterval: false,\n showTimeContext: true,\n showAggregation: false\n }\n }\n },\n viewAndConfig: {\n live: {\n inline: {\n showAutoRefresh: true,\n showRefreshInterval: true,\n showTimeContext: true,\n showAggregation: false\n },\n configuration: {\n showAutoRefresh: true,\n showRefreshInterval: true,\n showTimeContext: true,\n showAggregation: false\n }\n },\n history: {\n inline: {\n showTimeContext: true,\n showAggregation: false\n },\n configuration: {\n showTimeContext: true,\n showAggregation: false\n }\n }\n },\n defaultLinks: {\n config: {},\n dashboard: {\n live: {\n dateTimeContext: true,\n isAutoRefreshEnabled: true\n },\n history: {\n dateTimeContext: true\n }\n },\n viewAndConfig: {}\n }\n }\n});\n","import { gettext } from '@c8y/ngx-components/gettext';\nimport {\n type DynamicWidgetDefinition,\n DynamicComponentErrorStrategy,\n DynamicManagedObjectResolver,\n hookWidget\n} from '@c8y/ngx-components';\nimport {\n GlobalContextSectionComponent,\n hookWidgetConfig\n} from '@c8y/ngx-components/context-dashboard';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithDevice,\n importConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\nimport { eventListWidgetControls } from './event-list-widget-controls-definition';\n\nexport const eventListWidgetDefinition = {\n id: defaultWidgetIds.EVENT_LIST,\n label: gettext('Event list'),\n description: gettext('Displays a list of events filtered by object, type and date'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/events').then(\n m => m.EventListWidgetComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/events').then(\n m => m.EventListWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/event-list-widget.png',\n resolve: {\n device: DynamicManagedObjectResolver\n },\n errorStrategy: DynamicComponentErrorStrategy.OVERLAY_ERROR,\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=EventListWidgetConfig!@c8y/ngx-components/widgets/implementations/events'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 6\n },\n ng1: {\n options: {\n noDeviceTarget: false,\n groupsSelectable: true,\n deviceTargetNotRequired: true\n }\n }\n },\n displaySettings: {\n globalTimeContext: true,\n globalAutoRefreshContext: true\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const eventListWidgetProviders = [\n hookWidget(eventListWidgetDefinition),\n hookWidgetConfig<GlobalContextSectionComponent>({\n widgetId: defaultWidgetIds.EVENT_LIST,\n priority: 90,\n label: gettext('Time context'),\n initialState: {\n widgetControls: eventListWidgetControls\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-widgets-definitions-html-widget.mjs","sources":["../../widgets/definitions/html-widget/html-widget-config.factory.ts","../../widgets/definitions/html-widget/html-widget.factory.ts","../../widgets/definitions/html-widget/index.ts","../../widgets/definitions/html-widget/c8y-ngx-components-widgets-definitions-html-widget.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { ExtensionFactory, PreviewService } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport type {\n AssetPropertyMapping,\n WidgetConfigSectionDefinition\n} from '@c8y/ngx-components/context-dashboard';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\nimport { quoteAndEscape } from '@c8y/ngx-components/context-dashboard';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HtmlWidgetConfigFactory implements ExtensionFactory<WidgetConfigSectionDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly baseWidgetConfigDefinition: WidgetConfigSectionDefinition[] = [\n {\n widgetId: defaultWidgetIds.HTML,\n providers: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(m => [\n m.HtmlWidgetConfigService\n ]),\n label: gettext('Asset selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.WidgetAssetSelectorComponent),\n priority: 100,\n initialState: {\n isRequired: false,\n groupsSelectable: true\n }\n },\n {\n widgetId: defaultWidgetIds.HTML,\n label: gettext('Asset properties'),\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.AssetPropertyMappingsComponent),\n priority: 70,\n initialState: {\n widgetConfigPath: ['properties'],\n initialMappings: {\n lastUpdated: {\n label: 'Last updated',\n assetProperty: {\n c8y_JsonSchema: {\n properties: {\n lastUpdated: {\n type: 'string',\n label: 'Last updated'\n }\n }\n },\n name: 'lastUpdated',\n label: 'Last updated',\n type: 'string',\n isEditable: false,\n isStandardProperty: true,\n active: true\n }\n },\n lastDeviceMessage: {\n label: 'Last device message',\n assetProperty: {\n c8y_JsonSchema: {\n properties: {\n lastDeviceMessage: {\n label: 'Last device message',\n type: 'string'\n }\n }\n },\n name: 'lastDeviceMessage',\n label: 'Last device message',\n printFormat: 'datetime',\n type: 'string',\n computed: true,\n isEditable: false,\n isStandardProperty: true,\n active: true\n }\n }\n },\n allowAddingNewMappings: true,\n allowRenamingMappings: true,\n allowRelabellingMappings: false,\n allowEditingMappings: true,\n allowRemovingMappings: true,\n showLabels: false,\n showNames: true,\n showAssets: true,\n showValues: true,\n onBeforeCopyMappingToClipboard: (mapping: AssetPropertyMapping) => {\n const nonAlphanumericRegex = /[^a-zA-Z0-9]/;\n const name = String(mapping.name);\n const nameQuotedEscaped = quoteAndEscape(name);\n const key = nonAlphanumericRegex.test(name) ? `[${nameQuotedEscaped}]` : name;\n return '${this.c8yProperties?.' + key + '}';\n }\n }\n },\n {\n widgetId: defaultWidgetIds.HTML,\n priority: 40,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.AUTO_REFRESH_ONLY_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n },\n {\n widgetId: defaultWidgetIds.HTML,\n providers: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(m => [\n m.HtmlWidgetConfigService\n ]),\n label: gettext('Settings'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlWidgetConfigComponent\n ),\n priority: 0,\n expanded: true\n }\n ];\n\n get(): Observable<WidgetConfigSectionDefinition[]> {\n return this.betaPreviewService.getState$('ui.html-widget.v2').pipe(\n map(state => {\n if (state) {\n return this.baseWidgetConfigDefinition;\n }\n return [];\n })\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicComponentDefinition,\n DynamicManagedObjectResolver,\n DynamicWidgetDefinition,\n ExtensionFactory,\n PreviewService,\n WIDGET_CONFIGURATION_GRID_SIZE\n} from '@c8y/ngx-components';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithDevice,\n importConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HtmlWidgetFactory implements ExtensionFactory<DynamicComponentDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly baseWidgetDefinition: DynamicComponentDefinition = {\n id: defaultWidgetIds.HTML,\n label: gettext('HTML'),\n description: gettext(`Display custom HTML code.`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlWidgetComponent\n ),\n previewImage: 'c8y-style-assets/html-widget-pr.png',\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=HtmlWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/html-widget'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n settings: {\n noNewWidgets: false,\n configurationViewGridSize: WIDGET_CONFIGURATION_GRID_SIZE.HALF,\n widgetDefaults: {\n _width: 8,\n _height: 4\n }\n }\n },\n resolve: {\n device: DynamicManagedObjectResolver\n }\n };\n\n get(): Observable<DynamicWidgetDefinition[]> {\n return this.betaPreviewService.getState$('ui.html-widget.v2').pipe(\n map(state => {\n if (state) {\n return [this.baseWidgetDefinition];\n }\n return [];\n })\n );\n }\n}\n","import { hookPreview, hookWidget } from '@c8y/ngx-components';\nimport { hookWidgetConfig } from '@c8y/ngx-components/context-dashboard';\nimport { HtmlWidgetConfigFactory } from './html-widget-config.factory';\nimport { HtmlWidgetFactory } from './html-widget.factory';\n\nexport const htmlWidgetProviders = [\n hookWidget(HtmlWidgetFactory),\n hookWidgetConfig(HtmlWidgetConfigFactory),\n hookPreview({\n key: 'ui.html-widget.v2',\n label: 'Improved HTML widget',\n description: () =>\n import('@c8y/style/markdown-files/html-widget-preview.md').then(m => m.default),\n settings: {\n reload: true\n }\n })\n];\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-definitions-html-widget.mjs","sources":["../../widgets/definitions/html-widget/html-widget-config.factory.ts","../../widgets/definitions/html-widget/html-widget.factory.ts","../../widgets/definitions/html-widget/index.ts","../../widgets/definitions/html-widget/c8y-ngx-components-widgets-definitions-html-widget.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { ExtensionFactory, PreviewService } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport type {\n AssetPropertyMapping,\n WidgetConfigSectionDefinition\n} from '@c8y/ngx-components/context-dashboard';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport { PRESET_NAME } from '@c8y/ngx-components/global-context';\nimport { quoteAndEscape } from '@c8y/ngx-components/context-dashboard';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HtmlWidgetConfigFactory implements ExtensionFactory<WidgetConfigSectionDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly baseWidgetConfigDefinition: WidgetConfigSectionDefinition[] = [\n {\n widgetId: defaultWidgetIds.HTML,\n providers: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(m => [\n m.HtmlWidgetConfigService\n ]),\n label: gettext('Asset selection'),\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.WidgetAssetSelectorComponent),\n priority: 100,\n initialState: {\n isRequired: false,\n groupsSelectable: true\n }\n },\n {\n widgetId: defaultWidgetIds.HTML,\n label: gettext('Asset properties'),\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.AssetPropertyMappingsComponent),\n priority: 70,\n initialState: {\n widgetConfigPath: ['properties'],\n initialMappings: {\n lastUpdated: {\n label: 'Last updated',\n assetProperty: {\n c8y_JsonSchema: {\n properties: {\n lastUpdated: {\n type: 'string',\n label: 'Last updated'\n }\n }\n },\n name: 'lastUpdated',\n label: 'Last updated',\n type: 'string',\n isEditable: false,\n isStandardProperty: true,\n active: true\n }\n },\n lastDeviceMessage: {\n label: 'Last device message',\n assetProperty: {\n c8y_JsonSchema: {\n properties: {\n lastDeviceMessage: {\n label: 'Last device message',\n type: 'string'\n }\n }\n },\n name: 'lastDeviceMessage',\n label: 'Last device message',\n printFormat: 'datetime',\n type: 'string',\n computed: true,\n isEditable: false,\n isStandardProperty: true,\n active: true\n }\n }\n },\n allowAddingNewMappings: true,\n allowRenamingMappings: true,\n allowRelabellingMappings: false,\n allowEditingMappings: true,\n allowRemovingMappings: true,\n showLabels: false,\n showNames: true,\n showAssets: true,\n showValues: true,\n onBeforeCopyMappingToClipboard: (mapping: AssetPropertyMapping) => {\n const nonAlphanumericRegex = /[^a-zA-Z0-9]/;\n const name = String(mapping.name);\n const nameQuotedEscaped = quoteAndEscape(name);\n const key = nonAlphanumericRegex.test(name) ? `[${nameQuotedEscaped}]` : name;\n return '${this.c8yProperties?.' + key + '}';\n }\n }\n },\n {\n widgetId: defaultWidgetIds.HTML,\n priority: 40,\n label: gettext('Time context'),\n initialState: {\n controls: PRESET_NAME.AUTO_REFRESH_ONLY_CONFIG\n },\n loadComponent: () =>\n import('@c8y/ngx-components/context-dashboard').then(m => m.GlobalContextSectionComponent)\n },\n {\n widgetId: defaultWidgetIds.HTML,\n providers: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(m => [\n m.HtmlWidgetConfigService\n ]),\n label: gettext('Settings'),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlWidgetConfigComponent\n ),\n priority: 0,\n expanded: true\n }\n ];\n\n get(): Observable<WidgetConfigSectionDefinition[]> {\n return this.betaPreviewService.getState$('ui.html-widget.v2').pipe(\n map(state => {\n if (state) {\n return this.baseWidgetConfigDefinition;\n }\n return [];\n })\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n DynamicComponentDefinition,\n DynamicManagedObjectResolver,\n DynamicWidgetDefinition,\n ExtensionFactory,\n PreviewService,\n WIDGET_CONFIGURATION_GRID_SIZE\n} from '@c8y/ngx-components';\nimport { map, Observable } from 'rxjs';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n exportConfigWithDevice,\n importConfigWithDevice\n} from '@c8y/ngx-components/widgets/import-export-config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HtmlWidgetFactory implements ExtensionFactory<DynamicComponentDefinition> {\n private readonly betaPreviewService = inject(PreviewService);\n private readonly baseWidgetDefinition: DynamicComponentDefinition = {\n id: defaultWidgetIds.HTML,\n label: gettext('HTML'),\n description: gettext(`Display custom HTML code.`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/html-widget').then(\n m => m.HtmlWidgetComponent\n ),\n previewImage: 'c8y-style-assets/html-widget-pr.png',\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=HtmlWidgetConfig&type=widget-config!@c8y/ngx-components/widgets/implementations/html-widget'\n ),\n export: exportConfigWithDevice,\n import: importConfigWithDevice,\n settings: {\n noNewWidgets: false,\n configurationViewGridSize: WIDGET_CONFIGURATION_GRID_SIZE.HALF,\n widgetDefaults: {\n _width: 8,\n _height: 6\n }\n }\n },\n resolve: {\n device: DynamicManagedObjectResolver\n }\n };\n\n get(): Observable<DynamicWidgetDefinition[]> {\n return this.betaPreviewService.getState$('ui.html-widget.v2').pipe(\n map(state => {\n if (state) {\n return [this.baseWidgetDefinition];\n }\n return [];\n })\n );\n }\n}\n","import { hookPreview, hookWidget } from '@c8y/ngx-components';\nimport { hookWidgetConfig } from '@c8y/ngx-components/context-dashboard';\nimport { HtmlWidgetConfigFactory } from './html-widget-config.factory';\nimport { HtmlWidgetFactory } from './html-widget.factory';\n\nexport const htmlWidgetProviders = [\n hookWidget(HtmlWidgetFactory),\n hookWidgetConfig(HtmlWidgetConfigFactory),\n hookPreview({\n key: 'ui.html-widget.v2',\n label: 'Improved HTML widget',\n description: () =>\n import('@c8y/style/markdown-files/html-widget-preview.md').then(m => m.default),\n settings: {\n reload: true\n }\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|