UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

1 lines 8.72 kB
{"version":3,"file":"c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs","sources":["../../widgets/implementations/help-and-service-widget/help-and-service.model.ts","../../widgets/implementations/help-and-service-widget/help-and-service-view/help-and-service-view.component.ts","../../widgets/implementations/help-and-service-widget/help-and-service-view/help-and-service-view.component.html","../../widgets/implementations/help-and-service-widget/c8y-ngx-components-widgets-implementations-help-and-service-widget.ts"],"sourcesContent":["export const PRODUCT_EXPERIENCE_HELP_AND_SERVICE_WIDGET = {\n HELP_AND_SERVICE_LINKS: {\n EVENTS: { HELP_AND_SERVICE_LINKS: 'helpAndServiceLinks' },\n COMPONENTS: { HELP_AND_SERVICE_COMPONENT: 'right-drawer' },\n ACTIONS: {},\n RESULTS: {}\n }\n} as const;\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport {\n AppStateService,\n CoreModule,\n DocLink,\n DocLinkWithLabel,\n DocsService,\n NavigatorNode,\n NavigatorService,\n gettext\n} from '@c8y/ngx-components';\nimport { combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { PRODUCT_EXPERIENCE_HELP_AND_SERVICE_WIDGET } from '../help-and-service.model';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'c8y-help-and-service-view',\n templateUrl: './help-and-service-view.component.html',\n standalone: true,\n imports: [CoreModule, ReactiveFormsModule]\n})\nexport class HelpAndServiceViewComponent {\n PRODUCT_EXPERIENCE = PRODUCT_EXPERIENCE_HELP_AND_SERVICE_WIDGET;\n links$ = combineLatest([this.docs.items$, this.navigatorService.items$]).pipe(\n map(([links, navigatorNodes]) => this.handleDocLinks([...links], navigatorNodes))\n );\n\n constructor(\n public docs: DocsService,\n private appStateService: AppStateService,\n private navigatorService: NavigatorService,\n private router: Router\n ) {}\n\n openLink(link: DocLink, $event) {\n if (link.click) {\n $event.preventDefault();\n link.click();\n }\n }\n\n private handleDocLinks(links: DocLink[], navigatorNodes: NavigatorNode[]): DocLink[] {\n const groupLink = this.createAddGroupDocLink(navigatorNodes);\n\n if (groupLink) {\n links.push(groupLink);\n }\n return this.replaceDocsLinksWithMainOne(links);\n }\n\n private createAddGroupDocLink(navigatorNodes: NavigatorNode[]): DocLink | undefined {\n let docLink: DocLink;\n const groupsNodeLabel = gettext('Groups');\n const groupsNode = this.findNavigatorNode(groupsNodeLabel, navigatorNodes);\n\n if (groupsNode) {\n docLink = {\n type: 'quicklink',\n icon: 'c8y-icon c8y-icon-group-add',\n label: gettext('Add group'),\n url: '/group',\n click: () => this.router.navigate([docLink.url], { queryParams: { showAddGroup: true } })\n };\n }\n return docLink;\n }\n\n private replaceDocsLinksWithMainOne(links: DocLink[]): DocLink[] {\n const DOCS_PATH = '/docs/';\n let firstDocsLink = true;\n\n return links\n .map(link => {\n const isDocsLink = link.url && /\\/docs\\/(?!legal-notices)/.test(link.url);\n if (isDocsLink) {\n if (firstDocsLink) {\n firstDocsLink = false;\n // Replace the first /docs/ link with the main one\n return {\n icon: 'book-shelf',\n label: gettext('User documentation'),\n url: this.docs.getUserGuideLink(DOCS_PATH),\n type: 'doc',\n target: '_blank'\n } as DocLinkWithLabel;\n } else {\n // Filter out subsequent /docs/ links\n return null;\n }\n } else {\n return {\n ...link,\n target: this.isCurrentApp(link) ? null : '_blank'\n };\n }\n })\n .filter(link => link !== null);\n }\n\n private isCurrentApp(link: DocLink): boolean {\n const currentApp = this.appStateService.state.app;\n const destinationAppPath = (link.url?.split('/apps/')[1] || '').split('/')[0];\n return currentApp.contextPath === destinationAppPath;\n }\n\n private findNavigatorNode(nodeName: string, navNodes: NavigatorNode[] = []): NavigatorNode {\n return navNodes.find((node: NavigatorNode) => node.label === nodeName);\n }\n}\n","<div class=\"card-group-block\">\n <a\n class=\"card card--btn\"\n title=\"{{ link.label | translate }}\"\n role=\"button\"\n [attr.target]=\"link.target\"\n *ngFor=\"let link of links$ | async\"\n rel=\"noopener noreferrer\"\n [href]=\"link.url ? link.url : '#'\"\n (click)=\"openLink(link, $event)\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.HELP_AND_SERVICE_LINKS.EVENTS.HELP_AND_SERVICE_LINKS\"\n [actionData]=\"{\n component: PRODUCT_EXPERIENCE.HELP_AND_SERVICE_LINKS.COMPONENTS.HELP_AND_SERVICE_COMPONENT,\n action: link.label\n }\"\n >\n <div class=\"card-block text-center\">\n <div class=\"icon-32\">\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"link.icon\"\n ></i>\n </div>\n <small class=\"text-muted\">{{ link.label | translate }}</small>\n </div>\n </a>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}