UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

1 lines • 45.6 kB
{"version":3,"file":"c8y-ngx-components-dashboard-manager.mjs","sources":["../../dashboard-manager/dashboard-manager.model.ts","../../dashboard-manager/dashboard-manager-tabs.factory.ts","../../dashboard-manager/type-dashboard-target-assets-grid/basic-name.device-grid-column.ts","../../dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-assets-grid.service.ts","../../dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component.ts","../../dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component.html","../../dashboard-manager/type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component.ts","../../dashboard-manager/type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component.html","../../dashboard-manager/type-dashboards-list/device-type-value.grid-column.ts","../../dashboard-manager/dashboard-manager.service.ts","../../dashboard-manager/type-dashboards-list/type-dashboards-list.component.ts","../../dashboard-manager/type-dashboards-list/type-dashboards-list.component.html","../../dashboard-manager/dashboard-manager.module.ts","../../dashboard-manager/c8y-ngx-components-dashboard-manager.ts"],"sourcesContent":["export interface TypeDashboardFilter {\n query: string;\n text?: string;\n pageSize: number;\n currentPage: number;\n withTotalPages: boolean;\n withTotalElements: boolean;\n}\n\nexport const DASHBOARD_MANAGER_PRODUCT_EXPERIENCE = {\n EVENTS: {\n DASHBOARD_TEMPLATE: 'dashboardTemplate'\n },\n COMPONENTS: {\n TYPE_DASHBOARDS_LIST: 'type-dashboards-list',\n TYPE_DASHBOARD_TARGET_ASSETS_GRID: 'type-dashboard-target-assets-grid'\n },\n ACTIONS: {\n DELETE_TYPE_DASHBOARD: 'deleteTypeDashboard',\n EDIT_TYPE_DASHBOARD: 'editTypeDashboard',\n OPEN_DASHBOARD_INSTANCE_TO_EDIT: 'openDashboardInstanceToEdit'\n }\n} as const;\n","import { Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { TabFactory, Tab } from '@c8y/ngx-components';\nimport { Router } from '@angular/router';\n\n@Injectable()\nexport class DashboardManagerTabsFactory implements TabFactory {\n constructor(public router: Router) {}\n\n get() {\n const tabs: Tab[] = [];\n\n if (this.router.url.match(/\\/dashboard-manager/g)) {\n tabs.push({\n path: 'dashboard-manager/type-dashboards',\n priority: 1000,\n label: gettext('Type dashboards')\n } as Tab);\n }\n\n return tabs;\n }\n}\n","import { ColumnConfig } from '@c8y/ngx-components';\nimport { NameDeviceGridColumn } from '@c8y/ngx-components/device-grid';\n\nexport class BasicNameDeviceGridColumn extends NameDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'basic-name';\n this.cellRendererComponent = null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Column, DataGridService, Pagination, UserPreferencesService } from '@c8y/ngx-components';\nimport { InventoryService } from '@c8y/client';\nimport {\n GroupDeviceGridColumn,\n RegistrationDateDeviceGridColumn,\n TypeDeviceGridColumn\n} from '@c8y/ngx-components/device-grid';\nimport { BasicNameDeviceGridColumn } from './basic-name.device-grid-column';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TypeDashboardAssetsGridService extends DataGridService {\n constructor(\n protected inventoryService: InventoryService,\n protected userPreferencesService: UserPreferencesService\n ) {\n super(userPreferencesService);\n }\n\n getDefaultColumns(columnsForDevice = true): Column[] {\n return columnsForDevice\n ? [\n new BasicNameDeviceGridColumn(),\n new TypeDeviceGridColumn(),\n new GroupDeviceGridColumn(),\n new RegistrationDateDeviceGridColumn()\n ]\n : [\n new BasicNameDeviceGridColumn(),\n new TypeDeviceGridColumn(),\n new RegistrationDateDeviceGridColumn()\n ];\n }\n\n async getData(columns: Column[], pagination: Pagination, query: any = {}, text = null) {\n const filters = {\n ...this.getFilters(columns, pagination, query, text),\n withGroups: true\n };\n return this.inventoryService.list(filters);\n }\n\n async getCount(columns: Column[], pagination: Pagination, query: any = {}, text: string = null) {\n const filters = {\n ...this.getFilters(columns, pagination, query, text),\n pageSize: 1,\n currentPage: 1\n };\n return (await this.inventoryService.list(filters)).paging.totalPages;\n }\n\n async getTotal(query: any = {}): Promise<number> {\n const filters = {\n query: this.queriesUtil.buildQuery(query),\n pageSize: 1,\n withTotalPages: true\n };\n return (await this.inventoryService.list(filters)).paging.totalPages;\n }\n\n private getFilters(columns: Column[], pagination: Pagination, query: any, text?: string) {\n return {\n ...{ query: this.getDeviceQueryString(columns, query) },\n ...(text && { text }),\n pageSize: pagination.pageSize,\n currentPage: pagination.currentPage,\n withChildren: false,\n withTotalPages: true\n };\n }\n\n private getDeviceQueryString(columns: Column[], query: any): string {\n let fullQuery = this.getQueryObj(columns);\n fullQuery = this.queriesUtil.addAndFilter(fullQuery, query);\n return this.queriesUtil.buildQuery(fullQuery);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n ActionControl,\n alertOnError,\n Column,\n DataSourceModifier,\n GainsightService,\n ModalLabels,\n ServerSideDataCallback,\n ServerSideDataResult,\n DataGridComponent,\n EmptyStateComponent,\n ColumnDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { Router } from '@angular/router';\nimport { IManagedObject } from '@c8y/client';\nimport { TypeDashboardAssetsGridService } from './type-dashboard-assets-grid.service';\nimport {\n ContextDashboardManagedObject,\n ContextDashboardService\n} from '@c8y/ngx-components/context-dashboard';\nimport { DASHBOARD_MANAGER_PRODUCT_EXPERIENCE } from '../dashboard-manager.model';\nimport { NgFor } from '@angular/common';\n\n@Component({\n selector: 'c8y-type-dashboard-target-assets-grid',\n templateUrl: './type-dashboard-target-assets-grid.component.html',\n imports: [DataGridComponent, EmptyStateComponent, NgFor, ColumnDirective, C8yTranslatePipe]\n})\nexport class TypeDashboardTargetAssetsGridComponent implements OnInit {\n labels: ModalLabels = { cancel: gettext('Cancel') };\n columns: Column[];\n actionControls: ActionControl[] = [\n {\n type: 'navigateToInstance',\n text: gettext('Open instance`dashboard`'),\n callback: item => this.navigateToDevice(item as IManagedObject),\n icon: 'file-create'\n }\n ];\n loadMoreItemsLabel = gettext('Load more assets');\n loadingItemsLabel: string = gettext('Loading assets…');\n pagination = {\n pageSize: 25,\n currentPage: 1\n };\n serverSideDataCallback: ServerSideDataCallback;\n\n @Input() dashboard: ContextDashboardManagedObject;\n @Output() onNavigateToAsset: EventEmitter<void> = new EventEmitter<void>();\n private isDeviceDashboard: boolean;\n\n constructor(\n private router: Router,\n private assetsGridService: TypeDashboardAssetsGridService,\n private contextDashboardService: ContextDashboardService,\n private gainsightService: GainsightService\n ) {\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n }\n\n ngOnInit() {\n this.isDeviceDashboard = this.contextDashboardService.isDeviceDashboard(this.dashboard);\n this.columns = this.assetsGridService.getDefaultColumns(this.isDeviceDashboard);\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const baseQuery = { type: this.dashboard.c8y_Dashboard.deviceTypeValue };\n\n const { res, data, paging } = await alertOnError(\n this.assetsGridService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n baseQuery,\n dataSourceModifier.searchText\n )\n );\n\n const filteredSize = await alertOnError(\n this.assetsGridService.getCount(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n baseQuery,\n dataSourceModifier.searchText\n )\n );\n const size = await alertOnError(this.assetsGridService.getTotal(baseQuery));\n\n const serverSideDataResult = {\n res,\n data,\n paging,\n filteredSize,\n size\n };\n\n return serverSideDataResult;\n }\n\n trackByName(_index, column: Column): string {\n return column.name;\n }\n\n navigateToDevice(val: IManagedObject): void {\n const parentSubPath = this.isDeviceDashboard ? 'device' : 'group';\n this.onNavigateToAsset.emit();\n this.router.navigate([`/${parentSubPath}/${val.id}/dashboard/${this.dashboard.id}`]);\n\n this.gainsightService.triggerEvent(\n DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.EVENTS.DASHBOARD_TEMPLATE,\n {\n component:\n DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.COMPONENTS.TYPE_DASHBOARD_TARGET_ASSETS_GRID,\n action: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.ACTIONS.OPEN_DASHBOARD_INSTANCE_TO_EDIT\n }\n );\n }\n}\n","<c8y-data-grid\n [title]=\"''\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [showSearch]=\"true\"\n>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n</c8y-data-grid>\n","import { Component, HostListener, Input } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { ModalLabels, ModalComponent, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { ContextDashboardManagedObject } from '@c8y/ngx-components/context-dashboard';\nimport { TypeDashboardTargetAssetsGridComponent } from '../type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component';\n\n@Component({\n selector: 'c8y-type-dashboard-target-assets-modal',\n templateUrl: './type-dashboard-target-assets-modal.component.html',\n imports: [ModalComponent, TypeDashboardTargetAssetsGridComponent, C8yTranslatePipe]\n})\nexport class TypeDashboardTargetAssetsModalComponent {\n labels: ModalLabels = { cancel: gettext('Cancel') };\n @Input() dashboard: ContextDashboardManagedObject;\n\n constructor(private bsModalRef: BsModalRef) {}\n\n @HostListener('document:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.close();\n }\n }\n\n close(): void {\n this.bsModalRef.hide();\n }\n}\n","<c8y-modal\n title=\"{{ 'Select dashboard instance to edit' | translate }}\"\n (onClose)=\"close()\"\n (onDismiss)=\"close()\"\n [labels]=\"labels\"\n [disabled]=\"true\"\n [headerClasses]=\"'has-data-grid'\"\n>\n <c8y-type-dashboard-target-assets-grid\n [dashboard]=\"dashboard\"\n (onNavigateToAsset)=\"close()\"\n ></c8y-type-dashboard-target-assets-grid>\n</c8y-modal>\n","import { gettext } from '@c8y/ngx-components/gettext';\nimport { BaseColumn, ColumnConfig, getBasicInputArrayFormFieldConfig } from '@c8y/ngx-components';\n\nexport class DeviceTypeValueGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'deviceTypeValue';\n this.path = 'c8y_Dashboard.deviceTypeValue';\n this.header = gettext('Target asset model');\n\n this.filterable = true;\n this.sortable = false;\n\n this.filteringConfig = {\n fields: getBasicInputArrayFormFieldConfig({\n key: 'deviceTypeValues',\n label: gettext('Filter dashboards by target asset model'),\n addText: gettext('Add next`target asset model`'),\n tooltip: gettext('Use * as a wildcard character'),\n placeholder: 'c8y_MQTTDevice'\n }),\n getFilter: (model: any): any => {\n const filter: any = {};\n if (model.deviceTypeValues.length) {\n filter[this.path] = { __in: model.deviceTypeValues };\n }\n return filter;\n }\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IManagedObject, InventoryService, IResultList, QueriesUtil } from '@c8y/client';\nimport {\n Column,\n DataGridService,\n ModalService,\n Pagination,\n Status,\n UserPreferencesService\n} from '@c8y/ngx-components';\nimport {\n ContextDashboardManagedObject,\n ContextDashboardService\n} from '@c8y/ngx-components/context-dashboard';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n DASHBOARD_MANAGER_PRODUCT_EXPERIENCE,\n TypeDashboardFilter\n} from './dashboard-manager.model';\nimport { DeviceTypeValueGridColumn } from './type-dashboards-list/device-type-value.grid-column';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardManagerService extends DataGridService {\n queriesUtil: QueriesUtil;\n baseQuery = {\n __filter: {\n __and: [\n { 'c8y_Dashboard.deviceType': { __eq: true } },\n { __has: 'c8y_Dashboard.deviceTypeValue' }\n ]\n }\n };\n\n private readonly baseTypeDashboardsFilter = {\n __filter: {\n __and: [\n { 'c8y_Dashboard.deviceType': { __eq: true } },\n { __has: 'c8y_Dashboard.deviceTypeValue' }\n ]\n }\n };\n constructor(\n protected inventory: InventoryService,\n protected userPreferencesService: UserPreferencesService,\n protected modal: ModalService,\n protected translateService: TranslateService,\n private contextDashboardService: ContextDashboardService\n ) {\n super(userPreferencesService);\n this.queriesUtil = new QueriesUtil();\n }\n\n getColumns(): Column[] {\n return [\n {\n name: 'icon',\n header: gettext('Icon'),\n path: 'c8y_Dashboard.icon',\n sortable: false,\n gridTrackSize: '45px'\n },\n {\n name: 'name',\n header: gettext('Name'),\n path: 'name',\n sortable: false,\n gridTrackSize: '200px'\n },\n {\n name: 'description',\n header: gettext('Description'),\n path: 'c8y_Dashboard.description',\n sortable: false\n },\n new DeviceTypeValueGridColumn(),\n {\n name: 'lastUpdated',\n header: gettext('Last update'),\n path: 'lastUpdated',\n sortable: false,\n gridTrackSize: '200px'\n }\n ];\n }\n\n getDefaultPagination(): Pagination {\n return {\n pageSize: 25,\n currentPage: 1\n };\n }\n\n async getData(\n columns: Column[],\n pagination: Pagination,\n text?: string\n ): Promise<IResultList<IManagedObject>> {\n const filters = this.getFilters(columns, pagination, text);\n\n return await this.inventory.list(filters);\n }\n\n async getTotal(): Promise<number> {\n const query = this.queriesUtil.buildQuery({\n __filter: {\n __and: [\n this.baseTypeDashboardsFilter.__filter,\n this.contextDashboardService.appliedToFilter()\n ]\n }\n });\n\n const res = await this.inventory.list({ query, withTotalElements: true, pageSize: 1 });\n return res.paging.totalElements;\n }\n\n async delete(dashboard: ContextDashboardManagedObject, onSuccess: () => void): Promise<void> {\n try {\n const msg: string = gettext(\n `You are about to delete the dashboard \"{{ dashboardName }}\" from all devices of type \"{{ deviceType }}\".\n Do you want to proceed?`\n );\n\n await this.modal.confirm(\n gettext('Delete dashboard'),\n this.translateService.instant(msg, {\n dashboardName: dashboard.c8y_Dashboard.name,\n deviceType: dashboard.c8y_Dashboard.deviceTypeValue\n }),\n Status.DANGER,\n {\n ok: gettext('Delete'),\n cancel: gettext('Cancel')\n },\n {},\n {\n eventName: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.EVENTS.DASHBOARD_TEMPLATE,\n data: {\n action: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.ACTIONS.DELETE_TYPE_DASHBOARD,\n component: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.COMPONENTS.TYPE_DASHBOARDS_LIST\n }\n }\n );\n await this.inventory.delete(dashboard);\n onSuccess();\n } catch (ex) {\n // intended empty\n }\n }\n\n private getFilters(\n columns: Column[],\n pagination: Pagination,\n text?: string\n ): TypeDashboardFilter {\n return {\n query: this.getQueryString(columns),\n ...(text && { text }),\n pageSize: pagination.pageSize,\n currentPage: pagination.currentPage,\n withTotalPages: true,\n withTotalElements: true\n };\n }\n\n private getQueryString(columns: Column[]): string {\n const queryFromColumns = this.getQueryObj(columns);\n\n const base = this.queriesUtil.addAndFilter(queryFromColumns, this.baseTypeDashboardsFilter);\n\n const withAppliedTo = this.queriesUtil.addAndFilter(base, {\n __filter: this.contextDashboardService.appliedToFilter()\n });\n\n return this.queriesUtil.buildQuery(withAppliedTo);\n }\n}\n","import { Component, EventEmitter } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n ActionControl,\n alertOnError,\n BuiltInActionType,\n Column,\n DataSourceModifier,\n DisplayOptions,\n GainsightService,\n ServerSideDataCallback,\n ServerSideDataResult,\n TitleComponent,\n DataGridComponent,\n ExpandableRowDirective,\n EmptyStateComponent,\n ColumnDirective,\n CellRendererDefDirective,\n IconDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { DashboardManagerService } from '../dashboard-manager.service';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { TypeDashboardTargetAssetsModalComponent } from '../type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component';\nimport {\n ContextDashboardManagedObject,\n TypeDashboardInfoComponent\n} from '@c8y/ngx-components/context-dashboard';\nimport { DASHBOARD_MANAGER_PRODUCT_EXPERIENCE } from '../dashboard-manager.model';\nimport { NgFor } from '@angular/common';\n\n@Component({\n selector: 'c8y-dashboard-manager',\n templateUrl: './type-dashboards-list.component.html',\n imports: [\n TitleComponent,\n DataGridComponent,\n ExpandableRowDirective,\n TypeDashboardInfoComponent,\n EmptyStateComponent,\n NgFor,\n ColumnDirective,\n CellRendererDefDirective,\n IconDirective,\n C8yTranslatePipe\n ]\n})\nexport class TypeDashboardsListComponent {\n title = gettext('Type dashboards');\n loadMoreItemsLabel = gettext('Load more dashboards');\n loadingItemsLabel: string = gettext('Loading dashboards…');\n columns = this.dashboardManagerService.getColumns();\n pagination = this.dashboardManagerService.getDefaultPagination();\n actionControls: ActionControl[] = [\n {\n type: BuiltInActionType.Edit,\n text: gettext('Edit dashboard'),\n callback: item => this.openTargetAssetsModal(item as ContextDashboardManagedObject)\n },\n {\n type: BuiltInActionType.Delete,\n text: gettext('Delete dashboard'),\n callback: item => this.delete(item as ContextDashboardManagedObject)\n }\n ];\n serverSideDataCallback: ServerSideDataCallback;\n displayOptions: DisplayOptions = {\n striped: true,\n bordered: false,\n gridHeader: true,\n filter: true,\n hover: false\n };\n refresh = new EventEmitter<void>();\n\n constructor(\n private dashboardManagerService: DashboardManagerService,\n private bsModalService: BsModalService,\n private gainsightService: GainsightService\n ) {\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n }\n\n async delete(dashboard: ContextDashboardManagedObject) {\n await this.dashboardManagerService.delete(dashboard, () => this.refresh.emit());\n }\n\n openTargetAssetsModal(dashboard: ContextDashboardManagedObject): void {\n const initialState: Pick<TypeDashboardTargetAssetsModalComponent, 'dashboard'> = { dashboard };\n this.bsModalService.show(TypeDashboardTargetAssetsModalComponent, {\n class: 'modal-lg',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title',\n ignoreBackdropClick: true,\n initialState\n });\n\n this.gainsightService.triggerEvent(\n DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.EVENTS.DASHBOARD_TEMPLATE,\n {\n component: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.COMPONENTS.TYPE_DASHBOARDS_LIST,\n action: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.ACTIONS.EDIT_TYPE_DASHBOARD\n }\n );\n }\n\n trackByName(_index, column: Column): string {\n return column.name;\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const { res, data, paging } = await alertOnError(\n this.dashboardManagerService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n dataSourceModifier.searchText\n )\n );\n const filteredSize = paging.totalElements;\n const size = await alertOnError(this.dashboardManagerService.getTotal());\n\n return {\n res,\n data,\n paging,\n filteredSize,\n size\n };\n }\n}\n","<c8y-title>\n {{ 'Dashboard manager' | translate }}\n</c8y-title>\n\n<div class=\"content-fullpage d-flex d-col border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [showSearch]=\"true\"\n [displayOptions]=\"displayOptions\"\n [refresh]=\"refresh\"\n [expandableRows]=\"'ASYNC'\"\n >\n <div\n *c8yExpandableRow=\"\n let context;\n let asyncRenderSuccess = asyncRenderSuccess;\n let asyncRenderFail = asyncRenderFail\n \"\n >\n <c8y-type-dashboard-info\n [context]=\"context\"\n [asyncRenderSuccess]=\"asyncRenderSuccess\"\n [asyncRenderFail]=\"asyncRenderFail\"\n ></c8y-type-dashboard-info>\n </div>\n\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No matching dashboards.' | translate\"\n [subtitle]=\"'Refine your search terms' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column name=\"icon\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <i [c8yIcon]=\"context.value\"></i>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"deviceTypeValue\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span class=\"label label-info\">\n {{ context.value }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"name\">\n <ng-container *c8yCellRendererDef=\"let context\">\n @let dashboardItem = context.item.c8y_Dashboard;\n @let dashboardName =\n dashboardItem.translateDashboardTitle\n ? (dashboardItem.name | translate)\n : dashboardItem.name;\n\n {{ dashboardName }}\n </ng-container>\n </c8y-column>\n\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n </c8y-data-grid>\n</div>\n","import { NgModule } from '@angular/core';\nimport {\n CoreModule,\n hookNavigator,\n hookRoute,\n hookTab,\n ModalModule,\n NavigatorNode\n} from '@c8y/ngx-components';\nimport {\n ContextDashboardModule,\n TypeDashboardInfoComponent\n} from '@c8y/ngx-components/context-dashboard';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { DashboardManagerTabsFactory } from './dashboard-manager-tabs.factory';\nimport { TypeDashboardTargetAssetsGridComponent } from './type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component';\nimport { TypeDashboardTargetAssetsModalComponent } from './type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component';\nimport { TypeDashboardsListComponent } from './type-dashboards-list/type-dashboards-list.component';\n\nconst DASHBOARD_MANAGER_PATH = 'dashboard-manager';\n\n@NgModule({\n imports: [\n CoreModule,\n TooltipModule,\n DeviceGridModule,\n ContextDashboardModule,\n ModalModule,\n TypeDashboardInfoComponent,\n TypeDashboardsListComponent,\n TypeDashboardTargetAssetsModalComponent,\n TypeDashboardTargetAssetsGridComponent\n ],\n providers: [\n hookTab(DashboardManagerTabsFactory),\n hookRoute([\n {\n path: DASHBOARD_MANAGER_PATH,\n redirectTo: `${DASHBOARD_MANAGER_PATH}/type-dashboards`,\n pathMatch: 'full'\n },\n {\n path: `${DASHBOARD_MANAGER_PATH}/type-dashboards`,\n component: TypeDashboardsListComponent\n }\n ]),\n hookNavigator(\n new NavigatorNode({\n parent: gettext('Configuration'),\n path: DASHBOARD_MANAGER_PATH,\n label: gettext('Dashboard manager'),\n icon: 'management1',\n routerLinkExact: false,\n featureId: 'dashboardManager'\n })\n )\n ]\n})\nexport class DashboardManagerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.TypeDashboardAssetsGridService","i4","i3","i1.DashboardManagerService","i2"],"mappings":"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"}