{"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 { gettext } from '@c8y/ngx-components/gettext';\nimport {\n  DocLink,\n  NavigatorNode,\n  NavigatorService,\n  LoadingComponent,\n  ProductExperienceDirective,\n  QuickLinkComponent,\n  C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { Subscription } from 'rxjs';\nimport { NgIf, NgFor, NgClass } from '@angular/common';\n\ntype QuickLink = Pick<DocLink, 'label' | 'click' | 'icon'>;\n\n@Component({\n  selector: 'c8y-welcome-to-devicemanagement',\n  templateUrl: './welcome.component.html',\n  imports: [\n    NgIf,\n    LoadingComponent,\n    NgFor,\n    ProductExperienceDirective,\n    NgClass,\n    QuickLinkComponent,\n    C8yTranslatePipe\n  ]\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, 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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"}