@ng-doc/app 16.15.0 → 16.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/fullscreen-button/fullscreen-button.component.d.ts +6 -0
- package/components/fullscreen-button/index.d.ts +1 -0
- package/components/index.d.ts +1 -0
- package/components/page/page.component.d.ts +2 -1
- package/components/playground/playground-demo/playground-demo.component.d.ts +1 -0
- package/esm2022/components/demo/demo.component.mjs +5 -3
- package/esm2022/components/demo-pane/demo-pane.component.mjs +5 -3
- package/esm2022/components/fullscreen-button/fullscreen-button.component.mjs +23 -0
- package/esm2022/components/fullscreen-button/index.mjs +2 -0
- package/esm2022/components/fullscreen-button/ng-doc-app-components-fullscreen-button.mjs +5 -0
- package/esm2022/components/index.mjs +2 -1
- package/esm2022/components/page/page.component.mjs +19 -10
- package/esm2022/components/playground/base-playground.mjs +7 -2
- package/esm2022/components/playground/playground-demo/playground-demo.component.mjs +20 -2
- package/esm2022/components/search/search.component.mjs +3 -3
- package/esm2022/components/toc/toc.component.mjs +5 -2
- package/esm2022/services/theme/theme.service.mjs +2 -2
- package/fesm2022/ng-doc-app-components-demo-pane.mjs +4 -2
- package/fesm2022/ng-doc-app-components-demo-pane.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-demo.mjs +4 -2
- package/fesm2022/ng-doc-app-components-demo.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-fullscreen-button.mjs +29 -0
- package/fesm2022/ng-doc-app-components-fullscreen-button.mjs.map +1 -0
- package/fesm2022/ng-doc-app-components-page.mjs +17 -8
- package/fesm2022/ng-doc-app-components-page.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-playground.mjs +25 -2
- package/fesm2022/ng-doc-app-components-playground.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-search.mjs +2 -2
- package/fesm2022/ng-doc-app-components-search.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-toc.mjs +4 -1
- package/fesm2022/ng-doc-app-components-toc.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components.mjs +1 -0
- package/fesm2022/ng-doc-app-components.mjs.map +1 -1
- package/fesm2022/ng-doc-app-services-theme.mjs +1 -1
- package/fesm2022/ng-doc-app-services-theme.mjs.map +1 -1
- package/package.json +9 -3
- package/styles/global.css +4 -0
- package/styles/main.css +4 -0
|
@@ -4,6 +4,7 @@ import { Component, ChangeDetectionStrategy, Input, HostBinding } from '@angular
|
|
|
4
4
|
import * as i1 from '@ng-doc/app/classes/root-page';
|
|
5
5
|
import { NgDocCodeComponent } from '@ng-doc/app/components/code';
|
|
6
6
|
import { NgDocDemoDisplayerComponent } from '@ng-doc/app/components/demo-displayer';
|
|
7
|
+
import { NgDocFullscreenButtonComponent } from '@ng-doc/app/components/fullscreen-button';
|
|
7
8
|
import { asArray } from '@ng-doc/core/helpers/as-array';
|
|
8
9
|
import { NgDocTabGroupComponent, NgDocTabComponent, NgDocIconComponent, NgDocExecutePipe } from '@ng-doc/ui-kit';
|
|
9
10
|
import * as i2 from '@tinkoff/ng-polymorpheus';
|
|
@@ -40,7 +41,7 @@ class NgDocDemoComponent {
|
|
|
40
41
|
return [];
|
|
41
42
|
}
|
|
42
43
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocDemoComponent, deps: [{ token: i1.NgDocRootPage }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgDocDemoComponent, isStandalone: true, selector: "ng-doc-demo", inputs: { componentName: "componentName", options: "options" }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: "<ng-container *ngIf=\"options.container ?? true; else demoTemplate\">\n\t<ng-doc-demo-displayer [codeContent]=\"codeContent\" [expanded]=\"!!options.expanded\">\n\t\t<ng-container *ngTemplateOutlet=\"demoTemplate\"></ng-container>\n\t\t<ng-template #codeContent>\n\t\t\t<ng-container *ngIf=\"assets.length === 1\">\n\t\t\t\t<ng-doc-code *ngFor=\"let asset of assets\" [html]=\"asset.code\"></ng-doc-code>\n\t\t\t</ng-container>\n\n\t\t\t<ng-container *ngIf=\"assets.length > 1\">\n\t\t\t\t<ng-doc-tab-group [openedTab]=\"(getOpenedAssetId | execute: assets) ?? options.defaultTab\">\n\t\t\t\t\t<ng-doc-tab\n\t\t\t\t\t\t*ngFor=\"let asset of assets\"\n\t\t\t\t\t\t[id]=\"asset.title\"\n\t\t\t\t\t\t[label]=\"label\"\n\t\t\t\t\t\t[content]=\"assetContent\">\n\t\t\t\t\t\t<ng-template #label>\n\t\t\t\t\t\t\t<ng-doc-icon [customIcon]=\"asset.icon\" *ngIf=\"asset.icon\"></ng-doc-icon>\n\t\t\t\t\t\t\t{{ asset.title }}\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t<ng-template #assetContent>\n\t\t\t\t\t\t\t<ng-doc-code [html]=\"asset.code\"></ng-doc-code>\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t</ng-doc-tab>\n\t\t\t\t</ng-doc-tab-group>\n\t\t\t</ng-container>\n\t\t</ng-template>\n\t</ng-doc-demo-displayer>\n</ng-container>\n\n<ng-template #demoTemplate>\n\t<ng-container
|
|
44
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgDocDemoComponent, isStandalone: true, selector: "ng-doc-demo", inputs: { componentName: "componentName", options: "options" }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: "<ng-container *ngIf=\"options.container ?? true; else demoTemplate\">\n\t<ng-doc-demo-displayer [codeContent]=\"codeContent\" [expanded]=\"!!options.expanded\">\n\t\t<ng-container *ngTemplateOutlet=\"demoTemplate\"></ng-container>\n\t\t<ng-template #codeContent>\n\t\t\t<ng-container *ngIf=\"assets.length === 1\">\n\t\t\t\t<ng-doc-code *ngFor=\"let asset of assets\" [html]=\"asset.code\"></ng-doc-code>\n\t\t\t</ng-container>\n\n\t\t\t<ng-container *ngIf=\"assets.length > 1\">\n\t\t\t\t<ng-doc-tab-group [openedTab]=\"(getOpenedAssetId | execute: assets) ?? options.defaultTab\">\n\t\t\t\t\t<ng-doc-tab\n\t\t\t\t\t\t*ngFor=\"let asset of assets\"\n\t\t\t\t\t\t[id]=\"asset.title\"\n\t\t\t\t\t\t[label]=\"label\"\n\t\t\t\t\t\t[content]=\"assetContent\">\n\t\t\t\t\t\t<ng-template #label>\n\t\t\t\t\t\t\t<ng-doc-icon [customIcon]=\"asset.icon\" *ngIf=\"asset.icon\"></ng-doc-icon>\n\t\t\t\t\t\t\t{{ asset.title }}\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t<ng-template #assetContent>\n\t\t\t\t\t\t\t<ng-doc-code [html]=\"asset.code\"></ng-doc-code>\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t</ng-doc-tab>\n\t\t\t\t</ng-doc-tab-group>\n\t\t\t</ng-container>\n\t\t</ng-template>\n\t</ng-doc-demo-displayer>\n</ng-container>\n\n<ng-template #demoTemplate>\n\t<ng-template #fullscreenButton>\n\t\t<ng-doc-fullscreen-button [route]=\"options.fullscreenRoute!\"></ng-doc-fullscreen-button>\n\t</ng-template>\n\t<ng-container\n\t\t*polymorpheusOutlet=\"\n\t\t\toptions.fullscreenRoute ? fullscreenButton : demo ?? '';\n\t\t\tcontext: {}\n\t\t\"></ng-container>\n</ng-template>\n", styles: [":host{display:block;margin:var(--ng-doc-demo-margin);--ng-doc-tab-group-background: var(--ng-doc-code-background);--ng-doc-tab-group-tabs-background: var(--ng-doc-base-2);--ng-doc-tab-group-border-radius: 0;--ng-doc-tab-group-border: none;--ng-doc-code-border-radius: 0;--ng-doc-code-border: none}:host .ng-doc-example{padding:calc(var(--ng-doc-base-gutter) * 3)}:host ng-doc-icon{margin-right:calc(var(--ng-doc-base-gutter) / 2)}:host ng-doc-tab-group{border-top:1px solid var(--ng-doc-border-color)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgDocDemoDisplayerComponent, selector: "ng-doc-demo-displayer", inputs: ["codeContent", "code", "language", "container", "border", "expanded"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: NgDocCodeComponent, selector: "ng-doc-code", inputs: ["html", "copyButton", "name", "icon", "lineNumbers"] }, { kind: "component", type: NgDocTabGroupComponent, selector: "ng-doc-tab-group", inputs: ["openedTab"] }, { kind: "component", type: NgDocTabComponent, selector: "ng-doc-tab", inputs: ["label", "id", "content"] }, { kind: "ngmodule", type: PolymorpheusModule }, { kind: "directive", type: i2.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "pipe", type: NgDocExecutePipe, name: "execute" }, { kind: "component", type: NgDocFullscreenButtonComponent, selector: "ng-doc-fullscreen-button", inputs: ["route"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
44
45
|
}
|
|
45
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocDemoComponent, decorators: [{
|
|
46
47
|
type: Component,
|
|
@@ -55,7 +56,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
55
56
|
PolymorpheusModule,
|
|
56
57
|
NgDocIconComponent,
|
|
57
58
|
NgDocExecutePipe,
|
|
58
|
-
|
|
59
|
+
NgDocFullscreenButtonComponent,
|
|
60
|
+
], template: "<ng-container *ngIf=\"options.container ?? true; else demoTemplate\">\n\t<ng-doc-demo-displayer [codeContent]=\"codeContent\" [expanded]=\"!!options.expanded\">\n\t\t<ng-container *ngTemplateOutlet=\"demoTemplate\"></ng-container>\n\t\t<ng-template #codeContent>\n\t\t\t<ng-container *ngIf=\"assets.length === 1\">\n\t\t\t\t<ng-doc-code *ngFor=\"let asset of assets\" [html]=\"asset.code\"></ng-doc-code>\n\t\t\t</ng-container>\n\n\t\t\t<ng-container *ngIf=\"assets.length > 1\">\n\t\t\t\t<ng-doc-tab-group [openedTab]=\"(getOpenedAssetId | execute: assets) ?? options.defaultTab\">\n\t\t\t\t\t<ng-doc-tab\n\t\t\t\t\t\t*ngFor=\"let asset of assets\"\n\t\t\t\t\t\t[id]=\"asset.title\"\n\t\t\t\t\t\t[label]=\"label\"\n\t\t\t\t\t\t[content]=\"assetContent\">\n\t\t\t\t\t\t<ng-template #label>\n\t\t\t\t\t\t\t<ng-doc-icon [customIcon]=\"asset.icon\" *ngIf=\"asset.icon\"></ng-doc-icon>\n\t\t\t\t\t\t\t{{ asset.title }}\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t<ng-template #assetContent>\n\t\t\t\t\t\t\t<ng-doc-code [html]=\"asset.code\"></ng-doc-code>\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t</ng-doc-tab>\n\t\t\t\t</ng-doc-tab-group>\n\t\t\t</ng-container>\n\t\t</ng-template>\n\t</ng-doc-demo-displayer>\n</ng-container>\n\n<ng-template #demoTemplate>\n\t<ng-template #fullscreenButton>\n\t\t<ng-doc-fullscreen-button [route]=\"options.fullscreenRoute!\"></ng-doc-fullscreen-button>\n\t</ng-template>\n\t<ng-container\n\t\t*polymorpheusOutlet=\"\n\t\t\toptions.fullscreenRoute ? fullscreenButton : demo ?? '';\n\t\t\tcontext: {}\n\t\t\"></ng-container>\n</ng-template>\n", styles: [":host{display:block;margin:var(--ng-doc-demo-margin);--ng-doc-tab-group-background: var(--ng-doc-code-background);--ng-doc-tab-group-tabs-background: var(--ng-doc-base-2);--ng-doc-tab-group-border-radius: 0;--ng-doc-tab-group-border: none;--ng-doc-code-border-radius: 0;--ng-doc-code-border: none}:host .ng-doc-example{padding:calc(var(--ng-doc-base-gutter) * 3)}:host ng-doc-icon{margin-right:calc(var(--ng-doc-base-gutter) / 2)}:host ng-doc-tab-group{border-top:1px solid var(--ng-doc-border-color)}\n"] }]
|
|
59
61
|
}], ctorParameters: function () { return [{ type: i1.NgDocRootPage }]; }, propDecorators: { componentName: [{
|
|
60
62
|
type: Input
|
|
61
63
|
}], options: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-app-components-demo.mjs","sources":["../../../../libs/app/components/demo/demo.component.ts","../../../../libs/app/components/demo/demo.component.html","../../../../libs/app/components/demo/ng-doc-app-components-demo.ts"],"sourcesContent":["import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tHostBinding,\n\tInput,\n\tOnInit,\n\tType,\n} from '@angular/core';\nimport { NgDocRootPage } from '@ng-doc/app/classes/root-page';\nimport { NgDocCodeComponent } from '@ng-doc/app/components/code';\nimport { NgDocDemoDisplayerComponent } from '@ng-doc/app/components/demo-displayer';\nimport { NgDocDemoAsset } from '@ng-doc/app/interfaces';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { NgDocDemoActionOptions } from '@ng-doc/core/interfaces';\nimport {\n\tNgDocExecutePipe,\n\tNgDocIconComponent,\n\tNgDocTabComponent,\n\tNgDocTabGroupComponent,\n} from '@ng-doc/ui-kit';\nimport { NgDocContent } from '@ng-doc/ui-kit/types';\nimport { PolymorpheusComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';\n\n@Component({\n\tselector: 'ng-doc-demo',\n\ttemplateUrl: './demo.component.html',\n\tstyleUrls: ['./demo.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgIf,\n\t\tNgDocDemoDisplayerComponent,\n\t\tNgTemplateOutlet,\n\t\tNgFor,\n\t\tNgDocCodeComponent,\n\t\tNgDocTabGroupComponent,\n\t\tNgDocTabComponent,\n\t\tPolymorpheusModule,\n\t\tNgDocIconComponent,\n\t\tNgDocExecutePipe,\n\t],\n})\nexport class NgDocDemoComponent implements OnInit {\n\t@Input()\n\tcomponentName?: string;\n\n\t@Input()\n\toptions: NgDocDemoActionOptions = {};\n\n\tdemo?: NgDocContent<object>;\n\tassets: NgDocDemoAsset[] = [];\n\n\tconstructor(private readonly rootPage: NgDocRootPage) {}\n\n\t@HostBinding('class')\n\tprotected get classes(): string | string[] {\n\t\treturn this.options.class ?? '';\n\t}\n\n\tngOnInit(): void {\n\t\tthis.demo = this.getDemo();\n\t\tthis.assets = this.getAssets();\n\t}\n\n\tgetOpenedAssetId(assets: NgDocDemoAsset[]): string | undefined {\n\t\treturn assets.find((asset: NgDocDemoAsset) => asset.opened)?.title;\n\t}\n\n\tprivate getDemo(): NgDocContent<object> | undefined {\n\t\tif (this.componentName) {\n\t\t\tconst component: Type<unknown> | undefined =\n\t\t\t\tthis.rootPage.page?.demos && this.rootPage.page.demos[this.componentName];\n\n\t\t\treturn component ? new PolymorpheusComponent(component as Type<object>) : undefined;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tprivate getAssets(): NgDocDemoAsset[] {\n\t\tif (this.componentName) {\n\t\t\treturn (\n\t\t\t\t(this.rootPage.demoAssets && this.rootPage.demoAssets[this.componentName]) ??\n\t\t\t\t[]\n\t\t\t).filter(\n\t\t\t\t(asset: NgDocDemoAsset) =>\n\t\t\t\t\t!this.options.tabs?.length || asArray(this.options.tabs).includes(asset.title),\n\t\t\t);\n\t\t}\n\n\t\treturn [];\n\t}\n}\n","<ng-container *ngIf=\"options.container ?? true; else demoTemplate\">\n\t<ng-doc-demo-displayer [codeContent]=\"codeContent\" [expanded]=\"!!options.expanded\">\n\t\t<ng-container *ngTemplateOutlet=\"demoTemplate\"></ng-container>\n\t\t<ng-template #codeContent>\n\t\t\t<ng-container *ngIf=\"assets.length === 1\">\n\t\t\t\t<ng-doc-code *ngFor=\"let asset of assets\" [html]=\"asset.code\"></ng-doc-code>\n\t\t\t</ng-container>\n\n\t\t\t<ng-container *ngIf=\"assets.length > 1\">\n\t\t\t\t<ng-doc-tab-group [openedTab]=\"(getOpenedAssetId | execute: assets) ?? options.defaultTab\">\n\t\t\t\t\t<ng-doc-tab\n\t\t\t\t\t\t*ngFor=\"let asset of assets\"\n\t\t\t\t\t\t[id]=\"asset.title\"\n\t\t\t\t\t\t[label]=\"label\"\n\t\t\t\t\t\t[content]=\"assetContent\">\n\t\t\t\t\t\t<ng-template #label>\n\t\t\t\t\t\t\t<ng-doc-icon [customIcon]=\"asset.icon\" *ngIf=\"asset.icon\"></ng-doc-icon>\n\t\t\t\t\t\t\t{{ asset.title }}\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t<ng-template #assetContent>\n\t\t\t\t\t\t\t<ng-doc-code [html]=\"asset.code\"></ng-doc-code>\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t</ng-doc-tab>\n\t\t\t\t</ng-doc-tab-group>\n\t\t\t</ng-container>\n\t\t</ng-template>\n\t</ng-doc-demo-displayer>\n</ng-container>\n\n<ng-template #demoTemplate>\n\t<ng-container
|
|
1
|
+
{"version":3,"file":"ng-doc-app-components-demo.mjs","sources":["../../../../libs/app/components/demo/demo.component.ts","../../../../libs/app/components/demo/demo.component.html","../../../../libs/app/components/demo/ng-doc-app-components-demo.ts"],"sourcesContent":["import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tHostBinding,\n\tInput,\n\tOnInit,\n\tType,\n} from '@angular/core';\nimport { NgDocRootPage } from '@ng-doc/app/classes/root-page';\nimport { NgDocCodeComponent } from '@ng-doc/app/components/code';\nimport { NgDocDemoDisplayerComponent } from '@ng-doc/app/components/demo-displayer';\nimport { NgDocFullscreenButtonComponent } from '@ng-doc/app/components/fullscreen-button';\nimport { NgDocDemoAsset } from '@ng-doc/app/interfaces';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { NgDocDemoActionOptions } from '@ng-doc/core/interfaces';\nimport {\n\tNgDocExecutePipe,\n\tNgDocIconComponent,\n\tNgDocTabComponent,\n\tNgDocTabGroupComponent,\n} from '@ng-doc/ui-kit';\nimport { NgDocContent } from '@ng-doc/ui-kit/types';\nimport { PolymorpheusComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';\n\n@Component({\n\tselector: 'ng-doc-demo',\n\ttemplateUrl: './demo.component.html',\n\tstyleUrls: ['./demo.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgIf,\n\t\tNgDocDemoDisplayerComponent,\n\t\tNgTemplateOutlet,\n\t\tNgFor,\n\t\tNgDocCodeComponent,\n\t\tNgDocTabGroupComponent,\n\t\tNgDocTabComponent,\n\t\tPolymorpheusModule,\n\t\tNgDocIconComponent,\n\t\tNgDocExecutePipe,\n\t\tNgDocFullscreenButtonComponent,\n\t],\n})\nexport class NgDocDemoComponent implements OnInit {\n\t@Input()\n\tcomponentName?: string;\n\n\t@Input()\n\toptions: NgDocDemoActionOptions = {};\n\n\tdemo?: NgDocContent<object>;\n\tassets: NgDocDemoAsset[] = [];\n\n\tconstructor(private readonly rootPage: NgDocRootPage) {}\n\n\t@HostBinding('class')\n\tprotected get classes(): string | string[] {\n\t\treturn this.options.class ?? '';\n\t}\n\n\tngOnInit(): void {\n\t\tthis.demo = this.getDemo();\n\t\tthis.assets = this.getAssets();\n\t}\n\n\tgetOpenedAssetId(assets: NgDocDemoAsset[]): string | undefined {\n\t\treturn assets.find((asset: NgDocDemoAsset) => asset.opened)?.title;\n\t}\n\n\tprivate getDemo(): NgDocContent<object> | undefined {\n\t\tif (this.componentName) {\n\t\t\tconst component: Type<unknown> | undefined =\n\t\t\t\tthis.rootPage.page?.demos && this.rootPage.page.demos[this.componentName];\n\n\t\t\treturn component ? new PolymorpheusComponent(component as Type<object>) : undefined;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tprivate getAssets(): NgDocDemoAsset[] {\n\t\tif (this.componentName) {\n\t\t\treturn (\n\t\t\t\t(this.rootPage.demoAssets && this.rootPage.demoAssets[this.componentName]) ??\n\t\t\t\t[]\n\t\t\t).filter(\n\t\t\t\t(asset: NgDocDemoAsset) =>\n\t\t\t\t\t!this.options.tabs?.length || asArray(this.options.tabs).includes(asset.title),\n\t\t\t);\n\t\t}\n\n\t\treturn [];\n\t}\n}\n","<ng-container *ngIf=\"options.container ?? true; else demoTemplate\">\n\t<ng-doc-demo-displayer [codeContent]=\"codeContent\" [expanded]=\"!!options.expanded\">\n\t\t<ng-container *ngTemplateOutlet=\"demoTemplate\"></ng-container>\n\t\t<ng-template #codeContent>\n\t\t\t<ng-container *ngIf=\"assets.length === 1\">\n\t\t\t\t<ng-doc-code *ngFor=\"let asset of assets\" [html]=\"asset.code\"></ng-doc-code>\n\t\t\t</ng-container>\n\n\t\t\t<ng-container *ngIf=\"assets.length > 1\">\n\t\t\t\t<ng-doc-tab-group [openedTab]=\"(getOpenedAssetId | execute: assets) ?? options.defaultTab\">\n\t\t\t\t\t<ng-doc-tab\n\t\t\t\t\t\t*ngFor=\"let asset of assets\"\n\t\t\t\t\t\t[id]=\"asset.title\"\n\t\t\t\t\t\t[label]=\"label\"\n\t\t\t\t\t\t[content]=\"assetContent\">\n\t\t\t\t\t\t<ng-template #label>\n\t\t\t\t\t\t\t<ng-doc-icon [customIcon]=\"asset.icon\" *ngIf=\"asset.icon\"></ng-doc-icon>\n\t\t\t\t\t\t\t{{ asset.title }}\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t<ng-template #assetContent>\n\t\t\t\t\t\t\t<ng-doc-code [html]=\"asset.code\"></ng-doc-code>\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t</ng-doc-tab>\n\t\t\t\t</ng-doc-tab-group>\n\t\t\t</ng-container>\n\t\t</ng-template>\n\t</ng-doc-demo-displayer>\n</ng-container>\n\n<ng-template #demoTemplate>\n\t<ng-template #fullscreenButton>\n\t\t<ng-doc-fullscreen-button [route]=\"options.fullscreenRoute!\"></ng-doc-fullscreen-button>\n\t</ng-template>\n\t<ng-container\n\t\t*polymorpheusOutlet=\"\n\t\t\toptions.fullscreenRoute ? fullscreenButton : demo ?? '';\n\t\t\tcontext: {}\n\t\t\"></ng-container>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
|
|
3
|
+
import { RouterLink } from '@angular/router';
|
|
4
|
+
import { NgDocTextComponent, NgDocIconComponent, NgDocTextRightDirective, NgDocButtonComponent } from '@ng-doc/ui-kit';
|
|
5
|
+
|
|
6
|
+
class NgDocFullscreenButtonComponent {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocFullscreenButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgDocFullscreenButtonComponent, isStandalone: true, selector: "ng-doc-fullscreen-button", inputs: { route: "route" }, ngImport: i0, template: "<a ng-doc-button-text [routerLink]=\"route\" target=\"_blank\">\n\t<span ng-doc-text>\n\t\tOpen demo in a new tab\n\t\t<ng-doc-icon icon=\"external-link\" ngDocTextRight></ng-doc-icon>\n\t</span>\n</a>\n", styles: [":host{display:flex;align-items:center;justify-content:center;padding:calc(var(--ng-doc-base-gutter) * 2) calc(var(--ng-doc-base-gutter) * 2)}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "directive", type: NgDocTextRightDirective, selector: "[ngDocTextRight]" }, { 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", "number"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocFullscreenButtonComponent, decorators: [{
|
|
11
|
+
type: Component,
|
|
12
|
+
args: [{ selector: 'ng-doc-fullscreen-button', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
13
|
+
RouterLink,
|
|
14
|
+
NgDocTextComponent,
|
|
15
|
+
NgDocIconComponent,
|
|
16
|
+
NgDocTextRightDirective,
|
|
17
|
+
NgDocButtonComponent,
|
|
18
|
+
], template: "<a ng-doc-button-text [routerLink]=\"route\" target=\"_blank\">\n\t<span ng-doc-text>\n\t\tOpen demo in a new tab\n\t\t<ng-doc-icon icon=\"external-link\" ngDocTextRight></ng-doc-icon>\n\t</span>\n</a>\n", styles: [":host{display:flex;align-items:center;justify-content:center;padding:calc(var(--ng-doc-base-gutter) * 2) calc(var(--ng-doc-base-gutter) * 2)}\n"] }]
|
|
19
|
+
}], propDecorators: { route: [{
|
|
20
|
+
type: Input,
|
|
21
|
+
args: [{ required: true }]
|
|
22
|
+
}] } });
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Generated bundle index. Do not edit.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
export { NgDocFullscreenButtonComponent };
|
|
29
|
+
//# sourceMappingURL=ng-doc-app-components-fullscreen-button.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-doc-app-components-fullscreen-button.mjs","sources":["../../../../libs/app/components/fullscreen-button/fullscreen-button.component.ts","../../../../libs/app/components/fullscreen-button/fullscreen-button.component.html","../../../../libs/app/components/fullscreen-button/ng-doc-app-components-fullscreen-button.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport {\n\tNgDocButtonComponent,\n\tNgDocIconComponent,\n\tNgDocTextComponent,\n\tNgDocTextRightDirective,\n} from '@ng-doc/ui-kit';\n\n@Component({\n\tselector: 'ng-doc-fullscreen-button',\n\tstandalone: true,\n\ttemplateUrl: './fullscreen-button.component.html',\n\tstyleUrls: ['./fullscreen-button.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [\n\t\tRouterLink,\n\t\tNgDocTextComponent,\n\t\tNgDocIconComponent,\n\t\tNgDocTextRightDirective,\n\t\tNgDocButtonComponent,\n\t],\n})\nexport class NgDocFullscreenButtonComponent {\n\t@Input({ required: true })\n\troute!: string;\n}\n","<a ng-doc-button-text [routerLink]=\"route\" target=\"_blank\">\n\t<span ng-doc-text>\n\t\tOpen demo in a new tab\n\t\t<ng-doc-icon icon=\"external-link\" ngDocTextRight></ng-doc-icon>\n\t</span>\n</a>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AASA,MAca,8BAA8B,CAAA;8GAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvB3C,6MAMA,EAAA,MAAA,EAAA,CAAA,iJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDUE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,kBAAkB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,oBAAoB,EAAA,QAAA,EAAA,+IAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAGT,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAd1C,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,cACxB,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA;wBACR,UAAU;wBACV,kBAAkB;wBAClB,kBAAkB;wBAClB,uBAAuB;wBACvB,oBAAoB;AACpB,qBAAA,EAAA,QAAA,EAAA,6MAAA,EAAA,MAAA,EAAA,CAAA,iJAAA,CAAA,EAAA,CAAA;8BAID,KAAK,EAAA,CAAA;sBADJ,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;AExB1B;;AAEG;;;;"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { __decorate } from 'tslib';
|
|
1
2
|
import { NgIf, NgComponentOutlet } from '@angular/common';
|
|
2
3
|
import * as i0 from '@angular/core';
|
|
3
4
|
import { inject, ElementRef, ViewContainerRef, Component, ChangeDetectionStrategy, ViewChild } from '@angular/core';
|
|
4
|
-
import { Router, ActivatedRoute,
|
|
5
|
+
import { Router, ActivatedRoute, RouterOutlet } from '@angular/router';
|
|
5
6
|
import { NgDocRootPage } from '@ng-doc/app/classes/root-page';
|
|
6
7
|
import { NgDocBreadcrumbComponent } from '@ng-doc/app/components/breadcrumb';
|
|
7
8
|
import { NgDocTocComponent } from '@ng-doc/app/components/toc';
|
|
@@ -12,9 +13,10 @@ import { provideTypeControl } from '@ng-doc/app/providers/type-control';
|
|
|
12
13
|
import { NG_DOC_PAGE_SKELETON, NG_DOC_CONTEXT } from '@ng-doc/app/tokens';
|
|
13
14
|
import { NgDocTypeAliasControlComponent, NgDocStringControlComponent, NgDocNumberControlComponent, NgDocBooleanControlComponent } from '@ng-doc/app/type-controls';
|
|
14
15
|
import { isPresent } from '@ng-doc/core';
|
|
15
|
-
import { NgDocButtonIconComponent, NgDocTooltipDirective, NgDocIconComponent, NgDocTextComponent, NgDocTextLeftDirective, NgDocTextRightDirective, NgDocMediaQueryDirective } from '@ng-doc/ui-kit';
|
|
16
|
+
import { NgDocButtonIconComponent, NgDocTooltipDirective, NgDocIconComponent, DialogOutletComponent, NgDocTextComponent, NgDocTextLeftDirective, NgDocTextRightDirective, NgDocMediaQueryDirective } from '@ng-doc/ui-kit';
|
|
17
|
+
import { UntilDestroy } from '@ngneat/until-destroy';
|
|
16
18
|
|
|
17
|
-
class NgDocPageComponent {
|
|
19
|
+
let NgDocPageComponent = class NgDocPageComponent {
|
|
18
20
|
constructor() {
|
|
19
21
|
this.rootPage = inject(NgDocRootPage);
|
|
20
22
|
this.skeleton = inject(NG_DOC_PAGE_SKELETON);
|
|
@@ -39,7 +41,7 @@ class NgDocPageComponent {
|
|
|
39
41
|
Promise.resolve().then(() => {
|
|
40
42
|
if (this.pageToc && this.skeleton.toc) {
|
|
41
43
|
createComponent(this.pageToc, this.skeleton.toc, {
|
|
42
|
-
tableOfContent: generateToc(this.pageContainer.nativeElement),
|
|
44
|
+
tableOfContent: generateToc(this.pageContainer.nativeElement) ?? [],
|
|
43
45
|
});
|
|
44
46
|
}
|
|
45
47
|
});
|
|
@@ -66,8 +68,11 @@ class NgDocPageComponent {
|
|
|
66
68
|
provideTypeControl('string', NgDocStringControlComponent, { order: 20 }),
|
|
67
69
|
provideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),
|
|
68
70
|
provideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),
|
|
69
|
-
], viewQueries: [{ propertyName: "pageContainer", first: true, predicate: ["pageContainer"], descendants: true, read: ElementRef, static: true }, { propertyName: "pageBreadcrumbs", first: true, predicate: ["pageBreadcrumbs"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageNavigation", first: true, predicate: ["pageNavigation"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageToc", first: true, predicate: ["pageToc"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[innerHTML]=\"rootPage.pageContent | ngDocSanitizeHtml\"\n\t\tngDocPageProcessor\n\t\t#pageContainer></div>\n\n\t<ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-container #pageToc></ng-container>\n", styles: [":host{display:flex;--ng-doc-toc-margin: calc(var(--ng-doc-base-gutter) * 5)}:host article{position:relative;width:var(--ng-doc-article-width, 100%);margin-left:auto;margin-right:auto;overflow:hidden}:host article .ng-doc-page-controls{position:absolute;display:flex;grid-gap:var(--ng-doc-base-gutter);top:0;right:0}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { 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: "pipe", type: NgDocSanitizeHtmlPipe, name: "ngDocSanitizeHtml" }, { kind: "directive", type: NgDocPageProcessorDirective, selector: "[ngDocPageProcessor]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
70
|
-
}
|
|
71
|
+
], viewQueries: [{ propertyName: "pageContainer", first: true, predicate: ["pageContainer"], descendants: true, read: ElementRef, static: true }, { propertyName: "pageBreadcrumbs", first: true, predicate: ["pageBreadcrumbs"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageNavigation", first: true, predicate: ["pageNavigation"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageToc", first: true, predicate: ["pageToc"], descendants: true, read: ViewContainerRef }, { propertyName: "childOutlet", first: true, predicate: ["childOutlet"], descendants: true }], ngImport: i0, template: "<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[innerHTML]=\"rootPage.pageContent | ngDocSanitizeHtml\"\n\t\tngDocPageProcessor\n\t\t#pageContainer></div>\n\n\t<ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-doc-dialog-outlet [config]=\"{ width: '100vw', height: '100vh' }\">\n\t<div class=\"ng-doc-fullscreen-wrapper\">\n\t\t<router-outlet></router-outlet>\n\t</div>\n</ng-doc-dialog-outlet>\n\n<ng-container #pageToc></ng-container>\n", styles: [":host{display:flex;--ng-doc-toc-margin: calc(var(--ng-doc-base-gutter) * 5)}:host article{position:relative;width:var(--ng-doc-article-width, 100%);margin-left:auto;margin-right:auto;overflow:hidden}:host article .ng-doc-page-controls{position:absolute;display:flex;grid-gap:var(--ng-doc-base-gutter);top:0;right:0}.ng-doc-fullscreen-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { 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: "pipe", type: NgDocSanitizeHtmlPipe, name: "ngDocSanitizeHtml" }, { kind: "directive", type: NgDocPageProcessorDirective, selector: "[ngDocPageProcessor]" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: DialogOutletComponent, selector: "ng-doc-dialog-outlet", inputs: ["config"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
72
|
+
};
|
|
73
|
+
NgDocPageComponent = __decorate([
|
|
74
|
+
UntilDestroy()
|
|
75
|
+
], NgDocPageComponent);
|
|
71
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocPageComponent, decorators: [{
|
|
72
77
|
type: Component,
|
|
73
78
|
args: [{ selector: 'ng-doc-page', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
@@ -76,7 +81,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
76
81
|
NgDocButtonIconComponent,
|
|
77
82
|
NgDocTooltipDirective,
|
|
78
83
|
NgDocIconComponent,
|
|
79
|
-
RouterLink,
|
|
80
84
|
NgDocTextComponent,
|
|
81
85
|
NgDocTextLeftDirective,
|
|
82
86
|
NgDocTextRightDirective,
|
|
@@ -85,12 +89,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
85
89
|
NgDocSanitizeHtmlPipe,
|
|
86
90
|
NgDocPageProcessorDirective,
|
|
87
91
|
NgComponentOutlet,
|
|
92
|
+
RouterOutlet,
|
|
93
|
+
DialogOutletComponent,
|
|
88
94
|
], providers: [
|
|
89
95
|
provideTypeControl('NgDocTypeAlias', NgDocTypeAliasControlComponent, { order: 10 }),
|
|
90
96
|
provideTypeControl('string', NgDocStringControlComponent, { order: 20 }),
|
|
91
97
|
provideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),
|
|
92
98
|
provideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),
|
|
93
|
-
], template: "<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[innerHTML]=\"rootPage.pageContent | ngDocSanitizeHtml\"\n\t\tngDocPageProcessor\n\t\t#pageContainer></div>\n\n\t<ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-container #pageToc></ng-container>\n", styles: [":host{display:flex;--ng-doc-toc-margin: calc(var(--ng-doc-base-gutter) * 5)}:host article{position:relative;width:var(--ng-doc-article-width, 100%);margin-left:auto;margin-right:auto;overflow:hidden}:host article .ng-doc-page-controls{position:absolute;display:flex;grid-gap:var(--ng-doc-base-gutter);top:0;right:0}\n"] }]
|
|
99
|
+
], template: "<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[innerHTML]=\"rootPage.pageContent | ngDocSanitizeHtml\"\n\t\tngDocPageProcessor\n\t\t#pageContainer></div>\n\n\t<ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-doc-dialog-outlet [config]=\"{ width: '100vw', height: '100vh' }\">\n\t<div class=\"ng-doc-fullscreen-wrapper\">\n\t\t<router-outlet></router-outlet>\n\t</div>\n</ng-doc-dialog-outlet>\n\n<ng-container #pageToc></ng-container>\n", styles: [":host{display:flex;--ng-doc-toc-margin: calc(var(--ng-doc-base-gutter) * 5)}:host article{position:relative;width:var(--ng-doc-article-width, 100%);margin-left:auto;margin-right:auto;overflow:hidden}:host article .ng-doc-page-controls{position:absolute;display:flex;grid-gap:var(--ng-doc-base-gutter);top:0;right:0}.ng-doc-fullscreen-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}\n"] }]
|
|
94
100
|
}], propDecorators: { pageContainer: [{
|
|
95
101
|
type: ViewChild,
|
|
96
102
|
args: ['pageContainer', { read: ElementRef, static: true }]
|
|
@@ -103,6 +109,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
103
109
|
}], pageToc: [{
|
|
104
110
|
type: ViewChild,
|
|
105
111
|
args: ['pageToc', { read: ViewContainerRef }]
|
|
112
|
+
}], childOutlet: [{
|
|
113
|
+
type: ViewChild,
|
|
114
|
+
args: ['childOutlet']
|
|
106
115
|
}] } });
|
|
107
116
|
|
|
108
117
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-app-components-page.mjs","sources":["../../../../libs/app/components/page/page.component.ts","../../../../libs/app/components/page/page.component.html","../../../../libs/app/components/page/ng-doc-app-components-page.ts"],"sourcesContent":["import { NgComponentOutlet, NgIf } from '@angular/common';\nimport {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tinject,\n\tViewChild,\n\tViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute, Router, RouterLink, UrlTree } from '@angular/router';\nimport { NgDocRootPage } from '@ng-doc/app/classes/root-page';\nimport { NgDocBreadcrumbComponent } from '@ng-doc/app/components/breadcrumb';\nimport { NgDocTocComponent } from '@ng-doc/app/components/toc';\nimport { createComponent, generateToc } from '@ng-doc/app/helpers';\nimport {\n\tNgDocContext,\n\tNgDocNavigation,\n\tNgDocPageNavigation,\n\tNgDocPageSkeleton,\n} from '@ng-doc/app/interfaces';\nimport { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes/sanitize-html';\nimport { NgDocPageProcessorDirective } from '@ng-doc/app/processors';\nimport { provideTypeControl } from '@ng-doc/app/providers/type-control';\nimport { NG_DOC_CONTEXT, NG_DOC_PAGE_SKELETON } from '@ng-doc/app/tokens';\nimport {\n\tNgDocBooleanControlComponent,\n\tNgDocNumberControlComponent,\n\tNgDocStringControlComponent,\n\tNgDocTypeAliasControlComponent,\n} from '@ng-doc/app/type-controls';\nimport { isPresent } from '@ng-doc/core';\nimport {\n\tNgDocButtonIconComponent,\n\tNgDocIconComponent,\n\tNgDocMediaQueryDirective,\n\tNgDocTextComponent,\n\tNgDocTextLeftDirective,\n\tNgDocTextRightDirective,\n\tNgDocTooltipDirective,\n} from '@ng-doc/ui-kit';\n\n@Component({\n\tselector: 'ng-doc-page',\n\ttemplateUrl: './page.component.html',\n\tstyleUrls: ['./page.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgIf,\n\t\tNgDocBreadcrumbComponent,\n\t\tNgDocButtonIconComponent,\n\t\tNgDocTooltipDirective,\n\t\tNgDocIconComponent,\n\t\tRouterLink,\n\t\tNgDocTextComponent,\n\t\tNgDocTextLeftDirective,\n\t\tNgDocTextRightDirective,\n\t\tNgDocMediaQueryDirective,\n\t\tNgDocTocComponent,\n\t\tNgDocSanitizeHtmlPipe,\n\t\tNgDocPageProcessorDirective,\n\t\tNgComponentOutlet,\n\t],\n\tproviders: [\n\t\tprovideTypeControl('NgDocTypeAlias', NgDocTypeAliasControlComponent, { order: 10 }),\n\t\tprovideTypeControl('string', NgDocStringControlComponent, { order: 20 }),\n\t\tprovideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),\n\t\tprovideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),\n\t],\n})\nexport class NgDocPageComponent implements AfterViewInit {\n\t@ViewChild('pageContainer', { read: ElementRef, static: true })\n\tpageContainer!: ElementRef<HTMLElement>;\n\n\t@ViewChild('pageBreadcrumbs', { read: ViewContainerRef, static: true })\n\tpageBreadcrumbs!: ViewContainerRef;\n\n\t@ViewChild('pageNavigation', { read: ViewContainerRef, static: true })\n\tpageNavigation!: ViewContainerRef;\n\n\t@ViewChild('pageToc', { read: ViewContainerRef })\n\tpageToc?: ViewContainerRef;\n\n\tprotected rootPage: NgDocRootPage = inject(NgDocRootPage);\n\tprotected skeleton: NgDocPageSkeleton = inject(NG_DOC_PAGE_SKELETON);\n\tprotected context: NgDocContext = inject(NG_DOC_CONTEXT);\n\tprotected router: Router = inject(Router);\n\n\tprivate breadcrumbs: string[] = inject(ActivatedRoute)\n\t\t.pathFromRoot.filter((route: ActivatedRoute) => !route.snapshot.url.length)\n\t\t.map((route: ActivatedRoute) => route.snapshot.title)\n\t\t.filter(isPresent);\n\n\tngAfterViewInit(): void {\n\t\tif (this.rootPage.pageType === 'guide') {\n\t\t\tif (this.skeleton.breadcrumbs) {\n\t\t\t\tcreateComponent(this.pageBreadcrumbs, this.skeleton.breadcrumbs, {\n\t\t\t\t\tbreadcrumbs: this.breadcrumbs,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.skeleton.navigation) {\n\t\t\t\tcreateComponent(this.pageNavigation, this.skeleton.navigation, this.navigationInputs());\n\t\t\t}\n\t\t}\n\n\t\tPromise.resolve().then(() => {\n\t\t\tif (this.pageToc && this.skeleton.toc) {\n\t\t\t\tcreateComponent(this.pageToc, this.skeleton.toc, {\n\t\t\t\t\ttableOfContent: generateToc(this.pageContainer.nativeElement),\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate navigationInputs(): NgDocPageNavigation {\n\t\tconst flatItems = (items: NgDocNavigation[]): NgDocNavigation[] =>\n\t\t\titems\n\t\t\t\t.map((item: NgDocNavigation) => [item.children?.length ? flatItems(item.children) : item])\n\t\t\t\t.flat(2);\n\t\tconst flatPages: NgDocNavigation[] = flatItems(this.context.navigation);\n\n\t\treturn {\n\t\t\tprevPage:\n\t\t\t\tflatPages[flatPages.findIndex((item: NgDocNavigation) => this.url === item.route) - 1],\n\t\t\tnextPage:\n\t\t\t\tflatPages[flatPages.findIndex((item: NgDocNavigation) => this.url === item.route) + 1],\n\t\t};\n\t}\n\n\tprivate get url(): string {\n\t\tconst urlTree: UrlTree = this.router.parseUrl(this.router.url);\n\n\t\turlTree.queryParams = {};\n\t\turlTree.fragment = null;\n\n\t\treturn urlTree.toString();\n\t}\n}\n","<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[innerHTML]=\"rootPage.pageContent | ngDocSanitizeHtml\"\n\t\tngDocPageProcessor\n\t\t#pageContainer></div>\n\n\t<ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-container #pageToc></ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-doc-app-components-page.mjs","sources":["../../../../libs/app/components/page/page.component.ts","../../../../libs/app/components/page/page.component.html","../../../../libs/app/components/page/ng-doc-app-components-page.ts"],"sourcesContent":["import { NgComponentOutlet, NgIf } from '@angular/common';\nimport {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tinject,\n\tTemplateRef,\n\tViewChild,\n\tViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute, Router, RouterOutlet, UrlTree } from '@angular/router';\nimport { NgDocRootPage } from '@ng-doc/app/classes/root-page';\nimport { NgDocBreadcrumbComponent } from '@ng-doc/app/components/breadcrumb';\nimport { NgDocTocComponent } from '@ng-doc/app/components/toc';\nimport { createComponent, generateToc } from '@ng-doc/app/helpers';\nimport {\n\tNgDocContext,\n\tNgDocNavigation,\n\tNgDocPageNavigation,\n\tNgDocPageSkeleton,\n} from '@ng-doc/app/interfaces';\nimport { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes/sanitize-html';\nimport { NgDocPageProcessorDirective } from '@ng-doc/app/processors';\nimport { provideTypeControl } from '@ng-doc/app/providers/type-control';\nimport { NG_DOC_CONTEXT, NG_DOC_PAGE_SKELETON } from '@ng-doc/app/tokens';\nimport {\n\tNgDocBooleanControlComponent,\n\tNgDocNumberControlComponent,\n\tNgDocStringControlComponent,\n\tNgDocTypeAliasControlComponent,\n} from '@ng-doc/app/type-controls';\nimport { isPresent } from '@ng-doc/core';\nimport {\n\tDialogOutletComponent,\n\tNgDocButtonIconComponent,\n\tNgDocIconComponent,\n\tNgDocMediaQueryDirective,\n\tNgDocTextComponent,\n\tNgDocTextLeftDirective,\n\tNgDocTextRightDirective,\n\tNgDocTooltipDirective,\n} from '@ng-doc/ui-kit';\nimport { UntilDestroy } from '@ngneat/until-destroy';\n\n@Component({\n\tselector: 'ng-doc-page',\n\ttemplateUrl: './page.component.html',\n\tstyleUrls: ['./page.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgIf,\n\t\tNgDocBreadcrumbComponent,\n\t\tNgDocButtonIconComponent,\n\t\tNgDocTooltipDirective,\n\t\tNgDocIconComponent,\n\t\tNgDocTextComponent,\n\t\tNgDocTextLeftDirective,\n\t\tNgDocTextRightDirective,\n\t\tNgDocMediaQueryDirective,\n\t\tNgDocTocComponent,\n\t\tNgDocSanitizeHtmlPipe,\n\t\tNgDocPageProcessorDirective,\n\t\tNgComponentOutlet,\n\t\tRouterOutlet,\n\t\tDialogOutletComponent,\n\t],\n\tproviders: [\n\t\tprovideTypeControl('NgDocTypeAlias', NgDocTypeAliasControlComponent, { order: 10 }),\n\t\tprovideTypeControl('string', NgDocStringControlComponent, { order: 20 }),\n\t\tprovideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),\n\t\tprovideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),\n\t],\n})\n@UntilDestroy()\nexport class NgDocPageComponent implements AfterViewInit {\n\t@ViewChild('pageContainer', { read: ElementRef, static: true })\n\tpageContainer!: ElementRef<HTMLElement>;\n\n\t@ViewChild('pageBreadcrumbs', { read: ViewContainerRef, static: true })\n\tpageBreadcrumbs!: ViewContainerRef;\n\n\t@ViewChild('pageNavigation', { read: ViewContainerRef, static: true })\n\tpageNavigation!: ViewContainerRef;\n\n\t@ViewChild('pageToc', { read: ViewContainerRef })\n\tpageToc?: ViewContainerRef;\n\n\t@ViewChild('childOutlet')\n\tchildOutlet?: TemplateRef<never>;\n\n\tprotected rootPage: NgDocRootPage = inject(NgDocRootPage);\n\tprotected skeleton: NgDocPageSkeleton = inject(NG_DOC_PAGE_SKELETON);\n\tprotected context: NgDocContext = inject(NG_DOC_CONTEXT);\n\tprotected router: Router = inject(Router);\n\n\tprivate breadcrumbs: string[] = inject(ActivatedRoute)\n\t\t.pathFromRoot.filter((route: ActivatedRoute) => !route.snapshot.url.length)\n\t\t.map((route: ActivatedRoute) => route.snapshot.title)\n\t\t.filter(isPresent);\n\n\tngAfterViewInit(): void {\n\t\tif (this.rootPage.pageType === 'guide') {\n\t\t\tif (this.skeleton.breadcrumbs) {\n\t\t\t\tcreateComponent(this.pageBreadcrumbs, this.skeleton.breadcrumbs, {\n\t\t\t\t\tbreadcrumbs: this.breadcrumbs,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.skeleton.navigation) {\n\t\t\t\tcreateComponent(this.pageNavigation, this.skeleton.navigation, this.navigationInputs());\n\t\t\t}\n\t\t}\n\n\t\tPromise.resolve().then(() => {\n\t\t\tif (this.pageToc && this.skeleton.toc) {\n\t\t\t\tcreateComponent(this.pageToc, this.skeleton.toc, {\n\t\t\t\t\ttableOfContent: generateToc(this.pageContainer.nativeElement) ?? [],\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate navigationInputs(): NgDocPageNavigation {\n\t\tconst flatItems = (items: NgDocNavigation[]): NgDocNavigation[] =>\n\t\t\titems\n\t\t\t\t.map((item: NgDocNavigation) => [item.children?.length ? flatItems(item.children) : item])\n\t\t\t\t.flat(2);\n\t\tconst flatPages: NgDocNavigation[] = flatItems(this.context.navigation);\n\n\t\treturn {\n\t\t\tprevPage:\n\t\t\t\tflatPages[flatPages.findIndex((item: NgDocNavigation) => this.url === item.route) - 1],\n\t\t\tnextPage:\n\t\t\t\tflatPages[flatPages.findIndex((item: NgDocNavigation) => this.url === item.route) + 1],\n\t\t};\n\t}\n\n\tprivate get url(): string {\n\t\tconst urlTree: UrlTree = this.router.parseUrl(this.router.url);\n\n\t\turlTree.queryParams = {};\n\t\turlTree.fragment = null;\n\n\t\treturn urlTree.toString();\n\t}\n}\n","<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[innerHTML]=\"rootPage.pageContent | ngDocSanitizeHtml\"\n\t\tngDocPageProcessor\n\t\t#pageContainer></div>\n\n\t<ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-doc-dialog-outlet [config]=\"{ width: '100vw', height: '100vh' }\">\n\t<div class=\"ng-doc-fullscreen-wrapper\">\n\t\t<router-outlet></router-outlet>\n\t</div>\n</ng-doc-dialog-outlet>\n\n<ng-container #pageToc></ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -65,7 +65,7 @@ let NgDocPlaygroundDemoComponent = class NgDocPlaygroundDemoComponent {
|
|
|
65
65
|
}
|
|
66
66
|
updateCodeView() {
|
|
67
67
|
const template = this.pipeName
|
|
68
|
-
? buildPlaygroundDemoPipeTemplate(this.configuration?.template ?? '', this.pipeName, this.getActiveContent(), this.
|
|
68
|
+
? buildPlaygroundDemoPipeTemplate(this.configuration?.template ?? '', this.pipeName, this.getActiveContent(), this.getPipeActiveInputs())
|
|
69
69
|
: buildPlaygroundDemoTemplate(this.configuration?.template ?? '', this.selector, this.getActiveContent(), this.getActiveInputs());
|
|
70
70
|
this.code = from(formatHtml(template));
|
|
71
71
|
}
|
|
@@ -87,6 +87,24 @@ let NgDocPlaygroundDemoComponent = class NgDocPlaygroundDemoComponent {
|
|
|
87
87
|
return result;
|
|
88
88
|
}, {});
|
|
89
89
|
}
|
|
90
|
+
getPipeActiveInputs() {
|
|
91
|
+
const formData = this.form?.controls.properties.value ?? {};
|
|
92
|
+
let changedInputIndex = -1;
|
|
93
|
+
return objectKeys(formData)
|
|
94
|
+
.map((key, i) => {
|
|
95
|
+
const value = formData[key];
|
|
96
|
+
const defaultValue = this.demoRef?.instance?.defaultValues[key];
|
|
97
|
+
if (defaultValue !== value) {
|
|
98
|
+
changedInputIndex = i;
|
|
99
|
+
}
|
|
100
|
+
return key;
|
|
101
|
+
})
|
|
102
|
+
.slice(0, changedInputIndex + 1)
|
|
103
|
+
.reduce((result, key, i) => {
|
|
104
|
+
result[key] = stringify(formData[key]).replace(/"/g, `'`);
|
|
105
|
+
return result;
|
|
106
|
+
}, {});
|
|
107
|
+
}
|
|
90
108
|
ngOnDestroy() {
|
|
91
109
|
this.unsubscribe$.next();
|
|
92
110
|
this.unsubscribe$.complete();
|
|
@@ -428,7 +446,12 @@ class NgDocBasePlayground {
|
|
|
428
446
|
}, {});
|
|
429
447
|
}
|
|
430
448
|
else if (this.playgroundInstance) {
|
|
431
|
-
|
|
449
|
+
const defaults = extractFunctionDefaults(this.playgroundInstance.prototype.transform);
|
|
450
|
+
this.defaultValues = Object.keys(this.playgroundContainer.properties ?? {}).reduce((def, key, i) => {
|
|
451
|
+
// we do +1 because the first argument is the `value` of the transform function
|
|
452
|
+
def[key] = defaults[i + 1];
|
|
453
|
+
return def;
|
|
454
|
+
}, {});
|
|
432
455
|
}
|
|
433
456
|
else {
|
|
434
457
|
throw new Error('Playground is not defined or initialized');
|