@delon/abc 19.2.0 → 20.0.0-beta.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 (239) hide show
  1. package/auto-focus/index.d.ts +19 -2
  2. package/cell/index.d.ts +316 -6
  3. package/count-down/index.d.ts +26 -5
  4. package/date-picker/index.d.ts +51 -5
  5. package/down-file/index.d.ts +34 -5
  6. package/ellipsis/index.d.ts +55 -5
  7. package/error-collect/index.d.ts +35 -5
  8. package/exception/index.d.ts +45 -5
  9. package/fesm2022/auto-focus.mjs +7 -7
  10. package/fesm2022/cell.mjs +14 -15
  11. package/fesm2022/cell.mjs.map +1 -1
  12. package/fesm2022/chart-observer-size.mjs +11 -11
  13. package/fesm2022/count-down.mjs +8 -9
  14. package/fesm2022/count-down.mjs.map +1 -1
  15. package/fesm2022/date-picker.mjs +16 -15
  16. package/fesm2022/date-picker.mjs.map +1 -1
  17. package/fesm2022/down-file.mjs +8 -8
  18. package/fesm2022/ellipsis.mjs +9 -9
  19. package/fesm2022/ellipsis.mjs.map +1 -1
  20. package/fesm2022/error-collect.mjs +15 -15
  21. package/fesm2022/error-collect.mjs.map +1 -1
  22. package/fesm2022/exception.mjs +94 -78
  23. package/fesm2022/exception.mjs.map +1 -1
  24. package/fesm2022/footer-toolbar.mjs +44 -22
  25. package/fesm2022/footer-toolbar.mjs.map +1 -1
  26. package/fesm2022/full-content.mjs +25 -38
  27. package/fesm2022/full-content.mjs.map +1 -1
  28. package/fesm2022/global-footer.mjs +79 -60
  29. package/fesm2022/global-footer.mjs.map +1 -1
  30. package/fesm2022/hotkey.mjs +8 -8
  31. package/fesm2022/loading.mjs +12 -12
  32. package/fesm2022/loading.mjs.map +1 -1
  33. package/fesm2022/lodop.mjs +12 -11
  34. package/fesm2022/lodop.mjs.map +1 -1
  35. package/fesm2022/media.mjs +12 -13
  36. package/fesm2022/media.mjs.map +1 -1
  37. package/fesm2022/notice-icon.mjs +19 -29
  38. package/fesm2022/notice-icon.mjs.map +1 -1
  39. package/fesm2022/onboarding.mjs +14 -14
  40. package/fesm2022/onboarding.mjs.map +1 -1
  41. package/fesm2022/page-header.mjs +22 -27
  42. package/fesm2022/page-header.mjs.map +1 -1
  43. package/fesm2022/pdf.mjs +13 -13
  44. package/fesm2022/pdf.mjs.map +1 -1
  45. package/fesm2022/quick-menu.mjs +9 -9
  46. package/fesm2022/quick-menu.mjs.map +1 -1
  47. package/fesm2022/reuse-tab.mjs +32 -38
  48. package/fesm2022/reuse-tab.mjs.map +1 -1
  49. package/fesm2022/se.mjs +20 -21
  50. package/fesm2022/se.mjs.map +1 -1
  51. package/fesm2022/sg.mjs +17 -18
  52. package/fesm2022/sg.mjs.map +1 -1
  53. package/fesm2022/st.mjs +73 -84
  54. package/fesm2022/st.mjs.map +1 -1
  55. package/fesm2022/sv.mjs +23 -25
  56. package/fesm2022/sv.mjs.map +1 -1
  57. package/fesm2022/tag-select.mjs +13 -29
  58. package/fesm2022/tag-select.mjs.map +1 -1
  59. package/fesm2022/xlsx.mjs +16 -15
  60. package/fesm2022/xlsx.mjs.map +1 -1
  61. package/fesm2022/zip.mjs +8 -7
  62. package/fesm2022/zip.mjs.map +1 -1
  63. package/footer-toolbar/index.d.ts +23 -5
  64. package/full-content/index.d.ts +55 -5
  65. package/global-footer/index.d.ts +44 -5
  66. package/hotkey/index.d.ts +25 -5
  67. package/index.d.ts +2 -5
  68. package/index.less +0 -2
  69. package/loading/index.d.ts +93 -5
  70. package/lodop/index.d.ts +277 -5
  71. package/media/index.d.ts +61 -5
  72. package/notice-icon/index.d.ts +90 -5
  73. package/observers/index.d.ts +34 -5
  74. package/onboarding/index.d.ts +212 -5
  75. package/package.json +5 -13
  76. package/page-header/index.d.ts +83 -5
  77. package/pdf/index.d.ts +142 -5
  78. package/quick-menu/index.d.ts +38 -5
  79. package/reuse-tab/index.d.ts +512 -3
  80. package/se/index.d.ts +129 -5
  81. package/sg/index.d.ts +44 -5
  82. package/st/index.d.ts +1708 -3
  83. package/sv/index.d.ts +96 -5
  84. package/tag-select/index.d.ts +27 -5
  85. package/theme-dark.less +0 -4
  86. package/theme-default.less +0 -8
  87. package/xlsx/index.d.ts +71 -5
  88. package/zip/index.d.ts +65 -5
  89. package/auto-focus/auto-focus.directive.d.ts +0 -10
  90. package/auto-focus/auto-focus.module.d.ts +0 -7
  91. package/avatar-list/avatar-list-item.component.d.ts +0 -9
  92. package/avatar-list/avatar-list.component.d.ts +0 -29
  93. package/avatar-list/avatar-list.module.d.ts +0 -14
  94. package/avatar-list/index.d.ts +0 -5
  95. package/avatar-list/public_api.d.ts +0 -3
  96. package/avatar-list/style/index.less +0 -53
  97. package/avatar-list/style/rtl.less +0 -3
  98. package/cell/cell-host.directive.d.ts +0 -10
  99. package/cell/cell.component.d.ts +0 -30
  100. package/cell/cell.module.d.ts +0 -17
  101. package/cell/cell.service.d.ts +0 -19
  102. package/cell/cell.types.d.ts +0 -234
  103. package/cell/provide.d.ts +0 -10
  104. package/count-down/count-down.component.d.ts +0 -15
  105. package/count-down/count-down.module.d.ts +0 -9
  106. package/count-down/public_api.d.ts +0 -2
  107. package/date-picker/date-picker.module.d.ts +0 -11
  108. package/date-picker/public_api.d.ts +0 -3
  109. package/date-picker/range-shortcut.component.d.ts +0 -10
  110. package/date-picker/range.directive.d.ts +0 -30
  111. package/down-file/down-file.directive.d.ts +0 -23
  112. package/down-file/down-file.module.d.ts +0 -9
  113. package/down-file/public_api.d.ts +0 -2
  114. package/ellipsis/ellipsis.component.d.ts +0 -43
  115. package/ellipsis/ellipsis.module.d.ts +0 -10
  116. package/ellipsis/public_api.d.ts +0 -2
  117. package/error-collect/error-collect.component.d.ts +0 -23
  118. package/error-collect/error-collect.module.d.ts +0 -9
  119. package/error-collect/public_api.d.ts +0 -2
  120. package/exception/exception.component.d.ts +0 -36
  121. package/exception/exception.module.d.ts +0 -12
  122. package/exception/public_api.d.ts +0 -2
  123. package/fesm2022/avatar-list.mjs +0 -132
  124. package/fesm2022/avatar-list.mjs.map +0 -1
  125. package/fesm2022/result.mjs +0 -84
  126. package/fesm2022/result.mjs.map +0 -1
  127. package/footer-toolbar/footer-toolbar.component.d.ts +0 -14
  128. package/footer-toolbar/footer-toolbar.module.d.ts +0 -10
  129. package/footer-toolbar/public_api.d.ts +0 -2
  130. package/full-content/full-content-toggle.directive.d.ts +0 -7
  131. package/full-content/full-content.component.d.ts +0 -32
  132. package/full-content/full-content.module.d.ts +0 -9
  133. package/full-content/full-content.service.d.ts +0 -10
  134. package/full-content/public_api.d.ts +0 -4
  135. package/global-footer/global-footer-item.component.d.ts +0 -10
  136. package/global-footer/global-footer.component.d.ts +0 -22
  137. package/global-footer/global-footer.module.d.ts +0 -10
  138. package/global-footer/global-footer.types.d.ts +0 -7
  139. package/global-footer/public_api.d.ts +0 -4
  140. package/hotkey/hotkey.directive.d.ts +0 -16
  141. package/hotkey/hotkey.module.d.ts +0 -7
  142. package/hotkey/public_api.d.ts +0 -2
  143. package/loading/loading.component.d.ts +0 -11
  144. package/loading/loading.module.d.ts +0 -12
  145. package/loading/loading.service.d.ts +0 -34
  146. package/loading/loading.types.d.ts +0 -35
  147. package/loading/public_api.d.ts +0 -4
  148. package/lodop/lodop.module.d.ts +0 -6
  149. package/lodop/lodop.service.d.ts +0 -74
  150. package/lodop/lodop.types.d.ts +0 -193
  151. package/lodop/public_api.d.ts +0 -3
  152. package/media/media.component.d.ts +0 -33
  153. package/media/media.module.d.ts +0 -8
  154. package/media/media.service.d.ts +0 -17
  155. package/media/public_api.d.ts +0 -3
  156. package/notice-icon/notice-icon-tab.component.d.ts +0 -13
  157. package/notice-icon/notice-icon.component.d.ts +0 -25
  158. package/notice-icon/notice-icon.module.d.ts +0 -18
  159. package/notice-icon/notice-icon.types.d.ts +0 -36
  160. package/notice-icon/public_api.d.ts +0 -4
  161. package/observers/observer-size.d.ts +0 -31
  162. package/observers/public-api.d.ts +0 -1
  163. package/onboarding/onboarding.component.d.ts +0 -35
  164. package/onboarding/onboarding.module.d.ts +0 -13
  165. package/onboarding/onboarding.service.d.ts +0 -58
  166. package/onboarding/onboarding.storage.d.ts +0 -11
  167. package/onboarding/onboarding.types.d.ts +0 -95
  168. package/onboarding/public_api.d.ts +0 -5
  169. package/page-header/page-header.component.d.ts +0 -70
  170. package/page-header/page-header.module.d.ts +0 -14
  171. package/page-header/public_api.d.ts +0 -2
  172. package/pdf/pdf.component.d.ts +0 -101
  173. package/pdf/pdf.config.d.ts +0 -2
  174. package/pdf/pdf.module.d.ts +0 -9
  175. package/pdf/pdf.types.d.ts +0 -29
  176. package/pdf/public_api.d.ts +0 -4
  177. package/public_api.d.ts +0 -2
  178. package/quick-menu/public_api.d.ts +0 -2
  179. package/quick-menu/quick-menu.component.d.ts +0 -26
  180. package/quick-menu/quick-menu.module.d.ts +0 -10
  181. package/result/index.d.ts +0 -5
  182. package/result/public_api.d.ts +0 -2
  183. package/result/result.component.d.ts +0 -21
  184. package/result/result.module.d.ts +0 -13
  185. package/result/style/index.less +0 -66
  186. package/result/style/rtl.less +0 -3
  187. package/reuse-tab/lifecycle_hooks.d.ts +0 -16
  188. package/reuse-tab/provide.d.ts +0 -28
  189. package/reuse-tab/public_api.d.ts +0 -14
  190. package/reuse-tab/reuse-tab-context-menu.component.d.ts +0 -21
  191. package/reuse-tab/reuse-tab-context.component.d.ts +0 -11
  192. package/reuse-tab/reuse-tab-context.directive.d.ts +0 -10
  193. package/reuse-tab/reuse-tab-context.service.d.ts +0 -14
  194. package/reuse-tab/reuse-tab.cache.d.ts +0 -16
  195. package/reuse-tab/reuse-tab.component.d.ts +0 -79
  196. package/reuse-tab/reuse-tab.interfaces.d.ts +0 -110
  197. package/reuse-tab/reuse-tab.module.d.ts +0 -17
  198. package/reuse-tab/reuse-tab.service.d.ts +0 -192
  199. package/reuse-tab/reuse-tab.state.d.ts +0 -14
  200. package/reuse-tab/reuse-tab.strategy.d.ts +0 -10
  201. package/se/public_api.d.ts +0 -4
  202. package/se/se-container.component.d.ts +0 -49
  203. package/se/se.component.d.ts +0 -60
  204. package/se/se.module.d.ts +0 -12
  205. package/se/se.types.d.ts +0 -9
  206. package/sg/public_api.d.ts +0 -3
  207. package/sg/sg-container.component.d.ts +0 -15
  208. package/sg/sg.component.d.ts +0 -19
  209. package/sg/sg.module.d.ts +0 -9
  210. package/st/provide.d.ts +0 -10
  211. package/st/public_api.d.ts +0 -12
  212. package/st/st-column-source.d.ts +0 -47
  213. package/st/st-data-source.d.ts +0 -77
  214. package/st/st-export.d.ts +0 -11
  215. package/st/st-filter.component.d.ts +0 -23
  216. package/st/st-row.directive.d.ts +0 -20
  217. package/st/st-widget-host.directive.d.ts +0 -12
  218. package/st/st-widget.d.ts +0 -11
  219. package/st/st.component.d.ts +0 -295
  220. package/st/st.config.d.ts +0 -2
  221. package/st/st.interfaces.d.ts +0 -1201
  222. package/st/st.module.d.ts +0 -9
  223. package/st/st.types.d.ts +0 -77
  224. package/sv/public_api.d.ts +0 -4
  225. package/sv/sv-container.component.d.ts +0 -39
  226. package/sv/sv-value.component.d.ts +0 -10
  227. package/sv/sv.component.d.ts +0 -34
  228. package/sv/sv.module.d.ts +0 -14
  229. package/tag-select/public_api.d.ts +0 -2
  230. package/tag-select/tag-select.component.d.ts +0 -21
  231. package/tag-select/tag-select.module.d.ts +0 -10
  232. package/xlsx/public_api.d.ts +0 -4
  233. package/xlsx/xlsx.directive.d.ts +0 -9
  234. package/xlsx/xlsx.module.d.ts +0 -7
  235. package/xlsx/xlsx.service.d.ts +0 -27
  236. package/xlsx/xlsx.types.d.ts +0 -27
  237. package/zip/public_api.d.ts +0 -2
  238. package/zip/zip.service.d.ts +0 -34
  239. package/zip/zip.types.d.ts +0 -28
@@ -1,43 +1,65 @@
1
1
  import { DOCUMENT, CommonModule } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { inject, ElementRef, Renderer2, booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, NgModule } from '@angular/core';
3
+ import { inject, input, booleanAttribute, afterNextRender, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
4
4
  import { ErrorCollectComponent, ErrorCollectModule } from '@delon/abc/error-collect';
5
5
  import { NzStringTemplateOutletDirective, NzOutletModule } from 'ng-zorro-antd/core/outlet';
6
6
 
7
7
  const CLSBODY = 'footer-toolbar__body';
8
8
  class FooterToolbarComponent {
9
- el = inject(ElementRef).nativeElement;
10
- renderer = inject(Renderer2);
11
9
  bodyCls = inject(DOCUMENT).querySelector('body')?.classList;
12
- errorCollect = false;
13
- extra;
14
- ngOnInit() {
15
- this.renderer.addClass(this.el, 'footer-toolbar');
16
- this.bodyCls?.add(CLSBODY);
10
+ errorCollect = input(false, { transform: booleanAttribute });
11
+ extra = input();
12
+ constructor() {
13
+ afterNextRender(() => this.bodyCls?.add(CLSBODY));
17
14
  }
18
15
  ngOnDestroy() {
19
16
  this.bodyCls?.remove(CLSBODY);
20
17
  }
21
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FooterToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: FooterToolbarComponent, isStandalone: true, selector: "footer-toolbar", inputs: { errorCollect: ["errorCollect", "errorCollect", booleanAttribute], extra: "extra" }, exportAs: ["footerToolbar"], ngImport: i0, template: "<div class=\"footer-toolbar__left\">\n <ng-container *nzStringTemplateOutlet=\"extra\">{{ extra }}</ng-container>\n</div>\n<div class=\"footer-toolbar__right\">\n @if (errorCollect) {\n <error-collect />\n }\n <ng-content />\n</div>\n", dependencies: [{ kind: "directive", type: NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { kind: "component", type: ErrorCollectComponent, selector: "error-collect, [error-collect]", inputs: ["freq", "offsetTop"], exportAs: ["errorCollect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: FooterToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: FooterToolbarComponent, isStandalone: true, selector: "footer-toolbar", inputs: { errorCollect: { classPropertyName: "errorCollect", publicName: "errorCollect", isSignal: true, isRequired: false, transformFunction: null }, extra: { classPropertyName: "extra", publicName: "extra", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "footer-toolbar" }, exportAs: ["footerToolbar"], ngImport: i0, template: `
20
+ <div class="footer-toolbar__left">
21
+ <ng-container *nzStringTemplateOutlet="extra()">{{ extra() }}</ng-container>
22
+ </div>
23
+ <div class="footer-toolbar__right">
24
+ @if (errorCollect()) {
25
+ <error-collect />
26
+ }
27
+ <ng-content />
28
+ </div>
29
+ `, isInline: true, dependencies: [{ kind: "directive", type: NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { kind: "component", type: ErrorCollectComponent, selector: "error-collect, [error-collect]", inputs: ["freq", "offsetTop"], exportAs: ["errorCollect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
23
30
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FooterToolbarComponent, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: FooterToolbarComponent, decorators: [{
25
32
  type: Component,
26
- args: [{ selector: 'footer-toolbar', exportAs: 'footerToolbar', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [NzStringTemplateOutletDirective, ErrorCollectComponent], template: "<div class=\"footer-toolbar__left\">\n <ng-container *nzStringTemplateOutlet=\"extra\">{{ extra }}</ng-container>\n</div>\n<div class=\"footer-toolbar__right\">\n @if (errorCollect) {\n <error-collect />\n }\n <ng-content />\n</div>\n" }]
27
- }], propDecorators: { errorCollect: [{
28
- type: Input,
29
- args: [{ transform: booleanAttribute }]
30
- }], extra: [{
31
- type: Input
32
- }] } });
33
+ args: [{
34
+ selector: 'footer-toolbar',
35
+ exportAs: 'footerToolbar',
36
+ template: `
37
+ <div class="footer-toolbar__left">
38
+ <ng-container *nzStringTemplateOutlet="extra()">{{ extra() }}</ng-container>
39
+ </div>
40
+ <div class="footer-toolbar__right">
41
+ @if (errorCollect()) {
42
+ <error-collect />
43
+ }
44
+ <ng-content />
45
+ </div>
46
+ `,
47
+ host: {
48
+ class: 'footer-toolbar'
49
+ },
50
+ changeDetection: ChangeDetectionStrategy.OnPush,
51
+ encapsulation: ViewEncapsulation.None,
52
+ imports: [NzStringTemplateOutletDirective, ErrorCollectComponent]
53
+ }]
54
+ }], ctorParameters: () => [] });
33
55
 
34
56
  const COMPONENTS = [FooterToolbarComponent];
35
57
  class FooterToolbarModule {
36
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FooterToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
37
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: FooterToolbarModule, imports: [CommonModule, ErrorCollectModule, NzOutletModule, FooterToolbarComponent], exports: [FooterToolbarComponent] });
38
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FooterToolbarModule, imports: [CommonModule, ErrorCollectModule, NzOutletModule, COMPONENTS] });
58
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: FooterToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
59
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.4", ngImport: i0, type: FooterToolbarModule, imports: [CommonModule, ErrorCollectModule, NzOutletModule, FooterToolbarComponent], exports: [FooterToolbarComponent] });
60
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: FooterToolbarModule, imports: [CommonModule, ErrorCollectModule, NzOutletModule, COMPONENTS] });
39
61
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FooterToolbarModule, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: FooterToolbarModule, decorators: [{
41
63
  type: NgModule,
42
64
  args: [{
43
65
  imports: [CommonModule, ErrorCollectModule, NzOutletModule, ...COMPONENTS],
@@ -1 +1 @@
1
- {"version":3,"file":"footer-toolbar.mjs","sources":["../../../../packages/abc/footer-toolbar/footer-toolbar.component.ts","../../../../packages/abc/footer-toolbar/footer-toolbar.component.html","../../../../packages/abc/footer-toolbar/footer-toolbar.module.ts","../../../../packages/abc/footer-toolbar/footer-toolbar.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n TemplateRef,\n ViewEncapsulation,\n booleanAttribute,\n inject\n} from '@angular/core';\n\nimport { ErrorCollectComponent } from '@delon/abc/error-collect';\nimport { NzStringTemplateOutletDirective } from 'ng-zorro-antd/core/outlet';\n\nconst CLSBODY = 'footer-toolbar__body';\n\n@Component({\n selector: 'footer-toolbar',\n exportAs: 'footerToolbar',\n templateUrl: './footer-toolbar.component.html',\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NzStringTemplateOutletDirective, ErrorCollectComponent]\n})\nexport class FooterToolbarComponent implements OnInit, OnDestroy {\n private readonly el: HTMLElement = inject(ElementRef).nativeElement;\n private readonly renderer = inject(Renderer2);\n private readonly bodyCls = inject(DOCUMENT).querySelector('body')?.classList;\n\n @Input({ transform: booleanAttribute }) errorCollect = false;\n @Input() extra?: string | TemplateRef<void>;\n\n ngOnInit(): void {\n this.renderer.addClass(this.el, 'footer-toolbar');\n this.bodyCls?.add(CLSBODY);\n }\n\n ngOnDestroy(): void {\n this.bodyCls?.remove(CLSBODY);\n }\n}\n","<div class=\"footer-toolbar__left\">\n <ng-container *nzStringTemplateOutlet=\"extra\">{{ extra }}</ng-container>\n</div>\n<div class=\"footer-toolbar__right\">\n @if (errorCollect) {\n <error-collect />\n }\n <ng-content />\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ErrorCollectModule } from '@delon/abc/error-collect';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\n\nimport { FooterToolbarComponent } from './footer-toolbar.component';\n\nconst COMPONENTS = [FooterToolbarComponent];\n\n@NgModule({\n imports: [CommonModule, ErrorCollectModule, NzOutletModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class FooterToolbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"footer-toolbar.mjs","sources":["../../../../packages/abc/footer-toolbar/footer-toolbar.component.ts","../../../../packages/abc/footer-toolbar/footer-toolbar.module.ts","../../../../packages/abc/footer-toolbar/footer-toolbar.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n TemplateRef,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n inject,\n input\n} from '@angular/core';\n\nimport { ErrorCollectComponent } from '@delon/abc/error-collect';\nimport { NzStringTemplateOutletDirective } from 'ng-zorro-antd/core/outlet';\n\nconst CLSBODY = 'footer-toolbar__body';\n\n@Component({\n selector: 'footer-toolbar',\n exportAs: 'footerToolbar',\n template: `\n <div class=\"footer-toolbar__left\">\n <ng-container *nzStringTemplateOutlet=\"extra()\">{{ extra() }}</ng-container>\n </div>\n <div class=\"footer-toolbar__right\">\n @if (errorCollect()) {\n <error-collect />\n }\n <ng-content />\n </div>\n `,\n host: {\n class: 'footer-toolbar'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NzStringTemplateOutletDirective, ErrorCollectComponent]\n})\nexport class FooterToolbarComponent implements OnDestroy {\n private readonly bodyCls = inject(DOCUMENT).querySelector('body')?.classList;\n\n errorCollect = input(false, { transform: booleanAttribute });\n extra = input<string | TemplateRef<void>>();\n\n constructor() {\n afterNextRender(() => this.bodyCls?.add(CLSBODY));\n }\n\n ngOnDestroy(): void {\n this.bodyCls?.remove(CLSBODY);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ErrorCollectModule } from '@delon/abc/error-collect';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\n\nimport { FooterToolbarComponent } from './footer-toolbar.component';\n\nconst COMPONENTS = [FooterToolbarComponent];\n\n@NgModule({\n imports: [CommonModule, ErrorCollectModule, NzOutletModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class FooterToolbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { DOCUMENT, CommonModule } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { Injectable, inject, DestroyRef, ElementRef, ChangeDetectorRef, EventEmitter, booleanAttribute, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, Directive, NgModule } from '@angular/core';
3
+ import { Injectable, inject, DestroyRef, ElementRef, ChangeDetectorRef, input, booleanAttribute, numberAttribute, model, ViewEncapsulation, ChangeDetectionStrategy, Component, Directive, NgModule } from '@angular/core';
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import { Router, ActivationStart, ActivationEnd } from '@angular/router';
6
6
  import { BehaviorSubject, share, fromEvent, debounceTime, filter } from 'rxjs';
@@ -14,10 +14,10 @@ class FullContentService {
14
14
  get change() {
15
15
  return this._change.pipe(share());
16
16
  }
17
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FullContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
18
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FullContentService, providedIn: 'root' });
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: FullContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
18
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: FullContentService, providedIn: 'root' });
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FullContentService, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: FullContentService, decorators: [{
21
21
  type: Injectable,
22
22
  args: [{ providedIn: 'root' }]
23
23
  }] });
@@ -36,21 +36,20 @@ class FullContentComponent {
36
36
  inited = false;
37
37
  id = `_full-content-${Math.random().toString(36).substring(2)}`;
38
38
  _height = 0;
39
- fullscreen;
40
- hideTitle = true;
41
- padding = 24;
42
- fullscreenChange = new EventEmitter();
39
+ hideTitle = input(true, { transform: booleanAttribute });
40
+ padding = input(24, { transform: numberAttribute });
41
+ fullscreen = model();
43
42
  updateCls() {
44
43
  const clss = this.bodyEl.classList;
45
- if (this.fullscreen) {
44
+ if (this.fullscreen()) {
46
45
  clss.add(openedCls);
47
- if (this.hideTitle) {
46
+ if (this.hideTitle()) {
48
47
  clss.add(hideTitleCls);
49
48
  }
50
49
  }
51
50
  else {
52
51
  clss.remove(openedCls);
53
- if (this.hideTitle) {
52
+ if (this.hideTitle()) {
54
53
  clss.remove(hideTitleCls);
55
54
  }
56
55
  }
@@ -58,10 +57,10 @@ class FullContentComponent {
58
57
  update() {
59
58
  this.updateCls();
60
59
  this.updateHeight();
61
- this.fullscreenChange.emit(this.fullscreen);
60
+ this.fullscreen.set(this.fullscreen());
62
61
  }
63
62
  updateHeight() {
64
- this._height = this.bodyEl.getBoundingClientRect().height - this.el.getBoundingClientRect().top - this.padding;
63
+ this._height = this.bodyEl.getBoundingClientRect().height - this.el.getBoundingClientRect().top - this.padding();
65
64
  this.cdr.detectChanges();
66
65
  }
67
66
  removeInBody() {
@@ -94,7 +93,7 @@ class FullContentComponent {
94
93
  });
95
94
  }
96
95
  toggle() {
97
- this.fullscreen = !this.fullscreen;
96
+ this.fullscreen.set(!this.fullscreen());
98
97
  this.update();
99
98
  this.updateHeight();
100
99
  }
@@ -108,45 +107,33 @@ class FullContentComponent {
108
107
  ngOnDestroy() {
109
108
  this.removeInBody();
110
109
  }
111
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FullContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
112
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.6", type: FullContentComponent, isStandalone: true, selector: "full-content", inputs: { fullscreen: ["fullscreen", "fullscreen", booleanAttribute], hideTitle: ["hideTitle", "hideTitle", booleanAttribute], padding: ["padding", "padding", numberAttribute] }, outputs: { fullscreenChange: "fullscreenChange" }, host: { properties: { "class.full-content": "true", "style.height.px": "_height" } }, exportAs: ["fullContent"], usesOnChanges: true, ngImport: i0, template: ` <ng-content /> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
110
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: FullContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
111
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.4", type: FullContentComponent, isStandalone: true, selector: "full-content", inputs: { hideTitle: { classPropertyName: "hideTitle", publicName: "hideTitle", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, fullscreen: { classPropertyName: "fullscreen", publicName: "fullscreen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fullscreen: "fullscreenChange" }, host: { properties: { "class.full-content": "true", "style.height.px": "_height" } }, exportAs: ["fullContent"], usesOnChanges: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
113
112
  }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FullContentComponent, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: FullContentComponent, decorators: [{
115
114
  type: Component,
116
115
  args: [{
117
116
  selector: 'full-content',
118
117
  exportAs: 'fullContent',
119
- template: ` <ng-content /> `,
118
+ template: `<ng-content />`,
120
119
  host: {
121
120
  '[class.full-content]': 'true',
122
121
  '[style.height.px]': '_height'
123
122
  },
124
- preserveWhitespaces: false,
125
123
  changeDetection: ChangeDetectionStrategy.OnPush,
126
124
  encapsulation: ViewEncapsulation.None
127
125
  }]
128
- }], propDecorators: { fullscreen: [{
129
- type: Input,
130
- args: [{ transform: booleanAttribute }]
131
- }], hideTitle: [{
132
- type: Input,
133
- args: [{ transform: booleanAttribute }]
134
- }], padding: [{
135
- type: Input,
136
- args: [{ transform: numberAttribute }]
137
- }], fullscreenChange: [{
138
- type: Output
139
- }] } });
126
+ }] });
140
127
 
141
128
  class FullContentToggleDirective {
142
129
  parent = inject(FullContentComponent);
143
130
  _click() {
144
131
  this.parent.toggle();
145
132
  }
146
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FullContentToggleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
147
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.6", type: FullContentToggleDirective, isStandalone: true, selector: "[full-toggle]", host: { listeners: { "click": "_click()" } }, exportAs: ["fullToggle"], ngImport: i0 });
133
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: FullContentToggleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
134
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.4", type: FullContentToggleDirective, isStandalone: true, selector: "[full-toggle]", host: { listeners: { "click": "_click()" } }, exportAs: ["fullToggle"], ngImport: i0 });
148
135
  }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FullContentToggleDirective, decorators: [{
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: FullContentToggleDirective, decorators: [{
150
137
  type: Directive,
151
138
  args: [{
152
139
  selector: '[full-toggle]',
@@ -159,11 +146,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
159
146
 
160
147
  const COMPONENTS = [FullContentComponent, FullContentToggleDirective];
161
148
  class FullContentModule {
162
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FullContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
163
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: FullContentModule, imports: [CommonModule, FullContentComponent, FullContentToggleDirective], exports: [FullContentComponent, FullContentToggleDirective] });
164
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FullContentModule, imports: [CommonModule] });
149
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: FullContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
150
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.4", ngImport: i0, type: FullContentModule, imports: [CommonModule, FullContentComponent, FullContentToggleDirective], exports: [FullContentComponent, FullContentToggleDirective] });
151
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: FullContentModule, imports: [CommonModule] });
165
152
  }
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FullContentModule, decorators: [{
153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: FullContentModule, decorators: [{
167
154
  type: NgModule,
168
155
  args: [{
169
156
  imports: [CommonModule, ...COMPONENTS],
@@ -1 +1 @@
1
- {"version":3,"file":"full-content.mjs","sources":["../../../../packages/abc/full-content/full-content.service.ts","../../../../packages/abc/full-content/full-content.component.ts","../../../../packages/abc/full-content/full-content-toggle.directive.ts","../../../../packages/abc/full-content/full-content.module.ts","../../../../packages/abc/full-content/full-content.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, share } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class FullContentService {\n private _change = new BehaviorSubject<boolean | null>(null);\n\n /** 切换全屏工作区状态 */\n toggle(): void {\n this._change.next(true);\n }\n\n get change(): Observable<boolean | null> {\n return this._change.pipe(share());\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivationEnd, ActivationStart, Event, Router } from '@angular/router';\nimport { fromEvent, debounceTime, filter } from 'rxjs';\n\nimport { FullContentService } from './full-content.service';\n\nconst wrapCls = `full-content__body`;\nconst openedCls = `full-content__opened`;\nconst hideTitleCls = `full-content__hidden-title`;\n\n@Component({\n selector: 'full-content',\n exportAs: 'fullContent',\n template: ` <ng-content /> `,\n host: {\n '[class.full-content]': 'true',\n '[style.height.px]': '_height'\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class FullContentComponent implements AfterViewInit, OnInit, OnChanges, OnDestroy {\n private readonly destroy$ = inject(DestroyRef);\n private readonly el: HTMLElement = inject(ElementRef).nativeElement;\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly srv = inject(FullContentService);\n private readonly router = inject(Router);\n private readonly doc = inject(DOCUMENT);\n\n private bodyEl = this.doc.querySelector('body')!;\n private inited = false;\n private id = `_full-content-${Math.random().toString(36).substring(2)}`;\n\n _height = 0;\n\n @Input({ transform: booleanAttribute }) fullscreen?: boolean;\n @Input({ transform: booleanAttribute }) hideTitle = true;\n @Input({ transform: numberAttribute }) padding = 24;\n @Output() readonly fullscreenChange = new EventEmitter<boolean>();\n\n private updateCls(): void {\n const clss = this.bodyEl.classList;\n if (this.fullscreen) {\n clss.add(openedCls);\n if (this.hideTitle) {\n clss.add(hideTitleCls);\n }\n } else {\n clss.remove(openedCls);\n if (this.hideTitle) {\n clss.remove(hideTitleCls);\n }\n }\n }\n\n private update(): void {\n this.updateCls();\n this.updateHeight();\n this.fullscreenChange.emit(this.fullscreen);\n }\n\n private updateHeight(): void {\n this._height = this.bodyEl.getBoundingClientRect().height - this.el.getBoundingClientRect().top - this.padding;\n this.cdr.detectChanges();\n }\n\n private removeInBody(): void {\n this.bodyEl.classList.remove(wrapCls, openedCls, hideTitleCls);\n }\n\n ngOnInit(): void {\n this.inited = true;\n this.bodyEl.classList.add(wrapCls);\n this.el.id = this.id;\n\n this.updateCls();\n\n // when window resize\n fromEvent(window, 'resize')\n .pipe(takeUntilDestroyed(this.destroy$), debounceTime(200))\n .subscribe(() => this.updateHeight());\n\n // when servier changed\n this.srv.change\n .pipe(\n takeUntilDestroyed(this.destroy$),\n filter(res => res !== null)\n )\n .subscribe(() => this.toggle());\n\n // when router changed\n this.router.events\n .pipe(\n takeUntilDestroyed(this.destroy$),\n filter((e: Event) => e instanceof ActivationStart || e instanceof ActivationEnd),\n debounceTime(200)\n )\n .subscribe(() => {\n if (this.doc.querySelector(`#${this.id}`)) {\n this.bodyEl.classList.add(wrapCls);\n this.updateCls();\n } else {\n this.removeInBody();\n }\n });\n }\n\n toggle(): void {\n this.fullscreen = !this.fullscreen;\n this.update();\n this.updateHeight();\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this.updateHeight());\n }\n\n ngOnChanges(): void {\n if (this.inited) this.update();\n }\n\n ngOnDestroy(): void {\n this.removeInBody();\n }\n}\n","import { Directive, inject } from '@angular/core';\n\nimport { FullContentComponent } from './full-content.component';\n\n@Directive({\n selector: '[full-toggle]',\n exportAs: 'fullToggle',\n host: {\n '(click)': '_click()'\n }\n})\nexport class FullContentToggleDirective {\n private readonly parent = inject(FullContentComponent);\n\n _click(): void {\n this.parent.toggle();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { FullContentToggleDirective } from './full-content-toggle.directive';\nimport { FullContentComponent } from './full-content.component';\n\nconst COMPONENTS = [FullContentComponent, FullContentToggleDirective];\n\n@NgModule({\n imports: [CommonModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class FullContentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"full-content.mjs","sources":["../../../../packages/abc/full-content/full-content.service.ts","../../../../packages/abc/full-content/full-content.component.ts","../../../../packages/abc/full-content/full-content-toggle.directive.ts","../../../../packages/abc/full-content/full-content.module.ts","../../../../packages/abc/full-content/full-content.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, share } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class FullContentService {\n private _change = new BehaviorSubject<boolean | null>(null);\n\n /** 切换全屏工作区状态 */\n toggle(): void {\n this._change.next(true);\n }\n\n get change(): Observable<boolean | null> {\n return this._change.pipe(share());\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n OnChanges,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n input,\n model,\n numberAttribute\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivationEnd, ActivationStart, Event, Router } from '@angular/router';\nimport { fromEvent, debounceTime, filter } from 'rxjs';\n\nimport { FullContentService } from './full-content.service';\n\nconst wrapCls = `full-content__body`;\nconst openedCls = `full-content__opened`;\nconst hideTitleCls = `full-content__hidden-title`;\n\n@Component({\n selector: 'full-content',\n exportAs: 'fullContent',\n template: `<ng-content />`,\n host: {\n '[class.full-content]': 'true',\n '[style.height.px]': '_height'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class FullContentComponent implements AfterViewInit, OnInit, OnChanges, OnDestroy {\n private readonly destroy$ = inject(DestroyRef);\n private readonly el: HTMLElement = inject(ElementRef).nativeElement;\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly srv = inject(FullContentService);\n private readonly router = inject(Router);\n private readonly doc = inject(DOCUMENT);\n\n private bodyEl = this.doc.querySelector('body')!;\n private inited = false;\n private id = `_full-content-${Math.random().toString(36).substring(2)}`;\n\n _height = 0;\n\n hideTitle = input(true, { transform: booleanAttribute });\n padding = input(24, { transform: numberAttribute });\n fullscreen = model<boolean>();\n\n private updateCls(): void {\n const clss = this.bodyEl.classList;\n if (this.fullscreen()) {\n clss.add(openedCls);\n if (this.hideTitle()) {\n clss.add(hideTitleCls);\n }\n } else {\n clss.remove(openedCls);\n if (this.hideTitle()) {\n clss.remove(hideTitleCls);\n }\n }\n }\n\n private update(): void {\n this.updateCls();\n this.updateHeight();\n this.fullscreen.set(this.fullscreen());\n }\n\n private updateHeight(): void {\n this._height = this.bodyEl.getBoundingClientRect().height - this.el.getBoundingClientRect().top - this.padding();\n this.cdr.detectChanges();\n }\n\n private removeInBody(): void {\n this.bodyEl.classList.remove(wrapCls, openedCls, hideTitleCls);\n }\n\n ngOnInit(): void {\n this.inited = true;\n this.bodyEl.classList.add(wrapCls);\n this.el.id = this.id;\n\n this.updateCls();\n\n // when window resize\n fromEvent(window, 'resize')\n .pipe(takeUntilDestroyed(this.destroy$), debounceTime(200))\n .subscribe(() => this.updateHeight());\n\n // when servier changed\n this.srv.change\n .pipe(\n takeUntilDestroyed(this.destroy$),\n filter(res => res !== null)\n )\n .subscribe(() => this.toggle());\n\n // when router changed\n this.router.events\n .pipe(\n takeUntilDestroyed(this.destroy$),\n filter((e: Event) => e instanceof ActivationStart || e instanceof ActivationEnd),\n debounceTime(200)\n )\n .subscribe(() => {\n if (this.doc.querySelector(`#${this.id}`)) {\n this.bodyEl.classList.add(wrapCls);\n this.updateCls();\n } else {\n this.removeInBody();\n }\n });\n }\n\n toggle(): void {\n this.fullscreen.set(!this.fullscreen());\n this.update();\n this.updateHeight();\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this.updateHeight());\n }\n\n ngOnChanges(): void {\n if (this.inited) this.update();\n }\n\n ngOnDestroy(): void {\n this.removeInBody();\n }\n}\n","import { Directive, inject } from '@angular/core';\n\nimport { FullContentComponent } from './full-content.component';\n\n@Directive({\n selector: '[full-toggle]',\n exportAs: 'fullToggle',\n host: {\n '(click)': '_click()'\n }\n})\nexport class FullContentToggleDirective {\n private readonly parent = inject(FullContentComponent);\n\n _click(): void {\n this.parent.toggle();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { FullContentToggleDirective } from './full-content-toggle.directive';\nimport { FullContentComponent } from './full-content.component';\n\nconst COMPONENTS = [FullContentComponent, FullContentToggleDirective];\n\n@NgModule({\n imports: [CommonModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class FullContentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,101 +1,120 @@
1
1
  import { Directionality } from '@angular/cdk/bidi';
2
2
  import { NgTemplateOutlet, CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, Input, inject, ChangeDetectorRef, DestroyRef, ContentChildren, NgModule } from '@angular/core';
5
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { viewChild, input, booleanAttribute, ViewEncapsulation, ChangeDetectionStrategy, Component, inject, contentChildren, computed, NgModule } from '@angular/core';
6
5
  import { DomSanitizer } from '@angular/platform-browser';
7
6
  import { Router, RouterModule } from '@angular/router';
8
7
  import { WINDOW } from '@delon/util/token';
9
8
 
10
9
  class GlobalFooterItemComponent {
11
- host;
12
- href;
13
- blankTarget;
14
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GlobalFooterItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.6", type: GlobalFooterItemComponent, isStandalone: true, selector: "global-footer-item", inputs: { href: "href", blankTarget: ["blankTarget", "blankTarget", booleanAttribute] }, viewQueries: [{ propertyName: "host", first: true, predicate: ["host"], descendants: true, static: true }], exportAs: ["globalFooterItem"], ngImport: i0, template: ` <ng-template #host><ng-content /></ng-template> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
10
+ host = viewChild.required('host');
11
+ // @ViewChild('host', { static: true }) host!: TemplateRef<void>;
12
+ href = input();
13
+ blankTarget = input(false, { transform: booleanAttribute });
14
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GlobalFooterItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.4", type: GlobalFooterItemComponent, isStandalone: true, selector: "global-footer-item", inputs: { href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, blankTarget: { classPropertyName: "blankTarget", publicName: "blankTarget", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "host", first: true, predicate: ["host"], descendants: true, isSignal: true }], exportAs: ["globalFooterItem"], ngImport: i0, template: `<ng-template #host><ng-content /></ng-template>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GlobalFooterItemComponent, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GlobalFooterItemComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{
20
20
  selector: 'global-footer-item',
21
21
  exportAs: 'globalFooterItem',
22
- template: ` <ng-template #host><ng-content /></ng-template> `,
23
- preserveWhitespaces: false,
22
+ template: `<ng-template #host><ng-content /></ng-template>`,
24
23
  changeDetection: ChangeDetectionStrategy.OnPush,
25
24
  encapsulation: ViewEncapsulation.None
26
25
  }]
27
- }], propDecorators: { host: [{
28
- type: ViewChild,
29
- args: ['host', { static: true }]
30
- }], href: [{
31
- type: Input
32
- }], blankTarget: [{
33
- type: Input,
34
- args: [{ transform: booleanAttribute }]
35
- }] } });
26
+ }] });
36
27
 
37
28
  class GlobalFooterComponent {
38
29
  router = inject(Router);
39
30
  win = inject(WINDOW);
40
31
  dom = inject(DomSanitizer);
41
- directionality = inject(Directionality);
42
- cdr = inject(ChangeDetectorRef);
43
- destroy$ = inject(DestroyRef);
44
- _links = [];
45
- dir = 'ltr';
46
- set links(val) {
47
- val.forEach(i => (i._title = this.dom.bypassSecurityTrustHtml(i.title)));
48
- this._links = val;
49
- }
50
- get links() {
51
- return this._links;
52
- }
53
- items;
32
+ dir = inject(Directionality).valueSignal;
33
+ links = input([]);
34
+ items = contentChildren(GlobalFooterItemComponent);
35
+ linkHtmls = computed(() => {
36
+ return this.links().map(item => {
37
+ if (typeof item.title === 'string') {
38
+ item.title = this.dom.bypassSecurityTrustHtml(item.title);
39
+ }
40
+ return item;
41
+ });
42
+ });
54
43
  to(item) {
55
- if (!item.href) {
44
+ const href = typeof item.href === 'string' ? item.href : item.href();
45
+ if (!href) {
56
46
  return;
57
47
  }
58
- if (item.blankTarget) {
59
- this.win.open(item.href);
48
+ const blankTarget = typeof item.blankTarget === 'boolean' ? item.blankTarget : item.blankTarget?.();
49
+ if (blankTarget) {
50
+ this.win.open(href);
60
51
  return;
61
52
  }
62
- if (/^https?:\/\//.test(item.href)) {
63
- this.win.location.href = item.href;
53
+ if (/^https?:\/\//.test(href)) {
54
+ this.win.location.href = href;
64
55
  }
65
56
  else {
66
- this.router.navigateByUrl(item.href);
57
+ this.router.navigateByUrl(href);
67
58
  }
68
59
  }
69
- ngOnInit() {
70
- this.dir = this.directionality.value;
71
- this.directionality.change.pipe(takeUntilDestroyed(this.destroy$)).subscribe(direction => {
72
- this.dir = direction;
73
- this.cdr.detectChanges();
74
- });
60
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GlobalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
61
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: GlobalFooterComponent, isStandalone: true, selector: "global-footer", inputs: { links: { classPropertyName: "links", publicName: "links", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.global-footer": "true", "class.global-footer-rtl": "dir() === 'rtl'" } }, queries: [{ propertyName: "items", predicate: GlobalFooterItemComponent, isSignal: true }], exportAs: ["globalFooter"], ngImport: i0, template: `
62
+ @if (linkHtmls().length > 0 || items().length > 0) {
63
+ <div class="global-footer__links">
64
+ @for (i of linkHtmls(); track $index) {
65
+ <a class="global-footer__links-item" (click)="to(i)" [innerHTML]="i.title"></a>
66
+ }
67
+ @for (i of items(); track $index) {
68
+ <a class="global-footer__links-item" (click)="to(i)">
69
+ <ng-container *ngTemplateOutlet="i.host()" />
70
+ </a>
71
+ }
72
+ </div>
75
73
  }
76
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GlobalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
77
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: GlobalFooterComponent, isStandalone: true, selector: "global-footer", inputs: { links: "links" }, host: { properties: { "class.global-footer": "true", "class.global-footer-rtl": "dir === 'rtl'" } }, queries: [{ propertyName: "items", predicate: GlobalFooterItemComponent }], exportAs: ["globalFooter"], ngImport: i0, template: "@if (links.length > 0 || items.length > 0) {\n <div class=\"global-footer__links\">\n @for (i of links; track $index) {\n <a class=\"global-footer__links-item\" (click)=\"to(i)\" [innerHTML]=\"i._title\"></a>\n }\n @for (i of items; track $index) {\n <a class=\"global-footer__links-item\" (click)=\"to(i)\">\n <ng-container *ngTemplateOutlet=\"i.host\" />\n </a>\n }\n </div>\n}\n<div class=\"global-footer__copyright\">\n <ng-content />\n</div>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
74
+ <div class="global-footer__copyright">
75
+ <ng-content />
76
+ </div>
77
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
78
78
  }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GlobalFooterComponent, decorators: [{
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GlobalFooterComponent, decorators: [{
80
80
  type: Component,
81
- args: [{ selector: 'global-footer', exportAs: 'globalFooter', host: {
81
+ args: [{
82
+ selector: 'global-footer',
83
+ exportAs: 'globalFooter',
84
+ template: `
85
+ @if (linkHtmls().length > 0 || items().length > 0) {
86
+ <div class="global-footer__links">
87
+ @for (i of linkHtmls(); track $index) {
88
+ <a class="global-footer__links-item" (click)="to(i)" [innerHTML]="i.title"></a>
89
+ }
90
+ @for (i of items(); track $index) {
91
+ <a class="global-footer__links-item" (click)="to(i)">
92
+ <ng-container *ngTemplateOutlet="i.host()" />
93
+ </a>
94
+ }
95
+ </div>
96
+ }
97
+ <div class="global-footer__copyright">
98
+ <ng-content />
99
+ </div>
100
+ `,
101
+ host: {
82
102
  '[class.global-footer]': 'true',
83
- '[class.global-footer-rtl]': `dir === 'rtl'`
84
- }, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [NgTemplateOutlet], template: "@if (links.length > 0 || items.length > 0) {\n <div class=\"global-footer__links\">\n @for (i of links; track $index) {\n <a class=\"global-footer__links-item\" (click)=\"to(i)\" [innerHTML]=\"i._title\"></a>\n }\n @for (i of items; track $index) {\n <a class=\"global-footer__links-item\" (click)=\"to(i)\">\n <ng-container *ngTemplateOutlet=\"i.host\" />\n </a>\n }\n </div>\n}\n<div class=\"global-footer__copyright\">\n <ng-content />\n</div>\n" }]
85
- }], propDecorators: { links: [{
86
- type: Input
87
- }], items: [{
88
- type: ContentChildren,
89
- args: [GlobalFooterItemComponent]
90
- }] } });
103
+ '[class.global-footer-rtl]': `dir() === 'rtl'`
104
+ },
105
+ changeDetection: ChangeDetectionStrategy.OnPush,
106
+ encapsulation: ViewEncapsulation.None,
107
+ imports: [NgTemplateOutlet]
108
+ }]
109
+ }] });
91
110
 
92
111
  const COMPONENTS = [GlobalFooterComponent, GlobalFooterItemComponent];
93
112
  class GlobalFooterModule {
94
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GlobalFooterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
95
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: GlobalFooterModule, imports: [CommonModule, RouterModule, GlobalFooterComponent, GlobalFooterItemComponent], exports: [GlobalFooterComponent, GlobalFooterItemComponent] });
96
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GlobalFooterModule, imports: [CommonModule, RouterModule] });
113
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GlobalFooterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
114
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.4", ngImport: i0, type: GlobalFooterModule, imports: [CommonModule, RouterModule, GlobalFooterComponent, GlobalFooterItemComponent], exports: [GlobalFooterComponent, GlobalFooterItemComponent] });
115
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GlobalFooterModule, imports: [CommonModule, RouterModule] });
97
116
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GlobalFooterModule, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: GlobalFooterModule, decorators: [{
99
118
  type: NgModule,
100
119
  args: [{
101
120
  imports: [CommonModule, RouterModule, ...COMPONENTS],
@@ -1 +1 @@
1
- {"version":3,"file":"global-footer.mjs","sources":["../../../../packages/abc/global-footer/global-footer-item.component.ts","../../../../packages/abc/global-footer/global-footer.component.ts","../../../../packages/abc/global-footer/global-footer.component.html","../../../../packages/abc/global-footer/global-footer.module.ts","../../../../packages/abc/global-footer/global-footer.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute\n} from '@angular/core';\n\n@Component({\n selector: 'global-footer-item',\n exportAs: 'globalFooterItem',\n template: ` <ng-template #host><ng-content /></ng-template> `,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class GlobalFooterItemComponent {\n @ViewChild('host', { static: true }) host!: TemplateRef<void>;\n\n @Input() href?: string;\n @Input({ transform: booleanAttribute }) blankTarget?: boolean;\n}\n","import { Direction, Directionality } from '@angular/cdk/bidi';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n Input,\n OnInit,\n QueryList,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\n\nimport { WINDOW } from '@delon/util/token';\n\nimport { GlobalFooterItemComponent } from './global-footer-item.component';\nimport { GlobalFooterLink } from './global-footer.types';\n\n@Component({\n selector: 'global-footer',\n exportAs: 'globalFooter',\n templateUrl: './global-footer.component.html',\n host: {\n '[class.global-footer]': 'true',\n '[class.global-footer-rtl]': `dir === 'rtl'`\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet]\n})\nexport class GlobalFooterComponent implements OnInit {\n private readonly router = inject(Router);\n private readonly win = inject(WINDOW);\n private readonly dom = inject(DomSanitizer);\n private readonly directionality = inject(Directionality);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly destroy$ = inject(DestroyRef);\n\n private _links: GlobalFooterLink[] = [];\n\n dir?: Direction = 'ltr';\n\n @Input()\n set links(val: GlobalFooterLink[]) {\n val.forEach(i => (i._title = this.dom.bypassSecurityTrustHtml(i.title)));\n this._links = val;\n }\n get links(): GlobalFooterLink[] {\n return this._links;\n }\n\n @ContentChildren(GlobalFooterItemComponent) readonly items!: QueryList<GlobalFooterItemComponent>;\n\n to(item: GlobalFooterLink | GlobalFooterItemComponent): void {\n if (!item.href) {\n return;\n }\n if (item.blankTarget) {\n this.win.open(item.href);\n return;\n }\n if (/^https?:\\/\\//.test(item.href)) {\n this.win.location.href = item.href;\n } else {\n this.router.navigateByUrl(item.href);\n }\n }\n\n ngOnInit(): void {\n this.dir = this.directionality.value;\n this.directionality.change.pipe(takeUntilDestroyed(this.destroy$)).subscribe(direction => {\n this.dir = direction;\n this.cdr.detectChanges();\n });\n }\n}\n","@if (links.length > 0 || items.length > 0) {\n <div class=\"global-footer__links\">\n @for (i of links; track $index) {\n <a class=\"global-footer__links-item\" (click)=\"to(i)\" [innerHTML]=\"i._title\"></a>\n }\n @for (i of items; track $index) {\n <a class=\"global-footer__links-item\" (click)=\"to(i)\">\n <ng-container *ngTemplateOutlet=\"i.host\" />\n </a>\n }\n </div>\n}\n<div class=\"global-footer__copyright\">\n <ng-content />\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { GlobalFooterItemComponent } from './global-footer-item.component';\nimport { GlobalFooterComponent } from './global-footer.component';\n\nconst COMPONENTS = [GlobalFooterComponent, GlobalFooterItemComponent];\n\n@NgModule({\n imports: [CommonModule, RouterModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class GlobalFooterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"global-footer.mjs","sources":["../../../../packages/abc/global-footer/global-footer-item.component.ts","../../../../packages/abc/global-footer/global-footer.component.ts","../../../../packages/abc/global-footer/global-footer.module.ts","../../../../packages/abc/global-footer/global-footer.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n booleanAttribute,\n input,\n viewChild\n} from '@angular/core';\n\n@Component({\n selector: 'global-footer-item',\n exportAs: 'globalFooterItem',\n template: `<ng-template #host><ng-content /></ng-template>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class GlobalFooterItemComponent {\n host = viewChild.required<TemplateRef<void>>('host');\n // @ViewChild('host', { static: true }) host!: TemplateRef<void>;\n href = input<string>();\n blankTarget = input(false, { transform: booleanAttribute });\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n contentChildren,\n inject,\n input\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\n\nimport { WINDOW } from '@delon/util/token';\n\nimport { GlobalFooterItemComponent } from './global-footer-item.component';\nimport { GlobalFooterLink } from './global-footer.types';\n\n@Component({\n selector: 'global-footer',\n exportAs: 'globalFooter',\n template: `\n @if (linkHtmls().length > 0 || items().length > 0) {\n <div class=\"global-footer__links\">\n @for (i of linkHtmls(); track $index) {\n <a class=\"global-footer__links-item\" (click)=\"to(i)\" [innerHTML]=\"i.title\"></a>\n }\n @for (i of items(); track $index) {\n <a class=\"global-footer__links-item\" (click)=\"to(i)\">\n <ng-container *ngTemplateOutlet=\"i.host()\" />\n </a>\n }\n </div>\n }\n <div class=\"global-footer__copyright\">\n <ng-content />\n </div>\n `,\n host: {\n '[class.global-footer]': 'true',\n '[class.global-footer-rtl]': `dir() === 'rtl'`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet]\n})\nexport class GlobalFooterComponent {\n private readonly router = inject(Router);\n private readonly win = inject(WINDOW);\n private readonly dom = inject(DomSanitizer);\n\n dir = inject(Directionality).valueSignal;\n\n links = input<GlobalFooterLink[]>([]);\n readonly items = contentChildren(GlobalFooterItemComponent);\n\n linkHtmls = computed(() => {\n return this.links().map(item => {\n if (typeof item.title === 'string') {\n item.title = this.dom.bypassSecurityTrustHtml(item.title);\n }\n return item;\n });\n });\n\n to(item: GlobalFooterLink | GlobalFooterItemComponent): void {\n const href = typeof item.href === 'string' ? item.href : item.href();\n if (!href) {\n return;\n }\n const blankTarget = typeof item.blankTarget === 'boolean' ? item.blankTarget : item.blankTarget?.();\n if (blankTarget) {\n this.win.open(href);\n return;\n }\n if (/^https?:\\/\\//.test(href)) {\n this.win.location.href = href;\n } else {\n this.router.navigateByUrl(href);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { GlobalFooterItemComponent } from './global-footer-item.component';\nimport { GlobalFooterComponent } from './global-footer.component';\n\nconst COMPONENTS = [GlobalFooterComponent, GlobalFooterItemComponent];\n\n@NgModule({\n imports: [CommonModule, RouterModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class GlobalFooterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}