{"version":3,"file":"c8y-ngx-components-dashboard-manager.mjs","sources":["../../dashboard-manager/dashboard-manager-tabs.factory.ts","../../dashboard-manager/type-dashboards-list/device-type-value.grid-column.ts","../../dashboard-manager/dashboard-manager.model.ts","../../dashboard-manager/dashboard-manager.service.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/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":["import { Injectable } from '@angular/core';\nimport { TabFactory, Tab, gettext } 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 {\n  BaseColumn,\n  ColumnConfig,\n  getBasicInputArrayFormFieldConfig,\n  gettext\n} 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","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 {\n  Column,\n  DataGridService,\n  gettext,\n  ModalService,\n  Pagination,\n  Status,\n  UserPreferencesService\n} from '@c8y/ngx-components';\nimport { IManagedObject, InventoryService, IResultList, QueriesUtil } from '@c8y/client';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DeviceTypeValueGridColumn } from './type-dashboards-list/device-type-value.grid-column';\nimport {\n  DASHBOARD_MANAGER_PRODUCT_EXPERIENCE,\n  TypeDashboardFilter\n} from './dashboard-manager.model';\nimport { ContextDashboardManagedObject } from '@c8y/ngx-components/context-dashboard';\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  private TYPE_DASHBOARDS_QUERY =\n    '$filter=((c8y_Dashboard.deviceType eq true) and (has(c8y_Dashboard.deviceTypeValue)))';\n  constructor(\n    protected inventory: InventoryService,\n    protected userPreferencesService: UserPreferencesService,\n    protected modal: ModalService,\n    protected translateService: TranslateService\n  ) {\n    super(userPreferencesService);\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    return (\n      await this.inventory.list({\n        query: this.TYPE_DASHBOARDS_QUERY,\n        withTotalElements: true\n      })\n    ).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    const fullQuery = this.queriesUtil.addAndFilter(queryFromColumns, this.baseQuery);\n    return this.queriesUtil.buildQuery(fullQuery);\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 {\n  ActionControl,\n  alertOnError,\n  Column,\n  DataSourceModifier,\n  GainsightService,\n  gettext,\n  ModalLabels,\n  ServerSideDataCallback,\n  ServerSideDataResult\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';\n\n@Component({\n  selector: 'c8y-type-dashboard-target-assets-grid',\n  templateUrl: './type-dashboard-target-assets-grid.component.html',\n  standalone: false\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, ModalLabels } from '@c8y/ngx-components';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { ContextDashboardManagedObject } from '@c8y/ngx-components/context-dashboard';\n\n@Component({\n  selector: 'c8y-type-dashboard-target-assets-modal',\n  templateUrl: './type-dashboard-target-assets-modal.component.html',\n  standalone: false\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 { Component, EventEmitter } from '@angular/core';\nimport {\n  ActionControl,\n  alertOnError,\n  BuiltInActionType,\n  Column,\n  DataSourceModifier,\n  DisplayOptions,\n  GainsightService,\n  gettext,\n  ServerSideDataCallback,\n  ServerSideDataResult\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 { ContextDashboardManagedObject } from '@c8y/ngx-components/context-dashboard';\nimport { DASHBOARD_MANAGER_PRODUCT_EXPERIENCE } from '../dashboard-manager.model';\n\n@Component({\n  selector: 'c8y-dashboard-manager',\n  templateUrl: './type-dashboards-list.component.html',\n  standalone: false\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]=\"column.name\"></c8y-column>\n    </ng-container>\n  </c8y-data-grid>\n</div>\n","import { NgModule } from '@angular/core';\nimport {\n  CoreModule,\n  gettext,\n  hookNavigator,\n  hookRoute,\n  hookTab,\n  ModalModule,\n  NavigatorNode\n} from '@c8y/ngx-components';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { DashboardManagerTabsFactory } from './dashboard-manager-tabs.factory';\nimport { TypeDashboardsListComponent } from './type-dashboards-list/type-dashboards-list.component';\nimport { TypeDashboardTargetAssetsModalComponent } from './type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component';\nimport { TypeDashboardTargetAssetsGridComponent } from './type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component';\nimport {\n  ContextDashboardModule,\n  TypeDashboardInfoComponent\n} from '@c8y/ngx-components/context-dashboard';\n\nconst DASHBOARD_MANAGER_PATH = 'dashboard-manager';\n\n@NgModule({\n  declarations: [\n    TypeDashboardsListComponent,\n    TypeDashboardTargetAssetsModalComponent,\n    TypeDashboardTargetAssetsGridComponent\n  ],\n  imports: [\n    CoreModule,\n    TooltipModule,\n    DeviceGridModule,\n    ContextDashboardModule,\n    ModalModule,\n    TypeDashboardInfoComponent\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","i3","i2.TypeDashboardAssetsGridService","i4","i3.TypeDashboardTargetAssetsGridComponent","i1.DashboardManagerService","i5"],"mappings":"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"}