@ng-nest/ui 20.0.7 → 20.1.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 (206) hide show
  1. package/auto-complete/index.d.ts +33 -8
  2. package/base-form/index.d.ts +3 -3
  3. package/calendar/index.d.ts +1 -2
  4. package/cascade/index.d.ts +33 -8
  5. package/checkbox/index.d.ts +3 -3
  6. package/color-picker/index.d.ts +34 -8
  7. package/core/index.d.ts +40 -8
  8. package/date-picker/index.d.ts +57 -12
  9. package/dropdown/index.d.ts +4 -4
  10. package/fesm2022/ng-nest-ui-affix.mjs +12 -12
  11. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  12. package/fesm2022/ng-nest-ui-alert.mjs +35 -35
  13. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  14. package/fesm2022/ng-nest-ui-anchor.mjs +31 -31
  15. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  16. package/fesm2022/ng-nest-ui-api.mjs +7 -7
  17. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  18. package/fesm2022/ng-nest-ui-auto-complete.mjs +82 -72
  19. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  20. package/fesm2022/ng-nest-ui-avatar.mjs +31 -31
  21. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  22. package/fesm2022/ng-nest-ui-back-top.mjs +18 -18
  23. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  24. package/fesm2022/ng-nest-ui-badge.mjs +23 -23
  25. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  26. package/fesm2022/ng-nest-ui-base-form.mjs +45 -45
  27. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  28. package/fesm2022/ng-nest-ui-button.mjs +42 -42
  29. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  30. package/fesm2022/ng-nest-ui-calendar.mjs +20 -20
  31. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  32. package/fesm2022/ng-nest-ui-card.mjs +15 -15
  33. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  34. package/fesm2022/ng-nest-ui-carousel.mjs +46 -46
  35. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  36. package/fesm2022/ng-nest-ui-cascade.mjs +86 -76
  37. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  38. package/fesm2022/ng-nest-ui-checkbox.mjs +39 -39
  39. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  40. package/fesm2022/ng-nest-ui-collapse.mjs +31 -31
  41. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  42. package/fesm2022/ng-nest-ui-color-picker.mjs +91 -72
  43. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  44. package/fesm2022/ng-nest-ui-color.mjs +16 -16
  45. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  46. package/fesm2022/ng-nest-ui-comment.mjs +21 -21
  47. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  48. package/fesm2022/ng-nest-ui-container.mjs +37 -37
  49. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  50. package/fesm2022/ng-nest-ui-core.mjs +38 -22
  51. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  52. package/fesm2022/ng-nest-ui-crumb.mjs +13 -13
  53. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  54. package/fesm2022/ng-nest-ui-date-picker.mjs +273 -253
  55. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  56. package/fesm2022/ng-nest-ui-description.mjs +31 -31
  57. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  58. package/fesm2022/ng-nest-ui-dialog.mjs +81 -81
  59. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  60. package/fesm2022/ng-nest-ui-doc.mjs +7 -7
  61. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  62. package/fesm2022/ng-nest-ui-drag.mjs +10 -10
  63. package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
  64. package/fesm2022/ng-nest-ui-drawer.mjs +42 -42
  65. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  66. package/fesm2022/ng-nest-ui-dropdown.mjs +49 -49
  67. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  68. package/fesm2022/ng-nest-ui-empty.mjs +12 -12
  69. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  70. package/fesm2022/ng-nest-ui-examples.mjs +7 -7
  71. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  72. package/fesm2022/ng-nest-ui-find.mjs +79 -77
  73. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  74. package/fesm2022/ng-nest-ui-form.mjs +33 -33
  75. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  76. package/fesm2022/ng-nest-ui-highlight.mjs +20 -20
  77. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  78. package/fesm2022/ng-nest-ui-i18n.mjs +15 -15
  79. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  80. package/fesm2022/ng-nest-ui-icon.mjs +21 -21
  81. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  82. package/fesm2022/ng-nest-ui-image.mjs +39 -39
  83. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  84. package/fesm2022/ng-nest-ui-inner.mjs +11 -11
  85. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  86. package/fesm2022/ng-nest-ui-input-number.mjs +42 -42
  87. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  88. package/fesm2022/ng-nest-ui-input.mjs +102 -81
  89. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  90. package/fesm2022/ng-nest-ui-keyword.mjs +15 -15
  91. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  92. package/fesm2022/ng-nest-ui-layout.mjs +31 -31
  93. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  94. package/fesm2022/ng-nest-ui-link.mjs +18 -18
  95. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  96. package/fesm2022/ng-nest-ui-list.mjs +80 -80
  97. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  98. package/fesm2022/ng-nest-ui-loading.mjs +22 -22
  99. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  100. package/fesm2022/ng-nest-ui-menu.mjs +45 -45
  101. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  102. package/fesm2022/ng-nest-ui-message-box.mjs +10 -10
  103. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  104. package/fesm2022/ng-nest-ui-message.mjs +10 -10
  105. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  106. package/fesm2022/ng-nest-ui-notification.mjs +10 -10
  107. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  108. package/fesm2022/ng-nest-ui-outlet.mjs +9 -9
  109. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  110. package/fesm2022/ng-nest-ui-page-header.mjs +15 -15
  111. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  112. package/fesm2022/ng-nest-ui-pagination.mjs +53 -53
  113. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  114. package/fesm2022/ng-nest-ui-pattern.mjs +7 -7
  115. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  116. package/fesm2022/ng-nest-ui-popconfirm.mjs +27 -27
  117. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  118. package/fesm2022/ng-nest-ui-popover.mjs +38 -38
  119. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  120. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  121. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  122. package/fesm2022/ng-nest-ui-progress.mjs +38 -38
  123. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  124. package/fesm2022/ng-nest-ui-radio.mjs +36 -36
  125. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  126. package/fesm2022/ng-nest-ui-rate.mjs +30 -30
  127. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  128. package/fesm2022/ng-nest-ui-resizable.mjs +16 -16
  129. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  130. package/fesm2022/ng-nest-ui-result.mjs +16 -16
  131. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  132. package/fesm2022/ng-nest-ui-ripple.mjs +13 -13
  133. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  134. package/fesm2022/ng-nest-ui-scrollable.mjs +102 -19
  135. package/fesm2022/ng-nest-ui-scrollable.mjs.map +1 -1
  136. package/fesm2022/ng-nest-ui-select.mjs +121 -111
  137. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  138. package/fesm2022/ng-nest-ui-skeleton.mjs +15 -15
  139. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  140. package/fesm2022/ng-nest-ui-slider-select.mjs +54 -54
  141. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  142. package/fesm2022/ng-nest-ui-slider.mjs +39 -39
  143. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  144. package/fesm2022/ng-nest-ui-statistic.mjs +30 -30
  145. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  146. package/fesm2022/ng-nest-ui-steps.mjs +19 -19
  147. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  148. package/fesm2022/ng-nest-ui-switch.mjs +26 -26
  149. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  150. package/fesm2022/ng-nest-ui-table-view.mjs +490 -242
  151. package/fesm2022/ng-nest-ui-table-view.mjs.map +1 -1
  152. package/fesm2022/ng-nest-ui-table.mjs +221 -221
  153. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  154. package/fesm2022/ng-nest-ui-tabs.mjs +58 -58
  155. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  156. package/fesm2022/ng-nest-ui-tag.mjs +22 -22
  157. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  158. package/fesm2022/ng-nest-ui-text-retract.mjs +15 -15
  159. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  160. package/fesm2022/ng-nest-ui-textarea.mjs +41 -41
  161. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  162. package/fesm2022/ng-nest-ui-theme.mjs +23 -23
  163. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  164. package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
  165. package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
  166. package/fesm2022/ng-nest-ui-time-picker.mjs +104 -94
  167. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  168. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  169. package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
  170. package/fesm2022/ng-nest-ui-timeline.mjs +15 -15
  171. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  172. package/fesm2022/ng-nest-ui-tooltip.mjs +38 -38
  173. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  174. package/fesm2022/ng-nest-ui-transfer.mjs +40 -40
  175. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  176. package/fesm2022/ng-nest-ui-tree-file.mjs +28 -28
  177. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  178. package/fesm2022/ng-nest-ui-tree-select.mjs +126 -116
  179. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  180. package/fesm2022/ng-nest-ui-tree.mjs +107 -107
  181. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  182. package/fesm2022/ng-nest-ui-typography.mjs +13 -13
  183. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  184. package/fesm2022/ng-nest-ui-upload.mjs +37 -37
  185. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  186. package/find/index.d.ts +5 -5
  187. package/form/index.d.ts +1 -1
  188. package/input/index.d.ts +32 -5
  189. package/input-number/index.d.ts +5 -5
  190. package/list/index.d.ts +2 -2
  191. package/message-box/index.d.ts +4 -5
  192. package/package.json +20 -20
  193. package/radio/index.d.ts +3 -3
  194. package/rate/index.d.ts +5 -5
  195. package/scrollable/index.d.ts +15 -7
  196. package/select/index.d.ts +38 -8
  197. package/slider-select/index.d.ts +3 -3
  198. package/steps/index.d.ts +1 -2
  199. package/switch/index.d.ts +3 -3
  200. package/table-view/index.d.ts +121 -79
  201. package/textarea/index.d.ts +3 -3
  202. package/theme/index.d.ts +1 -1
  203. package/time-picker/index.d.ts +33 -8
  204. package/transfer/index.d.ts +1 -1
  205. package/tree-select/index.d.ts +33 -8
  206. package/upload/index.d.ts +2 -2
@@ -28,12 +28,12 @@ class XCommentProperty extends XPropertyFunction(X_COMMENT_CONFIG_NAME) {
28
28
  * @zh_CN 评论数据
29
29
  * @en_US Comment data
30
30
  */
31
- this.data = input([], { transform: XToDataArray });
31
+ this.data = input([], ...(ngDevMode ? [{ debugName: "data", transform: XToDataArray }] : [{ transform: XToDataArray }]));
32
32
  /**
33
33
  * @zh_CN 评论最大字数
34
34
  * @en_US Maximum number of comments
35
35
  */
36
- this.contentMax = input(this.config?.contentMax ?? 512, { transform: XToNumber });
36
+ this.contentMax = input(this.config?.contentMax ?? 512, ...(ngDevMode ? [{ debugName: "contentMax", transform: XToNumber }] : [{ transform: XToNumber }]));
37
37
  /**
38
38
  * @zh_CN 点赞的事件
39
39
  * @en_US Like events
@@ -60,10 +60,10 @@ class XCommentProperty extends XPropertyFunction(X_COMMENT_CONFIG_NAME) {
60
60
  */
61
61
  this.moreClick = output();
62
62
  }
63
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XCommentProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
64
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", type: XCommentProperty, isStandalone: true, selector: "x-comment-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, contentMax: { classPropertyName: "contentMax", publicName: "contentMax", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { likeClick: "likeClick", commentClick: "commentClick", replyClick: "replyClick", sureClick: "sureClick", moreClick: "moreClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
63
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XCommentProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
64
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", type: XCommentProperty, isStandalone: true, selector: "x-comment-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, contentMax: { classPropertyName: "contentMax", publicName: "contentMax", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { likeClick: "likeClick", commentClick: "commentClick", replyClick: "replyClick", sureClick: "sureClick", moreClick: "moreClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
65
65
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XCommentProperty, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XCommentProperty, decorators: [{
67
67
  type: Component,
68
68
  args: [{ selector: `${XCommentPrefix}-property`, template: '' }]
69
69
  }] });
@@ -83,17 +83,17 @@ class XCommentReplyProperty extends XPropertyFunction(X_COMMENT_CONFIG_NAME) {
83
83
  * @zh_CN 回复的最大字数
84
84
  * @en_US Maximum number of words to reply
85
85
  */
86
- this.maxlength = input(this.config?.maxlength ?? 512, { transform: XToNumber });
86
+ this.maxlength = input(this.config?.maxlength ?? 512, ...(ngDevMode ? [{ debugName: "maxlength", transform: XToNumber }] : [{ transform: XToNumber }]));
87
87
  /**
88
88
  * @zh_CN 回复确认的事件
89
89
  * @en_US Reply to confirmed event
90
90
  */
91
91
  this.sureClick = output();
92
92
  }
93
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XCommentReplyProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
94
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", type: XCommentReplyProperty, isStandalone: true, selector: "x-comment-reply-property", inputs: { maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sureClick: "sureClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
93
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XCommentReplyProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
94
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", type: XCommentReplyProperty, isStandalone: true, selector: "x-comment-reply-property", inputs: { maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sureClick: "sureClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
95
95
  }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XCommentReplyProperty, decorators: [{
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XCommentReplyProperty, decorators: [{
97
97
  type: Component,
98
98
  args: [{ selector: `${XCommentReplyPrefix}-property`, template: '' }]
99
99
  }] });
@@ -101,15 +101,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
101
101
  class XCommentReplyComponent extends XCommentReplyProperty {
102
102
  constructor() {
103
103
  super(...arguments);
104
- this.inputValue = signal('');
104
+ this.inputValue = signal('', ...(ngDevMode ? [{ debugName: "inputValue" }] : []));
105
105
  }
106
106
  sureOnClick() {
107
107
  this.sureClick.emit(this.inputValue());
108
108
  }
109
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XCommentReplyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
110
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", type: XCommentReplyComponent, isStandalone: true, selector: "x-comment-reply", usesInheritance: true, ngImport: i0, template: "<div #commentReply class=\"x-comment-reply\">\r\n <x-input\r\n class=\"x-comment-reply-input\"\r\n [placeholder]=\"'comment.placeholder' | xI18n\"\r\n [maxlength]=\"maxlength()\"\r\n [(ngModel)]=\"inputValue\"\r\n ></x-input>\r\n <div class=\"x-comment-reply-buttons\">\r\n <x-button class=\"x-comment-sure-button\" type=\"primary\" flat (click)=\"sureOnClick()\">{{\r\n 'comment.sure' | xI18n\r\n }}</x-button>\r\n </div>\r\n</div>\r\n", styles: [".x-comment-reply{margin:0;padding:0}.x-comment-reply-buttons{display:flex;justify-content:space-between;align-items:center;margin-top:.625rem}.x-comment-reply-buttons .x-button-icon{padding:0}.x-comment-reply-buttons .x-button-icon>.x-button-inner>.x-icon{font-size:1.25rem}.x-comment-reply-buttons .x-buttons:not(.x-buttons-space)>.x-button:not(:first-child){margin-left:.5rem}.x-comment-reply-input{width:100%}.x-comment-reply-sure{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XInputComponent, selector: "x-input" }, { kind: "pipe", type: XI18nPipe, name: "xI18n" }, { kind: "component", type: XButtonComponent, selector: "x-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
109
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XCommentReplyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
110
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: XCommentReplyComponent, isStandalone: true, selector: "x-comment-reply", usesInheritance: true, ngImport: i0, template: "<div #commentReply class=\"x-comment-reply\">\r\n <x-input\r\n class=\"x-comment-reply-input\"\r\n [placeholder]=\"'comment.placeholder' | xI18n\"\r\n [maxlength]=\"maxlength()\"\r\n [(ngModel)]=\"inputValue\"\r\n ></x-input>\r\n <div class=\"x-comment-reply-buttons\">\r\n <x-button class=\"x-comment-sure-button\" type=\"primary\" flat (click)=\"sureOnClick()\">{{\r\n 'comment.sure' | xI18n\r\n }}</x-button>\r\n </div>\r\n</div>\r\n", styles: [".x-comment-reply{margin:0;padding:0}.x-comment-reply-buttons{display:flex;justify-content:space-between;align-items:center;margin-top:.625rem}.x-comment-reply-buttons .x-button-icon{padding:0}.x-comment-reply-buttons .x-button-icon>.x-button-inner>.x-icon{font-size:1.25rem}.x-comment-reply-buttons .x-buttons:not(.x-buttons-space)>.x-button:not(:first-child){margin-left:.5rem}.x-comment-reply-input{width:100%}.x-comment-reply-sure{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XInputComponent, selector: "x-input" }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "pipe", type: XI18nPipe, name: "xI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
111
111
  }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XCommentReplyComponent, decorators: [{
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XCommentReplyComponent, decorators: [{
113
113
  type: Component,
114
114
  args: [{ selector: `${XCommentReplyPrefix}`, imports: [FormsModule, XInputComponent, XI18nPipe, XButtonComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #commentReply class=\"x-comment-reply\">\r\n <x-input\r\n class=\"x-comment-reply-input\"\r\n [placeholder]=\"'comment.placeholder' | xI18n\"\r\n [maxlength]=\"maxlength()\"\r\n [(ngModel)]=\"inputValue\"\r\n ></x-input>\r\n <div class=\"x-comment-reply-buttons\">\r\n <x-button class=\"x-comment-sure-button\" type=\"primary\" flat (click)=\"sureOnClick()\">{{\r\n 'comment.sure' | xI18n\r\n }}</x-button>\r\n </div>\r\n</div>\r\n", styles: [".x-comment-reply{margin:0;padding:0}.x-comment-reply-buttons{display:flex;justify-content:space-between;align-items:center;margin-top:.625rem}.x-comment-reply-buttons .x-button-icon{padding:0}.x-comment-reply-buttons .x-button-icon>.x-button-inner>.x-icon{font-size:1.25rem}.x-comment-reply-buttons .x-buttons:not(.x-buttons-space)>.x-button:not(:first-child){margin-left:.5rem}.x-comment-reply-input{width:100%}.x-comment-reply-sure{display:flex;align-items:center}\n"] }]
115
115
  }] });
@@ -117,7 +117,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
117
117
  class XCommentComponent extends XCommentProperty {
118
118
  constructor() {
119
119
  super(...arguments);
120
- this.nodes = computed(() => this.data().filter((dt) => XIsEmpty(dt.pid)));
120
+ this.nodes = computed(() => this.data().filter((dt) => XIsEmpty(dt.pid)), ...(ngDevMode ? [{ debugName: "nodes" }] : []));
121
121
  }
122
122
  likeOnClick(node) {
123
123
  this.likeClick.emit(node);
@@ -140,10 +140,10 @@ class XCommentComponent extends XCommentProperty {
140
140
  hasMore(node) {
141
141
  return node.count > node.children?.length;
142
142
  }
143
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XCommentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
144
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: XCommentComponent, isStandalone: true, selector: "x-comment", usesInheritance: true, ngImport: i0, template: "<div #comment class=\"x-comment\">\r\n <div class=\"x-comment-list\">\r\n @for (node of nodes(); track node.id) {\r\n <div class=\"x-comment-item\">\r\n <div class=\"x-comment-avatar\">\r\n <x-avatar [src]=\"node.src\"></x-avatar>\r\n </div>\r\n <div class=\"x-comment-content\">\r\n <div class=\"x-comment-author\">\r\n <x-link>{{ node.author }}</x-link>\r\n <span class=\"x-comment-time\">{{ node.datetime | xTimeAgo }}</span>\r\n </div>\r\n <div>\r\n <x-text-retract [content]=\"node.content\"></x-text-retract>\r\n </div>\r\n <div class=\"x-comment-action\">\r\n <x-buttons boxShadow=\"false\">\r\n <x-button\r\n class=\"x-comment-button\"\r\n icon=\"fto-message-square\"\r\n [activated]=\"node.commentShow!\"\r\n (click)=\"commentOnClick(node)\"\r\n text\r\n >\r\n {{ 'comment.comments' | xI18n }} {{ node.count ? node.count : '' }}\r\n </x-button>\r\n <x-button class=\"x-comment-like\" icon=\"fto-thumbs-up\" (click)=\"likeOnClick(node)\" text>\r\n {{ 'comment.giveALike' | xI18n }} {{ node.likes ? node.likes : '' }}\r\n </x-button>\r\n </x-buttons>\r\n </div>\r\n @if (node.commentShow) {\r\n <x-comment-reply [maxlength]=\"contentMax()\" (sureClick)=\"sureOnClick($event, node)\"></x-comment-reply>\r\n }\r\n <ul>\r\n @for (child of node.children; track child.id) {\r\n <li>\r\n <div>\r\n <div>\r\n <x-link>{{ child.author }}</x-link>\r\n @if (child.replyAuthor) {\r\n <span class=\"x-comment-reply\">{{ 'comment.reply' | xI18n }}</span>\r\n <x-link>{{ child.replyAuthor }}</x-link>\r\n }\r\n \uFF1A\r\n <span>\r\n <x-text-retract [content]=\"child.content\"></x-text-retract>\r\n </span>\r\n </div>\r\n <div class=\"x-comment-action\">\r\n <span class=\"x-comment-time\">{{ child.datetime | xTimeAgo }}</span>\r\n <x-buttons boxShadow=\"false\">\r\n <x-button\r\n class=\"x-comment-reply-button\"\r\n icon=\"fto-message-square\"\r\n [activated]=\"child.commentShow!\"\r\n (click)=\"replyOnClick(child)\"\r\n text\r\n >{{ 'comment.reply' | xI18n }}</x-button\r\n >\r\n <x-button class=\"x-comment-like\" icon=\"fto-thumbs-up\" (click)=\"likeOnClick(child)\" text>\r\n {{ 'comment.giveALike' | xI18n }} {{ child.likes ? child.likes : '' }}</x-button\r\n >\r\n </x-buttons>\r\n </div>\r\n @if (child.commentShow) {\r\n <x-comment-reply\r\n [maxlength]=\"contentMax()\"\r\n (sureClick)=\"sureOnClick($event, child)\"\r\n ></x-comment-reply>\r\n }\r\n </div>\r\n </li>\r\n }\r\n @if (hasMore(node)) {\r\n <li class=\"x-comment-more\">\r\n <x-link\r\n class=\"x-comment-more-button\"\r\n icon=\"fto-chevron-right\"\r\n type=\"primary\"\r\n (click)=\"moreOnClick(node)\"\r\n iconRight\r\n >{{ 'comment.more' | xI18n }}\r\n </x-link>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [".x-comment{margin:0;padding:0}.x-comment{font-size:var(--x-font-size);box-sizing:border-box}.x-comment p{line-height:1.5;margin:.375rem 0}.x-comment-content{margin-left:1rem;flex:1}.x-comment-content ul,.x-comment-content li{margin:0;padding:0;list-style:none}.x-comment-content>ul{margin-top:.375rem}.x-comment-content>ul>li{padding:0 var(--x-font-size);background-color:var(--x-background);transition:.3s}.x-comment-content>ul>li>div{padding:.5rem 0}.x-comment-content>ul>li>div>p>span{color:var(--x-text-300)}.x-comment-content>ul>li>div>.x-comment-action{display:flex;justify-content:space-between;align-items:center}.x-comment-content>ul>li>div>.x-comment-action>.x-comment-time{margin-left:0}.x-comment-content>ul>li:not(:last-child)>div{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-comment-content>ul>li.x-comment-more{padding:var(--x-font-size)}.x-comment-content>ul>li:hover{background-color:var(--x-background-a100);border-color:transparent}.x-comment-content .x-comment-reply{margin:var(--x-font-size) 0 1rem}.x-comment-author{margin:.25rem 0;display:inline-flex;align-items:center;color:var(--x-text-300)}.x-comment-author>.x-button{padding:0}.x-comment-time{margin-left:.5rem;color:var(--x-text-400);font-size:var(--x-font-size)}.x-comment-action{text-align:right}.x-comment-action>.x-buttons>.x-button{padding:0}.x-comment-action>.x-buttons:not(.x-buttons-space)>.x-button:not(:first-child){margin-left:.65rem}.x-comment-item{display:flex;padding:1rem 0;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-comment-item:first-child{padding-top:0}.x-comment-reply{margin:0 .75rem}\n"], dependencies: [{ kind: "pipe", type: XI18nPipe, name: "xI18n" }, { kind: "component", type: XLinkComponent, selector: "x-link" }, { kind: "component", type: XAvatarComponent, selector: "x-avatar" }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XButtonsComponent, selector: "x-buttons" }, { kind: "component", type: XTextRetractComponent, selector: "x-text-retract" }, { kind: "pipe", type: XTimeAgoPipe, name: "xTimeAgo" }, { kind: "component", type: XCommentReplyComponent, selector: "x-comment-reply" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
143
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XCommentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
144
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: XCommentComponent, isStandalone: true, selector: "x-comment", usesInheritance: true, ngImport: i0, template: "<div #comment class=\"x-comment\">\r\n <div class=\"x-comment-list\">\r\n @for (node of nodes(); track node.id) {\r\n <div class=\"x-comment-item\">\r\n <div class=\"x-comment-avatar\">\r\n <x-avatar [src]=\"node.src\"></x-avatar>\r\n </div>\r\n <div class=\"x-comment-content\">\r\n <div class=\"x-comment-author\">\r\n <x-link>{{ node.author }}</x-link>\r\n <span class=\"x-comment-time\">{{ node.datetime | xTimeAgo }}</span>\r\n </div>\r\n <div>\r\n <x-text-retract [content]=\"node.content\"></x-text-retract>\r\n </div>\r\n <div class=\"x-comment-action\">\r\n <x-buttons boxShadow=\"false\">\r\n <x-button\r\n class=\"x-comment-button\"\r\n icon=\"fto-message-square\"\r\n [activated]=\"node.commentShow!\"\r\n (click)=\"commentOnClick(node)\"\r\n text\r\n >\r\n {{ 'comment.comments' | xI18n }} {{ node.count ? node.count : '' }}\r\n </x-button>\r\n <x-button class=\"x-comment-like\" icon=\"fto-thumbs-up\" (click)=\"likeOnClick(node)\" text>\r\n {{ 'comment.giveALike' | xI18n }} {{ node.likes ? node.likes : '' }}\r\n </x-button>\r\n </x-buttons>\r\n </div>\r\n @if (node.commentShow) {\r\n <x-comment-reply [maxlength]=\"contentMax()\" (sureClick)=\"sureOnClick($event, node)\"></x-comment-reply>\r\n }\r\n <ul>\r\n @for (child of node.children; track child.id) {\r\n <li>\r\n <div>\r\n <div>\r\n <x-link>{{ child.author }}</x-link>\r\n @if (child.replyAuthor) {\r\n <span class=\"x-comment-reply\">{{ 'comment.reply' | xI18n }}</span>\r\n <x-link>{{ child.replyAuthor }}</x-link>\r\n }\r\n \uFF1A\r\n <span>\r\n <x-text-retract [content]=\"child.content\"></x-text-retract>\r\n </span>\r\n </div>\r\n <div class=\"x-comment-action\">\r\n <span class=\"x-comment-time\">{{ child.datetime | xTimeAgo }}</span>\r\n <x-buttons boxShadow=\"false\">\r\n <x-button\r\n class=\"x-comment-reply-button\"\r\n icon=\"fto-message-square\"\r\n [activated]=\"child.commentShow!\"\r\n (click)=\"replyOnClick(child)\"\r\n text\r\n >{{ 'comment.reply' | xI18n }}</x-button\r\n >\r\n <x-button class=\"x-comment-like\" icon=\"fto-thumbs-up\" (click)=\"likeOnClick(child)\" text>\r\n {{ 'comment.giveALike' | xI18n }} {{ child.likes ? child.likes : '' }}</x-button\r\n >\r\n </x-buttons>\r\n </div>\r\n @if (child.commentShow) {\r\n <x-comment-reply\r\n [maxlength]=\"contentMax()\"\r\n (sureClick)=\"sureOnClick($event, child)\"\r\n ></x-comment-reply>\r\n }\r\n </div>\r\n </li>\r\n }\r\n @if (hasMore(node)) {\r\n <li class=\"x-comment-more\">\r\n <x-link\r\n class=\"x-comment-more-button\"\r\n icon=\"fto-chevron-right\"\r\n type=\"primary\"\r\n (click)=\"moreOnClick(node)\"\r\n iconRight\r\n >{{ 'comment.more' | xI18n }}\r\n </x-link>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [".x-comment{margin:0;padding:0}.x-comment{font-size:var(--x-font-size);box-sizing:border-box}.x-comment p{line-height:1.5;margin:.375rem 0}.x-comment-content{margin-left:1rem;flex:1}.x-comment-content ul,.x-comment-content li{margin:0;padding:0;list-style:none}.x-comment-content>ul{margin-top:.375rem}.x-comment-content>ul>li{padding:0 var(--x-font-size);background-color:var(--x-background);transition:.3s}.x-comment-content>ul>li>div{padding:.5rem 0}.x-comment-content>ul>li>div>p>span{color:var(--x-text-300)}.x-comment-content>ul>li>div>.x-comment-action{display:flex;justify-content:space-between;align-items:center}.x-comment-content>ul>li>div>.x-comment-action>.x-comment-time{margin-left:0}.x-comment-content>ul>li:not(:last-child)>div{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-comment-content>ul>li.x-comment-more{padding:var(--x-font-size)}.x-comment-content>ul>li:hover{background-color:var(--x-background-a100);border-color:transparent}.x-comment-content .x-comment-reply{margin:var(--x-font-size) 0 1rem}.x-comment-author{margin:.25rem 0;display:inline-flex;align-items:center;color:var(--x-text-300)}.x-comment-author>.x-button{padding:0}.x-comment-time{margin-left:.5rem;color:var(--x-text-400);font-size:var(--x-font-size)}.x-comment-action{text-align:right}.x-comment-action>.x-buttons>.x-button{padding:0}.x-comment-action>.x-buttons:not(.x-buttons-space)>.x-button:not(:first-child){margin-left:.65rem}.x-comment-item{display:flex;padding:1rem 0;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-comment-item:first-child{padding-top:0}.x-comment-reply{margin:0 .75rem}\n"], dependencies: [{ kind: "component", type: XLinkComponent, selector: "x-link" }, { kind: "component", type: XAvatarComponent, selector: "x-avatar" }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XButtonsComponent, selector: "x-buttons" }, { kind: "component", type: XTextRetractComponent, selector: "x-text-retract" }, { kind: "component", type: XCommentReplyComponent, selector: "x-comment-reply" }, { kind: "pipe", type: XI18nPipe, name: "xI18n" }, { kind: "pipe", type: XTimeAgoPipe, name: "xTimeAgo" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
145
145
  }
146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XCommentComponent, decorators: [{
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XCommentComponent, decorators: [{
147
147
  type: Component,
148
148
  args: [{ selector: `${XCommentPrefix}`, imports: [
149
149
  XI18nPipe,
@@ -158,11 +158,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
158
158
  }] });
159
159
 
160
160
  class XCommentModule {
161
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XCommentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
162
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0", ngImport: i0, type: XCommentModule, imports: [XCommentComponent, XCommentReplyComponent], exports: [XCommentComponent, XCommentReplyComponent] }); }
163
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XCommentModule, imports: [XCommentComponent, XCommentReplyComponent] }); }
161
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XCommentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
162
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.4", ngImport: i0, type: XCommentModule, imports: [XCommentComponent, XCommentReplyComponent], exports: [XCommentComponent, XCommentReplyComponent] }); }
163
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XCommentModule, imports: [XCommentComponent, XCommentReplyComponent] }); }
164
164
  }
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XCommentModule, decorators: [{
165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XCommentModule, decorators: [{
166
166
  type: NgModule,
167
167
  args: [{
168
168
  exports: [XCommentComponent, XCommentReplyComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-comment.mjs","sources":["../../../../lib/ng-nest/ui/comment/comment.property.ts","../../../../lib/ng-nest/ui/comment/comment-reply.component.ts","../../../../lib/ng-nest/ui/comment/comment-reply.component.html","../../../../lib/ng-nest/ui/comment/comment.component.ts","../../../../lib/ng-nest/ui/comment/comment.component.html","../../../../lib/ng-nest/ui/comment/comment.module.ts","../../../../lib/ng-nest/ui/comment/ng-nest-ui-comment.ts"],"sourcesContent":["import { XPropertyFunction, XToDataArray, XToNumber } from '@ng-nest/ui/core';\r\nimport { Component, input, output } from '@angular/core';\r\nimport type { XDate, XParentIdentityProperty, XNumber, XDataArray } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Comment\r\n * @selector x-comment\r\n * @decorator component\r\n */\r\nexport const XCommentPrefix = 'x-comment';\r\nconst X_COMMENT_CONFIG_NAME = 'comment';\r\n\r\n/**\r\n * Comment Property\r\n */\r\n@Component({ selector: `${XCommentPrefix}-property`, template: '' })\r\nexport class XCommentProperty extends XPropertyFunction(X_COMMENT_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 评论数据\r\n * @en_US Comment data\r\n */\r\n readonly data = input<XCommentNode[], XDataArray<XCommentNode>>([], { transform: XToDataArray });\r\n /**\r\n * @zh_CN 评论最大字数\r\n * @en_US Maximum number of comments\r\n */\r\n readonly contentMax = input<number, XNumber>(this.config?.contentMax ?? 512, { transform: XToNumber });\r\n /**\r\n * @zh_CN 点赞的事件\r\n * @en_US Like events\r\n */\r\n readonly likeClick = output<XCommentNode>();\r\n /**\r\n * @zh_CN 评论的事件\r\n * @en_US Commented event\r\n */\r\n readonly commentClick = output<XCommentNode>();\r\n /**\r\n * @zh_CN 回复的事件\r\n * @en_US Reply event\r\n */\r\n readonly replyClick = output<XCommentNode>();\r\n /**\r\n * @zh_CN 确认提交的事件\r\n * @en_US Confirm the submitted event\r\n */\r\n readonly sureClick = output<XCommentNode>();\r\n /**\r\n * @zh_CN 更多的事件\r\n * @en_US More events\r\n */\r\n readonly moreClick = output<XCommentNode>();\r\n}\r\n\r\n/**\r\n * @zh_CN Comment 数据对象\r\n * @en_US Comment data object\r\n */\r\nexport interface XCommentNode extends XParentIdentityProperty<XCommentNode> {\r\n /**\r\n * @zh_CN 作者\r\n * @en_US Author\r\n */\r\n author?: string;\r\n /**\r\n * @zh_CN 作者头像地址\r\n * @en_US Author avatar address\r\n */\r\n src?: string;\r\n /**\r\n * @zh_CN 发布时间\r\n * @en_US release time\r\n */\r\n datetime?: XDate;\r\n /**\r\n * @zh_CN 发布内容\r\n * @en_US Publish content\r\n */\r\n content?: string;\r\n /**\r\n * @zh_CN 点赞数量\r\n * @en_US Like number\r\n */\r\n likes?: number;\r\n /**\r\n * @zh_CN 评论数量\r\n * @en_US Number of comments\r\n */\r\n count?: number;\r\n /**\r\n * @zh_CN 回复作者\r\n * @en_US Reply to author\r\n */\r\n replyAuthor?: string;\r\n /**\r\n * @zh_CN 点击评论/回复提交的内容\r\n * @en_US Click to comment/reply to submitted content\r\n */\r\n replyContent?: string;\r\n /**\r\n * @zh_CN 显示评论/回复框\r\n * @en_US Show comment/reply box\r\n */\r\n commentShow?: boolean;\r\n}\r\n\r\n/**\r\n * Comment Reply\r\n * @selector x-comment-reply\r\n * @decorator component\r\n */\r\nexport const XCommentReplyPrefix = 'x-comment-reply';\r\n\r\n/**\r\n * Comment Reply Property\r\n */\r\n@Component({ selector: `${XCommentReplyPrefix}-property`, template: '' })\r\nexport class XCommentReplyProperty extends XPropertyFunction(X_COMMENT_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 回复的最大字数\r\n * @en_US Maximum number of words to reply\r\n */\r\n readonly maxlength = input<number, XNumber>(this.config?.maxlength ?? 512, { transform: XToNumber });\r\n /**\r\n * @zh_CN 回复确认的事件\r\n * @en_US Reply to confirmed event\r\n */\r\n readonly sureClick = output<string>();\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, signal } from '@angular/core';\r\nimport { XCommentReplyPrefix, XCommentReplyProperty } from './comment.property';\r\nimport { XI18nPipe } from '@ng-nest/ui/i18n';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: `${XCommentReplyPrefix}`,\r\n imports: [FormsModule, XInputComponent, XI18nPipe, XButtonComponent],\r\n templateUrl: './comment-reply.component.html',\r\n styleUrls: ['./comment-reply.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCommentReplyComponent extends XCommentReplyProperty {\r\n inputValue = signal<string>('');\r\n\r\n sureOnClick() {\r\n this.sureClick.emit(this.inputValue());\r\n }\r\n}\r\n","<div #commentReply class=\"x-comment-reply\">\r\n <x-input\r\n class=\"x-comment-reply-input\"\r\n [placeholder]=\"'comment.placeholder' | xI18n\"\r\n [maxlength]=\"maxlength()\"\r\n [(ngModel)]=\"inputValue\"\r\n ></x-input>\r\n <div class=\"x-comment-reply-buttons\">\r\n <x-button class=\"x-comment-sure-button\" type=\"primary\" flat (click)=\"sureOnClick()\">{{\r\n 'comment.sure' | xI18n\r\n }}</x-button>\r\n </div>\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, computed } from '@angular/core';\r\nimport { XCommentPrefix, XCommentProperty } from './comment.property';\r\nimport { XIsEmpty } from '@ng-nest/ui/core';\r\nimport { XI18nPipe } from '@ng-nest/ui/i18n';\r\nimport { XAvatarComponent } from '@ng-nest/ui/avatar';\r\nimport { XButtonComponent, XButtonsComponent } from '@ng-nest/ui/button';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XTextRetractComponent } from '@ng-nest/ui/text-retract';\r\nimport { XTimeAgoPipe } from '@ng-nest/ui/time-ago';\r\nimport { XCommentReplyComponent } from './comment-reply.component';\r\nimport type { XCommentNode } from './comment.property';\r\n\r\n@Component({\r\n selector: `${XCommentPrefix}`,\r\n imports: [\r\n XI18nPipe,\r\n XLinkComponent,\r\n XAvatarComponent,\r\n XButtonComponent,\r\n XButtonsComponent,\r\n XTextRetractComponent,\r\n XTimeAgoPipe,\r\n XCommentReplyComponent\r\n ],\r\n templateUrl: './comment.component.html',\r\n styleUrls: ['./comment.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCommentComponent extends XCommentProperty {\r\n nodes = computed(() => this.data().filter((dt) => XIsEmpty(dt.pid)));\r\n\r\n likeOnClick(node: XCommentNode) {\r\n this.likeClick.emit(node);\r\n }\r\n\r\n commentOnClick(node: XCommentNode) {\r\n node.commentShow = !node.commentShow;\r\n this.commentClick.emit(node);\r\n }\r\n\r\n replyOnClick(node: XCommentNode) {\r\n node.commentShow = !node.commentShow;\r\n this.replyClick.emit(node);\r\n }\r\n\r\n sureOnClick(content: string, node: XCommentNode) {\r\n node.replyContent = content;\r\n this.sureClick.emit(node);\r\n }\r\n\r\n moreOnClick(node: XCommentNode) {\r\n this.moreClick.emit(node);\r\n }\r\n\r\n hasMore(node: XCommentNode) {\r\n return (node.count as number) > (node.children?.length as number);\r\n }\r\n}\r\n","<div #comment class=\"x-comment\">\r\n <div class=\"x-comment-list\">\r\n @for (node of nodes(); track node.id) {\r\n <div class=\"x-comment-item\">\r\n <div class=\"x-comment-avatar\">\r\n <x-avatar [src]=\"node.src\"></x-avatar>\r\n </div>\r\n <div class=\"x-comment-content\">\r\n <div class=\"x-comment-author\">\r\n <x-link>{{ node.author }}</x-link>\r\n <span class=\"x-comment-time\">{{ node.datetime | xTimeAgo }}</span>\r\n </div>\r\n <div>\r\n <x-text-retract [content]=\"node.content\"></x-text-retract>\r\n </div>\r\n <div class=\"x-comment-action\">\r\n <x-buttons boxShadow=\"false\">\r\n <x-button\r\n class=\"x-comment-button\"\r\n icon=\"fto-message-square\"\r\n [activated]=\"node.commentShow!\"\r\n (click)=\"commentOnClick(node)\"\r\n text\r\n >\r\n {{ 'comment.comments' | xI18n }} {{ node.count ? node.count : '' }}\r\n </x-button>\r\n <x-button class=\"x-comment-like\" icon=\"fto-thumbs-up\" (click)=\"likeOnClick(node)\" text>\r\n {{ 'comment.giveALike' | xI18n }} {{ node.likes ? node.likes : '' }}\r\n </x-button>\r\n </x-buttons>\r\n </div>\r\n @if (node.commentShow) {\r\n <x-comment-reply [maxlength]=\"contentMax()\" (sureClick)=\"sureOnClick($event, node)\"></x-comment-reply>\r\n }\r\n <ul>\r\n @for (child of node.children; track child.id) {\r\n <li>\r\n <div>\r\n <div>\r\n <x-link>{{ child.author }}</x-link>\r\n @if (child.replyAuthor) {\r\n <span class=\"x-comment-reply\">{{ 'comment.reply' | xI18n }}</span>\r\n <x-link>{{ child.replyAuthor }}</x-link>\r\n }\r\n :\r\n <span>\r\n <x-text-retract [content]=\"child.content\"></x-text-retract>\r\n </span>\r\n </div>\r\n <div class=\"x-comment-action\">\r\n <span class=\"x-comment-time\">{{ child.datetime | xTimeAgo }}</span>\r\n <x-buttons boxShadow=\"false\">\r\n <x-button\r\n class=\"x-comment-reply-button\"\r\n icon=\"fto-message-square\"\r\n [activated]=\"child.commentShow!\"\r\n (click)=\"replyOnClick(child)\"\r\n text\r\n >{{ 'comment.reply' | xI18n }}</x-button\r\n >\r\n <x-button class=\"x-comment-like\" icon=\"fto-thumbs-up\" (click)=\"likeOnClick(child)\" text>\r\n {{ 'comment.giveALike' | xI18n }} {{ child.likes ? child.likes : '' }}</x-button\r\n >\r\n </x-buttons>\r\n </div>\r\n @if (child.commentShow) {\r\n <x-comment-reply\r\n [maxlength]=\"contentMax()\"\r\n (sureClick)=\"sureOnClick($event, child)\"\r\n ></x-comment-reply>\r\n }\r\n </div>\r\n </li>\r\n }\r\n @if (hasMore(node)) {\r\n <li class=\"x-comment-more\">\r\n <x-link\r\n class=\"x-comment-more-button\"\r\n icon=\"fto-chevron-right\"\r\n type=\"primary\"\r\n (click)=\"moreOnClick(node)\"\r\n iconRight\r\n >{{ 'comment.more' | xI18n }}\r\n </x-link>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XCommentComponent } from './comment.component';\r\nimport { XCommentReplyComponent } from './comment-reply.component';\r\n\r\n@NgModule({\r\n exports: [XCommentComponent, XCommentReplyComponent],\r\n imports: [XCommentComponent, XCommentReplyComponent]\r\n})\r\nexport class XCommentModule {}\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-comment.mjs","sources":["../../../../lib/ng-nest/ui/comment/comment.property.ts","../../../../lib/ng-nest/ui/comment/comment-reply.component.ts","../../../../lib/ng-nest/ui/comment/comment-reply.component.html","../../../../lib/ng-nest/ui/comment/comment.component.ts","../../../../lib/ng-nest/ui/comment/comment.component.html","../../../../lib/ng-nest/ui/comment/comment.module.ts","../../../../lib/ng-nest/ui/comment/ng-nest-ui-comment.ts"],"sourcesContent":["import { XPropertyFunction, XToDataArray, XToNumber } from '@ng-nest/ui/core';\r\nimport { Component, input, output } from '@angular/core';\r\nimport type { XDate, XParentIdentityProperty, XNumber, XDataArray } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Comment\r\n * @selector x-comment\r\n * @decorator component\r\n */\r\nexport const XCommentPrefix = 'x-comment';\r\nconst X_COMMENT_CONFIG_NAME = 'comment';\r\n\r\n/**\r\n * Comment Property\r\n */\r\n@Component({ selector: `${XCommentPrefix}-property`, template: '' })\r\nexport class XCommentProperty extends XPropertyFunction(X_COMMENT_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 评论数据\r\n * @en_US Comment data\r\n */\r\n readonly data = input<XCommentNode[], XDataArray<XCommentNode>>([], { transform: XToDataArray });\r\n /**\r\n * @zh_CN 评论最大字数\r\n * @en_US Maximum number of comments\r\n */\r\n readonly contentMax = input<number, XNumber>(this.config?.contentMax ?? 512, { transform: XToNumber });\r\n /**\r\n * @zh_CN 点赞的事件\r\n * @en_US Like events\r\n */\r\n readonly likeClick = output<XCommentNode>();\r\n /**\r\n * @zh_CN 评论的事件\r\n * @en_US Commented event\r\n */\r\n readonly commentClick = output<XCommentNode>();\r\n /**\r\n * @zh_CN 回复的事件\r\n * @en_US Reply event\r\n */\r\n readonly replyClick = output<XCommentNode>();\r\n /**\r\n * @zh_CN 确认提交的事件\r\n * @en_US Confirm the submitted event\r\n */\r\n readonly sureClick = output<XCommentNode>();\r\n /**\r\n * @zh_CN 更多的事件\r\n * @en_US More events\r\n */\r\n readonly moreClick = output<XCommentNode>();\r\n}\r\n\r\n/**\r\n * @zh_CN Comment 数据对象\r\n * @en_US Comment data object\r\n */\r\nexport interface XCommentNode extends XParentIdentityProperty<XCommentNode> {\r\n /**\r\n * @zh_CN 作者\r\n * @en_US Author\r\n */\r\n author?: string;\r\n /**\r\n * @zh_CN 作者头像地址\r\n * @en_US Author avatar address\r\n */\r\n src?: string;\r\n /**\r\n * @zh_CN 发布时间\r\n * @en_US release time\r\n */\r\n datetime?: XDate;\r\n /**\r\n * @zh_CN 发布内容\r\n * @en_US Publish content\r\n */\r\n content?: string;\r\n /**\r\n * @zh_CN 点赞数量\r\n * @en_US Like number\r\n */\r\n likes?: number;\r\n /**\r\n * @zh_CN 评论数量\r\n * @en_US Number of comments\r\n */\r\n count?: number;\r\n /**\r\n * @zh_CN 回复作者\r\n * @en_US Reply to author\r\n */\r\n replyAuthor?: string;\r\n /**\r\n * @zh_CN 点击评论/回复提交的内容\r\n * @en_US Click to comment/reply to submitted content\r\n */\r\n replyContent?: string;\r\n /**\r\n * @zh_CN 显示评论/回复框\r\n * @en_US Show comment/reply box\r\n */\r\n commentShow?: boolean;\r\n}\r\n\r\n/**\r\n * Comment Reply\r\n * @selector x-comment-reply\r\n * @decorator component\r\n */\r\nexport const XCommentReplyPrefix = 'x-comment-reply';\r\n\r\n/**\r\n * Comment Reply Property\r\n */\r\n@Component({ selector: `${XCommentReplyPrefix}-property`, template: '' })\r\nexport class XCommentReplyProperty extends XPropertyFunction(X_COMMENT_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 回复的最大字数\r\n * @en_US Maximum number of words to reply\r\n */\r\n readonly maxlength = input<number, XNumber>(this.config?.maxlength ?? 512, { transform: XToNumber });\r\n /**\r\n * @zh_CN 回复确认的事件\r\n * @en_US Reply to confirmed event\r\n */\r\n readonly sureClick = output<string>();\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, signal } from '@angular/core';\r\nimport { XCommentReplyPrefix, XCommentReplyProperty } from './comment.property';\r\nimport { XI18nPipe } from '@ng-nest/ui/i18n';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: `${XCommentReplyPrefix}`,\r\n imports: [FormsModule, XInputComponent, XI18nPipe, XButtonComponent],\r\n templateUrl: './comment-reply.component.html',\r\n styleUrls: ['./comment-reply.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCommentReplyComponent extends XCommentReplyProperty {\r\n inputValue = signal<string>('');\r\n\r\n sureOnClick() {\r\n this.sureClick.emit(this.inputValue());\r\n }\r\n}\r\n","<div #commentReply class=\"x-comment-reply\">\r\n <x-input\r\n class=\"x-comment-reply-input\"\r\n [placeholder]=\"'comment.placeholder' | xI18n\"\r\n [maxlength]=\"maxlength()\"\r\n [(ngModel)]=\"inputValue\"\r\n ></x-input>\r\n <div class=\"x-comment-reply-buttons\">\r\n <x-button class=\"x-comment-sure-button\" type=\"primary\" flat (click)=\"sureOnClick()\">{{\r\n 'comment.sure' | xI18n\r\n }}</x-button>\r\n </div>\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, computed } from '@angular/core';\r\nimport { XCommentPrefix, XCommentProperty } from './comment.property';\r\nimport { XIsEmpty } from '@ng-nest/ui/core';\r\nimport { XI18nPipe } from '@ng-nest/ui/i18n';\r\nimport { XAvatarComponent } from '@ng-nest/ui/avatar';\r\nimport { XButtonComponent, XButtonsComponent } from '@ng-nest/ui/button';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XTextRetractComponent } from '@ng-nest/ui/text-retract';\r\nimport { XTimeAgoPipe } from '@ng-nest/ui/time-ago';\r\nimport { XCommentReplyComponent } from './comment-reply.component';\r\nimport type { XCommentNode } from './comment.property';\r\n\r\n@Component({\r\n selector: `${XCommentPrefix}`,\r\n imports: [\r\n XI18nPipe,\r\n XLinkComponent,\r\n XAvatarComponent,\r\n XButtonComponent,\r\n XButtonsComponent,\r\n XTextRetractComponent,\r\n XTimeAgoPipe,\r\n XCommentReplyComponent\r\n ],\r\n templateUrl: './comment.component.html',\r\n styleUrls: ['./comment.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCommentComponent extends XCommentProperty {\r\n nodes = computed(() => this.data().filter((dt) => XIsEmpty(dt.pid)));\r\n\r\n likeOnClick(node: XCommentNode) {\r\n this.likeClick.emit(node);\r\n }\r\n\r\n commentOnClick(node: XCommentNode) {\r\n node.commentShow = !node.commentShow;\r\n this.commentClick.emit(node);\r\n }\r\n\r\n replyOnClick(node: XCommentNode) {\r\n node.commentShow = !node.commentShow;\r\n this.replyClick.emit(node);\r\n }\r\n\r\n sureOnClick(content: string, node: XCommentNode) {\r\n node.replyContent = content;\r\n this.sureClick.emit(node);\r\n }\r\n\r\n moreOnClick(node: XCommentNode) {\r\n this.moreClick.emit(node);\r\n }\r\n\r\n hasMore(node: XCommentNode) {\r\n return (node.count as number) > (node.children?.length as number);\r\n }\r\n}\r\n","<div #comment class=\"x-comment\">\r\n <div class=\"x-comment-list\">\r\n @for (node of nodes(); track node.id) {\r\n <div class=\"x-comment-item\">\r\n <div class=\"x-comment-avatar\">\r\n <x-avatar [src]=\"node.src\"></x-avatar>\r\n </div>\r\n <div class=\"x-comment-content\">\r\n <div class=\"x-comment-author\">\r\n <x-link>{{ node.author }}</x-link>\r\n <span class=\"x-comment-time\">{{ node.datetime | xTimeAgo }}</span>\r\n </div>\r\n <div>\r\n <x-text-retract [content]=\"node.content\"></x-text-retract>\r\n </div>\r\n <div class=\"x-comment-action\">\r\n <x-buttons boxShadow=\"false\">\r\n <x-button\r\n class=\"x-comment-button\"\r\n icon=\"fto-message-square\"\r\n [activated]=\"node.commentShow!\"\r\n (click)=\"commentOnClick(node)\"\r\n text\r\n >\r\n {{ 'comment.comments' | xI18n }} {{ node.count ? node.count : '' }}\r\n </x-button>\r\n <x-button class=\"x-comment-like\" icon=\"fto-thumbs-up\" (click)=\"likeOnClick(node)\" text>\r\n {{ 'comment.giveALike' | xI18n }} {{ node.likes ? node.likes : '' }}\r\n </x-button>\r\n </x-buttons>\r\n </div>\r\n @if (node.commentShow) {\r\n <x-comment-reply [maxlength]=\"contentMax()\" (sureClick)=\"sureOnClick($event, node)\"></x-comment-reply>\r\n }\r\n <ul>\r\n @for (child of node.children; track child.id) {\r\n <li>\r\n <div>\r\n <div>\r\n <x-link>{{ child.author }}</x-link>\r\n @if (child.replyAuthor) {\r\n <span class=\"x-comment-reply\">{{ 'comment.reply' | xI18n }}</span>\r\n <x-link>{{ child.replyAuthor }}</x-link>\r\n }\r\n :\r\n <span>\r\n <x-text-retract [content]=\"child.content\"></x-text-retract>\r\n </span>\r\n </div>\r\n <div class=\"x-comment-action\">\r\n <span class=\"x-comment-time\">{{ child.datetime | xTimeAgo }}</span>\r\n <x-buttons boxShadow=\"false\">\r\n <x-button\r\n class=\"x-comment-reply-button\"\r\n icon=\"fto-message-square\"\r\n [activated]=\"child.commentShow!\"\r\n (click)=\"replyOnClick(child)\"\r\n text\r\n >{{ 'comment.reply' | xI18n }}</x-button\r\n >\r\n <x-button class=\"x-comment-like\" icon=\"fto-thumbs-up\" (click)=\"likeOnClick(child)\" text>\r\n {{ 'comment.giveALike' | xI18n }} {{ child.likes ? child.likes : '' }}</x-button\r\n >\r\n </x-buttons>\r\n </div>\r\n @if (child.commentShow) {\r\n <x-comment-reply\r\n [maxlength]=\"contentMax()\"\r\n (sureClick)=\"sureOnClick($event, child)\"\r\n ></x-comment-reply>\r\n }\r\n </div>\r\n </li>\r\n }\r\n @if (hasMore(node)) {\r\n <li class=\"x-comment-more\">\r\n <x-link\r\n class=\"x-comment-more-button\"\r\n icon=\"fto-chevron-right\"\r\n type=\"primary\"\r\n (click)=\"moreOnClick(node)\"\r\n iconRight\r\n >{{ 'comment.more' | xI18n }}\r\n </x-link>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XCommentComponent } from './comment.component';\r\nimport { XCommentReplyComponent } from './comment-reply.component';\r\n\r\n@NgModule({\r\n exports: [XCommentComponent, XCommentReplyComponent],\r\n imports: [XCommentComponent, XCommentReplyComponent]\r\n})\r\nexport class XCommentModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAIA;;;;AAIG;AACI,MAAM,cAAc,GAAG;AAC9B,MAAM,qBAAqB,GAAG,SAAS;AAEvC;;AAEG;MAEU,gBAAiB,SAAQ,iBAAiB,CAAC,qBAAqB,CAAC,CAAA;AAD9E,IAAA,WAAA,GAAA;;AAEE;;;AAGG;AACM,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAA2C,EAAE,wCAAI,SAAS,EAAE,YAAY,EAAA,CAAA,GAAA,CAAzB,EAAE,SAAS,EAAE,YAAY,EAAE,GAAC;AAChG;;;AAGG;QACM,IAAA,CAAA,UAAU,GAAG,KAAK,CAAkB,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,GAAG,8CAAI,SAAS,EAAE,SAAS,EAAA,CAAA,GAAA,CAAtB,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA,CAAA,CAAC;AACtG;;;AAGG;QACM,IAAA,CAAA,SAAS,GAAG,MAAM,EAAgB;AAC3C;;;AAGG;QACM,IAAA,CAAA,YAAY,GAAG,MAAM,EAAgB;AAC9C;;;AAGG;QACM,IAAA,CAAA,UAAU,GAAG,MAAM,EAAgB;AAC5C;;;AAGG;QACM,IAAA,CAAA,SAAS,GAAG,MAAM,EAAgB;AAC3C;;;AAGG;QACM,IAAA,CAAA,SAAS,GAAG,MAAM,EAAgB;AAC5C,IAAA;iIApCY,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,0fADkC,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FACpD,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,SAAS;mBAAC,EAAE,QAAQ,EAAE,CAAA,EAAG,cAAc,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE;;AA2FnE;;;;AAIG;AACI,MAAM,mBAAmB,GAAG;AAEnC;;AAEG;MAEU,qBAAsB,SAAQ,iBAAiB,CAAC,qBAAqB,CAAC,CAAA;AADnF,IAAA,WAAA,GAAA;;AAEE;;;AAGG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAkB,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,GAAG,6CAAI,SAAS,EAAE,SAAS,EAAA,CAAA,GAAA,CAAtB,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA,CAAA,CAAC;AACpG;;;AAGG;QACM,IAAA,CAAA,SAAS,GAAG,MAAM,EAAU;AACtC,IAAA;iIAXY,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,gSADkC,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FACzD,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,SAAS;mBAAC,EAAE,QAAQ,EAAE,CAAA,EAAG,mBAAmB,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE;;;ACrGlE,MAAO,sBAAuB,SAAQ,qBAAqB,CAAA;AARjE,IAAA,WAAA,GAAA;;AASE,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAS,EAAE,sDAAC;AAKhC,IAAA;IAHC,WAAW,GAAA;QACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IACxC;iIALW,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qHAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECfnC,idAaA,EAAA,MAAA,EAAA,CAAA,sdAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDJY,WAAW,kgBAAE,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAa,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAA3B,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAMtC,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAG,mBAAmB,CAAA,CAAE,EAAA,OAAA,EACzB,CAAC,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,CAAC,iBAGrD,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,idAAA,EAAA,MAAA,EAAA,CAAA,sdAAA,CAAA,EAAA;;;AEgB3C,MAAO,iBAAkB,SAAQ,gBAAgB,CAAA;AAjBvD,IAAA,WAAA,GAAA;;QAkBE,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AA4BrE,IAAA;AA1BC,IAAA,WAAW,CAAC,IAAkB,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B;AAEA,IAAA,cAAc,CAAC,IAAkB,EAAA;AAC/B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B;AAEA,IAAA,YAAY,CAAC,IAAkB,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B;IAEA,WAAW,CAAC,OAAe,EAAE,IAAkB,EAAA;AAC7C,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO;AAC3B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B;AAEA,IAAA,WAAW,CAAC,IAAkB,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B;AAEA,IAAA,OAAO,CAAC,IAAkB,EAAA;QACxB,OAAQ,IAAI,CAAC,KAAgB,GAAI,IAAI,CAAC,QAAQ,EAAE,MAAiB;IACnE;iIA5BW,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,4FC7B9B,i7HA4FA,EAAA,MAAA,EAAA,CAAA,qnDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED5EI,cAAc,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACd,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,iBAAiB,sDACjB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAErB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAPtB,SAAS,yCAMT,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAQH,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAjB7B,SAAS;+BACE,CAAA,EAAG,cAAc,EAAE,EAAA,OAAA,EACpB;wBACP,SAAS;wBACT,cAAc;wBACd,gBAAgB;wBAChB,gBAAgB;wBAChB,iBAAiB;wBACjB,qBAAqB;wBACrB,YAAY;wBACZ;AACD,qBAAA,EAAA,aAAA,EAGc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,i7HAAA,EAAA,MAAA,EAAA,CAAA,qnDAAA,CAAA,EAAA;;;MEnBpC,cAAc,CAAA;iIAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAFf,iBAAiB,EAAE,sBAAsB,CAAA,EAAA,OAAA,EAAA,CADzC,iBAAiB,EAAE,sBAAsB,CAAA,EAAA,CAAA,CAAA;kIAGxC,cAAc,EAAA,OAAA,EAAA,CAFf,iBAAiB,EAAE,sBAAsB,CAAA,EAAA,CAAA,CAAA;;2FAExC,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;AACpD,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,sBAAsB;AACpD,iBAAA;;;ACPD;;AAEG;;;;"}
@@ -20,12 +20,12 @@ class XContainerProperty extends XPropertyFunction(X_CONTAINER_CONFIG_NAME) {
20
20
  * @en_US The arrangement direction of the sub-elements under the flex layout. When the sub-elements have x-header or x-footer, it is column
21
21
  * @default ''
22
22
  */
23
- this.direction = input(this.config?.direction);
23
+ this.direction = input(this.config?.direction, ...(ngDevMode ? [{ debugName: "direction" }] : []));
24
24
  }
25
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XContainerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
26
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", type: XContainerProperty, isStandalone: true, selector: "x-container-property", inputs: { direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
25
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XContainerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
26
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", type: XContainerProperty, isStandalone: true, selector: "x-container-property", inputs: { direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XContainerProperty, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XContainerProperty, decorators: [{
29
29
  type: Component,
30
30
  args: [{ selector: `${XContainerPrefix}-property`, template: '' }]
31
31
  }] });
@@ -46,12 +46,12 @@ class XHeaderProperty extends XPropertyFunction(X_HEADER_CONFIG_NAME) {
46
46
  * @zh_CN 高度
47
47
  * @en_US Height
48
48
  */
49
- this.height = input(this.config?.height ?? '3rem', { transform: XToCssPixelValue });
49
+ this.height = input(this.config?.height ?? '3rem', ...(ngDevMode ? [{ debugName: "height", transform: XToCssPixelValue }] : [{ transform: XToCssPixelValue }]));
50
50
  }
51
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XHeaderProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
52
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", type: XHeaderProperty, isStandalone: true, selector: "x-header-property", inputs: { height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
51
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XHeaderProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
52
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", type: XHeaderProperty, isStandalone: true, selector: "x-header-property", inputs: { height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XHeaderProperty, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XHeaderProperty, decorators: [{
55
55
  type: Component,
56
56
  args: [{ selector: `${XHeaderPrefix}-property`, template: '' }]
57
57
  }] });
@@ -72,12 +72,12 @@ class XAsideProperty extends XPropertyFunction(X_ASIDE_CONFIG_NAME) {
72
72
  * @zh_CN 宽度
73
73
  * @en_US Width
74
74
  */
75
- this.width = input(this.config?.width ?? '12rem', { transform: XToCssPixelValue });
75
+ this.width = input(this.config?.width ?? '12rem', ...(ngDevMode ? [{ debugName: "width", transform: XToCssPixelValue }] : [{ transform: XToCssPixelValue }]));
76
76
  }
77
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XAsideProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
78
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", type: XAsideProperty, isStandalone: true, selector: "x-aside-property", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
77
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XAsideProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
78
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", type: XAsideProperty, isStandalone: true, selector: "x-aside-property", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
79
79
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XAsideProperty, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XAsideProperty, decorators: [{
81
81
  type: Component,
82
82
  args: [{ selector: `${XAsidePrefix}-property`, template: '' }]
83
83
  }] });
@@ -104,12 +104,12 @@ class XFooterProperty extends XPropertyFunction(X_FOOTER_CONFIG_NAME) {
104
104
  * @zh_CN 高度
105
105
  * @en_US Height
106
106
  */
107
- this.height = input(this.config?.height ?? '3rem', { transform: XToCssPixelValue });
107
+ this.height = input(this.config?.height ?? '3rem', ...(ngDevMode ? [{ debugName: "height", transform: XToCssPixelValue }] : [{ transform: XToCssPixelValue }]));
108
108
  }
109
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XFooterProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
110
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", type: XFooterProperty, isStandalone: true, selector: "x-footer-property", inputs: { height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
109
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XFooterProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
110
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", type: XFooterProperty, isStandalone: true, selector: "x-footer-property", inputs: { height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
111
111
  }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XFooterProperty, decorators: [{
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XFooterProperty, decorators: [{
113
113
  type: Component,
114
114
  args: [{ selector: `${XFooterPrefix}-property`, template: '' }]
115
115
  }] });
@@ -117,7 +117,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
117
117
  class XContainerComponent extends XContainerProperty {
118
118
  constructor() {
119
119
  super(...arguments);
120
- this.directionSignal = signal(null);
120
+ this.directionSignal = signal(null, ...(ngDevMode ? [{ debugName: "directionSignal" }] : []));
121
121
  this.directionClass = computed(() => {
122
122
  const direction = this.directionSignal() || this.direction();
123
123
  if (direction) {
@@ -126,15 +126,15 @@ class XContainerComponent extends XContainerProperty {
126
126
  else {
127
127
  return ``;
128
128
  }
129
- });
129
+ }, ...(ngDevMode ? [{ debugName: "directionClass" }] : []));
130
130
  }
131
131
  get className() {
132
132
  return `${XContainerPrefix} ${this.directionClass()}`;
133
133
  }
134
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
135
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", type: XContainerComponent, isStandalone: true, selector: "x-container", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".x-container{margin:0;padding:0}.x-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.x-container.x-direction-column{flex-direction:column}.x-container.x-direction-column-reverse{flex-direction:column-reverse}.x-container.x-direction-row{flex-direction:row}.x-container.x-direction-row-reverse{flex-direction:row-reverse}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
134
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
135
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: XContainerComponent, isStandalone: true, selector: "x-container", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".x-container{margin:0;padding:0}.x-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.x-container.x-direction-column{flex-direction:column}.x-container.x-direction-column-reverse{flex-direction:column-reverse}.x-container.x-direction-row{flex-direction:row}.x-container.x-direction-row-reverse{flex-direction:row-reverse}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
136
136
  }
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XContainerComponent, decorators: [{
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XContainerComponent, decorators: [{
138
138
  type: Component,
139
139
  args: [{ selector: `${XContainerPrefix}`, template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".x-container{margin:0;padding:0}.x-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.x-container.x-direction-column{flex-direction:column}.x-container.x-direction-column-reverse{flex-direction:column-reverse}.x-container.x-direction-row{flex-direction:row}.x-container.x-direction-row-reverse{flex-direction:row-reverse}\n"] }]
140
140
  }], propDecorators: { className: [{
@@ -159,10 +159,10 @@ class XHeaderComponent extends XHeaderProperty {
159
159
  return;
160
160
  this.container.directionSignal.set('column');
161
161
  }
162
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XHeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
163
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", type: XHeaderComponent, isStandalone: true, selector: "x-header", host: { properties: { "class": "this.className", "style.height": "this.getHeight" } }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".x-header{margin:0;padding:0}.x-header{flex-shrink:0;padding:0 1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
162
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XHeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
163
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: XHeaderComponent, isStandalone: true, selector: "x-header", host: { properties: { "class": "this.className", "style.height": "this.getHeight" } }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".x-header{margin:0;padding:0}.x-header{flex-shrink:0;padding:0 1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
164
164
  }
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XHeaderComponent, decorators: [{
165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XHeaderComponent, decorators: [{
166
166
  type: Component,
167
167
  args: [{ selector: `${XHeaderPrefix}`, template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".x-header{margin:0;padding:0}.x-header{flex-shrink:0;padding:0 1rem}\n"] }]
168
168
  }], propDecorators: { className: [{
@@ -181,10 +181,10 @@ class XAsideComponent extends XAsideProperty {
181
181
  get getWidth() {
182
182
  return this.width();
183
183
  }
184
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XAsideComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
185
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", type: XAsideComponent, isStandalone: true, selector: "x-aside", host: { properties: { "class": "this.className", "style.width": "this.getWidth" } }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".x-aside{margin:0;padding:0}.x-aside{overflow:auto;flex-shrink:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
184
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XAsideComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
185
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: XAsideComponent, isStandalone: true, selector: "x-aside", host: { properties: { "class": "this.className", "style.width": "this.getWidth" } }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".x-aside{margin:0;padding:0}.x-aside{overflow:auto;flex-shrink:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
186
186
  }
187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XAsideComponent, decorators: [{
187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XAsideComponent, decorators: [{
188
188
  type: Component,
189
189
  args: [{ selector: `${XAsidePrefix}`, template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".x-aside{margin:0;padding:0}.x-aside{overflow:auto;flex-shrink:0}\n"] }]
190
190
  }], propDecorators: { className: [{
@@ -199,10 +199,10 @@ class XMainComponent {
199
199
  constructor() {
200
200
  this.className = XMainPrefix;
201
201
  }
202
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XMainComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
203
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", type: XMainComponent, isStandalone: true, selector: "x-main", host: { properties: { "class": "this.className" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".x-main{margin:0;padding:0}.x-main{display:block;flex:1;flex-basis:auto;padding:1rem;overflow:auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
202
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XMainComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
203
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: XMainComponent, isStandalone: true, selector: "x-main", host: { properties: { "class": "this.className" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".x-main{margin:0;padding:0}.x-main{display:block;flex:1;flex-basis:auto;padding:1rem;overflow:auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
204
204
  }
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XMainComponent, decorators: [{
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XMainComponent, decorators: [{
206
206
  type: Component,
207
207
  args: [{ selector: `${XMainPrefix}`, template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".x-main{margin:0;padding:0}.x-main{display:block;flex:1;flex-basis:auto;padding:1rem;overflow:auto}\n"] }]
208
208
  }], propDecorators: { className: [{
@@ -227,10 +227,10 @@ class XFooterComponent extends XFooterProperty {
227
227
  return;
228
228
  this.container.directionSignal.set('column');
229
229
  }
230
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XFooterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
231
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", type: XFooterComponent, isStandalone: true, selector: "x-footer", host: { properties: { "class": "this.className", "style.height": "this.getHeight" } }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".x-footer{margin:0;padding:0}.x-footer{flex-shrink:0;padding:0 1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
230
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XFooterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
231
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: XFooterComponent, isStandalone: true, selector: "x-footer", host: { properties: { "class": "this.className", "style.height": "this.getHeight" } }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".x-footer{margin:0;padding:0}.x-footer{flex-shrink:0;padding:0 1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
232
232
  }
233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XFooterComponent, decorators: [{
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XFooterComponent, decorators: [{
234
234
  type: Component,
235
235
  args: [{ selector: `${XFooterPrefix}`, template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".x-footer{margin:0;padding:0}.x-footer{flex-shrink:0;padding:0 1rem}\n"] }]
236
236
  }], propDecorators: { className: [{
@@ -242,11 +242,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
242
242
  }] } });
243
243
 
244
244
  class XContainerModule {
245
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XContainerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
246
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0", ngImport: i0, type: XContainerModule, imports: [XContainerComponent, XHeaderComponent, XAsideComponent, XMainComponent, XFooterComponent], exports: [XContainerComponent, XHeaderComponent, XAsideComponent, XMainComponent, XFooterComponent] }); }
247
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XContainerModule }); }
245
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XContainerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
246
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.4", ngImport: i0, type: XContainerModule, imports: [XContainerComponent, XHeaderComponent, XAsideComponent, XMainComponent, XFooterComponent], exports: [XContainerComponent, XHeaderComponent, XAsideComponent, XMainComponent, XFooterComponent] }); }
247
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XContainerModule }); }
248
248
  }
249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XContainerModule, decorators: [{
249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XContainerModule, decorators: [{
250
250
  type: NgModule,
251
251
  args: [{
252
252
  imports: [XContainerComponent, XHeaderComponent, XAsideComponent, XMainComponent, XFooterComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-container.mjs","sources":["../../../../lib/ng-nest/ui/container/container.property.ts","../../../../lib/ng-nest/ui/container/container.component.ts","../../../../lib/ng-nest/ui/container/header.component.ts","../../../../lib/ng-nest/ui/container/aside.component.ts","../../../../lib/ng-nest/ui/container/main.component.ts","../../../../lib/ng-nest/ui/container/footer.component.ts","../../../../lib/ng-nest/ui/container/container.module.ts","../../../../lib/ng-nest/ui/container/ng-nest-ui-container.ts"],"sourcesContent":["import { XPropertyFunction, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport { Component, input } from '@angular/core';\r\nimport type { XDirection, XNumber } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Container\r\n * @selector x-container\r\n * @decorator component\r\n */\r\nexport const XContainerPrefix = 'x-container';\r\nconst X_CONTAINER_CONFIG_NAME = 'container';\r\n\r\n/**\r\n * Container Property\r\n */\r\n@Component({ selector: `${XContainerPrefix}-property`, template: '' })\r\nexport class XContainerProperty extends XPropertyFunction(X_CONTAINER_CONFIG_NAME) {\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向,子元素中有 x-header 或 x-footer 时为 column\r\n * @en_US The arrangement direction of the sub-elements under the flex layout. When the sub-elements have x-header or x-footer, it is column\r\n * @default ''\r\n */\r\n readonly direction = input<XDirection>(this.config?.direction!);\r\n}\r\n\r\n/**\r\n * Header\r\n * @selector x-header\r\n * @decorator component\r\n */\r\nexport const XHeaderPrefix = 'x-header';\r\nconst X_HEADER_CONFIG_NAME = 'header';\r\n\r\n/**\r\n * Header Property\r\n */\r\n@Component({ selector: `${XHeaderPrefix}-property`, template: '' })\r\nexport class XHeaderProperty extends XPropertyFunction(X_HEADER_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 高度\r\n * @en_US Height\r\n */\r\n readonly height = input<string, XNumber>(this.config?.height ?? '3rem', { transform: XToCssPixelValue });\r\n}\r\n\r\n/**\r\n * Aside\r\n * @selector x-aside\r\n * @decorator component\r\n */\r\nexport const XAsidePrefix = 'x-aside';\r\nconst X_ASIDE_CONFIG_NAME = 'aside';\r\n\r\n/**\r\n * Aside Property\r\n */\r\n@Component({ selector: `${XAsidePrefix}-property`, template: '' })\r\nexport class XAsideProperty extends XPropertyFunction(X_ASIDE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n readonly width = input<string, XNumber>(this.config?.width ?? '12rem', { transform: XToCssPixelValue });\r\n}\r\n\r\n/**\r\n * main\r\n * @selector x-main\r\n * @decorator component\r\n */\r\nexport const XMainPrefix = 'x-main';\r\n\r\n/**\r\n * Footer\r\n * @selector x-footer\r\n * @decorator component\r\n */\r\nexport const XFooterPrefix = 'x-footer';\r\nconst X_FOOTER_CONFIG_NAME = 'footer';\r\n\r\n/**\r\n * Footer Property\r\n */\r\n@Component({ selector: `${XFooterPrefix}-property`, template: '' })\r\nexport class XFooterProperty extends XPropertyFunction(X_FOOTER_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 高度\r\n * @en_US Height\r\n */\r\n readonly height = input<string, XNumber>(this.config?.height ?? '3rem', { transform: XToCssPixelValue });\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, computed, signal } from '@angular/core';\r\nimport { XContainerPrefix, XContainerProperty } from './container.property';\r\nimport type { XDirection } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XContainerPrefix}`,\r\n template: '<ng-content></ng-content>',\r\n styleUrls: ['./container.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XContainerComponent extends XContainerProperty {\r\n @HostBinding('class') get className() {\r\n return `${XContainerPrefix} ${this.directionClass()}`;\r\n }\r\n\r\n directionSignal = signal<XDirection | null>(null);\r\n\r\n directionClass = computed(() => {\r\n const direction = this.directionSignal() || this.direction();\r\n if (direction) {\r\n return `x-direction-${direction}`;\r\n } else {\r\n return ``;\r\n }\r\n });\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, inject } from '@angular/core';\r\nimport { XHeaderPrefix, XHeaderProperty } from './container.property';\r\nimport { XContainerComponent } from './container.component';\r\n\r\n@Component({\r\n selector: `${XHeaderPrefix}`,\r\n template: '<ng-content></ng-content>',\r\n styleUrls: ['./header.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XHeaderComponent extends XHeaderProperty implements OnInit {\r\n @HostBinding('class') className = XHeaderPrefix;\r\n @HostBinding(`style.height`) get getHeight() {\r\n return this.height();\r\n }\r\n private container = inject(XContainerComponent, { optional: true, host: true });\r\n\r\n ngOnInit() {\r\n this.setDirection();\r\n }\r\n\r\n setDirection() {\r\n if (!this.container || this.container.direction()) return;\r\n this.container.directionSignal.set('column');\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding } from '@angular/core';\r\nimport { XAsidePrefix, XAsideProperty } from './container.property';\r\n\r\n@Component({\r\n selector: `${XAsidePrefix}`,\r\n template: '<ng-content></ng-content>',\r\n styleUrls: ['./aside.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XAsideComponent extends XAsideProperty {\r\n @HostBinding('class') className = XAsidePrefix;\r\n @HostBinding(`style.width`) get getWidth() {\r\n return this.width();\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding } from '@angular/core';\r\nimport { XMainPrefix } from './container.property';\r\n\r\n@Component({\r\n selector: `${XMainPrefix}`,\r\n template: '<ng-content></ng-content>',\r\n styleUrls: ['./main.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XMainComponent {\r\n @HostBinding('class') className = XMainPrefix;\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, inject } from '@angular/core';\r\nimport { XFooterPrefix, XFooterProperty } from './container.property';\r\nimport { XContainerComponent } from './container.component';\r\n\r\n@Component({\r\n selector: `${XFooterPrefix}`,\r\n template: '<ng-content></ng-content>',\r\n styleUrls: ['./footer.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XFooterComponent extends XFooterProperty implements OnInit {\r\n @HostBinding('class') className = XFooterPrefix;\r\n @HostBinding(`style.height`) get getHeight() {\r\n return this.height();\r\n }\r\n private container = inject(XContainerComponent, { optional: true, host: true });\r\n\r\n ngOnInit() {\r\n this.setDirection();\r\n }\r\n\r\n setDirection() {\r\n if (!this.container || this.container.direction()) return;\r\n this.container.directionSignal.set('column');\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XContainerComponent } from './container.component';\r\nimport { XFooterComponent } from './footer.component';\r\nimport { XMainComponent } from './main.component';\r\nimport { XAsideComponent } from './aside.component';\r\nimport { XHeaderComponent } from './header.component';\r\n\r\n@NgModule({\r\n imports: [XContainerComponent, XHeaderComponent, XAsideComponent, XMainComponent, XFooterComponent],\r\n exports: [XContainerComponent, XHeaderComponent, XAsideComponent, XMainComponent, XFooterComponent]\r\n})\r\nexport class XContainerModule {}\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-container.mjs","sources":["../../../../lib/ng-nest/ui/container/container.property.ts","../../../../lib/ng-nest/ui/container/container.component.ts","../../../../lib/ng-nest/ui/container/header.component.ts","../../../../lib/ng-nest/ui/container/aside.component.ts","../../../../lib/ng-nest/ui/container/main.component.ts","../../../../lib/ng-nest/ui/container/footer.component.ts","../../../../lib/ng-nest/ui/container/container.module.ts","../../../../lib/ng-nest/ui/container/ng-nest-ui-container.ts"],"sourcesContent":["import { XPropertyFunction, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport { Component, input } from '@angular/core';\r\nimport type { XDirection, XNumber } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Container\r\n * @selector x-container\r\n * @decorator component\r\n */\r\nexport const XContainerPrefix = 'x-container';\r\nconst X_CONTAINER_CONFIG_NAME = 'container';\r\n\r\n/**\r\n * Container Property\r\n */\r\n@Component({ selector: `${XContainerPrefix}-property`, template: '' })\r\nexport class XContainerProperty extends XPropertyFunction(X_CONTAINER_CONFIG_NAME) {\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向,子元素中有 x-header 或 x-footer 时为 column\r\n * @en_US The arrangement direction of the sub-elements under the flex layout. When the sub-elements have x-header or x-footer, it is column\r\n * @default ''\r\n */\r\n readonly direction = input<XDirection>(this.config?.direction!);\r\n}\r\n\r\n/**\r\n * Header\r\n * @selector x-header\r\n * @decorator component\r\n */\r\nexport const XHeaderPrefix = 'x-header';\r\nconst X_HEADER_CONFIG_NAME = 'header';\r\n\r\n/**\r\n * Header Property\r\n */\r\n@Component({ selector: `${XHeaderPrefix}-property`, template: '' })\r\nexport class XHeaderProperty extends XPropertyFunction(X_HEADER_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 高度\r\n * @en_US Height\r\n */\r\n readonly height = input<string, XNumber>(this.config?.height ?? '3rem', { transform: XToCssPixelValue });\r\n}\r\n\r\n/**\r\n * Aside\r\n * @selector x-aside\r\n * @decorator component\r\n */\r\nexport const XAsidePrefix = 'x-aside';\r\nconst X_ASIDE_CONFIG_NAME = 'aside';\r\n\r\n/**\r\n * Aside Property\r\n */\r\n@Component({ selector: `${XAsidePrefix}-property`, template: '' })\r\nexport class XAsideProperty extends XPropertyFunction(X_ASIDE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n readonly width = input<string, XNumber>(this.config?.width ?? '12rem', { transform: XToCssPixelValue });\r\n}\r\n\r\n/**\r\n * main\r\n * @selector x-main\r\n * @decorator component\r\n */\r\nexport const XMainPrefix = 'x-main';\r\n\r\n/**\r\n * Footer\r\n * @selector x-footer\r\n * @decorator component\r\n */\r\nexport const XFooterPrefix = 'x-footer';\r\nconst X_FOOTER_CONFIG_NAME = 'footer';\r\n\r\n/**\r\n * Footer Property\r\n */\r\n@Component({ selector: `${XFooterPrefix}-property`, template: '' })\r\nexport class XFooterProperty extends XPropertyFunction(X_FOOTER_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 高度\r\n * @en_US Height\r\n */\r\n readonly height = input<string, XNumber>(this.config?.height ?? '3rem', { transform: XToCssPixelValue });\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, computed, signal } from '@angular/core';\r\nimport { XContainerPrefix, XContainerProperty } from './container.property';\r\nimport type { XDirection } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XContainerPrefix}`,\r\n template: '<ng-content></ng-content>',\r\n styleUrls: ['./container.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XContainerComponent extends XContainerProperty {\r\n @HostBinding('class') get className() {\r\n return `${XContainerPrefix} ${this.directionClass()}`;\r\n }\r\n\r\n directionSignal = signal<XDirection | null>(null);\r\n\r\n directionClass = computed(() => {\r\n const direction = this.directionSignal() || this.direction();\r\n if (direction) {\r\n return `x-direction-${direction}`;\r\n } else {\r\n return ``;\r\n }\r\n });\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, inject } from '@angular/core';\r\nimport { XHeaderPrefix, XHeaderProperty } from './container.property';\r\nimport { XContainerComponent } from './container.component';\r\n\r\n@Component({\r\n selector: `${XHeaderPrefix}`,\r\n template: '<ng-content></ng-content>',\r\n styleUrls: ['./header.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XHeaderComponent extends XHeaderProperty implements OnInit {\r\n @HostBinding('class') className = XHeaderPrefix;\r\n @HostBinding(`style.height`) get getHeight() {\r\n return this.height();\r\n }\r\n private container = inject(XContainerComponent, { optional: true, host: true });\r\n\r\n ngOnInit() {\r\n this.setDirection();\r\n }\r\n\r\n setDirection() {\r\n if (!this.container || this.container.direction()) return;\r\n this.container.directionSignal.set('column');\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding } from '@angular/core';\r\nimport { XAsidePrefix, XAsideProperty } from './container.property';\r\n\r\n@Component({\r\n selector: `${XAsidePrefix}`,\r\n template: '<ng-content></ng-content>',\r\n styleUrls: ['./aside.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XAsideComponent extends XAsideProperty {\r\n @HostBinding('class') className = XAsidePrefix;\r\n @HostBinding(`style.width`) get getWidth() {\r\n return this.width();\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding } from '@angular/core';\r\nimport { XMainPrefix } from './container.property';\r\n\r\n@Component({\r\n selector: `${XMainPrefix}`,\r\n template: '<ng-content></ng-content>',\r\n styleUrls: ['./main.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XMainComponent {\r\n @HostBinding('class') className = XMainPrefix;\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, inject } from '@angular/core';\r\nimport { XFooterPrefix, XFooterProperty } from './container.property';\r\nimport { XContainerComponent } from './container.component';\r\n\r\n@Component({\r\n selector: `${XFooterPrefix}`,\r\n template: '<ng-content></ng-content>',\r\n styleUrls: ['./footer.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XFooterComponent extends XFooterProperty implements OnInit {\r\n @HostBinding('class') className = XFooterPrefix;\r\n @HostBinding(`style.height`) get getHeight() {\r\n return this.height();\r\n }\r\n private container = inject(XContainerComponent, { optional: true, host: true });\r\n\r\n ngOnInit() {\r\n this.setDirection();\r\n }\r\n\r\n setDirection() {\r\n if (!this.container || this.container.direction()) return;\r\n this.container.directionSignal.set('column');\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XContainerComponent } from './container.component';\r\nimport { XFooterComponent } from './footer.component';\r\nimport { XMainComponent } from './main.component';\r\nimport { XAsideComponent } from './aside.component';\r\nimport { XHeaderComponent } from './header.component';\r\n\r\n@NgModule({\r\n imports: [XContainerComponent, XHeaderComponent, XAsideComponent, XMainComponent, XFooterComponent],\r\n exports: [XContainerComponent, XHeaderComponent, XAsideComponent, XMainComponent, XFooterComponent]\r\n})\r\nexport class XContainerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}