@ng-doc/app 16.14.0 → 16.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/assets/themes/ng-doc-night.css +20 -19
  2. package/components/playground/playground-demo/playground-demo.component.d.ts +1 -0
  3. package/components/playground/playground-properties/playground-properties.component.d.ts +2 -1
  4. package/components/playground/playground.component.d.ts +3 -0
  5. package/components/theme-toggle/theme-toggle.component.d.ts +8 -2
  6. package/constants/themes.d.ts +8 -8
  7. package/esm2022/components/api-list/api-list.component.mjs +7 -5
  8. package/esm2022/components/code/code.component.mjs +3 -3
  9. package/esm2022/components/demo/demo.component.mjs +7 -6
  10. package/esm2022/components/demo-displayer/demo-displayer.component.mjs +3 -3
  11. package/esm2022/components/demo-pane/demo-pane.component.mjs +6 -5
  12. package/esm2022/components/kind-icon/kind-icon.component.mjs +3 -3
  13. package/esm2022/components/link/link.component.mjs +1 -1
  14. package/esm2022/components/navbar/navbar.component.mjs +3 -3
  15. package/esm2022/components/page/page.component.mjs +4 -4
  16. package/esm2022/components/page-link/page-link.component.mjs +4 -4
  17. package/esm2022/components/page-navigation/page-navigation.component.mjs +3 -3
  18. package/esm2022/components/playground/base-playground.mjs +9 -4
  19. package/esm2022/components/playground/playground-demo/playground-demo.component.mjs +20 -2
  20. package/esm2022/components/playground/playground-form.mjs +1 -1
  21. package/esm2022/components/playground/playground-properties/playground-properties.component.mjs +6 -3
  22. package/esm2022/components/playground/playground-property/playground-property.component.mjs +4 -2
  23. package/esm2022/components/playground/playground-property-control.mjs +1 -1
  24. package/esm2022/components/playground/playground.component.mjs +30 -10
  25. package/esm2022/components/search/search.component.mjs +3 -3
  26. package/esm2022/components/search-result/search-result.component.mjs +10 -2
  27. package/esm2022/components/sidebar/sidebar-category/sidebar-category.component.mjs +6 -5
  28. package/esm2022/components/sidebar/sidebar-item/sidebar-item.component.mjs +3 -3
  29. package/esm2022/components/sidebar/sidebar.component.mjs +3 -3
  30. package/esm2022/components/tabs/tabs.component.mjs +3 -3
  31. package/esm2022/components/theme-toggle/theme-toggle.component.mjs +34 -7
  32. package/esm2022/components/toc/toc-element/toc-element.component.mjs +3 -3
  33. package/esm2022/components/toc/toc.component.mjs +5 -2
  34. package/esm2022/constants/themes.mjs +9 -9
  35. package/esm2022/directives/code-highlighter/code-highlighter.directive.mjs +1 -1
  36. package/esm2022/directives/route-active/route-active.directive.mjs +1 -1
  37. package/esm2022/helpers/as-boolean.mjs +6 -2
  38. package/esm2022/helpers/generate-toc.mjs +1 -1
  39. package/esm2022/interfaces/provided-type-control.mjs +1 -1
  40. package/esm2022/pipes/extract-value/extract-value.pipe.mjs +1 -1
  41. package/esm2022/pipes/filter-by-text/filter-by-text.pipe.mjs +1 -1
  42. package/esm2022/pipes/sanitize-html/sanitize-html.pipe.mjs +1 -1
  43. package/esm2022/processors/processors/code.processor.mjs +1 -1
  44. package/esm2022/processors/processors/demo-pane.processor.mjs +1 -1
  45. package/esm2022/processors/processors/demo.processor.mjs +1 -1
  46. package/esm2022/processors/processors/icon.processor.mjs +1 -1
  47. package/esm2022/processors/processors/link.processor.mjs +1 -1
  48. package/esm2022/processors/processors/playground.processor.mjs +3 -2
  49. package/esm2022/processors/processors/tabs.processor.mjs +1 -1
  50. package/esm2022/providers/ng-doc-app/provide-ng-doc-app.mjs +8 -6
  51. package/esm2022/services/store/store.service.mjs +1 -1
  52. package/esm2022/services/theme/theme.service.mjs +62 -33
  53. package/esm2022/tokens/api-list.mjs +1 -1
  54. package/esm2022/tokens/context.mjs +1 -1
  55. package/esm2022/tokens/theme.mjs +7 -7
  56. package/esm2022/tokens/type-control.mjs +1 -1
  57. package/esm2022/type-controls/boolean-control/boolean-control.component.mjs +1 -1
  58. package/esm2022/type-controls/number-control/number-control.component.mjs +1 -1
  59. package/esm2022/type-controls/string-control/string-control.component.mjs +1 -1
  60. package/esm2022/type-controls/type-alias-control/type-alias-control.component.mjs +1 -1
  61. package/esm2022/types/typed-form.mjs +1 -1
  62. package/fesm2022/ng-doc-app-components-api-list.mjs +5 -3
  63. package/fesm2022/ng-doc-app-components-api-list.mjs.map +1 -1
  64. package/fesm2022/ng-doc-app-components-code.mjs +2 -2
  65. package/fesm2022/ng-doc-app-components-code.mjs.map +1 -1
  66. package/fesm2022/ng-doc-app-components-demo-displayer.mjs +2 -2
  67. package/fesm2022/ng-doc-app-components-demo-displayer.mjs.map +1 -1
  68. package/fesm2022/ng-doc-app-components-demo-pane.mjs +4 -3
  69. package/fesm2022/ng-doc-app-components-demo-pane.mjs.map +1 -1
  70. package/fesm2022/ng-doc-app-components-demo.mjs +4 -3
  71. package/fesm2022/ng-doc-app-components-demo.mjs.map +1 -1
  72. package/fesm2022/ng-doc-app-components-kind-icon.mjs +2 -2
  73. package/fesm2022/ng-doc-app-components-kind-icon.mjs.map +1 -1
  74. package/fesm2022/ng-doc-app-components-link.mjs.map +1 -1
  75. package/fesm2022/ng-doc-app-components-navbar.mjs +2 -2
  76. package/fesm2022/ng-doc-app-components-navbar.mjs.map +1 -1
  77. package/fesm2022/ng-doc-app-components-page-link.mjs +2 -2
  78. package/fesm2022/ng-doc-app-components-page-link.mjs.map +1 -1
  79. package/fesm2022/ng-doc-app-components-page-navigation.mjs +2 -2
  80. package/fesm2022/ng-doc-app-components-page-navigation.mjs.map +1 -1
  81. package/fesm2022/ng-doc-app-components-page.mjs +3 -3
  82. package/fesm2022/ng-doc-app-components-page.mjs.map +1 -1
  83. package/fesm2022/ng-doc-app-components-playground.mjs +63 -16
  84. package/fesm2022/ng-doc-app-components-playground.mjs.map +1 -1
  85. package/fesm2022/ng-doc-app-components-search-result.mjs +9 -1
  86. package/fesm2022/ng-doc-app-components-search-result.mjs.map +1 -1
  87. package/fesm2022/ng-doc-app-components-search.mjs +2 -2
  88. package/fesm2022/ng-doc-app-components-search.mjs.map +1 -1
  89. package/fesm2022/ng-doc-app-components-sidebar.mjs +8 -7
  90. package/fesm2022/ng-doc-app-components-sidebar.mjs.map +1 -1
  91. package/fesm2022/ng-doc-app-components-tabs.mjs +2 -2
  92. package/fesm2022/ng-doc-app-components-tabs.mjs.map +1 -1
  93. package/fesm2022/ng-doc-app-components-theme-toggle.mjs +33 -6
  94. package/fesm2022/ng-doc-app-components-theme-toggle.mjs.map +1 -1
  95. package/fesm2022/ng-doc-app-components-toc.mjs +6 -3
  96. package/fesm2022/ng-doc-app-components-toc.mjs.map +1 -1
  97. package/fesm2022/ng-doc-app-constants.mjs +8 -8
  98. package/fesm2022/ng-doc-app-constants.mjs.map +1 -1
  99. package/fesm2022/ng-doc-app-directives-code-highlighter.mjs.map +1 -1
  100. package/fesm2022/ng-doc-app-directives-route-active.mjs.map +1 -1
  101. package/fesm2022/ng-doc-app-helpers.mjs +5 -1
  102. package/fesm2022/ng-doc-app-helpers.mjs.map +1 -1
  103. package/fesm2022/ng-doc-app-pipes-extract-value.mjs.map +1 -1
  104. package/fesm2022/ng-doc-app-pipes-filter-by-text.mjs.map +1 -1
  105. package/fesm2022/ng-doc-app-pipes-sanitize-html.mjs.map +1 -1
  106. package/fesm2022/ng-doc-app-processors-processors.mjs +2 -1
  107. package/fesm2022/ng-doc-app-processors-processors.mjs.map +1 -1
  108. package/fesm2022/ng-doc-app-providers-ng-doc-app.mjs +7 -5
  109. package/fesm2022/ng-doc-app-providers-ng-doc-app.mjs.map +1 -1
  110. package/fesm2022/ng-doc-app-services-store.mjs.map +1 -1
  111. package/fesm2022/ng-doc-app-services-theme.mjs +61 -32
  112. package/fesm2022/ng-doc-app-services-theme.mjs.map +1 -1
  113. package/fesm2022/ng-doc-app-tokens.mjs +6 -6
  114. package/fesm2022/ng-doc-app-tokens.mjs.map +1 -1
  115. package/fesm2022/ng-doc-app-type-controls-boolean-control.mjs.map +1 -1
  116. package/fesm2022/ng-doc-app-type-controls-number-control.mjs.map +1 -1
  117. package/fesm2022/ng-doc-app-type-controls-string-control.mjs.map +1 -1
  118. package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs.map +1 -1
  119. package/package.json +3 -3
  120. package/services/theme/theme.service.d.ts +24 -7
  121. package/styles/global.css +141 -436
  122. package/styles/main.css +138 -433
  123. package/tokens/theme.d.ts +6 -6
@@ -1,32 +1,32 @@
1
1
  import { __decorate, __metadata } from 'tslib';
2
2
  import { DOCUMENT } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Injectable, Inject, Optional } from '@angular/core';
5
- import { NG_DOC_NIGHT_THEME, NG_DOC_STORE_THEME_KEY } from '@ng-doc/app/constants';
4
+ import { Injectable, Inject } from '@angular/core';
5
+ import { NG_DOC_STORE_THEME_KEY } from '@ng-doc/app/constants';
6
6
  import * as i1 from '@ng-doc/app/services/store';
7
7
  import { NgDocStoreService } from '@ng-doc/app/services/store';
8
- import { NG_DOC_THEME, NG_DOC_DEFAULT_THEME_ID } from '@ng-doc/app/tokens';
8
+ import { NG_DOC_THEME } from '@ng-doc/app/tokens';
9
+ import { WINDOW } from '@ng-web-apis/common';
9
10
  import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
10
11
  import { Subject, fromEvent } from 'rxjs';
11
- import { takeUntil } from 'rxjs/operators';
12
12
 
13
+ var NgDocThemeService_1;
13
14
  /**
14
15
  * Service for managing themes.
15
16
  */
16
- let NgDocThemeService = class NgDocThemeService {
17
- constructor(document, themes, store, defaultThemeId) {
17
+ let NgDocThemeService = NgDocThemeService_1 = class NgDocThemeService {
18
+ static { this.autoThemeId = 'ng-doc-auto'; }
19
+ constructor(window, document, themes, store) {
20
+ this.window = window;
18
21
  this.document = document;
19
22
  this.themes = themes;
20
23
  this.store = store;
21
- this.defaultThemeId = defaultThemeId;
22
24
  this.theme = undefined;
23
25
  this.theme$ = new Subject();
24
- this.disableAutoTheme$ = new Subject();
25
- if (this.defaultThemeId === 'auto') {
26
- fromEvent(window.matchMedia('(prefers-color-scheme: dark)'), 'change')
27
- .pipe(takeUntil(this.disableAutoTheme$), untilDestroyed(this))
28
- .subscribe((event) => this.set(event.matches ? NG_DOC_NIGHT_THEME.id : undefined, false));
29
- }
26
+ this.autoTheme = undefined;
27
+ fromEvent(this.window.matchMedia('(prefers-color-scheme: dark)'), 'change')
28
+ .pipe(untilDestroyed(this))
29
+ .subscribe(() => this.setAutoTheme());
30
30
  }
31
31
  /**
32
32
  * Returns the current theme.
@@ -34,23 +34,45 @@ let NgDocThemeService = class NgDocThemeService {
34
34
  get currentTheme() {
35
35
  return this.theme;
36
36
  }
37
+ /**
38
+ * Returns whether automatic theme switching based on the user's operating system settings is enabled.
39
+ */
40
+ get isAutoThemeEnabled() {
41
+ return this.autoTheme !== undefined;
42
+ }
43
+ /**
44
+ * Enables automatic theme switching based on the user's operating system settings.
45
+ *
46
+ * @param light - Theme for light mode.
47
+ * @param dark - Theme for dark mode.
48
+ */
49
+ async enableAutoTheme(light, dark) {
50
+ this.autoTheme = [light, dark];
51
+ return this.setAutoTheme();
52
+ }
53
+ /**
54
+ * Disables automatic theme switching based on the user's operating system settings.
55
+ */
56
+ async disableAutoTheme() {
57
+ this.autoTheme = undefined;
58
+ return this.set(this.store.get(NG_DOC_STORE_THEME_KEY) ?? undefined);
59
+ }
37
60
  /**
38
61
  * Sets the theme by id.
39
62
  *
40
- * @param id Theme id.
41
- * @param save Whether to save the theme in the store to restore it when the page is reloaded. (`true` by default)
63
+ * @param id - Theme id.
64
+ * @param save - Whether to save the theme in the store to restore it when the page is reloaded. (`true` by default)
42
65
  */
43
- set(id, save = true) {
66
+ async set(id, save = true) {
44
67
  this.removeLink();
45
- if (id === 'auto') {
46
- return Promise.resolve();
68
+ if (save) {
69
+ this.autoTheme = undefined;
47
70
  }
48
- save && this.disableAutoTheme$.next();
49
- if (id !== 'day' && id) {
71
+ if (id) {
50
72
  const theme = this.themes.find((theme) => theme.id === id);
51
73
  if (!theme) {
52
74
  console.warn(`Theme with id "${id}" is not registered. Make sure that you registered it in the root of your application.`);
53
- return Promise.resolve();
75
+ return;
54
76
  }
55
77
  this.createLinkIfNoExists();
56
78
  if (this.linkElement) {
@@ -68,7 +90,7 @@ let NgDocThemeService = class NgDocThemeService {
68
90
  });
69
91
  }
70
92
  }
71
- save && this.store.set(NG_DOC_STORE_THEME_KEY, 'day');
93
+ save && this.store.set(NG_DOC_STORE_THEME_KEY, 'ng-doc-day');
72
94
  this.theme$.next(undefined);
73
95
  return Promise.resolve();
74
96
  }
@@ -91,30 +113,37 @@ let NgDocThemeService = class NgDocThemeService {
91
113
  this.document.getElementsByTagName('head')[0].appendChild(this.linkElement);
92
114
  }
93
115
  }
94
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocThemeService, deps: [{ token: DOCUMENT }, { token: NG_DOC_THEME }, { token: i1.NgDocStoreService }, { token: NG_DOC_DEFAULT_THEME_ID, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
116
+ async setAutoTheme() {
117
+ if (this.autoTheme !== undefined) {
118
+ const isDark = this.window.matchMedia('(prefers-color-scheme: dark)').matches;
119
+ const [light, dark] = this.autoTheme;
120
+ this.store.set(NG_DOC_STORE_THEME_KEY, NgDocThemeService_1.autoThemeId);
121
+ return this.set(isDark ? dark?.id : light?.id, false);
122
+ }
123
+ }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocThemeService, deps: [{ token: WINDOW }, { token: DOCUMENT }, { token: NG_DOC_THEME }, { token: i1.NgDocStoreService }], target: i0.ɵɵFactoryTarget.Injectable }); }
95
125
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocThemeService, providedIn: 'root' }); }
96
126
  };
97
- NgDocThemeService = __decorate([
127
+ NgDocThemeService = NgDocThemeService_1 = __decorate([
98
128
  UntilDestroy(),
99
- __metadata("design:paramtypes", [Document, Array, NgDocStoreService, String])
129
+ __metadata("design:paramtypes", [Window,
130
+ Document, Array, NgDocStoreService])
100
131
  ], NgDocThemeService);
101
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocThemeService, decorators: [{
102
133
  type: Injectable,
103
134
  args: [{
104
135
  providedIn: 'root',
105
136
  }]
106
- }], ctorParameters: function () { return [{ type: Document, decorators: [{
137
+ }], ctorParameters: function () { return [{ type: Window, decorators: [{
138
+ type: Inject,
139
+ args: [WINDOW]
140
+ }] }, { type: Document, decorators: [{
107
141
  type: Inject,
108
142
  args: [DOCUMENT]
109
143
  }] }, { type: undefined, decorators: [{
110
144
  type: Inject,
111
145
  args: [NG_DOC_THEME]
112
- }] }, { type: i1.NgDocStoreService }, { type: undefined, decorators: [{
113
- type: Inject,
114
- args: [NG_DOC_DEFAULT_THEME_ID]
115
- }, {
116
- type: Optional
117
- }] }]; } });
146
+ }] }, { type: i1.NgDocStoreService }]; } });
118
147
 
119
148
  /**
120
149
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-services-theme.mjs","sources":["../../../../libs/app/services/theme/theme.service.ts","../../../../libs/app/services/theme/ng-doc-app-services-theme.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { NG_DOC_NIGHT_THEME, NG_DOC_STORE_THEME_KEY } from '@ng-doc/app/constants';\nimport { NgDocTheme } from '@ng-doc/app/interfaces';\nimport { NgDocStoreService } from '@ng-doc/app/services/store';\nimport { NG_DOC_DEFAULT_THEME_ID, NG_DOC_THEME } from '@ng-doc/app/tokens';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { fromEvent, Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * Service for managing themes.\n */\n@Injectable({\n\tprovidedIn: 'root',\n})\n@UntilDestroy()\nexport class NgDocThemeService {\n\tprivate linkElement?: HTMLLinkElement;\n\tprivate theme: NgDocTheme | undefined = undefined;\n\tprivate readonly theme$: Subject<NgDocTheme | undefined> = new Subject<NgDocTheme | undefined>();\n\tprivate readonly disableAutoTheme$: Subject<void> = new Subject<void>();\n\n\tconstructor(\n\t\t@Inject(DOCUMENT)\n\t\tprivate readonly document: Document,\n\t\t@Inject(NG_DOC_THEME)\n\t\tprivate readonly themes: NgDocTheme[],\n\t\tprivate readonly store: NgDocStoreService,\n\t\t@Inject(NG_DOC_DEFAULT_THEME_ID)\n\t\t@Optional()\n\t\tprivate readonly defaultThemeId?: string | 'auto',\n\t) {\n\t\tif (this.defaultThemeId === 'auto') {\n\t\t\tfromEvent<MediaQueryList>(window.matchMedia('(prefers-color-scheme: dark)'), 'change')\n\t\t\t\t.pipe(takeUntil(this.disableAutoTheme$), untilDestroyed(this))\n\t\t\t\t.subscribe((event: MediaQueryList) =>\n\t\t\t\t\tthis.set(event.matches ? NG_DOC_NIGHT_THEME.id : undefined, false),\n\t\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Returns the current theme.\n\t */\n\tget currentTheme(): NgDocTheme | undefined {\n\t\treturn this.theme;\n\t}\n\n\t/**\n\t * Sets the theme by id.\n\t *\n\t * @param id Theme id.\n\t * @param save Whether to save the theme in the store to restore it when the page is reloaded. (`true` by default)\n\t */\n\tset(id?: string | 'auto', save: boolean = true): Promise<void> {\n\t\tthis.removeLink();\n\n\t\tif (id === 'auto') {\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tsave && this.disableAutoTheme$.next();\n\n\t\tif (id !== 'day' && id) {\n\t\t\tconst theme: NgDocTheme | undefined = this.themes.find(\n\t\t\t\t(theme: NgDocTheme) => theme.id === id,\n\t\t\t);\n\n\t\t\tif (!theme) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`Theme with id \"${id}\" is not registered. Make sure that you registered it in the root of your application.`,\n\t\t\t\t);\n\n\t\t\t\treturn Promise.resolve();\n\t\t\t}\n\n\t\t\tthis.createLinkIfNoExists();\n\n\t\t\tif (this.linkElement) {\n\t\t\t\tthis.linkElement.href = theme.path;\n\t\t\t\tsave && this.store.set(NG_DOC_STORE_THEME_KEY, theme.id);\n\t\t\t\tthis.theme = theme;\n\n\t\t\t\treturn new Promise<void>((resolve: () => void, reject: (err: Event | string) => void) => {\n\t\t\t\t\tif (this.linkElement) {\n\t\t\t\t\t\tthis.linkElement.onload = () => {\n\t\t\t\t\t\t\tthis.theme$.next(theme);\n\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t};\n\t\t\t\t\t\tthis.linkElement.onerror = reject;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tsave && this.store.set(NG_DOC_STORE_THEME_KEY, 'day');\n\n\t\tthis.theme$.next(undefined);\n\n\t\treturn Promise.resolve();\n\t}\n\n\t/**\n\t * Returns an observable that emits when the theme changes.\n\t */\n\tthemeChanges(): Observable<NgDocTheme | undefined> {\n\t\treturn this.theme$.asObservable();\n\t}\n\n\tprivate removeLink(): void {\n\t\tthis.theme = undefined;\n\t\tthis.linkElement?.remove();\n\t\tthis.linkElement = undefined;\n\t}\n\n\tprivate createLinkIfNoExists(): void {\n\t\tif (!this.linkElement) {\n\t\t\tthis.linkElement = this.document.createElement('link');\n\t\t\tthis.linkElement.setAttribute('rel', 'stylesheet');\n\t\t\tthis.linkElement.setAttribute('type', 'text/css');\n\t\t\tthis.document.getElementsByTagName('head')[0].appendChild(this.linkElement);\n\t\t}\n\t}\n}\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-services-theme.mjs","sources":["../../../../libs/app/services/theme/theme.service.ts","../../../../libs/app/services/theme/ng-doc-app-services-theme.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\nimport { NG_DOC_STORE_THEME_KEY } from '@ng-doc/app/constants';\nimport { NgDocTheme } from '@ng-doc/app/interfaces';\nimport { NgDocStoreService } from '@ng-doc/app/services/store';\nimport { NG_DOC_THEME } from '@ng-doc/app/tokens';\nimport { WINDOW } from '@ng-web-apis/common';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { fromEvent, Observable, Subject } from 'rxjs';\n\n/**\n * Service for managing themes.\n */\n@Injectable({\n\tprovidedIn: 'root',\n})\n@UntilDestroy()\nexport class NgDocThemeService {\n\tstatic readonly autoThemeId: string = 'ng-doc-auto';\n\n\tprivate linkElement?: HTMLLinkElement;\n\tprivate theme: NgDocTheme | undefined = undefined;\n\tprivate readonly theme$: Subject<NgDocTheme | undefined> = new Subject<NgDocTheme | undefined>();\n\tprivate autoTheme: [NgDocTheme | undefined, NgDocTheme | undefined] | undefined = undefined;\n\n\tconstructor(\n\t\t@Inject(WINDOW)\n\t\tprivate readonly window: Window,\n\t\t@Inject(DOCUMENT)\n\t\tprivate readonly document: Document,\n\t\t@Inject(NG_DOC_THEME)\n\t\tprivate readonly themes: NgDocTheme[],\n\t\tprivate readonly store: NgDocStoreService,\n\t) {\n\t\tfromEvent<MediaQueryList>(this.window.matchMedia('(prefers-color-scheme: dark)'), 'change')\n\t\t\t.pipe(untilDestroyed(this))\n\t\t\t.subscribe(() => this.setAutoTheme());\n\t}\n\n\t/**\n\t * Returns the current theme.\n\t */\n\tget currentTheme(): NgDocTheme | undefined {\n\t\treturn this.theme;\n\t}\n\n\t/**\n\t * Returns whether automatic theme switching based on the user's operating system settings is enabled.\n\t */\n\tget isAutoThemeEnabled(): boolean {\n\t\treturn this.autoTheme !== undefined;\n\t}\n\n\t/**\n\t * Enables automatic theme switching based on the user's operating system settings.\n\t *\n\t * @param light - Theme for light mode.\n\t * @param dark - Theme for dark mode.\n\t */\n\tasync enableAutoTheme(\n\t\tlight: NgDocTheme | undefined,\n\t\tdark: NgDocTheme | undefined,\n\t): Promise<void> {\n\t\tthis.autoTheme = [light, dark];\n\n\t\treturn this.setAutoTheme();\n\t}\n\n\t/**\n\t * Disables automatic theme switching based on the user's operating system settings.\n\t */\n\tasync disableAutoTheme(): Promise<void> {\n\t\tthis.autoTheme = undefined;\n\n\t\treturn this.set(this.store.get(NG_DOC_STORE_THEME_KEY) ?? undefined);\n\t}\n\n\t/**\n\t * Sets the theme by id.\n\t *\n\t * @param id - Theme id.\n\t * @param save - Whether to save the theme in the store to restore it when the page is reloaded. (`true` by default)\n\t */\n\tasync set(id?: string, save: boolean = true): Promise<void> {\n\t\tthis.removeLink();\n\n\t\tif (save) {\n\t\t\tthis.autoTheme = undefined;\n\t\t}\n\n\t\tif (id) {\n\t\t\tconst theme: NgDocTheme | undefined = this.themes.find(\n\t\t\t\t(theme: NgDocTheme) => theme.id === id,\n\t\t\t);\n\n\t\t\tif (!theme) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`Theme with id \"${id}\" is not registered. Make sure that you registered it in the root of your application.`,\n\t\t\t\t);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.createLinkIfNoExists();\n\n\t\t\tif (this.linkElement) {\n\t\t\t\tthis.linkElement.href = theme.path;\n\t\t\t\tsave && this.store.set(NG_DOC_STORE_THEME_KEY, theme.id);\n\t\t\t\tthis.theme = theme;\n\n\t\t\t\treturn new Promise<void>((resolve: () => void, reject: (err: Event | string) => void) => {\n\t\t\t\t\tif (this.linkElement) {\n\t\t\t\t\t\tthis.linkElement.onload = () => {\n\t\t\t\t\t\t\tthis.theme$.next(theme);\n\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t};\n\t\t\t\t\t\tthis.linkElement.onerror = reject;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tsave && this.store.set(NG_DOC_STORE_THEME_KEY, 'ng-doc-day');\n\n\t\tthis.theme$.next(undefined);\n\n\t\treturn Promise.resolve();\n\t}\n\n\t/**\n\t * Returns an observable that emits when the theme changes.\n\t */\n\tthemeChanges(): Observable<NgDocTheme | undefined> {\n\t\treturn this.theme$.asObservable();\n\t}\n\n\tprivate removeLink(): void {\n\t\tthis.theme = undefined;\n\t\tthis.linkElement?.remove();\n\t\tthis.linkElement = undefined;\n\t}\n\n\tprivate createLinkIfNoExists(): void {\n\t\tif (!this.linkElement) {\n\t\t\tthis.linkElement = this.document.createElement('link');\n\t\t\tthis.linkElement.setAttribute('rel', 'stylesheet');\n\t\t\tthis.linkElement.setAttribute('type', 'text/css');\n\t\t\tthis.document.getElementsByTagName('head')[0].appendChild(this.linkElement);\n\t\t}\n\t}\n\n\tprivate async setAutoTheme(): Promise<void> {\n\t\tif (this.autoTheme !== undefined) {\n\t\t\tconst isDark: boolean = this.window.matchMedia('(prefers-color-scheme: dark)').matches;\n\t\t\tconst [light, dark] = this.autoTheme;\n\t\t\tthis.store.set(NG_DOC_STORE_THEME_KEY, NgDocThemeService.autoThemeId);\n\n\t\t\treturn this.set(isDark ? dark?.id : light?.id, false);\n\t\t}\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -44,12 +44,12 @@ const NG_DOC_PAGE_SKELETON = new InjectionToken('NG_DOC_PAGE_SKELETON');
44
44
  * For example
45
45
  * ```typescript
46
46
  * @NgModule({
47
- * declarations: [AppComponent],
48
- * imports: [],
49
- * providers: [
50
- * {provide: NG_DOC_THEME, useValue: {id: 'CustomTheme', path: '/assets/themes/custom.css'}, multi: true}
51
- * ],
52
- * bootstrap: [AppComponent],
47
+ * declarations: [AppComponent],
48
+ * imports: [],
49
+ * providers: [
50
+ * {provide: NG_DOC_THEME, useValue: {id: 'CustomTheme', path: '/assets/themes/custom.css'}, multi: true}
51
+ * ],
52
+ * bootstrap: [AppComponent],
53
53
  * })
54
54
  * export class AppModule {}
55
55
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-tokens.mjs","sources":["../../../../libs/app/tokens/api-list.ts","../../../../libs/app/tokens/context.ts","../../../../libs/app/tokens/page-processor.ts","../../../../libs/app/tokens/page-skeleton.ts","../../../../libs/app/tokens/theme.ts","../../../../libs/app/tokens/type-control.ts","../../../../libs/app/tokens/ng-doc-app-tokens.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {NgDocApiList} from '@ng-doc/core/interfaces';\n\nexport const NG_DOC_API_LIST_TOKEN: InjectionToken<NgDocApiList[]> = new InjectionToken<NgDocApiList[]>(\n\t'API_LIST_TOKEN',\n);\n","import {InjectionToken} from '@angular/core';\nimport {NgDocContext} from '@ng-doc/app/interfaces';\n\nexport const NG_DOC_CONTEXT: InjectionToken<NgDocContext> = new InjectionToken<NgDocContext>('NG_DOC_CONTEXT');\n","import { InjectionToken, Provider } from '@angular/core';\nimport { NgDocPageProcessor } from '@ng-doc/app/interfaces';\nimport { asArray } from '@ng-doc/core';\n\nexport const NG_DOC_PAGE_PROCESSOR: InjectionToken<NgDocPageProcessor<unknown>> =\n\tnew InjectionToken<NgDocPageProcessor<unknown>>('NG_DOC_PAGE_PROCESSOR');\nexport const NG_DOC_PAGE_CUSTOM_PROCESSOR: InjectionToken<NgDocPageProcessor<unknown>> =\n\tnew InjectionToken<NgDocPageProcessor<unknown>>('NG_DOC_PAGE_CUSTOM_PROCESSOR');\n\n/**\n * Provide a main processor to replace html nodes with an Angular component.\n * Main processors are run before custom processors.\n *\n * @param processors - The processor to provide.\n */\nexport function provideMainPageProcessor<T>(\n\tprocessors: NgDocPageProcessor<T> | Array<NgDocPageProcessor<T>>,\n): Provider[] {\n\treturn asArray(processors).map((processor) => ({\n\t\tprovide: NG_DOC_PAGE_PROCESSOR,\n\t\tuseValue: processor,\n\t\tmulti: true,\n\t}));\n}\n\n/**\n * Provide a processor to replace html nodes with an Angular component.\n *\n * @param processors - The processor to provide.\n */\nexport function providePageProcessor<T>(\n\tprocessors: NgDocPageProcessor<T> | Array<NgDocPageProcessor<T>>,\n): Provider[] {\n\treturn asArray(processors).map((processor) => ({\n\t\tprovide: NG_DOC_PAGE_CUSTOM_PROCESSOR,\n\t\tuseValue: processor,\n\t\tmulti: true,\n\t}));\n}\n","import { InjectionToken } from '@angular/core';\nimport { NgDocPageSkeleton } from '@ng-doc/app/interfaces';\n\nexport const NG_DOC_PAGE_SKELETON: InjectionToken<NgDocPageSkeleton> =\n\tnew InjectionToken<NgDocPageSkeleton>('NG_DOC_PAGE_SKELETON');\n","import {InjectionToken} from '@angular/core';\nimport {NgDocTheme} from '@ng-doc/app/interfaces';\n\n/**\n * Token that can be used to provide custom theme.\n * You must compile your theme to CSS and add it to `assets` so that NgDoc can load it dynamically.\n *\n * You always should provide custom themes in root of your application with `multi: true` parameter.\n *\n * For example\n * ```typescript\n * @NgModule({\n * \tdeclarations: [AppComponent],\n * \timports: [],\n * \tproviders: [\n * \t {provide: NG_DOC_THEME, useValue: {id: 'CustomTheme', path: '/assets/themes/custom.css'}, multi: true}\n * \t],\n * \tbootstrap: [AppComponent],\n * })\n * export class AppModule {}\n * ```\n */\nexport const NG_DOC_THEME: InjectionToken<NgDocTheme> = new InjectionToken<NgDocTheme>(`NG_DOC_THEME`);\n\n/**\n * Default theme for application if user didn't change it manually.\n *\n * You can provide this token in the root of you application, to set theme by default.\n */\nexport const NG_DOC_DEFAULT_THEME_ID: InjectionToken<string> = new InjectionToken<string>(`NG_DOC_DEFAULT_THEME`);\n","import {InjectionToken} from '@angular/core';\nimport {NgDocTypeControl} from '@ng-doc/app/interfaces';\n\nexport const NG_DOC_TYPE_CONTROL: InjectionToken<NgDocTypeControl> = new InjectionToken<NgDocTypeControl>(\n\t'NG_DOC_TYPE_CONTROL',\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAGa,qBAAqB,GAAmC,IAAI,cAAc,CACtF,gBAAgB;;MCDJ,cAAc,GAAiC,IAAI,cAAc,CAAe,gBAAgB;;MCChG,qBAAqB,GACjC,IAAI,cAAc,CAA8B,uBAAuB,EAAE;MAC7D,4BAA4B,GACxC,IAAI,cAAc,CAA8B,8BAA8B,EAAE;AAEjF;;;;;AAKG;AACG,SAAU,wBAAwB,CACvC,UAAgE,EAAA;AAEhE,IAAA,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM;AAC9C,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,KAAK,EAAE,IAAI;AACX,KAAA,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;AAIG;AACG,SAAU,oBAAoB,CACnC,UAAgE,EAAA;AAEhE,IAAA,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM;AAC9C,QAAA,OAAO,EAAE,4BAA4B;AACrC,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,KAAK,EAAE,IAAI;AACX,KAAA,CAAC,CAAC,CAAC;AACL;;MCnCa,oBAAoB,GAChC,IAAI,cAAc,CAAoB,sBAAsB;;ACD7D;;;;;;;;;;;;;;;;;;AAkBG;MACU,YAAY,GAA+B,IAAI,cAAc,CAAa,CAAc,YAAA,CAAA,EAAE;AAEvG;;;;AAIG;MACU,uBAAuB,GAA2B,IAAI,cAAc,CAAS,CAAsB,oBAAA,CAAA;;MC1BnG,mBAAmB,GAAqC,IAAI,cAAc,CACtF,qBAAqB;;ACJtB;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-doc-app-tokens.mjs","sources":["../../../../libs/app/tokens/api-list.ts","../../../../libs/app/tokens/context.ts","../../../../libs/app/tokens/page-processor.ts","../../../../libs/app/tokens/page-skeleton.ts","../../../../libs/app/tokens/theme.ts","../../../../libs/app/tokens/type-control.ts","../../../../libs/app/tokens/ng-doc-app-tokens.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { NgDocApiList } from '@ng-doc/core/interfaces';\n\nexport const NG_DOC_API_LIST_TOKEN: InjectionToken<NgDocApiList[]> = new InjectionToken<\n\tNgDocApiList[]\n>('API_LIST_TOKEN');\n","import { InjectionToken } from '@angular/core';\nimport { NgDocContext } from '@ng-doc/app/interfaces';\n\nexport const NG_DOC_CONTEXT: InjectionToken<NgDocContext> = new InjectionToken<NgDocContext>(\n\t'NG_DOC_CONTEXT',\n);\n","import { InjectionToken, Provider } from '@angular/core';\nimport { NgDocPageProcessor } from '@ng-doc/app/interfaces';\nimport { asArray } from '@ng-doc/core';\n\nexport const NG_DOC_PAGE_PROCESSOR: InjectionToken<NgDocPageProcessor<unknown>> =\n\tnew InjectionToken<NgDocPageProcessor<unknown>>('NG_DOC_PAGE_PROCESSOR');\nexport const NG_DOC_PAGE_CUSTOM_PROCESSOR: InjectionToken<NgDocPageProcessor<unknown>> =\n\tnew InjectionToken<NgDocPageProcessor<unknown>>('NG_DOC_PAGE_CUSTOM_PROCESSOR');\n\n/**\n * Provide a main processor to replace html nodes with an Angular component.\n * Main processors are run before custom processors.\n *\n * @param processors - The processor to provide.\n */\nexport function provideMainPageProcessor<T>(\n\tprocessors: NgDocPageProcessor<T> | Array<NgDocPageProcessor<T>>,\n): Provider[] {\n\treturn asArray(processors).map((processor) => ({\n\t\tprovide: NG_DOC_PAGE_PROCESSOR,\n\t\tuseValue: processor,\n\t\tmulti: true,\n\t}));\n}\n\n/**\n * Provide a processor to replace html nodes with an Angular component.\n *\n * @param processors - The processor to provide.\n */\nexport function providePageProcessor<T>(\n\tprocessors: NgDocPageProcessor<T> | Array<NgDocPageProcessor<T>>,\n): Provider[] {\n\treturn asArray(processors).map((processor) => ({\n\t\tprovide: NG_DOC_PAGE_CUSTOM_PROCESSOR,\n\t\tuseValue: processor,\n\t\tmulti: true,\n\t}));\n}\n","import { InjectionToken } from '@angular/core';\nimport { NgDocPageSkeleton } from '@ng-doc/app/interfaces';\n\nexport const NG_DOC_PAGE_SKELETON: InjectionToken<NgDocPageSkeleton> =\n\tnew InjectionToken<NgDocPageSkeleton>('NG_DOC_PAGE_SKELETON');\n","import { InjectionToken } from '@angular/core';\nimport { NgDocTheme } from '@ng-doc/app/interfaces';\n\n/**\n * Token that can be used to provide custom theme.\n * You must compile your theme to CSS and add it to `assets` so that NgDoc can load it dynamically.\n *\n * You always should provide custom themes in root of your application with `multi: true` parameter.\n *\n * For example\n * ```typescript\n * @NgModule({\n * declarations: [AppComponent],\n * imports: [],\n * providers: [\n * {provide: NG_DOC_THEME, useValue: {id: 'CustomTheme', path: '/assets/themes/custom.css'}, multi: true}\n * ],\n * bootstrap: [AppComponent],\n * })\n * export class AppModule {}\n * ```\n */\nexport const NG_DOC_THEME: InjectionToken<NgDocTheme> = new InjectionToken<NgDocTheme>(\n\t`NG_DOC_THEME`,\n);\n\n/**\n * Default theme for application if user didn't change it manually.\n *\n * You can provide this token in the root of you application, to set theme by default.\n */\nexport const NG_DOC_DEFAULT_THEME_ID: InjectionToken<string> = new InjectionToken<string>(\n\t`NG_DOC_DEFAULT_THEME`,\n);\n","import { InjectionToken } from '@angular/core';\nimport { NgDocTypeControl } from '@ng-doc/app/interfaces';\n\nexport const NG_DOC_TYPE_CONTROL: InjectionToken<NgDocTypeControl> =\n\tnew InjectionToken<NgDocTypeControl>('NG_DOC_TYPE_CONTROL');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAGa,qBAAqB,GAAmC,IAAI,cAAc,CAErF,gBAAgB;;MCFL,cAAc,GAAiC,IAAI,cAAc,CAC7E,gBAAgB;;MCAJ,qBAAqB,GACjC,IAAI,cAAc,CAA8B,uBAAuB,EAAE;MAC7D,4BAA4B,GACxC,IAAI,cAAc,CAA8B,8BAA8B,EAAE;AAEjF;;;;;AAKG;AACG,SAAU,wBAAwB,CACvC,UAAgE,EAAA;AAEhE,IAAA,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM;AAC9C,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,KAAK,EAAE,IAAI;AACX,KAAA,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;AAIG;AACG,SAAU,oBAAoB,CACnC,UAAgE,EAAA;AAEhE,IAAA,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM;AAC9C,QAAA,OAAO,EAAE,4BAA4B;AACrC,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,KAAK,EAAE,IAAI;AACX,KAAA,CAAC,CAAC,CAAC;AACL;;MCnCa,oBAAoB,GAChC,IAAI,cAAc,CAAoB,sBAAsB;;ACD7D;;;;;;;;;;;;;;;;;;AAkBG;MACU,YAAY,GAA+B,IAAI,cAAc,CACzE,CAAc,YAAA,CAAA,EACb;AAEF;;;;AAIG;MACU,uBAAuB,GAA2B,IAAI,cAAc,CAChF,CAAsB,oBAAA,CAAA;;MC7BV,mBAAmB,GAC/B,IAAI,cAAc,CAAmB,qBAAqB;;ACJ3D;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-type-controls-boolean-control.mjs","sources":["../../../../libs/app/type-controls/boolean-control/boolean-control.component.ts","../../../../libs/app/type-controls/boolean-control/boolean-control.component.html","../../../../libs/app/type-controls/boolean-control/ng-doc-app-type-controls-boolean-control.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {NgDocTypeControl} from '@ng-doc/app/interfaces';\nimport {NgDocSanitizeHtmlPipe} from '@ng-doc/app/pipes';\nimport {NgDocCheckboxComponent, NgDocTooltipDirective} from '@ng-doc/ui-kit';\nimport {FlControlHost, provideControlHost} from 'flex-controls';\n\n@Component({\n\tselector: 'ng-doc-boolean-control',\n\ttemplateUrl: './boolean-control.component.html',\n\tstyleUrls: ['./boolean-control.component.scss'],\n\tproviders: [provideControlHost(NgDocBooleanControlComponent)],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [NgDocCheckboxComponent, NgDocTooltipDirective, NgDocSanitizeHtmlPipe],\n})\nexport class NgDocBooleanControlComponent\n\textends FlControlHost<boolean | undefined>\n\timplements NgDocTypeControl<boolean | undefined>\n{\n\tdefault?: boolean;\n\n\tname: string = '';\n\tdescription: string = '';\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.controlChange.subscribe(() => this.onTouched());\n\t}\n\n\tget defaultValue(): boolean | undefined {\n\t\treturn Object.prototype.hasOwnProperty.call(this, 'default') ? this.default : false;\n\t}\n\n\toverride updateModel(obj: boolean | null | undefined) {\n\t\tsuper.updateModel(obj ? obj : !this.defaultValue ? this.defaultValue : false);\n\t}\n}\n","<ng-doc-checkbox [ngDocTooltip]=\"tooltipTemplate\" [canOpen]=\"!!description\">\n\t{{ name }}\n\t<ng-template #tooltipTemplate>\n\t\t<div [innerHTML]=\"description | ngDocSanitizeHtml\"></div>\n\t</ng-template>\n</ng-doc-checkbox>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAMA,MASa,4BACZ,SAAQ,aAAkC,CAAA;AAQ1C,IAAA,WAAA,GAAA;AACC,QAAA,KAAK,EAAE,CAAC;QAJT,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AAKxB,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;KACrD;AAED,IAAA,IAAI,YAAY,GAAA;QACf,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACpF;AAEQ,IAAA,WAAW,CAAC,GAA+B,EAAA;QACnD,KAAK,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;KAC9E;8GArBW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAL7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,CAAC,kBAAkB,CAAC,4BAA4B,CAAC,CAAC,ECV9D,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2OAMA,EDOW,MAAA,EAAA,CAAA,yCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,sBAAsB,EAAE,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,qUAAE,qBAAqB,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAElE,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBATxC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,aAGvB,CAAC,kBAAkB,8BAA8B,CAAC,EAAA,eAAA,EAC5C,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,WACP,CAAC,sBAAsB,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,EAAA,QAAA,EAAA,2OAAA,EAAA,MAAA,EAAA,CAAA,yCAAA,CAAA,EAAA,CAAA;;;AEbhF;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-doc-app-type-controls-boolean-control.mjs","sources":["../../../../libs/app/type-controls/boolean-control/boolean-control.component.ts","../../../../libs/app/type-controls/boolean-control/boolean-control.component.html","../../../../libs/app/type-controls/boolean-control/ng-doc-app-type-controls-boolean-control.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgDocTypeControl } from '@ng-doc/app/interfaces';\nimport { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes';\nimport { NgDocCheckboxComponent, NgDocTooltipDirective } from '@ng-doc/ui-kit';\nimport { FlControlHost, provideControlHost } from 'flex-controls';\n\n@Component({\n\tselector: 'ng-doc-boolean-control',\n\ttemplateUrl: './boolean-control.component.html',\n\tstyleUrls: ['./boolean-control.component.scss'],\n\tproviders: [provideControlHost(NgDocBooleanControlComponent)],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [NgDocCheckboxComponent, NgDocTooltipDirective, NgDocSanitizeHtmlPipe],\n})\nexport class NgDocBooleanControlComponent\n\textends FlControlHost<boolean | undefined>\n\timplements NgDocTypeControl<boolean | undefined>\n{\n\tdefault?: boolean;\n\n\tname: string = '';\n\tdescription: string = '';\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.controlChange.subscribe(() => this.onTouched());\n\t}\n\n\tget defaultValue(): boolean | undefined {\n\t\treturn Object.prototype.hasOwnProperty.call(this, 'default') ? this.default : false;\n\t}\n\n\toverride updateModel(obj: boolean | null | undefined) {\n\t\tsuper.updateModel(obj ? obj : !this.defaultValue ? this.defaultValue : false);\n\t}\n}\n","<ng-doc-checkbox [ngDocTooltip]=\"tooltipTemplate\" [canOpen]=\"!!description\">\n\t{{ name }}\n\t<ng-template #tooltipTemplate>\n\t\t<div [innerHTML]=\"description | ngDocSanitizeHtml\"></div>\n\t</ng-template>\n</ng-doc-checkbox>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAMA,MASa,4BACZ,SAAQ,aAAkC,CAAA;AAQ1C,IAAA,WAAA,GAAA;AACC,QAAA,KAAK,EAAE,CAAC;QAJT,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AAKxB,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;KACrD;AAED,IAAA,IAAI,YAAY,GAAA;QACf,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACpF;AAEQ,IAAA,WAAW,CAAC,GAA+B,EAAA;QACnD,KAAK,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;KAC9E;8GArBW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAL7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,CAAC,kBAAkB,CAAC,4BAA4B,CAAC,CAAC,ECV9D,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2OAMA,EDOW,MAAA,EAAA,CAAA,yCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,sBAAsB,EAAE,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,qUAAE,qBAAqB,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAElE,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBATxC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,aAGvB,CAAC,kBAAkB,8BAA8B,CAAC,EAAA,eAAA,EAC5C,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,WACP,CAAC,sBAAsB,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,EAAA,QAAA,EAAA,2OAAA,EAAA,MAAA,EAAA,CAAA,yCAAA,CAAA,EAAA,CAAA;;;AEbhF;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-type-controls-number-control.mjs","sources":["../../../../libs/app/type-controls/number-control/number-control.component.ts","../../../../libs/app/type-controls/number-control/number-control.component.html","../../../../libs/app/type-controls/number-control/ng-doc-app-type-controls-number-control.ts"],"sourcesContent":["import {NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {NgDocTypeControl} from '@ng-doc/app/interfaces';\nimport {\n\tNgDocButtonIconComponent,\n\tNgDocFocusableDirective,\n\tNgDocIconComponent,\n\tNgDocInputNumberDirective,\n\tNgDocInputWrapperComponent,\n} from '@ng-doc/ui-kit';\nimport {FlControl, FlControlSilencerModule} from 'flex-controls';\n\n@Component({\n\tselector: 'ng-doc-number-control',\n\ttemplateUrl: './number-control.component.html',\n\tstyleUrls: ['./number-control.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgDocInputWrapperComponent,\n\t\tFlControlSilencerModule,\n\t\tNgDocInputNumberDirective,\n\t\tFormsModule,\n\t\tNgIf,\n\t\tNgDocButtonIconComponent,\n\t\tNgDocFocusableDirective,\n\t\tNgDocIconComponent,\n\t],\n})\nexport class NgDocNumberControlComponent extends FlControl<number> implements NgDocTypeControl<number> {\n\t@Input()\n\tdefault?: number;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tchangeModel(value: number | null): void {\n\t\tthis.updateModel(value === null && this.default ? this.default : value);\n\t}\n}\n","<ng-doc-input-wrapper flControlSilencer [rightContent]=\"rightContent\">\n\t<input ngDocInputNumber type=\"number\" [ngModel]=\"model\" (ngModelChange)=\"changeModel($event)\" />\n\t<ng-template #rightContent>\n\t\t<button\n\t\t\tng-doc-button-icon\n\t\t\tsize=\"large\"\n\t\t\t[ngDocFocusable]=\"false\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[rounded]=\"false\"\n\t\t\t(click)=\"updateModel(default ?? null)\"\n\t\t\t(focusout)=\"onTouched()\"\n\t\t\t*ngIf=\"model && model !== default\">\n\t\t\t<ng-doc-icon icon=\"x\"></ng-doc-icon>\n\t\t</button>\n\t</ng-template>\n</ng-doc-input-wrapper>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAaA,MAiBa,2BAA4B,SAAQ,SAAiB,CAAA;AAIjE,IAAA,WAAA,GAAA;AACC,QAAA,KAAK,EAAE,CAAC;KACR;AAED,IAAA,WAAW,CAAC,KAAoB,EAAA;QAC/B,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;KACxE;8GAVW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,wIC9BxC,qlBAgBA,EAAA,MAAA,EAAA,CAAA,mCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDIE,0BAA0B,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAC1B,uBAAuB,EACvB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,yBAAyB,EACzB,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,ixBACX,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACJ,wBAAwB,EACxB,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,uBAAuB,uHACvB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAGP,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAjBvC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,mBAGhB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACR,0BAA0B;wBAC1B,uBAAuB;wBACvB,yBAAyB;wBACzB,WAAW;wBACX,IAAI;wBACJ,wBAAwB;wBACxB,uBAAuB;wBACvB,kBAAkB;AAClB,qBAAA,EAAA,QAAA,EAAA,qlBAAA,EAAA,MAAA,EAAA,CAAA,mCAAA,CAAA,EAAA,CAAA;0EAID,OAAO,EAAA,CAAA;sBADN,KAAK;;;AE/BP;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-doc-app-type-controls-number-control.mjs","sources":["../../../../libs/app/type-controls/number-control/number-control.component.ts","../../../../libs/app/type-controls/number-control/number-control.component.html","../../../../libs/app/type-controls/number-control/ng-doc-app-type-controls-number-control.ts"],"sourcesContent":["import { NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgDocTypeControl } from '@ng-doc/app/interfaces';\nimport {\n\tNgDocButtonIconComponent,\n\tNgDocFocusableDirective,\n\tNgDocIconComponent,\n\tNgDocInputNumberDirective,\n\tNgDocInputWrapperComponent,\n} from '@ng-doc/ui-kit';\nimport { FlControl, FlControlSilencerModule } from 'flex-controls';\n\n@Component({\n\tselector: 'ng-doc-number-control',\n\ttemplateUrl: './number-control.component.html',\n\tstyleUrls: ['./number-control.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgDocInputWrapperComponent,\n\t\tFlControlSilencerModule,\n\t\tNgDocInputNumberDirective,\n\t\tFormsModule,\n\t\tNgIf,\n\t\tNgDocButtonIconComponent,\n\t\tNgDocFocusableDirective,\n\t\tNgDocIconComponent,\n\t],\n})\nexport class NgDocNumberControlComponent\n\textends FlControl<number>\n\timplements NgDocTypeControl<number>\n{\n\t@Input()\n\tdefault?: number;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tchangeModel(value: number | null): void {\n\t\tthis.updateModel(value === null && this.default ? this.default : value);\n\t}\n}\n","<ng-doc-input-wrapper flControlSilencer [rightContent]=\"rightContent\">\n\t<input ngDocInputNumber type=\"number\" [ngModel]=\"model\" (ngModelChange)=\"changeModel($event)\" />\n\t<ng-template #rightContent>\n\t\t<button\n\t\t\tng-doc-button-icon\n\t\t\tsize=\"large\"\n\t\t\t[ngDocFocusable]=\"false\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[rounded]=\"false\"\n\t\t\t(click)=\"updateModel(default ?? null)\"\n\t\t\t(focusout)=\"onTouched()\"\n\t\t\t*ngIf=\"model && model !== default\">\n\t\t\t<ng-doc-icon icon=\"x\"></ng-doc-icon>\n\t\t</button>\n\t</ng-template>\n</ng-doc-input-wrapper>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAaA,MAiBa,2BACZ,SAAQ,SAAiB,CAAA;AAMzB,IAAA,WAAA,GAAA;AACC,QAAA,KAAK,EAAE,CAAC;KACR;AAED,IAAA,WAAW,CAAC,KAAoB,EAAA;QAC/B,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;KACxE;8GAbW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,wIC9BxC,qlBAgBA,EAAA,MAAA,EAAA,CAAA,mCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDIE,0BAA0B,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAC1B,uBAAuB,EACvB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,yBAAyB,EACzB,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,ixBACX,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACJ,wBAAwB,EACxB,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,uBAAuB,uHACvB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAGP,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAjBvC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,mBAGhB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACR,0BAA0B;wBAC1B,uBAAuB;wBACvB,yBAAyB;wBACzB,WAAW;wBACX,IAAI;wBACJ,wBAAwB;wBACxB,uBAAuB;wBACvB,kBAAkB;AAClB,qBAAA,EAAA,QAAA,EAAA,qlBAAA,EAAA,MAAA,EAAA,CAAA,mCAAA,CAAA,EAAA,CAAA;0EAOD,OAAO,EAAA,CAAA;sBADN,KAAK;;;AElCP;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-type-controls-string-control.mjs","sources":["../../../../libs/app/type-controls/string-control/string-control.component.ts","../../../../libs/app/type-controls/string-control/string-control.component.html","../../../../libs/app/type-controls/string-control/ng-doc-app-type-controls-string-control.ts"],"sourcesContent":["import {NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {NgDocTypeControl} from '@ng-doc/app/interfaces';\nimport {\n\tNgDocButtonIconComponent,\n\tNgDocFocusableDirective,\n\tNgDocIconComponent,\n\tNgDocInputStringDirective,\n\tNgDocInputWrapperComponent,\n} from '@ng-doc/ui-kit';\nimport {FlControl, FlControlSilencerModule} from 'flex-controls';\n\n@Component({\n\tselector: 'ng-doc-string-control',\n\ttemplateUrl: './string-control.component.html',\n\tstyleUrls: ['./string-control.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tFormsModule,\n\t\tNgDocInputWrapperComponent,\n\t\tFlControlSilencerModule,\n\t\tNgDocInputStringDirective,\n\t\tNgIf,\n\t\tNgDocButtonIconComponent,\n\t\tNgDocFocusableDirective,\n\t\tNgDocIconComponent,\n\t],\n})\nexport class NgDocStringControlComponent extends FlControl<string> implements NgDocTypeControl<string> {\n\t@Input()\n\tdefault?: string;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tchangeModel(value: string | null): void {\n\t\tthis.updateModel(value === null && this.default ? this.default : value);\n\t}\n\n\toverride writeValue(value: string | null) {\n\t\tsuper.writeValue(value);\n\t}\n}\n","<ng-doc-input-wrapper [rightContent]=\"rightContent\" flControlSilencer>\n\t<input ngDocInputString [ngModel]=\"model\" (ngModelChange)=\"changeModel($event)\" />\n\t<ng-template #rightContent>\n\t\t<button\n\t\t\tng-doc-button-icon\n\t\t\tsize=\"large\"\n\t\t\t[ngDocFocusable]=\"false\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[rounded]=\"false\"\n\t\t\t(click)=\"updateModel(default ?? null)\"\n\t\t\t(focusout)=\"onTouched()\"\n\t\t\t*ngIf=\"model && model !== default\">\n\t\t\t<ng-doc-icon icon=\"x\"></ng-doc-icon>\n\t\t</button>\n\t</ng-template>\n</ng-doc-input-wrapper>\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-type-controls-string-control.mjs","sources":["../../../../libs/app/type-controls/string-control/string-control.component.ts","../../../../libs/app/type-controls/string-control/string-control.component.html","../../../../libs/app/type-controls/string-control/ng-doc-app-type-controls-string-control.ts"],"sourcesContent":["import { NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgDocTypeControl } from '@ng-doc/app/interfaces';\nimport {\n\tNgDocButtonIconComponent,\n\tNgDocFocusableDirective,\n\tNgDocIconComponent,\n\tNgDocInputStringDirective,\n\tNgDocInputWrapperComponent,\n} from '@ng-doc/ui-kit';\nimport { FlControl, FlControlSilencerModule } from 'flex-controls';\n\n@Component({\n\tselector: 'ng-doc-string-control',\n\ttemplateUrl: './string-control.component.html',\n\tstyleUrls: ['./string-control.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tFormsModule,\n\t\tNgDocInputWrapperComponent,\n\t\tFlControlSilencerModule,\n\t\tNgDocInputStringDirective,\n\t\tNgIf,\n\t\tNgDocButtonIconComponent,\n\t\tNgDocFocusableDirective,\n\t\tNgDocIconComponent,\n\t],\n})\nexport class NgDocStringControlComponent\n\textends FlControl<string>\n\timplements NgDocTypeControl<string>\n{\n\t@Input()\n\tdefault?: string;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tchangeModel(value: string | null): void {\n\t\tthis.updateModel(value === null && this.default ? this.default : value);\n\t}\n\n\toverride writeValue(value: string | null) {\n\t\tsuper.writeValue(value);\n\t}\n}\n","<ng-doc-input-wrapper [rightContent]=\"rightContent\" flControlSilencer>\n\t<input ngDocInputString [ngModel]=\"model\" (ngModelChange)=\"changeModel($event)\" />\n\t<ng-template #rightContent>\n\t\t<button\n\t\t\tng-doc-button-icon\n\t\t\tsize=\"large\"\n\t\t\t[ngDocFocusable]=\"false\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[rounded]=\"false\"\n\t\t\t(click)=\"updateModel(default ?? null)\"\n\t\t\t(focusout)=\"onTouched()\"\n\t\t\t*ngIf=\"model && model !== default\">\n\t\t\t<ng-doc-icon icon=\"x\"></ng-doc-icon>\n\t\t</button>\n\t</ng-template>\n</ng-doc-input-wrapper>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-type-controls-type-alias-control.mjs","sources":["../../../../libs/app/type-controls/type-alias-control/type-alias-control.component.ts","../../../../libs/app/type-controls/type-alias-control/type-alias-control.component.html","../../../../libs/app/type-controls/type-alias-control/ng-doc-app-type-controls-type-alias-control.ts"],"sourcesContent":["import {NgFor, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {NgDocKindIconComponent} from '@ng-doc/app/components/kind-icon';\nimport {NgDocTypeControl} from '@ng-doc/app/interfaces';\nimport {NgDocExtractValuePipe} from '@ng-doc/app/pipes/extract-value';\nimport {\n\tNgDocButtonIconComponent,\n\tNgDocComboboxComponent,\n\tNgDocDataDirective,\n\tNgDocFocusableDirective,\n\tNgDocIconComponent,\n\tNgDocListComponent,\n\tNgDocOptionComponent,\n\tNgDocTextComponent,\n\tNgDocTextLeftDirective,\n\tNgDocTextRightDirective,\n\tNgDocTooltipDirective,\n} from '@ng-doc/ui-kit';\nimport {FlControl} from 'flex-controls';\n\n@Component({\n\tselector: 'ng-doc-type-alias-control',\n\ttemplateUrl: './type-alias-control.component.html',\n\tstyleUrls: ['./type-alias-control.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgDocComboboxComponent,\n\t\tFormsModule,\n\t\tNgDocDataDirective,\n\t\tNgDocListComponent,\n\t\tNgFor,\n\t\tNgIf,\n\t\tNgDocOptionComponent,\n\t\tNgTemplateOutlet,\n\t\tNgDocTextComponent,\n\t\tNgDocKindIconComponent,\n\t\tNgDocTextLeftDirective,\n\t\tNgDocTooltipDirective,\n\t\tNgDocTextRightDirective,\n\t\tNgDocButtonIconComponent,\n\t\tNgDocFocusableDirective,\n\t\tNgDocIconComponent,\n\t\tNgDocExtractValuePipe,\n\t],\n})\nexport class NgDocTypeAliasControlComponent<T> extends FlControl<T> implements NgDocTypeControl<T> {\n\t@Input()\n\tdefault?: T;\n\n\toptions?: string[];\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\ttypeOf(value: unknown): string {\n\t\treturn typeof value;\n\t}\n\n\tchangeModel(value: T | null): void {\n\t\tthis.updateModel(value === null && this.default ? this.default : value);\n\t}\n}\n","<ng-doc-combobox\n\t[ngModel]=\"model\"\n\t[readonly]=\"true\"\n\t[valueContent]=\"valueTemplate\"\n\t[clearButton]=\"false\"\n\t[rightContent]=\"rightContent\"\n\t(ngModelChange)=\"changeModel($event)\">\n\t<ng-doc-list *ngDocData>\n\t\t<ng-container *ngFor=\"let option of options\">\n\t\t\t<ng-container *ngIf=\"option | ngDocExtractValue as value\">\n\t\t\t\t<ng-doc-option [value]=\"value\">\n\t\t\t\t\t<ng-container\n\t\t\t\t\t\t*ngTemplateOutlet=\"valueTemplate; context: { $implicit: value }\"></ng-container>\n\t\t\t\t</ng-doc-option>\n\t\t\t</ng-container>\n\t\t</ng-container>\n\t</ng-doc-list>\n\t<ng-template let-value #valueTemplate>\n\t\t<div ng-doc-text>\n\t\t\t<ng-doc-kind-icon\n\t\t\t\t[kind]=\"typeOf(value)\"\n\t\t\t\t[type]=\"'type'\"\n\t\t\t\t[ngDocTooltip]=\"typeOf(value)\"\n\t\t\t\tpositions=\"left-center\"\n\t\t\t\tngDocTextLeft>\n\t\t\t</ng-doc-kind-icon>\n\t\t\t<div>{{ value }}</div>\n\t\t\t<span ng-doc-text color=\"muted\" size=\"small\" *ngIf=\"value === default\" ngDocTextRight\n\t\t\t\t>[default]</span\n\t\t\t>\n\t\t</div>\n\t</ng-template>\n\t<ng-template #rightContent>\n\t\t<button\n\t\t\tng-doc-button-icon\n\t\t\tsize=\"large\"\n\t\t\t[ngDocFocusable]=\"false\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[rounded]=\"false\"\n\t\t\t(click)=\"updateModel(default ?? null)\"\n\t\t\t(focusout)=\"onTouched()\"\n\t\t\t*ngIf=\"model && model !== default\">\n\t\t\t<ng-doc-icon icon=\"x\"></ng-doc-icon>\n\t\t</button>\n\t</ng-template>\n</ng-doc-combobox>\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-type-controls-type-alias-control.mjs","sources":["../../../../libs/app/type-controls/type-alias-control/type-alias-control.component.ts","../../../../libs/app/type-controls/type-alias-control/type-alias-control.component.html","../../../../libs/app/type-controls/type-alias-control/ng-doc-app-type-controls-type-alias-control.ts"],"sourcesContent":["import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgDocKindIconComponent } from '@ng-doc/app/components/kind-icon';\nimport { NgDocTypeControl } from '@ng-doc/app/interfaces';\nimport { NgDocExtractValuePipe } from '@ng-doc/app/pipes/extract-value';\nimport {\n\tNgDocButtonIconComponent,\n\tNgDocComboboxComponent,\n\tNgDocDataDirective,\n\tNgDocFocusableDirective,\n\tNgDocIconComponent,\n\tNgDocListComponent,\n\tNgDocOptionComponent,\n\tNgDocTextComponent,\n\tNgDocTextLeftDirective,\n\tNgDocTextRightDirective,\n\tNgDocTooltipDirective,\n} from '@ng-doc/ui-kit';\nimport { FlControl } from 'flex-controls';\n\n@Component({\n\tselector: 'ng-doc-type-alias-control',\n\ttemplateUrl: './type-alias-control.component.html',\n\tstyleUrls: ['./type-alias-control.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgDocComboboxComponent,\n\t\tFormsModule,\n\t\tNgDocDataDirective,\n\t\tNgDocListComponent,\n\t\tNgFor,\n\t\tNgIf,\n\t\tNgDocOptionComponent,\n\t\tNgTemplateOutlet,\n\t\tNgDocTextComponent,\n\t\tNgDocKindIconComponent,\n\t\tNgDocTextLeftDirective,\n\t\tNgDocTooltipDirective,\n\t\tNgDocTextRightDirective,\n\t\tNgDocButtonIconComponent,\n\t\tNgDocFocusableDirective,\n\t\tNgDocIconComponent,\n\t\tNgDocExtractValuePipe,\n\t],\n})\nexport class NgDocTypeAliasControlComponent<T> extends FlControl<T> implements NgDocTypeControl<T> {\n\t@Input()\n\tdefault?: T;\n\n\toptions?: string[];\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\ttypeOf(value: unknown): string {\n\t\treturn typeof value;\n\t}\n\n\tchangeModel(value: T | null): void {\n\t\tthis.updateModel(value === null && this.default ? this.default : value);\n\t}\n}\n","<ng-doc-combobox\n\t[ngModel]=\"model\"\n\t[readonly]=\"true\"\n\t[valueContent]=\"valueTemplate\"\n\t[clearButton]=\"false\"\n\t[rightContent]=\"rightContent\"\n\t(ngModelChange)=\"changeModel($event)\">\n\t<ng-doc-list *ngDocData>\n\t\t<ng-container *ngFor=\"let option of options\">\n\t\t\t<ng-container *ngIf=\"option | ngDocExtractValue as value\">\n\t\t\t\t<ng-doc-option [value]=\"value\">\n\t\t\t\t\t<ng-container\n\t\t\t\t\t\t*ngTemplateOutlet=\"valueTemplate; context: { $implicit: value }\"></ng-container>\n\t\t\t\t</ng-doc-option>\n\t\t\t</ng-container>\n\t\t</ng-container>\n\t</ng-doc-list>\n\t<ng-template let-value #valueTemplate>\n\t\t<div ng-doc-text>\n\t\t\t<ng-doc-kind-icon\n\t\t\t\t[kind]=\"typeOf(value)\"\n\t\t\t\t[type]=\"'type'\"\n\t\t\t\t[ngDocTooltip]=\"typeOf(value)\"\n\t\t\t\tpositions=\"left-center\"\n\t\t\t\tngDocTextLeft>\n\t\t\t</ng-doc-kind-icon>\n\t\t\t<div>{{ value }}</div>\n\t\t\t<span ng-doc-text color=\"muted\" size=\"small\" *ngIf=\"value === default\" ngDocTextRight\n\t\t\t\t>[default]</span\n\t\t\t>\n\t\t</div>\n\t</ng-template>\n\t<ng-template #rightContent>\n\t\t<button\n\t\t\tng-doc-button-icon\n\t\t\tsize=\"large\"\n\t\t\t[ngDocFocusable]=\"false\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[rounded]=\"false\"\n\t\t\t(click)=\"updateModel(default ?? null)\"\n\t\t\t(focusout)=\"onTouched()\"\n\t\t\t*ngIf=\"model && model !== default\">\n\t\t\t<ng-doc-icon icon=\"x\"></ng-doc-icon>\n\t\t</button>\n\t</ng-template>\n</ng-doc-combobox>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-doc/app",
3
- "version": "16.14.0",
3
+ "version": "16.15.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=16.0.0",
6
6
  "@angular/core": ">=16.0.0",
@@ -12,8 +12,8 @@
12
12
  },
13
13
  "dependencies": {
14
14
  "tslib": "^2.3.0",
15
- "@ng-doc/core": "16.14.0",
16
- "@ng-doc/ui-kit": "16.14.0",
15
+ "@ng-doc/core": "16.15.1",
16
+ "@ng-doc/ui-kit": "16.15.1",
17
17
  "@orama/plugin-match-highlight": "1.0.2",
18
18
  "@orama/stemmers": "1.0.2",
19
19
  "highlight.js": "11.5.1"
@@ -6,32 +6,49 @@ import * as i0 from "@angular/core";
6
6
  * Service for managing themes.
7
7
  */
8
8
  export declare class NgDocThemeService {
9
+ private readonly window;
9
10
  private readonly document;
10
11
  private readonly themes;
11
12
  private readonly store;
12
- private readonly defaultThemeId?;
13
+ static readonly autoThemeId: string;
13
14
  private linkElement?;
14
15
  private theme;
15
16
  private readonly theme$;
16
- private readonly disableAutoTheme$;
17
- constructor(document: Document, themes: NgDocTheme[], store: NgDocStoreService, defaultThemeId?: string | undefined);
17
+ private autoTheme;
18
+ constructor(window: Window, document: Document, themes: NgDocTheme[], store: NgDocStoreService);
18
19
  /**
19
20
  * Returns the current theme.
20
21
  */
21
22
  get currentTheme(): NgDocTheme | undefined;
23
+ /**
24
+ * Returns whether automatic theme switching based on the user's operating system settings is enabled.
25
+ */
26
+ get isAutoThemeEnabled(): boolean;
27
+ /**
28
+ * Enables automatic theme switching based on the user's operating system settings.
29
+ *
30
+ * @param light - Theme for light mode.
31
+ * @param dark - Theme for dark mode.
32
+ */
33
+ enableAutoTheme(light: NgDocTheme | undefined, dark: NgDocTheme | undefined): Promise<void>;
34
+ /**
35
+ * Disables automatic theme switching based on the user's operating system settings.
36
+ */
37
+ disableAutoTheme(): Promise<void>;
22
38
  /**
23
39
  * Sets the theme by id.
24
40
  *
25
- * @param id Theme id.
26
- * @param save Whether to save the theme in the store to restore it when the page is reloaded. (`true` by default)
41
+ * @param id - Theme id.
42
+ * @param save - Whether to save the theme in the store to restore it when the page is reloaded. (`true` by default)
27
43
  */
28
- set(id?: string | 'auto', save?: boolean): Promise<void>;
44
+ set(id?: string, save?: boolean): Promise<void>;
29
45
  /**
30
46
  * Returns an observable that emits when the theme changes.
31
47
  */
32
48
  themeChanges(): Observable<NgDocTheme | undefined>;
33
49
  private removeLink;
34
50
  private createLinkIfNoExists;
35
- static ɵfac: i0.ɵɵFactoryDeclaration<NgDocThemeService, [null, null, null, { optional: true; }]>;
51
+ private setAutoTheme;
52
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgDocThemeService, never>;
36
53
  static ɵprov: i0.ɵɵInjectableDeclaration<NgDocThemeService>;
37
54
  }