{"version":3,"file":"c8y-ngx-components-widgets-implementations-device-management-welcome.mjs","sources":["../../widgets/implementations/device-management-welcome/welcome.component.ts","../../widgets/implementations/device-management-welcome/welcome.component.html","../../widgets/implementations/device-management-welcome/device-management-welcome-widget.module.ts","../../widgets/implementations/device-management-welcome/c8y-ngx-components-widgets-implementations-device-management-welcome.ts"],"sourcesContent":["import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DocLink, NavigatorNode, NavigatorService, gettext } from '@c8y/ngx-components';\nimport { Subscription } from 'rxjs';\ntype QuickLink = Pick<DocLink, 'label' | 'click' | 'icon'>;\n\n@Component({\n  selector: 'c8y-welcome-to-devicemanagement',\n  templateUrl: './welcome.component.html',\n  standalone: false\n})\nexport class WelcomeToDeviceManagementComponent implements OnInit, OnDestroy {\n  quickLinks: QuickLink[] = [];\n  isLoading = true;\n\n  private navNodes: NavigatorNode[];\n  private navSubscription: Subscription;\n\n  constructor(\n    private router: Router,\n    private navigator: NavigatorService\n  ) {}\n\n  async ngOnInit() {\n    this.navSubscription = this.navigator.items$.subscribe(nodes => {\n      this.navNodes = nodes;\n      this.createAllDevicesQuickLink();\n      this.createQuicklinkRegisterDevice();\n      this.createQuicklinkAddGroup();\n      this.createAddDeviceProfileQuickLink();\n      this.createAddSoftwareQuickLink();\n      this.createAddFirmwareQuickLink();\n      this.isLoading = false;\n    });\n  }\n\n  ngOnDestroy() {\n    if (this.navSubscription && !this.navSubscription.closed) {\n      this.navSubscription.unsubscribe();\n    }\n  }\n\n  private createAllDevicesQuickLink() {\n    this.createQuickLinkToNavNode(['Devices', 'All devices']);\n  }\n\n  private createQuicklinkRegisterDevice() {\n    this.createQuickLinkToNavNode(['Devices', 'Registration'], {\n      label: gettext('Register device')\n    });\n  }\n\n  private createQuicklinkAddGroup() {\n    this.createQuickLinkToNavNode(['Groups'], {\n      label: gettext('Add group'),\n      icon: 'c8y-group-add',\n      click: async () =>\n        await this.router.navigate(['group'], { queryParams: { showAddGroup: true } })\n    });\n  }\n\n  private createAddDeviceProfileQuickLink() {\n    this.createQuickLinkToNavNode(['Management', 'Device profiles'], {\n      label: gettext('Add device profile')\n    });\n  }\n\n  private createAddSoftwareQuickLink() {\n    this.createQuickLinkToNavNode(['Management', 'Software repository'], {\n      label: gettext('Add software')\n    });\n  }\n\n  private createAddFirmwareQuickLink() {\n    this.createQuickLinkToNavNode(['Management', 'Firmware repository'], {\n      label: gettext('Add firmware')\n    });\n  }\n\n  private createQuickLinkToNavNode(\n    navNodePathLabels: string[],\n    quickLinkOverrides: Partial<DocLink> = {}\n  ) {\n    const navNode = this.findVisibleNavNode(navNodePathLabels);\n\n    if (!navNode) {\n      return;\n    }\n\n    const quickLink = {\n      icon: navNode.icon,\n      label: navNode.label,\n      click: async () => {\n        await this.router.navigateByUrl(navNode.path);\n      },\n      ...quickLinkOverrides\n    };\n    this.quickLinks.push(quickLink);\n  }\n\n  private findVisibleNavNode(\n    navNodePathLabels: string[],\n    navNodes: NavigatorNode[] = this.navNodes\n  ): NavigatorNode {\n    const currentLabel = navNodePathLabels.shift();\n    const navNode = navNodes.find(navNode => !navNode.hidden && navNode.label === currentLabel);\n    if (navNode && navNodePathLabels.length > 0) {\n      return this.findVisibleNavNode(navNodePathLabels, navNode.children);\n    }\n    return navNode;\n  }\n}\n","<div\n  class=\"welcome-widget\"\n  tabindex=\"0\"\n>\n  <div\n    class=\"p-16 text-center\"\n    *ngIf=\"isLoading\"\n  >\n    <c8y-loading></c8y-loading>\n  </div>\n  <div\n    class=\"d-flex fit-h\"\n    *ngIf=\"!isLoading\"\n  >\n    <div class=\"col-xs-12 a-s-stretch col-md-12\">\n      <div class=\"card-group interact-grid fit-h\">\n        <div\n          class=\"col-xs-4 no-gutter\"\n          *ngFor=\"let link of quickLinks\"\n        >\n          <button\n            class=\"btn-clean card text-pre-normal\"\n            [title]=\"link.label | translate\"\n            type=\"button\"\n            [ngClass]=\"{ 'm-b-0': true }\"\n            (click)=\"link.click ? link.click() : false\"\n            c8yProductExperience\n            [actionName]=\"'welcomeWidgetClicked'\"\n            [actionData]=\"{ link: link.label }\"\n            data-cy=\"devicemanagement-welcome--quick-link\"\n          >\n            <c8y-quick-link\n              [icon]=\"link.icon\"\n              [label]=\"link.label\"\n            ></c8y-quick-link>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CoreModule, QuickLinkModule } from '@c8y/ngx-components';\nimport { WelcomeToDeviceManagementComponent } from './welcome.component';\n\n/**\n * @deprecated\n */\n@NgModule({\n  imports: [CoreModule, QuickLinkModule, RouterModule],\n  declarations: [WelcomeToDeviceManagementComponent]\n})\nexport class DeviceManagementWelcomeWidgetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}