{"version":3,"file":"c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs","sources":["../../context-dashboard/cockpit-home-dashboard/cockpit-dashboard.model.ts","../../context-dashboard/cockpit-home-dashboard/cockpit-dashboard.component.ts","../../context-dashboard/cockpit-home-dashboard/cockpit-dashboard.component.html","../../context-dashboard/cockpit-home-dashboard/cockpit-dashboard.module.ts","../../context-dashboard/cockpit-home-dashboard/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { Widget } from '@c8y/ngx-components';\n\n/**\n * A hook to define the default widgets of the home dashboard in the cockpit app.\n */\nexport const COCKPIT_HOME_DASHBOARD_CONFIG = new InjectionToken('CockpitHomeDashboardConfig');\n\nexport interface CockpitDashboardConfig {\n  /**\n   * Allows to have customized dashboard context name in case the CockpitDashboardModule is used in different apps and should have individual home dashboards per app\n   */\n  dashboardName?: string;\n  /**\n   * Allows to define the default widgets shown on the Cockpit Homepage\n   */\n  defaultWidgets?: Widget[];\n  /**\n   * Allows to have a different page title than the default 'Home'\n   */\n  pageTitle?: string;\n  /**\n   * Allows to have individual home dashboards per user\n   */\n  userSpecific?: boolean;\n}\n\n/**\n * An array of widgets that is per default placed on the home dashboard of the cockpit app.\n */\nexport const DEFAULT_COCKPIT_HOME_WIDGETS = [\n  {\n    name: 'cockpit.welcome.widget',\n    title: gettext('Welcome to Cockpit'),\n    _x: 0,\n    _y: 0,\n    _height: 5,\n    _width: 24,\n    classes: { 'panel-title-hidden': true }\n  },\n  {\n    name: 'Asset Alarms',\n    title: gettext('Active, critical alarms'),\n    config: {\n      widgetId: 'Asset Alarms',\n      displayMode: 'config',\n      aggregation: null,\n      isAutoRefreshEnabled: true,\n      refreshInterval: 30_000,\n      refreshOption: 'live',\n      dateTimeContext: {\n        dateFrom: new Date(0).toISOString(),\n        dateTo: new Date().toISOString(),\n        interval: 'custom'\n      }\n    },\n    _x: 0,\n    _y: 5,\n    _height: 4,\n    _width: 12\n  },\n  {\n    name: 'Recent Alarms',\n    title: gettext('Recent alarms'),\n    config: {\n      widgetId: 'Recent Alarms',\n      displayMode: 'config',\n      aggregation: null,\n      isAutoRefreshEnabled: true,\n      refreshInterval: 30_000,\n      refreshOption: 'live',\n      dateTimeContext: {\n        dateFrom: new Date(0).toISOString(),\n        dateTo: new Date().toISOString(),\n        interval: 'custom'\n      }\n    },\n    _x: 0,\n    _y: 9,\n    _height: 4,\n    _width: 12\n  },\n  {\n    name: 'Map',\n    title: gettext('Map'),\n    config: {\n      displayMode: 'dashboard'\n    },\n    _x: 12,\n    _y: 5,\n    _height: 8,\n    _width: 12\n  }\n] as Partial<Widget>[] as Widget[];\n","import { Component, Inject, Optional, ViewChild } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { AppStateService, CoreModule } from '@c8y/ngx-components';\nimport {\n  CockpitDashboardConfig,\n  COCKPIT_HOME_DASHBOARD_CONFIG,\n  DEFAULT_COCKPIT_HOME_WIDGETS\n} from './cockpit-dashboard.model';\nimport {\n  CanDeactivateComponent,\n  ContextDashboardComponent,\n  ContextDashboardModule\n} from '@c8y/ngx-components/context-dashboard';\n\n@Component({\n  selector: 'c8y-cockpit-dashboard',\n  templateUrl: './cockpit-dashboard.component.html',\n  standalone: true,\n  imports: [CoreModule, ContextDashboardModule]\n})\nexport class CockpitDashboardComponent implements CanDeactivateComponent {\n  defaultWidgets = DEFAULT_COCKPIT_HOME_WIDGETS;\n  dashboardName = 'home-cockpit1';\n  pageTitle: string = gettext('Home');\n  @ViewChild(ContextDashboardComponent, { static: true })\n  contextDashboard: ContextDashboardComponent;\n\n  constructor(\n    private appState: AppStateService,\n    @Optional()\n    @Inject(COCKPIT_HOME_DASHBOARD_CONFIG)\n    private homeDashboardConfig: CockpitDashboardConfig\n  ) {\n    const config = {\n      ...this.homeDashboardConfig,\n      dashboardName: appState.currentApplication.value?.config?.homeDashboardName,\n      userSpecific: appState.currentApplication.value?.config?.userSpecificHomeDashboard\n    };\n    this.applyDashboardConfig(config);\n  }\n\n  canDeactivate(): Promise<boolean> {\n    return this.contextDashboard.canDeactivate();\n  }\n\n  private applyDashboardConfig(config: CockpitDashboardConfig) {\n    if (!config) {\n      return;\n    }\n\n    if (config.dashboardName) {\n      this.dashboardName = config.dashboardName;\n    }\n\n    if (config.defaultWidgets) {\n      this.defaultWidgets = config.defaultWidgets;\n    }\n\n    if (config.userSpecific && this.appState.currentUser.value) {\n      this.dashboardName = `${this.appState.currentUser.value.userName.replace(/\\./g, '__')}_${\n        this.dashboardName\n      }`;\n    }\n\n    if (config.pageTitle) {\n      this.pageTitle = config.pageTitle;\n    }\n  }\n}\n","<c8y-title>\n  {{ pageTitle | translate }}\n</c8y-title>\n\n<c8y-context-dashboard\n  [name]=\"dashboardName\"\n  [defaultWidgets]=\"defaultWidgets\"\n  [canDelete]=\"false\"\n  [hideAvailability]=\"true\"\n></c8y-context-dashboard>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { hookNavigator, hookRoute, ViewContext } from '@c8y/ngx-components';\nimport { CockpitDashboardComponent } from './cockpit-dashboard.component';\nimport { CockpitDashboardConfig, COCKPIT_HOME_DASHBOARD_CONFIG } from './cockpit-dashboard.model';\nimport { CanDeactivateComponent } from '@c8y/ngx-components/context-dashboard';\n\n@NgModule({\n  providers: [\n    hookNavigator({\n      label: gettext('Home'),\n      icon: 'home',\n      priority: 10000,\n      path: '/home',\n      routerLinkExact: false\n    }),\n    hookRoute({\n      path: 'home',\n      component: CockpitDashboardComponent,\n      canDeactivate: [(component: CanDeactivateComponent) => component.canDeactivate()],\n      rootContext: ViewContext.Dashboard\n    })\n  ]\n})\nexport class CockpitHomeDashboardModule {}\n\n@NgModule({\n  imports: [CockpitHomeDashboardModule]\n})\nexport class CockpitDashboardModule {\n  static config(config: CockpitDashboardConfig = {}): ModuleWithProviders<CockpitDashboardModule> {\n    return {\n      ngModule: CockpitDashboardModule,\n      providers: [\n        {\n          provide: COCKPIT_HOME_DASHBOARD_CONFIG,\n          useValue: config\n        }\n      ]\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}