{"version":3,"file":"c8y-ngx-components-dashboard-details-advanced-tab.mjs","sources":["../../dashboard-details-advanced-tab/advanced-tab.model.ts","../../dashboard-details-advanced-tab/advanced-tab.factory.ts","../../dashboard-details-advanced-tab/advanced-tab-route.guard.ts","../../dashboard-details-advanced-tab/dashboard-details-advanced-tab.module.ts","../../dashboard-details-advanced-tab/c8y-ngx-components-dashboard-details-advanced-tab.ts"],"sourcesContent":["import { IManagedObject } from '@c8y/client';\n\nexport const ADVANCED_TAB_FEATURE_KEY = 'ui.dashboard-details-advanced-tab';\n\nexport type WidgetAssetToAlign = {\n  /**\n   * Widget id in the dashboard children object.\n   */\n  widgetId: string;\n  /**\n   * Widget title.\n   */\n  title: string;\n  /**\n   * Device refrence object.\n   */\n  deviceRef: {\n    /**\n     * Dashboard may contain multiple widgets with assets declared in config.\n     * Information about the asset can be nested multiple levels deep and number of levels vary between widgets.\n     * Path is to help identify and locate the asset in the widget config in \"children\" object of the dashboard.\n     * First element of path is dashboard child id.\n     * e.g. for widget of id \"12345678\"\n     * ```ts\n     * \"12345678\": {\n     * ...\n     *  \"config\": {\n     *   \"datapoints\": [\n     *     {\n     *       \"id\": \"0\",\n     *       \"__target\": {\n     *         \"id\": \"12345678\",\n     *         \"name\": \"Device name\"\n     *       }\n     *     }\n     *   ]\n     *  }\n     * }\n     *\n     * ```\n     * path to asset will be:\n     * ```ts\n     * ['12345678', 'config', 'datapoints', '0', '__target']\n     * ```\n     */\n    path: string[];\n    /**\n     * Device reference object. Contains information about origin asset and asset suggested for import.\n     */\n    value: IManagedObject & { suggestedDevice?: IManagedObject };\n  };\n};\n","import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { ContextRouteService, PreviewService, TabFactory, ViewContext } from '@c8y/ngx-components';\nimport {\n  DASHBOARD_DETAILS_OUTLET,\n  DASHBOARD_DETAILS_TABS_OUTLET_NAME\n} from '@c8y/ngx-components/context-dashboard';\nimport { ActivatedRoute } from '@angular/router';\nimport { ADVANCED_TAB_FEATURE_KEY } from './advanced-tab.model';\nimport { map } from 'rxjs';\n\nexport const TAB_ID = 'advanced';\n\n@Injectable()\nexport class AdvancedTabFactory implements TabFactory {\n  private activatedRoute = inject(ActivatedRoute);\n  private contextRouteService = inject(ContextRouteService);\n  private readonly betaPreviewService = inject(PreviewService);\n\n  get() {\n    return this.betaPreviewService.getState$(ADVANCED_TAB_FEATURE_KEY).pipe(\n      map(state => {\n        if (state) {\n          const rootContext = this.contextRouteService.getRootContextOfChild(this.activatedRoute);\n          if (rootContext === ViewContext.Dashboard) {\n            return [\n              {\n                label: gettext('Import / Export`dashboard configuration`'),\n                icon: 'input-output',\n                priority: 5,\n                path: [{ outlets: { [DASHBOARD_DETAILS_OUTLET]: TAB_ID } }],\n                tabsOutlet: DASHBOARD_DETAILS_TABS_OUTLET_NAME\n              }\n            ];\n          }\n        }\n        return [];\n      })\n    );\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { PreviewService } from '@c8y/ngx-components';\nimport { ADVANCED_TAB_FEATURE_KEY } from './advanced-tab.model';\n\n@Injectable({ providedIn: 'root' })\nexport class AdvancedTabRouteGuard {\n  private readonly betaPreviewService = inject(PreviewService);\n\n  canActivate(): Observable<boolean> {\n    return this.betaPreviewService.getState$(ADVANCED_TAB_FEATURE_KEY);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { hookPreview, hookRoute, hookTab, ViewContext } from '@c8y/ngx-components';\nimport { AdvancedTabFactory, TAB_ID } from './advanced-tab.factory';\nimport { ADVANCED_TAB_FEATURE_KEY } from './advanced-tab.model';\nimport { DASHBOARD_DETAILS_OUTLET } from '@c8y/ngx-components/context-dashboard';\nimport { AdvancedTabRouteGuard } from './advanced-tab-route.guard';\n\n@NgModule({\n  providers: [\n    hookTab(AdvancedTabFactory),\n    hookRoute([\n      {\n        path: TAB_ID,\n        loadComponent: () =>\n          import('./dashboard-details-advanced-tab.component').then(\n            m => m.DashboardDetailsAdvancedTabComponent\n          ),\n        outlet: DASHBOARD_DETAILS_OUTLET,\n        context: ViewContext.Dashboard,\n        canActivate: [AdvancedTabRouteGuard]\n      }\n    ]),\n    hookPreview({\n      key: ADVANCED_TAB_FEATURE_KEY,\n      label: 'Dashboard details - Import / Export tab',\n      description: () =>\n        import('@c8y/style/markdown-files/dashboard-details-import-export-tab.md').then(\n          m => m.default\n        ),\n      settings: { reload: true }\n    })\n  ]\n})\nexport class DashboardDetailsAdvancedTabModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}