@ng-doc/app 20.2.0 → 21.0.2
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.
- package/fesm2022/ng-doc-app-classes-default-search-engine.mjs.map +1 -1
- package/fesm2022/ng-doc-app-classes-root-page.mjs.map +1 -1
- package/fesm2022/ng-doc-app-classes-search-engine.mjs.map +1 -1
- package/fesm2022/ng-doc-app-classes.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-api-list.mjs +3 -3
- package/fesm2022/ng-doc-app-components-api-list.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-breadcrumb.mjs +3 -3
- package/fesm2022/ng-doc-app-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-code.mjs +3 -3
- package/fesm2022/ng-doc-app-components-code.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-copy-button.mjs +3 -3
- package/fesm2022/ng-doc-app-components-copy-button.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-demo-displayer.mjs +3 -3
- package/fesm2022/ng-doc-app-components-demo-displayer.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-demo-pane.mjs +3 -3
- package/fesm2022/ng-doc-app-components-demo-pane.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-demo.mjs +3 -3
- package/fesm2022/ng-doc-app-components-demo.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-fullscreen-button.mjs +3 -3
- package/fesm2022/ng-doc-app-components-fullscreen-button.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-heading-anchor.mjs +3 -3
- package/fesm2022/ng-doc-app-components-heading-anchor.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-image-viewer.mjs +4 -4
- package/fesm2022/ng-doc-app-components-image-viewer.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-kind-icon.mjs +3 -3
- package/fesm2022/ng-doc-app-components-kind-icon.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-link.mjs +3 -3
- package/fesm2022/ng-doc-app-components-link.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-mermaid-viewer.mjs +3 -3
- package/fesm2022/ng-doc-app-components-mermaid-viewer.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-navbar.mjs +4 -4
- package/fesm2022/ng-doc-app-components-navbar.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-page-header.mjs +3 -3
- package/fesm2022/ng-doc-app-components-page-header.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-page-link.mjs +3 -3
- package/fesm2022/ng-doc-app-components-page-link.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-page-navigation.mjs +3 -3
- package/fesm2022/ng-doc-app-components-page-navigation.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-page-wrapper.mjs +4 -4
- package/fesm2022/ng-doc-app-components-page-wrapper.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-page.mjs +3 -3
- package/fesm2022/ng-doc-app-components-page.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-playground.mjs +15 -15
- package/fesm2022/ng-doc-app-components-playground.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-root.mjs +9 -9
- package/fesm2022/ng-doc-app-components-root.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-search-dialog.mjs +5 -5
- package/fesm2022/ng-doc-app-components-search-dialog.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-search-result.mjs +3 -3
- package/fesm2022/ng-doc-app-components-search-result.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-search.mjs +3 -3
- package/fesm2022/ng-doc-app-components-search.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-sidebar.mjs +9 -9
- package/fesm2022/ng-doc-app-components-sidebar.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-tabs.mjs +3 -3
- package/fesm2022/ng-doc-app-components-tabs.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-theme-toggle.mjs +3 -3
- package/fesm2022/ng-doc-app-components-theme-toggle.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-toc.mjs +6 -6
- package/fesm2022/ng-doc-app-components-toc.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components.mjs.map +1 -1
- package/fesm2022/ng-doc-app-constants.mjs.map +1 -1
- package/fesm2022/ng-doc-app-defaults-default-processors.mjs.map +1 -1
- package/fesm2022/ng-doc-app-defaults-default-skeleton.mjs.map +1 -1
- package/fesm2022/ng-doc-app-defaults.mjs.map +1 -1
- package/fesm2022/ng-doc-app-directives-code-highlighter.mjs +4 -4
- package/fesm2022/ng-doc-app-directives-code-highlighter.mjs.map +1 -1
- package/fesm2022/ng-doc-app-directives-route-active.mjs +3 -3
- package/fesm2022/ng-doc-app-directives-route-active.mjs.map +1 -1
- package/fesm2022/ng-doc-app-directives.mjs.map +1 -1
- package/fesm2022/ng-doc-app-helpers.mjs.map +1 -1
- package/fesm2022/ng-doc-app-interfaces.mjs.map +1 -1
- package/fesm2022/ng-doc-app-pipes-decode-uri-component.mjs +3 -3
- package/fesm2022/ng-doc-app-pipes-decode-uri-component.mjs.map +1 -1
- package/fesm2022/ng-doc-app-pipes-extract-value.mjs +3 -3
- package/fesm2022/ng-doc-app-pipes-extract-value.mjs.map +1 -1
- package/fesm2022/ng-doc-app-pipes-filter-by-text.mjs +3 -3
- package/fesm2022/ng-doc-app-pipes-filter-by-text.mjs.map +1 -1
- package/fesm2022/ng-doc-app-pipes-sanitize-html.mjs +3 -3
- package/fesm2022/ng-doc-app-pipes-sanitize-html.mjs.map +1 -1
- package/fesm2022/ng-doc-app-pipes.mjs.map +1 -1
- package/fesm2022/ng-doc-app-processors-page-processor.mjs +3 -3
- package/fesm2022/ng-doc-app-processors-page-processor.mjs.map +1 -1
- package/fesm2022/ng-doc-app-processors-processors-link.mjs.map +1 -1
- package/fesm2022/ng-doc-app-processors-processors-tooltip.mjs +3 -3
- package/fesm2022/ng-doc-app-processors-processors-tooltip.mjs.map +1 -1
- package/fesm2022/ng-doc-app-processors-processors.mjs.map +1 -1
- package/fesm2022/ng-doc-app-processors.mjs.map +1 -1
- package/fesm2022/ng-doc-app-providers-mermaid.mjs.map +1 -1
- package/fesm2022/ng-doc-app-providers-ng-doc-app.mjs.map +1 -1
- package/fesm2022/ng-doc-app-providers-page-skeleton.mjs.map +1 -1
- package/fesm2022/ng-doc-app-providers-playground-demo.mjs.map +1 -1
- package/fesm2022/ng-doc-app-providers-search-engine.mjs.map +1 -1
- package/fesm2022/ng-doc-app-providers-type-control.mjs.map +1 -1
- package/fesm2022/ng-doc-app-providers.mjs.map +1 -1
- package/fesm2022/ng-doc-app-services-highlighter.mjs +3 -3
- package/fesm2022/ng-doc-app-services-highlighter.mjs.map +1 -1
- package/fesm2022/ng-doc-app-services-sidebar.mjs +3 -3
- package/fesm2022/ng-doc-app-services-sidebar.mjs.map +1 -1
- package/fesm2022/ng-doc-app-services-store.mjs +3 -3
- package/fesm2022/ng-doc-app-services-store.mjs.map +1 -1
- package/fesm2022/ng-doc-app-services-theme.mjs +3 -3
- package/fesm2022/ng-doc-app-services-theme.mjs.map +1 -1
- package/fesm2022/ng-doc-app-services.mjs.map +1 -1
- package/fesm2022/ng-doc-app-tokens.mjs.map +1 -1
- package/fesm2022/ng-doc-app-type-controls-boolean-control.mjs +3 -3
- package/fesm2022/ng-doc-app-type-controls-boolean-control.mjs.map +1 -1
- package/fesm2022/ng-doc-app-type-controls-number-control.mjs +3 -3
- package/fesm2022/ng-doc-app-type-controls-number-control.mjs.map +1 -1
- package/fesm2022/ng-doc-app-type-controls-string-control.mjs +3 -3
- package/fesm2022/ng-doc-app-type-controls-string-control.mjs.map +1 -1
- package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs +3 -3
- package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs.map +1 -1
- package/fesm2022/ng-doc-app-type-controls.mjs.map +1 -1
- package/fesm2022/ng-doc-app-types.mjs.map +1 -1
- package/fesm2022/ng-doc-app.mjs.map +1 -1
- package/package.json +80 -80
- package/{classes/default-search-engine/index.d.ts → types/ng-doc-app-classes-default-search-engine.d.ts} +3 -3
- package/{components/playground/index.d.ts → types/ng-doc-app-components-playground.d.ts} +1 -1
- /package/{classes/root-page/index.d.ts → types/ng-doc-app-classes-root-page.d.ts} +0 -0
- /package/{classes/search-engine/index.d.ts → types/ng-doc-app-classes-search-engine.d.ts} +0 -0
- /package/{classes/index.d.ts → types/ng-doc-app-classes.d.ts} +0 -0
- /package/{components/api-list/index.d.ts → types/ng-doc-app-components-api-list.d.ts} +0 -0
- /package/{components/breadcrumb/index.d.ts → types/ng-doc-app-components-breadcrumb.d.ts} +0 -0
- /package/{components/code/index.d.ts → types/ng-doc-app-components-code.d.ts} +0 -0
- /package/{components/copy-button/index.d.ts → types/ng-doc-app-components-copy-button.d.ts} +0 -0
- /package/{components/demo-displayer/index.d.ts → types/ng-doc-app-components-demo-displayer.d.ts} +0 -0
- /package/{components/demo-pane/index.d.ts → types/ng-doc-app-components-demo-pane.d.ts} +0 -0
- /package/{components/demo/index.d.ts → types/ng-doc-app-components-demo.d.ts} +0 -0
- /package/{components/fullscreen-button/index.d.ts → types/ng-doc-app-components-fullscreen-button.d.ts} +0 -0
- /package/{components/heading-anchor/index.d.ts → types/ng-doc-app-components-heading-anchor.d.ts} +0 -0
- /package/{components/image-viewer/index.d.ts → types/ng-doc-app-components-image-viewer.d.ts} +0 -0
- /package/{components/kind-icon/index.d.ts → types/ng-doc-app-components-kind-icon.d.ts} +0 -0
- /package/{components/link/index.d.ts → types/ng-doc-app-components-link.d.ts} +0 -0
- /package/{components/mermaid-viewer/index.d.ts → types/ng-doc-app-components-mermaid-viewer.d.ts} +0 -0
- /package/{components/navbar/index.d.ts → types/ng-doc-app-components-navbar.d.ts} +0 -0
- /package/{components/page-header/index.d.ts → types/ng-doc-app-components-page-header.d.ts} +0 -0
- /package/{components/page-link/index.d.ts → types/ng-doc-app-components-page-link.d.ts} +0 -0
- /package/{components/page-navigation/index.d.ts → types/ng-doc-app-components-page-navigation.d.ts} +0 -0
- /package/{components/page-wrapper/index.d.ts → types/ng-doc-app-components-page-wrapper.d.ts} +0 -0
- /package/{components/page/index.d.ts → types/ng-doc-app-components-page.d.ts} +0 -0
- /package/{components/root/index.d.ts → types/ng-doc-app-components-root.d.ts} +0 -0
- /package/{components/search-dialog/index.d.ts → types/ng-doc-app-components-search-dialog.d.ts} +0 -0
- /package/{components/search-result/index.d.ts → types/ng-doc-app-components-search-result.d.ts} +0 -0
- /package/{components/search/index.d.ts → types/ng-doc-app-components-search.d.ts} +0 -0
- /package/{components/sidebar/index.d.ts → types/ng-doc-app-components-sidebar.d.ts} +0 -0
- /package/{components/tabs/index.d.ts → types/ng-doc-app-components-tabs.d.ts} +0 -0
- /package/{components/theme-toggle/index.d.ts → types/ng-doc-app-components-theme-toggle.d.ts} +0 -0
- /package/{components/toc/index.d.ts → types/ng-doc-app-components-toc.d.ts} +0 -0
- /package/{components/index.d.ts → types/ng-doc-app-components.d.ts} +0 -0
- /package/{constants/index.d.ts → types/ng-doc-app-constants.d.ts} +0 -0
- /package/{defaults/default-processors/index.d.ts → types/ng-doc-app-defaults-default-processors.d.ts} +0 -0
- /package/{defaults/default-skeleton/index.d.ts → types/ng-doc-app-defaults-default-skeleton.d.ts} +0 -0
- /package/{defaults/index.d.ts → types/ng-doc-app-defaults.d.ts} +0 -0
- /package/{directives/code-highlighter/index.d.ts → types/ng-doc-app-directives-code-highlighter.d.ts} +0 -0
- /package/{directives/route-active/index.d.ts → types/ng-doc-app-directives-route-active.d.ts} +0 -0
- /package/{directives/index.d.ts → types/ng-doc-app-directives.d.ts} +0 -0
- /package/{helpers/index.d.ts → types/ng-doc-app-helpers.d.ts} +0 -0
- /package/{interfaces/index.d.ts → types/ng-doc-app-interfaces.d.ts} +0 -0
- /package/{pipes/decode-uri-component/index.d.ts → types/ng-doc-app-pipes-decode-uri-component.d.ts} +0 -0
- /package/{pipes/extract-value/index.d.ts → types/ng-doc-app-pipes-extract-value.d.ts} +0 -0
- /package/{pipes/filter-by-text/index.d.ts → types/ng-doc-app-pipes-filter-by-text.d.ts} +0 -0
- /package/{pipes/sanitize-html/index.d.ts → types/ng-doc-app-pipes-sanitize-html.d.ts} +0 -0
- /package/{pipes/index.d.ts → types/ng-doc-app-pipes.d.ts} +0 -0
- /package/{processors/page-processor/index.d.ts → types/ng-doc-app-processors-page-processor.d.ts} +0 -0
- /package/{processors/processors/link/index.d.ts → types/ng-doc-app-processors-processors-link.d.ts} +0 -0
- /package/{processors/processors/tooltip/index.d.ts → types/ng-doc-app-processors-processors-tooltip.d.ts} +0 -0
- /package/{processors/processors/index.d.ts → types/ng-doc-app-processors-processors.d.ts} +0 -0
- /package/{processors/index.d.ts → types/ng-doc-app-processors.d.ts} +0 -0
- /package/{providers/mermaid/index.d.ts → types/ng-doc-app-providers-mermaid.d.ts} +0 -0
- /package/{providers/ng-doc-app/index.d.ts → types/ng-doc-app-providers-ng-doc-app.d.ts} +0 -0
- /package/{providers/page-skeleton/index.d.ts → types/ng-doc-app-providers-page-skeleton.d.ts} +0 -0
- /package/{providers/playground-demo/index.d.ts → types/ng-doc-app-providers-playground-demo.d.ts} +0 -0
- /package/{providers/search-engine/index.d.ts → types/ng-doc-app-providers-search-engine.d.ts} +0 -0
- /package/{providers/type-control/index.d.ts → types/ng-doc-app-providers-type-control.d.ts} +0 -0
- /package/{providers/index.d.ts → types/ng-doc-app-providers.d.ts} +0 -0
- /package/{services/highlighter/index.d.ts → types/ng-doc-app-services-highlighter.d.ts} +0 -0
- /package/{services/sidebar/index.d.ts → types/ng-doc-app-services-sidebar.d.ts} +0 -0
- /package/{services/store/index.d.ts → types/ng-doc-app-services-store.d.ts} +0 -0
- /package/{services/theme/index.d.ts → types/ng-doc-app-services-theme.d.ts} +0 -0
- /package/{services/index.d.ts → types/ng-doc-app-services.d.ts} +0 -0
- /package/{tokens/index.d.ts → types/ng-doc-app-tokens.d.ts} +0 -0
- /package/{type-controls/boolean-control/index.d.ts → types/ng-doc-app-type-controls-boolean-control.d.ts} +0 -0
- /package/{type-controls/number-control/index.d.ts → types/ng-doc-app-type-controls-number-control.d.ts} +0 -0
- /package/{type-controls/string-control/index.d.ts → types/ng-doc-app-type-controls-string-control.d.ts} +0 -0
- /package/{type-controls/type-alias-control/index.d.ts → types/ng-doc-app-type-controls-type-alias-control.d.ts} +0 -0
- /package/{type-controls/index.d.ts → types/ng-doc-app-type-controls.d.ts} +0 -0
- /package/types/{index.d.ts → ng-doc-app-types.d.ts} +0 -0
- /package/{index.d.ts → types/ng-doc-app.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-app-components-playground.mjs","sources":["../tmp-esm2022/components/playground/playground-demo/playground-demo.component.js","../tmp-esm2022/components/playground/playground-property/playground-property.component.js","../tmp-esm2022/components/playground/playground-properties/playground-properties.component.js","../tmp-esm2022/components/playground/playground.component.js","../tmp-esm2022/components/playground/base-playground.js","../tmp-esm2022/components/playground/ng-doc-app-components-playground.js"],"sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, inject, Injector, Input, ViewChild, ViewContainerRef, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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 { buildPlaygroundDemoPipeTemplate, buildPlaygroundDemoTemplate, } from '@ng-doc/core/helpers/build-playground-demo-template';\nimport { objectKeys } from '@ng-doc/core/helpers/object-keys';\nimport { stringify } from '@ng-doc/core/helpers/stringify';\nimport { Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nexport class NgDocPlaygroundDemoComponent {\n constructor() {\n this.id = '';\n this.pipeName = '';\n this.selector = '';\n this.recreateDemo = false;\n this.expanded = false;\n this.code = '';\n this.injector = inject(Injector);\n this.changeDetectorRef = inject(ChangeDetectorRef);\n this.destroyRef = inject(DestroyRef);\n this.unsubscribe$ = new Subject();\n }\n async ngOnChanges({ form, id }) {\n if (form || id) {\n this.unsubscribe$.next();\n const demoInjector = getPlaygroundDemoToken(this.id);\n if (demoInjector) {\n const demos = this.injector.get(demoInjector, []);\n this.playgroundDemo = demos.find((demo) => demo.selector === this.selector || demo.selector === this.pipeName);\n }\n await this.updateDemo();\n this.form?.valueChanges\n .pipe(takeUntil(this.unsubscribe$), startWith(this.form?.value), takeUntilDestroyed(this.destroyRef))\n .subscribe((data) => this.updateDemo(data));\n }\n }\n async updateDemo(data) {\n if (this.recreateDemo || !this.demoRef) {\n this.createDemo();\n }\n if (data) {\n this.demoRef?.setInput('properties', data.properties ?? {});\n this.demoRef?.setInput('content', data.content ?? {});\n this.demoRef?.setInput('actionData', this.configuration?.data ?? {});\n if (this.recreateDemo) {\n this.demoRef?.instance.onReattached.subscribe(() => {\n this.demoRef?.changeDetectorRef.detectChanges();\n });\n }\n }\n await this.updateCodeView();\n }\n createDemo() {\n if (this.playgroundDemo) {\n this.demoRef?.destroy();\n this.demoRef = this.demoOutlet?.createComponent(this.playgroundDemo);\n this.demoRef?.changeDetectorRef.markForCheck();\n }\n }\n async updateCodeView() {\n const template = this.pipeName\n ? buildPlaygroundDemoPipeTemplate(this.configuration?.template ?? '', this.pipeName, this.getActiveContent(), this.getPipeActiveInputs())\n : buildPlaygroundDemoTemplate(this.configuration?.template ?? '', this.selector, this.getActiveContent(), this.getActiveInputs());\n this.code = await formatHtml(template);\n this.changeDetectorRef.markForCheck();\n }\n getActiveContent() {\n const formData = this.form?.controls.content.value ?? {};\n return objectKeys(formData).reduce((result, key) => {\n result[key] = formData[key] ? this.configuration?.content?.[key].template ?? '' : '';\n return result;\n }, {});\n }\n getActiveInputs() {\n const formData = this.form?.controls.properties.value ?? {};\n return objectKeys(formData).reduce((result, key) => {\n const inputName = this.properties?.[key]?.inputName ?? key;\n const value = formData[key];\n const property = this.demoRef?.instance?.defaultValues[key];\n if (property !== value) {\n result[inputName] = stringify(value).replace(/\"/g, `'`);\n }\n return result;\n }, {});\n }\n getPipeActiveInputs() {\n const formData = this.form?.controls.properties.value ?? {};\n let changedInputIndex = -1;\n return objectKeys(formData)\n .map((key, i) => {\n const value = formData[key];\n const defaultValue = this.demoRef?.instance?.defaultValues[key];\n if (defaultValue !== value) {\n changedInputIndex = i;\n }\n return key;\n })\n .slice(0, changedInputIndex + 1)\n .reduce((result, key) => {\n result[key] = stringify(formData[key]).replace(/\"/g, `'`);\n return result;\n }, {});\n }\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocPlaygroundDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", type: NgDocPlaygroundDemoComponent, isStandalone: true, selector: \"ng-doc-playground-demo\", inputs: { id: \"id\", pipeName: \"pipeName\", selector: \"selector\", configuration: \"configuration\", properties: \"properties\", recreateDemo: \"recreateDemo\", form: \"form\", expanded: \"expanded\" }, viewQueries: [{ propertyName: \"demoOutlet\", first: true, predicate: [\"demoOutlet\"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: \"<ng-doc-demo-displayer [code]=\\\"code\\\" [border]=\\\"false\\\" [expanded]=\\\"expanded\\\" language=\\\"angular-html\\\">\\n <ng-container #demoOutlet></ng-container>\\n</ng-doc-demo-displayer>\\n\", styles: [\":host{display:block;border:var(--ng-doc-demo-displayer-border);border-radius:var(--ng-doc-demo-displayer-border-radius);overflow:hidden}:host:not(:last-child){border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}:host:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}\\n\"], dependencies: [{ kind: \"component\", type: NgDocDemoDisplayerComponent, selector: \"ng-doc-demo-displayer\", inputs: [\"codeContent\", \"code\", \"language\", \"container\", \"border\", \"expanded\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocPlaygroundDemoComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ng-doc-playground-demo', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgDocDemoDisplayerComponent], template: \"<ng-doc-demo-displayer [code]=\\\"code\\\" [border]=\\\"false\\\" [expanded]=\\\"expanded\\\" language=\\\"angular-html\\\">\\n <ng-container #demoOutlet></ng-container>\\n</ng-doc-demo-displayer>\\n\", styles: [\":host{display:block;border:var(--ng-doc-demo-displayer-border);border-radius:var(--ng-doc-demo-displayer-border-radius);overflow:hidden}:host:not(:last-child){border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}:host:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}\\n\"] }]\n }], propDecorators: { id: [{\n type: Input\n }], pipeName: [{\n type: Input\n }], selector: [{\n type: Input\n }], configuration: [{\n type: Input\n }], properties: [{\n type: Input\n }], recreateDemo: [{\n type: Input\n }], form: [{\n type: Input\n }], expanded: [{\n type: Input\n }], demoOutlet: [{\n type: ViewChild,\n args: ['demoOutlet', { static: true, read: ViewContainerRef }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLWRlbW8vcGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLWRlbW8vcGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsTUFBTSxFQUVOLFFBQVEsRUFDUixLQUFLLEVBS0wsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRS9FLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsMkJBQTJCLEdBQzVCLE1BQU0scURBQXFELENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBWXRELE1B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QkFHTCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgRGVzdHJveVJlZixcbiAgaW5qZWN0LFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVHlwZSxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nRG9jRGVtb0Rpc3BsYXllckNvbXBvbmVudCB9IGZyb20gJ0BuZy1kb2MvYXBwL2NvbXBvbmVudHMvZGVtby1kaXNwbGF5ZXInO1xuaW1wb3J0IHsgZm9ybWF0SHRtbCB9IGZyb20gJ0BuZy1kb2MvYXBwL2hlbHBlcnMnO1xuaW1wb3J0IHsgZ2V0UGxheWdyb3VuZERlbW9Ub2tlbiB9IGZyb20gJ0BuZy1kb2MvYXBwL3Byb3ZpZGVycy9wbGF5Z3JvdW5kLWRlbW8nO1xuaW1wb3J0IHsgTmdEb2NGb3JtUGFydGlhbFZhbHVlIH0gZnJvbSAnQG5nLWRvYy9hcHAvdHlwZXMnO1xuaW1wb3J0IHtcbiAgYnVpbGRQbGF5Z3JvdW5kRGVtb1BpcGVUZW1wbGF0ZSxcbiAgYnVpbGRQbGF5Z3JvdW5kRGVtb1RlbXBsYXRlLFxufSBmcm9tICdAbmctZG9jL2NvcmUvaGVscGVycy9idWlsZC1wbGF5Z3JvdW5kLWRlbW8tdGVtcGxhdGUnO1xuaW1wb3J0IHsgb2JqZWN0S2V5cyB9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL29iamVjdC1rZXlzJztcbmltcG9ydCB7IHN0cmluZ2lmeSB9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL3N0cmluZ2lmeSc7XG5pbXBvcnQgeyBOZ0RvY1BsYXlncm91bmRDb25maWcsIE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXMgfSBmcm9tICdAbmctZG9jL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTmdEb2NCYXNlUGxheWdyb3VuZCB9IGZyb20gJy4uL2Jhc2UtcGxheWdyb3VuZCc7XG5pbXBvcnQgeyBOZ0RvY1BsYXlncm91bmRGb3JtIH0gZnJvbSAnLi4vcGxheWdyb3VuZC1mb3JtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctZG9jLXBsYXlncm91bmQtZGVtbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wbGF5Z3JvdW5kLWRlbW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wbGF5Z3JvdW5kLWRlbW8uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtOZ0RvY0RlbW9EaXNwbGF5ZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ0RvY1BsYXlncm91bmREZW1vQ29tcG9uZW50PFxuICAgIFQgZXh0ZW5kcyBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0aWVzID0gTmdEb2NQbGF5Z3JvdW5kUHJvcGVydGllcyxcbiAgPlxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIGlkOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBwaXBlTmFtZTogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgc2VsZWN0b3I6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGNvbmZpZ3VyYXRpb24/OiBOZ0RvY1BsYXlncm91bmRDb25maWc7XG5cbiAgQElucHV0KClcbiAgcHJvcGVydGllcz86IFQ7XG5cbiAgQElucHV0KClcbiAgcmVjcmVhdGVEZW1vOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZm9ybSE6IEZvcm1Hcm91cDxOZ0RvY1BsYXlncm91bmRGb3JtPjtcblxuICBASW5wdXQoKVxuICBleHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2RlbW9PdXRsZXQnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KVxuICBkZW1vT3V0bGV0PzogVmlld0NvbnRhaW5lclJlZjtcblxuICBwbGF5Z3JvdW5kRGVtbz86IHR5cGVvZiBOZ0RvY0Jhc2VQbGF5Z3JvdW5kO1xuXG4gIHByb3RlY3RlZCBjb2RlID0gJyc7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgcHJpdmF0ZSBkZW1vUmVmPzogQ29tcG9uZW50UmVmPE5nRG9jQmFzZVBsYXlncm91bmQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic2NyaWJlJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgYXN5bmMgbmdPbkNoYW5nZXMoeyBmb3JtLCBpZCB9OiBTaW1wbGVDaGFuZ2VzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGZvcm0gfHwgaWQpIHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcblxuICAgICAgY29uc3QgZGVtb0luamVjdG9yOiBJbmplY3Rpb25Ub2tlbjxBcnJheTx0eXBlb2YgTmdEb2NCYXNlUGxheWdyb3VuZD4+IHwgdW5kZWZpbmVkID1cbiAgICAgICAgZ2V0UGxheWdyb3VuZERlbW9Ub2tlbih0aGlzLmlkKTtcblxuICAgICAgaWYgKGRlbW9JbmplY3Rvcikge1xuICAgICAgICBjb25zdCBkZW1vczogQXJyYXk8dHlwZW9mIE5nRG9jQmFzZVBsYXlncm91bmQ+ID0gdGhpcy5pbmplY3Rvci5nZXQoZGVtb0luamVjdG9yLCBbXSk7XG5cbiAgICAgICAgdGhpcy5wbGF5Z3JvdW5kRGVtbyA9IGRlbW9zLmZpbmQoXG4gICAgICAgICAgKGRlbW86IHR5cGVvZiBOZ0RvY0Jhc2VQbGF5Z3JvdW5kKSA9PlxuICAgICAgICAgICAgZGVtby5zZWxlY3RvciA9PT0gdGhpcy5zZWxlY3RvciB8fCBkZW1vLnNlbGVjdG9yID09PSB0aGlzLnBpcGVOYW1lLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZURlbW8oKTtcblxuICAgICAgdGhpcy5mb3JtPy52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgICAgICBzdGFydFdpdGgodGhpcy5mb3JtPy52YWx1ZSksXG4gICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogTmdEb2NGb3JtUGFydGlhbFZhbHVlPHR5cGVvZiB0aGlzLmZvcm0+KSA9PiB0aGlzLnVwZGF0ZURlbW8oZGF0YSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlRGVtbyhkYXRhPzogTmdEb2NGb3JtUGFydGlhbFZhbHVlPHR5cGVvZiB0aGlzLmZvcm0+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMucmVjcmVhdGVEZW1vIHx8ICF0aGlzLmRlbW9SZWYpIHtcbiAgICAgIHRoaXMuY3JlYXRlRGVtbygpO1xuICAgIH1cblxuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLmRlbW9SZWY/LnNldElucHV0KCdwcm9wZXJ0aWVzJywgZGF0YS5wcm9wZXJ0aWVzID8/IHt9KTtcbiAgICAgIHRoaXMuZGVtb1JlZj8uc2V0SW5wdXQoJ2NvbnRlbnQnLCBkYXRhLmNvbnRlbnQgPz8ge30pO1xuICAgICAgdGhpcy5kZW1vUmVmPy5zZXRJbnB1dCgnYWN0aW9uRGF0YScsIHRoaXMuY29uZmlndXJhdGlvbj8uZGF0YSA/PyB7fSk7XG5cbiAgICAgIGlmICh0aGlzLnJlY3JlYXRlRGVtbykge1xuICAgICAgICB0aGlzLmRlbW9SZWY/Lmluc3RhbmNlLm9uUmVhdHRhY2hlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGVtb1JlZj8uY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnVwZGF0ZUNvZGVWaWV3KCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURlbW8oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGxheWdyb3VuZERlbW8pIHtcbiAgICAgIHRoaXMuZGVtb1JlZj8uZGVzdHJveSgpO1xuICAgICAgdGhpcy5kZW1vUmVmID0gdGhpcy5kZW1vT3V0bGV0Py5jcmVhdGVDb21wb25lbnQoXG4gICAgICAgIHRoaXMucGxheWdyb3VuZERlbW8gYXMgdW5rbm93biBhcyBUeXBlPE5nRG9jQmFzZVBsYXlncm91bmQ+LFxuICAgICAgKTtcbiAgICAgIHRoaXMuZGVtb1JlZj8uY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVDb2RlVmlldygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB0ZW1wbGF0ZTogc3RyaW5nID0gdGhpcy5waXBlTmFtZVxuICAgICAgPyBidWlsZFBsYXlncm91bmREZW1vUGlwZVRlbXBsYXRlKFxuICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbj8udGVtcGxhdGUgPz8gJycsXG4gICAgICAgICAgdGhpcy5waXBlTmFtZSxcbiAgICAgICAgICB0aGlzLmdldEFjdGl2ZUNvbnRlbnQoKSxcbiAgICAgICAgICB0aGlzLmdldFBpcGVBY3RpdmVJbnB1dHMoKSxcbiAgICAgICAgKVxuICAgICAgOiBidWlsZFBsYXlncm91bmREZW1vVGVtcGxhdGUoXG4gICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uPy50ZW1wbGF0ZSA/PyAnJyxcbiAgICAgICAgICB0aGlzLnNlbGVjdG9yLFxuICAgICAgICAgIHRoaXMuZ2V0QWN0aXZlQ29udGVudCgpLFxuICAgICAgICAgIHRoaXMuZ2V0QWN0aXZlSW5wdXRzKCksXG4gICAgICAgICk7XG5cbiAgICB0aGlzLmNvZGUgPSBhd2FpdCBmb3JtYXRIdG1sKHRlbXBsYXRlKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY3RpdmVDb250ZW50KCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIGNvbnN0IGZvcm1EYXRhOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9XG4gICAgICAodGhpcy5mb3JtPy5jb250cm9scy5jb250ZW50LnZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+KSA/PyB7fTtcblxuICAgIHJldHVybiBvYmplY3RLZXlzKGZvcm1EYXRhKS5yZWR1Y2UoKHJlc3VsdDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIHJlc3VsdFtrZXldID0gZm9ybURhdGFba2V5XSA/IHRoaXMuY29uZmlndXJhdGlvbj8uY29udGVudD8uW2tleV0udGVtcGxhdGUgPz8gJycgOiAnJztcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LCB7fSk7XG4gIH1cblxuICBwcml2YXRlIGdldEFjdGl2ZUlucHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBjb25zdCBmb3JtRGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPVxuICAgICAgKHRoaXMuZm9ybT8uY29udHJvbHMucHJvcGVydGllcy52YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPz8ge307XG5cbiAgICByZXR1cm4gb2JqZWN0S2V5cyhmb3JtRGF0YSkucmVkdWNlKChyZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dE5hbWUgPSB0aGlzLnByb3BlcnRpZXM/LltrZXldPy5pbnB1dE5hbWUgPz8ga2V5O1xuICAgICAgY29uc3QgdmFsdWU6IHVua25vd24gPSBmb3JtRGF0YVtrZXldO1xuICAgICAgY29uc3QgcHJvcGVydHk6IHVua25vd24gfCB1bmRlZmluZWQgPSB0aGlzLmRlbW9SZWY/Lmluc3RhbmNlPy5kZWZhdWx0VmFsdWVzW2tleV07XG5cbiAgICAgIGlmIChwcm9wZXJ0eSAhPT0gdmFsdWUpIHtcbiAgICAgICAgcmVzdWx0W2lucHV0TmFtZV0gPSBzdHJpbmdpZnkodmFsdWUpLnJlcGxhY2UoL1wiL2csIGAnYCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSwge30pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQaXBlQWN0aXZlSW5wdXRzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIGNvbnN0IGZvcm1EYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9XG4gICAgICAodGhpcy5mb3JtPy5jb250cm9scy5wcm9wZXJ0aWVzLnZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA/PyB7fTtcbiAgICBsZXQgY2hhbmdlZElucHV0SW5kZXg6IG51bWJlciA9IC0xO1xuXG4gICAgcmV0dXJuIG9iamVjdEtleXMoZm9ybURhdGEpXG4gICAgICAubWFwKChrZXk6IHN0cmluZywgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlOiB1bmtub3duID0gZm9ybURhdGFba2V5XTtcbiAgICAgICAgY29uc3QgZGVmYXVsdFZhbHVlOiB1bmtub3duIHwgdW5kZWZpbmVkID0gdGhpcy5kZW1vUmVmPy5pbnN0YW5jZT8uZGVmYXVsdFZhbHVlc1trZXldO1xuXG4gICAgICAgIGlmIChkZWZhdWx0VmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICAgICAgY2hhbmdlZElucHV0SW5kZXggPSBpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgIH0pXG4gICAgICAuc2xpY2UoMCwgY2hhbmdlZElucHV0SW5kZXggKyAxKVxuICAgICAgLnJlZHVjZSgocmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICByZXN1bHRba2V5XSA9IHN0cmluZ2lmeShmb3JtRGF0YVtrZXldKS5yZXBsYWNlKC9cIi9nLCBgJ2ApO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9LCB7fSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPG5nLWRvYy1kZW1vLWRpc3BsYXllciBbY29kZV09XCJjb2RlXCIgW2JvcmRlcl09XCJmYWxzZVwiIFtleHBhbmRlZF09XCJleHBhbmRlZFwiIGxhbmd1YWdlPVwiYW5ndWxhci1odG1sXCI+XG4gIDxuZy1jb250YWluZXIgI2RlbW9PdXRsZXQ+PC9uZy1jb250YWluZXI+XG48L25nLWRvYy1kZW1vLWRpc3BsYXllcj5cbiJdfQ==","import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild, ViewContainerRef, } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { isPlaygroundProperty } from '@ng-doc/app/helpers';\nimport { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes';\nimport { NgDocLabelComponent, NgDocTooltipDirective } from '@ng-doc/ui-kit';\nimport * as i0 from \"@angular/core\";\nexport class NgDocPlaygroundPropertyComponent {\n constructor() {\n this.name = '';\n }\n ngOnChanges({ property, control, typeControl, defaultValue }) {\n if ((property || control || typeControl || defaultValue) && this.property && this.typeControl) {\n this.propertyTypeControl?.destroy();\n this.propertyTypeControl = undefined;\n if (this.typeControl && this.propertyOutlet) {\n this.propertyTypeControl = this.propertyOutlet.createComponent(this.typeControl.control);\n this.propertyTypeControl.instance.name = this.name;\n this.propertyTypeControl.instance.description = this.tooltipContent;\n this.propertyTypeControl.instance.options = isPlaygroundProperty(this.property)\n ? this.property.options\n : undefined;\n this.propertyTypeControl.instance.default = this.defaultValue;\n this.propertyTypeControl.instance.isManual = isPlaygroundProperty(this.property)\n ? this.property.isManual\n : undefined;\n this.propertyTypeControl.instance.writeValue(this.control?.value);\n this.option = this.typeControl.options;\n }\n if (this.control) {\n this.control?.registerOnChange((value) => this.propertyTypeControl?.instance?.writeValue(value));\n this.propertyTypeControl?.instance.registerOnChange((value) => this.control?.setValue(value));\n this.propertyTypeControl?.instance.registerOnTouched(() => this.control?.markAsTouched());\n }\n }\n }\n get hasPropertyControl() {\n return !!this.propertyTypeControl;\n }\n get tooltipContent() {\n return this.property && isPlaygroundProperty(this.property)\n ? this.property.description ?? ''\n : '';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocPlaygroundPropertyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", type: NgDocPlaygroundPropertyComponent, isStandalone: true, selector: \"ng-doc-playground-property\", inputs: { name: \"name\", property: \"property\", typeControl: \"typeControl\", control: \"control\", defaultValue: \"defaultValue\" }, host: { properties: { \"attr.data-has-property-control\": \"this.hasPropertyControl\" } }, viewQueries: [{ propertyName: \"propertyOutlet\", first: true, predicate: [\"propertyOutlet\"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: \"<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\", styles: [\":host{display:block}:host[data-has-property-control=false]{display:none}\\n\"], dependencies: [{ kind: \"component\", type: NgDocLabelComponent, selector: \"label[ng-doc-label]\", inputs: [\"ng-doc-label\", \"align\"] }, { 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: NgDocSanitizeHtmlPipe, name: \"ngDocSanitizeHtml\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocPlaygroundPropertyComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ng-doc-playground-property', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgDocLabelComponent, NgDocTooltipDirective, NgDocSanitizeHtmlPipe], template: \"<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\", styles: [\":host{display:block}:host[data-has-property-control=false]{display:none}\\n\"] }]\n }], propDecorators: { name: [{\n type: Input\n }], property: [{\n type: Input\n }], typeControl: [{\n type: Input\n }], control: [{\n type: Input\n }], defaultValue: [{\n type: Input\n }], propertyOutlet: [{\n type: ViewChild,\n args: ['propertyOutlet', { read: ViewContainerRef, static: true }]\n }], hasPropertyControl: [{\n type: HostBinding,\n args: ['attr.data-has-property-control']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC1wcm9wZXJ0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BsYXlncm91bmQvcGxheWdyb3VuZC1wcm9wZXJ0eS9wbGF5Z3JvdW5kLXByb3BlcnR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLXByb3BlcnR5L3BsYXlncm91bmQtcHJvcGVydHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFHTCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU0zRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFTNUUsTUFBTSxPQUFPLGdDQUFnQztJQVA3QztRQVNFLFNBQUksR0FBVyxFQUFFLENBQUM7S0ErRG5CO0lBM0NDLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBaUI7UUFDekUsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLElBQUksV0FBVyxJQUFJLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlGLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsbUJB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Z0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7c0JBdUNwRSxXQUFXO3VCQUFDLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzUGxheWdyb3VuZFByb3BlcnR5IH0gZnJvbSAnQG5nLWRvYy9hcHAvaGVscGVycyc7XG5pbXBvcnQge1xuICBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wsXG4gIE5nRG9jVHlwZUNvbnRyb2wsXG4gIE5nRG9jVHlwZUNvbnRyb2xQcm92aWRlck9wdGlvbnMsXG59IGZyb20gJ0BuZy1kb2MvYXBwL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTmdEb2NTYW5pdGl6ZUh0bWxQaXBlIH0gZnJvbSAnQG5nLWRvYy9hcHAvcGlwZXMnO1xuaW1wb3J0IHsgTmdEb2NQbGF5Z3JvdW5kQ29udGVudCwgTmdEb2NQbGF5Z3JvdW5kUHJvcGVydHkgfSBmcm9tICdAbmctZG9jL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOZ0RvY0xhYmVsQ29tcG9uZW50LCBOZ0RvY1Rvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICdAbmctZG9jL3VpLWtpdCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLWRvYy1wbGF5Z3JvdW5kLXByb3BlcnR5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BsYXlncm91bmQtcHJvcGVydHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wbGF5Z3JvdW5kLXByb3BlcnR5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbTmdEb2NMYWJlbENvbXBvbmVudCwgTmdEb2NUb29sdGlwRGlyZWN0aXZlLCBOZ0RvY1Nhbml0aXplSHRtbFBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIG5hbWU6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHByb3BlcnR5PzogTmdEb2NQbGF5Z3JvdW5kUHJvcGVydHkgfCBOZ0RvY1BsYXlncm91bmRDb250ZW50O1xuXG4gIEBJbnB1dCgpXG4gIHR5cGVDb250cm9sPzogTmdEb2NQcm92aWRlZFR5cGVDb250cm9sO1xuXG4gIEBJbnB1dCgpXG4gIGNvbnRyb2w/OiBGb3JtQ29udHJvbDtcblxuICBASW5wdXQoKVxuICBkZWZhdWx0VmFsdWU/OiB1bmtub3duO1xuXG4gIEBWaWV3Q2hpbGQoJ3Byb3BlcnR5T3V0bGV0JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHJvcGVydHlPdXRsZXQ/OiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIHByb3RlY3RlZCBvcHRpb24/OiBOZ0RvY1R5cGVDb250cm9sUHJvdmlkZXJPcHRpb25zO1xuICBwcml2YXRlIHByb3BlcnR5VHlwZUNvbnRyb2w/OiBDb21wb25lbnRSZWY8TmdEb2NUeXBlQ29udHJvbD47XG5cbiAgbmdPbkNoYW5nZXMoeyBwcm9wZXJ0eSwgY29udHJvbCwgdHlwZUNvbnRyb2wsIGRlZmF1bHRWYWx1ZSB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKChwcm9wZXJ0eSB8fCBjb250cm9sIHx8IHR5cGVDb250cm9sIHx8IGRlZmF1bHRWYWx1ZSkgJiYgdGhpcy5wcm9wZXJ0eSAmJiB0aGlzLnR5cGVDb250cm9sKSB7XG4gICAgICB0aGlzLnByb3BlcnR5VHlwZUNvbnRyb2w/LmRlc3Ryb3koKTtcbiAgICAgIHRoaXMucHJvcGVydHlUeXBlQ29udHJvbCA9IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKHRoaXMudHlwZUNvbnRyb2wgJiYgdGhpcy5wcm9wZXJ0eU91dGxldCkge1xuICAgICAgICB0aGlzLnByb3BlcnR5VHlwZUNvbnRyb2wgPSB0aGlzLnByb3BlcnR5T3V0bGV0LmNyZWF0ZUNvbXBvbmVudCh0aGlzLnR5cGVDb250cm9sLmNvbnRyb2wpO1xuICAgICAgICB0aGlzLnByb3BlcnR5VHlwZUNvbnRyb2wuaW5zdGFuY2UubmFtZSA9IHRoaXMubmFtZTtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eVR5cGVDb250cm9sLmluc3RhbmNlLmRlc2NyaXB0aW9uID0gdGhpcy50b29sdGlwQ29udGVudDtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eVR5cGVDb250cm9sLmluc3RhbmNlLm9wdGlvbnMgPSBpc1BsYXlncm91bmRQcm9wZXJ0eSh0aGlzLnByb3BlcnR5KVxuICAgICAgICAgID8gdGhpcy5wcm9wZXJ0eS5vcHRpb25zXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucHJvcGVydHlUeXBlQ29udHJvbC5pbnN0YW5jZS5kZWZhdWx0ID0gdGhpcy5kZWZhdWx0VmFsdWU7XG4gICAgICAgIHRoaXMucHJvcGVydHlUeXBlQ29udHJvbC5pbnN0YW5jZS5pc01hbnVhbCA9IGlzUGxheWdyb3VuZFByb3BlcnR5KHRoaXMucHJvcGVydHkpXG4gICAgICAgICAgPyB0aGlzLnByb3BlcnR5LmlzTWFudWFsXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucHJvcGVydHlUeXBlQ29udHJvbC5pbnN0YW5jZS53cml0ZVZhbHVlKHRoaXMuY29udHJvbD8udmFsdWUpO1xuXG4gICAgICAgIHRoaXMub3B0aW9uID0gdGhpcy50eXBlQ29udHJvbC5vcHRpb25zO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgIHRoaXMuY29udHJvbD8ucmVnaXN0ZXJPbkNoYW5nZSgodmFsdWU6IHN0cmluZykgPT5cbiAgICAgICAgICB0aGlzLnByb3BlcnR5VHlwZUNvbnRyb2w/Lmluc3RhbmNlPy53cml0ZVZhbHVlKHZhbHVlKSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eVR5cGVDb250cm9sPy5pbnN0YW5jZS5yZWdpc3Rlck9uQ2hhbmdlKCh2YWx1ZTogdW5rbm93bikgPT5cbiAgICAgICAgICB0aGlzLmNvbnRyb2w/LnNldFZhbHVlKHZhbHVlKSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eVR5cGVDb250cm9sPy5pbnN0YW5jZS5yZWdpc3Rlck9uVG91Y2hlZCgoKSA9PiB0aGlzLmNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtaGFzLXByb3BlcnR5LWNvbnRyb2wnKVxuICBnZXQgaGFzUHJvcGVydHlDb250cm9sKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucHJvcGVydHlUeXBlQ29udHJvbDtcbiAgfVxuXG4gIGdldCB0b29sdGlwQ29udGVudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BlcnR5ICYmIGlzUGxheWdyb3VuZFByb3BlcnR5KHRoaXMucHJvcGVydHkpXG4gICAgICA/IHRoaXMucHJvcGVydHkuZGVzY3JpcHRpb24gPz8gJydcbiAgICAgIDogJyc7XG4gIH1cbn1cbiIsIjxsYWJlbCBbbmctZG9jLWxhYmVsXT1cIm9wdGlvbj8uaGlkZUxhYmVsID8gJycgOiBsYWJlbENvbnRlbnRcIj5cblx0PG5nLXRlbXBsYXRlICNsYWJlbENvbnRlbnQ+XG5cdFx0PHNwYW5cblx0XHRcdFtuZ0RvY1Rvb2x0aXBdPVwidG9vbHRpcFRlbXBsYXRlXCJcblx0XHRcdFtjYW5PcGVuXT1cIiEhdG9vbHRpcENvbnRlbnRcIlxuXHRcdFx0W3Bvc2l0aW9uc109XCJbJ2xlZnQtY2VudGVyJywgJ3RvcC1yaWdodCcsICdib3R0b20tcmlnaHQnXVwiXG5cdFx0XHQ+e3sgbmFtZSB9fTwvc3BhblxuXHRcdD5cblx0XHQ8bmctdGVtcGxhdGUgI3Rvb2x0aXBUZW1wbGF0ZT5cblx0XHRcdDxkaXYgW2lubmVySFRNTF09XCJ0b29sdGlwQ29udGVudCB8IG5nRG9jU2FuaXRpemVIdG1sXCI+PC9kaXY+XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0PC9uZy10ZW1wbGF0ZT5cblx0PG5nLWNvbnRhaW5lciAjcHJvcGVydHlPdXRsZXQ+PC9uZy1jb250YWluZXI+XG48L2xhYmVsPlxuIl19","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { AsyncPipe, KeyValuePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, inject, Injector, Input, isDevMode, Output, } from '@angular/core';\nimport { FormGroup, FormsModule } from '@angular/forms';\nimport { isPlaygroundProperty } from '@ng-doc/app/helpers';\nimport { getTokenForType } from '@ng-doc/app/providers/type-control';\nimport { extractValueOrThrow } from '@ng-doc/core/helpers/extract-value';\nimport { isPresent } from '@ng-doc/core/helpers/is-present';\nimport { objectKeys } from '@ng-doc/core/helpers/object-keys';\nimport { NgDocBindPipe, NgDocButtonComponent, NgDocCheckboxComponent, NgDocExecutePipe, NgDocIconComponent, NgDocTextComponent, NgDocTextRightDirective, NgDocTooltipDirective, } from '@ng-doc/ui-kit';\nimport { map } from 'rxjs/operators';\nimport { NgDocPlaygroundPropertyComponent } from '../playground-property/playground-property.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nexport class NgDocPlaygroundPropertiesComponent {\n constructor() {\n this.breakpointObserver = inject(BreakpointObserver);\n this.injector = inject(Injector);\n this.ignoreInputs = [];\n this.hideSidePanel = false;\n this.recreateDemo = false;\n this.showResetButton = false;\n this.recreateDemoChange = new EventEmitter();\n this.resetForm = new EventEmitter();\n this.breakpoints = [Breakpoints.XSmall];\n this.propertyControls = [];\n this.contentTypeControl = this.getControlForType('boolean');\n this.observer = this.breakpointObserver\n .observe(this.breakpoints)\n .pipe(map((state) => state.matches));\n }\n ngOnChanges({ properties }) {\n if (properties && this.properties) {\n this.propertyControls = objectKeys(this.properties)\n .filter((key) => this.ignoreInputs?.includes(String(key)) !== true)\n .map((key) => {\n if (this.properties) {\n const property = this.properties[key];\n const typeControl = this.getTypeControl(property);\n if (typeControl) {\n return {\n propertyName: String(key),\n property,\n typeControl,\n };\n }\n }\n return null;\n })\n .filter(isPresent)\n .sort((a, b) => {\n const aOrder = a.typeControl.options?.order;\n const bOrder = b.typeControl.options?.order;\n if (isPresent(aOrder) && isPresent(bOrder)) {\n return aOrder - bOrder;\n }\n if (isPresent(aOrder)) {\n return -1;\n }\n if (isPresent(bOrder)) {\n return 1;\n }\n return a.property.inputName.localeCompare(b.property.inputName);\n });\n }\n }\n getFormControl(controlType, key) {\n return this.form.get(controlType)?.get(key);\n }\n getTypeControl(property) {\n const type = property.type;\n const typeControl = this.getControlForType(type) ??\n this.getControlForTypeAlias(isPlaygroundProperty(property) ? property.options : undefined, property.isManual);\n if (!typeControl && isDevMode()) {\n console.warn(`NgDocPlayground didn't find the control for the @Input \"${property.inputName}\", the type \"${type}\" was not recognized'`);\n }\n return typeControl;\n }\n getControlForType(type) {\n const token = getTokenForType(type);\n return token ? this.injector.get(token) : undefined;\n }\n getControlForTypeAlias(options, isManual) {\n if (options && options.length) {\n let optionsIsValid = true;\n if (!isManual) {\n try {\n // checking that all values are extractable\n options.forEach((item) => extractValueOrThrow(item));\n }\n catch {\n optionsIsValid = false;\n }\n }\n if (optionsIsValid) {\n const token = getTokenForType('NgDocTypeAlias');\n return token ? this.injector.get(token) : undefined;\n }\n }\n return undefined;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocPlaygroundPropertiesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: NgDocPlaygroundPropertiesComponent, isStandalone: true, selector: \"ng-doc-playground-properties\", inputs: { form: \"form\", properties: \"properties\", ignoreInputs: \"ignoreInputs\", dynamicContent: \"dynamicContent\", defaultValues: \"defaultValues\", hideSidePanel: \"hideSidePanel\", recreateDemo: \"recreateDemo\", showResetButton: \"showResetButton\" }, outputs: { recreateDemoChange: \"recreateDemoChange\", resetForm: \"resetForm\" }, usesOnChanges: true, ngImport: i0, template: \"@if (defaultValues) {\\n <div class=\\\"ng-doc-playground-properties-wrapper\\\" [class.vertical]=\\\"observer | async\\\">\\n <div class=\\\"ng-doc-playground-demos\\\">\\n <ng-content></ng-content>\\n </div>\\n @if (!hideSidePanel) {\\n <div class=\\\"ng-doc-playground-properties\\\">\\n <div class=\\\"ng-doc-playground-header\\\">\\n <h4 ng-doc-text>Playground</h4>\\n @if (showResetButton) {\\n <button ng-doc-button color=\\\"alert\\\" (click)=\\\"resetForm.emit()\\\">Reset</button>\\n }\\n </div>\\n <div class=\\\"ng-doc-playground-setting\\\">\\n <ng-doc-checkbox\\n [(ngModel)]=\\\"recreateDemo\\\"\\n (ngModelChange)=\\\"recreateDemoChange.emit($event)\\\">\\n <span\\n ng-doc-text\\n [ngDocTooltip]=\\\"'Recreates demo everytime\\\\none of the input has changed'\\\"\\n [positions]=\\\"['bottom-right', 'left-center']\\\">\\n Recreate\\n <ng-doc-icon icon=\\\"info\\\" ngDocTextRight></ng-doc-icon>\\n </span>\\n </ng-doc-checkbox>\\n </div>\\n <div class=\\\"ng-doc-playground-divider\\\"></div>\\n @if (propertyControls.length) {\\n <h5 class=\\\"ng-doc-title\\\" ng-doc-text>Settings</h5>\\n @for (propertyControl of propertyControls; track propertyControl) {\\n <ng-doc-playground-property\\n [name]=\\\"propertyControl.property.inputName\\\"\\n [property]=\\\"propertyControl.property\\\"\\n [typeControl]=\\\"propertyControl.typeControl\\\"\\n [defaultValue]=\\\"defaultValues[propertyControl.propertyName]\\\"\\n [control]=\\\"\\n getFormControl | bind: this | execute: 'properties' : propertyControl.propertyName\\n \\\">\\n </ng-doc-playground-property>\\n }\\n }\\n @if ((dynamicContent | keyvalue)?.length) {\\n <h5 class=\\\"ng-doc-title\\\" ng-doc-text>Content</h5>\\n @for (content of dynamicContent | keyvalue; track content) {\\n <ng-doc-playground-property\\n [name]=\\\"content.value.label\\\"\\n [property]=\\\"content.value\\\"\\n [typeControl]=\\\"contentTypeControl\\\"\\n [control]=\\\"getFormControl | bind: this | execute: 'content' : content.key\\\">\\n </ng-doc-playground-property>\\n }\\n }\\n </div>\\n }\\n </div>\\n}\\n\", styles: [\":host .ng-doc-playground-properties-wrapper{position:relative;display:flex;align-items:flex-start;gap:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper.vertical{flex-direction:column}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-demos{margin-right:0;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-properties{width:100%}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-demos{position:sticky;display:flex;flex-direction:column;width:100%;min-width:0;z-index:4;top:calc(var(--ng-doc-page-sticky-offset) + var(--ng-doc-base-gutter))}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties{flex-shrink:0;align-self:normal;width:300px;padding:calc(var(--ng-doc-base-gutter) * 2) calc(var(--ng-doc-base-gutter) * 3);background-color:var(--ng-doc-base-1);border-radius:var(--ng-doc-base-gutter);border:1px solid var(--ng-doc-border-color)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties ng-doc-playground-property:not(:last-child){margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-controls{display:flex;justify-content:flex-end}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header{display:flex;align-items:center;justify-content:space-between;height:40px;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header h4{margin:0}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-setting{display:flex;flex-direction:column}:host .ng-doc-playground-properties-wrapper .ng-doc-title{margin-top:0;margin-bottom:calc(var(--ng-doc-base-gutter) + var(--ng-doc-base-gutter) / 2)}:host .ng-doc-playground-divider{margin:calc(var(--ng-doc-base-gutter) * 2) 0;height:1px;background-color:var(--ng-doc-base-2)}\\n\"], dependencies: [{ kind: \"component\", type: NgDocTextComponent, selector: \"[ng-doc-text]\", inputs: [\"size\", \"color\", \"align\", \"absoluteContent\"] }, { kind: \"component\", type: NgDocButtonComponent, selector: \"button[ng-doc-button], a[ng-doc-button], button[ng-doc-button-flat], a[ng-doc-button-flat], button[ng-doc-button-text], a[ng-doc-button-text]\", inputs: [\"size\", \"color\", \"rounded\"] }, { kind: \"component\", type: NgDocCheckboxComponent, selector: \"ng-doc-checkbox\", inputs: [\"color\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { 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: \"component\", type: NgDocIconComponent, selector: \"ng-doc-icon\", inputs: [\"icon\", \"customIcon\", \"size\"] }, { kind: \"directive\", type: NgDocTextRightDirective, selector: \"[ngDocTextRight]\" }, { kind: \"component\", type: NgDocPlaygroundPropertyComponent, selector: \"ng-doc-playground-property\", inputs: [\"name\", \"property\", \"typeControl\", \"control\", \"defaultValue\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: KeyValuePipe, name: \"keyvalue\" }, { kind: \"pipe\", type: NgDocBindPipe, name: \"bind\" }, { kind: \"pipe\", type: NgDocExecutePipe, name: \"execute\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocPlaygroundPropertiesComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ng-doc-playground-properties', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n NgDocTextComponent,\n NgDocButtonComponent,\n NgDocCheckboxComponent,\n FormsModule,\n NgDocTooltipDirective,\n NgDocIconComponent,\n NgDocTextRightDirective,\n NgDocPlaygroundPropertyComponent,\n AsyncPipe,\n KeyValuePipe,\n NgDocBindPipe,\n NgDocExecutePipe,\n ], template: \"@if (defaultValues) {\\n <div class=\\\"ng-doc-playground-properties-wrapper\\\" [class.vertical]=\\\"observer | async\\\">\\n <div class=\\\"ng-doc-playground-demos\\\">\\n <ng-content></ng-content>\\n </div>\\n @if (!hideSidePanel) {\\n <div class=\\\"ng-doc-playground-properties\\\">\\n <div class=\\\"ng-doc-playground-header\\\">\\n <h4 ng-doc-text>Playground</h4>\\n @if (showResetButton) {\\n <button ng-doc-button color=\\\"alert\\\" (click)=\\\"resetForm.emit()\\\">Reset</button>\\n }\\n </div>\\n <div class=\\\"ng-doc-playground-setting\\\">\\n <ng-doc-checkbox\\n [(ngModel)]=\\\"recreateDemo\\\"\\n (ngModelChange)=\\\"recreateDemoChange.emit($event)\\\">\\n <span\\n ng-doc-text\\n [ngDocTooltip]=\\\"'Recreates demo everytime\\\\none of the input has changed'\\\"\\n [positions]=\\\"['bottom-right', 'left-center']\\\">\\n Recreate\\n <ng-doc-icon icon=\\\"info\\\" ngDocTextRight></ng-doc-icon>\\n </span>\\n </ng-doc-checkbox>\\n </div>\\n <div class=\\\"ng-doc-playground-divider\\\"></div>\\n @if (propertyControls.length) {\\n <h5 class=\\\"ng-doc-title\\\" ng-doc-text>Settings</h5>\\n @for (propertyControl of propertyControls; track propertyControl) {\\n <ng-doc-playground-property\\n [name]=\\\"propertyControl.property.inputName\\\"\\n [property]=\\\"propertyControl.property\\\"\\n [typeControl]=\\\"propertyControl.typeControl\\\"\\n [defaultValue]=\\\"defaultValues[propertyControl.propertyName]\\\"\\n [control]=\\\"\\n getFormControl | bind: this | execute: 'properties' : propertyControl.propertyName\\n \\\">\\n </ng-doc-playground-property>\\n }\\n }\\n @if ((dynamicContent | keyvalue)?.length) {\\n <h5 class=\\\"ng-doc-title\\\" ng-doc-text>Content</h5>\\n @for (content of dynamicContent | keyvalue; track content) {\\n <ng-doc-playground-property\\n [name]=\\\"content.value.label\\\"\\n [property]=\\\"content.value\\\"\\n [typeControl]=\\\"contentTypeControl\\\"\\n [control]=\\\"getFormControl | bind: this | execute: 'content' : content.key\\\">\\n </ng-doc-playground-property>\\n }\\n }\\n </div>\\n }\\n </div>\\n}\\n\", styles: [\":host .ng-doc-playground-properties-wrapper{position:relative;display:flex;align-items:flex-start;gap:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper.vertical{flex-direction:column}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-demos{margin-right:0;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-properties{width:100%}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-demos{position:sticky;display:flex;flex-direction:column;width:100%;min-width:0;z-index:4;top:calc(var(--ng-doc-page-sticky-offset) + var(--ng-doc-base-gutter))}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties{flex-shrink:0;align-self:normal;width:300px;padding:calc(var(--ng-doc-base-gutter) * 2) calc(var(--ng-doc-base-gutter) * 3);background-color:var(--ng-doc-base-1);border-radius:var(--ng-doc-base-gutter);border:1px solid var(--ng-doc-border-color)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties ng-doc-playground-property:not(:last-child){margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-controls{display:flex;justify-content:flex-end}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header{display:flex;align-items:center;justify-content:space-between;height:40px;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header h4{margin:0}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-setting{display:flex;flex-direction:column}:host .ng-doc-playground-properties-wrapper .ng-doc-title{margin-top:0;margin-bottom:calc(var(--ng-doc-base-gutter) + var(--ng-doc-base-gutter) / 2)}:host .ng-doc-playground-divider{margin:calc(var(--ng-doc-base-gutter) * 2) 0;height:1px;background-color:var(--ng-doc-base-2)}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { form: [{\n type: Input\n }], properties: [{\n type: Input\n }], ignoreInputs: [{\n type: Input\n }], dynamicContent: [{\n type: Input\n }], defaultValues: [{\n type: Input\n }], hideSidePanel: [{\n type: Input\n }], recreateDemo: [{\n type: Input\n }], showResetButton: [{\n type: Input\n }], recreateDemoChange: [{\n type: Output\n }], resetForm: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLXByb3BlcnRpZXMvcGxheWdyb3VuZC1wcm9wZXJ0aWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLXByb3BlcnRpZXMvcGxheWdyb3VuZC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFDdkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUVOLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUVULE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBTTlELE9BQU8sRUFDTCxhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVB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QUNoQyxTQUFTO3dCQUNULFlBQVk7d0JBQ1osYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCOztzQkFVQSxLQUFLOztzQkFHTCxLQUFLOztzQkFHTCxLQUFLOztzQkFHTCxLQUFLOztzQkFHTCxLQUFLOztzQkFHTCxLQUFLOztzQkFHTCxLQUFLOztzQkFHTCxLQUFLOztzQkFHTCxNQUFNOztzQkFHTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cywgQnJlYWtwb2ludFN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIEtleVZhbHVlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgaXNEZXZNb2RlLFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzUGxheWdyb3VuZFByb3BlcnR5IH0gZnJvbSAnQG5nLWRvYy9hcHAvaGVscGVycyc7XG5pbXBvcnQgeyBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wgfSBmcm9tICdAbmctZG9jL2FwcC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldFRva2VuRm9yVHlwZSB9IGZyb20gJ0BuZy1kb2MvYXBwL3Byb3ZpZGVycy90eXBlLWNvbnRyb2wnO1xuaW1wb3J0IHsgZXh0cmFjdFZhbHVlT3JUaHJvdyB9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL2V4dHJhY3QtdmFsdWUnO1xuaW1wb3J0IHsgaXNQcmVzZW50IH0gZnJvbSAnQG5nLWRvYy9jb3JlL2hlbHBlcnMvaXMtcHJlc2VudCc7XG5pbXBvcnQgeyBvYmplY3RLZXlzIH0gZnJvbSAnQG5nLWRvYy9jb3JlL2hlbHBlcnMvb2JqZWN0LWtleXMnO1xuaW1wb3J0IHtcbiAgTmdEb2NQbGF5Z3JvdW5kQ29udGVudCxcbiAgTmdEb2NQbGF5Z3JvdW5kUHJvcGVydGllcyxcbiAgTmdEb2NQbGF5Z3JvdW5kUHJvcGVydHksXG59IGZyb20gJ0BuZy1kb2MvY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gIE5nRG9jQmluZFBpcGUsXG4gIE5nRG9jQnV0dG9uQ29tcG9uZW50LFxuICBOZ0RvY0NoZWNrYm94Q29tcG9uZW50LFxuICBOZ0RvY0V4ZWN1dGVQaXBlLFxuICBOZ0RvY0ljb25Db21wb25lbnQsXG4gIE5nRG9jVGV4dENvbXBvbmVudCxcbiAgTmdEb2NUZXh0UmlnaHREaXJlY3RpdmUsXG4gIE5nRG9jVG9vbHRpcERpcmVjdGl2ZSxcbn0gZnJvbSAnQG5nLWRvYy91aS1raXQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOZ0RvY1BsYXlncm91bmRGb3JtIH0gZnJvbSAnLi4vcGxheWdyb3VuZC1mb3JtJztcbmltcG9ydCB7IE5nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29tcG9uZW50IH0gZnJvbSAnLi4vcGxheWdyb3VuZC1wcm9wZXJ0eS9wbGF5Z3JvdW5kLXByb3BlcnR5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eUNvbnRyb2wgfSBmcm9tICcuLi9wbGF5Z3JvdW5kLXByb3BlcnR5LWNvbnRyb2wnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1kb2MtcGxheWdyb3VuZC1wcm9wZXJ0aWVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BsYXlncm91bmQtcHJvcGVydGllcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BsYXlncm91bmQtcHJvcGVydGllcy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIE5nRG9jVGV4dENvbXBvbmVudCxcbiAgICBOZ0RvY0J1dHRvbkNvbXBvbmVudCxcbiAgICBOZ0RvY0NoZWNrYm94Q29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE5nRG9jVG9vbHRpcERpcmVjdGl2ZSxcbiAgICBOZ0RvY0ljb25Db21wb25lbnQsXG4gICAgTmdEb2NUZXh0UmlnaHREaXJlY3RpdmUsXG4gICAgTmdEb2NQbGF5Z3JvdW5kUHJvcGVydHlDb21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIEtleVZhbHVlUGlwZSxcbiAgICBOZ0RvY0JpbmRQaXBlLFxuICAgIE5nRG9jRXhlY3V0ZVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXNDb21wb25lbnQ8XG4gIFAgZXh0ZW5kcyBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0aWVzLFxuICBDIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgTmdEb2NQbGF5Z3JvdW5kQ29udGVudD4sXG4+IGltcGxlbWVudHMgT25DaGFuZ2VzXG57XG4gIHByb3RlY3RlZCByZWFkb25seSBicmVha3BvaW50T2JzZXJ2ZXIgPSBpbmplY3QoQnJlYWtwb2ludE9ic2VydmVyKTtcbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgQElucHV0KClcbiAgZm9ybSE6IEZvcm1Hcm91cDxOZ0RvY1BsYXlncm91bmRGb3JtPjtcblxuICBASW5wdXQoKVxuICBwcm9wZXJ0aWVzPzogUDtcblxuICBASW5wdXQoKVxuICBpZ25vcmVJbnB1dHM/OiBzdHJpbmdbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIGR5bmFtaWNDb250ZW50PzogQztcblxuICBASW5wdXQoKVxuICBkZWZhdWx0VmFsdWVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgQElucHV0KClcbiAgaGlkZVNpZGVQYW5lbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHJlY3JlYXRlRGVtbzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dSZXNldEJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICByZWNyZWF0ZURlbW9DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVzZXRGb3JtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgYnJlYWtwb2ludHM6IHN0cmluZ1tdID0gW0JyZWFrcG9pbnRzLlhTbWFsbF07XG4gIHJlYWRvbmx5IG9ic2VydmVyOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHByb3RlY3RlZCBwcm9wZXJ0eUNvbnRyb2xzOiBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eUNvbnRyb2xbXSA9IFtdO1xuICBwcm90ZWN0ZWQgY29udGVudFR5cGVDb250cm9sPzogTmdEb2NQcm92aWRlZFR5cGVDb250cm9sID0gdGhpcy5nZXRDb250cm9sRm9yVHlwZSgnYm9vbGVhbicpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMub2JzZXJ2ZXIgPSB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclxuICAgICAgLm9ic2VydmUodGhpcy5icmVha3BvaW50cylcbiAgICAgIC5waXBlKG1hcCgoc3RhdGU6IEJyZWFrcG9pbnRTdGF0ZSkgPT4gc3RhdGUubWF0Y2hlcykpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoeyBwcm9wZXJ0aWVzIH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAocHJvcGVydGllcyAmJiB0aGlzLnByb3BlcnRpZXMpIHtcbiAgICAgIHRoaXMucHJvcGVydHlDb250cm9scyA9IG9iamVjdEtleXModGhpcy5wcm9wZXJ0aWVzKVxuICAgICAgICAuZmlsdGVyKChrZXk6IGtleW9mIFApID0+IHRoaXMuaWdub3JlSW5wdXRzPy5pbmNsdWRlcyhTdHJpbmcoa2V5KSkgIT09IHRydWUpXG4gICAgICAgIC5tYXAoKGtleToga2V5b2YgUCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5OiBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eSA9IHRoaXMucHJvcGVydGllc1trZXldO1xuICAgICAgICAgICAgY29uc3QgdHlwZUNvbnRyb2w6IE5nRG9jUHJvdmlkZWRUeXBlQ29udHJvbCB8IHVuZGVmaW5lZCA9IHRoaXMuZ2V0VHlwZUNvbnRyb2wocHJvcGVydHkpO1xuXG4gICAgICAgICAgICBpZiAodHlwZUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWU6IFN0cmluZyhrZXkpLFxuICAgICAgICAgICAgICAgIHByb3BlcnR5LFxuICAgICAgICAgICAgICAgIHR5cGVDb250cm9sLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKGlzUHJlc2VudClcbiAgICAgICAgLnNvcnQoKGE6IE5nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29udHJvbCwgYjogTmdEb2NQbGF5Z3JvdW5kUHJvcGVydHlDb250cm9sKSA9PiB7XG4gICAgICAgICAgY29uc3QgYU9yZGVyOiBudW1iZXIgfCB1bmRlZmluZWQgPSBhLnR5cGVDb250cm9sLm9wdGlvbnM/Lm9yZGVyO1xuICAgICAgICAgIGNvbnN0IGJPcmRlcjogbnVtYmVyIHwgdW5kZWZpbmVkID0gYi50eXBlQ29udHJvbC5vcHRpb25zPy5vcmRlcjtcblxuICAgICAgICAgIGlmIChpc1ByZXNlbnQoYU9yZGVyKSAmJiBpc1ByZXNlbnQoYk9yZGVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIGFPcmRlciAtIGJPcmRlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzUHJlc2VudChhT3JkZXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc1ByZXNlbnQoYk9yZGVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhLnByb3BlcnR5LmlucHV0TmFtZS5sb2NhbGVDb21wYXJlKGIucHJvcGVydHkuaW5wdXROYW1lKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Rm9ybUNvbnRyb2woY29udHJvbFR5cGU6IGtleW9mIHR5cGVvZiB0aGlzLmZvcm0uY29udHJvbHMsIGtleTogc3RyaW5nKTogRm9ybUNvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KGNvbnRyb2xUeXBlKT8uZ2V0KGtleSkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBwcml2YXRlIGdldFR5cGVDb250cm9sKHByb3BlcnR5OiBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eSk6IE5nRG9jUHJvdmlkZWRUeXBlQ29udHJvbCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdHlwZTogc3RyaW5nID0gcHJvcGVydHkudHlwZTtcbiAgICBjb25zdCB0eXBlQ29udHJvbDogTmdEb2NQcm92aWRlZFR5cGVDb250cm9sIHwgdW5kZWZpbmVkID1cbiAgICAgIHRoaXMuZ2V0Q29udHJvbEZvclR5cGUodHlwZSkgPz9cbiAgICAgIHRoaXMuZ2V0Q29udHJvbEZvclR5cGVBbGlhcyhcbiAgICAgICAgaXNQbGF5Z3JvdW5kUHJvcGVydHkocHJvcGVydHkpID8gcHJvcGVydHkub3B0aW9ucyA6IHVuZGVmaW5lZCxcbiAgICAgICAgcHJvcGVydHkuaXNNYW51YWwsXG4gICAgICApO1xuXG4gICAgaWYgKCF0eXBlQ29udHJvbCAmJiBpc0Rldk1vZGUoKSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTmdEb2NQbGF5Z3JvdW5kIGRpZG4ndCBmaW5kIHRoZSBjb250cm9sIGZvciB0aGUgQElucHV0IFwiJHtwcm9wZXJ0eS5pbnB1dE5hbWV9XCIsIHRoZSB0eXBlIFwiJHt0eXBlfVwiIHdhcyBub3QgcmVjb2duaXplZCdgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZUNvbnRyb2w7XG4gIH1cblxuICBwcml2YXRlIGdldENvbnRyb2xGb3JUeXBlKHR5cGU6IHN0cmluZyk6IE5nRG9jUHJvdmlkZWRUeXBlQ29udHJvbCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdG9rZW46IEluamVjdGlvblRva2VuPE5nRG9jUHJvdmlkZWRUeXBlQ29udHJvbD4gfCB1bmRlZmluZWQgPSBnZXRUb2tlbkZvclR5cGUodHlwZSk7XG5cbiAgICByZXR1cm4gdG9rZW4gPyB0aGlzLmluamVjdG9yLmdldCh0b2tlbikgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldENvbnRyb2xGb3JUeXBlQWxpYXMoXG4gICAgb3B0aW9ucz86IHN0cmluZ1tdLFxuICAgIGlzTWFudWFsPzogYm9vbGVhbixcbiAgKTogTmdEb2NQcm92aWRlZFR5cGVDb250cm9sIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmxlbmd0aCkge1xuICAgICAgbGV0IG9wdGlvbnNJc1ZhbGlkOiBib29sZWFuID0gdHJ1ZTtcblxuICAgICAgaWYgKCFpc01hbnVhbCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIGNoZWNraW5nIHRoYXQgYWxsIHZhbHVlcyBhcmUgZXh0cmFjdGFibGVcbiAgICAgICAgICBvcHRpb25zLmZvckVhY2goKGl0ZW06IHN0cmluZykgPT4gZXh0cmFjdFZhbHVlT3JUaHJvdyhpdGVtKSk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIG9wdGlvbnNJc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnNJc1ZhbGlkKSB7XG4gICAgICAgIGNvbnN0IHRva2VuOiBJbmplY3Rpb25Ub2tlbjxOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2w+IHwgdW5kZWZpbmVkID1cbiAgICAgICAgICBnZXRUb2tlbkZvclR5cGUoJ05nRG9jVHlwZUFsaWFzJyk7XG5cbiAgICAgICAgcmV0dXJuIHRva2VuID8gdGhpcy5pbmplY3Rvci5nZXQodG9rZW4pIDogdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsIkBpZiAoZGVmYXVsdFZhbHVlcykge1xuICA8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtcHJvcGVydGllcy13cmFwcGVyXCIgW2NsYXNzLnZlcnRpY2FsXT1cIm9ic2VydmVyIHwgYXN5bmNcIj5cbiAgICA8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtZGVtb3NcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKCFoaWRlU2lkZVBhbmVsKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtcHJvcGVydGllc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtaGVhZGVyXCI+XG4gICAgICAgICAgPGg0IG5nLWRvYy10ZXh0PlBsYXlncm91bmQ8L2g0PlxuICAgICAgICAgIEBpZiAoc2hvd1Jlc2V0QnV0dG9uKSB7XG4gICAgICAgICAgICA8YnV0dG9uIG5nLWRvYy1idXR0b24gY29sb3I9XCJhbGVydFwiIChjbGljayk9XCJyZXNldEZvcm0uZW1pdCgpXCI+UmVzZXQ8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtc2V0dGluZ1wiPlxuICAgICAgICAgIDxuZy1kb2MtY2hlY2tib3hcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicmVjcmVhdGVEZW1vXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInJlY3JlYXRlRGVtb0NoYW5nZS5lbWl0KCRldmVudClcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIG5nLWRvYy10ZXh0XG4gICAgICAgICAgICAgIFtuZ0RvY1Rvb2x0aXBdPVwiJ1JlY3JlYXRlcyBkZW1vIGV2ZXJ5dGltZVxcbm9uZSBvZiB0aGUgaW5wdXQgaGFzIGNoYW5nZWQnXCJcbiAgICAgICAgICAgICAgW3Bvc2l0aW9uc109XCJbJ2JvdHRvbS1yaWdodCcsICdsZWZ0LWNlbnRlciddXCI+XG4gICAgICAgICAgICAgIFJlY3JlYXRlXG4gICAgICAgICAgICAgIDxuZy1kb2MtaWNvbiBpY29uPVwiaW5mb1wiIG5nRG9jVGV4dFJpZ2h0PjwvbmctZG9jLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9uZy1kb2MtY2hlY2tib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICBAaWYgKHByb3BlcnR5Q29udHJvbHMubGVuZ3RoKSB7XG4gICAgICAgICAgPGg1IGNsYXNzPVwibmctZG9jLXRpdGxlXCIgbmctZG9jLXRleHQ+U2V0dGluZ3M8L2g1PlxuICAgICAgICAgIEBmb3IgKHByb3BlcnR5Q29udHJvbCBvZiBwcm9wZXJ0eUNvbnRyb2xzOyB0cmFjayBwcm9wZXJ0eUNvbnRyb2wpIHtcbiAgICAgICAgICAgIDxuZy1kb2MtcGxheWdyb3VuZC1wcm9wZXJ0eVxuICAgICAgICAgICAgICBbbmFtZV09XCJwcm9wZXJ0eUNvbnRyb2wucHJvcGVydHkuaW5wdXROYW1lXCJcbiAgICAgICAgICAgICAgW3Byb3BlcnR5XT1cInByb3BlcnR5Q29udHJvbC5wcm9wZXJ0eVwiXG4gICAgICAgICAgICAgIFt0eXBlQ29udHJvbF09XCJwcm9wZXJ0eUNvbnRyb2wudHlwZUNvbnRyb2xcIlxuICAgICAgICAgICAgICBbZGVmYXVsdFZhbHVlXT1cImRlZmF1bHRWYWx1ZXNbcHJvcGVydHlDb250cm9sLnByb3BlcnR5TmFtZV1cIlxuICAgICAgICAgICAgICBbY29udHJvbF09XCJcbiAgICAgICAgICAgICAgICBnZXRGb3JtQ29udHJvbCB8IGJpbmQ6IHRoaXMgfCBleGVjdXRlOiAncHJvcGVydGllcycgOiBwcm9wZXJ0eUNvbnRyb2wucHJvcGVydHlOYW1lXG4gICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgPC9uZy1kb2MtcGxheWdyb3VuZC1wcm9wZXJ0eT5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmICgoZHluYW1pY0NvbnRlbnQgfCBrZXl2YWx1ZSk/Lmxlbmd0aCkge1xuICAgICAgICAgIDxoNSBjbGFzcz1cIm5nLWRvYy10aXRsZVwiIG5nLWRvYy10ZXh0PkNvbnRlbnQ8L2g1PlxuICAgICAgICAgIEBmb3IgKGNvbnRlbnQgb2YgZHluYW1pY0NvbnRlbnQgfCBrZXl2YWx1ZTsgdHJhY2sgY29udGVudCkge1xuICAgICAgICAgICAgPG5nLWRvYy1wbGF5Z3JvdW5kLXByb3BlcnR5XG4gICAgICAgICAgICAgIFtuYW1lXT1cImNvbnRlbnQudmFsdWUubGFiZWxcIlxuICAgICAgICAgICAgICBbcHJvcGVydHldPVwiY29udGVudC52YWx1ZVwiXG4gICAgICAgICAgICAgIFt0eXBlQ29udHJvbF09XCJjb250ZW50VHlwZUNvbnRyb2xcIlxuICAgICAgICAgICAgICBbY29udHJvbF09XCJnZXRGb3JtQ29udHJvbCB8IGJpbmQ6IHRoaXMgfCBleGVjdXRlOiAnY29udGVudCcgOiBjb250ZW50LmtleVwiPlxuICAgICAgICAgICAgPC9uZy1kb2MtcGxheWdyb3VuZC1wcm9wZXJ0eT5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=","import { ChangeDetectionStrategy, Component, inject, Input, } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { NgDocRootPage } from '@ng-doc/app/classes/root-page';\nimport { isSameObject } from '@ng-doc/core/helpers/is-same-object';\nimport { objectKeys } from '@ng-doc/core/helpers/object-keys';\nimport { NgDocAsArrayPipe } from '@ng-doc/ui-kit';\nimport { NgDocPlaygroundDemoComponent } from './playground-demo/playground-demo.component';\nimport { NgDocPlaygroundPropertiesComponent } from './playground-properties/playground-properties.component';\nimport * as i0 from \"@angular/core\";\nexport class NgDocPlaygroundComponent {\n constructor() {\n this.rootPage = inject(NgDocRootPage);\n this.formBuilder = inject(FormBuilder);\n this.id = '';\n this.pipeName = '';\n this.selectors = [];\n this.options = {};\n this.recreateDemo = false;\n this.defaultProperties = {};\n this.defaultContent = {};\n }\n ngOnChanges({ options }) {\n if (options) {\n // Join configuration with options\n this.configuration = Object.assign({}, this.rootPage.page?.playgrounds?.[this.id], this.options);\n }\n }\n ngAfterViewInit() {\n this.defaultProperties = this.getPropertiesFormValues();\n this.defaultContent = this.getContentFormValues();\n const propertiesForm = this.formBuilder.group(this.defaultProperties);\n const contentForm = this.formBuilder.group(this.defaultContent);\n this.formGroup = this.formBuilder.group({\n properties: propertiesForm,\n content: contentForm,\n });\n // `patchValue` is needed to set `undefined` values, otherwise they will be ignored by the Angular form\n this.formGroup.patchValue({\n properties: Object.assign({}, this.defaultProperties, this.configuration.inputs),\n content: this.defaultContent,\n });\n }\n isDefaultState() {\n if (!this.formGroup) {\n return false;\n }\n return (isSameObject(this.formGroup.value.properties ?? {}, this.defaultValues ?? {}) &&\n isSameObject(this.formGroup.value.content ?? {}, this.defaultContent ?? {}));\n }\n getPropertiesFormValues() {\n const formValues = objectKeys(this.properties ?? {}).reduce((controls, key) => {\n if (this.properties) {\n controls[key] = this.defaultValues ? this.defaultValues[key] : undefined;\n }\n return controls;\n }, {});\n return Object.assign({}, formValues, this.configuration.defaults);\n }\n getContentFormValues() {\n return objectKeys(this.configuration?.content ?? {}).reduce((controls, key) => {\n if (this.configuration?.content) {\n controls[key] = false;\n }\n return controls;\n }, {});\n }\n resetForm() {\n this.formGroup.reset({}, { emitEvent: false });\n this.formGroup?.patchValue({\n properties: this.defaultProperties,\n content: this.defaultContent,\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocPlaygroundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: NgDocPlaygroundComponent, isStandalone: true, selector: \"ng-doc-playground\", inputs: { id: \"id\", pipeName: \"pipeName\", selectors: \"selectors\", properties: \"properties\", options: \"options\" }, usesOnChanges: true, ngImport: i0, template: \"@if (configuration) {\\n <ng-doc-playground-properties\\n [form]=\\\"formGroup\\\"\\n [properties]=\\\"properties\\\"\\n [ignoreInputs]=\\\"configuration.hiddenInputs\\\"\\n [dynamicContent]=\\\"configuration.content\\\"\\n [hideSidePanel]=\\\"configuration.hideSidePanel ?? false\\\"\\n [defaultValues]=\\\"defaultValues\\\"\\n [showResetButton]=\\\"!isDefaultState()\\\"\\n [(recreateDemo)]=\\\"recreateDemo\\\"\\n (resetForm)=\\\"resetForm()\\\">\\n @for (selector of configuration.selectors ?? selectors | asArray; track selector) {\\n <ng-doc-playground-demo\\n [id]=\\\"id\\\"\\n [selector]=\\\"selector\\\"\\n [properties]=\\\"properties\\\"\\n [configuration]=\\\"configuration\\\"\\n [recreateDemo]=\\\"recreateDemo\\\"\\n [form]=\\\"formGroup\\\"\\n [expanded]=\\\"configuration.expanded ?? false\\\">\\n </ng-doc-playground-demo>\\n }\\n @if (pipeName) {\\n <ng-doc-playground-demo\\n [id]=\\\"id\\\"\\n [pipeName]=\\\"pipeName\\\"\\n [properties]=\\\"properties\\\"\\n [configuration]=\\\"configuration\\\"\\n [recreateDemo]=\\\"recreateDemo\\\"\\n [form]=\\\"formGroup\\\">\\n </ng-doc-playground-demo>\\n }\\n </ng-doc-playground-properties>\\n}\\n\", styles: [\":host{display:block;margin:var(--ng-doc-playground-margin)}\\n\"], dependencies: [{ kind: \"component\", type: NgDocPlaygroundPropertiesComponent, selector: \"ng-doc-playground-properties\", inputs: [\"form\", \"properties\", \"ignoreInputs\", \"dynamicContent\", \"defaultValues\", \"hideSidePanel\", \"recreateDemo\", \"showResetButton\"], outputs: [\"recreateDemoChange\", \"resetForm\"] }, { kind: \"component\", type: NgDocPlaygroundDemoComponent, selector: \"ng-doc-playground-demo\", inputs: [\"id\", \"pipeName\", \"selector\", \"configuration\", \"properties\", \"recreateDemo\", \"form\", \"expanded\"] }, { kind: \"pipe\", type: NgDocAsArrayPipe, name: \"asArray\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocPlaygroundComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ng-doc-playground', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgDocPlaygroundPropertiesComponent, NgDocPlaygroundDemoComponent, NgDocAsArrayPipe], template: \"@if (configuration) {\\n <ng-doc-playground-properties\\n [form]=\\\"formGroup\\\"\\n [properties]=\\\"properties\\\"\\n [ignoreInputs]=\\\"configuration.hiddenInputs\\\"\\n [dynamicContent]=\\\"configuration.content\\\"\\n [hideSidePanel]=\\\"configuration.hideSidePanel ?? false\\\"\\n [defaultValues]=\\\"defaultValues\\\"\\n [showResetButton]=\\\"!isDefaultState()\\\"\\n [(recreateDemo)]=\\\"recreateDemo\\\"\\n (resetForm)=\\\"resetForm()\\\">\\n @for (selector of configuration.selectors ?? selectors | asArray; track selector) {\\n <ng-doc-playground-demo\\n [id]=\\\"id\\\"\\n [selector]=\\\"selector\\\"\\n [properties]=\\\"properties\\\"\\n [configuration]=\\\"configuration\\\"\\n [recreateDemo]=\\\"recreateDemo\\\"\\n [form]=\\\"formGroup\\\"\\n [expanded]=\\\"configuration.expanded ?? false\\\">\\n </ng-doc-playground-demo>\\n }\\n @if (pipeName) {\\n <ng-doc-playground-demo\\n [id]=\\\"id\\\"\\n [pipeName]=\\\"pipeName\\\"\\n [properties]=\\\"properties\\\"\\n [configuration]=\\\"configuration\\\"\\n [recreateDemo]=\\\"recreateDemo\\\"\\n [form]=\\\"formGroup\\\">\\n </ng-doc-playground-demo>\\n }\\n </ng-doc-playground-properties>\\n}\\n\", styles: [\":host{display:block;margin:var(--ng-doc-playground-margin)}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { id: [{\n type: Input,\n args: [{ required: true }]\n }], pipeName: [{\n type: Input\n }], selectors: [{\n type: Input\n }], properties: [{\n type: Input\n }], options: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BsYXlncm91bmQvcGxheWdyb3VuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BsYXlncm91bmQvcGxheWdyb3VuZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQU05RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUUzRixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx5REFBeUQsQ0FBQzs7QUFTN0csTUFBTSxPQUFPLHdCQUF3QjtJQStCbkM7UUExQmlCLGFBQVEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFHbkQsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUdoQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBR3RCLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFNekIsWUFBTyxHQUEyQixFQUFFLENBQUM7UUFFckMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFLdEIsc0JBQWlCLEdBQTRCLEVBQUUsQ0FBQztRQUNoRCxtQkFBYyxHQUE0QixFQUFFLENBQUM7SUFFdEMsQ0FBQztJQUVoQixXQUFXLENBQUMsRUFBRSxPQUFPLEVBQWlCO1FBQ3BDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixrQ0FBa0M7WUFDbEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUNoQyxFQUFFLEVBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUMxQyxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUVsRCxNQUFNLGNBQWMsR0FBYyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNqRixNQUFNLFdBQVcsR0FBYyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFM0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUN0QyxVQUFVLEVBQUUsY0FBYztZQUMxQixPQUFPLEVBQUUsV0FBVztTQUNyQixDQUFDLENBQUM7UUFDSCx1R0FBdUc7UUFDdkcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7WUFDeEIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUNoRixPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLGNBQWM7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPLENBQ0wsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7WUFDN0UsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsQ0FDNUUsQ0FBQztJQUNKLENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsTUFBTSxVQUFVLEdBQTRCLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDbEYsQ0FBQyxRQUFpQyxFQUFFLEdBQVcsRUFBRSxFQUFFO1lBQ2pELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQixRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzNFLENBQUM7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLEVBQ0QsRUFBNkIsQ0FDOUIsQ0FBQztRQUVGLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ3pELENBQUMsUUFBaUMsRUFBRSxHQUFXLEVBQUUsRUFBRTtZQUNqRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQ2hDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDeEIsQ0FBQztZQUVELE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUMsRUFDRCxFQUE4QixDQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQztZQUN6QixVQUFVLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUNsQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0EzR1Usd0JBQXdCO21HQUF4Qix3QkFBd0Isb05DL0JyQywwcUNBa0NBLHVIRExZLGtDQUFrQyw4UEFBRSw0QkFBNEIseUtBQUUsZ0JBQWdCOzs0RkFFakYsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsa0NBQWtDLEVBQUUsNEJBQTRCLEVBQUUsZ0JBQWdCLENBQUM7O3NCQVU1RixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTs7c0JBR3hCLEtBQUs7O3NCQUdMLEtBQUs7O3NCQUdMLEtBQUs7O3NCQUdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nRG9jUm9vdFBhZ2UgfSBmcm9tICdAbmctZG9jL2FwcC9jbGFzc2VzL3Jvb3QtcGFnZSc7XG5pbXBvcnQgeyBpc1NhbWVPYmplY3QgfSBmcm9tICdAbmctZG9jL2NvcmUvaGVscGVycy9pcy1zYW1lLW9iamVjdCc7XG5pbXBvcnQgeyBvYmplY3RLZXlzIH0gZnJvbSAnQG5nLWRvYy9jb3JlL2hlbHBlcnMvb2JqZWN0LWtleXMnO1xuaW1wb3J0IHtcbiAgTmdEb2NQbGF5Z3JvdW5kQ29uZmlnLFxuICBOZ0RvY1BsYXlncm91bmRPcHRpb25zLFxuICBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0aWVzLFxufSBmcm9tICdAbmctZG9jL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOZ0RvY0FzQXJyYXlQaXBlIH0gZnJvbSAnQG5nLWRvYy91aS1raXQnO1xuXG5pbXBvcnQgeyBOZ0RvY1BsYXlncm91bmREZW1vQ29tcG9uZW50IH0gZnJvbSAnLi9wbGF5Z3JvdW5kLWRlbW8vcGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0RvY1BsYXlncm91bmRGb3JtIH0gZnJvbSAnLi9wbGF5Z3JvdW5kLWZvcm0nO1xuaW1wb3J0IHsgTmdEb2NQbGF5Z3JvdW5kUHJvcGVydGllc0NvbXBvbmVudCB9IGZyb20gJy4vcGxheWdyb3VuZC1wcm9wZXJ0aWVzL3BsYXlncm91bmQtcHJvcGVydGllcy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1kb2MtcGxheWdyb3VuZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wbGF5Z3JvdW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGxheWdyb3VuZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW05nRG9jUGxheWdyb3VuZFByb3BlcnRpZXNDb21wb25lbnQsIE5nRG9jUGxheWdyb3VuZERlbW9Db21wb25lbnQsIE5nRG9jQXNBcnJheVBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ0RvY1BsYXlncm91bmRDb21wb25lbnQ8XG4gICAgVCBleHRlbmRzIE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXMgPSBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0aWVzLFxuICA+XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgcm9vdFBhZ2UgPSBpbmplY3QoTmdEb2NSb290UGFnZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIGlkOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBwaXBlTmFtZTogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgc2VsZWN0b3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHByb3BlcnRpZXM/OiBUO1xuXG4gIEBJbnB1dCgpXG4gIG9wdGlvbnM6IE5nRG9jUGxheWdyb3VuZE9wdGlvbnMgPSB7fTtcblxuICByZWNyZWF0ZURlbW86IGJvb2xlYW4gPSBmYWxzZTtcbiAgZm9ybUdyb3VwITogRm9ybUdyb3VwPE5nRG9jUGxheWdyb3VuZEZvcm0+O1xuICBkZWZhdWx0VmFsdWVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbmZpZ3VyYXRpb24hOiBOZ0RvY1BsYXlncm91bmRDb25maWc7XG5cbiAgcHJpdmF0ZSBkZWZhdWx0UHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgcHJpdmF0ZSBkZWZhdWx0Q29udGVudDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkNoYW5nZXMoeyBvcHRpb25zIH06IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgLy8gSm9pbiBjb25maWd1cmF0aW9uIHdpdGggb3B0aW9uc1xuICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sXG4gICAgICAgIHRoaXMucm9vdFBhZ2UucGFnZT8ucGxheWdyb3VuZHM/Llt0aGlzLmlkXSxcbiAgICAgICAgdGhpcy5vcHRpb25zLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kZWZhdWx0UHJvcGVydGllcyA9IHRoaXMuZ2V0UHJvcGVydGllc0Zvcm1WYWx1ZXMoKTtcbiAgICB0aGlzLmRlZmF1bHRDb250ZW50ID0gdGhpcy5nZXRDb250ZW50Rm9ybVZhbHVlcygpO1xuXG4gICAgY29uc3QgcHJvcGVydGllc0Zvcm06IEZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAodGhpcy5kZWZhdWx0UHJvcGVydGllcyk7XG4gICAgY29uc3QgY29udGVudEZvcm06IEZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAodGhpcy5kZWZhdWx0Q29udGVudCk7XG5cbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgcHJvcGVydGllczogcHJvcGVydGllc0Zvcm0sXG4gICAgICBjb250ZW50OiBjb250ZW50Rm9ybSxcbiAgICB9KTtcbiAgICAvLyBgcGF0Y2hWYWx1ZWAgaXMgbmVlZGVkIHRvIHNldCBgdW5kZWZpbmVkYCB2YWx1ZXMsIG90aGVyd2lzZSB0aGV5IHdpbGwgYmUgaWdub3JlZCBieSB0aGUgQW5ndWxhciBmb3JtXG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICBwcm9wZXJ0aWVzOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRlZmF1bHRQcm9wZXJ0aWVzLCB0aGlzLmNvbmZpZ3VyYXRpb24uaW5wdXRzKSxcbiAgICAgIGNvbnRlbnQ6IHRoaXMuZGVmYXVsdENvbnRlbnQsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNEZWZhdWx0U3RhdGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICBpc1NhbWVPYmplY3QodGhpcy5mb3JtR3JvdXAudmFsdWUucHJvcGVydGllcyA/PyB7fSwgdGhpcy5kZWZhdWx0VmFsdWVzID8/IHt9KSAmJlxuICAgICAgaXNTYW1lT2JqZWN0KHRoaXMuZm9ybUdyb3VwLnZhbHVlLmNvbnRlbnQgPz8ge30sIHRoaXMuZGVmYXVsdENvbnRlbnQgPz8ge30pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UHJvcGVydGllc0Zvcm1WYWx1ZXMoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIGNvbnN0IGZvcm1WYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gb2JqZWN0S2V5cyh0aGlzLnByb3BlcnRpZXMgPz8ge30pLnJlZHVjZShcbiAgICAgIChjb250cm9sczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICBjb250cm9sc1trZXldID0gdGhpcy5kZWZhdWx0VmFsdWVzID8gdGhpcy5kZWZhdWx0VmFsdWVzW2tleV0gOiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udHJvbHM7XG4gICAgICB9LFxuICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgKTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBmb3JtVmFsdWVzLCB0aGlzLmNvbmZpZ3VyYXRpb24uZGVmYXVsdHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250ZW50Rm9ybVZhbHVlcygpOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiB7XG4gICAgcmV0dXJuIG9iamVjdEtleXModGhpcy5jb25maWd1cmF0aW9uPy5jb250ZW50ID8/IHt9KS5yZWR1Y2UoXG4gICAgICAoY29udHJvbHM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+LCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uPy5jb250ZW50KSB7XG4gICAgICAgICAgY29udHJvbHNba2V5XSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRyb2xzO1xuICAgICAgfSxcbiAgICAgIHt9IGFzIFJlY29yZDxrZXlvZiBULCBib29sZWFuPixcbiAgICApO1xuICB9XG5cbiAgcmVzZXRGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KHt9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy5mb3JtR3JvdXA/LnBhdGNoVmFsdWUoe1xuICAgICAgcHJvcGVydGllczogdGhpcy5kZWZhdWx0UHJvcGVydGllcyxcbiAgICAgIGNvbnRlbnQ6IHRoaXMuZGVmYXVsdENvbnRlbnQsXG4gICAgfSk7XG4gIH1cbn1cbiIsIkBpZiAoY29uZmlndXJhdGlvbikge1xuICA8bmctZG9jLXBsYXlncm91bmQtcHJvcGVydGllc1xuICAgIFtmb3JtXT1cImZvcm1Hcm91cFwiXG4gICAgW3Byb3BlcnRpZXNdPVwicHJvcGVydGllc1wiXG4gICAgW2lnbm9yZUlucHV0c109XCJjb25maWd1cmF0aW9uLmhpZGRlbklucHV0c1wiXG4gICAgW2R5bmFtaWNDb250ZW50XT1cImNvbmZpZ3VyYXRpb24uY29udGVudFwiXG4gICAgW2hpZGVTaWRlUGFuZWxdPVwiY29uZmlndXJhdGlvbi5oaWRlU2lkZVBhbmVsID8/IGZhbHNlXCJcbiAgICBbZGVmYXVsdFZhbHVlc109XCJkZWZhdWx0VmFsdWVzXCJcbiAgICBbc2hvd1Jlc2V0QnV0dG9uXT1cIiFpc0RlZmF1bHRTdGF0ZSgpXCJcbiAgICBbKHJlY3JlYXRlRGVtbyldPVwicmVjcmVhdGVEZW1vXCJcbiAgICAocmVzZXRGb3JtKT1cInJlc2V0Rm9ybSgpXCI+XG4gICAgQGZvciAoc2VsZWN0b3Igb2YgY29uZmlndXJhdGlvbi5zZWxlY3RvcnMgPz8gc2VsZWN0b3JzIHwgYXNBcnJheTsgdHJhY2sgc2VsZWN0b3IpIHtcbiAgICAgIDxuZy1kb2MtcGxheWdyb3VuZC1kZW1vXG4gICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgIFtzZWxlY3Rvcl09XCJzZWxlY3RvclwiXG4gICAgICAgIFtwcm9wZXJ0aWVzXT1cInByb3BlcnRpZXNcIlxuICAgICAgICBbY29uZmlndXJhdGlvbl09XCJjb25maWd1cmF0aW9uXCJcbiAgICAgICAgW3JlY3JlYXRlRGVtb109XCJyZWNyZWF0ZURlbW9cIlxuICAgICAgICBbZm9ybV09XCJmb3JtR3JvdXBcIlxuICAgICAgICBbZXhwYW5kZWRdPVwiY29uZmlndXJhdGlvbi5leHBhbmRlZCA/PyBmYWxzZVwiPlxuICAgICAgPC9uZy1kb2MtcGxheWdyb3VuZC1kZW1vPlxuICAgIH1cbiAgICBAaWYgKHBpcGVOYW1lKSB7XG4gICAgICA8bmctZG9jLXBsYXlncm91bmQtZGVtb1xuICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICBbcGlwZU5hbWVdPVwicGlwZU5hbWVcIlxuICAgICAgICBbcHJvcGVydGllc109XCJwcm9wZXJ0aWVzXCJcbiAgICAgICAgW2NvbmZpZ3VyYXRpb25dPVwiY29uZmlndXJhdGlvblwiXG4gICAgICAgIFtyZWNyZWF0ZURlbW9dPVwicmVjcmVhdGVEZW1vXCJcbiAgICAgICAgW2Zvcm1dPVwiZm9ybUdyb3VwXCI+XG4gICAgICA8L25nLWRvYy1wbGF5Z3JvdW5kLWRlbW8+XG4gICAgfVxuICA8L25nLWRvYy1wbGF5Z3JvdW5kLXByb3BlcnRpZXM+XG59XG4iXX0=","import { ChangeDetectorRef, Directive, inject, Input, } from '@angular/core';\nimport { extractFunctionDefaults } from '@ng-doc/core/helpers/extract-function-defaults';\nimport { Subject, take } from 'rxjs';\nimport { NgDocPlaygroundComponent } from './playground.component';\nimport * as i0 from \"@angular/core\";\n/**\n * Base class for playgrounds components.\n */\nexport class NgDocBasePlayground {\n static { this.selector = 'unknown'; }\n constructor(playgroundInstance) {\n this.playgroundInstance = playgroundInstance;\n this.properties = {};\n this.actionData = {};\n this.content = {};\n this.defaultValues = {};\n this.reattached = new Subject();\n this.playgroundContainer = inject(NgDocPlaygroundComponent);\n this.changeDetectorRef = inject(ChangeDetectorRef);\n this.changeDetectorRef.detach();\n }\n get onReattached() {\n return this.reattached.pipe(take(1));\n }\n ngOnInit() {\n /*\n * Extract default values from playground properties. We do this in `ngOnInit` because in this case\n * input values provided from the template are not initialized yet, and we can read default values instead.\n */\n if (this.playground) {\n this.defaultValues = Object.keys(this.playground).reduce((values, key) => {\n if (this.playground) {\n try {\n values[key] =\n // @ts-expect-error we do not know the type of the playground\n typeof this.playground[key] === 'function'\n ? // @ts-expect-error we do not know the type of the playground\n this.playground[key]()\n : // @ts-expect-error we do not know the type of the playground\n this.playground[key];\n }\n catch (e) {\n // we do catch here because some of the playground properties can be getters and throw an error\n }\n }\n return values;\n }, {});\n }\n else if (this.playgroundInstance) {\n const defaults = extractFunctionDefaults(this.playgroundInstance.prototype.transform);\n this.defaultValues = Object.keys(this.playgroundContainer.properties ?? {}).reduce((def, key, i) => {\n // we do +1 because the first argument is the `value` of the transform function\n def[key] = defaults[i + 1];\n return def;\n }, {});\n }\n else {\n throw new Error('Playground is not defined or initialized');\n }\n if (!this.playgroundContainer.defaultValues) {\n this.playgroundContainer.defaultValues = this.defaultValues;\n }\n /*\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 Promise.resolve().then(() => {\n this.changeDetectorRef.reattach();\n this.reattached.next();\n });\n }\n get data() {\n return Object.assign({}, this.configData, this.actionData);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocBasePlayground, deps: \"invalid\", target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.15\", type: NgDocBasePlayground, isStandalone: true, inputs: { properties: \"properties\", actionData: \"actionData\", content: \"content\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocBasePlayground, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: undefined }], propDecorators: { properties: [{\n type: Input\n }], actionData: [{\n type: Input\n }], content: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wbGF5Z3JvdW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY29tcG9uZW50cy9wbGF5Z3JvdW5kL2Jhc2UtcGxheWdyb3VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxHQUlOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR3pGLE9BQU8sRUFBYyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUVsRTs7R0FFRztBQUVILE1BQU0sT0FBZ0IsbUJBQW1CO2FBQ3ZCLGFBQVEsR0FBVyxTQUFTLEFBQXBCLENBQXFCO0lBcUI3QyxZQUE4QixrQkFBeUM7UUFBekMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF1QjtRQWZ2RSxlQUFVLEdBQXdCLEVBQUUsQ0FBQztRQUdyQyxlQUFVLEdBQTRCLEVBQUUsQ0FBQztRQUd6QyxZQUFPLEdBQVEsRUFBRSxDQUFDO1FBRWxCLGtCQUFhLEdBQTRCLEVBQUUsQ0FBQztRQUVwQyxlQUFVLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFaEQsd0JBQW1CLEdBQTZCLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQy9FLHNCQUFpQixHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUd6RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFFBQVE7UUFDTjs7O1dBR0c7UUFDSCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FDdEQsQ0FBQyxNQUErQixFQUFFLEdBQVcsRUFBRSxFQUFFO2dCQUMvQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDO3dCQUNILE1BQU0sQ0FBQyxHQUFHLENBQUM7NEJBQ1QsNkRBQTZEOzRCQUM3RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssVUFBVTtnQ0FDeEMsQ0FBQyxDQUFDLDZEQUE2RDtvQ0FDN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQ0FDeEIsQ0FBQyxDQUFDLDZEQUE2RDtvQ0FDN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDN0IsQ0FBQztvQkFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO3dCQUNYLCtGQUErRjtvQkFDakcsQ0FBQztnQkFDSCxDQUFDO2dCQUVELE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUMsRUFDRCxFQUFFLENBQ0gsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ25DLE1BQU0sUUFBUSxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFdEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUNoRixDQUFDLEdBQTRCLEVBQUUsR0FBVyxFQUFFLENBQVMsRUFBRSxFQUFFO2dCQUN2RCwrRUFBK0U7Z0JBQy9FLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUUzQixPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUMsRUFDRCxFQUFFLENBQ0gsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUM5RCxDQUFDO1FBRUQ7OztlQUdPO1FBQ1AsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3RCxDQUFDOytHQXhGbUIsbUJBQW1CO21HQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRHhDLFNBQVM7O3NCQU9QLEtBQUs7O3NCQUdMLEtBQUs7O3NCQUdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFR5cGUsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0cmFjdEZ1bmN0aW9uRGVmYXVsdHMgfSBmcm9tICdAbmctZG9jL2NvcmUvaGVscGVycy9leHRyYWN0LWZ1bmN0aW9uLWRlZmF1bHRzJztcbmltcG9ydCB7IE5nRG9jUGxheWdyb3VuZENvbmZpZyB9IGZyb20gJ0BuZy1kb2MvY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSAnQG5nLWRvYy9jb3JlL3R5cGVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2UgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTmdEb2NQbGF5Z3JvdW5kQ29tcG9uZW50IH0gZnJvbSAnLi9wbGF5Z3JvdW5kLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgcGxheWdyb3VuZHMgY29tcG9uZW50cy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmdEb2NCYXNlUGxheWdyb3VuZCBpbXBsZW1lbnRzIFBpY2s8TmdEb2NQbGF5Z3JvdW5kQ29uZmlnLCAnZGF0YSc+LCBPbkluaXQge1xuICBzdGF0aWMgcmVhZG9ubHkgc2VsZWN0b3I6IHN0cmluZyA9ICd1bmtub3duJztcbiAgYWJzdHJhY3QgcmVhZG9ubHkgcGxheWdyb3VuZD86IFR5cGU8YW55PjtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWY7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGNvbmZpZ0RhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblxuICBASW5wdXQoKVxuICBhY3Rpb25EYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG4gIEBJbnB1dCgpXG4gIGNvbnRlbnQ6IGFueSA9IHt9O1xuXG4gIGRlZmF1bHRWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgcHJpdmF0ZSByZWF0dGFjaGVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHBsYXlncm91bmRDb250YWluZXI6IE5nRG9jUGxheWdyb3VuZENvbXBvbmVudCA9IGluamVjdChOZ0RvY1BsYXlncm91bmRDb21wb25lbnQpO1xuICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJpdmF0ZSBwbGF5Z3JvdW5kSW5zdGFuY2U/OiBDb25zdHJ1Y3Rvcjx1bmtub3duPikge1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0YWNoKCk7XG4gIH1cblxuICBnZXQgb25SZWF0dGFjaGVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnJlYXR0YWNoZWQucGlwZSh0YWtlKDEpKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8qXG4gICAgICogRXh0cmFjdCBkZWZhdWx0IHZhbHVlcyBmcm9tIHBsYXlncm91bmQgcHJvcGVydGllcy4gV2UgZG8gdGhpcyBpbiBgbmdPbkluaXRgIGJlY2F1c2UgaW4gdGhpcyBjYXNlXG4gICAgICogaW5wdXQgdmFsdWVzIHByb3ZpZGVkIGZyb20gdGhlIHRlbXBsYXRlIGFyZSBub3QgaW5pdGlhbGl6ZWQgeWV0LCBhbmQgd2UgY2FuIHJlYWQgZGVmYXVsdCB2YWx1ZXMgaW5zdGVhZC5cbiAgICAgKi9cbiAgICBpZiAodGhpcy5wbGF5Z3JvdW5kKSB7XG4gICAgICB0aGlzLmRlZmF1bHRWYWx1ZXMgPSBPYmplY3Qua2V5cyh0aGlzLnBsYXlncm91bmQpLnJlZHVjZShcbiAgICAgICAgKHZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMucGxheWdyb3VuZCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgdmFsdWVzW2tleV0gPVxuICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3Igd2UgZG8gbm90IGtub3cgdGhlIHR5cGUgb2YgdGhlIHBsYXlncm91bmRcbiAgICAgICAgICAgICAgICB0eXBlb2YgdGhpcy5wbGF5Z3JvdW5kW2tleV0gPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICAgID8gLy8gQHRzLWV4cGVjdC1lcnJvciB3ZSBkbyBub3Qga25vdyB0aGUgdHlwZSBvZiB0aGUgcGxheWdyb3VuZFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBsYXlncm91bmRba2V5XSgpXG4gICAgICAgICAgICAgICAgICA6IC8vIEB0cy1leHBlY3QtZXJyb3Igd2UgZG8gbm90IGtub3cgdGhlIHR5cGUgb2YgdGhlIHBsYXlncm91bmRcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wbGF5Z3JvdW5kW2tleV07XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIC8vIHdlIGRvIGNhdGNoIGhlcmUgYmVjYXVzZSBzb21lIG9mIHRoZSBwbGF5Z3JvdW5kIHByb3BlcnRpZXMgY2FuIGJlIGdldHRlcnMgYW5kIHRocm93IGFuIGVycm9yXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICAgICAgfSxcbiAgICAgICAge30sXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wbGF5Z3JvdW5kSW5zdGFuY2UpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRzID0gZXh0cmFjdEZ1bmN0aW9uRGVmYXVsdHModGhpcy5wbGF5Z3JvdW5kSW5zdGFuY2UucHJvdG90eXBlLnRyYW5zZm9ybSk7XG5cbiAgICAgIHRoaXMuZGVmYXVsdFZhbHVlcyA9IE9iamVjdC5rZXlzKHRoaXMucGxheWdyb3VuZENvbnRhaW5lci5wcm9wZXJ0aWVzID8/IHt9KS5yZWR1Y2UoXG4gICAgICAgIChkZWY6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBrZXk6IHN0cmluZywgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgLy8gd2UgZG8gKzEgYmVjYXVzZSB0aGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlIGB2YWx1ZWAgb2YgdGhlIHRyYW5zZm9ybSBmdW5jdGlvblxuICAgICAgICAgIGRlZltrZXldID0gZGVmYXVsdHNbaSArIDFdO1xuXG4gICAgICAgICAgcmV0dXJuIGRlZjtcbiAgICAgICAgfSxcbiAgICAgICAge30sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsYXlncm91bmQgaXMgbm90IGRlZmluZWQgb3IgaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMucGxheWdyb3VuZENvbnRhaW5lci5kZWZhdWx0VmFsdWVzKSB7XG4gICAgICB0aGlzLnBsYXlncm91bmRDb250YWluZXIuZGVmYXVsdFZhbHVlcyA9IHRoaXMuZGVmYXVsdFZhbHVlcztcbiAgICB9XG5cbiAgICAvKlxuICAgICAgICAgICAgIFRoaXMgaXMgYSBoYWNrIGp1c3QgdG8gd2FpdCBmb3IgdGhlIHBsYXlncm91bmQgY29udGFpbmVyIHRvIGJlIGluaXRpYWxpemVkIGFuZCBvbmx5IHRoZW5cbiAgICAgICAgICAgICBhdHRhY2ggdGhlIGNoYW5nZSBkZXRlY3RvciB0byBoYXZlIGNvcnJlY3QgaW5wdXRzIHZhbHVlcy5cbiAgICAgICAgICovXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLnJlYXR0YWNoKCk7XG4gICAgICB0aGlzLnJlYXR0YWNoZWQubmV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGRhdGEoKTogYW55IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWdEYXRhLCB0aGlzLmFjdGlvbkRhdGEpO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZG9jLWFwcC1jb21wb25lbnRzLXBsYXlncm91bmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BsYXlncm91bmQvbmctZG9jLWFwcC1jb21wb25lbnRzLXBsYXlncm91bmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"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 {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n DestroyRef,\n inject,\n InjectionToken,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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 {\n buildPlaygroundDemoPipeTemplate,\n buildPlaygroundDemoTemplate,\n} from '@ng-doc/core/helpers/build-playground-demo-template';\nimport { objectKeys } from '@ng-doc/core/helpers/object-keys';\nimport { stringify } from '@ng-doc/core/helpers/stringify';\nimport { NgDocPlaygroundConfig, NgDocPlaygroundProperties } from '@ng-doc/core/interfaces';\nimport { Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\nimport { NgDocBasePlayground } from '../base-playground';\nimport { NgDocPlaygroundForm } from '../playground-form';\n\n@Component({\n selector: 'ng-doc-playground-demo',\n templateUrl: './playground-demo.component.html',\n styleUrls: ['./playground-demo.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgDocDemoDisplayerComponent],\n})\nexport class NgDocPlaygroundDemoComponent<\n T extends NgDocPlaygroundProperties = NgDocPlaygroundProperties,\n >\n implements OnChanges, OnDestroy\n{\n @Input()\n id: string = '';\n\n @Input()\n pipeName: string = '';\n\n @Input()\n selector: string = '';\n\n @Input()\n configuration?: NgDocPlaygroundConfig;\n\n @Input()\n properties?: T;\n\n @Input()\n recreateDemo: boolean = false;\n\n @Input()\n form!: FormGroup<NgDocPlaygroundForm>;\n\n @Input()\n expanded: boolean = false;\n\n @ViewChild('demoOutlet', { static: true, read: ViewContainerRef })\n demoOutlet?: ViewContainerRef;\n\n playgroundDemo?: typeof NgDocBasePlayground;\n\n protected code = '';\n\n protected readonly injector = inject(Injector);\n protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n protected readonly destroyRef = inject(DestroyRef);\n\n private demoRef?: ComponentRef<NgDocBasePlayground>;\n private readonly unsubscribe$: Subject<void> = new Subject<void>();\n\n async ngOnChanges({ form, id }: SimpleChanges): Promise<void> {\n if (form || id) {\n this.unsubscribe$.next();\n\n const demoInjector: InjectionToken<Array<typeof NgDocBasePlayground>> | undefined =\n getPlaygroundDemoToken(this.id);\n\n if (demoInjector) {\n const demos: Array<typeof NgDocBasePlayground> = this.injector.get(demoInjector, []);\n\n this.playgroundDemo = demos.find(\n (demo: typeof NgDocBasePlayground) =>\n demo.selector === this.selector || demo.selector === this.pipeName,\n );\n }\n\n await this.updateDemo();\n\n this.form?.valueChanges\n .pipe(\n takeUntil(this.unsubscribe$),\n startWith(this.form?.value),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((data: NgDocFormPartialValue<typeof this.form>) => this.updateDemo(data));\n }\n }\n\n private async updateDemo(data?: NgDocFormPartialValue<typeof this.form>): Promise<void> {\n if (this.recreateDemo || !this.demoRef) {\n this.createDemo();\n }\n\n if (data) {\n this.demoRef?.setInput('properties', data.properties ?? {});\n this.demoRef?.setInput('content', data.content ?? {});\n this.demoRef?.setInput('actionData', this.configuration?.data ?? {});\n\n if (this.recreateDemo) {\n this.demoRef?.instance.onReattached.subscribe(() => {\n this.demoRef?.changeDetectorRef.detectChanges();\n });\n }\n }\n\n await this.updateCodeView();\n }\n\n private createDemo(): void {\n if (this.playgroundDemo) {\n this.demoRef?.destroy();\n this.demoRef = this.demoOutlet?.createComponent(\n this.playgroundDemo as unknown as Type<NgDocBasePlayground>,\n );\n this.demoRef?.changeDetectorRef.markForCheck();\n }\n }\n\n private async updateCodeView(): Promise<void> {\n const template: string = this.pipeName\n ? buildPlaygroundDemoPipeTemplate(\n this.configuration?.template ?? '',\n this.pipeName,\n this.getActiveContent(),\n this.getPipeActiveInputs(),\n )\n : buildPlaygroundDemoTemplate(\n this.configuration?.template ?? '',\n this.selector,\n this.getActiveContent(),\n this.getActiveInputs(),\n );\n\n this.code = await formatHtml(template);\n this.changeDetectorRef.markForCheck();\n }\n\n private getActiveContent(): Record<string, string> {\n const formData: Record<string, boolean> =\n (this.form?.controls.content.value as Record<string, boolean>) ?? {};\n\n return objectKeys(formData).reduce((result: Record<string, string>, key: string) => {\n result[key] = formData[key] ? this.configuration?.content?.[key].template ?? '' : '';\n\n return result;\n }, {});\n }\n\n private getActiveInputs(): Record<string, string> {\n const formData: Record<string, unknown> =\n (this.form?.controls.properties.value as Record<string, unknown>) ?? {};\n\n return objectKeys(formData).reduce((result: Record<string, string>, key: string) => {\n const inputName = this.properties?.[key]?.inputName ?? key;\n const value: unknown = formData[key];\n const property: unknown | undefined = this.demoRef?.instance?.defaultValues[key];\n\n if (property !== value) {\n result[inputName] = stringify(value).replace(/\"/g, `'`);\n }\n\n return result;\n }, {});\n }\n\n private getPipeActiveInputs(): Record<string, string> {\n const formData: Record<string, unknown> =\n (this.form?.controls.properties.value as Record<string, unknown>) ?? {};\n let changedInputIndex: number = -1;\n\n return objectKeys(formData)\n .map((key: string, i: number) => {\n const value: unknown = formData[key];\n const defaultValue: unknown | undefined = this.demoRef?.instance?.defaultValues[key];\n\n if (defaultValue !== value) {\n changedInputIndex = i;\n }\n\n return key;\n })\n .slice(0, changedInputIndex + 1)\n .reduce((result: Record<string, string>, key: string) => {\n result[key] = stringify(formData[key]).replace(/\"/g, `'`);\n\n return result;\n }, {});\n }\n\n ngOnDestroy(): void {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n}\n","<ng-doc-demo-displayer [code]=\"code\" [border]=\"false\" [expanded]=\"expanded\" language=\"angular-html\">\n <ng-container #demoOutlet></ng-container>\n</ng-doc-demo-displayer>\n","import {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n HostBinding,\n Input,\n OnChanges,\n SimpleChanges,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { isPlaygroundProperty } from '@ng-doc/app/helpers';\nimport {\n NgDocProvidedTypeControl,\n NgDocTypeControl,\n NgDocTypeControlProviderOptions,\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 selector: 'ng-doc-playground-property',\n templateUrl: './playground-property.component.html',\n styleUrls: ['./playground-property.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgDocLabelComponent, NgDocTooltipDirective, NgDocSanitizeHtmlPipe],\n})\nexport class NgDocPlaygroundPropertyComponent implements OnChanges {\n @Input()\n name: string = '';\n\n @Input()\n property?: NgDocPlaygroundProperty | NgDocPlaygroundContent;\n\n @Input()\n typeControl?: NgDocProvidedTypeControl;\n\n @Input()\n control?: FormControl;\n\n @Input()\n defaultValue?: unknown;\n\n @ViewChild('propertyOutlet', { read: ViewContainerRef, static: true })\n propertyOutlet?: ViewContainerRef;\n\n protected option?: NgDocTypeControlProviderOptions;\n private propertyTypeControl?: ComponentRef<NgDocTypeControl>;\n\n ngOnChanges({ property, control, typeControl, defaultValue }: SimpleChanges): void {\n if ((property || control || typeControl || defaultValue) && this.property && this.typeControl) {\n this.propertyTypeControl?.destroy();\n this.propertyTypeControl = undefined;\n\n if (this.typeControl && this.propertyOutlet) {\n this.propertyTypeControl = this.propertyOutlet.createComponent(this.typeControl.control);\n this.propertyTypeControl.instance.name = this.name;\n this.propertyTypeControl.instance.description = this.tooltipContent;\n this.propertyTypeControl.instance.options = isPlaygroundProperty(this.property)\n ? this.property.options\n : undefined;\n this.propertyTypeControl.instance.default = this.defaultValue;\n this.propertyTypeControl.instance.isManual = isPlaygroundProperty(this.property)\n ? this.property.isManual\n : undefined;\n this.propertyTypeControl.instance.writeValue(this.control?.value);\n\n this.option = this.typeControl.options;\n }\n\n if (this.control) {\n this.control?.registerOnChange((value: string) =>\n this.propertyTypeControl?.instance?.writeValue(value),\n );\n this.propertyTypeControl?.instance.registerOnChange((value: unknown) =>\n this.control?.setValue(value),\n );\n this.propertyTypeControl?.instance.registerOnTouched(() => this.control?.markAsTouched());\n }\n }\n }\n\n @HostBinding('attr.data-has-property-control')\n get hasPropertyControl(): boolean {\n return !!this.propertyTypeControl;\n }\n\n get tooltipContent(): string {\n return this.property && isPlaygroundProperty(this.property)\n ? this.property.description ?? ''\n : '';\n }\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 } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n InjectionToken,\n Injector,\n Input,\n isDevMode,\n OnChanges,\n Output,\n SimpleChanges,\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 } from '@ng-doc/core/helpers/extract-value';\nimport { isPresent } from '@ng-doc/core/helpers/is-present';\nimport { objectKeys } from '@ng-doc/core/helpers/object-keys';\nimport {\n NgDocPlaygroundContent,\n NgDocPlaygroundProperties,\n NgDocPlaygroundProperty,\n} from '@ng-doc/core/interfaces';\nimport {\n NgDocBindPipe,\n NgDocButtonComponent,\n NgDocCheckboxComponent,\n NgDocExecutePipe,\n NgDocIconComponent,\n NgDocTextComponent,\n NgDocTextRightDirective,\n NgDocTooltipDirective,\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 selector: 'ng-doc-playground-properties',\n templateUrl: './playground-properties.component.html',\n styleUrls: ['./playground-properties.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgDocTextComponent,\n NgDocButtonComponent,\n NgDocCheckboxComponent,\n FormsModule,\n NgDocTooltipDirective,\n NgDocIconComponent,\n NgDocTextRightDirective,\n NgDocPlaygroundPropertyComponent,\n AsyncPipe,\n KeyValuePipe,\n NgDocBindPipe,\n NgDocExecutePipe,\n ],\n})\nexport class NgDocPlaygroundPropertiesComponent<\n P extends NgDocPlaygroundProperties,\n C extends Record<string, NgDocPlaygroundContent>,\n> implements OnChanges\n{\n protected readonly breakpointObserver = inject(BreakpointObserver);\n private injector = inject(Injector);\n\n @Input()\n form!: FormGroup<NgDocPlaygroundForm>;\n\n @Input()\n properties?: P;\n\n @Input()\n ignoreInputs?: string[] = [];\n\n @Input()\n dynamicContent?: C;\n\n @Input()\n defaultValues?: Record<string, unknown>;\n\n @Input()\n hideSidePanel: boolean = false;\n\n @Input()\n recreateDemo: boolean = false;\n\n @Input()\n showResetButton: boolean = false;\n\n @Output()\n recreateDemoChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Output()\n resetForm: EventEmitter<void> = new EventEmitter<void>();\n\n readonly breakpoints: string[] = [Breakpoints.XSmall];\n readonly observer: Observable<boolean>;\n\n protected propertyControls: NgDocPlaygroundPropertyControl[] = [];\n protected contentTypeControl?: NgDocProvidedTypeControl = this.getControlForType('boolean');\n\n constructor() {\n this.observer = this.breakpointObserver\n .observe(this.breakpoints)\n .pipe(map((state: BreakpointState) => state.matches));\n }\n\n ngOnChanges({ properties }: SimpleChanges): void {\n if (properties && this.properties) {\n this.propertyControls = objectKeys(this.properties)\n .filter((key: keyof P) => this.ignoreInputs?.includes(String(key)) !== true)\n .map((key: keyof P) => {\n if (this.properties) {\n const property: NgDocPlaygroundProperty = this.properties[key];\n const typeControl: NgDocProvidedTypeControl | undefined = this.getTypeControl(property);\n\n if (typeControl) {\n return {\n propertyName: String(key),\n property,\n typeControl,\n };\n }\n }\n\n return null;\n })\n .filter(isPresent)\n .sort((a: NgDocPlaygroundPropertyControl, b: NgDocPlaygroundPropertyControl) => {\n const aOrder: number | undefined = a.typeControl.options?.order;\n const bOrder: number | undefined = b.typeControl.options?.order;\n\n if (isPresent(aOrder) && isPresent(bOrder)) {\n return aOrder - bOrder;\n }\n if (isPresent(aOrder)) {\n return -1;\n }\n if (isPresent(bOrder)) {\n return 1;\n }\n return a.property.inputName.localeCompare(b.property.inputName);\n });\n }\n }\n\n getFormControl(controlType: keyof NgDocPlaygroundForm, key: string): FormControl {\n return this.form.get(controlType)?.get(key) as FormControl;\n }\n\n private getTypeControl(property: NgDocPlaygroundProperty): NgDocProvidedTypeControl | undefined {\n const type: string = property.type;\n const typeControl: NgDocProvidedTypeControl | undefined =\n this.getControlForType(type) ??\n this.getControlForTypeAlias(\n isPlaygroundProperty(property) ? property.options : undefined,\n property.isManual,\n );\n\n if (!typeControl && isDevMode()) {\n console.warn(\n `NgDocPlayground didn't find the control for the @Input \"${property.inputName}\", the type \"${type}\" was not recognized'`,\n );\n }\n\n return typeControl;\n }\n\n private getControlForType(type: string): NgDocProvidedTypeControl | undefined {\n const token: InjectionToken<NgDocProvidedTypeControl> | undefined = getTokenForType(type);\n\n return token ? this.injector.get(token) : undefined;\n }\n\n private getControlForTypeAlias(\n options?: string[],\n isManual?: boolean,\n ): NgDocProvidedTypeControl | undefined {\n if (options && options.length) {\n let optionsIsValid: boolean = true;\n\n if (!isManual) {\n try {\n // checking that all values are extractable\n options.forEach((item: string) => extractValueOrThrow(item));\n } catch {\n optionsIsValid = false;\n }\n }\n\n if (optionsIsValid) {\n const token: InjectionToken<NgDocProvidedTypeControl> | undefined =\n getTokenForType('NgDocTypeAlias');\n\n return token ? this.injector.get(token) : undefined;\n }\n }\n\n return undefined;\n }\n}\n","@if (defaultValues) {\n <div class=\"ng-doc-playground-properties-wrapper\" [class.vertical]=\"observer | async\">\n <div class=\"ng-doc-playground-demos\">\n <ng-content></ng-content>\n </div>\n @if (!hideSidePanel) {\n <div class=\"ng-doc-playground-properties\">\n <div class=\"ng-doc-playground-header\">\n <h4 ng-doc-text>Playground</h4>\n @if (showResetButton) {\n <button ng-doc-button color=\"alert\" (click)=\"resetForm.emit()\">Reset</button>\n }\n </div>\n <div class=\"ng-doc-playground-setting\">\n <ng-doc-checkbox\n [(ngModel)]=\"recreateDemo\"\n (ngModelChange)=\"recreateDemoChange.emit($event)\">\n <span\n ng-doc-text\n [ngDocTooltip]=\"'Recreates demo everytime\\none of the input has changed'\"\n [positions]=\"['bottom-right', 'left-center']\">\n Recreate\n <ng-doc-icon icon=\"info\" ngDocTextRight></ng-doc-icon>\n </span>\n </ng-doc-checkbox>\n </div>\n <div class=\"ng-doc-playground-divider\"></div>\n @if (propertyControls.length) {\n <h5 class=\"ng-doc-title\" ng-doc-text>Settings</h5>\n @for (propertyControl of propertyControls; track propertyControl) {\n <ng-doc-playground-property\n [name]=\"propertyControl.property.inputName\"\n [property]=\"propertyControl.property\"\n [typeControl]=\"propertyControl.typeControl\"\n [defaultValue]=\"defaultValues[propertyControl.propertyName]\"\n [control]=\"\n getFormControl | bind: this | execute: 'properties' : propertyControl.propertyName\n \">\n </ng-doc-playground-property>\n }\n }\n @if ((dynamicContent | keyvalue)?.length) {\n <h5 class=\"ng-doc-title\" ng-doc-text>Content</h5>\n @for (content of dynamicContent | keyvalue; track content) {\n <ng-doc-playground-property\n [name]=\"content.value.label\"\n [property]=\"content.value\"\n [typeControl]=\"contentTypeControl\"\n [control]=\"getFormControl | bind: this | execute: 'content' : content.key\">\n </ng-doc-playground-property>\n }\n }\n </div>\n }\n </div>\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n OnChanges,\n SimpleChanges,\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/helpers/is-same-object';\nimport { objectKeys } from '@ng-doc/core/helpers/object-keys';\nimport {\n NgDocPlaygroundConfig,\n NgDocPlaygroundOptions,\n NgDocPlaygroundProperties,\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 selector: 'ng-doc-playground',\n templateUrl: './playground.component.html',\n styleUrls: ['./playground.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgDocPlaygroundPropertiesComponent, NgDocPlaygroundDemoComponent, NgDocAsArrayPipe],\n})\nexport class NgDocPlaygroundComponent<\n T extends NgDocPlaygroundProperties = NgDocPlaygroundProperties,\n >\n implements OnChanges, AfterViewInit\n{\n private readonly rootPage = inject(NgDocRootPage);\n private readonly formBuilder = inject(FormBuilder);\n\n @Input({ required: true })\n id: string = '';\n\n @Input()\n pipeName: string = '';\n\n @Input()\n selectors: string[] = [];\n\n @Input()\n properties?: T;\n\n @Input()\n options: NgDocPlaygroundOptions = {};\n\n recreateDemo: boolean = false;\n formGroup!: FormGroup<NgDocPlaygroundForm>;\n defaultValues?: Record<string, unknown>;\n configuration!: NgDocPlaygroundConfig;\n\n private defaultProperties: Record<string, unknown> = {};\n private defaultContent: Record<string, boolean> = {};\n\n constructor() {}\n\n ngOnChanges({ options }: SimpleChanges) {\n if (options) {\n // Join configuration with options\n this.configuration = Object.assign(\n {},\n this.rootPage.page?.playgrounds?.[this.id],\n this.options,\n );\n }\n }\n\n ngAfterViewInit(): void {\n this.defaultProperties = this.getPropertiesFormValues();\n this.defaultContent = this.getContentFormValues();\n\n const propertiesForm: FormGroup = this.formBuilder.group(this.defaultProperties);\n const contentForm: FormGroup = this.formBuilder.group(this.defaultContent);\n\n this.formGroup = this.formBuilder.group({\n properties: propertiesForm,\n content: contentForm,\n });\n // `patchValue` is needed to set `undefined` values, otherwise they will be ignored by the Angular form\n this.formGroup.patchValue({\n properties: Object.assign({}, this.defaultProperties, this.configuration.inputs),\n content: this.defaultContent,\n });\n }\n\n protected isDefaultState(): boolean {\n if (!this.formGroup) {\n return false;\n }\n\n return (\n isSameObject(this.formGroup.value.properties ?? {}, this.defaultValues ?? {}) &&\n isSameObject(this.formGroup.value.content ?? {}, this.defaultContent ?? {})\n );\n }\n\n private getPropertiesFormValues(): Record<string, unknown> {\n const formValues: Record<string, unknown> = objectKeys(this.properties ?? {}).reduce(\n (controls: Record<string, unknown>, key: string) => {\n if (this.properties) {\n controls[key] = this.defaultValues ? this.defaultValues[key] : undefined;\n }\n\n return controls;\n },\n {} as Record<string, unknown>,\n );\n\n return Object.assign({}, formValues, this.configuration.defaults);\n }\n\n private getContentFormValues(): Record<string, boolean> {\n return objectKeys(this.configuration?.content ?? {}).reduce(\n (controls: Record<string, boolean>, key: string) => {\n if (this.configuration?.content) {\n controls[key] = false;\n }\n\n return controls;\n },\n {} as Record<keyof T, boolean>,\n );\n }\n\n resetForm(): void {\n this.formGroup.reset({}, { emitEvent: false });\n this.formGroup?.patchValue({\n properties: this.defaultProperties,\n content: this.defaultContent,\n });\n }\n}\n","@if (configuration) {\n <ng-doc-playground-properties\n [form]=\"formGroup\"\n [properties]=\"properties\"\n [ignoreInputs]=\"configuration.hiddenInputs\"\n [dynamicContent]=\"configuration.content\"\n [hideSidePanel]=\"configuration.hideSidePanel ?? false\"\n [defaultValues]=\"defaultValues\"\n [showResetButton]=\"!isDefaultState()\"\n [(recreateDemo)]=\"recreateDemo\"\n (resetForm)=\"resetForm()\">\n @for (selector of configuration.selectors ?? selectors | asArray; track selector) {\n <ng-doc-playground-demo\n [id]=\"id\"\n [selector]=\"selector\"\n [properties]=\"properties\"\n [configuration]=\"configuration\"\n [recreateDemo]=\"recreateDemo\"\n [form]=\"formGroup\"\n [expanded]=\"configuration.expanded ?? false\">\n </ng-doc-playground-demo>\n }\n @if (pipeName) {\n <ng-doc-playground-demo\n [id]=\"id\"\n [pipeName]=\"pipeName\"\n [properties]=\"properties\"\n [configuration]=\"configuration\"\n [recreateDemo]=\"recreateDemo\"\n [form]=\"formGroup\">\n </ng-doc-playground-demo>\n }\n </ng-doc-playground-properties>\n}\n","import {\n ChangeDetectorRef,\n Directive,\n inject,\n Input,\n OnInit,\n Type,\n ViewContainerRef,\n} from '@angular/core';\nimport { extractFunctionDefaults } from '@ng-doc/core/helpers/extract-function-defaults';\nimport { NgDocPlaygroundConfig } from '@ng-doc/core/interfaces';\nimport { Constructor } from '@ng-doc/core/types';\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 static readonly selector: string = 'unknown';\n abstract readonly playground?: Type<any>;\n abstract readonly viewContainerRef?: ViewContainerRef;\n abstract readonly configData: Record<string, unknown>;\n\n @Input()\n properties: Record<string, any> = {};\n\n @Input()\n actionData: Record<string, unknown> = {};\n\n @Input()\n content: any = {};\n\n defaultValues: Record<string, unknown> = {};\n\n private reattached: Subject<void> = new Subject<void>();\n\n private playgroundContainer: NgDocPlaygroundComponent = inject(NgDocPlaygroundComponent);\n protected changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n protected constructor(private playgroundInstance?: Constructor<unknown>) {\n this.changeDetectorRef.detach();\n }\n\n get onReattached(): Observable<void> {\n return this.reattached.pipe(take(1));\n }\n\n ngOnInit(): void {\n /*\n * Extract default values from playground properties. We do this in `ngOnInit` because in this case\n * input values provided from the template are not initialized yet, and we can read default values instead.\n */\n if (this.playground) {\n this.defaultValues = Object.keys(this.playground).reduce(\n (values: Record<string, unknown>, key: string) => {\n if (this.playground) {\n try {\n values[key] =\n // @ts-expect-error we do not know the type of the playground\n typeof this.playground[key] === 'function'\n ? // @ts-expect-error we do not know the type of the playground\n this.playground[key]()\n : // @ts-expect-error we do not know the type of the playground\n this.playground[key];\n } catch (e) {\n // we do catch here because some of the playground properties can be getters and throw an error\n }\n }\n\n return values;\n },\n {},\n );\n } else if (this.playgroundInstance) {\n const defaults = extractFunctionDefaults(this.playgroundInstance.prototype.transform);\n\n this.defaultValues = Object.keys(this.playgroundContainer.properties ?? {}).reduce(\n (def: Record<string, unknown>, key: string, i: number) => {\n // we do +1 because the first argument is the `value` of the transform function\n def[key] = defaults[i + 1];\n\n return def;\n },\n {},\n );\n } else {\n throw new Error('Playground is not defined or initialized');\n }\n\n if (!this.playgroundContainer.defaultValues) {\n this.playgroundContainer.defaultValues = this.defaultValues;\n }\n\n /*\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 Promise.resolve().then(() => {\n this.changeDetectorRef.reattach();\n this.reattached.next();\n });\n }\n\n get data(): any {\n return Object.assign({}, this.configData, this.actionData);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -20,10 +20,10 @@ import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
|
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
22
|
class NgDocCustomNavbarDirective {
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
24
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NgDocCustomNavbarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
24
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: NgDocCustomNavbarDirective, isStandalone: true, selector: "[ngDocCustomNavbar]", ngImport: i0 }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NgDocCustomNavbarDirective, decorators: [{
|
|
27
27
|
type: Directive,
|
|
28
28
|
args: [{
|
|
29
29
|
selector: '[ngDocCustomNavbar]',
|
|
@@ -44,10 +44,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
44
44
|
* ```
|
|
45
45
|
*/
|
|
46
46
|
class NgDocCustomSidebarDirective {
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
48
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NgDocCustomSidebarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
48
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: NgDocCustomSidebarDirective, isStandalone: true, selector: "[ngDocCustomSidebar]", ngImport: i0 }); }
|
|
49
49
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NgDocCustomSidebarDirective, decorators: [{
|
|
51
51
|
type: Directive,
|
|
52
52
|
args: [{
|
|
53
53
|
selector: '[ngDocCustomSidebar]',
|
|
@@ -72,10 +72,10 @@ class NgDocRootComponent {
|
|
|
72
72
|
this.noWidthLimit = false;
|
|
73
73
|
this.sidebarService = inject(NgDocSidebarService);
|
|
74
74
|
}
|
|
75
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
76
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
75
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NgDocRootComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
76
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", 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>\n <div class=\"ng-doc-root-wrapper\">\n <div class=\"ng-doc-header\">\n <ng-content select=\"ng-doc-navbar\"></ng-content>\n <ng-content select=\"[ngDocCustomNavbar]\"></ng-content>\n </div>\n <main>\n <ng-doc-sidenav\n [sidebar]=\"sidebar ? sidebarContent : null\"\n [opened]=\"(sidebarService.isExpanded() | async) ?? true\"\n [hasBackdrop]=\"sidebarService.isMobile\"\n (closeEvent)=\"sidebarService.hide()\">\n <ng-template #sidebarContent>\n <ng-content select=\"ng-doc-sidebar\"></ng-content>\n <ng-content select=\"[ngDocCustomSidebar]\"></ng-content>\n </ng-template>\n\n <ng-content></ng-content>\n </ng-doc-sidenav>\n </main>\n @if (footerContent) {\n <footer>\n <ng-container *polymorpheusOutlet=\"footerContent as text\"> {{ text }}</ng-container>\n </footer>\n }\n </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:15}\n"], dependencies: [{ kind: "component", type: NgDocSidenavComponent, selector: "ng-doc-sidenav", inputs: ["sidebar", "opened", "hasBackdrop"], outputs: ["closeEvent"] }, { kind: "ngmodule", type: PolymorpheusModule }, { kind: "directive", type: i1.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
77
77
|
}
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NgDocRootComponent, decorators: [{
|
|
79
79
|
type: Component,
|
|
80
80
|
args: [{ selector: 'ng-doc-root', providers: [], changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgDocSidenavComponent, PolymorpheusModule, AsyncPipe], template: "<ng-container>\n <div class=\"ng-doc-root-wrapper\">\n <div class=\"ng-doc-header\">\n <ng-content select=\"ng-doc-navbar\"></ng-content>\n <ng-content select=\"[ngDocCustomNavbar]\"></ng-content>\n </div>\n <main>\n <ng-doc-sidenav\n [sidebar]=\"sidebar ? sidebarContent : null\"\n [opened]=\"(sidebarService.isExpanded() | async) ?? true\"\n [hasBackdrop]=\"sidebarService.isMobile\"\n (closeEvent)=\"sidebarService.hide()\">\n <ng-template #sidebarContent>\n <ng-content select=\"ng-doc-sidebar\"></ng-content>\n <ng-content select=\"[ngDocCustomSidebar]\"></ng-content>\n </ng-template>\n\n <ng-content></ng-content>\n </ng-doc-sidenav>\n </main>\n @if (footerContent) {\n <footer>\n <ng-container *polymorpheusOutlet=\"footerContent as text\"> {{ text }}</ng-container>\n </footer>\n }\n </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:15}\n"] }]
|
|
81
81
|
}], propDecorators: { sidebar: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-app-components-root.mjs","sources":["../tmp-esm2022/components/root/root.component.js","../tmp-esm2022/components/root/ng-doc-app-components-root.js"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Directive, HostBinding, inject, Input, ViewChild, } from '@angular/core';\nimport { NgDocSidebarService } from '@ng-doc/app/services';\nimport { NgDocSidenavComponent } from '@ng-doc/ui-kit';\nimport { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@tinkoff/ng-polymorpheus\";\n/**\n * Directive uses for providing custom navbar, you should mark element with this directive\n * and the `NgDocRootComponent` will use it as a navbar\n *\n * ```html\n * <ng-doc-root>\n * <my-custom-navbar ngDocCustomNavbar></my-custom-navbar>\n *\n * <ng-doc-sidebar></ng-doc-sidebar>\n * <router-outlet></router-outlet>\n * </ng-doc-root>\n * ```\n */\nexport class NgDocCustomNavbarDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocCustomNavbarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.15\", type: NgDocCustomNavbarDirective, isStandalone: true, selector: \"[ngDocCustomNavbar]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocCustomNavbarDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngDocCustomNavbar]',\n standalone: true,\n }]\n }] });\n/**\n * Directive uses for providing custom sidebar, you should mark element with this directive\n * and the `NgDocRootComponent` will use it as a sidebar\n *\n * ```html\n * <ng-doc-root>\n * <ng-doc-navbar></ng-doc-sidebar>\n *\n * <my-custom-sidebar ngDocCustomSidebar></my-custom-sidebar>\n * <router-outlet></router-outlet>\n * </ng-doc-root>\n * ```\n */\nexport class NgDocCustomSidebarDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocCustomSidebarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.15\", type: NgDocCustomSidebarDirective, isStandalone: true, selector: \"[ngDocCustomSidebar]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocCustomSidebarDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngDocCustomSidebar]',\n standalone: true,\n }]\n }] });\nexport class NgDocRootComponent {\n constructor() {\n /**\n * If `true` then the sidebar will be shown\n * You can use it for example for landing page to hide sidebar\n */\n this.sidebar = true;\n /**\n * Content for footer\n */\n this.footerContent = '';\n /**\n * If `true` then page will be shown without width limit.\n * You can use it for example for landing page\n */\n this.noWidthLimit = false;\n this.sidebarService = inject(NgDocSidebarService);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocRootComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", 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>\\n <div class=\\\"ng-doc-root-wrapper\\\">\\n <div class=\\\"ng-doc-header\\\">\\n <ng-content select=\\\"ng-doc-navbar\\\"></ng-content>\\n <ng-content select=\\\"[ngDocCustomNavbar]\\\"></ng-content>\\n </div>\\n <main>\\n <ng-doc-sidenav\\n [sidebar]=\\\"sidebar ? sidebarContent : null\\\"\\n [opened]=\\\"(sidebarService.isExpanded() | async) ?? true\\\"\\n [hasBackdrop]=\\\"sidebarService.isMobile\\\"\\n (closeEvent)=\\\"sidebarService.hide()\\\">\\n <ng-template #sidebarContent>\\n <ng-content select=\\\"ng-doc-sidebar\\\"></ng-content>\\n <ng-content select=\\\"[ngDocCustomSidebar]\\\"></ng-content>\\n </ng-template>\\n\\n <ng-content></ng-content>\\n </ng-doc-sidenav>\\n </main>\\n @if (footerContent) {\\n <footer>\\n <ng-container *polymorpheusOutlet=\\\"footerContent as text\\\"> {{ text }}</ng-container>\\n </footer>\\n }\\n </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:15}\\n\"], dependencies: [{ kind: \"component\", type: NgDocSidenavComponent, selector: \"ng-doc-sidenav\", inputs: [\"sidebar\", \"opened\", \"hasBackdrop\"], outputs: [\"closeEvent\"] }, { kind: \"ngmodule\", type: PolymorpheusModule }, { kind: \"directive\", type: i1.PolymorpheusOutletDirective, selector: \"[polymorpheusOutlet]\", inputs: [\"polymorpheusOutlet\", \"polymorpheusOutletContext\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: NgDocRootComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ng-doc-root', providers: [], changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgDocSidenavComponent, PolymorpheusModule, AsyncPipe], template: \"<ng-container>\\n <div class=\\\"ng-doc-root-wrapper\\\">\\n <div class=\\\"ng-doc-header\\\">\\n <ng-content select=\\\"ng-doc-navbar\\\"></ng-content>\\n <ng-content select=\\\"[ngDocCustomNavbar]\\\"></ng-content>\\n </div>\\n <main>\\n <ng-doc-sidenav\\n [sidebar]=\\\"sidebar ? sidebarContent : null\\\"\\n [opened]=\\\"(sidebarService.isExpanded() | async) ?? true\\\"\\n [hasBackdrop]=\\\"sidebarService.isMobile\\\"\\n (closeEvent)=\\\"sidebarService.hide()\\\">\\n <ng-template #sidebarContent>\\n <ng-content select=\\\"ng-doc-sidebar\\\"></ng-content>\\n <ng-content select=\\\"[ngDocCustomSidebar]\\\"></ng-content>\\n </ng-template>\\n\\n <ng-content></ng-content>\\n </ng-doc-sidenav>\\n </main>\\n @if (footerContent) {\\n <footer>\\n <ng-container *polymorpheusOutlet=\\\"footerContent as text\\\"> {{ text }}</ng-container>\\n </footer>\\n }\\n </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:15}\\n\"] }]\n }], propDecorators: { sidebar: [{\n type: Input\n }], footerContent: [{\n type: Input\n }], noWidthLimit: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['attr.data-ng-doc-no-width-limit']\n }], sidenav: [{\n type: ViewChild,\n args: [NgDocSidenavComponent]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3Jvb3Qvcm9vdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3Jvb3Qvcm9vdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQUU5RDs7Ozs7Ozs7Ozs7O0dBWUc7QUFLSCxNQUFNLE9BQU8sMEJBQTBCOytHQUExQiwwQkFBMEI7bUdBQTFCLDBCQUEwQjs7NEZBQTFCLDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7O0FBR0Q7Ozs7Ozs7Ozs7OztHQVlHO0FBS0gsTUFBTSxPQUFPLDJCQUEyQjsrR0FBM0IsMkJBQTJCO21HQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBSnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOztBQVdELE1BQU0sT0FBTyxrQkFBa0I7SUFSL0I7UUFTRTs7O1dBR0c7UUFFSCxZQUFPLEdBQVksSUFBSSxDQUFDO1FBRXhCOztXQUVHO1FBRUgsa0JBQWEsR0FBaUIsRUFBRSxDQUFDO1FBRWpDOzs7V0FHRztRQUdILGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBS1gsbUJBQWMsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQUNqRTsrR0ExQlksa0JBQWtCO21HQUFsQixrQkFBa0IsME9BSmxCLEVBQUUsbUVBMEJGLHFCQUFxQixnRENsRmxDLGc3QkEyQkEsdXNCRCtCWSxxQkFBcUIsaUlBQUUsa0JBQWtCLHNMQUFFLFNBQVM7OzRGQUVuRCxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsYUFBYSxhQUdaLEVBQUUsbUJBQ0ksdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLFNBQVMsQ0FBQzs7c0JBTzlELEtBQUs7O3NCQU1MLEtBQUs7O3NCQU9MLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsaUNBQWlDOztzQkFHN0MsU0FBUzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRGlyZWN0aXZlLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRG9jU2lkZWJhclNlcnZpY2UgfSBmcm9tICdAbmctZG9jL2FwcC9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBOZ0RvY0NvbnRlbnQsIE5nRG9jU2lkZW5hdkNvbXBvbmVudCB9IGZyb20gJ0BuZy1kb2MvdWkta2l0JztcbmltcG9ydCB7IFBvbHltb3JwaGV1c01vZHVsZSB9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHVzZXMgZm9yIHByb3ZpZGluZyBjdXN0b20gbmF2YmFyLCB5b3Ugc2hvdWxkIG1hcmsgZWxlbWVudCB3aXRoIHRoaXMgZGlyZWN0aXZlXG4gKiBhbmQgdGhlIGBOZ0RvY1Jvb3RDb21wb25lbnRgIHdpbGwgdXNlIGl0IGFzIGEgbmF2YmFyXG4gKlxuICogYGBgaHRtbFxuICogPG5nLWRvYy1yb290PlxuICogICAgIDxteS1jdXN0b20tbmF2YmFyIG5nRG9jQ3VzdG9tTmF2YmFyPjwvbXktY3VzdG9tLW5hdmJhcj5cbiAqXG4gKiAgICAgPG5nLWRvYy1zaWRlYmFyPjwvbmctZG9jLXNpZGViYXI+XG4gKiAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICogPC9uZy1kb2Mtcm9vdD5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmdEb2NDdXN0b21OYXZiYXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTmdEb2NDdXN0b21OYXZiYXJEaXJlY3RpdmUge31cblxuLyoqXG4gKiBEaXJlY3RpdmUgdXNlcyBmb3IgcHJvdmlkaW5nIGN1c3RvbSBzaWRlYmFyLCB5b3Ugc2hvdWxkIG1hcmsgZWxlbWVudCB3aXRoIHRoaXMgZGlyZWN0aXZlXG4gKiBhbmQgdGhlIGBOZ0RvY1Jvb3RDb21wb25lbnRgIHdpbGwgdXNlIGl0IGFzIGEgc2lkZWJhclxuICpcbiAqIGBgYGh0bWxcbiAqIDxuZy1kb2Mtcm9vdD5cbiAqICAgICA8bmctZG9jLW5hdmJhcj48L25nLWRvYy1zaWRlYmFyPlxuICpcbiAqICAgICA8bXktY3VzdG9tLXNpZGViYXIgbmdEb2NDdXN0b21TaWRlYmFyPjwvbXktY3VzdG9tLXNpZGViYXI+XG4gKiAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICogPC9uZy1kb2Mtcm9vdD5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmdEb2NDdXN0b21TaWRlYmFyXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE5nRG9jQ3VzdG9tU2lkZWJhckRpcmVjdGl2ZSB7fVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1kb2Mtcm9vdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yb290LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcm9vdC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW05nRG9jU2lkZW5hdkNvbXBvbmVudCwgUG9seW1vcnBoZXVzTW9kdWxlLCBBc3luY1BpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ0RvY1Jvb3RDb21wb25lbnQge1xuICAvKipcbiAgICogSWYgYHRydWVgIHRoZW4gdGhlIHNpZGViYXIgd2lsbCBiZSBzaG93blxuICAgKiBZb3UgY2FuIHVzZSBpdCBmb3IgZXhhbXBsZSBmb3IgbGFuZGluZyBwYWdlIHRvIGhpZGUgc2lkZWJhclxuICAgKi9cbiAgQElucHV0KClcbiAgc2lkZWJhcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIENvbnRlbnQgZm9yIGZvb3RlclxuICAgKi9cbiAgQElucHV0KClcbiAgZm9vdGVyQ29udGVudDogTmdEb2NDb250ZW50ID0gJyc7XG5cbiAgLyoqXG4gICAqIElmIGB0cnVlYCB0aGVuIHBhZ2Ugd2lsbCBiZSBzaG93biB3aXRob3V0IHdpZHRoIGxpbWl0LlxuICAgKiBZb3UgY2FuIHVzZSBpdCBmb3IgZXhhbXBsZSBmb3IgbGFuZGluZyBwYWdlXG4gICAqL1xuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1uZy1kb2Mtbm8td2lkdGgtbGltaXQnKVxuICBub1dpZHRoTGltaXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKE5nRG9jU2lkZW5hdkNvbXBvbmVudClcbiAgc2lkZW5hdj86IE5nRG9jU2lkZW5hdkNvbXBvbmVudDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2lkZWJhclNlcnZpY2UgPSBpbmplY3QoTmdEb2NTaWRlYmFyU2VydmljZSk7XG59XG4iLCI8bmctY29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwibmctZG9jLXJvb3Qtd3JhcHBlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJuZy1kb2MtaGVhZGVyXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJuZy1kb2MtbmF2YmFyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW25nRG9jQ3VzdG9tTmF2YmFyXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bWFpbj5cbiAgICAgIDxuZy1kb2Mtc2lkZW5hdlxuICAgICAgICBbc2lkZWJhcl09XCJzaWRlYmFyID8gc2lkZWJhckNvbnRlbnQgOiBudWxsXCJcbiAgICAgICAgW29wZW5lZF09XCIoc2lkZWJhclNlcnZpY2UuaXNFeHBhbmRlZCgpIHwgYXN5bmMpID8/IHRydWVcIlxuICAgICAgICBbaGFzQmFja2Ryb3BdPVwic2lkZWJhclNlcnZpY2UuaXNNb2JpbGVcIlxuICAgICAgICAoY2xvc2VFdmVudCk9XCJzaWRlYmFyU2VydmljZS5oaWRlKClcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzaWRlYmFyQ29udGVudD5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJuZy1kb2Mtc2lkZWJhclwiPjwvbmctY29udGVudD5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbmdEb2NDdXN0b21TaWRlYmFyXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L25nLWRvYy1zaWRlbmF2PlxuICAgIDwvbWFpbj5cbiAgICBAaWYgKGZvb3RlckNvbnRlbnQpIHtcbiAgICAgIDxmb290ZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImZvb3RlckNvbnRlbnQgYXMgdGV4dFwiPiB7eyB0ZXh0IH19PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Zvb3Rlcj5cbiAgICB9XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZG9jLWFwcC1jb21wb25lbnRzLXJvb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3Jvb3QvbmctZG9jLWFwcC1jb21wb25lbnRzLXJvb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-doc-app-components-root.mjs","sources":["../../../../libs/app/components/root/root.component.ts","../../../../libs/app/components/root/root.component.html","../../../../libs/app/components/root/ng-doc-app-components-root.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n HostBinding,\n inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { NgDocSidebarService } from '@ng-doc/app/services';\nimport { NgDocContent, NgDocSidenavComponent } from '@ng-doc/ui-kit';\nimport { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';\n\n/**\n * Directive uses for providing custom navbar, you should mark element with this directive\n * and the `NgDocRootComponent` will use it as a navbar\n *\n * ```html\n * <ng-doc-root>\n * <my-custom-navbar ngDocCustomNavbar></my-custom-navbar>\n *\n * <ng-doc-sidebar></ng-doc-sidebar>\n * <router-outlet></router-outlet>\n * </ng-doc-root>\n * ```\n */\n@Directive({\n selector: '[ngDocCustomNavbar]',\n standalone: true,\n})\nexport class NgDocCustomNavbarDirective {}\n\n/**\n * Directive uses for providing custom sidebar, you should mark element with this directive\n * and the `NgDocRootComponent` will use it as a sidebar\n *\n * ```html\n * <ng-doc-root>\n * <ng-doc-navbar></ng-doc-sidebar>\n *\n * <my-custom-sidebar ngDocCustomSidebar></my-custom-sidebar>\n * <router-outlet></router-outlet>\n * </ng-doc-root>\n * ```\n */\n@Directive({\n selector: '[ngDocCustomSidebar]',\n standalone: true,\n})\nexport class NgDocCustomSidebarDirective {}\n\n@Component({\n selector: 'ng-doc-root',\n templateUrl: './root.component.html',\n styleUrls: ['./root.component.scss'],\n providers: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgDocSidenavComponent, PolymorpheusModule, AsyncPipe],\n})\nexport class NgDocRootComponent {\n /**\n * If `true` then the sidebar will be shown\n * You can use it for example for landing page to hide sidebar\n */\n @Input()\n sidebar: boolean = true;\n\n /**\n * Content for footer\n */\n @Input()\n footerContent: NgDocContent = '';\n\n /**\n * If `true` then page will be shown without width limit.\n * You can use it for example for landing page\n */\n @Input()\n @HostBinding('attr.data-ng-doc-no-width-limit')\n noWidthLimit: boolean = false;\n\n @ViewChild(NgDocSidenavComponent)\n sidenav?: NgDocSidenavComponent;\n\n protected readonly sidebarService = inject(NgDocSidebarService);\n}\n","<ng-container>\n <div class=\"ng-doc-root-wrapper\">\n <div class=\"ng-doc-header\">\n <ng-content select=\"ng-doc-navbar\"></ng-content>\n <ng-content select=\"[ngDocCustomNavbar]\"></ng-content>\n </div>\n <main>\n <ng-doc-sidenav\n [sidebar]=\"sidebar ? sidebarContent : null\"\n [opened]=\"(sidebarService.isExpanded() | async) ?? true\"\n [hasBackdrop]=\"sidebarService.isMobile\"\n (closeEvent)=\"sidebarService.hide()\">\n <ng-template #sidebarContent>\n <ng-content select=\"ng-doc-sidebar\"></ng-content>\n <ng-content select=\"[ngDocCustomSidebar]\"></ng-content>\n </ng-template>\n\n <ng-content></ng-content>\n </ng-doc-sidenav>\n </main>\n @if (footerContent) {\n <footer>\n <ng-container *polymorpheusOutlet=\"footerContent as text\"> {{ text }}</ng-container>\n </footer>\n }\n </div>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|