@delon/abc 19.1.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 (246) hide show
  1. package/auto-focus/index.d.ts +19 -2
  2. package/cell/index.d.ts +316 -6
  3. package/cell/style/index.less +1 -1
  4. package/count-down/index.d.ts +26 -5
  5. package/date-picker/index.d.ts +51 -5
  6. package/down-file/index.d.ts +34 -5
  7. package/ellipsis/index.d.ts +55 -5
  8. package/error-collect/index.d.ts +35 -5
  9. package/exception/index.d.ts +45 -5
  10. package/fesm2022/auto-focus.mjs +7 -7
  11. package/fesm2022/cell.mjs +14 -15
  12. package/fesm2022/cell.mjs.map +1 -1
  13. package/fesm2022/chart-observer-size.mjs +11 -11
  14. package/fesm2022/count-down.mjs +8 -9
  15. package/fesm2022/count-down.mjs.map +1 -1
  16. package/fesm2022/date-picker.mjs +16 -15
  17. package/fesm2022/date-picker.mjs.map +1 -1
  18. package/fesm2022/down-file.mjs +8 -8
  19. package/fesm2022/ellipsis.mjs +9 -9
  20. package/fesm2022/ellipsis.mjs.map +1 -1
  21. package/fesm2022/error-collect.mjs +15 -15
  22. package/fesm2022/error-collect.mjs.map +1 -1
  23. package/fesm2022/exception.mjs +94 -78
  24. package/fesm2022/exception.mjs.map +1 -1
  25. package/fesm2022/footer-toolbar.mjs +44 -22
  26. package/fesm2022/footer-toolbar.mjs.map +1 -1
  27. package/fesm2022/full-content.mjs +25 -38
  28. package/fesm2022/full-content.mjs.map +1 -1
  29. package/fesm2022/global-footer.mjs +79 -60
  30. package/fesm2022/global-footer.mjs.map +1 -1
  31. package/fesm2022/hotkey.mjs +8 -8
  32. package/fesm2022/loading.mjs +12 -12
  33. package/fesm2022/loading.mjs.map +1 -1
  34. package/fesm2022/lodop.mjs +12 -11
  35. package/fesm2022/lodop.mjs.map +1 -1
  36. package/fesm2022/media.mjs +12 -13
  37. package/fesm2022/media.mjs.map +1 -1
  38. package/fesm2022/notice-icon.mjs +19 -29
  39. package/fesm2022/notice-icon.mjs.map +1 -1
  40. package/fesm2022/onboarding.mjs +14 -14
  41. package/fesm2022/onboarding.mjs.map +1 -1
  42. package/fesm2022/page-header.mjs +22 -27
  43. package/fesm2022/page-header.mjs.map +1 -1
  44. package/fesm2022/pdf.mjs +13 -13
  45. package/fesm2022/pdf.mjs.map +1 -1
  46. package/fesm2022/quick-menu.mjs +9 -9
  47. package/fesm2022/quick-menu.mjs.map +1 -1
  48. package/fesm2022/reuse-tab.mjs +32 -38
  49. package/fesm2022/reuse-tab.mjs.map +1 -1
  50. package/fesm2022/se.mjs +20 -21
  51. package/fesm2022/se.mjs.map +1 -1
  52. package/fesm2022/sg.mjs +17 -18
  53. package/fesm2022/sg.mjs.map +1 -1
  54. package/fesm2022/st.mjs +84 -87
  55. package/fesm2022/st.mjs.map +1 -1
  56. package/fesm2022/sv.mjs +23 -25
  57. package/fesm2022/sv.mjs.map +1 -1
  58. package/fesm2022/tag-select.mjs +13 -29
  59. package/fesm2022/tag-select.mjs.map +1 -1
  60. package/fesm2022/xlsx.mjs +16 -15
  61. package/fesm2022/xlsx.mjs.map +1 -1
  62. package/fesm2022/zip.mjs +8 -7
  63. package/fesm2022/zip.mjs.map +1 -1
  64. package/footer-toolbar/index.d.ts +23 -5
  65. package/footer-toolbar/style/index.less +1 -1
  66. package/full-content/index.d.ts +55 -5
  67. package/global-footer/index.d.ts +44 -5
  68. package/hotkey/index.d.ts +25 -5
  69. package/index.d.ts +2 -5
  70. package/index.less +0 -2
  71. package/loading/index.d.ts +93 -5
  72. package/lodop/index.d.ts +277 -5
  73. package/media/index.d.ts +61 -5
  74. package/notice-icon/index.d.ts +90 -5
  75. package/notice-icon/style/index.less +2 -2
  76. package/observers/index.d.ts +34 -5
  77. package/onboarding/index.d.ts +212 -5
  78. package/package.json +5 -13
  79. package/page-header/index.d.ts +83 -5
  80. package/page-header/style/index.less +1 -1
  81. package/pdf/index.d.ts +142 -5
  82. package/quick-menu/index.d.ts +38 -5
  83. package/quick-menu/style/index.less +2 -2
  84. package/reuse-tab/index.d.ts +512 -3
  85. package/se/index.d.ts +129 -5
  86. package/sg/index.d.ts +44 -5
  87. package/st/index.d.ts +1708 -3
  88. package/st/style/index.less +1 -1
  89. package/sv/index.d.ts +96 -5
  90. package/sv/style/index.less +1 -1
  91. package/tag-select/index.d.ts +27 -5
  92. package/theme-dark.less +0 -4
  93. package/theme-default.less +0 -8
  94. package/xlsx/index.d.ts +71 -5
  95. package/zip/index.d.ts +65 -5
  96. package/auto-focus/auto-focus.directive.d.ts +0 -10
  97. package/auto-focus/auto-focus.module.d.ts +0 -7
  98. package/avatar-list/avatar-list-item.component.d.ts +0 -9
  99. package/avatar-list/avatar-list.component.d.ts +0 -29
  100. package/avatar-list/avatar-list.module.d.ts +0 -14
  101. package/avatar-list/index.d.ts +0 -5
  102. package/avatar-list/public_api.d.ts +0 -3
  103. package/avatar-list/style/index.less +0 -53
  104. package/avatar-list/style/rtl.less +0 -3
  105. package/cell/cell-host.directive.d.ts +0 -10
  106. package/cell/cell.component.d.ts +0 -30
  107. package/cell/cell.module.d.ts +0 -17
  108. package/cell/cell.service.d.ts +0 -19
  109. package/cell/cell.types.d.ts +0 -234
  110. package/cell/provide.d.ts +0 -10
  111. package/count-down/count-down.component.d.ts +0 -15
  112. package/count-down/count-down.module.d.ts +0 -9
  113. package/count-down/public_api.d.ts +0 -2
  114. package/date-picker/date-picker.module.d.ts +0 -11
  115. package/date-picker/public_api.d.ts +0 -3
  116. package/date-picker/range-shortcut.component.d.ts +0 -10
  117. package/date-picker/range.directive.d.ts +0 -30
  118. package/down-file/down-file.directive.d.ts +0 -23
  119. package/down-file/down-file.module.d.ts +0 -9
  120. package/down-file/public_api.d.ts +0 -2
  121. package/ellipsis/ellipsis.component.d.ts +0 -43
  122. package/ellipsis/ellipsis.module.d.ts +0 -10
  123. package/ellipsis/public_api.d.ts +0 -2
  124. package/error-collect/error-collect.component.d.ts +0 -23
  125. package/error-collect/error-collect.module.d.ts +0 -9
  126. package/error-collect/public_api.d.ts +0 -2
  127. package/exception/exception.component.d.ts +0 -36
  128. package/exception/exception.module.d.ts +0 -12
  129. package/exception/public_api.d.ts +0 -2
  130. package/fesm2022/avatar-list.mjs +0 -132
  131. package/fesm2022/avatar-list.mjs.map +0 -1
  132. package/fesm2022/result.mjs +0 -84
  133. package/fesm2022/result.mjs.map +0 -1
  134. package/footer-toolbar/footer-toolbar.component.d.ts +0 -14
  135. package/footer-toolbar/footer-toolbar.module.d.ts +0 -10
  136. package/footer-toolbar/public_api.d.ts +0 -2
  137. package/full-content/full-content-toggle.directive.d.ts +0 -7
  138. package/full-content/full-content.component.d.ts +0 -32
  139. package/full-content/full-content.module.d.ts +0 -9
  140. package/full-content/full-content.service.d.ts +0 -10
  141. package/full-content/public_api.d.ts +0 -4
  142. package/global-footer/global-footer-item.component.d.ts +0 -10
  143. package/global-footer/global-footer.component.d.ts +0 -22
  144. package/global-footer/global-footer.module.d.ts +0 -10
  145. package/global-footer/global-footer.types.d.ts +0 -7
  146. package/global-footer/public_api.d.ts +0 -4
  147. package/hotkey/hotkey.directive.d.ts +0 -16
  148. package/hotkey/hotkey.module.d.ts +0 -7
  149. package/hotkey/public_api.d.ts +0 -2
  150. package/loading/loading.component.d.ts +0 -11
  151. package/loading/loading.module.d.ts +0 -12
  152. package/loading/loading.service.d.ts +0 -34
  153. package/loading/loading.types.d.ts +0 -35
  154. package/loading/public_api.d.ts +0 -4
  155. package/lodop/lodop.module.d.ts +0 -6
  156. package/lodop/lodop.service.d.ts +0 -74
  157. package/lodop/lodop.types.d.ts +0 -193
  158. package/lodop/public_api.d.ts +0 -3
  159. package/media/media.component.d.ts +0 -33
  160. package/media/media.module.d.ts +0 -8
  161. package/media/media.service.d.ts +0 -17
  162. package/media/public_api.d.ts +0 -3
  163. package/notice-icon/notice-icon-tab.component.d.ts +0 -13
  164. package/notice-icon/notice-icon.component.d.ts +0 -25
  165. package/notice-icon/notice-icon.module.d.ts +0 -18
  166. package/notice-icon/notice-icon.types.d.ts +0 -36
  167. package/notice-icon/public_api.d.ts +0 -4
  168. package/observers/observer-size.d.ts +0 -31
  169. package/observers/public-api.d.ts +0 -1
  170. package/onboarding/onboarding.component.d.ts +0 -35
  171. package/onboarding/onboarding.module.d.ts +0 -13
  172. package/onboarding/onboarding.service.d.ts +0 -58
  173. package/onboarding/onboarding.storage.d.ts +0 -11
  174. package/onboarding/onboarding.types.d.ts +0 -95
  175. package/onboarding/public_api.d.ts +0 -5
  176. package/page-header/page-header.component.d.ts +0 -70
  177. package/page-header/page-header.module.d.ts +0 -14
  178. package/page-header/public_api.d.ts +0 -2
  179. package/pdf/pdf.component.d.ts +0 -101
  180. package/pdf/pdf.config.d.ts +0 -2
  181. package/pdf/pdf.module.d.ts +0 -9
  182. package/pdf/pdf.types.d.ts +0 -29
  183. package/pdf/public_api.d.ts +0 -4
  184. package/public_api.d.ts +0 -2
  185. package/quick-menu/public_api.d.ts +0 -2
  186. package/quick-menu/quick-menu.component.d.ts +0 -26
  187. package/quick-menu/quick-menu.module.d.ts +0 -10
  188. package/result/index.d.ts +0 -5
  189. package/result/public_api.d.ts +0 -2
  190. package/result/result.component.d.ts +0 -21
  191. package/result/result.module.d.ts +0 -13
  192. package/result/style/index.less +0 -66
  193. package/result/style/rtl.less +0 -3
  194. package/reuse-tab/lifecycle_hooks.d.ts +0 -16
  195. package/reuse-tab/provide.d.ts +0 -28
  196. package/reuse-tab/public_api.d.ts +0 -14
  197. package/reuse-tab/reuse-tab-context-menu.component.d.ts +0 -21
  198. package/reuse-tab/reuse-tab-context.component.d.ts +0 -11
  199. package/reuse-tab/reuse-tab-context.directive.d.ts +0 -10
  200. package/reuse-tab/reuse-tab-context.service.d.ts +0 -14
  201. package/reuse-tab/reuse-tab.cache.d.ts +0 -16
  202. package/reuse-tab/reuse-tab.component.d.ts +0 -79
  203. package/reuse-tab/reuse-tab.interfaces.d.ts +0 -110
  204. package/reuse-tab/reuse-tab.module.d.ts +0 -17
  205. package/reuse-tab/reuse-tab.service.d.ts +0 -192
  206. package/reuse-tab/reuse-tab.state.d.ts +0 -14
  207. package/reuse-tab/reuse-tab.strategy.d.ts +0 -10
  208. package/se/public_api.d.ts +0 -4
  209. package/se/se-container.component.d.ts +0 -49
  210. package/se/se.component.d.ts +0 -60
  211. package/se/se.module.d.ts +0 -12
  212. package/se/se.types.d.ts +0 -9
  213. package/sg/public_api.d.ts +0 -3
  214. package/sg/sg-container.component.d.ts +0 -15
  215. package/sg/sg.component.d.ts +0 -19
  216. package/sg/sg.module.d.ts +0 -9
  217. package/st/provide.d.ts +0 -10
  218. package/st/public_api.d.ts +0 -12
  219. package/st/st-column-source.d.ts +0 -47
  220. package/st/st-data-source.d.ts +0 -77
  221. package/st/st-export.d.ts +0 -11
  222. package/st/st-filter.component.d.ts +0 -23
  223. package/st/st-row.directive.d.ts +0 -20
  224. package/st/st-widget-host.directive.d.ts +0 -12
  225. package/st/st-widget.d.ts +0 -11
  226. package/st/st.component.d.ts +0 -295
  227. package/st/st.config.d.ts +0 -2
  228. package/st/st.interfaces.d.ts +0 -1193
  229. package/st/st.module.d.ts +0 -9
  230. package/st/st.types.d.ts +0 -77
  231. package/sv/public_api.d.ts +0 -4
  232. package/sv/sv-container.component.d.ts +0 -39
  233. package/sv/sv-value.component.d.ts +0 -10
  234. package/sv/sv.component.d.ts +0 -34
  235. package/sv/sv.module.d.ts +0 -14
  236. package/tag-select/public_api.d.ts +0 -2
  237. package/tag-select/tag-select.component.d.ts +0 -21
  238. package/tag-select/tag-select.module.d.ts +0 -10
  239. package/xlsx/public_api.d.ts +0 -4
  240. package/xlsx/xlsx.directive.d.ts +0 -9
  241. package/xlsx/xlsx.module.d.ts +0 -7
  242. package/xlsx/xlsx.service.d.ts +0 -27
  243. package/xlsx/xlsx.types.d.ts +0 -27
  244. package/zip/public_api.d.ts +0 -2
  245. package/zip/zip.service.d.ts +0 -34
  246. package/zip/zip.types.d.ts +0 -28
@@ -1,33 +1,31 @@
1
1
  import { NgTemplateOutlet, CommonModule } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { input, output, Component, ViewEncapsulation, inject, numberAttribute, booleanAttribute, signal, effect, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import { input, output, ViewEncapsulation, Component, inject, numberAttribute, booleanAttribute, signal, effect, ChangeDetectionStrategy, NgModule } from '@angular/core';
4
4
  import { NzStringTemplateOutletDirective, NzOutletModule } from 'ng-zorro-antd/core/outlet';
5
5
  import { NzListComponent, NzListItemComponent, NzListItemMetaComponent, NzListModule } from 'ng-zorro-antd/list';
6
6
  import { NzTagComponent, NzTagModule } from 'ng-zorro-antd/tag';
7
- import { toSignal } from '@angular/core/rxjs-interop';
8
- import { map } from 'rxjs';
9
7
  import { DelonLocaleService, DelonLocaleModule } from '@delon/theme';
10
8
  import { NzBadgeComponent, NzBadgeModule } from 'ng-zorro-antd/badge';
11
9
  import { NzDropDownDirective, NzDropdownMenuComponent, NzDropDownModule } from 'ng-zorro-antd/dropdown';
12
10
  import { NzIconDirective, NzIconModule } from 'ng-zorro-antd/icon';
13
11
  import { NzSpinComponent, NzSpinModule } from 'ng-zorro-antd/spin';
14
- import { NzTabSetComponent, NzTabComponent, NzTabsModule } from 'ng-zorro-antd/tabs';
12
+ import { NzTabsComponent, NzTabComponent, NzTabsModule } from 'ng-zorro-antd/tabs';
15
13
 
16
14
  class NoticeIconTabComponent {
17
15
  locale = input.required();
18
16
  item = input.required();
19
17
  select = output();
20
18
  clear = output();
21
- onClick(item) {
22
- this.select.emit({ title: this.item().title, item });
19
+ onClick(item, event) {
20
+ this.select.emit({ title: this.item().title, item, event });
23
21
  }
24
22
  onClear() {
25
23
  this.clear.emit(this.item().title);
26
24
  }
27
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: NoticeIconTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.1", type: NoticeIconTabComponent, isStandalone: true, selector: "notice-icon-tab", inputs: { locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: true, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { select: "select", clear: "clear" }, exportAs: ["noticeIconTab"], ngImport: i0, template: "@let d = item();\n@let list = d.list;\n@if (list && list.length > 0) {\n <ng-template [ngTemplateOutlet]=\"listTpl\" />\n} @else {\n <div class=\"notice-icon__notfound\">\n @if (d.emptyImage) {\n <img class=\"notice-icon__notfound-img\" [attr.src]=\"d.emptyImage\" alt=\"not found\" />\n }\n <p>\n <ng-container *nzStringTemplateOutlet=\"d.emptyText\">\n {{ d.emptyText || locale().emptyText }}\n </ng-container>\n </p>\n </div>\n}\n<ng-template #listTpl>\n <nz-list [nzDataSource]=\"list\" [nzRenderItem]=\"item\">\n <ng-template #item let-item>\n <nz-list-item (click)=\"onClick(item)\" [class.notice-icon__item-read]=\"item.read\">\n <nz-list-item-meta [nzTitle]=\"nzTitle\" [nzDescription]=\"nzDescription\" [nzAvatar]=\"item.avatar\">\n <ng-template #nzTitle>\n <ng-container *nzStringTemplateOutlet=\"item.title; context: { $implicit: item }\">\n {{ item.title }}\n </ng-container>\n @if (item.extra) {\n <div class=\"notice-icon__item-extra\">\n <nz-tag [nzColor]=\"item.color\">{{ item.extra }}</nz-tag>\n </div>\n }\n </ng-template>\n <ng-template #nzDescription>\n @if (item.description) {\n <div class=\"notice-icon__item-desc\">\n <ng-container *nzStringTemplateOutlet=\"item.description; context: { $implicit: item }\">\n {{ item.description }}\n </ng-container>\n </div>\n }\n @if (item.datetime) {\n <div class=\"notice-icon__item-time\">{{ item.datetime }}</div>\n }\n </ng-template>\n </nz-list-item-meta>\n </nz-list-item>\n </ng-template>\n </nz-list>\n <div class=\"notice-icon__clear\" (click)=\"onClear()\">{{ d.clearText || locale().clearText }}</div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { kind: "component", type: NzListComponent, selector: "nz-list, [nz-list]", inputs: ["nzDataSource", "nzBordered", "nzGrid", "nzHeader", "nzFooter", "nzItemLayout", "nzRenderItem", "nzLoading", "nzLoadMore", "nzPagination", "nzSize", "nzSplit", "nzNoResult"], exportAs: ["nzList"] }, { kind: "component", type: NzListItemComponent, selector: "nz-list-item, [nz-list-item]", inputs: ["nzActions", "nzContent", "nzExtra", "nzNoFlex"], exportAs: ["nzListItem"] }, { kind: "component", type: NzListItemMetaComponent, selector: "nz-list-item-meta, [nz-list-item-meta]", inputs: ["nzAvatar", "nzTitle", "nzDescription"], exportAs: ["nzListItemMeta"] }, { kind: "component", type: NzTagComponent, selector: "nz-tag", inputs: ["nzMode", "nzColor", "nzChecked", "nzBordered"], outputs: ["nzOnClose", "nzCheckedChange"], exportAs: ["nzTag"] }], encapsulation: i0.ViewEncapsulation.None });
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: NoticeIconTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: NoticeIconTabComponent, isStandalone: true, selector: "notice-icon-tab", inputs: { locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: true, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { select: "select", clear: "clear" }, exportAs: ["noticeIconTab"], ngImport: i0, template: "@let d = item();\n@let list = d.list;\n@if (list && list.length > 0) {\n <ng-template [ngTemplateOutlet]=\"listTpl\" />\n} @else {\n <div class=\"notice-icon__notfound\">\n @if (d.emptyImage) {\n <img class=\"notice-icon__notfound-img\" [attr.src]=\"d.emptyImage\" alt=\"not found\" />\n }\n <p>\n <ng-container *nzStringTemplateOutlet=\"d.emptyText\">\n {{ d.emptyText || locale().emptyText }}\n </ng-container>\n </p>\n </div>\n}\n<ng-template #listTpl>\n <nz-list [nzDataSource]=\"list\" [nzRenderItem]=\"item\">\n <ng-template #item let-item>\n <nz-list-item (click)=\"onClick(item, $event)\" [class.notice-icon__item-read]=\"item.read\">\n <nz-list-item-meta [nzTitle]=\"nzTitle\" [nzDescription]=\"nzDescription\" [nzAvatar]=\"item.avatar\">\n <ng-template #nzTitle>\n <ng-container *nzStringTemplateOutlet=\"item.title; context: { $implicit: item }\">\n {{ item.title }}\n </ng-container>\n @if (item.extra) {\n <div class=\"notice-icon__item-extra\">\n <nz-tag [nzColor]=\"item.color\">{{ item.extra }}</nz-tag>\n </div>\n }\n </ng-template>\n <ng-template #nzDescription>\n @if (item.description) {\n <div class=\"notice-icon__item-desc\">\n <ng-container *nzStringTemplateOutlet=\"item.description; context: { $implicit: item }\">\n {{ item.description }}\n </ng-container>\n </div>\n }\n @if (item.datetime) {\n <div class=\"notice-icon__item-time\">{{ item.datetime }}</div>\n }\n </ng-template>\n </nz-list-item-meta>\n </nz-list-item>\n </ng-template>\n </nz-list>\n <div class=\"notice-icon__clear\" (click)=\"onClear()\">{{ d.clearText || locale().clearText }}</div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { kind: "component", type: NzListComponent, selector: "nz-list, [nz-list]", inputs: ["nzDataSource", "nzBordered", "nzGrid", "nzHeader", "nzFooter", "nzItemLayout", "nzRenderItem", "nzLoading", "nzLoadMore", "nzPagination", "nzSize", "nzSplit", "nzNoResult"], exportAs: ["nzList"] }, { kind: "component", type: NzListItemComponent, selector: "nz-list-item, [nz-list-item]", inputs: ["nzActions", "nzContent", "nzExtra", "nzNoFlex"], exportAs: ["nzListItem"] }, { kind: "component", type: NzListItemMetaComponent, selector: "nz-list-item-meta, [nz-list-item-meta]", inputs: ["nzAvatar", "nzTitle", "nzDescription"], exportAs: ["nzListItemMeta"] }, { kind: "component", type: NzTagComponent, selector: "nz-tag", inputs: ["nzMode", "nzColor", "nzChecked", "nzBordered"], outputs: ["nzOnClose", "nzCheckedChange"], exportAs: ["nzTag"] }], encapsulation: i0.ViewEncapsulation.None });
29
27
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: NoticeIconTabComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: NoticeIconTabComponent, decorators: [{
31
29
  type: Component,
32
30
  args: [{ selector: 'notice-icon-tab', exportAs: 'noticeIconTab', preserveWhitespaces: false, encapsulation: ViewEncapsulation.None, imports: [
33
31
  NgTemplateOutlet,
@@ -36,13 +34,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImpor
36
34
  NzListItemComponent,
37
35
  NzListItemMetaComponent,
38
36
  NzTagComponent
39
- ], template: "@let d = item();\n@let list = d.list;\n@if (list && list.length > 0) {\n <ng-template [ngTemplateOutlet]=\"listTpl\" />\n} @else {\n <div class=\"notice-icon__notfound\">\n @if (d.emptyImage) {\n <img class=\"notice-icon__notfound-img\" [attr.src]=\"d.emptyImage\" alt=\"not found\" />\n }\n <p>\n <ng-container *nzStringTemplateOutlet=\"d.emptyText\">\n {{ d.emptyText || locale().emptyText }}\n </ng-container>\n </p>\n </div>\n}\n<ng-template #listTpl>\n <nz-list [nzDataSource]=\"list\" [nzRenderItem]=\"item\">\n <ng-template #item let-item>\n <nz-list-item (click)=\"onClick(item)\" [class.notice-icon__item-read]=\"item.read\">\n <nz-list-item-meta [nzTitle]=\"nzTitle\" [nzDescription]=\"nzDescription\" [nzAvatar]=\"item.avatar\">\n <ng-template #nzTitle>\n <ng-container *nzStringTemplateOutlet=\"item.title; context: { $implicit: item }\">\n {{ item.title }}\n </ng-container>\n @if (item.extra) {\n <div class=\"notice-icon__item-extra\">\n <nz-tag [nzColor]=\"item.color\">{{ item.extra }}</nz-tag>\n </div>\n }\n </ng-template>\n <ng-template #nzDescription>\n @if (item.description) {\n <div class=\"notice-icon__item-desc\">\n <ng-container *nzStringTemplateOutlet=\"item.description; context: { $implicit: item }\">\n {{ item.description }}\n </ng-container>\n </div>\n }\n @if (item.datetime) {\n <div class=\"notice-icon__item-time\">{{ item.datetime }}</div>\n }\n </ng-template>\n </nz-list-item-meta>\n </nz-list-item>\n </ng-template>\n </nz-list>\n <div class=\"notice-icon__clear\" (click)=\"onClear()\">{{ d.clearText || locale().clearText }}</div>\n</ng-template>\n" }]
37
+ ], template: "@let d = item();\n@let list = d.list;\n@if (list && list.length > 0) {\n <ng-template [ngTemplateOutlet]=\"listTpl\" />\n} @else {\n <div class=\"notice-icon__notfound\">\n @if (d.emptyImage) {\n <img class=\"notice-icon__notfound-img\" [attr.src]=\"d.emptyImage\" alt=\"not found\" />\n }\n <p>\n <ng-container *nzStringTemplateOutlet=\"d.emptyText\">\n {{ d.emptyText || locale().emptyText }}\n </ng-container>\n </p>\n </div>\n}\n<ng-template #listTpl>\n <nz-list [nzDataSource]=\"list\" [nzRenderItem]=\"item\">\n <ng-template #item let-item>\n <nz-list-item (click)=\"onClick(item, $event)\" [class.notice-icon__item-read]=\"item.read\">\n <nz-list-item-meta [nzTitle]=\"nzTitle\" [nzDescription]=\"nzDescription\" [nzAvatar]=\"item.avatar\">\n <ng-template #nzTitle>\n <ng-container *nzStringTemplateOutlet=\"item.title; context: { $implicit: item }\">\n {{ item.title }}\n </ng-container>\n @if (item.extra) {\n <div class=\"notice-icon__item-extra\">\n <nz-tag [nzColor]=\"item.color\">{{ item.extra }}</nz-tag>\n </div>\n }\n </ng-template>\n <ng-template #nzDescription>\n @if (item.description) {\n <div class=\"notice-icon__item-desc\">\n <ng-container *nzStringTemplateOutlet=\"item.description; context: { $implicit: item }\">\n {{ item.description }}\n </ng-container>\n </div>\n }\n @if (item.datetime) {\n <div class=\"notice-icon__item-time\">{{ item.datetime }}</div>\n }\n </ng-template>\n </nz-list-item-meta>\n </nz-list-item>\n </ng-template>\n </nz-list>\n <div class=\"notice-icon__clear\" (click)=\"onClear()\">{{ d.clearText || locale().clearText }}</div>\n</ng-template>\n" }]
40
38
  }] });
41
39
 
42
40
  class NoticeIconComponent {
43
- locale = toSignal(inject(DelonLocaleService).change.pipe(map(data => data['noticeIcon'])), {
44
- requireSync: true
45
- });
41
+ locale = inject(DelonLocaleService).valueSignal('noticeIcon');
46
42
  data = input([]);
47
43
  count = input(undefined, { transform: numberAttribute });
48
44
  loading = input(false, { transform: booleanAttribute });
@@ -66,34 +62,28 @@ class NoticeIconComponent {
66
62
  this.delayShow.set(result);
67
63
  this.popoverVisibleChange.emit(result);
68
64
  }
69
- onSelect(i) {
70
- this.select.emit(i);
71
- }
72
- onClear(title) {
73
- this.clear.emit(title);
74
- }
75
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: NoticeIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
76
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.1", type: NoticeIconComponent, isStandalone: true, selector: "notice-icon", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, popoverVisible: { classPropertyName: "popoverVisible", publicName: "popoverVisible", isSignal: true, isRequired: false, transformFunction: null }, btnClass: { classPropertyName: "btnClass", publicName: "btnClass", isSignal: true, isRequired: false, transformFunction: null }, btnIconClass: { classPropertyName: "btnIconClass", publicName: "btnIconClass", isSignal: true, isRequired: false, transformFunction: null }, centered: { classPropertyName: "centered", publicName: "centered", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { select: "select", clear: "clear", popoverVisibleChange: "popoverVisibleChange" }, host: { properties: { "class.notice-icon__btn": "true" } }, exportAs: ["noticeIcon"], ngImport: i0, template: "<ng-template #badgeTpl>\n <nz-badge [nzCount]=\"count()\" [class]=\"btnClass()\" [nzStyle]=\"{ 'box-shadow': 'none' }\">\n <nz-icon nzType=\"bell\" [class]=\"btnIconClass()\" />\n </nz-badge>\n</ng-template>\n@let d = data();\n@if (d.length <= 0) {\n <ng-template [ngTemplateOutlet]=\"badgeTpl\" />\n} @else {\n <div\n nz-dropdown\n [nzVisible]=\"popoverVisible()\"\n (nzVisibleChange)=\"onVisibleChange($event)\"\n nzTrigger=\"click\"\n nzPlacement=\"bottomRight\"\n [nzOverlayClassName]=\"overlayCls()\"\n [nzDropdownMenu]=\"noticeMenu\"\n >\n <ng-template [ngTemplateOutlet]=\"badgeTpl\" />\n </div>\n <nz-dropdown-menu #noticeMenu=\"nzDropdownMenu\">\n <nz-spin [nzSpinning]=\"loading()\" [nzDelay]=\"0\">\n @if (delayShow()) {\n <nz-tabset [nzSelectedIndex]=\"0\" [nzCentered]=\"centered()\">\n @for (i of d; track $index) {\n <nz-tab [nzTitle]=\"i.title\">\n <notice-icon-tab [locale]=\"locale()\" [item]=\"i\" (select)=\"onSelect($event)\" (clear)=\"onClear($event)\" />\n </nz-tab>\n }\n </nz-tabset>\n }\n </nz-spin>\n </nz-dropdown-menu>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NzBadgeComponent, selector: "nz-badge", inputs: ["nzShowZero", "nzShowDot", "nzStandalone", "nzDot", "nzOverflowCount", "nzColor", "nzStyle", "nzText", "nzTitle", "nzStatus", "nzCount", "nzOffset", "nzSize"], exportAs: ["nzBadge"] }, { kind: "directive", type: NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "component", type: NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { kind: "component", type: NzTabSetComponent, selector: "nz-tabset", inputs: ["nzSelectedIndex", "nzTabPosition", "nzTabBarExtraContent", "nzCanDeactivate", "nzAddIcon", "nzTabBarStyle", "nzType", "nzSize", "nzAnimated", "nzTabBarGutter", "nzHideAdd", "nzCentered", "nzHideAll", "nzLinkRouter", "nzLinkExact", "nzDestroyInactiveTabPane"], outputs: ["nzSelectChange", "nzSelectedIndexChange", "nzTabListScroll", "nzClose", "nzAdd"], exportAs: ["nzTabset"] }, { kind: "component", type: NzTabComponent, selector: "nz-tab", inputs: ["nzTitle", "nzClosable", "nzCloseIcon", "nzDisabled", "nzForceRender"], outputs: ["nzSelect", "nzDeselect", "nzClick", "nzContextmenu"], exportAs: ["nzTab"] }, { kind: "component", type: NoticeIconTabComponent, selector: "notice-icon-tab", inputs: ["locale", "item"], outputs: ["select", "clear"], exportAs: ["noticeIconTab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
65
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: NoticeIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
66
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: NoticeIconComponent, isStandalone: true, selector: "notice-icon", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, popoverVisible: { classPropertyName: "popoverVisible", publicName: "popoverVisible", isSignal: true, isRequired: false, transformFunction: null }, btnClass: { classPropertyName: "btnClass", publicName: "btnClass", isSignal: true, isRequired: false, transformFunction: null }, btnIconClass: { classPropertyName: "btnIconClass", publicName: "btnIconClass", isSignal: true, isRequired: false, transformFunction: null }, centered: { classPropertyName: "centered", publicName: "centered", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { select: "select", clear: "clear", popoverVisibleChange: "popoverVisibleChange" }, host: { properties: { "class.notice-icon__btn": "true" } }, exportAs: ["noticeIcon"], ngImport: i0, template: "<ng-template #badgeTpl>\n <nz-badge [nzCount]=\"count()\" [class]=\"btnClass()\" [nzStyle]=\"{ 'box-shadow': 'none' }\">\n <nz-icon nzType=\"bell\" [class]=\"btnIconClass()\" />\n </nz-badge>\n</ng-template>\n@let d = data();\n@if (d.length <= 0) {\n <ng-template [ngTemplateOutlet]=\"badgeTpl\" />\n} @else {\n <div\n nz-dropdown\n [nzVisible]=\"popoverVisible()\"\n (nzVisibleChange)=\"onVisibleChange($event)\"\n nzTrigger=\"click\"\n nzPlacement=\"bottomRight\"\n [nzOverlayClassName]=\"overlayCls()\"\n [nzDropdownMenu]=\"noticeMenu\"\n >\n <ng-template [ngTemplateOutlet]=\"badgeTpl\" />\n </div>\n <nz-dropdown-menu #noticeMenu=\"nzDropdownMenu\">\n <nz-spin [nzSpinning]=\"loading()\" [nzDelay]=\"0\">\n @if (delayShow()) {\n <nz-tabs [nzSelectedIndex]=\"0\" [nzCentered]=\"centered()\">\n @for (i of d; track $index) {\n <nz-tab [nzTitle]=\"i.title\">\n <notice-icon-tab [locale]=\"locale()\" [item]=\"i\" (select)=\"select.emit($event)\" (clear)=\"clear.emit($event)\" />\n </nz-tab>\n }\n </nz-tabs>\n }\n </nz-spin>\n </nz-dropdown-menu>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NzBadgeComponent, selector: "nz-badge", inputs: ["nzShowZero", "nzShowDot", "nzStandalone", "nzDot", "nzOverflowCount", "nzColor", "nzStyle", "nzText", "nzTitle", "nzStatus", "nzCount", "nzOffset", "nzSize"], exportAs: ["nzBadge"] }, { kind: "directive", type: NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "component", type: NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { kind: "component", type: NzTabsComponent, selector: "nz-tabs,nz-tabset", inputs: ["nzSelectedIndex", "nzTabPosition", "nzTabBarExtraContent", "nzCanDeactivate", "nzAddIcon", "nzTabBarStyle", "nzType", "nzSize", "nzAnimated", "nzTabBarGutter", "nzHideAdd", "nzCentered", "nzHideAll", "nzLinkRouter", "nzLinkExact", "nzDestroyInactiveTabPane"], outputs: ["nzSelectChange", "nzSelectedIndexChange", "nzTabListScroll", "nzClose", "nzAdd"], exportAs: ["nzTabs"] }, { kind: "component", type: NzTabComponent, selector: "nz-tab", inputs: ["nzTitle", "nzClosable", "nzCloseIcon", "nzDisabled", "nzForceRender"], outputs: ["nzSelect", "nzDeselect", "nzClick", "nzContextmenu"], exportAs: ["nzTab"] }, { kind: "component", type: NoticeIconTabComponent, selector: "notice-icon-tab", inputs: ["locale", "item"], outputs: ["select", "clear"], exportAs: ["noticeIconTab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
77
67
  }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: NoticeIconComponent, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: NoticeIconComponent, decorators: [{
79
69
  type: Component,
80
- args: [{ selector: 'notice-icon', exportAs: 'noticeIcon', host: { '[class.notice-icon__btn]': 'true' }, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
70
+ args: [{ selector: 'notice-icon', exportAs: 'noticeIcon', host: { '[class.notice-icon__btn]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
81
71
  NgTemplateOutlet,
82
72
  NzBadgeComponent,
83
73
  NzIconDirective,
84
74
  NzDropDownDirective,
85
75
  NzDropdownMenuComponent,
86
76
  NzSpinComponent,
87
- NzTabSetComponent,
77
+ NzTabsComponent,
88
78
  NzTabComponent,
89
79
  NoticeIconTabComponent
90
- ], template: "<ng-template #badgeTpl>\n <nz-badge [nzCount]=\"count()\" [class]=\"btnClass()\" [nzStyle]=\"{ 'box-shadow': 'none' }\">\n <nz-icon nzType=\"bell\" [class]=\"btnIconClass()\" />\n </nz-badge>\n</ng-template>\n@let d = data();\n@if (d.length <= 0) {\n <ng-template [ngTemplateOutlet]=\"badgeTpl\" />\n} @else {\n <div\n nz-dropdown\n [nzVisible]=\"popoverVisible()\"\n (nzVisibleChange)=\"onVisibleChange($event)\"\n nzTrigger=\"click\"\n nzPlacement=\"bottomRight\"\n [nzOverlayClassName]=\"overlayCls()\"\n [nzDropdownMenu]=\"noticeMenu\"\n >\n <ng-template [ngTemplateOutlet]=\"badgeTpl\" />\n </div>\n <nz-dropdown-menu #noticeMenu=\"nzDropdownMenu\">\n <nz-spin [nzSpinning]=\"loading()\" [nzDelay]=\"0\">\n @if (delayShow()) {\n <nz-tabset [nzSelectedIndex]=\"0\" [nzCentered]=\"centered()\">\n @for (i of d; track $index) {\n <nz-tab [nzTitle]=\"i.title\">\n <notice-icon-tab [locale]=\"locale()\" [item]=\"i\" (select)=\"onSelect($event)\" (clear)=\"onClear($event)\" />\n </nz-tab>\n }\n </nz-tabset>\n }\n </nz-spin>\n </nz-dropdown-menu>\n}\n" }]
80
+ ], template: "<ng-template #badgeTpl>\n <nz-badge [nzCount]=\"count()\" [class]=\"btnClass()\" [nzStyle]=\"{ 'box-shadow': 'none' }\">\n <nz-icon nzType=\"bell\" [class]=\"btnIconClass()\" />\n </nz-badge>\n</ng-template>\n@let d = data();\n@if (d.length <= 0) {\n <ng-template [ngTemplateOutlet]=\"badgeTpl\" />\n} @else {\n <div\n nz-dropdown\n [nzVisible]=\"popoverVisible()\"\n (nzVisibleChange)=\"onVisibleChange($event)\"\n nzTrigger=\"click\"\n nzPlacement=\"bottomRight\"\n [nzOverlayClassName]=\"overlayCls()\"\n [nzDropdownMenu]=\"noticeMenu\"\n >\n <ng-template [ngTemplateOutlet]=\"badgeTpl\" />\n </div>\n <nz-dropdown-menu #noticeMenu=\"nzDropdownMenu\">\n <nz-spin [nzSpinning]=\"loading()\" [nzDelay]=\"0\">\n @if (delayShow()) {\n <nz-tabs [nzSelectedIndex]=\"0\" [nzCentered]=\"centered()\">\n @for (i of d; track $index) {\n <nz-tab [nzTitle]=\"i.title\">\n <notice-icon-tab [locale]=\"locale()\" [item]=\"i\" (select)=\"select.emit($event)\" (clear)=\"clear.emit($event)\" />\n </nz-tab>\n }\n </nz-tabs>\n }\n </nz-spin>\n </nz-dropdown-menu>\n}\n" }]
91
81
  }], ctorParameters: () => [] });
92
82
 
93
83
  const COMPONENTS = [NoticeIconComponent];
94
84
  class NoticeIconModule {
95
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: NoticeIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
96
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.1", ngImport: i0, type: NoticeIconModule, imports: [CommonModule,
85
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: NoticeIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
86
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.4", ngImport: i0, type: NoticeIconModule, imports: [CommonModule,
97
87
  DelonLocaleModule,
98
88
  NzBadgeModule,
99
89
  NzDropDownModule,
@@ -103,7 +93,7 @@ class NoticeIconModule {
103
93
  NzTabsModule,
104
94
  NzTagModule,
105
95
  NzOutletModule, NoticeIconComponent, NoticeIconTabComponent], exports: [NoticeIconComponent] });
106
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: NoticeIconModule, imports: [CommonModule,
96
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: NoticeIconModule, imports: [CommonModule,
107
97
  DelonLocaleModule,
108
98
  NzBadgeModule,
109
99
  NzDropDownModule,
@@ -114,7 +104,7 @@ class NoticeIconModule {
114
104
  NzTagModule,
115
105
  NzOutletModule, COMPONENTS, NoticeIconTabComponent] });
116
106
  }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: NoticeIconModule, decorators: [{
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: NoticeIconModule, decorators: [{
118
108
  type: NgModule,
119
109
  args: [{
120
110
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"notice-icon.mjs","sources":["../../../../packages/abc/notice-icon/notice-icon-tab.component.ts","../../../../packages/abc/notice-icon/notice-icon-tab.component.html","../../../../packages/abc/notice-icon/notice-icon.component.ts","../../../../packages/abc/notice-icon/notice-icon.component.html","../../../../packages/abc/notice-icon/notice-icon.module.ts","../../../../packages/abc/notice-icon/notice-icon.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { Component, input, output, ViewEncapsulation } from '@angular/core';\n\nimport { LocaleData } from '@delon/theme';\nimport { NzStringTemplateOutletDirective } from 'ng-zorro-antd/core/outlet';\nimport { NzListComponent, NzListItemComponent, NzListItemMetaComponent } from 'ng-zorro-antd/list';\nimport { NzTagComponent } from 'ng-zorro-antd/tag';\n\nimport { NoticeIconSelect, NoticeItem } from './notice-icon.types';\n\n@Component({\n selector: 'notice-icon-tab',\n exportAs: 'noticeIconTab',\n templateUrl: './notice-icon-tab.component.html',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgTemplateOutlet,\n NzStringTemplateOutletDirective,\n NzListComponent,\n NzListItemComponent,\n NzListItemMetaComponent,\n NzTagComponent\n ]\n})\nexport class NoticeIconTabComponent {\n locale = input.required<LocaleData>();\n item = input.required<NoticeItem>();\n readonly select = output<NoticeIconSelect>();\n readonly clear = output<string>();\n\n onClick(item: NoticeItem): void {\n this.select.emit({ title: this.item().title, item });\n }\n\n onClear(): void {\n this.clear.emit(this.item().title);\n }\n}\n","@let d = item();\n@let list = d.list;\n@if (list && list.length > 0) {\n <ng-template [ngTemplateOutlet]=\"listTpl\" />\n} @else {\n <div class=\"notice-icon__notfound\">\n @if (d.emptyImage) {\n <img class=\"notice-icon__notfound-img\" [attr.src]=\"d.emptyImage\" alt=\"not found\" />\n }\n <p>\n <ng-container *nzStringTemplateOutlet=\"d.emptyText\">\n {{ d.emptyText || locale().emptyText }}\n </ng-container>\n </p>\n </div>\n}\n<ng-template #listTpl>\n <nz-list [nzDataSource]=\"list\" [nzRenderItem]=\"item\">\n <ng-template #item let-item>\n <nz-list-item (click)=\"onClick(item)\" [class.notice-icon__item-read]=\"item.read\">\n <nz-list-item-meta [nzTitle]=\"nzTitle\" [nzDescription]=\"nzDescription\" [nzAvatar]=\"item.avatar\">\n <ng-template #nzTitle>\n <ng-container *nzStringTemplateOutlet=\"item.title; context: { $implicit: item }\">\n {{ item.title }}\n </ng-container>\n @if (item.extra) {\n <div class=\"notice-icon__item-extra\">\n <nz-tag [nzColor]=\"item.color\">{{ item.extra }}</nz-tag>\n </div>\n }\n </ng-template>\n <ng-template #nzDescription>\n @if (item.description) {\n <div class=\"notice-icon__item-desc\">\n <ng-container *nzStringTemplateOutlet=\"item.description; context: { $implicit: item }\">\n {{ item.description }}\n </ng-container>\n </div>\n }\n @if (item.datetime) {\n <div class=\"notice-icon__item-time\">{{ item.datetime }}</div>\n }\n </ng-template>\n </nz-list-item-meta>\n </nz-list-item>\n </ng-template>\n </nz-list>\n <div class=\"notice-icon__clear\" (click)=\"onClear()\">{{ d.clearText || locale().clearText }}</div>\n</ng-template>\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n effect,\n inject,\n input,\n numberAttribute,\n output,\n signal\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map } from 'rxjs';\n\nimport { DelonLocaleService, LocaleData } from '@delon/theme';\nimport { NzBadgeComponent } from 'ng-zorro-antd/badge';\nimport type { NgClassType } from 'ng-zorro-antd/core/types';\nimport { NzDropDownDirective, NzDropdownMenuComponent } from 'ng-zorro-antd/dropdown';\nimport { NzIconDirective } from 'ng-zorro-antd/icon';\nimport { NzSpinComponent } from 'ng-zorro-antd/spin';\nimport { NzTabComponent, NzTabSetComponent } from 'ng-zorro-antd/tabs';\n\nimport { NoticeIconTabComponent } from './notice-icon-tab.component';\nimport { NoticeIconSelect, NoticeItem } from './notice-icon.types';\n\n@Component({\n selector: 'notice-icon',\n exportAs: 'noticeIcon',\n templateUrl: './notice-icon.component.html',\n host: { '[class.notice-icon__btn]': 'true' },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgTemplateOutlet,\n NzBadgeComponent,\n NzIconDirective,\n NzDropDownDirective,\n NzDropdownMenuComponent,\n NzSpinComponent,\n NzTabSetComponent,\n NzTabComponent,\n NoticeIconTabComponent\n ]\n})\nexport class NoticeIconComponent {\n locale = toSignal<LocaleData>(inject(DelonLocaleService).change.pipe(map(data => data['noticeIcon'])), {\n requireSync: true\n });\n data = input<NoticeItem[]>([]);\n count = input(undefined, { transform: numberAttribute });\n loading = input(false, { transform: booleanAttribute });\n popoverVisible = input(false, { transform: booleanAttribute });\n btnClass = input<NgClassType>();\n btnIconClass = input<NgClassType>();\n centered = input(false, { transform: booleanAttribute });\n readonly select = output<NoticeIconSelect>();\n readonly clear = output<string>();\n readonly popoverVisibleChange = output<boolean>();\n\n overlayCls = signal<string>('');\n\n constructor() {\n effect(() => {\n this.overlayCls.set(`header-dropdown notice-icon${!this.centered() ? ' notice-icon__tab-left' : ''}`);\n if (!this.popoverVisible()) this.delayShow.set(false);\n });\n }\n\n delayShow = signal(false);\n onVisibleChange(result: boolean): void {\n this.delayShow.set(result);\n this.popoverVisibleChange.emit(result);\n }\n\n onSelect(i: NoticeIconSelect): void {\n this.select.emit(i);\n }\n\n onClear(title: string): void {\n this.clear.emit(title);\n }\n}\n","<ng-template #badgeTpl>\n <nz-badge [nzCount]=\"count()\" [class]=\"btnClass()\" [nzStyle]=\"{ 'box-shadow': 'none' }\">\n <nz-icon nzType=\"bell\" [class]=\"btnIconClass()\" />\n </nz-badge>\n</ng-template>\n@let d = data();\n@if (d.length <= 0) {\n <ng-template [ngTemplateOutlet]=\"badgeTpl\" />\n} @else {\n <div\n nz-dropdown\n [nzVisible]=\"popoverVisible()\"\n (nzVisibleChange)=\"onVisibleChange($event)\"\n nzTrigger=\"click\"\n nzPlacement=\"bottomRight\"\n [nzOverlayClassName]=\"overlayCls()\"\n [nzDropdownMenu]=\"noticeMenu\"\n >\n <ng-template [ngTemplateOutlet]=\"badgeTpl\" />\n </div>\n <nz-dropdown-menu #noticeMenu=\"nzDropdownMenu\">\n <nz-spin [nzSpinning]=\"loading()\" [nzDelay]=\"0\">\n @if (delayShow()) {\n <nz-tabset [nzSelectedIndex]=\"0\" [nzCentered]=\"centered()\">\n @for (i of d; track $index) {\n <nz-tab [nzTitle]=\"i.title\">\n <notice-icon-tab [locale]=\"locale()\" [item]=\"i\" (select)=\"onSelect($event)\" (clear)=\"onClear($event)\" />\n </nz-tab>\n }\n </nz-tabset>\n }\n </nz-spin>\n </nz-dropdown-menu>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DelonLocaleModule } from '@delon/theme';\nimport { NzBadgeModule } from 'ng-zorro-antd/badge';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzListModule } from 'ng-zorro-antd/list';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\nimport { NzTagModule } from 'ng-zorro-antd/tag';\n\nimport { NoticeIconTabComponent } from './notice-icon-tab.component';\nimport { NoticeIconComponent } from './notice-icon.component';\n\nconst COMPONENTS = [NoticeIconComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n DelonLocaleModule,\n NzBadgeModule,\n NzDropDownModule,\n NzIconModule,\n NzListModule,\n NzSpinModule,\n NzTabsModule,\n NzTagModule,\n NzOutletModule,\n ...COMPONENTS,\n NoticeIconTabComponent\n ],\n exports: COMPONENTS\n})\nexport class NoticeIconModule {}\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":"notice-icon.mjs","sources":["../../../../packages/abc/notice-icon/notice-icon-tab.component.ts","../../../../packages/abc/notice-icon/notice-icon-tab.component.html","../../../../packages/abc/notice-icon/notice-icon.component.ts","../../../../packages/abc/notice-icon/notice-icon.component.html","../../../../packages/abc/notice-icon/notice-icon.module.ts","../../../../packages/abc/notice-icon/notice-icon.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { Component, input, output, ViewEncapsulation } from '@angular/core';\n\nimport { LocaleData } from '@delon/theme';\nimport { NzStringTemplateOutletDirective } from 'ng-zorro-antd/core/outlet';\nimport { NzListComponent, NzListItemComponent, NzListItemMetaComponent } from 'ng-zorro-antd/list';\nimport { NzTagComponent } from 'ng-zorro-antd/tag';\n\nimport { NoticeIconSelect, NoticeItem } from './notice-icon.types';\n\n@Component({\n selector: 'notice-icon-tab',\n exportAs: 'noticeIconTab',\n templateUrl: './notice-icon-tab.component.html',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgTemplateOutlet,\n NzStringTemplateOutletDirective,\n NzListComponent,\n NzListItemComponent,\n NzListItemMetaComponent,\n NzTagComponent\n ]\n})\nexport class NoticeIconTabComponent {\n locale = input.required<LocaleData>();\n item = input.required<NoticeItem>();\n readonly select = output<NoticeIconSelect>();\n readonly clear = output<string>();\n\n onClick(item: NoticeItem, event: Event): void {\n this.select.emit({ title: this.item().title, item, event });\n }\n\n onClear(): void {\n this.clear.emit(this.item().title);\n }\n}\n","@let d = item();\n@let list = d.list;\n@if (list && list.length > 0) {\n <ng-template [ngTemplateOutlet]=\"listTpl\" />\n} @else {\n <div class=\"notice-icon__notfound\">\n @if (d.emptyImage) {\n <img class=\"notice-icon__notfound-img\" [attr.src]=\"d.emptyImage\" alt=\"not found\" />\n }\n <p>\n <ng-container *nzStringTemplateOutlet=\"d.emptyText\">\n {{ d.emptyText || locale().emptyText }}\n </ng-container>\n </p>\n </div>\n}\n<ng-template #listTpl>\n <nz-list [nzDataSource]=\"list\" [nzRenderItem]=\"item\">\n <ng-template #item let-item>\n <nz-list-item (click)=\"onClick(item, $event)\" [class.notice-icon__item-read]=\"item.read\">\n <nz-list-item-meta [nzTitle]=\"nzTitle\" [nzDescription]=\"nzDescription\" [nzAvatar]=\"item.avatar\">\n <ng-template #nzTitle>\n <ng-container *nzStringTemplateOutlet=\"item.title; context: { $implicit: item }\">\n {{ item.title }}\n </ng-container>\n @if (item.extra) {\n <div class=\"notice-icon__item-extra\">\n <nz-tag [nzColor]=\"item.color\">{{ item.extra }}</nz-tag>\n </div>\n }\n </ng-template>\n <ng-template #nzDescription>\n @if (item.description) {\n <div class=\"notice-icon__item-desc\">\n <ng-container *nzStringTemplateOutlet=\"item.description; context: { $implicit: item }\">\n {{ item.description }}\n </ng-container>\n </div>\n }\n @if (item.datetime) {\n <div class=\"notice-icon__item-time\">{{ item.datetime }}</div>\n }\n </ng-template>\n </nz-list-item-meta>\n </nz-list-item>\n </ng-template>\n </nz-list>\n <div class=\"notice-icon__clear\" (click)=\"onClear()\">{{ d.clearText || locale().clearText }}</div>\n</ng-template>\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n effect,\n inject,\n input,\n numberAttribute,\n output,\n signal\n} from '@angular/core';\n\nimport { DelonLocaleService } from '@delon/theme';\nimport { NzBadgeComponent } from 'ng-zorro-antd/badge';\nimport type { NgClassType } from 'ng-zorro-antd/core/types';\nimport { NzDropDownDirective, NzDropdownMenuComponent } from 'ng-zorro-antd/dropdown';\nimport { NzIconDirective } from 'ng-zorro-antd/icon';\nimport { NzSpinComponent } from 'ng-zorro-antd/spin';\nimport { NzTabComponent, NzTabsComponent } from 'ng-zorro-antd/tabs';\n\nimport { NoticeIconTabComponent } from './notice-icon-tab.component';\nimport { NoticeIconSelect, NoticeItem } from './notice-icon.types';\n\n@Component({\n selector: 'notice-icon',\n exportAs: 'noticeIcon',\n templateUrl: './notice-icon.component.html',\n host: { '[class.notice-icon__btn]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgTemplateOutlet,\n NzBadgeComponent,\n NzIconDirective,\n NzDropDownDirective,\n NzDropdownMenuComponent,\n NzSpinComponent,\n NzTabsComponent,\n NzTabComponent,\n NoticeIconTabComponent\n ]\n})\nexport class NoticeIconComponent {\n locale = inject(DelonLocaleService).valueSignal('noticeIcon');\n data = input<NoticeItem[]>([]);\n count = input(undefined, { transform: numberAttribute });\n loading = input(false, { transform: booleanAttribute });\n popoverVisible = input(false, { transform: booleanAttribute });\n btnClass = input<NgClassType>();\n btnIconClass = input<NgClassType>();\n centered = input(false, { transform: booleanAttribute });\n readonly select = output<NoticeIconSelect>();\n readonly clear = output<string>();\n readonly popoverVisibleChange = output<boolean>();\n\n overlayCls = signal<string>('');\n\n constructor() {\n effect(() => {\n this.overlayCls.set(`header-dropdown notice-icon${!this.centered() ? ' notice-icon__tab-left' : ''}`);\n if (!this.popoverVisible()) this.delayShow.set(false);\n });\n }\n\n delayShow = signal(false);\n onVisibleChange(result: boolean): void {\n this.delayShow.set(result);\n this.popoverVisibleChange.emit(result);\n }\n}\n","<ng-template #badgeTpl>\n <nz-badge [nzCount]=\"count()\" [class]=\"btnClass()\" [nzStyle]=\"{ 'box-shadow': 'none' }\">\n <nz-icon nzType=\"bell\" [class]=\"btnIconClass()\" />\n </nz-badge>\n</ng-template>\n@let d = data();\n@if (d.length <= 0) {\n <ng-template [ngTemplateOutlet]=\"badgeTpl\" />\n} @else {\n <div\n nz-dropdown\n [nzVisible]=\"popoverVisible()\"\n (nzVisibleChange)=\"onVisibleChange($event)\"\n nzTrigger=\"click\"\n nzPlacement=\"bottomRight\"\n [nzOverlayClassName]=\"overlayCls()\"\n [nzDropdownMenu]=\"noticeMenu\"\n >\n <ng-template [ngTemplateOutlet]=\"badgeTpl\" />\n </div>\n <nz-dropdown-menu #noticeMenu=\"nzDropdownMenu\">\n <nz-spin [nzSpinning]=\"loading()\" [nzDelay]=\"0\">\n @if (delayShow()) {\n <nz-tabs [nzSelectedIndex]=\"0\" [nzCentered]=\"centered()\">\n @for (i of d; track $index) {\n <nz-tab [nzTitle]=\"i.title\">\n <notice-icon-tab [locale]=\"locale()\" [item]=\"i\" (select)=\"select.emit($event)\" (clear)=\"clear.emit($event)\" />\n </nz-tab>\n }\n </nz-tabs>\n }\n </nz-spin>\n </nz-dropdown-menu>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DelonLocaleModule } from '@delon/theme';\nimport { NzBadgeModule } from 'ng-zorro-antd/badge';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzListModule } from 'ng-zorro-antd/list';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\nimport { NzTagModule } from 'ng-zorro-antd/tag';\n\nimport { NoticeIconTabComponent } from './notice-icon-tab.component';\nimport { NoticeIconComponent } from './notice-icon.component';\n\nconst COMPONENTS = [NoticeIconComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n DelonLocaleModule,\n NzBadgeModule,\n NzDropDownModule,\n NzIconModule,\n NzListModule,\n NzSpinModule,\n NzTabsModule,\n NzTagModule,\n NzOutletModule,\n ...COMPONENTS,\n NoticeIconTabComponent\n ],\n exports: COMPONENTS\n})\nexport class NoticeIconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Directionality } from '@angular/cdk/bidi';
2
2
  import { DOCUMENT, CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { inject, ElementRef, ChangeDetectorRef, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, InjectionToken, ApplicationRef, createComponent, Injectable, NgModule } from '@angular/core';
4
+ import { inject, ElementRef, ChangeDetectorRef, EventEmitter, ViewChild, ViewEncapsulation, ChangeDetectionStrategy, Component, InjectionToken, ApplicationRef, createComponent, Injectable, NgModule } from '@angular/core';
5
5
  import { Router } from '@angular/router';
6
6
  import { of, switchMap, delay, pipe } from 'rxjs';
7
7
  import { DelonLocaleService, DelonLocaleModule } from '@delon/theme';
@@ -119,16 +119,16 @@ class OnboardingComponent {
119
119
  clearTimeout(this.time);
120
120
  this.updatePrevElStatus(false);
121
121
  }
122
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: OnboardingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
123
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.1", type: OnboardingComponent, isStandalone: true, selector: "onboarding", host: { properties: { "class.onboarding": "true", "class.onboarding-rtl": "dir === 'rtl'", "attr.data-onboarding-active": "active" } }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: "@if (!running && config.mask) {\n <div class=\"onboarding__mask\" (click)=\"handleMask()\"></div>\n}\n@if (item) {\n <div\n class=\"onboarding__light\"\n [class.onboarding__light-hide]=\"running\"\n [attr.style]=\"item.lightStyle\"\n nz-popover\n #popover=\"nzPopover\"\n [nzPopoverTitle]=\"item.title\"\n [nzPopoverContent]=\"content\"\n [nzPopoverVisible]=\"!running\"\n [nzPopoverTrigger]=\"null\"\n [nzPopoverPlacement]=\"item.position\"\n [nzPopoverOverlayClassName]=\"item.className\"\n [nzPopoverOverlayStyle]=\"{ 'max-width.px': item.width, direction: dir }\"\n [nzNoAnimation]=\"true\"\n ></div>\n <ng-template #content>\n <ng-container *nzStringTemplateOutlet=\"item.content\">\n <div [innerHTML]=\"item.content\"></div>\n </ng-container>\n <div class=\"flex-center-between onboarding__footer\">\n <span class=\"onboarding__total\">\n @if (config.showTotal) {\n {{ active + 1 }}/{{ max }}\n }\n </span>\n <div class=\"onboarding__btns\">\n @if (!last && item.skip !== null && item.skip !== undefined) {\n <a nz-button nzType=\"link\" (click)=\"to('skip')\" nzSize=\"small\" data-btnType=\"skip\">\n <ng-container *nzStringTemplateOutlet=\"item.skip\">{{ item.skip }}</ng-container>\n </a>\n }\n @if (!first && item.prev !== null) {\n <a nz-button (click)=\"to('prev')\" nzSize=\"small\" data-btnType=\"prev\">\n <ng-container *nzStringTemplateOutlet=\"item.prev\">{{ item.prev }}</ng-container>\n </a>\n }\n @if (!last && item.next !== null && item.next !== undefined) {\n <a nz-button (click)=\"to('next')\" nzType=\"primary\" nzSize=\"small\" data-btnType=\"next\">\n <ng-container *nzStringTemplateOutlet=\"item.next\">{{ item.next }}</ng-container>\n </a>\n }\n @if (last && item.done !== null && item.done !== undefined) {\n <a nz-button (click)=\"to('done')\" nzType=\"primary\" nzSize=\"small\" data-btnType=\"done\">\n <ng-container *nzStringTemplateOutlet=\"item.done\">{{ item.done }}</ng-container>\n </a>\n }\n </div>\n </div>\n </ng-template>\n}\n", dependencies: [{ kind: "directive", type: NzPopoverDirective, selector: "[nz-popover]", inputs: ["nzPopoverArrowPointAtCenter", "nzPopoverTitle", "nzPopoverContent", "nz-popover", "nzPopoverTrigger", "nzPopoverPlacement", "nzPopoverOrigin", "nzPopoverVisible", "nzPopoverMouseEnterDelay", "nzPopoverMouseLeaveDelay", "nzPopoverOverlayClassName", "nzPopoverOverlayStyle", "nzPopoverBackdrop"], outputs: ["nzPopoverVisibleChange"], exportAs: ["nzPopover"] }, { kind: "directive", type: NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { kind: "component", type: NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: NzNoAnimationDirective, selector: "[nzNoAnimation]", inputs: ["nzNoAnimation"], exportAs: ["nzNoAnimation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
122
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: OnboardingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
123
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: OnboardingComponent, isStandalone: true, selector: "onboarding", host: { properties: { "class.onboarding": "true", "class.onboarding-rtl": "dir === 'rtl'", "attr.data-onboarding-active": "active" } }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: "@if (!running && config.mask) {\n <div class=\"onboarding__mask\" (click)=\"handleMask()\"></div>\n}\n@if (item) {\n <div\n class=\"onboarding__light\"\n [class.onboarding__light-hide]=\"running\"\n [attr.style]=\"item.lightStyle\"\n nz-popover\n #popover=\"nzPopover\"\n [nzPopoverTitle]=\"item.title\"\n [nzPopoverContent]=\"content\"\n [nzPopoverVisible]=\"!running\"\n [nzPopoverTrigger]=\"null\"\n [nzPopoverPlacement]=\"item.position\"\n [nzPopoverOverlayClassName]=\"item.className\"\n [nzPopoverOverlayStyle]=\"{ 'max-width.px': item.width, direction: dir }\"\n [nzNoAnimation]=\"true\"\n ></div>\n <ng-template #content>\n <ng-container *nzStringTemplateOutlet=\"item.content\">\n <div [innerHTML]=\"item.content\"></div>\n </ng-container>\n <div class=\"flex-center-between onboarding__footer\">\n <span class=\"onboarding__total\">\n @if (config.showTotal) {\n {{ active + 1 }}/{{ max }}\n }\n </span>\n <div class=\"onboarding__btns\">\n @if (!last && item.skip !== null && item.skip !== undefined) {\n <a nz-button nzType=\"link\" (click)=\"to('skip')\" nzSize=\"small\" data-btnType=\"skip\">\n <ng-container *nzStringTemplateOutlet=\"item.skip\">{{ item.skip }}</ng-container>\n </a>\n }\n @if (!first && item.prev !== null) {\n <a nz-button (click)=\"to('prev')\" nzSize=\"small\" data-btnType=\"prev\">\n <ng-container *nzStringTemplateOutlet=\"item.prev\">{{ item.prev }}</ng-container>\n </a>\n }\n @if (!last && item.next !== null && item.next !== undefined) {\n <a nz-button (click)=\"to('next')\" nzType=\"primary\" nzSize=\"small\" data-btnType=\"next\">\n <ng-container *nzStringTemplateOutlet=\"item.next\">{{ item.next }}</ng-container>\n </a>\n }\n @if (last && item.done !== null && item.done !== undefined) {\n <a nz-button (click)=\"to('done')\" nzType=\"primary\" nzSize=\"small\" data-btnType=\"done\">\n <ng-container *nzStringTemplateOutlet=\"item.done\">{{ item.done }}</ng-container>\n </a>\n }\n </div>\n </div>\n </ng-template>\n}\n", dependencies: [{ kind: "directive", type: NzPopoverDirective, selector: "[nz-popover]", inputs: ["nzPopoverArrowPointAtCenter", "nzPopoverTitle", "nzPopoverTitleContext", "nzPopoverContent", "nzPopoverContentContext", "nz-popover", "nzPopoverTrigger", "nzPopoverPlacement", "nzPopoverOrigin", "nzPopoverVisible", "nzPopoverMouseEnterDelay", "nzPopoverMouseLeaveDelay", "nzPopoverOverlayClassName", "nzPopoverOverlayStyle", "nzPopoverOverlayClickable", "nzPopoverBackdrop"], outputs: ["nzPopoverVisibleChange"], exportAs: ["nzPopover"] }, { kind: "directive", type: NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { kind: "component", type: NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: NzNoAnimationDirective, selector: "[nzNoAnimation]", inputs: ["nzNoAnimation"], exportAs: ["nzNoAnimation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
124
124
  }
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: OnboardingComponent, decorators: [{
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: OnboardingComponent, decorators: [{
126
126
  type: Component,
127
127
  args: [{ selector: 'onboarding', host: {
128
128
  '[class.onboarding]': `true`,
129
129
  '[class.onboarding-rtl]': `dir === 'rtl'`,
130
130
  '[attr.data-onboarding-active]': `active`
131
- }, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [NzPopoverDirective, NzStringTemplateOutletDirective, NzButtonComponent, NzNoAnimationDirective], template: "@if (!running && config.mask) {\n <div class=\"onboarding__mask\" (click)=\"handleMask()\"></div>\n}\n@if (item) {\n <div\n class=\"onboarding__light\"\n [class.onboarding__light-hide]=\"running\"\n [attr.style]=\"item.lightStyle\"\n nz-popover\n #popover=\"nzPopover\"\n [nzPopoverTitle]=\"item.title\"\n [nzPopoverContent]=\"content\"\n [nzPopoverVisible]=\"!running\"\n [nzPopoverTrigger]=\"null\"\n [nzPopoverPlacement]=\"item.position\"\n [nzPopoverOverlayClassName]=\"item.className\"\n [nzPopoverOverlayStyle]=\"{ 'max-width.px': item.width, direction: dir }\"\n [nzNoAnimation]=\"true\"\n ></div>\n <ng-template #content>\n <ng-container *nzStringTemplateOutlet=\"item.content\">\n <div [innerHTML]=\"item.content\"></div>\n </ng-container>\n <div class=\"flex-center-between onboarding__footer\">\n <span class=\"onboarding__total\">\n @if (config.showTotal) {\n {{ active + 1 }}/{{ max }}\n }\n </span>\n <div class=\"onboarding__btns\">\n @if (!last && item.skip !== null && item.skip !== undefined) {\n <a nz-button nzType=\"link\" (click)=\"to('skip')\" nzSize=\"small\" data-btnType=\"skip\">\n <ng-container *nzStringTemplateOutlet=\"item.skip\">{{ item.skip }}</ng-container>\n </a>\n }\n @if (!first && item.prev !== null) {\n <a nz-button (click)=\"to('prev')\" nzSize=\"small\" data-btnType=\"prev\">\n <ng-container *nzStringTemplateOutlet=\"item.prev\">{{ item.prev }}</ng-container>\n </a>\n }\n @if (!last && item.next !== null && item.next !== undefined) {\n <a nz-button (click)=\"to('next')\" nzType=\"primary\" nzSize=\"small\" data-btnType=\"next\">\n <ng-container *nzStringTemplateOutlet=\"item.next\">{{ item.next }}</ng-container>\n </a>\n }\n @if (last && item.done !== null && item.done !== undefined) {\n <a nz-button (click)=\"to('done')\" nzType=\"primary\" nzSize=\"small\" data-btnType=\"done\">\n <ng-container *nzStringTemplateOutlet=\"item.done\">{{ item.done }}</ng-container>\n </a>\n }\n </div>\n </div>\n </ng-template>\n}\n" }]
131
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [NzPopoverDirective, NzStringTemplateOutletDirective, NzButtonComponent, NzNoAnimationDirective], template: "@if (!running && config.mask) {\n <div class=\"onboarding__mask\" (click)=\"handleMask()\"></div>\n}\n@if (item) {\n <div\n class=\"onboarding__light\"\n [class.onboarding__light-hide]=\"running\"\n [attr.style]=\"item.lightStyle\"\n nz-popover\n #popover=\"nzPopover\"\n [nzPopoverTitle]=\"item.title\"\n [nzPopoverContent]=\"content\"\n [nzPopoverVisible]=\"!running\"\n [nzPopoverTrigger]=\"null\"\n [nzPopoverPlacement]=\"item.position\"\n [nzPopoverOverlayClassName]=\"item.className\"\n [nzPopoverOverlayStyle]=\"{ 'max-width.px': item.width, direction: dir }\"\n [nzNoAnimation]=\"true\"\n ></div>\n <ng-template #content>\n <ng-container *nzStringTemplateOutlet=\"item.content\">\n <div [innerHTML]=\"item.content\"></div>\n </ng-container>\n <div class=\"flex-center-between onboarding__footer\">\n <span class=\"onboarding__total\">\n @if (config.showTotal) {\n {{ active + 1 }}/{{ max }}\n }\n </span>\n <div class=\"onboarding__btns\">\n @if (!last && item.skip !== null && item.skip !== undefined) {\n <a nz-button nzType=\"link\" (click)=\"to('skip')\" nzSize=\"small\" data-btnType=\"skip\">\n <ng-container *nzStringTemplateOutlet=\"item.skip\">{{ item.skip }}</ng-container>\n </a>\n }\n @if (!first && item.prev !== null) {\n <a nz-button (click)=\"to('prev')\" nzSize=\"small\" data-btnType=\"prev\">\n <ng-container *nzStringTemplateOutlet=\"item.prev\">{{ item.prev }}</ng-container>\n </a>\n }\n @if (!last && item.next !== null && item.next !== undefined) {\n <a nz-button (click)=\"to('next')\" nzType=\"primary\" nzSize=\"small\" data-btnType=\"next\">\n <ng-container *nzStringTemplateOutlet=\"item.next\">{{ item.next }}</ng-container>\n </a>\n }\n @if (last && item.done !== null && item.done !== undefined) {\n <a nz-button (click)=\"to('done')\" nzType=\"primary\" nzSize=\"small\" data-btnType=\"done\">\n <ng-container *nzStringTemplateOutlet=\"item.done\">{{ item.done }}</ng-container>\n </a>\n }\n </div>\n </div>\n </ng-template>\n}\n" }]
132
132
  }], propDecorators: { popover: [{
133
133
  type: ViewChild,
134
134
  args: ['popover', { static: false }]
@@ -151,7 +151,6 @@ class LocalStorageStore {
151
151
  }
152
152
 
153
153
  class OnboardingService {
154
- i18n = inject(DelonLocaleService);
155
154
  appRef = inject(ApplicationRef);
156
155
  router = inject(Router);
157
156
  doc = inject(DOCUMENT);
@@ -165,6 +164,7 @@ class OnboardingService {
165
164
  running$ = null;
166
165
  _running = false;
167
166
  type = null;
167
+ locale = inject(DelonLocaleService).valueSignal('onboarding');
168
168
  _getDoc() {
169
169
  return this.doc;
170
170
  }
@@ -235,7 +235,7 @@ class OnboardingService {
235
235
  position: 'bottomLeft',
236
236
  before: of(true),
237
237
  after: of(true),
238
- ...this.i18n.getData('onboarding'),
238
+ ...this.locale(),
239
239
  ...items[this.active]
240
240
  };
241
241
  const dir = this.configSrv.get('onboarding').direction || this.directionality.value;
@@ -325,24 +325,24 @@ class OnboardingService {
325
325
  ngOnDestroy() {
326
326
  this.destroy();
327
327
  }
328
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: OnboardingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
329
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: OnboardingService, providedIn: 'root' });
328
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: OnboardingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
329
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: OnboardingService, providedIn: 'root' });
330
330
  }
331
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: OnboardingService, decorators: [{
331
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: OnboardingService, decorators: [{
332
332
  type: Injectable,
333
333
  args: [{ providedIn: 'root' }]
334
334
  }] });
335
335
 
336
336
  const COMPONENTS = [OnboardingComponent];
337
337
  class OnboardingModule {
338
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: OnboardingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
339
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.1", ngImport: i0, type: OnboardingModule, imports: [CommonModule,
338
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: OnboardingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
339
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.4", ngImport: i0, type: OnboardingModule, imports: [CommonModule,
340
340
  DelonLocaleModule,
341
341
  NzPopoverModule,
342
342
  NzOutletModule,
343
343
  NzButtonModule,
344
344
  NzNoAnimationModule, OnboardingComponent], exports: [OnboardingComponent] });
345
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: OnboardingModule, imports: [CommonModule,
345
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: OnboardingModule, imports: [CommonModule,
346
346
  DelonLocaleModule,
347
347
  NzPopoverModule,
348
348
  NzOutletModule,
@@ -350,7 +350,7 @@ class OnboardingModule {
350
350
  NzNoAnimationModule,
351
351
  COMPONENTS] });
352
352
  }
353
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: OnboardingModule, decorators: [{
353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: OnboardingModule, decorators: [{
354
354
  type: NgModule,
355
355
  args: [{
356
356
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding.mjs","sources":["../../../../packages/abc/onboarding/onboarding.component.ts","../../../../packages/abc/onboarding/onboarding.component.html","../../../../packages/abc/onboarding/onboarding.storage.ts","../../../../packages/abc/onboarding/onboarding.service.ts","../../../../packages/abc/onboarding/onboarding.module.ts","../../../../packages/abc/onboarding/onboarding.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\n\nimport { NzButtonComponent } from 'ng-zorro-antd/button';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport { NzStringTemplateOutletDirective } from 'ng-zorro-antd/core/outlet';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzPopoverDirective } from 'ng-zorro-antd/popover';\n\nimport { OnboardingConfig, OnboardingItem, OnboardingOpType } from './onboarding.types';\n\ninterface OnboardingLightData {\n el: HTMLElement;\n top: number;\n left: number;\n width: number;\n height: number;\n clientHeight: number;\n clientWidth: number;\n}\n\n@Component({\n selector: 'onboarding',\n templateUrl: './onboarding.component.html',\n host: {\n '[class.onboarding]': `true`,\n '[class.onboarding-rtl]': `dir === 'rtl'`,\n '[attr.data-onboarding-active]': `active`\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NzPopoverDirective, NzStringTemplateOutletDirective, NzButtonComponent, NzNoAnimationDirective]\n})\nexport class OnboardingComponent implements OnDestroy, AfterViewInit {\n private readonly el: HTMLElement = inject(ElementRef).nativeElement;\n private readonly platform = inject(Platform);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly doc = inject(DOCUMENT);\n\n private time: NzSafeAny;\n private prevSelectorEl?: HTMLElement;\n config!: OnboardingConfig;\n item!: OnboardingItem;\n active = 0;\n max = 0;\n readonly op = new EventEmitter<OnboardingOpType>();\n running = false;\n dir: Direction = 'ltr';\n @ViewChild('popover', { static: false }) private popover!: NzPopoverDirective;\n\n get first(): boolean {\n return this.active === 0;\n }\n\n get last(): boolean {\n return this.active === this.max - 1;\n }\n\n private _getDoc(): Document {\n return this.doc;\n }\n\n private _getWin(): Window {\n return this._getDoc().defaultView || window;\n }\n\n private getLightData(): OnboardingLightData | null {\n const doc = this._getDoc();\n const win = this._getWin();\n const el = doc.querySelector(this.item.selectors) as HTMLElement;\n if (!el) {\n return null;\n }\n\n const scrollTop = win.scrollY || doc.documentElement.scrollTop || doc.body.scrollTop;\n const scrollLeft = win.scrollX || doc.documentElement.scrollLeft || doc.body.scrollLeft;\n const rect = el.getBoundingClientRect();\n const top = rect.top + scrollTop;\n const left = rect.left + scrollLeft;\n const padding = 8;\n const needPadding = top > padding && left > padding;\n const offsetPos = needPadding ? padding : 0;\n const offsetWH = needPadding ? padding * 2 : 0;\n return {\n top: top - offsetPos,\n left: left - offsetPos,\n width: rect.width + offsetWH,\n height: rect.height + offsetWH,\n el,\n clientWidth: doc.body.clientWidth,\n clientHeight: doc.body.clientHeight\n };\n }\n\n ngAfterViewInit(): void {\n // Waiting https://github.com/NG-ZORRO/ng-zorro-antd/issues/6491\n this.popover.component!.onClickOutside = () => {};\n }\n\n private scroll(pos: OnboardingLightData): void {\n this.prevSelectorEl = pos.el;\n const scrollY = pos.top - (pos.clientHeight - pos.height) / 2;\n this._getWin().scrollTo({ top: scrollY });\n this.updatePrevElStatus(true);\n }\n\n updateRunning(status: boolean): void {\n this.running = status;\n this.cdr.detectChanges();\n if (!status) {\n this.updatePosition();\n }\n }\n\n private updatePosition(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n\n const pos = this.getLightData();\n if (pos == null) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`Did not matches selectors [${this.item.selectors}]`);\n }\n return;\n }\n\n const lightStyle = (this.el.querySelector('.onboarding__light') as HTMLElement).style;\n lightStyle.top = `${pos.top}px`;\n lightStyle.left = `${pos.left}px`;\n lightStyle.width = `${pos.width}px`;\n lightStyle.height = `${pos.height}px`;\n\n this.updatePrevElStatus(false);\n this.scroll(pos);\n }\n\n private updatePrevElStatus(status: boolean): void {\n if (this.prevSelectorEl) {\n this.prevSelectorEl.classList[status ? 'add' : 'remove']('onboarding__light-el');\n }\n }\n\n to(type: OnboardingOpType): void {\n this.op.emit(type);\n }\n\n handleMask(): void {\n if (this.config.maskClosable === true) {\n this.popover.component!.hide();\n this.to('done');\n }\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.time);\n this.updatePrevElStatus(false);\n }\n}\n","@if (!running && config.mask) {\n <div class=\"onboarding__mask\" (click)=\"handleMask()\"></div>\n}\n@if (item) {\n <div\n class=\"onboarding__light\"\n [class.onboarding__light-hide]=\"running\"\n [attr.style]=\"item.lightStyle\"\n nz-popover\n #popover=\"nzPopover\"\n [nzPopoverTitle]=\"item.title\"\n [nzPopoverContent]=\"content\"\n [nzPopoverVisible]=\"!running\"\n [nzPopoverTrigger]=\"null\"\n [nzPopoverPlacement]=\"item.position\"\n [nzPopoverOverlayClassName]=\"item.className\"\n [nzPopoverOverlayStyle]=\"{ 'max-width.px': item.width, direction: dir }\"\n [nzNoAnimation]=\"true\"\n ></div>\n <ng-template #content>\n <ng-container *nzStringTemplateOutlet=\"item.content\">\n <div [innerHTML]=\"item.content\"></div>\n </ng-container>\n <div class=\"flex-center-between onboarding__footer\">\n <span class=\"onboarding__total\">\n @if (config.showTotal) {\n {{ active + 1 }}/{{ max }}\n }\n </span>\n <div class=\"onboarding__btns\">\n @if (!last && item.skip !== null && item.skip !== undefined) {\n <a nz-button nzType=\"link\" (click)=\"to('skip')\" nzSize=\"small\" data-btnType=\"skip\">\n <ng-container *nzStringTemplateOutlet=\"item.skip\">{{ item.skip }}</ng-container>\n </a>\n }\n @if (!first && item.prev !== null) {\n <a nz-button (click)=\"to('prev')\" nzSize=\"small\" data-btnType=\"prev\">\n <ng-container *nzStringTemplateOutlet=\"item.prev\">{{ item.prev }}</ng-container>\n </a>\n }\n @if (!last && item.next !== null && item.next !== undefined) {\n <a nz-button (click)=\"to('next')\" nzType=\"primary\" nzSize=\"small\" data-btnType=\"next\">\n <ng-container *nzStringTemplateOutlet=\"item.next\">{{ item.next }}</ng-container>\n </a>\n }\n @if (last && item.done !== null && item.done !== undefined) {\n <a nz-button (click)=\"to('done')\" nzType=\"primary\" nzSize=\"small\" data-btnType=\"done\">\n <ng-container *nzStringTemplateOutlet=\"item.done\">{{ item.done }}</ng-container>\n </a>\n }\n </div>\n </div>\n </ng-template>\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface OnBoardingKeyStore {\n get(key: string): unknown;\n\n set(key: string, version: unknown): void;\n}\n\nexport const ONBOARDING_STORE_TOKEN = new InjectionToken<OnBoardingKeyStore>('ONBOARDING_STORE_TOKEN', {\n providedIn: 'root',\n factory: ONBOARDING_STORE_TOKEN_FACTORY\n});\n\nexport function ONBOARDING_STORE_TOKEN_FACTORY(): OnBoardingKeyStore {\n return new LocalStorageStore();\n}\n\nexport class LocalStorageStore implements OnBoardingKeyStore {\n get(key: string): unknown {\n return localStorage.getItem(key);\n }\n\n set(key: string, version: unknown): void {\n localStorage.setItem(key, `${version}`);\n }\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n OnDestroy,\n createComponent,\n inject\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { of, pipe, Subscription, delay, switchMap } from 'rxjs';\n\nimport { DelonLocaleService } from '@delon/theme';\nimport { AlainConfigService } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { OnboardingComponent } from './onboarding.component';\nimport { ONBOARDING_STORE_TOKEN } from './onboarding.storage';\nimport { OnboardingConfig, OnboardingItem, OnboardingOpType } from './onboarding.types';\n\n@Injectable({ providedIn: 'root' })\nexport class OnboardingService implements OnDestroy {\n private readonly i18n = inject(DelonLocaleService);\n private readonly appRef = inject(ApplicationRef);\n private readonly router = inject(Router);\n private readonly doc = inject(DOCUMENT);\n private readonly configSrv = inject(AlainConfigService);\n private readonly keyStoreSrv = inject(ONBOARDING_STORE_TOKEN);\n private readonly directionality = inject(Directionality);\n\n private compRef!: ComponentRef<OnboardingComponent>;\n private op$!: Subscription;\n private config?: OnboardingConfig;\n private active = 0;\n private running$: Subscription | null = null;\n private _running = false;\n private type: OnboardingOpType | null = null;\n\n private _getDoc(): Document {\n return this.doc;\n }\n\n /**\n * Get whether it is booting\n *\n * 获取是否正在引导中\n */\n get running(): boolean {\n return this._running;\n }\n\n private attach(): void {\n const compRef = createComponent(OnboardingComponent, {\n environmentInjector: this.appRef.injector\n });\n this.compRef = compRef;\n this.appRef.attachView(compRef.hostView);\n const compNode = (compRef.hostView as EmbeddedViewRef<NzSafeAny>).rootNodes[0];\n const doc = this._getDoc();\n const cdk = doc.querySelector('.cdk-overlay-container') as HTMLElement;\n if (cdk) {\n doc.body.insertBefore(compNode, cdk);\n } else {\n doc.body.appendChild(compNode);\n }\n this.op$ = this.compRef.instance.op.subscribe((type: OnboardingOpType) => {\n switch (type) {\n case 'next':\n this.next();\n break;\n case 'prev':\n this.prev();\n break;\n default:\n this.done();\n break;\n }\n });\n }\n\n private cancelRunning(): this {\n if (this.running$) {\n this.running$.unsubscribe();\n this.running$ = null;\n }\n return this;\n }\n\n private updateRunning(status: boolean): this {\n this._running = status;\n this.compRef!.instance.updateRunning(status);\n return this;\n }\n\n private destroy(): void {\n const storeKey = this.config?.key;\n if (storeKey != null) {\n this.keyStoreSrv.set(storeKey, this.config?.keyVersion);\n }\n this.cancelRunning();\n if (this.compRef) {\n this.appRef.detachView(this.compRef.hostView);\n this.compRef.destroy();\n this.op$.unsubscribe();\n }\n }\n\n private showItem(isStart: boolean = false): void {\n const items = this.config!.items!;\n const item = {\n position: 'bottomLeft',\n before: of(true),\n after: of(true),\n ...this.i18n.getData('onboarding'),\n ...items[this.active]\n } as OnboardingItem;\n const dir = this.configSrv.get('onboarding')!.direction || this.directionality.value;\n Object.assign(this.compRef.instance, { item, config: this.config, active: this.active, max: items.length, dir });\n const pipes = [\n switchMap(() => (item.url ? this.router.navigateByUrl(item.url) : of(true))),\n switchMap(() => {\n const obs = this.type === 'prev' ? item.after! : item.before!;\n return typeof obs === 'number' ? of(true).pipe(delay(obs)) : obs;\n })\n ];\n if (!isStart) {\n pipes.push(delay(1));\n }\n\n this.updateRunning(true);\n\n this.running$ = of(true)\n .pipe(pipe.apply(this, pipes as NzSafeAny) as NzSafeAny)\n .subscribe({\n next: () => this.cancelRunning().updateRunning(false),\n error: () => this.done()\n });\n }\n\n /**\n * Start a new user guidance\n *\n * 开启新的用户引导流程\n */\n start(config: OnboardingConfig): void {\n const cog: OnboardingConfig = {\n keyVersion: '',\n items: [],\n mask: true,\n maskClosable: true,\n showTotal: false,\n ...config\n };\n const storeKey = cog?.key;\n if (storeKey != null && this.keyStoreSrv.get(storeKey) === cog.keyVersion) {\n return;\n }\n if (this.running) {\n return;\n }\n this.destroy();\n this.config = cog;\n this.active = 0;\n this.type = null;\n this.attach();\n this.showItem(true);\n }\n\n /**\n * Next\n *\n * 下一步\n */\n next(): void {\n if (this._running || this.active + 1 >= this.config!.items!.length) {\n this.done();\n return;\n }\n this.type = 'next';\n ++this.active;\n this.showItem();\n }\n\n /**\n * Prev\n *\n * 上一步\n */\n prev(): void {\n if (this._running || this.active - 1 < 0) {\n return;\n }\n this.type = 'prev';\n --this.active;\n this.showItem();\n }\n\n /**\n * Done\n *\n * 完成\n */\n done(): void {\n this.type = 'done';\n this.destroy();\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DelonLocaleModule } from '@delon/theme';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzPopoverModule } from 'ng-zorro-antd/popover';\n\nimport { OnboardingComponent } from './onboarding.component';\n\nconst COMPONENTS = [OnboardingComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n DelonLocaleModule,\n NzPopoverModule,\n NzOutletModule,\n NzButtonModule,\n NzNoAnimationModule,\n COMPONENTS\n ],\n exports: COMPONENTS\n})\nexport class OnboardingModule {}\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":"onboarding.mjs","sources":["../../../../packages/abc/onboarding/onboarding.component.ts","../../../../packages/abc/onboarding/onboarding.component.html","../../../../packages/abc/onboarding/onboarding.storage.ts","../../../../packages/abc/onboarding/onboarding.service.ts","../../../../packages/abc/onboarding/onboarding.module.ts","../../../../packages/abc/onboarding/onboarding.ts"],"sourcesContent":["import { Direction } from '@angular/cdk/bidi';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\n\nimport { NzButtonComponent } from 'ng-zorro-antd/button';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport { NzStringTemplateOutletDirective } from 'ng-zorro-antd/core/outlet';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzPopoverDirective } from 'ng-zorro-antd/popover';\n\nimport { OnboardingConfig, OnboardingItem, OnboardingOpType } from './onboarding.types';\n\ninterface OnboardingLightData {\n el: HTMLElement;\n top: number;\n left: number;\n width: number;\n height: number;\n clientHeight: number;\n clientWidth: number;\n}\n\n@Component({\n selector: 'onboarding',\n templateUrl: './onboarding.component.html',\n host: {\n '[class.onboarding]': `true`,\n '[class.onboarding-rtl]': `dir === 'rtl'`,\n '[attr.data-onboarding-active]': `active`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NzPopoverDirective, NzStringTemplateOutletDirective, NzButtonComponent, NzNoAnimationDirective]\n})\nexport class OnboardingComponent implements OnDestroy, AfterViewInit {\n private readonly el: HTMLElement = inject(ElementRef).nativeElement;\n private readonly platform = inject(Platform);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly doc = inject(DOCUMENT);\n\n private time: NzSafeAny;\n private prevSelectorEl?: HTMLElement;\n config!: OnboardingConfig;\n item!: OnboardingItem;\n active = 0;\n max = 0;\n readonly op = new EventEmitter<OnboardingOpType>();\n running = false;\n dir: Direction = 'ltr';\n @ViewChild('popover', { static: false }) private popover!: NzPopoverDirective;\n\n get first(): boolean {\n return this.active === 0;\n }\n\n get last(): boolean {\n return this.active === this.max - 1;\n }\n\n private _getDoc(): Document {\n return this.doc;\n }\n\n private _getWin(): Window {\n return this._getDoc().defaultView || window;\n }\n\n private getLightData(): OnboardingLightData | null {\n const doc = this._getDoc();\n const win = this._getWin();\n const el = doc.querySelector(this.item.selectors) as HTMLElement;\n if (!el) {\n return null;\n }\n\n const scrollTop = win.scrollY || doc.documentElement.scrollTop || doc.body.scrollTop;\n const scrollLeft = win.scrollX || doc.documentElement.scrollLeft || doc.body.scrollLeft;\n const rect = el.getBoundingClientRect();\n const top = rect.top + scrollTop;\n const left = rect.left + scrollLeft;\n const padding = 8;\n const needPadding = top > padding && left > padding;\n const offsetPos = needPadding ? padding : 0;\n const offsetWH = needPadding ? padding * 2 : 0;\n return {\n top: top - offsetPos,\n left: left - offsetPos,\n width: rect.width + offsetWH,\n height: rect.height + offsetWH,\n el,\n clientWidth: doc.body.clientWidth,\n clientHeight: doc.body.clientHeight\n };\n }\n\n ngAfterViewInit(): void {\n // Waiting https://github.com/NG-ZORRO/ng-zorro-antd/issues/6491\n this.popover.component!.onClickOutside = () => {};\n }\n\n private scroll(pos: OnboardingLightData): void {\n this.prevSelectorEl = pos.el;\n const scrollY = pos.top - (pos.clientHeight - pos.height) / 2;\n this._getWin().scrollTo({ top: scrollY });\n this.updatePrevElStatus(true);\n }\n\n updateRunning(status: boolean): void {\n this.running = status;\n this.cdr.detectChanges();\n if (!status) {\n this.updatePosition();\n }\n }\n\n private updatePosition(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n\n const pos = this.getLightData();\n if (pos == null) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(`Did not matches selectors [${this.item.selectors}]`);\n }\n return;\n }\n\n const lightStyle = (this.el.querySelector('.onboarding__light') as HTMLElement).style;\n lightStyle.top = `${pos.top}px`;\n lightStyle.left = `${pos.left}px`;\n lightStyle.width = `${pos.width}px`;\n lightStyle.height = `${pos.height}px`;\n\n this.updatePrevElStatus(false);\n this.scroll(pos);\n }\n\n private updatePrevElStatus(status: boolean): void {\n if (this.prevSelectorEl) {\n this.prevSelectorEl.classList[status ? 'add' : 'remove']('onboarding__light-el');\n }\n }\n\n to(type: OnboardingOpType): void {\n this.op.emit(type);\n }\n\n handleMask(): void {\n if (this.config.maskClosable === true) {\n this.popover.component!.hide();\n this.to('done');\n }\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.time);\n this.updatePrevElStatus(false);\n }\n}\n","@if (!running && config.mask) {\n <div class=\"onboarding__mask\" (click)=\"handleMask()\"></div>\n}\n@if (item) {\n <div\n class=\"onboarding__light\"\n [class.onboarding__light-hide]=\"running\"\n [attr.style]=\"item.lightStyle\"\n nz-popover\n #popover=\"nzPopover\"\n [nzPopoverTitle]=\"item.title\"\n [nzPopoverContent]=\"content\"\n [nzPopoverVisible]=\"!running\"\n [nzPopoverTrigger]=\"null\"\n [nzPopoverPlacement]=\"item.position\"\n [nzPopoverOverlayClassName]=\"item.className\"\n [nzPopoverOverlayStyle]=\"{ 'max-width.px': item.width, direction: dir }\"\n [nzNoAnimation]=\"true\"\n ></div>\n <ng-template #content>\n <ng-container *nzStringTemplateOutlet=\"item.content\">\n <div [innerHTML]=\"item.content\"></div>\n </ng-container>\n <div class=\"flex-center-between onboarding__footer\">\n <span class=\"onboarding__total\">\n @if (config.showTotal) {\n {{ active + 1 }}/{{ max }}\n }\n </span>\n <div class=\"onboarding__btns\">\n @if (!last && item.skip !== null && item.skip !== undefined) {\n <a nz-button nzType=\"link\" (click)=\"to('skip')\" nzSize=\"small\" data-btnType=\"skip\">\n <ng-container *nzStringTemplateOutlet=\"item.skip\">{{ item.skip }}</ng-container>\n </a>\n }\n @if (!first && item.prev !== null) {\n <a nz-button (click)=\"to('prev')\" nzSize=\"small\" data-btnType=\"prev\">\n <ng-container *nzStringTemplateOutlet=\"item.prev\">{{ item.prev }}</ng-container>\n </a>\n }\n @if (!last && item.next !== null && item.next !== undefined) {\n <a nz-button (click)=\"to('next')\" nzType=\"primary\" nzSize=\"small\" data-btnType=\"next\">\n <ng-container *nzStringTemplateOutlet=\"item.next\">{{ item.next }}</ng-container>\n </a>\n }\n @if (last && item.done !== null && item.done !== undefined) {\n <a nz-button (click)=\"to('done')\" nzType=\"primary\" nzSize=\"small\" data-btnType=\"done\">\n <ng-container *nzStringTemplateOutlet=\"item.done\">{{ item.done }}</ng-container>\n </a>\n }\n </div>\n </div>\n </ng-template>\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface OnBoardingKeyStore {\n get(key: string): unknown;\n\n set(key: string, version: unknown): void;\n}\n\nexport const ONBOARDING_STORE_TOKEN = new InjectionToken<OnBoardingKeyStore>('ONBOARDING_STORE_TOKEN', {\n providedIn: 'root',\n factory: ONBOARDING_STORE_TOKEN_FACTORY\n});\n\nexport function ONBOARDING_STORE_TOKEN_FACTORY(): OnBoardingKeyStore {\n return new LocalStorageStore();\n}\n\nexport class LocalStorageStore implements OnBoardingKeyStore {\n get(key: string): unknown {\n return localStorage.getItem(key);\n }\n\n set(key: string, version: unknown): void {\n localStorage.setItem(key, `${version}`);\n }\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n OnDestroy,\n createComponent,\n inject\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { of, pipe, Subscription, delay, switchMap } from 'rxjs';\n\nimport { DelonLocaleService } from '@delon/theme';\nimport { AlainConfigService } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { OnboardingComponent } from './onboarding.component';\nimport { ONBOARDING_STORE_TOKEN } from './onboarding.storage';\nimport { OnboardingConfig, OnboardingItem, OnboardingOpType } from './onboarding.types';\n\n@Injectable({ providedIn: 'root' })\nexport class OnboardingService implements OnDestroy {\n private readonly appRef = inject(ApplicationRef);\n private readonly router = inject(Router);\n private readonly doc = inject(DOCUMENT);\n private readonly configSrv = inject(AlainConfigService);\n private readonly keyStoreSrv = inject(ONBOARDING_STORE_TOKEN);\n private readonly directionality = inject(Directionality);\n\n private compRef!: ComponentRef<OnboardingComponent>;\n private op$!: Subscription;\n private config?: OnboardingConfig;\n private active = 0;\n private running$: Subscription | null = null;\n private _running = false;\n private type: OnboardingOpType | null = null;\n private locale = inject(DelonLocaleService).valueSignal('onboarding');\n\n private _getDoc(): Document {\n return this.doc;\n }\n\n /**\n * Get whether it is booting\n *\n * 获取是否正在引导中\n */\n get running(): boolean {\n return this._running;\n }\n\n private attach(): void {\n const compRef = createComponent(OnboardingComponent, {\n environmentInjector: this.appRef.injector\n });\n this.compRef = compRef;\n this.appRef.attachView(compRef.hostView);\n const compNode = (compRef.hostView as EmbeddedViewRef<NzSafeAny>).rootNodes[0];\n const doc = this._getDoc();\n const cdk = doc.querySelector('.cdk-overlay-container') as HTMLElement;\n if (cdk) {\n doc.body.insertBefore(compNode, cdk);\n } else {\n doc.body.appendChild(compNode);\n }\n this.op$ = this.compRef.instance.op.subscribe((type: OnboardingOpType) => {\n switch (type) {\n case 'next':\n this.next();\n break;\n case 'prev':\n this.prev();\n break;\n default:\n this.done();\n break;\n }\n });\n }\n\n private cancelRunning(): this {\n if (this.running$) {\n this.running$.unsubscribe();\n this.running$ = null;\n }\n return this;\n }\n\n private updateRunning(status: boolean): this {\n this._running = status;\n this.compRef!.instance.updateRunning(status);\n return this;\n }\n\n private destroy(): void {\n const storeKey = this.config?.key;\n if (storeKey != null) {\n this.keyStoreSrv.set(storeKey, this.config?.keyVersion);\n }\n this.cancelRunning();\n if (this.compRef) {\n this.appRef.detachView(this.compRef.hostView);\n this.compRef.destroy();\n this.op$.unsubscribe();\n }\n }\n\n private showItem(isStart: boolean = false): void {\n const items = this.config!.items!;\n const item = {\n position: 'bottomLeft',\n before: of(true),\n after: of(true),\n ...this.locale(),\n ...items[this.active]\n } as OnboardingItem;\n const dir = this.configSrv.get('onboarding')!.direction || this.directionality.value;\n Object.assign(this.compRef.instance, { item, config: this.config, active: this.active, max: items.length, dir });\n const pipes = [\n switchMap(() => (item.url ? this.router.navigateByUrl(item.url) : of(true))),\n switchMap(() => {\n const obs = this.type === 'prev' ? item.after! : item.before!;\n return typeof obs === 'number' ? of(true).pipe(delay(obs)) : obs;\n })\n ];\n if (!isStart) {\n pipes.push(delay(1));\n }\n\n this.updateRunning(true);\n\n this.running$ = of(true)\n .pipe(pipe.apply(this, pipes as NzSafeAny) as NzSafeAny)\n .subscribe({\n next: () => this.cancelRunning().updateRunning(false),\n error: () => this.done()\n });\n }\n\n /**\n * Start a new user guidance\n *\n * 开启新的用户引导流程\n */\n start(config: OnboardingConfig): void {\n const cog: OnboardingConfig = {\n keyVersion: '',\n items: [],\n mask: true,\n maskClosable: true,\n showTotal: false,\n ...config\n };\n const storeKey = cog?.key;\n if (storeKey != null && this.keyStoreSrv.get(storeKey) === cog.keyVersion) {\n return;\n }\n if (this.running) {\n return;\n }\n this.destroy();\n this.config = cog;\n this.active = 0;\n this.type = null;\n this.attach();\n this.showItem(true);\n }\n\n /**\n * Next\n *\n * 下一步\n */\n next(): void {\n if (this._running || this.active + 1 >= this.config!.items!.length) {\n this.done();\n return;\n }\n this.type = 'next';\n ++this.active;\n this.showItem();\n }\n\n /**\n * Prev\n *\n * 上一步\n */\n prev(): void {\n if (this._running || this.active - 1 < 0) {\n return;\n }\n this.type = 'prev';\n --this.active;\n this.showItem();\n }\n\n /**\n * Done\n *\n * 完成\n */\n done(): void {\n this.type = 'done';\n this.destroy();\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DelonLocaleModule } from '@delon/theme';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzPopoverModule } from 'ng-zorro-antd/popover';\n\nimport { OnboardingComponent } from './onboarding.component';\n\nconst COMPONENTS = [OnboardingComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n DelonLocaleModule,\n NzPopoverModule,\n NzOutletModule,\n NzButtonModule,\n NzNoAnimationModule,\n COMPONENTS\n ],\n exports: COMPONENTS\n})\nexport class OnboardingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;MA8Ca,mBAAmB,CAAA;AACb,IAAA,EAAE,GAAgB,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa;AAClD,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/B,IAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE/B,IAAA,IAAI;AACJ,IAAA,cAAc;AACtB,IAAA,MAAM;AACN,IAAA,IAAI;IACJ,MAAM,GAAG,CAAC;IACV,GAAG,GAAG,CAAC;AACE,IAAA,EAAE,GAAG,IAAI,YAAY,EAAoB;IAClD,OAAO,GAAG,KAAK;IACf,GAAG,GAAc,KAAK;AAC2B,IAAA,OAAO;AAExD,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC;;AAG1B,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC;;IAG7B,OAAO,GAAA;QACb,OAAO,IAAI,CAAC,GAAG;;IAGT,OAAO,GAAA;QACb,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,IAAI,MAAM;;IAGrC,YAAY,GAAA;AAClB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1B,QAAA,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAgB;QAChE,IAAI,CAAC,EAAE,EAAE;AACP,YAAA,OAAO,IAAI;;AAGb,QAAA,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,eAAe,CAAC,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS;AACpF,QAAA,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,eAAe,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU;AACvF,QAAA,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE;AACvC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,SAAS;AAChC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,UAAU;QACnC,MAAM,OAAO,GAAG,CAAC;QACjB,MAAM,WAAW,GAAG,GAAG,GAAG,OAAO,IAAI,IAAI,GAAG,OAAO;QACnD,MAAM,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,CAAC;AAC3C,QAAA,MAAM,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC;QAC9C,OAAO;YACL,GAAG,EAAE,GAAG,GAAG,SAAS;YACpB,IAAI,EAAE,IAAI,GAAG,SAAS;AACtB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,QAAQ;AAC5B,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,QAAQ;YAC9B,EAAE;AACF,YAAA,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW;AACjC,YAAA,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC;SACxB;;IAGH,eAAe,GAAA;;QAEb,IAAI,CAAC,OAAO,CAAC,SAAU,CAAC,cAAc,GAAG,MAAO,GAAC;;AAG3C,IAAA,MAAM,CAAC,GAAwB,EAAA;AACrC,QAAA,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,EAAE;AAC5B,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC;AAC7D,QAAA,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;;AAG/B,IAAA,aAAa,CAAC,MAAe,EAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;QACxB,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,cAAc,EAAE;;;IAIjB,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC5B;;AAGF,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE;AAC/B,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AACf,YAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;gBACjD,OAAO,CAAC,IAAI,CAAC,CAA8B,2BAAA,EAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAG,CAAA,CAAA,CAAC;;YAEpE;;AAGF,QAAA,MAAM,UAAU,GAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAiB,CAAC,KAAK;QACrF,UAAU,CAAC,GAAG,GAAG,CAAA,EAAG,GAAG,CAAC,GAAG,IAAI;QAC/B,UAAU,CAAC,IAAI,GAAG,CAAA,EAAG,GAAG,CAAC,IAAI,IAAI;QACjC,UAAU,CAAC,KAAK,GAAG,CAAA,EAAG,GAAG,CAAC,KAAK,IAAI;QACnC,UAAU,CAAC,MAAM,GAAG,CAAA,EAAG,GAAG,CAAC,MAAM,IAAI;AAErC,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;AAGV,IAAA,kBAAkB,CAAC,MAAe,EAAA;AACxC,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,sBAAsB,CAAC;;;AAIpF,IAAA,EAAE,CAAC,IAAsB,EAAA;AACvB,QAAA,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;;IAGpB,UAAU,GAAA;QACR,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI,EAAE;AACrC,YAAA,IAAI,CAAC,OAAO,CAAC,SAAU,CAAC,IAAI,EAAE;AAC9B,YAAA,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;;;IAInB,WAAW,GAAA;AACT,QAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;;uGA3HrB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9ChC,wsEAsDA,EDVY,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,yfAAE,+BAA+B,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,+BAAA,EAAA,wBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAE7F,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAZ/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAEhB,IAAA,EAAA;AACJ,wBAAA,oBAAoB,EAAE,CAAM,IAAA,CAAA;AAC5B,wBAAA,wBAAwB,EAAE,CAAe,aAAA,CAAA;AACzC,wBAAA,+BAA+B,EAAE,CAAQ,MAAA;AAC1C,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,kBAAkB,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,sBAAsB,CAAC,EAAA,QAAA,EAAA,wsEAAA,EAAA;8BAiBxD,OAAO,EAAA,CAAA;sBAAvD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;MErD5B,sBAAsB,GAAG,IAAI,cAAc,CAAqB,wBAAwB,EAAE;AACrG,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE;AACV,CAAA;SAEe,8BAA8B,GAAA;IAC5C,OAAO,IAAI,iBAAiB,EAAE;AAChC;MAEa,iBAAiB,CAAA;AAC5B,IAAA,GAAG,CAAC,GAAW,EAAA;AACb,QAAA,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;;IAGlC,GAAG,CAAC,GAAW,EAAE,OAAgB,EAAA;QAC/B,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAG,EAAA,OAAO,CAAE,CAAA,CAAC;;AAE1C;;MCFY,iBAAiB,CAAA;AACX,IAAA,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;AAC/B,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,IAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;AACtB,IAAA,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACtC,IAAA,WAAW,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAC5C,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAEhD,IAAA,OAAO;AACP,IAAA,GAAG;AACH,IAAA,MAAM;IACN,MAAM,GAAG,CAAC;IACV,QAAQ,GAAwB,IAAI;IACpC,QAAQ,GAAG,KAAK;IAChB,IAAI,GAA4B,IAAI;IACpC,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC;IAE7D,OAAO,GAAA;QACb,OAAO,IAAI,CAAC,GAAG;;AAGjB;;;;AAIG;AACH,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;;IAGd,MAAM,GAAA;AACZ,QAAA,MAAM,OAAO,GAAG,eAAe,CAAC,mBAAmB,EAAE;AACnD,YAAA,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC;AAClC,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;QACxC,MAAM,QAAQ,GAAI,OAAO,CAAC,QAAuC,CAAC,SAAS,CAAC,CAAC,CAAC;AAC9E,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,wBAAwB,CAAgB;QACtE,IAAI,GAAG,EAAE;YACP,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;;aAC/B;AACL,YAAA,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;;AAEhC,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,IAAsB,KAAI;YACvE,QAAQ,IAAI;AACV,gBAAA,KAAK,MAAM;oBACT,IAAI,CAAC,IAAI,EAAE;oBACX;AACF,gBAAA,KAAK,MAAM;oBACT,IAAI,CAAC,IAAI,EAAE;oBACX;AACF,gBAAA;oBACE,IAAI,CAAC,IAAI,EAAE;oBACX;;AAEN,SAAC,CAAC;;IAGI,aAAa,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;AAEtB,QAAA,OAAO,IAAI;;AAGL,IAAA,aAAa,CAAC,MAAe,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM;QACtB,IAAI,CAAC,OAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC5C,QAAA,OAAO,IAAI;;IAGL,OAAO,GAAA;AACb,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG;AACjC,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC;;QAEzD,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC7C,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,YAAA,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;;;IAIlB,QAAQ,CAAC,UAAmB,KAAK,EAAA;AACvC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAO,CAAC,KAAM;AACjC,QAAA,MAAM,IAAI,GAAG;AACX,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC;AAChB,YAAA,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC;YACf,GAAG,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM;SACH;AACnB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK;AACpF,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;AAChH,QAAA,MAAM,KAAK,GAAG;AACZ,YAAA,SAAS,CAAC,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5E,SAAS,CAAC,MAAK;AACb,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,KAAM,GAAG,IAAI,CAAC,MAAO;gBAC7D,OAAO,OAAO,GAAG,KAAK,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;AAClE,aAAC;SACF;QACD,IAAI,CAAC,OAAO,EAAE;YACZ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;AAGtB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAExB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,IAAI;aACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAkB,CAAc;AACtD,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;AACrD,YAAA,KAAK,EAAE,MAAM,IAAI,CAAC,IAAI;AACvB,SAAA,CAAC;;AAGN;;;;AAIG;AACH,IAAA,KAAK,CAAC,MAAwB,EAAA;AAC5B,QAAA,MAAM,GAAG,GAAqB;AAC5B,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,GAAG;SACJ;AACD,QAAA,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG;AACzB,QAAA,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,UAAU,EAAE;YACzE;;AAEF,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB;;QAEF,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAChB,IAAI,CAAC,MAAM,EAAE;AACb,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;;AAGrB;;;;AAIG;IACH,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAO,CAAC,KAAM,CAAC,MAAM,EAAE;YAClE,IAAI,CAAC,IAAI,EAAE;YACX;;AAEF,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM;QAClB,EAAE,IAAI,CAAC,MAAM;QACb,IAAI,CAAC,QAAQ,EAAE;;AAGjB;;;;AAIG;IACH,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE;YACxC;;AAEF,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM;QAClB,EAAE,IAAI,CAAC,MAAM;QACb,IAAI,CAAC,QAAQ,EAAE;;AAGjB;;;;AAIG;IACH,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM;QAClB,IAAI,CAAC,OAAO,EAAE;;IAGhB,WAAW,GAAA;QACT,IAAI,CAAC,OAAO,EAAE;;uGA3LL,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADJ,MAAM,EAAA,CAAA;;2FACnB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACXlC,MAAM,UAAU,GAAG,CAAC,mBAAmB,CAAC;MAc3B,gBAAgB,CAAA;uGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAVzB,YAAY;YACZ,iBAAiB;YACjB,eAAe;YACf,cAAc;YACd,cAAc;YACd,mBAAmB,EATH,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAAnB,mBAAmB,CAAA,EAAA,CAAA;AAc1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAVzB,YAAY;YACZ,iBAAiB;YACjB,eAAe;YACf,cAAc;YACd,cAAc;YACd,mBAAmB;YACnB,UAAU,CAAA,EAAA,CAAA;;2FAID,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,iBAAiB;wBACjB,eAAe;wBACf,cAAc;wBACd,cAAc;wBACd,mBAAmB;wBACnB;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;AACV,iBAAA;;;ACxBD;;AAEG;;;;"}