{"version":3,"file":"ng-doc-app-components-search-result.mjs","sources":["../../../../libs/app/components/search-result/search-result.component.ts","../../../../libs/app/components/search-result/search-result.component.html","../../../../libs/app/components/search-result/ng-doc-app-components-search-result.ts"],"sourcesContent":["import { KeyValuePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { NgDocKindIconComponent } from '@ng-doc/app/components/kind-icon';\nimport { NgDocPageInfo } from '@ng-doc/core/interfaces';\nimport { NgDocTextComponent, NgDocTooltipDirective } from '@ng-doc/ui-kit';\n\n@Component({\n  selector: 'ng-doc-search-result',\n  templateUrl: './search-result.component.html',\n  styleUrls: ['./search-result.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [\n    NgDocTextComponent,\n    RouterLink,\n    NgDocKindIconComponent,\n    NgDocTooltipDirective,\n    KeyValuePipe,\n  ],\n})\nexport class NgDocSearchResultComponent implements OnChanges {\n  @Input()\n  result: NgDocPageInfo[] | null = [];\n\n  groupedResult: Record<string, NgDocPageInfo[]> = {};\n\n  ngOnChanges({ result }: SimpleChanges): void {\n    if (result && this.result) {\n      this.groupedResult = this.result.reduce(\n        (grouped: Record<string, NgDocPageInfo[]>, item: NgDocPageInfo) => {\n          if (!grouped[item.type]) {\n            grouped[item.type] = [];\n          }\n\n          grouped[item.type].push(item);\n\n          return grouped;\n        },\n        {},\n      );\n    }\n  }\n\n  typeToLabel(type: string): string {\n    switch (type) {\n      case 'api':\n        return 'API';\n      case 'guide':\n        return 'Guides';\n      default:\n        return 'Unknown';\n    }\n  }\n}\n","@if (groupedResult | keyvalue; as results) {\n  <div class=\"ng-doc-search-result-wrapper\">\n    @if (results.length) {\n      @for (item of results; track item) {\n        <div class=\"ng-doc-search-result-category\">\n          <h4 class=\"ng-doc-search-result-title\" ng-doc-text>{{ typeToLabel(item.key) }}</h4>\n          <ul class=\"ng-doc-search-result-pages\">\n            @for (page of item.value; track page) {\n              <li class=\"ng-doc-search-result-page\">\n                <a class=\"ng-doc-search-result-page-link\" [routerLink]=\"[page.route]\">\n                  @if (page.kind) {\n                    <ng-doc-kind-icon\n                      [kind]=\"page.kind\"\n                      [ngDocTooltip]=\"page.kind\"></ng-doc-kind-icon>\n                  }\n                  {{ page.title }}\n                </a>\n              </li>\n            }\n          </ul>\n        </div>\n      }\n    } @else {\n      <div ng-doc-text color=\"muted\">Nothing was found...</div>\n    }\n  </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}