ngx-tethys 20.0.1 → 20.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 (245) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/action/index.d.ts +3 -3
  3. package/affix/index.d.ts +1 -1
  4. package/alert/index.d.ts +3 -3
  5. package/anchor/index.d.ts +12 -6
  6. package/arrow-switcher/index.d.ts +6 -6
  7. package/autocomplete/index.d.ts +7 -7
  8. package/avatar/index.d.ts +9 -9
  9. package/back-top/index.d.ts +3 -3
  10. package/badge/index.d.ts +6 -6
  11. package/breadcrumb/index.d.ts +7 -7
  12. package/button/index.d.ts +19 -19
  13. package/calendar/index.d.ts +8 -8
  14. package/card/index.d.ts +6 -6
  15. package/carousel/index.d.ts +4 -4
  16. package/cascader/index.d.ts +24 -24
  17. package/collapse/index.d.ts +4 -4
  18. package/color-picker/index.d.ts +16 -16
  19. package/comment/index.d.ts +3 -3
  20. package/copy/index.d.ts +2 -2
  21. package/core/index.d.ts +22 -22
  22. package/date-picker/index.d.ts +111 -111
  23. package/date-range/index.d.ts +5 -5
  24. package/dialog/index.d.ts +18 -18
  25. package/divider/index.d.ts +3 -3
  26. package/drag-drop/index.d.ts +7 -7
  27. package/dropdown/index.d.ts +10 -10
  28. package/empty/index.d.ts +12 -12
  29. package/fesm2022/ngx-tethys-action.mjs +14 -12
  30. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  31. package/fesm2022/ngx-tethys-affix.mjs +7 -7
  32. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  33. package/fesm2022/ngx-tethys-alert.mjs +10 -10
  34. package/fesm2022/ngx-tethys-anchor.mjs +65 -28
  35. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  36. package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
  37. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  38. package/fesm2022/ngx-tethys-autocomplete.mjs +19 -18
  39. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  40. package/fesm2022/ngx-tethys-avatar.mjs +23 -22
  41. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  42. package/fesm2022/ngx-tethys-back-top.mjs +7 -7
  43. package/fesm2022/ngx-tethys-badge.mjs +7 -7
  44. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  45. package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
  46. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  47. package/fesm2022/ngx-tethys-button.mjs +16 -16
  48. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  49. package/fesm2022/ngx-tethys-calendar.mjs +16 -16
  50. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  51. package/fesm2022/ngx-tethys-card.mjs +13 -13
  52. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  53. package/fesm2022/ngx-tethys-carousel.mjs +15 -15
  54. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  55. package/fesm2022/ngx-tethys-cascader.mjs +41 -34
  56. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  57. package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
  58. package/fesm2022/ngx-tethys-collapse.mjs +10 -10
  59. package/fesm2022/ngx-tethys-color-picker.mjs +65 -57
  60. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  61. package/fesm2022/ngx-tethys-comment.mjs +13 -13
  62. package/fesm2022/ngx-tethys-copy.mjs +10 -10
  63. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  64. package/fesm2022/ngx-tethys-core.mjs +30 -25
  65. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  66. package/fesm2022/ngx-tethys-date-picker.mjs +184 -174
  67. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  68. package/fesm2022/ngx-tethys-date-range.mjs +16 -16
  69. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  70. package/fesm2022/ngx-tethys-dialog.mjs +24 -24
  71. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  72. package/fesm2022/ngx-tethys-divider.mjs +7 -7
  73. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  74. package/fesm2022/ngx-tethys-dot.mjs +7 -7
  75. package/fesm2022/ngx-tethys-drag-drop.mjs +24 -24
  76. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  77. package/fesm2022/ngx-tethys-dropdown.mjs +48 -47
  78. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  79. package/fesm2022/ngx-tethys-empty.mjs +13 -13
  80. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
  82. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  83. package/fesm2022/ngx-tethys-form.mjs +64 -61
  84. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  85. package/fesm2022/ngx-tethys-fullscreen.mjs +18 -15
  86. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  87. package/fesm2022/ngx-tethys-grid.mjs +34 -33
  88. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  89. package/fesm2022/ngx-tethys-guider.mjs +25 -24
  90. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  91. package/fesm2022/ngx-tethys-i18n.mjs +3 -3
  92. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  93. package/fesm2022/ngx-tethys-icon.mjs +15 -13
  94. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  95. package/fesm2022/ngx-tethys-image.mjs +31 -29
  96. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  97. package/fesm2022/ngx-tethys-input-number.mjs +17 -10
  98. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  99. package/fesm2022/ngx-tethys-input.mjs +27 -26
  100. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  101. package/fesm2022/ngx-tethys-layout.mjs +63 -63
  102. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  103. package/fesm2022/ngx-tethys-list.mjs +21 -18
  104. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  105. package/fesm2022/ngx-tethys-loading.mjs +7 -7
  106. package/fesm2022/ngx-tethys-mention.mjs +35 -31
  107. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  108. package/fesm2022/ngx-tethys-menu.mjs +26 -26
  109. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  110. package/fesm2022/ngx-tethys-message.mjs +24 -24
  111. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  112. package/fesm2022/ngx-tethys-native-table.mjs +1119 -0
  113. package/fesm2022/ngx-tethys-native-table.mjs.map +1 -0
  114. package/fesm2022/ngx-tethys-nav.mjs +27 -27
  115. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  116. package/fesm2022/ngx-tethys-notify.mjs +20 -20
  117. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  118. package/fesm2022/ngx-tethys-pagination.mjs +18 -18
  119. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  120. package/fesm2022/ngx-tethys-popover.mjs +22 -21
  121. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  122. package/fesm2022/ngx-tethys-progress.mjs +17 -17
  123. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  124. package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
  125. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  126. package/fesm2022/ngx-tethys-property.mjs +15 -12
  127. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  128. package/fesm2022/ngx-tethys-radio.mjs +17 -17
  129. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  130. package/fesm2022/ngx-tethys-rate.mjs +12 -12
  131. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  132. package/fesm2022/ngx-tethys-resizable.mjs +21 -18
  133. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  134. package/fesm2022/ngx-tethys-result.mjs +11 -11
  135. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  136. package/fesm2022/ngx-tethys-segment.mjs +19 -16
  137. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  138. package/fesm2022/ngx-tethys-select.mjs +95 -46
  139. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  140. package/fesm2022/ngx-tethys-shared.mjs +85 -81
  141. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  142. package/fesm2022/ngx-tethys-skeleton.mjs +32 -32
  143. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  144. package/fesm2022/ngx-tethys-slide.mjs +37 -36
  145. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  146. package/fesm2022/ngx-tethys-slider.mjs +11 -11
  147. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  148. package/fesm2022/ngx-tethys-space.mjs +10 -10
  149. package/fesm2022/ngx-tethys-statistic.mjs +7 -7
  150. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  151. package/fesm2022/ngx-tethys-stepper.mjs +22 -22
  152. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  153. package/fesm2022/ngx-tethys-strength.mjs +7 -7
  154. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  155. package/fesm2022/ngx-tethys-switch.mjs +7 -7
  156. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  157. package/fesm2022/ngx-tethys-table.mjs +28 -28
  158. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  159. package/fesm2022/ngx-tethys-tabs.mjs +13 -13
  160. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  161. package/fesm2022/ngx-tethys-tag.mjs +11 -11
  162. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  163. package/fesm2022/ngx-tethys-testing.mjs +1 -1
  164. package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
  165. package/fesm2022/ngx-tethys-time-picker.mjs +22 -22
  166. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  167. package/fesm2022/ngx-tethys-timeline.mjs +14 -14
  168. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  169. package/fesm2022/ngx-tethys-tooltip.mjs +36 -29
  170. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  171. package/fesm2022/ngx-tethys-transfer.mjs +15 -15
  172. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  173. package/fesm2022/ngx-tethys-tree-select.mjs +17 -17
  174. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  175. package/fesm2022/ngx-tethys-tree.mjs +50 -43
  176. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  177. package/fesm2022/ngx-tethys-typography.mjs +16 -16
  178. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  179. package/fesm2022/ngx-tethys-upload.mjs +26 -25
  180. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  181. package/fesm2022/ngx-tethys-util.mjs +11 -5
  182. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  183. package/fesm2022/ngx-tethys-vote.mjs +7 -7
  184. package/fesm2022/ngx-tethys-watermark.mjs +18 -15
  185. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  186. package/fesm2022/ngx-tethys.mjs +1 -1
  187. package/fesm2022/ngx-tethys.mjs.map +1 -1
  188. package/flexible-text/index.d.ts +5 -5
  189. package/form/index.d.ts +26 -22
  190. package/fullscreen/index.d.ts +4 -4
  191. package/grid/index.d.ts +12 -12
  192. package/guider/index.d.ts +10 -10
  193. package/i18n/index.d.ts +1 -1
  194. package/icon/index.d.ts +3 -3
  195. package/image/index.d.ts +12 -12
  196. package/input/index.d.ts +23 -23
  197. package/input-number/index.d.ts +4 -4
  198. package/layout/index.d.ts +16 -16
  199. package/list/index.d.ts +16 -15
  200. package/mention/index.d.ts +4 -4
  201. package/menu/index.d.ts +7 -7
  202. package/message/index.d.ts +5 -5
  203. package/native-table/index.d.ts +305 -0
  204. package/native-table/styles/native-table.scss +174 -0
  205. package/nav/index.d.ts +12 -12
  206. package/notify/index.d.ts +1 -1
  207. package/package.json +5 -1
  208. package/pagination/index.d.ts +21 -17
  209. package/popover/index.d.ts +8 -8
  210. package/progress/index.d.ts +18 -18
  211. package/property/index.d.ts +6 -6
  212. package/property-operation/index.d.ts +3 -3
  213. package/radio/index.d.ts +6 -6
  214. package/rate/index.d.ts +5 -5
  215. package/resizable/index.d.ts +2 -2
  216. package/result/index.d.ts +8 -8
  217. package/schematics/testing/test-workspace.js +1 -0
  218. package/schematics/version.d.ts +1 -1
  219. package/schematics/version.js +1 -1
  220. package/segment/index.d.ts +9 -9
  221. package/select/index.d.ts +28 -22
  222. package/shared/index.d.ts +31 -30
  223. package/shared/option/styles/select-dropdown.scss +5 -2
  224. package/skeleton/index.d.ts +52 -52
  225. package/slide/index.d.ts +5 -5
  226. package/slider/index.d.ts +6 -6
  227. package/space/index.d.ts +1 -1
  228. package/statistic/index.d.ts +18 -18
  229. package/stepper/index.d.ts +8 -8
  230. package/styles/index.scss +1 -0
  231. package/switch/index.d.ts +2 -2
  232. package/table/index.d.ts +24 -24
  233. package/tabs/index.d.ts +6 -6
  234. package/testing/index.d.ts +1 -1
  235. package/time-picker/index.d.ts +21 -21
  236. package/timeline/index.d.ts +8 -8
  237. package/tooltip/index.d.ts +12 -12
  238. package/transfer/index.d.ts +16 -16
  239. package/tree/index.d.ts +28 -28
  240. package/tree-select/index.d.ts +13 -13
  241. package/typography/index.d.ts +3 -3
  242. package/upload/index.d.ts +4 -4
  243. package/util/index.d.ts +17 -7
  244. package/vote/index.d.ts +2 -2
  245. package/watermark/index.d.ts +2 -2
@@ -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 } from '@angular/core';\n\nexport type ButtonGroupSize = 'sm' | 'lg' | 'xs' | 'md';\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 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<ButtonGroupSize>();\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 (buttonGroupSizeMap[size]) {\n classNames = classNames.concat(...buttonGroupSizeMap[size]);\n }\n this.hostRenderer.updateClass(classNames);\n }\n}\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit, 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';\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 changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyIcon, NgClass]\n})\nexport class ThyButtonIcon {\n /**\n * 大小\n * @type xs | sm | md | lg\n * @default 36px\n */\n readonly thySize = input<string>();\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[]>(() => {\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 = 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 ChangeDetectionStrategy,\n Component,\n ElementRef,\n Renderer2,\n ViewEncapsulation,\n inject,\n input,\n computed,\n effect,\n afterNextRender\n} from '@angular/core';\n\nimport { assertIconOnly, coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass } from '@angular/common';\n\nexport type ThyButtonType =\n | 'primary'\n | 'secondary'\n | 'info'\n | 'outline-primary'\n | 'outline-default'\n | 'danger'\n | 'link'\n | 'link-secondary'\n | 'warning'\n | 'outline-warning'\n | 'success'\n | 'outline-success'\n | 'outline-info'\n | 'outline-danger'\n | 'link-danger-weak'\n | 'link-danger'\n | 'link-success';\n\nconst btnTypeClassesMap: Record<string, string[]> = {\n primary: ['btn-primary'],\n secondary: ['btn-primary', 'btn-md'],\n info: ['btn-info'],\n warning: ['btn-warning'],\n danger: ['btn-danger'],\n 'outline-primary': ['btn-outline-primary'],\n 'outline-default': ['btn-outline-default'],\n link: ['btn-link'], // 链接按钮\n 'link-info': ['btn-link', 'btn-link-info'], // 幽灵链接按钮\n 'link-secondary': ['btn-link', 'btn-link-primary-weak'], // 幽灵链接按钮\n 'link-danger-weak': ['btn-link', 'btn-link-danger-weak'], // 幽灵危险按钮\n 'link-danger': ['btn-link', 'btn-link-danger'], // 危险按钮\n 'link-success': ['btn-link', 'btn-link-success'] // 成功按钮\n};\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 changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-btn btn',\n '[class.btn-block]': 'thyBlock()'\n },\n imports: [ThyIcon, NgClass]\n})\nexport class ThyButton {\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\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 * 按钮类型,支持添加前缀`outline-`实现线框按钮,支持添加前缀`link-`实现按钮链接\n * @type primary | info | warning | danger | success\n * @default primary\n */\n readonly thyButton = input<ThyButtonType>();\n\n /**\n * 和`thyButton`参数一样,一般使用`thyButton`,为了减少参数输入, 当通过`thy-button`使用时,只能使用该参数控制类型\n * @default primary\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 | default | lg\n * @default default\n */\n readonly thySize = input<string>();\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 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[]>(() => {\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 buttonType = computed(() => {\n return this.thyButton() || this.thyType();\n });\n\n protected isRadiusSquare = computed(() => {\n const type = this.buttonType();\n return !!type?.includes('-square');\n });\n\n protected type = computed(() => {\n const type = this.buttonType();\n if (this.isRadiusSquare()) {\n return type.replace('-square', '');\n } else {\n return type;\n }\n });\n\n private setButtonText() {\n const text = this.thyLoading() ? this.thyLoadingText() : this._originalText;\n const spanElement = this.nativeElement.querySelector('span');\n if (spanElement && text) {\n this.renderer.setProperty(spanElement, 'innerText', text);\n }\n }\n\n private updateClasses() {\n const type = this.type();\n if (!type) {\n return;\n }\n\n let classNames: string[] = [];\n if (btnTypeClassesMap[type]) {\n classNames = [...btnTypeClassesMap[type]];\n } else {\n if (type) {\n classNames.push(`btn-${type}`);\n }\n }\n\n const size = this.thySize();\n if (size) {\n classNames.push(`btn-${size}`);\n }\n if (this.isRadiusSquare()) {\n classNames.push('btn-square');\n }\n const loading = this.thyLoading();\n if (loading) {\n classNames.push('loading');\n }\n this.hostRenderer.updateClass(classNames);\n }\n\n constructor() {\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 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-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 } from '@angular/core';\n\nexport type ButtonGroupSize = 'sm' | 'lg' | 'xs' | 'md';\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 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<ButtonGroupSize>();\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 { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit, 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';\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 changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyIcon, NgClass]\n})\nexport class ThyButtonIcon {\n /**\n * 大小\n * @type xs | sm | md | lg\n * @default 36px\n */\n readonly thySize = input<string>();\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 ChangeDetectionStrategy,\n Component,\n ElementRef,\n Renderer2,\n ViewEncapsulation,\n inject,\n input,\n computed,\n effect,\n afterNextRender\n} from '@angular/core';\n\nimport { assertIconOnly, coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass } from '@angular/common';\n\nexport type ThyButtonType =\n | 'primary'\n | 'secondary'\n | 'info'\n | 'outline-primary'\n | 'outline-default'\n | 'danger'\n | 'link'\n | 'link-secondary'\n | 'warning'\n | 'outline-warning'\n | 'success'\n | 'outline-success'\n | 'outline-info'\n | 'outline-danger'\n | 'link-danger-weak'\n | 'link-danger'\n | 'link-success';\n\nconst btnTypeClassesMap: Record<string, string[]> = {\n primary: ['btn-primary'],\n secondary: ['btn-primary', 'btn-md'],\n info: ['btn-info'],\n warning: ['btn-warning'],\n danger: ['btn-danger'],\n 'outline-primary': ['btn-outline-primary'],\n 'outline-default': ['btn-outline-default'],\n link: ['btn-link'], // 链接按钮\n 'link-info': ['btn-link', 'btn-link-info'], // 幽灵链接按钮\n 'link-secondary': ['btn-link', 'btn-link-primary-weak'], // 幽灵链接按钮\n 'link-danger-weak': ['btn-link', 'btn-link-danger-weak'], // 幽灵危险按钮\n 'link-danger': ['btn-link', 'btn-link-danger'], // 危险按钮\n 'link-success': ['btn-link', 'btn-link-success'] // 成功按钮\n};\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 changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-btn btn',\n '[class.btn-block]': 'thyBlock()'\n },\n imports: [ThyIcon, NgClass]\n})\nexport class ThyButton {\n private elementRef = inject(ElementRef);\n private renderer = inject(Renderer2);\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 * 按钮类型,支持添加前缀`outline-`实现线框按钮,支持添加前缀`link-`实现按钮链接\n * @type primary | info | warning | danger | success\n * @default primary\n */\n readonly thyButton = input<ThyButtonType>();\n\n /**\n * 和`thyButton`参数一样,一般使用`thyButton`,为了减少参数输入, 当通过`thy-button`使用时,只能使用该参数控制类型\n * @default primary\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 | default | lg\n * @default default\n */\n readonly thySize = input<string>();\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 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 buttonType = computed(() => {\n return this.thyButton() || this.thyType();\n });\n\n protected isRadiusSquare = computed(() => {\n const type = this.buttonType();\n return !!type?.includes('-square');\n });\n\n protected type = computed(() => {\n const type = this.buttonType();\n if (this.isRadiusSquare()) {\n return type?.replace('-square', '');\n } else {\n return type;\n }\n });\n\n private setButtonText() {\n const text = this.thyLoading() ? this.thyLoadingText() : this._originalText;\n const spanElement = this.nativeElement.querySelector('span');\n if (spanElement && text) {\n this.renderer.setProperty(spanElement, 'innerText', text);\n }\n }\n\n private updateClasses() {\n const type = this.type();\n if (!type) {\n return;\n }\n\n let classNames: string[] = [];\n if (btnTypeClassesMap[type]) {\n classNames = [...btnTypeClassesMap[type]];\n } else {\n if (type) {\n classNames.push(`btn-${type}`);\n }\n }\n\n const size = this.thySize();\n if (size) {\n classNames.push(`btn-${size}`);\n }\n if (this.isRadiusSquare()) {\n classNames.push('btn-square');\n }\n const loading = this.thyLoading();\n if (loading) {\n classNames.push('loading');\n }\n this.hostRenderer.updateClass(classNames);\n }\n\n constructor() {\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 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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"}
@@ -105,10 +105,10 @@ class ThyCalendarHeader {
105
105
  this.isCurrent =
106
106
  currentDate.getMonth() !== getMonth(new TinyDate().getTime()) || currentDate.getYear() !== getYear(new TinyDate().getTime());
107
107
  }
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCalendarHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: ThyCalendarHeader, isStandalone: true, selector: "thy-calendar-header", inputs: { currentDate: { classPropertyName: "currentDate", publicName: "currentDate", isSignal: true, isRequired: false, transformFunction: null }, operationRender: { classPropertyName: "operationRender", publicName: "operationRender", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { yearChange: "yearChange", monthChange: "monthChange", dateRangeChange: "dateRangeChange" }, host: { properties: { "class.thy-calendar-full-header-container": "this.className" } }, ngImport: i0, template: "<div class=\"thy-calendar-full-header-left\">\n <thy-date-range\n class=\"select-date-range\"\n [ngModel]=\"date\"\n [thyHiddenMenu]=\"true\"\n [thyCustomKey]=\"'exception'\"\n [thyPickerFormat]=\"pickerFormat\"\n (ngModelChange)=\"onChangeRange($event)\"></thy-date-range>\n @if (isCurrent) {\n <button thyButton=\"outline-default-square\" thySize=\"md\" (click)=\"backToday()\">{{ locale().today }}</button>\n }\n</div>\n<div class=\"thy-calendar-full-header-right\">\n <ng-container *ngTemplateOutlet=\"$any(operationRender()); context: { $implicit: operationRender() }\">\n <span>{{ operationRender() | json }}</span>\n </ng-container>\n</div>\n", dependencies: [{ kind: "component", type: ThyDateRange, selector: "thy-date-range", inputs: ["thyOptionalDateRanges", "thyHiddenMenu", "thyDisabledSwitch", "thyCustomTextValue", "thyMinDate", "thyMaxDate", "thyCustomKey", "thyPickerFormat", "thyDisabledDate", "thySeparator"], outputs: ["thyOnCalendarChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: JsonPipe, name: "json" }] }); }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCalendarHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyCalendarHeader, isStandalone: true, selector: "thy-calendar-header", inputs: { currentDate: { classPropertyName: "currentDate", publicName: "currentDate", isSignal: true, isRequired: false, transformFunction: null }, operationRender: { classPropertyName: "operationRender", publicName: "operationRender", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { yearChange: "yearChange", monthChange: "monthChange", dateRangeChange: "dateRangeChange" }, host: { properties: { "class.thy-calendar-full-header-container": "this.className" } }, ngImport: i0, template: "<div class=\"thy-calendar-full-header-left\">\n <thy-date-range\n class=\"select-date-range\"\n [ngModel]=\"date\"\n [thyHiddenMenu]=\"true\"\n [thyCustomKey]=\"'exception'\"\n [thyPickerFormat]=\"pickerFormat\"\n (ngModelChange)=\"onChangeRange($event)\"></thy-date-range>\n @if (isCurrent) {\n <button thyButton=\"outline-default-square\" thySize=\"md\" (click)=\"backToday()\">{{ locale().today }}</button>\n }\n</div>\n<div class=\"thy-calendar-full-header-right\">\n <ng-container *ngTemplateOutlet=\"$any(operationRender()); context: { $implicit: operationRender() }\">\n <span>{{ operationRender() | json }}</span>\n </ng-container>\n</div>\n", dependencies: [{ kind: "component", type: ThyDateRange, selector: "thy-date-range", inputs: ["thyOptionalDateRanges", "thyHiddenMenu", "thyDisabledSwitch", "thyCustomTextValue", "thyMinDate", "thyMaxDate", "thyCustomKey", "thyPickerFormat", "thyDisabledDate", "thySeparator"], outputs: ["thyOnCalendarChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: JsonPipe, name: "json" }] }); }
110
110
  }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCalendarHeader, decorators: [{
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCalendarHeader, decorators: [{
112
112
  type: Component,
113
113
  args: [{ selector: 'thy-calendar-header', imports: [ThyDateRange, FormsModule, ThyButton, NgTemplateOutlet, JsonPipe], template: "<div class=\"thy-calendar-full-header-left\">\n <thy-date-range\n class=\"select-date-range\"\n [ngModel]=\"date\"\n [thyHiddenMenu]=\"true\"\n [thyCustomKey]=\"'exception'\"\n [thyPickerFormat]=\"pickerFormat\"\n (ngModelChange)=\"onChangeRange($event)\"></thy-date-range>\n @if (isCurrent) {\n <button thyButton=\"outline-default-square\" thySize=\"md\" (click)=\"backToday()\">{{ locale().today }}</button>\n }\n</div>\n<div class=\"thy-calendar-full-header-right\">\n <ng-container *ngTemplateOutlet=\"$any(operationRender()); context: { $implicit: operationRender() }\">\n <span>{{ operationRender() | json }}</span>\n </ng-container>\n</div>\n" }]
114
114
  }], ctorParameters: () => [], propDecorators: { className: [{
@@ -121,10 +121,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
121
121
  * @name thyDateCell
122
122
  */
123
123
  class ThyDateCellDirective {
124
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDateCellDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
125
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.14", type: ThyDateCellDirective, isStandalone: true, selector: "[thyDateCell]", exportAs: ["thyDateCell"], ngImport: i0 }); }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDateCellDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
125
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: ThyDateCellDirective, isStandalone: true, selector: "[thyDateCell]", exportAs: ["thyDateCell"], ngImport: i0 }); }
126
126
  }
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyDateCellDirective, decorators: [{
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyDateCellDirective, decorators: [{
128
128
  type: Directive,
129
129
  args: [{
130
130
  selector: '[thyDateCell]',
@@ -136,10 +136,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
136
136
  * @name thyCalendarHeaderOperation
137
137
  */
138
138
  class ThyCalendarHeaderOperationDirective {
139
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCalendarHeaderOperationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
140
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.14", type: ThyCalendarHeaderOperationDirective, isStandalone: true, selector: "[thyCalendarHeaderOperation]", exportAs: ["thyCalendarHeaderOperation"], ngImport: i0 }); }
139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCalendarHeaderOperationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
140
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: ThyCalendarHeaderOperationDirective, isStandalone: true, selector: "[thyCalendarHeaderOperation]", exportAs: ["thyCalendarHeaderOperation"], ngImport: i0 }); }
141
141
  }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCalendarHeaderOperationDirective, decorators: [{
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCalendarHeaderOperationDirective, decorators: [{
143
143
  type: Directive,
144
144
  args: [{
145
145
  selector: '[thyCalendarHeaderOperation]',
@@ -250,10 +250,10 @@ class ThyCalendar {
250
250
  }
251
251
  });
252
252
  }
253
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
254
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: ThyCalendar, isStandalone: true, selector: "thy-calendar", inputs: { thyMode: { classPropertyName: "thyMode", publicName: "thyMode", isSignal: true, isRequired: false, transformFunction: null }, thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, thyDisabledDate: { classPropertyName: "thyDisabledDate", publicName: "thyDisabledDate", isSignal: true, isRequired: false, transformFunction: null }, thyDateCell: { classPropertyName: "thyDateCell", publicName: "thyDateCell", isSignal: true, isRequired: false, transformFunction: null }, thyCalendarHeaderOperation: { classPropertyName: "thyCalendarHeaderOperation", publicName: "thyCalendarHeaderOperation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thySelectChange: "thySelectChange", thyValueChange: "thyValueChange", thyDateRangeChange: "thyDateRangeChange" }, host: { properties: { "class.thy-calendar-container": "this.className", "class.thy-calendar-full": "this.className1" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ThyCalendar), multi: true }], queries: [{ propertyName: "thyDateCellChild", first: true, predicate: ThyDateCellDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "thyCalendarHeaderOperationChild", first: true, predicate: ThyCalendarHeaderOperationDirective, descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<thy-calendar-header\n [operationRender]=\"headerOperation()\"\n (monthChange)=\"onMonthSelect($event)\"\n (yearChange)=\"onYearSelect($event)\"\n (dateRangeChange)=\"onDateRangeSelect($event)\"\n [currentDate]=\"currentDate\"></thy-calendar-header>\n\n<div class=\"thy-calendar-panel\">\n <div class=\"thy-calendar-{{ thyMode() === 'month' ? 'date' : 'month' }}-panel\">\n <div class=\"thy-calendar-body\">\n @if (thyMode() === 'month') {\n <date-table\n [prefixCls]=\"prefixCls\"\n [value]=\"currentDate\"\n [activeDate]=\"currentDate\"\n [selectedValue]=\"currentDate\"\n [cellRender]=\"dateCell()\"\n [disabledDate]=\"thyDisabledDate()\"\n (valueChange)=\"onDateSelect($event)\"></date-table>\n } @else {\n <month-table [value]=\"currentDate\" [disabledDate]=\"thyDisabledDate()\" (valueChange)=\"onDateSelect($event)\"></month-table>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: ThyCalendarHeader, selector: "thy-calendar-header", inputs: ["currentDate", "operationRender"], outputs: ["yearChange", "monthChange", "dateRangeChange"] }, { kind: "component", type: DateTable, selector: "date-table", outputs: ["dayHover"], exportAs: ["dateTable"] }, { kind: "component", type: MonthTable, selector: "month-table", exportAs: ["monthTable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
253
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
254
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyCalendar, isStandalone: true, selector: "thy-calendar", inputs: { thyMode: { classPropertyName: "thyMode", publicName: "thyMode", isSignal: true, isRequired: false, transformFunction: null }, thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, thyDisabledDate: { classPropertyName: "thyDisabledDate", publicName: "thyDisabledDate", isSignal: true, isRequired: false, transformFunction: null }, thyDateCell: { classPropertyName: "thyDateCell", publicName: "thyDateCell", isSignal: true, isRequired: false, transformFunction: null }, thyCalendarHeaderOperation: { classPropertyName: "thyCalendarHeaderOperation", publicName: "thyCalendarHeaderOperation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thySelectChange: "thySelectChange", thyValueChange: "thyValueChange", thyDateRangeChange: "thyDateRangeChange" }, host: { properties: { "class.thy-calendar-container": "this.className", "class.thy-calendar-full": "this.className1" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ThyCalendar), multi: true }], queries: [{ propertyName: "thyDateCellChild", first: true, predicate: ThyDateCellDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "thyCalendarHeaderOperationChild", first: true, predicate: ThyCalendarHeaderOperationDirective, descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<thy-calendar-header\n [operationRender]=\"headerOperation()\"\n (monthChange)=\"onMonthSelect($event)\"\n (yearChange)=\"onYearSelect($event)\"\n (dateRangeChange)=\"onDateRangeSelect($event)\"\n [currentDate]=\"currentDate\"></thy-calendar-header>\n\n<div class=\"thy-calendar-panel\">\n <div class=\"thy-calendar-{{ thyMode() === 'month' ? 'date' : 'month' }}-panel\">\n <div class=\"thy-calendar-body\">\n @if (thyMode() === 'month') {\n <date-table\n [prefixCls]=\"prefixCls\"\n [value]=\"currentDate\"\n [activeDate]=\"currentDate\"\n [selectedValue]=\"currentDate\"\n [cellRender]=\"dateCell()\"\n [disabledDate]=\"thyDisabledDate()\"\n (valueChange)=\"onDateSelect($event)\"></date-table>\n } @else {\n <month-table [value]=\"currentDate\" [disabledDate]=\"thyDisabledDate()\" (valueChange)=\"onDateSelect($event)\"></month-table>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: ThyCalendarHeader, selector: "thy-calendar-header", inputs: ["currentDate", "operationRender"], outputs: ["yearChange", "monthChange", "dateRangeChange"] }, { kind: "component", type: DateTable, selector: "date-table", outputs: ["dayHover"], exportAs: ["dateTable"] }, { kind: "component", type: MonthTable, selector: "month-table", exportAs: ["monthTable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
255
255
  }
256
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCalendar, decorators: [{
256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCalendar, decorators: [{
257
257
  type: Component,
258
258
  args: [{ selector: 'thy-calendar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ThyCalendar), multi: true }], imports: [ThyCalendarHeader, DateTable, MonthTable], template: "<thy-calendar-header\n [operationRender]=\"headerOperation()\"\n (monthChange)=\"onMonthSelect($event)\"\n (yearChange)=\"onYearSelect($event)\"\n (dateRangeChange)=\"onDateRangeSelect($event)\"\n [currentDate]=\"currentDate\"></thy-calendar-header>\n\n<div class=\"thy-calendar-panel\">\n <div class=\"thy-calendar-{{ thyMode() === 'month' ? 'date' : 'month' }}-panel\">\n <div class=\"thy-calendar-body\">\n @if (thyMode() === 'month') {\n <date-table\n [prefixCls]=\"prefixCls\"\n [value]=\"currentDate\"\n [activeDate]=\"currentDate\"\n [selectedValue]=\"currentDate\"\n [cellRender]=\"dateCell()\"\n [disabledDate]=\"thyDisabledDate()\"\n (valueChange)=\"onDateSelect($event)\"></date-table>\n } @else {\n <month-table [value]=\"currentDate\" [disabledDate]=\"thyDisabledDate()\" (valueChange)=\"onDateSelect($event)\"></month-table>\n }\n </div>\n </div>\n</div>\n" }]
259
259
  }], ctorParameters: () => [], propDecorators: { className: [{
@@ -265,8 +265,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
265
265
  }], thyMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyMode", required: false }] }], thyValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyValue", required: false }] }], thyDisabledDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDisabledDate", required: false }] }], thySelectChange: [{ type: i0.Output, args: ["thySelectChange"] }], thyValueChange: [{ type: i0.Output, args: ["thyValueChange"] }], thyDateRangeChange: [{ type: i0.Output, args: ["thyDateRangeChange"] }], thyDateCell: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDateCell", required: false }] }], thyDateCellChild: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ThyDateCellDirective), { ...{ read: TemplateRef }, isSignal: true }] }], thyCalendarHeaderOperation: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyCalendarHeaderOperation", required: false }] }], thyCalendarHeaderOperationChild: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ThyCalendarHeaderOperationDirective), { ...{ read: TemplateRef }, isSignal: true }] }] } });
266
266
 
267
267
  class ThyCalendarModule {
268
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
269
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: ThyCalendarModule, imports: [CommonModule,
268
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
269
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyCalendarModule, imports: [CommonModule,
270
270
  FormsModule,
271
271
  ThySharedModule,
272
272
  ThyIconModule,
@@ -279,7 +279,7 @@ class ThyCalendarModule {
279
279
  ThyCalendar,
280
280
  ThyDateCellDirective,
281
281
  ThyCalendarHeaderOperationDirective], exports: [ThyCalendarHeader, ThyCalendar, ThyDateCellDirective, ThyCalendarHeaderOperationDirective] }); }
282
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCalendarModule, imports: [CommonModule,
282
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCalendarModule, imports: [CommonModule,
283
283
  FormsModule,
284
284
  ThySharedModule,
285
285
  ThyIconModule,
@@ -291,7 +291,7 @@ class ThyCalendarModule {
291
291
  ThyCalendarHeader,
292
292
  ThyCalendar] }); }
293
293
  }
294
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCalendarModule, decorators: [{
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCalendarModule, decorators: [{
295
295
  type: NgModule,
296
296
  args: [{
297
297
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-calendar.mjs","sources":["../../../src/calendar/calendar-header.component.ts","../../../src/calendar/calendar-header.component.html","../../../src/calendar/calendar-cells.ts","../../../src/calendar/calendar.component.ts","../../../src/calendar/calendar.component.html","../../../src/calendar/module.ts","../../../src/calendar/ngx-tethys-calendar.ts"],"sourcesContent":["import { DateRangeItemInfo, ThyDateRange } from 'ngx-tethys/date-range';\nimport { endOfMonth, FunctionProp, getMonth, getUnixTime, getYear, startOfMonth, TinyDate } from 'ngx-tethys/util';\n\nimport { JsonPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectorRef, Component, effect, HostBinding, inject, input, OnInit, output, Signal, TemplateRef } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyButton } from 'ngx-tethys/button';\nimport { DateHelperService } from 'ngx-tethys/date-picker';\nimport { injectLocale, ThyCalendarLocale } from 'ngx-tethys/i18n';\n\n/**\n * 日历头部操作栏组件\n * @name thy-calendar-header\n * @order 20\n */\n@Component({\n selector: 'thy-calendar-header',\n templateUrl: './calendar-header.component.html',\n imports: [ThyDateRange, FormsModule, ThyButton, NgTemplateOutlet, JsonPipe]\n})\nexport class ThyCalendarHeader implements OnInit {\n private cdr = inject(ChangeDetectorRef);\n private dateHelper = inject(DateHelperService);\n public locale: Signal<ThyCalendarLocale> = injectLocale('calendar');\n\n @HostBinding('class.thy-calendar-full-header-container') className = true;\n\n /**\n * 当前选中日期\n */\n readonly currentDate = input<TinyDate>();\n\n /**\n * \t自定义渲染右侧操作项\n */\n readonly operationRender = input<FunctionProp<TemplateRef<any>>>();\n\n /**\n * 日期选择范围(年)发生变化的回调\n */\n readonly yearChange = output<number>();\n\n /**\n * 日期选择范围(月)发生变化的回调\n */\n readonly monthChange = output<number>();\n\n /**\n * 日期选择范围(日期)发生变化的回调\n */\n readonly dateRangeChange = output<DateRangeItemInfo>();\n\n public pickerFormat = this.locale().yearMonthFormat;\n\n public dateRanges: DateRangeItemInfo[] = [\n {\n key: 'month',\n text: this.dateHelper.format(new TinyDate().nativeDate, this.pickerFormat),\n begin: getUnixTime(startOfMonth(new TinyDate().getTime())),\n end: getUnixTime(endOfMonth(new TinyDate().getTime())),\n timestamp: {\n interval: 1,\n unit: 'month'\n }\n }\n ];\n\n public date: DateRangeItemInfo;\n\n private _currentDate: TinyDate;\n\n public isCurrent: boolean;\n\n constructor() {\n effect(() => {\n this.setDate();\n });\n }\n\n ngOnInit(): void {}\n\n onChangeMonth(month: DateRangeItemInfo) {\n const currentMonth = TinyDate.fromUnixTime(month.end).getMonth();\n this.monthChange.emit(currentMonth);\n }\n\n onChangeYear(year: DateRangeItemInfo) {\n const currentYear = TinyDate.fromUnixTime(year.begin).getFullYear();\n this.yearChange.emit(currentYear);\n }\n\n onChangeRange(dateRange: DateRangeItemInfo) {\n this.isCurrentDate(this._currentDate);\n this.onChangeYear(dateRange);\n this.onChangeMonth(dateRange);\n this.dateRangeChange.emit(dateRange);\n }\n\n backToday() {\n this._currentDate = new TinyDate();\n this.date = { ...this.dateRanges[0] };\n this.onChangeRange(this.date);\n this.cdr.detectChanges();\n }\n\n setDate() {\n const currentDate = this.currentDate();\n this.isCurrentDate(currentDate);\n if (this.isCurrent) {\n this._currentDate = currentDate;\n const dateRange = {\n ...this.dateRanges[0],\n key: 'exception',\n text: this._currentDate.format(this.pickerFormat),\n begin: getUnixTime(startOfMonth(this._currentDate.getTime())),\n end: getUnixTime(endOfMonth(this._currentDate.getTime()))\n };\n this.date = dateRange;\n } else {\n this._currentDate = new TinyDate();\n this.date = { ...this.dateRanges[0] };\n }\n }\n\n isCurrentDate(currentDate: TinyDate) {\n this.isCurrent =\n currentDate.getMonth() !== getMonth(new TinyDate().getTime()) || currentDate.getYear() !== getYear(new TinyDate().getTime());\n }\n}\n","<div class=\"thy-calendar-full-header-left\">\n <thy-date-range\n class=\"select-date-range\"\n [ngModel]=\"date\"\n [thyHiddenMenu]=\"true\"\n [thyCustomKey]=\"'exception'\"\n [thyPickerFormat]=\"pickerFormat\"\n (ngModelChange)=\"onChangeRange($event)\"></thy-date-range>\n @if (isCurrent) {\n <button thyButton=\"outline-default-square\" thySize=\"md\" (click)=\"backToday()\">{{ locale().today }}</button>\n }\n</div>\n<div class=\"thy-calendar-full-header-right\">\n <ng-container *ngTemplateOutlet=\"$any(operationRender()); context: { $implicit: operationRender() }\">\n <span>{{ operationRender() | json }}</span>\n </ng-container>\n</div>\n","import { Directive } from '@angular/core';\n\n/**\n * 自定义日期单元格,模板内容会被追加到单元格,可通过 *thyDateCell 传入模板\n * @name thyDateCell\n */\n@Directive({\n selector: '[thyDateCell]',\n exportAs: 'thyDateCell'\n})\nexport class ThyDateCellDirective {}\n\n/**\n * 自定义右上角操作项,可通过 *thyCalendarHeaderOperation传入模板\n * @name thyCalendarHeaderOperation\n */\n@Directive({\n selector: '[thyCalendarHeaderOperation]',\n exportAs: 'thyCalendarHeaderOperation'\n})\nexport class ThyCalendarHeaderOperationDirective {}\n","import { DateRangeItemInfo } from 'ngx-tethys/date-range';\nimport { TinyDate } from 'ngx-tethys/util';\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n contentChild,\n effect,\n forwardRef,\n HostBinding,\n inject,\n input,\n OnInit,\n output,\n Signal,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { DateTable, MonthTable } from 'ngx-tethys/date-picker';\nimport { ThyDateCellDirective as DateCell, ThyCalendarHeaderOperationDirective as HeaderOperation } from './calendar-cells';\n\nimport { ThyCalendarHeader } from './calendar-header.component';\n\nexport type CalendarMode = 'month' | 'year';\ntype CalendarDateTemplate = TemplateRef<{ $implicit: Date }>;\n\n/**\n * 日历组件\n * @name thy-calendar\n * @order 10\n */\n@Component({\n selector: 'thy-calendar',\n templateUrl: './calendar.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ThyCalendar), multi: true }],\n imports: [ThyCalendarHeader, DateTable, MonthTable]\n})\nexport class ThyCalendar implements OnInit {\n private cdr = inject(ChangeDetectorRef);\n\n @HostBinding('class.thy-calendar-container') className = true;\n\n @HostBinding('class.thy-calendar-full') className1 = true;\n\n /**\n * 展示模式\n * @type month | year\n */\n readonly thyMode = input<CalendarMode>('month');\n\n /**\n * (可双向绑定)展示日期,默认为当前日期\n */\n readonly thyValue = input<Date>();\n\n /**\n * 不可选择的日期\n */\n readonly thyDisabledDate = input<(date: Date) => boolean>();\n\n /**\n * 日期选择变化的回调\n */\n readonly thySelectChange = output<Date>();\n\n /**\n * 日期选择变化的回调\n */\n readonly thyValueChange = output<Date>();\n\n /**\n * 日期选择范围变化的回调\n */\n readonly thyDateRangeChange = output<DateRangeItemInfo>();\n\n /**\n * (可作为内容)自定义渲染日期单元格,模板内容会被追加到单元格\n */\n readonly thyDateCell = input<CalendarDateTemplate>();\n\n /**\n * 追加到单元格的自定义模板\n */\n readonly thyDateCellChild = contentChild(DateCell, { read: TemplateRef });\n\n readonly dateCell: Signal<CalendarDateTemplate> = computed(() => {\n return (this.thyDateCell() || this.thyDateCellChild())!;\n });\n\n /**\n * (可作为内容)自定义渲染右上角操作项\n */\n readonly thyCalendarHeaderOperation = input<CalendarDateTemplate>();\n\n /**\n * 右上角操作项的自定义模板\n */\n readonly thyCalendarHeaderOperationChild = contentChild(HeaderOperation, { read: TemplateRef });\n\n readonly headerOperation: Signal<CalendarDateTemplate> = computed(() => {\n return (this.thyCalendarHeaderOperation() || this.thyCalendarHeaderOperationChild())!;\n });\n\n public currentDate = new TinyDate();\n\n public prefixCls = 'thy-calendar-full';\n\n private onChangeFn: (date: Date) => void = () => {};\n\n private onTouchFn: () => void = () => {};\n\n ngOnInit(): void {}\n\n onYearSelect(year: number): void {\n const date = this.currentDate.setYear(year);\n this.updateDate(date);\n }\n\n onMonthSelect(month: number): void {\n const date = this.currentDate.setMonth(month);\n this.updateDate(date);\n }\n\n onDateSelect(date: TinyDate): void {\n // Only currentDate is enough in calendar\n // this.value = date;\n this.updateDate(date);\n }\n\n onDateRangeSelect(date: DateRangeItemInfo) {\n this.thyDateRangeChange.emit(date);\n }\n\n writeValue(value: Date | null): void {\n this.updateDate(new TinyDate(value as Date), false);\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (date: Date) => void): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchFn = fn;\n }\n\n private updateDate(date: TinyDate, touched: boolean = true): void {\n this.currentDate = date;\n\n if (touched) {\n this.onChangeFn(date.nativeDate);\n this.onTouchFn();\n this.thySelectChange.emit(date.nativeDate);\n this.thyValueChange.emit(date.nativeDate);\n }\n }\n\n constructor() {\n effect(() => {\n if (this.thyValue()) {\n this.updateDate(new TinyDate(this.thyValue()), false);\n }\n });\n }\n}\n","<thy-calendar-header\n [operationRender]=\"headerOperation()\"\n (monthChange)=\"onMonthSelect($event)\"\n (yearChange)=\"onYearSelect($event)\"\n (dateRangeChange)=\"onDateRangeSelect($event)\"\n [currentDate]=\"currentDate\"></thy-calendar-header>\n\n<div class=\"thy-calendar-panel\">\n <div class=\"thy-calendar-{{ thyMode() === 'month' ? 'date' : 'month' }}-panel\">\n <div class=\"thy-calendar-body\">\n @if (thyMode() === 'month') {\n <date-table\n [prefixCls]=\"prefixCls\"\n [value]=\"currentDate\"\n [activeDate]=\"currentDate\"\n [selectedValue]=\"currentDate\"\n [cellRender]=\"dateCell()\"\n [disabledDate]=\"thyDisabledDate()\"\n (valueChange)=\"onDateSelect($event)\"></date-table>\n } @else {\n <month-table [value]=\"currentDate\" [disabledDate]=\"thyDisabledDate()\" (valueChange)=\"onDateSelect($event)\"></month-table>\n }\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyCalendarHeader } from './calendar-header.component';\nimport { ThyCalendar } from './calendar.component';\nimport { ThyCalendarHeaderOperationDirective, ThyDateCellDirective } from './calendar-cells';\nimport { LibPackerModule } from 'ngx-tethys/date-picker';\nimport { ThySelectModule } from 'ngx-tethys/select';\nimport { ThyRadioModule } from 'ngx-tethys/radio';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyDateRangeModule } from 'ngx-tethys/date-range';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ThySharedModule,\n ThyIconModule,\n LibPackerModule,\n ThySelectModule,\n ThyRadioModule,\n ThyButtonModule,\n ThyDateRangeModule,\n ThyCalendarHeader,\n ThyCalendar,\n ThyDateCellDirective,\n ThyCalendarHeaderOperationDirective\n ],\n exports: [ThyCalendarHeader, ThyCalendar, ThyDateCellDirective, ThyCalendarHeaderOperationDirective]\n})\nexport class ThyCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["DateCell","HeaderOperation"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-calendar.mjs","sources":["../../../src/calendar/calendar-header.component.ts","../../../src/calendar/calendar-header.component.html","../../../src/calendar/calendar-cells.ts","../../../src/calendar/calendar.component.ts","../../../src/calendar/calendar.component.html","../../../src/calendar/module.ts","../../../src/calendar/ngx-tethys-calendar.ts"],"sourcesContent":["import { DateRangeItemInfo, ThyDateRange } from 'ngx-tethys/date-range';\nimport { endOfMonth, FunctionProp, getMonth, getUnixTime, getYear, startOfMonth, TinyDate } from 'ngx-tethys/util';\n\nimport { JsonPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectorRef, Component, effect, HostBinding, inject, input, OnInit, output, Signal, TemplateRef } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyButton } from 'ngx-tethys/button';\nimport { DateHelperService } from 'ngx-tethys/date-picker';\nimport { injectLocale, ThyCalendarLocale } from 'ngx-tethys/i18n';\n\n/**\n * 日历头部操作栏组件\n * @name thy-calendar-header\n * @order 20\n */\n@Component({\n selector: 'thy-calendar-header',\n templateUrl: './calendar-header.component.html',\n imports: [ThyDateRange, FormsModule, ThyButton, NgTemplateOutlet, JsonPipe]\n})\nexport class ThyCalendarHeader implements OnInit {\n private cdr = inject(ChangeDetectorRef);\n private dateHelper = inject(DateHelperService);\n public locale: Signal<ThyCalendarLocale> = injectLocale('calendar');\n\n @HostBinding('class.thy-calendar-full-header-container') className = true;\n\n /**\n * 当前选中日期\n */\n readonly currentDate = input<TinyDate>();\n\n /**\n * \t自定义渲染右侧操作项\n */\n readonly operationRender = input<FunctionProp<TemplateRef<any>>>();\n\n /**\n * 日期选择范围(年)发生变化的回调\n */\n readonly yearChange = output<number>();\n\n /**\n * 日期选择范围(月)发生变化的回调\n */\n readonly monthChange = output<number>();\n\n /**\n * 日期选择范围(日期)发生变化的回调\n */\n readonly dateRangeChange = output<DateRangeItemInfo>();\n\n public pickerFormat = this.locale().yearMonthFormat;\n\n public dateRanges: DateRangeItemInfo[] = [\n {\n key: 'month',\n text: this.dateHelper.format(new TinyDate().nativeDate, this.pickerFormat),\n begin: getUnixTime(startOfMonth(new TinyDate().getTime())),\n end: getUnixTime(endOfMonth(new TinyDate().getTime())),\n timestamp: {\n interval: 1,\n unit: 'month'\n }\n }\n ];\n\n public date!: DateRangeItemInfo;\n\n private _currentDate!: TinyDate;\n\n public isCurrent!: boolean;\n\n constructor() {\n effect(() => {\n this.setDate();\n });\n }\n\n ngOnInit(): void {}\n\n onChangeMonth(month: DateRangeItemInfo) {\n const currentMonth = TinyDate.fromUnixTime(month.end!).getMonth();\n this.monthChange.emit(currentMonth);\n }\n\n onChangeYear(year: DateRangeItemInfo) {\n const currentYear = TinyDate.fromUnixTime(year.begin!).getFullYear();\n this.yearChange.emit(currentYear);\n }\n\n onChangeRange(dateRange: DateRangeItemInfo) {\n this.isCurrentDate(this._currentDate);\n this.onChangeYear(dateRange);\n this.onChangeMonth(dateRange);\n this.dateRangeChange.emit(dateRange);\n }\n\n backToday() {\n this._currentDate = new TinyDate();\n this.date = { ...this.dateRanges[0] };\n this.onChangeRange(this.date);\n this.cdr.detectChanges();\n }\n\n setDate() {\n const currentDate = this.currentDate()!;\n this.isCurrentDate(currentDate);\n if (this.isCurrent) {\n this._currentDate = currentDate;\n const dateRange = {\n ...this.dateRanges[0],\n key: 'exception',\n text: this._currentDate.format(this.pickerFormat),\n begin: getUnixTime(startOfMonth(this._currentDate.getTime())),\n end: getUnixTime(endOfMonth(this._currentDate.getTime()))\n };\n this.date = dateRange;\n } else {\n this._currentDate = new TinyDate();\n this.date = { ...this.dateRanges[0] };\n }\n }\n\n isCurrentDate(currentDate: TinyDate) {\n this.isCurrent =\n currentDate.getMonth() !== getMonth(new TinyDate().getTime()) || currentDate.getYear() !== getYear(new TinyDate().getTime());\n }\n}\n","<div class=\"thy-calendar-full-header-left\">\n <thy-date-range\n class=\"select-date-range\"\n [ngModel]=\"date\"\n [thyHiddenMenu]=\"true\"\n [thyCustomKey]=\"'exception'\"\n [thyPickerFormat]=\"pickerFormat\"\n (ngModelChange)=\"onChangeRange($event)\"></thy-date-range>\n @if (isCurrent) {\n <button thyButton=\"outline-default-square\" thySize=\"md\" (click)=\"backToday()\">{{ locale().today }}</button>\n }\n</div>\n<div class=\"thy-calendar-full-header-right\">\n <ng-container *ngTemplateOutlet=\"$any(operationRender()); context: { $implicit: operationRender() }\">\n <span>{{ operationRender() | json }}</span>\n </ng-container>\n</div>\n","import { Directive } from '@angular/core';\n\n/**\n * 自定义日期单元格,模板内容会被追加到单元格,可通过 *thyDateCell 传入模板\n * @name thyDateCell\n */\n@Directive({\n selector: '[thyDateCell]',\n exportAs: 'thyDateCell'\n})\nexport class ThyDateCellDirective {}\n\n/**\n * 自定义右上角操作项,可通过 *thyCalendarHeaderOperation传入模板\n * @name thyCalendarHeaderOperation\n */\n@Directive({\n selector: '[thyCalendarHeaderOperation]',\n exportAs: 'thyCalendarHeaderOperation'\n})\nexport class ThyCalendarHeaderOperationDirective {}\n","import { DateRangeItemInfo } from 'ngx-tethys/date-range';\nimport { TinyDate } from 'ngx-tethys/util';\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n contentChild,\n effect,\n forwardRef,\n HostBinding,\n inject,\n input,\n OnInit,\n output,\n Signal,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { DateTable, MonthTable } from 'ngx-tethys/date-picker';\nimport { ThyDateCellDirective as DateCell, ThyCalendarHeaderOperationDirective as HeaderOperation } from './calendar-cells';\n\nimport { ThyCalendarHeader } from './calendar-header.component';\n\nexport type CalendarMode = 'month' | 'year';\ntype CalendarDateTemplate = TemplateRef<{ $implicit: Date }>;\n\n/**\n * 日历组件\n * @name thy-calendar\n * @order 10\n */\n@Component({\n selector: 'thy-calendar',\n templateUrl: './calendar.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ThyCalendar), multi: true }],\n imports: [ThyCalendarHeader, DateTable, MonthTable]\n})\nexport class ThyCalendar implements OnInit {\n private cdr = inject(ChangeDetectorRef);\n\n @HostBinding('class.thy-calendar-container') className = true;\n\n @HostBinding('class.thy-calendar-full') className1 = true;\n\n /**\n * 展示模式\n * @type month | year\n */\n readonly thyMode = input<CalendarMode>('month');\n\n /**\n * (可双向绑定)展示日期,默认为当前日期\n */\n readonly thyValue = input<Date>();\n\n /**\n * 不可选择的日期\n */\n readonly thyDisabledDate = input<(date: Date) => boolean>();\n\n /**\n * 日期选择变化的回调\n */\n readonly thySelectChange = output<Date>();\n\n /**\n * 日期选择变化的回调\n */\n readonly thyValueChange = output<Date>();\n\n /**\n * 日期选择范围变化的回调\n */\n readonly thyDateRangeChange = output<DateRangeItemInfo>();\n\n /**\n * (可作为内容)自定义渲染日期单元格,模板内容会被追加到单元格\n */\n readonly thyDateCell = input<CalendarDateTemplate>();\n\n /**\n * 追加到单元格的自定义模板\n */\n readonly thyDateCellChild = contentChild(DateCell, { read: TemplateRef });\n\n readonly dateCell: Signal<CalendarDateTemplate> = computed(() => {\n return (this.thyDateCell() || this.thyDateCellChild())!;\n });\n\n /**\n * (可作为内容)自定义渲染右上角操作项\n */\n readonly thyCalendarHeaderOperation = input<CalendarDateTemplate>();\n\n /**\n * 右上角操作项的自定义模板\n */\n readonly thyCalendarHeaderOperationChild = contentChild(HeaderOperation, { read: TemplateRef });\n\n readonly headerOperation: Signal<CalendarDateTemplate> = computed(() => {\n return (this.thyCalendarHeaderOperation() || this.thyCalendarHeaderOperationChild())!;\n });\n\n public currentDate = new TinyDate();\n\n public prefixCls = 'thy-calendar-full';\n\n private onChangeFn: (date: Date) => void = () => {};\n\n private onTouchFn: () => void = () => {};\n\n ngOnInit(): void {}\n\n onYearSelect(year: number): void {\n const date = this.currentDate.setYear(year);\n this.updateDate(date);\n }\n\n onMonthSelect(month: number): void {\n const date = this.currentDate.setMonth(month);\n this.updateDate(date);\n }\n\n onDateSelect(date: TinyDate): void {\n // Only currentDate is enough in calendar\n // this.value = date;\n this.updateDate(date);\n }\n\n onDateRangeSelect(date: DateRangeItemInfo) {\n this.thyDateRangeChange.emit(date);\n }\n\n writeValue(value: Date | null): void {\n this.updateDate(new TinyDate(value as Date), false);\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (date: Date) => void): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchFn = fn;\n }\n\n private updateDate(date: TinyDate, touched: boolean = true): void {\n this.currentDate = date;\n\n if (touched) {\n this.onChangeFn(date.nativeDate);\n this.onTouchFn();\n this.thySelectChange.emit(date.nativeDate);\n this.thyValueChange.emit(date.nativeDate);\n }\n }\n\n constructor() {\n effect(() => {\n if (this.thyValue()) {\n this.updateDate(new TinyDate(this.thyValue()), false);\n }\n });\n }\n}\n","<thy-calendar-header\n [operationRender]=\"headerOperation()\"\n (monthChange)=\"onMonthSelect($event)\"\n (yearChange)=\"onYearSelect($event)\"\n (dateRangeChange)=\"onDateRangeSelect($event)\"\n [currentDate]=\"currentDate\"></thy-calendar-header>\n\n<div class=\"thy-calendar-panel\">\n <div class=\"thy-calendar-{{ thyMode() === 'month' ? 'date' : 'month' }}-panel\">\n <div class=\"thy-calendar-body\">\n @if (thyMode() === 'month') {\n <date-table\n [prefixCls]=\"prefixCls\"\n [value]=\"currentDate\"\n [activeDate]=\"currentDate\"\n [selectedValue]=\"currentDate\"\n [cellRender]=\"dateCell()\"\n [disabledDate]=\"thyDisabledDate()\"\n (valueChange)=\"onDateSelect($event)\"></date-table>\n } @else {\n <month-table [value]=\"currentDate\" [disabledDate]=\"thyDisabledDate()\" (valueChange)=\"onDateSelect($event)\"></month-table>\n }\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyCalendarHeader } from './calendar-header.component';\nimport { ThyCalendar } from './calendar.component';\nimport { ThyCalendarHeaderOperationDirective, ThyDateCellDirective } from './calendar-cells';\nimport { LibPackerModule } from 'ngx-tethys/date-picker';\nimport { ThySelectModule } from 'ngx-tethys/select';\nimport { ThyRadioModule } from 'ngx-tethys/radio';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyDateRangeModule } from 'ngx-tethys/date-range';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ThySharedModule,\n ThyIconModule,\n LibPackerModule,\n ThySelectModule,\n ThyRadioModule,\n ThyButtonModule,\n ThyDateRangeModule,\n ThyCalendarHeader,\n ThyCalendar,\n ThyDateCellDirective,\n ThyCalendarHeaderOperationDirective\n ],\n exports: [ThyCalendarHeader, ThyCalendar, ThyDateCellDirective, ThyCalendarHeaderOperationDirective]\n})\nexport class ThyCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["DateCell","HeaderOperation"],"mappings":"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"}
@@ -40,10 +40,10 @@ class ThyCardHeader {
40
40
  this.operationTemplateRef = contentChild('headerOperation', ...(ngDevMode ? [{ debugName: "operationTemplateRef" }] : []));
41
41
  }
42
42
  ngOnInit() { }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCardHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", 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 }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-card-header--sm": "thySize() === \"sm\"", "class.thy-card-header--lg": "thySize() === \"lg\"", "class.thy-card-header--md": "thySize() === \"md\"" }, 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCardHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", 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 }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-card-header--sm": "thySize() === \"sm\"", "class.thy-card-header--lg": "thySize() === \"lg\"", "class.thy-card-header--md": "thySize() === \"md\"" }, 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCardHeader, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCardHeader, decorators: [{
47
47
  type: Component,
48
48
  args: [{ selector: 'thy-card-header', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, host: {
49
49
  class: 'thy-card-header',
@@ -79,10 +79,10 @@ class ThyCard {
79
79
  */
80
80
  this.thySize = input('md', ...(ngDevMode ? [{ debugName: "thySize" }] : []));
81
81
  }
82
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
83
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: ThyCard, isStandalone: true, selector: "thy-card", inputs: { thyHasLeftRightPadding: { classPropertyName: "thyHasLeftRightPadding", publicName: "thyHasLeftRightPadding", isSignal: true, isRequired: false, transformFunction: null }, thyDivided: { classPropertyName: "thyDivided", publicName: "thyDivided", isSignal: true, isRequired: false, transformFunction: null }, thyBordered: { classPropertyName: "thyBordered", publicName: "thyBordered", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-card--divided": "!!thyDivided()", "class.thy-card--bordered": "!!thyBordered()", "class.thy-card--clear-left-right-padding": "!thyHasLeftRightPadding()", "class.thy-card-sm": "thySize() === \"sm\"", "class.thy-card-lg": "thySize() === \"lg\"" }, classAttribute: "thy-card" }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
83
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThyCard, isStandalone: true, selector: "thy-card", inputs: { thyHasLeftRightPadding: { classPropertyName: "thyHasLeftRightPadding", publicName: "thyHasLeftRightPadding", isSignal: true, isRequired: false, transformFunction: null }, thyDivided: { classPropertyName: "thyDivided", publicName: "thyDivided", isSignal: true, isRequired: false, transformFunction: null }, thyBordered: { classPropertyName: "thyBordered", publicName: "thyBordered", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-card--divided": "!!thyDivided()", "class.thy-card--bordered": "!!thyBordered()", "class.thy-card--clear-left-right-padding": "!thyHasLeftRightPadding()", "class.thy-card-sm": "thySize() === \"sm\"", "class.thy-card-lg": "thySize() === \"lg\"" }, classAttribute: "thy-card" }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
84
84
  }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCard, decorators: [{
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCard, decorators: [{
86
86
  type: Component,
87
87
  args: [{
88
88
  selector: 'thy-card',
@@ -117,10 +117,10 @@ class ThyCardContent {
117
117
  this.thySize = input('md', ...(ngDevMode ? [{ debugName: "thySize" }] : []));
118
118
  }
119
119
  ngOnInit() { }
120
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCardContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
121
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: ThyCardContent, isStandalone: true, selector: "thy-card-content", inputs: { thyScroll: { classPropertyName: "thyScroll", publicName: "thyScroll", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-card-content--scroll": "!!thyScroll()", "class.thy-card-content--sm": "thySize() === \"sm\"" }, classAttribute: "thy-card-content" }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCardContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
121
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThyCardContent, isStandalone: true, selector: "thy-card-content", inputs: { thyScroll: { classPropertyName: "thyScroll", publicName: "thyScroll", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-card-content--scroll": "!!thyScroll()", "class.thy-card-content--sm": "thySize() === \"sm\"" }, classAttribute: "thy-card-content" }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
122
122
  }
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCardContent, decorators: [{
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCardContent, decorators: [{
124
124
  type: Component,
125
125
  args: [{
126
126
  selector: 'thy-card-content',
@@ -136,11 +136,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
136
136
  }], propDecorators: { thyScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyScroll", required: false }] }], thySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySize", required: false }] }] } });
137
137
 
138
138
  class ThyCardModule {
139
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
140
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: ThyCardModule, imports: [CommonModule, ThyCard, ThyCardHeader, ThyCardContent], exports: [ThyCard, ThyCardHeader, ThyCardContent] }); }
141
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCardModule, imports: [CommonModule] }); }
139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
140
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyCardModule, imports: [CommonModule, ThyCard, ThyCardHeader, ThyCardContent], exports: [ThyCard, ThyCardHeader, ThyCardContent] }); }
141
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCardModule, imports: [CommonModule] }); }
142
142
  }
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyCardModule, decorators: [{
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyCardModule, decorators: [{
144
144
  type: NgModule,
145
145
  args: [{
146
146
  imports: [CommonModule, ThyCard, ThyCardHeader, ThyCardContent],
@@ -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, ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-card-header',\n '[class.thy-card-header--sm]': 'thySize() === \"sm\"',\n '[class.thy-card-header--lg]': 'thySize() === \"lg\"',\n '[class.thy-card-header--md]': 'thySize() === \"md\"'\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 * @deprecated\n */\n readonly thySize = input<'sm' | 'lg' | 'md' | ''>('md');\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, ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-card',\n '[class.thy-card--divided]': '!!thyDivided()',\n '[class.thy-card--bordered]': '!!thyBordered()',\n '[class.thy-card--clear-left-right-padding]': '!thyHasLeftRightPadding()',\n '[class.thy-card-sm]': 'thySize() === \"sm\"',\n '[class.thy-card-lg]': 'thySize() === \"lg\"'\n }\n})\nexport class ThyCard {\n /**\n * 左右是否有内边距,已废弃,如需配置间距使用 spacing 工具样式覆盖默认间距\n * @deprecated\n */\n readonly thyHasLeftRightPadding = input(true, { transform: coerceBooleanProperty });\n\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 { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-card-content',\n '[class.thy-card-content--scroll]': '!!thyScroll()',\n '[class.thy-card-content--sm]': 'thySize() === \"sm\"'\n }\n})\nexport class ThyCardContent implements OnInit {\n /**\n * 内容区,滚动\n */\n readonly thyScroll = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 已废弃,Content 大小,sm 时 padding-top 间距变小\n * @deprecated\n */\n readonly thySize = input<string>('md');\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":"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"}
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, ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-card-header',\n '[class.thy-card-header--sm]': 'thySize() === \"sm\"',\n '[class.thy-card-header--lg]': 'thySize() === \"lg\"',\n '[class.thy-card-header--md]': 'thySize() === \"md\"'\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 * @deprecated\n */\n readonly thySize = input<'sm' | 'lg' | 'md' | ''>('md');\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, ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-card',\n '[class.thy-card--divided]': '!!thyDivided()',\n '[class.thy-card--bordered]': '!!thyBordered()',\n '[class.thy-card--clear-left-right-padding]': '!thyHasLeftRightPadding()',\n '[class.thy-card-sm]': 'thySize() === \"sm\"',\n '[class.thy-card-lg]': 'thySize() === \"lg\"'\n }\n})\nexport class ThyCard {\n /**\n * 左右是否有内边距,已废弃,如需配置间距使用 spacing 工具样式覆盖默认间距\n * @deprecated\n */\n readonly thyHasLeftRightPadding = input(true, { transform: coerceBooleanProperty });\n\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 { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-card-content',\n '[class.thy-card-content--scroll]': '!!thyScroll()',\n '[class.thy-card-content--sm]': 'thySize() === \"sm\"'\n }\n})\nexport class ThyCardContent implements OnInit {\n /**\n * 内容区,滚动\n */\n readonly thyScroll = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 已废弃,Content 大小,sm 时 padding-top 间距变小\n * @deprecated\n */\n readonly thySize = input<string>('md');\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":"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"}