@ng-doc/app 15.11.3 → 15.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +1 -1
  2. package/components/navbar/navbar.component.d.ts +9 -1
  3. package/components/playground/index.d.ts +1 -0
  4. package/components/playground/playground-properties/playground-properties.component.d.ts +12 -3
  5. package/components/playground/playground-property/playground-property.component.d.ts +6 -7
  6. package/components/playground/playground-property-control.d.ts +7 -0
  7. package/components/playground/playground.module.d.ts +1 -1
  8. package/components/root/root.component.d.ts +26 -2
  9. package/components/root/root.module.d.ts +3 -2
  10. package/esm2020/components/breadcrumb/breadcrumb.component.mjs +2 -2
  11. package/esm2020/components/navbar/navbar.component.mjs +20 -4
  12. package/esm2020/components/page/page.component.mjs +2 -2
  13. package/esm2020/components/playground/index.mjs +2 -1
  14. package/esm2020/components/playground/playground-properties/playground-properties.component.mjs +76 -7
  15. package/esm2020/components/playground/playground-property/playground-property.component.mjs +21 -48
  16. package/esm2020/components/playground/playground-property-control.mjs +2 -0
  17. package/esm2020/components/playground/playground.module.mjs +10 -4
  18. package/esm2020/components/root/root.component.mjs +49 -6
  19. package/esm2020/components/root/root.module.mjs +6 -5
  20. package/esm2020/components/search/search.component.mjs +3 -3
  21. package/esm2020/components/theme-toggle/theme-toggle.component.mjs +3 -3
  22. package/esm2020/constants/store-keys.mjs +2 -2
  23. package/esm2020/helpers/index.mjs +2 -1
  24. package/esm2020/helpers/is-dark-os-theme.mjs +7 -0
  25. package/esm2020/interfaces/application-config.mjs +1 -1
  26. package/esm2020/interfaces/type-control-provider-options.mjs +1 -1
  27. package/esm2020/modules/root/ng-doc.module.mjs +6 -2
  28. package/esm2020/services/sidebar/sidebar.service.mjs +28 -24
  29. package/esm2020/services/theme/theme.service.mjs +61 -13
  30. package/esm2020/type-controls/boolean-control/boolean-control.module.mjs +2 -2
  31. package/esm2020/type-controls/number-control/number-control.module.mjs +2 -2
  32. package/esm2020/type-controls/string-control/string-control.module.mjs +2 -2
  33. package/esm2020/type-controls/type-alias-control/type-alias-control.module.mjs +2 -2
  34. package/fesm2015/ng-doc-app-components-breadcrumb.mjs +2 -2
  35. package/fesm2015/ng-doc-app-components-breadcrumb.mjs.map +1 -1
  36. package/fesm2015/ng-doc-app-components-navbar.mjs +19 -3
  37. package/fesm2015/ng-doc-app-components-navbar.mjs.map +1 -1
  38. package/fesm2015/ng-doc-app-components-page.mjs +2 -2
  39. package/fesm2015/ng-doc-app-components-page.mjs.map +1 -1
  40. package/fesm2015/ng-doc-app-components-playground.mjs +111 -60
  41. package/fesm2015/ng-doc-app-components-playground.mjs.map +1 -1
  42. package/fesm2015/ng-doc-app-components-root.mjs +52 -9
  43. package/fesm2015/ng-doc-app-components-root.mjs.map +1 -1
  44. package/fesm2015/ng-doc-app-components-search.mjs +2 -2
  45. package/fesm2015/ng-doc-app-components-search.mjs.map +1 -1
  46. package/fesm2015/ng-doc-app-components-theme-toggle.mjs +2 -2
  47. package/fesm2015/ng-doc-app-components-theme-toggle.mjs.map +1 -1
  48. package/fesm2015/ng-doc-app-constants.mjs +1 -1
  49. package/fesm2015/ng-doc-app-constants.mjs.map +1 -1
  50. package/fesm2015/ng-doc-app-helpers.mjs +8 -1
  51. package/fesm2015/ng-doc-app-helpers.mjs.map +1 -1
  52. package/fesm2015/ng-doc-app-modules-root.mjs +5 -1
  53. package/fesm2015/ng-doc-app-modules-root.mjs.map +1 -1
  54. package/fesm2015/ng-doc-app-services-sidebar.mjs +27 -23
  55. package/fesm2015/ng-doc-app-services-sidebar.mjs.map +1 -1
  56. package/fesm2015/ng-doc-app-services-theme.mjs +60 -12
  57. package/fesm2015/ng-doc-app-services-theme.mjs.map +1 -1
  58. package/fesm2015/ng-doc-app-type-controls-boolean-control.mjs +1 -1
  59. package/fesm2015/ng-doc-app-type-controls-boolean-control.mjs.map +1 -1
  60. package/fesm2015/ng-doc-app-type-controls-number-control.mjs +1 -1
  61. package/fesm2015/ng-doc-app-type-controls-number-control.mjs.map +1 -1
  62. package/fesm2015/ng-doc-app-type-controls-string-control.mjs +1 -1
  63. package/fesm2015/ng-doc-app-type-controls-string-control.mjs.map +1 -1
  64. package/fesm2015/ng-doc-app-type-controls-type-alias-control.mjs +1 -1
  65. package/fesm2015/ng-doc-app-type-controls-type-alias-control.mjs.map +1 -1
  66. package/fesm2020/ng-doc-app-components-breadcrumb.mjs +2 -2
  67. package/fesm2020/ng-doc-app-components-breadcrumb.mjs.map +1 -1
  68. package/fesm2020/ng-doc-app-components-navbar.mjs +19 -3
  69. package/fesm2020/ng-doc-app-components-navbar.mjs.map +1 -1
  70. package/fesm2020/ng-doc-app-components-page.mjs +2 -2
  71. package/fesm2020/ng-doc-app-components-page.mjs.map +1 -1
  72. package/fesm2020/ng-doc-app-components-playground.mjs +109 -60
  73. package/fesm2020/ng-doc-app-components-playground.mjs.map +1 -1
  74. package/fesm2020/ng-doc-app-components-root.mjs +52 -9
  75. package/fesm2020/ng-doc-app-components-root.mjs.map +1 -1
  76. package/fesm2020/ng-doc-app-components-search.mjs +2 -2
  77. package/fesm2020/ng-doc-app-components-search.mjs.map +1 -1
  78. package/fesm2020/ng-doc-app-components-theme-toggle.mjs +2 -2
  79. package/fesm2020/ng-doc-app-components-theme-toggle.mjs.map +1 -1
  80. package/fesm2020/ng-doc-app-constants.mjs +1 -1
  81. package/fesm2020/ng-doc-app-constants.mjs.map +1 -1
  82. package/fesm2020/ng-doc-app-helpers.mjs +8 -1
  83. package/fesm2020/ng-doc-app-helpers.mjs.map +1 -1
  84. package/fesm2020/ng-doc-app-modules-root.mjs +5 -1
  85. package/fesm2020/ng-doc-app-modules-root.mjs.map +1 -1
  86. package/fesm2020/ng-doc-app-services-sidebar.mjs +27 -23
  87. package/fesm2020/ng-doc-app-services-sidebar.mjs.map +1 -1
  88. package/fesm2020/ng-doc-app-services-theme.mjs +60 -12
  89. package/fesm2020/ng-doc-app-services-theme.mjs.map +1 -1
  90. package/fesm2020/ng-doc-app-type-controls-boolean-control.mjs +1 -1
  91. package/fesm2020/ng-doc-app-type-controls-boolean-control.mjs.map +1 -1
  92. package/fesm2020/ng-doc-app-type-controls-number-control.mjs +1 -1
  93. package/fesm2020/ng-doc-app-type-controls-number-control.mjs.map +1 -1
  94. package/fesm2020/ng-doc-app-type-controls-string-control.mjs +1 -1
  95. package/fesm2020/ng-doc-app-type-controls-string-control.mjs.map +1 -1
  96. package/fesm2020/ng-doc-app-type-controls-type-alias-control.mjs +1 -1
  97. package/fesm2020/ng-doc-app-type-controls-type-alias-control.mjs.map +1 -1
  98. package/helpers/index.d.ts +1 -0
  99. package/helpers/is-dark-os-theme.d.ts +4 -0
  100. package/interfaces/application-config.d.ts +11 -1
  101. package/interfaces/type-control-provider-options.d.ts +5 -0
  102. package/package.json +3 -3
  103. package/services/sidebar/sidebar.service.d.ts +3 -10
  104. package/services/theme/theme.service.d.ts +23 -3
  105. package/styles/global.css +11 -2
  106. package/styles/main.css +6 -2
@@ -1,13 +1,17 @@
1
1
  import { __decorate, __metadata } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
- import { Directive, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import { Directive, Component, ChangeDetectionStrategy, Input, HostBinding, ViewChild, NgModule } from '@angular/core';
4
4
  import * as i1 from '@ng-doc/app/services/sidebar';
5
5
  import { NgDocSidebarService } from '@ng-doc/app/services/sidebar';
6
- import { fadeAnimation } from '@ng-doc/ui-kit/animations';
6
+ import * as i3 from '@ng-doc/ui-kit';
7
+ import { NgDocSidenavComponent, NgDocMediaQueryModule, NgDocSidenavModule, NgDocLetModule } from '@ng-doc/ui-kit';
7
8
  import { UntilDestroy } from '@ngneat/until-destroy';
9
+ import { NEVER, combineLatest, merge, of } from 'rxjs';
10
+ import { mapTo, startWith, filter, map, delay } from 'rxjs/operators';
8
11
  import * as i2 from '@angular/common';
9
12
  import { CommonModule } from '@angular/common';
10
- import { NgDocMediaQueryModule } from '@ng-doc/ui-kit/directives/media-query';
13
+ import * as i4 from '@tinkoff/ng-polymorpheus';
14
+ import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
11
15
 
12
16
  /**
13
17
  * Directive uses for providing custom navbar, you should mark element with this directive
@@ -58,29 +62,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
58
62
  let NgDocRootComponent = class NgDocRootComponent {
59
63
  constructor(sidebarService) {
60
64
  this.sidebarService = sidebarService;
65
+ /**
66
+ * If `true` then the sidebar will be shown
67
+ * You can use it for example for landing page to hide sidebar
68
+ */
69
+ this.sidebar = true;
70
+ /**
71
+ * Content for footer
72
+ */
73
+ this.footerContent = '';
74
+ /**
75
+ * If `true` then page will be shown without width limit.
76
+ * You can use it for example for landing page
77
+ */
78
+ this.noWidthLimit = false;
79
+ this.sidenavState$ = NEVER;
80
+ }
81
+ ngAfterViewInit() {
82
+ this.sidenavState$ = combineLatest([
83
+ this.sidebarService.isMobileMode(),
84
+ this.sidenav
85
+ ? merge(this.sidenav.beforeOpen.pipe(mapTo(true)), this.sidenav.afterClose.pipe(mapTo(false))).pipe(startWith(false))
86
+ : of(true),
87
+ ]).pipe(filter(([isMobile, opened]) => !opened || (opened && !isMobile)), map(([isMobile]) => ({
88
+ over: isMobile,
89
+ align: (isMobile ? 'right' : 'left'),
90
+ hasBackdrop: isMobile,
91
+ })), delay(0));
61
92
  }
62
93
  };
63
94
  NgDocRootComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootComponent, deps: [{ token: i1.NgDocSidebarService }], target: i0.ɵɵFactoryTarget.Component });
64
- NgDocRootComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: NgDocRootComponent, selector: "ng-doc-root", providers: [], ngImport: i0, template: "<div class=\"ng-doc-root-wrapper\" [class.collapsable]=\"sidebarService.isCollapsable() | async\">\n\t<div class=\"ng-doc-header\">\n\t\t<ng-content select=\"ng-doc-navbar\"></ng-content>\n\t\t<ng-content select=\"[ngDocCustomNavbar]\"></ng-content>\n\t</div>\n\t<main>\n\t\t<div class=\"ng-doc-sidebar\" [class.visible]=\"sidebarService.visibilityChanges() | async\">\n\t\t\t<ng-content select=\"ng-doc-sidebar\"></ng-content>\n\t\t\t<ng-content select=\"[ngDocCustomSidebar]\"></ng-content>\n\t\t</div>\n\t\t<div class=\"ng-doc-body\">\n\t\t\t<div\n\t\t\t\tclass=\"ng-doc-backdrop\"\n\t\t\t\t@fadeAnimation\n\t\t\t\t*ngIf=\"sidebarService.isExpanded() | async\"\n\t\t\t\t(click)=\"sidebarService.hide()\"\n\t\t\t></div>\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</main>\n</div>\n", styles: [":host .ng-doc-root-wrapper.collapsable{--ng-doc-navbar-left-width: auto}:host .ng-doc-root-wrapper.collapsable .ng-doc-sidebar{right:calc(var(--ng-doc-sidebar-width) * -1);transition:.22s cubic-bezier(.25,.8,.25,1);--ng-doc-sidebar-shadow: var(--ng-doc-shadow-color) 0px 5px 20px -5px}:host .ng-doc-root-wrapper.collapsable .ng-doc-sidebar.visible{right:0}:host .ng-doc-root-wrapper.collapsable .ng-doc-body{margin-left:0;padding:calc(var(--ng-doc-base-gutter) * 3) calc(var(--ng-doc-base-gutter) * 3)}:host .ng-doc-root-wrapper main{display:flex;width:100%;margin-left:auto;margin-right:auto;max-width:var(--ng-doc-app-max-width);padding-top:var(--ng-doc-navbar-height)}:host .ng-doc-root-wrapper .ng-doc-header{position:fixed;top:0;height:var(--ng-doc-navbar-height);width:100%;z-index:10}:host .ng-doc-root-wrapper .ng-doc-sidebar{position:fixed;top:var(--ng-doc-navbar-height);display:flex;width:var(--ng-doc-sidebar-width);z-index:5}:host .ng-doc-root-wrapper .ng-doc-body{width:100%;margin-left:var(--ng-doc-sidebar-width);padding:calc(var(--ng-doc-base-gutter) * 3) calc(var(--ng-doc-base-gutter) * 4);overflow:auto;background-color:var(--ng-doc-base-0)}:host .ng-doc-backdrop{position:fixed;left:0;top:0;width:100%;height:100%;z-index:1}:host .ng-doc-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}:host .ng-doc-backdrop:before{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;opacity:.4}@supports not ((-webkit-backdrop-filter: none) or (backdrop-filter: none)){:host .ng-doc-backdrop{background-color:#0003}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [fadeAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
95
+ NgDocRootComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: NgDocRootComponent, selector: "ng-doc-root", inputs: { sidebar: "sidebar", footerContent: "footerContent", noWidthLimit: "noWidthLimit" }, host: { properties: { "attr.data-ng-doc-no-width-limit": "this.noWidthLimit" } }, providers: [], viewQueries: [{ propertyName: "sidenav", first: true, predicate: NgDocSidenavComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngDocLet=\"!!(sidebarService.isMobileMode() | async) as isMobileMode\">\n\t<div class=\"ng-doc-root-wrapper\" [class.collapsable]=\"isMobileMode\">\n\t\t<div class=\"ng-doc-header\">\n\t\t\t<ng-content select=\"ng-doc-navbar\"></ng-content>\n\t\t\t<ng-content select=\"[ngDocCustomNavbar]\"></ng-content>\n\t\t</div>\n\t\t<main *ngDocLet=\"sidebar && !!(sidebarService.isExpanded() | async) as opened\">\n\t\t\t<ng-doc-sidenav\n\t\t\t\t*ngDocLet=\"sidenavState$ | async as sidenavState\"\n\t\t\t\t[sidebar]=\"sidebarContent\"\n\t\t\t\t[opened]=\"opened\"\n\t\t\t\t[over]=\"sidenavState?.over ?? false\"\n\t\t\t\t[align]=\"sidenavState?.align ?? 'left'\"\n\t\t\t\t[hasBackdrop]=\"sidenavState?.hasBackdrop ?? false\"\n\t\t\t\t(closeEvent)=\"sidebarService.hide()\"\n\t\t\t>\n\t\t\t\t<ng-template #sidebarContent>\n\t\t\t\t\t<ng-content select=\"ng-doc-sidebar\"></ng-content>\n\t\t\t\t\t<ng-content select=\"[ngDocCustomSidebar]\"></ng-content>\n\t\t\t\t</ng-template>\n\n\t\t\t\t<ng-content></ng-content>\n\t\t\t</ng-doc-sidenav>\n\t\t</main>\n\t\t<footer *ngIf=\"footerContent\">\n\t\t\t<ng-container *polymorpheusOutlet=\"footerContent as text\"> {{ text }} </ng-container>\n\t\t</footer>\n\t</div>\n</ng-container>\n", styles: [":host[data-ng-doc-no-width-limit=true] .ng-doc-root-wrapper main{max-width:none}:host .ng-doc-root-wrapper main{display:flex;width:100%;margin-left:auto;margin-right:auto;max-width:var(--ng-doc-app-max-width);padding:var(--ng-doc-main-padding);--ng-doc-sidenav-top: var(--ng-doc-navbar-height);--ng-doc-sidenav-width: var(--ng-doc-sidebar-width);--ng-doc-sidenav-content-padding: var(--ng-doc-page-padding)}:host .ng-doc-root-wrapper .ng-doc-header{position:fixed;top:0;height:var(--ng-doc-navbar-height);width:100%;z-index:10}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.NgDocSidenavComponent, selector: "ng-doc-sidenav", inputs: ["sidebar", "align", "over", "opened", "hasBackdrop"], outputs: ["openedChange", "closeEvent", "beforeOpen", "beforeClose", "afterOpen", "afterClose"] }, { kind: "directive", type: i3.NgDocLetDirective, selector: "[ngDocLet]", inputs: ["ngDocLet"] }, { kind: "directive", type: i4.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
65
96
  NgDocRootComponent = __decorate([
66
97
  UntilDestroy(),
67
98
  __metadata("design:paramtypes", [NgDocSidebarService])
68
99
  ], NgDocRootComponent);
69
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootComponent, decorators: [{
70
101
  type: Component,
71
- args: [{ animations: [fadeAnimation], selector: 'ng-doc-root', providers: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ng-doc-root-wrapper\" [class.collapsable]=\"sidebarService.isCollapsable() | async\">\n\t<div class=\"ng-doc-header\">\n\t\t<ng-content select=\"ng-doc-navbar\"></ng-content>\n\t\t<ng-content select=\"[ngDocCustomNavbar]\"></ng-content>\n\t</div>\n\t<main>\n\t\t<div class=\"ng-doc-sidebar\" [class.visible]=\"sidebarService.visibilityChanges() | async\">\n\t\t\t<ng-content select=\"ng-doc-sidebar\"></ng-content>\n\t\t\t<ng-content select=\"[ngDocCustomSidebar]\"></ng-content>\n\t\t</div>\n\t\t<div class=\"ng-doc-body\">\n\t\t\t<div\n\t\t\t\tclass=\"ng-doc-backdrop\"\n\t\t\t\t@fadeAnimation\n\t\t\t\t*ngIf=\"sidebarService.isExpanded() | async\"\n\t\t\t\t(click)=\"sidebarService.hide()\"\n\t\t\t></div>\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</main>\n</div>\n", styles: [":host .ng-doc-root-wrapper.collapsable{--ng-doc-navbar-left-width: auto}:host .ng-doc-root-wrapper.collapsable .ng-doc-sidebar{right:calc(var(--ng-doc-sidebar-width) * -1);transition:.22s cubic-bezier(.25,.8,.25,1);--ng-doc-sidebar-shadow: var(--ng-doc-shadow-color) 0px 5px 20px -5px}:host .ng-doc-root-wrapper.collapsable .ng-doc-sidebar.visible{right:0}:host .ng-doc-root-wrapper.collapsable .ng-doc-body{margin-left:0;padding:calc(var(--ng-doc-base-gutter) * 3) calc(var(--ng-doc-base-gutter) * 3)}:host .ng-doc-root-wrapper main{display:flex;width:100%;margin-left:auto;margin-right:auto;max-width:var(--ng-doc-app-max-width);padding-top:var(--ng-doc-navbar-height)}:host .ng-doc-root-wrapper .ng-doc-header{position:fixed;top:0;height:var(--ng-doc-navbar-height);width:100%;z-index:10}:host .ng-doc-root-wrapper .ng-doc-sidebar{position:fixed;top:var(--ng-doc-navbar-height);display:flex;width:var(--ng-doc-sidebar-width);z-index:5}:host .ng-doc-root-wrapper .ng-doc-body{width:100%;margin-left:var(--ng-doc-sidebar-width);padding:calc(var(--ng-doc-base-gutter) * 3) calc(var(--ng-doc-base-gutter) * 4);overflow:auto;background-color:var(--ng-doc-base-0)}:host .ng-doc-backdrop{position:fixed;left:0;top:0;width:100%;height:100%;z-index:1}:host .ng-doc-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}:host .ng-doc-backdrop:before{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;opacity:.4}@supports not ((-webkit-backdrop-filter: none) or (backdrop-filter: none)){:host .ng-doc-backdrop{background-color:#0003}}\n"] }]
72
- }], ctorParameters: function () { return [{ type: i1.NgDocSidebarService }]; } });
102
+ args: [{ selector: 'ng-doc-root', providers: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngDocLet=\"!!(sidebarService.isMobileMode() | async) as isMobileMode\">\n\t<div class=\"ng-doc-root-wrapper\" [class.collapsable]=\"isMobileMode\">\n\t\t<div class=\"ng-doc-header\">\n\t\t\t<ng-content select=\"ng-doc-navbar\"></ng-content>\n\t\t\t<ng-content select=\"[ngDocCustomNavbar]\"></ng-content>\n\t\t</div>\n\t\t<main *ngDocLet=\"sidebar && !!(sidebarService.isExpanded() | async) as opened\">\n\t\t\t<ng-doc-sidenav\n\t\t\t\t*ngDocLet=\"sidenavState$ | async as sidenavState\"\n\t\t\t\t[sidebar]=\"sidebarContent\"\n\t\t\t\t[opened]=\"opened\"\n\t\t\t\t[over]=\"sidenavState?.over ?? false\"\n\t\t\t\t[align]=\"sidenavState?.align ?? 'left'\"\n\t\t\t\t[hasBackdrop]=\"sidenavState?.hasBackdrop ?? false\"\n\t\t\t\t(closeEvent)=\"sidebarService.hide()\"\n\t\t\t>\n\t\t\t\t<ng-template #sidebarContent>\n\t\t\t\t\t<ng-content select=\"ng-doc-sidebar\"></ng-content>\n\t\t\t\t\t<ng-content select=\"[ngDocCustomSidebar]\"></ng-content>\n\t\t\t\t</ng-template>\n\n\t\t\t\t<ng-content></ng-content>\n\t\t\t</ng-doc-sidenav>\n\t\t</main>\n\t\t<footer *ngIf=\"footerContent\">\n\t\t\t<ng-container *polymorpheusOutlet=\"footerContent as text\"> {{ text }} </ng-container>\n\t\t</footer>\n\t</div>\n</ng-container>\n", styles: [":host[data-ng-doc-no-width-limit=true] .ng-doc-root-wrapper main{max-width:none}:host .ng-doc-root-wrapper main{display:flex;width:100%;margin-left:auto;margin-right:auto;max-width:var(--ng-doc-app-max-width);padding:var(--ng-doc-main-padding);--ng-doc-sidenav-top: var(--ng-doc-navbar-height);--ng-doc-sidenav-width: var(--ng-doc-sidebar-width);--ng-doc-sidenav-content-padding: var(--ng-doc-page-padding)}:host .ng-doc-root-wrapper .ng-doc-header{position:fixed;top:0;height:var(--ng-doc-navbar-height);width:100%;z-index:10}\n"] }]
103
+ }], ctorParameters: function () { return [{ type: i1.NgDocSidebarService }]; }, propDecorators: { sidebar: [{
104
+ type: Input
105
+ }], footerContent: [{
106
+ type: Input
107
+ }], noWidthLimit: [{
108
+ type: Input
109
+ }, {
110
+ type: HostBinding,
111
+ args: ['attr.data-ng-doc-no-width-limit']
112
+ }], sidenav: [{
113
+ type: ViewChild,
114
+ args: [NgDocSidenavComponent]
115
+ }] } });
73
116
 
74
117
  class NgDocRootModule {
75
118
  }
76
119
  NgDocRootModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
77
- NgDocRootModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootModule, declarations: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective], imports: [CommonModule, NgDocMediaQueryModule], exports: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective] });
78
- NgDocRootModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootModule, imports: [CommonModule, NgDocMediaQueryModule] });
120
+ NgDocRootModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootModule, declarations: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective], imports: [CommonModule, NgDocMediaQueryModule, NgDocSidenavModule, NgDocLetModule, PolymorpheusModule], exports: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective] });
121
+ NgDocRootModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootModule, imports: [CommonModule, NgDocMediaQueryModule, NgDocSidenavModule, NgDocLetModule, PolymorpheusModule] });
79
122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgDocRootModule, decorators: [{
80
123
  type: NgModule,
81
124
  args: [{
82
125
  declarations: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective],
83
- imports: [CommonModule, NgDocMediaQueryModule],
126
+ imports: [CommonModule, NgDocMediaQueryModule, NgDocSidenavModule, NgDocLetModule, PolymorpheusModule],
84
127
  exports: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective],
85
128
  }]
86
129
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-components-root.mjs","sources":["../../../../libs/app/components/root/root.component.ts","../../../../libs/app/components/root/root.component.html","../../../../libs/app/components/root/root.module.ts","../../../../libs/app/components/root/ng-doc-app-components-root.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Directive} from '@angular/core';\nimport {NgDocSidebarService} from '@ng-doc/app/services/sidebar';\nimport {fadeAnimation} from '@ng-doc/ui-kit/animations';\nimport {UntilDestroy} from '@ngneat/until-destroy';\n\n/**\n * Directive uses for providing custom navbar, you should mark element with this directive\n * and the `NgDocRootComponent` will use it as a navbar\n *\n * ```html\n * <ng-doc-root>\n * <my-custom-navbar ngDocCustomNavbar></my-custom-navbar>\n *\n * <ng-doc-sidebar></ng-doc-sidebar>\n * <router-outlet></router-outlet>\n * </ng-doc-root>\n * ```\n */\n@Directive({\n\tselector: '[ngDocCustomNavbar]',\n})\nexport class NgDocCustomNavbarDirective {}\n\n/**\n * Directive uses for providing custom sidebar, you should mark element with this directive\n * and the `NgDocRootComponent` will use it as a sidebar\n *\n * ```html\n * <ng-doc-root>\n * <ng-doc-navbar></ng-doc-sidebar>\n *\n * <my-custom-sidebar ngDocCustomSidebar></my-custom-sidebar>\n * <router-outlet></router-outlet>\n * </ng-doc-root>\n * ```\n */\n@Directive({\n\tselector: '[ngDocCustomSidebar]',\n})\nexport class NgDocCustomSidebarDirective {}\n\n@Component({\n\tanimations: [fadeAnimation],\n\tselector: 'ng-doc-root',\n\ttemplateUrl: './root.component.html',\n\tstyleUrls: ['./root.component.scss'],\n\tproviders: [],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\n@UntilDestroy()\nexport class NgDocRootComponent {\n\tconstructor(protected readonly sidebarService: NgDocSidebarService) {}\n}\n","<div class=\"ng-doc-root-wrapper\" [class.collapsable]=\"sidebarService.isCollapsable() | async\">\n\t<div class=\"ng-doc-header\">\n\t\t<ng-content select=\"ng-doc-navbar\"></ng-content>\n\t\t<ng-content select=\"[ngDocCustomNavbar]\"></ng-content>\n\t</div>\n\t<main>\n\t\t<div class=\"ng-doc-sidebar\" [class.visible]=\"sidebarService.visibilityChanges() | async\">\n\t\t\t<ng-content select=\"ng-doc-sidebar\"></ng-content>\n\t\t\t<ng-content select=\"[ngDocCustomSidebar]\"></ng-content>\n\t\t</div>\n\t\t<div class=\"ng-doc-body\">\n\t\t\t<div\n\t\t\t\tclass=\"ng-doc-backdrop\"\n\t\t\t\t@fadeAnimation\n\t\t\t\t*ngIf=\"sidebarService.isExpanded() | async\"\n\t\t\t\t(click)=\"sidebarService.hide()\"\n\t\t\t></div>\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t</main>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {NgDocMediaQueryModule} from '@ng-doc/ui-kit/directives/media-query';\n\nimport {NgDocCustomNavbarDirective, NgDocCustomSidebarDirective, NgDocRootComponent} from './root.component';\n\n@NgModule({\n\tdeclarations: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective],\n\timports: [CommonModule, NgDocMediaQueryModule],\n\texports: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective],\n})\nexport class NgDocRootModule {}\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-root.mjs","sources":["../../../../libs/app/components/root/root.component.ts","../../../../libs/app/components/root/root.component.html","../../../../libs/app/components/root/root.module.ts","../../../../libs/app/components/root/ng-doc-app-components-root.ts"],"sourcesContent":["import {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\tDirective,\n\tHostBinding,\n\tInput,\n\tViewChild,\n} from '@angular/core';\nimport {NgDocSidebarService} from '@ng-doc/app/services/sidebar';\nimport {NgDocContent, NgDocHorizontalAlign, NgDocSidenavComponent} from '@ng-doc/ui-kit';\nimport {UntilDestroy} from '@ngneat/until-destroy';\nimport {combineLatest, merge, NEVER, Observable, of} from 'rxjs';\nimport {delay, filter, map, mapTo, startWith, tap} from 'rxjs/operators';\n\n/**\n * Directive uses for providing custom navbar, you should mark element with this directive\n * and the `NgDocRootComponent` will use it as a navbar\n *\n * ```html\n * <ng-doc-root>\n * <my-custom-navbar ngDocCustomNavbar></my-custom-navbar>\n *\n * <ng-doc-sidebar></ng-doc-sidebar>\n * <router-outlet></router-outlet>\n * </ng-doc-root>\n * ```\n */\n@Directive({\n\tselector: '[ngDocCustomNavbar]',\n})\nexport class NgDocCustomNavbarDirective {}\n\n/**\n * Directive uses for providing custom sidebar, you should mark element with this directive\n * and the `NgDocRootComponent` will use it as a sidebar\n *\n * ```html\n * <ng-doc-root>\n * <ng-doc-navbar></ng-doc-sidebar>\n *\n * <my-custom-sidebar ngDocCustomSidebar></my-custom-sidebar>\n * <router-outlet></router-outlet>\n * </ng-doc-root>\n * ```\n */\n@Directive({\n\tselector: '[ngDocCustomSidebar]',\n})\nexport class NgDocCustomSidebarDirective {}\n\n@Component({\n\tselector: 'ng-doc-root',\n\ttemplateUrl: './root.component.html',\n\tstyleUrls: ['./root.component.scss'],\n\tproviders: [],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\n@UntilDestroy()\nexport class NgDocRootComponent implements AfterViewInit {\n\t/**\n\t * If `true` then the sidebar will be shown\n\t * You can use it for example for landing page to hide sidebar\n\t */\n\t@Input()\n\tsidebar: boolean = true;\n\n\t/**\n\t * Content for footer\n\t */\n\t@Input()\n\tfooterContent: NgDocContent = '';\n\n\t/**\n\t * If `true` then page will be shown without width limit.\n\t * You can use it for example for landing page\n\t */\n\t@Input()\n\t@HostBinding('attr.data-ng-doc-no-width-limit')\n\tnoWidthLimit: boolean = false;\n\n\t@ViewChild(NgDocSidenavComponent)\n\tsidenav?: NgDocSidenavComponent;\n\n\tprotected sidenavState$: Observable<{\n\t\tover: boolean;\n\t\talign: NgDocHorizontalAlign;\n\t\thasBackdrop: boolean;\n\t}> = NEVER;\n\n\tconstructor(protected readonly sidebarService: NgDocSidebarService) {}\n\n\tngAfterViewInit(): void {\n\t\tthis.sidenavState$ = combineLatest([\n\t\t\tthis.sidebarService.isMobileMode(),\n\t\t\tthis.sidenav\n\t\t\t\t? merge(this.sidenav.beforeOpen.pipe(mapTo(true)), this.sidenav.afterClose.pipe(mapTo(false))).pipe(\n\t\t\t\t\t\tstartWith(false),\n\t\t\t\t )\n\t\t\t\t: of(true),\n\t\t]).pipe(\n\t\t\tfilter(([isMobile, opened]: [boolean, boolean]) => !opened || (opened && !isMobile)),\n\t\t\tmap(([isMobile]: [boolean, boolean]) => ({\n\t\t\t\tover: isMobile,\n\t\t\t\talign: (isMobile ? 'right' : 'left') as NgDocHorizontalAlign,\n\t\t\t\thasBackdrop: isMobile,\n\t\t\t})),\n\t\t\tdelay(0),\n\t\t);\n\t}\n}\n","<ng-container *ngDocLet=\"!!(sidebarService.isMobileMode() | async) as isMobileMode\">\n\t<div class=\"ng-doc-root-wrapper\" [class.collapsable]=\"isMobileMode\">\n\t\t<div class=\"ng-doc-header\">\n\t\t\t<ng-content select=\"ng-doc-navbar\"></ng-content>\n\t\t\t<ng-content select=\"[ngDocCustomNavbar]\"></ng-content>\n\t\t</div>\n\t\t<main *ngDocLet=\"sidebar && !!(sidebarService.isExpanded() | async) as opened\">\n\t\t\t<ng-doc-sidenav\n\t\t\t\t*ngDocLet=\"sidenavState$ | async as sidenavState\"\n\t\t\t\t[sidebar]=\"sidebarContent\"\n\t\t\t\t[opened]=\"opened\"\n\t\t\t\t[over]=\"sidenavState?.over ?? false\"\n\t\t\t\t[align]=\"sidenavState?.align ?? 'left'\"\n\t\t\t\t[hasBackdrop]=\"sidenavState?.hasBackdrop ?? false\"\n\t\t\t\t(closeEvent)=\"sidebarService.hide()\"\n\t\t\t>\n\t\t\t\t<ng-template #sidebarContent>\n\t\t\t\t\t<ng-content select=\"ng-doc-sidebar\"></ng-content>\n\t\t\t\t\t<ng-content select=\"[ngDocCustomSidebar]\"></ng-content>\n\t\t\t\t</ng-template>\n\n\t\t\t\t<ng-content></ng-content>\n\t\t\t</ng-doc-sidenav>\n\t\t</main>\n\t\t<footer *ngIf=\"footerContent\">\n\t\t\t<ng-container *polymorpheusOutlet=\"footerContent as text\"> {{ text }} </ng-container>\n\t\t</footer>\n\t</div>\n</ng-container>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {NgDocLetModule, NgDocMediaQueryModule, NgDocSidenavModule} from '@ng-doc/ui-kit';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {NgDocCustomNavbarDirective, NgDocCustomSidebarDirective, NgDocRootComponent} from './root.component';\n\n@NgModule({\n\tdeclarations: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective],\n\timports: [CommonModule, NgDocMediaQueryModule, NgDocSidenavModule, NgDocLetModule, PolymorpheusModule],\n\texports: [NgDocRootComponent, NgDocCustomNavbarDirective, NgDocCustomSidebarDirective],\n})\nexport class NgDocRootModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -49,7 +49,7 @@ NgDocSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
49
49
  provide: NgDocListHost,
50
50
  useExisting: NgDocSearchComponent_1,
51
51
  },
52
- ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<ng-container *ngDocLet=\"search$ | async as state\">\n\t<ng-container *ngIf=\"mod === 'icon'; else searchInput\">\n\t\t<button ng-doc-button-icon size=\"large\" (click)=\"inputDropdown.toggle()\" ngDocDropdownOrigin>\n\t\t\t<ng-doc-icon icon=\"search\" [size]=\"24\"></ng-doc-icon>\n\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"dropdownContent\"\n\t\t\t\tpanelClass=\"ng-doc-search-dropdown\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"80vh\"\n\t\t\t\t#inputDropdown\n\t\t\t>\n\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t<div class=\"ng-doc-search-wrapper\">\n\t\t\t\t\t\t<ng-doc-input-wrapper [leftContent]=\"leftContent\" ngDocDropdownOrigin>\n\t\t\t\t\t\t\t<ng-template #leftContent>\n\t\t\t\t\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tngDocInputString\n\t\t\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t\t\t(ngModelChange)=\"query$.next($event)\"\n\t\t\t\t\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t\t\t\t\tngDocAutofocus\n\t\t\t\t\t\t\t\t[selectAll]=\"true\"\n\t\t\t\t\t\t\t\t#inputElement\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-doc-input-wrapper>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"searchResults\"></ng-container>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-dropdown>\n\t\t</button>\n\t</ng-container>\n\n\t<ng-template #searchInput>\n\t\t<ng-doc-input-wrapper\n\t\t\t[leftContent]=\"leftContent\"\n\t\t\t[rightContent]=\"rightContent\"\n\t\t\tngDocDropdownOrigin\n\t\t\tngDocFocusCatcher\n\t\t\t(focusEvent)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t(click)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t#input\n\t\t>\n\t\t\t<ng-template #leftContent>\n\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t</ng-template>\n\t\t\t<input\n\t\t\t\tngDocInputString\n\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t(ngModelChange)=\"query$.next($event); dropdown.open()\"\n\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t[ngDocHotkey]=\"{ctrlKey: false, altKey: false, shiftKey: false, code: 'Slash'}\"\n\t\t\t\t(ngDocHotkey)=\"inputElement.focus(); inputElement.select()\"\n\t\t\t\t#inputElement\n\t\t\t/>\n\t\t\t<ng-template #rightContent>\n\t\t\t\t<ng-doc-tag class=\"search-hotkey\">/</ng-doc-tag>\n\t\t\t</ng-template>\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"searchResults\"\n\t\t\t\t[width]=\"input.elementRef.nativeElement.offsetWidth\"\n\t\t\t\tmaxHeight=\"calc(95vh - var(--ng-doc-navbar-height)\"\n\t\t\t\t#dropdown\n\t\t\t>\n\t\t\t\t<\n\t\t\t</ng-doc-dropdown>\n\t\t</ng-doc-input-wrapper>\n\t</ng-template>\n\n\t<ng-template #searchResults>\n\t\t<div class=\"ng-doc-search-result-content\" [attr.data-ng-doc-mod]=\"mod\">\n\t\t\t<ng-doc-data-list [items]=\"state?.result ?? []\" [itemContent]=\"itemContent\" [emptyContent]=\"emptyContent\">\n\t\t\t\t<ng-template let-item #itemContent>\n\t\t\t\t\t<a class=\"ng-doc-search-option\" [routerLink]=\"item.index.route\" [fragment]=\"item.index.fragment\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-option-header\">\n\t\t\t\t\t\t\t<ng-doc-tag size=\"small\" [attr.data-ng-doc-page-type]=\"item.index.pageType\">\n\t\t\t\t\t\t\t\t{{ item.index.pageType }}\n\t\t\t\t\t\t\t</ng-doc-tag>\n\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumbs\" ng-doc-text>\n\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let breadcrum of item.index.breadcrumbs; let i = index\">\n\t\t\t\t\t\t\t\t\t<span>{{ breadcrum }}</span>\n\t\t\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumb-divider\" *ngIf=\"i !== item.index.breadcrumbs.length - 1\"\n\t\t\t\t\t\t\t\t\t\t>/</span\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<h5\n\t\t\t\t\t\t\tclass=\"ng-doc-search-section-title\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\t(item.index.section\n\t\t\t\t\t\t\t\t\t| ngDocHighlighterPipe: (getPositions | ngDocRun: 'section':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml) || item.index.title\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t></h5>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t*ngIf=\"item.index.content\"\n\t\t\t\t\t\t\tclass=\"ng-doc-search-content\"\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\titem.index.content | ngDocHighlighterPipe: (getPositions | ngDocRun: 'content':item) | ngDocSanitizeHtml\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</a>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template #emptyContent>\n\t\t\t\t\t<ng-container *ngIf=\"!state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-empty\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"query$.value.length\">Nothing found</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!query$.value.length\">Please enter your search query</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<ng-container *ngIf=\"state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-progress\">\n\t\t\t\t\t\t\t<ng-doc-spinner size=\"small\"></ng-doc-spinner>\n\t\t\t\t\t\t\tSearching...\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-data-list>\n\t\t</div>\n\t</ng-template>\n</ng-container>\n", styles: [":host{max-width:500px;--ng-doc-floated-border-radius: var(--ng-doc-base-gutter);--ng-doc-input-background-color: var(--ng-doc-base-1);--ng-doc-input-border: none;--ng-doc-input-border-hover: none;--ng-doc-icon-color: var(--ng-doc-base-8)}:host[data-ng-doc-mod=input]{width:100%}.ng-doc-search-result-content{height:100%;overflow:auto;--ng-doc-option-padding: 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-wrapper{padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-option{padding:12px 16px}.ng-doc-search-wrapper{display:flex;flex-direction:column;height:100%;padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-wrapper ng-doc-input-wrapper{padding:0 calc(var(--ng-doc-base-gutter) * 2)}.ng-doc-search-wrapper .ng-doc-search-result-content{padding:0;margin-top:calc(var(--ng-doc-base-gutter) * 3)}.search-hotkey{display:flex;align-items:center;justify-content:center;width:calc(var(--ng-doc-base-gutter) * 3);height:calc(var(--ng-doc-base-gutter) * 3);margin-right:var(--ng-doc-base-gutter);--ng-doc-tag-border: 1px solid var(--ng-doc-base-7);--ng-doc-tag-color: var(--ng-doc-base-7);--ng-doc-tag-background: transparent}::ng-deep .ng-doc-search-dropdown{--ng-doc-overlay-border-radius: 0px !important}.ng-doc-search-option{display:block;padding:12px 36px;text-decoration:none}.ng-doc-search-option .ng-doc-search-option-header{display:flex;align-items:center}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag{text-transform:uppercase;margin-right:calc(var(--ng-doc-base-gutter) / 2);--ng-doc-font-weight: 900}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=guide]{--ng-doc-tag-color: var(--ng-doc-guide-tag-color);--ng-doc-tag-background: var(--ng-doc-guide-tag-background)}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=api]{--ng-doc-tag-color: var(--ng-doc-api-tag-color);--ng-doc-tag-background: var(--ng-doc-api-tag-background)}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs{--ng-doc-text: var(--ng-doc-text-muted);--ng-doc-font-size: 12px;--ng-doc-line-height: 16px;--ng-doc-font-weight: 600}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs .ng-doc-search-option-breadcrumb-divider{margin:0 6px}.ng-doc-search-option .ng-doc-search-section-title{display:block;color:var(--ng-doc-search-result-header-color, var(--ng-doc-text));--ng-doc-line-height: 20px;margin:4px 0}.ng-doc-search-option .ng-doc-search-content{display:block;color:var(--ng-doc-search-result-color, var(--ng-doc-text));--ng-doc-font-size: 14px;--ng-doc-line-height: 19px;--ng-doc-font-weight: 600}.ng-doc-search-empty{padding:0 22px}.ng-doc-search-progress{display:flex;align-items:center}.ng-doc-search-progress ng-doc-spinner{margin-right:var(--ng-doc-base-gutter)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i5.NgDocInputWrapperComponent, selector: "ng-doc-input-wrapper", inputs: ["blurContent", "blurContext", "leftContent", "rightContent", "align"] }, { kind: "directive", type: i5.NgDocInputStringDirective, selector: "input[ngDocInputString]" }, { kind: "component", type: i5.NgDocDropdownComponent, selector: "ng-doc-dropdown", inputs: ["content", "origin", "closeIfOutsideClick", "closeIfInnerClick", "withArrow", "borderOffset", "panelClass", "contactBorder", "hasBackdrop", "positions", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"] }, { kind: "directive", type: i5.NgDocDropdownOriginDirective, selector: "[ngDocDropdownOrigin]", exportAs: ["ngDocDropdownOrigin"] }, { kind: "directive", type: i5.NgDocFocusCatcherDirective, selector: "[ngDocFocusCatcher]", outputs: ["focusEvent", "blurEvent"], exportAs: ["ngDocFocusCatcher"] }, { kind: "component", type: i5.NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "size"] }, { kind: "component", type: i5.NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { kind: "directive", type: i5.NgDocAutofocusDirective, selector: "[ngDocAutofocus]", inputs: ["selectAll"] }, { kind: "component", type: i5.NgDocTagComponent, selector: "ng-doc-tag", inputs: ["color", "size", "mod"] }, { kind: "directive", type: i5.NgDocHotkeyDirective, selector: "[ngDocHotkey]", inputs: ["ngDocHotkey"], outputs: ["ngDocHotkey"] }, { kind: "component", type: i5.NgDocDataListComponent, selector: "ng-doc-data-list", inputs: ["autofocus", "items", "itemContent", "emptyContent", "itemDisabledFn", "defineValueFn", "trackByFn"] }, { kind: "component", type: i5.NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "directive", type: i5.NgDocLetDirective, selector: "[ngDocLet]", inputs: ["ngDocLet"] }, { kind: "component", type: i5.NgDocSpinnerComponent, selector: "ng-doc-spinner", inputs: ["size"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.NgDocHighlighterPipe, name: "ngDocHighlighterPipe" }, { kind: "pipe", type: i5.NgDocRunPipe, name: "ngDocRun" }, { kind: "pipe", type: i6.NgDocSanitizeHtmlPipe, name: "ngDocSanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
+ ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<ng-container *ngDocLet=\"search$ | async as state\">\n\t<ng-container *ngIf=\"mod === 'icon'; else searchInput\">\n\t\t<button ng-doc-button-icon size=\"large\" (click)=\"inputDropdown.toggle()\" ngDocDropdownOrigin>\n\t\t\t<ng-doc-icon icon=\"search\" [size]=\"24\"></ng-doc-icon>\n\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"dropdownContent\"\n\t\t\t\tpanelClass=\"ng-doc-search-dropdown\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"80vh\"\n\t\t\t\t#inputDropdown\n\t\t\t>\n\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t<div class=\"ng-doc-search-wrapper\">\n\t\t\t\t\t\t<ng-doc-input-wrapper [leftContent]=\"leftContent\" ngDocDropdownOrigin>\n\t\t\t\t\t\t\t<ng-template #leftContent>\n\t\t\t\t\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tngDocInputString\n\t\t\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t\t\t(ngModelChange)=\"query$.next($event)\"\n\t\t\t\t\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t\t\t\t\tngDocAutofocus\n\t\t\t\t\t\t\t\t[selectAll]=\"true\"\n\t\t\t\t\t\t\t\t#inputElement\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-doc-input-wrapper>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"searchResults\"></ng-container>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-dropdown>\n\t\t</button>\n\t</ng-container>\n\n\t<ng-template #searchInput>\n\t\t<ng-doc-input-wrapper\n\t\t\t[leftContent]=\"leftContent\"\n\t\t\t[rightContent]=\"rightContent\"\n\t\t\tngDocDropdownOrigin\n\t\t\tngDocFocusCatcher\n\t\t\t(focusEvent)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t(click)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t#input\n\t\t>\n\t\t\t<ng-template #leftContent>\n\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t</ng-template>\n\t\t\t<input\n\t\t\t\tngDocInputString\n\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t(ngModelChange)=\"query$.next($event); dropdown.open()\"\n\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t[ngDocHotkey]=\"{ctrlKey: false, altKey: false, shiftKey: false, code: 'Slash'}\"\n\t\t\t\t(ngDocHotkey)=\"inputElement.focus(); inputElement.select()\"\n\t\t\t\t#inputElement\n\t\t\t/>\n\t\t\t<ng-template #rightContent>\n\t\t\t\t<ng-doc-tag class=\"search-hotkey\">/</ng-doc-tag>\n\t\t\t</ng-template>\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"searchResults\"\n\t\t\t\tpositions=\"bottom-right\"\n\t\t\t\t[width]=\"input.elementRef.nativeElement.offsetWidth\"\n\t\t\t\tmaxHeight=\"calc(95vh - var(--ng-doc-navbar-height)\"\n\t\t\t\t#dropdown\n\t\t\t>\n\t\t\t\t<\n\t\t\t</ng-doc-dropdown>\n\t\t</ng-doc-input-wrapper>\n\t</ng-template>\n\n\t<ng-template #searchResults>\n\t\t<div class=\"ng-doc-search-result-content\" [attr.data-ng-doc-mod]=\"mod\">\n\t\t\t<ng-doc-data-list [items]=\"state?.result ?? []\" [itemContent]=\"itemContent\" [emptyContent]=\"emptyContent\">\n\t\t\t\t<ng-template let-item #itemContent>\n\t\t\t\t\t<a class=\"ng-doc-search-option\" [routerLink]=\"item.index.route\" [fragment]=\"item.index.fragment\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-option-header\">\n\t\t\t\t\t\t\t<ng-doc-tag size=\"small\" [attr.data-ng-doc-page-type]=\"item.index.pageType\">\n\t\t\t\t\t\t\t\t{{ item.index.pageType }}\n\t\t\t\t\t\t\t</ng-doc-tag>\n\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumbs\" ng-doc-text>\n\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let breadcrum of item.index.breadcrumbs; let i = index\">\n\t\t\t\t\t\t\t\t\t<span>{{ breadcrum }}</span>\n\t\t\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumb-divider\" *ngIf=\"i !== item.index.breadcrumbs.length - 1\"\n\t\t\t\t\t\t\t\t\t\t>/</span\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<h5\n\t\t\t\t\t\t\tclass=\"ng-doc-search-section-title\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\t(item.index.section\n\t\t\t\t\t\t\t\t\t| ngDocHighlighterPipe: (getPositions | ngDocRun: 'section':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml) || item.index.title\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t></h5>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t*ngIf=\"item.index.content\"\n\t\t\t\t\t\t\tclass=\"ng-doc-search-content\"\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\titem.index.content | ngDocHighlighterPipe: (getPositions | ngDocRun: 'content':item) | ngDocSanitizeHtml\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</a>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template #emptyContent>\n\t\t\t\t\t<ng-container *ngIf=\"!state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-empty\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"query$.value.length\">Nothing found</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!query$.value.length\">Please enter your search query</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<ng-container *ngIf=\"state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-progress\">\n\t\t\t\t\t\t\t<ng-doc-spinner size=\"small\"></ng-doc-spinner>\n\t\t\t\t\t\t\tSearching...\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-data-list>\n\t\t</div>\n\t</ng-template>\n</ng-container>\n", styles: [":host{max-width:500px;--ng-doc-floated-border-radius: var(--ng-doc-base-gutter);--ng-doc-input-background-color: var(--ng-doc-base-1);--ng-doc-input-border: none;--ng-doc-input-border-hover: none;--ng-doc-icon-color: var(--ng-doc-base-8)}:host[data-ng-doc-mod=input]{width:480px}.ng-doc-search-result-content{height:100%;overflow:auto;--ng-doc-option-padding: 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-wrapper{padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-option{padding:12px 16px}.ng-doc-search-wrapper{display:flex;flex-direction:column;height:100%;padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-wrapper ng-doc-input-wrapper{padding:0 calc(var(--ng-doc-base-gutter) * 2)}.ng-doc-search-wrapper .ng-doc-search-result-content{padding:0;margin-top:calc(var(--ng-doc-base-gutter) * 3)}.search-hotkey{display:flex;align-items:center;justify-content:center;width:calc(var(--ng-doc-base-gutter) * 3);height:calc(var(--ng-doc-base-gutter) * 3);margin-right:var(--ng-doc-base-gutter);--ng-doc-tag-border: 1px solid var(--ng-doc-base-7);--ng-doc-tag-color: var(--ng-doc-base-7);--ng-doc-tag-background: transparent}::ng-deep .ng-doc-search-dropdown{--ng-doc-overlay-border-radius: 0px !important}.ng-doc-search-option{display:block;padding:12px 36px;text-decoration:none}.ng-doc-search-option .ng-doc-search-option-header{display:flex;align-items:center}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag{text-transform:uppercase;margin-right:calc(var(--ng-doc-base-gutter) / 2);--ng-doc-font-weight: 900}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=guide]{--ng-doc-tag-color: var(--ng-doc-guide-tag-color);--ng-doc-tag-background: var(--ng-doc-guide-tag-background)}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=api]{--ng-doc-tag-color: var(--ng-doc-api-tag-color);--ng-doc-tag-background: var(--ng-doc-api-tag-background)}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs{--ng-doc-text: var(--ng-doc-text-muted);--ng-doc-font-size: 12px;--ng-doc-line-height: 16px;--ng-doc-font-weight: 600}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs .ng-doc-search-option-breadcrumb-divider{margin:0 6px}.ng-doc-search-option .ng-doc-search-section-title{display:block;color:var(--ng-doc-search-result-header-color, var(--ng-doc-text));--ng-doc-line-height: 20px;margin:4px 0}.ng-doc-search-option .ng-doc-search-content{display:block;color:var(--ng-doc-search-result-color, var(--ng-doc-text));--ng-doc-font-size: 14px;--ng-doc-line-height: 19px;--ng-doc-font-weight: 600}.ng-doc-search-empty{padding:0 22px}.ng-doc-search-progress{display:flex;align-items:center}.ng-doc-search-progress ng-doc-spinner{margin-right:var(--ng-doc-base-gutter)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i5.NgDocInputWrapperComponent, selector: "ng-doc-input-wrapper", inputs: ["blurContent", "blurContext", "leftContent", "rightContent", "align"] }, { kind: "directive", type: i5.NgDocInputStringDirective, selector: "input[ngDocInputString]" }, { kind: "component", type: i5.NgDocDropdownComponent, selector: "ng-doc-dropdown", inputs: ["content", "origin", "closeIfOutsideClick", "closeIfInnerClick", "withArrow", "borderOffset", "panelClass", "contactBorder", "hasBackdrop", "positions", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"] }, { kind: "directive", type: i5.NgDocDropdownOriginDirective, selector: "[ngDocDropdownOrigin]", exportAs: ["ngDocDropdownOrigin"] }, { kind: "directive", type: i5.NgDocFocusCatcherDirective, selector: "[ngDocFocusCatcher]", outputs: ["focusEvent", "blurEvent"], exportAs: ["ngDocFocusCatcher"] }, { kind: "component", type: i5.NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "size"] }, { kind: "component", type: i5.NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { kind: "directive", type: i5.NgDocAutofocusDirective, selector: "[ngDocAutofocus]", inputs: ["selectAll"] }, { kind: "component", type: i5.NgDocTagComponent, selector: "ng-doc-tag", inputs: ["color", "size", "mod"] }, { kind: "directive", type: i5.NgDocHotkeyDirective, selector: "[ngDocHotkey]", inputs: ["ngDocHotkey"], outputs: ["ngDocHotkey"] }, { kind: "component", type: i5.NgDocDataListComponent, selector: "ng-doc-data-list", inputs: ["autofocus", "items", "itemContent", "emptyContent", "itemDisabledFn", "defineValueFn", "trackByFn"] }, { kind: "component", type: i5.NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "directive", type: i5.NgDocLetDirective, selector: "[ngDocLet]", inputs: ["ngDocLet"] }, { kind: "component", type: i5.NgDocSpinnerComponent, selector: "ng-doc-spinner", inputs: ["size"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.NgDocHighlighterPipe, name: "ngDocHighlighterPipe" }, { kind: "pipe", type: i5.NgDocRunPipe, name: "ngDocRun" }, { kind: "pipe", type: i6.NgDocSanitizeHtmlPipe, name: "ngDocSanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
53
  NgDocSearchComponent = NgDocSearchComponent_1 = __decorate([
54
54
  UntilDestroy(),
55
55
  __metadata("design:paramtypes", [ElementRef,
@@ -63,7 +63,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
63
63
  provide: NgDocListHost,
64
64
  useExisting: NgDocSearchComponent,
65
65
  },
66
- ], template: "<ng-container *ngDocLet=\"search$ | async as state\">\n\t<ng-container *ngIf=\"mod === 'icon'; else searchInput\">\n\t\t<button ng-doc-button-icon size=\"large\" (click)=\"inputDropdown.toggle()\" ngDocDropdownOrigin>\n\t\t\t<ng-doc-icon icon=\"search\" [size]=\"24\"></ng-doc-icon>\n\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"dropdownContent\"\n\t\t\t\tpanelClass=\"ng-doc-search-dropdown\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"80vh\"\n\t\t\t\t#inputDropdown\n\t\t\t>\n\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t<div class=\"ng-doc-search-wrapper\">\n\t\t\t\t\t\t<ng-doc-input-wrapper [leftContent]=\"leftContent\" ngDocDropdownOrigin>\n\t\t\t\t\t\t\t<ng-template #leftContent>\n\t\t\t\t\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tngDocInputString\n\t\t\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t\t\t(ngModelChange)=\"query$.next($event)\"\n\t\t\t\t\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t\t\t\t\tngDocAutofocus\n\t\t\t\t\t\t\t\t[selectAll]=\"true\"\n\t\t\t\t\t\t\t\t#inputElement\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-doc-input-wrapper>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"searchResults\"></ng-container>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-dropdown>\n\t\t</button>\n\t</ng-container>\n\n\t<ng-template #searchInput>\n\t\t<ng-doc-input-wrapper\n\t\t\t[leftContent]=\"leftContent\"\n\t\t\t[rightContent]=\"rightContent\"\n\t\t\tngDocDropdownOrigin\n\t\t\tngDocFocusCatcher\n\t\t\t(focusEvent)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t(click)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t#input\n\t\t>\n\t\t\t<ng-template #leftContent>\n\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t</ng-template>\n\t\t\t<input\n\t\t\t\tngDocInputString\n\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t(ngModelChange)=\"query$.next($event); dropdown.open()\"\n\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t[ngDocHotkey]=\"{ctrlKey: false, altKey: false, shiftKey: false, code: 'Slash'}\"\n\t\t\t\t(ngDocHotkey)=\"inputElement.focus(); inputElement.select()\"\n\t\t\t\t#inputElement\n\t\t\t/>\n\t\t\t<ng-template #rightContent>\n\t\t\t\t<ng-doc-tag class=\"search-hotkey\">/</ng-doc-tag>\n\t\t\t</ng-template>\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"searchResults\"\n\t\t\t\t[width]=\"input.elementRef.nativeElement.offsetWidth\"\n\t\t\t\tmaxHeight=\"calc(95vh - var(--ng-doc-navbar-height)\"\n\t\t\t\t#dropdown\n\t\t\t>\n\t\t\t\t<\n\t\t\t</ng-doc-dropdown>\n\t\t</ng-doc-input-wrapper>\n\t</ng-template>\n\n\t<ng-template #searchResults>\n\t\t<div class=\"ng-doc-search-result-content\" [attr.data-ng-doc-mod]=\"mod\">\n\t\t\t<ng-doc-data-list [items]=\"state?.result ?? []\" [itemContent]=\"itemContent\" [emptyContent]=\"emptyContent\">\n\t\t\t\t<ng-template let-item #itemContent>\n\t\t\t\t\t<a class=\"ng-doc-search-option\" [routerLink]=\"item.index.route\" [fragment]=\"item.index.fragment\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-option-header\">\n\t\t\t\t\t\t\t<ng-doc-tag size=\"small\" [attr.data-ng-doc-page-type]=\"item.index.pageType\">\n\t\t\t\t\t\t\t\t{{ item.index.pageType }}\n\t\t\t\t\t\t\t</ng-doc-tag>\n\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumbs\" ng-doc-text>\n\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let breadcrum of item.index.breadcrumbs; let i = index\">\n\t\t\t\t\t\t\t\t\t<span>{{ breadcrum }}</span>\n\t\t\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumb-divider\" *ngIf=\"i !== item.index.breadcrumbs.length - 1\"\n\t\t\t\t\t\t\t\t\t\t>/</span\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<h5\n\t\t\t\t\t\t\tclass=\"ng-doc-search-section-title\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\t(item.index.section\n\t\t\t\t\t\t\t\t\t| ngDocHighlighterPipe: (getPositions | ngDocRun: 'section':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml) || item.index.title\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t></h5>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t*ngIf=\"item.index.content\"\n\t\t\t\t\t\t\tclass=\"ng-doc-search-content\"\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\titem.index.content | ngDocHighlighterPipe: (getPositions | ngDocRun: 'content':item) | ngDocSanitizeHtml\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</a>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template #emptyContent>\n\t\t\t\t\t<ng-container *ngIf=\"!state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-empty\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"query$.value.length\">Nothing found</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!query$.value.length\">Please enter your search query</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<ng-container *ngIf=\"state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-progress\">\n\t\t\t\t\t\t\t<ng-doc-spinner size=\"small\"></ng-doc-spinner>\n\t\t\t\t\t\t\tSearching...\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-data-list>\n\t\t</div>\n\t</ng-template>\n</ng-container>\n", styles: [":host{max-width:500px;--ng-doc-floated-border-radius: var(--ng-doc-base-gutter);--ng-doc-input-background-color: var(--ng-doc-base-1);--ng-doc-input-border: none;--ng-doc-input-border-hover: none;--ng-doc-icon-color: var(--ng-doc-base-8)}:host[data-ng-doc-mod=input]{width:100%}.ng-doc-search-result-content{height:100%;overflow:auto;--ng-doc-option-padding: 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-wrapper{padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-option{padding:12px 16px}.ng-doc-search-wrapper{display:flex;flex-direction:column;height:100%;padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-wrapper ng-doc-input-wrapper{padding:0 calc(var(--ng-doc-base-gutter) * 2)}.ng-doc-search-wrapper .ng-doc-search-result-content{padding:0;margin-top:calc(var(--ng-doc-base-gutter) * 3)}.search-hotkey{display:flex;align-items:center;justify-content:center;width:calc(var(--ng-doc-base-gutter) * 3);height:calc(var(--ng-doc-base-gutter) * 3);margin-right:var(--ng-doc-base-gutter);--ng-doc-tag-border: 1px solid var(--ng-doc-base-7);--ng-doc-tag-color: var(--ng-doc-base-7);--ng-doc-tag-background: transparent}::ng-deep .ng-doc-search-dropdown{--ng-doc-overlay-border-radius: 0px !important}.ng-doc-search-option{display:block;padding:12px 36px;text-decoration:none}.ng-doc-search-option .ng-doc-search-option-header{display:flex;align-items:center}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag{text-transform:uppercase;margin-right:calc(var(--ng-doc-base-gutter) / 2);--ng-doc-font-weight: 900}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=guide]{--ng-doc-tag-color: var(--ng-doc-guide-tag-color);--ng-doc-tag-background: var(--ng-doc-guide-tag-background)}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=api]{--ng-doc-tag-color: var(--ng-doc-api-tag-color);--ng-doc-tag-background: var(--ng-doc-api-tag-background)}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs{--ng-doc-text: var(--ng-doc-text-muted);--ng-doc-font-size: 12px;--ng-doc-line-height: 16px;--ng-doc-font-weight: 600}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs .ng-doc-search-option-breadcrumb-divider{margin:0 6px}.ng-doc-search-option .ng-doc-search-section-title{display:block;color:var(--ng-doc-search-result-header-color, var(--ng-doc-text));--ng-doc-line-height: 20px;margin:4px 0}.ng-doc-search-option .ng-doc-search-content{display:block;color:var(--ng-doc-search-result-color, var(--ng-doc-text));--ng-doc-font-size: 14px;--ng-doc-line-height: 19px;--ng-doc-font-weight: 600}.ng-doc-search-empty{padding:0 22px}.ng-doc-search-progress{display:flex;align-items:center}.ng-doc-search-progress ng-doc-spinner{margin-right:var(--ng-doc-base-gutter)}\n"] }]
66
+ ], template: "<ng-container *ngDocLet=\"search$ | async as state\">\n\t<ng-container *ngIf=\"mod === 'icon'; else searchInput\">\n\t\t<button ng-doc-button-icon size=\"large\" (click)=\"inputDropdown.toggle()\" ngDocDropdownOrigin>\n\t\t\t<ng-doc-icon icon=\"search\" [size]=\"24\"></ng-doc-icon>\n\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"dropdownContent\"\n\t\t\t\tpanelClass=\"ng-doc-search-dropdown\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"80vh\"\n\t\t\t\t#inputDropdown\n\t\t\t>\n\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t<div class=\"ng-doc-search-wrapper\">\n\t\t\t\t\t\t<ng-doc-input-wrapper [leftContent]=\"leftContent\" ngDocDropdownOrigin>\n\t\t\t\t\t\t\t<ng-template #leftContent>\n\t\t\t\t\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tngDocInputString\n\t\t\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t\t\t(ngModelChange)=\"query$.next($event)\"\n\t\t\t\t\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t\t\t\t\tngDocAutofocus\n\t\t\t\t\t\t\t\t[selectAll]=\"true\"\n\t\t\t\t\t\t\t\t#inputElement\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-doc-input-wrapper>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"searchResults\"></ng-container>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-dropdown>\n\t\t</button>\n\t</ng-container>\n\n\t<ng-template #searchInput>\n\t\t<ng-doc-input-wrapper\n\t\t\t[leftContent]=\"leftContent\"\n\t\t\t[rightContent]=\"rightContent\"\n\t\t\tngDocDropdownOrigin\n\t\t\tngDocFocusCatcher\n\t\t\t(focusEvent)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t(click)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t#input\n\t\t>\n\t\t\t<ng-template #leftContent>\n\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t</ng-template>\n\t\t\t<input\n\t\t\t\tngDocInputString\n\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t(ngModelChange)=\"query$.next($event); dropdown.open()\"\n\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t[ngDocHotkey]=\"{ctrlKey: false, altKey: false, shiftKey: false, code: 'Slash'}\"\n\t\t\t\t(ngDocHotkey)=\"inputElement.focus(); inputElement.select()\"\n\t\t\t\t#inputElement\n\t\t\t/>\n\t\t\t<ng-template #rightContent>\n\t\t\t\t<ng-doc-tag class=\"search-hotkey\">/</ng-doc-tag>\n\t\t\t</ng-template>\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"searchResults\"\n\t\t\t\tpositions=\"bottom-right\"\n\t\t\t\t[width]=\"input.elementRef.nativeElement.offsetWidth\"\n\t\t\t\tmaxHeight=\"calc(95vh - var(--ng-doc-navbar-height)\"\n\t\t\t\t#dropdown\n\t\t\t>\n\t\t\t\t<\n\t\t\t</ng-doc-dropdown>\n\t\t</ng-doc-input-wrapper>\n\t</ng-template>\n\n\t<ng-template #searchResults>\n\t\t<div class=\"ng-doc-search-result-content\" [attr.data-ng-doc-mod]=\"mod\">\n\t\t\t<ng-doc-data-list [items]=\"state?.result ?? []\" [itemContent]=\"itemContent\" [emptyContent]=\"emptyContent\">\n\t\t\t\t<ng-template let-item #itemContent>\n\t\t\t\t\t<a class=\"ng-doc-search-option\" [routerLink]=\"item.index.route\" [fragment]=\"item.index.fragment\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-option-header\">\n\t\t\t\t\t\t\t<ng-doc-tag size=\"small\" [attr.data-ng-doc-page-type]=\"item.index.pageType\">\n\t\t\t\t\t\t\t\t{{ item.index.pageType }}\n\t\t\t\t\t\t\t</ng-doc-tag>\n\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumbs\" ng-doc-text>\n\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let breadcrum of item.index.breadcrumbs; let i = index\">\n\t\t\t\t\t\t\t\t\t<span>{{ breadcrum }}</span>\n\t\t\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumb-divider\" *ngIf=\"i !== item.index.breadcrumbs.length - 1\"\n\t\t\t\t\t\t\t\t\t\t>/</span\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<h5\n\t\t\t\t\t\t\tclass=\"ng-doc-search-section-title\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\t(item.index.section\n\t\t\t\t\t\t\t\t\t| ngDocHighlighterPipe: (getPositions | ngDocRun: 'section':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml) || item.index.title\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t></h5>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t*ngIf=\"item.index.content\"\n\t\t\t\t\t\t\tclass=\"ng-doc-search-content\"\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\titem.index.content | ngDocHighlighterPipe: (getPositions | ngDocRun: 'content':item) | ngDocSanitizeHtml\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</a>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template #emptyContent>\n\t\t\t\t\t<ng-container *ngIf=\"!state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-empty\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"query$.value.length\">Nothing found</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!query$.value.length\">Please enter your search query</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<ng-container *ngIf=\"state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-progress\">\n\t\t\t\t\t\t\t<ng-doc-spinner size=\"small\"></ng-doc-spinner>\n\t\t\t\t\t\t\tSearching...\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-data-list>\n\t\t</div>\n\t</ng-template>\n</ng-container>\n", styles: [":host{max-width:500px;--ng-doc-floated-border-radius: var(--ng-doc-base-gutter);--ng-doc-input-background-color: var(--ng-doc-base-1);--ng-doc-input-border: none;--ng-doc-input-border-hover: none;--ng-doc-icon-color: var(--ng-doc-base-8)}:host[data-ng-doc-mod=input]{width:480px}.ng-doc-search-result-content{height:100%;overflow:auto;--ng-doc-option-padding: 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-wrapper{padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-result-content[data-ng-doc-mod=icon] .ng-doc-search-option{padding:12px 16px}.ng-doc-search-wrapper{display:flex;flex-direction:column;height:100%;padding:calc(var(--ng-doc-base-gutter) * 2) 0}.ng-doc-search-wrapper ng-doc-input-wrapper{padding:0 calc(var(--ng-doc-base-gutter) * 2)}.ng-doc-search-wrapper .ng-doc-search-result-content{padding:0;margin-top:calc(var(--ng-doc-base-gutter) * 3)}.search-hotkey{display:flex;align-items:center;justify-content:center;width:calc(var(--ng-doc-base-gutter) * 3);height:calc(var(--ng-doc-base-gutter) * 3);margin-right:var(--ng-doc-base-gutter);--ng-doc-tag-border: 1px solid var(--ng-doc-base-7);--ng-doc-tag-color: var(--ng-doc-base-7);--ng-doc-tag-background: transparent}::ng-deep .ng-doc-search-dropdown{--ng-doc-overlay-border-radius: 0px !important}.ng-doc-search-option{display:block;padding:12px 36px;text-decoration:none}.ng-doc-search-option .ng-doc-search-option-header{display:flex;align-items:center}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag{text-transform:uppercase;margin-right:calc(var(--ng-doc-base-gutter) / 2);--ng-doc-font-weight: 900}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=guide]{--ng-doc-tag-color: var(--ng-doc-guide-tag-color);--ng-doc-tag-background: var(--ng-doc-guide-tag-background)}.ng-doc-search-option .ng-doc-search-option-header ng-doc-tag[data-ng-doc-page-type=api]{--ng-doc-tag-color: var(--ng-doc-api-tag-color);--ng-doc-tag-background: var(--ng-doc-api-tag-background)}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs{--ng-doc-text: var(--ng-doc-text-muted);--ng-doc-font-size: 12px;--ng-doc-line-height: 16px;--ng-doc-font-weight: 600}.ng-doc-search-option .ng-doc-search-option-header .ng-doc-search-option-breadcrumbs .ng-doc-search-option-breadcrumb-divider{margin:0 6px}.ng-doc-search-option .ng-doc-search-section-title{display:block;color:var(--ng-doc-search-result-header-color, var(--ng-doc-text));--ng-doc-line-height: 20px;margin:4px 0}.ng-doc-search-option .ng-doc-search-content{display:block;color:var(--ng-doc-search-result-color, var(--ng-doc-text));--ng-doc-font-size: 14px;--ng-doc-line-height: 19px;--ng-doc-font-weight: 600}.ng-doc-search-empty{padding:0 22px}.ng-doc-search-progress{display:flex;align-items:center}.ng-doc-search-progress ng-doc-spinner{margin-right:var(--ng-doc-base-gutter)}\n"] }]
67
67
  }], ctorParameters: function () {
68
68
  return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.NgDocSearchEngine, decorators: [{
69
69
  type: Optional
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-components-search.mjs","sources":["../../../../libs/app/components/search/search.component.ts","../../../../libs/app/components/search/search.component.html","../../../../libs/app/components/search/search.module.ts","../../../../libs/app/components/search/ng-doc-app-components-search.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tElementRef,\n\tHostBinding,\n\tInput,\n\tOptional,\n\tViewChild,\n} from '@angular/core';\nimport {NgDocSearchEngine} from '@ng-doc/app/classes/search-engine';\nimport {NgDocSearchResult} from '@ng-doc/app/interfaces';\nimport {NgDocPageType} from '@ng-doc/core';\nimport {NgDocHighlightPosition, observableState, StatedObservable} from '@ng-doc/ui-kit';\nimport {NgDocListHost} from '@ng-doc/ui-kit/classes';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {BehaviorSubject, NEVER, ReplaySubject, Subject} from 'rxjs';\nimport {filter, skip, switchMap} from 'rxjs/operators';\n\n@Component({\n\tselector: 'ng-doc-search',\n\ttemplateUrl: './search.component.html',\n\tstyleUrls: ['./search.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NgDocListHost,\n\t\t\tuseExisting: NgDocSearchComponent,\n\t\t},\n\t],\n})\n@UntilDestroy()\nexport class NgDocSearchComponent implements NgDocListHost {\n\t@Input()\n\t@HostBinding('attr.data-ng-doc-mod')\n\tmod: 'input' | 'icon' = 'input';\n\n\t@ViewChild('inputElement')\n\tinputElement?: ElementRef<HTMLElement>;\n\n\tsearchTerm: string = '';\n\n\treadonly query$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n\treadonly search$: StatedObservable<NgDocSearchResult[]>;\n\n\tconstructor(\n\t\tprivate readonly elementRef: ElementRef<HTMLElement>,\n\t\tprivate readonly changeDetectorRef: ChangeDetectorRef,\n\t\t@Optional()\n\t\tprivate readonly searchEngine?: NgDocSearchEngine,\n\t) {\n\t\tif (!this.searchEngine) {\n\t\t\tthrow new Error(`NgDoc: Search engine is not provided,\n\t\t\tplease check this article: https://ng-doc.com/getting-started/installation#importing-global-modules\n\t\t\tto learn how to provide it.`);\n\t\t}\n\n\t\tthis.search$ = this.query$.pipe(\n\t\t\tskip(1),\n\t\t\tswitchMap((term: string) => this.searchEngine?.search(term).pipe(observableState()) ?? NEVER),\n\t\t\tuntilDestroyed(this),\n\t\t);\n\t}\n\n\tget listHostOrigin(): ElementRef<HTMLElement> {\n\t\treturn this.inputElement ?? this.elementRef;\n\t}\n\n\tgetPositions<T extends NgDocSearchResult, K extends keyof T['positions']>(key: K, item: T): NgDocHighlightPosition[] {\n\t\treturn item.positions[key] ?? [];\n\t}\n}\n","<ng-container *ngDocLet=\"search$ | async as state\">\n\t<ng-container *ngIf=\"mod === 'icon'; else searchInput\">\n\t\t<button ng-doc-button-icon size=\"large\" (click)=\"inputDropdown.toggle()\" ngDocDropdownOrigin>\n\t\t\t<ng-doc-icon icon=\"search\" [size]=\"24\"></ng-doc-icon>\n\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"dropdownContent\"\n\t\t\t\tpanelClass=\"ng-doc-search-dropdown\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"80vh\"\n\t\t\t\t#inputDropdown\n\t\t\t>\n\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t<div class=\"ng-doc-search-wrapper\">\n\t\t\t\t\t\t<ng-doc-input-wrapper [leftContent]=\"leftContent\" ngDocDropdownOrigin>\n\t\t\t\t\t\t\t<ng-template #leftContent>\n\t\t\t\t\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tngDocInputString\n\t\t\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t\t\t(ngModelChange)=\"query$.next($event)\"\n\t\t\t\t\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t\t\t\t\tngDocAutofocus\n\t\t\t\t\t\t\t\t[selectAll]=\"true\"\n\t\t\t\t\t\t\t\t#inputElement\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-doc-input-wrapper>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"searchResults\"></ng-container>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-dropdown>\n\t\t</button>\n\t</ng-container>\n\n\t<ng-template #searchInput>\n\t\t<ng-doc-input-wrapper\n\t\t\t[leftContent]=\"leftContent\"\n\t\t\t[rightContent]=\"rightContent\"\n\t\t\tngDocDropdownOrigin\n\t\t\tngDocFocusCatcher\n\t\t\t(focusEvent)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t(click)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t#input\n\t\t>\n\t\t\t<ng-template #leftContent>\n\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t</ng-template>\n\t\t\t<input\n\t\t\t\tngDocInputString\n\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t(ngModelChange)=\"query$.next($event); dropdown.open()\"\n\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t[ngDocHotkey]=\"{ctrlKey: false, altKey: false, shiftKey: false, code: 'Slash'}\"\n\t\t\t\t(ngDocHotkey)=\"inputElement.focus(); inputElement.select()\"\n\t\t\t\t#inputElement\n\t\t\t/>\n\t\t\t<ng-template #rightContent>\n\t\t\t\t<ng-doc-tag class=\"search-hotkey\">/</ng-doc-tag>\n\t\t\t</ng-template>\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"searchResults\"\n\t\t\t\t[width]=\"input.elementRef.nativeElement.offsetWidth\"\n\t\t\t\tmaxHeight=\"calc(95vh - var(--ng-doc-navbar-height)\"\n\t\t\t\t#dropdown\n\t\t\t>\n\t\t\t\t<\n\t\t\t</ng-doc-dropdown>\n\t\t</ng-doc-input-wrapper>\n\t</ng-template>\n\n\t<ng-template #searchResults>\n\t\t<div class=\"ng-doc-search-result-content\" [attr.data-ng-doc-mod]=\"mod\">\n\t\t\t<ng-doc-data-list [items]=\"state?.result ?? []\" [itemContent]=\"itemContent\" [emptyContent]=\"emptyContent\">\n\t\t\t\t<ng-template let-item #itemContent>\n\t\t\t\t\t<a class=\"ng-doc-search-option\" [routerLink]=\"item.index.route\" [fragment]=\"item.index.fragment\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-option-header\">\n\t\t\t\t\t\t\t<ng-doc-tag size=\"small\" [attr.data-ng-doc-page-type]=\"item.index.pageType\">\n\t\t\t\t\t\t\t\t{{ item.index.pageType }}\n\t\t\t\t\t\t\t</ng-doc-tag>\n\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumbs\" ng-doc-text>\n\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let breadcrum of item.index.breadcrumbs; let i = index\">\n\t\t\t\t\t\t\t\t\t<span>{{ breadcrum }}</span>\n\t\t\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumb-divider\" *ngIf=\"i !== item.index.breadcrumbs.length - 1\"\n\t\t\t\t\t\t\t\t\t\t>/</span\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<h5\n\t\t\t\t\t\t\tclass=\"ng-doc-search-section-title\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\t(item.index.section\n\t\t\t\t\t\t\t\t\t| ngDocHighlighterPipe: (getPositions | ngDocRun: 'section':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml) || item.index.title\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t></h5>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t*ngIf=\"item.index.content\"\n\t\t\t\t\t\t\tclass=\"ng-doc-search-content\"\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\titem.index.content | ngDocHighlighterPipe: (getPositions | ngDocRun: 'content':item) | ngDocSanitizeHtml\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</a>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template #emptyContent>\n\t\t\t\t\t<ng-container *ngIf=\"!state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-empty\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"query$.value.length\">Nothing found</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!query$.value.length\">Please enter your search query</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<ng-container *ngIf=\"state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-progress\">\n\t\t\t\t\t\t\t<ng-doc-spinner size=\"small\"></ng-doc-spinner>\n\t\t\t\t\t\t\tSearching...\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-data-list>\n\t\t</div>\n\t</ng-template>\n</ng-container>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {NgDocSanitizeHtmlModule} from '@ng-doc/app/pipes';\nimport {\n\tNgDocAutofocusModule,\n\tNgDocBindModule,\n\tNgDocButtonIconModule,\n\tNgDocDataListModule,\n\tNgDocDropdownModule,\n\tNgDocDropdownOriginModule,\n\tNgDocFocusCatcherModule,\n\tNgDocHighlighterModule,\n\tNgDocHotkeyModule,\n\tNgDocIconModule,\n\tNgDocInputStringModule,\n\tNgDocInputWrapperModule,\n\tNgDocLetModule,\n\tNgDocRunModule,\n\tNgDocSpinnerModule,\n\tNgDocTagModule,\n\tNgDocTextModule,\n} from '@ng-doc/ui-kit';\n\nimport {NgDocSearchComponent} from './search.component';\n\n@NgModule({\n\tdeclarations: [NgDocSearchComponent],\n\timports: [\n\t\tCommonModule,\n\t\tFormsModule,\n\t\tRouterModule,\n\t\tNgDocInputWrapperModule,\n\t\tNgDocInputStringModule,\n\t\tNgDocDropdownModule,\n\t\tNgDocDropdownOriginModule,\n\t\tNgDocFocusCatcherModule,\n\t\tNgDocIconModule,\n\t\tNgDocButtonIconModule,\n\t\tNgDocAutofocusModule,\n\t\tNgDocTagModule,\n\t\tNgDocHotkeyModule,\n\t\tNgDocDataListModule,\n\t\tNgDocHighlighterModule,\n\t\tNgDocTextModule,\n\t\tNgDocLetModule,\n\t\tNgDocRunModule,\n\t\tNgDocBindModule,\n\t\tNgDocSanitizeHtmlModule,\n\t\tNgDocSpinnerModule,\n\t],\n\texports: [NgDocSearchComponent],\n})\nexport class NgDocSearchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-doc-app-components-search.mjs","sources":["../../../../libs/app/components/search/search.component.ts","../../../../libs/app/components/search/search.component.html","../../../../libs/app/components/search/search.module.ts","../../../../libs/app/components/search/ng-doc-app-components-search.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tElementRef,\n\tHostBinding,\n\tInput,\n\tOptional,\n\tViewChild,\n} from '@angular/core';\nimport {NgDocSearchEngine} from '@ng-doc/app/classes/search-engine';\nimport {NgDocSearchResult} from '@ng-doc/app/interfaces';\nimport {NgDocPageType} from '@ng-doc/core';\nimport {NgDocHighlightPosition, observableState, StatedObservable} from '@ng-doc/ui-kit';\nimport {NgDocListHost} from '@ng-doc/ui-kit/classes';\nimport {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';\nimport {BehaviorSubject, NEVER, ReplaySubject, Subject} from 'rxjs';\nimport {filter, skip, switchMap} from 'rxjs/operators';\n\n@Component({\n\tselector: 'ng-doc-search',\n\ttemplateUrl: './search.component.html',\n\tstyleUrls: ['./search.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NgDocListHost,\n\t\t\tuseExisting: NgDocSearchComponent,\n\t\t},\n\t],\n})\n@UntilDestroy()\nexport class NgDocSearchComponent implements NgDocListHost {\n\t@Input()\n\t@HostBinding('attr.data-ng-doc-mod')\n\tmod: 'input' | 'icon' = 'input';\n\n\t@ViewChild('inputElement')\n\tinputElement?: ElementRef<HTMLElement>;\n\n\tsearchTerm: string = '';\n\n\treadonly query$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n\treadonly search$: StatedObservable<NgDocSearchResult[]>;\n\n\tconstructor(\n\t\tprivate readonly elementRef: ElementRef<HTMLElement>,\n\t\tprivate readonly changeDetectorRef: ChangeDetectorRef,\n\t\t@Optional()\n\t\tprivate readonly searchEngine?: NgDocSearchEngine,\n\t) {\n\t\tif (!this.searchEngine) {\n\t\t\tthrow new Error(`NgDoc: Search engine is not provided,\n\t\t\tplease check this article: https://ng-doc.com/getting-started/installation#importing-global-modules\n\t\t\tto learn how to provide it.`);\n\t\t}\n\n\t\tthis.search$ = this.query$.pipe(\n\t\t\tskip(1),\n\t\t\tswitchMap((term: string) => this.searchEngine?.search(term).pipe(observableState()) ?? NEVER),\n\t\t\tuntilDestroyed(this),\n\t\t);\n\t}\n\n\tget listHostOrigin(): ElementRef<HTMLElement> {\n\t\treturn this.inputElement ?? this.elementRef;\n\t}\n\n\tgetPositions<T extends NgDocSearchResult, K extends keyof T['positions']>(key: K, item: T): NgDocHighlightPosition[] {\n\t\treturn item.positions[key] ?? [];\n\t}\n}\n","<ng-container *ngDocLet=\"search$ | async as state\">\n\t<ng-container *ngIf=\"mod === 'icon'; else searchInput\">\n\t\t<button ng-doc-button-icon size=\"large\" (click)=\"inputDropdown.toggle()\" ngDocDropdownOrigin>\n\t\t\t<ng-doc-icon icon=\"search\" [size]=\"24\"></ng-doc-icon>\n\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"dropdownContent\"\n\t\t\t\tpanelClass=\"ng-doc-search-dropdown\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"80vh\"\n\t\t\t\t#inputDropdown\n\t\t\t>\n\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t<div class=\"ng-doc-search-wrapper\">\n\t\t\t\t\t\t<ng-doc-input-wrapper [leftContent]=\"leftContent\" ngDocDropdownOrigin>\n\t\t\t\t\t\t\t<ng-template #leftContent>\n\t\t\t\t\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tngDocInputString\n\t\t\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t\t\t(ngModelChange)=\"query$.next($event)\"\n\t\t\t\t\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t\t\t\t\tngDocAutofocus\n\t\t\t\t\t\t\t\t[selectAll]=\"true\"\n\t\t\t\t\t\t\t\t#inputElement\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-doc-input-wrapper>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"searchResults\"></ng-container>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-dropdown>\n\t\t</button>\n\t</ng-container>\n\n\t<ng-template #searchInput>\n\t\t<ng-doc-input-wrapper\n\t\t\t[leftContent]=\"leftContent\"\n\t\t\t[rightContent]=\"rightContent\"\n\t\t\tngDocDropdownOrigin\n\t\t\tngDocFocusCatcher\n\t\t\t(focusEvent)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t(click)=\"inputElement.value ? dropdown.open() : null\"\n\t\t\t#input\n\t\t>\n\t\t\t<ng-template #leftContent>\n\t\t\t\t<ng-doc-icon icon=\"search\"></ng-doc-icon>\n\t\t\t</ng-template>\n\t\t\t<input\n\t\t\t\tngDocInputString\n\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t(ngModelChange)=\"query$.next($event); dropdown.open()\"\n\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t[ngDocHotkey]=\"{ctrlKey: false, altKey: false, shiftKey: false, code: 'Slash'}\"\n\t\t\t\t(ngDocHotkey)=\"inputElement.focus(); inputElement.select()\"\n\t\t\t\t#inputElement\n\t\t\t/>\n\t\t\t<ng-template #rightContent>\n\t\t\t\t<ng-doc-tag class=\"search-hotkey\">/</ng-doc-tag>\n\t\t\t</ng-template>\n\t\t\t<ng-doc-dropdown\n\t\t\t\t[content]=\"searchResults\"\n\t\t\t\tpositions=\"bottom-right\"\n\t\t\t\t[width]=\"input.elementRef.nativeElement.offsetWidth\"\n\t\t\t\tmaxHeight=\"calc(95vh - var(--ng-doc-navbar-height)\"\n\t\t\t\t#dropdown\n\t\t\t>\n\t\t\t\t<\n\t\t\t</ng-doc-dropdown>\n\t\t</ng-doc-input-wrapper>\n\t</ng-template>\n\n\t<ng-template #searchResults>\n\t\t<div class=\"ng-doc-search-result-content\" [attr.data-ng-doc-mod]=\"mod\">\n\t\t\t<ng-doc-data-list [items]=\"state?.result ?? []\" [itemContent]=\"itemContent\" [emptyContent]=\"emptyContent\">\n\t\t\t\t<ng-template let-item #itemContent>\n\t\t\t\t\t<a class=\"ng-doc-search-option\" [routerLink]=\"item.index.route\" [fragment]=\"item.index.fragment\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-option-header\">\n\t\t\t\t\t\t\t<ng-doc-tag size=\"small\" [attr.data-ng-doc-page-type]=\"item.index.pageType\">\n\t\t\t\t\t\t\t\t{{ item.index.pageType }}\n\t\t\t\t\t\t\t</ng-doc-tag>\n\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumbs\" ng-doc-text>\n\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let breadcrum of item.index.breadcrumbs; let i = index\">\n\t\t\t\t\t\t\t\t\t<span>{{ breadcrum }}</span>\n\t\t\t\t\t\t\t\t\t<span class=\"ng-doc-search-option-breadcrumb-divider\" *ngIf=\"i !== item.index.breadcrumbs.length - 1\"\n\t\t\t\t\t\t\t\t\t\t>/</span\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<h5\n\t\t\t\t\t\t\tclass=\"ng-doc-search-section-title\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\t(item.index.section\n\t\t\t\t\t\t\t\t\t| ngDocHighlighterPipe: (getPositions | ngDocRun: 'section':item)\n\t\t\t\t\t\t\t\t\t| ngDocSanitizeHtml) || item.index.title\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t></h5>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t*ngIf=\"item.index.content\"\n\t\t\t\t\t\t\tclass=\"ng-doc-search-content\"\n\t\t\t\t\t\t\t[innerHTML]=\"\n\t\t\t\t\t\t\t\titem.index.content | ngDocHighlighterPipe: (getPositions | ngDocRun: 'content':item) | ngDocSanitizeHtml\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\tng-doc-text\n\t\t\t\t\t\t></div>\n\t\t\t\t\t</a>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template #emptyContent>\n\t\t\t\t\t<ng-container *ngIf=\"!state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-empty\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"query$.value.length\">Nothing found</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!query$.value.length\">Please enter your search query</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<ng-container *ngIf=\"state?.pending\">\n\t\t\t\t\t\t<div class=\"ng-doc-search-progress\">\n\t\t\t\t\t\t\t<ng-doc-spinner size=\"small\"></ng-doc-spinner>\n\t\t\t\t\t\t\tSearching...\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</ng-template>\n\t\t\t</ng-doc-data-list>\n\t\t</div>\n\t</ng-template>\n</ng-container>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {NgDocSanitizeHtmlModule} from '@ng-doc/app/pipes';\nimport {\n\tNgDocAutofocusModule,\n\tNgDocBindModule,\n\tNgDocButtonIconModule,\n\tNgDocDataListModule,\n\tNgDocDropdownModule,\n\tNgDocDropdownOriginModule,\n\tNgDocFocusCatcherModule,\n\tNgDocHighlighterModule,\n\tNgDocHotkeyModule,\n\tNgDocIconModule,\n\tNgDocInputStringModule,\n\tNgDocInputWrapperModule,\n\tNgDocLetModule,\n\tNgDocRunModule,\n\tNgDocSpinnerModule,\n\tNgDocTagModule,\n\tNgDocTextModule,\n} from '@ng-doc/ui-kit';\n\nimport {NgDocSearchComponent} from './search.component';\n\n@NgModule({\n\tdeclarations: [NgDocSearchComponent],\n\timports: [\n\t\tCommonModule,\n\t\tFormsModule,\n\t\tRouterModule,\n\t\tNgDocInputWrapperModule,\n\t\tNgDocInputStringModule,\n\t\tNgDocDropdownModule,\n\t\tNgDocDropdownOriginModule,\n\t\tNgDocFocusCatcherModule,\n\t\tNgDocIconModule,\n\t\tNgDocButtonIconModule,\n\t\tNgDocAutofocusModule,\n\t\tNgDocTagModule,\n\t\tNgDocHotkeyModule,\n\t\tNgDocDataListModule,\n\t\tNgDocHighlighterModule,\n\t\tNgDocTextModule,\n\t\tNgDocLetModule,\n\t\tNgDocRunModule,\n\t\tNgDocBindModule,\n\t\tNgDocSanitizeHtmlModule,\n\t\tNgDocSpinnerModule,\n\t],\n\texports: [NgDocSearchComponent],\n})\nexport class NgDocSearchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ class NgDocThemeToggleComponent {
26
26
  }
27
27
  }
28
28
  NgDocThemeToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgDocThemeToggleComponent, deps: [{ token: i1.NgDocThemeService }], target: i0.ɵɵFactoryTarget.Component });
29
- NgDocThemeToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: NgDocThemeToggleComponent, selector: "ng-doc-theme-toggle", ngImport: i0, template: "<button ng-doc-button-icon size=\"large\" (click)=\"toggleTheme()\" ngDocTooltip=\"Toggle theme\">\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"sun\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"!nextTheme?.id\"\n\t></ng-doc-icon>\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"moon\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"nextTheme?.id === themes[0]?.id\"\n\t></ng-doc-icon>\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"circle\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"nextTheme?.id === themes[1]?.id\"\n\t></ng-doc-icon>\n</button>\n", styles: [":host{display:inline-block;height:40px;width:40px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: i3.NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { kind: "component", type: i3.NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "size"] }], animations: [
29
+ NgDocThemeToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: NgDocThemeToggleComponent, selector: "ng-doc-theme-toggle", ngImport: i0, template: "<button ng-doc-button-icon size=\"large\" (click)=\"toggleTheme()\" ngDocTooltip=\"Toggle Theme\">\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"sun\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"!nextTheme?.id\"\n\t></ng-doc-icon>\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"moon\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"nextTheme?.id === themes[0]?.id\"\n\t></ng-doc-icon>\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"circle\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"nextTheme?.id === themes[1]?.id\"\n\t></ng-doc-icon>\n</button>\n", styles: [":host{display:inline-block;height:40px;width:40px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: i3.NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { kind: "component", type: i3.NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "size"] }], animations: [
30
30
  trigger('switchIcon', [
31
31
  transition(':enter', [
32
32
  style({ transform: 'translateX({{from}})', position: 'absolute', opacity: 0 }),
@@ -51,7 +51,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
51
51
  animate('225ms cubic-bezier(0.4,0.0,0.2,1)', style({ transform: 'translateX({{to}})', position: 'absolute', opacity: 0 })),
52
52
  ], { params: { to: '-100%' } }),
53
53
  ]),
54
- ], selector: 'ng-doc-theme-toggle', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button ng-doc-button-icon size=\"large\" (click)=\"toggleTheme()\" ngDocTooltip=\"Toggle theme\">\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"sun\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"!nextTheme?.id\"\n\t></ng-doc-icon>\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"moon\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"nextTheme?.id === themes[0]?.id\"\n\t></ng-doc-icon>\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"circle\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"nextTheme?.id === themes[1]?.id\"\n\t></ng-doc-icon>\n</button>\n", styles: [":host{display:inline-block;height:40px;width:40px}\n"] }]
54
+ ], selector: 'ng-doc-theme-toggle', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button ng-doc-button-icon size=\"large\" (click)=\"toggleTheme()\" ngDocTooltip=\"Toggle Theme\">\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"sun\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"!nextTheme?.id\"\n\t></ng-doc-icon>\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"moon\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"nextTheme?.id === themes[0]?.id\"\n\t></ng-doc-icon>\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"circle\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"nextTheme?.id === themes[1]?.id\"\n\t></ng-doc-icon>\n</button>\n", styles: [":host{display:inline-block;height:40px;width:40px}\n"] }]
55
55
  }], ctorParameters: function () { return [{ type: i1.NgDocThemeService }]; } });
56
56
 
57
57
  class NgDocThemeToggleModule {
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-components-theme-toggle.mjs","sources":["../../../../libs/app/components/theme-toggle/theme-toggle.component.ts","../../../../libs/app/components/theme-toggle/theme-toggle.component.html","../../../../libs/app/components/theme-toggle/theme-toggle.module.ts","../../../../libs/app/components/theme-toggle/ng-doc-app-components-theme-toggle.ts"],"sourcesContent":["import {animate, style, transition, trigger} from '@angular/animations';\nimport {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {NG_DOC_DARK_PURPLE_THEME, NG_DOC_NIGHT_THEME} from '@ng-doc/app/constants';\nimport {NgDocTheme} from '@ng-doc/app/interfaces';\nimport {NgDocThemeService} from '@ng-doc/app/services';\n\n@Component({\n\tanimations: [\n\t\ttrigger('switchIcon', [\n\t\t\ttransition(\n\t\t\t\t':enter',\n\t\t\t\t[\n\t\t\t\t\tstyle({transform: 'translateX({{from}})', position: 'absolute', opacity: 0}),\n\t\t\t\t\tanimate(\n\t\t\t\t\t\t'225ms cubic-bezier(0.4,0.0,0.2,1)',\n\t\t\t\t\t\tstyle({transform: 'translateX(0%)', position: 'absolute', opacity: 1}),\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t\t{params: {from: '-100%'}},\n\t\t\t),\n\t\t\ttransition(\n\t\t\t\t':leave',\n\t\t\t\t[\n\t\t\t\t\tstyle({transform: 'translateX(0%)', position: 'absolute', opacity: 1}),\n\t\t\t\t\tanimate(\n\t\t\t\t\t\t'225ms cubic-bezier(0.4,0.0,0.2,1)',\n\t\t\t\t\t\tstyle({transform: 'translateX({{to}})', position: 'absolute', opacity: 0}),\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t\t{params: {to: '-100%'}},\n\t\t\t),\n\t\t]),\n\t],\n\tselector: 'ng-doc-theme-toggle',\n\ttemplateUrl: './theme-toggle.component.html',\n\tstyleUrls: ['./theme-toggle.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgDocThemeToggleComponent {\n\tprotected readonly themes: Array<NgDocTheme | undefined> = [\n\t\tNG_DOC_NIGHT_THEME,\n\t\tNG_DOC_DARK_PURPLE_THEME,\n\t\tundefined,\n\t];\n\n\tconstructor(protected readonly themeService: NgDocThemeService) {}\n\n\tget nextTheme(): NgDocTheme | undefined {\n\t\treturn this.themes[(this.themes.indexOf(this.themeService.currentTheme) + 1) % this.themes.length];\n\t}\n\n\ttoggleTheme(): void {\n\t\tthis.themeService.set(this.nextTheme?.id);\n\t}\n}\n","<button ng-doc-button-icon size=\"large\" (click)=\"toggleTheme()\" ngDocTooltip=\"Toggle theme\">\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"sun\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"!nextTheme?.id\"\n\t></ng-doc-icon>\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"moon\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"nextTheme?.id === themes[0]?.id\"\n\t></ng-doc-icon>\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"circle\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"nextTheme?.id === themes[1]?.id\"\n\t></ng-doc-icon>\n</button>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {NgDocButtonIconModule, NgDocIconModule, NgDocTooltipModule} from '@ng-doc/ui-kit';\n\nimport {NgDocThemeToggleComponent} from './theme-toggle.component';\n\n@NgModule({\n\tdeclarations: [NgDocThemeToggleComponent],\n\timports: [CommonModule, NgDocTooltipModule, NgDocButtonIconModule, NgDocIconModule],\n\texports: [NgDocThemeToggleComponent],\n})\nexport class NgDocThemeToggleModule {}\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-theme-toggle.mjs","sources":["../../../../libs/app/components/theme-toggle/theme-toggle.component.ts","../../../../libs/app/components/theme-toggle/theme-toggle.component.html","../../../../libs/app/components/theme-toggle/theme-toggle.module.ts","../../../../libs/app/components/theme-toggle/ng-doc-app-components-theme-toggle.ts"],"sourcesContent":["import {animate, style, transition, trigger} from '@angular/animations';\nimport {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {NG_DOC_DARK_PURPLE_THEME, NG_DOC_NIGHT_THEME} from '@ng-doc/app/constants';\nimport {NgDocTheme} from '@ng-doc/app/interfaces';\nimport {NgDocThemeService} from '@ng-doc/app/services';\n\n@Component({\n\tanimations: [\n\t\ttrigger('switchIcon', [\n\t\t\ttransition(\n\t\t\t\t':enter',\n\t\t\t\t[\n\t\t\t\t\tstyle({transform: 'translateX({{from}})', position: 'absolute', opacity: 0}),\n\t\t\t\t\tanimate(\n\t\t\t\t\t\t'225ms cubic-bezier(0.4,0.0,0.2,1)',\n\t\t\t\t\t\tstyle({transform: 'translateX(0%)', position: 'absolute', opacity: 1}),\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t\t{params: {from: '-100%'}},\n\t\t\t),\n\t\t\ttransition(\n\t\t\t\t':leave',\n\t\t\t\t[\n\t\t\t\t\tstyle({transform: 'translateX(0%)', position: 'absolute', opacity: 1}),\n\t\t\t\t\tanimate(\n\t\t\t\t\t\t'225ms cubic-bezier(0.4,0.0,0.2,1)',\n\t\t\t\t\t\tstyle({transform: 'translateX({{to}})', position: 'absolute', opacity: 0}),\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t\t{params: {to: '-100%'}},\n\t\t\t),\n\t\t]),\n\t],\n\tselector: 'ng-doc-theme-toggle',\n\ttemplateUrl: './theme-toggle.component.html',\n\tstyleUrls: ['./theme-toggle.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgDocThemeToggleComponent {\n\tprotected readonly themes: Array<NgDocTheme | undefined> = [\n\t\tNG_DOC_NIGHT_THEME,\n\t\tNG_DOC_DARK_PURPLE_THEME,\n\t\tundefined,\n\t];\n\n\tconstructor(protected readonly themeService: NgDocThemeService) {}\n\n\tget nextTheme(): NgDocTheme | undefined {\n\t\treturn this.themes[(this.themes.indexOf(this.themeService.currentTheme) + 1) % this.themes.length];\n\t}\n\n\ttoggleTheme(): void {\n\t\tthis.themeService.set(this.nextTheme?.id);\n\t}\n}\n","<button ng-doc-button-icon size=\"large\" (click)=\"toggleTheme()\" ngDocTooltip=\"Toggle Theme\">\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"sun\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"!nextTheme?.id\"\n\t></ng-doc-icon>\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"moon\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"nextTheme?.id === themes[0]?.id\"\n\t></ng-doc-icon>\n\t<ng-doc-icon\n\t\t[@switchIcon]=\"{value: ':enter', params: {from: '-100%', to: '100%'}}\"\n\t\ticon=\"circle\"\n\t\t[size]=\"24\"\n\t\t*ngIf=\"nextTheme?.id === themes[1]?.id\"\n\t></ng-doc-icon>\n</button>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {NgDocButtonIconModule, NgDocIconModule, NgDocTooltipModule} from '@ng-doc/ui-kit';\n\nimport {NgDocThemeToggleComponent} from './theme-toggle.component';\n\n@NgModule({\n\tdeclarations: [NgDocThemeToggleComponent],\n\timports: [CommonModule, NgDocTooltipModule, NgDocButtonIconModule, NgDocIconModule],\n\texports: [NgDocThemeToggleComponent],\n})\nexport class NgDocThemeToggleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const NG_DOC_STORE_THEME_KEY = 'ng-doc-theme';
1
+ const NG_DOC_STORE_THEME_KEY = 'ng-doc-theme-id';
2
2
 
3
3
  /**
4
4
  * Dark theme. You can set it manually by calling `NgDocThemeService.setTheme` method.
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-constants.mjs","sources":["../../../../libs/app/constants/store-keys.ts","../../../../libs/app/constants/themes.ts","../../../../libs/app/constants/ng-doc-app-constants.ts"],"sourcesContent":["export const NG_DOC_STORE_THEME_KEY: string = 'ng-doc-theme';\n","import {NgDocTheme} from '@ng-doc/app/interfaces';\n\n/**\n * Dark theme. You can set it manually by calling `NgDocThemeService.setTheme` method.\n *\n * ```typescript\n * import {Component} from '@angular/core';\n * import {NgDocThemeService, NG_DOC_NIGHT_THEME} from '@ng-doc/app';\n *\n * @Component()\n * export class AppComponent {\n * \tconstructor(\n * \t private readonly themeService: NgDocThemeService,\n * \t) {\n * \t this.themeService.setTheme(NG_DOC_NIGHT_THEME.id);\n * \t}\n * }\n * ```\n *\n * Or you can set it as default theme in your app module:\n * ```typescript\n * import {NgModule} from '@angular/core';\n * import {NgDocModule, NG_DOC_NIGHT_THEME} from '@ng-doc/app';\n * import {AppComponent} from './app.component';\n *\n * @NgModule({\n * \tdeclarations: [AppComponent],\n * \timports: [NgDocModule.forRoot({defaultTheme: NG_DOC_NIGHT_THEME.id})],\n * \tbootstrap: [AppComponent],\n * })\n * export class AppModule {}\n * ```\n */\nexport const NG_DOC_NIGHT_THEME: NgDocTheme = {id: 'ng-doc-night', path: 'assets/ng-doc/app/themes/ng-doc-night.css'};\n\n/**\n * Dark purple theme. You can set it manually by calling `NgDocThemeService.setTheme` method.\n *\n * ```typescript\n * import {Component} from '@angular/core';\n * import {NgDocThemeService, NG_DOC_DARK_PURPLE_THEME} from '@ng-doc/app';\n *\n * @Component()\n * export class AppComponent {\n * \tconstructor(\n * \t private readonly themeService: NgDocThemeService,\n * \t) {\n * \t this.themeService.setTheme(NG_DOC_DARK_PURPLE_THEME.id);\n * \t}\n * }\n * ```\n *\n * Or you can set it as default theme in your app module:\n * ```typescript\n * import {NgModule} from '@angular/core';\n * import {NgDocModule, NG_DOC_DARK_PURPLE_THEME} from '@ng-doc/app';\n * import {AppComponent} from './app.component';\n *\n * @NgModule({\n * \tdeclarations: [AppComponent],\n * \timports: [NgDocModule.forRoot({defaultTheme: NG_DOC_DARK_PURPLE_THEME.id})],\n * \tbootstrap: [AppComponent],\n * })\n * export class AppModule {}\n * ```\n */\nexport const NG_DOC_DARK_PURPLE_THEME: NgDocTheme = {\n\tid: 'ng-doc-dark-purple',\n\tpath: 'assets/ng-doc/app/themes/ng-doc-dark-purple.css',\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAO,MAAM,sBAAsB,GAAW;;ACE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;AACI,MAAM,kBAAkB,GAAe,EAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,2CAA2C,GAAE;AAEtH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;AACU,MAAA,wBAAwB,GAAe;AACnD,IAAA,EAAE,EAAE,oBAAoB;AACxB,IAAA,IAAI,EAAE,iDAAiD;;;ACpExD;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-doc-app-constants.mjs","sources":["../../../../libs/app/constants/store-keys.ts","../../../../libs/app/constants/themes.ts","../../../../libs/app/constants/ng-doc-app-constants.ts"],"sourcesContent":["export const NG_DOC_STORE_THEME_KEY: string = 'ng-doc-theme-id';\n","import {NgDocTheme} from '@ng-doc/app/interfaces';\n\n/**\n * Dark theme. You can set it manually by calling `NgDocThemeService.setTheme` method.\n *\n * ```typescript\n * import {Component} from '@angular/core';\n * import {NgDocThemeService, NG_DOC_NIGHT_THEME} from '@ng-doc/app';\n *\n * @Component()\n * export class AppComponent {\n * \tconstructor(\n * \t private readonly themeService: NgDocThemeService,\n * \t) {\n * \t this.themeService.setTheme(NG_DOC_NIGHT_THEME.id);\n * \t}\n * }\n * ```\n *\n * Or you can set it as default theme in your app module:\n * ```typescript\n * import {NgModule} from '@angular/core';\n * import {NgDocModule, NG_DOC_NIGHT_THEME} from '@ng-doc/app';\n * import {AppComponent} from './app.component';\n *\n * @NgModule({\n * \tdeclarations: [AppComponent],\n * \timports: [NgDocModule.forRoot({defaultTheme: NG_DOC_NIGHT_THEME.id})],\n * \tbootstrap: [AppComponent],\n * })\n * export class AppModule {}\n * ```\n */\nexport const NG_DOC_NIGHT_THEME: NgDocTheme = {id: 'ng-doc-night', path: 'assets/ng-doc/app/themes/ng-doc-night.css'};\n\n/**\n * Dark purple theme. You can set it manually by calling `NgDocThemeService.setTheme` method.\n *\n * ```typescript\n * import {Component} from '@angular/core';\n * import {NgDocThemeService, NG_DOC_DARK_PURPLE_THEME} from '@ng-doc/app';\n *\n * @Component()\n * export class AppComponent {\n * \tconstructor(\n * \t private readonly themeService: NgDocThemeService,\n * \t) {\n * \t this.themeService.setTheme(NG_DOC_DARK_PURPLE_THEME.id);\n * \t}\n * }\n * ```\n *\n * Or you can set it as default theme in your app module:\n * ```typescript\n * import {NgModule} from '@angular/core';\n * import {NgDocModule, NG_DOC_DARK_PURPLE_THEME} from '@ng-doc/app';\n * import {AppComponent} from './app.component';\n *\n * @NgModule({\n * \tdeclarations: [AppComponent],\n * \timports: [NgDocModule.forRoot({defaultTheme: NG_DOC_DARK_PURPLE_THEME.id})],\n * \tbootstrap: [AppComponent],\n * })\n * export class AppModule {}\n * ```\n */\nexport const NG_DOC_DARK_PURPLE_THEME: NgDocTheme = {\n\tid: 'ng-doc-dark-purple',\n\tpath: 'assets/ng-doc/app/themes/ng-doc-dark-purple.css',\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAO,MAAM,sBAAsB,GAAW;;ACE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;AACI,MAAM,kBAAkB,GAAe,EAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,2CAA2C,GAAE;AAEtH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;AACU,MAAA,wBAAwB,GAAe;AACnD,IAAA,EAAE,EAAE,oBAAoB;AACxB,IAAA,IAAI,EAAE,iDAAiD;;;ACpExD;;AAEG;;;;"}
@@ -47,6 +47,13 @@ function levelFromTagName(heading) {
47
47
  return Number(heading.tagName.toLowerCase().replace(/[a-z]*/g, '') || 1);
48
48
  }
49
49
 
50
+ /**
51
+ * Check if the OS theme is dark
52
+ */
53
+ function isDarkOsTheme() {
54
+ return window.matchMedia('(prefers-color-scheme: dark)').matches;
55
+ }
56
+
50
57
  /**
51
58
  *
52
59
  * @param url
@@ -141,5 +148,5 @@ function getTokenForType(type) {
141
148
  * Generated bundle index. Do not edit.
142
149
  */
143
150
 
144
- export { asBoolean, generateToc, getPlaygroundDemoToken, getTokenForType, isExternalLink, isPlaygroundProperty, providePlaygroundDemo, provideSearchEngine, provideTypeControl };
151
+ export { asBoolean, generateToc, getPlaygroundDemoToken, getTokenForType, isDarkOsTheme, isExternalLink, isPlaygroundProperty, providePlaygroundDemo, provideSearchEngine, provideTypeControl };
145
152
  //# sourceMappingURL=ng-doc-app-helpers.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-helpers.mjs","sources":["../../../../libs/app/helpers/as-boolean.ts","../../../../libs/app/helpers/generate-toc.ts","../../../../libs/app/helpers/is-external-link.ts","../../../../libs/app/helpers/is-playground-property.ts","../../../../libs/app/helpers/provide-playground-demo.ts","../../../../libs/app/helpers/provide-search-engine.ts","../../../../libs/app/helpers/provide-type-control.ts","../../../../libs/app/helpers/ng-doc-app-helpers.ts"],"sourcesContent":["/**\n *\n * @param value\n */\nexport function asBoolean(value: unknown): boolean {\n\tif (typeof value === 'string') {\n\t\treturn value.toLowerCase() === 'true' ? true : value.toLowerCase() === 'false' ? false : !!value;\n\t}\n\treturn !!value;\n}\n","import {NgDocTocItem} from '@ng-doc/app/interfaces';\nimport {asArray} from '@ng-doc/core/helpers/as-array';\nimport {NgDocHeading} from '@ng-doc/core/types';\n\n/**\n * Generate table of contents, only for headings with id\n *\n * @param container\n * @param headings\n */\nexport function generateToc(container: HTMLElement): NgDocTocItem[] {\n\tconst headings: NgDocHeading[] = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n\n\tconst headingElements: HTMLHeadingElement[] = Array.from(\n\t\tcontainer.querySelectorAll<HTMLHeadingElement>(headings.join(', ')),\n\t).filter((heading: HTMLHeadingElement) => heading.id);\n\n\tconst levels: number[] = asArray(new Set(headingElements.map(levelFromTagName).sort()));\n\n\treturn headingElements.reduce((map: NgDocTocItem[], heading: HTMLHeadingElement) => {\n\t\tconst headingLevel: number = levelFromTagName(heading);\n\t\tconst anchor: HTMLAnchorElement | null = heading.querySelector<HTMLAnchorElement>('a.ng-doc-header-link');\n\n\t\tif (anchor) {\n\t\t\tmap.push({\n\t\t\t\ttitle: heading.textContent?.trim() ?? '',\n\t\t\t\telement: heading,\n\t\t\t\tpath: anchor.pathname + anchor.hash,\n\t\t\t\tlevel: levels.indexOf(headingLevel) + 1,\n\t\t\t});\n\t\t}\n\n\t\treturn map;\n\t}, []);\n}\n\n/**\n *\n * @param heading\n */\nfunction levelFromTagName(heading: HTMLHeadingElement): number {\n\treturn Number(heading.tagName.toLowerCase().replace(/[a-z]*/g, '') || 1);\n}\n","/**\n *\n * @param url\n */\nexport function isExternalLink(url: string): boolean {\n\tconst anchorElement: HTMLAnchorElement = document.createElement('a');\n\n\tanchorElement.href = url;\n\n\treturn anchorElement.host !== window.location.host;\n}\n","import {objectKeys} from '@ng-doc/core/helpers/object-keys';\nimport {NgDocPlaygroundProperty} from '@ng-doc/core/interfaces';\n\n/**\n *\n * @param obj\n */\nexport function isPlaygroundProperty(obj: Record<string, any>): obj is NgDocPlaygroundProperty {\n\treturn objectKeys(obj).includes('type');\n}\n","import {InjectionToken, Provider} from '@angular/core';\nimport {Constructor} from '@ng-doc/core/types';\n\nconst tokenStore: Map<string, InjectionToken<unknown>> = new Map<string, InjectionToken<unknown>>();\n\n/**\n *\n * @param type\n * @param control\n * @param options\n * @param playgroundId\n * @param selector\n * @param component\n */\nexport function providePlaygroundDemo(playgroundId: string, component: Constructor<unknown>): Provider {\n\tconst token: InjectionToken<unknown> =\n\t\ttokenStore.get(playgroundId) ?? new InjectionToken<unknown>(`NG_DOC_PLAYGROUND_DEMO_${playgroundId}`);\n\n\ttokenStore.set(playgroundId, token);\n\n\treturn {\n\t\tprovide: token,\n\t\tuseValue: component,\n\t\tmulti: true,\n\t};\n}\n\n/**\n * Returns the token for the given playground id.\n *\n * @param playgroundId\n */\nexport function getPlaygroundDemoToken<T>(playgroundId: string): InjectionToken<T[]> | undefined {\n\treturn tokenStore.get(playgroundId) as InjectionToken<T[]> | undefined;\n}\n","import {Provider} from '@angular/core';\nimport {NgDocSearchEngine} from '@ng-doc/app/classes/search-engine';\nimport {Constructor} from '@ng-doc/core';\n\n/**\n * Provides the `NgDocSearchEngine` to enable search in the documentation.\n *\n * You can create and provide your own `NgDocSearchEngine` if you want to handle the search yourself.\n *\n * @param engine - The search engine class.\n * @param args - The arguments for the search engine class.\n * @returns The provider for the search engine.\n */\nexport function provideSearchEngine<E extends Constructor<NgDocSearchEngine>>(\n\tengine: E,\n\t...args: ConstructorParameters<E>\n): Provider {\n\treturn {\n\t\tprovide: NgDocSearchEngine,\n\t\tuseValue: new engine(...args),\n\t};\n}\n","import {InjectionToken, Provider} from '@angular/core';\nimport {NgDocProvidedTypeControl, NgDocTypeControl, NgDocTypeControlProviderOptions} from '@ng-doc/app/interfaces';\nimport {Constructor} from '@ng-doc/core/types/constructor';\n\nconst tokenStore: Map<string, InjectionToken<NgDocProvidedTypeControl>> = new Map<\n\tstring,\n\tInjectionToken<NgDocProvidedTypeControl>\n>();\n\n/**\n *\n * @param type\n * @param control\n * @param options\n */\nexport function provideTypeControl(\n\ttype: string,\n\tcontrol: Constructor<NgDocTypeControl>,\n\toptions?: NgDocTypeControlProviderOptions,\n): Provider {\n\tconst token: InjectionToken<NgDocProvidedTypeControl> = new InjectionToken<NgDocProvidedTypeControl>(\n\t\t`NG_DOC_TYPE_CONTROL_${type}`,\n\t);\n\ttokenStore.set(type, token);\n\n\treturn {\n\t\tprovide: token,\n\t\tuseValue: {\n\t\t\tcontrol,\n\t\t\toptions,\n\t\t},\n\t};\n}\n\n/**\n * Returns token for type control based on provided type\n *\n * @param type - type for searched control (e.g. `string`)\n */\nexport function getTokenForType(type: string): InjectionToken<NgDocProvidedTypeControl> | undefined {\n\treturn tokenStore.get(type);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tokenStore"],"mappings":";;;;;AAAA;;;AAGG;AACG,SAAU,SAAS,CAAC,KAAc,EAAA;AACvC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC9B,QAAA,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AACjG,KAAA;IACD,OAAO,CAAC,CAAC,KAAK,CAAC;AAChB;;ACLA;;;;;AAKG;AACG,SAAU,WAAW,CAAC,SAAsB,EAAA;AACjD,IAAA,MAAM,QAAQ,GAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEtE,IAAA,MAAM,eAAe,GAAyB,KAAK,CAAC,IAAI,CACvD,SAAS,CAAC,gBAAgB,CAAqB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACnE,CAAC,MAAM,CAAC,CAAC,OAA2B,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;AAEtD,IAAA,MAAM,MAAM,GAAa,OAAO,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAExF,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,GAAmB,EAAE,OAA2B,KAAI;;AAClF,QAAA,MAAM,YAAY,GAAW,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAA6B,OAAO,CAAC,aAAa,CAAoB,sBAAsB,CAAC,CAAC;AAE1G,QAAA,IAAI,MAAM,EAAE;YACX,GAAG,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE;AACxC,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,IAAI,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI;gBACnC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC;AACvC,aAAA,CAAC,CAAC;AACH,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACX,EAAE,EAAE,CAAC,CAAC;AACR,CAAC;AAED;;;AAGG;AACH,SAAS,gBAAgB,CAAC,OAA2B,EAAA;AACpD,IAAA,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1E;;AC1CA;;;AAGG;AACG,SAAU,cAAc,CAAC,GAAW,EAAA;IACzC,MAAM,aAAa,GAAsB,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAErE,IAAA,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC;IAEzB,OAAO,aAAa,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACpD;;ACPA;;;AAGG;AACG,SAAU,oBAAoB,CAAC,GAAwB,EAAA;IAC5D,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzC;;ACNA,MAAMA,YAAU,GAAyC,IAAI,GAAG,EAAmC,CAAC;AAEpG;;;;;;;;AAQG;AACa,SAAA,qBAAqB,CAAC,YAAoB,EAAE,SAA+B,EAAA;;AAC1F,IAAA,MAAM,KAAK,GACV,CAAA,EAAA,GAAAA,YAAU,CAAC,GAAG,CAAC,YAAY,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,cAAc,CAAU,0BAA0B,YAAY,CAAA,CAAE,CAAC,CAAC;AAEvG,IAAAA,YAAU,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAEpC,OAAO;AACN,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,KAAK,EAAE,IAAI;KACX,CAAC;AACH,CAAC;AAED;;;;AAIG;AACG,SAAU,sBAAsB,CAAI,YAAoB,EAAA;AAC7D,IAAA,OAAOA,YAAU,CAAC,GAAG,CAAC,YAAY,CAAoC,CAAC;AACxE;;AC9BA;;;;;;;;AAQG;SACa,mBAAmB,CAClC,MAAS,EACT,GAAG,IAA8B,EAAA;IAEjC,OAAO;AACN,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,QAAQ,EAAE,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC;KAC7B,CAAC;AACH;;ACjBA,MAAM,UAAU,GAA0D,IAAI,GAAG,EAG9E,CAAC;AAEJ;;;;;AAKG;SACa,kBAAkB,CACjC,IAAY,EACZ,OAAsC,EACtC,OAAyC,EAAA;IAEzC,MAAM,KAAK,GAA6C,IAAI,cAAc,CACzE,CAAuB,oBAAA,EAAA,IAAI,CAAE,CAAA,CAC7B,CAAC;AACF,IAAA,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE5B,OAAO;AACN,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE;YACT,OAAO;YACP,OAAO;AACP,SAAA;KACD,CAAC;AACH,CAAC;AAED;;;;AAIG;AACG,SAAU,eAAe,CAAC,IAAY,EAAA;AAC3C,IAAA,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B;;ACzCA;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-doc-app-helpers.mjs","sources":["../../../../libs/app/helpers/as-boolean.ts","../../../../libs/app/helpers/generate-toc.ts","../../../../libs/app/helpers/is-dark-os-theme.ts","../../../../libs/app/helpers/is-external-link.ts","../../../../libs/app/helpers/is-playground-property.ts","../../../../libs/app/helpers/provide-playground-demo.ts","../../../../libs/app/helpers/provide-search-engine.ts","../../../../libs/app/helpers/provide-type-control.ts","../../../../libs/app/helpers/ng-doc-app-helpers.ts"],"sourcesContent":["/**\n *\n * @param value\n */\nexport function asBoolean(value: unknown): boolean {\n\tif (typeof value === 'string') {\n\t\treturn value.toLowerCase() === 'true' ? true : value.toLowerCase() === 'false' ? false : !!value;\n\t}\n\treturn !!value;\n}\n","import {NgDocTocItem} from '@ng-doc/app/interfaces';\nimport {asArray} from '@ng-doc/core/helpers/as-array';\nimport {NgDocHeading} from '@ng-doc/core/types';\n\n/**\n * Generate table of contents, only for headings with id\n *\n * @param container\n * @param headings\n */\nexport function generateToc(container: HTMLElement): NgDocTocItem[] {\n\tconst headings: NgDocHeading[] = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n\n\tconst headingElements: HTMLHeadingElement[] = Array.from(\n\t\tcontainer.querySelectorAll<HTMLHeadingElement>(headings.join(', ')),\n\t).filter((heading: HTMLHeadingElement) => heading.id);\n\n\tconst levels: number[] = asArray(new Set(headingElements.map(levelFromTagName).sort()));\n\n\treturn headingElements.reduce((map: NgDocTocItem[], heading: HTMLHeadingElement) => {\n\t\tconst headingLevel: number = levelFromTagName(heading);\n\t\tconst anchor: HTMLAnchorElement | null = heading.querySelector<HTMLAnchorElement>('a.ng-doc-header-link');\n\n\t\tif (anchor) {\n\t\t\tmap.push({\n\t\t\t\ttitle: heading.textContent?.trim() ?? '',\n\t\t\t\telement: heading,\n\t\t\t\tpath: anchor.pathname + anchor.hash,\n\t\t\t\tlevel: levels.indexOf(headingLevel) + 1,\n\t\t\t});\n\t\t}\n\n\t\treturn map;\n\t}, []);\n}\n\n/**\n *\n * @param heading\n */\nfunction levelFromTagName(heading: HTMLHeadingElement): number {\n\treturn Number(heading.tagName.toLowerCase().replace(/[a-z]*/g, '') || 1);\n}\n","/**\n * Check if the OS theme is dark\n */\nexport function isDarkOsTheme(): boolean {\n\treturn window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n","/**\n *\n * @param url\n */\nexport function isExternalLink(url: string): boolean {\n\tconst anchorElement: HTMLAnchorElement = document.createElement('a');\n\n\tanchorElement.href = url;\n\n\treturn anchorElement.host !== window.location.host;\n}\n","import {objectKeys} from '@ng-doc/core/helpers/object-keys';\nimport {NgDocPlaygroundProperty} from '@ng-doc/core/interfaces';\n\n/**\n *\n * @param obj\n */\nexport function isPlaygroundProperty(obj: Record<string, any>): obj is NgDocPlaygroundProperty {\n\treturn objectKeys(obj).includes('type');\n}\n","import {InjectionToken, Provider} from '@angular/core';\nimport {Constructor} from '@ng-doc/core/types';\n\nconst tokenStore: Map<string, InjectionToken<unknown>> = new Map<string, InjectionToken<unknown>>();\n\n/**\n *\n * @param type\n * @param control\n * @param options\n * @param playgroundId\n * @param selector\n * @param component\n */\nexport function providePlaygroundDemo(playgroundId: string, component: Constructor<unknown>): Provider {\n\tconst token: InjectionToken<unknown> =\n\t\ttokenStore.get(playgroundId) ?? new InjectionToken<unknown>(`NG_DOC_PLAYGROUND_DEMO_${playgroundId}`);\n\n\ttokenStore.set(playgroundId, token);\n\n\treturn {\n\t\tprovide: token,\n\t\tuseValue: component,\n\t\tmulti: true,\n\t};\n}\n\n/**\n * Returns the token for the given playground id.\n *\n * @param playgroundId\n */\nexport function getPlaygroundDemoToken<T>(playgroundId: string): InjectionToken<T[]> | undefined {\n\treturn tokenStore.get(playgroundId) as InjectionToken<T[]> | undefined;\n}\n","import {Provider} from '@angular/core';\nimport {NgDocSearchEngine} from '@ng-doc/app/classes/search-engine';\nimport {Constructor} from '@ng-doc/core';\n\n/**\n * Provides the `NgDocSearchEngine` to enable search in the documentation.\n *\n * You can create and provide your own `NgDocSearchEngine` if you want to handle the search yourself.\n *\n * @param engine - The search engine class.\n * @param args - The arguments for the search engine class.\n * @returns The provider for the search engine.\n */\nexport function provideSearchEngine<E extends Constructor<NgDocSearchEngine>>(\n\tengine: E,\n\t...args: ConstructorParameters<E>\n): Provider {\n\treturn {\n\t\tprovide: NgDocSearchEngine,\n\t\tuseValue: new engine(...args),\n\t};\n}\n","import {InjectionToken, Provider} from '@angular/core';\nimport {NgDocProvidedTypeControl, NgDocTypeControl, NgDocTypeControlProviderOptions} from '@ng-doc/app/interfaces';\nimport {Constructor} from '@ng-doc/core/types/constructor';\n\nconst tokenStore: Map<string, InjectionToken<NgDocProvidedTypeControl>> = new Map<\n\tstring,\n\tInjectionToken<NgDocProvidedTypeControl>\n>();\n\n/**\n *\n * @param type\n * @param control\n * @param options\n */\nexport function provideTypeControl(\n\ttype: string,\n\tcontrol: Constructor<NgDocTypeControl>,\n\toptions?: NgDocTypeControlProviderOptions,\n): Provider {\n\tconst token: InjectionToken<NgDocProvidedTypeControl> = new InjectionToken<NgDocProvidedTypeControl>(\n\t\t`NG_DOC_TYPE_CONTROL_${type}`,\n\t);\n\ttokenStore.set(type, token);\n\n\treturn {\n\t\tprovide: token,\n\t\tuseValue: {\n\t\t\tcontrol,\n\t\t\toptions,\n\t\t},\n\t};\n}\n\n/**\n * Returns token for type control based on provided type\n *\n * @param type - type for searched control (e.g. `string`)\n */\nexport function getTokenForType(type: string): InjectionToken<NgDocProvidedTypeControl> | undefined {\n\treturn tokenStore.get(type);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tokenStore"],"mappings":"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"}
@@ -4,6 +4,7 @@ import * as i0 from '@angular/core';
4
4
  import { APP_INITIALIZER, Optional, NgModule } from '@angular/core';
5
5
  import { NgDocRootModule } from '@ng-doc/app/components/root';
6
6
  import { NG_DOC_NIGHT_THEME, NG_DOC_DARK_PURPLE_THEME, NG_DOC_STORE_THEME_KEY } from '@ng-doc/app/constants';
7
+ import { isDarkOsTheme } from '@ng-doc/app/helpers';
7
8
  import { NgDocStoreService } from '@ng-doc/app/services/store';
8
9
  import { NgDocThemeService } from '@ng-doc/app/services/theme';
9
10
  import { NG_DOC_THEME, NG_DOC_DEFAULT_THEME_ID } from '@ng-doc/app/tokens';
@@ -32,7 +33,10 @@ class NgDocModule {
32
33
  useFactory: (themeService, store, defaultThemeId) => {
33
34
  return () => {
34
35
  const themeId = store.get(NG_DOC_STORE_THEME_KEY);
35
- return themeService.set(themeId !== null && themeId !== void 0 ? themeId : defaultThemeId);
36
+ if (defaultThemeId === 'auto' && !themeId) {
37
+ return themeService.set(isDarkOsTheme() ? NG_DOC_NIGHT_THEME.id : undefined, false);
38
+ }
39
+ return themeService.set(themeId !== null && themeId !== void 0 ? themeId : defaultThemeId, false);
36
40
  };
37
41
  },
38
42
  multi: true,