@c8y/ngx-components 1017.0.8 → 1017.0.9
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/esm2020/actility-device-registration/actility-device-registration.component.mjs +3 -3
- package/esm2020/context-dashboard/context-dashboard.component.mjs +3 -3
- package/esm2020/context-dashboard/dashboard-detail.component.mjs +3 -3
- package/esm2020/context-dashboard/device-info-dashboard/device-info-dashboard.component.mjs +43 -51
- package/esm2020/context-dashboard/widget-preview.component.mjs +3 -3
- package/esm2020/core/authentication/sms-challenge.component.mjs +3 -3
- package/esm2020/core/authentication/totp-challenge.component.mjs +3 -3
- package/esm2020/core/breadcrumb/breadcrumb-outlet.component.mjs +3 -3
- package/esm2020/core/dashboard/dashboard-child.component.mjs +3 -3
- package/esm2020/core/dashboard/widget-time-context.component.mjs +3 -3
- package/esm2020/core/data-grid/data-grid.component.mjs +3 -3
- package/esm2020/core/date-picker/date-picker.component.mjs +3 -3
- package/esm2020/core/drop-area/drop-area.component.mjs +3 -3
- package/esm2020/core/file-picker/file-picker.component.mjs +3 -3
- package/esm2020/core/header/application/app-switcher.component.mjs +3 -3
- package/esm2020/core/login/credentials.component.mjs +3 -3
- package/esm2020/core/login/login.component.mjs +3 -3
- package/esm2020/core/modal/modal.component.mjs +3 -3
- package/esm2020/core/select/typeahead.component.mjs +3 -3
- package/esm2020/device-grid/columns/alarms.cell-renderer.component.mjs +3 -3
- package/esm2020/loriot-device-registration/loriot-device-registration-button.component.mjs +3 -1
- package/esm2020/loriot-device-registration/loriot-device-registration.component.mjs +3 -3
- package/esm2020/operations/bulk-operations-list/bulk-operations-list.component.mjs +3 -3
- package/esm2020/operations/operations-list/operations-list-item.component.mjs +3 -3
- package/esm2020/operations/operations-list/operations-list.component.mjs +3 -3
- package/esm2020/register-device/bulk/bulk-device-registration-modal.component.mjs +3 -3
- package/esm2020/register-device/extensible/bulk/extensible-bulk-device-registration-modal.component.mjs +3 -3
- package/esm2020/register-device/extensible/single/extensible-device-registration-modal.component.mjs +3 -3
- package/esm2020/register-device/general/general-device-registration.component.mjs +3 -3
- package/esm2020/repository/software/device-tab/device-software-list.component.mjs +3 -3
- package/esm2020/repository/software/device-tab/installed-software.component.mjs +3 -3
- package/esm2020/repository/software/list/add-software-modal.component.mjs +3 -3
- package/esm2020/sigfox-device-registration/sigfox-device-registration.component.mjs +3 -3
- package/fesm2015/c8y-ngx-components-actility-device-registration.mjs +2 -2
- package/fesm2015/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs +48 -56
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-device-grid.mjs +2 -2
- package/fesm2015/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-loriot-device-registration.mjs +4 -2
- package/fesm2015/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-operations-bulk-operations-list.mjs +2 -2
- package/fesm2015/c8y-ngx-components-operations-bulk-operations-list.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-operations-operations-list.mjs +4 -4
- package/fesm2015/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-register-device.mjs +8 -8
- package/fesm2015/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-repository-software.mjs +6 -6
- package/fesm2015/c8y-ngx-components-repository-software.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-sigfox-device-registration.mjs +2 -2
- package/fesm2015/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +28 -28
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-actility-device-registration.mjs +2 -2
- package/fesm2020/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs +48 -56
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-device-grid.mjs +2 -2
- package/fesm2020/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-loriot-device-registration.mjs +4 -2
- package/fesm2020/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-operations-bulk-operations-list.mjs +2 -2
- package/fesm2020/c8y-ngx-components-operations-bulk-operations-list.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-operations-operations-list.mjs +4 -4
- package/fesm2020/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-register-device.mjs +8 -8
- package/fesm2020/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-repository-software.mjs +6 -6
- package/fesm2020/c8y-ngx-components-repository-software.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-sigfox-device-registration.mjs +2 -2
- package/fesm2020/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +28 -28
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/locales/locales.pot +6 -9
- package/package.json +2 -2
|
@@ -648,10 +648,10 @@ class WidgetPreviewComponent {
|
|
|
648
648
|
}
|
|
649
649
|
}
|
|
650
650
|
WidgetPreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WidgetPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
651
|
-
WidgetPreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WidgetPreviewComponent, selector: "c8y-widget-preview", inputs: { previewClasses: "previewClasses", tab: "tab" }, ngImport: i0, template: "<div class=\"legend form-block\" translate>Preview</div>\n<label *ngIf=\"tab\" translate>Tab and layout</label>\n<label *ngIf=\"!tab\" translate>Layout</label>\n<div class=\"dashboard-preview-slot\" [ngClass]=\"previewClasses\">\n <div\n class=\"page-tabs page-tabs-horizontal navigator-open p-absolute overflow-hidden\"\n style=\"left: 0; margin: 0 15px\"\n *ngIf=\"tab\"\n >\n <div class=\"tabContainer hidden-xs\">\n <ul role=\"menu\" class=\"nav nav-tabs nav-tabsc8y\">\n <li role=\"menuitem\" class=\"active\" style=\"left: 16px\">\n <a routerlinkactive=\"\" title=\"{{ tab.name }}\">\n <i class=\"text-primary\" [c8yIcon]=\"tab.icon\"></i>\n <span class=\"txt\">{{ tab.name }}</span>\n </a>\n </li>\n </ul>\n </div>\n <div class=\"visible-xs mobile-tabs\"></div>\n </div>\n <div [ngClass]=\"{ 'm-t-64': !!tab }\">\n <div class=\"card card-dashboard\" style=\"height: 360px\">\n <div class=\"card-header-actions\" style=\"z-index: 8\">\n <div class=\"card-title\">\n <span translate>Widget title</span>\n </div>\n <div class=\"header-actions\">\n <div class=\"optionsBtn dropdown\">\n <button\n type=\"button\"\n title=\"{{ 'Settings' | translate }}\"\n (click)=\"(false)\"\n class=\"btn btn-dot dropdown-toggle c8y-dropdown\"\n >\n <i c8yIcon=\"cog\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll p-t-16\">\n <p translate>Widget example content.</p>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] });
|
|
651
|
+
WidgetPreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WidgetPreviewComponent, selector: "c8y-widget-preview", inputs: { previewClasses: "previewClasses", tab: "tab" }, ngImport: i0, template: "<div class=\"legend form-block\" translate>Preview</div>\n<label *ngIf=\"tab\" translate>Tab and layout</label>\n<label *ngIf=\"!tab\" translate>Layout</label>\n<div class=\"dashboard-preview-slot\" [ngClass]=\"previewClasses\">\n <div\n class=\"page-tabs page-tabs-horizontal navigator-open p-absolute overflow-hidden\"\n style=\"left: 0; margin: 0 15px\"\n *ngIf=\"tab\"\n >\n <div class=\"tabContainer hidden-xs\">\n <ul role=\"menu\" class=\"nav nav-tabs nav-tabsc8y\">\n <li role=\"menuitem\" class=\"active\" style=\"left: 16px\">\n <a routerlinkactive=\"\" title=\"{{ tab.name }}\">\n <i class=\"text-primary\" [c8yIcon]=\"tab.icon\"></i>\n <span class=\"txt\">{{ tab.name }}</span>\n </a>\n </li>\n </ul>\n </div>\n <div class=\"visible-xs mobile-tabs\"></div>\n </div>\n <div [ngClass]=\"{ 'm-t-64': !!tab }\">\n <div class=\"card card-dashboard\" style=\"height: 360px\">\n <div class=\"card-header-actions\" style=\"z-index: 8\">\n <div class=\"card-title\">\n <span translate>Widget title</span>\n </div>\n <div class=\"header-actions\">\n <div class=\"optionsBtn dropdown\">\n <button\n type=\"button\"\n title=\"{{ 'Settings' | translate }}\"\n (click)=\"(false)\"\n class=\"btn btn-dot dropdown-toggle c8y-dropdown\"\n aria-haspopup=\"true\"\n >\n <i c8yIcon=\"cog\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll p-t-16\">\n <p translate>Widget example content.</p>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] });
|
|
652
652
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WidgetPreviewComponent, decorators: [{
|
|
653
653
|
type: Component,
|
|
654
|
-
args: [{ selector: 'c8y-widget-preview', template: "<div class=\"legend form-block\" translate>Preview</div>\n<label *ngIf=\"tab\" translate>Tab and layout</label>\n<label *ngIf=\"!tab\" translate>Layout</label>\n<div class=\"dashboard-preview-slot\" [ngClass]=\"previewClasses\">\n <div\n class=\"page-tabs page-tabs-horizontal navigator-open p-absolute overflow-hidden\"\n style=\"left: 0; margin: 0 15px\"\n *ngIf=\"tab\"\n >\n <div class=\"tabContainer hidden-xs\">\n <ul role=\"menu\" class=\"nav nav-tabs nav-tabsc8y\">\n <li role=\"menuitem\" class=\"active\" style=\"left: 16px\">\n <a routerlinkactive=\"\" title=\"{{ tab.name }}\">\n <i class=\"text-primary\" [c8yIcon]=\"tab.icon\"></i>\n <span class=\"txt\">{{ tab.name }}</span>\n </a>\n </li>\n </ul>\n </div>\n <div class=\"visible-xs mobile-tabs\"></div>\n </div>\n <div [ngClass]=\"{ 'm-t-64': !!tab }\">\n <div class=\"card card-dashboard\" style=\"height: 360px\">\n <div class=\"card-header-actions\" style=\"z-index: 8\">\n <div class=\"card-title\">\n <span translate>Widget title</span>\n </div>\n <div class=\"header-actions\">\n <div class=\"optionsBtn dropdown\">\n <button\n type=\"button\"\n title=\"{{ 'Settings' | translate }}\"\n (click)=\"(false)\"\n class=\"btn btn-dot dropdown-toggle c8y-dropdown\"\n >\n <i c8yIcon=\"cog\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll p-t-16\">\n <p translate>Widget example content.</p>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
654
|
+
args: [{ selector: 'c8y-widget-preview', template: "<div class=\"legend form-block\" translate>Preview</div>\n<label *ngIf=\"tab\" translate>Tab and layout</label>\n<label *ngIf=\"!tab\" translate>Layout</label>\n<div class=\"dashboard-preview-slot\" [ngClass]=\"previewClasses\">\n <div\n class=\"page-tabs page-tabs-horizontal navigator-open p-absolute overflow-hidden\"\n style=\"left: 0; margin: 0 15px\"\n *ngIf=\"tab\"\n >\n <div class=\"tabContainer hidden-xs\">\n <ul role=\"menu\" class=\"nav nav-tabs nav-tabsc8y\">\n <li role=\"menuitem\" class=\"active\" style=\"left: 16px\">\n <a routerlinkactive=\"\" title=\"{{ tab.name }}\">\n <i class=\"text-primary\" [c8yIcon]=\"tab.icon\"></i>\n <span class=\"txt\">{{ tab.name }}</span>\n </a>\n </li>\n </ul>\n </div>\n <div class=\"visible-xs mobile-tabs\"></div>\n </div>\n <div [ngClass]=\"{ 'm-t-64': !!tab }\">\n <div class=\"card card-dashboard\" style=\"height: 360px\">\n <div class=\"card-header-actions\" style=\"z-index: 8\">\n <div class=\"card-title\">\n <span translate>Widget title</span>\n </div>\n <div class=\"header-actions\">\n <div class=\"optionsBtn dropdown\">\n <button\n type=\"button\"\n title=\"{{ 'Settings' | translate }}\"\n (click)=\"(false)\"\n class=\"btn btn-dot dropdown-toggle c8y-dropdown\"\n aria-haspopup=\"true\"\n >\n <i c8yIcon=\"cog\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll p-t-16\">\n <p translate>Widget example content.</p>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
655
655
|
}], propDecorators: { previewClasses: [{
|
|
656
656
|
type: Input
|
|
657
657
|
}], tab: [{
|
|
@@ -835,10 +835,10 @@ class DashboardDetailComponent {
|
|
|
835
835
|
}
|
|
836
836
|
}
|
|
837
837
|
DashboardDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DashboardDetailComponent, deps: [{ token: i3$1.BsModalRef }, { token: ICON_LIST }, { token: ContextDashboardService }, { token: i2.NavigatorService }, { token: i2.Permissions }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
838
|
-
DashboardDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DashboardDetailComponent, selector: "c8y-dashboard-detail", viewQueries: [{ propertyName: "dashboardDetailForm", first: true, predicate: ["dashboardDetailForm"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header separator-bottom\">\n <h3 id=\"modal-title\">{{ titleAction | translate }} {{ titleName | translate }}</h3>\n </div>\n\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"p-l-24 p-r-24\">\n <form #dashboardDetailForm=\"ngForm\" class=\"d-contents\">\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <div *ngIf=\"!isNamedDashboard || isReport\">\n <div class=\"legend form-block\">\n <span>{{ 'General' | translate }}</span>\n </div>\n <div class=\"d-flex\">\n <c8y-form-group class=\"m-r-16\">\n <label class=\"d-block\">{{ 'Icon' | translate }}</label>\n <div dropdown class=\"dropdown\">\n <button\n title=\"{{ 'Icon' | translate }}\"\n type=\"button\"\n class=\"btn-default btn btn-gray\"\n dropdownToggle\n >\n <i c8yIcon=\"{{ dashboard.icon }}\"></i>\n <span class=\"caret\"></span>\n </button>\n <ul\n *dropdownMenu\n class=\"dropdown-menu modal-inner-scroll dropdown-menu-grid-4 m-l-0\"\n style=\"max-height: 250px\"\n >\n <ng-container *ngFor=\"let icon of filteredIcons\">\n <li (click)=\"selectIcon(icon)\">\n <a\n class=\"interact\"\n title=\"{{ icon }}\"\n [ngClass]=\"{ active: dashboard.icon === icon }\"\n >\n <i class=\"icon\" [c8yIcon]=\"icon\"></i>\n </a>\n </li>\n </ng-container>\n </ul>\n </div>\n </c8y-form-group>\n <c8y-form-group class=\"flex-grow\">\n <label>\n <span class=\"m-r-4\" id=\"menuLabel\">{{ 'Menu label' | translate }}</span>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n type=\"button\"\n popover=\"{{\n 'Menu label to display in submenu when dashboard is attached' | translate\n }}\"\n triggers=\"focus\"\n placement=\"right\"\n container=\"body\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n <input\n id=\"menuLabel\"\n type=\"text\"\n class=\"form-control\"\n name=\"name\"\n [(ngModel)]=\"dashboardName\"\n placeholder=\"{{ namePlaceholder | translate }}\"\n maxlength=\"512\"\n required\n />\n </c8y-form-group>\n </div>\n <c8y-form-group *ngIf=\"isReport\">\n <label id=\"description\">{{ 'Description ' | translate }}</label>\n <textarea\n aria-labelledby=\"description\"\n class=\"form-control\"\n rows=\"2\"\n name=\"description\"\n [(ngModel)]=\"dashboard.description\"\n ></textarea>\n </c8y-form-group>\n <div class=\"row\">\n <div class=\"col-sm-6\" *ngIf=\"!isReport\">\n <c8y-form-group>\n <label for=\"positionNav\">\n <span class=\"m-r-4\" id=\"positionNav\">\n {{ 'Position in navigation' | translate }}\n </span>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n type=\"button\"\n popover=\"{{\n 'Position in navigation menu (10000 first, -10000 last)' | translate\n }}\"\n triggers=\"focus\"\n placement=\"right\"\n container=\"body\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n <input\n id=\"positionNav\"\n type=\"number\"\n class=\"form-control\"\n name=\"priority\"\n [(ngModel)]=\"dashboard.priority\"\n min=\"-10000\"\n max=\"10000\"\n placeholder=\"{{ 'e.g.' | translate }} 500\"\n required\n />\n </c8y-form-group>\n </div>\n\n <div class=\"col-sm-6\" *ngIf=\"isReport\">\n <label translate>Navigator menu item</label>\n <c8y-form-group>\n <label title=\"{{ 'Show in navigator' | translate }}\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n name=\"isNavigatorNode\"\n [(ngModel)]=\"!!dashboard.c8y_IsNavigatorNode\"\n />\n <span></span>\n <span>{{ 'Show in navigator' | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\" *ngIf=\"isReport\">\n <c8y-form-group>\n <label for=\"position\">\n <span class=\"m-r-4\">{{ 'Position in navigator' | translate }}</span>\n <ng-template #positionInNavPop>\n <span>\n {{\n 'Position in navigator (10001 first, -10000 last).' | translate\n }} \n {{ 'Existing nodes:' | translate }}\n </span>\n <ul class=\"list-unstyled m-t-16\">\n <li *ngFor=\"let node of navigatorNodes$ | async\">\n <i [c8yIcon]=\"node.icon\"></i>\n <span class=\"word-break m-l-4 m-r-16\">\n {{\n node.label.length > 15\n ? (node.label | slice: 0:15) + '...'\n : node.label\n }}\n </span>\n <span class=\"pull-right\">{{ node.priority }}</span>\n </li>\n </ul>\n </ng-template>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n type=\"button\"\n [popover]=\"positionInNavPop\"\n triggers=\"focus\"\n placement=\"right\"\n container=\"body\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n <input\n type=\"number\"\n for=\"position\"\n class=\"form-control\"\n name=\"priority\"\n [(ngModel)]=\"dashboard.priority\"\n min=\"-10000\"\n max=\"20000\"\n placeholder=\"{{ 'e.g.' | translate }} 500\"\n />\n </c8y-form-group>\n </div>\n </div>\n\n <div *ngIf=\"!currentDashboard && deviceType\">\n <div class=\"form-group\">\n <label title=\"{{ applyToDevicesOfTypeTitle }}\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n name=\"deviceType\"\n [(ngModel)]=\"dashboard.deviceType\"\n [disabled]=\"!applyToDevicesOfTypePermitted\"\n />\n <span></span>\n <span\n class=\"m-r-4\"\n translate\n [translateParams]=\"{ type: dashboard.deviceTypeValue }\"\n ngNonBindable\n >\n Apply dashboard to all devices of type\n <i>{{ type }}</i>\n </span>\n </label>\n </div>\n\n <div class=\"alert alert-info m-b-24\" *ngIf=\"isDeviceType\">\n <i c8y-icon=\"info\"></i>\n <span\n translate\n [translateParams]=\"{ type: dashboard.deviceTypeValue }\"\n ngNonBindable\n >\n This dashboard is shared between all devices of the type\n <i>{{ type }}</i>\n .\n </span>\n </div>\n </div>\n </div>\n <c8y-dashboard-availability\n *ngIf=\"!!isReport === false\"\n [(globalRolesIds)]=\"globalRolesIds\"\n (globalRolesIdsChange)=\"dashboardDetailForm?.form?.markAsDirty()\"\n ></c8y-dashboard-availability>\n <c8y-appearance-settings\n [(themeClass)]=\"styling.themeClass\"\n [(headerClass)]=\"styling.headerClass\"\n ></c8y-appearance-settings>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group class=\"p-b-24 m-b-0\">\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n id=\"margin\"\n name=\"margin\"\n type=\"number\"\n class=\"form-control\"\n [(ngModel)]=\"dashboard.widgetMargin\"\n min=\"0\"\n max=\"50\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group class=\"p-b-24 m-b-0\">\n <label translate>Widget titles</label>\n <label title=\"{{ 'Translate if possible' | translate }}\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n name=\"translateWidgetTitle\"\n [(ngModel)]=\"dashboard.translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Translate if possible' | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n </div>\n </div>\n\n <div class=\"col-sm-6\">\n <c8y-widget-preview\n [tab]=\"!isNamedDashboard ? dashboard : undefined\"\n [previewClasses]=\"getDashboardPreviewStyle()\"\n ></c8y-widget-preview>\n </div>\n </div>\n </form>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n (click)=\"close()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"dashboardDetailForm.form.invalid || dashboardDetailForm.form.pristine\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MinValidationDirective, selector: "[min]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidationDirective, selector: "[max]", inputs: ["max"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i6.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i6.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i6.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i4.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "directive", type: i8.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i8.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i8.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: AppearanceSettingsComponent, selector: "c8y-appearance-settings", inputs: ["themeClass", "headerClass", "defaultThemeClass", "defaultHeaderClass", "possibleStylingTheme", "possibleStylingHeader"], outputs: ["themeClassChange", "headerClassChange"] }, { kind: "component", type: WidgetPreviewComponent, selector: "c8y-widget-preview", inputs: ["previewClasses", "tab"] }, { kind: "component", type: DashboardAvailabilityComponent, selector: "c8y-dashboard-availability", inputs: ["globalRolesIds"], outputs: ["globalRolesIdsChange"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.SlicePipe, name: "slice" }] });
|
|
838
|
+
DashboardDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DashboardDetailComponent, selector: "c8y-dashboard-detail", viewQueries: [{ propertyName: "dashboardDetailForm", first: true, predicate: ["dashboardDetailForm"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header separator-bottom\">\n <h3 id=\"modal-title\">{{ titleAction | translate }} {{ titleName | translate }}</h3>\n </div>\n\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"p-l-24 p-r-24\">\n <form #dashboardDetailForm=\"ngForm\" class=\"d-contents\">\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <div *ngIf=\"!isNamedDashboard || isReport\">\n <div class=\"legend form-block\">\n <span>{{ 'General' | translate }}</span>\n </div>\n <div class=\"d-flex\">\n <c8y-form-group class=\"m-r-16\">\n <label class=\"d-block\">{{ 'Icon' | translate }}</label>\n <div dropdown class=\"dropdown\">\n <button\n title=\"{{ 'Icon' | translate }}\"\n type=\"button\"\n class=\"btn-default btn btn-gray\"\n aria-haspopup=\"true\"\n dropdownToggle\n >\n <i c8yIcon=\"{{ dashboard.icon }}\"></i>\n <span class=\"caret\"></span>\n </button>\n <ul\n *dropdownMenu\n class=\"dropdown-menu modal-inner-scroll dropdown-menu-grid-4 m-l-0\"\n style=\"max-height: 250px\"\n >\n <ng-container *ngFor=\"let icon of filteredIcons\">\n <li (click)=\"selectIcon(icon)\">\n <a\n class=\"interact\"\n title=\"{{ icon }}\"\n [ngClass]=\"{ active: dashboard.icon === icon }\"\n >\n <i class=\"icon\" [c8yIcon]=\"icon\"></i>\n </a>\n </li>\n </ng-container>\n </ul>\n </div>\n </c8y-form-group>\n <c8y-form-group class=\"flex-grow\">\n <label>\n <span class=\"m-r-4\" id=\"menuLabel\">{{ 'Menu label' | translate }}</span>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n type=\"button\"\n popover=\"{{\n 'Menu label to display in submenu when dashboard is attached' | translate\n }}\"\n triggers=\"focus\"\n placement=\"right\"\n container=\"body\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n <input\n id=\"menuLabel\"\n type=\"text\"\n class=\"form-control\"\n name=\"name\"\n [(ngModel)]=\"dashboardName\"\n placeholder=\"{{ namePlaceholder | translate }}\"\n maxlength=\"512\"\n required\n />\n </c8y-form-group>\n </div>\n <c8y-form-group *ngIf=\"isReport\">\n <label id=\"description\">{{ 'Description ' | translate }}</label>\n <textarea\n aria-labelledby=\"description\"\n class=\"form-control\"\n rows=\"2\"\n name=\"description\"\n [(ngModel)]=\"dashboard.description\"\n ></textarea>\n </c8y-form-group>\n <div class=\"row\">\n <div class=\"col-sm-6\" *ngIf=\"!isReport\">\n <c8y-form-group>\n <label for=\"positionNav\">\n <span class=\"m-r-4\" id=\"positionNav\">\n {{ 'Position in navigation' | translate }}\n </span>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n type=\"button\"\n popover=\"{{\n 'Position in navigation menu (10000 first, -10000 last)' | translate\n }}\"\n triggers=\"focus\"\n placement=\"right\"\n container=\"body\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n <input\n id=\"positionNav\"\n type=\"number\"\n class=\"form-control\"\n name=\"priority\"\n [(ngModel)]=\"dashboard.priority\"\n min=\"-10000\"\n max=\"10000\"\n placeholder=\"{{ 'e.g.' | translate }} 500\"\n required\n />\n </c8y-form-group>\n </div>\n\n <div class=\"col-sm-6\" *ngIf=\"isReport\">\n <label translate>Navigator menu item</label>\n <c8y-form-group>\n <label title=\"{{ 'Show in navigator' | translate }}\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n name=\"isNavigatorNode\"\n [(ngModel)]=\"!!dashboard.c8y_IsNavigatorNode\"\n />\n <span></span>\n <span>{{ 'Show in navigator' | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\" *ngIf=\"isReport\">\n <c8y-form-group>\n <label for=\"position\">\n <span class=\"m-r-4\">{{ 'Position in navigator' | translate }}</span>\n <ng-template #positionInNavPop>\n <span>\n {{\n 'Position in navigator (10001 first, -10000 last).' | translate\n }} \n {{ 'Existing nodes:' | translate }}\n </span>\n <ul class=\"list-unstyled m-t-16\">\n <li *ngFor=\"let node of navigatorNodes$ | async\">\n <i [c8yIcon]=\"node.icon\"></i>\n <span class=\"word-break m-l-4 m-r-16\">\n {{\n node.label.length > 15\n ? (node.label | slice: 0:15) + '...'\n : node.label\n }}\n </span>\n <span class=\"pull-right\">{{ node.priority }}</span>\n </li>\n </ul>\n </ng-template>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n type=\"button\"\n [popover]=\"positionInNavPop\"\n triggers=\"focus\"\n placement=\"right\"\n container=\"body\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n <input\n type=\"number\"\n for=\"position\"\n class=\"form-control\"\n name=\"priority\"\n [(ngModel)]=\"dashboard.priority\"\n min=\"-10000\"\n max=\"20000\"\n placeholder=\"{{ 'e.g.' | translate }} 500\"\n />\n </c8y-form-group>\n </div>\n </div>\n\n <div *ngIf=\"!currentDashboard && deviceType\">\n <div class=\"form-group\">\n <label title=\"{{ applyToDevicesOfTypeTitle }}\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n name=\"deviceType\"\n [(ngModel)]=\"dashboard.deviceType\"\n [disabled]=\"!applyToDevicesOfTypePermitted\"\n />\n <span></span>\n <span\n class=\"m-r-4\"\n translate\n [translateParams]=\"{ type: dashboard.deviceTypeValue }\"\n ngNonBindable\n >\n Apply dashboard to all devices of type\n <i>{{ type }}</i>\n </span>\n </label>\n </div>\n\n <div class=\"alert alert-info m-b-24\" *ngIf=\"isDeviceType\">\n <i c8y-icon=\"info\"></i>\n <span\n translate\n [translateParams]=\"{ type: dashboard.deviceTypeValue }\"\n ngNonBindable\n >\n This dashboard is shared between all devices of the type\n <i>{{ type }}</i>\n .\n </span>\n </div>\n </div>\n </div>\n <c8y-dashboard-availability\n *ngIf=\"!!isReport === false\"\n [(globalRolesIds)]=\"globalRolesIds\"\n (globalRolesIdsChange)=\"dashboardDetailForm?.form?.markAsDirty()\"\n ></c8y-dashboard-availability>\n <c8y-appearance-settings\n [(themeClass)]=\"styling.themeClass\"\n [(headerClass)]=\"styling.headerClass\"\n ></c8y-appearance-settings>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group class=\"p-b-24 m-b-0\">\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n id=\"margin\"\n name=\"margin\"\n type=\"number\"\n class=\"form-control\"\n [(ngModel)]=\"dashboard.widgetMargin\"\n min=\"0\"\n max=\"50\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group class=\"p-b-24 m-b-0\">\n <label translate>Widget titles</label>\n <label title=\"{{ 'Translate if possible' | translate }}\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n name=\"translateWidgetTitle\"\n [(ngModel)]=\"dashboard.translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Translate if possible' | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n </div>\n </div>\n\n <div class=\"col-sm-6\">\n <c8y-widget-preview\n [tab]=\"!isNamedDashboard ? dashboard : undefined\"\n [previewClasses]=\"getDashboardPreviewStyle()\"\n ></c8y-widget-preview>\n </div>\n </div>\n </form>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n (click)=\"close()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"dashboardDetailForm.form.invalid || dashboardDetailForm.form.pristine\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MinValidationDirective, selector: "[min]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidationDirective, selector: "[max]", inputs: ["max"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i6.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i6.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i6.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i4.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "directive", type: i8.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i8.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i8.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: AppearanceSettingsComponent, selector: "c8y-appearance-settings", inputs: ["themeClass", "headerClass", "defaultThemeClass", "defaultHeaderClass", "possibleStylingTheme", "possibleStylingHeader"], outputs: ["themeClassChange", "headerClassChange"] }, { kind: "component", type: WidgetPreviewComponent, selector: "c8y-widget-preview", inputs: ["previewClasses", "tab"] }, { kind: "component", type: DashboardAvailabilityComponent, selector: "c8y-dashboard-availability", inputs: ["globalRolesIds"], outputs: ["globalRolesIdsChange"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.SlicePipe, name: "slice" }] });
|
|
839
839
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DashboardDetailComponent, decorators: [{
|
|
840
840
|
type: Component,
|
|
841
|
-
args: [{ selector: 'c8y-dashboard-detail', template: "<div class=\"viewport-modal\">\n <div class=\"modal-header separator-bottom\">\n <h3 id=\"modal-title\">{{ titleAction | translate }} {{ titleName | translate }}</h3>\n </div>\n\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"p-l-24 p-r-24\">\n <form #dashboardDetailForm=\"ngForm\" class=\"d-contents\">\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <div *ngIf=\"!isNamedDashboard || isReport\">\n <div class=\"legend form-block\">\n <span>{{ 'General' | translate }}</span>\n </div>\n <div class=\"d-flex\">\n <c8y-form-group class=\"m-r-16\">\n <label class=\"d-block\">{{ 'Icon' | translate }}</label>\n <div dropdown class=\"dropdown\">\n <button\n title=\"{{ 'Icon' | translate }}\"\n type=\"button\"\n class=\"btn-default btn btn-gray\"\n dropdownToggle\n >\n <i c8yIcon=\"{{ dashboard.icon }}\"></i>\n <span class=\"caret\"></span>\n </button>\n <ul\n *dropdownMenu\n class=\"dropdown-menu modal-inner-scroll dropdown-menu-grid-4 m-l-0\"\n style=\"max-height: 250px\"\n >\n <ng-container *ngFor=\"let icon of filteredIcons\">\n <li (click)=\"selectIcon(icon)\">\n <a\n class=\"interact\"\n title=\"{{ icon }}\"\n [ngClass]=\"{ active: dashboard.icon === icon }\"\n >\n <i class=\"icon\" [c8yIcon]=\"icon\"></i>\n </a>\n </li>\n </ng-container>\n </ul>\n </div>\n </c8y-form-group>\n <c8y-form-group class=\"flex-grow\">\n <label>\n <span class=\"m-r-4\" id=\"menuLabel\">{{ 'Menu label' | translate }}</span>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n type=\"button\"\n popover=\"{{\n 'Menu label to display in submenu when dashboard is attached' | translate\n }}\"\n triggers=\"focus\"\n placement=\"right\"\n container=\"body\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n <input\n id=\"menuLabel\"\n type=\"text\"\n class=\"form-control\"\n name=\"name\"\n [(ngModel)]=\"dashboardName\"\n placeholder=\"{{ namePlaceholder | translate }}\"\n maxlength=\"512\"\n required\n />\n </c8y-form-group>\n </div>\n <c8y-form-group *ngIf=\"isReport\">\n <label id=\"description\">{{ 'Description ' | translate }}</label>\n <textarea\n aria-labelledby=\"description\"\n class=\"form-control\"\n rows=\"2\"\n name=\"description\"\n [(ngModel)]=\"dashboard.description\"\n ></textarea>\n </c8y-form-group>\n <div class=\"row\">\n <div class=\"col-sm-6\" *ngIf=\"!isReport\">\n <c8y-form-group>\n <label for=\"positionNav\">\n <span class=\"m-r-4\" id=\"positionNav\">\n {{ 'Position in navigation' | translate }}\n </span>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n type=\"button\"\n popover=\"{{\n 'Position in navigation menu (10000 first, -10000 last)' | translate\n }}\"\n triggers=\"focus\"\n placement=\"right\"\n container=\"body\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n <input\n id=\"positionNav\"\n type=\"number\"\n class=\"form-control\"\n name=\"priority\"\n [(ngModel)]=\"dashboard.priority\"\n min=\"-10000\"\n max=\"10000\"\n placeholder=\"{{ 'e.g.' | translate }} 500\"\n required\n />\n </c8y-form-group>\n </div>\n\n <div class=\"col-sm-6\" *ngIf=\"isReport\">\n <label translate>Navigator menu item</label>\n <c8y-form-group>\n <label title=\"{{ 'Show in navigator' | translate }}\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n name=\"isNavigatorNode\"\n [(ngModel)]=\"!!dashboard.c8y_IsNavigatorNode\"\n />\n <span></span>\n <span>{{ 'Show in navigator' | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\" *ngIf=\"isReport\">\n <c8y-form-group>\n <label for=\"position\">\n <span class=\"m-r-4\">{{ 'Position in navigator' | translate }}</span>\n <ng-template #positionInNavPop>\n <span>\n {{\n 'Position in navigator (10001 first, -10000 last).' | translate\n }} \n {{ 'Existing nodes:' | translate }}\n </span>\n <ul class=\"list-unstyled m-t-16\">\n <li *ngFor=\"let node of navigatorNodes$ | async\">\n <i [c8yIcon]=\"node.icon\"></i>\n <span class=\"word-break m-l-4 m-r-16\">\n {{\n node.label.length > 15\n ? (node.label | slice: 0:15) + '...'\n : node.label\n }}\n </span>\n <span class=\"pull-right\">{{ node.priority }}</span>\n </li>\n </ul>\n </ng-template>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n type=\"button\"\n [popover]=\"positionInNavPop\"\n triggers=\"focus\"\n placement=\"right\"\n container=\"body\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n <input\n type=\"number\"\n for=\"position\"\n class=\"form-control\"\n name=\"priority\"\n [(ngModel)]=\"dashboard.priority\"\n min=\"-10000\"\n max=\"20000\"\n placeholder=\"{{ 'e.g.' | translate }} 500\"\n />\n </c8y-form-group>\n </div>\n </div>\n\n <div *ngIf=\"!currentDashboard && deviceType\">\n <div class=\"form-group\">\n <label title=\"{{ applyToDevicesOfTypeTitle }}\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n name=\"deviceType\"\n [(ngModel)]=\"dashboard.deviceType\"\n [disabled]=\"!applyToDevicesOfTypePermitted\"\n />\n <span></span>\n <span\n class=\"m-r-4\"\n translate\n [translateParams]=\"{ type: dashboard.deviceTypeValue }\"\n ngNonBindable\n >\n Apply dashboard to all devices of type\n <i>{{ type }}</i>\n </span>\n </label>\n </div>\n\n <div class=\"alert alert-info m-b-24\" *ngIf=\"isDeviceType\">\n <i c8y-icon=\"info\"></i>\n <span\n translate\n [translateParams]=\"{ type: dashboard.deviceTypeValue }\"\n ngNonBindable\n >\n This dashboard is shared between all devices of the type\n <i>{{ type }}</i>\n .\n </span>\n </div>\n </div>\n </div>\n <c8y-dashboard-availability\n *ngIf=\"!!isReport === false\"\n [(globalRolesIds)]=\"globalRolesIds\"\n (globalRolesIdsChange)=\"dashboardDetailForm?.form?.markAsDirty()\"\n ></c8y-dashboard-availability>\n <c8y-appearance-settings\n [(themeClass)]=\"styling.themeClass\"\n [(headerClass)]=\"styling.headerClass\"\n ></c8y-appearance-settings>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group class=\"p-b-24 m-b-0\">\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n id=\"margin\"\n name=\"margin\"\n type=\"number\"\n class=\"form-control\"\n [(ngModel)]=\"dashboard.widgetMargin\"\n min=\"0\"\n max=\"50\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group class=\"p-b-24 m-b-0\">\n <label translate>Widget titles</label>\n <label title=\"{{ 'Translate if possible' | translate }}\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n name=\"translateWidgetTitle\"\n [(ngModel)]=\"dashboard.translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Translate if possible' | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n </div>\n </div>\n\n <div class=\"col-sm-6\">\n <c8y-widget-preview\n [tab]=\"!isNamedDashboard ? dashboard : undefined\"\n [previewClasses]=\"getDashboardPreviewStyle()\"\n ></c8y-widget-preview>\n </div>\n </div>\n </form>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n (click)=\"close()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"dashboardDetailForm.form.invalid || dashboardDetailForm.form.pristine\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n" }]
|
|
841
|
+
args: [{ selector: 'c8y-dashboard-detail', template: "<div class=\"viewport-modal\">\n <div class=\"modal-header separator-bottom\">\n <h3 id=\"modal-title\">{{ titleAction | translate }} {{ titleName | translate }}</h3>\n </div>\n\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"p-l-24 p-r-24\">\n <form #dashboardDetailForm=\"ngForm\" class=\"d-contents\">\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <div *ngIf=\"!isNamedDashboard || isReport\">\n <div class=\"legend form-block\">\n <span>{{ 'General' | translate }}</span>\n </div>\n <div class=\"d-flex\">\n <c8y-form-group class=\"m-r-16\">\n <label class=\"d-block\">{{ 'Icon' | translate }}</label>\n <div dropdown class=\"dropdown\">\n <button\n title=\"{{ 'Icon' | translate }}\"\n type=\"button\"\n class=\"btn-default btn btn-gray\"\n aria-haspopup=\"true\"\n dropdownToggle\n >\n <i c8yIcon=\"{{ dashboard.icon }}\"></i>\n <span class=\"caret\"></span>\n </button>\n <ul\n *dropdownMenu\n class=\"dropdown-menu modal-inner-scroll dropdown-menu-grid-4 m-l-0\"\n style=\"max-height: 250px\"\n >\n <ng-container *ngFor=\"let icon of filteredIcons\">\n <li (click)=\"selectIcon(icon)\">\n <a\n class=\"interact\"\n title=\"{{ icon }}\"\n [ngClass]=\"{ active: dashboard.icon === icon }\"\n >\n <i class=\"icon\" [c8yIcon]=\"icon\"></i>\n </a>\n </li>\n </ng-container>\n </ul>\n </div>\n </c8y-form-group>\n <c8y-form-group class=\"flex-grow\">\n <label>\n <span class=\"m-r-4\" id=\"menuLabel\">{{ 'Menu label' | translate }}</span>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n type=\"button\"\n popover=\"{{\n 'Menu label to display in submenu when dashboard is attached' | translate\n }}\"\n triggers=\"focus\"\n placement=\"right\"\n container=\"body\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n <input\n id=\"menuLabel\"\n type=\"text\"\n class=\"form-control\"\n name=\"name\"\n [(ngModel)]=\"dashboardName\"\n placeholder=\"{{ namePlaceholder | translate }}\"\n maxlength=\"512\"\n required\n />\n </c8y-form-group>\n </div>\n <c8y-form-group *ngIf=\"isReport\">\n <label id=\"description\">{{ 'Description ' | translate }}</label>\n <textarea\n aria-labelledby=\"description\"\n class=\"form-control\"\n rows=\"2\"\n name=\"description\"\n [(ngModel)]=\"dashboard.description\"\n ></textarea>\n </c8y-form-group>\n <div class=\"row\">\n <div class=\"col-sm-6\" *ngIf=\"!isReport\">\n <c8y-form-group>\n <label for=\"positionNav\">\n <span class=\"m-r-4\" id=\"positionNav\">\n {{ 'Position in navigation' | translate }}\n </span>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n type=\"button\"\n popover=\"{{\n 'Position in navigation menu (10000 first, -10000 last)' | translate\n }}\"\n triggers=\"focus\"\n placement=\"right\"\n container=\"body\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n <input\n id=\"positionNav\"\n type=\"number\"\n class=\"form-control\"\n name=\"priority\"\n [(ngModel)]=\"dashboard.priority\"\n min=\"-10000\"\n max=\"10000\"\n placeholder=\"{{ 'e.g.' | translate }} 500\"\n required\n />\n </c8y-form-group>\n </div>\n\n <div class=\"col-sm-6\" *ngIf=\"isReport\">\n <label translate>Navigator menu item</label>\n <c8y-form-group>\n <label title=\"{{ 'Show in navigator' | translate }}\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n name=\"isNavigatorNode\"\n [(ngModel)]=\"!!dashboard.c8y_IsNavigatorNode\"\n />\n <span></span>\n <span>{{ 'Show in navigator' | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\" *ngIf=\"isReport\">\n <c8y-form-group>\n <label for=\"position\">\n <span class=\"m-r-4\">{{ 'Position in navigator' | translate }}</span>\n <ng-template #positionInNavPop>\n <span>\n {{\n 'Position in navigator (10001 first, -10000 last).' | translate\n }} \n {{ 'Existing nodes:' | translate }}\n </span>\n <ul class=\"list-unstyled m-t-16\">\n <li *ngFor=\"let node of navigatorNodes$ | async\">\n <i [c8yIcon]=\"node.icon\"></i>\n <span class=\"word-break m-l-4 m-r-16\">\n {{\n node.label.length > 15\n ? (node.label | slice: 0:15) + '...'\n : node.label\n }}\n </span>\n <span class=\"pull-right\">{{ node.priority }}</span>\n </li>\n </ul>\n </ng-template>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n type=\"button\"\n [popover]=\"positionInNavPop\"\n triggers=\"focus\"\n placement=\"right\"\n container=\"body\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n <input\n type=\"number\"\n for=\"position\"\n class=\"form-control\"\n name=\"priority\"\n [(ngModel)]=\"dashboard.priority\"\n min=\"-10000\"\n max=\"20000\"\n placeholder=\"{{ 'e.g.' | translate }} 500\"\n />\n </c8y-form-group>\n </div>\n </div>\n\n <div *ngIf=\"!currentDashboard && deviceType\">\n <div class=\"form-group\">\n <label title=\"{{ applyToDevicesOfTypeTitle }}\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n name=\"deviceType\"\n [(ngModel)]=\"dashboard.deviceType\"\n [disabled]=\"!applyToDevicesOfTypePermitted\"\n />\n <span></span>\n <span\n class=\"m-r-4\"\n translate\n [translateParams]=\"{ type: dashboard.deviceTypeValue }\"\n ngNonBindable\n >\n Apply dashboard to all devices of type\n <i>{{ type }}</i>\n </span>\n </label>\n </div>\n\n <div class=\"alert alert-info m-b-24\" *ngIf=\"isDeviceType\">\n <i c8y-icon=\"info\"></i>\n <span\n translate\n [translateParams]=\"{ type: dashboard.deviceTypeValue }\"\n ngNonBindable\n >\n This dashboard is shared between all devices of the type\n <i>{{ type }}</i>\n .\n </span>\n </div>\n </div>\n </div>\n <c8y-dashboard-availability\n *ngIf=\"!!isReport === false\"\n [(globalRolesIds)]=\"globalRolesIds\"\n (globalRolesIdsChange)=\"dashboardDetailForm?.form?.markAsDirty()\"\n ></c8y-dashboard-availability>\n <c8y-appearance-settings\n [(themeClass)]=\"styling.themeClass\"\n [(headerClass)]=\"styling.headerClass\"\n ></c8y-appearance-settings>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group class=\"p-b-24 m-b-0\">\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n id=\"margin\"\n name=\"margin\"\n type=\"number\"\n class=\"form-control\"\n [(ngModel)]=\"dashboard.widgetMargin\"\n min=\"0\"\n max=\"50\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group class=\"p-b-24 m-b-0\">\n <label translate>Widget titles</label>\n <label title=\"{{ 'Translate if possible' | translate }}\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n name=\"translateWidgetTitle\"\n [(ngModel)]=\"dashboard.translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Translate if possible' | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n </div>\n </div>\n\n <div class=\"col-sm-6\">\n <c8y-widget-preview\n [tab]=\"!isNamedDashboard ? dashboard : undefined\"\n [previewClasses]=\"getDashboardPreviewStyle()\"\n ></c8y-widget-preview>\n </div>\n </div>\n </form>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n (click)=\"close()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"dashboardDetailForm.form.invalid || dashboardDetailForm.form.pristine\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</div>\n" }]
|
|
842
842
|
}], ctorParameters: function () { return [{ type: i3$1.BsModalRef }, { type: undefined, decorators: [{
|
|
843
843
|
type: Inject,
|
|
844
844
|
args: [ICON_LIST]
|
|
@@ -1667,7 +1667,7 @@ class ContextDashboardComponent {
|
|
|
1667
1667
|
}
|
|
1668
1668
|
}
|
|
1669
1669
|
ContextDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ContextDashboardComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: ContextDashboardService }, { token: i2.AlertService }, { token: i0.Renderer2 }, { token: CONTEXT_DASHBOARD_CONFIG }, { token: WidgetService }, { token: i3$1.BsModalService }, { token: i1.InventoryService }, { token: i2.GainsightService }, { token: i2.ActionBarService }, { token: i3.TranslateService }, { token: i2.ModalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1670
|
-
ContextDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ContextDashboardComponent, selector: "c8y-context-dashboard", inputs: { name: "name", childrenClasses: "childrenClasses", context: "context", setTitle: "setTitle", disabled: "disabled", defaultWidgets: "defaultWidgets", canCopy: "canCopy", canDelete: "canDelete", isLoading: "isLoading", breadcrumbSettings: "breadcrumbSettings" }, host: { properties: { "class": "this.class" }, styleAttribute: "\n display: block;\n ", classAttribute: "dashboard c8y-grid-dashboard" }, ngImport: i0, template: "<c8y-title>\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'more'\" *ngIf=\"defaultWidgets.length > 0\">\n <button\n
|
|
1670
|
+
ContextDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ContextDashboardComponent, selector: "c8y-context-dashboard", inputs: { name: "name", childrenClasses: "childrenClasses", context: "context", setTitle: "setTitle", disabled: "disabled", defaultWidgets: "defaultWidgets", canCopy: "canCopy", canDelete: "canDelete", isLoading: "isLoading", breadcrumbSettings: "breadcrumbSettings" }, host: { properties: { "class": "this.class" }, styleAttribute: "\n display: block;\n ", classAttribute: "dashboard c8y-grid-dashboard" }, ngImport: i0, template: "<c8y-title>\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'more'\" *ngIf=\"defaultWidgets.length > 0\">\n <button\n type=\"button\"\n title=\"{{ 'Reset dashboard' | translate }}\"\n class=\"btn btn-clean\"\n px-event=\"Reset dashboard\"\n (click)=\"restore()\"\n [disabled]=\"dashboard?.isFrozen || disabled\"\n >\n <i c8yIcon=\"reset\" class=\"m-r-4\"></i>\n {{ 'Reset dashboard' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-widgets-dashboard\n [context]=\"context\"\n [contextDashboard]=\"dashboard\"\n [widgets]=\"widgets\"\n [settings]=\"{\n isLoading: isLoading,\n isFrozen: dashboard?.isFrozen,\n isDisabled: disabled,\n canDelete: canDelete,\n translateWidgetTitle: dashboard?.translateWidgetTitle,\n allowFullscreen: moduleConfig.allowFullscreen,\n title: setTitle ? dashboard.name || title : undefined,\n widgetMargin: dashboard?.widgetMargin,\n canCopy: canCopy\n }\"\n [breadcrumb]=\"breadcrumbSettings\"\n (onFreeze)=\"toggleFreeze($event)\"\n (onChangeDashboard)=\"updateDashboardChildren($event)\"\n (onAddWidget)=\"addWidget()\"\n (onEditWidget)=\"editWidget($event)\"\n (onDeleteWidget)=\"deleteWidget($event)\"\n (onChangeStart)=\"addDashboardClassToBody()\"\n (onChangeEnd)=\"removeDashboardClassFromBody()\"\n (onEditDashboard)=\"editDashboard()\"\n (onCopyDashboard)=\"copyDashboard()\"\n (onDeleteDashboard)=\"deleteDashboard()\"\n></c8y-widgets-dashboard>\n", dependencies: [{ kind: "component", type: i2.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i2.WidgetsDashboardComponent, selector: "c8y-widgets-dashboard", inputs: ["widgets", "context", "contextDashboard", "settings", "breadcrumb"], outputs: ["onAddWidget", "onEditWidget", "onDeleteWidget", "onChangeDashboard", "onEditDashboard", "onCopyDashboard", "onDeleteDashboard", "onFreeze", "onChangeStart", "onChangeEnd"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] });
|
|
1671
1671
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ContextDashboardComponent, decorators: [{
|
|
1672
1672
|
type: Component,
|
|
1673
1673
|
args: [{ selector: 'c8y-context-dashboard', host: {
|
|
@@ -1675,7 +1675,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
1675
1675
|
display: block;
|
|
1676
1676
|
`,
|
|
1677
1677
|
class: 'dashboard c8y-grid-dashboard'
|
|
1678
|
-
}, template: "<c8y-title>\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'more'\" *ngIf=\"defaultWidgets.length > 0\">\n <button\n
|
|
1678
|
+
}, template: "<c8y-title>\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'more'\" *ngIf=\"defaultWidgets.length > 0\">\n <button\n type=\"button\"\n title=\"{{ 'Reset dashboard' | translate }}\"\n class=\"btn btn-clean\"\n px-event=\"Reset dashboard\"\n (click)=\"restore()\"\n [disabled]=\"dashboard?.isFrozen || disabled\"\n >\n <i c8yIcon=\"reset\" class=\"m-r-4\"></i>\n {{ 'Reset dashboard' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-widgets-dashboard\n [context]=\"context\"\n [contextDashboard]=\"dashboard\"\n [widgets]=\"widgets\"\n [settings]=\"{\n isLoading: isLoading,\n isFrozen: dashboard?.isFrozen,\n isDisabled: disabled,\n canDelete: canDelete,\n translateWidgetTitle: dashboard?.translateWidgetTitle,\n allowFullscreen: moduleConfig.allowFullscreen,\n title: setTitle ? dashboard.name || title : undefined,\n widgetMargin: dashboard?.widgetMargin,\n canCopy: canCopy\n }\"\n [breadcrumb]=\"breadcrumbSettings\"\n (onFreeze)=\"toggleFreeze($event)\"\n (onChangeDashboard)=\"updateDashboardChildren($event)\"\n (onAddWidget)=\"addWidget()\"\n (onEditWidget)=\"editWidget($event)\"\n (onDeleteWidget)=\"deleteWidget($event)\"\n (onChangeStart)=\"addDashboardClassToBody()\"\n (onChangeEnd)=\"removeDashboardClassFromBody()\"\n (onEditDashboard)=\"editDashboard()\"\n (onCopyDashboard)=\"copyDashboard()\"\n (onDeleteDashboard)=\"deleteDashboard()\"\n></c8y-widgets-dashboard>\n" }]
|
|
1679
1679
|
}], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: ContextDashboardService }, { type: i2.AlertService }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
|
|
1680
1680
|
type: Inject,
|
|
1681
1681
|
args: [CONTEXT_DASHBOARD_CONFIG]
|
|
@@ -2330,46 +2330,20 @@ class DeviceInfoDashboardComponent {
|
|
|
2330
2330
|
this.isLoading$ = new BehaviorSubject(true);
|
|
2331
2331
|
this.DEVICE_INFO_WIDGETS = [
|
|
2332
2332
|
{
|
|
2333
|
-
|
|
2334
|
-
title: gettext('
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
options: {
|
|
2341
|
-
orderMode: 'ACTIVE_FIRST',
|
|
2342
|
-
severity: { CRITICAL: true },
|
|
2343
|
-
status: {
|
|
2344
|
-
ACTIVE: true,
|
|
2345
|
-
ACKNOWLEDGED: false,
|
|
2346
|
-
CLEARED: false
|
|
2347
|
-
},
|
|
2348
|
-
types: []
|
|
2349
|
-
}
|
|
2350
|
-
}
|
|
2351
|
-
},
|
|
2352
|
-
{
|
|
2353
|
-
name: 'Map',
|
|
2354
|
-
title: gettext('Location'),
|
|
2355
|
-
_x: 4,
|
|
2356
|
-
_y: 11,
|
|
2357
|
-
_height: 4,
|
|
2358
|
-
_width: 8
|
|
2333
|
+
componentId: 'assetNotesWidget',
|
|
2334
|
+
title: gettext('Message of the day'),
|
|
2335
|
+
classes: { 'panel-title-hidden': true },
|
|
2336
|
+
_x: 0,
|
|
2337
|
+
_y: 0,
|
|
2338
|
+
_height: 2,
|
|
2339
|
+
_width: 12
|
|
2359
2340
|
},
|
|
2360
2341
|
{
|
|
2361
|
-
name: '
|
|
2362
|
-
title: gettext('Device
|
|
2363
|
-
config: {
|
|
2364
|
-
options: {
|
|
2365
|
-
properties: [],
|
|
2366
|
-
allowDisplayAndEditKnownProperties: true,
|
|
2367
|
-
hiddenPropertiesKeyPaths: ['owner']
|
|
2368
|
-
}
|
|
2369
|
-
},
|
|
2342
|
+
name: 'deviceStatusWidget',
|
|
2343
|
+
title: gettext('Device status'),
|
|
2370
2344
|
_x: 0,
|
|
2371
|
-
_y:
|
|
2372
|
-
_height:
|
|
2345
|
+
_y: 2,
|
|
2346
|
+
_height: 5,
|
|
2373
2347
|
_width: 4
|
|
2374
2348
|
},
|
|
2375
2349
|
{
|
|
@@ -2542,13 +2516,40 @@ class DeviceInfoDashboardComponent {
|
|
|
2542
2516
|
}
|
|
2543
2517
|
},
|
|
2544
2518
|
{
|
|
2545
|
-
name: '
|
|
2546
|
-
title: gettext('Device
|
|
2519
|
+
name: 'Asset Properties',
|
|
2520
|
+
title: gettext('Device data'),
|
|
2521
|
+
config: {
|
|
2522
|
+
options: {
|
|
2523
|
+
properties: [],
|
|
2524
|
+
allowDisplayAndEditKnownProperties: true,
|
|
2525
|
+
hiddenPropertiesKeyPaths: ['owner']
|
|
2526
|
+
}
|
|
2527
|
+
},
|
|
2547
2528
|
_x: 0,
|
|
2548
|
-
_y:
|
|
2549
|
-
_height:
|
|
2529
|
+
_y: 7,
|
|
2530
|
+
_height: 8,
|
|
2550
2531
|
_width: 4
|
|
2551
2532
|
},
|
|
2533
|
+
{
|
|
2534
|
+
name: 'Alarm list',
|
|
2535
|
+
title: gettext('Active, critical alarms'),
|
|
2536
|
+
_x: 4,
|
|
2537
|
+
_y: 7,
|
|
2538
|
+
_height: 4,
|
|
2539
|
+
_width: 4,
|
|
2540
|
+
config: {
|
|
2541
|
+
options: {
|
|
2542
|
+
orderMode: 'ACTIVE_FIRST',
|
|
2543
|
+
severity: { CRITICAL: true },
|
|
2544
|
+
status: {
|
|
2545
|
+
ACTIVE: true,
|
|
2546
|
+
ACKNOWLEDGED: false,
|
|
2547
|
+
CLEARED: false
|
|
2548
|
+
},
|
|
2549
|
+
types: []
|
|
2550
|
+
}
|
|
2551
|
+
}
|
|
2552
|
+
},
|
|
2552
2553
|
{
|
|
2553
2554
|
name: 'deviceGroupAssignmentWidget',
|
|
2554
2555
|
title: gettext('Group assignment'),
|
|
@@ -2557,15 +2558,6 @@ class DeviceInfoDashboardComponent {
|
|
|
2557
2558
|
_height: 4,
|
|
2558
2559
|
_width: 4
|
|
2559
2560
|
},
|
|
2560
|
-
{
|
|
2561
|
-
componentId: 'assetNotesWidget',
|
|
2562
|
-
title: gettext('Message of the day'),
|
|
2563
|
-
classes: { 'panel-title-hidden': true },
|
|
2564
|
-
_x: 0,
|
|
2565
|
-
_y: 0,
|
|
2566
|
-
_height: 2,
|
|
2567
|
-
_width: 12
|
|
2568
|
-
},
|
|
2569
2561
|
{
|
|
2570
2562
|
componentId: 'Map',
|
|
2571
2563
|
title: gettext('Location'),
|