@ng-doc/app 19.3.0 → 20.0.0-beta.1
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/default-search-engine/index.d.ts +44 -1
- package/classes/root-page/index.d.ts +35 -1
- package/classes/search-engine/index.d.ts +11 -1
- package/components/api-list/index.d.ts +30 -1
- package/components/breadcrumb/index.d.ts +10 -1
- package/components/code/index.d.ts +16 -1
- package/components/copy-button/index.d.ts +15 -1
- package/components/demo/index.d.ts +22 -1
- package/components/demo-displayer/index.d.ts +16 -1
- package/components/demo-pane/index.d.ts +21 -1
- package/components/fullscreen-button/index.d.ts +9 -1
- package/components/heading-anchor/index.d.ts +12 -1
- package/components/image-viewer/index.d.ts +19 -1
- package/components/kind-icon/index.d.ts +11 -1
- package/components/link/index.d.ts +9 -1
- package/components/mermaid-viewer/index.d.ts +20 -1
- package/components/navbar/index.d.ts +33 -1
- package/components/page/index.d.ts +19 -1
- package/components/page-header/index.d.ts +9 -1
- package/components/page-link/index.d.ts +22 -1
- package/components/page-navigation/index.d.ts +11 -1
- package/components/page-wrapper/index.d.ts +26 -1
- package/components/playground/index.d.ts +143 -7
- package/components/root/index.d.ts +60 -1
- package/components/search/index.d.ts +18 -1
- package/components/search-dialog/index.d.ts +28 -1
- package/components/search-result/index.d.ts +14 -1
- package/components/sidebar/index.d.ts +15 -1
- package/components/tabs/index.d.ts +12 -1
- package/components/theme-toggle/index.d.ts +19 -1
- package/components/toc/index.d.ts +38 -2
- package/constants/index.d.ts +3 -1
- package/defaults/default-processors/index.d.ts +5 -1
- package/defaults/default-skeleton/index.d.ts +5 -1
- package/directives/code-highlighter/index.d.ts +17 -1
- package/directives/route-active/index.d.ts +13 -1
- package/fesm2022/ng-doc-app-classes-default-search-engine.mjs.map +1 -1
- package/fesm2022/ng-doc-app-classes-root-page.mjs.map +1 -1
- package/fesm2022/ng-doc-app-classes-search-engine.mjs.map +1 -1
- package/fesm2022/ng-doc-app-classes.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-api-list.mjs +5 -8
- package/fesm2022/ng-doc-app-components-api-list.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-breadcrumb.mjs +4 -4
- package/fesm2022/ng-doc-app-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-code.mjs +8 -10
- package/fesm2022/ng-doc-app-components-code.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-copy-button.mjs +5 -5
- package/fesm2022/ng-doc-app-components-copy-button.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-demo-displayer.mjs +6 -7
- package/fesm2022/ng-doc-app-components-demo-displayer.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-demo-pane.mjs +10 -12
- package/fesm2022/ng-doc-app-components-demo-pane.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-demo.mjs +10 -12
- package/fesm2022/ng-doc-app-components-demo.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-fullscreen-button.mjs +4 -4
- package/fesm2022/ng-doc-app-components-fullscreen-button.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-heading-anchor.mjs +4 -4
- package/fesm2022/ng-doc-app-components-heading-anchor.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-image-viewer.mjs +4 -4
- package/fesm2022/ng-doc-app-components-image-viewer.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-kind-icon.mjs +4 -4
- package/fesm2022/ng-doc-app-components-kind-icon.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-link.mjs +4 -4
- package/fesm2022/ng-doc-app-components-link.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-mermaid-viewer.mjs +4 -4
- package/fesm2022/ng-doc-app-components-mermaid-viewer.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-navbar.mjs +11 -14
- package/fesm2022/ng-doc-app-components-navbar.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-page-header.mjs +5 -6
- package/fesm2022/ng-doc-app-components-page-header.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-page-link.mjs +6 -6
- package/fesm2022/ng-doc-app-components-page-link.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-page-navigation.mjs +5 -8
- package/fesm2022/ng-doc-app-components-page-navigation.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-page-wrapper.mjs +4 -6
- package/fesm2022/ng-doc-app-components-page-wrapper.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-page.mjs +6 -8
- package/fesm2022/ng-doc-app-components-page.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-playground.mjs +31 -40
- package/fesm2022/ng-doc-app-components-playground.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-root.mjs +12 -12
- package/fesm2022/ng-doc-app-components-root.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-search-dialog.mjs +7 -7
- package/fesm2022/ng-doc-app-components-search-dialog.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-search-result.mjs +6 -8
- package/fesm2022/ng-doc-app-components-search-result.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-search.mjs +4 -4
- package/fesm2022/ng-doc-app-components-search.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-sidebar.mjs +13 -16
- package/fesm2022/ng-doc-app-components-sidebar.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-tabs.mjs +5 -13
- package/fesm2022/ng-doc-app-components-tabs.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-theme-toggle.mjs +4 -5
- package/fesm2022/ng-doc-app-components-theme-toggle.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-toc.mjs +7 -8
- package/fesm2022/ng-doc-app-components-toc.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components.mjs.map +1 -1
- package/fesm2022/ng-doc-app-constants.mjs.map +1 -1
- package/fesm2022/ng-doc-app-defaults-default-processors.mjs.map +1 -1
- package/fesm2022/ng-doc-app-defaults-default-skeleton.mjs +1 -1
- package/fesm2022/ng-doc-app-defaults-default-skeleton.mjs.map +1 -1
- package/fesm2022/ng-doc-app-defaults.mjs.map +1 -1
- package/fesm2022/ng-doc-app-directives-code-highlighter.mjs +3 -3
- package/fesm2022/ng-doc-app-directives-code-highlighter.mjs.map +1 -1
- package/fesm2022/ng-doc-app-directives-route-active.mjs +4 -4
- package/fesm2022/ng-doc-app-directives-route-active.mjs.map +1 -1
- package/fesm2022/ng-doc-app-directives.mjs.map +1 -1
- package/fesm2022/ng-doc-app-helpers.mjs.map +1 -1
- package/fesm2022/ng-doc-app-interfaces.mjs.map +1 -1
- package/fesm2022/ng-doc-app-pipes-decode-uri-component.mjs +3 -3
- package/fesm2022/ng-doc-app-pipes-decode-uri-component.mjs.map +1 -1
- package/fesm2022/ng-doc-app-pipes-extract-value.mjs +3 -3
- package/fesm2022/ng-doc-app-pipes-extract-value.mjs.map +1 -1
- package/fesm2022/ng-doc-app-pipes-filter-by-text.mjs +3 -3
- package/fesm2022/ng-doc-app-pipes-filter-by-text.mjs.map +1 -1
- package/fesm2022/ng-doc-app-pipes-sanitize-html.mjs +8 -8
- package/fesm2022/ng-doc-app-pipes-sanitize-html.mjs.map +1 -1
- package/fesm2022/ng-doc-app-pipes.mjs.map +1 -1
- package/fesm2022/ng-doc-app-processors-page-processor.mjs +4 -4
- package/fesm2022/ng-doc-app-processors-page-processor.mjs.map +1 -1
- package/fesm2022/ng-doc-app-processors-processors-link.mjs.map +1 -1
- package/fesm2022/ng-doc-app-processors-processors-tooltip.mjs +7 -7
- package/fesm2022/ng-doc-app-processors-processors-tooltip.mjs.map +1 -1
- package/fesm2022/ng-doc-app-processors-processors.mjs.map +1 -1
- package/fesm2022/ng-doc-app-processors.mjs.map +1 -1
- package/fesm2022/ng-doc-app-providers-mermaid.mjs.map +1 -1
- package/fesm2022/ng-doc-app-providers-ng-doc-app.mjs.map +1 -1
- package/fesm2022/ng-doc-app-providers-page-skeleton.mjs.map +1 -1
- package/fesm2022/ng-doc-app-providers-playground-demo.mjs.map +1 -1
- package/fesm2022/ng-doc-app-providers-search-engine.mjs.map +1 -1
- package/fesm2022/ng-doc-app-providers-type-control.mjs.map +1 -1
- package/fesm2022/ng-doc-app-providers.mjs.map +1 -1
- package/fesm2022/ng-doc-app-services-highlighter.mjs +3 -3
- package/fesm2022/ng-doc-app-services-highlighter.mjs.map +1 -1
- package/fesm2022/ng-doc-app-services-sidebar.mjs +4 -5
- package/fesm2022/ng-doc-app-services-sidebar.mjs.map +1 -1
- package/fesm2022/ng-doc-app-services-store.mjs +3 -3
- package/fesm2022/ng-doc-app-services-store.mjs.map +1 -1
- package/fesm2022/ng-doc-app-services-theme.mjs +4 -5
- package/fesm2022/ng-doc-app-services-theme.mjs.map +1 -1
- package/fesm2022/ng-doc-app-services.mjs.map +1 -1
- package/fesm2022/ng-doc-app-tokens.mjs.map +1 -1
- package/fesm2022/ng-doc-app-type-controls-boolean-control.mjs +4 -4
- package/fesm2022/ng-doc-app-type-controls-boolean-control.mjs.map +1 -1
- package/fesm2022/ng-doc-app-type-controls-number-control.mjs +5 -7
- package/fesm2022/ng-doc-app-type-controls-number-control.mjs.map +1 -1
- package/fesm2022/ng-doc-app-type-controls-string-control.mjs +5 -7
- package/fesm2022/ng-doc-app-type-controls-string-control.mjs.map +1 -1
- package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs +6 -8
- package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs.map +1 -1
- package/fesm2022/ng-doc-app-type-controls.mjs.map +1 -1
- package/fesm2022/ng-doc-app-types.mjs.map +1 -1
- package/fesm2022/ng-doc-app.mjs.map +1 -1
- package/helpers/index.d.ts +49 -7
- package/interfaces/index.d.ts +221 -13
- package/package.json +27 -27
- package/pipes/decode-uri-component/index.d.ts +10 -1
- package/pipes/extract-value/index.d.ts +11 -1
- package/pipes/filter-by-text/index.d.ts +10 -1
- package/pipes/sanitize-html/index.d.ts +14 -1
- package/processors/page-processor/index.d.ts +26 -1
- package/processors/processors/index.d.ts +32 -10
- package/processors/processors/link/index.d.ts +6 -1
- package/processors/processors/tooltip/index.d.ts +17 -1
- package/providers/mermaid/index.d.ts +10 -1
- package/providers/ng-doc-app/index.d.ts +25 -1
- package/providers/page-skeleton/index.d.ts +13 -1
- package/providers/playground-demo/index.d.ts +20 -1
- package/providers/search-engine/index.d.ts +15 -1
- package/providers/type-control/index.d.ts +18 -1
- package/services/highlighter/index.d.ts +29 -1
- package/services/sidebar/index.d.ts +37 -1
- package/services/store/index.d.ts +13 -1
- package/services/theme/index.d.ts +27 -1
- package/tokens/index.d.ts +63 -8
- package/type-controls/boolean-control/index.d.ts +16 -1
- package/type-controls/number-control/index.d.ts +13 -1
- package/type-controls/string-control/index.d.ts +14 -1
- package/type-controls/type-alias-control/index.d.ts +16 -1
- package/types/index.d.ts +7 -1
- package/classes/default-search-engine/default-search-engine.d.ts +0 -40
- package/classes/root-page/root-page.d.ts +0 -32
- package/classes/search-engine/search-engine.d.ts +0 -8
- package/components/api-list/api-list.component.d.ts +0 -28
- package/components/breadcrumb/breadcrumb.component.d.ts +0 -7
- package/components/code/code.component.d.ts +0 -14
- package/components/copy-button/copy-button.component.d.ts +0 -12
- package/components/demo/demo.component.d.ts +0 -20
- package/components/demo-displayer/demo-displayer.component.d.ts +0 -13
- package/components/demo-pane/demo-pane.component.d.ts +0 -19
- package/components/fullscreen-button/fullscreen-button.component.d.ts +0 -6
- package/components/heading-anchor/heading-anchor.component.d.ts +0 -9
- package/components/image-viewer/image-viewer.component.d.ts +0 -16
- package/components/kind-icon/kind-icon.component.d.ts +0 -8
- package/components/link/link.component.d.ts +0 -6
- package/components/mermaid-viewer/mermaid-viewer.component.d.ts +0 -17
- package/components/navbar/navbar.component.d.ts +0 -31
- package/components/page/page.component.d.ts +0 -16
- package/components/page-header/page-header.component.d.ts +0 -6
- package/components/page-link/page-link.component.d.ts +0 -19
- package/components/page-navigation/page-navigation.component.d.ts +0 -8
- package/components/page-wrapper/page-wrapper.component.d.ts +0 -22
- package/components/playground/base-playground.d.ts +0 -28
- package/components/playground/playground-demo/playground-demo.component.d.ts +0 -34
- package/components/playground/playground-form.d.ts +0 -5
- package/components/playground/playground-properties/playground-properties.component.d.ts +0 -35
- package/components/playground/playground-property/playground-property.component.d.ts +0 -20
- package/components/playground/playground-property-control.d.ts +0 -7
- package/components/playground/playground.component.d.ts +0 -30
- package/components/root/root.component.d.ts +0 -57
- package/components/search/search.component.d.ts +0 -15
- package/components/search-dialog/search-dialog.component.d.ts +0 -24
- package/components/search-result/search-result.component.d.ts +0 -11
- package/components/sidebar/sidebar-category/sidebar-category.component.d.ts +0 -20
- package/components/sidebar/sidebar-item/sidebar-item.component.d.ts +0 -12
- package/components/sidebar/sidebar.component.d.ts +0 -11
- package/components/tabs/tabs.component.d.ts +0 -9
- package/components/theme-toggle/theme-toggle.component.d.ts +0 -17
- package/components/toc/toc-element/toc-element.component.d.ts +0 -11
- package/components/toc/toc.component.d.ts +0 -26
- package/constants/store-keys.d.ts +0 -1
- package/defaults/default-processors/default-processors.d.ts +0 -2
- package/defaults/default-skeleton/default-skeleton.d.ts +0 -2
- package/directives/code-highlighter/code-highlighter.directive.d.ts +0 -14
- package/directives/route-active/route-active.directive.d.ts +0 -10
- package/helpers/as-boolean.d.ts +0 -5
- package/helpers/create-component.d.ts +0 -8
- package/helpers/format-html.d.ts +0 -5
- package/helpers/generate-toc.d.ts +0 -7
- package/helpers/is-dark-os-theme.d.ts +0 -4
- package/helpers/is-external-link.d.ts +0 -5
- package/helpers/is-playground-property.d.ts +0 -6
- package/interfaces/context.d.ts +0 -10
- package/interfaces/demo-assets.d.ts +0 -9
- package/interfaces/navigation.d.ts +0 -19
- package/interfaces/page-processor.d.ts +0 -27
- package/interfaces/page-skeleton.d.ts +0 -53
- package/interfaces/processor-options.d.ts +0 -7
- package/interfaces/provided-type-control.d.ts +0 -7
- package/interfaces/search-result.d.ts +0 -15
- package/interfaces/tab.d.ts +0 -6
- package/interfaces/theme.d.ts +0 -13
- package/interfaces/toc-item.d.ts +0 -7
- package/interfaces/type-control-provider-options.d.ts +0 -15
- package/interfaces/type-control.d.ts +0 -26
- package/pipes/decode-uri-component/decode-uri-component.pipe.d.ts +0 -7
- package/pipes/extract-value/extract-value.pipe.d.ts +0 -8
- package/pipes/filter-by-text/filter-by-text.pipe.d.ts +0 -7
- package/pipes/sanitize-html/sanitize-html.pipe.d.ts +0 -10
- package/processors/page-processor/page-processor.component.d.ts +0 -23
- package/processors/processors/blockquote.processor.d.ts +0 -3
- package/processors/processors/code.processor.d.ts +0 -3
- package/processors/processors/demo-pane.processor.d.ts +0 -3
- package/processors/processors/demo.processor.d.ts +0 -3
- package/processors/processors/heading-anchor.processor.d.ts +0 -3
- package/processors/processors/icon.processor.d.ts +0 -3
- package/processors/processors/image.processor.d.ts +0 -3
- package/processors/processors/link/link.processor.d.ts +0 -3
- package/processors/processors/mermaid.processor.d.ts +0 -3
- package/processors/processors/playground.processor.d.ts +0 -3
- package/processors/processors/tabs.processor.d.ts +0 -3
- package/processors/processors/tooltip/tooltip.processor.d.ts +0 -15
- package/providers/mermaid/provide-mermaid.d.ts +0 -7
- package/providers/ng-doc-app/provide-ng-doc-app.d.ts +0 -21
- package/providers/page-skeleton/provide-page-skeleton.d.ts +0 -9
- package/providers/playground-demo/provide-playground-demo.d.ts +0 -17
- package/providers/search-engine/provide-search-engine.d.ts +0 -12
- package/providers/type-control/provide-type-control.d.ts +0 -15
- package/services/highlighter/highlighter.service.d.ts +0 -24
- package/services/sidebar/sidebar.service.d.ts +0 -34
- package/services/store/store.service.d.ts +0 -10
- package/services/theme/theme.service.d.ts +0 -24
- package/tokens/context.d.ts +0 -3
- package/tokens/mermaid.d.ts +0 -3
- package/tokens/page-processor.d.ts +0 -15
- package/tokens/page-skeleton.d.ts +0 -3
- package/tokens/route-prefix.d.ts +0 -2
- package/tokens/shiki-theme.d.ts +0 -6
- package/tokens/theme.d.ts +0 -28
- package/tokens/type-control.d.ts +0 -3
- package/type-controls/boolean-control/boolean-control.component.d.ts +0 -13
- package/type-controls/number-control/number-control.component.d.ts +0 -10
- package/type-controls/string-control/string-control.component.d.ts +0 -11
- package/type-controls/type-alias-control/type-alias-control.component.d.ts +0 -13
- package/types/typed-form.d.ts +0 -4
|
@@ -1 +1,60 @@
|
|
|
1
|
-
|
|
1
|
+
import { NgDocSidebarService } from '@ng-doc/app/services';
|
|
2
|
+
import { NgDocContent, NgDocSidenavComponent } from '@ng-doc/ui-kit';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Directive uses for providing custom navbar, you should mark element with this directive
|
|
7
|
+
* and the `NgDocRootComponent` will use it as a navbar
|
|
8
|
+
*
|
|
9
|
+
* ```html
|
|
10
|
+
* <ng-doc-root>
|
|
11
|
+
* <my-custom-navbar ngDocCustomNavbar></my-custom-navbar>
|
|
12
|
+
*
|
|
13
|
+
* <ng-doc-sidebar></ng-doc-sidebar>
|
|
14
|
+
* <router-outlet></router-outlet>
|
|
15
|
+
* </ng-doc-root>
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
declare class NgDocCustomNavbarDirective {
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgDocCustomNavbarDirective, never>;
|
|
20
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgDocCustomNavbarDirective, "[ngDocCustomNavbar]", never, {}, {}, never, never, true, never>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Directive uses for providing custom sidebar, you should mark element with this directive
|
|
24
|
+
* and the `NgDocRootComponent` will use it as a sidebar
|
|
25
|
+
*
|
|
26
|
+
* ```html
|
|
27
|
+
* <ng-doc-root>
|
|
28
|
+
* <ng-doc-navbar></ng-doc-sidebar>
|
|
29
|
+
*
|
|
30
|
+
* <my-custom-sidebar ngDocCustomSidebar></my-custom-sidebar>
|
|
31
|
+
* <router-outlet></router-outlet>
|
|
32
|
+
* </ng-doc-root>
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
declare class NgDocCustomSidebarDirective {
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgDocCustomSidebarDirective, never>;
|
|
37
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgDocCustomSidebarDirective, "[ngDocCustomSidebar]", never, {}, {}, never, never, true, never>;
|
|
38
|
+
}
|
|
39
|
+
declare class NgDocRootComponent {
|
|
40
|
+
/**
|
|
41
|
+
* If `true` then the sidebar will be shown
|
|
42
|
+
* You can use it for example for landing page to hide sidebar
|
|
43
|
+
*/
|
|
44
|
+
sidebar: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Content for footer
|
|
47
|
+
*/
|
|
48
|
+
footerContent: NgDocContent;
|
|
49
|
+
/**
|
|
50
|
+
* If `true` then page will be shown without width limit.
|
|
51
|
+
* You can use it for example for landing page
|
|
52
|
+
*/
|
|
53
|
+
noWidthLimit: boolean;
|
|
54
|
+
sidenav?: NgDocSidenavComponent;
|
|
55
|
+
protected readonly sidebarService: NgDocSidebarService;
|
|
56
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgDocRootComponent, never>;
|
|
57
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgDocRootComponent, "ng-doc-root", never, { "sidebar": { "alias": "sidebar"; "required": false; }; "footerContent": { "alias": "footerContent"; "required": false; }; "noWidthLimit": { "alias": "noWidthLimit"; "required": false; }; }, {}, never, ["ng-doc-navbar", "[ngDocCustomNavbar]", "ng-doc-sidebar", "[ngDocCustomSidebar]", "*"], true, never>;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export { NgDocCustomNavbarDirective, NgDocCustomSidebarDirective, NgDocRootComponent };
|
|
@@ -1 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
import { NgDocSearchEngine } from '@ng-doc/app/classes';
|
|
2
|
+
import { NgDocSearchResult } from '@ng-doc/app/interfaces';
|
|
3
|
+
import { StatedObservable, NgDocDialogService } from '@ng-doc/ui-kit';
|
|
4
|
+
import { BehaviorSubject } from 'rxjs';
|
|
5
|
+
import * as i0 from '@angular/core';
|
|
6
|
+
|
|
7
|
+
declare class NgDocSearchComponent {
|
|
8
|
+
protected readonly query: BehaviorSubject<string>;
|
|
9
|
+
protected readonly searchResults: StatedObservable<NgDocSearchResult[]>;
|
|
10
|
+
protected readonly dialog: NgDocDialogService;
|
|
11
|
+
protected readonly searchEngine: NgDocSearchEngine | null;
|
|
12
|
+
constructor();
|
|
13
|
+
open(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgDocSearchComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgDocSearchComponent, "ng-doc-search", never, {}, {}, never, never, true, never>;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { NgDocSearchComponent };
|
|
@@ -1 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { ElementRef } from '@angular/core';
|
|
3
|
+
import { NgDocSearchResult } from '@ng-doc/app/interfaces';
|
|
4
|
+
import { StatedObservable, NgDocHighlightPosition } from '@ng-doc/ui-kit';
|
|
5
|
+
import { NgDocListHost, NgDocOverlayRef } from '@ng-doc/ui-kit/classes';
|
|
6
|
+
|
|
7
|
+
interface NgDocSearchDialogData {
|
|
8
|
+
term: string;
|
|
9
|
+
search: (query: string) => void;
|
|
10
|
+
searchResults: StatedObservable<NgDocSearchResult[]>;
|
|
11
|
+
}
|
|
12
|
+
declare class NgDocSearchDialogComponent implements NgDocListHost {
|
|
13
|
+
inputElement: ElementRef<HTMLElement>;
|
|
14
|
+
resultContent?: ElementRef<HTMLElement>;
|
|
15
|
+
protected searchTerm: string;
|
|
16
|
+
protected readonly elementRef: ElementRef<HTMLElement>;
|
|
17
|
+
protected readonly overlayRef: NgDocOverlayRef<any>;
|
|
18
|
+
protected readonly data: NgDocSearchDialogData;
|
|
19
|
+
constructor();
|
|
20
|
+
search(query: string): void;
|
|
21
|
+
getPositions<T extends NgDocSearchResult, K extends keyof T['positions']>(key: K, item: T): NgDocHighlightPosition[];
|
|
22
|
+
get listHostOrigin(): ElementRef<HTMLElement>;
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgDocSearchDialogComponent, never>;
|
|
24
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgDocSearchDialogComponent, "ng-doc-search-dialog", never, {}, {}, never, never, true, never>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { NgDocSearchDialogComponent };
|
|
28
|
+
export type { NgDocSearchDialogData };
|
|
@@ -1 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
3
|
+
import { NgDocPageInfo } from '@ng-doc/core/interfaces';
|
|
4
|
+
|
|
5
|
+
declare class NgDocSearchResultComponent implements OnChanges {
|
|
6
|
+
result: NgDocPageInfo[] | null;
|
|
7
|
+
groupedResult: Record<string, NgDocPageInfo[]>;
|
|
8
|
+
ngOnChanges({ result }: SimpleChanges): void;
|
|
9
|
+
typeToLabel(type: string): string;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgDocSearchResultComponent, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgDocSearchResultComponent, "ng-doc-search-result", never, { "result": { "alias": "result"; "required": false; }; }, {}, never, never, true, never>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { NgDocSearchResultComponent };
|
|
@@ -1 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
import * as _ng_doc_app_interfaces from '@ng-doc/app/interfaces';
|
|
2
|
+
import { NgDocNavigation } from '@ng-doc/app/interfaces';
|
|
3
|
+
import { Location } from '@angular/common';
|
|
4
|
+
import * as i0 from '@angular/core';
|
|
5
|
+
|
|
6
|
+
declare class NgDocSidebarComponent {
|
|
7
|
+
protected readonly location: Location;
|
|
8
|
+
protected readonly context: _ng_doc_app_interfaces.NgDocContext;
|
|
9
|
+
getNavigation(nav?: NgDocNavigation): NgDocNavigation[];
|
|
10
|
+
matchRoute(route: string): boolean;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgDocSidebarComponent, never>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgDocSidebarComponent, "ng-doc-sidebar", never, {}, {}, never, never, true, never>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { NgDocSidebarComponent };
|
|
@@ -1 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import { NgDocTab } from '@ng-doc/app/interfaces';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
|
|
4
|
+
declare class NgDocTabsComponent {
|
|
5
|
+
tabs: NgDocTab[];
|
|
6
|
+
getActiveIndex(tabs: NgDocTab[]): number;
|
|
7
|
+
appendElement(element: Element, parent: Element): void;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgDocTabsComponent, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgDocTabsComponent, "ng-doc-tabs", never, { "tabs": { "alias": "tabs"; "required": false; }; }, {}, never, never, true, never>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export { NgDocTabsComponent };
|
|
@@ -1 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
import { NgDocThemeService } from '@ng-doc/app/services/theme';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
|
|
4
|
+
interface ToggleTheme {
|
|
5
|
+
name: string;
|
|
6
|
+
theme: string | null;
|
|
7
|
+
}
|
|
8
|
+
declare class NgDocThemeToggleComponent {
|
|
9
|
+
protected readonly themes: ToggleTheme[];
|
|
10
|
+
protected readonly documentElement: HTMLElement;
|
|
11
|
+
protected readonly themeService: NgDocThemeService;
|
|
12
|
+
get currentTheme(): ToggleTheme;
|
|
13
|
+
get nextTheme(): ToggleTheme;
|
|
14
|
+
toggleTheme(): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgDocThemeToggleComponent, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgDocThemeToggleComponent, "ng-doc-theme-toggle", never, {}, {}, never, never, true, never>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { NgDocThemeToggleComponent };
|
|
@@ -1,2 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { ElementRef, OnInit, QueryList, WritableSignal, NgZone, ChangeDetectorRef, Renderer2, DestroyRef } from '@angular/core';
|
|
3
|
+
import { Router } from '@angular/router';
|
|
4
|
+
import { NgDocPageToc, NgDocTocItem } from '@ng-doc/app/interfaces';
|
|
5
|
+
|
|
6
|
+
declare class NgDocTocElementComponent {
|
|
7
|
+
path: string;
|
|
8
|
+
hash: string;
|
|
9
|
+
selected: boolean;
|
|
10
|
+
level: number;
|
|
11
|
+
readonly elementRef: ElementRef<HTMLElement>;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgDocTocElementComponent, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgDocTocElementComponent, "li[ng-doc-toc-element]", never, { "path": { "alias": "path"; "required": false; }; "hash": { "alias": "hash"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "level": { "alias": "level"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
declare class NgDocTocComponent implements NgDocPageToc, OnInit {
|
|
17
|
+
tableOfContent: NgDocTocItem[];
|
|
18
|
+
selection?: ElementRef<HTMLElement>;
|
|
19
|
+
elements: QueryList<NgDocTocElementComponent>;
|
|
20
|
+
activeItem: WritableSignal<NgDocTocItem | undefined>;
|
|
21
|
+
protected readonly document: Document;
|
|
22
|
+
protected readonly ngZone: NgZone;
|
|
23
|
+
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
24
|
+
protected readonly renderer: Renderer2;
|
|
25
|
+
protected readonly router: Router;
|
|
26
|
+
protected readonly destroyRef: DestroyRef;
|
|
27
|
+
constructor();
|
|
28
|
+
ngOnInit(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Selects the item in the table of content.
|
|
31
|
+
* @param item - Item to select.
|
|
32
|
+
*/
|
|
33
|
+
protected select(item: NgDocTocItem): void;
|
|
34
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgDocTocComponent, never>;
|
|
35
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgDocTocComponent, "ng-doc-toc", never, { "tableOfContent": { "alias": "tableOfContent"; "required": false; }; }, {}, never, never, true, never>;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { NgDocTocComponent, NgDocTocElementComponent };
|
package/constants/index.d.ts
CHANGED
|
@@ -1 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Signal } from '@angular/core';
|
|
3
|
+
import { SafeHtml, DomSanitizer } from '@angular/platform-browser';
|
|
4
|
+
import { NgDocHighlighterService } from '@ng-doc/app/services';
|
|
5
|
+
|
|
6
|
+
declare class NgDocCodeHighlighterDirective {
|
|
7
|
+
code: i0.InputSignal<string>;
|
|
8
|
+
protected readonly highlightedCode: Signal<SafeHtml>;
|
|
9
|
+
protected readonly element: any;
|
|
10
|
+
protected readonly highlighter: NgDocHighlighterService;
|
|
11
|
+
protected readonly sanitizer: DomSanitizer;
|
|
12
|
+
constructor();
|
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgDocCodeHighlighterDirective, never>;
|
|
14
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgDocCodeHighlighterDirective, "[ngDocHighlighter]", never, { "code": { "alias": "ngDocHighlighter"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { NgDocCodeHighlighterDirective };
|
|
@@ -1 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
import { IsActiveMatchOptions } from '@angular/router';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
|
|
4
|
+
declare class NgDocRouteActiveDirective {
|
|
5
|
+
link: string;
|
|
6
|
+
activeClass: string | string[];
|
|
7
|
+
matchOptions: IsActiveMatchOptions;
|
|
8
|
+
constructor();
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgDocRouteActiveDirective, never>;
|
|
10
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgDocRouteActiveDirective, "[ngDocRouteActive]", never, { "link": { "alias": "ngDocRouteActive"; "required": false; }; "activeClass": { "alias": "activeClass"; "required": false; }; "matchOptions": { "alias": "matchOptions"; "required": false; }; }, {}, never, never, true, never>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { NgDocRouteActiveDirective };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-app-classes-default-search-engine.mjs","sources":["../../../../libs/app/classes/default-search-engine/default-search-engine.ts","../../../../libs/app/classes/default-search-engine/ng-doc-app-classes-default-search-engine.ts"],"sourcesContent":["import { NgDocSearchEngine } from '@ng-doc/app/classes/search-engine';\nimport { NgDocSearchResult } from '@ng-doc/app/interfaces';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { objectKeys } from '@ng-doc/core/helpers/object-keys';\nimport { NgDocPageIndex } from '@ng-doc/core/interfaces';\nimport { NgDocHighlightPosition } from '@ng-doc/ui-kit';\nimport { create, insertMultiple, Orama } from '@orama/orama';\nimport {\n afterInsert,\n OramaWithHighlight,\n searchWithHighlight,\n} from '@orama/plugin-match-highlight';\nimport * as stemmer from '@orama/stemmers';\nimport { from, Observable } from 'rxjs';\nimport { map, shareReplay, switchMap } from 'rxjs/operators';\n\ntype OramaDb = OramaWithHighlight<\n Orama<{\n title: 'string';\n section: 'string';\n content: 'string';\n }>\n>;\n\n/**\n * Options for the `NgDocDefaultSearchEngine`.\n */\nexport interface NgDocDefaultSearchEngineOptions {\n /**\n * The language to use for the search engine.\n */\n stemmer?: typeof stemmer.stemmer;\n /**\n * Specifies the maximum distance (following the Levenshtein algorithm) between the term and the searchable property.\n * (doesn't work with `exact` option)\n */\n tolerance?: number;\n /**\n * If `true`, finds all the document with an exact match of the term property.\n */\n exact?: boolean;\n /**\n * Number of results to return (default: 10).\n */\n limit?: number;\n}\n\n/**\n * Search engine for the documentation, it loads the index and provides a search method.\n */\nexport class NgDocDefaultSearchEngine extends NgDocSearchEngine {\n private db$: Observable<OramaDb>;\n\n constructor(private options?: NgDocDefaultSearchEngineOptions) {\n super();\n\n this.db$ = from(\n create({\n schema: {\n title: 'string',\n section: 'string',\n content: 'string',\n },\n plugins: [\n {\n name: 'highlight',\n afterInsert,\n },\n ],\n components: {\n tokenizer: {\n stemmer: options?.stemmer,\n },\n },\n }),\n ).pipe(\n switchMap((db) =>\n this.request<NgDocPageIndex[]>(`assets/ng-doc/indexes.json`).pipe(\n switchMap((pages: NgDocPageIndex[]) => insertMultiple(db, pages as any)),\n map(() => db as unknown as OramaDb),\n ),\n ),\n shareReplay(1),\n ) as Observable<OramaDb>;\n }\n\n /**\n * Search the documentation for the given query.\n * @param query The query to search for.\n */\n search(query: string): Observable<NgDocSearchResult[]> {\n return this.db$.pipe(\n switchMap((db) =>\n searchWithHighlight(db, {\n term: query,\n boost: { title: 4, section: 2 },\n threshold: 0.3,\n properties: ['title', 'section', 'content'],\n tolerance: this.options?.tolerance,\n exact: this.options?.exact,\n limit: this.options?.limit ?? 10,\n }),\n ),\n map((result) =>\n result.hits.map((hit) => {\n const keys: Array<keyof NgDocPageIndex> = objectKeys(hit.positions) as unknown as Array<\n keyof NgDocPageIndex\n >;\n\n return {\n index: hit.document as unknown as NgDocPageIndex,\n positions: keys.reduce(\n (\n acc: Record<keyof NgDocPageIndex, NgDocHighlightPosition[]>,\n key: keyof NgDocPageIndex,\n ) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n acc[key] = [...asArray(acc[key]), ...Object.values(hit.positions[key]).flat()];\n\n return acc;\n },\n {} as any,\n ) as Partial<Record<keyof NgDocPageIndex, NgDocHighlightPosition[]>>,\n };\n }),\n ),\n );\n }\n\n private request<T>(url: string): Observable<T> {\n return from(fetch(url)).pipe(switchMap((response: Response) => response.json() as Promise<T>));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AA+CA;;AAEG;AACG,MAAO,wBAAyB,SAAQ,iBAAiB,CAAA;AAG7D,IAAA,WAAA,CAAoB,OAAyC,EAAA;AAC3D,QAAA,KAAK,EAAE;QADW,IAAO,CAAA,OAAA,GAAP,OAAO;AAGzB,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CACb,MAAM,CAAC;AACL,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,OAAO,EAAE,QAAQ;AAClB,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,IAAI,EAAE,WAAW;oBACjB,WAAW;AACZ,iBAAA;AACF,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,SAAS,EAAE;oBACT,OAAO,EAAE,OAAO,EAAE,OAAO;AAC1B,iBAAA;AACF,aAAA;SACF,CAAC,CACH,CAAC,IAAI,CACJ,SAAS,CAAC,CAAC,EAAE,KACX,IAAI,CAAC,OAAO,CAAmB,CAAA,0BAAA,CAA4B,CAAC,CAAC,IAAI,CAC/D,SAAS,CAAC,CAAC,KAAuB,KAAK,cAAc,CAAC,EAAE,EAAE,KAAY,CAAC,CAAC,EACxE,GAAG,CAAC,MAAM,EAAwB,CAAC,CACpC,CACF,EACD,WAAW,CAAC,CAAC,CAAC,CACQ;;AAG1B;;;AAGG;AACH,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAClB,SAAS,CAAC,CAAC,EAAE,KACX,mBAAmB,CAAC,EAAE,EAAE;AACtB,YAAA,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;AAC/B,YAAA,SAAS,EAAE,GAAG;AACd,YAAA,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;AAC3C,YAAA,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK;AAC1B,YAAA,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;AACjC,SAAA,CAAC,CACH,EACD,GAAG,CAAC,CAAC,MAAM,KACT,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;YACtB,MAAM,IAAI,GAAgC,UAAU,CAAC,GAAG,CAAC,SAAS,CAEjE;YAED,OAAO;gBACL,KAAK,EAAE,GAAG,CAAC,QAAqC;gBAChD,SAAS,EAAE,IAAI,CAAC,MAAM,CACpB,CACE,GAA2D,EAC3D,GAAyB,KACvB;;;AAGF,oBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAE9E,oBAAA,OAAO,GAAG;iBACX,EACD,EAAS,CACyD;aACrE;SACF,CAAC,CACH,CACF;;AAGK,IAAA,OAAO,CAAI,GAAW,EAAA;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAkB,KAAK,QAAQ,CAAC,IAAI,EAAgB,CAAC,CAAC;;AAEjG;;ACrID;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ng-doc-app-classes-default-search-engine.mjs","sources":["../tmp-esm2022/classes/default-search-engine/default-search-engine.js","../tmp-esm2022/classes/default-search-engine/ng-doc-app-classes-default-search-engine.js"],"sourcesContent":["import { NgDocSearchEngine } from '@ng-doc/app/classes/search-engine';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { objectKeys } from '@ng-doc/core/helpers/object-keys';\nimport { create, insertMultiple } from '@orama/orama';\nimport { afterInsert, searchWithHighlight, } from '@orama/plugin-match-highlight';\nimport { from } from 'rxjs';\nimport { map, shareReplay, switchMap } from 'rxjs/operators';\n/**\n * Search engine for the documentation, it loads the index and provides a search method.\n */\nexport class NgDocDefaultSearchEngine extends NgDocSearchEngine {\n constructor(options) {\n super();\n this.options = options;\n this.db$ = from(create({\n schema: {\n title: 'string',\n section: 'string',\n content: 'string',\n },\n plugins: [\n {\n name: 'highlight',\n afterInsert,\n },\n ],\n components: {\n tokenizer: {\n stemmer: options?.stemmer,\n },\n },\n })).pipe(switchMap((db) => this.request(`assets/ng-doc/indexes.json`).pipe(switchMap((pages) => insertMultiple(db, pages)), map(() => db))), shareReplay(1));\n }\n /**\n * Search the documentation for the given query.\n * @param query The query to search for.\n */\n search(query) {\n return this.db$.pipe(switchMap((db) => searchWithHighlight(db, {\n term: query,\n boost: { title: 4, section: 2 },\n threshold: 0.3,\n properties: ['title', 'section', 'content'],\n tolerance: this.options?.tolerance,\n exact: this.options?.exact,\n limit: this.options?.limit ?? 10,\n })), map((result) => result.hits.map((hit) => {\n const keys = objectKeys(hit.positions);\n return {\n index: hit.document,\n positions: keys.reduce((acc, key) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n acc[key] = [...asArray(acc[key]), ...Object.values(hit.positions[key]).flat()];\n return acc;\n }, {}),\n };\n })));\n }\n request(url) {\n return from(fetch(url)).pipe(switchMap((response) => response.json()));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zZWFyY2gtZW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY2xhc3Nlcy9kZWZhdWx0LXNlYXJjaC1lbmdpbmUvZGVmYXVsdC1zZWFyY2gtZW5naW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQVMsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUNMLFdBQVcsRUFFWCxtQkFBbUIsR0FDcEIsTUFBTSwrQkFBK0IsQ0FBQztBQUV2QyxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBaUM3RDs7R0FFRztBQUNILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxpQkFBaUI7SUFHN0QsWUFBb0IsT0FBeUM7UUFDM0QsS0FBSyxFQUFFLENBQUM7UUFEVSxZQUFPLEdBQVAsT0FBTyxDQUFrQztRQUczRCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FDYixNQUFNLENBQUM7WUFDTCxNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLE9BQU8sRUFBRSxRQUFRO2FBQ2xCO1lBQ0QsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxXQUFXO29CQUNqQixXQUFXO2lCQUNaO2FBQ0Y7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsU0FBUyxFQUFFO29CQUNULE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTztpQkFDMUI7YUFDRjtTQUNGLENBQUMsQ0FDSCxDQUFDLElBQUksQ0FDSixTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUNmLElBQUksQ0FBQyxPQUFPLENBQW1CLDRCQUE0QixDQUFDLENBQUMsSUFBSSxDQUMvRCxTQUFTLENBQUMsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLEtBQVksQ0FBQyxDQUFDLEVBQ3hFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUF3QixDQUFDLENBQ3BDLENBQ0YsRUFDRCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ1EsQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEtBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FDbEIsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDZixtQkFBbUIsQ0FBQyxFQUFFLEVBQUU7WUFDdEIsSUFBSSxFQUFFLEtBQUs7WUFDWCxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUU7WUFDL0IsU0FBUyxFQUFFLEdBQUc7WUFDZCxVQUFVLEVBQUUsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQztZQUMzQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTO1lBQ2xDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUs7WUFDMUIsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUU7U0FDakMsQ0FBQyxDQUNILEVBQ0QsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDYixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxHQUFnQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FFakUsQ0FBQztZQUVGLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEdBQUcsQ0FBQyxRQUFxQztnQkFDaEQsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQ3BCLENBQ0UsR0FBMkQsRUFDM0QsR0FBeUIsRUFDekIsRUFBRTtvQkFDRiw2REFBNkQ7b0JBQzdELGFBQWE7b0JBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUUvRSxPQUFPLEdBQUcsQ0FBQztnQkFDYixDQUFDLEVBQ0QsRUFBUyxDQUN5RDthQUNyRSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLE9BQU8sQ0FBSSxHQUFXO1FBQzVCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFrQixFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFnQixDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0RvY1NlYXJjaEVuZ2luZSB9IGZyb20gJ0BuZy1kb2MvYXBwL2NsYXNzZXMvc2VhcmNoLWVuZ2luZSc7XG5pbXBvcnQgeyBOZ0RvY1NlYXJjaFJlc3VsdCB9IGZyb20gJ0BuZy1kb2MvYXBwL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXNBcnJheSB9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL2FzLWFycmF5JztcbmltcG9ydCB7IG9iamVjdEtleXMgfSBmcm9tICdAbmctZG9jL2NvcmUvaGVscGVycy9vYmplY3Qta2V5cyc7XG5pbXBvcnQgeyBOZ0RvY1BhZ2VJbmRleCB9IGZyb20gJ0BuZy1kb2MvY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE5nRG9jSGlnaGxpZ2h0UG9zaXRpb24gfSBmcm9tICdAbmctZG9jL3VpLWtpdCc7XG5pbXBvcnQgeyBjcmVhdGUsIGluc2VydE11bHRpcGxlLCBPcmFtYSB9IGZyb20gJ0BvcmFtYS9vcmFtYSc7XG5pbXBvcnQge1xuICBhZnRlckluc2VydCxcbiAgT3JhbWFXaXRoSGlnaGxpZ2h0LFxuICBzZWFyY2hXaXRoSGlnaGxpZ2h0LFxufSBmcm9tICdAb3JhbWEvcGx1Z2luLW1hdGNoLWhpZ2hsaWdodCc7XG5pbXBvcnQgKiBhcyBzdGVtbWVyIGZyb20gJ0BvcmFtYS9zdGVtbWVycyc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbnR5cGUgT3JhbWFEYiA9IE9yYW1hV2l0aEhpZ2hsaWdodDxcbiAgT3JhbWE8e1xuICAgIHRpdGxlOiAnc3RyaW5nJztcbiAgICBzZWN0aW9uOiAnc3RyaW5nJztcbiAgICBjb250ZW50OiAnc3RyaW5nJztcbiAgfT5cbj47XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGBOZ0RvY0RlZmF1bHRTZWFyY2hFbmdpbmVgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5nRG9jRGVmYXVsdFNlYXJjaEVuZ2luZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGxhbmd1YWdlIHRvIHVzZSBmb3IgdGhlIHNlYXJjaCBlbmdpbmUuXG4gICAqL1xuICBzdGVtbWVyPzogdHlwZW9mIHN0ZW1tZXIuc3RlbW1lcjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSBkaXN0YW5jZSAoZm9sbG93aW5nIHRoZSBMZXZlbnNodGVpbiBhbGdvcml0aG0pIGJldHdlZW4gdGhlIHRlcm0gYW5kIHRoZSBzZWFyY2hhYmxlIHByb3BlcnR5LlxuICAgKiAoZG9lc24ndCB3b3JrIHdpdGggYGV4YWN0YCBvcHRpb24pXG4gICAqL1xuICB0b2xlcmFuY2U/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIGZpbmRzIGFsbCB0aGUgZG9jdW1lbnQgd2l0aCBhbiBleGFjdCBtYXRjaCBvZiB0aGUgdGVybSBwcm9wZXJ0eS5cbiAgICovXG4gIGV4YWN0PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE51bWJlciBvZiByZXN1bHRzIHRvIHJldHVybiAoZGVmYXVsdDogMTApLlxuICAgKi9cbiAgbGltaXQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogU2VhcmNoIGVuZ2luZSBmb3IgdGhlIGRvY3VtZW50YXRpb24sIGl0IGxvYWRzIHRoZSBpbmRleCBhbmQgcHJvdmlkZXMgYSBzZWFyY2ggbWV0aG9kLlxuICovXG5leHBvcnQgY2xhc3MgTmdEb2NEZWZhdWx0U2VhcmNoRW5naW5lIGV4dGVuZHMgTmdEb2NTZWFyY2hFbmdpbmUge1xuICBwcml2YXRlIGRiJDogT2JzZXJ2YWJsZTxPcmFtYURiPjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM/OiBOZ0RvY0RlZmF1bHRTZWFyY2hFbmdpbmVPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuZGIkID0gZnJvbShcbiAgICAgIGNyZWF0ZSh7XG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIHRpdGxlOiAnc3RyaW5nJyxcbiAgICAgICAgICBzZWN0aW9uOiAnc3RyaW5nJyxcbiAgICAgICAgICBjb250ZW50OiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgcGx1Z2luczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdoaWdobGlnaHQnLFxuICAgICAgICAgICAgYWZ0ZXJJbnNlcnQsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgIHRva2VuaXplcjoge1xuICAgICAgICAgICAgc3RlbW1lcjogb3B0aW9ucz8uc3RlbW1lcixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChkYikgPT5cbiAgICAgICAgdGhpcy5yZXF1ZXN0PE5nRG9jUGFnZUluZGV4W10+KGBhc3NldHMvbmctZG9jL2luZGV4ZXMuanNvbmApLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKChwYWdlczogTmdEb2NQYWdlSW5kZXhbXSkgPT4gaW5zZXJ0TXVsdGlwbGUoZGIsIHBhZ2VzIGFzIGFueSkpLFxuICAgICAgICAgIG1hcCgoKSA9PiBkYiBhcyB1bmtub3duIGFzIE9yYW1hRGIpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICkgYXMgT2JzZXJ2YWJsZTxPcmFtYURiPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWFyY2ggdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBnaXZlbiBxdWVyeS5cbiAgICogQHBhcmFtIHF1ZXJ5IFRoZSBxdWVyeSB0byBzZWFyY2ggZm9yLlxuICAgKi9cbiAgc2VhcmNoKHF1ZXJ5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPE5nRG9jU2VhcmNoUmVzdWx0W10+IHtcbiAgICByZXR1cm4gdGhpcy5kYiQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoZGIpID0+XG4gICAgICAgIHNlYXJjaFdpdGhIaWdobGlnaHQoZGIsIHtcbiAgICAgICAgICB0ZXJtOiBxdWVyeSxcbiAgICAgICAgICBib29zdDogeyB0aXRsZTogNCwgc2VjdGlvbjogMiB9LFxuICAgICAgICAgIHRocmVzaG9sZDogMC4zLFxuICAgICAgICAgIHByb3BlcnRpZXM6IFsndGl0bGUnLCAnc2VjdGlvbicsICdjb250ZW50J10sXG4gICAgICAgICAgdG9sZXJhbmNlOiB0aGlzLm9wdGlvbnM/LnRvbGVyYW5jZSxcbiAgICAgICAgICBleGFjdDogdGhpcy5vcHRpb25zPy5leGFjdCxcbiAgICAgICAgICBsaW1pdDogdGhpcy5vcHRpb25zPy5saW1pdCA/PyAxMCxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICAgbWFwKChyZXN1bHQpID0+XG4gICAgICAgIHJlc3VsdC5oaXRzLm1hcCgoaGl0KSA9PiB7XG4gICAgICAgICAgY29uc3Qga2V5czogQXJyYXk8a2V5b2YgTmdEb2NQYWdlSW5kZXg+ID0gb2JqZWN0S2V5cyhoaXQucG9zaXRpb25zKSBhcyB1bmtub3duIGFzIEFycmF5PFxuICAgICAgICAgICAga2V5b2YgTmdEb2NQYWdlSW5kZXhcbiAgICAgICAgICA+O1xuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGluZGV4OiBoaXQuZG9jdW1lbnQgYXMgdW5rbm93biBhcyBOZ0RvY1BhZ2VJbmRleCxcbiAgICAgICAgICAgIHBvc2l0aW9uczoga2V5cy5yZWR1Y2UoXG4gICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICBhY2M6IFJlY29yZDxrZXlvZiBOZ0RvY1BhZ2VJbmRleCwgTmdEb2NIaWdobGlnaHRQb3NpdGlvbltdPixcbiAgICAgICAgICAgICAgICBrZXk6IGtleW9mIE5nRG9jUGFnZUluZGV4LFxuICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIGFjY1trZXldID0gWy4uLmFzQXJyYXkoYWNjW2tleV0pLCAuLi5PYmplY3QudmFsdWVzKGhpdC5wb3NpdGlvbnNba2V5XSkuZmxhdCgpXTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHt9IGFzIGFueSxcbiAgICAgICAgICAgICkgYXMgUGFydGlhbDxSZWNvcmQ8a2V5b2YgTmdEb2NQYWdlSW5kZXgsIE5nRG9jSGlnaGxpZ2h0UG9zaXRpb25bXT4+LFxuICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZXF1ZXN0PFQ+KHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIGZyb20oZmV0Y2godXJsKSkucGlwZShzd2l0Y2hNYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4gcmVzcG9uc2UuanNvbigpIGFzIFByb21pc2U8VD4pKTtcbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZG9jLWFwcC1jbGFzc2VzLWRlZmF1bHQtc2VhcmNoLWVuZ2luZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NsYXNzZXMvZGVmYXVsdC1zZWFyY2gtZW5naW5lL25nLWRvYy1hcHAtY2xhc3Nlcy1kZWZhdWx0LXNlYXJjaC1lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":";;;;;;;;AAOA;AACA;AACA;AACO,MAAM,wBAAwB,SAAS,iBAAiB,CAAC;AAChE,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,YAAY,MAAM,EAAE;AACpB,gBAAgB,KAAK,EAAE,QAAQ;AAC/B,gBAAgB,OAAO,EAAE,QAAQ;AACjC,gBAAgB,OAAO,EAAE,QAAQ;AACjC,aAAa;AACb,YAAY,OAAO,EAAE;AACrB,gBAAgB;AAChB,oBAAoB,IAAI,EAAE,WAAW;AACrC,oBAAoB,WAAW;AAC/B,iBAAiB;AACjB,aAAa;AACb,YAAY,UAAU,EAAE;AACxB,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB,OAAO,EAAE,OAAO,EAAE,OAAO;AAC7C,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AACpK;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,mBAAmB,CAAC,EAAE,EAAE;AACvE,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;AAC3C,YAAY,SAAS,EAAE,GAAG;AAC1B,YAAY,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;AACvD,YAAY,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS;AAC9C,YAAY,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK;AACtC,YAAY,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;AAC5C,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AACtD,YAAY,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;AAClD,YAAY,OAAO;AACnB,gBAAgB,KAAK,EAAE,GAAG,CAAC,QAAQ;AACnC,gBAAgB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AACrD;AACA;AACA,oBAAoB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAClG,oBAAoB,OAAO,GAAG;AAC9B,iBAAiB,EAAE,EAAE,CAAC;AACtB,aAAa;AACb,SAAS,CAAC,CAAC,CAAC;AACZ;AACA,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9E;AACA;;AC9DA;AACA;AACA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-app-classes-root-page.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"ng-doc-app-classes-root-page.mjs","sources":["../tmp-esm2022/classes/root-page/root-page.js","../tmp-esm2022/classes/root-page/ng-doc-app-classes-root-page.js"],"sourcesContent":["/**\n * Base class for NgDoc page\n */\nexport class NgDocRootPage {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY2xhc3Nlcy9yb290LXBhZ2Uvcm9vdC1wYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixhQUFhO0NBNkJsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nRG9jRGVtb0Fzc2V0cyB9IGZyb20gJ0BuZy1kb2MvYXBwL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTmdEb2NQYWdlIH0gZnJvbSAnQG5nLWRvYy9jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTmdEb2NQYWdlVHlwZSB9IGZyb20gJ0BuZy1kb2MvY29yZS90eXBlcyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgTmdEb2MgcGFnZVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmdEb2NSb290UGFnZSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgcGFnZVxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgcGFnZVR5cGU6IE5nRG9jUGFnZVR5cGU7XG4gIC8qKlxuICAgKiBIdG1sIGNvbnRlbnQgb2YgdGhlIHBhZ2VcbiAgICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IHBhZ2VDb250ZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVkaXQgVVJMIHRoYXQgY2FuIGJlIHVzZWQgdG8gZWRpdCB0aGUgcGFnZSBzb3VyY2UgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeVxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgZWRpdFNvdXJjZUZpbGVVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZpZXcgVVJMIHRoYXQgY2FuIGJlIHVzZWQgdG8gdmlldyB0aGUgcGFnZSBzb3VyY2UgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeVxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgdmlld1NvdXJjZUZpbGVVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYWdlIGRlcGVuZGVuY2llcyBmaWxlXG4gICAqL1xuICByZWFkb25seSBwYWdlPzogTmdEb2NQYWdlO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFnZSBkZW1vIGFzc2V0cyB0aGF0IGhhdmUgY29kZSBleGFtcGxlcyBvZiB0aGUgZGVtbyBjb21wb25lbnRzXG4gICAqL1xuICByZWFkb25seSBkZW1vQXNzZXRzPzogTmdEb2NEZW1vQXNzZXRzO1xufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZG9jLWFwcC1jbGFzc2VzLXJvb3QtcGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NsYXNzZXMvcm9vdC1wYWdlL25nLWRvYy1hcHAtY2xhc3Nlcy1yb290LXBhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"AAAA;AACA;AACA;AACO,MAAM,aAAa,CAAC;AAC3B;;ACJA;AACA;AACA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-app-classes-search-engine.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"ng-doc-app-classes-search-engine.mjs","sources":["../tmp-esm2022/classes/search-engine/search-engine.js","../tmp-esm2022/classes/search-engine/ng-doc-app-classes-search-engine.js"],"sourcesContent":["/**\n * Abstract search engine class, that can be used to implement a custom search engine.\n */\nexport class NgDocSearchEngine {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWVuZ2luZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NsYXNzZXMvc2VhcmNoLWVuZ2luZS9zZWFyY2gtZW5naW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixpQkFBaUI7Q0FFdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0RvY1NlYXJjaFJlc3VsdCB9IGZyb20gJ0BuZy1kb2MvYXBwL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEFic3RyYWN0IHNlYXJjaCBlbmdpbmUgY2xhc3MsIHRoYXQgY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50IGEgY3VzdG9tIHNlYXJjaCBlbmdpbmUuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ0RvY1NlYXJjaEVuZ2luZSB7XG4gIGFic3RyYWN0IHNlYXJjaChxdWVyeTogc3RyaW5nKTogT2JzZXJ2YWJsZTxOZ0RvY1NlYXJjaFJlc3VsdFtdPjtcbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZG9jLWFwcC1jbGFzc2VzLXNlYXJjaC1lbmdpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jbGFzc2VzL3NlYXJjaC1lbmdpbmUvbmctZG9jLWFwcC1jbGFzc2VzLXNlYXJjaC1lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"AAAA;AACA;AACA;AACO,MAAM,iBAAiB,CAAC;AAC/B;;ACJA;AACA;AACA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-app-classes.mjs","sources":["
|
|
1
|
+
{"version":3,"file":"ng-doc-app-classes.mjs","sources":["../tmp-esm2022/classes/ng-doc-app-classes.js"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZG9jLWFwcC1jbGFzc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY2xhc3Nlcy9uZy1kb2MtYXBwLWNsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":";;;;AAAA;AACA;AACA"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { NgIf, NgFor } from '@angular/common';
|
|
2
1
|
import { HttpClient } from '@angular/common/http';
|
|
3
2
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { input, signal, inject, computed,
|
|
3
|
+
import { input, signal, inject, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
4
|
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
5
|
import * as i1 from '@angular/forms';
|
|
7
6
|
import { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
@@ -63,27 +62,25 @@ class NgDocApiListComponent {
|
|
|
63
62
|
.get(asArray('assets/ng-doc', this.segment(), 'api-list.json').join('/'))
|
|
64
63
|
.subscribe((apiList) => this.apiList.set(apiList));
|
|
65
64
|
}
|
|
66
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
67
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: NgDocApiListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: NgDocApiListComponent, isStandalone: true, selector: "ng-doc-api-list", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, segment: { classPropertyName: "segment", publicName: "segment", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<h1 ng-doc-text>{{ title() }}</h1>\n<div class=\"ng-doc-api-list-wrapper\">\n <form [formGroup]=\"formGroup\">\n @if (types().length) {\n <h3>Declaration types</h3>\n <ul class=\"ng-doc-filter-list\" ngDocRadioGroup formControlName=\"type\">\n @for (type of types(); track type) {\n <li>\n <button class=\"ng-doc-filter-button\" ng-doc-button-toggle [value]=\"type\">\n <ng-doc-kind-icon [kind]=\"type\" size=\"medium\"></ng-doc-kind-icon>\n {{ type }}\n </button>\n </li>\n }\n </ul>\n }\n\n @if (scopes().length) {\n <h3>Scopes</h3>\n <ul class=\"ng-doc-filter-list\" ngDocRadioGroup formControlName=\"scope\">\n @for (scope of scopes(); track scope) {\n <li>\n <button class=\"ng-doc-filter-button\" ng-doc-button-toggle [value]=\"scope\">\n {{ scope }}\n </button>\n </li>\n }\n </ul>\n }\n\n <h3>Filter</h3>\n <ng-doc-input-wrapper class=\"ng-doc-api-list-filter-input\">\n <ng-doc-icon icon=\"search\" ngDocInputWrapperLeft></ng-doc-icon>\n <input\n ngDocInputString\n formControlName=\"filter\"\n placeholder=\"Declaration name...\"\n ngDocAutofocus />\n </ng-doc-input-wrapper>\n </form>\n\n <div class=\"ng-doc-api-list\">\n @for (scope of filteredApiList(); track scope) {\n <div class=\"ng-doc-api-scope\">\n <h3 class=\"ng-doc-scope-title\" ng-doc-text>{{ scope.title }}</h3>\n @if (scope.items.length) {\n <ul class=\"ng-doc-scope-items\">\n @for (apiReference of scope.items; track apiReference) {\n <li class=\"ng-doc-scope-item\">\n <a class=\"ng-doc-scope-item-link\" [routerLink]=\"[apiReference.route]\">\n <ng-doc-kind-icon\n [kind]=\"apiReference.type\"\n size=\"medium\"\n [ngDocTooltip]=\"apiReference.type\">\n </ng-doc-kind-icon>\n {{ apiReference.name }}\n </a>\n </li>\n }\n </ul>\n }\n </div>\n }\n </div>\n</div>\n", styles: [":host h1{margin-top:0}:host .ng-doc-filter-list{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--ng-doc-base-gutter);list-style:none;padding:0}@container api-list-wrapper (max-width: 775px){:host .ng-doc-filter-list{grid-template-columns:repeat(4,1fr)}}@container api-list-wrapper (max-width: 600px){:host .ng-doc-filter-list{grid-template-columns:repeat(3,1fr)}}@container api-list-wrapper (max-width: 500px){:host .ng-doc-filter-list{grid-template-columns:repeat(2,1fr)}}@container api-list-wrapper (max-width: 350px){:host .ng-doc-filter-list{grid-template-columns:repeat(1,1fr)}}:host .ng-doc-filter-list .ng-doc-filter-button{justify-content:flex-start;text-wrap:nowrap;width:100%}:host .ng-doc-filter-list .ng-doc-filter-button ng-doc-kind-icon{margin-right:var(--ng-doc-base-gutter)}:host .ng-doc-api-list-filter-input{max-width:450px}:host .ng-doc-api-list-wrapper{container:api-list-wrapper/inline-size}:host .ng-doc-api-list-wrapper .ng-doc-api-filter{display:flex;margin-top:calc(var(--ng-doc-base-gutter) * 3);flex-wrap:wrap;gap:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-api-list-wrapper .ng-doc-api-filter .ng-doc-api-filter-item{width:200px}:host .ng-doc-api-list-wrapper .ng-doc-api-list{margin-top:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope{display:flex;flex-direction:column}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items{margin-top:calc(var(--ng-doc-base-gutter) * 3);list-style:none;padding:0}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item{float:left;width:33%;overflow:hidden;min-width:330px;text-overflow:ellipsis;white-space:nowrap}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item .ng-doc-scope-item-link{display:flex;align-items:center;border-left:1px solid var(--ng-doc-border-color);padding:var(--ng-doc-base-gutter);color:var(--ng-doc-text);background:color-mix(in srgb,var(--ng-doc-scope-item-link-background),transparent 90%);text-decoration:none}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item .ng-doc-scope-item-link:hover{color:var(--ng-doc-heading-color);border-left-color:var(--ng-doc-primary);--ng-doc-scope-item-link-background: var(--ng-doc-primary)}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item .ng-doc-scope-item-link ng-doc-kind-icon{margin-right:var(--ng-doc-base-gutter);text-decoration:none!important}:host ng-doc-input-wrapper ng-doc-icon{--ng-doc-icon-color: var(--ng-doc-text-muted)}\n"], dependencies: [{ kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: NgDocInputWrapperComponent, selector: "ng-doc-input-wrapper", inputs: ["blurContent", "blurContext", "align"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "directive", type: NgDocInputStringDirective, selector: "input[ngDocInputString]" }, { kind: "directive", type: NgDocAutofocusDirective, selector: "[ngDocAutofocus]", inputs: ["selectAll"] }, { kind: "component", type: NgDocKindIconComponent, selector: "ng-doc-kind-icon", inputs: ["kind", "type", "size"] }, { 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: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgDocRadioGroupDirective, selector: "[ngDocRadioGroup]" }, { kind: "component", type: NgDocButtonToggleComponent, selector: "[ng-doc-button-toggle]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
68
67
|
}
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: NgDocApiListComponent, decorators: [{
|
|
70
69
|
type: Component,
|
|
71
70
|
args: [{ selector: 'ng-doc-api-list', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
72
71
|
NgDocTextComponent,
|
|
73
|
-
NgIf,
|
|
74
72
|
FormsModule,
|
|
75
73
|
ReactiveFormsModule,
|
|
76
74
|
NgDocInputWrapperComponent,
|
|
77
75
|
NgDocIconComponent,
|
|
78
76
|
NgDocInputStringDirective,
|
|
79
77
|
NgDocAutofocusDirective,
|
|
80
|
-
NgFor,
|
|
81
78
|
NgDocKindIconComponent,
|
|
82
79
|
NgDocTooltipDirective,
|
|
83
80
|
RouterLink,
|
|
84
81
|
NgDocRadioGroupDirective,
|
|
85
82
|
NgDocButtonToggleComponent,
|
|
86
|
-
], template: "<h1 ng-doc-text>{{ title() }}</h1>\n<div class=\"ng-doc-api-list-wrapper\">\n <form [formGroup]=\"formGroup\">\n @if (types().length) {\n <h3>Declaration types</h3>\n <ul class=\"ng-doc-filter-list\" ngDocRadioGroup formControlName=\"type\">\n @for (type of types(); track type) {\n <li>\n <button class=\"ng-doc-filter-button\" ng-doc-button-toggle [value]=\"type\">\n <ng-doc-kind-icon [kind]=\"type\" size=\"medium\"></ng-doc-kind-icon>\n {{ type }}\n </button>\n </li>\n }\n </ul>\n }\n\n @if (scopes().length) {\n <h3>Scopes</h3>\n <ul class=\"ng-doc-filter-list\" ngDocRadioGroup formControlName=\"scope\">\n @for (scope of scopes(); track scope) {\n <li>\n <button class=\"ng-doc-filter-button\" ng-doc-button-toggle [value]=\"scope\">\n {{ scope }}\n </button>\n </li>\n }\n </ul>\n }\n\n <h3>Filter</h3>\n <ng-doc-input-wrapper class=\"ng-doc-api-list-filter-input\">\n <ng-doc-icon icon=\"search\" ngDocInputWrapperLeft></ng-doc-icon>\n <input\n ngDocInputString\n formControlName=\"filter\"\n placeholder=\"Declaration name...\"\n ngDocAutofocus />\n </ng-doc-input-wrapper>\n </form>\n\n <div class=\"ng-doc-api-list\">\n <div class=\"ng-doc-api-scope\"
|
|
83
|
+
], template: "<h1 ng-doc-text>{{ title() }}</h1>\n<div class=\"ng-doc-api-list-wrapper\">\n <form [formGroup]=\"formGroup\">\n @if (types().length) {\n <h3>Declaration types</h3>\n <ul class=\"ng-doc-filter-list\" ngDocRadioGroup formControlName=\"type\">\n @for (type of types(); track type) {\n <li>\n <button class=\"ng-doc-filter-button\" ng-doc-button-toggle [value]=\"type\">\n <ng-doc-kind-icon [kind]=\"type\" size=\"medium\"></ng-doc-kind-icon>\n {{ type }}\n </button>\n </li>\n }\n </ul>\n }\n\n @if (scopes().length) {\n <h3>Scopes</h3>\n <ul class=\"ng-doc-filter-list\" ngDocRadioGroup formControlName=\"scope\">\n @for (scope of scopes(); track scope) {\n <li>\n <button class=\"ng-doc-filter-button\" ng-doc-button-toggle [value]=\"scope\">\n {{ scope }}\n </button>\n </li>\n }\n </ul>\n }\n\n <h3>Filter</h3>\n <ng-doc-input-wrapper class=\"ng-doc-api-list-filter-input\">\n <ng-doc-icon icon=\"search\" ngDocInputWrapperLeft></ng-doc-icon>\n <input\n ngDocInputString\n formControlName=\"filter\"\n placeholder=\"Declaration name...\"\n ngDocAutofocus />\n </ng-doc-input-wrapper>\n </form>\n\n <div class=\"ng-doc-api-list\">\n @for (scope of filteredApiList(); track scope) {\n <div class=\"ng-doc-api-scope\">\n <h3 class=\"ng-doc-scope-title\" ng-doc-text>{{ scope.title }}</h3>\n @if (scope.items.length) {\n <ul class=\"ng-doc-scope-items\">\n @for (apiReference of scope.items; track apiReference) {\n <li class=\"ng-doc-scope-item\">\n <a class=\"ng-doc-scope-item-link\" [routerLink]=\"[apiReference.route]\">\n <ng-doc-kind-icon\n [kind]=\"apiReference.type\"\n size=\"medium\"\n [ngDocTooltip]=\"apiReference.type\">\n </ng-doc-kind-icon>\n {{ apiReference.name }}\n </a>\n </li>\n }\n </ul>\n }\n </div>\n }\n </div>\n</div>\n", styles: [":host h1{margin-top:0}:host .ng-doc-filter-list{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--ng-doc-base-gutter);list-style:none;padding:0}@container api-list-wrapper (max-width: 775px){:host .ng-doc-filter-list{grid-template-columns:repeat(4,1fr)}}@container api-list-wrapper (max-width: 600px){:host .ng-doc-filter-list{grid-template-columns:repeat(3,1fr)}}@container api-list-wrapper (max-width: 500px){:host .ng-doc-filter-list{grid-template-columns:repeat(2,1fr)}}@container api-list-wrapper (max-width: 350px){:host .ng-doc-filter-list{grid-template-columns:repeat(1,1fr)}}:host .ng-doc-filter-list .ng-doc-filter-button{justify-content:flex-start;text-wrap:nowrap;width:100%}:host .ng-doc-filter-list .ng-doc-filter-button ng-doc-kind-icon{margin-right:var(--ng-doc-base-gutter)}:host .ng-doc-api-list-filter-input{max-width:450px}:host .ng-doc-api-list-wrapper{container:api-list-wrapper/inline-size}:host .ng-doc-api-list-wrapper .ng-doc-api-filter{display:flex;margin-top:calc(var(--ng-doc-base-gutter) * 3);flex-wrap:wrap;gap:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-api-list-wrapper .ng-doc-api-filter .ng-doc-api-filter-item{width:200px}:host .ng-doc-api-list-wrapper .ng-doc-api-list{margin-top:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope{display:flex;flex-direction:column}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items{margin-top:calc(var(--ng-doc-base-gutter) * 3);list-style:none;padding:0}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item{float:left;width:33%;overflow:hidden;min-width:330px;text-overflow:ellipsis;white-space:nowrap}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item .ng-doc-scope-item-link{display:flex;align-items:center;border-left:1px solid var(--ng-doc-border-color);padding:var(--ng-doc-base-gutter);color:var(--ng-doc-text);background:color-mix(in srgb,var(--ng-doc-scope-item-link-background),transparent 90%);text-decoration:none}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item .ng-doc-scope-item-link:hover{color:var(--ng-doc-heading-color);border-left-color:var(--ng-doc-primary);--ng-doc-scope-item-link-background: var(--ng-doc-primary)}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item .ng-doc-scope-item-link ng-doc-kind-icon{margin-right:var(--ng-doc-base-gutter);text-decoration:none!important}:host ng-doc-input-wrapper ng-doc-icon{--ng-doc-icon-color: var(--ng-doc-text-muted)}\n"] }]
|
|
87
84
|
}], ctorParameters: () => [] });
|
|
88
85
|
|
|
89
86
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-app-components-api-list.mjs","sources":["../../../../libs/app/components/api-list/api-list.component.ts","../../../../libs/app/components/api-list/api-list.component.html","../../../../libs/app/components/api-list/ng-doc-app-components-api-list.ts"],"sourcesContent":["import { NgFor, NgIf } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n OnInit,\n Signal,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { ActivatedRoute, ParamMap, Router, RouterLink } from '@angular/router';\nimport { NgDocKindIconComponent } from '@ng-doc/app/components/kind-icon';\nimport { NgDocFormPartialValue } from '@ng-doc/app/types';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { NgDocApiList, NgDocApiListItem } from '@ng-doc/core/interfaces';\nimport {\n NgDocAutofocusDirective,\n NgDocButtonToggleComponent,\n NgDocIconComponent,\n NgDocInputStringDirective,\n NgDocInputWrapperComponent,\n NgDocRadioGroupDirective,\n NgDocTextComponent,\n NgDocTooltipDirective,\n} from '@ng-doc/ui-kit';\nimport { startWith } from 'rxjs/operators';\n\ninterface ApiFilterForm {\n filter: FormControl<string | null>;\n scope: FormControl<string | null>;\n type: FormControl<string | null>;\n}\n\n@Component({\n selector: 'ng-doc-api-list',\n templateUrl: './api-list.component.html',\n styleUrls: ['./api-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgDocTextComponent,\n NgIf,\n FormsModule,\n ReactiveFormsModule,\n NgDocInputWrapperComponent,\n NgDocIconComponent,\n NgDocInputStringDirective,\n NgDocAutofocusDirective,\n NgFor,\n NgDocKindIconComponent,\n NgDocTooltipDirective,\n RouterLink,\n NgDocRadioGroupDirective,\n NgDocButtonToggleComponent,\n ],\n})\nexport class NgDocApiListComponent implements OnInit {\n title = input<string>('API References');\n segment = input<string>();\n\n apiList: WritableSignal<NgDocApiList[]> = signal([]);\n filteredApiList: Signal<NgDocApiList[]>;\n filter: Signal<any>;\n scopes: Signal<string[]>;\n types: Signal<string[]>;\n\n protected formGroup: FormGroup<ApiFilterForm>;\n\n private readonly formBuilder = inject(FormBuilder);\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly httpClient = inject(HttpClient);\n\n constructor() {\n this.formGroup = this.formBuilder.group({\n filter: [''],\n scope: [''],\n type: [''],\n });\n\n this.filter = toSignal(this.formGroup.valueChanges.pipe(startWith(this.formGroup.value)), {\n initialValue: this.formGroup.value,\n });\n\n this.scopes = computed(() =>\n asArray(new Set(this.apiList().flatMap((api: NgDocApiList) => api.title))).sort(),\n );\n\n this.types = computed(() =>\n asArray(\n new Set(\n this.apiList()\n .flatMap((api: NgDocApiList) => api.items)\n .flatMap((item: NgDocApiListItem) => item.type),\n ),\n ).sort(),\n );\n\n this.route.queryParamMap.pipe(takeUntilDestroyed()).subscribe((paramMap: ParamMap) =>\n this.formGroup.setValue({\n filter: paramMap.get('filter') || null,\n scope: paramMap.get('scope') || null,\n type: paramMap.get('type') || null,\n }),\n );\n\n this.formGroup.valueChanges\n .pipe(takeUntilDestroyed())\n .subscribe((formValue: NgDocFormPartialValue<typeof this.formGroup>) =>\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: formValue,\n queryParamsHandling: 'merge',\n }),\n );\n\n this.filteredApiList = computed(() => {\n const { filter, scope, type } = this.filter();\n\n return this.apiList()\n .filter((api: NgDocApiList) => !scope || api.title === scope)\n .map((api: NgDocApiList) => ({\n ...api,\n items: api.items\n .filter(\n (item: NgDocApiListItem) =>\n item.name.toLowerCase().includes(filter?.toLowerCase() ?? '') &&\n (!type || item.type === type),\n )\n .sort(\n (a: NgDocApiListItem, b: NgDocApiListItem) =>\n a.type.localeCompare(b.type) || a.name.localeCompare(b.name),\n ),\n }))\n .filter((api: NgDocApiList) => api.items.length);\n });\n }\n\n ngOnInit(): void {\n this.httpClient\n .get<NgDocApiList[]>(asArray('assets/ng-doc', this.segment(), 'api-list.json').join('/'))\n .subscribe((apiList) => this.apiList.set(apiList));\n }\n}\n","<h1 ng-doc-text>{{ title() }}</h1>\n<div class=\"ng-doc-api-list-wrapper\">\n <form [formGroup]=\"formGroup\">\n @if (types().length) {\n <h3>Declaration types</h3>\n <ul class=\"ng-doc-filter-list\" ngDocRadioGroup formControlName=\"type\">\n @for (type of types(); track type) {\n <li>\n <button class=\"ng-doc-filter-button\" ng-doc-button-toggle [value]=\"type\">\n <ng-doc-kind-icon [kind]=\"type\" size=\"medium\"></ng-doc-kind-icon>\n {{ type }}\n </button>\n </li>\n }\n </ul>\n }\n\n @if (scopes().length) {\n <h3>Scopes</h3>\n <ul class=\"ng-doc-filter-list\" ngDocRadioGroup formControlName=\"scope\">\n @for (scope of scopes(); track scope) {\n <li>\n <button class=\"ng-doc-filter-button\" ng-doc-button-toggle [value]=\"scope\">\n {{ scope }}\n </button>\n </li>\n }\n </ul>\n }\n\n <h3>Filter</h3>\n <ng-doc-input-wrapper class=\"ng-doc-api-list-filter-input\">\n <ng-doc-icon icon=\"search\" ngDocInputWrapperLeft></ng-doc-icon>\n <input\n ngDocInputString\n formControlName=\"filter\"\n placeholder=\"Declaration name...\"\n ngDocAutofocus />\n </ng-doc-input-wrapper>\n </form>\n\n <div class=\"ng-doc-api-list\">\n <div class=\"ng-doc-api-scope\" *ngFor=\"let scope of filteredApiList()\">\n <h3 class=\"ng-doc-scope-title\" ng-doc-text>{{ scope.title }}</h3>\n <ul class=\"ng-doc-scope-items\" *ngIf=\"scope.items.length\">\n <li class=\"ng-doc-scope-item\" *ngFor=\"let apiReference of scope.items\">\n <a class=\"ng-doc-scope-item-link\" [routerLink]=\"[apiReference.route]\">\n <ng-doc-kind-icon\n [kind]=\"apiReference.type\"\n size=\"medium\"\n [ngDocTooltip]=\"apiReference.type\">\n </ng-doc-kind-icon>\n {{ apiReference.name }}\n </a>\n </li>\n </ul>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-doc-app-components-api-list.mjs","sources":["../tmp-esm2022/components/api-list/api-list.component.js","../tmp-esm2022/components/api-list/ng-doc-app-components-api-list.js"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, signal, } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { FormBuilder, FormsModule, ReactiveFormsModule, } from '@angular/forms';\nimport { ActivatedRoute, Router, RouterLink } from '@angular/router';\nimport { NgDocKindIconComponent } from '@ng-doc/app/components/kind-icon';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { NgDocAutofocusDirective, NgDocButtonToggleComponent, NgDocIconComponent, NgDocInputStringDirective, NgDocInputWrapperComponent, NgDocRadioGroupDirective, NgDocTextComponent, NgDocTooltipDirective, } from '@ng-doc/ui-kit';\nimport { startWith } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nexport class NgDocApiListComponent {\n constructor() {\n this.title = input('API References');\n this.segment = input();\n this.apiList = signal([]);\n this.formBuilder = inject(FormBuilder);\n this.route = inject(ActivatedRoute);\n this.router = inject(Router);\n this.httpClient = inject(HttpClient);\n this.formGroup = this.formBuilder.group({\n filter: [''],\n scope: [''],\n type: [''],\n });\n this.filter = toSignal(this.formGroup.valueChanges.pipe(startWith(this.formGroup.value)), {\n initialValue: this.formGroup.value,\n });\n this.scopes = computed(() => asArray(new Set(this.apiList().flatMap((api) => api.title))).sort());\n this.types = computed(() => asArray(new Set(this.apiList()\n .flatMap((api) => api.items)\n .flatMap((item) => item.type))).sort());\n this.route.queryParamMap.pipe(takeUntilDestroyed()).subscribe((paramMap) => this.formGroup.setValue({\n filter: paramMap.get('filter') || null,\n scope: paramMap.get('scope') || null,\n type: paramMap.get('type') || null,\n }));\n this.formGroup.valueChanges\n .pipe(takeUntilDestroyed())\n .subscribe((formValue) => this.router.navigate([], {\n relativeTo: this.route,\n queryParams: formValue,\n queryParamsHandling: 'merge',\n }));\n this.filteredApiList = computed(() => {\n const { filter, scope, type } = this.filter();\n return this.apiList()\n .filter((api) => !scope || api.title === scope)\n .map((api) => ({\n ...api,\n items: api.items\n .filter((item) => item.name.toLowerCase().includes(filter?.toLowerCase() ?? '') &&\n (!type || item.type === type))\n .sort((a, b) => a.type.localeCompare(b.type) || a.name.localeCompare(b.name)),\n }))\n .filter((api) => api.items.length);\n });\n }\n ngOnInit() {\n this.httpClient\n .get(asArray('assets/ng-doc', this.segment(), 'api-list.json').join('/'))\n .subscribe((apiList) => this.apiList.set(apiList));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgDocApiListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: NgDocApiListComponent, isStandalone: true, selector: \"ng-doc-api-list\", inputs: { title: { classPropertyName: \"title\", publicName: \"title\", isSignal: true, isRequired: false, transformFunction: null }, segment: { classPropertyName: \"segment\", publicName: \"segment\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<h1 ng-doc-text>{{ title() }}</h1>\\n<div class=\\\"ng-doc-api-list-wrapper\\\">\\n <form [formGroup]=\\\"formGroup\\\">\\n @if (types().length) {\\n <h3>Declaration types</h3>\\n <ul class=\\\"ng-doc-filter-list\\\" ngDocRadioGroup formControlName=\\\"type\\\">\\n @for (type of types(); track type) {\\n <li>\\n <button class=\\\"ng-doc-filter-button\\\" ng-doc-button-toggle [value]=\\\"type\\\">\\n <ng-doc-kind-icon [kind]=\\\"type\\\" size=\\\"medium\\\"></ng-doc-kind-icon>\\n {{ type }}\\n </button>\\n </li>\\n }\\n </ul>\\n }\\n\\n @if (scopes().length) {\\n <h3>Scopes</h3>\\n <ul class=\\\"ng-doc-filter-list\\\" ngDocRadioGroup formControlName=\\\"scope\\\">\\n @for (scope of scopes(); track scope) {\\n <li>\\n <button class=\\\"ng-doc-filter-button\\\" ng-doc-button-toggle [value]=\\\"scope\\\">\\n {{ scope }}\\n </button>\\n </li>\\n }\\n </ul>\\n }\\n\\n <h3>Filter</h3>\\n <ng-doc-input-wrapper class=\\\"ng-doc-api-list-filter-input\\\">\\n <ng-doc-icon icon=\\\"search\\\" ngDocInputWrapperLeft></ng-doc-icon>\\n <input\\n ngDocInputString\\n formControlName=\\\"filter\\\"\\n placeholder=\\\"Declaration name...\\\"\\n ngDocAutofocus />\\n </ng-doc-input-wrapper>\\n </form>\\n\\n <div class=\\\"ng-doc-api-list\\\">\\n @for (scope of filteredApiList(); track scope) {\\n <div class=\\\"ng-doc-api-scope\\\">\\n <h3 class=\\\"ng-doc-scope-title\\\" ng-doc-text>{{ scope.title }}</h3>\\n @if (scope.items.length) {\\n <ul class=\\\"ng-doc-scope-items\\\">\\n @for (apiReference of scope.items; track apiReference) {\\n <li class=\\\"ng-doc-scope-item\\\">\\n <a class=\\\"ng-doc-scope-item-link\\\" [routerLink]=\\\"[apiReference.route]\\\">\\n <ng-doc-kind-icon\\n [kind]=\\\"apiReference.type\\\"\\n size=\\\"medium\\\"\\n [ngDocTooltip]=\\\"apiReference.type\\\">\\n </ng-doc-kind-icon>\\n {{ apiReference.name }}\\n </a>\\n </li>\\n }\\n </ul>\\n }\\n </div>\\n }\\n </div>\\n</div>\\n\", styles: [\":host h1{margin-top:0}:host .ng-doc-filter-list{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--ng-doc-base-gutter);list-style:none;padding:0}@container api-list-wrapper (max-width: 775px){:host .ng-doc-filter-list{grid-template-columns:repeat(4,1fr)}}@container api-list-wrapper (max-width: 600px){:host .ng-doc-filter-list{grid-template-columns:repeat(3,1fr)}}@container api-list-wrapper (max-width: 500px){:host .ng-doc-filter-list{grid-template-columns:repeat(2,1fr)}}@container api-list-wrapper (max-width: 350px){:host .ng-doc-filter-list{grid-template-columns:repeat(1,1fr)}}:host .ng-doc-filter-list .ng-doc-filter-button{justify-content:flex-start;text-wrap:nowrap;width:100%}:host .ng-doc-filter-list .ng-doc-filter-button ng-doc-kind-icon{margin-right:var(--ng-doc-base-gutter)}:host .ng-doc-api-list-filter-input{max-width:450px}:host .ng-doc-api-list-wrapper{container:api-list-wrapper/inline-size}:host .ng-doc-api-list-wrapper .ng-doc-api-filter{display:flex;margin-top:calc(var(--ng-doc-base-gutter) * 3);flex-wrap:wrap;gap:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-api-list-wrapper .ng-doc-api-filter .ng-doc-api-filter-item{width:200px}:host .ng-doc-api-list-wrapper .ng-doc-api-list{margin-top:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope{display:flex;flex-direction:column}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items{margin-top:calc(var(--ng-doc-base-gutter) * 3);list-style:none;padding:0}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item{float:left;width:33%;overflow:hidden;min-width:330px;text-overflow:ellipsis;white-space:nowrap}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item .ng-doc-scope-item-link{display:flex;align-items:center;border-left:1px solid var(--ng-doc-border-color);padding:var(--ng-doc-base-gutter);color:var(--ng-doc-text);background:color-mix(in srgb,var(--ng-doc-scope-item-link-background),transparent 90%);text-decoration:none}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item .ng-doc-scope-item-link:hover{color:var(--ng-doc-heading-color);border-left-color:var(--ng-doc-primary);--ng-doc-scope-item-link-background: var(--ng-doc-primary)}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item .ng-doc-scope-item-link ng-doc-kind-icon{margin-right:var(--ng-doc-base-gutter);text-decoration:none!important}:host ng-doc-input-wrapper ng-doc-icon{--ng-doc-icon-color: var(--ng-doc-text-muted)}\\n\"], dependencies: [{ kind: \"component\", type: NgDocTextComponent, selector: \"[ng-doc-text]\", inputs: [\"size\", \"color\", \"align\", \"absoluteContent\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i1.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"component\", type: NgDocInputWrapperComponent, selector: \"ng-doc-input-wrapper\", inputs: [\"blurContent\", \"blurContext\", \"align\"] }, { kind: \"component\", type: NgDocIconComponent, selector: \"ng-doc-icon\", inputs: [\"icon\", \"customIcon\", \"size\"] }, { kind: \"directive\", type: NgDocInputStringDirective, selector: \"input[ngDocInputString]\" }, { kind: \"directive\", type: NgDocAutofocusDirective, selector: \"[ngDocAutofocus]\", inputs: [\"selectAll\"] }, { kind: \"component\", type: NgDocKindIconComponent, selector: \"ng-doc-kind-icon\", inputs: [\"kind\", \"type\", \"size\"] }, { 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: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: NgDocRadioGroupDirective, selector: \"[ngDocRadioGroup]\" }, { kind: \"component\", type: NgDocButtonToggleComponent, selector: \"[ng-doc-button-toggle]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgDocApiListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ng-doc-api-list', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n NgDocTextComponent,\n FormsModule,\n ReactiveFormsModule,\n NgDocInputWrapperComponent,\n NgDocIconComponent,\n NgDocInputStringDirective,\n NgDocAutofocusDirective,\n NgDocKindIconComponent,\n NgDocTooltipDirective,\n RouterLink,\n NgDocRadioGroupDirective,\n NgDocButtonToggleComponent,\n ], template: \"<h1 ng-doc-text>{{ title() }}</h1>\\n<div class=\\\"ng-doc-api-list-wrapper\\\">\\n <form [formGroup]=\\\"formGroup\\\">\\n @if (types().length) {\\n <h3>Declaration types</h3>\\n <ul class=\\\"ng-doc-filter-list\\\" ngDocRadioGroup formControlName=\\\"type\\\">\\n @for (type of types(); track type) {\\n <li>\\n <button class=\\\"ng-doc-filter-button\\\" ng-doc-button-toggle [value]=\\\"type\\\">\\n <ng-doc-kind-icon [kind]=\\\"type\\\" size=\\\"medium\\\"></ng-doc-kind-icon>\\n {{ type }}\\n </button>\\n </li>\\n }\\n </ul>\\n }\\n\\n @if (scopes().length) {\\n <h3>Scopes</h3>\\n <ul class=\\\"ng-doc-filter-list\\\" ngDocRadioGroup formControlName=\\\"scope\\\">\\n @for (scope of scopes(); track scope) {\\n <li>\\n <button class=\\\"ng-doc-filter-button\\\" ng-doc-button-toggle [value]=\\\"scope\\\">\\n {{ scope }}\\n </button>\\n </li>\\n }\\n </ul>\\n }\\n\\n <h3>Filter</h3>\\n <ng-doc-input-wrapper class=\\\"ng-doc-api-list-filter-input\\\">\\n <ng-doc-icon icon=\\\"search\\\" ngDocInputWrapperLeft></ng-doc-icon>\\n <input\\n ngDocInputString\\n formControlName=\\\"filter\\\"\\n placeholder=\\\"Declaration name...\\\"\\n ngDocAutofocus />\\n </ng-doc-input-wrapper>\\n </form>\\n\\n <div class=\\\"ng-doc-api-list\\\">\\n @for (scope of filteredApiList(); track scope) {\\n <div class=\\\"ng-doc-api-scope\\\">\\n <h3 class=\\\"ng-doc-scope-title\\\" ng-doc-text>{{ scope.title }}</h3>\\n @if (scope.items.length) {\\n <ul class=\\\"ng-doc-scope-items\\\">\\n @for (apiReference of scope.items; track apiReference) {\\n <li class=\\\"ng-doc-scope-item\\\">\\n <a class=\\\"ng-doc-scope-item-link\\\" [routerLink]=\\\"[apiReference.route]\\\">\\n <ng-doc-kind-icon\\n [kind]=\\\"apiReference.type\\\"\\n size=\\\"medium\\\"\\n [ngDocTooltip]=\\\"apiReference.type\\\">\\n </ng-doc-kind-icon>\\n {{ apiReference.name }}\\n </a>\\n </li>\\n }\\n </ul>\\n }\\n </div>\\n }\\n </div>\\n</div>\\n\", styles: [\":host h1{margin-top:0}:host .ng-doc-filter-list{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--ng-doc-base-gutter);list-style:none;padding:0}@container api-list-wrapper (max-width: 775px){:host .ng-doc-filter-list{grid-template-columns:repeat(4,1fr)}}@container api-list-wrapper (max-width: 600px){:host .ng-doc-filter-list{grid-template-columns:repeat(3,1fr)}}@container api-list-wrapper (max-width: 500px){:host .ng-doc-filter-list{grid-template-columns:repeat(2,1fr)}}@container api-list-wrapper (max-width: 350px){:host .ng-doc-filter-list{grid-template-columns:repeat(1,1fr)}}:host .ng-doc-filter-list .ng-doc-filter-button{justify-content:flex-start;text-wrap:nowrap;width:100%}:host .ng-doc-filter-list .ng-doc-filter-button ng-doc-kind-icon{margin-right:var(--ng-doc-base-gutter)}:host .ng-doc-api-list-filter-input{max-width:450px}:host .ng-doc-api-list-wrapper{container:api-list-wrapper/inline-size}:host .ng-doc-api-list-wrapper .ng-doc-api-filter{display:flex;margin-top:calc(var(--ng-doc-base-gutter) * 3);flex-wrap:wrap;gap:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-api-list-wrapper .ng-doc-api-filter .ng-doc-api-filter-item{width:200px}:host .ng-doc-api-list-wrapper .ng-doc-api-list{margin-top:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope{display:flex;flex-direction:column}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items{margin-top:calc(var(--ng-doc-base-gutter) * 3);list-style:none;padding:0}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item{float:left;width:33%;overflow:hidden;min-width:330px;text-overflow:ellipsis;white-space:nowrap}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item .ng-doc-scope-item-link{display:flex;align-items:center;border-left:1px solid var(--ng-doc-border-color);padding:var(--ng-doc-base-gutter);color:var(--ng-doc-text);background:color-mix(in srgb,var(--ng-doc-scope-item-link-background),transparent 90%);text-decoration:none}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item .ng-doc-scope-item-link:hover{color:var(--ng-doc-heading-color);border-left-color:var(--ng-doc-primary);--ng-doc-scope-item-link-background: var(--ng-doc-primary)}:host .ng-doc-api-list-wrapper .ng-doc-api-list .ng-doc-api-scope .ng-doc-scope-items .ng-doc-scope-item .ng-doc-scope-item-link ng-doc-kind-icon{margin-right:var(--ng-doc-base-gutter);text-decoration:none!important}:host ng-doc-input-wrapper ng-doc-icon{--ng-doc-icon-color: var(--ng-doc-text-muted)}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY29tcG9uZW50cy9hcGktbGlzdC9hcGktbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL2FwaS1saXN0L2FwaS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFFLE9BQU8sRUFDTCxXQUFXLEVBR1gsV0FBVyxFQUNYLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV4RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLHFCQUFxQixHQUN0QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBNEIzQyxNQUFNLE9BQU8scUJBQXFCO0lBaUJoQztRQWhCQSxVQUFLLEdBQUcsS0FBSyxDQUFTLGdCQUFnQixDQUFDLENB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Z0hBQ2xCLFdBQVcsMnBCQUNYLG1CQUFtQixnVkFDbkIsMEJBQTBCLGtIQUMxQixrQkFBa0IsZ0dBQ2xCLHlCQUF5QixvRUFDekIsdUJBQXVCLG9GQUN2QixzQkFBc0IsK0ZBQ3RCLHFCQUFxQiwwVUFDckIsVUFBVSxvT0FDVix3QkFBd0IsOERBQ3hCLDBCQUEwQjs7MkZBR2pCLHFCQUFxQjtrQkFwQmpDLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1Asa0JBQWtCO3dCQUNsQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsMEJBQTBCO3dCQUMxQixrQkFBa0I7d0JBQ2xCLHlCQUF5Qjt3QkFDekIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIsVUFBVTt3QkFDVix3QkFBd0I7d0JBQ3hCLDBCQUEwQjtxQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIE9uSW5pdCxcbiAgU2lnbmFsLFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBGb3JtQnVpbGRlcixcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbU1hcCwgUm91dGVyLCBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5nRG9jS2luZEljb25Db21wb25lbnQgfSBmcm9tICdAbmctZG9jL2FwcC9jb21wb25lbnRzL2tpbmQtaWNvbic7XG5pbXBvcnQgeyBOZ0RvY0Zvcm1QYXJ0aWFsVmFsdWUgfSBmcm9tICdAbmctZG9jL2FwcC90eXBlcyc7XG5pbXBvcnQgeyBhc0FycmF5IH0gZnJvbSAnQG5nLWRvYy9jb3JlL2hlbHBlcnMvYXMtYXJyYXknO1xuaW1wb3J0IHsgTmdEb2NBcGlMaXN0LCBOZ0RvY0FwaUxpc3RJdGVtIH0gZnJvbSAnQG5nLWRvYy9jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgTmdEb2NBdXRvZm9jdXNEaXJlY3RpdmUsXG4gIE5nRG9jQnV0dG9uVG9nZ2xlQ29tcG9uZW50LFxuICBOZ0RvY0ljb25Db21wb25lbnQsXG4gIE5nRG9jSW5wdXRTdHJpbmdEaXJlY3RpdmUsXG4gIE5nRG9jSW5wdXRXcmFwcGVyQ29tcG9uZW50LFxuICBOZ0RvY1JhZGlvR3JvdXBEaXJlY3RpdmUsXG4gIE5nRG9jVGV4dENvbXBvbmVudCxcbiAgTmdEb2NUb29sdGlwRGlyZWN0aXZlLFxufSBmcm9tICdAbmctZG9jL3VpLWtpdCc7XG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmludGVyZmFjZSBBcGlGaWx0ZXJGb3JtIHtcbiAgZmlsdGVyOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgc2NvcGU6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xuICB0eXBlOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctZG9jLWFwaS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwaS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBpLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0RvY1RleHRDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBOZ0RvY0lucHV0V3JhcHBlckNvbXBvbmVudCxcbiAgICBOZ0RvY0ljb25Db21wb25lbnQsXG4gICAgTmdEb2NJbnB1dFN0cmluZ0RpcmVjdGl2ZSxcbiAgICBOZ0RvY0F1dG9mb2N1c0RpcmVjdGl2ZSxcbiAgICBOZ0RvY0tpbmRJY29uQ29tcG9uZW50LFxuICAgIE5nRG9jVG9vbHRpcERpcmVjdGl2ZSxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIE5nRG9jUmFkaW9Hcm91cERpcmVjdGl2ZSxcbiAgICBOZ0RvY0J1dHRvblRvZ2dsZUNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdEb2NBcGlMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgdGl0bGUgPSBpbnB1dDxzdHJpbmc+KCdBUEkgUmVmZXJlbmNlcycpO1xuICBzZWdtZW50ID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIGFwaUxpc3Q6IFdyaXRhYmxlU2lnbmFsPE5nRG9jQXBpTGlzdFtdPiA9IHNpZ25hbChbXSk7XG4gIGZpbHRlcmVkQXBpTGlzdDogU2lnbmFsPE5nRG9jQXBpTGlzdFtdPjtcbiAgZmlsdGVyOiBTaWduYWw8YW55PjtcbiAgc2NvcGVzOiBTaWduYWw8c3RyaW5nW10+O1xuICB0eXBlczogU2lnbmFsPHN0cmluZ1tdPjtcblxuICBwcm90ZWN0ZWQgZm9ybUdyb3VwOiBGb3JtR3JvdXA8QXBpRmlsdGVyRm9ybT47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlciA9IGluamVjdChGb3JtQnVpbGRlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGZpbHRlcjogWycnXSxcbiAgICAgIHNjb3BlOiBbJyddLFxuICAgICAgdHlwZTogWycnXSxcbiAgICB9KTtcblxuICAgIHRoaXMuZmlsdGVyID0gdG9TaWduYWwodGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybUdyb3VwLnZhbHVlKSksIHtcbiAgICAgIGluaXRpYWxWYWx1ZTogdGhpcy5mb3JtR3JvdXAudmFsdWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLnNjb3BlcyA9IGNvbXB1dGVkKCgpID0+XG4gICAgICBhc0FycmF5KG5ldyBTZXQodGhpcy5hcGlMaXN0KCkuZmxhdE1hcCgoYXBpOiBOZ0RvY0FwaUxpc3QpID0+IGFwaS50aXRsZSkpKS5zb3J0KCksXG4gICAgKTtcblxuICAgIHRoaXMudHlwZXMgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgYXNBcnJheShcbiAgICAgICAgbmV3IFNldChcbiAgICAgICAgICB0aGlzLmFwaUxpc3QoKVxuICAgICAgICAgICAgLmZsYXRNYXAoKGFwaTogTmdEb2NBcGlMaXN0KSA9PiBhcGkuaXRlbXMpXG4gICAgICAgICAgICAuZmxhdE1hcCgoaXRlbTogTmdEb2NBcGlMaXN0SXRlbSkgPT4gaXRlbS50eXBlKSxcbiAgICAgICAgKSxcbiAgICAgICkuc29ydCgpLFxuICAgICk7XG5cbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1NYXAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKChwYXJhbU1hcDogUGFyYW1NYXApID0+XG4gICAgICB0aGlzLmZvcm1Hcm91cC5zZXRWYWx1ZSh7XG4gICAgICAgIGZpbHRlcjogcGFyYW1NYXAuZ2V0KCdmaWx0ZXInKSB8fCBudWxsLFxuICAgICAgICBzY29wZTogcGFyYW1NYXAuZ2V0KCdzY29wZScpIHx8IG51bGwsXG4gICAgICAgIHR5cGU6IHBhcmFtTWFwLmdldCgndHlwZScpIHx8IG51bGwsXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGZvcm1WYWx1ZTogTmdEb2NGb3JtUGFydGlhbFZhbHVlPHR5cGVvZiB0aGlzLmZvcm1Hcm91cD4pID0+XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgICAgICBxdWVyeVBhcmFtczogZm9ybVZhbHVlLFxuICAgICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgIHRoaXMuZmlsdGVyZWRBcGlMaXN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWx0ZXIsIHNjb3BlLCB0eXBlIH0gPSB0aGlzLmZpbHRlcigpO1xuXG4gICAgICByZXR1cm4gdGhpcy5hcGlMaXN0KClcbiAgICAgICAgLmZpbHRlcigoYXBpOiBOZ0RvY0FwaUxpc3QpID0+ICFzY29wZSB8fCBhcGkudGl0bGUgPT09IHNjb3BlKVxuICAgICAgICAubWFwKChhcGk6IE5nRG9jQXBpTGlzdCkgPT4gKHtcbiAgICAgICAgICAuLi5hcGksXG4gICAgICAgICAgaXRlbXM6IGFwaS5pdGVtc1xuICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgKGl0ZW06IE5nRG9jQXBpTGlzdEl0ZW0pID0+XG4gICAgICAgICAgICAgICAgaXRlbS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyPy50b0xvd2VyQ2FzZSgpID8/ICcnKSAmJlxuICAgICAgICAgICAgICAgICghdHlwZSB8fCBpdGVtLnR5cGUgPT09IHR5cGUpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnNvcnQoXG4gICAgICAgICAgICAgIChhOiBOZ0RvY0FwaUxpc3RJdGVtLCBiOiBOZ0RvY0FwaUxpc3RJdGVtKSA9PlxuICAgICAgICAgICAgICAgIGEudHlwZS5sb2NhbGVDb21wYXJlKGIudHlwZSkgfHwgYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSxcbiAgICAgICAgICAgICksXG4gICAgICAgIH0pKVxuICAgICAgICAuZmlsdGVyKChhcGk6IE5nRG9jQXBpTGlzdCkgPT4gYXBpLml0ZW1zLmxlbmd0aCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5nZXQ8TmdEb2NBcGlMaXN0W10+KGFzQXJyYXkoJ2Fzc2V0cy9uZy1kb2MnLCB0aGlzLnNlZ21lbnQoKSwgJ2FwaS1saXN0Lmpzb24nKS5qb2luKCcvJykpXG4gICAgICAuc3Vic2NyaWJlKChhcGlMaXN0KSA9PiB0aGlzLmFwaUxpc3Quc2V0KGFwaUxpc3QpKTtcbiAgfVxufVxuIiwiPGgxIG5nLWRvYy10ZXh0Pnt7IHRpdGxlKCkgfX08L2gxPlxuPGRpdiBjbGFzcz1cIm5nLWRvYy1hcGktbGlzdC13cmFwcGVyXCI+XG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgQGlmICh0eXBlcygpLmxlbmd0aCkge1xuICAgICAgPGgzPkRlY2xhcmF0aW9uIHR5cGVzPC9oMz5cbiAgICAgIDx1bCBjbGFzcz1cIm5nLWRvYy1maWx0ZXItbGlzdFwiIG5nRG9jUmFkaW9Hcm91cCBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlXCI+XG4gICAgICAgIEBmb3IgKHR5cGUgb2YgdHlwZXMoKTsgdHJhY2sgdHlwZSkge1xuICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJuZy1kb2MtZmlsdGVyLWJ1dHRvblwiIG5nLWRvYy1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJ0eXBlXCI+XG4gICAgICAgICAgICAgIDxuZy1kb2Mta2luZC1pY29uIFtraW5kXT1cInR5cGVcIiBzaXplPVwibWVkaXVtXCI+PC9uZy1kb2Mta2luZC1pY29uPlxuICAgICAgICAgICAgICB7eyB0eXBlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICB9XG4gICAgICA8L3VsPlxuICAgIH1cblxuICAgIEBpZiAoc2NvcGVzKCkubGVuZ3RoKSB7XG4gICAgICA8aDM+U2NvcGVzPC9oMz5cbiAgICAgIDx1bCBjbGFzcz1cIm5nLWRvYy1maWx0ZXItbGlzdFwiIG5nRG9jUmFkaW9Hcm91cCBmb3JtQ29udHJvbE5hbWU9XCJzY29wZVwiPlxuICAgICAgICBAZm9yIChzY29wZSBvZiBzY29wZXMoKTsgdHJhY2sgc2NvcGUpIHtcbiAgICAgICAgICA8bGk+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmctZG9jLWZpbHRlci1idXR0b25cIiBuZy1kb2MtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwic2NvcGVcIj5cbiAgICAgICAgICAgICAge3sgc2NvcGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICAgIDwvdWw+XG4gICAgfVxuXG4gICAgPGgzPkZpbHRlcjwvaDM+XG4gICAgPG5nLWRvYy1pbnB1dC13cmFwcGVyIGNsYXNzPVwibmctZG9jLWFwaS1saXN0LWZpbHRlci1pbnB1dFwiPlxuICAgICAgPG5nLWRvYy1pY29uIGljb249XCJzZWFyY2hcIiBuZ0RvY0lucHV0V3JhcHBlckxlZnQ+PC9uZy1kb2MtaWNvbj5cbiAgICAgIDxpbnB1dFxuICAgICAgICBuZ0RvY0lucHV0U3RyaW5nXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZpbHRlclwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiRGVjbGFyYXRpb24gbmFtZS4uLlwiXG4gICAgICAgIG5nRG9jQXV0b2ZvY3VzIC8+XG4gICAgPC9uZy1kb2MtaW5wdXQtd3JhcHBlcj5cbiAgPC9mb3JtPlxuXG4gIDxkaXYgY2xhc3M9XCJuZy1kb2MtYXBpLWxpc3RcIj5cbiAgICBAZm9yIChzY29wZSBvZiBmaWx0ZXJlZEFwaUxpc3QoKTsgdHJhY2sgc2NvcGUpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJuZy1kb2MtYXBpLXNjb3BlXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cIm5nLWRvYy1zY29wZS10aXRsZVwiIG5nLWRvYy10ZXh0Pnt7IHNjb3BlLnRpdGxlIH19PC9oMz5cbiAgICAgICAgQGlmIChzY29wZS5pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICA8dWwgY2xhc3M9XCJuZy1kb2Mtc2NvcGUtaXRlbXNcIj5cbiAgICAgICAgICAgIEBmb3IgKGFwaVJlZmVyZW5jZSBvZiBzY29wZS5pdGVtczsgdHJhY2sgYXBpUmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5nLWRvYy1zY29wZS1pdGVtXCI+XG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuZy1kb2Mtc2NvcGUtaXRlbS1saW5rXCIgW3JvdXRlckxpbmtdPVwiW2FwaVJlZmVyZW5jZS5yb3V0ZV1cIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1kb2Mta2luZC1pY29uXG4gICAgICAgICAgICAgICAgICAgIFtraW5kXT1cImFwaVJlZmVyZW5jZS50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0RvY1Rvb2x0aXBdPVwiYXBpUmVmZXJlbmNlLnR5cGVcIj5cbiAgICAgICAgICAgICAgICAgIDwvbmctZG9jLWtpbmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgIHt7IGFwaVJlZmVyZW5jZS5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZG9jLWFwcC1jb21wb25lbnRzLWFwaS1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY29tcG9uZW50cy9hcGktbGlzdC9uZy1kb2MtYXBwLWNvbXBvbmVudHMtYXBpLWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|