ngx-tethys 22.0.2 → 22.0.3

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 (181) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/button/styles/button-group.scss +25 -18
  3. package/button/styles/button.scss +3 -1
  4. package/button/styles/mixin.scss +7 -2
  5. package/button/styles/theme.scss +3 -1
  6. package/cascader/styles/cascader.scss +5 -0
  7. package/date-picker/styles/index.scss +5 -0
  8. package/date-picker/styles/picker.scss +5 -0
  9. package/fesm2022/ngx-tethys-action.mjs +13 -4
  10. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  11. package/fesm2022/ngx-tethys-alert.mjs +2 -2
  12. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  13. package/fesm2022/ngx-tethys-arrow-switcher.mjs +17 -6
  14. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  15. package/fesm2022/ngx-tethys-autocomplete.mjs +11 -3
  16. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  17. package/fesm2022/ngx-tethys-badge.mjs +17 -5
  18. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  19. package/fesm2022/ngx-tethys-breadcrumb.mjs +1 -1
  20. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  21. package/fesm2022/ngx-tethys-button.mjs +39 -21
  22. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  23. package/fesm2022/ngx-tethys-card.mjs +1 -3
  24. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  25. package/fesm2022/ngx-tethys-cascader.mjs +36 -28
  26. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  27. package/fesm2022/ngx-tethys-collapse.mjs +2 -2
  28. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  29. package/fesm2022/ngx-tethys-color-picker.mjs +1 -1
  30. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  31. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  32. package/fesm2022/ngx-tethys-date-picker.mjs +30 -18
  33. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  34. package/fesm2022/ngx-tethys-date-range.mjs +2 -2
  35. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  36. package/fesm2022/ngx-tethys-dialog.mjs +193 -195
  37. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  38. package/fesm2022/ngx-tethys-divider.mjs +18 -7
  39. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  40. package/fesm2022/ngx-tethys-dropdown.mjs +16 -5
  41. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  42. package/fesm2022/ngx-tethys-form.mjs +447 -101
  43. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  44. package/fesm2022/ngx-tethys-image.mjs +1 -1
  45. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  46. package/fesm2022/ngx-tethys-input-number.mjs +10 -4
  47. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  48. package/fesm2022/ngx-tethys-input.mjs +54 -13
  49. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  50. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  51. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  52. package/fesm2022/ngx-tethys-menu.mjs +36 -6
  53. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  54. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  55. package/fesm2022/ngx-tethys-native-table.mjs +26 -11
  56. package/fesm2022/ngx-tethys-native-table.mjs.map +1 -1
  57. package/fesm2022/ngx-tethys-nav.mjs +4 -2
  58. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  59. package/fesm2022/ngx-tethys-notify.mjs +1 -1
  60. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  61. package/fesm2022/ngx-tethys-pagination.mjs +1 -1
  62. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  63. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  64. package/fesm2022/ngx-tethys-progress.mjs +81 -55
  65. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  66. package/fesm2022/ngx-tethys-property-operation.mjs +32 -24
  67. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  68. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  69. package/fesm2022/ngx-tethys-radio.mjs +1 -0
  70. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  71. package/fesm2022/ngx-tethys-segment.mjs +0 -1
  72. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  73. package/fesm2022/ngx-tethys-select.mjs +27 -9
  74. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  75. package/fesm2022/ngx-tethys-shared.mjs +16 -7
  76. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  77. package/fesm2022/ngx-tethys-slide.mjs +1 -1
  78. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  79. package/fesm2022/ngx-tethys-slider.mjs +38 -13
  80. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  82. package/fesm2022/ngx-tethys-statistic.mjs +20 -10
  83. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  84. package/fesm2022/ngx-tethys-stepper.mjs +1 -1
  85. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  86. package/fesm2022/ngx-tethys-strength.mjs +9 -1
  87. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  88. package/fesm2022/ngx-tethys-switch.mjs +20 -11
  89. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  90. package/fesm2022/ngx-tethys-table.mjs +28 -17
  91. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  92. package/fesm2022/ngx-tethys-tabs.mjs +2 -2
  93. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  94. package/fesm2022/ngx-tethys-time-picker.mjs +10 -4
  95. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  96. package/fesm2022/ngx-tethys-timeline.mjs +2 -8
  97. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  98. package/fesm2022/ngx-tethys-tree-select.mjs +11 -6
  99. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  100. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  101. package/fesm2022/ngx-tethys-typography.mjs +0 -1
  102. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  103. package/fesm2022/ngx-tethys.mjs +1 -1
  104. package/fesm2022/ngx-tethys.mjs.map +1 -1
  105. package/form/styles/forms.scss +1 -0
  106. package/form/styles/mixin.scss +37 -0
  107. package/form/styles/theme.scss +1 -0
  108. package/input/styles/input.scss +28 -19
  109. package/input-number/styles/input-number.scss +22 -3
  110. package/menu/examples/variant/variant.component.scss +21 -0
  111. package/package.json +1 -1
  112. package/schematics/ng-update/update-22/badge-dot-hollow-migration.spec.js +4 -4
  113. package/schematics/ng-update/update-22/button-appearance-migration.js +2 -0
  114. package/schematics/ng-update/update-22/button-appearance-migration.spec.js +0 -4
  115. package/schematics/ng-update/update-22/button-group-appearance-migration.d.ts +6 -0
  116. package/schematics/ng-update/update-22/button-group-appearance-migration.js +157 -0
  117. package/schematics/ng-update/update-22/button-group-appearance-migration.spec.d.ts +1 -0
  118. package/schematics/ng-update/update-22/button-group-appearance-migration.spec.js +56 -0
  119. package/schematics/ng-update/update-22/class-name-migration.spec.js +135 -0
  120. package/schematics/ng-update/update-22/divider-deeper-migration.js +12 -5
  121. package/schematics/ng-update/update-22/divider-deeper-migration.spec.js +9 -1
  122. package/schematics/ng-update/update-22/index.js +9 -1
  123. package/schematics/ng-update/update-22/index.spec.js +581 -3
  124. package/schematics/ng-update/update-22/input-search-appearance-migration.d.ts +6 -0
  125. package/schematics/ng-update/update-22/input-search-appearance-migration.js +94 -0
  126. package/schematics/ng-update/update-22/input-search-appearance-migration.spec.d.ts +1 -0
  127. package/schematics/ng-update/update-22/input-search-appearance-migration.spec.js +41 -0
  128. package/schematics/ng-update/update-22/menu-theme-migration.d.ts +14 -0
  129. package/schematics/ng-update/update-22/menu-theme-migration.js +108 -0
  130. package/schematics/ng-update/update-22/menu-theme-migration.spec.d.ts +1 -0
  131. package/schematics/ng-update/update-22/menu-theme-migration.spec.js +42 -0
  132. package/schematics/ng-update/update-22/select-borderless-migration.d.ts +6 -0
  133. package/schematics/ng-update/update-22/select-borderless-migration.js +111 -0
  134. package/schematics/ng-update/update-22/select-borderless-migration.spec.d.ts +1 -0
  135. package/schematics/ng-update/update-22/select-borderless-migration.spec.js +49 -0
  136. package/schematics/ng-update/update-22/update-data.js +102 -1
  137. package/schematics/version.d.ts +1 -1
  138. package/schematics/version.js +1 -1
  139. package/select/styles/custom-select.scss +5 -0
  140. package/select/styles/theme.scss +10 -0
  141. package/shared/select/select-control/select-control.scss +4 -3
  142. package/time-picker/styles/time-picker.scss +11 -2
  143. package/types/ngx-tethys-action.d.ts +14 -5
  144. package/types/ngx-tethys-alert.d.ts +2 -2
  145. package/types/ngx-tethys-arrow-switcher.d.ts +16 -5
  146. package/types/ngx-tethys-autocomplete.d.ts +8 -2
  147. package/types/ngx-tethys-badge.d.ts +14 -4
  148. package/types/ngx-tethys-button.d.ts +28 -9
  149. package/types/ngx-tethys-card.d.ts +3 -6
  150. package/types/ngx-tethys-cascader.d.ts +9 -3
  151. package/types/ngx-tethys-collapse.d.ts +3 -3
  152. package/types/ngx-tethys-core.d.ts +2 -1
  153. package/types/ngx-tethys-date-picker.d.ts +15 -3
  154. package/types/ngx-tethys-dialog.d.ts +1 -3
  155. package/types/ngx-tethys-divider.d.ts +20 -9
  156. package/types/ngx-tethys-dropdown.d.ts +16 -5
  157. package/types/ngx-tethys-form.d.ts +198 -55
  158. package/types/ngx-tethys-input-number.d.ts +8 -2
  159. package/types/ngx-tethys-input.d.ts +39 -8
  160. package/types/ngx-tethys-menu.d.ts +16 -4
  161. package/types/ngx-tethys-native-table.d.ts +21 -6
  162. package/types/ngx-tethys-nav.d.ts +2 -0
  163. package/types/ngx-tethys-progress.d.ts +42 -18
  164. package/types/ngx-tethys-property-operation.d.ts +6 -0
  165. package/types/ngx-tethys-segment.d.ts +0 -1
  166. package/types/ngx-tethys-select.d.ts +23 -5
  167. package/types/ngx-tethys-shared.d.ts +12 -3
  168. package/types/ngx-tethys-slider.d.ts +22 -8
  169. package/types/ngx-tethys-space.d.ts +3 -1
  170. package/types/ngx-tethys-statistic.d.ts +23 -9
  171. package/types/ngx-tethys-stepper.d.ts +1 -1
  172. package/types/ngx-tethys-strength.d.ts +5 -0
  173. package/types/ngx-tethys-switch.d.ts +15 -4
  174. package/types/ngx-tethys-table.d.ts +24 -8
  175. package/types/ngx-tethys-tabs.d.ts +3 -3
  176. package/types/ngx-tethys-time-picker.d.ts +8 -2
  177. package/types/ngx-tethys-timeline.d.ts +13 -14
  178. package/types/ngx-tethys-tree-select.d.ts +8 -3
  179. package/types/ngx-tethys-typography.d.ts +0 -1
  180. /package/action/examples/{type/type.component.scss → color/color.component.scss} +0 -0
  181. /package/badge/examples/{type/type.component.scss → color/color.component.scss} +0 -0
@@ -1,17 +1,13 @@
1
1
  import { NgClass, CommonModule } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { input, effect, ViewEncapsulation, ChangeDetectionStrategy, Component, computed, inject, ElementRef, Renderer2, DestroyRef, afterNextRender, NgModule } from '@angular/core';
3
+ import { InjectionToken, input, effect, ViewEncapsulation, ChangeDetectionStrategy, Component, computed, inject, ElementRef, Renderer2, DestroyRef, afterNextRender, NgModule } from '@angular/core';
4
4
  import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
5
5
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
6
6
  import { useHostRenderer } from '@tethys/cdk/dom';
7
7
  import { coerceBooleanProperty as coerceBooleanProperty$1, assertIconOnly } from 'ngx-tethys/util';
8
8
 
9
- const buttonGroupSizeMap = {
10
- sm: ['btn-group-sm'],
11
- md: ['btn-group-md'],
12
- lg: ['btn-group-lg'],
13
- xs: ['btn-group-xs']
14
- };
9
+ const THY_BUTTON_GROUP = new InjectionToken('THY_BUTTON_GROUP');
10
+
15
11
  /**
16
12
  * 按钮分组组件
17
13
  * @name thy-button-group
@@ -27,14 +23,22 @@ class ThyButtonGroup {
27
23
  */
28
24
  this.thySize = input('md', { ...(ngDevMode ? { debugName: "thySize" } : /* istanbul ignore next */ {}), transform: value => value ?? 'md' });
29
25
  /**
30
- * 类型
26
+ * 类型(已废弃,将在 v23 彻底删除),请使用 thyAppearance
27
+ * @deprecated use thyAppearance, will be removed in v23
31
28
  * @type outline-default | outline-primary
32
29
  * @default outline-default
33
30
  */
34
31
  this.thyType = input(/* @ts-ignore */
35
32
  ...(ngDevMode ? [undefined, { debugName: "thyType" }] : /* istanbul ignore next */ []));
36
33
  /**
37
- * 是否需要最小宽度,默认按钮最小宽度为80px
34
+ * 按钮组外观
35
+ * @type outline | fill
36
+ * @default outline
37
+ */
38
+ this.thyAppearance = input('outline', /* @ts-ignore */
39
+ ...(ngDevMode ? [{ debugName: "thyAppearance" }] : /* istanbul ignore next */ []));
40
+ /**
41
+ * 是否需要最小宽度,默认按钮最小宽度
38
42
  * @default false
39
43
  */
40
44
  this.thyClearMinWidth = input(false, { ...(ngDevMode ? { debugName: "thyClearMinWidth" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
@@ -44,18 +48,22 @@ class ThyButtonGroup {
44
48
  }
45
49
  setClasses() {
46
50
  const type = this.thyType();
47
- const size = this.thySize();
48
- let classNames = [];
51
+ const classNames = [];
49
52
  if (type) {
50
53
  classNames.push(`btn-group-${type}`);
51
54
  }
52
- if (size && buttonGroupSizeMap[size]) {
53
- classNames = classNames.concat(...buttonGroupSizeMap[size]);
55
+ if (this.thyAppearance() === 'fill') {
56
+ classNames.push('btn-group-fill');
54
57
  }
55
58
  this.hostRenderer.updateClass(classNames);
56
59
  }
57
60
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: ThyButtonGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: ThyButtonGroup, isStandalone: true, selector: "thy-button-group", inputs: { thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thyClearMinWidth: { classPropertyName: "thyClearMinWidth", publicName: "thyClearMinWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.btn-group-clear-min-width": "thyClearMinWidth()" }, classAttribute: "btn-group" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None }); }
61
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: ThyButtonGroup, isStandalone: true, selector: "thy-button-group", inputs: { thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thyAppearance: { classPropertyName: "thyAppearance", publicName: "thyAppearance", isSignal: true, isRequired: false, transformFunction: null }, thyClearMinWidth: { classPropertyName: "thyClearMinWidth", publicName: "thyClearMinWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.btn-group-clear-min-width": "thyClearMinWidth()" }, classAttribute: "btn-group" }, providers: [
62
+ {
63
+ provide: THY_BUTTON_GROUP,
64
+ useExisting: ThyButtonGroup
65
+ }
66
+ ], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None }); }
59
67
  }
60
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: ThyButtonGroup, decorators: [{
61
69
  type: Component,
@@ -66,10 +74,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
66
74
  class: 'btn-group',
67
75
  '[class.btn-group-clear-min-width]': 'thyClearMinWidth()'
68
76
  },
77
+ providers: [
78
+ {
79
+ provide: THY_BUTTON_GROUP,
80
+ useExisting: ThyButtonGroup
81
+ }
82
+ ],
69
83
  changeDetection: ChangeDetectionStrategy.Eager,
70
84
  encapsulation: ViewEncapsulation.None
71
85
  }]
72
- }], ctorParameters: () => [], propDecorators: { thySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySize", required: false }] }], thyType: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyType", required: false }] }], thyClearMinWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyClearMinWidth", required: false }] }] } });
86
+ }], ctorParameters: () => [], propDecorators: { thySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySize", required: false }] }], thyType: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyType", required: false }] }], thyAppearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyAppearance", required: false }] }], thyClearMinWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyClearMinWidth", required: false }] }] } });
73
87
 
74
88
  const sizeClassesMap = {
75
89
  lg: ['btn-icon-lg'],
@@ -223,9 +237,8 @@ class ThyButton {
223
237
  if (!type) {
224
238
  return;
225
239
  }
226
- const appearance = this.thyAppearance() || 'fill';
227
- const classNames = [...this.buildAppearanceClasses(appearance, type)];
228
- const size = this.thySize();
240
+ const classNames = [...this.buildAppearanceClasses(this.appearance(), type)];
241
+ const size = this.size();
229
242
  if (size) {
230
243
  classNames.push(`btn-${size}`);
231
244
  }
@@ -262,8 +275,8 @@ class ThyButton {
262
275
  this.thyColor = input(/* @ts-ignore */
263
276
  ...(ngDevMode ? [undefined, { debugName: "thyColor" }] : /* istanbul ignore next */ []));
264
277
  /**
265
- * 按钮颜色(已废弃),请使用 thyColor
266
- * @deprecated please use thyColor
278
+ * 按钮颜色(已废弃,将在 v23 彻底移除),请使用 thyColor
279
+ * @deprecated please use thyColor, will be removed in v23
267
280
  * @type default | primary | info | warning | danger | success
268
281
  * @default default
269
282
  */
@@ -334,6 +347,11 @@ class ThyButton {
334
347
  return this.thyButton() || this.thyColor() || this.thyType() || 'default';
335
348
  }, /* @ts-ignore */
336
349
  ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
350
+ this.parent = inject(THY_BUTTON_GROUP, { optional: true });
351
+ this.appearance = computed(() => this.parent?.thyAppearance() || this.thyAppearance() || 'fill', /* @ts-ignore */
352
+ ...(ngDevMode ? [{ debugName: "appearance" }] : /* istanbul ignore next */ []));
353
+ this.size = computed(() => this.parent?.thySize() || this.thySize() || 'md', /* @ts-ignore */
354
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
337
355
  this.preventClickWhenUnavailable();
338
356
  effect(() => {
339
357
  this.updateClasses();
@@ -402,5 +420,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
402
420
  * Generated bundle index. Do not edit.
403
421
  */
404
422
 
405
- export { ThyButton, ThyButtonGroup, ThyButtonIcon, ThyButtonModule };
423
+ export { THY_BUTTON_GROUP, ThyButton, ThyButtonGroup, ThyButtonIcon, ThyButtonModule };
406
424
  //# sourceMappingURL=ngx-tethys-button.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-button.mjs","sources":["../../../src/button/button-group.component.ts","../../../src/button/button-icon.component.ts","../../../src/button/button-icon.component.html","../../../src/button/button.component.ts","../../../src/button/button.component.html","../../../src/button/button.module.ts","../../../src/button/ngx-tethys-button.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { Component, effect, HostBinding, input, Input, OnInit, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\nimport { ThyButtonSize } from './button.component';\n\nexport type ButtonGroupType = 'outline-primary' | 'outline-default';\n\nconst buttonGroupSizeMap = {\n sm: ['btn-group-sm'],\n md: ['btn-group-md'],\n lg: ['btn-group-lg'],\n xs: ['btn-group-xs']\n};\n\n/**\n * 按钮分组组件\n * @name thy-button-group\n * @order 30\n */\n@Component({\n selector: 'thy-button-group',\n template: '<ng-content></ng-content>',\n host: {\n class: 'btn-group',\n '[class.btn-group-clear-min-width]': 'thyClearMinWidth()'\n },\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\n})\nexport class ThyButtonGroup {\n private hostRenderer = useHostRenderer();\n\n /**\n * 大小\n * @type xs | sm | md | lg\n * @default md\n */\n readonly thySize = input<ThyButtonSize, ThyButtonSize | null | undefined>('md', {\n transform: value => value ?? 'md'\n });\n\n /**\n * 类型\n * @type outline-default | outline-primary\n * @default outline-default\n */\n readonly thyType = input<ButtonGroupType>();\n\n /**\n * 是否需要最小宽度,默认按钮最小宽度为80px\n * @default false\n */\n readonly thyClearMinWidth = input(false, { transform: coerceBooleanProperty });\n\n constructor() {\n effect(() => {\n this.setClasses();\n });\n }\n\n private setClasses() {\n const type = this.thyType();\n const size = this.thySize();\n let classNames: string[] = [];\n if (type) {\n classNames.push(`btn-group-${type}`);\n }\n if (size && buttonGroupSizeMap[size]) {\n classNames = classNames.concat(...buttonGroupSizeMap[size]);\n }\n this.hostRenderer.updateClass(classNames);\n }\n}\n","import { NgClass } from '@angular/common';\nimport { Component, ViewEncapsulation, computed, effect, input } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\nimport { ThyButtonSize } from './button.component';\n\nexport type ThyButtonIconShape = '' | 'circle-dashed' | 'circle-solid' | 'circle-thick-dashed' | 'circle-thick-solid' | 'self-icon';\n\nconst sizeClassesMap: Record<string, string[]> = {\n lg: ['btn-icon-lg'],\n md: ['btn-icon-md'],\n sm: ['btn-icon-sm'],\n xs: ['btn-icon-xs']\n};\n\nconst shapeClassesMap = {\n 'circle-dashed': ['btn-icon-circle', 'circle-dashed'],\n 'circle-solid': ['btn-icon-circle', 'circle-solid'],\n 'circle-thick-dashed': ['btn-icon-circle', 'circle-dashed', 'border-thick'],\n 'circle-thick-solid': ['btn-icon-circle', 'circle-solid', 'border-thick'],\n 'self-icon': ['btn-icon-self-circle']\n};\n\nconst themeClassesMap: any = {\n 'danger-weak': ['btn-icon-danger-weak']\n};\n\n/**\n * 操作按钮图标,支持`thy-button-icon`组件和`thyButtonIcon`指令两种形式\n * @name thy-button-icon,[thy-button-icon],[thyButtonIcon]\n * @order 20\n */\n@Component({\n selector: 'thy-button-icon,[thy-button-icon],[thyButtonIcon]',\n templateUrl: './button-icon.component.html',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'btn btn-icon',\n '[class.btn-icon-light]': 'thyLight()',\n '[class.btn-icon-active]': 'thyActive()'\n },\n imports: [ThyIcon, NgClass]\n})\nexport class ThyButtonIcon {\n /**\n * 大小\n * @type xs | sm | md | lg\n * @default md\n */\n readonly thySize = input<ThyButtonSize, ThyButtonSize | null | undefined>('md', {\n transform: value => value ?? 'md'\n });\n\n /**\n * 图标, 和`thyButtonIcon`相同,当使用`thy-button-icon`时,只能使用 thyIcon 设置图标\n */\n readonly thyIcon = input<string>();\n\n /**\n * 图标按钮的图标\n */\n readonly thyButtonIcon = input<string>();\n\n /**\n * 展示的形状,默认只显示字体图标图标,circle-dashed, circle-solid 展示成虚线,实线边框圆形图标, circle-thick-dashed, circle-thick-solid 边框加粗\n */\n readonly thyShape = input<ThyButtonIconShape>();\n\n /**\n * 亮色,颜色更浅,适合左侧导航顶部的按钮\n * @default false\n */\n readonly thyLight = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置为选中状态\n * @default false\n */\n readonly thyActive = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 按钮展示类型,默认图标移上去显示主色, danger-weak 鼠标移上去显示 danger 红色\n */\n readonly thyTheme = input<string>();\n\n readonly thyColor = input<string>();\n\n constructor() {\n effect(() => {\n this.setClasses();\n });\n }\n\n private hostRenderer = useHostRenderer();\n\n private icon = computed(() => {\n return this.thyButtonIcon() || this.thyIcon();\n });\n\n private isWtfIcon = computed(() => {\n const icon = this.icon();\n return icon && icon.includes('wtf');\n });\n\n protected svgIconName = computed(() => {\n if (!this.isWtfIcon()) {\n return this.icon();\n }\n return null;\n });\n\n protected iconClasses = computed<string[] | null>(() => {\n const icon = this.icon();\n if (this.isWtfIcon()) {\n const classes = icon!.split(' ');\n if (classes.length === 1) {\n classes.unshift('wtf');\n }\n return classes;\n }\n return null;\n });\n\n private setClasses() {\n const size = this.thySize();\n const shape = this.thyShape();\n const theme = this.thyTheme();\n const classes = size && sizeClassesMap[size] ? [...sizeClassesMap[size]] : [];\n if (shape && shapeClassesMap[shape]) {\n shapeClassesMap[shape].forEach((className: string) => {\n classes.push(className);\n });\n }\n if (theme && themeClassesMap[theme]) {\n themeClassesMap[theme].forEach((className: string) => {\n classes.push(className);\n });\n }\n this.hostRenderer.updateClass(classes);\n }\n}\n","@if (svgIconName()) {\n <thy-icon [thyIconName]=\"svgIconName()\" [style.color]=\"thyColor()\" [style.borderColor]=\"thyColor()\"></thy-icon>\n} @else {\n @if (iconClasses()) {\n <i [ngClass]=\"iconClasses()\" [style.color]=\"thyColor()\" [style.borderColor]=\"thyColor()\"></i>\n }\n}\n<ng-content></ng-content>\n","import {\n afterNextRender,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { NgClass } from '@angular/common';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { assertIconOnly, coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\nexport type ThyButtonSize = 'xs' | 'sm' | 'md' | 'lg';\n\nexport type ThyButtonAppearance = 'fill' | 'outline' | 'link';\n\nexport type ThyButtonColor = 'default' | 'primary' | 'info' | 'warning' | 'danger' | 'success';\n\n/** @deprecated use ThyButtonColor */\nexport type ThyButtonType = ThyButtonColor;\n\nconst iconOnlyClass = 'thy-btn-icon-only';\n\n/**\n * 操作按钮,支持组件`thy-button`和`thyButton`指令两种形式\n * @name thy-button,[thy-button],[thyButton]\n * @order 10\n */\n@Component({\n selector: 'thy-button,[thy-button],[thyButton]',\n templateUrl: './button.component.html',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'thy-btn btn',\n '[class.btn-block]': 'thyBlock()',\n '[class.disabled]': 'thyDisabled()',\n '[attr.aria-disabled]': 'thyDisabled() || null'\n },\n imports: [ThyIcon, NgClass]\n})\nexport class ThyButton {\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n private destroyRef = inject(DestroyRef);\n\n private _originalText?: string;\n\n private get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 按钮外观\n * @type fill | outline | link\n * @default fill\n */\n readonly thyAppearance = input<ThyButtonAppearance>('fill');\n\n /**\n * 按钮颜色\n * @type default | primary | info | warning | danger | success\n * @default default\n */\n readonly thyButton = input<ThyButtonColor>();\n\n /**\n * 按钮颜色,一般使用`thyButton`指令写法;通过`thy-button`组件使用时,使用该参数控制颜色\n * @type default | primary | info | warning | danger | success\n * @default default\n */\n readonly thyColor = input<ThyButtonColor>();\n\n /**\n * 按钮颜色(已废弃),请使用 thyColor\n * @deprecated please use thyColor\n * @type default | primary | info | warning | danger | success\n * @default default\n */\n readonly thyType = input<ThyButtonType>();\n\n /**\n * 加载状态\n * @default false\n */\n readonly thyLoading = input<boolean, ThyBooleanInput>(false, {\n transform: value => {\n if (!this.thyLoading() && value) {\n const textElement = this.nativeElement?.querySelector('span');\n this._originalText = textElement ? textElement.innerText : '';\n }\n return coerceBooleanProperty(value);\n }\n });\n\n /**\n * 加载状态时显示的文案\n */\n readonly thyLoadingText = input<string>();\n\n /**\n * 按钮大小\n * @type xs | sm | md | lg\n * @default md\n */\n readonly thySize = input<ThyButtonSize, ThyButtonSize | null | undefined>('md', {\n transform: value => value ?? 'md'\n });\n\n /**\n * 按钮中显示的图标,支持SVG图标名称,比如`angle-left`,也支持传之前的 wtf 字体,比如: wtf-plus\n */\n readonly thyIcon = input<string>();\n\n /**\n * 按钮整块展示\n * @default false\n */\n readonly thyBlock = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否禁用。用于 `thy-button` 组件;指令写法请使用原生 `disabled`\n * @default false\n */\n readonly thyDisabled = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n private isWtfIcon = computed(() => {\n const icon = this.thyIcon();\n return icon && icon.includes('wtf');\n });\n\n protected svgIconName = computed(() => {\n if (!this.isWtfIcon()) {\n return this.thyIcon();\n }\n return null;\n });\n\n protected iconClass = computed<string[] | null>(() => {\n const icon = this.thyIcon();\n if (this.isWtfIcon()) {\n const classes = icon!.split(' ');\n if (classes.length === 1) {\n classes.unshift('wtf');\n }\n return classes;\n }\n return null;\n });\n\n private readonly type = computed(() => {\n return this.thyButton() || this.thyColor() || this.thyType() || 'default';\n });\n\n private setButtonText() {\n const text = this.thyLoading() ? this.thyLoadingText() : this._originalText;\n const spanElement = this.nativeElement.querySelector('span');\n const textNode = spanElement?.firstChild;\n if (spanElement && textNode && text) {\n this.renderer.setValue(textNode, text);\n }\n }\n\n private buildAppearanceClasses(appearance: ThyButtonAppearance, type: string): string[] {\n if (appearance === 'fill') {\n return [`btn-${type}`];\n }\n return [`btn-${appearance}-${type}`];\n }\n\n private updateClasses() {\n const type = this.type();\n if (!type) {\n return;\n }\n\n const appearance = this.thyAppearance() || 'fill';\n const classNames: string[] = [...this.buildAppearanceClasses(appearance, type)];\n\n const size = this.thySize();\n if (size) {\n classNames.push(`btn-${size}`);\n }\n const loading = this.thyLoading();\n if (loading) {\n classNames.push('loading');\n }\n this.hostRenderer.updateClass(classNames);\n }\n\n constructor() {\n this.preventClickWhenUnavailable();\n\n effect(() => {\n this.updateClasses();\n });\n\n effect(() => {\n this.setButtonText();\n });\n\n afterNextRender(() => {\n if (assertIconOnly(this.nativeElement)) {\n this.hostRenderer.addClass(iconOnlyClass);\n } else {\n this.hostRenderer.removeClass(iconOnlyClass);\n }\n this.wrapSpanForText(this.nativeElement.childNodes);\n });\n }\n\n private preventClickWhenUnavailable(): void {\n const onClick = (event: Event) => {\n if (this.thyDisabled() || this.thyLoading()) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n this.nativeElement.addEventListener('click', onClick, true);\n this.destroyRef.onDestroy(() => this.nativeElement.removeEventListener('click', onClick, true));\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-btn-wrap-span');\n this.renderer.insertBefore(parent, span, node);\n this.renderer.appendChild(span, node);\n }\n });\n }\n}\n","@if (svgIconName()) {\n <thy-icon [thyIconName]=\"svgIconName()\"></thy-icon>\n} @else {\n @if (iconClass()) {\n <i [ngClass]=\"iconClass()\"></i>\n }\n}\n<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyButtonGroup } from './button-group.component';\nimport { ThyButtonIcon } from './button-icon.component';\nimport { ThyButton } from './button.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyButton, ThyButtonIcon, ThyButtonGroup],\n exports: [ThyButton, ThyButtonIcon, ThyButtonGroup]\n})\nexport class ThyButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["coerceBooleanProperty"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-button.mjs","sources":["../../../src/button/button.token.ts","../../../src/button/button-group.component.ts","../../../src/button/button-icon.component.ts","../../../src/button/button-icon.component.html","../../../src/button/button.component.ts","../../../src/button/button.component.html","../../../src/button/button.module.ts","../../../src/button/ngx-tethys-button.ts"],"sourcesContent":["import { InjectionToken, InputSignal, InputSignalWithTransform } from '@angular/core';\nimport type { ThyButtonSize } from './button.component';\n\nexport interface IThyButtonGroup {\n thySize: InputSignalWithTransform<ThyButtonSize, ThyButtonSize | null | undefined>;\n thyAppearance: InputSignal<'outline' | 'fill'>;\n}\n\nexport const THY_BUTTON_GROUP = new InjectionToken<IThyButtonGroup>('THY_BUTTON_GROUP');\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { Component, effect, input, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\nimport { ThyButtonSize } from './button.component';\nimport { IThyButtonGroup, THY_BUTTON_GROUP } from './button.token';\n\n/** @deprecated use ThyButtonGroupAppearance, will be removed in v23 */\nexport type ButtonGroupType = 'outline-primary' | 'outline-default';\n\nexport type ThyButtonGroupAppearance = 'outline' | 'fill';\n\n/**\n * 按钮分组组件\n * @name thy-button-group\n * @order 30\n */\n@Component({\n selector: 'thy-button-group',\n template: '<ng-content></ng-content>',\n host: {\n class: 'btn-group',\n '[class.btn-group-clear-min-width]': 'thyClearMinWidth()'\n },\n providers: [\n {\n provide: THY_BUTTON_GROUP,\n useExisting: ThyButtonGroup\n }\n ],\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\n})\nexport class ThyButtonGroup implements IThyButtonGroup {\n private hostRenderer = useHostRenderer();\n\n /**\n * 大小\n * @type xs | sm | md | lg\n * @default md\n */\n readonly thySize = input<ThyButtonSize, ThyButtonSize | null | undefined>('md', {\n transform: value => value ?? 'md'\n });\n\n /**\n * 类型(已废弃,将在 v23 彻底删除),请使用 thyAppearance\n * @deprecated use thyAppearance, will be removed in v23\n * @type outline-default | outline-primary\n * @default outline-default\n */\n readonly thyType = input<ButtonGroupType>();\n\n /**\n * 按钮组外观\n * @type outline | fill\n * @default outline\n */\n readonly thyAppearance = input<ThyButtonGroupAppearance>('outline');\n\n /**\n * 是否需要最小宽度,默认按钮最小宽度\n * @default false\n */\n readonly thyClearMinWidth = input(false, { transform: coerceBooleanProperty });\n\n constructor() {\n effect(() => {\n this.setClasses();\n });\n }\n\n private setClasses() {\n const type = this.thyType();\n const classNames: string[] = [];\n if (type) {\n classNames.push(`btn-group-${type}`);\n }\n if (this.thyAppearance() === 'fill') {\n classNames.push('btn-group-fill');\n }\n this.hostRenderer.updateClass(classNames);\n }\n}\n","import { NgClass } from '@angular/common';\nimport { Component, ViewEncapsulation, computed, effect, input } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\nimport { ThyButtonSize } from './button.component';\n\nexport type ThyButtonIconShape = '' | 'circle-dashed' | 'circle-solid' | 'circle-thick-dashed' | 'circle-thick-solid' | 'self-icon';\n\nconst sizeClassesMap: Record<string, string[]> = {\n lg: ['btn-icon-lg'],\n md: ['btn-icon-md'],\n sm: ['btn-icon-sm'],\n xs: ['btn-icon-xs']\n};\n\nconst shapeClassesMap = {\n 'circle-dashed': ['btn-icon-circle', 'circle-dashed'],\n 'circle-solid': ['btn-icon-circle', 'circle-solid'],\n 'circle-thick-dashed': ['btn-icon-circle', 'circle-dashed', 'border-thick'],\n 'circle-thick-solid': ['btn-icon-circle', 'circle-solid', 'border-thick'],\n 'self-icon': ['btn-icon-self-circle']\n};\n\nconst themeClassesMap: any = {\n 'danger-weak': ['btn-icon-danger-weak']\n};\n\n/**\n * 操作按钮图标,支持`thy-button-icon`组件和`thyButtonIcon`指令两种形式\n * @name thy-button-icon,[thy-button-icon],[thyButtonIcon]\n * @order 20\n */\n@Component({\n selector: 'thy-button-icon,[thy-button-icon],[thyButtonIcon]',\n templateUrl: './button-icon.component.html',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'btn btn-icon',\n '[class.btn-icon-light]': 'thyLight()',\n '[class.btn-icon-active]': 'thyActive()'\n },\n imports: [ThyIcon, NgClass]\n})\nexport class ThyButtonIcon {\n /**\n * 大小\n * @type xs | sm | md | lg\n * @default md\n */\n readonly thySize = input<ThyButtonSize, ThyButtonSize | null | undefined>('md', {\n transform: value => value ?? 'md'\n });\n\n /**\n * 图标, 和`thyButtonIcon`相同,当使用`thy-button-icon`时,只能使用 thyIcon 设置图标\n */\n readonly thyIcon = input<string>();\n\n /**\n * 图标按钮的图标\n */\n readonly thyButtonIcon = input<string>();\n\n /**\n * 展示的形状,默认只显示字体图标图标,circle-dashed, circle-solid 展示成虚线,实线边框圆形图标, circle-thick-dashed, circle-thick-solid 边框加粗\n */\n readonly thyShape = input<ThyButtonIconShape>();\n\n /**\n * 亮色,颜色更浅,适合左侧导航顶部的按钮\n * @default false\n */\n readonly thyLight = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置为选中状态\n * @default false\n */\n readonly thyActive = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 按钮展示类型,默认图标移上去显示主色, danger-weak 鼠标移上去显示 danger 红色\n */\n readonly thyTheme = input<string>();\n\n readonly thyColor = input<string>();\n\n constructor() {\n effect(() => {\n this.setClasses();\n });\n }\n\n private hostRenderer = useHostRenderer();\n\n private icon = computed(() => {\n return this.thyButtonIcon() || this.thyIcon();\n });\n\n private isWtfIcon = computed(() => {\n const icon = this.icon();\n return icon && icon.includes('wtf');\n });\n\n protected svgIconName = computed(() => {\n if (!this.isWtfIcon()) {\n return this.icon();\n }\n return null;\n });\n\n protected iconClasses = computed<string[] | null>(() => {\n const icon = this.icon();\n if (this.isWtfIcon()) {\n const classes = icon!.split(' ');\n if (classes.length === 1) {\n classes.unshift('wtf');\n }\n return classes;\n }\n return null;\n });\n\n private setClasses() {\n const size = this.thySize();\n const shape = this.thyShape();\n const theme = this.thyTheme();\n const classes = size && sizeClassesMap[size] ? [...sizeClassesMap[size]] : [];\n if (shape && shapeClassesMap[shape]) {\n shapeClassesMap[shape].forEach((className: string) => {\n classes.push(className);\n });\n }\n if (theme && themeClassesMap[theme]) {\n themeClassesMap[theme].forEach((className: string) => {\n classes.push(className);\n });\n }\n this.hostRenderer.updateClass(classes);\n }\n}\n","@if (svgIconName()) {\n <thy-icon [thyIconName]=\"svgIconName()\" [style.color]=\"thyColor()\" [style.borderColor]=\"thyColor()\"></thy-icon>\n} @else {\n @if (iconClasses()) {\n <i [ngClass]=\"iconClasses()\" [style.color]=\"thyColor()\" [style.borderColor]=\"thyColor()\"></i>\n }\n}\n<ng-content></ng-content>\n","import {\n afterNextRender,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { NgClass } from '@angular/common';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { assertIconOnly, coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\nimport { THY_BUTTON_GROUP } from './button.token';\n\nexport type ThyButtonSize = 'xs' | 'sm' | 'md' | 'lg';\n\nexport type ThyButtonAppearance = 'fill' | 'outline' | 'link';\n\nexport type ThyButtonColor = 'default' | 'primary' | 'info' | 'warning' | 'danger' | 'success';\n\n/** @deprecated use ThyButtonColor, will be removed in v23 */\nexport type ThyButtonType = ThyButtonColor;\n\nconst iconOnlyClass = 'thy-btn-icon-only';\n\n/**\n * 操作按钮,支持组件`thy-button`和`thyButton`指令两种形式\n * @name thy-button,[thy-button],[thyButton]\n * @order 10\n */\n@Component({\n selector: 'thy-button,[thy-button],[thyButton]',\n templateUrl: './button.component.html',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'thy-btn btn',\n '[class.btn-block]': 'thyBlock()',\n '[class.disabled]': 'thyDisabled()',\n '[attr.aria-disabled]': 'thyDisabled() || null'\n },\n imports: [ThyIcon, NgClass]\n})\nexport class ThyButton {\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\n private destroyRef = inject(DestroyRef);\n\n private _originalText?: string;\n\n private get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 按钮外观\n * @type fill | outline | link\n * @default fill\n */\n readonly thyAppearance = input<ThyButtonAppearance>('fill');\n\n /**\n * 按钮颜色\n * @type default | primary | info | warning | danger | success\n * @default default\n */\n readonly thyButton = input<ThyButtonColor>();\n\n /**\n * 按钮颜色,一般使用`thyButton`指令写法;通过`thy-button`组件使用时,使用该参数控制颜色\n * @type default | primary | info | warning | danger | success\n * @default default\n */\n readonly thyColor = input<ThyButtonColor>();\n\n /**\n * 按钮颜色(已废弃,将在 v23 彻底移除),请使用 thyColor\n * @deprecated please use thyColor, will be removed in v23\n * @type default | primary | info | warning | danger | success\n * @default default\n */\n readonly thyType = input<ThyButtonType>();\n\n /**\n * 加载状态\n * @default false\n */\n readonly thyLoading = input<boolean, ThyBooleanInput>(false, {\n transform: value => {\n if (!this.thyLoading() && value) {\n const textElement = this.nativeElement?.querySelector('span');\n this._originalText = textElement ? textElement.innerText : '';\n }\n return coerceBooleanProperty(value);\n }\n });\n\n /**\n * 加载状态时显示的文案\n */\n readonly thyLoadingText = input<string>();\n\n /**\n * 按钮大小\n * @type xs | sm | md | lg\n * @default md\n */\n readonly thySize = input<ThyButtonSize, ThyButtonSize | null | undefined>('md', {\n transform: value => value ?? 'md'\n });\n\n /**\n * 按钮中显示的图标,支持SVG图标名称,比如`angle-left`,也支持传之前的 wtf 字体,比如: wtf-plus\n */\n readonly thyIcon = input<string>();\n\n /**\n * 按钮整块展示\n * @default false\n */\n readonly thyBlock = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否禁用。用于 `thy-button` 组件;指令写法请使用原生 `disabled`\n * @default false\n */\n readonly thyDisabled = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n private isWtfIcon = computed(() => {\n const icon = this.thyIcon();\n return icon && icon.includes('wtf');\n });\n\n protected svgIconName = computed(() => {\n if (!this.isWtfIcon()) {\n return this.thyIcon();\n }\n return null;\n });\n\n protected iconClass = computed<string[] | null>(() => {\n const icon = this.thyIcon();\n if (this.isWtfIcon()) {\n const classes = icon!.split(' ');\n if (classes.length === 1) {\n classes.unshift('wtf');\n }\n return classes;\n }\n return null;\n });\n\n private readonly type = computed(() => {\n return this.thyButton() || this.thyColor() || this.thyType() || 'default';\n });\n\n private parent = inject(THY_BUTTON_GROUP, { optional: true });\n\n private readonly appearance = computed(() => this.parent?.thyAppearance() || this.thyAppearance() || 'fill');\n\n private readonly size = computed(() => this.parent?.thySize() || this.thySize() || 'md');\n\n private setButtonText() {\n const text = this.thyLoading() ? this.thyLoadingText() : this._originalText;\n const spanElement = this.nativeElement.querySelector('span');\n const textNode = spanElement?.firstChild;\n if (spanElement && textNode && text) {\n this.renderer.setValue(textNode, text);\n }\n }\n\n private buildAppearanceClasses(appearance: ThyButtonAppearance, type: string): string[] {\n if (appearance === 'fill') {\n return [`btn-${type}`];\n }\n return [`btn-${appearance}-${type}`];\n }\n\n private updateClasses() {\n const type = this.type();\n if (!type) {\n return;\n }\n\n const classNames: string[] = [...this.buildAppearanceClasses(this.appearance(), type)];\n\n const size = this.size();\n if (size) {\n classNames.push(`btn-${size}`);\n }\n const loading = this.thyLoading();\n if (loading) {\n classNames.push('loading');\n }\n this.hostRenderer.updateClass(classNames);\n }\n\n constructor() {\n this.preventClickWhenUnavailable();\n\n effect(() => {\n this.updateClasses();\n });\n\n effect(() => {\n this.setButtonText();\n });\n\n afterNextRender(() => {\n if (assertIconOnly(this.nativeElement)) {\n this.hostRenderer.addClass(iconOnlyClass);\n } else {\n this.hostRenderer.removeClass(iconOnlyClass);\n }\n this.wrapSpanForText(this.nativeElement.childNodes);\n });\n }\n\n private preventClickWhenUnavailable(): void {\n const onClick = (event: Event) => {\n if (this.thyDisabled() || this.thyLoading()) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n this.nativeElement.addEventListener('click', onClick, true);\n this.destroyRef.onDestroy(() => this.nativeElement.removeEventListener('click', onClick, true));\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-btn-wrap-span');\n this.renderer.insertBefore(parent, span, node);\n this.renderer.appendChild(span, node);\n }\n });\n }\n}\n","@if (svgIconName()) {\n <thy-icon [thyIconName]=\"svgIconName()\"></thy-icon>\n} @else {\n @if (iconClass()) {\n <i [ngClass]=\"iconClass()\"></i>\n }\n}\n<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyButtonGroup } from './button-group.component';\nimport { ThyButtonIcon } from './button-icon.component';\nimport { ThyButton } from './button.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyButton, ThyButtonIcon, ThyButtonGroup],\n exports: [ThyButton, ThyButtonIcon, ThyButtonGroup]\n})\nexport class ThyButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["coerceBooleanProperty"],"mappings":"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"}
@@ -39,7 +39,6 @@ class ThyCardHeader {
39
39
  this.operationTemplateRef = contentChild('headerOperation', /* @ts-ignore */
40
40
  ...(ngDevMode ? [{ debugName: "operationTemplateRef" }] : /* istanbul ignore next */ []));
41
41
  }
42
- ngOnInit() { }
43
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: ThyCardHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
44
43
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: ThyCardHeader, isStandalone: true, selector: "thy-card-header", inputs: { thyTitle: { classPropertyName: "thyTitle", publicName: "thyTitle", isSignal: true, isRequired: false, transformFunction: null }, thyDescription: { classPropertyName: "thyDescription", publicName: "thyDescription", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-card-header" }, queries: [{ propertyName: "titleTemplateRef", first: true, predicate: ["headerTitle"], descendants: true, isSignal: true }, { propertyName: "descriptionTemplateRef", first: true, predicate: ["headerDescription"], descendants: true, isSignal: true }, { propertyName: "operationTemplateRef", first: true, predicate: ["headerOperation"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"card-header-title\">\n <ng-template [ngTemplateOutlet]=\"titleTemplateRef()\"></ng-template>\n @if (!titleTemplateRef()) {\n <span>{{ thyTitle() }}</span>\n }\n</div>\n<div class=\"card-header-description\">\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef()\"></ng-template>\n @if (!descriptionTemplateRef()) {\n <span>{{ thyDescription() }}</span>\n }\n</div>\n<div class=\"card-header-operation\">\n <ng-template [ngTemplateOutlet]=\"operationTemplateRef()\"></ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
45
44
  }
@@ -48,7 +47,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
48
47
  args: [{ selector: 'thy-card-header', preserveWhitespaces: false, host: {
49
48
  class: 'thy-card-header'
50
49
  }, imports: [NgTemplateOutlet], template: "<div class=\"card-header-title\">\n <ng-template [ngTemplateOutlet]=\"titleTemplateRef()\"></ng-template>\n @if (!titleTemplateRef()) {\n <span>{{ thyTitle() }}</span>\n }\n</div>\n<div class=\"card-header-description\">\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef()\"></ng-template>\n @if (!descriptionTemplateRef()) {\n <span>{{ thyDescription() }}</span>\n }\n</div>\n<div class=\"card-header-operation\">\n <ng-template [ngTemplateOutlet]=\"operationTemplateRef()\"></ng-template>\n</div>\n" }]
51
- }], ctorParameters: () => [], propDecorators: { thyTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyTitle", required: false }] }], thyDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDescription", required: false }] }], titleTemplateRef: [{ type: i0.ContentChild, args: ['headerTitle', { isSignal: true }] }], descriptionTemplateRef: [{ type: i0.ContentChild, args: ['headerDescription', { isSignal: true }] }], operationTemplateRef: [{ type: i0.ContentChild, args: ['headerOperation', { isSignal: true }] }] } });
50
+ }], propDecorators: { thyTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyTitle", required: false }] }], thyDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDescription", required: false }] }], titleTemplateRef: [{ type: i0.ContentChild, args: ['headerTitle', { isSignal: true }] }], descriptionTemplateRef: [{ type: i0.ContentChild, args: ['headerDescription', { isSignal: true }] }], operationTemplateRef: [{ type: i0.ContentChild, args: ['headerOperation', { isSignal: true }] }] } });
52
51
 
53
52
  /**
54
53
  * 卡片组件
@@ -102,7 +101,6 @@ class ThyCardContent {
102
101
  */
103
102
  this.thyScroll = input(false, { ...(ngDevMode ? { debugName: "thyScroll" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
104
103
  }
105
- ngOnInit() { }
106
104
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: ThyCardContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
107
105
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: ThyCardContent, isStandalone: true, selector: "thy-card-content", inputs: { thyScroll: { classPropertyName: "thyScroll", publicName: "thyScroll", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-card-content--scroll": "!!thyScroll()" }, classAttribute: "thy-card-content" }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true }); }
108
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-card.mjs","sources":["../../../src/card/header.component.ts","../../../src/card/header.component.html","../../../src/card/card.component.ts","../../../src/card/content.component.ts","../../../src/card/card.module.ts","../../../src/card/ngx-tethys-card.ts"],"sourcesContent":["import { Component, OnInit, TemplateRef, input, contentChild } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * 卡片头部组件\n * @name thy-card-header\n * @order 20\n */\n@Component({\n selector: 'thy-card-header',\n preserveWhitespaces: false,\n templateUrl: './header.component.html',\n host: {\n class: 'thy-card-header'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyCardHeader implements OnInit {\n public iconClass?: string;\n\n /**\n * 头部,标题\n */\n readonly thyTitle = input<string>();\n\n /**\n * 头部,附加信息\n */\n readonly thyDescription = input<string>();\n\n /**\n * 自定义头部标题\n * @type TemplateRef\n */\n public readonly titleTemplateRef = contentChild<TemplateRef<any>>('headerTitle');\n\n /**\n * 自定义头部描述\n * @type TemplateRef\n */\n public readonly descriptionTemplateRef = contentChild<TemplateRef<any>>('headerDescription');\n\n /**\n * 自定义头部操作区域\n * @type TemplateRef\n */\n public readonly operationTemplateRef = contentChild<TemplateRef<any>>('headerOperation');\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<div class=\"card-header-title\">\n <ng-template [ngTemplateOutlet]=\"titleTemplateRef()\"></ng-template>\n @if (!titleTemplateRef()) {\n <span>{{ thyTitle() }}</span>\n }\n</div>\n<div class=\"card-header-description\">\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef()\"></ng-template>\n @if (!descriptionTemplateRef()) {\n <span>{{ thyDescription() }}</span>\n }\n</div>\n<div class=\"card-header-operation\">\n <ng-template [ngTemplateOutlet]=\"operationTemplateRef()\"></ng-template>\n</div>\n","import { Component, input } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 卡片组件\n * @name thy-card\n * @order 10\n */\n@Component({\n selector: 'thy-card',\n template: ` <ng-content></ng-content> `,\n host: {\n class: 'thy-card',\n '[class.thy-card--divided]': '!!thyDivided()',\n '[class.thy-card--bordered]': '!!thyBordered()',\n '[class.thy-card-sm]': 'thySize() === \"sm\"',\n '[class.thy-card-lg]': 'thySize() === \"lg\"'\n }\n})\nexport class ThyCard {\n /**\n * 是否是分割模式,分割模式头部和内容区之间有一条分割线\n */\n readonly thyDivided = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否有边框,边框颜色为#eee\n */\n readonly thyBordered = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 大小\n * @type sm | md | lg\n */\n readonly thySize = input<'md' | 'sm' | 'lg'>('md');\n}\n","import { Component, input, OnInit } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 卡片内容组件\n * @name thy-card-content\n * @order 30\n */\n@Component({\n selector: 'thy-card-content',\n preserveWhitespaces: false,\n template: ` <ng-content></ng-content> `,\n host: {\n class: 'thy-card-content',\n '[class.thy-card-content--scroll]': '!!thyScroll()'\n }\n})\nexport class ThyCardContent implements OnInit {\n /**\n * 内容区,滚动\n */\n readonly thyScroll = input(false, { transform: coerceBooleanProperty });\n\n ngOnInit() {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyCard } from './card.component';\nimport { ThyCardHeader } from './header.component';\nimport { ThyCardContent } from './content.component';\n\n@NgModule({\n imports: [CommonModule, ThyCard, ThyCardHeader, ThyCardContent],\n exports: [ThyCard, ThyCardHeader, ThyCardContent]\n})\nexport class ThyCardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAGA;;;;AAIG;MAUU,aAAa,CAAA;AA+BtB,IAAA,WAAA,GAAA;AA5BA;;AAEG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK;gGAAU;AAEnC;;AAEG;AACM,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK;sGAAU;AAEzC;;;AAGG;QACa,IAAA,CAAA,gBAAgB,GAAG,YAAY,CAAmB,aAAa;6FAAC;AAEhF;;;AAGG;QACa,IAAA,CAAA,sBAAsB,GAAG,YAAY,CAAmB,mBAAmB;mGAAC;AAE5F;;;AAGG;QACa,IAAA,CAAA,oBAAoB,GAAG,YAAY,CAAmB,iBAAiB;iGAAC;IAEzE;AAEf,IAAA,QAAQ,KAAI;8GAjCH,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjB1B,4gBAeA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDAc,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAEjB,aAAa,EAAA,UAAA,EAAA,CAAA;kBATzB,SAAS;+BACI,iBAAiB,EAAA,mBAAA,EACN,KAAK,EAAA,IAAA,EAEpB;AACF,wBAAA,KAAK,EAAE;qBACV,EAAA,OAAA,EACQ,CAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,4gBAAA,EAAA;uTAmBuC,aAAa,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAMP,mBAAmB,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAMrB,iBAAiB,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AE3C3F;;;;AAIG;MAYU,OAAO,CAAA;AAXpB,IAAA,WAAA,GAAA;AAYI;;AAEG;QACM,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,qBAAqB,EAAA,CAAG;AAExE;;AAEG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,qBAAqB,EAAA,CAAG;AAEzE;;;AAGG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAqB,IAAI;oFAAC;AACrD,IAAA;8GAhBY,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,2sBATN,CAAA,2BAAA,CAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAS9B,OAAO,EAAA,UAAA,EAAA,CAAA;kBAXnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,CAAA,2BAAA,CAA6B;AACvC,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,UAAU;AACjB,wBAAA,2BAA2B,EAAE,gBAAgB;AAC7C,wBAAA,4BAA4B,EAAE,iBAAiB;AAC/C,wBAAA,qBAAqB,EAAE,oBAAoB;AAC3C,wBAAA,qBAAqB,EAAE;AAC1B;AACJ,iBAAA;;;ACfD;;;;AAIG;MAUU,cAAc,CAAA;AAT3B,IAAA,WAAA,GAAA;AAUI;;AAEG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,qBAAqB,EAAA,CAAG;AAG1E,IAAA;AADG,IAAA,QAAQ,KAAI;8GANH,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,6UANb,CAAA,2BAAA,CAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAM9B,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,mBAAmB,EAAE,KAAK;AAC1B,oBAAA,QAAQ,EAAE,CAAA,2BAAA,CAA6B;AACvC,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,kBAAkB;AACzB,wBAAA,kCAAkC,EAAE;AACvC;AACJ,iBAAA;;;MCNY,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAAA,OAAA,EAAA,CAHZ,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,CAAA,EAAA,OAAA,EAAA,CACpD,OAAO,EAAE,aAAa,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;AAEvC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAHZ,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAGb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC;AAC/D,oBAAA,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc;AACnD,iBAAA;;;ACTD;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys-card.mjs","sources":["../../../src/card/header.component.ts","../../../src/card/header.component.html","../../../src/card/card.component.ts","../../../src/card/content.component.ts","../../../src/card/card.module.ts","../../../src/card/ngx-tethys-card.ts"],"sourcesContent":["import { Component, TemplateRef, input, contentChild } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * 卡片头部组件\n * @name thy-card-header\n * @order 20\n */\n@Component({\n selector: 'thy-card-header',\n preserveWhitespaces: false,\n templateUrl: './header.component.html',\n host: {\n class: 'thy-card-header'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyCardHeader {\n public iconClass?: string;\n\n /**\n * 头部,标题\n */\n readonly thyTitle = input<string>();\n\n /**\n * 头部,附加信息\n */\n readonly thyDescription = input<string>();\n\n /**\n * 自定义头部标题\n * @type TemplateRef\n */\n public readonly titleTemplateRef = contentChild<TemplateRef<any>>('headerTitle');\n\n /**\n * 自定义头部描述\n * @type TemplateRef\n */\n public readonly descriptionTemplateRef = contentChild<TemplateRef<any>>('headerDescription');\n\n /**\n * 自定义头部操作区域\n * @type TemplateRef\n */\n public readonly operationTemplateRef = contentChild<TemplateRef<any>>('headerOperation');\n}\n","<div class=\"card-header-title\">\n <ng-template [ngTemplateOutlet]=\"titleTemplateRef()\"></ng-template>\n @if (!titleTemplateRef()) {\n <span>{{ thyTitle() }}</span>\n }\n</div>\n<div class=\"card-header-description\">\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef()\"></ng-template>\n @if (!descriptionTemplateRef()) {\n <span>{{ thyDescription() }}</span>\n }\n</div>\n<div class=\"card-header-operation\">\n <ng-template [ngTemplateOutlet]=\"operationTemplateRef()\"></ng-template>\n</div>\n","import { Component, input } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 卡片组件\n * @name thy-card\n * @order 10\n */\n@Component({\n selector: 'thy-card',\n template: ` <ng-content></ng-content> `,\n host: {\n class: 'thy-card',\n '[class.thy-card--divided]': '!!thyDivided()',\n '[class.thy-card--bordered]': '!!thyBordered()',\n '[class.thy-card-sm]': 'thySize() === \"sm\"',\n '[class.thy-card-lg]': 'thySize() === \"lg\"'\n }\n})\nexport class ThyCard {\n /**\n * 是否是分割模式,分割模式头部和内容区之间有一条分割线\n */\n readonly thyDivided = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否有边框,边框颜色为#eee\n */\n readonly thyBordered = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 大小\n * @type sm | md | lg\n */\n readonly thySize = input<'md' | 'sm' | 'lg'>('md');\n}\n","import { Component, input } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 卡片内容组件\n * @name thy-card-content\n * @order 30\n */\n@Component({\n selector: 'thy-card-content',\n preserveWhitespaces: false,\n template: ` <ng-content></ng-content> `,\n host: {\n class: 'thy-card-content',\n '[class.thy-card-content--scroll]': '!!thyScroll()'\n }\n})\nexport class ThyCardContent {\n /**\n * 内容区,滚动\n */\n readonly thyScroll = input(false, { transform: coerceBooleanProperty });\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyCard } from './card.component';\nimport { ThyCardHeader } from './header.component';\nimport { ThyCardContent } from './content.component';\n\n@NgModule({\n imports: [CommonModule, ThyCard, ThyCardHeader, ThyCardContent],\n exports: [ThyCard, ThyCardHeader, ThyCardContent]\n})\nexport class ThyCardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}