@ng-nest/ui 21.0.13 → 22.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/fesm2022/ng-nest-ui-affix.mjs +12 -12
  2. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  3. package/fesm2022/ng-nest-ui-alert.mjs +46 -34
  4. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  5. package/fesm2022/ng-nest-ui-anchor.mjs +43 -31
  6. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  7. package/fesm2022/ng-nest-ui-api.mjs +7 -7
  8. package/fesm2022/ng-nest-ui-attachments.mjs +74 -48
  9. package/fesm2022/ng-nest-ui-attachments.mjs.map +1 -1
  10. package/fesm2022/ng-nest-ui-auto-complete.mjs +114 -70
  11. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  12. package/fesm2022/ng-nest-ui-avatar.mjs +47 -32
  13. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  14. package/fesm2022/ng-nest-ui-back-top.mjs +23 -18
  15. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  16. package/fesm2022/ng-nest-ui-badge.mjs +30 -23
  17. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  18. package/fesm2022/ng-nest-ui-base-form.mjs +75 -44
  19. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  20. package/fesm2022/ng-nest-ui-bubble.mjs +76 -48
  21. package/fesm2022/ng-nest-ui-bubble.mjs.map +1 -1
  22. package/fesm2022/ng-nest-ui-button.mjs +53 -42
  23. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  24. package/fesm2022/ng-nest-ui-calendar.mjs +30 -20
  25. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  26. package/fesm2022/ng-nest-ui-card.mjs +21 -16
  27. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  28. package/fesm2022/ng-nest-ui-carousel.mjs +68 -46
  29. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  30. package/fesm2022/ng-nest-ui-cascade.mjs +121 -73
  31. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  32. package/fesm2022/ng-nest-ui-checkbox.mjs +54 -38
  33. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  34. package/fesm2022/ng-nest-ui-collapse.mjs +38 -30
  35. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  36. package/fesm2022/ng-nest-ui-color-picker.mjs +119 -72
  37. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  38. package/fesm2022/ng-nest-ui-color.mjs +22 -16
  39. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  40. package/fesm2022/ng-nest-ui-comment.mjs +23 -21
  41. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  42. package/fesm2022/ng-nest-ui-container.mjs +40 -37
  43. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  44. package/fesm2022/ng-nest-ui-contextmenu.mjs +71 -45
  45. package/fesm2022/ng-nest-ui-contextmenu.mjs.map +1 -1
  46. package/fesm2022/ng-nest-ui-core.mjs +24 -21
  47. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  48. package/fesm2022/ng-nest-ui-coversations.mjs +25 -18
  49. package/fesm2022/ng-nest-ui-coversations.mjs.map +1 -1
  50. package/fesm2022/ng-nest-ui-crumb.mjs +15 -13
  51. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  52. package/fesm2022/ng-nest-ui-date-picker.mjs +425 -256
  53. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  54. package/fesm2022/ng-nest-ui-description.mjs +42 -31
  55. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  56. package/fesm2022/ng-nest-ui-dialog.mjs +106 -82
  57. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  58. package/fesm2022/ng-nest-ui-divider.mjs +24 -17
  59. package/fesm2022/ng-nest-ui-divider.mjs.map +1 -1
  60. package/fesm2022/ng-nest-ui-doc.mjs +7 -7
  61. package/fesm2022/ng-nest-ui-drag.mjs +10 -10
  62. package/fesm2022/ng-nest-ui-drawer.mjs +52 -43
  63. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  64. package/fesm2022/ng-nest-ui-dropdown.mjs +94 -58
  65. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  66. package/fesm2022/ng-nest-ui-empty.mjs +14 -12
  67. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  68. package/fesm2022/ng-nest-ui-examples.mjs +7 -7
  69. package/fesm2022/ng-nest-ui-find.mjs +111 -71
  70. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  71. package/fesm2022/ng-nest-ui-form.mjs +45 -33
  72. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  73. package/fesm2022/ng-nest-ui-highlight.mjs +26 -20
  74. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  75. package/fesm2022/ng-nest-ui-i18n.mjs +16 -15
  76. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  77. package/fesm2022/ng-nest-ui-icon.mjs +28 -21
  78. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  79. package/fesm2022/ng-nest-ui-image.mjs +57 -51
  80. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  81. package/fesm2022/ng-nest-ui-inner.mjs +11 -11
  82. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  83. package/fesm2022/ng-nest-ui-input-number.mjs +63 -42
  84. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  85. package/fesm2022/ng-nest-ui-input.mjs +130 -85
  86. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  87. package/fesm2022/ng-nest-ui-keyword.mjs +19 -15
  88. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  89. package/fesm2022/ng-nest-ui-layout.mjs +37 -31
  90. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  91. package/fesm2022/ng-nest-ui-link.mjs +23 -18
  92. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  93. package/fesm2022/ng-nest-ui-list.mjs +137 -89
  94. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  95. package/fesm2022/ng-nest-ui-loading.mjs +36 -25
  96. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  97. package/fesm2022/ng-nest-ui-menu.mjs +68 -45
  98. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  99. package/fesm2022/ng-nest-ui-message-box.mjs +10 -10
  100. package/fesm2022/ng-nest-ui-message.mjs +10 -10
  101. package/fesm2022/ng-nest-ui-notification.mjs +10 -10
  102. package/fesm2022/ng-nest-ui-outlet.mjs +11 -9
  103. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  104. package/fesm2022/ng-nest-ui-page-header.mjs +20 -15
  105. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  106. package/fesm2022/ng-nest-ui-pagination.mjs +69 -48
  107. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  108. package/fesm2022/ng-nest-ui-pattern.mjs +7 -7
  109. package/fesm2022/ng-nest-ui-popconfirm.mjs +40 -27
  110. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  111. package/fesm2022/ng-nest-ui-popover.mjs +57 -38
  112. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  113. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  114. package/fesm2022/ng-nest-ui-progress.mjs +60 -41
  115. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  116. package/fesm2022/ng-nest-ui-prompts.mjs +18 -15
  117. package/fesm2022/ng-nest-ui-prompts.mjs.map +1 -1
  118. package/fesm2022/ng-nest-ui-radio.mjs +50 -35
  119. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  120. package/fesm2022/ng-nest-ui-rate.mjs +43 -29
  121. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  122. package/fesm2022/ng-nest-ui-resizable.mjs +18 -16
  123. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  124. package/fesm2022/ng-nest-ui-result.mjs +22 -16
  125. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  126. package/fesm2022/ng-nest-ui-ripple.mjs +14 -13
  127. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  128. package/fesm2022/ng-nest-ui-scrollable.mjs +41 -24
  129. package/fesm2022/ng-nest-ui-scrollable.mjs.map +1 -1
  130. package/fesm2022/ng-nest-ui-select.mjs +197 -118
  131. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  132. package/fesm2022/ng-nest-ui-sender.mjs +43 -31
  133. package/fesm2022/ng-nest-ui-sender.mjs.map +1 -1
  134. package/fesm2022/ng-nest-ui-skeleton.mjs +17 -15
  135. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  136. package/fesm2022/ng-nest-ui-slider-select.mjs +85 -53
  137. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  138. package/fesm2022/ng-nest-ui-slider.mjs +58 -37
  139. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  140. package/fesm2022/ng-nest-ui-splitter.mjs +32 -24
  141. package/fesm2022/ng-nest-ui-splitter.mjs.map +1 -1
  142. package/fesm2022/ng-nest-ui-statistic.mjs +44 -30
  143. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  144. package/fesm2022/ng-nest-ui-steps.mjs +30 -22
  145. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  146. package/fesm2022/ng-nest-ui-suggestion.mjs +23 -20
  147. package/fesm2022/ng-nest-ui-suggestion.mjs.map +1 -1
  148. package/fesm2022/ng-nest-ui-switch.mjs +35 -25
  149. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  150. package/fesm2022/ng-nest-ui-table-view.mjs +78 -69
  151. package/fesm2022/ng-nest-ui-table-view.mjs.map +1 -1
  152. package/fesm2022/ng-nest-ui-table.mjs +320 -205
  153. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  154. package/fesm2022/ng-nest-ui-tabs.mjs +74 -56
  155. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  156. package/fesm2022/ng-nest-ui-tag.mjs +30 -23
  157. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  158. package/fesm2022/ng-nest-ui-text-retract.mjs +19 -15
  159. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  160. package/fesm2022/ng-nest-ui-textarea.mjs +69 -44
  161. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  162. package/fesm2022/ng-nest-ui-theme.mjs +34 -23
  163. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  164. package/fesm2022/ng-nest-ui-thought-chain.mjs +26 -19
  165. package/fesm2022/ng-nest-ui-thought-chain.mjs.map +1 -1
  166. package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
  167. package/fesm2022/ng-nest-ui-time-picker.mjs +164 -96
  168. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  169. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  170. package/fesm2022/ng-nest-ui-timeline.mjs +26 -19
  171. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  172. package/fesm2022/ng-nest-ui-tooltip.mjs +53 -35
  173. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  174. package/fesm2022/ng-nest-ui-transfer.mjs +66 -40
  175. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  176. package/fesm2022/ng-nest-ui-tree-file.mjs +39 -28
  177. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  178. package/fesm2022/ng-nest-ui-tree-select.mjs +186 -111
  179. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  180. package/fesm2022/ng-nest-ui-tree.mjs +166 -105
  181. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  182. package/fesm2022/ng-nest-ui-typography.mjs +16 -13
  183. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  184. package/fesm2022/ng-nest-ui-upload.mjs +81 -53
  185. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  186. package/fesm2022/ng-nest-ui-watermark.mjs +45 -35
  187. package/fesm2022/ng-nest-ui-watermark.mjs.map +1 -1
  188. package/fesm2022/ng-nest-ui-welcome.mjs +22 -16
  189. package/fesm2022/ng-nest-ui-welcome.mjs.map +1 -1
  190. package/package.json +3 -2
  191. package/types/ng-nest-ui-base-form.d.ts +3 -3
  192. package/types/ng-nest-ui-carousel.d.ts +1 -1
  193. package/types/ng-nest-ui-container.d.ts +1 -1
  194. package/types/ng-nest-ui-core.d.ts +1 -1
  195. package/types/ng-nest-ui-dialog.d.ts +1 -1
  196. package/types/ng-nest-ui-drawer.d.ts +1 -1
  197. package/types/ng-nest-ui-form.d.ts +12 -12
  198. package/types/ng-nest-ui-layout.d.ts +1 -1
  199. package/types/ng-nest-ui-list.d.ts +1 -1
  200. package/types/ng-nest-ui-portal.d.ts +3 -3
  201. package/types/ng-nest-ui-table-view.d.ts +1 -1
  202. package/types/ng-nest-ui-table.d.ts +1 -1
  203. package/types/ng-nest-ui-tabs.d.ts +1 -1
  204. package/types/ng-nest-ui-tree.d.ts +1 -1
@@ -27,82 +27,93 @@ class XAttachmentsProperty extends XFormControlFunction(X_ATTACHMENTS_CONFIG_NAM
27
27
  * @zh_CN 请求地址
28
28
  * @en_US Request address
29
29
  */
30
- this.action = input(...(ngDevMode ? [undefined, { debugName: "action" }] : []));
30
+ this.action = input(/* @ts-ignore */
31
+ ...(ngDevMode ? [undefined, { debugName: "action" }] : /* istanbul ignore next */ []));
31
32
  /**
32
33
  * @zh_CN 可拖拽上传的区域
33
34
  * @en_US Drag and drop upload area
34
35
  */
35
- this.dropContainer = input(...(ngDevMode ? [undefined, { debugName: "dropContainer" }] : []));
36
+ this.dropContainer = input(/* @ts-ignore */
37
+ ...(ngDevMode ? [undefined, { debugName: "dropContainer" }] : /* istanbul ignore next */ []));
36
38
  /**
37
39
  * @zh_CN 可拖拽上传的区域的图标
38
40
  * @en_US Drag and drop upload area icon
39
41
  */
40
- this.dropIcon = input(...(ngDevMode ? [undefined, { debugName: "dropIcon" }] : []));
42
+ this.dropIcon = input(/* @ts-ignore */
43
+ ...(ngDevMode ? [undefined, { debugName: "dropIcon" }] : /* istanbul ignore next */ []));
41
44
  /**
42
45
  * @zh_CN 可拖拽上传的区域的标题
43
46
  * @en_US Drag and drop upload area title
44
47
  */
45
- this.dropTitle = input(...(ngDevMode ? [undefined, { debugName: "dropTitle" }] : []));
48
+ this.dropTitle = input(/* @ts-ignore */
49
+ ...(ngDevMode ? [undefined, { debugName: "dropTitle" }] : /* istanbul ignore next */ []));
46
50
  /**
47
51
  * @zh_CN 可拖拽上传的区域的描述
48
52
  * @en_US Drag and drop upload area description
49
53
  */
50
- this.dropDescription = input(...(ngDevMode ? [undefined, { debugName: "dropDescription" }] : []));
54
+ this.dropDescription = input(/* @ts-ignore */
55
+ ...(ngDevMode ? [undefined, { debugName: "dropDescription" }] : /* istanbul ignore next */ []));
51
56
  /**
52
57
  * @zh_CN 直接显示可拖拽上传的区域
53
58
  * @en_US Show the drag and drop upload area directly
54
59
  */
55
- this.showDrop = input(false, { ...(ngDevMode ? { debugName: "showDrop" } : {}), transform: XToBoolean });
60
+ this.showDrop = input(false, { ...(ngDevMode ? { debugName: "showDrop" } : /* istanbul ignore next */ {}), transform: XToBoolean });
56
61
  /**
57
62
  * @zh_CN 上传文件类型,与原生的 input file 组件一致
58
63
  * @en_US Upload file type, consistent with native input file component
59
64
  */
60
- this.accept = input(...(ngDevMode ? [undefined, { debugName: "accept" }] : []));
65
+ this.accept = input(/* @ts-ignore */
66
+ ...(ngDevMode ? [undefined, { debugName: "accept" }] : /* istanbul ignore next */ []));
61
67
  /**
62
68
  * @zh_CN 文件显示类型
63
69
  * @en_US File display type
64
70
  */
65
- this.type = input('list', ...(ngDevMode ? [{ debugName: "type" }] : []));
71
+ this.type = input('list', /* @ts-ignore */
72
+ ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
66
73
  /**
67
74
  * @zh_CN 图片类型下面加载失败显示
68
75
  * @en_US Photo type below loading failed display
69
76
  */
70
- this.imgFallback = input(...(ngDevMode ? [undefined, { debugName: "imgFallback" }] : []));
77
+ this.imgFallback = input(/* @ts-ignore */
78
+ ...(ngDevMode ? [undefined, { debugName: "imgFallback" }] : /* istanbul ignore next */ []));
71
79
  /**
72
80
  * @zh_CN 图片剪裁
73
81
  * @en_US Picture cropping
74
82
  */
75
- this.imgCut = input(false, { ...(ngDevMode ? { debugName: "imgCut" } : {}), transform: XToBoolean });
83
+ this.imgCut = input(false, { ...(ngDevMode ? { debugName: "imgCut" } : /* istanbul ignore next */ {}), transform: XToBoolean });
76
84
  /**
77
85
  * @zh_CN 多文件上传
78
86
  * @en_US Multiple file upload
79
87
  */
80
- this.multiple = input(false, { ...(ngDevMode ? { debugName: "multiple" } : {}), transform: XToBoolean });
88
+ this.multiple = input(false, { ...(ngDevMode ? { debugName: "multiple" } : /* istanbul ignore next */ {}), transform: XToBoolean });
81
89
  /**
82
90
  * @zh_CN 点击下载
83
91
  * @en_US click download
84
92
  */
85
- this.download = input(this.config?.download ?? true, { ...(ngDevMode ? { debugName: "download" } : {}), transform: XToBoolean });
93
+ this.download = input(this.config?.download ?? true, { ...(ngDevMode ? { debugName: "download" } : /* istanbul ignore next */ {}), transform: XToBoolean });
86
94
  /**
87
95
  * @zh_CN 多次上传的模式,cover 覆盖现有, add 继续添加
88
96
  * @en_US For many upload mode, 'cover' covers the existing, 'add' continue to add
89
97
  */
90
- this.multipleModel = input(this.config?.multipleModel ?? 'cover', ...(ngDevMode ? [{ debugName: "multipleModel" }] : []));
98
+ this.multipleModel = input(this.config?.multipleModel ?? 'cover', /* @ts-ignore */
99
+ ...(ngDevMode ? [{ debugName: "multipleModel" }] : /* istanbul ignore next */ []));
91
100
  /**
92
101
  * @zh_CN 文件列表自定义显示模板
93
102
  * @en_US File list custom display template
94
103
  */
95
- this.filesTpl = input(...(ngDevMode ? [undefined, { debugName: "filesTpl" }] : []));
104
+ this.filesTpl = input(/* @ts-ignore */
105
+ ...(ngDevMode ? [undefined, { debugName: "filesTpl" }] : /* istanbul ignore next */ []));
96
106
  /**
97
107
  * @zh_CN 限制单次上传文件个数,只有开启多文件上传 multiple 时生效,默认不做限制
98
108
  * @en_US Limit the number of files uploaded files. Do not restrict the default
99
109
  */
100
- this.maxLimit = input(-1, { ...(ngDevMode ? { debugName: "maxLimit" } : {}), transform: XToNumber });
110
+ this.maxLimit = input(-1, { ...(ngDevMode ? { debugName: "maxLimit" } : /* istanbul ignore next */ {}), transform: XToNumber });
101
111
  /**
102
112
  * @zh_CN 设置上传的请求头部
103
113
  * @en_US Set the upload request header
104
114
  */
105
- this.headers = input(...(ngDevMode ? [undefined, { debugName: "headers" }] : []));
115
+ this.headers = input(/* @ts-ignore */
116
+ ...(ngDevMode ? [undefined, { debugName: "headers" }] : /* istanbul ignore next */ []));
106
117
  /**
107
118
  * @zh_CN 删除按钮的事件
108
119
  * @en_US Delete button event
@@ -129,10 +140,10 @@ class XAttachmentsProperty extends XFormControlFunction(X_ATTACHMENTS_CONFIG_NAM
129
140
  */
130
141
  this.uploadError = output();
131
142
  }
132
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XAttachmentsProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
133
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.1", type: XAttachmentsProperty, isStandalone: true, selector: "x-attachments-property", inputs: { action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: false, transformFunction: null }, dropContainer: { classPropertyName: "dropContainer", publicName: "dropContainer", isSignal: true, isRequired: false, transformFunction: null }, dropIcon: { classPropertyName: "dropIcon", publicName: "dropIcon", isSignal: true, isRequired: false, transformFunction: null }, dropTitle: { classPropertyName: "dropTitle", publicName: "dropTitle", isSignal: true, isRequired: false, transformFunction: null }, dropDescription: { classPropertyName: "dropDescription", publicName: "dropDescription", isSignal: true, isRequired: false, transformFunction: null }, showDrop: { classPropertyName: "showDrop", publicName: "showDrop", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, imgFallback: { classPropertyName: "imgFallback", publicName: "imgFallback", isSignal: true, isRequired: false, transformFunction: null }, imgCut: { classPropertyName: "imgCut", publicName: "imgCut", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, download: { classPropertyName: "download", publicName: "download", isSignal: true, isRequired: false, transformFunction: null }, multipleModel: { classPropertyName: "multipleModel", publicName: "multipleModel", isSignal: true, isRequired: false, transformFunction: null }, filesTpl: { classPropertyName: "filesTpl", publicName: "filesTpl", isSignal: true, isRequired: false, transformFunction: null }, maxLimit: { classPropertyName: "maxLimit", publicName: "maxLimit", isSignal: true, isRequired: false, transformFunction: null }, headers: { classPropertyName: "headers", publicName: "headers", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { removeClick: "removeClick", uploadReady: "uploadReady", uploading: "uploading", uploadSuccess: "uploadSuccess", uploadError: "uploadError" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
143
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XAttachmentsProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
144
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.1", type: XAttachmentsProperty, isStandalone: true, selector: "x-attachments-property", inputs: { action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: false, transformFunction: null }, dropContainer: { classPropertyName: "dropContainer", publicName: "dropContainer", isSignal: true, isRequired: false, transformFunction: null }, dropIcon: { classPropertyName: "dropIcon", publicName: "dropIcon", isSignal: true, isRequired: false, transformFunction: null }, dropTitle: { classPropertyName: "dropTitle", publicName: "dropTitle", isSignal: true, isRequired: false, transformFunction: null }, dropDescription: { classPropertyName: "dropDescription", publicName: "dropDescription", isSignal: true, isRequired: false, transformFunction: null }, showDrop: { classPropertyName: "showDrop", publicName: "showDrop", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, imgFallback: { classPropertyName: "imgFallback", publicName: "imgFallback", isSignal: true, isRequired: false, transformFunction: null }, imgCut: { classPropertyName: "imgCut", publicName: "imgCut", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, download: { classPropertyName: "download", publicName: "download", isSignal: true, isRequired: false, transformFunction: null }, multipleModel: { classPropertyName: "multipleModel", publicName: "multipleModel", isSignal: true, isRequired: false, transformFunction: null }, filesTpl: { classPropertyName: "filesTpl", publicName: "filesTpl", isSignal: true, isRequired: false, transformFunction: null }, maxLimit: { classPropertyName: "maxLimit", publicName: "maxLimit", isSignal: true, isRequired: false, transformFunction: null }, headers: { classPropertyName: "headers", publicName: "headers", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { removeClick: "removeClick", uploadReady: "uploadReady", uploading: "uploading", uploadSuccess: "uploadSuccess", uploadError: "uploadError" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
134
145
  }
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XAttachmentsProperty, decorators: [{
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XAttachmentsProperty, decorators: [{
136
147
  type: Component,
137
148
  args: [{ selector: `${XAttachmentsPrefix}-property`, template: '' }]
138
149
  }], propDecorators: { action: [{ type: i0.Input, args: [{ isSignal: true, alias: "action", required: false }] }], dropContainer: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropContainer", required: false }] }], dropIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropIcon", required: false }] }], dropTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropTitle", required: false }] }], dropDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropDescription", required: false }] }], showDrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDrop", required: false }] }], accept: [{ type: i0.Input, args: [{ isSignal: true, alias: "accept", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], imgFallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "imgFallback", required: false }] }], imgCut: [{ type: i0.Input, args: [{ isSignal: true, alias: "imgCut", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], download: [{ type: i0.Input, args: [{ isSignal: true, alias: "download", required: false }] }], multipleModel: [{ type: i0.Input, args: [{ isSignal: true, alias: "multipleModel", required: false }] }], filesTpl: [{ type: i0.Input, args: [{ isSignal: true, alias: "filesTpl", required: false }] }], maxLimit: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLimit", required: false }] }], headers: [{ type: i0.Input, args: [{ isSignal: true, alias: "headers", required: false }] }], removeClick: [{ type: i0.Output, args: ["removeClick"] }], uploadReady: [{ type: i0.Output, args: ["uploadReady"] }], uploading: [{ type: i0.Output, args: ["uploading"] }], uploadSuccess: [{ type: i0.Output, args: ["uploadSuccess"] }], uploadError: [{ type: i0.Output, args: ["uploadError"] }] } });
@@ -153,47 +164,54 @@ class XFileCardProperty extends XPropertyFunction(X_FILE_CARD_CONFIG_NAME) {
153
164
  * @zh_CN 图标
154
165
  * @en_US Icon
155
166
  */
156
- this.icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : []));
167
+ this.icon = input(/* @ts-ignore */
168
+ ...(ngDevMode ? [undefined, { debugName: "icon" }] : /* istanbul ignore next */ []));
157
169
  /**
158
170
  * @zh_CN 图标颜色
159
171
  * @en_US Icon color
160
172
  */
161
- this.iconColor = input(...(ngDevMode ? [undefined, { debugName: "iconColor" }] : []));
173
+ this.iconColor = input(/* @ts-ignore */
174
+ ...(ngDevMode ? [undefined, { debugName: "iconColor" }] : /* istanbul ignore next */ []));
162
175
  /**
163
176
  * @zh_CN 文件名
164
177
  * @en_US File name
165
178
  */
166
- this.name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : []));
179
+ this.name = input(/* @ts-ignore */
180
+ ...(ngDevMode ? [undefined, { debugName: "name" }] : /* istanbul ignore next */ []));
167
181
  /**
168
182
  * @zh_CN 文件大小
169
183
  * @en_US File size
170
184
  */
171
- this.size = input(0, { ...(ngDevMode ? { debugName: "size" } : {}), transform: XToNumber });
185
+ this.size = input(0, { ...(ngDevMode ? { debugName: "size" } : /* istanbul ignore next */ {}), transform: XToNumber });
172
186
  /**
173
187
  * @zh_CN 文件描述
174
188
  * @en_US File description
175
189
  */
176
- this.description = input(...(ngDevMode ? [undefined, { debugName: "description" }] : []));
190
+ this.description = input(/* @ts-ignore */
191
+ ...(ngDevMode ? [undefined, { debugName: "description" }] : /* istanbul ignore next */ []));
177
192
  /**
178
193
  * @zh_CN 文件类型
179
194
  * @en_US File type
180
195
  */
181
- this.type = input('file', ...(ngDevMode ? [{ debugName: "type" }] : []));
196
+ this.type = input('file', /* @ts-ignore */
197
+ ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
182
198
  /**
183
199
  * @zh_CN 文件/图片链接地址
184
200
  * @en_US File/image url
185
201
  */
186
- this.url = input(...(ngDevMode ? [undefined, { debugName: "url" }] : []));
202
+ this.url = input(/* @ts-ignore */
203
+ ...(ngDevMode ? [undefined, { debugName: "url" }] : /* istanbul ignore next */ []));
187
204
  /**
188
205
  * @zh_CN 形态变体
189
206
  * @en_US Bubble variant
190
207
  */
191
- this.variant = input(this.config?.variant ?? 'outlined', ...(ngDevMode ? [{ debugName: "variant" }] : []));
208
+ this.variant = input(this.config?.variant ?? 'outlined', /* @ts-ignore */
209
+ ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
192
210
  }
193
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XFileCardProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
194
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.1", type: XFileCardProperty, isStandalone: true, selector: "x-file-card-property", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconColor: { classPropertyName: "iconColor", publicName: "iconColor", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
211
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XFileCardProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
212
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.1", type: XFileCardProperty, isStandalone: true, selector: "x-file-card-property", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconColor: { classPropertyName: "iconColor", publicName: "iconColor", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
195
213
  }
196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XFileCardProperty, decorators: [{
214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XFileCardProperty, decorators: [{
197
215
  type: Component,
198
216
  args: [{ selector: `${XFileCardPrefix}-property`, template: '' }]
199
217
  }], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconColor", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], url: [{ type: i0.Input, args: [{ isSignal: true, alias: "url", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
@@ -202,10 +220,10 @@ class XAttachmentsComponent extends XAttachmentsProperty {
202
220
  valueChange(value) {
203
221
  this.onChange && this.onChange(value);
204
222
  }
205
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XAttachmentsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
206
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.1", type: XAttachmentsComponent, isStandalone: true, selector: "x-attachments", providers: [XValueAccessor(XAttachmentsComponent)], usesInheritance: true, ngImport: i0, template: "<div class=\"x-attachments\">\r\n <x-upload\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"valueChange($event)\"\r\n [action]=\"action()\"\r\n [dropContainer]=\"dropContainer()\"\r\n [dropIcon]=\"dropIcon()\"\r\n [dropTitle]=\"dropTitle()\"\r\n [dropDescription]=\"dropDescription()\"\r\n [showDrop]=\"showDrop()\"\r\n [text]=\"textTpl\"\r\n [accept]=\"accept()\"\r\n [type]=\"type()\"\r\n [imgFallback]=\"imgFallback()\"\r\n [imgCut]=\"imgCut()\"\r\n [multiple]=\"multiple()\"\r\n [download]=\"download()\"\r\n [multipleModel]=\"multipleModel()\"\r\n [filesTpl]=\"filesTpl() ?? innerfilesTpl\"\r\n [maxLimit]=\"maxLimit()\"\r\n [headers]=\"headers()\"\r\n (removeClick)=\"removeClick.emit($event)\"\r\n (uploadReady)=\"uploadReady.emit($event)\"\r\n (uploading)=\"uploading.emit($event)\"\r\n (uploadSuccess)=\"uploadSuccess.emit($event)\"\r\n (uploadError)=\"uploadError.emit($event)\"\r\n ></x-upload>\r\n <ng-template #textTpl>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n <ng-template #innerfilesTpl></ng-template>\r\n</div>\r\n", styles: [".x-attachments{margin:0;padding:0}.x-attachments{width:100%;height:100%}.x-attachments-title{color:var(--x-text-400);margin-bottom:.5rem}.x-attachments-list{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none;list-style:none;padding-inline-start:0;margin-block:0;align-items:stretch}.x-attachments-vertical .x-attachments-list{flex-direction:column;align-items:flex-start}.x-attachments-wrap .x-attachments-list{flex-wrap:wrap}.x-attachments-item{flex:none;min-width:10rem;display:inline-flex;gap:.5rem;padding:.5rem 1rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);transition:all var(--x-animation-duration-base);cursor:pointer}.x-attachments-item:hover:not(.x-disabled){background-color:var(--x-background-a200)}.x-attachments-item.x-disabled{cursor:default;background-color:var(--x-background-a300)}.x-attachments-item-content{flex:1;display:flex;flex-direction:column;gap:.25rem}.x-attachments-item-label{margin:0;font-weight:600}.x-attachments-item-description{color:var(--x-text-400)}.x-attachments-item-only-label{font-weight:500}.x-attachments-item-only-description{color:currentColor}x-attachments{display:block;width:100%;height:100%}\n"], dependencies: [{ 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: XUploadComponent, selector: "x-upload" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
223
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XAttachmentsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
224
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.1", type: XAttachmentsComponent, isStandalone: true, selector: "x-attachments", providers: [XValueAccessor(XAttachmentsComponent)], usesInheritance: true, ngImport: i0, template: "<div class=\"x-attachments\">\r\n <x-upload\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"valueChange($event)\"\r\n [action]=\"action()\"\r\n [dropContainer]=\"dropContainer()\"\r\n [dropIcon]=\"dropIcon()\"\r\n [dropTitle]=\"dropTitle()\"\r\n [dropDescription]=\"dropDescription()\"\r\n [showDrop]=\"showDrop()\"\r\n [text]=\"textTpl\"\r\n [accept]=\"accept()\"\r\n [type]=\"type()\"\r\n [imgFallback]=\"imgFallback()\"\r\n [imgCut]=\"imgCut()\"\r\n [multiple]=\"multiple()\"\r\n [download]=\"download()\"\r\n [multipleModel]=\"multipleModel()\"\r\n [filesTpl]=\"filesTpl() ?? innerfilesTpl\"\r\n [maxLimit]=\"maxLimit()\"\r\n [headers]=\"headers()\"\r\n (removeClick)=\"removeClick.emit($event)\"\r\n (uploadReady)=\"uploadReady.emit($event)\"\r\n (uploading)=\"uploading.emit($event)\"\r\n (uploadSuccess)=\"uploadSuccess.emit($event)\"\r\n (uploadError)=\"uploadError.emit($event)\"\r\n ></x-upload>\r\n <ng-template #textTpl>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n <ng-template #innerfilesTpl></ng-template>\r\n</div>\r\n", styles: [".x-attachments{margin:0;padding:0}.x-attachments{width:100%;height:100%}.x-attachments-title{color:var(--x-text-400);margin-bottom:.5rem}.x-attachments-list{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none;list-style:none;padding-inline-start:0;margin-block:0;align-items:stretch}.x-attachments-vertical .x-attachments-list{flex-direction:column;align-items:flex-start}.x-attachments-wrap .x-attachments-list{flex-wrap:wrap}.x-attachments-item{flex:none;min-width:10rem;display:inline-flex;gap:.5rem;padding:.5rem 1rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);transition:all var(--x-animation-duration-base);cursor:pointer}.x-attachments-item:hover:not(.x-disabled){background-color:var(--x-background-a200)}.x-attachments-item.x-disabled{cursor:default;background-color:var(--x-background-a300)}.x-attachments-item-content{flex:1;display:flex;flex-direction:column;gap:.25rem}.x-attachments-item-label{margin:0;font-weight:600}.x-attachments-item-description{color:var(--x-text-400)}.x-attachments-item-only-label{font-weight:500}.x-attachments-item-only-description{color:currentColor}x-attachments{display:block;width:100%;height:100%}\n"], dependencies: [{ 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: XUploadComponent, selector: "x-upload" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
207
225
  }
208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XAttachmentsComponent, decorators: [{
226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XAttachmentsComponent, decorators: [{
209
227
  type: Component,
210
228
  args: [{ selector: 'x-attachments', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, XUploadComponent], providers: [XValueAccessor(XAttachmentsComponent)], template: "<div class=\"x-attachments\">\r\n <x-upload\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"valueChange($event)\"\r\n [action]=\"action()\"\r\n [dropContainer]=\"dropContainer()\"\r\n [dropIcon]=\"dropIcon()\"\r\n [dropTitle]=\"dropTitle()\"\r\n [dropDescription]=\"dropDescription()\"\r\n [showDrop]=\"showDrop()\"\r\n [text]=\"textTpl\"\r\n [accept]=\"accept()\"\r\n [type]=\"type()\"\r\n [imgFallback]=\"imgFallback()\"\r\n [imgCut]=\"imgCut()\"\r\n [multiple]=\"multiple()\"\r\n [download]=\"download()\"\r\n [multipleModel]=\"multipleModel()\"\r\n [filesTpl]=\"filesTpl() ?? innerfilesTpl\"\r\n [maxLimit]=\"maxLimit()\"\r\n [headers]=\"headers()\"\r\n (removeClick)=\"removeClick.emit($event)\"\r\n (uploadReady)=\"uploadReady.emit($event)\"\r\n (uploading)=\"uploading.emit($event)\"\r\n (uploadSuccess)=\"uploadSuccess.emit($event)\"\r\n (uploadError)=\"uploadError.emit($event)\"\r\n ></x-upload>\r\n <ng-template #textTpl>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n <ng-template #innerfilesTpl></ng-template>\r\n</div>\r\n", styles: [".x-attachments{margin:0;padding:0}.x-attachments{width:100%;height:100%}.x-attachments-title{color:var(--x-text-400);margin-bottom:.5rem}.x-attachments-list{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none;list-style:none;padding-inline-start:0;margin-block:0;align-items:stretch}.x-attachments-vertical .x-attachments-list{flex-direction:column;align-items:flex-start}.x-attachments-wrap .x-attachments-list{flex-wrap:wrap}.x-attachments-item{flex:none;min-width:10rem;display:inline-flex;gap:.5rem;padding:.5rem 1rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);transition:all var(--x-animation-duration-base);cursor:pointer}.x-attachments-item:hover:not(.x-disabled){background-color:var(--x-background-a200)}.x-attachments-item.x-disabled{cursor:default;background-color:var(--x-background-a300)}.x-attachments-item-content{flex:1;display:flex;flex-direction:column;gap:.25rem}.x-attachments-item-label{margin:0;font-weight:600}.x-attachments-item-description{color:var(--x-text-400)}.x-attachments-item-only-label{font-weight:500}.x-attachments-item-only-description{color:currentColor}x-attachments{display:block;width:100%;height:100%}\n"] }]
211
229
  }] });
@@ -260,7 +278,8 @@ class XFileCardComponent extends XFileCardProperty {
260
278
  else {
261
279
  return '';
262
280
  }
263
- }, ...(ngDevMode ? [{ debugName: "iconString" }] : []));
281
+ }, /* @ts-ignore */
282
+ ...(ngDevMode ? [{ debugName: "iconString" }] : /* istanbul ignore next */ []));
264
283
  this.descriptionString = computed(() => {
265
284
  if (XIsString(this.description())) {
266
285
  return this.description();
@@ -268,7 +287,8 @@ class XFileCardComponent extends XFileCardProperty {
268
287
  else {
269
288
  return '';
270
289
  }
271
- }, ...(ngDevMode ? [{ debugName: "descriptionString" }] : []));
290
+ }, /* @ts-ignore */
291
+ ...(ngDevMode ? [{ debugName: "descriptionString" }] : /* istanbul ignore next */ []));
272
292
  this.sizeTransform = computed(() => {
273
293
  if (this.size() && this.size() !== 0) {
274
294
  return XFileSize(this.size(), { precision: 0 });
@@ -276,12 +296,14 @@ class XFileCardComponent extends XFileCardProperty {
276
296
  else {
277
297
  return '';
278
298
  }
279
- }, ...(ngDevMode ? [{ debugName: "sizeTransform" }] : []));
299
+ }, /* @ts-ignore */
300
+ ...(ngDevMode ? [{ debugName: "sizeTransform" }] : /* istanbul ignore next */ []));
280
301
  this.nameSubfix = computed(() => {
281
302
  const name = this.name();
282
303
  const index = name.lastIndexOf('.');
283
304
  return index > -1 ? name.substring(index + 1).toLowerCase() : '';
284
- }, ...(ngDevMode ? [{ debugName: "nameSubfix" }] : []));
305
+ }, /* @ts-ignore */
306
+ ...(ngDevMode ? [{ debugName: "nameSubfix" }] : /* istanbul ignore next */ []));
285
307
  this.defaultIcon = computed(() => {
286
308
  if (Object.keys(defaultIcon).includes(this.nameSubfix())) {
287
309
  return defaultIcon[this.nameSubfix()];
@@ -289,32 +311,36 @@ class XFileCardComponent extends XFileCardProperty {
289
311
  else {
290
312
  return defaultIcon['default'];
291
313
  }
292
- }, ...(ngDevMode ? [{ debugName: "defaultIcon" }] : []));
314
+ }, /* @ts-ignore */
315
+ ...(ngDevMode ? [{ debugName: "defaultIcon" }] : /* istanbul ignore next */ []));
293
316
  this.defaultColor = computed(() => {
294
317
  return defaultIconColors[this.defaultIcon()];
295
- }, ...(ngDevMode ? [{ debugName: "defaultColor" }] : []));
318
+ }, /* @ts-ignore */
319
+ ...(ngDevMode ? [{ debugName: "defaultColor" }] : /* istanbul ignore next */ []));
296
320
  this.classMap = computed(() => ({
297
321
  [`${XFileCardPrefix}-${this.variant()}`]: !XIsEmpty(this.variant())
298
- }), ...(ngDevMode ? [{ debugName: "classMap" }] : []));
322
+ }), /* @ts-ignore */
323
+ ...(ngDevMode ? [{ debugName: "classMap" }] : /* istanbul ignore next */ []));
299
324
  this.isImage = computed(() => {
300
325
  const imageExtensions = ['png', 'jpg', 'jpeg', 'gif', 'bmp'];
301
326
  return imageExtensions.includes(this.nameSubfix().toLowerCase());
302
- }, ...(ngDevMode ? [{ debugName: "isImage" }] : []));
327
+ }, /* @ts-ignore */
328
+ ...(ngDevMode ? [{ debugName: "isImage" }] : /* istanbul ignore next */ []));
303
329
  }
304
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XFileCardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
305
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: XFileCardComponent, isStandalone: true, selector: "x-file-card", usesInheritance: true, ngImport: i0, template: "<div class=\"x-file-card\" [ngClass]=\"classMap()\" [class.x-file-card-image]=\"isImage() && !!url()\">\r\n @if (isImage() && !!url()) {\r\n <x-image width=\"100px\" height=\"100px\" [src]=\"url()\" [alt]=\"descriptionString()\"></x-image>\r\n } @else {\r\n @if (icon()) {\r\n <div class=\"x-file-card-icon\">\r\n <ng-container *xOutlet=\"icon()\">\r\n <x-icon [type]=\"iconString()\" [style.color]=\"iconColor()\"></x-icon>\r\n </ng-container>\r\n </div>\r\n } @else {\r\n <div class=\"x-file-card-icon\">\r\n <x-icon [type]=\"defaultIcon()\" [style.color]=\"iconColor() ?? defaultColor()\"></x-icon>\r\n </div>\r\n }\r\n <div class=\"x-file-card-content\">\r\n @if (name()) {\r\n <div class=\"x-file-card-name\">\r\n <ng-container *xOutlet=\"name()\">{{ name() }}</ng-container>\r\n </div>\r\n }\r\n @if (size()) {\r\n <div class=\"x-file-card-size\">\r\n {{ sizeTransform() }}\r\n </div>\r\n }\r\n @if (description()) {\r\n <div class=\"x-file-card-description\">\r\n <ng-container *xOutlet=\"description()\">{{ description() }}</ng-container>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: ["x-file-card{width:100%;height:100%}.x-file-card{margin:0;padding:0}.x-file-card{position:relative;box-sizing:border-box;display:inline-flex;flex-wrap:nowrap;gap:var(--x-padding-small);padding:var(--x-padding-mini) var(--x-padding-medium);align-items:center;border-radius:var(--x-border-radius);word-break:break-word;min-width:14rem}.x-file-card-image{padding:0;min-width:initial}.x-file-card-icon x-icon{font-size:2.5rem}.x-file-card-outlined{border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-file-card-filled{background-color:var(--x-background-a200)}.x-file-card-shadow{box-shadow:var(--x-box-shadow)}.x-file-card-size,.x-file-card-description{color:var(--x-text-400)}\n"], dependencies: [{ kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: XImageComponent, selector: "x-image" }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
330
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XFileCardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
331
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: XFileCardComponent, isStandalone: true, selector: "x-file-card", usesInheritance: true, ngImport: i0, template: "<div class=\"x-file-card\" [ngClass]=\"classMap()\" [class.x-file-card-image]=\"isImage() && !!url()\">\r\n @if (isImage() && !!url()) {\r\n <x-image width=\"100px\" height=\"100px\" [src]=\"url()\" [alt]=\"descriptionString()\"></x-image>\r\n } @else {\r\n @if (icon()) {\r\n <div class=\"x-file-card-icon\">\r\n <ng-container *xOutlet=\"icon()\">\r\n <x-icon [type]=\"iconString()\" [style.color]=\"iconColor()\"></x-icon>\r\n </ng-container>\r\n </div>\r\n } @else {\r\n <div class=\"x-file-card-icon\">\r\n <x-icon [type]=\"defaultIcon()\" [style.color]=\"iconColor() ?? defaultColor()\"></x-icon>\r\n </div>\r\n }\r\n <div class=\"x-file-card-content\">\r\n @if (name()) {\r\n <div class=\"x-file-card-name\">\r\n <ng-container *xOutlet=\"name()\">{{ name() }}</ng-container>\r\n </div>\r\n }\r\n @if (size()) {\r\n <div class=\"x-file-card-size\">\r\n {{ sizeTransform() }}\r\n </div>\r\n }\r\n @if (description()) {\r\n <div class=\"x-file-card-description\">\r\n <ng-container *xOutlet=\"description()\">{{ description() }}</ng-container>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: ["x-file-card{width:100%;height:100%}.x-file-card{margin:0;padding:0}.x-file-card{position:relative;box-sizing:border-box;display:inline-flex;flex-wrap:nowrap;gap:var(--x-padding-small);padding:var(--x-padding-mini) var(--x-padding-medium);align-items:center;border-radius:var(--x-border-radius);word-break:break-word;min-width:14rem}.x-file-card-image{padding:0;min-width:initial}.x-file-card-icon x-icon{font-size:2.5rem}.x-file-card-outlined{border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-file-card-filled{background-color:var(--x-background-a200)}.x-file-card-shadow{box-shadow:var(--x-box-shadow)}.x-file-card-size,.x-file-card-description{color:var(--x-text-400)}\n"], dependencies: [{ kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: XImageComponent, selector: "x-image" }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
306
332
  }
307
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XFileCardComponent, decorators: [{
333
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XFileCardComponent, decorators: [{
308
334
  type: Component,
309
335
  args: [{ selector: 'x-file-card', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [XOutletDirective, XImageComponent, XIconComponent, NgClass], template: "<div class=\"x-file-card\" [ngClass]=\"classMap()\" [class.x-file-card-image]=\"isImage() && !!url()\">\r\n @if (isImage() && !!url()) {\r\n <x-image width=\"100px\" height=\"100px\" [src]=\"url()\" [alt]=\"descriptionString()\"></x-image>\r\n } @else {\r\n @if (icon()) {\r\n <div class=\"x-file-card-icon\">\r\n <ng-container *xOutlet=\"icon()\">\r\n <x-icon [type]=\"iconString()\" [style.color]=\"iconColor()\"></x-icon>\r\n </ng-container>\r\n </div>\r\n } @else {\r\n <div class=\"x-file-card-icon\">\r\n <x-icon [type]=\"defaultIcon()\" [style.color]=\"iconColor() ?? defaultColor()\"></x-icon>\r\n </div>\r\n }\r\n <div class=\"x-file-card-content\">\r\n @if (name()) {\r\n <div class=\"x-file-card-name\">\r\n <ng-container *xOutlet=\"name()\">{{ name() }}</ng-container>\r\n </div>\r\n }\r\n @if (size()) {\r\n <div class=\"x-file-card-size\">\r\n {{ sizeTransform() }}\r\n </div>\r\n }\r\n @if (description()) {\r\n <div class=\"x-file-card-description\">\r\n <ng-container *xOutlet=\"description()\">{{ description() }}</ng-container>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: ["x-file-card{width:100%;height:100%}.x-file-card{margin:0;padding:0}.x-file-card{position:relative;box-sizing:border-box;display:inline-flex;flex-wrap:nowrap;gap:var(--x-padding-small);padding:var(--x-padding-mini) var(--x-padding-medium);align-items:center;border-radius:var(--x-border-radius);word-break:break-word;min-width:14rem}.x-file-card-image{padding:0;min-width:initial}.x-file-card-icon x-icon{font-size:2.5rem}.x-file-card-outlined{border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-file-card-filled{background-color:var(--x-background-a200)}.x-file-card-shadow{box-shadow:var(--x-box-shadow)}.x-file-card-size,.x-file-card-description{color:var(--x-text-400)}\n"] }]
310
336
  }] });
311
337
 
312
338
  class XAttachmentsModule {
313
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XAttachmentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
314
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.1", ngImport: i0, type: XAttachmentsModule, imports: [XAttachmentsComponent, XFileCardComponent], exports: [XAttachmentsComponent, XFileCardComponent] }); }
315
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XAttachmentsModule, imports: [XAttachmentsComponent, XFileCardComponent] }); }
339
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XAttachmentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
340
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: XAttachmentsModule, imports: [XAttachmentsComponent, XFileCardComponent], exports: [XAttachmentsComponent, XFileCardComponent] }); }
341
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XAttachmentsModule, imports: [XAttachmentsComponent, XFileCardComponent] }); }
316
342
  }
317
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XAttachmentsModule, decorators: [{
343
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XAttachmentsModule, decorators: [{
318
344
  type: NgModule,
319
345
  args: [{
320
346
  exports: [XAttachmentsComponent, XFileCardComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-attachments.mjs","sources":["../../../../lib/ng-nest/ui/attachments/attachments.property.ts","../../../../lib/ng-nest/ui/attachments/attachments.component.ts","../../../../lib/ng-nest/ui/attachments/attachments.component.html","../../../../lib/ng-nest/ui/attachments/file-card.component.ts","../../../../lib/ng-nest/ui/attachments/file-card.component.html","../../../../lib/ng-nest/ui/attachments/attachments.module.ts","../../../../lib/ng-nest/ui/attachments/ng-nest-ui-attachments.ts"],"sourcesContent":["import { Component, ElementRef, input, output } from '@angular/core';\r\nimport { XBoolean, XNumber, XPropertyFunction, XTemplate, XToBoolean, XToNumber } from '@ng-nest/ui/core';\r\nimport { XUploadMultipleModel, XUploadNode, XUploadType } from '@ng-nest/ui/upload';\r\nimport { XFormControlFunction } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Attachments\r\n * @selector x-attachments\r\n * @decorator component\r\n */\r\nexport const XAttachmentsPrefix = 'x-attachments';\r\nconst X_ATTACHMENTS_CONFIG_NAME = 'attachments';\r\n\r\n/**\r\n * Attachments Property\r\n */\r\n@Component({ selector: `${XAttachmentsPrefix}-property`, template: '' })\r\nexport class XAttachmentsProperty extends XFormControlFunction(X_ATTACHMENTS_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 请求地址\r\n * @en_US Request address\r\n */\r\n readonly action = input<string>();\r\n /**\r\n * @zh_CN 可拖拽上传的区域\r\n * @en_US Drag and drop upload area\r\n */\r\n readonly dropContainer = input<ElementRef | HTMLElement>();\r\n /**\r\n * @zh_CN 可拖拽上传的区域的图标\r\n * @en_US Drag and drop upload area icon\r\n */\r\n readonly dropIcon = input<XTemplate>();\r\n /**\r\n * @zh_CN 可拖拽上传的区域的标题\r\n * @en_US Drag and drop upload area title\r\n */\r\n readonly dropTitle = input<XTemplate>();\r\n /**\r\n * @zh_CN 可拖拽上传的区域的描述\r\n * @en_US Drag and drop upload area description\r\n */\r\n readonly dropDescription = input<XTemplate>();\r\n /**\r\n * @zh_CN 直接显示可拖拽上传的区域\r\n * @en_US Show the drag and drop upload area directly\r\n */\r\n readonly showDrop = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上传文件类型,与原生的 input file 组件一致\r\n * @en_US Upload file type, consistent with native input file component\r\n */\r\n readonly accept = input<string>();\r\n /**\r\n * @zh_CN 文件显示类型\r\n * @en_US File display type\r\n */\r\n readonly type = input<XUploadType>('list');\r\n /**\r\n * @zh_CN 图片类型下面加载失败显示\r\n * @en_US Photo type below loading failed display\r\n */\r\n readonly imgFallback = input<string>();\r\n /**\r\n * @zh_CN 图片剪裁\r\n * @en_US Picture cropping\r\n */\r\n readonly imgCut = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 多文件上传\r\n * @en_US Multiple file upload\r\n */\r\n readonly multiple = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 点击下载\r\n * @en_US click download\r\n */\r\n readonly download = input<boolean, XBoolean>(this.config?.download ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 多次上传的模式,cover 覆盖现有, add 继续添加\r\n * @en_US For many upload mode, 'cover' covers the existing, 'add' continue to add\r\n */\r\n readonly multipleModel = input<XUploadMultipleModel>(this.config?.multipleModel ?? 'cover');\r\n /**\r\n * @zh_CN 文件列表自定义显示模板\r\n * @en_US File list custom display template\r\n */\r\n readonly filesTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 限制单次上传文件个数,只有开启多文件上传 multiple 时生效,默认不做限制\r\n * @en_US Limit the number of files uploaded files. Do not restrict the default\r\n */\r\n readonly maxLimit = input<number, XNumber>(-1, { transform: XToNumber });\r\n /**\r\n * @zh_CN 设置上传的请求头部\r\n * @en_US Set the upload request header\r\n */\r\n readonly headers = input<{ [key: string]: any }>();\r\n /**\r\n * @zh_CN 删除按钮的事件\r\n * @en_US Delete button event\r\n */\r\n readonly removeClick = output<{ file: XUploadNode; index: number }>();\r\n /**\r\n * @zh_CN 开始上传事件\r\n * @en_US Start upload event\r\n */\r\n readonly uploadReady = output<XUploadNode>();\r\n /**\r\n * @zh_CN 正在上传事件\r\n * @en_US Start upload event\r\n */\r\n readonly uploading = output<XUploadNode>();\r\n /**\r\n * @zh_CN 上传成功事件\r\n * @en_US Start upload event\r\n */\r\n readonly uploadSuccess = output<XUploadNode>();\r\n /**\r\n * @zh_CN 上传失败事件\r\n * @en_US Start upload event\r\n */\r\n readonly uploadError = output<XUploadNode>();\r\n}\r\n\r\n/**\r\n * FileCard\r\n * @selector x-file-card\r\n * @decorator component\r\n */\r\nexport const XFileCardPrefix = 'x-file-card';\r\nexport const X_FILE_CARD_CONFIG_NAME = 'fileCard';\r\n\r\n/**\r\n * FileCard Property\r\n */\r\n@Component({ selector: `${XFileCardPrefix}-property`, template: '' })\r\nexport class XFileCardProperty extends XPropertyFunction(X_FILE_CARD_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n readonly icon = input<XTemplate>();\r\n /**\r\n * @zh_CN 图标颜色\r\n * @en_US Icon color\r\n */\r\n readonly iconColor = input<string>();\r\n /**\r\n * @zh_CN 文件名\r\n * @en_US File name\r\n */\r\n readonly name = input<XTemplate>();\r\n /**\r\n * @zh_CN 文件大小\r\n * @en_US File size\r\n */\r\n readonly size = input<number, XNumber>(0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 文件描述\r\n * @en_US File description\r\n */\r\n readonly description = input<XTemplate>();\r\n /**\r\n * @zh_CN 文件类型\r\n * @en_US File type\r\n */\r\n readonly type = input<XFileCard>('file');\r\n /**\r\n * @zh_CN 文件/图片链接地址\r\n * @en_US File/image url\r\n */\r\n readonly url = input<string>();\r\n /**\r\n * @zh_CN 形态变体\r\n * @en_US Bubble variant\r\n */\r\n readonly variant = input<XFileCardVariant>(this.config?.variant ?? 'outlined');\r\n}\r\n\r\n/**\r\n * @zh_CN 文件卡片类型\r\n * @en_US File card type\r\n */\r\nexport type XFileCard = 'file' | 'img';\r\n\r\n/**\r\n * @zh_CN 形态变体\r\n * @en_US Bubble variant\r\n */\r\nexport type XFileCardVariant = 'outlined' | 'filled' | 'shadow' | 'borderless';\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\r\nimport { XAttachmentsProperty } from './attachments.property';\r\nimport { XUploadComponent } from '@ng-nest/ui/upload';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: 'x-attachments',\r\n templateUrl: './attachments.component.html',\r\n styleUrls: ['./attachments.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [FormsModule, XUploadComponent],\r\n providers: [XValueAccessor(XAttachmentsComponent)]\r\n})\r\nexport class XAttachmentsComponent extends XAttachmentsProperty {\r\n valueChange(value: any) {\r\n this.onChange && this.onChange(value);\r\n }\r\n}\r\n","<div class=\"x-attachments\">\r\n <x-upload\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"valueChange($event)\"\r\n [action]=\"action()\"\r\n [dropContainer]=\"dropContainer()\"\r\n [dropIcon]=\"dropIcon()\"\r\n [dropTitle]=\"dropTitle()\"\r\n [dropDescription]=\"dropDescription()\"\r\n [showDrop]=\"showDrop()\"\r\n [text]=\"textTpl\"\r\n [accept]=\"accept()\"\r\n [type]=\"type()\"\r\n [imgFallback]=\"imgFallback()\"\r\n [imgCut]=\"imgCut()\"\r\n [multiple]=\"multiple()\"\r\n [download]=\"download()\"\r\n [multipleModel]=\"multipleModel()\"\r\n [filesTpl]=\"filesTpl() ?? innerfilesTpl\"\r\n [maxLimit]=\"maxLimit()\"\r\n [headers]=\"headers()\"\r\n (removeClick)=\"removeClick.emit($event)\"\r\n (uploadReady)=\"uploadReady.emit($event)\"\r\n (uploading)=\"uploading.emit($event)\"\r\n (uploadSuccess)=\"uploadSuccess.emit($event)\"\r\n (uploadError)=\"uploadError.emit($event)\"\r\n ></x-upload>\r\n <ng-template #textTpl>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n <ng-template #innerfilesTpl></ng-template>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed } from '@angular/core';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XFileCardPrefix, XFileCardProperty } from './attachments.property';\r\nimport { XFileSize, XIsEmpty, XIsString } from '@ng-nest/ui/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { XImageComponent } from '@ng-nest/ui/image';\r\n\r\nconst defaultIcon: { [key: string]: string } = {\r\n xlsx: 'adf-file-excel',\r\n xls: 'adf-file-excel',\r\n docx: 'adf-file-word',\r\n doc: 'adf-file-word',\r\n ppt: 'adf-file-ppt',\r\n pptx: 'adf-file-ppt',\r\n pdf: 'adf-file-pdf',\r\n zip: 'adf-file-zip',\r\n rar: 'adf-file-zip',\r\n '7z': 'adf-file-zip',\r\n png: 'adf-file-image',\r\n jpg: 'adf-file-image',\r\n jpeg: 'adf-file-image',\r\n gif: 'adf-file-image',\r\n bmp: 'adf-file-image',\r\n md: 'adf-file-markdown',\r\n txt: 'adf-file-text',\r\n mp4: 'adf-video-camera',\r\n avi: 'adf-video-camera',\r\n mkv: 'adf-video-camera',\r\n mov: 'adf-video-camera',\r\n mp3: 'adf-audio',\r\n wav: 'adf-audio',\r\n flac: 'adf-audio',\r\n default: 'adf-file'\r\n};\r\n\r\nconst defaultIconColors: { [key: string]: string } = {\r\n 'adf-file-excel': '#217346',\r\n 'adf-file-word': '#2b579a',\r\n 'adf-file-ppt': '#d24726',\r\n 'adf-file-pdf': '#dc3545',\r\n 'adf-file-zip': '#6c757d',\r\n 'adf-file-image': '#ffc107',\r\n 'adf-file-markdown': '#000000',\r\n 'adf-file-text': '#6c757d',\r\n 'adf-video-camera': '#ff6b6b',\r\n 'adf-audio': '#007bff',\r\n 'adf-file': '#6c757d'\r\n};\r\n\r\n@Component({\r\n selector: 'x-file-card',\r\n templateUrl: './file-card.component.html',\r\n styleUrl: './file-card.component.scss',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [XOutletDirective, XImageComponent, XIconComponent, NgClass]\r\n})\r\nexport class XFileCardComponent extends XFileCardProperty {\r\n iconString = computed(() => {\r\n if (XIsString(this.icon())) {\r\n return this.icon() as string;\r\n } else {\r\n return '';\r\n }\r\n });\r\n descriptionString = computed(() => {\r\n if (XIsString(this.description())) {\r\n return this.description() as string;\r\n } else {\r\n return '';\r\n }\r\n });\r\n sizeTransform = computed(() => {\r\n if (this.size() && this.size() !== 0) {\r\n return XFileSize(this.size(), { precision: 0 });\r\n } else {\r\n return '';\r\n }\r\n });\r\n nameSubfix = computed(() => {\r\n const name = this.name() as string;\r\n const index = name.lastIndexOf('.');\r\n return index > -1 ? name.substring(index + 1).toLowerCase() : '';\r\n });\r\n defaultIcon = computed(() => {\r\n if (Object.keys(defaultIcon).includes(this.nameSubfix())) {\r\n return defaultIcon[this.nameSubfix()];\r\n } else {\r\n return defaultIcon['default'];\r\n }\r\n });\r\n defaultColor = computed(() => {\r\n return defaultIconColors[this.defaultIcon()];\r\n });\r\n classMap = computed(() => ({\r\n [`${XFileCardPrefix}-${this.variant()}`]: !XIsEmpty(this.variant())\r\n }));\r\n isImage = computed(() => {\r\n const imageExtensions = ['png', 'jpg', 'jpeg', 'gif', 'bmp'];\r\n return imageExtensions.includes(this.nameSubfix().toLowerCase());\r\n });\r\n}\r\n","<div class=\"x-file-card\" [ngClass]=\"classMap()\" [class.x-file-card-image]=\"isImage() && !!url()\">\r\n @if (isImage() && !!url()) {\r\n <x-image width=\"100px\" height=\"100px\" [src]=\"url()\" [alt]=\"descriptionString()\"></x-image>\r\n } @else {\r\n @if (icon()) {\r\n <div class=\"x-file-card-icon\">\r\n <ng-container *xOutlet=\"icon()\">\r\n <x-icon [type]=\"iconString()\" [style.color]=\"iconColor()\"></x-icon>\r\n </ng-container>\r\n </div>\r\n } @else {\r\n <div class=\"x-file-card-icon\">\r\n <x-icon [type]=\"defaultIcon()\" [style.color]=\"iconColor() ?? defaultColor()\"></x-icon>\r\n </div>\r\n }\r\n <div class=\"x-file-card-content\">\r\n @if (name()) {\r\n <div class=\"x-file-card-name\">\r\n <ng-container *xOutlet=\"name()\">{{ name() }}</ng-container>\r\n </div>\r\n }\r\n @if (size()) {\r\n <div class=\"x-file-card-size\">\r\n {{ sizeTransform() }}\r\n </div>\r\n }\r\n @if (description()) {\r\n <div class=\"x-file-card-description\">\r\n <ng-container *xOutlet=\"description()\">{{ description() }}</ng-container>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XAttachmentsComponent } from './attachments.component';\r\nimport { XFileCardComponent } from './file-card.component';\r\n\r\n@NgModule({\r\n exports: [XAttachmentsComponent, XFileCardComponent],\r\n imports: [XAttachmentsComponent, XFileCardComponent]\r\n})\r\nexport class XAttachmentsModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-attachments.mjs","sources":["../../../../lib/ng-nest/ui/attachments/attachments.property.ts","../../../../lib/ng-nest/ui/attachments/attachments.component.ts","../../../../lib/ng-nest/ui/attachments/attachments.component.html","../../../../lib/ng-nest/ui/attachments/file-card.component.ts","../../../../lib/ng-nest/ui/attachments/file-card.component.html","../../../../lib/ng-nest/ui/attachments/attachments.module.ts","../../../../lib/ng-nest/ui/attachments/ng-nest-ui-attachments.ts"],"sourcesContent":["import { Component, ElementRef, input, output } from '@angular/core';\r\nimport { XBoolean, XNumber, XPropertyFunction, XTemplate, XToBoolean, XToNumber } from '@ng-nest/ui/core';\r\nimport { XUploadMultipleModel, XUploadNode, XUploadType } from '@ng-nest/ui/upload';\r\nimport { XFormControlFunction } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Attachments\r\n * @selector x-attachments\r\n * @decorator component\r\n */\r\nexport const XAttachmentsPrefix = 'x-attachments';\r\nconst X_ATTACHMENTS_CONFIG_NAME = 'attachments';\r\n\r\n/**\r\n * Attachments Property\r\n */\r\n@Component({ selector: `${XAttachmentsPrefix}-property`, template: '' })\r\nexport class XAttachmentsProperty extends XFormControlFunction(X_ATTACHMENTS_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 请求地址\r\n * @en_US Request address\r\n */\r\n readonly action = input<string>();\r\n /**\r\n * @zh_CN 可拖拽上传的区域\r\n * @en_US Drag and drop upload area\r\n */\r\n readonly dropContainer = input<ElementRef | HTMLElement>();\r\n /**\r\n * @zh_CN 可拖拽上传的区域的图标\r\n * @en_US Drag and drop upload area icon\r\n */\r\n readonly dropIcon = input<XTemplate>();\r\n /**\r\n * @zh_CN 可拖拽上传的区域的标题\r\n * @en_US Drag and drop upload area title\r\n */\r\n readonly dropTitle = input<XTemplate>();\r\n /**\r\n * @zh_CN 可拖拽上传的区域的描述\r\n * @en_US Drag and drop upload area description\r\n */\r\n readonly dropDescription = input<XTemplate>();\r\n /**\r\n * @zh_CN 直接显示可拖拽上传的区域\r\n * @en_US Show the drag and drop upload area directly\r\n */\r\n readonly showDrop = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 上传文件类型,与原生的 input file 组件一致\r\n * @en_US Upload file type, consistent with native input file component\r\n */\r\n readonly accept = input<string>();\r\n /**\r\n * @zh_CN 文件显示类型\r\n * @en_US File display type\r\n */\r\n readonly type = input<XUploadType>('list');\r\n /**\r\n * @zh_CN 图片类型下面加载失败显示\r\n * @en_US Photo type below loading failed display\r\n */\r\n readonly imgFallback = input<string>();\r\n /**\r\n * @zh_CN 图片剪裁\r\n * @en_US Picture cropping\r\n */\r\n readonly imgCut = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 多文件上传\r\n * @en_US Multiple file upload\r\n */\r\n readonly multiple = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 点击下载\r\n * @en_US click download\r\n */\r\n readonly download = input<boolean, XBoolean>(this.config?.download ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 多次上传的模式,cover 覆盖现有, add 继续添加\r\n * @en_US For many upload mode, 'cover' covers the existing, 'add' continue to add\r\n */\r\n readonly multipleModel = input<XUploadMultipleModel>(this.config?.multipleModel ?? 'cover');\r\n /**\r\n * @zh_CN 文件列表自定义显示模板\r\n * @en_US File list custom display template\r\n */\r\n readonly filesTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 限制单次上传文件个数,只有开启多文件上传 multiple 时生效,默认不做限制\r\n * @en_US Limit the number of files uploaded files. Do not restrict the default\r\n */\r\n readonly maxLimit = input<number, XNumber>(-1, { transform: XToNumber });\r\n /**\r\n * @zh_CN 设置上传的请求头部\r\n * @en_US Set the upload request header\r\n */\r\n readonly headers = input<{ [key: string]: any }>();\r\n /**\r\n * @zh_CN 删除按钮的事件\r\n * @en_US Delete button event\r\n */\r\n readonly removeClick = output<{ file: XUploadNode; index: number }>();\r\n /**\r\n * @zh_CN 开始上传事件\r\n * @en_US Start upload event\r\n */\r\n readonly uploadReady = output<XUploadNode>();\r\n /**\r\n * @zh_CN 正在上传事件\r\n * @en_US Start upload event\r\n */\r\n readonly uploading = output<XUploadNode>();\r\n /**\r\n * @zh_CN 上传成功事件\r\n * @en_US Start upload event\r\n */\r\n readonly uploadSuccess = output<XUploadNode>();\r\n /**\r\n * @zh_CN 上传失败事件\r\n * @en_US Start upload event\r\n */\r\n readonly uploadError = output<XUploadNode>();\r\n}\r\n\r\n/**\r\n * FileCard\r\n * @selector x-file-card\r\n * @decorator component\r\n */\r\nexport const XFileCardPrefix = 'x-file-card';\r\nexport const X_FILE_CARD_CONFIG_NAME = 'fileCard';\r\n\r\n/**\r\n * FileCard Property\r\n */\r\n@Component({ selector: `${XFileCardPrefix}-property`, template: '' })\r\nexport class XFileCardProperty extends XPropertyFunction(X_FILE_CARD_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n readonly icon = input<XTemplate>();\r\n /**\r\n * @zh_CN 图标颜色\r\n * @en_US Icon color\r\n */\r\n readonly iconColor = input<string>();\r\n /**\r\n * @zh_CN 文件名\r\n * @en_US File name\r\n */\r\n readonly name = input<XTemplate>();\r\n /**\r\n * @zh_CN 文件大小\r\n * @en_US File size\r\n */\r\n readonly size = input<number, XNumber>(0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 文件描述\r\n * @en_US File description\r\n */\r\n readonly description = input<XTemplate>();\r\n /**\r\n * @zh_CN 文件类型\r\n * @en_US File type\r\n */\r\n readonly type = input<XFileCard>('file');\r\n /**\r\n * @zh_CN 文件/图片链接地址\r\n * @en_US File/image url\r\n */\r\n readonly url = input<string>();\r\n /**\r\n * @zh_CN 形态变体\r\n * @en_US Bubble variant\r\n */\r\n readonly variant = input<XFileCardVariant>(this.config?.variant ?? 'outlined');\r\n}\r\n\r\n/**\r\n * @zh_CN 文件卡片类型\r\n * @en_US File card type\r\n */\r\nexport type XFileCard = 'file' | 'img';\r\n\r\n/**\r\n * @zh_CN 形态变体\r\n * @en_US Bubble variant\r\n */\r\nexport type XFileCardVariant = 'outlined' | 'filled' | 'shadow' | 'borderless';\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\r\nimport { XAttachmentsProperty } from './attachments.property';\r\nimport { XUploadComponent } from '@ng-nest/ui/upload';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: 'x-attachments',\r\n templateUrl: './attachments.component.html',\r\n styleUrls: ['./attachments.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [FormsModule, XUploadComponent],\r\n providers: [XValueAccessor(XAttachmentsComponent)]\r\n})\r\nexport class XAttachmentsComponent extends XAttachmentsProperty {\r\n valueChange(value: any) {\r\n this.onChange && this.onChange(value);\r\n }\r\n}\r\n","<div class=\"x-attachments\">\r\n <x-upload\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"valueChange($event)\"\r\n [action]=\"action()\"\r\n [dropContainer]=\"dropContainer()\"\r\n [dropIcon]=\"dropIcon()\"\r\n [dropTitle]=\"dropTitle()\"\r\n [dropDescription]=\"dropDescription()\"\r\n [showDrop]=\"showDrop()\"\r\n [text]=\"textTpl\"\r\n [accept]=\"accept()\"\r\n [type]=\"type()\"\r\n [imgFallback]=\"imgFallback()\"\r\n [imgCut]=\"imgCut()\"\r\n [multiple]=\"multiple()\"\r\n [download]=\"download()\"\r\n [multipleModel]=\"multipleModel()\"\r\n [filesTpl]=\"filesTpl() ?? innerfilesTpl\"\r\n [maxLimit]=\"maxLimit()\"\r\n [headers]=\"headers()\"\r\n (removeClick)=\"removeClick.emit($event)\"\r\n (uploadReady)=\"uploadReady.emit($event)\"\r\n (uploading)=\"uploading.emit($event)\"\r\n (uploadSuccess)=\"uploadSuccess.emit($event)\"\r\n (uploadError)=\"uploadError.emit($event)\"\r\n ></x-upload>\r\n <ng-template #textTpl>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n <ng-template #innerfilesTpl></ng-template>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed } from '@angular/core';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XFileCardPrefix, XFileCardProperty } from './attachments.property';\r\nimport { XFileSize, XIsEmpty, XIsString } from '@ng-nest/ui/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { XImageComponent } from '@ng-nest/ui/image';\r\n\r\nconst defaultIcon: { [key: string]: string } = {\r\n xlsx: 'adf-file-excel',\r\n xls: 'adf-file-excel',\r\n docx: 'adf-file-word',\r\n doc: 'adf-file-word',\r\n ppt: 'adf-file-ppt',\r\n pptx: 'adf-file-ppt',\r\n pdf: 'adf-file-pdf',\r\n zip: 'adf-file-zip',\r\n rar: 'adf-file-zip',\r\n '7z': 'adf-file-zip',\r\n png: 'adf-file-image',\r\n jpg: 'adf-file-image',\r\n jpeg: 'adf-file-image',\r\n gif: 'adf-file-image',\r\n bmp: 'adf-file-image',\r\n md: 'adf-file-markdown',\r\n txt: 'adf-file-text',\r\n mp4: 'adf-video-camera',\r\n avi: 'adf-video-camera',\r\n mkv: 'adf-video-camera',\r\n mov: 'adf-video-camera',\r\n mp3: 'adf-audio',\r\n wav: 'adf-audio',\r\n flac: 'adf-audio',\r\n default: 'adf-file'\r\n};\r\n\r\nconst defaultIconColors: { [key: string]: string } = {\r\n 'adf-file-excel': '#217346',\r\n 'adf-file-word': '#2b579a',\r\n 'adf-file-ppt': '#d24726',\r\n 'adf-file-pdf': '#dc3545',\r\n 'adf-file-zip': '#6c757d',\r\n 'adf-file-image': '#ffc107',\r\n 'adf-file-markdown': '#000000',\r\n 'adf-file-text': '#6c757d',\r\n 'adf-video-camera': '#ff6b6b',\r\n 'adf-audio': '#007bff',\r\n 'adf-file': '#6c757d'\r\n};\r\n\r\n@Component({\r\n selector: 'x-file-card',\r\n templateUrl: './file-card.component.html',\r\n styleUrl: './file-card.component.scss',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [XOutletDirective, XImageComponent, XIconComponent, NgClass]\r\n})\r\nexport class XFileCardComponent extends XFileCardProperty {\r\n iconString = computed(() => {\r\n if (XIsString(this.icon())) {\r\n return this.icon() as string;\r\n } else {\r\n return '';\r\n }\r\n });\r\n descriptionString = computed(() => {\r\n if (XIsString(this.description())) {\r\n return this.description() as string;\r\n } else {\r\n return '';\r\n }\r\n });\r\n sizeTransform = computed(() => {\r\n if (this.size() && this.size() !== 0) {\r\n return XFileSize(this.size(), { precision: 0 });\r\n } else {\r\n return '';\r\n }\r\n });\r\n nameSubfix = computed(() => {\r\n const name = this.name() as string;\r\n const index = name.lastIndexOf('.');\r\n return index > -1 ? name.substring(index + 1).toLowerCase() : '';\r\n });\r\n defaultIcon = computed(() => {\r\n if (Object.keys(defaultIcon).includes(this.nameSubfix())) {\r\n return defaultIcon[this.nameSubfix()];\r\n } else {\r\n return defaultIcon['default'];\r\n }\r\n });\r\n defaultColor = computed(() => {\r\n return defaultIconColors[this.defaultIcon()];\r\n });\r\n classMap = computed(() => ({\r\n [`${XFileCardPrefix}-${this.variant()}`]: !XIsEmpty(this.variant())\r\n }));\r\n isImage = computed(() => {\r\n const imageExtensions = ['png', 'jpg', 'jpeg', 'gif', 'bmp'];\r\n return imageExtensions.includes(this.nameSubfix().toLowerCase());\r\n });\r\n}\r\n","<div class=\"x-file-card\" [ngClass]=\"classMap()\" [class.x-file-card-image]=\"isImage() && !!url()\">\r\n @if (isImage() && !!url()) {\r\n <x-image width=\"100px\" height=\"100px\" [src]=\"url()\" [alt]=\"descriptionString()\"></x-image>\r\n } @else {\r\n @if (icon()) {\r\n <div class=\"x-file-card-icon\">\r\n <ng-container *xOutlet=\"icon()\">\r\n <x-icon [type]=\"iconString()\" [style.color]=\"iconColor()\"></x-icon>\r\n </ng-container>\r\n </div>\r\n } @else {\r\n <div class=\"x-file-card-icon\">\r\n <x-icon [type]=\"defaultIcon()\" [style.color]=\"iconColor() ?? defaultColor()\"></x-icon>\r\n </div>\r\n }\r\n <div class=\"x-file-card-content\">\r\n @if (name()) {\r\n <div class=\"x-file-card-name\">\r\n <ng-container *xOutlet=\"name()\">{{ name() }}</ng-container>\r\n </div>\r\n }\r\n @if (size()) {\r\n <div class=\"x-file-card-size\">\r\n {{ sizeTransform() }}\r\n </div>\r\n }\r\n @if (description()) {\r\n <div class=\"x-file-card-description\">\r\n <ng-container *xOutlet=\"description()\">{{ description() }}</ng-container>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XAttachmentsComponent } from './attachments.component';\r\nimport { XFileCardComponent } from './file-card.component';\r\n\r\n@NgModule({\r\n exports: [XAttachmentsComponent, XFileCardComponent],\r\n imports: [XAttachmentsComponent, XFileCardComponent]\r\n})\r\nexport class XAttachmentsModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}