ngx-tethys 21.0.12 → 22.0.0-next.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 (184) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/fesm2022/ngx-tethys-action.mjs +37 -26
  3. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  4. package/fesm2022/ngx-tethys-affix.mjs +13 -12
  5. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  6. package/fesm2022/ngx-tethys-alert.mjs +26 -19
  7. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  8. package/fesm2022/ngx-tethys-anchor.mjs +29 -23
  9. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  10. package/fesm2022/ngx-tethys-arrow-switcher.mjs +32 -21
  11. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  12. package/fesm2022/ngx-tethys-autocomplete.mjs +41 -30
  13. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  14. package/fesm2022/ngx-tethys-avatar.mjs +59 -42
  15. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  16. package/fesm2022/ngx-tethys-back-top.mjs +17 -13
  17. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  18. package/fesm2022/ngx-tethys-badge.mjs +29 -19
  19. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  20. package/fesm2022/ngx-tethys-breadcrumb.mjs +24 -19
  21. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  22. package/fesm2022/ngx-tethys-button.mjs +63 -39
  23. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  24. package/fesm2022/ngx-tethys-calendar.mjs +37 -28
  25. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  26. package/fesm2022/ngx-tethys-card.mjs +31 -25
  27. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  28. package/fesm2022/ngx-tethys-carousel.mjs +34 -25
  29. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  30. package/fesm2022/ngx-tethys-cascader.mjs +89 -57
  31. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  32. package/fesm2022/ngx-tethys-checkbox.mjs +10 -10
  33. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  34. package/fesm2022/ngx-tethys-collapse.mjs +35 -25
  35. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  36. package/fesm2022/ngx-tethys-color-picker.mjs +75 -57
  37. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  38. package/fesm2022/ngx-tethys-comment.mjs +21 -18
  39. package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
  40. package/fesm2022/ngx-tethys-copy.mjs +15 -11
  41. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  42. package/fesm2022/ngx-tethys-core.mjs +30 -27
  43. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  44. package/fesm2022/ngx-tethys-date-picker.mjs +358 -262
  45. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  46. package/fesm2022/ngx-tethys-date-range.mjs +33 -23
  47. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  48. package/fesm2022/ngx-tethys-dialog.mjs +60 -43
  49. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  50. package/fesm2022/ngx-tethys-divider.mjs +21 -16
  51. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  52. package/fesm2022/ngx-tethys-dot.mjs +8 -9
  53. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  54. package/fesm2022/ngx-tethys-dropdown.mjs +75 -67
  55. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  56. package/fesm2022/ngx-tethys-empty.mjs +44 -28
  57. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  58. package/fesm2022/ngx-tethys-flexible-text.mjs +15 -12
  59. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  60. package/fesm2022/ngx-tethys-form.mjs +81 -65
  61. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  62. package/fesm2022/ngx-tethys-fullscreen.mjs +19 -17
  63. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  64. package/fesm2022/ngx-tethys-grid.mjs +73 -57
  65. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  66. package/fesm2022/ngx-tethys-guider.mjs +18 -18
  67. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  68. package/fesm2022/ngx-tethys-i18n.mjs +5 -4
  69. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  70. package/fesm2022/ngx-tethys-icon.mjs +19 -16
  71. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  72. package/fesm2022/ngx-tethys-image.mjs +28 -25
  73. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  74. package/fesm2022/ngx-tethys-input-number.mjs +24 -17
  75. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  76. package/fesm2022/ngx-tethys-input.mjs +99 -62
  77. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  78. package/fesm2022/ngx-tethys-layout.mjs +119 -96
  79. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  80. package/fesm2022/ngx-tethys-list.mjs +48 -34
  81. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  82. package/fesm2022/ngx-tethys-loading.mjs +11 -10
  83. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  84. package/fesm2022/ngx-tethys-mention.mjs +24 -18
  85. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  86. package/fesm2022/ngx-tethys-menu.mjs +63 -48
  87. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  88. package/fesm2022/ngx-tethys-message.mjs +29 -27
  89. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  90. package/fesm2022/ngx-tethys-native-table.mjs +275 -191
  91. package/fesm2022/ngx-tethys-native-table.mjs.map +1 -1
  92. package/fesm2022/ngx-tethys-nav.mjs +82 -53
  93. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  94. package/fesm2022/ngx-tethys-notify.mjs +38 -29
  95. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  96. package/fesm2022/ngx-tethys-pagination.mjs +39 -27
  97. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  98. package/fesm2022/ngx-tethys-popover.mjs +36 -30
  99. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  100. package/fesm2022/ngx-tethys-progress.mjs +64 -41
  101. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  102. package/fesm2022/ngx-tethys-property-operation.mjs +15 -14
  103. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  104. package/fesm2022/ngx-tethys-property.mjs +37 -25
  105. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  106. package/fesm2022/ngx-tethys-radio.mjs +31 -25
  107. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  108. package/fesm2022/ngx-tethys-rate.mjs +37 -25
  109. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  110. package/fesm2022/ngx-tethys-resizable.mjs +29 -26
  111. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  112. package/fesm2022/ngx-tethys-result.mjs +25 -17
  113. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  114. package/fesm2022/ngx-tethys-segment.mjs +30 -22
  115. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  116. package/fesm2022/ngx-tethys-select.mjs +89 -52
  117. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  118. package/fesm2022/ngx-tethys-shared.mjs +192 -136
  119. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  120. package/fesm2022/ngx-tethys-skeleton.mjs +94 -66
  121. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  122. package/fesm2022/ngx-tethys-slide.mjs +48 -38
  123. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  124. package/fesm2022/ngx-tethys-slider.mjs +20 -15
  125. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  126. package/fesm2022/ngx-tethys-space.mjs +18 -15
  127. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  128. package/fesm2022/ngx-tethys-statistic.mjs +51 -30
  129. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  130. package/fesm2022/ngx-tethys-stepper.mjs +43 -33
  131. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  132. package/fesm2022/ngx-tethys-strength.mjs +12 -11
  133. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  134. package/fesm2022/ngx-tethys-switch.mjs +25 -17
  135. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  136. package/fesm2022/ngx-tethys-table.mjs +38 -30
  137. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  138. package/fesm2022/ngx-tethys-tabs.mjs +39 -30
  139. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  140. package/fesm2022/ngx-tethys-tag.mjs +28 -21
  141. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  142. package/fesm2022/ngx-tethys-time-picker.mjs +119 -72
  143. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  144. package/fesm2022/ngx-tethys-timeline.mjs +40 -29
  145. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  146. package/fesm2022/ngx-tethys-tooltip.mjs +29 -22
  147. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  148. package/fesm2022/ngx-tethys-transfer.mjs +39 -26
  149. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  150. package/fesm2022/ngx-tethys-tree-select.mjs +84 -49
  151. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  152. package/fesm2022/ngx-tethys-tree.mjs +79 -50
  153. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  154. package/fesm2022/ngx-tethys-typography.mjs +21 -18
  155. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  156. package/fesm2022/ngx-tethys-upload.mjs +22 -20
  157. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  158. package/fesm2022/ngx-tethys-vote.mjs +13 -11
  159. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  160. package/fesm2022/ngx-tethys-watermark.mjs +13 -10
  161. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  162. package/fesm2022/ngx-tethys.mjs +1 -1
  163. package/fesm2022/ngx-tethys.mjs.map +1 -1
  164. package/package.json +3 -3
  165. package/schematics/dependencies.js +1 -1
  166. package/schematics/ng-update/migration-collection.json +4 -4
  167. package/schematics/ng-update/{update-21 → update-22}/index.js +1 -1
  168. package/schematics/ng-update/{update-21 → update-22}/index.spec.js +5 -5
  169. package/schematics/tsconfig.json +3 -1
  170. package/schematics/utils/create-tree-compiler-host.js +1 -0
  171. package/schematics/utils/create-tree-ts-parse-config-host.js +1 -0
  172. package/schematics/utils/get-angular-json.js +1 -0
  173. package/schematics/utils/get-workspace-tsconfig.js +1 -0
  174. package/schematics/version.d.ts +1 -1
  175. package/schematics/version.js +1 -1
  176. package/types/ngx-tethys-collapse.d.ts +5 -4
  177. package/types/ngx-tethys-date-picker.d.ts +5 -7
  178. package/types/ngx-tethys-menu.d.ts +4 -3
  179. /package/schematics/ng-update/{update-21 → update-22}/class-name-migration.d.ts +0 -0
  180. /package/schematics/ng-update/{update-21 → update-22}/class-name-migration.js +0 -0
  181. /package/schematics/ng-update/{update-21 → update-22}/index.d.ts +0 -0
  182. /package/schematics/ng-update/{update-21 → update-22}/index.spec.d.ts +0 -0
  183. /package/schematics/ng-update/{update-21 → update-22}/update-data.d.ts +0 -0
  184. /package/schematics/ng-update/{update-21 → update-22}/update-data.js +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ # [22.0.0-next.0](github.com/atinc/ngx-tethys/compare/21.0.12...22.0.0-next.0) (2026-08-26)
6
+
7
+ ### Features
8
+
9
+ * build: upgrade ng to v22 #TINFR-3745 ([#3824](/github.com/atinc/ngx-tethys/issues/3824)) ([7767bf2c](github.com/atinc/ngx-tethys/commits/7767bf2cebd90f468872953c8255542201aa379e)), closes [#TINFR-3745](github.com/atinc/ngx-tethys/issues/TINFR-3745)
10
+
5
11
  ## [21.0.12](github.com/atinc/ngx-tethys/compare/21.0.11...21.0.12) (2026-08-26)
6
12
 
7
13
 
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, Renderer2, DestroyRef, computed, signal, input, effect, ChangeDetectionStrategy, Component, contentChildren, NgModule } from '@angular/core';
2
+ import { inject, ElementRef, Renderer2, DestroyRef, computed, signal, input, effect, Component, contentChildren, NgModule } from '@angular/core';
3
3
  import { useHostRenderer } from '@tethys/cdk/dom';
4
4
  import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
5
5
  import { coerceBooleanProperty } from 'ngx-tethys/util';
@@ -35,11 +35,16 @@ class ThyAction {
35
35
  this.elementRef = inject(ElementRef);
36
36
  this.renderer = inject(Renderer2);
37
37
  this.destroyRef = inject(DestroyRef);
38
- this.icon = computed(() => this.thyActionIcon() || this.thyIcon(), ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
39
- this.feedback = signal(null, ...(ngDevMode ? [{ debugName: "feedback" }] : /* istanbul ignore next */ []));
40
- this.feedbackOptions = signal(null, ...(ngDevMode ? [{ debugName: "feedbackOptions" }] : /* istanbul ignore next */ []));
41
- this.active = computed(() => this.thyActionActive() || this.thyActive(), ...(ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []));
42
- this.appearance = computed(() => this.thyAppearance() || this.thyTheme(), ...(ngDevMode ? [{ debugName: "appearance" }] : /* istanbul ignore next */ []));
38
+ this.icon = computed(() => this.thyActionIcon() || this.thyIcon(), /* @ts-ignore */
39
+ ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
40
+ this.feedback = signal(null, /* @ts-ignore */
41
+ ...(ngDevMode ? [{ debugName: "feedback" }] : /* istanbul ignore next */ []));
42
+ this.feedbackOptions = signal(null, /* @ts-ignore */
43
+ ...(ngDevMode ? [{ debugName: "feedbackOptions" }] : /* istanbul ignore next */ []));
44
+ this.active = computed(() => this.thyActionActive() || this.thyActive(), /* @ts-ignore */
45
+ ...(ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []));
46
+ this.appearance = computed(() => this.thyAppearance() || this.thyTheme(), /* @ts-ignore */
47
+ ...(ngDevMode ? [{ debugName: "appearance" }] : /* istanbul ignore next */ []));
43
48
  this.hostRenderer = useHostRenderer();
44
49
  this.feedbackTimer = null;
45
50
  /**
@@ -50,11 +55,13 @@ class ThyAction {
50
55
  /**
51
56
  * 操作图标,支持传参同时也支持在投影中写 thy-icon 组件
52
57
  */
53
- this.thyIcon = input('', ...(ngDevMode ? [{ debugName: "thyIcon" }] : /* istanbul ignore next */ []));
58
+ this.thyIcon = input('', /* @ts-ignore */
59
+ ...(ngDevMode ? [{ debugName: "thyIcon" }] : /* istanbul ignore next */ []));
54
60
  /**
55
61
  * 操作图标,当 thyIcon 和其他指令参数名有冲突时使用 thyActionIcon
56
62
  */
57
- this.thyActionIcon = input('', ...(ngDevMode ? [{ debugName: "thyActionIcon" }] : /* istanbul ignore next */ []));
63
+ this.thyActionIcon = input('', /* @ts-ignore */
64
+ ...(ngDevMode ? [{ debugName: "thyActionIcon" }] : /* istanbul ignore next */ []));
58
65
  /**
59
66
  * 操作的图标 Active 状态,设置为 true 时会在 Item 上添加 active class
60
67
  */
@@ -68,17 +75,20 @@ class ThyAction {
68
75
  * @type fill | lite
69
76
  * @default fill
70
77
  */
71
- this.thyAppearance = input(...(ngDevMode ? [undefined, { debugName: "thyAppearance" }] : /* istanbul ignore next */ []));
78
+ this.thyAppearance = input(/* @ts-ignore */
79
+ ...(ngDevMode ? [undefined, { debugName: "thyAppearance" }] : /* istanbul ignore next */ []));
72
80
  /**
73
81
  * 废弃,操作图标的外观,请使用 thyAppearance 代替
74
82
  * @type fill | lite
75
83
  * @deprecated please use thyAppearance instead
76
84
  */
77
- this.thyTheme = input('fill', ...(ngDevMode ? [{ debugName: "thyTheme" }] : /* istanbul ignore next */ []));
85
+ this.thyTheme = input('fill', /* @ts-ignore */
86
+ ...(ngDevMode ? [{ debugName: "thyTheme" }] : /* istanbul ignore next */ []));
78
87
  /**
79
88
  * Hover 展示的图标
80
89
  */
81
- this.thyHoverIcon = input(...(ngDevMode ? [undefined, { debugName: "thyHoverIcon" }] : /* istanbul ignore next */ []));
90
+ this.thyHoverIcon = input(/* @ts-ignore */
91
+ ...(ngDevMode ? [undefined, { debugName: "thyHoverIcon" }] : /* istanbul ignore next */ []));
82
92
  /**
83
93
  * 是否处于禁用状态
84
94
  */
@@ -143,18 +153,18 @@ class ThyAction {
143
153
  ngOnDestroy() {
144
154
  this.feedbackTimer?.unsubscribe();
145
155
  }
146
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyAction, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
147
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: ThyAction, isStandalone: true, selector: "thy-action, [thyAction]", inputs: { thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thyIcon: { classPropertyName: "thyIcon", publicName: "thyIcon", isSignal: true, isRequired: false, transformFunction: null }, thyActionIcon: { classPropertyName: "thyActionIcon", publicName: "thyActionIcon", isSignal: true, isRequired: false, transformFunction: null }, thyActive: { classPropertyName: "thyActive", publicName: "thyActive", isSignal: true, isRequired: false, transformFunction: null }, thyActionActive: { classPropertyName: "thyActionActive", publicName: "thyActionActive", isSignal: true, isRequired: false, transformFunction: null }, thyAppearance: { classPropertyName: "thyAppearance", publicName: "thyAppearance", isSignal: true, isRequired: false, transformFunction: null }, thyTheme: { classPropertyName: "thyTheme", publicName: "thyTheme", isSignal: true, isRequired: false, transformFunction: null }, thyHoverIcon: { classPropertyName: "thyHoverIcon", publicName: "thyHoverIcon", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.active": "active()", "class.thy-action-hover-icon": "thyHoverIcon()", "class.thy-action-has-feedback": "!!feedback()", "class.disabled": "thyDisabled()" }, classAttribute: "thy-action" }, ngImport: i0, template: "@if (icon() && !feedback()) {\n <thy-icon [thyIconName]=\"icon()\"></thy-icon>\n}\n@if (feedbackOptions()?.icon) {\n <thy-icon [class]=\"feedbackOptions()?.class\" [thyIconName]=\"feedbackOptions()?.icon\"></thy-icon>\n}\n@if (thyHoverIcon()) {\n <thy-icon class=\"hover-icon\" [thyIconName]=\"thyHoverIcon()\"></thy-icon>\n}\n<ng-content></ng-content>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
156
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyAction, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
157
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.2", type: ThyAction, isStandalone: true, selector: "thy-action, [thyAction]", inputs: { thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thyIcon: { classPropertyName: "thyIcon", publicName: "thyIcon", isSignal: true, isRequired: false, transformFunction: null }, thyActionIcon: { classPropertyName: "thyActionIcon", publicName: "thyActionIcon", isSignal: true, isRequired: false, transformFunction: null }, thyActive: { classPropertyName: "thyActive", publicName: "thyActive", isSignal: true, isRequired: false, transformFunction: null }, thyActionActive: { classPropertyName: "thyActionActive", publicName: "thyActionActive", isSignal: true, isRequired: false, transformFunction: null }, thyAppearance: { classPropertyName: "thyAppearance", publicName: "thyAppearance", isSignal: true, isRequired: false, transformFunction: null }, thyTheme: { classPropertyName: "thyTheme", publicName: "thyTheme", isSignal: true, isRequired: false, transformFunction: null }, thyHoverIcon: { classPropertyName: "thyHoverIcon", publicName: "thyHoverIcon", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.active": "active()", "class.thy-action-hover-icon": "thyHoverIcon()", "class.thy-action-has-feedback": "!!feedback()", "class.disabled": "thyDisabled()" }, classAttribute: "thy-action" }, ngImport: i0, template: "@if (icon() && !feedback()) {\n <thy-icon [thyIconName]=\"icon()\"></thy-icon>\n}\n@if (feedbackOptions()?.icon) {\n <thy-icon [class]=\"feedbackOptions()?.class\" [thyIconName]=\"$safeNavigationMigration(feedbackOptions()?.icon)\"></thy-icon>\n}\n@if (thyHoverIcon()) {\n <thy-icon class=\"hover-icon\" [thyIconName]=\"thyHoverIcon()\"></thy-icon>\n}\n<ng-content></ng-content>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] }); }
148
158
  }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyAction, decorators: [{
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyAction, decorators: [{
150
160
  type: Component,
151
- args: [{ selector: 'thy-action, [thyAction]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
161
+ args: [{ selector: 'thy-action, [thyAction]', host: {
152
162
  class: 'thy-action',
153
163
  '[class.active]': 'active()',
154
164
  '[class.thy-action-hover-icon]': 'thyHoverIcon()',
155
165
  '[class.thy-action-has-feedback]': '!!feedback()',
156
166
  '[class.disabled]': 'thyDisabled()'
157
- }, imports: [ThyIcon], template: "@if (icon() && !feedback()) {\n <thy-icon [thyIconName]=\"icon()\"></thy-icon>\n}\n@if (feedbackOptions()?.icon) {\n <thy-icon [class]=\"feedbackOptions()?.class\" [thyIconName]=\"feedbackOptions()?.icon\"></thy-icon>\n}\n@if (thyHoverIcon()) {\n <thy-icon class=\"hover-icon\" [thyIconName]=\"thyHoverIcon()\"></thy-icon>\n}\n<ng-content></ng-content>\n" }]
167
+ }, imports: [ThyIcon], template: "@if (icon() && !feedback()) {\n <thy-icon [thyIconName]=\"icon()\"></thy-icon>\n}\n@if (feedbackOptions()?.icon) {\n <thy-icon [class]=\"feedbackOptions()?.class\" [thyIconName]=\"$safeNavigationMigration(feedbackOptions()?.icon)\"></thy-icon>\n}\n@if (thyHoverIcon()) {\n <thy-icon class=\"hover-icon\" [thyIconName]=\"thyHoverIcon()\"></thy-icon>\n}\n<ng-content></ng-content>\n" }]
158
168
  }], ctorParameters: () => [], propDecorators: { thyType: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyType", required: false }] }], thyIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyIcon", required: false }] }], thyActionIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyActionIcon", required: false }] }], thyActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyActive", required: false }] }], thyActionActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyActionActive", required: false }] }], thyAppearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyAppearance", required: false }] }], thyTheme: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyTheme", required: false }] }], thyHoverIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyHoverIcon", required: false }] }], thyDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDisabled", required: false }] }] } });
159
169
 
160
170
  /**
@@ -163,12 +173,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
163
173
  */
164
174
  class ThyActions {
165
175
  constructor() {
166
- this.actions = contentChildren(ThyAction, ...(ngDevMode ? [{ debugName: "actions" }] : /* istanbul ignore next */ []));
176
+ this.actions = contentChildren(ThyAction, /* @ts-ignore */
177
+ ...(ngDevMode ? [{ debugName: "actions" }] : /* istanbul ignore next */ []));
167
178
  /**
168
179
  * 大小,支持 `zero` | `xxs` | `xs` | `sm` | `md` | `lg` | `xlg` 和自定义数字大小
169
180
  * @type string | number
170
181
  */
171
- this.thySize = input('md', ...(ngDevMode ? [{ debugName: "thySize" }] : /* istanbul ignore next */ []));
182
+ this.thySize = input('md', /* @ts-ignore */
183
+ ...(ngDevMode ? [{ debugName: "thySize" }] : /* istanbul ignore next */ []));
172
184
  effect(() => {
173
185
  this.setActionsSize();
174
186
  });
@@ -183,15 +195,14 @@ class ThyActions {
183
195
  }
184
196
  });
185
197
  }
186
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyActions, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
187
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.14", type: ThyActions, isStandalone: true, selector: "thy-actions", inputs: { thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-actions" }, queries: [{ propertyName: "actions", predicate: ThyAction, isSignal: true }], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
198
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyActions, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
199
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.2", type: ThyActions, isStandalone: true, selector: "thy-actions", inputs: { thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-actions" }, queries: [{ propertyName: "actions", predicate: ThyAction, isSignal: true }], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true }); }
188
200
  }
189
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyActions, decorators: [{
201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyActions, decorators: [{
190
202
  type: Component,
191
203
  args: [{
192
204
  selector: 'thy-actions',
193
205
  template: ` <ng-content></ng-content> `,
194
- changeDetection: ChangeDetectionStrategy.OnPush,
195
206
  host: {
196
207
  class: 'thy-actions'
197
208
  }
@@ -199,11 +210,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
199
210
  }], ctorParameters: () => [], propDecorators: { actions: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ThyAction), { isSignal: true }] }], thySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySize", required: false }] }] } });
200
211
 
201
212
  class ThyActionModule {
202
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
203
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: ThyActionModule, imports: [CommonModule, ThyIconModule, ThyAction, ThyActions], exports: [ThyAction, ThyActions] }); }
204
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyActionModule, imports: [CommonModule, ThyIconModule, ThyAction] }); }
213
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
214
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.2", ngImport: i0, type: ThyActionModule, imports: [CommonModule, ThyIconModule, ThyAction, ThyActions], exports: [ThyAction, ThyActions] }); }
215
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyActionModule, imports: [CommonModule, ThyIconModule, ThyAction] }); }
205
216
  }
206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyActionModule, decorators: [{
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyActionModule, decorators: [{
207
218
  type: NgModule,
208
219
  args: [{
209
220
  imports: [CommonModule, ThyIconModule, ThyAction, ThyActions],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-action.mjs","sources":["../../../src/action/action.component.ts","../../../src/action/action.component.html","../../../src/action/actions.component.ts","../../../src/action/action.module.ts","../../../src/action/ngx-tethys-action.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n OnDestroy,\n OnInit,\n Renderer2,\n Signal,\n WritableSignal,\n computed,\n effect,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { Subscription, timer } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nexport type ThyActionType = 'primary' | 'success' | 'danger' | 'warning';\n\nexport type ThyActionAppearance = 'fill' | 'lite';\n\nexport type ThyActionFeedback = 'success' | 'error';\n\nexport interface ThyActionFeedbackOptions {\n icon?: string;\n class?: string;\n duration?: number;\n}\n\nconst defaultFeedbackOptions: Record<ThyActionFeedback, ThyActionFeedbackOptions> = {\n success: {\n icon: 'check-circle-fill',\n class: 'text-success',\n duration: 3000\n },\n error: {\n icon: 'close-circle-fill',\n class: 'text-danger',\n duration: 3000\n }\n};\n/**\n * 立即操作组件\n * @name thy-action,[thyAction]\n */\n@Component({\n selector: 'thy-action, [thyAction]',\n templateUrl: './action.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-action',\n '[class.active]': 'active()',\n '[class.thy-action-hover-icon]': 'thyHoverIcon()',\n '[class.thy-action-has-feedback]': '!!feedback()',\n '[class.disabled]': 'thyDisabled()'\n },\n imports: [ThyIcon]\n})\nexport class ThyAction implements OnInit, AfterViewInit, OnDestroy {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private renderer = inject(Renderer2);\n private destroyRef = inject(DestroyRef);\n\n public readonly icon: Signal<string> = computed(() => this.thyActionIcon() || this.thyIcon());\n\n feedback: WritableSignal<ThyActionFeedback | null> = signal(null);\n\n feedbackOptions: WritableSignal<ThyActionFeedbackOptions | null> = signal(null);\n\n readonly active: Signal<boolean> = computed(() => this.thyActionActive() || this.thyActive());\n\n protected readonly appearance = computed(() => this.thyAppearance() || this.thyTheme());\n\n private hostRenderer = useHostRenderer();\n\n private feedbackTimer: Subscription | null = null;\n\n /**\n * 操作图标的类型\n * @type primary | success | danger | warning\n */\n readonly thyType = input<ThyActionType, ThyActionType>('primary', {\n transform: (value: ThyActionType) => value || 'primary'\n });\n\n /**\n * 操作图标,支持传参同时也支持在投影中写 thy-icon 组件\n */\n readonly thyIcon = input<string>('');\n\n /**\n * 操作图标,当 thyIcon 和其他指令参数名有冲突时使用 thyActionIcon\n */\n readonly thyActionIcon = input<string>('');\n\n /**\n * 操作的图标 Active 状态,设置为 true 时会在 Item 上添加 active class\n */\n readonly thyActive = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 操作的图标 Active 状态,当 thyActive 和其他指令参数名有冲突时使用 thyActionActive\n */\n readonly thyActionActive = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 操作图标的外观,fill(背景色填充) | lite(简单文本颜色变化)\n * @type fill | lite\n * @default fill\n */\n readonly thyAppearance = input<ThyActionAppearance>();\n\n /**\n * 废弃,操作图标的外观,请使用 thyAppearance 代替\n * @type fill | lite\n * @deprecated please use thyAppearance instead\n */\n readonly thyTheme = input<ThyActionAppearance>('fill');\n\n /**\n * Hover 展示的图标\n */\n readonly thyHoverIcon = input<string>();\n\n /**\n * 是否处于禁用状态\n */\n readonly thyDisabled = input(false, { transform: coerceBooleanProperty });\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngAfterViewInit() {\n this.wrapSpanForText(this.elementRef.nativeElement.childNodes);\n }\n\n constructor() {\n effect(() => {\n this.updateClasses();\n });\n }\n\n setMarginRight(marginRight: string) {\n this.elementRef.nativeElement.style.marginRight = marginRight;\n }\n\n /**\n * 触发成功反馈操作\n */\n success(options?: ThyActionFeedbackOptions) {\n this.setFeedback('success', options);\n }\n\n /**\n * 触发失败反馈操作\n */\n error(options?: ThyActionFeedbackOptions) {\n this.setFeedback('error', options);\n }\n\n private setFeedback(feedback: ThyActionFeedback, options: ThyActionFeedbackOptions | undefined) {\n if (this.thyDisabled()) {\n return;\n }\n options = Object.assign({}, defaultFeedbackOptions[feedback], options);\n this.feedback.set(feedback);\n this.feedbackOptions.set(options);\n\n if (options.duration) {\n if (this.feedbackTimer) {\n this.feedbackTimer.unsubscribe();\n }\n this.feedbackTimer = timer(options.duration)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.feedback.set(null);\n this.feedbackOptions.set(null);\n });\n }\n }\n\n private wrapSpanForText(nodes: NodeList): void {\n nodes.forEach(node => {\n if (node.nodeName === '#text') {\n const span = this.renderer.createElement('span');\n const parent = this.renderer.parentNode(node);\n // this.renderer.addClass(span, 'thy-action-wrap-span');\n this.renderer.insertBefore(parent, span, node);\n this.renderer.appendChild(span, node);\n }\n });\n }\n\n private updateClasses() {\n const classNames: string[] = [];\n classNames.push(`action-${this.thyType()}`);\n if (this.appearance() === 'lite') {\n classNames.push('thy-action-lite');\n }\n this.hostRenderer.updateClass(classNames);\n }\n\n ngOnDestroy(): void {\n this.feedbackTimer?.unsubscribe();\n }\n}\n","@if (icon() && !feedback()) {\n <thy-icon [thyIconName]=\"icon()\"></thy-icon>\n}\n@if (feedbackOptions()?.icon) {\n <thy-icon [class]=\"feedbackOptions()?.class\" [thyIconName]=\"feedbackOptions()?.icon\"></thy-icon>\n}\n@if (thyHoverIcon()) {\n <thy-icon class=\"hover-icon\" [thyIconName]=\"thyHoverIcon()\"></thy-icon>\n}\n<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, OnInit, contentChildren, effect, input } from '@angular/core';\nimport { ThySpacingSize, getNumericSize } from 'ngx-tethys/core';\nimport { ThyAction } from './action.component';\n\n/**\n * Actions 组件\n * @name thy-actions\n */\n@Component({\n selector: 'thy-actions',\n template: ` <ng-content></ng-content> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-actions'\n }\n})\nexport class ThyActions implements OnInit {\n readonly actions = contentChildren<ThyAction>(ThyAction);\n\n /**\n * 大小,支持 `zero` | `xxs` | `xs` | `sm` | `md` | `lg` | `xlg` 和自定义数字大小\n * @type string | number\n */\n readonly thySize = input<ThySpacingSize>('md');\n\n constructor() {\n effect(() => {\n this.setActionsSize();\n });\n }\n\n ngOnInit(): void {}\n\n private setActionsSize() {\n const actions: ThyAction[] = Array.from(this.actions());\n actions.forEach((action: ThyAction, index) => {\n // can't set marginRight value for last item\n if (index !== actions.length - 1) {\n action.setMarginRight(`${getNumericSize(this.thySize(), 'md')}px`);\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyAction } from './action.component';\nimport { ThyActions } from './actions.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyAction, ThyActions],\n exports: [ThyAction, ThyActions]\n})\nexport class ThyActionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-action.mjs","sources":["../../../src/action/action.component.ts","../../../src/action/action.component.html","../../../src/action/actions.component.ts","../../../src/action/action.module.ts","../../../src/action/ngx-tethys-action.ts"],"sourcesContent":["import {\n AfterViewInit,\n Component,\n DestroyRef,\n ElementRef,\n OnDestroy,\n OnInit,\n Renderer2,\n Signal,\n WritableSignal,\n computed,\n effect,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { Subscription, timer } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nexport type ThyActionType = 'primary' | 'success' | 'danger' | 'warning';\n\nexport type ThyActionAppearance = 'fill' | 'lite';\n\nexport type ThyActionFeedback = 'success' | 'error';\n\nexport interface ThyActionFeedbackOptions {\n icon?: string;\n class?: string;\n duration?: number;\n}\n\nconst defaultFeedbackOptions: Record<ThyActionFeedback, ThyActionFeedbackOptions> = {\n success: {\n icon: 'check-circle-fill',\n class: 'text-success',\n duration: 3000\n },\n error: {\n icon: 'close-circle-fill',\n class: 'text-danger',\n duration: 3000\n }\n};\n/**\n * 立即操作组件\n * @name thy-action,[thyAction]\n */\n@Component({\n selector: 'thy-action, [thyAction]',\n templateUrl: './action.component.html',\n host: {\n class: 'thy-action',\n '[class.active]': 'active()',\n '[class.thy-action-hover-icon]': 'thyHoverIcon()',\n '[class.thy-action-has-feedback]': '!!feedback()',\n '[class.disabled]': 'thyDisabled()'\n },\n imports: [ThyIcon]\n})\nexport class ThyAction implements OnInit, AfterViewInit, OnDestroy {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private renderer = inject(Renderer2);\n private destroyRef = inject(DestroyRef);\n\n public readonly icon: Signal<string> = computed(() => this.thyActionIcon() || this.thyIcon());\n\n feedback: WritableSignal<ThyActionFeedback | null> = signal(null);\n\n feedbackOptions: WritableSignal<ThyActionFeedbackOptions | null> = signal(null);\n\n readonly active: Signal<boolean> = computed(() => this.thyActionActive() || this.thyActive());\n\n protected readonly appearance = computed(() => this.thyAppearance() || this.thyTheme());\n\n private hostRenderer = useHostRenderer();\n\n private feedbackTimer: Subscription | null = null;\n\n /**\n * 操作图标的类型\n * @type primary | success | danger | warning\n */\n readonly thyType = input<ThyActionType, ThyActionType>('primary', {\n transform: (value: ThyActionType) => value || 'primary'\n });\n\n /**\n * 操作图标,支持传参同时也支持在投影中写 thy-icon 组件\n */\n readonly thyIcon = input<string>('');\n\n /**\n * 操作图标,当 thyIcon 和其他指令参数名有冲突时使用 thyActionIcon\n */\n readonly thyActionIcon = input<string>('');\n\n /**\n * 操作的图标 Active 状态,设置为 true 时会在 Item 上添加 active class\n */\n readonly thyActive = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 操作的图标 Active 状态,当 thyActive 和其他指令参数名有冲突时使用 thyActionActive\n */\n readonly thyActionActive = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 操作图标的外观,fill(背景色填充) | lite(简单文本颜色变化)\n * @type fill | lite\n * @default fill\n */\n readonly thyAppearance = input<ThyActionAppearance>();\n\n /**\n * 废弃,操作图标的外观,请使用 thyAppearance 代替\n * @type fill | lite\n * @deprecated please use thyAppearance instead\n */\n readonly thyTheme = input<ThyActionAppearance>('fill');\n\n /**\n * Hover 展示的图标\n */\n readonly thyHoverIcon = input<string>();\n\n /**\n * 是否处于禁用状态\n */\n readonly thyDisabled = input(false, { transform: coerceBooleanProperty });\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngAfterViewInit() {\n this.wrapSpanForText(this.elementRef.nativeElement.childNodes);\n }\n\n constructor() {\n effect(() => {\n this.updateClasses();\n });\n }\n\n setMarginRight(marginRight: string) {\n this.elementRef.nativeElement.style.marginRight = marginRight;\n }\n\n /**\n * 触发成功反馈操作\n */\n success(options?: ThyActionFeedbackOptions) {\n this.setFeedback('success', options);\n }\n\n /**\n * 触发失败反馈操作\n */\n error(options?: ThyActionFeedbackOptions) {\n this.setFeedback('error', options);\n }\n\n private setFeedback(feedback: ThyActionFeedback, options: ThyActionFeedbackOptions | undefined) {\n if (this.thyDisabled()) {\n return;\n }\n options = Object.assign({}, defaultFeedbackOptions[feedback], options);\n this.feedback.set(feedback);\n this.feedbackOptions.set(options);\n\n if (options.duration) {\n if (this.feedbackTimer) {\n this.feedbackTimer.unsubscribe();\n }\n this.feedbackTimer = timer(options.duration)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.feedback.set(null);\n this.feedbackOptions.set(null);\n });\n }\n }\n\n private wrapSpanForText(nodes: NodeList): void {\n nodes.forEach(node => {\n if (node.nodeName === '#text') {\n const span = this.renderer.createElement('span');\n const parent = this.renderer.parentNode(node);\n // this.renderer.addClass(span, 'thy-action-wrap-span');\n this.renderer.insertBefore(parent, span, node);\n this.renderer.appendChild(span, node);\n }\n });\n }\n\n private updateClasses() {\n const classNames: string[] = [];\n classNames.push(`action-${this.thyType()}`);\n if (this.appearance() === 'lite') {\n classNames.push('thy-action-lite');\n }\n this.hostRenderer.updateClass(classNames);\n }\n\n ngOnDestroy(): void {\n this.feedbackTimer?.unsubscribe();\n }\n}\n","@if (icon() && !feedback()) {\n <thy-icon [thyIconName]=\"icon()\"></thy-icon>\n}\n@if (feedbackOptions()?.icon) {\n <thy-icon [class]=\"feedbackOptions()?.class\" [thyIconName]=\"$safeNavigationMigration(feedbackOptions()?.icon)\"></thy-icon>\n}\n@if (thyHoverIcon()) {\n <thy-icon class=\"hover-icon\" [thyIconName]=\"thyHoverIcon()\"></thy-icon>\n}\n<ng-content></ng-content>\n","import { Component, OnInit, contentChildren, effect, input } from '@angular/core';\nimport { ThySpacingSize, getNumericSize } from 'ngx-tethys/core';\nimport { ThyAction } from './action.component';\n\n/**\n * Actions 组件\n * @name thy-actions\n */\n@Component({\n selector: 'thy-actions',\n template: ` <ng-content></ng-content> `,\n host: {\n class: 'thy-actions'\n }\n})\nexport class ThyActions implements OnInit {\n readonly actions = contentChildren<ThyAction>(ThyAction);\n\n /**\n * 大小,支持 `zero` | `xxs` | `xs` | `sm` | `md` | `lg` | `xlg` 和自定义数字大小\n * @type string | number\n */\n readonly thySize = input<ThySpacingSize>('md');\n\n constructor() {\n effect(() => {\n this.setActionsSize();\n });\n }\n\n ngOnInit(): void {}\n\n private setActionsSize() {\n const actions: ThyAction[] = Array.from(this.actions());\n actions.forEach((action: ThyAction, index) => {\n // can't set marginRight value for last item\n if (index !== actions.length - 1) {\n action.setMarginRight(`${getNumericSize(this.thySize(), 'md')}px`);\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyAction } from './action.component';\nimport { ThyActions } from './actions.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyAction, ThyActions],\n exports: [ThyAction, ThyActions]\n})\nexport class ThyActionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Platform, PlatformModule } from '@angular/cdk/platform';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { inject, NgZone, Renderer2, viewChild, input, numberAttribute, output, computed, ElementRef, DOCUMENT, effect, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
4
+ import { inject, NgZone, Renderer2, viewChild, input, numberAttribute, output, computed, ElementRef, DOCUMENT, effect, ViewEncapsulation, Component, NgModule } from '@angular/core';
5
5
  import { ThyScrollService } from 'ngx-tethys/core';
6
6
  import { dom, shallowEqual } from 'ngx-tethys/util';
7
7
  import { Subscription, ReplaySubject, Subject, merge, fromEvent } from 'rxjs';
@@ -37,7 +37,8 @@ class ThyAffix {
37
37
  * @default window
38
38
  * @type string | Element | Window
39
39
  */
40
- this.thyContainer = input(...(ngDevMode ? [undefined, { debugName: "thyContainer" }] : /* istanbul ignore next */ []));
40
+ this.thyContainer = input(/* @ts-ignore */
41
+ ...(ngDevMode ? [undefined, { debugName: "thyContainer" }] : /* istanbul ignore next */ []));
41
42
  /**
42
43
  * 距离窗口顶部缓冲的偏移量阈值
43
44
  */
@@ -56,7 +57,8 @@ class ThyAffix {
56
57
  this.container = computed(() => {
57
58
  const el = this.thyContainer();
58
59
  return (typeof el === 'string' ? this.document.querySelector(el) : el) || window;
59
- }, ...(ngDevMode ? [{ debugName: "container" }] : /* istanbul ignore next */ []));
60
+ }, /* @ts-ignore */
61
+ ...(ngDevMode ? [{ debugName: "container" }] : /* istanbul ignore next */ []));
60
62
  const el = inject(ElementRef);
61
63
  const document = inject(DOCUMENT);
62
64
  // The wrapper would stay at the original position as a placeholder.
@@ -228,14 +230,14 @@ class ThyAffix {
228
230
  this.syncPlaceholderStyle(e);
229
231
  }
230
232
  }
231
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyAffix, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
232
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.14", type: ThyAffix, isStandalone: true, selector: "thy-affix", inputs: { thyContainer: { classPropertyName: "thyContainer", publicName: "thyContainer", isSignal: true, isRequired: false, transformFunction: null }, thyOffsetTop: { classPropertyName: "thyOffsetTop", publicName: "thyOffsetTop", isSignal: true, isRequired: false, transformFunction: null }, thyOffsetBottom: { classPropertyName: "thyOffsetBottom", publicName: "thyOffsetBottom", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyChange: "thyChange" }, viewQueries: [{ propertyName: "fixedElement", first: true, predicate: ["fixedElement"], descendants: true, isSignal: true }], exportAs: ["thyAffix"], ngImport: i0, template: `
233
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyAffix, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
234
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.2", type: ThyAffix, isStandalone: true, selector: "thy-affix", inputs: { thyContainer: { classPropertyName: "thyContainer", publicName: "thyContainer", isSignal: true, isRequired: false, transformFunction: null }, thyOffsetTop: { classPropertyName: "thyOffsetTop", publicName: "thyOffsetTop", isSignal: true, isRequired: false, transformFunction: null }, thyOffsetBottom: { classPropertyName: "thyOffsetBottom", publicName: "thyOffsetBottom", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyChange: "thyChange" }, viewQueries: [{ propertyName: "fixedElement", first: true, predicate: ["fixedElement"], descendants: true, isSignal: true }], exportAs: ["thyAffix"], ngImport: i0, template: `
233
235
  <div #fixedElement>
234
236
  <ng-content></ng-content>
235
237
  </div>
236
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
238
+ `, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
237
239
  }
238
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyAffix, decorators: [{
240
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyAffix, decorators: [{
239
241
  type: Component,
240
242
  args: [{
241
243
  selector: 'thy-affix',
@@ -245,17 +247,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
245
247
  <ng-content></ng-content>
246
248
  </div>
247
249
  `,
248
- changeDetection: ChangeDetectionStrategy.OnPush,
249
250
  encapsulation: ViewEncapsulation.None
250
251
  }]
251
252
  }], ctorParameters: () => [], propDecorators: { fixedElement: [{ type: i0.ViewChild, args: ['fixedElement', { isSignal: true }] }], thyContainer: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyContainer", required: false }] }], thyOffsetTop: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyOffsetTop", required: false }] }], thyOffsetBottom: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyOffsetBottom", required: false }] }], thyChange: [{ type: i0.Output, args: ["thyChange"] }] } });
252
253
 
253
254
  class ThyAffixModule {
254
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyAffixModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
255
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: ThyAffixModule, imports: [CommonModule, PlatformModule, ThyAffix], exports: [ThyAffix] }); }
256
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyAffixModule, imports: [CommonModule, PlatformModule] }); }
255
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyAffixModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
256
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.2", ngImport: i0, type: ThyAffixModule, imports: [CommonModule, PlatformModule, ThyAffix], exports: [ThyAffix] }); }
257
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyAffixModule, imports: [CommonModule, PlatformModule] }); }
257
258
  }
258
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyAffixModule, decorators: [{
259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyAffixModule, decorators: [{
259
260
  type: NgModule,
260
261
  args: [{
261
262
  exports: [ThyAffix],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-affix.mjs","sources":["../../../src/affix/respond-events.ts","../../../src/affix/affix.component.ts","../../../src/affix/affix.module.ts","../../../src/affix/ngx-tethys-affix.ts"],"sourcesContent":["export enum AffixRespondEvents {\n resize = 'resize',\n scroll = 'scroll',\n touchstart = 'touchstart',\n touchmove = 'touchmove',\n touchend = 'touchend',\n pageshow = 'pageshow',\n load = 'LOAD'\n}\n","import { ThyScrollService } from 'ngx-tethys/core';\nimport { dom, shallowEqual, SimpleRect } from 'ngx-tethys/util';\nimport { fromEvent, merge, ReplaySubject, Subject, Subscription } from 'rxjs';\nimport { auditTime, map, takeUntil } from 'rxjs/operators';\n\nimport { Platform } from '@angular/cdk/platform';\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n NgZone,\n numberAttribute,\n OnDestroy,\n output,\n Renderer2,\n Signal,\n viewChild,\n ViewEncapsulation,\n DOCUMENT\n} from '@angular/core';\n\nimport { AffixRespondEvents } from './respond-events';\n\nconst THY_AFFIX_CLS_PREFIX = 'thy-affix';\nconst THY_AFFIX_DEFAULT_SCROLL_TIME = 20;\n\n/**\n * 固钉组件\n * @name thy-affix\n * @order 10\n */\n@Component({\n selector: 'thy-affix',\n exportAs: 'thyAffix',\n template: `\n <div #fixedElement>\n <ng-content></ng-content>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class ThyAffix implements AfterViewInit, OnDestroy {\n private scrollService = inject(ThyScrollService);\n private ngZone = inject(NgZone);\n private platform = inject(Platform);\n private renderer = inject(Renderer2);\n\n private readonly fixedElement = viewChild.required<ElementRef<HTMLDivElement>>('fixedElement');\n\n /**\n * 设置 thy-affix 需要监听其滚动事件的元素,值为一个返回对应 DOM 元素的函数\n * @default window\n * @type string | Element | Window\n */\n readonly thyContainer = input<string | Element | Window>();\n\n /**\n * 距离窗口顶部缓冲的偏移量阈值\n */\n readonly thyOffsetTop = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 距离窗口底部缓冲的偏移量阈值\n */\n readonly thyOffsetBottom = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 固定状态改变时触发的回调函数\n */\n readonly thyChange = output<boolean>();\n\n private readonly placeholderNode: HTMLElement;\n\n private affixStyle?: any;\n private placeholderStyle?: any;\n private positionChangeSubscription: Subscription = Subscription.EMPTY;\n private offsetChanged$ = new ReplaySubject(1);\n private destroy$ = new Subject<void>();\n private timeout?: any;\n private document: any;\n\n private readonly container: Signal<Element | Window> = computed(() => {\n const el = this.thyContainer();\n return (typeof el === 'string' ? this.document.querySelector(el) : el) || window;\n });\n\n constructor() {\n const el = inject(ElementRef);\n const document = inject(DOCUMENT);\n\n // The wrapper would stay at the original position as a placeholder.\n this.placeholderNode = el.nativeElement;\n this.document = document;\n effect(() => {\n if (this.thyOffsetBottom() || this.thyOffsetTop()) {\n this.offsetChanged$.next(undefined);\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.registerListeners();\n }\n\n ngOnDestroy(): void {\n this.removeListeners();\n }\n\n private registerListeners(): void {\n this.removeListeners();\n this.positionChangeSubscription = this.ngZone.runOutsideAngular(() => {\n return merge(\n ...Object.keys(AffixRespondEvents).map(evName => fromEvent(this.container(), evName)),\n this.offsetChanged$.pipe(\n takeUntil(this.destroy$),\n map(() => ({}))\n )\n )\n .pipe(auditTime(THY_AFFIX_DEFAULT_SCROLL_TIME))\n .subscribe(e => this.updatePosition(e as Event));\n });\n this.timeout = setTimeout(() => this.updatePosition({} as Event));\n }\n\n private removeListeners(): void {\n clearTimeout(this.timeout);\n this.positionChangeSubscription.unsubscribe();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n getOffset(element: Element, target: Element | Window | undefined): SimpleRect {\n const elemRect = element.getBoundingClientRect();\n const containerRect = dom.getContainerRect(target!);\n\n const scrollTop = this.scrollService.getScroll(target, true);\n const scrollLeft = this.scrollService.getScroll(target, false);\n\n const docElem = this.document.body;\n const clientTop = docElem.clientTop || 0;\n const clientLeft = docElem.clientLeft || 0;\n\n return {\n top: elemRect.top - containerRect.top + scrollTop - clientTop,\n left: elemRect.left - containerRect.left + scrollLeft - clientLeft,\n width: elemRect.width,\n height: elemRect.height\n };\n }\n\n private setAffixStyle(e: Event, affixStyle?: any): void {\n const originalAffixStyle = this.affixStyle;\n const isWindow = this.container() === window;\n if (e.type === 'scroll' && originalAffixStyle && affixStyle && isWindow) {\n return;\n }\n if (shallowEqual(originalAffixStyle, affixStyle)) {\n return;\n }\n\n const fixed = !!affixStyle;\n const wrapElement = this.fixedElement().nativeElement;\n this.renderer.setStyle(wrapElement, 'cssText', dom.getStyleAsText(affixStyle));\n this.affixStyle = affixStyle;\n if (fixed) {\n wrapElement.classList.add(THY_AFFIX_CLS_PREFIX);\n } else {\n wrapElement.classList.remove(THY_AFFIX_CLS_PREFIX);\n }\n\n if ((affixStyle && !originalAffixStyle) || (!affixStyle && originalAffixStyle)) {\n this.thyChange.emit(fixed);\n }\n }\n\n private setPlaceholderStyle(placeholderStyle?: any): void {\n const originalPlaceholderStyle = this.placeholderStyle;\n if (shallowEqual(placeholderStyle, originalPlaceholderStyle)) {\n return;\n }\n this.renderer.setStyle(this.placeholderNode, 'cssText', dom.getStyleAsText(placeholderStyle));\n this.placeholderStyle = placeholderStyle;\n }\n\n private syncPlaceholderStyle(e: Event): void {\n if (!this.affixStyle) {\n return;\n }\n this.renderer.setStyle(this.placeholderNode, 'cssText', '');\n this.placeholderStyle = undefined;\n const styleObj = {\n width: this.placeholderNode.offsetWidth,\n height: this.fixedElement().nativeElement.offsetHeight\n };\n this.setAffixStyle(e, {\n ...this.affixStyle,\n ...styleObj\n });\n this.setPlaceholderStyle(styleObj);\n }\n\n updatePosition(e: Event): void {\n if (!this.platform.isBrowser) {\n return;\n }\n\n const containerNode = this.container();\n let offsetTop = this.thyOffsetTop();\n const scrollTop = this.scrollService.getScroll(containerNode, true);\n const elementOffset = this.getOffset(this.placeholderNode, containerNode);\n const fixedNode = this.fixedElement().nativeElement;\n const elemSize = {\n width: fixedNode.offsetWidth,\n height: fixedNode.offsetHeight\n };\n const offsetMode = {\n top: false,\n bottom: false\n };\n // Default to `offsetTop=0`.\n const thyOffsetBottom = this.thyOffsetBottom();\n if (typeof offsetTop !== 'number' && typeof thyOffsetBottom !== 'number') {\n offsetMode.top = true;\n offsetTop = 0;\n } else {\n offsetMode.top = typeof offsetTop === 'number';\n offsetMode.bottom = typeof thyOffsetBottom === 'number';\n }\n const containerRect = dom.getContainerRect(containerNode as Window);\n const targetInnerHeight = (containerNode as Window).innerHeight || (containerNode as HTMLElement).clientHeight;\n if (scrollTop >= elementOffset.top - (offsetTop as number) && offsetMode.top) {\n const width = elementOffset.width;\n const top = containerRect.top + (offsetTop as number);\n this.setAffixStyle(e, {\n position: 'fixed',\n top,\n left: containerRect.left + elementOffset.left,\n width\n });\n this.setPlaceholderStyle({\n width,\n height: elemSize.height\n });\n } else if (\n scrollTop <= elementOffset.top + elemSize.height + (thyOffsetBottom as number) - targetInnerHeight &&\n offsetMode.bottom\n ) {\n const targetBottomOffset = containerNode === window ? 0 : window.innerHeight - containerRect.bottom!;\n const width = elementOffset.width;\n this.setAffixStyle(e, {\n position: 'fixed',\n bottom: targetBottomOffset + (thyOffsetBottom as number),\n left: containerRect.left + elementOffset.left,\n width\n });\n this.setPlaceholderStyle({\n width,\n height: elementOffset.height\n });\n } else {\n if (\n e.type === AffixRespondEvents.resize &&\n this.affixStyle &&\n this.affixStyle.position === 'fixed' &&\n this.placeholderNode.offsetWidth\n ) {\n this.setAffixStyle(e, {\n ...this.affixStyle,\n width: this.placeholderNode.offsetWidth\n });\n } else {\n this.setAffixStyle(e);\n }\n this.setPlaceholderStyle();\n }\n\n if (e.type === 'resize') {\n this.syncPlaceholderStyle(e);\n }\n }\n}\n","import { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyAffix } from './affix.component';\n\n@NgModule({\n exports: [ThyAffix],\n imports: [CommonModule, PlatformModule, ThyAffix]\n})\nexport class ThyAffixModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-affix.mjs","sources":["../../../src/affix/respond-events.ts","../../../src/affix/affix.component.ts","../../../src/affix/affix.module.ts","../../../src/affix/ngx-tethys-affix.ts"],"sourcesContent":["export enum AffixRespondEvents {\n resize = 'resize',\n scroll = 'scroll',\n touchstart = 'touchstart',\n touchmove = 'touchmove',\n touchend = 'touchend',\n pageshow = 'pageshow',\n load = 'LOAD'\n}\n","import { ThyScrollService } from 'ngx-tethys/core';\nimport { dom, shallowEqual, SimpleRect } from 'ngx-tethys/util';\nimport { fromEvent, merge, ReplaySubject, Subject, Subscription } from 'rxjs';\nimport { auditTime, map, takeUntil } from 'rxjs/operators';\n\nimport { Platform } from '@angular/cdk/platform';\n\nimport {\n AfterViewInit,\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n NgZone,\n numberAttribute,\n OnDestroy,\n output,\n Renderer2,\n Signal,\n viewChild,\n ViewEncapsulation,\n DOCUMENT\n} from '@angular/core';\n\nimport { AffixRespondEvents } from './respond-events';\n\nconst THY_AFFIX_CLS_PREFIX = 'thy-affix';\nconst THY_AFFIX_DEFAULT_SCROLL_TIME = 20;\n\n/**\n * 固钉组件\n * @name thy-affix\n * @order 10\n */\n@Component({\n selector: 'thy-affix',\n exportAs: 'thyAffix',\n template: `\n <div #fixedElement>\n <ng-content></ng-content>\n </div>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class ThyAffix implements AfterViewInit, OnDestroy {\n private scrollService = inject(ThyScrollService);\n private ngZone = inject(NgZone);\n private platform = inject(Platform);\n private renderer = inject(Renderer2);\n\n private readonly fixedElement = viewChild.required<ElementRef<HTMLDivElement>>('fixedElement');\n\n /**\n * 设置 thy-affix 需要监听其滚动事件的元素,值为一个返回对应 DOM 元素的函数\n * @default window\n * @type string | Element | Window\n */\n readonly thyContainer = input<string | Element | Window>();\n\n /**\n * 距离窗口顶部缓冲的偏移量阈值\n */\n readonly thyOffsetTop = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 距离窗口底部缓冲的偏移量阈值\n */\n readonly thyOffsetBottom = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 固定状态改变时触发的回调函数\n */\n readonly thyChange = output<boolean>();\n\n private readonly placeholderNode: HTMLElement;\n\n private affixStyle?: any;\n private placeholderStyle?: any;\n private positionChangeSubscription: Subscription = Subscription.EMPTY;\n private offsetChanged$ = new ReplaySubject(1);\n private destroy$ = new Subject<void>();\n private timeout?: any;\n private document: any;\n\n private readonly container: Signal<Element | Window> = computed(() => {\n const el = this.thyContainer();\n return (typeof el === 'string' ? this.document.querySelector(el) : el) || window;\n });\n\n constructor() {\n const el = inject(ElementRef);\n const document = inject(DOCUMENT);\n\n // The wrapper would stay at the original position as a placeholder.\n this.placeholderNode = el.nativeElement;\n this.document = document;\n effect(() => {\n if (this.thyOffsetBottom() || this.thyOffsetTop()) {\n this.offsetChanged$.next(undefined);\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.registerListeners();\n }\n\n ngOnDestroy(): void {\n this.removeListeners();\n }\n\n private registerListeners(): void {\n this.removeListeners();\n this.positionChangeSubscription = this.ngZone.runOutsideAngular(() => {\n return merge(\n ...Object.keys(AffixRespondEvents).map(evName => fromEvent(this.container(), evName)),\n this.offsetChanged$.pipe(\n takeUntil(this.destroy$),\n map(() => ({}))\n )\n )\n .pipe(auditTime(THY_AFFIX_DEFAULT_SCROLL_TIME))\n .subscribe(e => this.updatePosition(e as Event));\n });\n this.timeout = setTimeout(() => this.updatePosition({} as Event));\n }\n\n private removeListeners(): void {\n clearTimeout(this.timeout);\n this.positionChangeSubscription.unsubscribe();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n getOffset(element: Element, target: Element | Window | undefined): SimpleRect {\n const elemRect = element.getBoundingClientRect();\n const containerRect = dom.getContainerRect(target!);\n\n const scrollTop = this.scrollService.getScroll(target, true);\n const scrollLeft = this.scrollService.getScroll(target, false);\n\n const docElem = this.document.body;\n const clientTop = docElem.clientTop || 0;\n const clientLeft = docElem.clientLeft || 0;\n\n return {\n top: elemRect.top - containerRect.top + scrollTop - clientTop,\n left: elemRect.left - containerRect.left + scrollLeft - clientLeft,\n width: elemRect.width,\n height: elemRect.height\n };\n }\n\n private setAffixStyle(e: Event, affixStyle?: any): void {\n const originalAffixStyle = this.affixStyle;\n const isWindow = this.container() === window;\n if (e.type === 'scroll' && originalAffixStyle && affixStyle && isWindow) {\n return;\n }\n if (shallowEqual(originalAffixStyle, affixStyle)) {\n return;\n }\n\n const fixed = !!affixStyle;\n const wrapElement = this.fixedElement().nativeElement;\n this.renderer.setStyle(wrapElement, 'cssText', dom.getStyleAsText(affixStyle));\n this.affixStyle = affixStyle;\n if (fixed) {\n wrapElement.classList.add(THY_AFFIX_CLS_PREFIX);\n } else {\n wrapElement.classList.remove(THY_AFFIX_CLS_PREFIX);\n }\n\n if ((affixStyle && !originalAffixStyle) || (!affixStyle && originalAffixStyle)) {\n this.thyChange.emit(fixed);\n }\n }\n\n private setPlaceholderStyle(placeholderStyle?: any): void {\n const originalPlaceholderStyle = this.placeholderStyle;\n if (shallowEqual(placeholderStyle, originalPlaceholderStyle)) {\n return;\n }\n this.renderer.setStyle(this.placeholderNode, 'cssText', dom.getStyleAsText(placeholderStyle));\n this.placeholderStyle = placeholderStyle;\n }\n\n private syncPlaceholderStyle(e: Event): void {\n if (!this.affixStyle) {\n return;\n }\n this.renderer.setStyle(this.placeholderNode, 'cssText', '');\n this.placeholderStyle = undefined;\n const styleObj = {\n width: this.placeholderNode.offsetWidth,\n height: this.fixedElement().nativeElement.offsetHeight\n };\n this.setAffixStyle(e, {\n ...this.affixStyle,\n ...styleObj\n });\n this.setPlaceholderStyle(styleObj);\n }\n\n updatePosition(e: Event): void {\n if (!this.platform.isBrowser) {\n return;\n }\n\n const containerNode = this.container();\n let offsetTop = this.thyOffsetTop();\n const scrollTop = this.scrollService.getScroll(containerNode, true);\n const elementOffset = this.getOffset(this.placeholderNode, containerNode);\n const fixedNode = this.fixedElement().nativeElement;\n const elemSize = {\n width: fixedNode.offsetWidth,\n height: fixedNode.offsetHeight\n };\n const offsetMode = {\n top: false,\n bottom: false\n };\n // Default to `offsetTop=0`.\n const thyOffsetBottom = this.thyOffsetBottom();\n if (typeof offsetTop !== 'number' && typeof thyOffsetBottom !== 'number') {\n offsetMode.top = true;\n offsetTop = 0;\n } else {\n offsetMode.top = typeof offsetTop === 'number';\n offsetMode.bottom = typeof thyOffsetBottom === 'number';\n }\n const containerRect = dom.getContainerRect(containerNode as Window);\n const targetInnerHeight = (containerNode as Window).innerHeight || (containerNode as HTMLElement).clientHeight;\n if (scrollTop >= elementOffset.top - (offsetTop as number) && offsetMode.top) {\n const width = elementOffset.width;\n const top = containerRect.top + (offsetTop as number);\n this.setAffixStyle(e, {\n position: 'fixed',\n top,\n left: containerRect.left + elementOffset.left,\n width\n });\n this.setPlaceholderStyle({\n width,\n height: elemSize.height\n });\n } else if (\n scrollTop <= elementOffset.top + elemSize.height + (thyOffsetBottom as number) - targetInnerHeight &&\n offsetMode.bottom\n ) {\n const targetBottomOffset = containerNode === window ? 0 : window.innerHeight - containerRect.bottom!;\n const width = elementOffset.width;\n this.setAffixStyle(e, {\n position: 'fixed',\n bottom: targetBottomOffset + (thyOffsetBottom as number),\n left: containerRect.left + elementOffset.left,\n width\n });\n this.setPlaceholderStyle({\n width,\n height: elementOffset.height\n });\n } else {\n if (\n e.type === AffixRespondEvents.resize &&\n this.affixStyle &&\n this.affixStyle.position === 'fixed' &&\n this.placeholderNode.offsetWidth\n ) {\n this.setAffixStyle(e, {\n ...this.affixStyle,\n width: this.placeholderNode.offsetWidth\n });\n } else {\n this.setAffixStyle(e);\n }\n this.setPlaceholderStyle();\n }\n\n if (e.type === 'resize') {\n this.syncPlaceholderStyle(e);\n }\n }\n}\n","import { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyAffix } from './affix.component';\n\n@NgModule({\n exports: [ThyAffix],\n imports: [CommonModule, PlatformModule, ThyAffix]\n})\nexport class ThyAffixModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { computed, TemplateRef, input, contentChild, effect, ChangeDetectionStrategy, Component, HostBinding, Directive, NgModule } from '@angular/core';
2
+ import { computed, TemplateRef, input, contentChild, effect, Component, HostBinding, Directive, NgModule } from '@angular/core';
3
3
  import { NgTemplateOutlet, CommonModule } from '@angular/common';
4
4
  import { isString, coerceBooleanProperty } from 'ngx-tethys/util';
5
5
  import { useHostRenderer } from '@tethys/cdk/dom';
@@ -29,27 +29,32 @@ class ThyAlert {
29
29
  this.messageIsTemplate = computed(() => {
30
30
  const value = this.thyMessage();
31
31
  return value instanceof TemplateRef;
32
- }, ...(ngDevMode ? [{ debugName: "messageIsTemplate" }] : /* istanbul ignore next */ []));
32
+ }, /* @ts-ignore */
33
+ ...(ngDevMode ? [{ debugName: "messageIsTemplate" }] : /* istanbul ignore next */ []));
33
34
  /**
34
35
  * 指定警告提示的类型
35
36
  * @type success | warning | danger | info | primary | primary-weak | success-weak | warning-weak | danger-weak
36
37
  * @default info
37
38
  */
38
- this.thyType = input('info', ...(ngDevMode ? [{ debugName: "thyType" }] : /* istanbul ignore next */ []));
39
+ this.thyType = input('info', /* @ts-ignore */
40
+ ...(ngDevMode ? [{ debugName: "thyType" }] : /* istanbul ignore next */ []));
39
41
  /**
40
42
  * 指定警告提示的主题
41
43
  * @type fill | bordered | naked
42
44
  * @default fill
43
45
  */
44
- this.thyTheme = input('fill', ...(ngDevMode ? [{ debugName: "thyTheme" }] : /* istanbul ignore next */ []));
46
+ this.thyTheme = input('fill', /* @ts-ignore */
47
+ ...(ngDevMode ? [{ debugName: "thyTheme" }] : /* istanbul ignore next */ []));
45
48
  /**
46
49
  * 显示警告提示的内容
47
50
  */
48
- this.thyMessage = input(...(ngDevMode ? [undefined, { debugName: "thyMessage" }] : /* istanbul ignore next */ []));
51
+ this.thyMessage = input(/* @ts-ignore */
52
+ ...(ngDevMode ? [undefined, { debugName: "thyMessage" }] : /* istanbul ignore next */ []));
49
53
  /**
50
54
  * 显示自定义图标,可传 true/false 控制是否显示图标,或者传字符串去指定图标名称
51
55
  */
52
- this.thyIcon = input(...(ngDevMode ? [undefined, { debugName: "thyIcon" }] : /* istanbul ignore next */ []));
56
+ this.thyIcon = input(/* @ts-ignore */
57
+ ...(ngDevMode ? [undefined, { debugName: "thyIcon" }] : /* istanbul ignore next */ []));
53
58
  this.icon = computed(() => {
54
59
  const icon = this.thyIcon();
55
60
  if (icon) {
@@ -58,7 +63,8 @@ class ThyAlert {
58
63
  else {
59
64
  return icon === 'false' || icon === false ? '' : typeIconsMap[this.thyType()];
60
65
  }
61
- }, ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
66
+ }, /* @ts-ignore */
67
+ ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
62
68
  /**
63
69
  * 是否显示关闭警告框按钮,默认不显示
64
70
  * @default false
@@ -68,7 +74,8 @@ class ThyAlert {
68
74
  * 警告框自定义操作
69
75
  * @type TemplateRef
70
76
  */
71
- this.alertOperation = contentChild('operation', ...(ngDevMode ? [{ debugName: "alertOperation" }] : /* istanbul ignore next */ []));
77
+ this.alertOperation = contentChild('operation', /* @ts-ignore */
78
+ ...(ngDevMode ? [{ debugName: "alertOperation" }] : /* istanbul ignore next */ []));
72
79
  effect(() => {
73
80
  this.updateClass();
74
81
  });
@@ -86,12 +93,12 @@ class ThyAlert {
86
93
  }
87
94
  this.hostRenderer.updateClass([`thy-alert-${theme}`, `thy-alert-${theme}-${type}`]);
88
95
  }
89
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyAlert, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
90
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: ThyAlert, isStandalone: true, selector: "thy-alert", inputs: { thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thyTheme: { classPropertyName: "thyTheme", publicName: "thyTheme", isSignal: true, isRequired: false, transformFunction: null }, thyMessage: { classPropertyName: "thyMessage", publicName: "thyMessage", isSignal: true, isRequired: false, transformFunction: null }, thyIcon: { classPropertyName: "thyIcon", publicName: "thyIcon", isSignal: true, isRequired: false, transformFunction: null }, thyCloseable: { classPropertyName: "thyCloseable", publicName: "thyCloseable", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-alert-hidden": "hidden" }, classAttribute: "thy-alert" }, queries: [{ propertyName: "alertOperation", first: true, predicate: ["operation"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"thy-alert-content\">\n @if (icon()) {\n <thy-icon class=\"thy-alert-icon\" [thyIconName]=\"icon()\"></thy-icon>\n }\n @if (thyTheme() === 'naked') {\n <span class=\"thy-alert-tips\">Tips\uFF1A </span>\n }\n @if (messageIsTemplate()) {\n <ng-template *ngTemplateOutlet=\"thyMessage()\"></ng-template>\n } @else if (thyMessage()) {\n <span>{{ thyMessage() }}</span>\n }\n @if (alertOperation()) {\n <div class=\"thy-alert-operation\">\n <ng-container [ngTemplateOutlet]=\"alertOperation()\"></ng-container>\n </div>\n }\n</div>\n@if (thyCloseable()) {\n <a href=\"javascript:;\" class=\"thy-alert-close\" (click)=\"closeAlert()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
96
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyAlert, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
97
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.2", type: ThyAlert, isStandalone: true, selector: "thy-alert", inputs: { thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thyTheme: { classPropertyName: "thyTheme", publicName: "thyTheme", isSignal: true, isRequired: false, transformFunction: null }, thyMessage: { classPropertyName: "thyMessage", publicName: "thyMessage", isSignal: true, isRequired: false, transformFunction: null }, thyIcon: { classPropertyName: "thyIcon", publicName: "thyIcon", isSignal: true, isRequired: false, transformFunction: null }, thyCloseable: { classPropertyName: "thyCloseable", publicName: "thyCloseable", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-alert-hidden": "hidden" }, classAttribute: "thy-alert" }, queries: [{ propertyName: "alertOperation", first: true, predicate: ["operation"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"thy-alert-content\">\n @if (icon()) {\n <thy-icon class=\"thy-alert-icon\" [thyIconName]=\"icon()\"></thy-icon>\n }\n @if (thyTheme() === 'naked') {\n <span class=\"thy-alert-tips\">Tips\uFF1A </span>\n }\n @if (messageIsTemplate()) {\n <ng-template *ngTemplateOutlet=\"thyMessage()\"></ng-template>\n } @else if (thyMessage()) {\n <span>{{ thyMessage() }}</span>\n }\n @if (alertOperation()) {\n <div class=\"thy-alert-operation\">\n <ng-container [ngTemplateOutlet]=\"alertOperation()\"></ng-container>\n </div>\n }\n</div>\n@if (thyCloseable()) {\n <a href=\"javascript:;\" class=\"thy-alert-close\" (click)=\"closeAlert()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
91
98
  }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyAlert, decorators: [{
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyAlert, decorators: [{
93
100
  type: Component,
94
- args: [{ selector: 'thy-alert', changeDetection: ChangeDetectionStrategy.OnPush, host: {
101
+ args: [{ selector: 'thy-alert', host: {
95
102
  class: 'thy-alert',
96
103
  '[class.thy-alert-hidden]': 'hidden'
97
104
  }, imports: [ThyIcon, NgTemplateOutlet], template: "<div class=\"thy-alert-content\">\n @if (icon()) {\n <thy-icon class=\"thy-alert-icon\" [thyIconName]=\"icon()\"></thy-icon>\n }\n @if (thyTheme() === 'naked') {\n <span class=\"thy-alert-tips\">Tips\uFF1A </span>\n }\n @if (messageIsTemplate()) {\n <ng-template *ngTemplateOutlet=\"thyMessage()\"></ng-template>\n } @else if (thyMessage()) {\n <span>{{ thyMessage() }}</span>\n }\n @if (alertOperation()) {\n <div class=\"thy-alert-operation\">\n <ng-container [ngTemplateOutlet]=\"alertOperation()\"></ng-container>\n </div>\n }\n</div>\n@if (thyCloseable()) {\n <a href=\"javascript:;\" class=\"thy-alert-close\" (click)=\"closeAlert()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n}\n" }]
@@ -106,10 +113,10 @@ class ThyAlertActionItemDirective {
106
113
  constructor() {
107
114
  this.class = true;
108
115
  }
109
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyAlertActionItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
110
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: ThyAlertActionItemDirective, isStandalone: true, selector: "[thyAlertActionItem]", host: { properties: { "class.thy-alert-action": "this.class" } }, ngImport: i0 }); }
116
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyAlertActionItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
117
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: ThyAlertActionItemDirective, isStandalone: true, selector: "[thyAlertActionItem]", host: { properties: { "class.thy-alert-action": "this.class" } }, ngImport: i0 }); }
111
118
  }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyAlertActionItemDirective, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyAlertActionItemDirective, decorators: [{
113
120
  type: Directive,
114
121
  args: [{
115
122
  selector: '[thyAlertActionItem]'
@@ -120,11 +127,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
120
127
  }] } });
121
128
 
122
129
  class ThyAlertModule {
123
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
124
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: ThyAlertModule, imports: [CommonModule, ThyIconModule, ThyAlert, ThyAlertActionItemDirective], exports: [ThyAlert, ThyAlertActionItemDirective] }); }
125
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyAlertModule, imports: [CommonModule, ThyIconModule, ThyAlert] }); }
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
131
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.2", ngImport: i0, type: ThyAlertModule, imports: [CommonModule, ThyIconModule, ThyAlert, ThyAlertActionItemDirective], exports: [ThyAlert, ThyAlertActionItemDirective] }); }
132
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyAlertModule, imports: [CommonModule, ThyIconModule, ThyAlert] }); }
126
133
  }
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ThyAlertModule, decorators: [{
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ThyAlertModule, decorators: [{
128
135
  type: NgModule,
129
136
  args: [{
130
137
  imports: [CommonModule, ThyIconModule, ThyAlert, ThyAlertActionItemDirective],