@ng-doc/app 17.5.5 → 17.5.6

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 (99) hide show
  1. package/esm2022/components/api-list/api-list.component.mjs +5 -5
  2. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +3 -3
  3. package/esm2022/components/code/code.component.mjs +3 -3
  4. package/esm2022/components/demo/demo.component.mjs +4 -4
  5. package/esm2022/components/demo-displayer/demo-displayer.component.mjs +3 -3
  6. package/esm2022/components/demo-pane/demo-pane.component.mjs +4 -4
  7. package/esm2022/components/fullscreen-button/fullscreen-button.component.mjs +3 -3
  8. package/esm2022/components/kind-icon/kind-icon.component.mjs +3 -3
  9. package/esm2022/components/link/link.component.mjs +3 -3
  10. package/esm2022/components/navbar/navbar.component.mjs +3 -3
  11. package/esm2022/components/page/page.component.mjs +4 -4
  12. package/esm2022/components/page-link/page-link.component.mjs +3 -3
  13. package/esm2022/components/page-navigation/page-navigation.component.mjs +3 -3
  14. package/esm2022/components/playground/base-playground.mjs +4 -4
  15. package/esm2022/components/playground/playground-demo/playground-demo.component.mjs +4 -4
  16. package/esm2022/components/playground/playground-properties/playground-properties.component.mjs +5 -5
  17. package/esm2022/components/playground/playground-property/playground-property.component.mjs +4 -4
  18. package/esm2022/components/playground/playground.component.mjs +4 -4
  19. package/esm2022/components/root/root.component.mjs +9 -9
  20. package/esm2022/components/search/search.component.mjs +4 -4
  21. package/esm2022/components/search-result/search-result.component.mjs +4 -4
  22. package/esm2022/components/sidebar/sidebar-category/sidebar-category.component.mjs +4 -4
  23. package/esm2022/components/sidebar/sidebar-item/sidebar-item.component.mjs +3 -3
  24. package/esm2022/components/sidebar/sidebar.component.mjs +3 -3
  25. package/esm2022/components/tabs/tabs.component.mjs +3 -3
  26. package/esm2022/components/theme-toggle/theme-toggle.component.mjs +4 -4
  27. package/esm2022/components/toc/toc-element/toc-element.component.mjs +3 -3
  28. package/esm2022/components/toc/toc.component.mjs +4 -4
  29. package/esm2022/directives/code-highlighter/code-highlighter.directive.mjs +4 -4
  30. package/esm2022/directives/route-active/route-active.directive.mjs +3 -3
  31. package/esm2022/helpers/as-boolean.mjs +1 -1
  32. package/esm2022/helpers/create-component.mjs +1 -1
  33. package/esm2022/helpers/generate-toc.mjs +1 -1
  34. package/esm2022/pipes/extract-value/extract-value.pipe.mjs +3 -3
  35. package/esm2022/pipes/filter-by-text/filter-by-text.pipe.mjs +3 -3
  36. package/esm2022/pipes/sanitize-html/sanitize-html.pipe.mjs +3 -3
  37. package/esm2022/processors/page-processor/page-processor.directive.mjs +4 -4
  38. package/esm2022/processors/processors/tooltip.processor.mjs +4 -4
  39. package/esm2022/providers/ng-doc-app/provide-ng-doc-app.mjs +1 -1
  40. package/esm2022/services/sidebar/sidebar.service.mjs +4 -4
  41. package/esm2022/services/store/store.service.mjs +3 -3
  42. package/esm2022/services/theme/theme.service.mjs +4 -4
  43. package/esm2022/type-controls/boolean-control/boolean-control.component.mjs +3 -3
  44. package/esm2022/type-controls/number-control/number-control.component.mjs +3 -3
  45. package/esm2022/type-controls/string-control/string-control.component.mjs +3 -3
  46. package/esm2022/type-controls/type-alias-control/type-alias-control.component.mjs +3 -3
  47. package/fesm2022/ng-doc-app-components-api-list.mjs +4 -4
  48. package/fesm2022/ng-doc-app-components-api-list.mjs.map +1 -1
  49. package/fesm2022/ng-doc-app-components-breadcrumb.mjs +3 -3
  50. package/fesm2022/ng-doc-app-components-code.mjs +3 -3
  51. package/fesm2022/ng-doc-app-components-demo-displayer.mjs +3 -3
  52. package/fesm2022/ng-doc-app-components-demo-pane.mjs +3 -3
  53. package/fesm2022/ng-doc-app-components-demo-pane.mjs.map +1 -1
  54. package/fesm2022/ng-doc-app-components-demo.mjs +3 -3
  55. package/fesm2022/ng-doc-app-components-demo.mjs.map +1 -1
  56. package/fesm2022/ng-doc-app-components-fullscreen-button.mjs +3 -3
  57. package/fesm2022/ng-doc-app-components-kind-icon.mjs +3 -3
  58. package/fesm2022/ng-doc-app-components-link.mjs +3 -3
  59. package/fesm2022/ng-doc-app-components-navbar.mjs +3 -3
  60. package/fesm2022/ng-doc-app-components-page-link.mjs +3 -3
  61. package/fesm2022/ng-doc-app-components-page-navigation.mjs +3 -3
  62. package/fesm2022/ng-doc-app-components-page.mjs +3 -3
  63. package/fesm2022/ng-doc-app-components-page.mjs.map +1 -1
  64. package/fesm2022/ng-doc-app-components-playground.mjs +16 -16
  65. package/fesm2022/ng-doc-app-components-playground.mjs.map +1 -1
  66. package/fesm2022/ng-doc-app-components-root.mjs +9 -9
  67. package/fesm2022/ng-doc-app-components-search-result.mjs +3 -3
  68. package/fesm2022/ng-doc-app-components-search-result.mjs.map +1 -1
  69. package/fesm2022/ng-doc-app-components-search.mjs +3 -3
  70. package/fesm2022/ng-doc-app-components-search.mjs.map +1 -1
  71. package/fesm2022/ng-doc-app-components-sidebar.mjs +9 -9
  72. package/fesm2022/ng-doc-app-components-sidebar.mjs.map +1 -1
  73. package/fesm2022/ng-doc-app-components-tabs.mjs +3 -3
  74. package/fesm2022/ng-doc-app-components-theme-toggle.mjs +3 -3
  75. package/fesm2022/ng-doc-app-components-theme-toggle.mjs.map +1 -1
  76. package/fesm2022/ng-doc-app-components-toc.mjs +6 -6
  77. package/fesm2022/ng-doc-app-components-toc.mjs.map +1 -1
  78. package/fesm2022/ng-doc-app-directives-code-highlighter.mjs +3 -3
  79. package/fesm2022/ng-doc-app-directives-code-highlighter.mjs.map +1 -1
  80. package/fesm2022/ng-doc-app-directives-route-active.mjs +3 -3
  81. package/fesm2022/ng-doc-app-helpers.mjs.map +1 -1
  82. package/fesm2022/ng-doc-app-pipes-extract-value.mjs +3 -3
  83. package/fesm2022/ng-doc-app-pipes-filter-by-text.mjs +3 -3
  84. package/fesm2022/ng-doc-app-pipes-sanitize-html.mjs +3 -3
  85. package/fesm2022/ng-doc-app-processors-page-processor.mjs +3 -3
  86. package/fesm2022/ng-doc-app-processors-page-processor.mjs.map +1 -1
  87. package/fesm2022/ng-doc-app-processors-processors.mjs +3 -3
  88. package/fesm2022/ng-doc-app-processors-processors.mjs.map +1 -1
  89. package/fesm2022/ng-doc-app-providers-ng-doc-app.mjs.map +1 -1
  90. package/fesm2022/ng-doc-app-services-sidebar.mjs +3 -3
  91. package/fesm2022/ng-doc-app-services-sidebar.mjs.map +1 -1
  92. package/fesm2022/ng-doc-app-services-store.mjs +3 -3
  93. package/fesm2022/ng-doc-app-services-theme.mjs +3 -3
  94. package/fesm2022/ng-doc-app-services-theme.mjs.map +1 -1
  95. package/fesm2022/ng-doc-app-type-controls-boolean-control.mjs +3 -3
  96. package/fesm2022/ng-doc-app-type-controls-number-control.mjs +3 -3
  97. package/fesm2022/ng-doc-app-type-controls-string-control.mjs +3 -3
  98. package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs +3 -3
  99. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-components-playground.mjs","sources":["../../../../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-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.component.ts","../../../../libs/app/components/playground/playground.component.html","../../../../libs/app/components/playground/base-playground.ts","../../../../libs/app/components/playground/ng-doc-app-components-playground.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\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 { NgDocDemoDisplayerComponent } from '@ng-doc/app/components/demo-displayer';\nimport { formatHtml } from '@ng-doc/app/helpers';\nimport { getPlaygroundDemoToken } from '@ng-doc/app/providers/playground-demo';\nimport { NgDocFormPartialValue } from '@ng-doc/app/types';\nimport { stringify } from '@ng-doc/core';\nimport {\n\tbuildPlaygroundDemoPipeTemplate,\n\tbuildPlaygroundDemoTemplate,\n} from '@ng-doc/core/helpers/build-playground-demo-template';\nimport { objectKeys } from '@ng-doc/core/helpers/object-keys';\nimport { NgDocPlaygroundConfig, NgDocPlaygroundProperties } from '@ng-doc/core/interfaces';\nimport { NgDocLetDirective, NgDocSmoothResizeComponent } from '@ng-doc/ui-kit';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { from, Observable, of, Subject } from 'rxjs';\nimport { startWith, 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\tstandalone: true,\n\timports: [NgDocDemoDisplayerComponent, AsyncPipe, NgDocSmoothResizeComponent, NgDocLetDirective],\n})\n@UntilDestroy()\nexport class NgDocPlaygroundDemoComponent<\n\t\tT extends NgDocPlaygroundProperties = NgDocPlaygroundProperties,\n\t>\n\timplements OnChanges, OnDestroy\n{\n\t@Input()\n\tid: string = '';\n\n\t@Input()\n\tpipeName: 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@Input()\n\texpanded: boolean = false;\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 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 =\n\t\t\t\tgetPlaygroundDemoToken(this.id);\n\n\t\t\tif (demoInjector) {\n\t\t\t\tconst demos: Array<typeof NgDocBasePlayground> = this.injector.get(demoInjector, []);\n\n\t\t\t\tthis.playgroundDemo = demos.find(\n\t\t\t\t\t(demo: typeof NgDocBasePlayground) =>\n\t\t\t\t\t\tdemo.selector === this.selector || demo.selector === this.pipeName,\n\t\t\t\t);\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), startWith(this.form?.value))\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.createDemo();\n\t\t}\n\n\t\tif (data) {\n\t\t\tthis.demoRef?.setInput('properties', data.properties ?? {});\n\t\t\tthis.demoRef?.setInput('content', data.content ?? {});\n\t\t\tthis.demoRef?.setInput('actionData', this.configuration?.data ?? {});\n\n\t\t\tif (this.recreateDemo) {\n\t\t\t\tthis.demoRef?.instance.onReattached.subscribe(() => {\n\t\t\t\t\tthis.demoRef?.changeDetectorRef.detectChanges();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tthis.updateCodeView();\n\t}\n\n\tprivate createDemo(): void {\n\t\tif (this.playgroundDemo) {\n\t\t\tthis.demoRef?.destroy();\n\t\t\tthis.demoRef = this.demoOutlet?.createComponent(\n\t\t\t\tthis.playgroundDemo as unknown as Type<NgDocBasePlayground>,\n\t\t\t);\n\t\t\tthis.demoRef?.changeDetectorRef.markForCheck();\n\t\t}\n\t}\n\n\tprivate updateCodeView(): void {\n\t\tconst template: string = this.pipeName\n\t\t\t? buildPlaygroundDemoPipeTemplate(\n\t\t\t\t\tthis.configuration?.template ?? '',\n\t\t\t\t\tthis.pipeName,\n\t\t\t\t\tthis.getActiveContent(),\n\t\t\t\t\tthis.getPipeActiveInputs(),\n\t\t\t\t)\n\t\t\t: buildPlaygroundDemoTemplate(\n\t\t\t\t\tthis.configuration?.template ?? '',\n\t\t\t\t\tthis.selector,\n\t\t\t\t\tthis.getActiveContent(),\n\t\t\t\t\tthis.getActiveInputs(),\n\t\t\t\t);\n\n\t\tthis.code = from(formatHtml(template));\n\t}\n\n\tprivate getActiveContent(): Record<string, string> {\n\t\tconst formData: Record<string, boolean> =\n\t\t\t(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, unknown> =\n\t\t\t(this.form?.controls.properties.value as Record<string, unknown>) ?? {};\n\n\t\treturn objectKeys(formData).reduce((result: Record<string, string>, key: string) => {\n\t\t\tconst value: unknown = formData[key];\n\t\t\tconst property: unknown | undefined = this.demoRef?.instance?.defaultValues[key];\n\n\t\t\tif (property !== value) {\n\t\t\t\tresult[key] = stringify(value).replace(/\"/g, `'`);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}, {});\n\t}\n\n\tprivate getPipeActiveInputs(): Record<string, string> {\n\t\tconst formData: Record<string, unknown> =\n\t\t\t(this.form?.controls.properties.value as Record<string, unknown>) ?? {};\n\t\tlet changedInputIndex: number = -1;\n\n\t\treturn objectKeys(formData)\n\t\t\t.map((key: string, i: number) => {\n\t\t\t\tconst value: unknown = formData[key];\n\t\t\t\tconst defaultValue: unknown | undefined = this.demoRef?.instance?.defaultValues[key];\n\n\t\t\t\tif (defaultValue !== value) {\n\t\t\t\t\tchangedInputIndex = i;\n\t\t\t\t}\n\n\t\t\t\treturn key;\n\t\t\t})\n\t\t\t.slice(0, changedInputIndex + 1)\n\t\t\t.reduce((result: Record<string, string>, key: string) => {\n\t\t\t\tresult[key] = stringify(formData[key]).replace(/\"/g, `'`);\n\n\t\t\t\treturn result;\n\t\t\t}, {});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.unsubscribe$.next();\n\t\tthis.unsubscribe$.complete();\n\t}\n}\n","<ng-doc-smooth-resize *ngDocLet=\"code | async as codeContent\" [trigger]=\"codeContent\">\n\t<ng-doc-demo-displayer\n\t\t[code]=\"codeContent ?? ''\"\n\t\t[border]=\"false\"\n\t\t[expanded]=\"expanded\"\n\t\tlanguage=\"html\">\n\t\t<ng-container #demoOutlet></ng-container>\n\t</ng-doc-demo-displayer>\n</ng-doc-smooth-resize>\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tComponentRef,\n\tHostBinding,\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 {\n\tNgDocProvidedTypeControl,\n\tNgDocTypeControl,\n\tNgDocTypeControlProviderOptions,\n} from '@ng-doc/app/interfaces';\nimport { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes';\nimport { NgDocPlaygroundContent, NgDocPlaygroundProperty } from '@ng-doc/core/interfaces';\nimport { NgDocLabelComponent, NgDocTooltipDirective } from '@ng-doc/ui-kit';\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\tstandalone: true,\n\timports: [NgDocLabelComponent, NgDocTooltipDirective, NgDocSanitizeHtmlPipe],\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@Input()\n\tdefaultValue?: unknown;\n\n\t@ViewChild('propertyOutlet', { read: ViewContainerRef, static: true })\n\tpropertyOutlet?: ViewContainerRef;\n\n\tprotected option?: NgDocTypeControlProviderOptions;\n\tprivate propertyTypeControl?: ComponentRef<NgDocTypeControl>;\n\n\tngOnChanges({ property, control, typeControl, defaultValue }: SimpleChanges): void {\n\t\tif ((property || control || typeControl || defaultValue) && 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 = this.defaultValue;\n\t\t\t\tthis.propertyTypeControl.instance.isManual = isPlaygroundProperty(this.property)\n\t\t\t\t\t? this.property.isManual\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\n\t\t\tif (this.control) {\n\t\t\t\tthis.control?.registerOnChange((value: string) =>\n\t\t\t\t\tthis.propertyTypeControl?.instance?.writeValue(value),\n\t\t\t\t);\n\t\t\t\tthis.propertyTypeControl?.instance.registerOnChange((value: unknown) =>\n\t\t\t\t\tthis.control?.setValue(value),\n\t\t\t\t);\n\t\t\t\tthis.propertyTypeControl?.instance.registerOnTouched(() => this.control?.markAsTouched());\n\t\t\t}\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)\n\t\t\t? this.property.description ?? ''\n\t\t\t: '';\n\t}\n}\n","<label [ng-doc-label]=\"option?.hideLabel ? '' : labelContent\">\n\t<ng-template #labelContent>\n\t\t<span\n\t\t\t[ngDocTooltip]=\"tooltipTemplate\"\n\t\t\t[canOpen]=\"!!tooltipContent\"\n\t\t\t[positions]=\"['left-center', 'top-right', 'bottom-right']\"\n\t\t\t>{{ name }}</span\n\t\t>\n\t\t<ng-template #tooltipTemplate>\n\t\t\t<div [innerHTML]=\"tooltipContent | ngDocSanitizeHtml\"></div>\n\t\t</ng-template>\n\t</ng-template>\n\t<ng-container #propertyOutlet></ng-container>\n</label>\n","import { BreakpointObserver, Breakpoints, BreakpointState } from '@angular/cdk/layout';\nimport { AsyncPipe, KeyValuePipe, NgFor, NgIf } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tEventEmitter,\n\tInjectionToken,\n\tInjector,\n\tInput,\n\tisDevMode,\n\tOnChanges,\n\tOutput,\n\tSimpleChanges,\n} from '@angular/core';\nimport { FormControl, FormGroup, FormsModule } from '@angular/forms';\nimport { isPlaygroundProperty } from '@ng-doc/app/helpers';\nimport { NgDocProvidedTypeControl } from '@ng-doc/app/interfaces';\nimport { getTokenForType } from '@ng-doc/app/providers/type-control';\nimport { extractValueOrThrow, isPresent, objectKeys } from '@ng-doc/core';\nimport {\n\tNgDocPlaygroundContent,\n\tNgDocPlaygroundProperties,\n\tNgDocPlaygroundProperty,\n} from '@ng-doc/core/interfaces';\nimport {\n\tNgDocBindPipe,\n\tNgDocButtonComponent,\n\tNgDocCheckboxComponent,\n\tNgDocExecutePipe,\n\tNgDocIconComponent,\n\tNgDocTextComponent,\n\tNgDocTextRightDirective,\n\tNgDocTooltipDirective,\n} from '@ng-doc/ui-kit';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { NgDocPlaygroundForm } from '../playground-form';\nimport { NgDocPlaygroundPropertyComponent } from '../playground-property/playground-property.component';\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\tstandalone: true,\n\timports: [\n\t\tNgDocTextComponent,\n\t\tNgDocButtonComponent,\n\t\tNgDocCheckboxComponent,\n\t\tFormsModule,\n\t\tNgDocTooltipDirective,\n\t\tNgDocIconComponent,\n\t\tNgDocTextRightDirective,\n\t\tNgIf,\n\t\tNgFor,\n\t\tNgDocPlaygroundPropertyComponent,\n\t\tAsyncPipe,\n\t\tKeyValuePipe,\n\t\tNgDocBindPipe,\n\t\tNgDocExecutePipe,\n\t],\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\tignoreInputs?: string[] = [];\n\n\t@Input()\n\tdynamicContent?: C;\n\n\t@Input()\n\tdefaultValues?: Record<string, unknown>;\n\n\t@Input()\n\thideSidePanel: boolean = false;\n\n\t@Input()\n\trecreateDemo: boolean = false;\n\n\t@Input()\n\tshowResetButton: 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(\n\t\tprotected readonly breakpointObserver: BreakpointObserver,\n\t\tprivate injector: Injector,\n\t) {\n\t\tthis.observer = this.breakpointObserver\n\t\t\t.observe(this.breakpoints)\n\t\t\t.pipe(map((state: BreakpointState) => state.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.filter((key: keyof P) => this.ignoreInputs?.includes(String(key)) !== true)\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.inputName.localeCompare(b.property.inputName);\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 =\n\t\t\tthis.getControlForType(type) ??\n\t\t\tthis.getControlForTypeAlias(\n\t\t\t\tisPlaygroundProperty(property) ? property.options : undefined,\n\t\t\t\tproperty.isManual,\n\t\t\t);\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.inputName}\", 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(\n\t\toptions?: string[],\n\t\tisManual?: boolean,\n\t): NgDocProvidedTypeControl | undefined {\n\t\tif (options && options.length) {\n\t\t\tlet optionsIsValid: boolean = true;\n\n\t\t\tif (!isManual) {\n\t\t\t\ttry {\n\t\t\t\t\t// checking that all values are extractable\n\t\t\t\t\toptions.forEach((item: string) => extractValueOrThrow(item));\n\t\t\t\t} catch {\n\t\t\t\t\toptionsIsValid = false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (optionsIsValid) {\n\t\t\t\tconst token: InjectionToken<NgDocProvidedTypeControl> | undefined =\n\t\t\t\t\tgetTokenForType('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\n\tclass=\"ng-doc-playground-properties-wrapper\"\n\t[class.vertical]=\"observer | async\"\n\t*ngIf=\"defaultValues\">\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\" *ngIf=\"!hideSidePanel\">\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=\"alert\" (click)=\"resetForm.emit()\" *ngIf=\"showResetButton\">\n\t\t\t\tReset\n\t\t\t</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\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.inputName\"\n\t\t\t\t[property]=\"propertyControl.property\"\n\t\t\t\t[typeControl]=\"propertyControl.typeControl\"\n\t\t\t\t[defaultValue]=\"defaultValues[propertyControl.propertyName]\"\n\t\t\t\t[control]=\"\n\t\t\t\t\tgetFormControl | bind: this | execute: 'properties':propertyControl.propertyName\n\t\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 | bind: this | execute: 'content':content.key\">\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\t</div>\n</div>\n","import { NgFor, NgIf } from '@angular/common';\nimport {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\tInput,\n\tOnChanges,\n\tSimpleChanges,\n} from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { NgDocRootPage } from '@ng-doc/app/classes/root-page';\nimport { isSameObject } from '@ng-doc/core';\nimport { objectKeys } from '@ng-doc/core/helpers/object-keys';\nimport {\n\tNgDocPlaygroundConfig,\n\tNgDocPlaygroundOptions,\n\tNgDocPlaygroundProperties,\n} from '@ng-doc/core/interfaces';\nimport { NgDocAsArrayPipe } from '@ng-doc/ui-kit';\n\nimport { NgDocPlaygroundDemoComponent } from './playground-demo/playground-demo.component';\nimport { NgDocPlaygroundForm } from './playground-form';\nimport { NgDocPlaygroundPropertiesComponent } from './playground-properties/playground-properties.component';\n\n@Component({\n\tselector: 'ng-doc-playground',\n\ttemplateUrl: './playground.component.html',\n\tstyleUrls: ['./playground.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgIf,\n\t\tNgDocPlaygroundPropertiesComponent,\n\t\tNgFor,\n\t\tNgDocPlaygroundDemoComponent,\n\t\tNgDocAsArrayPipe,\n\t],\n})\nexport class NgDocPlaygroundComponent<\n\tT extends NgDocPlaygroundProperties = NgDocPlaygroundProperties,\n> implements OnChanges, AfterViewInit\n{\n\t@Input({ required: true })\n\tid: string = '';\n\n\t@Input()\n\tpipeName: string = '';\n\n\t@Input()\n\tselectors: string[] = [];\n\n\t@Input()\n\tproperties?: T;\n\n\t@Input()\n\toptions: NgDocPlaygroundOptions = {};\n\n\trecreateDemo: boolean = false;\n\tformGroup!: FormGroup<NgDocPlaygroundForm>;\n\tdefaultValues?: Record<string, unknown>;\n\tconfiguration!: NgDocPlaygroundConfig;\n\n\tprivate defaultProperties: Record<string, unknown> = {};\n\tprivate defaultContent: Record<string, boolean> = {};\n\n\tconstructor(\n\t\tprivate readonly rootPage: NgDocRootPage,\n\t\tprivate readonly formBuilder: FormBuilder,\n\t) {}\n\n\tngOnChanges({ options }: SimpleChanges) {\n\t\tif (options) {\n\t\t\t// Join configuration with options\n\t\t\tthis.configuration = Object.assign(\n\t\t\t\t{},\n\t\t\t\tthis.rootPage.page?.playgrounds?.[this.id],\n\t\t\t\tthis.options,\n\t\t\t);\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.defaultProperties = this.getPropertiesFormValues();\n\t\tthis.defaultContent = this.getContentFormValues();\n\n\t\tconst propertiesForm: FormGroup = this.formBuilder.group(this.defaultProperties);\n\t\tconst contentForm: FormGroup = this.formBuilder.group(this.defaultContent);\n\n\t\tthis.formGroup = this.formBuilder.group({\n\t\t\tproperties: propertiesForm,\n\t\t\tcontent: contentForm,\n\t\t});\n\t\t// `patchValue` is needed to set `undefined` values, otherwise they will be ignored by the Angular form\n\t\tthis.formGroup.patchValue({\n\t\t\tproperties: Object.assign({}, this.defaultProperties, this.configuration.inputs),\n\t\t\tcontent: this.defaultContent,\n\t\t});\n\t}\n\n\tprotected isDefaultState(): boolean {\n\t\tif (!this.formGroup) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn (\n\t\t\tisSameObject(this.formGroup.value.properties ?? {}, this.defaultValues ?? {}) &&\n\t\t\tisSameObject(this.formGroup.value.content ?? {}, this.defaultContent ?? {})\n\t\t);\n\t}\n\n\tprivate getPropertiesFormValues(): Record<string, unknown> {\n\t\tconst formValues: Record<string, unknown> = objectKeys(this.properties ?? {}).reduce(\n\t\t\t(controls: Record<string, unknown>, key: string) => {\n\t\t\t\tif (this.properties) {\n\t\t\t\t\tcontrols[key] = this.defaultValues ? this.defaultValues[key] : undefined;\n\t\t\t\t}\n\n\t\t\t\treturn controls;\n\t\t\t},\n\t\t\t{} as Record<string, unknown>,\n\t\t);\n\n\t\treturn Object.assign({}, formValues, this.configuration.defaults);\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}\n\n\tresetForm(): void {\n\t\tthis.formGroup.reset({}, { emitEvent: false });\n\t\tthis.formGroup?.patchValue({\n\t\t\tproperties: this.defaultProperties,\n\t\t\tcontent: this.defaultContent,\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[ignoreInputs]=\"configuration.hiddenInputs\"\n\t\t[dynamicContent]=\"configuration.content\"\n\t\t[hideSidePanel]=\"configuration.hideSidePanel ?? false\"\n\t\t[defaultValues]=\"defaultValues\"\n\t\t[showResetButton]=\"!isDefaultState()\"\n\t\t[(recreateDemo)]=\"recreateDemo\"\n\t\t(resetForm)=\"resetForm()\">\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\t[expanded]=\"configuration.expanded ?? false\">\n\t\t</ng-doc-playground-demo>\n\n\t\t<ng-doc-playground-demo\n\t\t\t*ngIf=\"pipeName\"\n\t\t\t[id]=\"id\"\n\t\t\t[pipeName]=\"pipeName\"\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</ng-doc-playground-demo>\n\t</ng-doc-playground-properties>\n</ng-container>\n","import {\n\tChangeDetectorRef,\n\tDirective,\n\tinject,\n\tInput,\n\tOnInit,\n\tType,\n\tViewContainerRef,\n} from '@angular/core';\nimport { Constructor, extractFunctionDefaults } from '@ng-doc/core';\nimport { NgDocPlaygroundConfig } from '@ng-doc/core/interfaces';\nimport { Observable, Subject, take } from 'rxjs';\n\nimport { NgDocPlaygroundComponent } from './playground.component';\n\n/**\n * Base class for playgrounds components.\n */\n@Directive()\nexport abstract class NgDocBasePlayground implements Pick<NgDocPlaygroundConfig, 'data'>, OnInit {\n\tstatic readonly selector: string = 'unknown';\n\tabstract readonly playground?: Type<any>;\n\tabstract readonly viewContainerRef?: ViewContainerRef;\n\tabstract readonly configData: Record<string, unknown>;\n\n\t@Input()\n\tproperties: Record<string, any> = {};\n\n\t@Input()\n\tactionData: Record<string, unknown> = {};\n\n\t@Input()\n\tcontent: any = {};\n\n\tdefaultValues: Record<string, unknown> = {};\n\n\tprivate reattached: Subject<void> = new Subject<void>();\n\n\tprivate playgroundContainer: NgDocPlaygroundComponent = inject(NgDocPlaygroundComponent);\n\tprotected changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n\tprotected constructor(private playgroundInstance?: Constructor<unknown>) {\n\t\tthis.changeDetectorRef.detach();\n\t}\n\n\tget onReattached(): Observable<void> {\n\t\treturn this.reattached.pipe(take(1));\n\t}\n\n\tngOnInit(): void {\n\t\t/*\n\t\t * Extract default values from playground properties. We do this in `ngOnInit` because in this case\n\t\t * input values provided from the template are not initialized yet, and we can read default values instead.\n\t\t */\n\t\tif (this.playground) {\n\t\t\tthis.defaultValues = Object.keys(this.playground).reduce(\n\t\t\t\t(values: Record<string, unknown>, key: string) => {\n\t\t\t\t\tif (this.playground) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tvalues[key] =\n\t\t\t\t\t\t\t\t// @ts-expect-error we do not know the type of the playground\n\t\t\t\t\t\t\t\ttypeof this.playground[key] === 'function'\n\t\t\t\t\t\t\t\t\t? // @ts-expect-error we do not know the type of the playground\n\t\t\t\t\t\t\t\t\t\tthis.playground[key]()\n\t\t\t\t\t\t\t\t\t: // @ts-expect-error we do not know the type of the playground\n\t\t\t\t\t\t\t\t\t\tthis.playground[key];\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t// we do catch here because some of the playground properties can be getters and throw an error\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn values;\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t);\n\t\t} else if (this.playgroundInstance) {\n\t\t\tconst defaults = extractFunctionDefaults(this.playgroundInstance.prototype.transform);\n\n\t\t\tthis.defaultValues = Object.keys(this.playgroundContainer.properties ?? {}).reduce(\n\t\t\t\t(def: Record<string, unknown>, key: string, i: number) => {\n\t\t\t\t\t// we do +1 because the first argument is the `value` of the transform function\n\t\t\t\t\tdef[key] = defaults[i + 1];\n\n\t\t\t\t\treturn def;\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t);\n\t\t} else {\n\t\t\tthrow new Error('Playground is not defined or initialized');\n\t\t}\n\n\t\tif (!this.playgroundContainer.defaultValues) {\n\t\t\tthis.playgroundContainer.defaultValues = this.defaultValues;\n\t\t}\n\n\t\t/*\n This is a hack just to wait for the playground container to be initialized and only then\n attach the change detector to have correct inputs values.\n */\n\t\tPromise.resolve().then(() => {\n\t\t\tthis.changeDetectorRef.reattach();\n\t\t\tthis.reattached.next();\n\t\t});\n\t}\n\n\tget data(): any {\n\t\treturn Object.assign({}, this.configData, this.actionData);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["objectKeys","i1"],"mappings":"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"}
1
+ {"version":3,"file":"ng-doc-app-components-playground.mjs","sources":["../../../../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-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.component.ts","../../../../libs/app/components/playground/playground.component.html","../../../../libs/app/components/playground/base-playground.ts","../../../../libs/app/components/playground/ng-doc-app-components-playground.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\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 { NgDocDemoDisplayerComponent } from '@ng-doc/app/components/demo-displayer';\nimport { formatHtml } from '@ng-doc/app/helpers';\nimport { getPlaygroundDemoToken } from '@ng-doc/app/providers/playground-demo';\nimport { NgDocFormPartialValue } from '@ng-doc/app/types';\nimport { stringify } from '@ng-doc/core';\nimport {\n\tbuildPlaygroundDemoPipeTemplate,\n\tbuildPlaygroundDemoTemplate,\n} from '@ng-doc/core/helpers/build-playground-demo-template';\nimport { objectKeys } from '@ng-doc/core/helpers/object-keys';\nimport { NgDocPlaygroundConfig, NgDocPlaygroundProperties } from '@ng-doc/core/interfaces';\nimport { NgDocLetDirective, NgDocSmoothResizeComponent } from '@ng-doc/ui-kit';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { from, Observable, of, Subject } from 'rxjs';\nimport { startWith, 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\tstandalone: true,\n\timports: [NgDocDemoDisplayerComponent, AsyncPipe, NgDocSmoothResizeComponent, NgDocLetDirective],\n})\n@UntilDestroy()\nexport class NgDocPlaygroundDemoComponent<\n\t\tT extends NgDocPlaygroundProperties = NgDocPlaygroundProperties,\n\t>\n\timplements OnChanges, OnDestroy\n{\n\t@Input()\n\tid: string = '';\n\n\t@Input()\n\tpipeName: 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@Input()\n\texpanded: boolean = false;\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 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 =\n\t\t\t\tgetPlaygroundDemoToken(this.id);\n\n\t\t\tif (demoInjector) {\n\t\t\t\tconst demos: Array<typeof NgDocBasePlayground> = this.injector.get(demoInjector, []);\n\n\t\t\t\tthis.playgroundDemo = demos.find(\n\t\t\t\t\t(demo: typeof NgDocBasePlayground) =>\n\t\t\t\t\t\tdemo.selector === this.selector || demo.selector === this.pipeName,\n\t\t\t\t);\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), startWith(this.form?.value))\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.createDemo();\n\t\t}\n\n\t\tif (data) {\n\t\t\tthis.demoRef?.setInput('properties', data.properties ?? {});\n\t\t\tthis.demoRef?.setInput('content', data.content ?? {});\n\t\t\tthis.demoRef?.setInput('actionData', this.configuration?.data ?? {});\n\n\t\t\tif (this.recreateDemo) {\n\t\t\t\tthis.demoRef?.instance.onReattached.subscribe(() => {\n\t\t\t\t\tthis.demoRef?.changeDetectorRef.detectChanges();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tthis.updateCodeView();\n\t}\n\n\tprivate createDemo(): void {\n\t\tif (this.playgroundDemo) {\n\t\t\tthis.demoRef?.destroy();\n\t\t\tthis.demoRef = this.demoOutlet?.createComponent(\n\t\t\t\tthis.playgroundDemo as unknown as Type<NgDocBasePlayground>,\n\t\t\t);\n\t\t\tthis.demoRef?.changeDetectorRef.markForCheck();\n\t\t}\n\t}\n\n\tprivate updateCodeView(): void {\n\t\tconst template: string = this.pipeName\n\t\t\t? buildPlaygroundDemoPipeTemplate(\n\t\t\t\t\tthis.configuration?.template ?? '',\n\t\t\t\t\tthis.pipeName,\n\t\t\t\t\tthis.getActiveContent(),\n\t\t\t\t\tthis.getPipeActiveInputs(),\n\t\t\t\t)\n\t\t\t: buildPlaygroundDemoTemplate(\n\t\t\t\t\tthis.configuration?.template ?? '',\n\t\t\t\t\tthis.selector,\n\t\t\t\t\tthis.getActiveContent(),\n\t\t\t\t\tthis.getActiveInputs(),\n\t\t\t\t);\n\n\t\tthis.code = from(formatHtml(template));\n\t}\n\n\tprivate getActiveContent(): Record<string, string> {\n\t\tconst formData: Record<string, boolean> =\n\t\t\t(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, unknown> =\n\t\t\t(this.form?.controls.properties.value as Record<string, unknown>) ?? {};\n\n\t\treturn objectKeys(formData).reduce((result: Record<string, string>, key: string) => {\n\t\t\tconst value: unknown = formData[key];\n\t\t\tconst property: unknown | undefined = this.demoRef?.instance?.defaultValues[key];\n\n\t\t\tif (property !== value) {\n\t\t\t\tresult[key] = stringify(value).replace(/\"/g, `'`);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}, {});\n\t}\n\n\tprivate getPipeActiveInputs(): Record<string, string> {\n\t\tconst formData: Record<string, unknown> =\n\t\t\t(this.form?.controls.properties.value as Record<string, unknown>) ?? {};\n\t\tlet changedInputIndex: number = -1;\n\n\t\treturn objectKeys(formData)\n\t\t\t.map((key: string, i: number) => {\n\t\t\t\tconst value: unknown = formData[key];\n\t\t\t\tconst defaultValue: unknown | undefined = this.demoRef?.instance?.defaultValues[key];\n\n\t\t\t\tif (defaultValue !== value) {\n\t\t\t\t\tchangedInputIndex = i;\n\t\t\t\t}\n\n\t\t\t\treturn key;\n\t\t\t})\n\t\t\t.slice(0, changedInputIndex + 1)\n\t\t\t.reduce((result: Record<string, string>, key: string) => {\n\t\t\t\tresult[key] = stringify(formData[key]).replace(/\"/g, `'`);\n\n\t\t\t\treturn result;\n\t\t\t}, {});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.unsubscribe$.next();\n\t\tthis.unsubscribe$.complete();\n\t}\n}\n","<ng-doc-smooth-resize *ngDocLet=\"code | async as codeContent\" [trigger]=\"codeContent\">\n\t<ng-doc-demo-displayer\n\t\t[code]=\"codeContent ?? ''\"\n\t\t[border]=\"false\"\n\t\t[expanded]=\"expanded\"\n\t\tlanguage=\"html\">\n\t\t<ng-container #demoOutlet></ng-container>\n\t</ng-doc-demo-displayer>\n</ng-doc-smooth-resize>\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tComponentRef,\n\tHostBinding,\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 {\n\tNgDocProvidedTypeControl,\n\tNgDocTypeControl,\n\tNgDocTypeControlProviderOptions,\n} from '@ng-doc/app/interfaces';\nimport { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes';\nimport { NgDocPlaygroundContent, NgDocPlaygroundProperty } from '@ng-doc/core/interfaces';\nimport { NgDocLabelComponent, NgDocTooltipDirective } from '@ng-doc/ui-kit';\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\tstandalone: true,\n\timports: [NgDocLabelComponent, NgDocTooltipDirective, NgDocSanitizeHtmlPipe],\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@Input()\n\tdefaultValue?: unknown;\n\n\t@ViewChild('propertyOutlet', { read: ViewContainerRef, static: true })\n\tpropertyOutlet?: ViewContainerRef;\n\n\tprotected option?: NgDocTypeControlProviderOptions;\n\tprivate propertyTypeControl?: ComponentRef<NgDocTypeControl>;\n\n\tngOnChanges({ property, control, typeControl, defaultValue }: SimpleChanges): void {\n\t\tif ((property || control || typeControl || defaultValue) && 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 = this.defaultValue;\n\t\t\t\tthis.propertyTypeControl.instance.isManual = isPlaygroundProperty(this.property)\n\t\t\t\t\t? this.property.isManual\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\n\t\t\tif (this.control) {\n\t\t\t\tthis.control?.registerOnChange((value: string) =>\n\t\t\t\t\tthis.propertyTypeControl?.instance?.writeValue(value),\n\t\t\t\t);\n\t\t\t\tthis.propertyTypeControl?.instance.registerOnChange((value: unknown) =>\n\t\t\t\t\tthis.control?.setValue(value),\n\t\t\t\t);\n\t\t\t\tthis.propertyTypeControl?.instance.registerOnTouched(() => this.control?.markAsTouched());\n\t\t\t}\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)\n\t\t\t? this.property.description ?? ''\n\t\t\t: '';\n\t}\n}\n","<label [ng-doc-label]=\"option?.hideLabel ? '' : labelContent\">\n\t<ng-template #labelContent>\n\t\t<span\n\t\t\t[ngDocTooltip]=\"tooltipTemplate\"\n\t\t\t[canOpen]=\"!!tooltipContent\"\n\t\t\t[positions]=\"['left-center', 'top-right', 'bottom-right']\"\n\t\t\t>{{ name }}</span\n\t\t>\n\t\t<ng-template #tooltipTemplate>\n\t\t\t<div [innerHTML]=\"tooltipContent | ngDocSanitizeHtml\"></div>\n\t\t</ng-template>\n\t</ng-template>\n\t<ng-container #propertyOutlet></ng-container>\n</label>\n","import { BreakpointObserver, Breakpoints, BreakpointState } from '@angular/cdk/layout';\nimport { AsyncPipe, KeyValuePipe, NgFor, NgIf } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tEventEmitter,\n\tInjectionToken,\n\tInjector,\n\tInput,\n\tisDevMode,\n\tOnChanges,\n\tOutput,\n\tSimpleChanges,\n} from '@angular/core';\nimport { FormControl, FormGroup, FormsModule } from '@angular/forms';\nimport { isPlaygroundProperty } from '@ng-doc/app/helpers';\nimport { NgDocProvidedTypeControl } from '@ng-doc/app/interfaces';\nimport { getTokenForType } from '@ng-doc/app/providers/type-control';\nimport { extractValueOrThrow, isPresent, objectKeys } from '@ng-doc/core';\nimport {\n\tNgDocPlaygroundContent,\n\tNgDocPlaygroundProperties,\n\tNgDocPlaygroundProperty,\n} from '@ng-doc/core/interfaces';\nimport {\n\tNgDocBindPipe,\n\tNgDocButtonComponent,\n\tNgDocCheckboxComponent,\n\tNgDocExecutePipe,\n\tNgDocIconComponent,\n\tNgDocTextComponent,\n\tNgDocTextRightDirective,\n\tNgDocTooltipDirective,\n} from '@ng-doc/ui-kit';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { NgDocPlaygroundForm } from '../playground-form';\nimport { NgDocPlaygroundPropertyComponent } from '../playground-property/playground-property.component';\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\tstandalone: true,\n\timports: [\n\t\tNgDocTextComponent,\n\t\tNgDocButtonComponent,\n\t\tNgDocCheckboxComponent,\n\t\tFormsModule,\n\t\tNgDocTooltipDirective,\n\t\tNgDocIconComponent,\n\t\tNgDocTextRightDirective,\n\t\tNgIf,\n\t\tNgFor,\n\t\tNgDocPlaygroundPropertyComponent,\n\t\tAsyncPipe,\n\t\tKeyValuePipe,\n\t\tNgDocBindPipe,\n\t\tNgDocExecutePipe,\n\t],\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\tignoreInputs?: string[] = [];\n\n\t@Input()\n\tdynamicContent?: C;\n\n\t@Input()\n\tdefaultValues?: Record<string, unknown>;\n\n\t@Input()\n\thideSidePanel: boolean = false;\n\n\t@Input()\n\trecreateDemo: boolean = false;\n\n\t@Input()\n\tshowResetButton: 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(\n\t\tprotected readonly breakpointObserver: BreakpointObserver,\n\t\tprivate injector: Injector,\n\t) {\n\t\tthis.observer = this.breakpointObserver\n\t\t\t.observe(this.breakpoints)\n\t\t\t.pipe(map((state: BreakpointState) => state.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.filter((key: keyof P) => this.ignoreInputs?.includes(String(key)) !== true)\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.inputName.localeCompare(b.property.inputName);\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 =\n\t\t\tthis.getControlForType(type) ??\n\t\t\tthis.getControlForTypeAlias(\n\t\t\t\tisPlaygroundProperty(property) ? property.options : undefined,\n\t\t\t\tproperty.isManual,\n\t\t\t);\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.inputName}\", 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(\n\t\toptions?: string[],\n\t\tisManual?: boolean,\n\t): NgDocProvidedTypeControl | undefined {\n\t\tif (options && options.length) {\n\t\t\tlet optionsIsValid: boolean = true;\n\n\t\t\tif (!isManual) {\n\t\t\t\ttry {\n\t\t\t\t\t// checking that all values are extractable\n\t\t\t\t\toptions.forEach((item: string) => extractValueOrThrow(item));\n\t\t\t\t} catch {\n\t\t\t\t\toptionsIsValid = false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (optionsIsValid) {\n\t\t\t\tconst token: InjectionToken<NgDocProvidedTypeControl> | undefined =\n\t\t\t\t\tgetTokenForType('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\n\tclass=\"ng-doc-playground-properties-wrapper\"\n\t[class.vertical]=\"observer | async\"\n\t*ngIf=\"defaultValues\">\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\" *ngIf=\"!hideSidePanel\">\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=\"alert\" (click)=\"resetForm.emit()\" *ngIf=\"showResetButton\">\n\t\t\t\tReset\n\t\t\t</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\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.inputName\"\n\t\t\t\t[property]=\"propertyControl.property\"\n\t\t\t\t[typeControl]=\"propertyControl.typeControl\"\n\t\t\t\t[defaultValue]=\"defaultValues[propertyControl.propertyName]\"\n\t\t\t\t[control]=\"\n\t\t\t\t\tgetFormControl | bind: this | execute: 'properties':propertyControl.propertyName\n\t\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 | bind: this | execute: 'content':content.key\">\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\t</div>\n</div>\n","import { NgFor, NgIf } from '@angular/common';\nimport {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\tInput,\n\tOnChanges,\n\tSimpleChanges,\n} from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { NgDocRootPage } from '@ng-doc/app/classes/root-page';\nimport { isSameObject } from '@ng-doc/core';\nimport { objectKeys } from '@ng-doc/core/helpers/object-keys';\nimport {\n\tNgDocPlaygroundConfig,\n\tNgDocPlaygroundOptions,\n\tNgDocPlaygroundProperties,\n} from '@ng-doc/core/interfaces';\nimport { NgDocAsArrayPipe } from '@ng-doc/ui-kit';\n\nimport { NgDocPlaygroundDemoComponent } from './playground-demo/playground-demo.component';\nimport { NgDocPlaygroundForm } from './playground-form';\nimport { NgDocPlaygroundPropertiesComponent } from './playground-properties/playground-properties.component';\n\n@Component({\n\tselector: 'ng-doc-playground',\n\ttemplateUrl: './playground.component.html',\n\tstyleUrls: ['./playground.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgIf,\n\t\tNgDocPlaygroundPropertiesComponent,\n\t\tNgFor,\n\t\tNgDocPlaygroundDemoComponent,\n\t\tNgDocAsArrayPipe,\n\t],\n})\nexport class NgDocPlaygroundComponent<\n\tT extends NgDocPlaygroundProperties = NgDocPlaygroundProperties,\n> implements OnChanges, AfterViewInit\n{\n\t@Input({ required: true })\n\tid: string = '';\n\n\t@Input()\n\tpipeName: string = '';\n\n\t@Input()\n\tselectors: string[] = [];\n\n\t@Input()\n\tproperties?: T;\n\n\t@Input()\n\toptions: NgDocPlaygroundOptions = {};\n\n\trecreateDemo: boolean = false;\n\tformGroup!: FormGroup<NgDocPlaygroundForm>;\n\tdefaultValues?: Record<string, unknown>;\n\tconfiguration!: NgDocPlaygroundConfig;\n\n\tprivate defaultProperties: Record<string, unknown> = {};\n\tprivate defaultContent: Record<string, boolean> = {};\n\n\tconstructor(\n\t\tprivate readonly rootPage: NgDocRootPage,\n\t\tprivate readonly formBuilder: FormBuilder,\n\t) {}\n\n\tngOnChanges({ options }: SimpleChanges) {\n\t\tif (options) {\n\t\t\t// Join configuration with options\n\t\t\tthis.configuration = Object.assign(\n\t\t\t\t{},\n\t\t\t\tthis.rootPage.page?.playgrounds?.[this.id],\n\t\t\t\tthis.options,\n\t\t\t);\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.defaultProperties = this.getPropertiesFormValues();\n\t\tthis.defaultContent = this.getContentFormValues();\n\n\t\tconst propertiesForm: FormGroup = this.formBuilder.group(this.defaultProperties);\n\t\tconst contentForm: FormGroup = this.formBuilder.group(this.defaultContent);\n\n\t\tthis.formGroup = this.formBuilder.group({\n\t\t\tproperties: propertiesForm,\n\t\t\tcontent: contentForm,\n\t\t});\n\t\t// `patchValue` is needed to set `undefined` values, otherwise they will be ignored by the Angular form\n\t\tthis.formGroup.patchValue({\n\t\t\tproperties: Object.assign({}, this.defaultProperties, this.configuration.inputs),\n\t\t\tcontent: this.defaultContent,\n\t\t});\n\t}\n\n\tprotected isDefaultState(): boolean {\n\t\tif (!this.formGroup) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn (\n\t\t\tisSameObject(this.formGroup.value.properties ?? {}, this.defaultValues ?? {}) &&\n\t\t\tisSameObject(this.formGroup.value.content ?? {}, this.defaultContent ?? {})\n\t\t);\n\t}\n\n\tprivate getPropertiesFormValues(): Record<string, unknown> {\n\t\tconst formValues: Record<string, unknown> = objectKeys(this.properties ?? {}).reduce(\n\t\t\t(controls: Record<string, unknown>, key: string) => {\n\t\t\t\tif (this.properties) {\n\t\t\t\t\tcontrols[key] = this.defaultValues ? this.defaultValues[key] : undefined;\n\t\t\t\t}\n\n\t\t\t\treturn controls;\n\t\t\t},\n\t\t\t{} as Record<string, unknown>,\n\t\t);\n\n\t\treturn Object.assign({}, formValues, this.configuration.defaults);\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}\n\n\tresetForm(): void {\n\t\tthis.formGroup.reset({}, { emitEvent: false });\n\t\tthis.formGroup?.patchValue({\n\t\t\tproperties: this.defaultProperties,\n\t\t\tcontent: this.defaultContent,\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[ignoreInputs]=\"configuration.hiddenInputs\"\n\t\t[dynamicContent]=\"configuration.content\"\n\t\t[hideSidePanel]=\"configuration.hideSidePanel ?? false\"\n\t\t[defaultValues]=\"defaultValues\"\n\t\t[showResetButton]=\"!isDefaultState()\"\n\t\t[(recreateDemo)]=\"recreateDemo\"\n\t\t(resetForm)=\"resetForm()\">\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\t[expanded]=\"configuration.expanded ?? false\">\n\t\t</ng-doc-playground-demo>\n\n\t\t<ng-doc-playground-demo\n\t\t\t*ngIf=\"pipeName\"\n\t\t\t[id]=\"id\"\n\t\t\t[pipeName]=\"pipeName\"\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</ng-doc-playground-demo>\n\t</ng-doc-playground-properties>\n</ng-container>\n","import {\n\tChangeDetectorRef,\n\tDirective,\n\tinject,\n\tInput,\n\tOnInit,\n\tType,\n\tViewContainerRef,\n} from '@angular/core';\nimport { Constructor, extractFunctionDefaults } from '@ng-doc/core';\nimport { NgDocPlaygroundConfig } from '@ng-doc/core/interfaces';\nimport { Observable, Subject, take } from 'rxjs';\n\nimport { NgDocPlaygroundComponent } from './playground.component';\n\n/**\n * Base class for playgrounds components.\n */\n@Directive()\nexport abstract class NgDocBasePlayground implements Pick<NgDocPlaygroundConfig, 'data'>, OnInit {\n\tstatic readonly selector: string = 'unknown';\n\tabstract readonly playground?: Type<any>;\n\tabstract readonly viewContainerRef?: ViewContainerRef;\n\tabstract readonly configData: Record<string, unknown>;\n\n\t@Input()\n\tproperties: Record<string, any> = {};\n\n\t@Input()\n\tactionData: Record<string, unknown> = {};\n\n\t@Input()\n\tcontent: any = {};\n\n\tdefaultValues: Record<string, unknown> = {};\n\n\tprivate reattached: Subject<void> = new Subject<void>();\n\n\tprivate playgroundContainer: NgDocPlaygroundComponent = inject(NgDocPlaygroundComponent);\n\tprotected changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n\tprotected constructor(private playgroundInstance?: Constructor<unknown>) {\n\t\tthis.changeDetectorRef.detach();\n\t}\n\n\tget onReattached(): Observable<void> {\n\t\treturn this.reattached.pipe(take(1));\n\t}\n\n\tngOnInit(): void {\n\t\t/*\n\t\t * Extract default values from playground properties. We do this in `ngOnInit` because in this case\n\t\t * input values provided from the template are not initialized yet, and we can read default values instead.\n\t\t */\n\t\tif (this.playground) {\n\t\t\tthis.defaultValues = Object.keys(this.playground).reduce(\n\t\t\t\t(values: Record<string, unknown>, key: string) => {\n\t\t\t\t\tif (this.playground) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tvalues[key] =\n\t\t\t\t\t\t\t\t// @ts-expect-error we do not know the type of the playground\n\t\t\t\t\t\t\t\ttypeof this.playground[key] === 'function'\n\t\t\t\t\t\t\t\t\t? // @ts-expect-error we do not know the type of the playground\n\t\t\t\t\t\t\t\t\t\tthis.playground[key]()\n\t\t\t\t\t\t\t\t\t: // @ts-expect-error we do not know the type of the playground\n\t\t\t\t\t\t\t\t\t\tthis.playground[key];\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t// we do catch here because some of the playground properties can be getters and throw an error\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn values;\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t);\n\t\t} else if (this.playgroundInstance) {\n\t\t\tconst defaults = extractFunctionDefaults(this.playgroundInstance.prototype.transform);\n\n\t\t\tthis.defaultValues = Object.keys(this.playgroundContainer.properties ?? {}).reduce(\n\t\t\t\t(def: Record<string, unknown>, key: string, i: number) => {\n\t\t\t\t\t// we do +1 because the first argument is the `value` of the transform function\n\t\t\t\t\tdef[key] = defaults[i + 1];\n\n\t\t\t\t\treturn def;\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t);\n\t\t} else {\n\t\t\tthrow new Error('Playground is not defined or initialized');\n\t\t}\n\n\t\tif (!this.playgroundContainer.defaultValues) {\n\t\t\tthis.playgroundContainer.defaultValues = this.defaultValues;\n\t\t}\n\n\t\t/*\n This is a hack just to wait for the playground container to be initialized and only then\n attach the change detector to have correct inputs values.\n */\n\t\tPromise.resolve().then(() => {\n\t\t\tthis.changeDetectorRef.reattach();\n\t\t\tthis.reattached.next();\n\t\t});\n\t}\n\n\tget data(): any {\n\t\treturn Object.assign({}, this.configData, this.actionData);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["objectKeys","i1"],"mappings":"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"}
@@ -25,10 +25,10 @@ import { filter, map, delay, startWith, mapTo } from 'rxjs/operators';
25
25
  * ```
26
26
  */
27
27
  class NgDocCustomNavbarDirective {
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NgDocCustomNavbarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0", type: NgDocCustomNavbarDirective, isStandalone: true, selector: "[ngDocCustomNavbar]", ngImport: i0 }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocCustomNavbarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.2", type: NgDocCustomNavbarDirective, isStandalone: true, selector: "[ngDocCustomNavbar]", ngImport: i0 }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NgDocCustomNavbarDirective, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocCustomNavbarDirective, decorators: [{
32
32
  type: Directive,
33
33
  args: [{
34
34
  selector: '[ngDocCustomNavbar]',
@@ -49,10 +49,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
49
49
  * ```
50
50
  */
51
51
  class NgDocCustomSidebarDirective {
52
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NgDocCustomSidebarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
53
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0", type: NgDocCustomSidebarDirective, isStandalone: true, selector: "[ngDocCustomSidebar]", ngImport: i0 }); }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocCustomSidebarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
53
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.2", type: NgDocCustomSidebarDirective, isStandalone: true, selector: "[ngDocCustomSidebar]", ngImport: i0 }); }
54
54
  }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NgDocCustomSidebarDirective, decorators: [{
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocCustomSidebarDirective, decorators: [{
56
56
  type: Directive,
57
57
  args: [{
58
58
  selector: '[ngDocCustomSidebar]',
@@ -90,14 +90,14 @@ let NgDocRootComponent = class NgDocRootComponent {
90
90
  hasBackdrop: isMobile,
91
91
  })), delay(0));
92
92
  }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NgDocRootComponent, deps: [{ token: i1.NgDocSidebarService }], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: NgDocRootComponent, isStandalone: true, 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\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{display:flex;flex-direction:column;height:100%}: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 footer{margin-top:auto}: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: NgDocLetDirective, selector: "[ngDocLet]", inputs: ["ngDocLet"] }, { kind: "component", type: NgDocSidenavComponent, selector: "ng-doc-sidenav", inputs: ["sidebar", "align", "over", "opened", "hasBackdrop"], outputs: ["openedChange", "closeEvent", "beforeOpen", "beforeClose", "afterOpen", "afterClose"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: PolymorpheusModule }, { kind: "directive", type: i2.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
93
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocRootComponent, deps: [{ token: i1.NgDocSidebarService }], target: i0.ɵɵFactoryTarget.Component }); }
94
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: NgDocRootComponent, isStandalone: true, 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\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{display:flex;flex-direction:column;height:100%}: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 footer{margin-top:auto}: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: NgDocLetDirective, selector: "[ngDocLet]", inputs: ["ngDocLet"] }, { kind: "component", type: NgDocSidenavComponent, selector: "ng-doc-sidenav", inputs: ["sidebar", "align", "over", "opened", "hasBackdrop"], outputs: ["openedChange", "closeEvent", "beforeOpen", "beforeClose", "afterOpen", "afterClose"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: PolymorpheusModule }, { kind: "directive", type: i2.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
95
95
  };
96
96
  NgDocRootComponent = __decorate([
97
97
  UntilDestroy(),
98
98
  __metadata("design:paramtypes", [NgDocSidebarService])
99
99
  ], NgDocRootComponent);
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NgDocRootComponent, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocRootComponent, decorators: [{
101
101
  type: Component,
102
102
  args: [{ selector: 'ng-doc-root', providers: [], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgDocLetDirective, NgDocSidenavComponent, NgIf, PolymorpheusModule, AsyncPipe], 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\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{display:flex;flex-direction:column;height:100%}: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 footer{margin-top:auto}: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
103
  }], ctorParameters: () => [{ type: i1.NgDocSidebarService }], propDecorators: { sidebar: [{
@@ -31,10 +31,10 @@ class NgDocSearchResultComponent {
31
31
  return 'Unknown';
32
32
  }
33
33
  }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NgDocSearchResultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: NgDocSearchResultComponent, isStandalone: true, selector: "ng-doc-search-result", inputs: { result: "result" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"ng-doc-search-result-wrapper\" *ngIf=\"groupedResult | keyvalue as results\">\n\t<ng-container *ngIf=\"results.length; else emptyTemplate\">\n\t\t<div class=\"ng-doc-search-result-category\" *ngFor=\"let item of results\">\n\t\t\t<h4 class=\"ng-doc-search-result-title\" ng-doc-text>{{ typeToLabel(item.key) }}</h4>\n\t\t\t<ul class=\"ng-doc-search-result-pages\">\n\t\t\t\t<li class=\"ng-doc-search-result-page\" *ngFor=\"let page of item.value\">\n\t\t\t\t\t<a class=\"ng-doc-search-result-page-link\" [routerLink]=\"[page.route]\">\n\t\t\t\t\t\t<ng-doc-kind-icon\n\t\t\t\t\t\t\t*ngIf=\"page.kind\"\n\t\t\t\t\t\t\t[kind]=\"page.kind\"\n\t\t\t\t\t\t\t[ngDocTooltip]=\"page.kind\"></ng-doc-kind-icon>\n\t\t\t\t\t\t{{ page.title }}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</div>\n\t</ng-container>\n\t<ng-template #emptyTemplate>\n\t\t<div ng-doc-text color=\"muted\">Nothing was found...</div>\n\t</ng-template>\n</div>\n", styles: [":host{display:block}:host .ng-doc-search-result-wrapper{display:flex;flex-direction:row}:host .ng-doc-search-result-wrapper .ng-doc-search-result-category:not(:last-child){margin-right:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-search-result-wrapper .ng-doc-search-result-category .ng-doc-search-result-title{margin:0 0 calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-search-result-wrapper .ng-doc-search-result-category .ng-doc-search-result-pages{list-style:none;padding:0;margin:0}:host .ng-doc-search-result-wrapper .ng-doc-search-result-category .ng-doc-search-result-pages .ng-doc-search-result-page{margin-bottom:var(--ng-doc-base-gutter)}:host .ng-doc-search-result-wrapper .ng-doc-search-result-category .ng-doc-search-result-pages .ng-doc-search-result-page .ng-doc-search-result-page-link{display:flex;align-items:center;text-decoration:none;color:var(--ng-doc-text)}:host .ng-doc-search-result-wrapper .ng-doc-search-result-category .ng-doc-search-result-pages .ng-doc-search-result-page .ng-doc-search-result-page-link ng-doc-kind-icon{margin-right:var(--ng-doc-base-gutter)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: NgDocKindIconComponent, selector: "ng-doc-kind-icon", inputs: ["kind", "type"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocSearchResultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: NgDocSearchResultComponent, isStandalone: true, selector: "ng-doc-search-result", inputs: { result: "result" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"ng-doc-search-result-wrapper\" *ngIf=\"groupedResult | keyvalue as results\">\n\t<ng-container *ngIf=\"results.length; else emptyTemplate\">\n\t\t<div class=\"ng-doc-search-result-category\" *ngFor=\"let item of results\">\n\t\t\t<h4 class=\"ng-doc-search-result-title\" ng-doc-text>{{ typeToLabel(item.key) }}</h4>\n\t\t\t<ul class=\"ng-doc-search-result-pages\">\n\t\t\t\t<li class=\"ng-doc-search-result-page\" *ngFor=\"let page of item.value\">\n\t\t\t\t\t<a class=\"ng-doc-search-result-page-link\" [routerLink]=\"[page.route]\">\n\t\t\t\t\t\t<ng-doc-kind-icon\n\t\t\t\t\t\t\t*ngIf=\"page.kind\"\n\t\t\t\t\t\t\t[kind]=\"page.kind\"\n\t\t\t\t\t\t\t[ngDocTooltip]=\"page.kind\"></ng-doc-kind-icon>\n\t\t\t\t\t\t{{ page.title }}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</div>\n\t</ng-container>\n\t<ng-template #emptyTemplate>\n\t\t<div ng-doc-text color=\"muted\">Nothing was found...</div>\n\t</ng-template>\n</div>\n", styles: [":host{display:block}:host .ng-doc-search-result-wrapper{display:flex;flex-direction:row}:host .ng-doc-search-result-wrapper .ng-doc-search-result-category:not(:last-child){margin-right:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-search-result-wrapper .ng-doc-search-result-category .ng-doc-search-result-title{margin:0 0 calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-search-result-wrapper .ng-doc-search-result-category .ng-doc-search-result-pages{list-style:none;padding:0;margin:0}:host .ng-doc-search-result-wrapper .ng-doc-search-result-category .ng-doc-search-result-pages .ng-doc-search-result-page{margin-bottom:var(--ng-doc-base-gutter)}:host .ng-doc-search-result-wrapper .ng-doc-search-result-category .ng-doc-search-result-pages .ng-doc-search-result-page .ng-doc-search-result-page-link{display:flex;align-items:center;text-decoration:none;color:var(--ng-doc-text)}:host .ng-doc-search-result-wrapper .ng-doc-search-result-category .ng-doc-search-result-pages .ng-doc-search-result-page .ng-doc-search-result-page-link ng-doc-kind-icon{margin-right:var(--ng-doc-base-gutter)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: NgDocKindIconComponent, selector: "ng-doc-kind-icon", inputs: ["kind", "type"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NgDocSearchResultComponent, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocSearchResultComponent, decorators: [{
38
38
  type: Component,
39
39
  args: [{ selector: 'ng-doc-search-result', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
40
40
  NgIf,
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-components-search-result.mjs","sources":["../../../../libs/app/components/search-result/search-result.component.ts","../../../../libs/app/components/search-result/search-result.component.html","../../../../libs/app/components/search-result/ng-doc-app-components-search-result.ts"],"sourcesContent":["import { KeyValuePipe, NgFor, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { NgDocKindIconComponent } from '@ng-doc/app/components/kind-icon';\nimport { NgDocPageInfo } from '@ng-doc/core/interfaces';\nimport { NgDocTextComponent, NgDocTooltipDirective } from '@ng-doc/ui-kit';\n\n@Component({\n\tselector: 'ng-doc-search-result',\n\ttemplateUrl: './search-result.component.html',\n\tstyleUrls: ['./search-result.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgIf,\n\t\tNgFor,\n\t\tNgDocTextComponent,\n\t\tRouterLink,\n\t\tNgDocKindIconComponent,\n\t\tNgDocTooltipDirective,\n\t\tKeyValuePipe,\n\t],\n})\nexport class NgDocSearchResultComponent implements OnChanges {\n\t@Input()\n\tresult: NgDocPageInfo[] | null = [];\n\n\tgroupedResult: Record<string, NgDocPageInfo[]> = {};\n\n\tngOnChanges({ result }: SimpleChanges): void {\n\t\tif (result && this.result) {\n\t\t\tthis.groupedResult = this.result.reduce(\n\t\t\t\t(grouped: Record<string, NgDocPageInfo[]>, item: NgDocPageInfo) => {\n\t\t\t\t\tif (!grouped[item.type]) {\n\t\t\t\t\t\tgrouped[item.type] = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tgrouped[item.type].push(item);\n\n\t\t\t\t\treturn grouped;\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t);\n\t\t}\n\t}\n\n\ttypeToLabel(type: string): string {\n\t\tswitch (type) {\n\t\t\tcase 'api':\n\t\t\t\treturn 'API';\n\t\t\tcase 'guide':\n\t\t\t\treturn 'Guides';\n\t\t\tdefault:\n\t\t\t\treturn 'Unknown';\n\t\t}\n\t}\n}\n","<div class=\"ng-doc-search-result-wrapper\" *ngIf=\"groupedResult | keyvalue as results\">\n\t<ng-container *ngIf=\"results.length; else emptyTemplate\">\n\t\t<div class=\"ng-doc-search-result-category\" *ngFor=\"let item of results\">\n\t\t\t<h4 class=\"ng-doc-search-result-title\" ng-doc-text>{{ typeToLabel(item.key) }}</h4>\n\t\t\t<ul class=\"ng-doc-search-result-pages\">\n\t\t\t\t<li class=\"ng-doc-search-result-page\" *ngFor=\"let page of item.value\">\n\t\t\t\t\t<a class=\"ng-doc-search-result-page-link\" [routerLink]=\"[page.route]\">\n\t\t\t\t\t\t<ng-doc-kind-icon\n\t\t\t\t\t\t\t*ngIf=\"page.kind\"\n\t\t\t\t\t\t\t[kind]=\"page.kind\"\n\t\t\t\t\t\t\t[ngDocTooltip]=\"page.kind\"></ng-doc-kind-icon>\n\t\t\t\t\t\t{{ page.title }}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</div>\n\t</ng-container>\n\t<ng-template #emptyTemplate>\n\t\t<div ng-doc-text color=\"muted\">Nothing was found...</div>\n\t</ng-template>\n</div>\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-result.mjs","sources":["../../../../libs/app/components/search-result/search-result.component.ts","../../../../libs/app/components/search-result/search-result.component.html","../../../../libs/app/components/search-result/ng-doc-app-components-search-result.ts"],"sourcesContent":["import { KeyValuePipe, NgFor, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { NgDocKindIconComponent } from '@ng-doc/app/components/kind-icon';\nimport { NgDocPageInfo } from '@ng-doc/core/interfaces';\nimport { NgDocTextComponent, NgDocTooltipDirective } from '@ng-doc/ui-kit';\n\n@Component({\n\tselector: 'ng-doc-search-result',\n\ttemplateUrl: './search-result.component.html',\n\tstyleUrls: ['./search-result.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgIf,\n\t\tNgFor,\n\t\tNgDocTextComponent,\n\t\tRouterLink,\n\t\tNgDocKindIconComponent,\n\t\tNgDocTooltipDirective,\n\t\tKeyValuePipe,\n\t],\n})\nexport class NgDocSearchResultComponent implements OnChanges {\n\t@Input()\n\tresult: NgDocPageInfo[] | null = [];\n\n\tgroupedResult: Record<string, NgDocPageInfo[]> = {};\n\n\tngOnChanges({ result }: SimpleChanges): void {\n\t\tif (result && this.result) {\n\t\t\tthis.groupedResult = this.result.reduce(\n\t\t\t\t(grouped: Record<string, NgDocPageInfo[]>, item: NgDocPageInfo) => {\n\t\t\t\t\tif (!grouped[item.type]) {\n\t\t\t\t\t\tgrouped[item.type] = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tgrouped[item.type].push(item);\n\n\t\t\t\t\treturn grouped;\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t);\n\t\t}\n\t}\n\n\ttypeToLabel(type: string): string {\n\t\tswitch (type) {\n\t\t\tcase 'api':\n\t\t\t\treturn 'API';\n\t\t\tcase 'guide':\n\t\t\t\treturn 'Guides';\n\t\t\tdefault:\n\t\t\t\treturn 'Unknown';\n\t\t}\n\t}\n}\n","<div class=\"ng-doc-search-result-wrapper\" *ngIf=\"groupedResult | keyvalue as results\">\n\t<ng-container *ngIf=\"results.length; else emptyTemplate\">\n\t\t<div class=\"ng-doc-search-result-category\" *ngFor=\"let item of results\">\n\t\t\t<h4 class=\"ng-doc-search-result-title\" ng-doc-text>{{ typeToLabel(item.key) }}</h4>\n\t\t\t<ul class=\"ng-doc-search-result-pages\">\n\t\t\t\t<li class=\"ng-doc-search-result-page\" *ngFor=\"let page of item.value\">\n\t\t\t\t\t<a class=\"ng-doc-search-result-page-link\" [routerLink]=\"[page.route]\">\n\t\t\t\t\t\t<ng-doc-kind-icon\n\t\t\t\t\t\t\t*ngIf=\"page.kind\"\n\t\t\t\t\t\t\t[kind]=\"page.kind\"\n\t\t\t\t\t\t\t[ngDocTooltip]=\"page.kind\"></ng-doc-kind-icon>\n\t\t\t\t\t\t{{ page.title }}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</div>\n\t</ng-container>\n\t<ng-template #emptyTemplate>\n\t\t<div ng-doc-text color=\"muted\">Nothing was found...</div>\n\t</ng-template>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -34,8 +34,8 @@ let NgDocSearchComponent = class NgDocSearchComponent {
34
34
  getPositions(key, item) {
35
35
  return item.positions[key] ?? [];
36
36
  }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NgDocSearchComponent, deps: [{ token: i0.ElementRef }, { token: i1.NgDocSearchEngine, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: NgDocSearchComponent, isStandalone: true, selector: "ng-doc-search", inputs: { mod: "mod" }, host: { properties: { "attr.data-ng-doc-mod": "this.mod" } }, providers: [
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocSearchComponent, deps: [{ token: i0.ElementRef }, { token: i1.NgDocSearchEngine, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: NgDocSearchComponent, isStandalone: true, selector: "ng-doc-search", inputs: { mod: "mod" }, host: { properties: { "attr.data-ng-doc-mod": "this.mod" } }, providers: [
39
39
  {
40
40
  provide: NgDocListHost,
41
41
  useExisting: forwardRef(() => NgDocSearchComponent),
@@ -47,7 +47,7 @@ NgDocSearchComponent = __decorate([
47
47
  __metadata("design:paramtypes", [ElementRef,
48
48
  NgDocSearchEngine])
49
49
  ], NgDocSearchComponent);
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NgDocSearchComponent, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocSearchComponent, decorators: [{
51
51
  type: Component,
52
52
  args: [{ selector: 'ng-doc-search', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
53
53
  {
@@ -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/ng-doc-app-components-search.ts"],"sourcesContent":["import { AsyncPipe, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tforwardRef,\n\tHostBinding,\n\tInput,\n\tOptional,\n\tViewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { NgDocSearchEngine } from '@ng-doc/app/classes/search-engine';\nimport { NgDocSearchResult } from '@ng-doc/app/interfaces';\nimport { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes';\nimport {\n\tNgDocAutofocusDirective,\n\tNgDocButtonIconComponent,\n\tNgDocDataListComponent,\n\tNgDocDropdownComponent,\n\tNgDocDropdownOriginDirective,\n\tNgDocExecutePipe,\n\tNgDocFocusCatcherDirective,\n\tNgDocHighlighterPipe,\n\tNgDocHighlightPosition,\n\tNgDocHotkeyDirective,\n\tNgDocIconComponent,\n\tNgDocInputStringDirective,\n\tNgDocInputWrapperComponent,\n\tNgDocLetDirective,\n\tNgDocSpinnerComponent,\n\tNgDocTagComponent,\n\tNgDocTextComponent,\n\tobservableState,\n\tStatedObservable,\n} from '@ng-doc/ui-kit';\nimport { NgDocListHost } from '@ng-doc/ui-kit/classes';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { BehaviorSubject, NEVER } from 'rxjs';\nimport { 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: forwardRef(() => NgDocSearchComponent),\n\t\t},\n\t],\n\tstandalone: true,\n\timports: [\n\t\tNgDocLetDirective,\n\t\tNgIf,\n\t\tNgDocButtonIconComponent,\n\t\tNgDocDropdownOriginDirective,\n\t\tNgDocIconComponent,\n\t\tNgDocDropdownComponent,\n\t\tNgDocInputWrapperComponent,\n\t\tNgDocInputStringDirective,\n\t\tFormsModule,\n\t\tNgDocAutofocusDirective,\n\t\tNgTemplateOutlet,\n\t\tNgDocFocusCatcherDirective,\n\t\tNgDocHotkeyDirective,\n\t\tNgDocTagComponent,\n\t\tNgDocDataListComponent,\n\t\tRouterLink,\n\t\tNgDocTextComponent,\n\t\tNgFor,\n\t\tNgDocSpinnerComponent,\n\t\tAsyncPipe,\n\t\tNgDocHighlighterPipe,\n\t\tNgDocExecutePipe,\n\t\tNgDocSanitizeHtmlPipe,\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\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']>(\n\t\tkey: K,\n\t\titem: T,\n\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\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</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\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<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\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\n\t\t\t\t[items]=\"state?.result ?? []\"\n\t\t\t\t[itemContent]=\"itemContent\"\n\t\t\t\t[emptyContent]=\"emptyContent\">\n\t\t\t\t<ng-template let-item #itemContent>\n\t\t\t\t\t<a\n\t\t\t\t\t\tclass=\"ng-doc-search-option\"\n\t\t\t\t\t\t[routerLink]=\"item.index.route\"\n\t\t\t\t\t\t[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\n\t\t\t\t\t\t\t\t\t\tclass=\"ng-doc-search-option-breadcrumb-divider\"\n\t\t\t\t\t\t\t\t\t\t*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 | execute: 'section':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml) || item.index.title\n\t\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\n\t\t\t\t\t\t\t\t\t| ngDocHighlighterPipe: (getPositions | execute: 'content':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\tng-doc-text></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\"\n\t\t\t\t\t\t\t\t>Please enter your search query\n\t\t\t\t\t\t\t</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","/**\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/ng-doc-app-components-search.ts"],"sourcesContent":["import { AsyncPipe, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tforwardRef,\n\tHostBinding,\n\tInput,\n\tOptional,\n\tViewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { NgDocSearchEngine } from '@ng-doc/app/classes/search-engine';\nimport { NgDocSearchResult } from '@ng-doc/app/interfaces';\nimport { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes';\nimport {\n\tNgDocAutofocusDirective,\n\tNgDocButtonIconComponent,\n\tNgDocDataListComponent,\n\tNgDocDropdownComponent,\n\tNgDocDropdownOriginDirective,\n\tNgDocExecutePipe,\n\tNgDocFocusCatcherDirective,\n\tNgDocHighlighterPipe,\n\tNgDocHighlightPosition,\n\tNgDocHotkeyDirective,\n\tNgDocIconComponent,\n\tNgDocInputStringDirective,\n\tNgDocInputWrapperComponent,\n\tNgDocLetDirective,\n\tNgDocSpinnerComponent,\n\tNgDocTagComponent,\n\tNgDocTextComponent,\n\tobservableState,\n\tStatedObservable,\n} from '@ng-doc/ui-kit';\nimport { NgDocListHost } from '@ng-doc/ui-kit/classes';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { BehaviorSubject, NEVER } from 'rxjs';\nimport { 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: forwardRef(() => NgDocSearchComponent),\n\t\t},\n\t],\n\tstandalone: true,\n\timports: [\n\t\tNgDocLetDirective,\n\t\tNgIf,\n\t\tNgDocButtonIconComponent,\n\t\tNgDocDropdownOriginDirective,\n\t\tNgDocIconComponent,\n\t\tNgDocDropdownComponent,\n\t\tNgDocInputWrapperComponent,\n\t\tNgDocInputStringDirective,\n\t\tFormsModule,\n\t\tNgDocAutofocusDirective,\n\t\tNgTemplateOutlet,\n\t\tNgDocFocusCatcherDirective,\n\t\tNgDocHotkeyDirective,\n\t\tNgDocTagComponent,\n\t\tNgDocDataListComponent,\n\t\tRouterLink,\n\t\tNgDocTextComponent,\n\t\tNgFor,\n\t\tNgDocSpinnerComponent,\n\t\tAsyncPipe,\n\t\tNgDocHighlighterPipe,\n\t\tNgDocExecutePipe,\n\t\tNgDocSanitizeHtmlPipe,\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\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']>(\n\t\tkey: K,\n\t\titem: T,\n\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\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</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\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<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\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\n\t\t\t\t[items]=\"state?.result ?? []\"\n\t\t\t\t[itemContent]=\"itemContent\"\n\t\t\t\t[emptyContent]=\"emptyContent\">\n\t\t\t\t<ng-template let-item #itemContent>\n\t\t\t\t\t<a\n\t\t\t\t\t\tclass=\"ng-doc-search-option\"\n\t\t\t\t\t\t[routerLink]=\"item.index.route\"\n\t\t\t\t\t\t[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\n\t\t\t\t\t\t\t\t\t\tclass=\"ng-doc-search-option-breadcrumb-divider\"\n\t\t\t\t\t\t\t\t\t\t*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 | execute: 'section':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml) || item.index.title\n\t\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\n\t\t\t\t\t\t\t\t\t| ngDocHighlighterPipe: (getPositions | execute: 'content':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\tng-doc-text></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\"\n\t\t\t\t\t\t\t\t>Please enter your search query\n\t\t\t\t\t\t\t</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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}