@ng-doc/app
Version:
<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>
1 lines • 5.99 kB
Source Map (JSON)
{"version":3,"file":"ng-doc-app-components-search.mjs","sources":["../../../../libs/app/components/search/search.component.ts","../../../../libs/app/components/search/search.component.html","../../../../libs/app/components/search/ng-doc-app-components-search.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { NgDocSearchEngine } from '@ng-doc/app/classes';\nimport {\n NgDocSearchDialogComponent,\n NgDocSearchDialogData,\n} from '@ng-doc/app/components/search-dialog';\nimport { NgDocSearchResult } from '@ng-doc/app/interfaces';\nimport {\n NgDocButtonIconComponent,\n NgDocComponentContent,\n NgDocDialogService,\n NgDocDropdownOriginDirective,\n NgDocHotkeyDirective,\n NgDocIconComponent,\n NgDocInputStringDirective,\n NgDocInputWrapperComponent,\n NgDocTagComponent,\n observableState,\n StatedObservable,\n} from '@ng-doc/ui-kit';\nimport { BehaviorSubject, NEVER } from 'rxjs';\nimport { shareReplay, skip, switchMap } from 'rxjs/operators';\n\n@Component({\n selector: 'ng-doc-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgDocButtonIconComponent,\n NgDocDropdownOriginDirective,\n NgDocIconComponent,\n NgDocInputWrapperComponent,\n NgDocInputStringDirective,\n FormsModule,\n NgDocHotkeyDirective,\n NgDocTagComponent,\n ],\n})\nexport class NgDocSearchComponent {\n protected readonly query: BehaviorSubject<string> = new BehaviorSubject<string>('');\n protected readonly searchResults: StatedObservable<NgDocSearchResult[]>;\n protected readonly dialog = inject(NgDocDialogService);\n protected readonly searchEngine = inject(NgDocSearchEngine, { optional: true });\n\n constructor() {\n if (!this.searchEngine) {\n throw new Error(`NgDoc: Search engine is not provided,\n\t\t\tplease check this article: https://ng-doc.com/docs/getting-started/installation#configuring-application\n\t\t\tto learn how to provide it.`);\n }\n\n this.searchResults = this.query.pipe(\n skip(1),\n switchMap((term: string) => this.searchEngine?.search(term).pipe(observableState()) ?? NEVER),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n }\n\n open(): void {\n this.dialog.open<NgDocSearchDialogData>(new NgDocComponentContent(NgDocSearchDialogComponent), {\n hasBackdrop: true,\n backdropClass: 'ng-doc-blur-backdrop',\n panelClass: 'ng-doc-transparent-dialog',\n positionStrategy: this.dialog.positionStrategy().centerHorizontally().top('5vh'),\n data: {\n term: this.query.value,\n search: (query: string) => this.query.next(query),\n searchResults: this.searchResults,\n },\n });\n }\n}\n","<ng-container\n [ngDocHotkey]=\"{ ctrlKey: false, altKey: false, shiftKey: false, code: 'Slash' }\"\n (ngDocHotkey)=\"open()\">\n <button ng-doc-button-icon size=\"large\" (click)=\"open()\" ngDocDropdownOrigin>\n <ng-doc-icon icon=\"search\" [size]=\"24\"></ng-doc-icon>\n </button>\n\n <ng-doc-input-wrapper ngDocDropdownOrigin>\n <ng-doc-icon icon=\"search\" ngDocInputWrapperLeft></ng-doc-icon>\n <input ngDocInputString readonly placeholder=\"Search...\" (click)=\"open()\" />\n <ng-doc-tag class=\"search-hotkey\" ngDocInputWrapperRight>/</ng-doc-tag>\n </ng-doc-input-wrapper>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}