@ng-doc/app 15.11.3 → 15.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +1 -1
  2. package/components/navbar/navbar.component.d.ts +9 -1
  3. package/components/playground/index.d.ts +1 -0
  4. package/components/playground/playground-properties/playground-properties.component.d.ts +12 -3
  5. package/components/playground/playground-property/playground-property.component.d.ts +6 -7
  6. package/components/playground/playground-property-control.d.ts +7 -0
  7. package/components/playground/playground.module.d.ts +1 -1
  8. package/components/root/root.component.d.ts +26 -2
  9. package/components/root/root.module.d.ts +3 -2
  10. package/esm2020/components/breadcrumb/breadcrumb.component.mjs +2 -2
  11. package/esm2020/components/navbar/navbar.component.mjs +20 -4
  12. package/esm2020/components/page/page.component.mjs +2 -2
  13. package/esm2020/components/playground/index.mjs +2 -1
  14. package/esm2020/components/playground/playground-properties/playground-properties.component.mjs +76 -7
  15. package/esm2020/components/playground/playground-property/playground-property.component.mjs +21 -48
  16. package/esm2020/components/playground/playground-property-control.mjs +2 -0
  17. package/esm2020/components/playground/playground.module.mjs +10 -4
  18. package/esm2020/components/root/root.component.mjs +49 -6
  19. package/esm2020/components/root/root.module.mjs +6 -5
  20. package/esm2020/components/search/search.component.mjs +3 -3
  21. package/esm2020/components/theme-toggle/theme-toggle.component.mjs +3 -3
  22. package/esm2020/constants/store-keys.mjs +2 -2
  23. package/esm2020/helpers/index.mjs +2 -1
  24. package/esm2020/helpers/is-dark-os-theme.mjs +7 -0
  25. package/esm2020/interfaces/application-config.mjs +1 -1
  26. package/esm2020/interfaces/type-control-provider-options.mjs +1 -1
  27. package/esm2020/modules/root/ng-doc.module.mjs +6 -2
  28. package/esm2020/services/sidebar/sidebar.service.mjs +28 -24
  29. package/esm2020/services/theme/theme.service.mjs +61 -13
  30. package/esm2020/type-controls/boolean-control/boolean-control.module.mjs +2 -2
  31. package/esm2020/type-controls/number-control/number-control.module.mjs +2 -2
  32. package/esm2020/type-controls/string-control/string-control.module.mjs +2 -2
  33. package/esm2020/type-controls/type-alias-control/type-alias-control.module.mjs +2 -2
  34. package/fesm2015/ng-doc-app-components-breadcrumb.mjs +2 -2
  35. package/fesm2015/ng-doc-app-components-breadcrumb.mjs.map +1 -1
  36. package/fesm2015/ng-doc-app-components-navbar.mjs +19 -3
  37. package/fesm2015/ng-doc-app-components-navbar.mjs.map +1 -1
  38. package/fesm2015/ng-doc-app-components-page.mjs +2 -2
  39. package/fesm2015/ng-doc-app-components-page.mjs.map +1 -1
  40. package/fesm2015/ng-doc-app-components-playground.mjs +111 -60
  41. package/fesm2015/ng-doc-app-components-playground.mjs.map +1 -1
  42. package/fesm2015/ng-doc-app-components-root.mjs +52 -9
  43. package/fesm2015/ng-doc-app-components-root.mjs.map +1 -1
  44. package/fesm2015/ng-doc-app-components-search.mjs +2 -2
  45. package/fesm2015/ng-doc-app-components-search.mjs.map +1 -1
  46. package/fesm2015/ng-doc-app-components-theme-toggle.mjs +2 -2
  47. package/fesm2015/ng-doc-app-components-theme-toggle.mjs.map +1 -1
  48. package/fesm2015/ng-doc-app-constants.mjs +1 -1
  49. package/fesm2015/ng-doc-app-constants.mjs.map +1 -1
  50. package/fesm2015/ng-doc-app-helpers.mjs +8 -1
  51. package/fesm2015/ng-doc-app-helpers.mjs.map +1 -1
  52. package/fesm2015/ng-doc-app-modules-root.mjs +5 -1
  53. package/fesm2015/ng-doc-app-modules-root.mjs.map +1 -1
  54. package/fesm2015/ng-doc-app-services-sidebar.mjs +27 -23
  55. package/fesm2015/ng-doc-app-services-sidebar.mjs.map +1 -1
  56. package/fesm2015/ng-doc-app-services-theme.mjs +60 -12
  57. package/fesm2015/ng-doc-app-services-theme.mjs.map +1 -1
  58. package/fesm2015/ng-doc-app-type-controls-boolean-control.mjs +1 -1
  59. package/fesm2015/ng-doc-app-type-controls-boolean-control.mjs.map +1 -1
  60. package/fesm2015/ng-doc-app-type-controls-number-control.mjs +1 -1
  61. package/fesm2015/ng-doc-app-type-controls-number-control.mjs.map +1 -1
  62. package/fesm2015/ng-doc-app-type-controls-string-control.mjs +1 -1
  63. package/fesm2015/ng-doc-app-type-controls-string-control.mjs.map +1 -1
  64. package/fesm2015/ng-doc-app-type-controls-type-alias-control.mjs +1 -1
  65. package/fesm2015/ng-doc-app-type-controls-type-alias-control.mjs.map +1 -1
  66. package/fesm2020/ng-doc-app-components-breadcrumb.mjs +2 -2
  67. package/fesm2020/ng-doc-app-components-breadcrumb.mjs.map +1 -1
  68. package/fesm2020/ng-doc-app-components-navbar.mjs +19 -3
  69. package/fesm2020/ng-doc-app-components-navbar.mjs.map +1 -1
  70. package/fesm2020/ng-doc-app-components-page.mjs +2 -2
  71. package/fesm2020/ng-doc-app-components-page.mjs.map +1 -1
  72. package/fesm2020/ng-doc-app-components-playground.mjs +109 -60
  73. package/fesm2020/ng-doc-app-components-playground.mjs.map +1 -1
  74. package/fesm2020/ng-doc-app-components-root.mjs +52 -9
  75. package/fesm2020/ng-doc-app-components-root.mjs.map +1 -1
  76. package/fesm2020/ng-doc-app-components-search.mjs +2 -2
  77. package/fesm2020/ng-doc-app-components-search.mjs.map +1 -1
  78. package/fesm2020/ng-doc-app-components-theme-toggle.mjs +2 -2
  79. package/fesm2020/ng-doc-app-components-theme-toggle.mjs.map +1 -1
  80. package/fesm2020/ng-doc-app-constants.mjs +1 -1
  81. package/fesm2020/ng-doc-app-constants.mjs.map +1 -1
  82. package/fesm2020/ng-doc-app-helpers.mjs +8 -1
  83. package/fesm2020/ng-doc-app-helpers.mjs.map +1 -1
  84. package/fesm2020/ng-doc-app-modules-root.mjs +5 -1
  85. package/fesm2020/ng-doc-app-modules-root.mjs.map +1 -1
  86. package/fesm2020/ng-doc-app-services-sidebar.mjs +27 -23
  87. package/fesm2020/ng-doc-app-services-sidebar.mjs.map +1 -1
  88. package/fesm2020/ng-doc-app-services-theme.mjs +60 -12
  89. package/fesm2020/ng-doc-app-services-theme.mjs.map +1 -1
  90. package/fesm2020/ng-doc-app-type-controls-boolean-control.mjs +1 -1
  91. package/fesm2020/ng-doc-app-type-controls-boolean-control.mjs.map +1 -1
  92. package/fesm2020/ng-doc-app-type-controls-number-control.mjs +1 -1
  93. package/fesm2020/ng-doc-app-type-controls-number-control.mjs.map +1 -1
  94. package/fesm2020/ng-doc-app-type-controls-string-control.mjs +1 -1
  95. package/fesm2020/ng-doc-app-type-controls-string-control.mjs.map +1 -1
  96. package/fesm2020/ng-doc-app-type-controls-type-alias-control.mjs +1 -1
  97. package/fesm2020/ng-doc-app-type-controls-type-alias-control.mjs.map +1 -1
  98. package/helpers/index.d.ts +1 -0
  99. package/helpers/is-dark-os-theme.d.ts +4 -0
  100. package/interfaces/application-config.d.ts +11 -1
  101. package/interfaces/type-control-provider-options.d.ts +5 -0
  102. package/package.json +3 -3
  103. package/services/sidebar/sidebar.service.d.ts +3 -10
  104. package/services/theme/theme.service.d.ts +23 -3
  105. package/styles/global.css +11 -2
  106. package/styles/main.css +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-components-playground.mjs","sources":["../../../../libs/app/components/playground/base-playground.ts","../../../../libs/app/components/playground/playground-property/playground-property.component.ts","../../../../libs/app/components/playground/playground-property/playground-property.component.html","../../../../libs/app/components/playground/playground-properties/playground-properties.component.ts","../../../../libs/app/components/playground/playground-properties/playground-properties.component.html","../../../../libs/app/components/playground/playground-demo/playground-demo.component.ts","../../../../libs/app/components/playground/playground-demo/playground-demo.component.html","../../../../libs/app/components/playground/playground.component.ts","../../../../libs/app/components/playground/playground.component.html","../../../../libs/app/components/playground/playground.module.ts","../../../../libs/app/components/playground/ng-doc-app-components-playground.ts"],"sourcesContent":["import {Directive, Type, ViewContainerRef} from '@angular/core';\nimport {NgDocPlaygroundConfig} from '@ng-doc/core/interfaces';\n\n/**\n * Base class for playgrounds components.\n */\n@Directive()\nexport abstract class NgDocBasePlayground implements Pick<NgDocPlaygroundConfig, 'data'> {\n\tstatic readonly selector: string = 'unknown';\n\tabstract readonly playground?: Type<unknown>;\n\tabstract readonly viewContainerRef?: ViewContainerRef;\n\n\tdata: Record<string, unknown> = {};\n\tcontent: any = {};\n}\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tComponentRef,\n\tHostBinding,\n\tInjectionToken,\n\tInjector,\n\tInput,\n\tisDevMode,\n\tOnChanges,\n\tSimpleChanges,\n\tViewChild,\n\tViewContainerRef,\n} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {isPlaygroundProperty} from '@ng-doc/app/helpers';\nimport {getTokenForType} from '@ng-doc/app/helpers';\nimport {NgDocProvidedTypeControl, NgDocTypeControl, NgDocTypeControlProviderOptions} from '@ng-doc/app/interfaces';\nimport {extractValueOrThrow} from '@ng-doc/core/helpers/extract-value';\nimport {NgDocPlaygroundContent, NgDocPlaygroundProperty} from '@ng-doc/core/interfaces';\n\n@Component({\n\tselector: 'ng-doc-playground-property',\n\ttemplateUrl: './playground-property.component.html',\n\tstyleUrls: ['./playground-property.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgDocPlaygroundPropertyComponent implements OnChanges {\n\t@Input()\n\tname: string = '';\n\n\t@Input()\n\tproperty?: NgDocPlaygroundProperty | NgDocPlaygroundContent;\n\n\t@Input()\n\tcontrol?: FormControl;\n\n\t@ViewChild('propertyOutlet', {read: ViewContainerRef, static: true})\n\tpropertyOutlet?: ViewContainerRef;\n\n\toption?: NgDocTypeControlProviderOptions;\n\n\tprivate propertyControl?: ComponentRef<NgDocTypeControl>;\n\n\tconstructor(private readonly injector: Injector) {}\n\n\tngOnChanges({property, control}: SimpleChanges): void {\n\t\tif (property && this.property) {\n\t\t\tthis.propertyControl?.destroy();\n\t\t\tthis.propertyControl = undefined;\n\n\t\t\tconst type: string = isPlaygroundProperty(this.property) ? this.property.type : 'boolean';\n\t\t\tconst typeControl: NgDocProvidedTypeControl | undefined =\n\t\t\t\tthis.getControlForType(type) ??\n\t\t\t\tthis.getControlForTypeAlias(isPlaygroundProperty(this.property) ? this.property.options : undefined);\n\n\t\t\tif (typeControl && this.propertyOutlet) {\n\t\t\t\tthis.propertyControl = this.propertyOutlet.createComponent(typeControl.control);\n\t\t\t\tthis.propertyControl.instance.name = this.name;\n\t\t\t\tthis.propertyControl.instance.description = this.tooltipContent;\n\t\t\t\tthis.propertyControl.instance.options = isPlaygroundProperty(this.property)\n\t\t\t\t\t? this.property.options\n\t\t\t\t\t: undefined;\n\t\t\t\tthis.propertyControl.instance.default = isPlaygroundProperty(this.property)\n\t\t\t\t\t? this.property.default\n\t\t\t\t\t: undefined;\n\t\t\t\tthis.propertyControl.instance.writeValue(this.control?.value);\n\n\t\t\t\tthis.option = typeControl.options;\n\t\t\t} else if (isDevMode()) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`NgDocPlayground didn't find the control for the @Input \"${this.name}\", the type \"${type}\" was not recognized'`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (control) {\n\t\t\tthis.control?.registerOnChange((value: string) => this.propertyControl?.instance?.writeValue(value));\n\t\t\tthis.propertyControl?.instance.registerOnChange((value: unknown) => this.control?.setValue(value));\n\t\t\tthis.propertyControl?.instance.registerOnTouched(() => this.control?.markAsTouched());\n\t\t}\n\t}\n\n\t@HostBinding('attr.data-has-property-control')\n\tget hasPropertyControl(): boolean {\n\t\treturn !!this.propertyControl;\n\t}\n\n\tget tooltipContent(): string {\n\t\treturn this.property && isPlaygroundProperty(this.property) ? this.property.description ?? '' : '';\n\t}\n\n\tprivate getControlForType(type: string): NgDocProvidedTypeControl | undefined {\n\t\tconst token: InjectionToken<NgDocProvidedTypeControl> | undefined = getTokenForType(type);\n\n\t\treturn token ? this.injector.get(token) : undefined;\n\t}\n\n\tprivate getControlForTypeAlias(options?: string[]): NgDocProvidedTypeControl | undefined {\n\t\tif (options && options.length) {\n\t\t\tlet optionsIsValid: boolean = true;\n\n\t\t\ttry {\n\t\t\t\t// checking that all values are extractable\n\t\t\t\toptions.forEach((item: string) => extractValueOrThrow(item));\n\t\t\t} catch {\n\t\t\t\toptionsIsValid = false;\n\t\t\t}\n\n\t\t\tif (optionsIsValid) {\n\t\t\t\tconst token: InjectionToken<NgDocProvidedTypeControl> | undefined = getTokenForType('NgDocTypeAlias');\n\n\t\t\t\treturn token ? this.injector.get(token) : undefined;\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n}\n","<label [ng-doc-label]=\"option?.hideLabel ? '' : labelContent\">\n\t<ng-template #labelContent>\n\t\t<span [ngDocTooltip]=\"tooltipContent\" [canOpen]=\"!!tooltipContent\"\n\t\t\t [positions]=\"['left-center', 'top-right', 'bottom-right']\">{{name}}</span>\n\t</ng-template>\n\t<ng-container #propertyOutlet></ng-container>\n</label>\n","import {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormControl, FormGroup} from '@angular/forms';\nimport {NgDocPlaygroundContent, NgDocPlaygroundProperties} from '@ng-doc/core/interfaces';\nimport {Observable} from 'rxjs';\nimport {pluck} from 'rxjs/operators';\n\nimport {NgDocPlaygroundForm} from '../playground-form';\n\n@Component({\n\tselector: 'ng-doc-playground-properties',\n\ttemplateUrl: './playground-properties.component.html',\n\tstyleUrls: ['./playground-properties.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgDocPlaygroundPropertiesComponent<\n\tP extends NgDocPlaygroundProperties,\n\tC extends Record<string, NgDocPlaygroundContent>,\n> {\n\t@Input()\n\tform!: FormGroup<NgDocPlaygroundForm>;\n\n\t@Input()\n\tproperties?: P;\n\n\t@Input()\n\tdynamicContent?: C;\n\n\t@Input()\n\trecreateDemo: boolean = false;\n\n\t@Output()\n\trecreateDemoChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n\t@Output()\n\tresetForm: EventEmitter<void> = new EventEmitter<void>();\n\n\treadonly breakpoints: string[] = [Breakpoints.XSmall];\n\treadonly observer: Observable<boolean>;\n\n\tconstructor(protected readonly breakpointObserver: BreakpointObserver) {\n\t\tthis.observer = this.breakpointObserver.observe(this.breakpoints).pipe(pluck('matches'));\n\t}\n\n\tgetFormControl(controlType: keyof typeof this.form.controls, key: string): FormControl {\n\t\treturn this.form.get(controlType)?.get(key) as FormControl;\n\t}\n}\n","<div class=\"ng-doc-playground-properties-wrapper\" [class.vertical]=\"observer | async\">\n\t<div class=\"ng-doc-playground-demos\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"ng-doc-playground-properties\">\n\t\t<div class=\"ng-doc-playground-header\">\n\t\t\t<h4 ng-doc-text>Playground</h4>\n\t\t\t<button ng-doc-button color=\"red\" (click)=\"resetForm.emit()\">Reset</button>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-setting\">\n\t\t\t<ng-doc-checkbox [(ngModel)]=\"recreateDemo\" (ngModelChange)=\"recreateDemoChange.emit($event)\">\n\t\t\t\t<span\n\t\t\t\t\tng-doc-text\n\t\t\t\t\t[ngDocTooltip]=\"'Recreates demo everytime\\none of the input has changed'\"\n\t\t\t\t\t[positions]=\"['bottom-right', 'left-center']\"\n\t\t\t\t>\n\t\t\t\t\tRecreate\n\t\t\t\t\t<ng-doc-icon icon=\"info\" ngDocTextRight></ng-doc-icon>\n\t\t\t\t</span>\n\t\t\t</ng-doc-checkbox>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-divider\"></div>\n\t\t<ng-container *ngIf=\"(properties | keyvalue)?.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Settings</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let property of properties | keyvalue\"\n\t\t\t\t[name]=\"property.value.name\"\n\t\t\t\t[property]=\"property.value\"\n\t\t\t\t[control]=\"getFormControl('properties', property.key)\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\n\t\t<ng-container *ngIf=\"(dynamicContent | keyvalue)?.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Content</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let content of dynamicContent | keyvalue\"\n\t\t\t\t[name]=\"content.value.label\"\n\t\t\t\t[property]=\"content.value\"\n\t\t\t\t[control]=\"getFormControl('content', content.key)\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\t</div>\n</div>\n","import {\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tComponentRef,\n\tInjectionToken,\n\tInjector,\n\tInput,\n\tOnChanges,\n\tOnDestroy,\n\tSimpleChanges,\n\tType,\n\tViewChild,\n\tViewContainerRef,\n} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {NgDocRootPage} from '@ng-doc/app/classes/root-page';\nimport {getPlaygroundDemoToken} from '@ng-doc/app/helpers';\nimport {NgDocFormPartialValue} from '@ng-doc/app/types';\nimport {buildPlaygroundDemoTemplate} from '@ng-doc/core/helpers/build-playground-demo-template';\nimport {formatHtml} from '@ng-doc/core/helpers/format-html';\nimport {objectKeys} from '@ng-doc/core/helpers/object-keys';\nimport {NgDocPlaygroundConfig, NgDocPlaygroundProperties, NgDocPlaygroundProperty} from '@ng-doc/core/interfaces';\nimport {NgDocExtractedValue} from '@ng-doc/core/types';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {Observable, of, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {NgDocBasePlayground} from '../base-playground';\nimport {NgDocPlaygroundForm} from '../playground-form';\n\n@Component({\n\tselector: 'ng-doc-playground-demo',\n\ttemplateUrl: './playground-demo.component.html',\n\tstyleUrls: ['./playground-demo.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\n@UntilDestroy()\nexport class NgDocPlaygroundDemoComponent<T extends NgDocPlaygroundProperties = NgDocPlaygroundProperties>\n\timplements OnChanges, OnDestroy\n{\n\t@Input()\n\tid: string = '';\n\n\t@Input()\n\tselector: string = '';\n\n\t@Input()\n\tconfiguration?: NgDocPlaygroundConfig;\n\n\t@Input()\n\tproperties?: T;\n\n\t@Input()\n\trecreateDemo: boolean = false;\n\n\t@Input()\n\tform!: FormGroup<NgDocPlaygroundForm>;\n\n\t@ViewChild('demoOutlet', {static: true, read: ViewContainerRef})\n\tdemoOutlet?: ViewContainerRef;\n\n\tplaygroundDemo?: typeof NgDocBasePlayground;\n\n\tcode: Observable<string> = of('');\n\n\tprivate demoRef?: ComponentRef<NgDocBasePlayground>;\n\tprivate readonly unsubscribe$: Subject<void> = new Subject<void>();\n\n\tconstructor(private readonly rootPage: NgDocRootPage, private readonly injector: Injector) {}\n\n\tngOnChanges({form, id}: SimpleChanges): void {\n\t\tif (form && id) {\n\t\t\tthis.unsubscribe$.next();\n\n\t\t\tconst demoInjector: InjectionToken<Array<typeof NgDocBasePlayground>> | undefined = getPlaygroundDemoToken(\n\t\t\t\tthis.id,\n\t\t\t);\n\n\t\t\tif (demoInjector) {\n\t\t\t\tconst demos: Array<typeof NgDocBasePlayground> = this.injector.get(demoInjector, []);\n\t\t\t\tthis.playgroundDemo = demos.find((demo: typeof NgDocBasePlayground) => demo.selector === this.selector);\n\t\t\t}\n\n\t\t\tthis.updateDemo();\n\n\t\t\tthis.form?.valueChanges\n\t\t\t\t.pipe(takeUntil(this.unsubscribe$), untilDestroyed(this))\n\t\t\t\t.subscribe((data: NgDocFormPartialValue<typeof this.form>) => this.updateDemo(data));\n\t\t}\n\t}\n\n\tprivate updateDemo(data?: NgDocFormPartialValue<typeof this.form>): void {\n\t\tif (this.recreateDemo || !this.demoRef) {\n\t\t\tthis.renderDemo();\n\t\t}\n\n\t\tif (data) {\n\t\t\tObject.assign(this.demoRef?.instance.playground ?? {}, data.properties);\n\t\t\tObject.assign(this.demoRef?.instance.content ?? {}, data.content);\n\t\t\tthis.demoRef?.instance?.viewContainerRef?.injector.get(ChangeDetectorRef)?.markForCheck();\n\t\t}\n\n\t\tthis.updateCodeView();\n\t}\n\n\tprivate renderDemo(): void {\n\t\tif (this.playgroundDemo) {\n\t\t\tthis.demoRef?.destroy();\n\n\t\t\tif (this.playgroundDemo) {\n\t\t\t\tthis.demoRef = this.demoOutlet?.createComponent(\n\t\t\t\t\tthis.playgroundDemo as unknown as Type<NgDocBasePlayground>,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.demoRef?.changeDetectorRef.markForCheck();\n\t\t}\n\t}\n\n\tprivate updateCodeView(): void {\n\t\tconst template: string = buildPlaygroundDemoTemplate(\n\t\t\tthis.configuration?.template ?? '',\n\t\t\tthis.selector,\n\t\t\tthis.getActiveContent(),\n\t\t\tthis.getActiveInputs(),\n\t\t);\n\n\t\tthis.code = formatHtml(template);\n\t}\n\n\tprivate getActiveContent(): Record<string, string> {\n\t\tconst formData: Record<string, boolean> = (this.form?.controls.content.value as Record<string, boolean>) ?? {};\n\n\t\treturn objectKeys(formData).reduce((result: Record<string, string>, key: string) => {\n\t\t\tresult[key] = formData[key] ? this.configuration?.content?.[key].template ?? '' : '';\n\n\t\t\treturn result;\n\t\t}, {});\n\t}\n\n\tprivate getActiveInputs(): Record<string, string> {\n\t\tconst formData: Record<string, NgDocExtractedValue> =\n\t\t\t(this.form?.controls.properties.value as Record<string, NgDocExtractedValue>) ?? {};\n\n\t\treturn objectKeys(formData).reduce((result: Record<string, string>, key: string) => {\n\t\t\tconst property: NgDocPlaygroundProperty | undefined = this.properties?.[key];\n\n\t\t\tif (property) {\n\t\t\t\tconst value: NgDocExtractedValue = formData[key];\n\t\t\t\tconst isString: boolean = typeof value === 'string';\n\t\t\t\tconst inputValue: string = isString ? `'${value}'` : `${JSON.stringify(value)}`;\n\n\t\t\t\tif ((property.default ?? '') !== inputValue) {\n\t\t\t\t\tresult[property.name] = inputValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}, {});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.unsubscribe$.next();\n\t\tthis.unsubscribe$.complete();\n\t}\n}\n","<ng-doc-demo-displayer [code]=\"(code | async) ?? ''\" [border]=\"false\" language=\"html\">\n\t<ng-container #demoOutlet></ng-container>\n</ng-doc-demo-displayer>\n","import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';\nimport {FormBuilder, FormGroup} from '@angular/forms';\nimport {NgDocRootPage} from '@ng-doc/app/classes/root-page';\nimport {extractValue} from '@ng-doc/core/helpers/extract-value';\nimport {objectKeys} from '@ng-doc/core/helpers/object-keys';\nimport {NgDocPlaygroundConfig, NgDocPlaygroundProperties} from '@ng-doc/core/interfaces';\nimport {NgDocExtractedValue} from '@ng-doc/core/types';\n\nimport {NgDocPlaygroundForm} from './playground-form';\n\n@Component({\n\tselector: 'ng-doc-playground',\n\ttemplateUrl: './playground.component.html',\n\tstyleUrls: ['./playground.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgDocPlaygroundComponent<T extends NgDocPlaygroundProperties = NgDocPlaygroundProperties>\n\timplements OnInit\n{\n\tid: string = '';\n\tselectors: string[] = [];\n\tproperties?: T;\n\tformGroup!: FormGroup<NgDocPlaygroundForm>;\n\trecreateDemo: boolean = false;\n\n\tconstructor(private readonly rootPage: NgDocRootPage, private readonly formBuilder: FormBuilder) {}\n\n\tngOnInit(): void {\n\t\tconst propertiesForm: FormGroup = this.formBuilder.group(this.getPropertiesFormValues());\n\t\tconst contentForm: FormGroup = this.formBuilder.group(this.getContentFormValues());\n\n\t\tthis.formGroup = this.formBuilder.group({\n\t\t\tproperties: propertiesForm,\n\t\t\tcontent: contentForm,\n\t\t});\n\t}\n\n\tget configuration(): NgDocPlaygroundConfig | undefined {\n\t\treturn this.rootPage.dependencies?.playgrounds?.[this.id];\n\t}\n\n\tprivate getPropertiesFormValues<K extends keyof T>(): Record<K, NgDocExtractedValue> {\n\t\treturn objectKeys(this.properties ?? {}).reduce((controls: Record<K, NgDocExtractedValue>, key: K) => {\n\t\t\tif (this.properties) {\n\t\t\t\tcontrols[key] = extractValue(this.properties[key]?.default ?? 'undefined');\n\t\t\t}\n\n\t\t\treturn controls;\n\t\t}, {} as Record<K, NgDocExtractedValue>);\n\t}\n\n\tprivate getContentFormValues(): Record<string, boolean> {\n\t\treturn objectKeys(this.configuration?.content ?? {}).reduce(\n\t\t\t(controls: Record<string, boolean>, key: string) => {\n\t\t\t\tif (this.configuration?.content) {\n\t\t\t\t\tcontrols[key] = false;\n\t\t\t\t}\n\n\t\t\t\treturn controls;\n\t\t\t},\n\t\t\t{} as Record<keyof T, boolean>,\n\t\t);\n\t\treturn {};\n\t}\n\n\tresetForm(): void {\n\t\tthis.formGroup?.reset({\n\t\t\tproperties: this.getPropertiesFormValues(),\n\t\t\tcontent: this.getContentFormValues(),\n\t\t});\n\t}\n}\n","<ng-container *ngIf=\"configuration\">\n\t<ng-doc-playground-properties\n\t\t[form]=\"formGroup\"\n\t\t[properties]=\"properties\"\n\t\t[dynamicContent]=\"configuration.content\"\n\t\t[(recreateDemo)]=\"recreateDemo\"\n\t\t(resetForm)=\"resetForm()\"\n\t>\n\t\t<ng-doc-playground-demo\n\t\t\t*ngFor=\"let selector of configuration.selectors ?? selectors | asArray\"\n\t\t\t[id]=\"id\"\n\t\t\t[selector]=\"selector\"\n\t\t\t[properties]=\"properties\"\n\t\t\t[configuration]=\"configuration\"\n\t\t\t[recreateDemo]=\"recreateDemo\"\n\t\t\t[form]=\"formGroup\"\n\t\t>\n\t\t</ng-doc-playground-demo>\n\t</ng-doc-playground-properties>\n</ng-container>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {NgDocDemoDisplayerModule} from '@ng-doc/app/components/demo-displayer';\nimport {\n\tNgDocAsArrayModule,\n\tNgDocButtonIconModule,\n\tNgDocButtonModule,\n\tNgDocCheckboxModule,\n\tNgDocIconModule,\n\tNgDocLabelModule,\n\tNgDocTextModule,\n\tNgDocTooltipModule,\n} from '@ng-doc/ui-kit';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {NgDocPlaygroundComponent} from './playground.component';\nimport {NgDocPlaygroundDemoComponent} from './playground-demo/playground-demo.component';\nimport {NgDocPlaygroundPropertiesComponent} from './playground-properties/playground-properties.component';\nimport {NgDocPlaygroundPropertyComponent} from './playground-property/playground-property.component';\n\n@NgModule({\n\tdeclarations: [\n\t\tNgDocPlaygroundComponent,\n\t\tNgDocPlaygroundPropertyComponent,\n\t\tNgDocPlaygroundPropertiesComponent,\n\t\tNgDocPlaygroundDemoComponent,\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tReactiveFormsModule,\n\t\tNgDocLabelModule,\n\t\tNgDocTooltipModule,\n\t\tPolymorpheusModule,\n\t\tNgDocAsArrayModule,\n\t\tNgDocButtonIconModule,\n\t\tNgDocIconModule,\n\t\tNgDocTextModule,\n\t\tNgDocCheckboxModule,\n\t\tFormsModule,\n\t\tNgDocButtonModule,\n\t\tNgDocDemoDisplayerModule,\n\t],\n\texports: [\n\t\tNgDocPlaygroundComponent,\n\t\tNgDocPlaygroundPropertyComponent,\n\t\tNgDocPlaygroundPropertiesComponent,\n\t\tNgDocPlaygroundDemoComponent,\n\t],\n})\nexport class NgDocPlaygroundModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i5.NgDocPlaygroundPropertyComponent","i2","i3","i4.NgDocPlaygroundPropertiesComponent","i5.NgDocPlaygroundDemoComponent","i6"],"mappings":"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"}
1
+ {"version":3,"file":"ng-doc-app-components-playground.mjs","sources":["../../../../libs/app/components/playground/base-playground.ts","../../../../libs/app/components/playground/playground-property/playground-property.component.ts","../../../../libs/app/components/playground/playground-property/playground-property.component.html","../../../../libs/app/components/playground/playground-properties/playground-properties.component.ts","../../../../libs/app/components/playground/playground-properties/playground-properties.component.html","../../../../libs/app/components/playground/playground-demo/playground-demo.component.ts","../../../../libs/app/components/playground/playground-demo/playground-demo.component.html","../../../../libs/app/components/playground/playground.component.ts","../../../../libs/app/components/playground/playground.component.html","../../../../libs/app/components/playground/playground.module.ts","../../../../libs/app/components/playground/ng-doc-app-components-playground.ts"],"sourcesContent":["import {Directive, Type, ViewContainerRef} from '@angular/core';\nimport {NgDocPlaygroundConfig} from '@ng-doc/core/interfaces';\n\n/**\n * Base class for playgrounds components.\n */\n@Directive()\nexport abstract class NgDocBasePlayground implements Pick<NgDocPlaygroundConfig, 'data'> {\n\tstatic readonly selector: string = 'unknown';\n\tabstract readonly playground?: Type<unknown>;\n\tabstract readonly viewContainerRef?: ViewContainerRef;\n\n\tdata: Record<string, unknown> = {};\n\tcontent: any = {};\n}\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tComponentRef,\n\tHostBinding,\n\tInjector,\n\tInput,\n\tOnChanges,\n\tSimpleChanges,\n\tViewChild,\n\tViewContainerRef,\n} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {isPlaygroundProperty} from '@ng-doc/app/helpers';\nimport {NgDocProvidedTypeControl, NgDocTypeControl, NgDocTypeControlProviderOptions} from '@ng-doc/app/interfaces';\nimport {NgDocPlaygroundContent, NgDocPlaygroundProperty} from '@ng-doc/core/interfaces';\n\n@Component({\n\tselector: 'ng-doc-playground-property',\n\ttemplateUrl: './playground-property.component.html',\n\tstyleUrls: ['./playground-property.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgDocPlaygroundPropertyComponent implements OnChanges {\n\t@Input()\n\tname: string = '';\n\n\t@Input()\n\tproperty?: NgDocPlaygroundProperty | NgDocPlaygroundContent;\n\n\t@Input()\n\ttypeControl?: NgDocProvidedTypeControl;\n\n\t@Input()\n\tcontrol?: FormControl;\n\n\t@ViewChild('propertyOutlet', {read: ViewContainerRef, static: true})\n\tpropertyOutlet?: ViewContainerRef;\n\n\tprotected option?: NgDocTypeControlProviderOptions;\n\tprivate propertyTypeControl?: ComponentRef<NgDocTypeControl>;\n\n\tconstructor(private readonly injector: Injector) {}\n\n\tngOnChanges({property, control, typeControl}: SimpleChanges): void {\n\t\tif ((property || control || typeControl) && this.property && this.typeControl) {\n\t\t\tthis.propertyTypeControl?.destroy();\n\t\t\tthis.propertyTypeControl = undefined;\n\n\t\t\tif (this.typeControl && this.propertyOutlet) {\n\t\t\t\tthis.propertyTypeControl = this.propertyOutlet.createComponent(this.typeControl.control);\n\t\t\t\tthis.propertyTypeControl.instance.name = this.name;\n\t\t\t\tthis.propertyTypeControl.instance.description = this.tooltipContent;\n\t\t\t\tthis.propertyTypeControl.instance.options = isPlaygroundProperty(this.property)\n\t\t\t\t\t? this.property.options\n\t\t\t\t\t: undefined;\n\t\t\t\tthis.propertyTypeControl.instance.default = isPlaygroundProperty(this.property)\n\t\t\t\t\t? this.property.default\n\t\t\t\t\t: undefined;\n\t\t\t\tthis.propertyTypeControl.instance.writeValue(this.control?.value);\n\n\t\t\t\tthis.option = this.typeControl.options;\n\t\t\t}\n\t\t}\n\n\t\tif (control) {\n\t\t\tthis.control?.registerOnChange((value: string) => this.propertyTypeControl?.instance?.writeValue(value));\n\t\t\tthis.propertyTypeControl?.instance.registerOnChange((value: unknown) => this.control?.setValue(value));\n\t\t\tthis.propertyTypeControl?.instance.registerOnTouched(() => this.control?.markAsTouched());\n\t\t}\n\t}\n\n\t@HostBinding('attr.data-has-property-control')\n\tget hasPropertyControl(): boolean {\n\t\treturn !!this.propertyTypeControl;\n\t}\n\n\tget tooltipContent(): string {\n\t\treturn this.property && isPlaygroundProperty(this.property) ? this.property.description ?? '' : '';\n\t}\n}\n","<label [ng-doc-label]=\"option?.hideLabel ? '' : labelContent\">\n\t<ng-template #labelContent>\n\t\t<span [ngDocTooltip]=\"tooltipContent\" [canOpen]=\"!!tooltipContent\"\n\t\t\t [positions]=\"['left-center', 'top-right', 'bottom-right']\">{{name}}</span>\n\t</ng-template>\n\t<ng-container #propertyOutlet></ng-container>\n</label>\n","import {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tEventEmitter,\n\tInjectionToken,\n\tInjector,\n\tInput, isDevMode,\n\tOnChanges,\n\tOutput,\n\tSimpleChanges,\n} from '@angular/core';\nimport {FormControl, FormGroup} from '@angular/forms';\nimport {getTokenForType, isPlaygroundProperty} from '@ng-doc/app/helpers';\nimport {NgDocProvidedTypeControl} from '@ng-doc/app/interfaces';\nimport {extractValueOrThrow, isPresent, objectKeys} from '@ng-doc/core';\nimport {NgDocPlaygroundContent, NgDocPlaygroundProperties, NgDocPlaygroundProperty} from '@ng-doc/core/interfaces';\nimport {Observable} from 'rxjs';\nimport {pluck} from 'rxjs/operators';\n\nimport {NgDocPlaygroundForm} from '../playground-form';\nimport {NgDocPlaygroundPropertyControl} from '../playground-property-control';\n\n@Component({\n\tselector: 'ng-doc-playground-properties',\n\ttemplateUrl: './playground-properties.component.html',\n\tstyleUrls: ['./playground-properties.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgDocPlaygroundPropertiesComponent<\n\tP extends NgDocPlaygroundProperties,\n\tC extends Record<string, NgDocPlaygroundContent>,\n> implements OnChanges\n{\n\t@Input()\n\tform!: FormGroup<NgDocPlaygroundForm>;\n\n\t@Input()\n\tproperties?: P;\n\n\t@Input()\n\tdynamicContent?: C;\n\n\t@Input()\n\trecreateDemo: boolean = false;\n\n\t@Output()\n\trecreateDemoChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n\t@Output()\n\tresetForm: EventEmitter<void> = new EventEmitter<void>();\n\n\treadonly breakpoints: string[] = [Breakpoints.XSmall];\n\treadonly observer: Observable<boolean>;\n\n\tprotected propertyControls: NgDocPlaygroundPropertyControl[] = [];\n\tprotected contentTypeControl?: NgDocProvidedTypeControl = this.getControlForType('boolean');\n\n\tconstructor(protected readonly breakpointObserver: BreakpointObserver, private injector: Injector) {\n\t\tthis.observer = this.breakpointObserver.observe(this.breakpoints).pipe(pluck('matches'));\n\t}\n\n\tngOnChanges({properties}: SimpleChanges): void {\n\t\tif (properties && this.properties) {\n\t\t\tthis.propertyControls = objectKeys(this.properties)\n\t\t\t\t.map((key: keyof P) => {\n\t\t\t\t\tif (this.properties) {\n\t\t\t\t\t\tconst property: NgDocPlaygroundProperty = this.properties[key];\n\t\t\t\t\t\tconst typeControl: NgDocProvidedTypeControl | undefined = this.getTypeControl(property);\n\n\t\t\t\t\t\tif (typeControl) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tpropertyName: String(key),\n\t\t\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\t\ttypeControl,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn null;\n\t\t\t\t})\n\t\t\t\t.filter(isPresent)\n\t\t\t\t.sort((a: NgDocPlaygroundPropertyControl, b: NgDocPlaygroundPropertyControl) => {\n\t\t\t\t\tconst aOrder: number | undefined = a.typeControl.options?.order;\n\t\t\t\t\tconst bOrder: number | undefined = b.typeControl.options?.order;\n\n\t\t\t\t\tif (isPresent(aOrder) && isPresent(bOrder)) {\n\t\t\t\t\t\treturn aOrder - bOrder;\n\t\t\t\t\t}\n\t\t\t\t\tif (isPresent(aOrder)) {\n\t\t\t\t\t\treturn -1;\n\t\t\t\t\t}\n\t\t\t\t\tif (isPresent(bOrder)) {\n\t\t\t\t\t\treturn 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn a.property.name.localeCompare(b.property.name);\n\t\t\t\t});\n\t\t}\n\t}\n\n\tgetFormControl(controlType: keyof typeof this.form.controls, key: string): FormControl {\n\t\treturn this.form.get(controlType)?.get(key) as FormControl;\n\t}\n\n\tprivate getTypeControl(property: NgDocPlaygroundProperty): NgDocProvidedTypeControl | undefined {\n\t\tconst type: string = property.type;\n\t\tconst typeControl: NgDocProvidedTypeControl | undefined = this.getControlForType(type)\n\t\t\t?? this.getControlForTypeAlias(isPlaygroundProperty(property) ? property.options : undefined);\n\n\t\tif (!typeControl && isDevMode()) {\n\t\t\tconsole.warn(\n\t\t\t\t`NgDocPlayground didn't find the control for the @Input \"${property.name}\", the type \"${type}\" was not recognized'`,\n\t\t\t);\n\t\t}\n\n\t\treturn typeControl;\n\t}\n\n\tprivate getControlForType(type: string): NgDocProvidedTypeControl | undefined {\n\t\tconst token: InjectionToken<NgDocProvidedTypeControl> | undefined = getTokenForType(type);\n\n\t\treturn token ? this.injector.get(token) : undefined;\n\t}\n\n\tprivate getControlForTypeAlias(options?: string[]): NgDocProvidedTypeControl | undefined {\n\t\tif (options && options.length) {\n\t\t\tlet optionsIsValid: boolean = true;\n\n\t\t\ttry {\n\t\t\t\t// checking that all values are extractable\n\t\t\t\toptions.forEach((item: string) => extractValueOrThrow(item));\n\t\t\t} catch {\n\t\t\t\toptionsIsValid = false;\n\t\t\t}\n\n\t\t\tif (optionsIsValid) {\n\t\t\t\tconst token: InjectionToken<NgDocProvidedTypeControl> | undefined = getTokenForType('NgDocTypeAlias');\n\n\t\t\t\treturn token ? this.injector.get(token) : undefined;\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n}\n","<div class=\"ng-doc-playground-properties-wrapper\" [class.vertical]=\"observer | async\">\n\t<div class=\"ng-doc-playground-demos\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"ng-doc-playground-properties\">\n\t\t<div class=\"ng-doc-playground-header\">\n\t\t\t<h4 ng-doc-text>Playground</h4>\n\t\t\t<button ng-doc-button color=\"red\" (click)=\"resetForm.emit()\">Reset</button>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-setting\">\n\t\t\t<ng-doc-checkbox [(ngModel)]=\"recreateDemo\" (ngModelChange)=\"recreateDemoChange.emit($event)\">\n\t\t\t\t<span\n\t\t\t\t\tng-doc-text\n\t\t\t\t\t[ngDocTooltip]=\"'Recreates demo everytime\\none of the input has changed'\"\n\t\t\t\t\t[positions]=\"['bottom-right', 'left-center']\"\n\t\t\t\t>\n\t\t\t\t\tRecreate\n\t\t\t\t\t<ng-doc-icon icon=\"info\" ngDocTextRight></ng-doc-icon>\n\t\t\t\t</span>\n\t\t\t</ng-doc-checkbox>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-divider\"></div>\n\t\t<ng-container *ngIf=\"propertyControls.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Settings</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let propertyControl of propertyControls\"\n\t\t\t\t[name]=\"propertyControl.property.name\"\n\t\t\t\t[property]=\"propertyControl.property\"\n\t\t\t\t[typeControl]=\"propertyControl.typeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'properties': propertyControl.propertyName\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\n\t\t<ng-container *ngIf=\"(dynamicContent | keyvalue)?.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Content</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let content of dynamicContent | keyvalue\"\n\t\t\t\t[name]=\"content.value.label\"\n\t\t\t\t[property]=\"content.value\"\n\t\t\t\t[typeControl]=\"contentTypeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'content': content.key\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\t</div>\n</div>\n","import {\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tComponentRef,\n\tInjectionToken,\n\tInjector,\n\tInput,\n\tOnChanges,\n\tOnDestroy,\n\tSimpleChanges,\n\tType,\n\tViewChild,\n\tViewContainerRef,\n} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {NgDocRootPage} from '@ng-doc/app/classes/root-page';\nimport {getPlaygroundDemoToken} from '@ng-doc/app/helpers';\nimport {NgDocFormPartialValue} from '@ng-doc/app/types';\nimport {buildPlaygroundDemoTemplate} from '@ng-doc/core/helpers/build-playground-demo-template';\nimport {formatHtml} from '@ng-doc/core/helpers/format-html';\nimport {objectKeys} from '@ng-doc/core/helpers/object-keys';\nimport {NgDocPlaygroundConfig, NgDocPlaygroundProperties, NgDocPlaygroundProperty} from '@ng-doc/core/interfaces';\nimport {NgDocExtractedValue} from '@ng-doc/core/types';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {Observable, of, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {NgDocBasePlayground} from '../base-playground';\nimport {NgDocPlaygroundForm} from '../playground-form';\n\n@Component({\n\tselector: 'ng-doc-playground-demo',\n\ttemplateUrl: './playground-demo.component.html',\n\tstyleUrls: ['./playground-demo.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\n@UntilDestroy()\nexport class NgDocPlaygroundDemoComponent<T extends NgDocPlaygroundProperties = NgDocPlaygroundProperties>\n\timplements OnChanges, OnDestroy\n{\n\t@Input()\n\tid: string = '';\n\n\t@Input()\n\tselector: string = '';\n\n\t@Input()\n\tconfiguration?: NgDocPlaygroundConfig;\n\n\t@Input()\n\tproperties?: T;\n\n\t@Input()\n\trecreateDemo: boolean = false;\n\n\t@Input()\n\tform!: FormGroup<NgDocPlaygroundForm>;\n\n\t@ViewChild('demoOutlet', {static: true, read: ViewContainerRef})\n\tdemoOutlet?: ViewContainerRef;\n\n\tplaygroundDemo?: typeof NgDocBasePlayground;\n\n\tcode: Observable<string> = of('');\n\n\tprivate demoRef?: ComponentRef<NgDocBasePlayground>;\n\tprivate readonly unsubscribe$: Subject<void> = new Subject<void>();\n\n\tconstructor(private readonly rootPage: NgDocRootPage, private readonly injector: Injector) {}\n\n\tngOnChanges({form, id}: SimpleChanges): void {\n\t\tif (form && id) {\n\t\t\tthis.unsubscribe$.next();\n\n\t\t\tconst demoInjector: InjectionToken<Array<typeof NgDocBasePlayground>> | undefined = getPlaygroundDemoToken(\n\t\t\t\tthis.id,\n\t\t\t);\n\n\t\t\tif (demoInjector) {\n\t\t\t\tconst demos: Array<typeof NgDocBasePlayground> = this.injector.get(demoInjector, []);\n\t\t\t\tthis.playgroundDemo = demos.find((demo: typeof NgDocBasePlayground) => demo.selector === this.selector);\n\t\t\t}\n\n\t\t\tthis.updateDemo();\n\n\t\t\tthis.form?.valueChanges\n\t\t\t\t.pipe(takeUntil(this.unsubscribe$), untilDestroyed(this))\n\t\t\t\t.subscribe((data: NgDocFormPartialValue<typeof this.form>) => this.updateDemo(data));\n\t\t}\n\t}\n\n\tprivate updateDemo(data?: NgDocFormPartialValue<typeof this.form>): void {\n\t\tif (this.recreateDemo || !this.demoRef) {\n\t\t\tthis.renderDemo();\n\t\t}\n\n\t\tif (data) {\n\t\t\tObject.assign(this.demoRef?.instance.playground ?? {}, data.properties);\n\t\t\tObject.assign(this.demoRef?.instance.content ?? {}, data.content);\n\t\t\tthis.demoRef?.instance?.viewContainerRef?.injector.get(ChangeDetectorRef)?.markForCheck();\n\t\t}\n\n\t\tthis.updateCodeView();\n\t}\n\n\tprivate renderDemo(): void {\n\t\tif (this.playgroundDemo) {\n\t\t\tthis.demoRef?.destroy();\n\n\t\t\tif (this.playgroundDemo) {\n\t\t\t\tthis.demoRef = this.demoOutlet?.createComponent(\n\t\t\t\t\tthis.playgroundDemo as unknown as Type<NgDocBasePlayground>,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.demoRef?.changeDetectorRef.markForCheck();\n\t\t}\n\t}\n\n\tprivate updateCodeView(): void {\n\t\tconst template: string = buildPlaygroundDemoTemplate(\n\t\t\tthis.configuration?.template ?? '',\n\t\t\tthis.selector,\n\t\t\tthis.getActiveContent(),\n\t\t\tthis.getActiveInputs(),\n\t\t);\n\n\t\tthis.code = formatHtml(template);\n\t}\n\n\tprivate getActiveContent(): Record<string, string> {\n\t\tconst formData: Record<string, boolean> = (this.form?.controls.content.value as Record<string, boolean>) ?? {};\n\n\t\treturn objectKeys(formData).reduce((result: Record<string, string>, key: string) => {\n\t\t\tresult[key] = formData[key] ? this.configuration?.content?.[key].template ?? '' : '';\n\n\t\t\treturn result;\n\t\t}, {});\n\t}\n\n\tprivate getActiveInputs(): Record<string, string> {\n\t\tconst formData: Record<string, NgDocExtractedValue> =\n\t\t\t(this.form?.controls.properties.value as Record<string, NgDocExtractedValue>) ?? {};\n\n\t\treturn objectKeys(formData).reduce((result: Record<string, string>, key: string) => {\n\t\t\tconst property: NgDocPlaygroundProperty | undefined = this.properties?.[key];\n\n\t\t\tif (property) {\n\t\t\t\tconst value: NgDocExtractedValue = formData[key];\n\t\t\t\tconst isString: boolean = typeof value === 'string';\n\t\t\t\tconst inputValue: string = isString ? `'${value}'` : `${JSON.stringify(value)}`;\n\n\t\t\t\tif ((property.default ?? '') !== inputValue) {\n\t\t\t\t\tresult[property.name] = inputValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}, {});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.unsubscribe$.next();\n\t\tthis.unsubscribe$.complete();\n\t}\n}\n","<ng-doc-demo-displayer [code]=\"(code | async) ?? ''\" [border]=\"false\" language=\"html\">\n\t<ng-container #demoOutlet></ng-container>\n</ng-doc-demo-displayer>\n","import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';\nimport {FormBuilder, FormGroup} from '@angular/forms';\nimport {NgDocRootPage} from '@ng-doc/app/classes/root-page';\nimport {extractValue} from '@ng-doc/core/helpers/extract-value';\nimport {objectKeys} from '@ng-doc/core/helpers/object-keys';\nimport {NgDocPlaygroundConfig, NgDocPlaygroundProperties} from '@ng-doc/core/interfaces';\nimport {NgDocExtractedValue} from '@ng-doc/core/types';\n\nimport {NgDocPlaygroundForm} from './playground-form';\n\n@Component({\n\tselector: 'ng-doc-playground',\n\ttemplateUrl: './playground.component.html',\n\tstyleUrls: ['./playground.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgDocPlaygroundComponent<T extends NgDocPlaygroundProperties = NgDocPlaygroundProperties>\n\timplements OnInit\n{\n\tid: string = '';\n\tselectors: string[] = [];\n\tproperties?: T;\n\tformGroup!: FormGroup<NgDocPlaygroundForm>;\n\trecreateDemo: boolean = false;\n\n\tconstructor(private readonly rootPage: NgDocRootPage, private readonly formBuilder: FormBuilder) {}\n\n\tngOnInit(): void {\n\t\tconst propertiesForm: FormGroup = this.formBuilder.group(this.getPropertiesFormValues());\n\t\tconst contentForm: FormGroup = this.formBuilder.group(this.getContentFormValues());\n\n\t\tthis.formGroup = this.formBuilder.group({\n\t\t\tproperties: propertiesForm,\n\t\t\tcontent: contentForm,\n\t\t});\n\t}\n\n\tget configuration(): NgDocPlaygroundConfig | undefined {\n\t\treturn this.rootPage.dependencies?.playgrounds?.[this.id];\n\t}\n\n\tprivate getPropertiesFormValues<K extends keyof T>(): Record<K, NgDocExtractedValue> {\n\t\treturn objectKeys(this.properties ?? {}).reduce((controls: Record<K, NgDocExtractedValue>, key: K) => {\n\t\t\tif (this.properties) {\n\t\t\t\tcontrols[key] = extractValue(this.properties[key]?.default ?? 'undefined');\n\t\t\t}\n\n\t\t\treturn controls;\n\t\t}, {} as Record<K, NgDocExtractedValue>);\n\t}\n\n\tprivate getContentFormValues(): Record<string, boolean> {\n\t\treturn objectKeys(this.configuration?.content ?? {}).reduce(\n\t\t\t(controls: Record<string, boolean>, key: string) => {\n\t\t\t\tif (this.configuration?.content) {\n\t\t\t\t\tcontrols[key] = false;\n\t\t\t\t}\n\n\t\t\t\treturn controls;\n\t\t\t},\n\t\t\t{} as Record<keyof T, boolean>,\n\t\t);\n\t\treturn {};\n\t}\n\n\tresetForm(): void {\n\t\tthis.formGroup?.reset({\n\t\t\tproperties: this.getPropertiesFormValues(),\n\t\t\tcontent: this.getContentFormValues(),\n\t\t});\n\t}\n}\n","<ng-container *ngIf=\"configuration\">\n\t<ng-doc-playground-properties\n\t\t[form]=\"formGroup\"\n\t\t[properties]=\"properties\"\n\t\t[dynamicContent]=\"configuration.content\"\n\t\t[(recreateDemo)]=\"recreateDemo\"\n\t\t(resetForm)=\"resetForm()\"\n\t>\n\t\t<ng-doc-playground-demo\n\t\t\t*ngFor=\"let selector of configuration.selectors ?? selectors | asArray\"\n\t\t\t[id]=\"id\"\n\t\t\t[selector]=\"selector\"\n\t\t\t[properties]=\"properties\"\n\t\t\t[configuration]=\"configuration\"\n\t\t\t[recreateDemo]=\"recreateDemo\"\n\t\t\t[form]=\"formGroup\"\n\t\t>\n\t\t</ng-doc-playground-demo>\n\t</ng-doc-playground-properties>\n</ng-container>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {NgDocDemoDisplayerModule} from '@ng-doc/app/components/demo-displayer';\nimport {\n\tNgDocAsArrayModule, NgDocBindModule,\n\tNgDocButtonIconModule,\n\tNgDocButtonModule,\n\tNgDocCheckboxModule,\n\tNgDocIconModule,\n\tNgDocLabelModule, NgDocRunModule,\n\tNgDocTextModule,\n\tNgDocTooltipModule,\n} from '@ng-doc/ui-kit';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {NgDocPlaygroundComponent} from './playground.component';\nimport {NgDocPlaygroundDemoComponent} from './playground-demo/playground-demo.component';\nimport {NgDocPlaygroundPropertiesComponent} from './playground-properties/playground-properties.component';\nimport {NgDocPlaygroundPropertyComponent} from './playground-property/playground-property.component';\n\n@NgModule({\n\tdeclarations: [\n\t\tNgDocPlaygroundComponent,\n\t\tNgDocPlaygroundPropertyComponent,\n\t\tNgDocPlaygroundPropertiesComponent,\n\t\tNgDocPlaygroundDemoComponent,\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tReactiveFormsModule,\n\t\tNgDocLabelModule,\n\t\tNgDocTooltipModule,\n\t\tPolymorpheusModule,\n\t\tNgDocAsArrayModule,\n\t\tNgDocButtonIconModule,\n\t\tNgDocIconModule,\n\t\tNgDocTextModule,\n\t\tNgDocCheckboxModule,\n\t\tFormsModule,\n\t\tNgDocButtonModule,\n\t\tNgDocDemoDisplayerModule,\n\t\tNgDocBindModule,\n\t\tNgDocRunModule,\n\t],\n\texports: [\n\t\tNgDocPlaygroundComponent,\n\t\tNgDocPlaygroundPropertyComponent,\n\t\tNgDocPlaygroundPropertiesComponent,\n\t\tNgDocPlaygroundDemoComponent,\n\t],\n})\nexport class NgDocPlaygroundModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i5.NgDocPlaygroundPropertyComponent","objectKeys","i2","i3","i4.NgDocPlaygroundPropertiesComponent","i5.NgDocPlaygroundDemoComponent","i6"],"mappings":"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"}
@@ -1,13 +1,17 @@
1
1
  import { __decorate, __metadata } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
- import { Directive, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import { Directive, Component, ChangeDetectionStrategy, Input, HostBinding, ViewChild, NgModule } from '@angular/core';
4
4
  import * as i1 from '@ng-doc/app/services/sidebar';
5
5
  import { NgDocSidebarService } from '@ng-doc/app/services/sidebar';
6
- import { fadeAnimation } from '@ng-doc/ui-kit/animations';
6
+ import * as i3 from '@ng-doc/ui-kit';
7
+ import { NgDocSidenavComponent, NgDocMediaQueryModule, NgDocSidenavModule, NgDocLetModule } from '@ng-doc/ui-kit';
7
8
  import { UntilDestroy } from '@ngneat/until-destroy';
9
+ import { NEVER, combineLatest, merge, of } from 'rxjs';
10
+ import { mapTo, startWith, filter, map, delay } from 'rxjs/operators';
8
11
  import * as i2 from '@angular/common';
9
12
  import { CommonModule } from '@angular/common';
10
- import { NgDocMediaQueryModule } from '@ng-doc/ui-kit/directives/media-query';
13
+ import * as i4 from '@tinkoff/ng-polymorpheus';
14
+ import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
11
15
 
12
16
  /**
13
17
  * Directive uses for providing custom navbar, you should mark element with this directive
@@ -58,29 +62,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
58
62
  let NgDocRootComponent = class NgDocRootComponent {
59
63
  constructor(sidebarService) {
60
64
  this.sidebarService = sidebarService;
65
+ /**
66
+ * If `true` then the sidebar will be shown
67
+ * You can use it for example for landing page to hide sidebar
68
+ */
69
+ this.sidebar = true;
70
+ /**
71
+ * Content for footer
72
+ */
73
+ this.footerContent = '';
74
+ /**
75
+ * If `true` then page will be shown without width limit.
76
+ * You can use it for example for landing page
77
+ */
78
+ this.noWidthLimit = false;
79
+ this.sidenavState$ = NEVER;
80
+ }
81
+ ngAfterViewInit() {
82
+ this.sidenavState$ = combineLatest([
83
+ this.sidebarService.isMobileMode(),
84
+ this.sidenav
85
+ ? merge(this.sidenav.beforeOpen.pipe(mapTo(true)), this.sidenav.afterClose.pipe(mapTo(false))).pipe(startWith(false))
86
+ : of(true),
87
+ ]).pipe(filter(([isMobile, opened]) => !opened || (opened && !isMobile)), map(([isMobile]) => ({
88
+ over: isMobile,
89
+ align: (isMobile ? 'right' : 'left'),
90
+ hasBackdrop: isMobile,
91
+ })), delay(0));
61
92
  }
62
93
  };
63
94
  NgDocRootComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootComponent, deps: [{ token: i1.NgDocSidebarService }], target: i0.ɵɵFactoryTarget.Component });
64
- NgDocRootComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: NgDocRootComponent, selector: "ng-doc-root", providers: [], ngImport: i0, template: "<div class=\"ng-doc-root-wrapper\" [class.collapsable]=\"sidebarService.isCollapsable() | async\">\n\t<div class=\"ng-doc-header\">\n\t\t<ng-content select=\"ng-doc-navbar\"></ng-content>\n\t\t<ng-content select=\"[ngDocCustomNavbar]\"></ng-content>\n\t</div>\n\t<main>\n\t\t<div class=\"ng-doc-sidebar\" [class.visible]=\"sidebarService.visibilityChanges() | async\">\n\t\t\t<ng-content select=\"ng-doc-sidebar\"></ng-content>\n\t\t\t<ng-content select=\"[ngDocCustomSidebar]\"></ng-content>\n\t\t</div>\n\t\t<div class=\"ng-doc-body\">\n\t\t\t<div\n\t\t\t\tclass=\"ng-doc-backdrop\"\n\t\t\t\t@fadeAnimation\n\t\t\t\t*ngIf=\"sidebarService.isExpanded() | async\"\n\t\t\t\t(click)=\"sidebarService.hide()\"\n\t\t\t></div>\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</main>\n</div>\n", styles: [":host .ng-doc-root-wrapper.collapsable{--ng-doc-navbar-left-width: auto}:host .ng-doc-root-wrapper.collapsable .ng-doc-sidebar{right:calc(var(--ng-doc-sidebar-width) * -1);transition:.22s cubic-bezier(.25,.8,.25,1);--ng-doc-sidebar-shadow: var(--ng-doc-shadow-color) 0px 5px 20px -5px}:host .ng-doc-root-wrapper.collapsable .ng-doc-sidebar.visible{right:0}:host .ng-doc-root-wrapper.collapsable .ng-doc-body{margin-left:0;padding:calc(var(--ng-doc-base-gutter) * 3) calc(var(--ng-doc-base-gutter) * 3)}:host .ng-doc-root-wrapper main{display:flex;width:100%;margin-left:auto;margin-right:auto;max-width:var(--ng-doc-app-max-width);padding-top:var(--ng-doc-navbar-height)}:host .ng-doc-root-wrapper .ng-doc-header{position:fixed;top:0;height:var(--ng-doc-navbar-height);width:100%;z-index:10}:host .ng-doc-root-wrapper .ng-doc-sidebar{position:fixed;top:var(--ng-doc-navbar-height);display:flex;width:var(--ng-doc-sidebar-width);z-index:5}:host .ng-doc-root-wrapper .ng-doc-body{width:100%;margin-left:var(--ng-doc-sidebar-width);padding:calc(var(--ng-doc-base-gutter) * 3) calc(var(--ng-doc-base-gutter) * 4);overflow:auto;background-color:var(--ng-doc-base-0)}:host .ng-doc-backdrop{position:fixed;left:0;top:0;width:100%;height:100%;z-index:1}:host .ng-doc-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}:host .ng-doc-backdrop:before{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;opacity:.4}@supports not ((-webkit-backdrop-filter: none) or (backdrop-filter: none)){:host .ng-doc-backdrop{background-color:#0003}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [fadeAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
95
+ NgDocRootComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: NgDocRootComponent, selector: "ng-doc-root", inputs: { sidebar: "sidebar", footerContent: "footerContent", noWidthLimit: "noWidthLimit" }, host: { properties: { "attr.data-ng-doc-no-width-limit": "this.noWidthLimit" } }, providers: [], viewQueries: [{ propertyName: "sidenav", first: true, predicate: NgDocSidenavComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngDocLet=\"!!(sidebarService.isMobileMode() | async) as isMobileMode\">\n\t<div class=\"ng-doc-root-wrapper\" [class.collapsable]=\"isMobileMode\">\n\t\t<div class=\"ng-doc-header\">\n\t\t\t<ng-content select=\"ng-doc-navbar\"></ng-content>\n\t\t\t<ng-content select=\"[ngDocCustomNavbar]\"></ng-content>\n\t\t</div>\n\t\t<main *ngDocLet=\"sidebar && !!(sidebarService.isExpanded() | async) as opened\">\n\t\t\t<ng-doc-sidenav\n\t\t\t\t*ngDocLet=\"sidenavState$ | async as sidenavState\"\n\t\t\t\t[sidebar]=\"sidebarContent\"\n\t\t\t\t[opened]=\"opened\"\n\t\t\t\t[over]=\"sidenavState?.over ?? false\"\n\t\t\t\t[align]=\"sidenavState?.align ?? 'left'\"\n\t\t\t\t[hasBackdrop]=\"sidenavState?.hasBackdrop ?? false\"\n\t\t\t\t(closeEvent)=\"sidebarService.hide()\"\n\t\t\t>\n\t\t\t\t<ng-template #sidebarContent>\n\t\t\t\t\t<ng-content select=\"ng-doc-sidebar\"></ng-content>\n\t\t\t\t\t<ng-content select=\"[ngDocCustomSidebar]\"></ng-content>\n\t\t\t\t</ng-template>\n\n\t\t\t\t<ng-content></ng-content>\n\t\t\t</ng-doc-sidenav>\n\t\t</main>\n\t\t<footer *ngIf=\"footerContent\">\n\t\t\t<ng-container *polymorpheusOutlet=\"footerContent as text\"> {{ text }} </ng-container>\n\t\t</footer>\n\t</div>\n</ng-container>\n", styles: [":host[data-ng-doc-no-width-limit=true] .ng-doc-root-wrapper main{max-width:none}:host .ng-doc-root-wrapper main{display:flex;width:100%;margin-left:auto;margin-right:auto;max-width:var(--ng-doc-app-max-width);padding:var(--ng-doc-main-padding);--ng-doc-sidenav-top: var(--ng-doc-navbar-height);--ng-doc-sidenav-width: var(--ng-doc-sidebar-width);--ng-doc-sidenav-content-padding: var(--ng-doc-page-padding)}:host .ng-doc-root-wrapper .ng-doc-header{position:fixed;top:0;height:var(--ng-doc-navbar-height);width:100%;z-index:10}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.NgDocSidenavComponent, selector: "ng-doc-sidenav", inputs: ["sidebar", "align", "over", "opened", "hasBackdrop"], outputs: ["openedChange", "closeEvent", "beforeOpen", "beforeClose", "afterOpen", "afterClose"] }, { kind: "directive", type: i3.NgDocLetDirective, selector: "[ngDocLet]", inputs: ["ngDocLet"] }, { kind: "directive", type: i4.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
65
96
  NgDocRootComponent = __decorate([
66
97
  UntilDestroy(),
67
98
  __metadata("design:paramtypes", [NgDocSidebarService])
68
99
  ], NgDocRootComponent);
69
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootComponent, decorators: [{
70
101
  type: Component,
71
- args: [{ animations: [fadeAnimation], selector: 'ng-doc-root', providers: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ng-doc-root-wrapper\" [class.collapsable]=\"sidebarService.isCollapsable() | async\">\n\t<div class=\"ng-doc-header\">\n\t\t<ng-content select=\"ng-doc-navbar\"></ng-content>\n\t\t<ng-content select=\"[ngDocCustomNavbar]\"></ng-content>\n\t</div>\n\t<main>\n\t\t<div class=\"ng-doc-sidebar\" [class.visible]=\"sidebarService.visibilityChanges() | async\">\n\t\t\t<ng-content select=\"ng-doc-sidebar\"></ng-content>\n\t\t\t<ng-content select=\"[ngDocCustomSidebar]\"></ng-content>\n\t\t</div>\n\t\t<div class=\"ng-doc-body\">\n\t\t\t<div\n\t\t\t\tclass=\"ng-doc-backdrop\"\n\t\t\t\t@fadeAnimation\n\t\t\t\t*ngIf=\"sidebarService.isExpanded() | async\"\n\t\t\t\t(click)=\"sidebarService.hide()\"\n\t\t\t></div>\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</main>\n</div>\n", styles: [":host .ng-doc-root-wrapper.collapsable{--ng-doc-navbar-left-width: auto}:host .ng-doc-root-wrapper.collapsable .ng-doc-sidebar{right:calc(var(--ng-doc-sidebar-width) * -1);transition:.22s cubic-bezier(.25,.8,.25,1);--ng-doc-sidebar-shadow: var(--ng-doc-shadow-color) 0px 5px 20px -5px}:host .ng-doc-root-wrapper.collapsable .ng-doc-sidebar.visible{right:0}:host .ng-doc-root-wrapper.collapsable .ng-doc-body{margin-left:0;padding:calc(var(--ng-doc-base-gutter) * 3) calc(var(--ng-doc-base-gutter) * 3)}:host .ng-doc-root-wrapper main{display:flex;width:100%;margin-left:auto;margin-right:auto;max-width:var(--ng-doc-app-max-width);padding-top:var(--ng-doc-navbar-height)}:host .ng-doc-root-wrapper .ng-doc-header{position:fixed;top:0;height:var(--ng-doc-navbar-height);width:100%;z-index:10}:host .ng-doc-root-wrapper .ng-doc-sidebar{position:fixed;top:var(--ng-doc-navbar-height);display:flex;width:var(--ng-doc-sidebar-width);z-index:5}:host .ng-doc-root-wrapper .ng-doc-body{width:100%;margin-left:var(--ng-doc-sidebar-width);padding:calc(var(--ng-doc-base-gutter) * 3) calc(var(--ng-doc-base-gutter) * 4);overflow:auto;background-color:var(--ng-doc-base-0)}:host .ng-doc-backdrop{position:fixed;left:0;top:0;width:100%;height:100%;z-index:1}:host .ng-doc-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}:host .ng-doc-backdrop:before{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;opacity:.4}@supports not ((-webkit-backdrop-filter: none) or (backdrop-filter: none)){:host .ng-doc-backdrop{background-color:#0003}}\n"] }]
72
- }], ctorParameters: function () { return [{ type: i1.NgDocSidebarService }]; } });
102
+ args: [{ selector: 'ng-doc-root', providers: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngDocLet=\"!!(sidebarService.isMobileMode() | async) as isMobileMode\">\n\t<div class=\"ng-doc-root-wrapper\" [class.collapsable]=\"isMobileMode\">\n\t\t<div class=\"ng-doc-header\">\n\t\t\t<ng-content select=\"ng-doc-navbar\"></ng-content>\n\t\t\t<ng-content select=\"[ngDocCustomNavbar]\"></ng-content>\n\t\t</div>\n\t\t<main *ngDocLet=\"sidebar && !!(sidebarService.isExpanded() | async) as opened\">\n\t\t\t<ng-doc-sidenav\n\t\t\t\t*ngDocLet=\"sidenavState$ | async as sidenavState\"\n\t\t\t\t[sidebar]=\"sidebarContent\"\n\t\t\t\t[opened]=\"opened\"\n\t\t\t\t[over]=\"sidenavState?.over ?? false\"\n\t\t\t\t[align]=\"sidenavState?.align ?? 'left'\"\n\t\t\t\t[hasBackdrop]=\"sidenavState?.hasBackdrop ?? false\"\n\t\t\t\t(closeEvent)=\"sidebarService.hide()\"\n\t\t\t>\n\t\t\t\t<ng-template #sidebarContent>\n\t\t\t\t\t<ng-content select=\"ng-doc-sidebar\"></ng-content>\n\t\t\t\t\t<ng-content select=\"[ngDocCustomSidebar]\"></ng-content>\n\t\t\t\t</ng-template>\n\n\t\t\t\t<ng-content></ng-content>\n\t\t\t</ng-doc-sidenav>\n\t\t</main>\n\t\t<footer *ngIf=\"footerContent\">\n\t\t\t<ng-container *polymorpheusOutlet=\"footerContent as text\"> {{ text }} </ng-container>\n\t\t</footer>\n\t</div>\n</ng-container>\n", styles: [":host[data-ng-doc-no-width-limit=true] .ng-doc-root-wrapper main{max-width:none}:host .ng-doc-root-wrapper main{display:flex;width:100%;margin-left:auto;margin-right:auto;max-width:var(--ng-doc-app-max-width);padding:var(--ng-doc-main-padding);--ng-doc-sidenav-top: var(--ng-doc-navbar-height);--ng-doc-sidenav-width: var(--ng-doc-sidebar-width);--ng-doc-sidenav-content-padding: var(--ng-doc-page-padding)}:host .ng-doc-root-wrapper .ng-doc-header{position:fixed;top:0;height:var(--ng-doc-navbar-height);width:100%;z-index:10}\n"] }]
103
+ }], ctorParameters: function () { return [{ type: i1.NgDocSidebarService }]; }, propDecorators: { sidebar: [{
104
+ type: Input
105
+ }], footerContent: [{
106
+ type: Input
107
+ }], noWidthLimit: [{
108
+ type: Input
109
+ }, {
110
+ type: HostBinding,
111
+ args: ['attr.data-ng-doc-no-width-limit']
112
+ }], sidenav: [{
113
+ type: ViewChild,
114
+ args: [NgDocSidenavComponent]
115
+ }] } });
73
116
 
74
117
  class NgDocRootModule {
75
118
  }
76
119
  NgDocRootModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
77
- NgDocRootModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootModule, declarations: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective], imports: [CommonModule, NgDocMediaQueryModule], exports: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective] });
78
- NgDocRootModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootModule, imports: [CommonModule, NgDocMediaQueryModule] });
120
+ NgDocRootModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootModule, declarations: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective], imports: [CommonModule, NgDocMediaQueryModule, NgDocSidenavModule, NgDocLetModule, PolymorpheusModule], exports: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective] });
121
+ NgDocRootModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootModule, imports: [CommonModule, NgDocMediaQueryModule, NgDocSidenavModule, NgDocLetModule, PolymorpheusModule] });
79
122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootModule, decorators: [{
80
123
  type: NgModule,
81
124
  args: [{
82
125
  declarations: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective],
83
- imports: [CommonModule, NgDocMediaQueryModule],
126
+ imports: [CommonModule, NgDocMediaQueryModule, NgDocSidenavModule, NgDocLetModule, PolymorpheusModule],
84
127
  exports: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective],
85
128
  }]
86
129
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-components-root.mjs","sources":["../../../../libs/app/components/root/root.component.ts","../../../../libs/app/components/root/root.component.html","../../../../libs/app/components/root/root.module.ts","../../../../libs/app/components/root/ng-doc-app-components-root.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Directive} from '@angular/core';\nimport {NgDocSidebarService} from '@ng-doc/app/services/sidebar';\nimport {fadeAnimation} from '@ng-doc/ui-kit/animations';\nimport {UntilDestroy} from '@ngneat/until-destroy';\n\n/**\n * Directive uses for providing custom navbar, you should mark element with this directive\n * and the `NgDocRootComponent` will use it as a navbar\n *\n * ```html\n * <ng-doc-root>\n * <my-custom-navbar ngDocCustomNavbar></my-custom-navbar>\n *\n * <ng-doc-sidebar></ng-doc-sidebar>\n * <router-outlet></router-outlet>\n * </ng-doc-root>\n * ```\n */\n@Directive({\n\tselector: '[ngDocCustomNavbar]',\n})\nexport class NgDocCustomNavbarDirective {}\n\n/**\n * Directive uses for providing custom sidebar, you should mark element with this directive\n * and the `NgDocRootComponent` will use it as a sidebar\n *\n * ```html\n * <ng-doc-root>\n * <ng-doc-navbar></ng-doc-sidebar>\n *\n * <my-custom-sidebar ngDocCustomSidebar></my-custom-sidebar>\n * <router-outlet></router-outlet>\n * </ng-doc-root>\n * ```\n */\n@Directive({\n\tselector: '[ngDocCustomSidebar]',\n})\nexport class NgDocCustomSidebarDirective {}\n\n@Component({\n\tanimations: [fadeAnimation],\n\tselector: 'ng-doc-root',\n\ttemplateUrl: './root.component.html',\n\tstyleUrls: ['./root.component.scss'],\n\tproviders: [],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\n@UntilDestroy()\nexport class NgDocRootComponent {\n\tconstructor(protected readonly sidebarService: NgDocSidebarService) {}\n}\n","<div class=\"ng-doc-root-wrapper\" [class.collapsable]=\"sidebarService.isCollapsable() | async\">\n\t<div class=\"ng-doc-header\">\n\t\t<ng-content select=\"ng-doc-navbar\"></ng-content>\n\t\t<ng-content select=\"[ngDocCustomNavbar]\"></ng-content>\n\t</div>\n\t<main>\n\t\t<div class=\"ng-doc-sidebar\" [class.visible]=\"sidebarService.visibilityChanges() | async\">\n\t\t\t<ng-content select=\"ng-doc-sidebar\"></ng-content>\n\t\t\t<ng-content select=\"[ngDocCustomSidebar]\"></ng-content>\n\t\t</div>\n\t\t<div class=\"ng-doc-body\">\n\t\t\t<div\n\t\t\t\tclass=\"ng-doc-backdrop\"\n\t\t\t\t@fadeAnimation\n\t\t\t\t*ngIf=\"sidebarService.isExpanded() | async\"\n\t\t\t\t(click)=\"sidebarService.hide()\"\n\t\t\t></div>\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</main>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {NgDocMediaQueryModule} from '@ng-doc/ui-kit/directives/media-query';\n\nimport {NgDocCustomNavbarDirective, NgDocCustomSidebarDirective, NgDocRootComponent} from './root.component';\n\n@NgModule({\n\tdeclarations: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective],\n\timports: [CommonModule, NgDocMediaQueryModule],\n\texports: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective],\n})\nexport class NgDocRootModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-doc-app-components-root.mjs","sources":["../../../../libs/app/components/root/root.component.ts","../../../../libs/app/components/root/root.component.html","../../../../libs/app/components/root/root.module.ts","../../../../libs/app/components/root/ng-doc-app-components-root.ts"],"sourcesContent":["import {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\tDirective,\n\tHostBinding,\n\tInput,\n\tViewChild,\n} from '@angular/core';\nimport {NgDocSidebarService} from '@ng-doc/app/services/sidebar';\nimport {NgDocContent, NgDocHorizontalAlign, NgDocSidenavComponent} from '@ng-doc/ui-kit';\nimport {UntilDestroy} from '@ngneat/until-destroy';\nimport {combineLatest, merge, NEVER, Observable, of} from 'rxjs';\nimport {delay, filter, map, mapTo, startWith, tap} from 'rxjs/operators';\n\n/**\n * Directive uses for providing custom navbar, you should mark element with this directive\n * and the `NgDocRootComponent` will use it as a navbar\n *\n * ```html\n * <ng-doc-root>\n * <my-custom-navbar ngDocCustomNavbar></my-custom-navbar>\n *\n * <ng-doc-sidebar></ng-doc-sidebar>\n * <router-outlet></router-outlet>\n * </ng-doc-root>\n * ```\n */\n@Directive({\n\tselector: '[ngDocCustomNavbar]',\n})\nexport class NgDocCustomNavbarDirective {}\n\n/**\n * Directive uses for providing custom sidebar, you should mark element with this directive\n * and the `NgDocRootComponent` will use it as a sidebar\n *\n * ```html\n * <ng-doc-root>\n * <ng-doc-navbar></ng-doc-sidebar>\n *\n * <my-custom-sidebar ngDocCustomSidebar></my-custom-sidebar>\n * <router-outlet></router-outlet>\n * </ng-doc-root>\n * ```\n */\n@Directive({\n\tselector: '[ngDocCustomSidebar]',\n})\nexport class NgDocCustomSidebarDirective {}\n\n@Component({\n\tselector: 'ng-doc-root',\n\ttemplateUrl: './root.component.html',\n\tstyleUrls: ['./root.component.scss'],\n\tproviders: [],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\n@UntilDestroy()\nexport class NgDocRootComponent implements AfterViewInit {\n\t/**\n\t * If `true` then the sidebar will be shown\n\t * You can use it for example for landing page to hide sidebar\n\t */\n\t@Input()\n\tsidebar: boolean = true;\n\n\t/**\n\t * Content for footer\n\t */\n\t@Input()\n\tfooterContent: NgDocContent = '';\n\n\t/**\n\t * If `true` then page will be shown without width limit.\n\t * You can use it for example for landing page\n\t */\n\t@Input()\n\t@HostBinding('attr.data-ng-doc-no-width-limit')\n\tnoWidthLimit: boolean = false;\n\n\t@ViewChild(NgDocSidenavComponent)\n\tsidenav?: NgDocSidenavComponent;\n\n\tprotected sidenavState$: Observable<{\n\t\tover: boolean;\n\t\talign: NgDocHorizontalAlign;\n\t\thasBackdrop: boolean;\n\t}> = NEVER;\n\n\tconstructor(protected readonly sidebarService: NgDocSidebarService) {}\n\n\tngAfterViewInit(): void {\n\t\tthis.sidenavState$ = combineLatest([\n\t\t\tthis.sidebarService.isMobileMode(),\n\t\t\tthis.sidenav\n\t\t\t\t? merge(this.sidenav.beforeOpen.pipe(mapTo(true)), this.sidenav.afterClose.pipe(mapTo(false))).pipe(\n\t\t\t\t\t\tstartWith(false),\n\t\t\t\t )\n\t\t\t\t: of(true),\n\t\t]).pipe(\n\t\t\tfilter(([isMobile, opened]: [boolean, boolean]) => !opened || (opened && !isMobile)),\n\t\t\tmap(([isMobile]: [boolean, boolean]) => ({\n\t\t\t\tover: isMobile,\n\t\t\t\talign: (isMobile ? 'right' : 'left') as NgDocHorizontalAlign,\n\t\t\t\thasBackdrop: isMobile,\n\t\t\t})),\n\t\t\tdelay(0),\n\t\t);\n\t}\n}\n","<ng-container *ngDocLet=\"!!(sidebarService.isMobileMode() | async) as isMobileMode\">\n\t<div class=\"ng-doc-root-wrapper\" [class.collapsable]=\"isMobileMode\">\n\t\t<div class=\"ng-doc-header\">\n\t\t\t<ng-content select=\"ng-doc-navbar\"></ng-content>\n\t\t\t<ng-content select=\"[ngDocCustomNavbar]\"></ng-content>\n\t\t</div>\n\t\t<main *ngDocLet=\"sidebar && !!(sidebarService.isExpanded() | async) as opened\">\n\t\t\t<ng-doc-sidenav\n\t\t\t\t*ngDocLet=\"sidenavState$ | async as sidenavState\"\n\t\t\t\t[sidebar]=\"sidebarContent\"\n\t\t\t\t[opened]=\"opened\"\n\t\t\t\t[over]=\"sidenavState?.over ?? false\"\n\t\t\t\t[align]=\"sidenavState?.align ?? 'left'\"\n\t\t\t\t[hasBackdrop]=\"sidenavState?.hasBackdrop ?? false\"\n\t\t\t\t(closeEvent)=\"sidebarService.hide()\"\n\t\t\t>\n\t\t\t\t<ng-template #sidebarContent>\n\t\t\t\t\t<ng-content select=\"ng-doc-sidebar\"></ng-content>\n\t\t\t\t\t<ng-content select=\"[ngDocCustomSidebar]\"></ng-content>\n\t\t\t\t</ng-template>\n\n\t\t\t\t<ng-content></ng-content>\n\t\t\t</ng-doc-sidenav>\n\t\t</main>\n\t\t<footer *ngIf=\"footerContent\">\n\t\t\t<ng-container *polymorpheusOutlet=\"footerContent as text\"> {{ text }} </ng-container>\n\t\t</footer>\n\t</div>\n</ng-container>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {NgDocLetModule, NgDocMediaQueryModule, NgDocSidenavModule} from '@ng-doc/ui-kit';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {NgDocCustomNavbarDirective, NgDocCustomSidebarDirective, NgDocRootComponent} from './root.component';\n\n@NgModule({\n\tdeclarations: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective],\n\timports: [CommonModule, NgDocMediaQueryModule, NgDocSidenavModule, NgDocLetModule, PolymorpheusModule],\n\texports: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective],\n})\nexport class NgDocRootModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -47,7 +47,7 @@ NgDocSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
47
47
  provide: NgDocListHost,
48
48
  useExisting: NgDocSearchComponent_1,
49
49
  },
50
- ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<ng-container *ngDocLet=\"search$ | async as state\">\n\t<ng-container *ngIf=\"mod === 'icon'; else searchInput\">\n\t\t<button ng-doc-button-icon size=\"large\" (click)=\"inputDropdown.toggle()\" ngDocDropdownOrigin>\n\t\t\t<ng-doc-icon icon=\"search\" [size]=\"24\"></ng-doc-icon>\n\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"dropdownContent\"\n\t\t\t\tpanelClass=\"ng-doc-search-dropdown\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"80vh\"\n\t\t\t\t#inputDropdown\n\t\t\t>\n\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t<div class=\"ng-doc-search-wrapper\">\n\t\t\t\t\t\t<ng-doc-input-wrapper [leftContent]=\"leftContent\" ngDocDropdownOrigin>\n\t\t\t\t\t\t\t<ng-template #leftContent>\n\t\t\t\t\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tngDocInputString\n\t\t\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t\t\t(ngModelChange)=\"query$.next($event)\"\n\t\t\t\t\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t\t\t\t\tngDocAutofocus\n\t\t\t\t\t\t\t\t[selectAll]=\"true\"\n\t\t\t\t\t\t\t\t#inputElement\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-doc-input-wrapper>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"searchResults\"></ng-container>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-dropdown>\n\t\t</button>\n\t</ng-container>\n\n\t<ng-template #searchInput>\n\t\t<ng-doc-input-wrapper\n\t\t\t[leftContent]=\"leftContent\"\n\t\t\t[rightContent]=\"rightContent\"\n\t\t\tngDocDropdownOrigin\n\t\t\tngDocFocusCatcher\n\t\t\t(focusEvent)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t(click)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t#input\n\t\t>\n\t\t\t<ng-template #leftContent>\n\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t</ng-template>\n\t\t\t<input\n\t\t\t\tngDocInputString\n\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t(ngModelChange)=\"query$.next($event); dropdown.open()\"\n\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t[ngDocHotkey]=\"{ctrlKey: false, altKey: false, shiftKey: false, code: 'Slash'}\"\n\t\t\t\t(ngDocHotkey)=\"inputElement.focus(); inputElement.select()\"\n\t\t\t\t#inputElement\n\t\t\t/>\n\t\t\t<ng-template #rightContent>\n\t\t\t\t<ng-doc-tag class=\"search-hotkey\">/</ng-doc-tag>\n\t\t\t</ng-template>\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"searchResults\"\n\t\t\t\t[width]=\"input.elementRef.nativeElement.offsetWidth\"\n\t\t\t\tmaxHeight=\"calc(95vh - var(--ng-doc-navbar-height)\"\n\t\t\t\t#dropdown\n\t\t\t>\n\t\t\t\t<\n\t\t\t</ng-doc-dropdown>\n\t\t</ng-doc-input-wrapper>\n\t</ng-template>\n\n\t<ng-template #searchResults>\n\t\t<div class=\"ng-doc-search-result-content\" [attr.data-ng-doc-mod]=\"mod\">\n\t\t\t<ng-doc-data-list [items]=\"state?.result ?? []\" [itemContent]=\"itemContent\" [emptyContent]=\"emptyContent\">\n\t\t\t\t<ng-template let-item #itemContent>\n\t\t\t\t\t<a class=\"ng-doc-search-option\" [routerLink]=\"item.index.route\" [fragment]=\"item.index.fragment\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-option-header\">\n\t\t\t\t\t\t\t<ng-doc-tag size=\"small\" [attr.data-ng-doc-page-type]=\"item.index.pageType\">\n\t\t\t\t\t\t\t\t{{ item.index.pageType }}\n\t\t\t\t\t\t\t</ng-doc-tag>\n\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumbs\" ng-doc-text>\n\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let breadcrum of item.index.breadcrumbs; let i = index\">\n\t\t\t\t\t\t\t\t\t<span>{{ breadcrum }}</span>\n\t\t\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumb-divider\" *ngIf=\"i !== item.index.breadcrumbs.length - 1\"\n\t\t\t\t\t\t\t\t\t\t>/</span\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<h5\n\t\t\t\t\t\t\tclass=\"ng-doc-search-section-title\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\t(item.index.section\n\t\t\t\t\t\t\t\t\t| ngDocHighlighterPipe: (getPositions | ngDocRun: 'section':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml) || item.index.title\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t></h5>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t*ngIf=\"item.index.content\"\n\t\t\t\t\t\t\tclass=\"ng-doc-search-content\"\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\titem.index.content | ngDocHighlighterPipe: (getPositions | ngDocRun: 'content':item) | ngDocSanitizeHtml\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</a>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template #emptyContent>\n\t\t\t\t\t<ng-container *ngIf=\"!state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-empty\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"query$.value.length\">Nothing found</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!query$.value.length\">Please enter your search query</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<ng-container *ngIf=\"state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-progress\">\n\t\t\t\t\t\t\t<ng-doc-spinner size=\"small\"></ng-doc-spinner>\n\t\t\t\t\t\t\tSearching...\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-data-list>\n\t\t</div>\n\t</ng-template>\n</ng-container>\n", styles: [":host{max-width:500px;--ng-doc-floated-border-radius: var(--ng-doc-base-gutter);--ng-doc-input-background-color: var(--ng-doc-base-1);--ng-doc-input-border: none;--ng-doc-input-border-hover: none;--ng-doc-icon-color: var(--ng-doc-base-8)}:host[data-ng-doc-mod=input]{width:100%}.ng-doc-search-result-content{height:100%;overflow:auto;--ng-doc-option-padding: 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-wrapper{padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-option{padding:12px 16px}.ng-doc-search-wrapper{display:flex;flex-direction:column;height:100%;padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-wrapper ng-doc-input-wrapper{padding:0 calc(var(--ng-doc-base-gutter) * 2)}.ng-doc-search-wrapper .ng-doc-search-result-content{padding:0;margin-top:calc(var(--ng-doc-base-gutter) * 3)}.search-hotkey{display:flex;align-items:center;justify-content:center;width:calc(var(--ng-doc-base-gutter) * 3);height:calc(var(--ng-doc-base-gutter) * 3);margin-right:var(--ng-doc-base-gutter);--ng-doc-tag-border: 1px solid var(--ng-doc-base-7);--ng-doc-tag-color: var(--ng-doc-base-7);--ng-doc-tag-background: transparent}::ng-deep .ng-doc-search-dropdown{--ng-doc-overlay-border-radius: 0px !important}.ng-doc-search-option{display:block;padding:12px 36px;text-decoration:none}.ng-doc-search-option .ng-doc-search-option-header{display:flex;align-items:center}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag{text-transform:uppercase;margin-right:calc(var(--ng-doc-base-gutter) / 2);--ng-doc-font-weight: 900}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=guide]{--ng-doc-tag-color: var(--ng-doc-guide-tag-color);--ng-doc-tag-background: var(--ng-doc-guide-tag-background)}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=api]{--ng-doc-tag-color: var(--ng-doc-api-tag-color);--ng-doc-tag-background: var(--ng-doc-api-tag-background)}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs{--ng-doc-text: var(--ng-doc-text-muted);--ng-doc-font-size: 12px;--ng-doc-line-height: 16px;--ng-doc-font-weight: 600}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs .ng-doc-search-option-breadcrumb-divider{margin:0 6px}.ng-doc-search-option .ng-doc-search-section-title{display:block;color:var(--ng-doc-search-result-header-color, var(--ng-doc-text));--ng-doc-line-height: 20px;margin:4px 0}.ng-doc-search-option .ng-doc-search-content{display:block;color:var(--ng-doc-search-result-color, var(--ng-doc-text));--ng-doc-font-size: 14px;--ng-doc-line-height: 19px;--ng-doc-font-weight: 600}.ng-doc-search-empty{padding:0 22px}.ng-doc-search-progress{display:flex;align-items:center}.ng-doc-search-progress ng-doc-spinner{margin-right:var(--ng-doc-base-gutter)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i5.NgDocInputWrapperComponent, selector: "ng-doc-input-wrapper", inputs: ["blurContent", "blurContext", "leftContent", "rightContent", "align"] }, { kind: "directive", type: i5.NgDocInputStringDirective, selector: "input[ngDocInputString]" }, { kind: "component", type: i5.NgDocDropdownComponent, selector: "ng-doc-dropdown", inputs: ["content", "origin", "closeIfOutsideClick", "closeIfInnerClick", "withArrow", "borderOffset", "panelClass", "contactBorder", "hasBackdrop", "positions", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"] }, { kind: "directive", type: i5.NgDocDropdownOriginDirective, selector: "[ngDocDropdownOrigin]", exportAs: ["ngDocDropdownOrigin"] }, { kind: "directive", type: i5.NgDocFocusCatcherDirective, selector: "[ngDocFocusCatcher]", outputs: ["focusEvent", "blurEvent"], exportAs: ["ngDocFocusCatcher"] }, { kind: "component", type: i5.NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "size"] }, { kind: "component", type: i5.NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { kind: "directive", type: i5.NgDocAutofocusDirective, selector: "[ngDocAutofocus]", inputs: ["selectAll"] }, { kind: "component", type: i5.NgDocTagComponent, selector: "ng-doc-tag", inputs: ["color", "size", "mod"] }, { kind: "directive", type: i5.NgDocHotkeyDirective, selector: "[ngDocHotkey]", inputs: ["ngDocHotkey"], outputs: ["ngDocHotkey"] }, { kind: "component", type: i5.NgDocDataListComponent, selector: "ng-doc-data-list", inputs: ["autofocus", "items", "itemContent", "emptyContent", "itemDisabledFn", "defineValueFn", "trackByFn"] }, { kind: "component", type: i5.NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "directive", type: i5.NgDocLetDirective, selector: "[ngDocLet]", inputs: ["ngDocLet"] }, { kind: "component", type: i5.NgDocSpinnerComponent, selector: "ng-doc-spinner", inputs: ["size"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.NgDocHighlighterPipe, name: "ngDocHighlighterPipe" }, { kind: "pipe", type: i5.NgDocRunPipe, name: "ngDocRun" }, { kind: "pipe", type: i6.NgDocSanitizeHtmlPipe, name: "ngDocSanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
+ ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<ng-container *ngDocLet=\"search$ | async as state\">\n\t<ng-container *ngIf=\"mod === 'icon'; else searchInput\">\n\t\t<button ng-doc-button-icon size=\"large\" (click)=\"inputDropdown.toggle()\" ngDocDropdownOrigin>\n\t\t\t<ng-doc-icon icon=\"search\" [size]=\"24\"></ng-doc-icon>\n\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"dropdownContent\"\n\t\t\t\tpanelClass=\"ng-doc-search-dropdown\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"80vh\"\n\t\t\t\t#inputDropdown\n\t\t\t>\n\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t<div class=\"ng-doc-search-wrapper\">\n\t\t\t\t\t\t<ng-doc-input-wrapper [leftContent]=\"leftContent\" ngDocDropdownOrigin>\n\t\t\t\t\t\t\t<ng-template #leftContent>\n\t\t\t\t\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tngDocInputString\n\t\t\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t\t\t(ngModelChange)=\"query$.next($event)\"\n\t\t\t\t\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t\t\t\t\tngDocAutofocus\n\t\t\t\t\t\t\t\t[selectAll]=\"true\"\n\t\t\t\t\t\t\t\t#inputElement\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-doc-input-wrapper>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"searchResults\"></ng-container>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-dropdown>\n\t\t</button>\n\t</ng-container>\n\n\t<ng-template #searchInput>\n\t\t<ng-doc-input-wrapper\n\t\t\t[leftContent]=\"leftContent\"\n\t\t\t[rightContent]=\"rightContent\"\n\t\t\tngDocDropdownOrigin\n\t\t\tngDocFocusCatcher\n\t\t\t(focusEvent)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t(click)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t#input\n\t\t>\n\t\t\t<ng-template #leftContent>\n\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t</ng-template>\n\t\t\t<input\n\t\t\t\tngDocInputString\n\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t(ngModelChange)=\"query$.next($event); dropdown.open()\"\n\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t[ngDocHotkey]=\"{ctrlKey: false, altKey: false, shiftKey: false, code: 'Slash'}\"\n\t\t\t\t(ngDocHotkey)=\"inputElement.focus(); inputElement.select()\"\n\t\t\t\t#inputElement\n\t\t\t/>\n\t\t\t<ng-template #rightContent>\n\t\t\t\t<ng-doc-tag class=\"search-hotkey\">/</ng-doc-tag>\n\t\t\t</ng-template>\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"searchResults\"\n\t\t\t\tpositions=\"bottom-right\"\n\t\t\t\t[width]=\"input.elementRef.nativeElement.offsetWidth\"\n\t\t\t\tmaxHeight=\"calc(95vh - var(--ng-doc-navbar-height)\"\n\t\t\t\t#dropdown\n\t\t\t>\n\t\t\t\t<\n\t\t\t</ng-doc-dropdown>\n\t\t</ng-doc-input-wrapper>\n\t</ng-template>\n\n\t<ng-template #searchResults>\n\t\t<div class=\"ng-doc-search-result-content\" [attr.data-ng-doc-mod]=\"mod\">\n\t\t\t<ng-doc-data-list [items]=\"state?.result ?? []\" [itemContent]=\"itemContent\" [emptyContent]=\"emptyContent\">\n\t\t\t\t<ng-template let-item #itemContent>\n\t\t\t\t\t<a class=\"ng-doc-search-option\" [routerLink]=\"item.index.route\" [fragment]=\"item.index.fragment\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-option-header\">\n\t\t\t\t\t\t\t<ng-doc-tag size=\"small\" [attr.data-ng-doc-page-type]=\"item.index.pageType\">\n\t\t\t\t\t\t\t\t{{ item.index.pageType }}\n\t\t\t\t\t\t\t</ng-doc-tag>\n\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumbs\" ng-doc-text>\n\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let breadcrum of item.index.breadcrumbs; let i = index\">\n\t\t\t\t\t\t\t\t\t<span>{{ breadcrum }}</span>\n\t\t\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumb-divider\" *ngIf=\"i !== item.index.breadcrumbs.length - 1\"\n\t\t\t\t\t\t\t\t\t\t>/</span\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<h5\n\t\t\t\t\t\t\tclass=\"ng-doc-search-section-title\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\t(item.index.section\n\t\t\t\t\t\t\t\t\t| ngDocHighlighterPipe: (getPositions | ngDocRun: 'section':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml) || item.index.title\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t></h5>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t*ngIf=\"item.index.content\"\n\t\t\t\t\t\t\tclass=\"ng-doc-search-content\"\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\titem.index.content | ngDocHighlighterPipe: (getPositions | ngDocRun: 'content':item) | ngDocSanitizeHtml\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</a>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template #emptyContent>\n\t\t\t\t\t<ng-container *ngIf=\"!state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-empty\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"query$.value.length\">Nothing found</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!query$.value.length\">Please enter your search query</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<ng-container *ngIf=\"state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-progress\">\n\t\t\t\t\t\t\t<ng-doc-spinner size=\"small\"></ng-doc-spinner>\n\t\t\t\t\t\t\tSearching...\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-data-list>\n\t\t</div>\n\t</ng-template>\n</ng-container>\n", styles: [":host{max-width:500px;--ng-doc-floated-border-radius: var(--ng-doc-base-gutter);--ng-doc-input-background-color: var(--ng-doc-base-1);--ng-doc-input-border: none;--ng-doc-input-border-hover: none;--ng-doc-icon-color: var(--ng-doc-base-8)}:host[data-ng-doc-mod=input]{width:480px}.ng-doc-search-result-content{height:100%;overflow:auto;--ng-doc-option-padding: 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-wrapper{padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-option{padding:12px 16px}.ng-doc-search-wrapper{display:flex;flex-direction:column;height:100%;padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-wrapper ng-doc-input-wrapper{padding:0 calc(var(--ng-doc-base-gutter) * 2)}.ng-doc-search-wrapper .ng-doc-search-result-content{padding:0;margin-top:calc(var(--ng-doc-base-gutter) * 3)}.search-hotkey{display:flex;align-items:center;justify-content:center;width:calc(var(--ng-doc-base-gutter) * 3);height:calc(var(--ng-doc-base-gutter) * 3);margin-right:var(--ng-doc-base-gutter);--ng-doc-tag-border: 1px solid var(--ng-doc-base-7);--ng-doc-tag-color: var(--ng-doc-base-7);--ng-doc-tag-background: transparent}::ng-deep .ng-doc-search-dropdown{--ng-doc-overlay-border-radius: 0px !important}.ng-doc-search-option{display:block;padding:12px 36px;text-decoration:none}.ng-doc-search-option .ng-doc-search-option-header{display:flex;align-items:center}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag{text-transform:uppercase;margin-right:calc(var(--ng-doc-base-gutter) / 2);--ng-doc-font-weight: 900}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=guide]{--ng-doc-tag-color: var(--ng-doc-guide-tag-color);--ng-doc-tag-background: var(--ng-doc-guide-tag-background)}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=api]{--ng-doc-tag-color: var(--ng-doc-api-tag-color);--ng-doc-tag-background: var(--ng-doc-api-tag-background)}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs{--ng-doc-text: var(--ng-doc-text-muted);--ng-doc-font-size: 12px;--ng-doc-line-height: 16px;--ng-doc-font-weight: 600}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs .ng-doc-search-option-breadcrumb-divider{margin:0 6px}.ng-doc-search-option .ng-doc-search-section-title{display:block;color:var(--ng-doc-search-result-header-color, var(--ng-doc-text));--ng-doc-line-height: 20px;margin:4px 0}.ng-doc-search-option .ng-doc-search-content{display:block;color:var(--ng-doc-search-result-color, var(--ng-doc-text));--ng-doc-font-size: 14px;--ng-doc-line-height: 19px;--ng-doc-font-weight: 600}.ng-doc-search-empty{padding:0 22px}.ng-doc-search-progress{display:flex;align-items:center}.ng-doc-search-progress ng-doc-spinner{margin-right:var(--ng-doc-base-gutter)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i5.NgDocInputWrapperComponent, selector: "ng-doc-input-wrapper", inputs: ["blurContent", "blurContext", "leftContent", "rightContent", "align"] }, { kind: "directive", type: i5.NgDocInputStringDirective, selector: "input[ngDocInputString]" }, { kind: "component", type: i5.NgDocDropdownComponent, selector: "ng-doc-dropdown", inputs: ["content", "origin", "closeIfOutsideClick", "closeIfInnerClick", "withArrow", "borderOffset", "panelClass", "contactBorder", "hasBackdrop", "positions", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"] }, { kind: "directive", type: i5.NgDocDropdownOriginDirective, selector: "[ngDocDropdownOrigin]", exportAs: ["ngDocDropdownOrigin"] }, { kind: "directive", type: i5.NgDocFocusCatcherDirective, selector: "[ngDocFocusCatcher]", outputs: ["focusEvent", "blurEvent"], exportAs: ["ngDocFocusCatcher"] }, { kind: "component", type: i5.NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "size"] }, { kind: "component", type: i5.NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { kind: "directive", type: i5.NgDocAutofocusDirective, selector: "[ngDocAutofocus]", inputs: ["selectAll"] }, { kind: "component", type: i5.NgDocTagComponent, selector: "ng-doc-tag", inputs: ["color", "size", "mod"] }, { kind: "directive", type: i5.NgDocHotkeyDirective, selector: "[ngDocHotkey]", inputs: ["ngDocHotkey"], outputs: ["ngDocHotkey"] }, { kind: "component", type: i5.NgDocDataListComponent, selector: "ng-doc-data-list", inputs: ["autofocus", "items", "itemContent", "emptyContent", "itemDisabledFn", "defineValueFn", "trackByFn"] }, { kind: "component", type: i5.NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "directive", type: i5.NgDocLetDirective, selector: "[ngDocLet]", inputs: ["ngDocLet"] }, { kind: "component", type: i5.NgDocSpinnerComponent, selector: "ng-doc-spinner", inputs: ["size"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.NgDocHighlighterPipe, name: "ngDocHighlighterPipe" }, { kind: "pipe", type: i5.NgDocRunPipe, name: "ngDocRun" }, { kind: "pipe", type: i6.NgDocSanitizeHtmlPipe, name: "ngDocSanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
51
  NgDocSearchComponent = NgDocSearchComponent_1 = __decorate([
52
52
  UntilDestroy(),
53
53
  __metadata("design:paramtypes", [ElementRef,
@@ -61,7 +61,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
61
61
  provide: NgDocListHost,
62
62
  useExisting: NgDocSearchComponent,
63
63
  },
64
- ], template: "<ng-container *ngDocLet=\"search$ | async as state\">\n\t<ng-container *ngIf=\"mod === 'icon'; else searchInput\">\n\t\t<button ng-doc-button-icon size=\"large\" (click)=\"inputDropdown.toggle()\" ngDocDropdownOrigin>\n\t\t\t<ng-doc-icon icon=\"search\" [size]=\"24\"></ng-doc-icon>\n\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"dropdownContent\"\n\t\t\t\tpanelClass=\"ng-doc-search-dropdown\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"80vh\"\n\t\t\t\t#inputDropdown\n\t\t\t>\n\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t<div class=\"ng-doc-search-wrapper\">\n\t\t\t\t\t\t<ng-doc-input-wrapper [leftContent]=\"leftContent\" ngDocDropdownOrigin>\n\t\t\t\t\t\t\t<ng-template #leftContent>\n\t\t\t\t\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tngDocInputString\n\t\t\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t\t\t(ngModelChange)=\"query$.next($event)\"\n\t\t\t\t\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t\t\t\t\tngDocAutofocus\n\t\t\t\t\t\t\t\t[selectAll]=\"true\"\n\t\t\t\t\t\t\t\t#inputElement\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-doc-input-wrapper>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"searchResults\"></ng-container>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-dropdown>\n\t\t</button>\n\t</ng-container>\n\n\t<ng-template #searchInput>\n\t\t<ng-doc-input-wrapper\n\t\t\t[leftContent]=\"leftContent\"\n\t\t\t[rightContent]=\"rightContent\"\n\t\t\tngDocDropdownOrigin\n\t\t\tngDocFocusCatcher\n\t\t\t(focusEvent)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t(click)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t#input\n\t\t>\n\t\t\t<ng-template #leftContent>\n\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t</ng-template>\n\t\t\t<input\n\t\t\t\tngDocInputString\n\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t(ngModelChange)=\"query$.next($event); dropdown.open()\"\n\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t[ngDocHotkey]=\"{ctrlKey: false, altKey: false, shiftKey: false, code: 'Slash'}\"\n\t\t\t\t(ngDocHotkey)=\"inputElement.focus(); inputElement.select()\"\n\t\t\t\t#inputElement\n\t\t\t/>\n\t\t\t<ng-template #rightContent>\n\t\t\t\t<ng-doc-tag class=\"search-hotkey\">/</ng-doc-tag>\n\t\t\t</ng-template>\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"searchResults\"\n\t\t\t\t[width]=\"input.elementRef.nativeElement.offsetWidth\"\n\t\t\t\tmaxHeight=\"calc(95vh - var(--ng-doc-navbar-height)\"\n\t\t\t\t#dropdown\n\t\t\t>\n\t\t\t\t<\n\t\t\t</ng-doc-dropdown>\n\t\t</ng-doc-input-wrapper>\n\t</ng-template>\n\n\t<ng-template #searchResults>\n\t\t<div class=\"ng-doc-search-result-content\" [attr.data-ng-doc-mod]=\"mod\">\n\t\t\t<ng-doc-data-list [items]=\"state?.result ?? []\" [itemContent]=\"itemContent\" [emptyContent]=\"emptyContent\">\n\t\t\t\t<ng-template let-item #itemContent>\n\t\t\t\t\t<a class=\"ng-doc-search-option\" [routerLink]=\"item.index.route\" [fragment]=\"item.index.fragment\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-option-header\">\n\t\t\t\t\t\t\t<ng-doc-tag size=\"small\" [attr.data-ng-doc-page-type]=\"item.index.pageType\">\n\t\t\t\t\t\t\t\t{{ item.index.pageType }}\n\t\t\t\t\t\t\t</ng-doc-tag>\n\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumbs\" ng-doc-text>\n\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let breadcrum of item.index.breadcrumbs; let i = index\">\n\t\t\t\t\t\t\t\t\t<span>{{ breadcrum }}</span>\n\t\t\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumb-divider\" *ngIf=\"i !== item.index.breadcrumbs.length - 1\"\n\t\t\t\t\t\t\t\t\t\t>/</span\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<h5\n\t\t\t\t\t\t\tclass=\"ng-doc-search-section-title\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\t(item.index.section\n\t\t\t\t\t\t\t\t\t| ngDocHighlighterPipe: (getPositions | ngDocRun: 'section':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml) || item.index.title\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t></h5>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t*ngIf=\"item.index.content\"\n\t\t\t\t\t\t\tclass=\"ng-doc-search-content\"\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\titem.index.content | ngDocHighlighterPipe: (getPositions | ngDocRun: 'content':item) | ngDocSanitizeHtml\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</a>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template #emptyContent>\n\t\t\t\t\t<ng-container *ngIf=\"!state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-empty\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"query$.value.length\">Nothing found</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!query$.value.length\">Please enter your search query</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<ng-container *ngIf=\"state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-progress\">\n\t\t\t\t\t\t\t<ng-doc-spinner size=\"small\"></ng-doc-spinner>\n\t\t\t\t\t\t\tSearching...\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-data-list>\n\t\t</div>\n\t</ng-template>\n</ng-container>\n", styles: [":host{max-width:500px;--ng-doc-floated-border-radius: var(--ng-doc-base-gutter);--ng-doc-input-background-color: var(--ng-doc-base-1);--ng-doc-input-border: none;--ng-doc-input-border-hover: none;--ng-doc-icon-color: var(--ng-doc-base-8)}:host[data-ng-doc-mod=input]{width:100%}.ng-doc-search-result-content{height:100%;overflow:auto;--ng-doc-option-padding: 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-wrapper{padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-option{padding:12px 16px}.ng-doc-search-wrapper{display:flex;flex-direction:column;height:100%;padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-wrapper ng-doc-input-wrapper{padding:0 calc(var(--ng-doc-base-gutter) * 2)}.ng-doc-search-wrapper .ng-doc-search-result-content{padding:0;margin-top:calc(var(--ng-doc-base-gutter) * 3)}.search-hotkey{display:flex;align-items:center;justify-content:center;width:calc(var(--ng-doc-base-gutter) * 3);height:calc(var(--ng-doc-base-gutter) * 3);margin-right:var(--ng-doc-base-gutter);--ng-doc-tag-border: 1px solid var(--ng-doc-base-7);--ng-doc-tag-color: var(--ng-doc-base-7);--ng-doc-tag-background: transparent}::ng-deep .ng-doc-search-dropdown{--ng-doc-overlay-border-radius: 0px !important}.ng-doc-search-option{display:block;padding:12px 36px;text-decoration:none}.ng-doc-search-option .ng-doc-search-option-header{display:flex;align-items:center}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag{text-transform:uppercase;margin-right:calc(var(--ng-doc-base-gutter) / 2);--ng-doc-font-weight: 900}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=guide]{--ng-doc-tag-color: var(--ng-doc-guide-tag-color);--ng-doc-tag-background: var(--ng-doc-guide-tag-background)}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=api]{--ng-doc-tag-color: var(--ng-doc-api-tag-color);--ng-doc-tag-background: var(--ng-doc-api-tag-background)}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs{--ng-doc-text: var(--ng-doc-text-muted);--ng-doc-font-size: 12px;--ng-doc-line-height: 16px;--ng-doc-font-weight: 600}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs .ng-doc-search-option-breadcrumb-divider{margin:0 6px}.ng-doc-search-option .ng-doc-search-section-title{display:block;color:var(--ng-doc-search-result-header-color, var(--ng-doc-text));--ng-doc-line-height: 20px;margin:4px 0}.ng-doc-search-option .ng-doc-search-content{display:block;color:var(--ng-doc-search-result-color, var(--ng-doc-text));--ng-doc-font-size: 14px;--ng-doc-line-height: 19px;--ng-doc-font-weight: 600}.ng-doc-search-empty{padding:0 22px}.ng-doc-search-progress{display:flex;align-items:center}.ng-doc-search-progress ng-doc-spinner{margin-right:var(--ng-doc-base-gutter)}\n"] }]
64
+ ], template: "<ng-container *ngDocLet=\"search$ | async as state\">\n\t<ng-container *ngIf=\"mod === 'icon'; else searchInput\">\n\t\t<button ng-doc-button-icon size=\"large\" (click)=\"inputDropdown.toggle()\" ngDocDropdownOrigin>\n\t\t\t<ng-doc-icon icon=\"search\" [size]=\"24\"></ng-doc-icon>\n\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"dropdownContent\"\n\t\t\t\tpanelClass=\"ng-doc-search-dropdown\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"80vh\"\n\t\t\t\t#inputDropdown\n\t\t\t>\n\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t<div class=\"ng-doc-search-wrapper\">\n\t\t\t\t\t\t<ng-doc-input-wrapper [leftContent]=\"leftContent\" ngDocDropdownOrigin>\n\t\t\t\t\t\t\t<ng-template #leftContent>\n\t\t\t\t\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tngDocInputString\n\t\t\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t\t\t(ngModelChange)=\"query$.next($event)\"\n\t\t\t\t\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t\t\t\t\tngDocAutofocus\n\t\t\t\t\t\t\t\t[selectAll]=\"true\"\n\t\t\t\t\t\t\t\t#inputElement\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-doc-input-wrapper>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"searchResults\"></ng-container>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-dropdown>\n\t\t</button>\n\t</ng-container>\n\n\t<ng-template #searchInput>\n\t\t<ng-doc-input-wrapper\n\t\t\t[leftContent]=\"leftContent\"\n\t\t\t[rightContent]=\"rightContent\"\n\t\t\tngDocDropdownOrigin\n\t\t\tngDocFocusCatcher\n\t\t\t(focusEvent)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t(click)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t#input\n\t\t>\n\t\t\t<ng-template #leftContent>\n\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t</ng-template>\n\t\t\t<input\n\t\t\t\tngDocInputString\n\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t(ngModelChange)=\"query$.next($event); dropdown.open()\"\n\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t[ngDocHotkey]=\"{ctrlKey: false, altKey: false, shiftKey: false, code: 'Slash'}\"\n\t\t\t\t(ngDocHotkey)=\"inputElement.focus(); inputElement.select()\"\n\t\t\t\t#inputElement\n\t\t\t/>\n\t\t\t<ng-template #rightContent>\n\t\t\t\t<ng-doc-tag class=\"search-hotkey\">/</ng-doc-tag>\n\t\t\t</ng-template>\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"searchResults\"\n\t\t\t\tpositions=\"bottom-right\"\n\t\t\t\t[width]=\"input.elementRef.nativeElement.offsetWidth\"\n\t\t\t\tmaxHeight=\"calc(95vh - var(--ng-doc-navbar-height)\"\n\t\t\t\t#dropdown\n\t\t\t>\n\t\t\t\t<\n\t\t\t</ng-doc-dropdown>\n\t\t</ng-doc-input-wrapper>\n\t</ng-template>\n\n\t<ng-template #searchResults>\n\t\t<div class=\"ng-doc-search-result-content\" [attr.data-ng-doc-mod]=\"mod\">\n\t\t\t<ng-doc-data-list [items]=\"state?.result ?? []\" [itemContent]=\"itemContent\" [emptyContent]=\"emptyContent\">\n\t\t\t\t<ng-template let-item #itemContent>\n\t\t\t\t\t<a class=\"ng-doc-search-option\" [routerLink]=\"item.index.route\" [fragment]=\"item.index.fragment\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-option-header\">\n\t\t\t\t\t\t\t<ng-doc-tag size=\"small\" [attr.data-ng-doc-page-type]=\"item.index.pageType\">\n\t\t\t\t\t\t\t\t{{ item.index.pageType }}\n\t\t\t\t\t\t\t</ng-doc-tag>\n\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumbs\" ng-doc-text>\n\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let breadcrum of item.index.breadcrumbs; let i = index\">\n\t\t\t\t\t\t\t\t\t<span>{{ breadcrum }}</span>\n\t\t\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumb-divider\" *ngIf=\"i !== item.index.breadcrumbs.length - 1\"\n\t\t\t\t\t\t\t\t\t\t>/</span\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<h5\n\t\t\t\t\t\t\tclass=\"ng-doc-search-section-title\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\t(item.index.section\n\t\t\t\t\t\t\t\t\t| ngDocHighlighterPipe: (getPositions | ngDocRun: 'section':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml) || item.index.title\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t></h5>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t*ngIf=\"item.index.content\"\n\t\t\t\t\t\t\tclass=\"ng-doc-search-content\"\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\titem.index.content | ngDocHighlighterPipe: (getPositions | ngDocRun: 'content':item) | ngDocSanitizeHtml\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</a>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template #emptyContent>\n\t\t\t\t\t<ng-container *ngIf=\"!state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-empty\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"query$.value.length\">Nothing found</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!query$.value.length\">Please enter your search query</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<ng-container *ngIf=\"state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-progress\">\n\t\t\t\t\t\t\t<ng-doc-spinner size=\"small\"></ng-doc-spinner>\n\t\t\t\t\t\t\tSearching...\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-data-list>\n\t\t</div>\n\t</ng-template>\n</ng-container>\n", styles: [":host{max-width:500px;--ng-doc-floated-border-radius: var(--ng-doc-base-gutter);--ng-doc-input-background-color: var(--ng-doc-base-1);--ng-doc-input-border: none;--ng-doc-input-border-hover: none;--ng-doc-icon-color: var(--ng-doc-base-8)}:host[data-ng-doc-mod=input]{width:480px}.ng-doc-search-result-content{height:100%;overflow:auto;--ng-doc-option-padding: 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-wrapper{padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-option{padding:12px 16px}.ng-doc-search-wrapper{display:flex;flex-direction:column;height:100%;padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-wrapper ng-doc-input-wrapper{padding:0 calc(var(--ng-doc-base-gutter) * 2)}.ng-doc-search-wrapper .ng-doc-search-result-content{padding:0;margin-top:calc(var(--ng-doc-base-gutter) * 3)}.search-hotkey{display:flex;align-items:center;justify-content:center;width:calc(var(--ng-doc-base-gutter) * 3);height:calc(var(--ng-doc-base-gutter) * 3);margin-right:var(--ng-doc-base-gutter);--ng-doc-tag-border: 1px solid var(--ng-doc-base-7);--ng-doc-tag-color: var(--ng-doc-base-7);--ng-doc-tag-background: transparent}::ng-deep .ng-doc-search-dropdown{--ng-doc-overlay-border-radius: 0px !important}.ng-doc-search-option{display:block;padding:12px 36px;text-decoration:none}.ng-doc-search-option .ng-doc-search-option-header{display:flex;align-items:center}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag{text-transform:uppercase;margin-right:calc(var(--ng-doc-base-gutter) / 2);--ng-doc-font-weight: 900}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=guide]{--ng-doc-tag-color: var(--ng-doc-guide-tag-color);--ng-doc-tag-background: var(--ng-doc-guide-tag-background)}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=api]{--ng-doc-tag-color: var(--ng-doc-api-tag-color);--ng-doc-tag-background: var(--ng-doc-api-tag-background)}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs{--ng-doc-text: var(--ng-doc-text-muted);--ng-doc-font-size: 12px;--ng-doc-line-height: 16px;--ng-doc-font-weight: 600}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs .ng-doc-search-option-breadcrumb-divider{margin:0 6px}.ng-doc-search-option .ng-doc-search-section-title{display:block;color:var(--ng-doc-search-result-header-color, var(--ng-doc-text));--ng-doc-line-height: 20px;margin:4px 0}.ng-doc-search-option .ng-doc-search-content{display:block;color:var(--ng-doc-search-result-color, var(--ng-doc-text));--ng-doc-font-size: 14px;--ng-doc-line-height: 19px;--ng-doc-font-weight: 600}.ng-doc-search-empty{padding:0 22px}.ng-doc-search-progress{display:flex;align-items:center}.ng-doc-search-progress ng-doc-spinner{margin-right:var(--ng-doc-base-gutter)}\n"] }]
65
65
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.NgDocSearchEngine, decorators: [{
66
66
  type: Optional
67
67
  }] }]; }, propDecorators: { mod: [{
@@ -1 +1 @@
1
- {"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/search.module.ts","../../../../libs/app/components/search/ng-doc-app-components-search.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tElementRef,\n\tHostBinding,\n\tInput,\n\tOptional,\n\tViewChild,\n} from '@angular/core';\nimport {NgDocSearchEngine} from '@ng-doc/app/classes/search-engine';\nimport {NgDocSearchResult} from '@ng-doc/app/interfaces';\nimport {NgDocPageType} from '@ng-doc/core';\nimport {NgDocHighlightPosition, observableState, StatedObservable} from '@ng-doc/ui-kit';\nimport {NgDocListHost} from '@ng-doc/ui-kit/classes';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {BehaviorSubject, NEVER, ReplaySubject, Subject} from 'rxjs';\nimport {filter, skip, switchMap} from 'rxjs/operators';\n\n@Component({\n\tselector: 'ng-doc-search',\n\ttemplateUrl: './search.component.html',\n\tstyleUrls: ['./search.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NgDocListHost,\n\t\t\tuseExisting: NgDocSearchComponent,\n\t\t},\n\t],\n})\n@UntilDestroy()\nexport class NgDocSearchComponent implements NgDocListHost {\n\t@Input()\n\t@HostBinding('attr.data-ng-doc-mod')\n\tmod: 'input' | 'icon' = 'input';\n\n\t@ViewChild('inputElement')\n\tinputElement?: ElementRef<HTMLElement>;\n\n\tsearchTerm: string = '';\n\n\treadonly query$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n\treadonly search$: StatedObservable<NgDocSearchResult[]>;\n\n\tconstructor(\n\t\tprivate readonly elementRef: ElementRef<HTMLElement>,\n\t\tprivate readonly changeDetectorRef: ChangeDetectorRef,\n\t\t@Optional()\n\t\tprivate readonly searchEngine?: NgDocSearchEngine,\n\t) {\n\t\tif (!this.searchEngine) {\n\t\t\tthrow new Error(`NgDoc: Search engine is not provided,\n\t\t\tplease check this article: https://ng-doc.com/getting-started/installation#importing-global-modules\n\t\t\tto learn how to provide it.`);\n\t\t}\n\n\t\tthis.search$ = this.query$.pipe(\n\t\t\tskip(1),\n\t\t\tswitchMap((term: string) => this.searchEngine?.search(term).pipe(observableState()) ?? NEVER),\n\t\t\tuntilDestroyed(this),\n\t\t);\n\t}\n\n\tget listHostOrigin(): ElementRef<HTMLElement> {\n\t\treturn this.inputElement ?? this.elementRef;\n\t}\n\n\tgetPositions<T extends NgDocSearchResult, K extends keyof T['positions']>(key: K, item: T): NgDocHighlightPosition[] {\n\t\treturn item.positions[key] ?? [];\n\t}\n}\n","<ng-container *ngDocLet=\"search$ | async as state\">\n\t<ng-container *ngIf=\"mod === 'icon'; else searchInput\">\n\t\t<button ng-doc-button-icon size=\"large\" (click)=\"inputDropdown.toggle()\" ngDocDropdownOrigin>\n\t\t\t<ng-doc-icon icon=\"search\" [size]=\"24\"></ng-doc-icon>\n\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"dropdownContent\"\n\t\t\t\tpanelClass=\"ng-doc-search-dropdown\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"80vh\"\n\t\t\t\t#inputDropdown\n\t\t\t>\n\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t<div class=\"ng-doc-search-wrapper\">\n\t\t\t\t\t\t<ng-doc-input-wrapper [leftContent]=\"leftContent\" ngDocDropdownOrigin>\n\t\t\t\t\t\t\t<ng-template #leftContent>\n\t\t\t\t\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tngDocInputString\n\t\t\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t\t\t(ngModelChange)=\"query$.next($event)\"\n\t\t\t\t\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t\t\t\t\tngDocAutofocus\n\t\t\t\t\t\t\t\t[selectAll]=\"true\"\n\t\t\t\t\t\t\t\t#inputElement\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-doc-input-wrapper>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"searchResults\"></ng-container>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-dropdown>\n\t\t</button>\n\t</ng-container>\n\n\t<ng-template #searchInput>\n\t\t<ng-doc-input-wrapper\n\t\t\t[leftContent]=\"leftContent\"\n\t\t\t[rightContent]=\"rightContent\"\n\t\t\tngDocDropdownOrigin\n\t\t\tngDocFocusCatcher\n\t\t\t(focusEvent)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t(click)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t#input\n\t\t>\n\t\t\t<ng-template #leftContent>\n\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t</ng-template>\n\t\t\t<input\n\t\t\t\tngDocInputString\n\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t(ngModelChange)=\"query$.next($event); dropdown.open()\"\n\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t[ngDocHotkey]=\"{ctrlKey: false, altKey: false, shiftKey: false, code: 'Slash'}\"\n\t\t\t\t(ngDocHotkey)=\"inputElement.focus(); inputElement.select()\"\n\t\t\t\t#inputElement\n\t\t\t/>\n\t\t\t<ng-template #rightContent>\n\t\t\t\t<ng-doc-tag class=\"search-hotkey\">/</ng-doc-tag>\n\t\t\t</ng-template>\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"searchResults\"\n\t\t\t\t[width]=\"input.elementRef.nativeElement.offsetWidth\"\n\t\t\t\tmaxHeight=\"calc(95vh - var(--ng-doc-navbar-height)\"\n\t\t\t\t#dropdown\n\t\t\t>\n\t\t\t\t<\n\t\t\t</ng-doc-dropdown>\n\t\t</ng-doc-input-wrapper>\n\t</ng-template>\n\n\t<ng-template #searchResults>\n\t\t<div class=\"ng-doc-search-result-content\" [attr.data-ng-doc-mod]=\"mod\">\n\t\t\t<ng-doc-data-list [items]=\"state?.result ?? []\" [itemContent]=\"itemContent\" [emptyContent]=\"emptyContent\">\n\t\t\t\t<ng-template let-item #itemContent>\n\t\t\t\t\t<a class=\"ng-doc-search-option\" [routerLink]=\"item.index.route\" [fragment]=\"item.index.fragment\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-option-header\">\n\t\t\t\t\t\t\t<ng-doc-tag size=\"small\" [attr.data-ng-doc-page-type]=\"item.index.pageType\">\n\t\t\t\t\t\t\t\t{{ item.index.pageType }}\n\t\t\t\t\t\t\t</ng-doc-tag>\n\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumbs\" ng-doc-text>\n\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let breadcrum of item.index.breadcrumbs; let i = index\">\n\t\t\t\t\t\t\t\t\t<span>{{ breadcrum }}</span>\n\t\t\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumb-divider\" *ngIf=\"i !== item.index.breadcrumbs.length - 1\"\n\t\t\t\t\t\t\t\t\t\t>/</span\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<h5\n\t\t\t\t\t\t\tclass=\"ng-doc-search-section-title\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\t(item.index.section\n\t\t\t\t\t\t\t\t\t| ngDocHighlighterPipe: (getPositions | ngDocRun: 'section':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml) || item.index.title\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t></h5>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t*ngIf=\"item.index.content\"\n\t\t\t\t\t\t\tclass=\"ng-doc-search-content\"\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\titem.index.content | ngDocHighlighterPipe: (getPositions | ngDocRun: 'content':item) | ngDocSanitizeHtml\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</a>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template #emptyContent>\n\t\t\t\t\t<ng-container *ngIf=\"!state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-empty\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"query$.value.length\">Nothing found</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!query$.value.length\">Please enter your search query</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<ng-container *ngIf=\"state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-progress\">\n\t\t\t\t\t\t\t<ng-doc-spinner size=\"small\"></ng-doc-spinner>\n\t\t\t\t\t\t\tSearching...\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-data-list>\n\t\t</div>\n\t</ng-template>\n</ng-container>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {NgDocSanitizeHtmlModule} from '@ng-doc/app/pipes';\nimport {\n\tNgDocAutofocusModule,\n\tNgDocBindModule,\n\tNgDocButtonIconModule,\n\tNgDocDataListModule,\n\tNgDocDropdownModule,\n\tNgDocDropdownOriginModule,\n\tNgDocFocusCatcherModule,\n\tNgDocHighlighterModule,\n\tNgDocHotkeyModule,\n\tNgDocIconModule,\n\tNgDocInputStringModule,\n\tNgDocInputWrapperModule,\n\tNgDocLetModule,\n\tNgDocRunModule,\n\tNgDocSpinnerModule,\n\tNgDocTagModule,\n\tNgDocTextModule,\n} from '@ng-doc/ui-kit';\n\nimport {NgDocSearchComponent} from './search.component';\n\n@NgModule({\n\tdeclarations: [NgDocSearchComponent],\n\timports: [\n\t\tCommonModule,\n\t\tFormsModule,\n\t\tRouterModule,\n\t\tNgDocInputWrapperModule,\n\t\tNgDocInputStringModule,\n\t\tNgDocDropdownModule,\n\t\tNgDocDropdownOriginModule,\n\t\tNgDocFocusCatcherModule,\n\t\tNgDocIconModule,\n\t\tNgDocButtonIconModule,\n\t\tNgDocAutofocusModule,\n\t\tNgDocTagModule,\n\t\tNgDocHotkeyModule,\n\t\tNgDocDataListModule,\n\t\tNgDocHighlighterModule,\n\t\tNgDocTextModule,\n\t\tNgDocLetModule,\n\t\tNgDocRunModule,\n\t\tNgDocBindModule,\n\t\tNgDocSanitizeHtmlModule,\n\t\tNgDocSpinnerModule,\n\t],\n\texports: [NgDocSearchComponent],\n})\nexport class NgDocSearchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"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/search.module.ts","../../../../libs/app/components/search/ng-doc-app-components-search.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tElementRef,\n\tHostBinding,\n\tInput,\n\tOptional,\n\tViewChild,\n} from '@angular/core';\nimport {NgDocSearchEngine} from '@ng-doc/app/classes/search-engine';\nimport {NgDocSearchResult} from '@ng-doc/app/interfaces';\nimport {NgDocPageType} from '@ng-doc/core';\nimport {NgDocHighlightPosition, observableState, StatedObservable} from '@ng-doc/ui-kit';\nimport {NgDocListHost} from '@ng-doc/ui-kit/classes';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {BehaviorSubject, NEVER, ReplaySubject, Subject} from 'rxjs';\nimport {filter, skip, switchMap} from 'rxjs/operators';\n\n@Component({\n\tselector: 'ng-doc-search',\n\ttemplateUrl: './search.component.html',\n\tstyleUrls: ['./search.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NgDocListHost,\n\t\t\tuseExisting: NgDocSearchComponent,\n\t\t},\n\t],\n})\n@UntilDestroy()\nexport class NgDocSearchComponent implements NgDocListHost {\n\t@Input()\n\t@HostBinding('attr.data-ng-doc-mod')\n\tmod: 'input' | 'icon' = 'input';\n\n\t@ViewChild('inputElement')\n\tinputElement?: ElementRef<HTMLElement>;\n\n\tsearchTerm: string = '';\n\n\treadonly query$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n\treadonly search$: StatedObservable<NgDocSearchResult[]>;\n\n\tconstructor(\n\t\tprivate readonly elementRef: ElementRef<HTMLElement>,\n\t\tprivate readonly changeDetectorRef: ChangeDetectorRef,\n\t\t@Optional()\n\t\tprivate readonly searchEngine?: NgDocSearchEngine,\n\t) {\n\t\tif (!this.searchEngine) {\n\t\t\tthrow new Error(`NgDoc: Search engine is not provided,\n\t\t\tplease check this article: https://ng-doc.com/getting-started/installation#importing-global-modules\n\t\t\tto learn how to provide it.`);\n\t\t}\n\n\t\tthis.search$ = this.query$.pipe(\n\t\t\tskip(1),\n\t\t\tswitchMap((term: string) => this.searchEngine?.search(term).pipe(observableState()) ?? NEVER),\n\t\t\tuntilDestroyed(this),\n\t\t);\n\t}\n\n\tget listHostOrigin(): ElementRef<HTMLElement> {\n\t\treturn this.inputElement ?? this.elementRef;\n\t}\n\n\tgetPositions<T extends NgDocSearchResult, K extends keyof T['positions']>(key: K, item: T): NgDocHighlightPosition[] {\n\t\treturn item.positions[key] ?? [];\n\t}\n}\n","<ng-container *ngDocLet=\"search$ | async as state\">\n\t<ng-container *ngIf=\"mod === 'icon'; else searchInput\">\n\t\t<button ng-doc-button-icon size=\"large\" (click)=\"inputDropdown.toggle()\" ngDocDropdownOrigin>\n\t\t\t<ng-doc-icon icon=\"search\" [size]=\"24\"></ng-doc-icon>\n\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"dropdownContent\"\n\t\t\t\tpanelClass=\"ng-doc-search-dropdown\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"80vh\"\n\t\t\t\t#inputDropdown\n\t\t\t>\n\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t<div class=\"ng-doc-search-wrapper\">\n\t\t\t\t\t\t<ng-doc-input-wrapper [leftContent]=\"leftContent\" ngDocDropdownOrigin>\n\t\t\t\t\t\t\t<ng-template #leftContent>\n\t\t\t\t\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tngDocInputString\n\t\t\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t\t\t(ngModelChange)=\"query$.next($event)\"\n\t\t\t\t\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t\t\t\t\tngDocAutofocus\n\t\t\t\t\t\t\t\t[selectAll]=\"true\"\n\t\t\t\t\t\t\t\t#inputElement\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-doc-input-wrapper>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"searchResults\"></ng-container>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-dropdown>\n\t\t</button>\n\t</ng-container>\n\n\t<ng-template #searchInput>\n\t\t<ng-doc-input-wrapper\n\t\t\t[leftContent]=\"leftContent\"\n\t\t\t[rightContent]=\"rightContent\"\n\t\t\tngDocDropdownOrigin\n\t\t\tngDocFocusCatcher\n\t\t\t(focusEvent)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t(click)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t#input\n\t\t>\n\t\t\t<ng-template #leftContent>\n\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t</ng-template>\n\t\t\t<input\n\t\t\t\tngDocInputString\n\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t(ngModelChange)=\"query$.next($event); dropdown.open()\"\n\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t[ngDocHotkey]=\"{ctrlKey: false, altKey: false, shiftKey: false, code: 'Slash'}\"\n\t\t\t\t(ngDocHotkey)=\"inputElement.focus(); inputElement.select()\"\n\t\t\t\t#inputElement\n\t\t\t/>\n\t\t\t<ng-template #rightContent>\n\t\t\t\t<ng-doc-tag class=\"search-hotkey\">/</ng-doc-tag>\n\t\t\t</ng-template>\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"searchResults\"\n\t\t\t\tpositions=\"bottom-right\"\n\t\t\t\t[width]=\"input.elementRef.nativeElement.offsetWidth\"\n\t\t\t\tmaxHeight=\"calc(95vh - var(--ng-doc-navbar-height)\"\n\t\t\t\t#dropdown\n\t\t\t>\n\t\t\t\t<\n\t\t\t</ng-doc-dropdown>\n\t\t</ng-doc-input-wrapper>\n\t</ng-template>\n\n\t<ng-template #searchResults>\n\t\t<div class=\"ng-doc-search-result-content\" [attr.data-ng-doc-mod]=\"mod\">\n\t\t\t<ng-doc-data-list [items]=\"state?.result ?? []\" [itemContent]=\"itemContent\" [emptyContent]=\"emptyContent\">\n\t\t\t\t<ng-template let-item #itemContent>\n\t\t\t\t\t<a class=\"ng-doc-search-option\" [routerLink]=\"item.index.route\" [fragment]=\"item.index.fragment\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-option-header\">\n\t\t\t\t\t\t\t<ng-doc-tag size=\"small\" [attr.data-ng-doc-page-type]=\"item.index.pageType\">\n\t\t\t\t\t\t\t\t{{ item.index.pageType }}\n\t\t\t\t\t\t\t</ng-doc-tag>\n\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumbs\" ng-doc-text>\n\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let breadcrum of item.index.breadcrumbs; let i = index\">\n\t\t\t\t\t\t\t\t\t<span>{{ breadcrum }}</span>\n\t\t\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumb-divider\" *ngIf=\"i !== item.index.breadcrumbs.length - 1\"\n\t\t\t\t\t\t\t\t\t\t>/</span\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<h5\n\t\t\t\t\t\t\tclass=\"ng-doc-search-section-title\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\t(item.index.section\n\t\t\t\t\t\t\t\t\t| ngDocHighlighterPipe: (getPositions | ngDocRun: 'section':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml) || item.index.title\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t></h5>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t*ngIf=\"item.index.content\"\n\t\t\t\t\t\t\tclass=\"ng-doc-search-content\"\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\titem.index.content | ngDocHighlighterPipe: (getPositions | ngDocRun: 'content':item) | ngDocSanitizeHtml\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</a>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template #emptyContent>\n\t\t\t\t\t<ng-container *ngIf=\"!state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-empty\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"query$.value.length\">Nothing found</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!query$.value.length\">Please enter your search query</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<ng-container *ngIf=\"state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-progress\">\n\t\t\t\t\t\t\t<ng-doc-spinner size=\"small\"></ng-doc-spinner>\n\t\t\t\t\t\t\tSearching...\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-data-list>\n\t\t</div>\n\t</ng-template>\n</ng-container>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {NgDocSanitizeHtmlModule} from '@ng-doc/app/pipes';\nimport {\n\tNgDocAutofocusModule,\n\tNgDocBindModule,\n\tNgDocButtonIconModule,\n\tNgDocDataListModule,\n\tNgDocDropdownModule,\n\tNgDocDropdownOriginModule,\n\tNgDocFocusCatcherModule,\n\tNgDocHighlighterModule,\n\tNgDocHotkeyModule,\n\tNgDocIconModule,\n\tNgDocInputStringModule,\n\tNgDocInputWrapperModule,\n\tNgDocLetModule,\n\tNgDocRunModule,\n\tNgDocSpinnerModule,\n\tNgDocTagModule,\n\tNgDocTextModule,\n} from '@ng-doc/ui-kit';\n\nimport {NgDocSearchComponent} from './search.component';\n\n@NgModule({\n\tdeclarations: [NgDocSearchComponent],\n\timports: [\n\t\tCommonModule,\n\t\tFormsModule,\n\t\tRouterModule,\n\t\tNgDocInputWrapperModule,\n\t\tNgDocInputStringModule,\n\t\tNgDocDropdownModule,\n\t\tNgDocDropdownOriginModule,\n\t\tNgDocFocusCatcherModule,\n\t\tNgDocIconModule,\n\t\tNgDocButtonIconModule,\n\t\tNgDocAutofocusModule,\n\t\tNgDocTagModule,\n\t\tNgDocHotkeyModule,\n\t\tNgDocDataListModule,\n\t\tNgDocHighlighterModule,\n\t\tNgDocTextModule,\n\t\tNgDocLetModule,\n\t\tNgDocRunModule,\n\t\tNgDocBindModule,\n\t\tNgDocSanitizeHtmlModule,\n\t\tNgDocSpinnerModule,\n\t],\n\texports: [NgDocSearchComponent],\n})\nexport class NgDocSearchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}