@ng-doc/app 17.6.16 → 18.0.0-beta.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/classes/root-page/root-page.d.ts +4 -7
- package/components/api-list/api-list.component.d.ts +13 -11
- package/components/breadcrumb/breadcrumb.component.d.ts +0 -1
- package/components/code/code.component.d.ts +2 -7
- package/components/copy-button/copy-button.component.d.ts +12 -0
- package/components/copy-button/index.d.ts +1 -0
- package/components/demo-displayer/demo-displayer.component.d.ts +0 -5
- package/components/heading-anchor/heading-anchor.component.d.ts +9 -0
- package/components/heading-anchor/index.d.ts +1 -0
- package/components/image-viewer/image-viewer.component.d.ts +16 -0
- package/components/image-viewer/index.d.ts +1 -0
- package/components/index.d.ts +7 -0
- package/components/kind-icon/kind-icon.component.d.ts +2 -1
- package/components/mermaid-viewer/index.d.ts +1 -0
- package/components/mermaid-viewer/mermaid-viewer.component.d.ts +17 -0
- package/components/navbar/navbar.component.d.ts +3 -16
- package/components/page/page.component.d.ts +6 -14
- package/components/page-header/index.d.ts +1 -0
- package/components/page-header/page-header.component.d.ts +6 -0
- package/components/page-wrapper/index.d.ts +1 -0
- package/components/page-wrapper/page-wrapper.component.d.ts +22 -0
- package/components/playground/base-playground.d.ts +1 -1
- package/components/playground/playground-demo/playground-demo.component.d.ts +5 -6
- package/components/root/root.component.d.ts +4 -13
- package/components/search/search.component.d.ts +11 -17
- package/components/search-dialog/index.d.ts +1 -0
- package/components/search-dialog/search-dialog.component.d.ts +24 -0
- package/components/sidebar/sidebar-category/sidebar-category.component.d.ts +9 -10
- package/components/sidebar/sidebar-item/sidebar-item.component.d.ts +7 -2
- package/components/sidebar/sidebar.component.d.ts +5 -3
- package/components/theme-toggle/theme-toggle.component.d.ts +4 -5
- package/constants/index.d.ts +0 -1
- package/directives/code-highlighter/code-highlighter.directive.d.ts +11 -10
- package/esm2022/classes/default-search-engine/default-search-engine.mjs +10 -4
- package/esm2022/classes/root-page/root-page.mjs +1 -1
- package/esm2022/components/api-list/api-list.component.mjs +46 -64
- package/esm2022/components/breadcrumb/breadcrumb.component.mjs +7 -9
- package/esm2022/components/code/code.component.mjs +16 -19
- package/esm2022/components/copy-button/copy-button.component.mjs +61 -0
- package/esm2022/components/copy-button/index.mjs +2 -0
- package/esm2022/components/copy-button/ng-doc-app-components-copy-button.mjs +5 -0
- package/esm2022/components/demo/demo.component.mjs +5 -5
- package/esm2022/components/demo-displayer/demo-displayer.component.mjs +9 -14
- package/esm2022/components/demo-pane/demo-pane.component.mjs +5 -5
- package/esm2022/components/fullscreen-button/fullscreen-button.component.mjs +3 -3
- package/esm2022/components/heading-anchor/heading-anchor.component.mjs +38 -0
- package/esm2022/components/heading-anchor/index.mjs +2 -0
- package/esm2022/components/heading-anchor/ng-doc-app-components-heading-anchor.mjs +5 -0
- package/esm2022/components/image-viewer/image-viewer.component.mjs +80 -0
- package/esm2022/components/image-viewer/index.mjs +2 -0
- package/esm2022/components/image-viewer/ng-doc-app-components-image-viewer.mjs +5 -0
- package/esm2022/components/index.mjs +8 -1
- package/esm2022/components/kind-icon/kind-icon.component.mjs +11 -5
- package/esm2022/components/link/link.component.mjs +3 -3
- package/esm2022/components/mermaid-viewer/index.mjs +2 -0
- package/esm2022/components/mermaid-viewer/mermaid-viewer.component.mjs +55 -0
- package/esm2022/components/mermaid-viewer/ng-doc-app-components-mermaid-viewer.mjs +5 -0
- package/esm2022/components/navbar/navbar.component.mjs +12 -32
- package/esm2022/components/page/page.component.mjs +20 -72
- package/esm2022/components/page-header/index.mjs +2 -0
- package/esm2022/components/page-header/ng-doc-app-components-page-header.mjs +5 -0
- package/esm2022/components/page-header/page-header.component.mjs +19 -0
- package/esm2022/components/page-link/page-link.component.mjs +5 -5
- package/esm2022/components/page-navigation/page-navigation.component.mjs +5 -5
- package/esm2022/components/page-wrapper/index.mjs +2 -0
- package/esm2022/components/page-wrapper/ng-doc-app-components-page-wrapper.mjs +5 -0
- package/esm2022/components/page-wrapper/page-wrapper.component.mjs +87 -0
- package/esm2022/components/playground/base-playground.mjs +8 -8
- package/esm2022/components/playground/playground-demo/playground-demo.component.mjs +22 -21
- package/esm2022/components/playground/playground-properties/playground-properties.component.mjs +8 -6
- package/esm2022/components/playground/playground-property/playground-property.component.mjs +4 -4
- package/esm2022/components/playground/playground.component.mjs +6 -6
- package/esm2022/components/root/root.component.mjs +20 -37
- package/esm2022/components/search/search.component.mjs +31 -49
- package/esm2022/components/search-dialog/index.mjs +2 -0
- package/esm2022/components/search-dialog/ng-doc-app-components-search-dialog.mjs +5 -0
- package/esm2022/components/search-dialog/search-dialog.component.mjs +74 -0
- package/esm2022/components/search-result/search-result.component.mjs +4 -4
- package/esm2022/components/sidebar/sidebar-category/sidebar-category.component.mjs +22 -27
- package/esm2022/components/sidebar/sidebar-item/sidebar-item.component.mjs +18 -10
- package/esm2022/components/sidebar/sidebar.component.mjs +14 -13
- package/esm2022/components/tabs/tabs.component.mjs +4 -4
- package/esm2022/components/theme-toggle/theme-toggle.component.mjs +18 -53
- package/esm2022/components/toc/toc-element/toc-element.component.mjs +5 -5
- package/esm2022/components/toc/toc.component.mjs +37 -35
- package/esm2022/constants/index.mjs +1 -2
- package/esm2022/defaults/default-processors/default-processors.mjs +7 -4
- package/esm2022/directives/code-highlighter/code-highlighter.directive.mjs +18 -36
- package/esm2022/directives/route-active/route-active.directive.mjs +3 -3
- package/esm2022/helpers/as-boolean.mjs +1 -1
- package/esm2022/helpers/create-component.mjs +1 -1
- package/esm2022/helpers/generate-toc.mjs +5 -5
- package/esm2022/interfaces/navigation.mjs +1 -1
- package/esm2022/interfaces/processor-options.mjs +1 -1
- package/esm2022/interfaces/toc-item.mjs +1 -1
- package/esm2022/interfaces/type-control.mjs +1 -1
- package/esm2022/pipes/decode-uri-component/decode-uri-component.pipe.mjs +4 -4
- package/esm2022/pipes/extract-value/extract-value.pipe.mjs +3 -3
- package/esm2022/pipes/filter-by-text/filter-by-text.pipe.mjs +3 -3
- package/esm2022/pipes/sanitize-html/sanitize-html.pipe.mjs +3 -3
- package/esm2022/processors/page-processor/index.mjs +2 -2
- package/esm2022/processors/page-processor/page-processor.component.mjs +74 -0
- package/esm2022/processors/processors/blockquote.processor.mjs +2 -1
- package/esm2022/processors/processors/code.processor.mjs +3 -5
- package/esm2022/processors/processors/demo.processor.mjs +2 -2
- package/esm2022/processors/processors/heading-anchor.processor.mjs +12 -0
- package/esm2022/processors/processors/image.processor.mjs +19 -0
- package/esm2022/processors/processors/index.mjs +6 -3
- package/esm2022/processors/processors/link/index.mjs +2 -0
- package/esm2022/processors/processors/link/link.processor.mjs +13 -0
- package/esm2022/processors/processors/link/ng-doc-app-processors-processors-link.mjs +5 -0
- package/esm2022/processors/processors/mermaid.processor.mjs +11 -0
- package/esm2022/processors/processors/playground.processor.mjs +2 -2
- package/esm2022/processors/processors/tooltip/index.mjs +2 -0
- package/esm2022/processors/processors/tooltip/ng-doc-app-processors-processors-tooltip.mjs +5 -0
- package/esm2022/processors/processors/tooltip/tooltip.processor.mjs +56 -0
- package/esm2022/providers/index.mjs +2 -1
- package/esm2022/providers/mermaid/index.mjs +2 -0
- package/esm2022/providers/mermaid/ng-doc-app-providers-mermaid.mjs +5 -0
- package/esm2022/providers/mermaid/provide-mermaid.mjs +16 -0
- package/esm2022/providers/ng-doc-app/provide-ng-doc-app.mjs +12 -35
- package/esm2022/providers/playground-demo/provide-playground-demo.mjs +1 -1
- package/esm2022/providers/search-engine/provide-search-engine.mjs +2 -2
- package/esm2022/providers/type-control/provide-type-control.mjs +1 -1
- package/esm2022/services/highlighter/highlighter.service.mjs +39 -0
- package/esm2022/services/highlighter/index.mjs +2 -0
- package/esm2022/services/highlighter/ng-doc-app-services-highlighter.mjs +5 -0
- package/esm2022/services/index.mjs +2 -2
- package/esm2022/services/sidebar/sidebar.service.mjs +35 -50
- package/esm2022/services/store/store.service.mjs +3 -3
- package/esm2022/services/theme/theme.service.mjs +28 -127
- package/esm2022/tokens/index.mjs +4 -2
- package/esm2022/tokens/mermaid.mjs +3 -0
- package/esm2022/tokens/page-processor.mjs +2 -2
- package/esm2022/tokens/route-prefix.mjs +3 -0
- package/esm2022/tokens/shiki-theme.mjs +3 -0
- package/esm2022/type-controls/boolean-control/boolean-control.component.mjs +3 -3
- package/esm2022/type-controls/number-control/number-control.component.mjs +5 -5
- package/esm2022/type-controls/string-control/string-control.component.mjs +5 -5
- package/esm2022/type-controls/type-alias-control/type-alias-control.component.mjs +5 -5
- package/fesm2022/ng-doc-app-classes-default-search-engine.mjs +10 -4
- 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-components-api-list.mjs +47 -64
- package/fesm2022/ng-doc-app-components-api-list.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-breadcrumb.mjs +6 -8
- package/fesm2022/ng-doc-app-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-code.mjs +16 -18
- package/fesm2022/ng-doc-app-components-code.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-copy-button.mjs +68 -0
- package/fesm2022/ng-doc-app-components-copy-button.mjs.map +1 -0
- package/fesm2022/ng-doc-app-components-demo-displayer.mjs +8 -12
- package/fesm2022/ng-doc-app-components-demo-displayer.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-demo-pane.mjs +4 -4
- package/fesm2022/ng-doc-app-components-demo-pane.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-demo.mjs +4 -4
- 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-heading-anchor.mjs +45 -0
- package/fesm2022/ng-doc-app-components-heading-anchor.mjs.map +1 -0
- package/fesm2022/ng-doc-app-components-image-viewer.mjs +87 -0
- package/fesm2022/ng-doc-app-components-image-viewer.mjs.map +1 -0
- package/fesm2022/ng-doc-app-components-kind-icon.mjs +10 -4
- 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-mermaid-viewer.mjs +62 -0
- package/fesm2022/ng-doc-app-components-mermaid-viewer.mjs.map +1 -0
- package/fesm2022/ng-doc-app-components-navbar.mjs +12 -32
- package/fesm2022/ng-doc-app-components-navbar.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-page-header.mjs +26 -0
- package/fesm2022/ng-doc-app-components-page-header.mjs.map +1 -0
- package/fesm2022/ng-doc-app-components-page-link.mjs +4 -4
- package/fesm2022/ng-doc-app-components-page-link.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-page-navigation.mjs +4 -4
- package/fesm2022/ng-doc-app-components-page-navigation.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-page-wrapper.mjs +94 -0
- package/fesm2022/ng-doc-app-components-page-wrapper.mjs.map +1 -0
- package/fesm2022/ng-doc-app-components-page.mjs +19 -71
- package/fesm2022/ng-doc-app-components-page.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-playground.mjs +43 -38
- package/fesm2022/ng-doc-app-components-playground.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-root.mjs +18 -35
- package/fesm2022/ng-doc-app-components-root.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-search-dialog.mjs +81 -0
- package/fesm2022/ng-doc-app-components-search-dialog.mjs.map +1 -0
- 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 +30 -48
- package/fesm2022/ng-doc-app-components-search.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-sidebar.mjs +49 -44
- 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 +17 -51
- package/fesm2022/ng-doc-app-components-theme-toggle.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-toc.mjs +40 -38
- package/fesm2022/ng-doc-app-components-toc.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components.mjs +7 -0
- package/fesm2022/ng-doc-app-components.mjs.map +1 -1
- package/fesm2022/ng-doc-app-constants.mjs +1 -37
- package/fesm2022/ng-doc-app-constants.mjs.map +1 -1
- package/fesm2022/ng-doc-app-defaults-default-processors.mjs +6 -3
- package/fesm2022/ng-doc-app-defaults-default-processors.mjs.map +1 -1
- package/fesm2022/ng-doc-app-directives-code-highlighter.mjs +17 -35
- 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-helpers.mjs +4 -4
- package/fesm2022/ng-doc-app-helpers.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-filter-by-text.mjs +3 -3
- package/fesm2022/ng-doc-app-pipes-sanitize-html.mjs +3 -3
- package/fesm2022/ng-doc-app-processors-page-processor.mjs +20 -14
- package/fesm2022/ng-doc-app-processors-page-processor.mjs.map +1 -1
- package/fesm2022/ng-doc-app-processors-processors-link.mjs +20 -0
- package/fesm2022/ng-doc-app-processors-processors-link.mjs.map +1 -0
- package/fesm2022/ng-doc-app-processors-processors-tooltip.mjs +63 -0
- package/fesm2022/ng-doc-app-processors-processors-tooltip.mjs.map +1 -0
- package/fesm2022/ng-doc-app-processors-processors.mjs +45 -70
- package/fesm2022/ng-doc-app-processors-processors.mjs.map +1 -1
- package/fesm2022/ng-doc-app-providers-mermaid.mjs +23 -0
- package/fesm2022/ng-doc-app-providers-mermaid.mjs.map +1 -0
- package/fesm2022/ng-doc-app-providers-ng-doc-app.mjs +11 -34
- package/fesm2022/ng-doc-app-providers-ng-doc-app.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 +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 +1 -0
- package/fesm2022/ng-doc-app-providers.mjs.map +1 -1
- package/fesm2022/ng-doc-app-services-highlighter.mjs +46 -0
- package/fesm2022/ng-doc-app-services-highlighter.mjs.map +1 -0
- package/fesm2022/ng-doc-app-services-sidebar.mjs +35 -50
- 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-theme.mjs +27 -126
- package/fesm2022/ng-doc-app-services-theme.mjs.map +1 -1
- package/fesm2022/ng-doc-app-services.mjs +1 -1
- package/fesm2022/ng-doc-app-tokens.mjs +8 -4
- 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-number-control.mjs +4 -4
- package/fesm2022/ng-doc-app-type-controls-number-control.mjs.map +1 -1
- package/fesm2022/ng-doc-app-type-controls-string-control.mjs +4 -4
- package/fesm2022/ng-doc-app-type-controls-string-control.mjs.map +1 -1
- package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs +4 -4
- package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs.map +1 -1
- package/interfaces/navigation.d.ts +7 -1
- package/interfaces/processor-options.d.ts +4 -1
- package/package.json +104 -29
- package/processors/page-processor/index.d.ts +1 -1
- package/processors/page-processor/{page-processor.directive.d.ts → page-processor.component.d.ts} +7 -6
- package/processors/processors/heading-anchor.processor.d.ts +3 -0
- package/processors/processors/image.processor.d.ts +3 -0
- package/processors/processors/index.d.ts +5 -2
- package/processors/processors/link/index.d.ts +1 -0
- package/processors/processors/mermaid.processor.d.ts +3 -0
- package/processors/processors/tooltip/index.d.ts +1 -0
- package/providers/index.d.ts +1 -0
- package/providers/mermaid/index.d.ts +1 -0
- package/providers/mermaid/provide-mermaid.d.ts +7 -0
- package/providers/ng-doc-app/provide-ng-doc-app.d.ts +5 -10
- package/providers/playground-demo/provide-playground-demo.d.ts +1 -1
- package/providers/search-engine/provide-search-engine.d.ts +1 -1
- package/providers/type-control/provide-type-control.d.ts +1 -1
- package/services/highlighter/highlighter.service.d.ts +24 -0
- package/services/highlighter/index.d.ts +1 -0
- package/services/index.d.ts +1 -1
- package/services/sidebar/sidebar.service.d.ts +4 -10
- package/services/theme/theme.service.d.ts +9 -37
- package/styles/global.css +161 -132
- package/styles/main.css +150 -106
- package/styles/themes/dark.css +71 -0
- package/tokens/index.d.ts +3 -1
- package/tokens/mermaid.d.ts +3 -0
- package/tokens/page-processor.d.ts +1 -1
- package/tokens/route-prefix.d.ts +2 -0
- package/tokens/shiki-theme.d.ts +6 -0
- package/assets/themes/ng-doc-night.css +0 -111
- package/constants/themes.d.ts +0 -33
- package/esm2022/constants/themes.mjs +0 -36
- package/esm2022/processors/page-processor/page-processor.directive.mjs +0 -68
- package/esm2022/processors/processors/link.processor.mjs +0 -13
- package/esm2022/processors/processors/tooltip.processor.mjs +0 -56
- package/esm2022/tokens/api-list.mjs +0 -3
- package/tokens/api-list.d.ts +0 -3
- /package/processors/processors/{link.processor.d.ts → link/link.processor.d.ts} +0 -0
- /package/processors/processors/{tooltip.processor.d.ts → tooltip/tooltip.processor.d.ts} +0 -0
|
@@ -37,10 +37,10 @@ class NgDocDemoComponent {
|
|
|
37
37
|
}
|
|
38
38
|
return [];
|
|
39
39
|
}
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
41
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocDemoComponent, deps: [{ token: i1.NgDocRootPage }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
41
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", 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 <ng-doc-demo-displayer [codeContent]=\"codeContent\" [expanded]=\"!!options.expanded\">\n <ng-container *ngTemplateOutlet=\"demoTemplate\"></ng-container>\n <ng-template #codeContent>\n <ng-container *ngIf=\"assets.length === 1\">\n <ng-doc-code *ngFor=\"let asset of assets\" [html]=\"asset.code\"></ng-doc-code>\n </ng-container>\n\n <ng-container *ngIf=\"assets.length > 1\">\n <ng-doc-tab-group [openedTab]=\"(getOpenedAssetId | execute: assets) ?? options.defaultTab\">\n <ng-doc-tab\n *ngFor=\"let asset of assets\"\n [id]=\"asset.title\"\n [label]=\"label\"\n [content]=\"assetContent\">\n <ng-template #label>\n <ng-doc-icon [customIcon]=\"asset.icon\" *ngIf=\"asset.icon\"></ng-doc-icon>\n {{ asset.title }}\n </ng-template>\n <ng-template #assetContent>\n <ng-doc-code [html]=\"asset.code\"></ng-doc-code>\n </ng-template>\n </ng-doc-tab>\n </ng-doc-tab-group>\n </ng-container>\n </ng-template>\n </ng-doc-demo-displayer>\n</ng-container>\n\n<ng-template #demoTemplate>\n @if (options.fullscreenRoute) {\n <ng-doc-fullscreen-button [route]=\"options.fullscreenRoute!\"></ng-doc-fullscreen-button>\n } @else if (demo) {\n <ng-container *ngComponentOutlet=\"demo; inputs: options.inputs\"></ng-container>\n }\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"] }, { kind: "component", type: NgDocTabGroupComponent, selector: "ng-doc-tab-group", inputs: ["openedTab"] }, { kind: "component", type: NgDocTabComponent, selector: "ng-doc-tab, a[ng-doc-tab]", inputs: ["label", "id", "content"] }, { 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"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
42
42
|
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocDemoComponent, decorators: [{
|
|
44
44
|
type: Component,
|
|
45
45
|
args: [{ selector: 'ng-doc-demo', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
46
46
|
NgIf,
|
|
@@ -54,7 +54,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
54
54
|
NgDocExecutePipe,
|
|
55
55
|
NgDocFullscreenButtonComponent,
|
|
56
56
|
NgComponentOutlet,
|
|
57
|
-
], template: "<ng-container *ngIf=\"options.container ?? true; else demoTemplate\">\n
|
|
57
|
+
], template: "<ng-container *ngIf=\"options.container ?? true; else demoTemplate\">\n <ng-doc-demo-displayer [codeContent]=\"codeContent\" [expanded]=\"!!options.expanded\">\n <ng-container *ngTemplateOutlet=\"demoTemplate\"></ng-container>\n <ng-template #codeContent>\n <ng-container *ngIf=\"assets.length === 1\">\n <ng-doc-code *ngFor=\"let asset of assets\" [html]=\"asset.code\"></ng-doc-code>\n </ng-container>\n\n <ng-container *ngIf=\"assets.length > 1\">\n <ng-doc-tab-group [openedTab]=\"(getOpenedAssetId | execute: assets) ?? options.defaultTab\">\n <ng-doc-tab\n *ngFor=\"let asset of assets\"\n [id]=\"asset.title\"\n [label]=\"label\"\n [content]=\"assetContent\">\n <ng-template #label>\n <ng-doc-icon [customIcon]=\"asset.icon\" *ngIf=\"asset.icon\"></ng-doc-icon>\n {{ asset.title }}\n </ng-template>\n <ng-template #assetContent>\n <ng-doc-code [html]=\"asset.code\"></ng-doc-code>\n </ng-template>\n </ng-doc-tab>\n </ng-doc-tab-group>\n </ng-container>\n </ng-template>\n </ng-doc-demo-displayer>\n</ng-container>\n\n<ng-template #demoTemplate>\n @if (options.fullscreenRoute) {\n <ng-doc-fullscreen-button [route]=\"options.fullscreenRoute!\"></ng-doc-fullscreen-button>\n } @else if (demo) {\n <ng-container *ngComponentOutlet=\"demo; inputs: options.inputs\"></ng-container>\n }\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"] }]
|
|
58
58
|
}], ctorParameters: () => [{ type: i1.NgDocRootPage }], propDecorators: { componentName: [{
|
|
59
59
|
type: Input
|
|
60
60
|
}], 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 { NgComponentOutlet, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n
|
|
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 { NgComponentOutlet, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnInit,\n Type,\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 NgDocExecutePipe,\n NgDocIconComponent,\n NgDocTabComponent,\n NgDocTabGroupComponent,\n} from '@ng-doc/ui-kit';\n\n@Component({\n selector: 'ng-doc-demo',\n templateUrl: './demo.component.html',\n styleUrls: ['./demo.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n NgIf,\n NgDocDemoDisplayerComponent,\n NgTemplateOutlet,\n NgFor,\n NgDocCodeComponent,\n NgDocTabGroupComponent,\n NgDocTabComponent,\n NgDocIconComponent,\n NgDocExecutePipe,\n NgDocFullscreenButtonComponent,\n NgComponentOutlet,\n ],\n})\nexport class NgDocDemoComponent implements OnInit {\n @Input()\n componentName?: string;\n\n @Input()\n options: NgDocDemoActionOptions = {};\n\n demo?: Type<unknown>;\n assets: NgDocDemoAsset[] = [];\n\n constructor(private readonly rootPage: NgDocRootPage) {}\n\n @HostBinding('class')\n protected get classes(): string | string[] {\n return this.options.class ?? '';\n }\n\n ngOnInit(): void {\n this.demo = this.getDemo();\n this.assets = this.getAssets();\n }\n\n getOpenedAssetId(assets: NgDocDemoAsset[]): string | undefined {\n return assets.find((asset: NgDocDemoAsset) => asset.opened)?.title;\n }\n\n private getDemo(): Type<unknown> | undefined {\n if (this.componentName) {\n return this.rootPage.page?.demos && this.rootPage.page.demos[this.componentName];\n }\n\n return undefined;\n }\n\n private getAssets(): NgDocDemoAsset[] {\n if (this.componentName) {\n return (\n (this.rootPage.demoAssets && this.rootPage.demoAssets[this.componentName]) ??\n []\n ).filter(\n (asset: NgDocDemoAsset) =>\n !this.options.tabs?.length || asArray(this.options.tabs).includes(asset.title),\n );\n }\n\n return [];\n }\n}\n","<ng-container *ngIf=\"options.container ?? true; else demoTemplate\">\n <ng-doc-demo-displayer [codeContent]=\"codeContent\" [expanded]=\"!!options.expanded\">\n <ng-container *ngTemplateOutlet=\"demoTemplate\"></ng-container>\n <ng-template #codeContent>\n <ng-container *ngIf=\"assets.length === 1\">\n <ng-doc-code *ngFor=\"let asset of assets\" [html]=\"asset.code\"></ng-doc-code>\n </ng-container>\n\n <ng-container *ngIf=\"assets.length > 1\">\n <ng-doc-tab-group [openedTab]=\"(getOpenedAssetId | execute: assets) ?? options.defaultTab\">\n <ng-doc-tab\n *ngFor=\"let asset of assets\"\n [id]=\"asset.title\"\n [label]=\"label\"\n [content]=\"assetContent\">\n <ng-template #label>\n <ng-doc-icon [customIcon]=\"asset.icon\" *ngIf=\"asset.icon\"></ng-doc-icon>\n {{ asset.title }}\n </ng-template>\n <ng-template #assetContent>\n <ng-doc-code [html]=\"asset.code\"></ng-doc-code>\n </ng-template>\n </ng-doc-tab>\n </ng-doc-tab-group>\n </ng-container>\n </ng-template>\n </ng-doc-demo-displayer>\n</ng-container>\n\n<ng-template #demoTemplate>\n @if (options.fullscreenRoute) {\n <ng-doc-fullscreen-button [route]=\"options.fullscreenRoute!\"></ng-doc-fullscreen-button>\n } @else if (demo) {\n <ng-container *ngComponentOutlet=\"demo; inputs: options.inputs\"></ng-container>\n }\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,10 @@ import { RouterLink } from '@angular/router';
|
|
|
4
4
|
import { NgDocTextComponent, NgDocIconComponent, NgDocTextRightDirective, NgDocButtonComponent } from '@ng-doc/ui-kit';
|
|
5
5
|
|
|
6
6
|
class NgDocFullscreenButtonComponent {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocFullscreenButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", 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", "info", "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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocFullscreenButtonComponent, decorators: [{
|
|
11
11
|
type: Component,
|
|
12
12
|
args: [{ selector: 'ng-doc-fullscreen-button', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
13
13
|
RouterLink,
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, Component, ChangeDetectionStrategy, Input, HostBinding } from '@angular/core';
|
|
3
|
+
import { NgDocCopyButtonComponent } from '@ng-doc/app/components/copy-button';
|
|
4
|
+
import { NgDocIconComponent, NgDocButtonIconComponent } from '@ng-doc/ui-kit';
|
|
5
|
+
import { LOCATION } from '@ng-web-apis/common';
|
|
6
|
+
|
|
7
|
+
class NgDocHeadingAnchorComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.classes = [];
|
|
10
|
+
this.location = inject(LOCATION);
|
|
11
|
+
}
|
|
12
|
+
get href() {
|
|
13
|
+
const { origin, pathname } = this.location;
|
|
14
|
+
return `${origin}${pathname}#${this.anchor}`;
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocHeadingAnchorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: NgDocHeadingAnchorComponent, isStandalone: true, selector: "ng-doc-heading-anchor", inputs: { anchor: "anchor", classes: "classes" }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: `
|
|
18
|
+
<ng-doc-copy-button [text]="href">
|
|
19
|
+
<ng-doc-icon icon="link-2"></ng-doc-icon>
|
|
20
|
+
</ng-doc-copy-button>
|
|
21
|
+
`, isInline: true, styles: [""], dependencies: [{ kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "component", type: NgDocCopyButtonComponent, selector: "ng-doc-copy-button", inputs: ["text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocHeadingAnchorComponent, decorators: [{
|
|
24
|
+
type: Component,
|
|
25
|
+
args: [{ selector: 'ng-doc-heading-anchor', standalone: true, imports: [NgDocButtonIconComponent, NgDocIconComponent, NgDocCopyButtonComponent], template: `
|
|
26
|
+
<ng-doc-copy-button [text]="href">
|
|
27
|
+
<ng-doc-icon icon="link-2"></ng-doc-icon>
|
|
28
|
+
</ng-doc-copy-button>
|
|
29
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
30
|
+
}], propDecorators: { anchor: [{
|
|
31
|
+
type: Input,
|
|
32
|
+
args: [{ required: true }]
|
|
33
|
+
}], classes: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}, {
|
|
36
|
+
type: HostBinding,
|
|
37
|
+
args: ['class']
|
|
38
|
+
}] } });
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Generated bundle index. Do not edit.
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
export { NgDocHeadingAnchorComponent };
|
|
45
|
+
//# sourceMappingURL=ng-doc-app-components-heading-anchor.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-doc-app-components-heading-anchor.mjs","sources":["../../../../libs/app/components/heading-anchor/heading-anchor.component.ts","../../../../libs/app/components/heading-anchor/ng-doc-app-components-heading-anchor.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostBinding, inject, Input } from '@angular/core';\nimport { NgDocCopyButtonComponent } from '@ng-doc/app/components/copy-button';\nimport { NgDocButtonIconComponent, NgDocIconComponent } from '@ng-doc/ui-kit';\nimport { LOCATION } from '@ng-web-apis/common';\n\n@Component({\n selector: 'ng-doc-heading-anchor',\n standalone: true,\n imports: [NgDocButtonIconComponent, NgDocIconComponent, NgDocCopyButtonComponent],\n template: `\n <ng-doc-copy-button [text]=\"href\">\n <ng-doc-icon icon=\"link-2\"></ng-doc-icon>\n </ng-doc-copy-button>\n `,\n styles: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgDocHeadingAnchorComponent {\n @Input({ required: true })\n anchor!: string;\n\n @Input()\n @HostBinding('class')\n classes: string[] = [];\n\n protected readonly location = inject(LOCATION);\n\n protected get href(): string {\n const { origin, pathname } = this.location;\n\n return `${origin}${pathname}#${this.anchor}`;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAiBa,2BAA2B,CAAA;AAZxC,IAAA,WAAA,GAAA;QAkBE,IAAO,CAAA,OAAA,GAAa,EAAE,CAAC;AAEJ,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAOhD,KAAA;AALC,IAAA,IAAc,IAAI,GAAA;QAChB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE3C,OAAO,CAAA,EAAG,MAAM,CAAG,EAAA,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC;KAC9C;8GAdU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAR5B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;GAIT,EALmC,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,gGAAE,wBAAwB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FASrE,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAZvC,SAAS;+BACE,uBAAuB,EAAA,UAAA,EACrB,IAAI,EAAA,OAAA,EACP,CAAC,wBAAwB,EAAE,kBAAkB,EAAE,wBAAwB,CAAC,EACvE,QAAA,EAAA,CAAA;;;;GAIT,EAEgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,CAAA;8BAI/C,MAAM,EAAA,CAAA;sBADL,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAKzB,OAAO,EAAA,CAAA;sBAFN,KAAK;;sBACL,WAAW;uBAAC,OAAO,CAAA;;;ACtBtB;;AAEG;;;;"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { style, group, animate, query } from '@angular/animations';
|
|
2
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { input, viewChild, TemplateRef, inject, ElementRef, ChangeDetectorRef, Component, ChangeDetectionStrategy, HostListener } from '@angular/core';
|
|
5
|
+
import { NgDocOverlayService, NgDocOverlayContainerComponent } from '@ng-doc/ui-kit';
|
|
6
|
+
|
|
7
|
+
class NgDocImageViewerComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.src = input.required();
|
|
10
|
+
this.alt = input.required();
|
|
11
|
+
this.image = viewChild('image', { read: TemplateRef });
|
|
12
|
+
this.overlay = inject(NgDocOverlayService);
|
|
13
|
+
this.element = inject((ElementRef)).nativeElement;
|
|
14
|
+
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
15
|
+
}
|
|
16
|
+
clickEvent() {
|
|
17
|
+
this.overlayRef?.close();
|
|
18
|
+
const { width, height, top, left } = this.element.getBoundingClientRect();
|
|
19
|
+
const windowWidth = window.innerWidth;
|
|
20
|
+
const windowHeight = window.innerHeight;
|
|
21
|
+
const ratio = Math.min(windowWidth / width, windowHeight / height);
|
|
22
|
+
const newWidth = width * ratio;
|
|
23
|
+
const newHeight = height * ratio;
|
|
24
|
+
this.overlayRef = this.overlay.open(this.image(), {
|
|
25
|
+
overlayContainer: NgDocOverlayContainerComponent,
|
|
26
|
+
positionStrategy: this.overlay
|
|
27
|
+
.globalPositionStrategy()
|
|
28
|
+
.centerHorizontally()
|
|
29
|
+
.centerVertically(),
|
|
30
|
+
scrollStrategy: this.overlay.scrollStrategy().block(),
|
|
31
|
+
hasBackdrop: true,
|
|
32
|
+
backdropClass: 'ng-doc-blur-backdrop',
|
|
33
|
+
openAnimation: [
|
|
34
|
+
style({ position: 'fixed', width, height, top, left, transform: 'translate(0%, 0)' }),
|
|
35
|
+
group([
|
|
36
|
+
animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({
|
|
37
|
+
width: `${newWidth}px`,
|
|
38
|
+
height: `${newHeight}px`,
|
|
39
|
+
top: '50%',
|
|
40
|
+
left: '50%',
|
|
41
|
+
transform: 'translate(-50%, -50%)',
|
|
42
|
+
})),
|
|
43
|
+
query('.ng-doc-image-container', [
|
|
44
|
+
style({ padding: 0 }),
|
|
45
|
+
animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({ padding: '16px' })),
|
|
46
|
+
]),
|
|
47
|
+
]),
|
|
48
|
+
],
|
|
49
|
+
closeAnimation: [
|
|
50
|
+
style({
|
|
51
|
+
position: 'fixed',
|
|
52
|
+
width: `${newWidth}px`,
|
|
53
|
+
height: `${newHeight}px`,
|
|
54
|
+
top: '50%',
|
|
55
|
+
left: '50%',
|
|
56
|
+
transform: 'translate(-50%, -50%)',
|
|
57
|
+
}),
|
|
58
|
+
group([
|
|
59
|
+
animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({ width, height, top, left, transform: 'translate(0%, 0)' })),
|
|
60
|
+
query('.ng-doc-image-container', animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({ padding: 0 }))),
|
|
61
|
+
]),
|
|
62
|
+
],
|
|
63
|
+
});
|
|
64
|
+
this.overlayRef.afterClose().subscribe(() => {
|
|
65
|
+
this.overlayRef = undefined;
|
|
66
|
+
this.changeDetectorRef.markForCheck();
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocImageViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.1.1", type: NgDocImageViewerComponent, isStandalone: true, selector: "ng-doc-image-viewer", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: true, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "clickEvent()" }, properties: { "attr.data-opened": "!!overlayRef" } }, viewQueries: [{ propertyName: "image", first: true, predicate: ["image"], descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<ng-content></ng-content>\n\n<ng-template #image>\n <div class=\"ng-doc-image-container\" (click)=\"overlayRef?.close()\">\n <img class=\"ng-doc-scaled-image\" [src]=\"src()\" [alt]=\"alt()\" />\n </div>\n</ng-template>\n", styles: [":host{display:inline-block;cursor:zoom-in;transition:var(--ng-doc-transition)}:host[data-opened=true]>::ng-deep img{opacity:0}:host>::ng-deep img{max-width:100%;vertical-align:middle;border-radius:var(--ng-doc-base-gutter);overflow:hidden}.ng-doc-image-container{display:flex;align-items:center;justify-content:center;padding:calc(var(--ng-doc-base-gutter) * 2);width:100%;height:100%}.ng-doc-image-container .ng-doc-scaled-image{cursor:zoom-out;width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
71
|
+
}
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocImageViewerComponent, decorators: [{
|
|
73
|
+
type: Component,
|
|
74
|
+
args: [{ selector: 'ng-doc-image-viewer', standalone: true, imports: [NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
75
|
+
'[attr.data-opened]': '!!overlayRef',
|
|
76
|
+
}, template: "<ng-content></ng-content>\n\n<ng-template #image>\n <div class=\"ng-doc-image-container\" (click)=\"overlayRef?.close()\">\n <img class=\"ng-doc-scaled-image\" [src]=\"src()\" [alt]=\"alt()\" />\n </div>\n</ng-template>\n", styles: [":host{display:inline-block;cursor:zoom-in;transition:var(--ng-doc-transition)}:host[data-opened=true]>::ng-deep img{opacity:0}:host>::ng-deep img{max-width:100%;vertical-align:middle;border-radius:var(--ng-doc-base-gutter);overflow:hidden}.ng-doc-image-container{display:flex;align-items:center;justify-content:center;padding:calc(var(--ng-doc-base-gutter) * 2);width:100%;height:100%}.ng-doc-image-container .ng-doc-scaled-image{cursor:zoom-out;width:100%;height:100%}\n"] }]
|
|
77
|
+
}], propDecorators: { clickEvent: [{
|
|
78
|
+
type: HostListener,
|
|
79
|
+
args: ['click']
|
|
80
|
+
}] } });
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Generated bundle index. Do not edit.
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
export { NgDocImageViewerComponent };
|
|
87
|
+
//# sourceMappingURL=ng-doc-app-components-image-viewer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-doc-app-components-image-viewer.mjs","sources":["../../../../libs/app/components/image-viewer/image-viewer.component.ts","../../../../libs/app/components/image-viewer/image-viewer.component.html","../../../../libs/app/components/image-viewer/ng-doc-app-components-image-viewer.ts"],"sourcesContent":["import { animate, group, query, style } from '@angular/animations';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n inject,\n input,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { NgDocOverlayContainerComponent, NgDocOverlayService } from '@ng-doc/ui-kit';\nimport { NgDocOverlayRef } from '@ng-doc/ui-kit/classes';\n\n@Component({\n selector: 'ng-doc-image-viewer',\n standalone: true,\n imports: [NgTemplateOutlet],\n templateUrl: './image-viewer.component.html',\n styleUrl: './image-viewer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-opened]': '!!overlayRef',\n },\n})\nexport class NgDocImageViewerComponent {\n src = input.required<string>();\n alt = input.required<string>();\n\n protected readonly image = viewChild('image', { read: TemplateRef });\n protected readonly overlay = inject(NgDocOverlayService);\n protected readonly element = inject(ElementRef<HTMLElement>).nativeElement;\n protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n protected overlayRef?: NgDocOverlayRef;\n\n @HostListener('click')\n clickEvent(): void {\n this.overlayRef?.close();\n\n const { width, height, top, left } = this.element.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const ratio = Math.min(windowWidth / width, windowHeight / height);\n const newWidth = width * ratio;\n const newHeight = height * ratio;\n\n this.overlayRef = this.overlay.open(this.image(), {\n overlayContainer: NgDocOverlayContainerComponent,\n positionStrategy: this.overlay\n .globalPositionStrategy()\n .centerHorizontally()\n .centerVertically(),\n scrollStrategy: this.overlay.scrollStrategy().block(),\n hasBackdrop: true,\n backdropClass: 'ng-doc-blur-backdrop',\n openAnimation: [\n style({ position: 'fixed', width, height, top, left, transform: 'translate(0%, 0)' }),\n group([\n animate(\n '300ms cubic-bezier(0.25, 0.8, 0.25, 1)',\n style({\n width: `${newWidth}px`,\n height: `${newHeight}px`,\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n }),\n ),\n query('.ng-doc-image-container', [\n style({ padding: 0 }),\n animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({ padding: '16px' })),\n ]),\n ]),\n ],\n closeAnimation: [\n style({\n position: 'fixed',\n width: `${newWidth}px`,\n height: `${newHeight}px`,\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n }),\n group([\n animate(\n '300ms cubic-bezier(0.25, 0.8, 0.25, 1)',\n style({ width, height, top, left, transform: 'translate(0%, 0)' }),\n ),\n query(\n '.ng-doc-image-container',\n animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)', style({ padding: 0 })),\n ),\n ]),\n ],\n });\n\n this.overlayRef.afterClose().subscribe(() => {\n this.overlayRef = undefined;\n this.changeDetectorRef.markForCheck();\n });\n }\n}\n","<ng-content></ng-content>\n\n<ng-template #image>\n <div class=\"ng-doc-image-container\" (click)=\"overlayRef?.close()\">\n <img class=\"ng-doc-scaled-image\" [src]=\"src()\" [alt]=\"alt()\" />\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -5,13 +5,14 @@ class NgDocKindIconComponent {
|
|
|
5
5
|
constructor() {
|
|
6
6
|
this.kind = '';
|
|
7
7
|
this.type = 'declaration';
|
|
8
|
+
this.size = 'small';
|
|
8
9
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocKindIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: NgDocKindIconComponent, isStandalone: true, selector: "ng-doc-kind-icon", inputs: { kind: "kind", type: "type", size: "size" }, host: { properties: { "attr.data-ng-doc-kind": "this.kind", "attr.data-ng-doc-type": "this.type", "attr.data-ng-doc-size": "this.size" } }, ngImport: i0, template: '{{kind[0]}}', isInline: true, styles: [":host{display:inline-block;width:22px;height:22px;border-radius:calc(var(--ng-doc-base-gutter) / 2);font-size:13px;text-align:center;line-height:22px;text-transform:uppercase;flex-shrink:0;font-weight:700;color:var(--ng-doc-kind-icon-background);background:color-mix(in srgb,var(--ng-doc-kind-icon-background) var(--ng-doc-kind-icon-background-opacity, 15%),transparent)}:host[data-ng-doc-size=small]{width:calc(var(--ng-doc-base-gutter) * 2);height:calc(var(--ng-doc-base-gutter) * 2);line-height:calc(var(--ng-doc-base-gutter) * 2)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Class]{--ng-doc-kind-icon-background: var(--ng-doc-class-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Interface]{--ng-doc-kind-icon-background: var(--ng-doc-interface-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Enum]{--ng-doc-kind-icon-background: var(--ng-doc-enum-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Variable]{--ng-doc-kind-icon-background: var(--ng-doc-variable-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Function]{--ng-doc-kind-icon-background: var(--ng-doc-function-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=TypeAlias]{--ng-doc-kind-icon-background: var(--ng-doc-type-alias-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Component]{--ng-doc-kind-icon-background: var(--ng-doc-component-decorator-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Directive]{--ng-doc-kind-icon-background: var(--ng-doc-directive-decorator-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Injectable]{--ng-doc-kind-icon-background: var(--ng-doc-injectable-decorator-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Pipe]{--ng-doc-kind-icon-background: var(--ng-doc-pipe-decorator-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=NgModule]{--ng-doc-kind-icon-background: var(--ng-doc-ng-module-decorator-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=ng-doc-tag-selector]{--ng-doc-kind-icon-background: var(--ng-doc-selector-background)}:host[data-ng-doc-type=type][data-ng-doc-kind=string]{--ng-doc-kind-icon-background: var(--ng-doc-string-background)}:host[data-ng-doc-type=type][data-ng-doc-kind=number]{--ng-doc-kind-icon-background: var(--ng-doc-number-background)}:host[data-ng-doc-type=type][data-ng-doc-kind=boolean]{--ng-doc-kind-icon-background: var(--ng-doc-boolean-background)}:host[data-ng-doc-type=type][data-ng-doc-kind=null]{--ng-doc-kind-icon-background: var(--ng-doc-null-background)}:host[data-ng-doc-type=type][data-ng-doc-kind=undefined]{--ng-doc-kind-icon-background: var(--ng-doc-undefined-background)}:host[data-ng-doc-type=type][data-ng-doc-kind=object]{--ng-doc-kind-icon-background: var(--ng-doc-object-background)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11
12
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocKindIconComponent, decorators: [{
|
|
13
14
|
type: Component,
|
|
14
|
-
args: [{ selector: 'ng-doc-kind-icon', template: '{{kind[0]}}', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, styles: [":host{display:inline-block;width:calc(var(--ng-doc-base-gutter)
|
|
15
|
+
args: [{ selector: 'ng-doc-kind-icon', template: '{{kind[0]}}', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, styles: [":host{display:inline-block;width:22px;height:22px;border-radius:calc(var(--ng-doc-base-gutter) / 2);font-size:13px;text-align:center;line-height:22px;text-transform:uppercase;flex-shrink:0;font-weight:700;color:var(--ng-doc-kind-icon-background);background:color-mix(in srgb,var(--ng-doc-kind-icon-background) var(--ng-doc-kind-icon-background-opacity, 15%),transparent)}:host[data-ng-doc-size=small]{width:calc(var(--ng-doc-base-gutter) * 2);height:calc(var(--ng-doc-base-gutter) * 2);line-height:calc(var(--ng-doc-base-gutter) * 2)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Class]{--ng-doc-kind-icon-background: var(--ng-doc-class-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Interface]{--ng-doc-kind-icon-background: var(--ng-doc-interface-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Enum]{--ng-doc-kind-icon-background: var(--ng-doc-enum-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Variable]{--ng-doc-kind-icon-background: var(--ng-doc-variable-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Function]{--ng-doc-kind-icon-background: var(--ng-doc-function-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=TypeAlias]{--ng-doc-kind-icon-background: var(--ng-doc-type-alias-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Component]{--ng-doc-kind-icon-background: var(--ng-doc-component-decorator-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Directive]{--ng-doc-kind-icon-background: var(--ng-doc-directive-decorator-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Injectable]{--ng-doc-kind-icon-background: var(--ng-doc-injectable-decorator-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=Pipe]{--ng-doc-kind-icon-background: var(--ng-doc-pipe-decorator-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=NgModule]{--ng-doc-kind-icon-background: var(--ng-doc-ng-module-decorator-background)}:host[data-ng-doc-type=declaration][data-ng-doc-kind=ng-doc-tag-selector]{--ng-doc-kind-icon-background: var(--ng-doc-selector-background)}:host[data-ng-doc-type=type][data-ng-doc-kind=string]{--ng-doc-kind-icon-background: var(--ng-doc-string-background)}:host[data-ng-doc-type=type][data-ng-doc-kind=number]{--ng-doc-kind-icon-background: var(--ng-doc-number-background)}:host[data-ng-doc-type=type][data-ng-doc-kind=boolean]{--ng-doc-kind-icon-background: var(--ng-doc-boolean-background)}:host[data-ng-doc-type=type][data-ng-doc-kind=null]{--ng-doc-kind-icon-background: var(--ng-doc-null-background)}:host[data-ng-doc-type=type][data-ng-doc-kind=undefined]{--ng-doc-kind-icon-background: var(--ng-doc-undefined-background)}:host[data-ng-doc-type=type][data-ng-doc-kind=object]{--ng-doc-kind-icon-background: var(--ng-doc-object-background)}\n"] }]
|
|
15
16
|
}], propDecorators: { kind: [{
|
|
16
17
|
type: Input
|
|
17
18
|
}, {
|
|
@@ -22,6 +23,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
22
23
|
}, {
|
|
23
24
|
type: HostBinding,
|
|
24
25
|
args: ['attr.data-ng-doc-type']
|
|
26
|
+
}], size: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}, {
|
|
29
|
+
type: HostBinding,
|
|
30
|
+
args: ['attr.data-ng-doc-size']
|
|
25
31
|
}] } });
|
|
26
32
|
|
|
27
33
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-app-components-kind-icon.mjs","sources":["../../../../libs/app/components/kind-icon/kind-icon.component.ts","../../../../libs/app/components/kind-icon/ng-doc-app-components-kind-icon.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n
|
|
1
|
+
{"version":3,"file":"ng-doc-app-components-kind-icon.mjs","sources":["../../../../libs/app/components/kind-icon/kind-icon.component.ts","../../../../libs/app/components/kind-icon/ng-doc-app-components-kind-icon.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'ng-doc-kind-icon',\n template: '{{kind[0]}}',\n styleUrls: ['./kind-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class NgDocKindIconComponent {\n @Input()\n @HostBinding('attr.data-ng-doc-kind')\n kind: string = '';\n\n @Input()\n @HostBinding('attr.data-ng-doc-type')\n type: 'declaration' | 'type' = 'declaration';\n\n @Input()\n @HostBinding('attr.data-ng-doc-size')\n size: 'small' | 'medium' = 'small';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MASa,sBAAsB,CAAA;AAPnC,IAAA,WAAA,GAAA;QAUE,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAIlB,IAAI,CAAA,IAAA,GAA2B,aAAa,CAAC;QAI7C,IAAI,CAAA,IAAA,GAAuB,OAAO,CAAC;AACpC,KAAA;8GAZY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,8QALvB,aAAa,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ixFAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAKZ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,YAClB,aAAa,EAAA,eAAA,EAEN,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,MAAA,EAAA,CAAA,ixFAAA,CAAA,EAAA,CAAA;8BAKhB,IAAI,EAAA,CAAA;sBAFH,KAAK;;sBACL,WAAW;uBAAC,uBAAuB,CAAA;gBAKpC,IAAI,EAAA,CAAA;sBAFH,KAAK;;sBACL,WAAW;uBAAC,uBAAuB,CAAA;gBAKpC,IAAI,EAAA,CAAA;sBAFH,KAAK;;sBACL,WAAW;uBAAC,uBAAuB,CAAA;;;ACnBtC;;AAEG;;;;"}
|
|
@@ -6,10 +6,10 @@ class NgDocLinkComponent {
|
|
|
6
6
|
constructor() {
|
|
7
7
|
this.path = '';
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: NgDocLinkComponent, isStandalone: true, selector: "ng-doc-link", inputs: { path: "path" }, ngImport: i0, template: "<a [routerLink]=\"[path]\">\n\t<ng-content></ng-content>\n</a>\n", styles: [""], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocLinkComponent, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
14
|
args: [{ selector: 'ng-doc-link', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [RouterLink], template: "<a [routerLink]=\"[path]\">\n\t<ng-content></ng-content>\n</a>\n" }]
|
|
15
15
|
}], propDecorators: { path: [{
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { input, signal, inject, ChangeDetectorRef, PLATFORM_ID, Component, ChangeDetectionStrategy } from '@angular/core';
|
|
4
|
+
import { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes';
|
|
5
|
+
import { NgDocThemeService } from '@ng-doc/app/services/theme';
|
|
6
|
+
import { NG_DOC_MERMAID } from '@ng-doc/app/tokens';
|
|
7
|
+
import { NgDocMagnifierComponent, MagnifierControllerComponent, NgDocSpinnerComponent } from '@ng-doc/ui-kit';
|
|
8
|
+
|
|
9
|
+
let id = 0;
|
|
10
|
+
class NgDocMermaidViewerComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.graph = input.required();
|
|
13
|
+
this.html = signal('');
|
|
14
|
+
this.pending = signal(true);
|
|
15
|
+
this.error = signal(null);
|
|
16
|
+
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
17
|
+
this.platform = inject(PLATFORM_ID);
|
|
18
|
+
this.id = `ng-doc-mermaid-viewer-${id++}`;
|
|
19
|
+
const mermaid = inject(NG_DOC_MERMAID, { optional: true });
|
|
20
|
+
if (!mermaid) {
|
|
21
|
+
throw new Error('Mermaid is not provided. Make sure that you provided mermaid using "provideMermaid" function.');
|
|
22
|
+
}
|
|
23
|
+
this.mermaid = mermaid;
|
|
24
|
+
inject(NgDocThemeService)
|
|
25
|
+
.themeChanges()
|
|
26
|
+
.subscribe(async () => {
|
|
27
|
+
const { svg } = await this.mermaid.render(this.id, this.graph());
|
|
28
|
+
this.html.set(svg);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
async ngOnInit() {
|
|
32
|
+
if (isPlatformBrowser(this.platform)) {
|
|
33
|
+
try {
|
|
34
|
+
const { svg } = await this.mermaid.render(this.id, this.graph());
|
|
35
|
+
this.html.set(svg);
|
|
36
|
+
this.pending.set(false);
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
this.error.set(error);
|
|
40
|
+
this.pending.set(false);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocMermaidViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: NgDocMermaidViewerComponent, isStandalone: true, selector: "ng-doc-mermaid-viewer", inputs: { graph: { classPropertyName: "graph", publicName: "graph", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@if (pending()) {\n <div class=\"ng-doc-mermaid-preloader\">\n <ng-doc-spinner></ng-doc-spinner>\n </div>\n} @else if (error()) {\n <div class=\"ng-doc-mermaid-error\">{{ error() }}</div>\n} @else {\n <ng-doc-magnifier #magnifier>\n <div class=\"ng-doc-mermaid-container\" [innerHTML]=\"html() | ngDocSanitizeHtml\"></div>\n </ng-doc-magnifier>\n\n <ng-doc-magnifier-controller [magnifier]=\"magnifier\" />\n}\n", styles: [":host{position:relative;display:block;border:var(--ng-doc-mermaid-viewer-border, 1px solid var(--ng-doc-border-color));margin:var(--ng-doc-mermaid-viewer-margin, var(--ng-doc-page-block-margin));background:var(--ng-doc-mermaid-viewer-background, var(--ng-doc-base-8));border-radius:var(--ng-doc-mermaid-viewer-border-radius, var(--ng-doc-base-gutter));min-height:150px}:host ng-doc-magnifier-controller{position:absolute;bottom:calc(var(--ng-doc-base-gutter) * 2);right:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-mermaid-container{display:flex;justify-content:center;align-items:center;padding:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-mermaid-preloader{display:flex;justify-content:center;align-items:center;width:100%;height:120px}:host .ng-doc-mermaid-error{display:flex;justify-content:center;align-items:center;height:120px;color:var(--ng-doc-alert)}\n"], dependencies: [{ kind: "component", type: NgDocMagnifierComponent, selector: "ng-doc-magnifier" }, { kind: "component", type: MagnifierControllerComponent, selector: "ng-doc-magnifier-controller", inputs: ["magnifier"] }, { kind: "pipe", type: NgDocSanitizeHtmlPipe, name: "ngDocSanitizeHtml" }, { kind: "component", type: NgDocSpinnerComponent, selector: "ng-doc-spinner", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
46
|
+
}
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgDocMermaidViewerComponent, decorators: [{
|
|
48
|
+
type: Component,
|
|
49
|
+
args: [{ selector: 'ng-doc-mermaid-viewer', standalone: true, imports: [
|
|
50
|
+
NgDocMagnifierComponent,
|
|
51
|
+
MagnifierControllerComponent,
|
|
52
|
+
NgDocSanitizeHtmlPipe,
|
|
53
|
+
NgDocSpinnerComponent,
|
|
54
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (pending()) {\n <div class=\"ng-doc-mermaid-preloader\">\n <ng-doc-spinner></ng-doc-spinner>\n </div>\n} @else if (error()) {\n <div class=\"ng-doc-mermaid-error\">{{ error() }}</div>\n} @else {\n <ng-doc-magnifier #magnifier>\n <div class=\"ng-doc-mermaid-container\" [innerHTML]=\"html() | ngDocSanitizeHtml\"></div>\n </ng-doc-magnifier>\n\n <ng-doc-magnifier-controller [magnifier]=\"magnifier\" />\n}\n", styles: [":host{position:relative;display:block;border:var(--ng-doc-mermaid-viewer-border, 1px solid var(--ng-doc-border-color));margin:var(--ng-doc-mermaid-viewer-margin, var(--ng-doc-page-block-margin));background:var(--ng-doc-mermaid-viewer-background, var(--ng-doc-base-8));border-radius:var(--ng-doc-mermaid-viewer-border-radius, var(--ng-doc-base-gutter));min-height:150px}:host ng-doc-magnifier-controller{position:absolute;bottom:calc(var(--ng-doc-base-gutter) * 2);right:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-mermaid-container{display:flex;justify-content:center;align-items:center;padding:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-mermaid-preloader{display:flex;justify-content:center;align-items:center;width:100%;height:120px}:host .ng-doc-mermaid-error{display:flex;justify-content:center;align-items:center;height:120px;color:var(--ng-doc-alert)}\n"] }]
|
|
55
|
+
}], ctorParameters: () => [] });
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Generated bundle index. Do not edit.
|
|
59
|
+
*/
|
|
60
|
+
|
|
61
|
+
export { NgDocMermaidViewerComponent };
|
|
62
|
+
//# sourceMappingURL=ng-doc-app-components-mermaid-viewer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-doc-app-components-mermaid-viewer.mjs","sources":["../../../../libs/app/components/mermaid-viewer/mermaid-viewer.component.ts","../../../../libs/app/components/mermaid-viewer/mermaid-viewer.component.html","../../../../libs/app/components/mermaid-viewer/ng-doc-app-components-mermaid-viewer.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n input,\n OnInit,\n PLATFORM_ID,\n signal,\n} from '@angular/core';\nimport { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes';\nimport { NgDocThemeService } from '@ng-doc/app/services/theme';\nimport { NG_DOC_MERMAID } from '@ng-doc/app/tokens';\nimport {\n MagnifierControllerComponent,\n NgDocMagnifierComponent,\n NgDocSpinnerComponent,\n} from '@ng-doc/ui-kit';\nimport type { Mermaid } from 'mermaid';\n\nlet id = 0;\n\n@Component({\n selector: 'ng-doc-mermaid-viewer',\n standalone: true,\n imports: [\n NgDocMagnifierComponent,\n MagnifierControllerComponent,\n NgDocSanitizeHtmlPipe,\n NgDocSpinnerComponent,\n ],\n templateUrl: './mermaid-viewer.component.html',\n styleUrl: './mermaid-viewer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgDocMermaidViewerComponent implements OnInit {\n graph = input.required<string>();\n\n protected readonly html = signal('');\n protected readonly pending = signal(true);\n protected readonly error = signal<Error | null>(null);\n protected readonly mermaid: Mermaid;\n\n protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n protected readonly platform = inject(PLATFORM_ID);\n\n protected readonly id = `ng-doc-mermaid-viewer-${id++}`;\n\n constructor() {\n const mermaid = inject(NG_DOC_MERMAID, { optional: true });\n\n if (!mermaid) {\n throw new Error(\n 'Mermaid is not provided. Make sure that you provided mermaid using \"provideMermaid\" function.',\n );\n }\n\n this.mermaid = mermaid;\n\n inject(NgDocThemeService)\n .themeChanges()\n .subscribe(async () => {\n const { svg } = await this.mermaid.render(this.id, this.graph());\n\n this.html.set(svg);\n });\n }\n\n async ngOnInit(): Promise<void> {\n if (isPlatformBrowser(this.platform)) {\n try {\n const { svg } = await this.mermaid.render(this.id, this.graph());\n\n this.html.set(svg);\n this.pending.set(false);\n } catch (error: unknown) {\n this.error.set(error as Error);\n this.pending.set(false);\n }\n }\n }\n}\n","@if (pending()) {\n <div class=\"ng-doc-mermaid-preloader\">\n <ng-doc-spinner></ng-doc-spinner>\n </div>\n} @else if (error()) {\n <div class=\"ng-doc-mermaid-error\">{{ error() }}</div>\n} @else {\n <ng-doc-magnifier #magnifier>\n <div class=\"ng-doc-mermaid-container\" [innerHTML]=\"html() | ngDocSanitizeHtml\"></div>\n </ng-doc-magnifier>\n\n <ng-doc-magnifier-controller [magnifier]=\"magnifier\" />\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|