ngx-tethys 20.0.1 → 20.0.2

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 (239) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/action/index.d.ts +3 -3
  3. package/affix/index.d.ts +1 -1
  4. package/alert/index.d.ts +3 -3
  5. package/anchor/index.d.ts +3 -3
  6. package/arrow-switcher/index.d.ts +6 -6
  7. package/autocomplete/index.d.ts +7 -7
  8. package/avatar/index.d.ts +9 -9
  9. package/back-top/index.d.ts +3 -3
  10. package/badge/index.d.ts +6 -6
  11. package/breadcrumb/index.d.ts +7 -7
  12. package/button/index.d.ts +19 -19
  13. package/calendar/index.d.ts +8 -8
  14. package/card/index.d.ts +6 -6
  15. package/carousel/index.d.ts +4 -4
  16. package/cascader/index.d.ts +24 -24
  17. package/collapse/index.d.ts +4 -4
  18. package/color-picker/index.d.ts +16 -16
  19. package/comment/index.d.ts +3 -3
  20. package/copy/index.d.ts +2 -2
  21. package/core/index.d.ts +22 -22
  22. package/date-picker/index.d.ts +111 -111
  23. package/date-range/index.d.ts +5 -5
  24. package/dialog/index.d.ts +18 -18
  25. package/divider/index.d.ts +3 -3
  26. package/drag-drop/index.d.ts +7 -7
  27. package/dropdown/index.d.ts +10 -10
  28. package/empty/index.d.ts +12 -12
  29. package/fesm2022/ngx-tethys-action.mjs +14 -12
  30. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  31. package/fesm2022/ngx-tethys-affix.mjs +7 -7
  32. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  33. package/fesm2022/ngx-tethys-alert.mjs +10 -10
  34. package/fesm2022/ngx-tethys-anchor.mjs +11 -11
  35. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  36. package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
  37. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  38. package/fesm2022/ngx-tethys-autocomplete.mjs +19 -18
  39. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  40. package/fesm2022/ngx-tethys-avatar.mjs +23 -22
  41. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  42. package/fesm2022/ngx-tethys-back-top.mjs +7 -7
  43. package/fesm2022/ngx-tethys-badge.mjs +7 -7
  44. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  45. package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
  46. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  47. package/fesm2022/ngx-tethys-button.mjs +16 -16
  48. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  49. package/fesm2022/ngx-tethys-calendar.mjs +16 -16
  50. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  51. package/fesm2022/ngx-tethys-card.mjs +13 -13
  52. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  53. package/fesm2022/ngx-tethys-carousel.mjs +15 -15
  54. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  55. package/fesm2022/ngx-tethys-cascader.mjs +41 -34
  56. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  57. package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
  58. package/fesm2022/ngx-tethys-collapse.mjs +10 -10
  59. package/fesm2022/ngx-tethys-color-picker.mjs +65 -57
  60. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  61. package/fesm2022/ngx-tethys-comment.mjs +13 -13
  62. package/fesm2022/ngx-tethys-copy.mjs +10 -10
  63. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  64. package/fesm2022/ngx-tethys-core.mjs +30 -25
  65. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  66. package/fesm2022/ngx-tethys-date-picker.mjs +184 -174
  67. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  68. package/fesm2022/ngx-tethys-date-range.mjs +16 -16
  69. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  70. package/fesm2022/ngx-tethys-dialog.mjs +24 -24
  71. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  72. package/fesm2022/ngx-tethys-divider.mjs +7 -7
  73. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  74. package/fesm2022/ngx-tethys-dot.mjs +7 -7
  75. package/fesm2022/ngx-tethys-drag-drop.mjs +24 -24
  76. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  77. package/fesm2022/ngx-tethys-dropdown.mjs +48 -47
  78. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  79. package/fesm2022/ngx-tethys-empty.mjs +13 -13
  80. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
  82. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  83. package/fesm2022/ngx-tethys-form.mjs +64 -61
  84. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  85. package/fesm2022/ngx-tethys-fullscreen.mjs +18 -15
  86. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  87. package/fesm2022/ngx-tethys-grid.mjs +34 -33
  88. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  89. package/fesm2022/ngx-tethys-guider.mjs +25 -24
  90. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  91. package/fesm2022/ngx-tethys-i18n.mjs +3 -3
  92. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  93. package/fesm2022/ngx-tethys-icon.mjs +15 -13
  94. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  95. package/fesm2022/ngx-tethys-image.mjs +31 -29
  96. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  97. package/fesm2022/ngx-tethys-input-number.mjs +17 -10
  98. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  99. package/fesm2022/ngx-tethys-input.mjs +28 -27
  100. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  101. package/fesm2022/ngx-tethys-layout.mjs +63 -63
  102. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  103. package/fesm2022/ngx-tethys-list.mjs +21 -18
  104. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  105. package/fesm2022/ngx-tethys-loading.mjs +7 -7
  106. package/fesm2022/ngx-tethys-mention.mjs +35 -31
  107. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  108. package/fesm2022/ngx-tethys-menu.mjs +26 -26
  109. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  110. package/fesm2022/ngx-tethys-message.mjs +24 -24
  111. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  112. package/fesm2022/ngx-tethys-nav.mjs +27 -27
  113. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  114. package/fesm2022/ngx-tethys-notify.mjs +20 -20
  115. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  116. package/fesm2022/ngx-tethys-pagination.mjs +18 -18
  117. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  118. package/fesm2022/ngx-tethys-popover.mjs +22 -21
  119. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  120. package/fesm2022/ngx-tethys-progress.mjs +17 -17
  121. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  122. package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
  123. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  124. package/fesm2022/ngx-tethys-property.mjs +12 -11
  125. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  126. package/fesm2022/ngx-tethys-radio.mjs +17 -17
  127. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  128. package/fesm2022/ngx-tethys-rate.mjs +12 -12
  129. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  130. package/fesm2022/ngx-tethys-resizable.mjs +21 -18
  131. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  132. package/fesm2022/ngx-tethys-result.mjs +11 -11
  133. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  134. package/fesm2022/ngx-tethys-segment.mjs +19 -16
  135. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  136. package/fesm2022/ngx-tethys-select.mjs +60 -38
  137. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  138. package/fesm2022/ngx-tethys-shared.mjs +82 -79
  139. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  140. package/fesm2022/ngx-tethys-skeleton.mjs +32 -32
  141. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  142. package/fesm2022/ngx-tethys-slide.mjs +37 -36
  143. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  144. package/fesm2022/ngx-tethys-slider.mjs +11 -11
  145. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  146. package/fesm2022/ngx-tethys-space.mjs +10 -10
  147. package/fesm2022/ngx-tethys-statistic.mjs +7 -7
  148. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  149. package/fesm2022/ngx-tethys-stepper.mjs +22 -22
  150. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  151. package/fesm2022/ngx-tethys-strength.mjs +7 -7
  152. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  153. package/fesm2022/ngx-tethys-switch.mjs +7 -7
  154. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  155. package/fesm2022/ngx-tethys-table.mjs +28 -28
  156. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  157. package/fesm2022/ngx-tethys-tabs.mjs +13 -13
  158. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  159. package/fesm2022/ngx-tethys-tag.mjs +11 -11
  160. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  161. package/fesm2022/ngx-tethys-testing.mjs +1 -1
  162. package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
  163. package/fesm2022/ngx-tethys-time-picker.mjs +22 -22
  164. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  165. package/fesm2022/ngx-tethys-timeline.mjs +14 -14
  166. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  167. package/fesm2022/ngx-tethys-tooltip.mjs +19 -16
  168. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  169. package/fesm2022/ngx-tethys-transfer.mjs +15 -15
  170. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  171. package/fesm2022/ngx-tethys-tree-select.mjs +17 -17
  172. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  173. package/fesm2022/ngx-tethys-tree.mjs +50 -43
  174. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  175. package/fesm2022/ngx-tethys-typography.mjs +16 -16
  176. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  177. package/fesm2022/ngx-tethys-upload.mjs +26 -25
  178. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  179. package/fesm2022/ngx-tethys-util.mjs +11 -5
  180. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  181. package/fesm2022/ngx-tethys-vote.mjs +7 -7
  182. package/fesm2022/ngx-tethys-watermark.mjs +18 -15
  183. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  184. package/fesm2022/ngx-tethys.mjs +1 -1
  185. package/fesm2022/ngx-tethys.mjs.map +1 -1
  186. package/flexible-text/index.d.ts +5 -5
  187. package/form/index.d.ts +26 -22
  188. package/fullscreen/index.d.ts +4 -4
  189. package/grid/index.d.ts +12 -12
  190. package/guider/index.d.ts +10 -10
  191. package/i18n/index.d.ts +1 -1
  192. package/icon/index.d.ts +3 -3
  193. package/image/index.d.ts +12 -12
  194. package/input/index.d.ts +22 -22
  195. package/input-number/index.d.ts +4 -4
  196. package/layout/index.d.ts +16 -16
  197. package/list/index.d.ts +16 -15
  198. package/mention/index.d.ts +4 -4
  199. package/menu/index.d.ts +7 -7
  200. package/message/index.d.ts +5 -5
  201. package/nav/index.d.ts +12 -12
  202. package/notify/index.d.ts +1 -1
  203. package/package.json +1 -1
  204. package/pagination/index.d.ts +21 -17
  205. package/popover/index.d.ts +8 -8
  206. package/progress/index.d.ts +18 -18
  207. package/property/index.d.ts +6 -6
  208. package/property-operation/index.d.ts +3 -3
  209. package/radio/index.d.ts +6 -6
  210. package/rate/index.d.ts +5 -5
  211. package/resizable/index.d.ts +2 -2
  212. package/result/index.d.ts +8 -8
  213. package/schematics/testing/test-workspace.js +1 -0
  214. package/schematics/version.d.ts +1 -1
  215. package/schematics/version.js +1 -1
  216. package/segment/index.d.ts +9 -9
  217. package/select/index.d.ts +21 -21
  218. package/shared/index.d.ts +29 -29
  219. package/skeleton/index.d.ts +52 -52
  220. package/slide/index.d.ts +5 -5
  221. package/slider/index.d.ts +6 -6
  222. package/space/index.d.ts +1 -1
  223. package/statistic/index.d.ts +18 -18
  224. package/stepper/index.d.ts +8 -8
  225. package/switch/index.d.ts +2 -2
  226. package/table/index.d.ts +24 -24
  227. package/tabs/index.d.ts +6 -6
  228. package/testing/index.d.ts +1 -1
  229. package/time-picker/index.d.ts +21 -21
  230. package/timeline/index.d.ts +8 -8
  231. package/tooltip/index.d.ts +12 -12
  232. package/transfer/index.d.ts +16 -16
  233. package/tree/index.d.ts +28 -28
  234. package/tree-select/index.d.ts +13 -13
  235. package/typography/index.d.ts +3 -3
  236. package/upload/index.d.ts +4 -4
  237. package/util/index.d.ts +17 -7
  238. package/vote/index.d.ts +2 -2
  239. package/watermark/index.d.ts +2 -2
@@ -25,8 +25,8 @@ class ThyRateItem {
25
25
  clickRateItem(isHalf) {
26
26
  this.itemClick.emit(isHalf && this.allowHalf());
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyRateItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: ThyRateItem, isStandalone: true, selector: "thy-rate-item, [thy-rate-item]", inputs: { allowHalf: { classPropertyName: "allowHalf", publicName: "allowHalf", isSignal: true, isRequired: false, transformFunction: null }, iconValue: { classPropertyName: "iconValue", publicName: "iconValue", isSignal: true, isRequired: false, transformFunction: null }, iconTemplate: { classPropertyName: "iconTemplate", publicName: "iconTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemHover: "itemHover", itemClick: "itemClick" }, ngImport: i0, template: `
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRateItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThyRateItem, isStandalone: true, selector: "thy-rate-item, [thy-rate-item]", inputs: { allowHalf: { classPropertyName: "allowHalf", publicName: "allowHalf", isSignal: true, isRequired: false, transformFunction: null }, iconValue: { classPropertyName: "iconValue", publicName: "iconValue", isSignal: true, isRequired: false, transformFunction: null }, iconTemplate: { classPropertyName: "iconTemplate", publicName: "iconTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemHover: "itemHover", itemClick: "itemClick" }, ngImport: i0, template: `
30
30
  <div class="thy-rate-item-left" thyStopPropagation (mouseover)="hoverRateItem(true)" (click)="clickRateItem(true)">
31
31
  <ng-template [ngTemplateOutlet]="iconTemplate() || (iconValue() && character) || defaultTemplate"></ng-template>
32
32
  </div>
@@ -43,7 +43,7 @@ class ThyRateItem {
43
43
  </ng-template>
44
44
  `, isInline: true, dependencies: [{ kind: "directive", type: ThyStopPropagationDirective, selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyRateItem, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRateItem, decorators: [{
47
47
  type: Component,
48
48
  args: [{
49
49
  selector: 'thy-rate-item, [thy-rate-item]',
@@ -244,16 +244,16 @@ class ThyRate extends TabIndexDisabledControlValueAccessorMixin {
244
244
  trackByFn(index, item) {
245
245
  return item || index;
246
246
  }
247
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyRate, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
248
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: ThyRate, isStandalone: true, selector: "thy-rate", inputs: { thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, currentValue: { classPropertyName: "currentValue", publicName: "currentValue", isSignal: true, isRequired: false, transformFunction: null }, hasHalf: { classPropertyName: "hasHalf", publicName: "hasHalf", isSignal: true, isRequired: false, transformFunction: null }, thyCount: { classPropertyName: "thyCount", publicName: "thyCount", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: false, isRequired: false, transformFunction: coerceBooleanProperty }, thyAllowHalf: { classPropertyName: "thyAllowHalf", publicName: "thyAllowHalf", isSignal: true, isRequired: false, transformFunction: null }, thyAllowClear: { classPropertyName: "thyAllowClear", publicName: "thyAllowClear", isSignal: true, isRequired: false, transformFunction: null }, thyTooltips: { classPropertyName: "thyTooltips", publicName: "thyTooltips", isSignal: true, isRequired: false, transformFunction: null }, thyIconTemplate: { classPropertyName: "thyIconTemplate", publicName: "thyIconTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyValue: "thyValueChange", currentValue: "currentValueChange", hasHalf: "hasHalfChange", thyItemHoverChange: "thyItemHoverChange" }, host: { properties: { "attr.tabindex": "tabIndex" }, classAttribute: "thy-rate" }, providers: [
247
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRate, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
248
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyRate, isStandalone: true, selector: "thy-rate", inputs: { thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, currentValue: { classPropertyName: "currentValue", publicName: "currentValue", isSignal: true, isRequired: false, transformFunction: null }, hasHalf: { classPropertyName: "hasHalf", publicName: "hasHalf", isSignal: true, isRequired: false, transformFunction: null }, thyCount: { classPropertyName: "thyCount", publicName: "thyCount", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: false, isRequired: false, transformFunction: coerceBooleanProperty }, thyAllowHalf: { classPropertyName: "thyAllowHalf", publicName: "thyAllowHalf", isSignal: true, isRequired: false, transformFunction: null }, thyAllowClear: { classPropertyName: "thyAllowClear", publicName: "thyAllowClear", isSignal: true, isRequired: false, transformFunction: null }, thyTooltips: { classPropertyName: "thyTooltips", publicName: "thyTooltips", isSignal: true, isRequired: false, transformFunction: null }, thyIconTemplate: { classPropertyName: "thyIconTemplate", publicName: "thyIconTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyValue: "thyValueChange", currentValue: "currentValueChange", hasHalf: "hasHalfChange", thyItemHoverChange: "thyItemHoverChange" }, host: { properties: { "attr.tabindex": "tabIndex" }, classAttribute: "thy-rate" }, providers: [
249
249
  {
250
250
  provide: NG_VALUE_ACCESSOR,
251
251
  useExisting: forwardRef(() => ThyRate),
252
252
  multi: true
253
253
  }
254
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"thy-rate-container\" [class.thy-rate-container--disabled]=\"thyDisabled\" (mouseleave)=\"onRateLeave($event)\">\n @for (star of rateArray(); track trackByFn(index, star); let index = $index) {\n <div\n thyStopPropagation\n class=\"thy-rate-star\"\n [ngClass]=\"rateStyleArray()[index] || ''\"\n thy-rate-item\n [allowHalf]=\"thyAllowHalf()\"\n [iconValue]=\"iconValue()\"\n [iconTemplate]=\"iconTemplate()\"\n (itemHover)=\"itemHover($event, index)\"\n (itemClick)=\"itemClick($event, index)\"\n [thyTooltip]=\"thyTooltips()[index]\"\n thyTooltipPlacement=\"top\"\n ></div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: ThyStopPropagationDirective, selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }, { kind: "component", type: ThyRateItem, selector: "thy-rate-item, [thy-rate-item]", inputs: ["allowHalf", "iconValue", "iconTemplate"], outputs: ["itemHover", "itemClick"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
254
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"thy-rate-container\" [class.thy-rate-container--disabled]=\"thyDisabled\" (mouseleave)=\"onRateLeave($event)\">\n @for (star of rateArray(); track trackByFn(index, star); let index = $index) {\n <div\n thyStopPropagation\n class=\"thy-rate-star\"\n [ngClass]=\"rateStyleArray()[index] || ''\"\n thy-rate-item\n [allowHalf]=\"thyAllowHalf()\"\n [iconValue]=\"iconValue()\"\n [iconTemplate]=\"iconTemplate()\"\n (itemHover)=\"itemHover($event, index)\"\n (itemClick)=\"itemClick($event, index)\"\n [thyTooltip]=\"thyTooltips()[index]\"\n thyTooltipPlacement=\"top\"></div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: ThyStopPropagationDirective, selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }, { kind: "component", type: ThyRateItem, selector: "thy-rate-item, [thy-rate-item]", inputs: ["allowHalf", "iconValue", "iconTemplate"], outputs: ["itemHover", "itemClick"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
255
255
  }
256
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyRate, decorators: [{
256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRate, decorators: [{
257
257
  type: Component,
258
258
  args: [{ selector: 'thy-rate', providers: [
259
259
  {
@@ -264,18 +264,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
264
264
  ], host: {
265
265
  '[attr.tabindex]': `tabIndex`,
266
266
  class: 'thy-rate'
267
- }, changeDetection: ChangeDetectionStrategy.OnPush, imports: [ThyStopPropagationDirective, ThyRateItem, NgClass, ThyTooltipDirective], template: "<div class=\"thy-rate-container\" [class.thy-rate-container--disabled]=\"thyDisabled\" (mouseleave)=\"onRateLeave($event)\">\n @for (star of rateArray(); track trackByFn(index, star); let index = $index) {\n <div\n thyStopPropagation\n class=\"thy-rate-star\"\n [ngClass]=\"rateStyleArray()[index] || ''\"\n thy-rate-item\n [allowHalf]=\"thyAllowHalf()\"\n [iconValue]=\"iconValue()\"\n [iconTemplate]=\"iconTemplate()\"\n (itemHover)=\"itemHover($event, index)\"\n (itemClick)=\"itemClick($event, index)\"\n [thyTooltip]=\"thyTooltips()[index]\"\n thyTooltipPlacement=\"top\"\n ></div>\n }\n</div>\n" }]
267
+ }, changeDetection: ChangeDetectionStrategy.OnPush, imports: [ThyStopPropagationDirective, ThyRateItem, NgClass, ThyTooltipDirective], template: "<div class=\"thy-rate-container\" [class.thy-rate-container--disabled]=\"thyDisabled\" (mouseleave)=\"onRateLeave($event)\">\n @for (star of rateArray(); track trackByFn(index, star); let index = $index) {\n <div\n thyStopPropagation\n class=\"thy-rate-star\"\n [ngClass]=\"rateStyleArray()[index] || ''\"\n thy-rate-item\n [allowHalf]=\"thyAllowHalf()\"\n [iconValue]=\"iconValue()\"\n [iconTemplate]=\"iconTemplate()\"\n (itemHover)=\"itemHover($event, index)\"\n (itemClick)=\"itemClick($event, index)\"\n [thyTooltip]=\"thyTooltips()[index]\"\n thyTooltipPlacement=\"top\"></div>\n }\n</div>\n" }]
268
268
  }], ctorParameters: () => [], propDecorators: { thyValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyValue", required: false }] }, { type: i0.Output, args: ["thyValueChange"] }], currentValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentValue", required: false }] }, { type: i0.Output, args: ["currentValueChange"] }], hasHalf: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasHalf", required: false }] }, { type: i0.Output, args: ["hasHalfChange"] }], thyCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyCount", required: false }] }], thyDisabled: [{
269
269
  type: Input,
270
270
  args: [{ transform: coerceBooleanProperty }]
271
271
  }], thyAllowHalf: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyAllowHalf", required: false }] }], thyAllowClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyAllowClear", required: false }] }], thyTooltips: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyTooltips", required: false }] }], thyIconTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyIconTemplate", required: false }] }], thyItemHoverChange: [{ type: i0.Output, args: ["thyItemHoverChange"] }] } });
272
272
 
273
273
  class ThyRateModule {
274
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyRateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
275
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: ThyRateModule, imports: [CommonModule, FormsModule, ThySharedModule, ThyIconModule, ThyTooltipModule, ThyRate, ThyRateItem], exports: [ThyRate] }); }
276
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyRateModule, imports: [CommonModule, FormsModule, ThySharedModule, ThyIconModule, ThyTooltipModule, ThyRate, ThyRateItem] }); }
274
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
275
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyRateModule, imports: [CommonModule, FormsModule, ThySharedModule, ThyIconModule, ThyTooltipModule, ThyRate, ThyRateItem], exports: [ThyRate] }); }
276
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRateModule, imports: [CommonModule, FormsModule, ThySharedModule, ThyIconModule, ThyTooltipModule, ThyRate, ThyRateItem] }); }
277
277
  }
278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyRateModule, decorators: [{
278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRateModule, decorators: [{
279
279
  type: NgModule,
280
280
  args: [{
281
281
  imports: [CommonModule, FormsModule, ThySharedModule, ThyIconModule, ThyTooltipModule, ThyRate, ThyRateItem],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-rate.mjs","sources":["../../../src/rate/rate-item.component.ts","../../../src/rate/rate.component.ts","../../../src/rate/rate.component.html","../../../src/rate/module.ts","../../../src/rate/ngx-tethys-rate.ts"],"sourcesContent":["import { Component, TemplateRef, input, output } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ThyStopPropagationDirective } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-rate-item, [thy-rate-item]',\n template: `\n <div class=\"thy-rate-item-left\" thyStopPropagation (mouseover)=\"hoverRateItem(true)\" (click)=\"clickRateItem(true)\">\n <ng-template [ngTemplateOutlet]=\"iconTemplate() || (iconValue() && character) || defaultTemplate\"></ng-template>\n </div>\n <div class=\"thy-rate-item-all\" thyStopPropagation (mouseover)=\"hoverRateItem(false)\" (click)=\"clickRateItem(false)\">\n <ng-template [ngTemplateOutlet]=\"iconTemplate() || (iconValue() && character) || defaultTemplate\"></ng-template>\n </div>\n\n <ng-template #defaultTemplate>\n <thy-icon thyIconName=\"star-fill\"></thy-icon>\n </ng-template>\n\n <ng-template #character>\n <thy-icon [thyIconName]=\"iconValue()\"></thy-icon>\n </ng-template>\n `,\n imports: [ThyStopPropagationDirective, NgTemplateOutlet, ThyIcon]\n})\nexport class ThyRateItem {\n readonly allowHalf = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly iconValue = input<string>();\n\n readonly iconTemplate = input<TemplateRef<any>>();\n\n readonly itemHover = output<boolean>();\n\n readonly itemClick = output<boolean>();\n\n constructor() {}\n\n hoverRateItem(isHalf: boolean): void {\n this.itemHover.emit(isHalf && this.allowHalf());\n }\n\n clickRateItem(isHalf: boolean): void {\n this.itemClick.emit(isHalf && this.allowHalf());\n }\n}\n","import { TabIndexDisabledControlValueAccessorMixin } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, helpers, ThyBooleanInput } from 'ngx-tethys/util';\n\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Input,\n numberAttribute,\n TemplateRef,\n inject,\n input,\n output,\n computed,\n model,\n ModelSignal,\n effect\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyStopPropagationDirective } from 'ngx-tethys/shared';\nimport { ThyTooltipDirective } from 'ngx-tethys/tooltip';\nimport { ThyRateItem } from './rate-item.component';\n\nconst noop = () => {};\n\n/**\n * 评分组件\n * @name thy-rate\n * @order 10\n */\n@Component({\n selector: 'thy-rate',\n templateUrl: './rate.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyRate),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `tabIndex`,\n class: 'thy-rate'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyStopPropagationDirective, ThyRateItem, NgClass, ThyTooltipDirective]\n})\nexport class ThyRate extends TabIndexDisabledControlValueAccessorMixin implements ControlValueAccessor {\n private cdr = inject(ChangeDetectorRef);\n\n readonly thyValue: ModelSignal<number> = model(0);\n\n readonly currentValue: ModelSignal<number> = model(0);\n\n readonly hasHalf: ModelSignal<boolean> = model(false);\n\n private onTouchedCallback: () => void = noop;\n\n private onChangeCallback: (_: any) => void = noop;\n\n /**\n * 自定义评分的总数\n */\n readonly thyCount = input(5, { transform: numberAttribute });\n\n /**\n * 是否只读\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n override set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n override get thyDisabled(): boolean {\n return this.disabled;\n }\n\n disabled = false;\n\n /**\n * 是否允许半选\n * @default false\n */\n readonly thyAllowHalf = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否允许再次点击后清除\n */\n readonly thyAllowClear = input<boolean, ThyBooleanInput>(true, { transform: coerceBooleanProperty });\n\n /**\n * 自定义每项的提示信息\n * @type string[]\n */\n readonly thyTooltips = input<string[]>([]);\n\n /**\n * 自定义模板,目前支持传单个模板或图标名称、数组(模板 | 图标名称)\n * @type string | TemplateRef<any> | string[] | TemplateRef<any>[]\n */\n readonly thyIconTemplate = input<string | TemplateRef<any> | string[] | TemplateRef<any>[]>(null);\n\n /**\n * 当前值hover时的回调\n */\n readonly thyItemHoverChange = output<number>();\n\n readonly iconValue = computed(() => {\n const icons = this.thyIconTemplate();\n const currentValue = this.currentValue();\n if (!icons) {\n return null;\n } else {\n let iconValue = null;\n if (helpers.isArray(icons) && icons.length > 0) {\n const currentIcon = (currentValue && currentValue - 1) || 0;\n iconValue = icons[currentIcon];\n } else if (!helpers.isArray(icons)) {\n iconValue = icons;\n }\n if (iconValue instanceof TemplateRef) {\n return null;\n } else {\n return iconValue;\n }\n }\n });\n\n readonly iconTemplate = computed(() => {\n const icons = this.thyIconTemplate();\n const currentValue = this.currentValue();\n if (!icons) {\n return null;\n } else {\n let iconTemplate = null;\n if (helpers.isArray(icons) && icons.length > 0) {\n const currentIcon = (currentValue && currentValue - 1) || 0;\n iconTemplate = icons[currentIcon] as TemplateRef<any>;\n } else if (!helpers.isArray(icons)) {\n iconTemplate = icons;\n }\n if (iconTemplate instanceof TemplateRef) {\n return iconTemplate;\n } else {\n return null;\n }\n }\n });\n\n readonly rateArray = computed(() => {\n return this.updateRateArray();\n });\n\n readonly rateStyleArray = computed(() => {\n return this.updateItemStyle();\n });\n\n constructor() {\n super();\n effect(() => {\n this.hasHalf.set(!Number.isInteger(this.thyValue()));\n this.currentValue.set(Math.ceil(this.thyValue()));\n });\n }\n\n writeValue(value: number): void {\n this.thyValue.set(value || 0);\n this.cdr.markForCheck();\n }\n\n itemHover(isHalf: boolean, index: number): void {\n if (this.thyDisabled || (this.currentValue() === index + 1 && this.hasHalf() === isHalf)) {\n return;\n }\n this.currentValue.set(index + 1);\n this.hasHalf.set(isHalf);\n const _value = isHalf ? Number(this.currentValue() - 0.5) : this.currentValue();\n this.thyItemHoverChange.emit(_value);\n }\n\n itemClick(isHalf: boolean, index: number) {\n if (this.thyDisabled) {\n return;\n }\n this.currentValue.set(index + 1);\n const _value = isHalf ? index + 1 - 0.5 : index + 1;\n if (this.thyValue() === _value) {\n if (this.thyAllowClear()) {\n this.thyValue.set(0);\n this.onChangeCallback(this.thyValue());\n this.onTouchedCallback();\n }\n } else {\n this.thyValue.set(_value);\n this.onChangeCallback(this.thyValue());\n this.onTouchedCallback();\n }\n }\n\n onRateLeave(event: Event): void {\n event.stopPropagation();\n this.hasHalf.set(!Number.isInteger(this.thyValue()));\n this.currentValue.set(Math.ceil(this.thyValue()));\n }\n\n updateRateArray(): number[] {\n return this.thyCount() > 0\n ? Array(this.thyCount())\n .fill(0)\n .map((_, i) => {\n return i;\n })\n : [];\n }\n\n updateItemStyle(): Record<string, boolean>[] {\n const rateStyle = 'thy-rate-star';\n return this.rateArray().map(i => {\n const value = i + 1;\n return {\n [`${rateStyle}--full`]: value < this.currentValue() || (value === this.currentValue() && !this.hasHalf()),\n [`${rateStyle}--half`]: this.hasHalf() && value === this.currentValue(),\n [`${rateStyle}--active`]: this.hasHalf() && value === this.currentValue(),\n [`${rateStyle}--zero`]: value > this.currentValue()\n };\n });\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n trackByFn(index: number, item: any) {\n return item || index;\n }\n}\n","<div class=\"thy-rate-container\" [class.thy-rate-container--disabled]=\"thyDisabled\" (mouseleave)=\"onRateLeave($event)\">\n @for (star of rateArray(); track trackByFn(index, star); let index = $index) {\n <div\n thyStopPropagation\n class=\"thy-rate-star\"\n [ngClass]=\"rateStyleArray()[index] || ''\"\n thy-rate-item\n [allowHalf]=\"thyAllowHalf()\"\n [iconValue]=\"iconValue()\"\n [iconTemplate]=\"iconTemplate()\"\n (itemHover)=\"itemHover($event, index)\"\n (itemClick)=\"itemClick($event, index)\"\n [thyTooltip]=\"thyTooltips()[index]\"\n thyTooltipPlacement=\"top\"\n ></div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\nimport { ThyRateItem } from './rate-item.component';\nimport { ThyRate } from './rate.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThySharedModule, ThyIconModule, ThyTooltipModule, ThyRate, ThyRateItem],\n exports: [ThyRate],\n providers: []\n})\nexport class ThyRateModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-rate.mjs","sources":["../../../src/rate/rate-item.component.ts","../../../src/rate/rate.component.ts","../../../src/rate/rate.component.html","../../../src/rate/module.ts","../../../src/rate/ngx-tethys-rate.ts"],"sourcesContent":["import { Component, TemplateRef, input, output } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ThyStopPropagationDirective } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-rate-item, [thy-rate-item]',\n template: `\n <div class=\"thy-rate-item-left\" thyStopPropagation (mouseover)=\"hoverRateItem(true)\" (click)=\"clickRateItem(true)\">\n <ng-template [ngTemplateOutlet]=\"iconTemplate() || (iconValue() && character) || defaultTemplate\"></ng-template>\n </div>\n <div class=\"thy-rate-item-all\" thyStopPropagation (mouseover)=\"hoverRateItem(false)\" (click)=\"clickRateItem(false)\">\n <ng-template [ngTemplateOutlet]=\"iconTemplate() || (iconValue() && character) || defaultTemplate\"></ng-template>\n </div>\n\n <ng-template #defaultTemplate>\n <thy-icon thyIconName=\"star-fill\"></thy-icon>\n </ng-template>\n\n <ng-template #character>\n <thy-icon [thyIconName]=\"iconValue()\"></thy-icon>\n </ng-template>\n `,\n imports: [ThyStopPropagationDirective, NgTemplateOutlet, ThyIcon]\n})\nexport class ThyRateItem {\n readonly allowHalf = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly iconValue = input<string>();\n\n readonly iconTemplate = input<TemplateRef<any>>();\n\n readonly itemHover = output<boolean>();\n\n readonly itemClick = output<boolean>();\n\n constructor() {}\n\n hoverRateItem(isHalf: boolean): void {\n this.itemHover.emit(isHalf && this.allowHalf());\n }\n\n clickRateItem(isHalf: boolean): void {\n this.itemClick.emit(isHalf && this.allowHalf());\n }\n}\n","import { TabIndexDisabledControlValueAccessorMixin } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, helpers, ThyBooleanInput } from 'ngx-tethys/util';\n\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Input,\n numberAttribute,\n TemplateRef,\n inject,\n input,\n output,\n computed,\n model,\n ModelSignal,\n effect\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyStopPropagationDirective } from 'ngx-tethys/shared';\nimport { ThyTooltipDirective } from 'ngx-tethys/tooltip';\nimport { ThyRateItem } from './rate-item.component';\n\nconst noop = () => {};\n\n/**\n * 评分组件\n * @name thy-rate\n * @order 10\n */\n@Component({\n selector: 'thy-rate',\n templateUrl: './rate.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyRate),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `tabIndex`,\n class: 'thy-rate'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyStopPropagationDirective, ThyRateItem, NgClass, ThyTooltipDirective]\n})\nexport class ThyRate extends TabIndexDisabledControlValueAccessorMixin implements ControlValueAccessor {\n private cdr = inject(ChangeDetectorRef);\n\n readonly thyValue: ModelSignal<number> = model(0);\n\n readonly currentValue: ModelSignal<number> = model(0);\n\n readonly hasHalf: ModelSignal<boolean> = model(false);\n\n private onTouchedCallback: () => void = noop;\n\n private onChangeCallback: (_: any) => void = noop;\n\n /**\n * 自定义评分的总数\n */\n readonly thyCount = input(5, { transform: numberAttribute });\n\n /**\n * 是否只读\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n override set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n override get thyDisabled(): boolean {\n return this.disabled;\n }\n\n disabled = false;\n\n /**\n * 是否允许半选\n * @default false\n */\n readonly thyAllowHalf = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否允许再次点击后清除\n */\n readonly thyAllowClear = input<boolean, ThyBooleanInput>(true, { transform: coerceBooleanProperty });\n\n /**\n * 自定义每项的提示信息\n * @type string[]\n */\n readonly thyTooltips = input<string[]>([]);\n\n /**\n * 自定义模板,目前支持传单个模板或图标名称、数组(模板 | 图标名称)\n * @type string | TemplateRef<any> | string[] | TemplateRef<any>[]\n */\n readonly thyIconTemplate = input<string | TemplateRef<any> | string[] | TemplateRef<any>[] | null>(null);\n\n /**\n * 当前值hover时的回调\n */\n readonly thyItemHoverChange = output<number>();\n\n readonly iconValue = computed(() => {\n const icons = this.thyIconTemplate();\n const currentValue = this.currentValue();\n if (!icons) {\n return null;\n } else {\n let iconValue = null;\n if (helpers.isArray(icons) && icons.length > 0) {\n const currentIcon = (currentValue && currentValue - 1) || 0;\n iconValue = icons[currentIcon];\n } else if (!helpers.isArray(icons)) {\n iconValue = icons;\n }\n if (iconValue instanceof TemplateRef) {\n return null;\n } else {\n return iconValue;\n }\n }\n });\n\n readonly iconTemplate = computed(() => {\n const icons = this.thyIconTemplate();\n const currentValue = this.currentValue();\n if (!icons) {\n return null;\n } else {\n let iconTemplate = null;\n if (helpers.isArray(icons) && icons.length > 0) {\n const currentIcon = (currentValue && currentValue - 1) || 0;\n iconTemplate = icons[currentIcon] as TemplateRef<any>;\n } else if (!helpers.isArray(icons)) {\n iconTemplate = icons;\n }\n if (iconTemplate instanceof TemplateRef) {\n return iconTemplate;\n } else {\n return null;\n }\n }\n });\n\n readonly rateArray = computed(() => {\n return this.updateRateArray();\n });\n\n readonly rateStyleArray = computed(() => {\n return this.updateItemStyle();\n });\n\n constructor() {\n super();\n effect(() => {\n this.hasHalf.set(!Number.isInteger(this.thyValue()));\n this.currentValue.set(Math.ceil(this.thyValue()));\n });\n }\n\n writeValue(value: number): void {\n this.thyValue.set(value || 0);\n this.cdr.markForCheck();\n }\n\n itemHover(isHalf: boolean, index: number): void {\n if (this.thyDisabled || (this.currentValue() === index + 1 && this.hasHalf() === isHalf)) {\n return;\n }\n this.currentValue.set(index + 1);\n this.hasHalf.set(isHalf);\n const _value = isHalf ? Number(this.currentValue() - 0.5) : this.currentValue();\n this.thyItemHoverChange.emit(_value);\n }\n\n itemClick(isHalf: boolean, index: number) {\n if (this.thyDisabled) {\n return;\n }\n this.currentValue.set(index + 1);\n const _value = isHalf ? index + 1 - 0.5 : index + 1;\n if (this.thyValue() === _value) {\n if (this.thyAllowClear()) {\n this.thyValue.set(0);\n this.onChangeCallback(this.thyValue());\n this.onTouchedCallback();\n }\n } else {\n this.thyValue.set(_value);\n this.onChangeCallback(this.thyValue());\n this.onTouchedCallback();\n }\n }\n\n onRateLeave(event: Event): void {\n event.stopPropagation();\n this.hasHalf.set(!Number.isInteger(this.thyValue()));\n this.currentValue.set(Math.ceil(this.thyValue()));\n }\n\n updateRateArray(): number[] {\n return this.thyCount() > 0\n ? Array(this.thyCount())\n .fill(0)\n .map((_, i) => {\n return i;\n })\n : [];\n }\n\n updateItemStyle(): Record<string, boolean>[] {\n const rateStyle = 'thy-rate-star';\n return this.rateArray().map(i => {\n const value = i + 1;\n return {\n [`${rateStyle}--full`]: value < this.currentValue() || (value === this.currentValue() && !this.hasHalf()),\n [`${rateStyle}--half`]: this.hasHalf() && value === this.currentValue(),\n [`${rateStyle}--active`]: this.hasHalf() && value === this.currentValue(),\n [`${rateStyle}--zero`]: value > this.currentValue()\n };\n });\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n trackByFn(index: number, item: any) {\n return item || index;\n }\n}\n","<div class=\"thy-rate-container\" [class.thy-rate-container--disabled]=\"thyDisabled\" (mouseleave)=\"onRateLeave($event)\">\n @for (star of rateArray(); track trackByFn(index, star); let index = $index) {\n <div\n thyStopPropagation\n class=\"thy-rate-star\"\n [ngClass]=\"rateStyleArray()[index] || ''\"\n thy-rate-item\n [allowHalf]=\"thyAllowHalf()\"\n [iconValue]=\"iconValue()\"\n [iconTemplate]=\"iconTemplate()\"\n (itemHover)=\"itemHover($event, index)\"\n (itemClick)=\"itemClick($event, index)\"\n [thyTooltip]=\"thyTooltips()[index]\"\n thyTooltipPlacement=\"top\"></div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\nimport { ThyRateItem } from './rate-item.component';\nimport { ThyRate } from './rate.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThySharedModule, ThyIconModule, ThyTooltipModule, ThyRate, ThyRateItem],\n exports: [ThyRate],\n providers: []\n})\nexport class ThyRateModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -64,10 +64,10 @@ class ThyResizableService {
64
64
  this.mouseEnteredOutsideAngular$.complete();
65
65
  this.clearListeners();
66
66
  }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyResizableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
68
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyResizableService }); }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyResizableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
68
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyResizableService }); }
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyResizableService, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyResizableService, decorators: [{
71
71
  type: Injectable
72
72
  }], ctorParameters: () => [] });
73
73
 
@@ -78,9 +78,13 @@ function ensureInBounds(value, boundValue) {
78
78
  return value ? (value < boundValue ? value : boundValue) : boundValue;
79
79
  }
80
80
  function setCompatibleStyle(element, key, value) {
81
+ // @ts-ignore
81
82
  element.style[key] = value;
83
+ // @ts-ignore
82
84
  element.style[`-webkit-${key}`] = value;
85
+ // @ts-ignore
83
86
  element.style[`-moz-${key}`] = value;
87
+ // @ts-ignore
84
88
  element.style[`-ms-${key}`] = value;
85
89
  }
86
90
 
@@ -304,7 +308,6 @@ class ThyResizableDirective {
304
308
  let newWidth;
305
309
  let newHeight;
306
310
  let maxWidth;
307
- let maxHeight;
308
311
  let col = 0;
309
312
  let spanWidth = 0;
310
313
  let minWidth = this.thyMinWidth();
@@ -331,7 +334,7 @@ class ThyResizableDirective {
331
334
  boundHeight = boundsRect.height;
332
335
  }
333
336
  maxWidth = ensureInBounds(this.thyMaxWidth(), boundWidth);
334
- maxHeight = ensureInBounds(this.thyMaxHeight(), boundHeight);
337
+ const maxHeight = ensureInBounds(this.thyMaxHeight(), boundHeight);
335
338
  const gridColumnCount = this.thyGridColumnCount();
336
339
  if (gridColumnCount !== -1) {
337
340
  spanWidth = maxWidth / gridColumnCount;
@@ -392,10 +395,10 @@ class ThyResizableDirective {
392
395
  this.ghostElement = null;
393
396
  this.sizeCache = null;
394
397
  }
395
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyResizableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
396
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.14", type: ThyResizableDirective, isStandalone: true, selector: "[thyResizable]", inputs: { thyBounds: { classPropertyName: "thyBounds", publicName: "thyBounds", isSignal: true, isRequired: false, transformFunction: null }, thyMaxHeight: { classPropertyName: "thyMaxHeight", publicName: "thyMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, thyMaxWidth: { classPropertyName: "thyMaxWidth", publicName: "thyMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, thyMinHeight: { classPropertyName: "thyMinHeight", publicName: "thyMinHeight", isSignal: true, isRequired: false, transformFunction: null }, thyMinWidth: { classPropertyName: "thyMinWidth", publicName: "thyMinWidth", isSignal: true, isRequired: false, transformFunction: null }, thyGridColumnCount: { classPropertyName: "thyGridColumnCount", publicName: "thyGridColumnCount", isSignal: true, isRequired: false, transformFunction: null }, thyMaxColumn: { classPropertyName: "thyMaxColumn", publicName: "thyMaxColumn", isSignal: true, isRequired: false, transformFunction: null }, thyMinColumn: { classPropertyName: "thyMinColumn", publicName: "thyMinColumn", isSignal: true, isRequired: false, transformFunction: null }, thyLockAspectRatio: { classPropertyName: "thyLockAspectRatio", publicName: "thyLockAspectRatio", isSignal: true, isRequired: false, transformFunction: null }, thyPreview: { classPropertyName: "thyPreview", publicName: "thyPreview", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyResize: "thyResize", thyResizeStart: "thyResizeStart", thyResizeEnd: "thyResizeEnd" }, host: { properties: { "class.thy-resizable-resizing": "resizing()", "class.thy-resizable-disabled": "thyDisabled()" }, classAttribute: "thy-resizable" }, providers: [ThyResizableService], ngImport: i0 }); }
398
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyResizableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
399
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: ThyResizableDirective, isStandalone: true, selector: "[thyResizable]", inputs: { thyBounds: { classPropertyName: "thyBounds", publicName: "thyBounds", isSignal: true, isRequired: false, transformFunction: null }, thyMaxHeight: { classPropertyName: "thyMaxHeight", publicName: "thyMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, thyMaxWidth: { classPropertyName: "thyMaxWidth", publicName: "thyMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, thyMinHeight: { classPropertyName: "thyMinHeight", publicName: "thyMinHeight", isSignal: true, isRequired: false, transformFunction: null }, thyMinWidth: { classPropertyName: "thyMinWidth", publicName: "thyMinWidth", isSignal: true, isRequired: false, transformFunction: null }, thyGridColumnCount: { classPropertyName: "thyGridColumnCount", publicName: "thyGridColumnCount", isSignal: true, isRequired: false, transformFunction: null }, thyMaxColumn: { classPropertyName: "thyMaxColumn", publicName: "thyMaxColumn", isSignal: true, isRequired: false, transformFunction: null }, thyMinColumn: { classPropertyName: "thyMinColumn", publicName: "thyMinColumn", isSignal: true, isRequired: false, transformFunction: null }, thyLockAspectRatio: { classPropertyName: "thyLockAspectRatio", publicName: "thyLockAspectRatio", isSignal: true, isRequired: false, transformFunction: null }, thyPreview: { classPropertyName: "thyPreview", publicName: "thyPreview", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyResize: "thyResize", thyResizeStart: "thyResizeStart", thyResizeEnd: "thyResizeEnd" }, host: { properties: { "class.thy-resizable-resizing": "resizing()", "class.thy-resizable-disabled": "thyDisabled()" }, classAttribute: "thy-resizable" }, providers: [ThyResizableService], ngImport: i0 }); }
397
400
  }
398
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyResizableDirective, decorators: [{
401
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyResizableDirective, decorators: [{
399
402
  type: Directive,
400
403
  args: [{
401
404
  selector: '[thyResizable]',
@@ -462,15 +465,15 @@ class ThyResizeHandle {
462
465
  });
463
466
  });
464
467
  }
465
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyResizeHandle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
466
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: ThyResizeHandle, isStandalone: true, selector: "thy-resize-handle, [thy-resize-handle]", inputs: { thyDirection: { classPropertyName: "thyDirection", publicName: "thyDirection", isSignal: true, isRequired: false, transformFunction: null }, thyLine: { classPropertyName: "thyLine", publicName: "thyLine", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyMouseDown: "thyMouseDown" }, host: { properties: { "class.thy-resizable-handle-top": "thyDirection() === 'top'", "class.thy-resizable-handle-right": "thyDirection() === 'right'", "class.thy-resizable-handle-bottom": "thyDirection() === 'bottom'", "class.thy-resizable-handle-left": "thyDirection() === 'left'", "class.thy-resizable-handle-topRight": "thyDirection() === 'topRight'", "class.thy-resizable-handle-bottomRight": "thyDirection() === 'bottomRight'", "class.thy-resizable-handle-bottomLeft": "thyDirection() === 'bottomLeft'", "class.thy-resizable-handle-topLeft": "thyDirection() === 'topLeft'", "class.thy-resizable-handle-box-hover": "entered" }, classAttribute: "thy-resizable-handle" }, exportAs: ["thyResizeHandle"], ngImport: i0, template: `
468
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyResizeHandle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
469
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyResizeHandle, isStandalone: true, selector: "thy-resize-handle, [thy-resize-handle]", inputs: { thyDirection: { classPropertyName: "thyDirection", publicName: "thyDirection", isSignal: true, isRequired: false, transformFunction: null }, thyLine: { classPropertyName: "thyLine", publicName: "thyLine", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyMouseDown: "thyMouseDown" }, host: { properties: { "class.thy-resizable-handle-top": "thyDirection() === 'top'", "class.thy-resizable-handle-right": "thyDirection() === 'right'", "class.thy-resizable-handle-bottom": "thyDirection() === 'bottom'", "class.thy-resizable-handle-left": "thyDirection() === 'left'", "class.thy-resizable-handle-topRight": "thyDirection() === 'topRight'", "class.thy-resizable-handle-bottomRight": "thyDirection() === 'bottomRight'", "class.thy-resizable-handle-bottomLeft": "thyDirection() === 'bottomLeft'", "class.thy-resizable-handle-topLeft": "thyDirection() === 'topLeft'", "class.thy-resizable-handle-box-hover": "entered" }, classAttribute: "thy-resizable-handle" }, exportAs: ["thyResizeHandle"], ngImport: i0, template: `
467
470
  <ng-content></ng-content>
468
471
  @if (thyLine()) {
469
472
  <div class="thy-resizable-handle-line"></div>
470
473
  }
471
474
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
472
475
  }
473
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyResizeHandle, decorators: [{
476
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyResizeHandle, decorators: [{
474
477
  type: Component,
475
478
  args: [{
476
479
  selector: 'thy-resize-handle, [thy-resize-handle]',
@@ -528,14 +531,14 @@ class ThyResizeHandles {
528
531
  return new Set(directions);
529
532
  }, ...(ngDevMode ? [{ debugName: "directions" }] : []));
530
533
  }
531
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyResizeHandles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
532
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: ThyResizeHandles, isStandalone: true, selector: "thy-resize-handles", inputs: { thyDirections: { classPropertyName: "thyDirections", publicName: "thyDirections", isSignal: true, isRequired: false, transformFunction: null }, thyLine: { classPropertyName: "thyLine", publicName: "thyLine", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["thyResizeHandles"], ngImport: i0, template: `
534
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyResizeHandles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
535
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyResizeHandles, isStandalone: true, selector: "thy-resize-handles", inputs: { thyDirections: { classPropertyName: "thyDirections", publicName: "thyDirections", isSignal: true, isRequired: false, transformFunction: null }, thyLine: { classPropertyName: "thyLine", publicName: "thyLine", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["thyResizeHandles"], ngImport: i0, template: `
533
536
  @for (dir of directions(); track $index) {
534
537
  <thy-resize-handle [thyLine]="thyLine()" [thyDirection]="dir"></thy-resize-handle>
535
538
  }
536
539
  `, isInline: true, dependencies: [{ kind: "component", type: ThyResizeHandle, selector: "thy-resize-handle, [thy-resize-handle]", inputs: ["thyDirection", "thyLine"], outputs: ["thyMouseDown"], exportAs: ["thyResizeHandle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
537
540
  }
538
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyResizeHandles, decorators: [{
541
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyResizeHandles, decorators: [{
539
542
  type: Component,
540
543
  args: [{
541
544
  selector: 'thy-resize-handles',
@@ -551,11 +554,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
551
554
  }], propDecorators: { thyDirections: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDirections", required: false }] }], thyLine: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyLine", required: false }] }] } });
552
555
 
553
556
  class ThyResizableModule {
554
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyResizableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
555
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: ThyResizableModule, imports: [CommonModule, ThyResizableDirective, ThyResizeHandle, ThyResizeHandles], exports: [ThyResizableDirective, ThyResizeHandle, ThyResizeHandles] }); }
556
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyResizableModule, imports: [CommonModule] }); }
557
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyResizableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
558
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyResizableModule, imports: [CommonModule, ThyResizableDirective, ThyResizeHandle, ThyResizeHandles], exports: [ThyResizableDirective, ThyResizeHandle, ThyResizeHandles] }); }
559
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyResizableModule, imports: [CommonModule] }); }
557
560
  }
558
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyResizableModule, decorators: [{
561
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyResizableModule, decorators: [{
559
562
  type: NgModule,
560
563
  args: [{
561
564
  imports: [CommonModule, ThyResizableDirective, ThyResizeHandle, ThyResizeHandles],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-resizable.mjs","sources":["../../../src/resizable/resizable.service.ts","../../../src/resizable/utils.ts","../../../src/resizable/resizable.directive.ts","../../../src/resizable/interface.ts","../../../src/resizable/resize-handle.component.ts","../../../src/resizable/resize-handles.component.ts","../../../src/resizable/module.ts","../../../src/resizable/ngx-tethys-resizable.ts"],"sourcesContent":["import { Injectable, NgZone, OnDestroy, inject, DOCUMENT } from '@angular/core';\nimport { isTouchEvent } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\nimport { ThyResizeHandleMouseDownEvent } from './interface';\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyResizableService implements OnDestroy {\n private ngZone = inject(NgZone);\n\n private document: Document;\n private listeners = new Map<string, (event: MouseEvent | TouchEvent) => void>();\n\n /**\n * The `OutsideAngular` prefix means that the subject will emit events outside of the Angular zone,\n * so that becomes a bit more descriptive for those who'll maintain the code in the future:\n * ```ts\n * thyResizableService.handleMouseDownOutsideAngular$.subscribe(event => {\n * console.log(Zone.current); // <root>\n * console.log(NgZone.isInAngularZone()); // false\n * });\n * ```\n */\n\n handleMouseDownOutsideAngular$ = new Subject<ThyResizeHandleMouseDownEvent>();\n documentMouseUpOutsideAngular$ = new Subject<MouseEvent | TouchEvent>();\n documentMouseMoveOutsideAngular$ = new Subject<MouseEvent | TouchEvent>();\n mouseEnteredOutsideAngular$ = new Subject<boolean>();\n\n constructor() {\n const document = inject(DOCUMENT);\n\n this.document = document;\n }\n\n startResizing(event: MouseEvent | TouchEvent): void {\n const _isTouchEvent = isTouchEvent(event);\n this.clearListeners();\n const moveEvent = _isTouchEvent ? 'touchmove' : 'mousemove';\n const upEvent = _isTouchEvent ? 'touchend' : 'mouseup';\n const moveEventHandler = (e: MouseEvent | TouchEvent) => {\n this.documentMouseMoveOutsideAngular$.next(e);\n };\n const upEventHandler = (e: MouseEvent | TouchEvent) => {\n this.documentMouseUpOutsideAngular$.next(e);\n this.clearListeners();\n };\n\n this.listeners.set(moveEvent, moveEventHandler);\n this.listeners.set(upEvent, upEventHandler);\n this.ngZone.runOutsideAngular(() => {\n this.listeners.forEach((handler, name) => {\n this.document.addEventListener(name, handler as EventListener);\n });\n });\n }\n\n private clearListeners(): void {\n this.listeners.forEach((handler, name) => {\n this.document.removeEventListener(name, handler as EventListener);\n });\n this.listeners.clear();\n }\n\n ngOnDestroy(): void {\n this.handleMouseDownOutsideAngular$.complete();\n this.documentMouseUpOutsideAngular$.complete();\n this.documentMouseMoveOutsideAngular$.complete();\n this.mouseEnteredOutsideAngular$.complete();\n this.clearListeners();\n }\n}\n","import { isTouchEvent } from 'ngx-tethys/util';\n\nexport function getEventWithPoint(event: MouseEvent | TouchEvent): MouseEvent | Touch {\n return isTouchEvent(event) ? event.touches[0] || event.changedTouches[0] : (event as MouseEvent);\n}\n\nexport function ensureInBounds(value: number, boundValue: number): number {\n return value ? (value < boundValue ? value : boundValue) : boundValue;\n}\n\nexport function setCompatibleStyle(element: HTMLElement, key: string, value: string) {\n element.style[key] = value;\n element.style[`-webkit-${key}`] = value;\n element.style[`-moz-${key}`] = value;\n element.style[`-ms-${key}`] = value;\n}\n","import {\n Directive,\n OnDestroy,\n ElementRef,\n Renderer2,\n NgZone,\n inject,\n DestroyRef,\n numberAttribute,\n input,\n output,\n signal\n} from '@angular/core';\nimport { ThyResizableService } from './resizable.service';\nimport { Platform } from '@angular/cdk/platform';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ThyResizeHandleMouseDownEvent } from './interface';\nimport { ThyResizeEvent } from './interface';\nimport { getEventWithPoint, ensureInBounds, setCompatibleStyle } from './utils';\nimport { fromEvent } from 'rxjs';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 调整尺寸\n * @name thyResizable\n */\n@Directive({\n selector: '[thyResizable]',\n providers: [ThyResizableService],\n host: {\n class: 'thy-resizable',\n '[class.thy-resizable-resizing]': 'resizing()',\n '[class.thy-resizable-disabled]': 'thyDisabled()'\n }\n})\nexport class ThyResizableDirective implements OnDestroy {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private renderer = inject(Renderer2);\n private platform = inject(Platform);\n private ngZone = inject(NgZone);\n private thyResizableService = inject(ThyResizableService);\n\n /**\n * 调整尺寸的边界\n * @default parent\n * @type 'window' | 'parent' | ElementRef<HTMLElement>\n */\n readonly thyBounds = input<'window' | 'parent' | ElementRef<HTMLElement>>('parent');\n\n /**\n * 最大高度(超过边界部分忽略)\n */\n readonly thyMaxHeight = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 最大宽度(超过边界部分忽略)\n */\n readonly thyMaxWidth = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 最小高度\n */\n readonly thyMinHeight = input(40, { transform: numberAttribute });\n\n /**\n * 最小宽度\n */\n readonly thyMinWidth = input(40, { transform: numberAttribute });\n\n /**\n * 栅格列数(-1 为不栅格)\n */\n readonly thyGridColumnCount = input(-1, { transform: numberAttribute });\n\n /**\n * 栅格最大列数\n */\n readonly thyMaxColumn = input(-1, { transform: numberAttribute });\n\n /**\n * 栅格最小列数\n */\n readonly thyMinColumn = input(-1, { transform: numberAttribute });\n\n /**\n * 锁定宽高比\n */\n readonly thyLockAspectRatio = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否预览模式\n */\n readonly thyPreview = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否禁用调整大小\n */\n readonly thyDisabled = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 调整尺寸时的事件\n */\n readonly thyResize = output<ThyResizeEvent>();\n\n /**\n * 开始调整尺寸时的事件\n */\n readonly thyResizeStart = output<ThyResizeEvent>();\n\n /**\n * 结束调整尺寸时的事件\n */\n readonly thyResizeEnd = output<ThyResizeEvent>();\n\n resizing = signal(false);\n private get nativeElement() {\n return this.elementRef.nativeElement as HTMLElement;\n }\n private nativeElementRect!: ClientRect | DOMRect;\n private sizeCache: ThyResizeEvent | null = null;\n private ghostElement: HTMLDivElement | null = null;\n private currentHandleEvent: ThyResizeHandleMouseDownEvent | null = null;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n this.thyResizableService.handleMouseDownOutsideAngular$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(event => {\n if (this.thyDisabled()) {\n return;\n }\n this.resizing.set(true);\n const { mouseEvent } = event;\n this.thyResizableService.startResizing(mouseEvent);\n this.currentHandleEvent = event;\n this.setCursor();\n // Re-enter the Angular zone and run the change detection only if there're any `thyResizeStart` listeners,\n // e.g.: `<div thyResizable (thyResizeStart)=\"...\"></div>`.\n this.ngZone.run(() => this.thyResizeStart.emit({ mouseEvent }));\n this.nativeElementRect = this.nativeElement.getBoundingClientRect();\n });\n\n this.thyResizableService.documentMouseUpOutsideAngular$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(event => {\n if (this.resizing()) {\n this.ngZone.run(() => {\n this.resizing.set(false);\n });\n this.thyResizableService.documentMouseUpOutsideAngular$.next(event);\n this.endResize(event);\n }\n });\n\n this.thyResizableService.documentMouseMoveOutsideAngular$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(event => {\n if (this.resizing()) {\n this.resize(event);\n }\n });\n\n this.bindMouseEnterAndLeaveEvents();\n }\n\n private bindMouseEnterAndLeaveEvents() {\n if (!this.platform.isBrowser) {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n fromEvent(this.nativeElement, 'mouseenter')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.thyResizableService.mouseEnteredOutsideAngular$.next(true);\n });\n\n fromEvent(this.nativeElement, 'mouseleave')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.thyResizableService.mouseEnteredOutsideAngular$.next(false);\n });\n });\n }\n\n setCursor(): void {\n switch (this.currentHandleEvent!.direction) {\n case 'left':\n case 'right':\n this.renderer.setStyle(document.body, 'cursor', 'ew-resize');\n break;\n case 'top':\n case 'bottom':\n this.renderer.setStyle(document.body, 'cursor', 'ns-resize');\n break;\n case 'topLeft':\n case 'bottomRight':\n this.renderer.setStyle(document.body, 'cursor', 'nwse-resize');\n break;\n case 'topRight':\n case 'bottomLeft':\n this.renderer.setStyle(document.body, 'cursor', 'nesw-resize');\n break;\n }\n setCompatibleStyle(document.body, 'user-select', 'none');\n }\n\n endResize(event: MouseEvent | TouchEvent): void {\n this.renderer.setStyle(document.body, 'cursor', '');\n setCompatibleStyle(document.body, 'user-select', '');\n this.removeGhostElement();\n const size = this.sizeCache\n ? { ...this.sizeCache }\n : {\n width: this.nativeElementRect.width,\n height: this.nativeElementRect.height\n };\n // Re-enter the Angular zone and run the change detection only if there're any `thyResizeEnd` listeners,\n // e.g.: `<div thyResizable (thyResizeEnd)=\"...\"></div>`.\n this.ngZone.run(() => {\n this.thyResizeEnd.emit({\n ...size,\n mouseEvent: event\n });\n });\n this.sizeCache = null;\n this.currentHandleEvent = null;\n }\n\n resize(event: MouseEvent | TouchEvent): void {\n const nativeElementRect = this.nativeElementRect;\n const resizeEvent = getEventWithPoint(event);\n const handleEvent = getEventWithPoint(this.currentHandleEvent!.mouseEvent);\n let width = nativeElementRect.width;\n let height = nativeElementRect.height;\n const ratio = this.thyLockAspectRatio() ? width / height : -1;\n switch (this.currentHandleEvent!.direction) {\n case 'bottomRight':\n width = resizeEvent.clientX - nativeElementRect.left;\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'bottomLeft':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'topRight':\n width = resizeEvent.clientX - nativeElementRect.left;\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'topLeft':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'top':\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'right':\n width = resizeEvent.clientX - nativeElementRect.left;\n break;\n case 'bottom':\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'left':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n }\n const size = this.calcSize(width, height, ratio);\n this.sizeCache = { ...size };\n // Re-enter the Angular zone and run the change detection only if there're any `thyResize` listeners,\n // e.g.: `<div thyResizable (thyResize)=\"...\"></div>`.\n this.ngZone.run(() => {\n this.thyResize.emit({\n ...size,\n mouseEvent: event\n });\n });\n\n if (this.thyPreview()) {\n this.previewResize(size);\n }\n }\n\n calcSize(width: number, height: number, ratio: number): ThyResizeEvent {\n let newWidth: number;\n let newHeight: number;\n let maxWidth: number;\n let maxHeight: number;\n let col = 0;\n let spanWidth = 0;\n let minWidth = this.thyMinWidth();\n let boundWidth = Infinity;\n let boundHeight = Infinity;\n const bounds = this.thyBounds();\n if (bounds === 'parent') {\n const parent = this.renderer.parentNode(this.nativeElement);\n if (parent instanceof HTMLElement) {\n const parentRect = parent.getBoundingClientRect();\n boundWidth = parentRect.width;\n boundHeight = parentRect.height;\n }\n } else if (bounds === 'window') {\n if (typeof window !== 'undefined') {\n boundWidth = window.innerWidth;\n boundHeight = window.innerHeight;\n }\n } else if (bounds && bounds.nativeElement && bounds.nativeElement instanceof HTMLElement) {\n const boundsRect = bounds.nativeElement.getBoundingClientRect();\n boundWidth = boundsRect.width;\n boundHeight = boundsRect.height;\n }\n\n maxWidth = ensureInBounds(this.thyMaxWidth()!, boundWidth);\n maxHeight = ensureInBounds(this.thyMaxHeight()!, boundHeight);\n\n const gridColumnCount = this.thyGridColumnCount();\n if (gridColumnCount !== -1) {\n spanWidth = maxWidth / gridColumnCount;\n const minColumn = this.thyMinColumn();\n minWidth = minColumn !== -1 ? spanWidth * minColumn : minWidth;\n const maxColumn = this.thyMaxColumn();\n maxWidth = maxColumn !== -1 ? spanWidth * maxColumn : maxWidth;\n }\n\n const minHeight = this.thyMinHeight();\n if (ratio !== -1) {\n if (/(left|right)/i.test(this.currentHandleEvent!.direction)) {\n newWidth = Math.min(Math.max(width, minWidth), maxWidth);\n newHeight = Math.min(Math.max(newWidth / ratio, minHeight), maxHeight);\n if (newHeight >= maxHeight || newHeight <= minHeight) {\n newWidth = Math.min(Math.max(newHeight * ratio, minWidth), maxWidth);\n }\n } else {\n newHeight = Math.min(Math.max(height, minHeight), maxHeight);\n newWidth = Math.min(Math.max(newHeight * ratio, minWidth), maxWidth);\n if (newWidth >= maxWidth || newWidth <= minWidth) {\n newHeight = Math.min(Math.max(newWidth / ratio, minHeight), maxHeight);\n }\n }\n } else {\n newWidth = Math.min(Math.max(width, minWidth), maxWidth);\n newHeight = Math.min(Math.max(height, minHeight), maxHeight);\n }\n\n if (gridColumnCount !== -1) {\n col = Math.round(newWidth / spanWidth);\n newWidth = col * spanWidth;\n }\n\n return {\n col,\n width: newWidth,\n height: newHeight\n };\n }\n\n previewResize({ width, height }: ThyResizeEvent): void {\n this.createGhostElement();\n this.renderer.setStyle(this.ghostElement, 'width', `${width}px`);\n this.renderer.setStyle(this.ghostElement, 'height', `${height}px`);\n }\n\n createGhostElement(): void {\n if (!this.ghostElement) {\n this.ghostElement = this.renderer.createElement('div');\n this.renderer.setAttribute(this.ghostElement, 'class', 'thy-resizable-preview');\n }\n this.renderer.appendChild(this.nativeElement, this.ghostElement);\n }\n\n removeGhostElement(): void {\n if (this.ghostElement) {\n this.renderer.removeChild(this.nativeElement, this.ghostElement);\n }\n }\n\n ngOnDestroy(): void {\n this.ghostElement = null;\n this.sizeCache = null;\n }\n}\n","export type ThyResizeDirection = 'top' | 'right' | 'bottom' | 'left' | 'topRight' | 'bottomRight' | 'bottomLeft' | 'topLeft';\n\nexport interface ThyResizeEvent {\n width?: number;\n height?: number;\n col?: number;\n mouseEvent?: MouseEvent | TouchEvent;\n}\n\nexport class ThyResizeHandleMouseDownEvent {\n constructor(\n public direction: ThyResizeDirection,\n public mouseEvent: MouseEvent | TouchEvent\n ) {}\n}\n","import { OnInit, Component, ChangeDetectionStrategy, NgZone, ElementRef, inject, DestroyRef, input, output } from '@angular/core';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { ThyResizeDirection, ThyResizeHandleMouseDownEvent } from './interface';\nimport { ThyResizableService } from './resizable.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, merge } from 'rxjs';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst passiveEventListenerOptions = <AddEventListenerOptions>normalizePassiveListenerOptions({ passive: true });\n\n/**\n * 定义调整手柄及方向\n * @name thy-resize-handle\n */\n@Component({\n selector: 'thy-resize-handle, [thy-resize-handle]',\n exportAs: 'thyResizeHandle',\n template: `\n <ng-content></ng-content>\n @if (thyLine()) {\n <div class=\"thy-resizable-handle-line\"></div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-resizable-handle',\n '[class.thy-resizable-handle-top]': `thyDirection() === 'top'`,\n '[class.thy-resizable-handle-right]': `thyDirection() === 'right'`,\n '[class.thy-resizable-handle-bottom]': `thyDirection() === 'bottom'`,\n '[class.thy-resizable-handle-left]': `thyDirection() === 'left'`,\n '[class.thy-resizable-handle-topRight]': `thyDirection() === 'topRight'`,\n '[class.thy-resizable-handle-bottomRight]': `thyDirection() === 'bottomRight'`,\n '[class.thy-resizable-handle-bottomLeft]': `thyDirection() === 'bottomLeft'`,\n '[class.thy-resizable-handle-topLeft]': `thyDirection() === 'topLeft'`,\n '[class.thy-resizable-handle-box-hover]': 'entered'\n },\n imports: []\n})\nexport class ThyResizeHandle implements OnInit {\n private ngZone = inject(NgZone);\n private thyResizableService = inject(ThyResizableService);\n private host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * 调整方向\n * @type top | right | bottom | left | topRight | bottomRight | bottomLeft | topLeft\n */\n readonly thyDirection = input<ThyResizeDirection>('bottomRight');\n\n /**\n * 是否展示拖拽线\n * @type boolean\n */\n readonly thyLine = input(false, { transform: coerceBooleanProperty });\n\n /**\n * MouseDown 回调事件\n */\n readonly thyMouseDown = output<ThyResizeHandleMouseDownEvent>();\n\n private hostRenderer = useHostRenderer();\n\n private readonly destroyRef = inject(DestroyRef);\n\n ngOnInit(): void {\n this.thyResizableService.mouseEnteredOutsideAngular$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(entered => {\n if (entered) {\n this.hostRenderer.addClass('thy-resizable-handle-box-hover');\n } else {\n this.hostRenderer.removeClass('thy-resizable-handle-box-hover');\n }\n });\n this.ngZone.runOutsideAngular(() => {\n // Note: since Chrome 56 defaults document level `touchstart` listener to passive.\n // The element `touchstart` listener is not passive by default\n // We never call `preventDefault()` on it, so we're safe making it passive too.\n merge(\n fromEvent<MouseEvent>(this.host.nativeElement, 'mousedown', passiveEventListenerOptions),\n fromEvent<TouchEvent>(this.host.nativeElement, 'touchstart', passiveEventListenerOptions)\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: MouseEvent | TouchEvent) => {\n this.thyResizableService.handleMouseDownOutsideAngular$.next(\n new ThyResizeHandleMouseDownEvent(this.thyDirection(), event)\n );\n });\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ThyResizeDirection } from './interface';\nimport { ThyResizeHandle } from './resize-handle.component';\n\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport const DEFAULT_RESIZE_DIRECTION: ThyResizeDirection[] = [\n 'bottomRight',\n 'topRight',\n 'bottomLeft',\n 'topLeft',\n 'bottom',\n 'right',\n 'top',\n 'left'\n];\n\n/**\n * 定义调整手柄的快捷组件\n * @name thy-resize-handles\n */\n@Component({\n selector: 'thy-resize-handles',\n exportAs: 'thyResizeHandles',\n template: `\n @for (dir of directions(); track $index) {\n <thy-resize-handle [thyLine]=\"thyLine()\" [thyDirection]=\"dir\"></thy-resize-handle>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyResizeHandle]\n})\nexport class ThyResizeHandles {\n /**\n * 定义调整手柄的方向\n * @type ThyResizeDirection[]\n */\n readonly thyDirections = input<ThyResizeDirection[]>(DEFAULT_RESIZE_DIRECTION);\n\n /**\n * 是否展示拖拽线\n */\n readonly thyLine = input(false, { transform: coerceBooleanProperty });\n\n readonly directions = computed(() => {\n const directions = this.thyDirections();\n return new Set<ThyResizeDirection>(directions);\n });\n}\n","import { NgModule } from '@angular/core';\nimport { ThyResizableDirective } from './resizable.directive';\nimport { ThyResizeHandle } from './resize-handle.component';\nimport { ThyResizeHandles } from './resize-handles.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule, ThyResizableDirective, ThyResizeHandle, ThyResizeHandles],\n exports: [ThyResizableDirective, ThyResizeHandle, ThyResizeHandles]\n})\nexport class ThyResizableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-resizable.mjs","sources":["../../../src/resizable/resizable.service.ts","../../../src/resizable/utils.ts","../../../src/resizable/resizable.directive.ts","../../../src/resizable/interface.ts","../../../src/resizable/resize-handle.component.ts","../../../src/resizable/resize-handles.component.ts","../../../src/resizable/module.ts","../../../src/resizable/ngx-tethys-resizable.ts"],"sourcesContent":["import { Injectable, NgZone, OnDestroy, inject, DOCUMENT } from '@angular/core';\nimport { isTouchEvent } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\nimport { ThyResizeHandleMouseDownEvent } from './interface';\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyResizableService implements OnDestroy {\n private ngZone = inject(NgZone);\n\n private document: Document;\n private listeners = new Map<string, (event: MouseEvent | TouchEvent) => void>();\n\n /**\n * The `OutsideAngular` prefix means that the subject will emit events outside of the Angular zone,\n * so that becomes a bit more descriptive for those who'll maintain the code in the future:\n * ```ts\n * thyResizableService.handleMouseDownOutsideAngular$.subscribe(event => {\n * console.log(Zone.current); // <root>\n * console.log(NgZone.isInAngularZone()); // false\n * });\n * ```\n */\n\n handleMouseDownOutsideAngular$ = new Subject<ThyResizeHandleMouseDownEvent>();\n documentMouseUpOutsideAngular$ = new Subject<MouseEvent | TouchEvent>();\n documentMouseMoveOutsideAngular$ = new Subject<MouseEvent | TouchEvent>();\n mouseEnteredOutsideAngular$ = new Subject<boolean>();\n\n constructor() {\n const document = inject(DOCUMENT);\n\n this.document = document;\n }\n\n startResizing(event: MouseEvent | TouchEvent): void {\n const _isTouchEvent = isTouchEvent(event);\n this.clearListeners();\n const moveEvent = _isTouchEvent ? 'touchmove' : 'mousemove';\n const upEvent = _isTouchEvent ? 'touchend' : 'mouseup';\n const moveEventHandler = (e: MouseEvent | TouchEvent) => {\n this.documentMouseMoveOutsideAngular$.next(e);\n };\n const upEventHandler = (e: MouseEvent | TouchEvent) => {\n this.documentMouseUpOutsideAngular$.next(e);\n this.clearListeners();\n };\n\n this.listeners.set(moveEvent, moveEventHandler);\n this.listeners.set(upEvent, upEventHandler);\n this.ngZone.runOutsideAngular(() => {\n this.listeners.forEach((handler, name) => {\n this.document.addEventListener(name, handler as EventListener);\n });\n });\n }\n\n private clearListeners(): void {\n this.listeners.forEach((handler, name) => {\n this.document.removeEventListener(name, handler as EventListener);\n });\n this.listeners.clear();\n }\n\n ngOnDestroy(): void {\n this.handleMouseDownOutsideAngular$.complete();\n this.documentMouseUpOutsideAngular$.complete();\n this.documentMouseMoveOutsideAngular$.complete();\n this.mouseEnteredOutsideAngular$.complete();\n this.clearListeners();\n }\n}\n","import { isTouchEvent } from 'ngx-tethys/util';\n\nexport function getEventWithPoint(event: MouseEvent | TouchEvent): MouseEvent | Touch {\n return isTouchEvent(event) ? event.touches[0] || event.changedTouches[0] : (event as MouseEvent);\n}\n\nexport function ensureInBounds(value: number, boundValue: number): number {\n return value ? (value < boundValue ? value : boundValue) : boundValue;\n}\n\nexport function setCompatibleStyle(element: HTMLElement, key: string, value: string) {\n // @ts-ignore\n element.style[key] = value;\n // @ts-ignore\n element.style[`-webkit-${key}`] = value;\n // @ts-ignore\n element.style[`-moz-${key}`] = value;\n // @ts-ignore\n element.style[`-ms-${key}`] = value;\n}\n","import {\n Directive,\n OnDestroy,\n ElementRef,\n Renderer2,\n NgZone,\n inject,\n DestroyRef,\n numberAttribute,\n input,\n output,\n signal\n} from '@angular/core';\nimport { ThyResizableService } from './resizable.service';\nimport { Platform } from '@angular/cdk/platform';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ThyResizeHandleMouseDownEvent , ThyResizeEvent } from './interface';\nimport { getEventWithPoint, ensureInBounds, setCompatibleStyle } from './utils';\nimport { fromEvent } from 'rxjs';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 调整尺寸\n * @name thyResizable\n */\n@Directive({\n selector: '[thyResizable]',\n providers: [ThyResizableService],\n host: {\n class: 'thy-resizable',\n '[class.thy-resizable-resizing]': 'resizing()',\n '[class.thy-resizable-disabled]': 'thyDisabled()'\n }\n})\nexport class ThyResizableDirective implements OnDestroy {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private renderer = inject(Renderer2);\n private platform = inject(Platform);\n private ngZone = inject(NgZone);\n private thyResizableService = inject(ThyResizableService);\n\n /**\n * 调整尺寸的边界\n * @default parent\n * @type 'window' | 'parent' | ElementRef<HTMLElement>\n */\n readonly thyBounds = input<'window' | 'parent' | ElementRef<HTMLElement>>('parent');\n\n /**\n * 最大高度(超过边界部分忽略)\n */\n readonly thyMaxHeight = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 最大宽度(超过边界部分忽略)\n */\n readonly thyMaxWidth = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 最小高度\n */\n readonly thyMinHeight = input(40, { transform: numberAttribute });\n\n /**\n * 最小宽度\n */\n readonly thyMinWidth = input(40, { transform: numberAttribute });\n\n /**\n * 栅格列数(-1 为不栅格)\n */\n readonly thyGridColumnCount = input(-1, { transform: numberAttribute });\n\n /**\n * 栅格最大列数\n */\n readonly thyMaxColumn = input(-1, { transform: numberAttribute });\n\n /**\n * 栅格最小列数\n */\n readonly thyMinColumn = input(-1, { transform: numberAttribute });\n\n /**\n * 锁定宽高比\n */\n readonly thyLockAspectRatio = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否预览模式\n */\n readonly thyPreview = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否禁用调整大小\n */\n readonly thyDisabled = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 调整尺寸时的事件\n */\n readonly thyResize = output<ThyResizeEvent>();\n\n /**\n * 开始调整尺寸时的事件\n */\n readonly thyResizeStart = output<ThyResizeEvent>();\n\n /**\n * 结束调整尺寸时的事件\n */\n readonly thyResizeEnd = output<ThyResizeEvent>();\n\n resizing = signal(false);\n private get nativeElement() {\n return this.elementRef.nativeElement as HTMLElement;\n }\n private nativeElementRect!: ClientRect | DOMRect;\n private sizeCache: ThyResizeEvent | null = null;\n private ghostElement: HTMLDivElement | null = null;\n private currentHandleEvent: ThyResizeHandleMouseDownEvent | null = null;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n this.thyResizableService.handleMouseDownOutsideAngular$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(event => {\n if (this.thyDisabled()) {\n return;\n }\n this.resizing.set(true);\n const { mouseEvent } = event;\n this.thyResizableService.startResizing(mouseEvent);\n this.currentHandleEvent = event;\n this.setCursor();\n // Re-enter the Angular zone and run the change detection only if there're any `thyResizeStart` listeners,\n // e.g.: `<div thyResizable (thyResizeStart)=\"...\"></div>`.\n this.ngZone.run(() => this.thyResizeStart.emit({ mouseEvent }));\n this.nativeElementRect = this.nativeElement.getBoundingClientRect();\n });\n\n this.thyResizableService.documentMouseUpOutsideAngular$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(event => {\n if (this.resizing()) {\n this.ngZone.run(() => {\n this.resizing.set(false);\n });\n this.thyResizableService.documentMouseUpOutsideAngular$.next(event);\n this.endResize(event);\n }\n });\n\n this.thyResizableService.documentMouseMoveOutsideAngular$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(event => {\n if (this.resizing()) {\n this.resize(event);\n }\n });\n\n this.bindMouseEnterAndLeaveEvents();\n }\n\n private bindMouseEnterAndLeaveEvents() {\n if (!this.platform.isBrowser) {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n fromEvent(this.nativeElement, 'mouseenter')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.thyResizableService.mouseEnteredOutsideAngular$.next(true);\n });\n\n fromEvent(this.nativeElement, 'mouseleave')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.thyResizableService.mouseEnteredOutsideAngular$.next(false);\n });\n });\n }\n\n setCursor(): void {\n switch (this.currentHandleEvent!.direction) {\n case 'left':\n case 'right':\n this.renderer.setStyle(document.body, 'cursor', 'ew-resize');\n break;\n case 'top':\n case 'bottom':\n this.renderer.setStyle(document.body, 'cursor', 'ns-resize');\n break;\n case 'topLeft':\n case 'bottomRight':\n this.renderer.setStyle(document.body, 'cursor', 'nwse-resize');\n break;\n case 'topRight':\n case 'bottomLeft':\n this.renderer.setStyle(document.body, 'cursor', 'nesw-resize');\n break;\n }\n setCompatibleStyle(document.body, 'user-select', 'none');\n }\n\n endResize(event: MouseEvent | TouchEvent): void {\n this.renderer.setStyle(document.body, 'cursor', '');\n setCompatibleStyle(document.body, 'user-select', '');\n this.removeGhostElement();\n const size = this.sizeCache\n ? { ...this.sizeCache }\n : {\n width: this.nativeElementRect.width,\n height: this.nativeElementRect.height\n };\n // Re-enter the Angular zone and run the change detection only if there're any `thyResizeEnd` listeners,\n // e.g.: `<div thyResizable (thyResizeEnd)=\"...\"></div>`.\n this.ngZone.run(() => {\n this.thyResizeEnd.emit({\n ...size,\n mouseEvent: event\n });\n });\n this.sizeCache = null;\n this.currentHandleEvent = null;\n }\n\n resize(event: MouseEvent | TouchEvent): void {\n const nativeElementRect = this.nativeElementRect;\n const resizeEvent = getEventWithPoint(event);\n const handleEvent = getEventWithPoint(this.currentHandleEvent!.mouseEvent);\n let width = nativeElementRect.width;\n let height = nativeElementRect.height;\n const ratio = this.thyLockAspectRatio() ? width / height : -1;\n switch (this.currentHandleEvent!.direction) {\n case 'bottomRight':\n width = resizeEvent.clientX - nativeElementRect.left;\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'bottomLeft':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'topRight':\n width = resizeEvent.clientX - nativeElementRect.left;\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'topLeft':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'top':\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'right':\n width = resizeEvent.clientX - nativeElementRect.left;\n break;\n case 'bottom':\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'left':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n }\n const size = this.calcSize(width, height, ratio);\n this.sizeCache = { ...size };\n // Re-enter the Angular zone and run the change detection only if there're any `thyResize` listeners,\n // e.g.: `<div thyResizable (thyResize)=\"...\"></div>`.\n this.ngZone.run(() => {\n this.thyResize.emit({\n ...size,\n mouseEvent: event\n });\n });\n\n if (this.thyPreview()) {\n this.previewResize(size);\n }\n }\n\n calcSize(width: number, height: number, ratio: number): ThyResizeEvent {\n let newWidth!: number;\n let newHeight!: number;\n let maxWidth!: number;\n let col = 0;\n let spanWidth = 0;\n let minWidth = this.thyMinWidth();\n let boundWidth = Infinity;\n let boundHeight = Infinity;\n const bounds = this.thyBounds();\n if (bounds === 'parent') {\n const parent = this.renderer.parentNode(this.nativeElement);\n if (parent instanceof HTMLElement) {\n const parentRect = parent.getBoundingClientRect();\n boundWidth = parentRect.width;\n boundHeight = parentRect.height;\n }\n } else if (bounds === 'window') {\n if (typeof window !== 'undefined') {\n boundWidth = window.innerWidth;\n boundHeight = window.innerHeight;\n }\n } else if (bounds && bounds.nativeElement && bounds.nativeElement instanceof HTMLElement) {\n const boundsRect = bounds.nativeElement.getBoundingClientRect();\n boundWidth = boundsRect.width;\n boundHeight = boundsRect.height;\n }\n\n maxWidth = ensureInBounds(this.thyMaxWidth()!, boundWidth);\n const maxHeight = ensureInBounds(this.thyMaxHeight()!, boundHeight);\n\n const gridColumnCount = this.thyGridColumnCount();\n if (gridColumnCount !== -1) {\n spanWidth = maxWidth / gridColumnCount;\n const minColumn = this.thyMinColumn();\n minWidth = minColumn !== -1 ? spanWidth * minColumn : minWidth;\n const maxColumn = this.thyMaxColumn();\n maxWidth = maxColumn !== -1 ? spanWidth * maxColumn : maxWidth;\n }\n\n const minHeight = this.thyMinHeight();\n if (ratio !== -1) {\n if (/(left|right)/i.test(this.currentHandleEvent!.direction)) {\n newWidth = Math.min(Math.max(width, minWidth), maxWidth);\n newHeight = Math.min(Math.max(newWidth / ratio, minHeight), maxHeight);\n if (newHeight >= maxHeight || newHeight <= minHeight) {\n newWidth = Math.min(Math.max(newHeight * ratio, minWidth), maxWidth);\n }\n } else {\n newHeight = Math.min(Math.max(height, minHeight), maxHeight);\n newWidth = Math.min(Math.max(newHeight * ratio, minWidth), maxWidth);\n if (newWidth >= maxWidth || newWidth <= minWidth) {\n newHeight = Math.min(Math.max(newWidth / ratio, minHeight), maxHeight);\n }\n }\n } else {\n newWidth = Math.min(Math.max(width, minWidth), maxWidth);\n newHeight = Math.min(Math.max(height, minHeight), maxHeight);\n }\n\n if (gridColumnCount !== -1) {\n col = Math.round(newWidth / spanWidth);\n newWidth = col * spanWidth;\n }\n\n return {\n col,\n width: newWidth,\n height: newHeight\n };\n }\n\n previewResize({ width, height }: ThyResizeEvent): void {\n this.createGhostElement();\n this.renderer.setStyle(this.ghostElement, 'width', `${width}px`);\n this.renderer.setStyle(this.ghostElement, 'height', `${height}px`);\n }\n\n createGhostElement(): void {\n if (!this.ghostElement) {\n this.ghostElement = this.renderer.createElement('div');\n this.renderer.setAttribute(this.ghostElement, 'class', 'thy-resizable-preview');\n }\n this.renderer.appendChild(this.nativeElement, this.ghostElement);\n }\n\n removeGhostElement(): void {\n if (this.ghostElement) {\n this.renderer.removeChild(this.nativeElement, this.ghostElement);\n }\n }\n\n ngOnDestroy(): void {\n this.ghostElement = null;\n this.sizeCache = null;\n }\n}\n","export type ThyResizeDirection = 'top' | 'right' | 'bottom' | 'left' | 'topRight' | 'bottomRight' | 'bottomLeft' | 'topLeft';\n\nexport interface ThyResizeEvent {\n width?: number;\n height?: number;\n col?: number;\n mouseEvent?: MouseEvent | TouchEvent;\n}\n\nexport class ThyResizeHandleMouseDownEvent {\n constructor(\n public direction: ThyResizeDirection,\n public mouseEvent: MouseEvent | TouchEvent\n ) {}\n}\n","import { OnInit, Component, ChangeDetectionStrategy, NgZone, ElementRef, inject, DestroyRef, input, output } from '@angular/core';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { ThyResizeDirection, ThyResizeHandleMouseDownEvent } from './interface';\nimport { ThyResizableService } from './resizable.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, merge } from 'rxjs';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true }) as AddEventListenerOptions;\n\n/**\n * 定义调整手柄及方向\n * @name thy-resize-handle\n */\n@Component({\n selector: 'thy-resize-handle, [thy-resize-handle]',\n exportAs: 'thyResizeHandle',\n template: `\n <ng-content></ng-content>\n @if (thyLine()) {\n <div class=\"thy-resizable-handle-line\"></div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-resizable-handle',\n '[class.thy-resizable-handle-top]': `thyDirection() === 'top'`,\n '[class.thy-resizable-handle-right]': `thyDirection() === 'right'`,\n '[class.thy-resizable-handle-bottom]': `thyDirection() === 'bottom'`,\n '[class.thy-resizable-handle-left]': `thyDirection() === 'left'`,\n '[class.thy-resizable-handle-topRight]': `thyDirection() === 'topRight'`,\n '[class.thy-resizable-handle-bottomRight]': `thyDirection() === 'bottomRight'`,\n '[class.thy-resizable-handle-bottomLeft]': `thyDirection() === 'bottomLeft'`,\n '[class.thy-resizable-handle-topLeft]': `thyDirection() === 'topLeft'`,\n '[class.thy-resizable-handle-box-hover]': 'entered'\n },\n imports: []\n})\nexport class ThyResizeHandle implements OnInit {\n private ngZone = inject(NgZone);\n private thyResizableService = inject(ThyResizableService);\n private host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * 调整方向\n * @type top | right | bottom | left | topRight | bottomRight | bottomLeft | topLeft\n */\n readonly thyDirection = input<ThyResizeDirection>('bottomRight');\n\n /**\n * 是否展示拖拽线\n * @type boolean\n */\n readonly thyLine = input(false, { transform: coerceBooleanProperty });\n\n /**\n * MouseDown 回调事件\n */\n readonly thyMouseDown = output<ThyResizeHandleMouseDownEvent>();\n\n private hostRenderer = useHostRenderer();\n\n private readonly destroyRef = inject(DestroyRef);\n\n ngOnInit(): void {\n this.thyResizableService.mouseEnteredOutsideAngular$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(entered => {\n if (entered) {\n this.hostRenderer.addClass('thy-resizable-handle-box-hover');\n } else {\n this.hostRenderer.removeClass('thy-resizable-handle-box-hover');\n }\n });\n this.ngZone.runOutsideAngular(() => {\n // Note: since Chrome 56 defaults document level `touchstart` listener to passive.\n // The element `touchstart` listener is not passive by default\n // We never call `preventDefault()` on it, so we're safe making it passive too.\n merge(\n fromEvent<MouseEvent>(this.host.nativeElement, 'mousedown', passiveEventListenerOptions),\n fromEvent<TouchEvent>(this.host.nativeElement, 'touchstart', passiveEventListenerOptions)\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: MouseEvent | TouchEvent) => {\n this.thyResizableService.handleMouseDownOutsideAngular$.next(\n new ThyResizeHandleMouseDownEvent(this.thyDirection(), event)\n );\n });\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ThyResizeDirection } from './interface';\nimport { ThyResizeHandle } from './resize-handle.component';\n\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport const DEFAULT_RESIZE_DIRECTION: ThyResizeDirection[] = [\n 'bottomRight',\n 'topRight',\n 'bottomLeft',\n 'topLeft',\n 'bottom',\n 'right',\n 'top',\n 'left'\n];\n\n/**\n * 定义调整手柄的快捷组件\n * @name thy-resize-handles\n */\n@Component({\n selector: 'thy-resize-handles',\n exportAs: 'thyResizeHandles',\n template: `\n @for (dir of directions(); track $index) {\n <thy-resize-handle [thyLine]=\"thyLine()\" [thyDirection]=\"dir\"></thy-resize-handle>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyResizeHandle]\n})\nexport class ThyResizeHandles {\n /**\n * 定义调整手柄的方向\n * @type ThyResizeDirection[]\n */\n readonly thyDirections = input<ThyResizeDirection[]>(DEFAULT_RESIZE_DIRECTION);\n\n /**\n * 是否展示拖拽线\n */\n readonly thyLine = input(false, { transform: coerceBooleanProperty });\n\n readonly directions = computed(() => {\n const directions = this.thyDirections();\n return new Set<ThyResizeDirection>(directions);\n });\n}\n","import { NgModule } from '@angular/core';\nimport { ThyResizableDirective } from './resizable.directive';\nimport { ThyResizeHandle } from './resize-handle.component';\nimport { ThyResizeHandles } from './resize-handles.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule, ThyResizableDirective, ThyResizeHandle, ThyResizeHandles],\n exports: [ThyResizableDirective, ThyResizeHandle, ThyResizeHandles]\n})\nexport class ThyResizableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAKA;;AAEG;MAEU,mBAAmB,CAAA;AAsB5B,IAAA,WAAA,GAAA;AArBQ,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAGvB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAAoD;AAE/E;;;;;;;;;AASG;AAEH,QAAA,IAAA,CAAA,8BAA8B,GAAG,IAAI,OAAO,EAAiC;AAC7E,QAAA,IAAA,CAAA,8BAA8B,GAAG,IAAI,OAAO,EAA2B;AACvE,QAAA,IAAA,CAAA,gCAAgC,GAAG,IAAI,OAAO,EAA2B;AACzE,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,OAAO,EAAW;AAGhD,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAEjC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC5B;AAEA,IAAA,aAAa,CAAC,KAA8B,EAAA;AACxC,QAAA,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,cAAc,EAAE;QACrB,MAAM,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW;QAC3D,MAAM,OAAO,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS;AACtD,QAAA,MAAM,gBAAgB,GAAG,CAAC,CAA0B,KAAI;AACpD,YAAA,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,QAAA,CAAC;AACD,QAAA,MAAM,cAAc,GAAG,CAAC,CAA0B,KAAI;AAClD,YAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,cAAc,EAAE;AACzB,QAAA,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC;AAC3C,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;YAC/B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,KAAI;gBACrC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAwB,CAAC;AAClE,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACN;IAEQ,cAAc,GAAA;QAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,KAAI;YACrC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAwB,CAAC;AACrE,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;IAC1B;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,8BAA8B,CAAC,QAAQ,EAAE;AAC9C,QAAA,IAAI,CAAC,8BAA8B,CAAC,QAAQ,EAAE;AAC9C,QAAA,IAAI,CAAC,gCAAgC,CAAC,QAAQ,EAAE;AAChD,QAAA,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE;QAC3C,IAAI,CAAC,cAAc,EAAE;IACzB;+GA/DS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAnB,mBAAmB,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;;ACNK,SAAU,iBAAiB,CAAC,KAA8B,EAAA;IAC5D,OAAO,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,GAAI,KAAoB;AACpG;AAEM,SAAU,cAAc,CAAC,KAAa,EAAE,UAAkB,EAAA;IAC5D,OAAO,KAAK,IAAI,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,UAAU,IAAI,UAAU;AACzE;SAEgB,kBAAkB,CAAC,OAAoB,EAAE,GAAW,EAAE,KAAa,EAAA;;AAE/E,IAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;;IAE1B,OAAO,CAAC,KAAK,CAAC,CAAA,QAAA,EAAW,GAAG,CAAA,CAAE,CAAC,GAAG,KAAK;;IAEvC,OAAO,CAAC,KAAK,CAAC,CAAA,KAAA,EAAQ,GAAG,CAAA,CAAE,CAAC,GAAG,KAAK;;IAEpC,OAAO,CAAC,KAAK,CAAC,CAAA,IAAA,EAAO,GAAG,CAAA,CAAE,CAAC,GAAG,KAAK;AACvC;;ACEA;;;AAGG;MAUU,qBAAqB,CAAA;AAgF9B,IAAA,IAAY,aAAa,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAA4B;IACvD;AAOA,IAAA,WAAA,GAAA;AAxFQ,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAEzD;;;;AAIG;AACM,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAgD,QAAQ,qDAAC;AAEnF;;AAEG;AACM,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAkB,SAAS,gDAAI,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAA5B,EAAE,SAAS,EAAE,eAAe,EAAE,GAAC;AAEzF;;AAEG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAkB,SAAS,+CAAI,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAA5B,EAAE,SAAS,EAAE,eAAe,EAAE,GAAC;AAExF;;AAEG;AACM,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAC,EAAE,gDAAI,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAA5B,EAAE,SAAS,EAAE,eAAe,EAAE,GAAC;AAEjE;;AAEG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,EAAE,+CAAI,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAA5B,EAAE,SAAS,EAAE,eAAe,EAAE,GAAC;AAEhE;;AAEG;AACM,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAC,CAAC,CAAC,sDAAI,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAA5B,EAAE,SAAS,EAAE,eAAe,EAAE,GAAC;AAEvE;;AAEG;AACM,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,gDAAI,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAA5B,EAAE,SAAS,EAAE,eAAe,EAAE,GAAC;AAEjE;;AAEG;AACM,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,gDAAI,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAA5B,EAAE,SAAS,EAAE,eAAe,EAAE,GAAC;AAEjE;;AAEG;AACM,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAC,KAAK,sDAAI,SAAS,EAAE,qBAAqB,EAAA,CAAA,GAAA,CAAlC,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAC;AAEhF;;AAEG;AACM,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,8CAAI,SAAS,EAAE,qBAAqB,EAAA,CAAA,GAAA,CAAlC,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAC;AAExE;;AAEG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,+CAAI,SAAS,EAAE,qBAAqB,EAAA,CAAA,GAAA,CAAlC,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAC;AAEzE;;AAEG;QACM,IAAA,CAAA,SAAS,GAAG,MAAM,EAAkB;AAE7C;;AAEG;QACM,IAAA,CAAA,cAAc,GAAG,MAAM,EAAkB;AAElD;;AAEG;QACM,IAAA,CAAA,YAAY,GAAG,MAAM,EAAkB;AAEhD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,oDAAC;QAKhB,IAAA,CAAA,SAAS,GAA0B,IAAI;QACvC,IAAA,CAAA,YAAY,GAA0B,IAAI;QAC1C,IAAA,CAAA,kBAAkB,GAAyC,IAAI;AACtD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAG5C,QAAA,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAChH,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACpB;YACJ;AACA,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,YAAA,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK;AAC5B,YAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,UAAU,CAAC;AAClD,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;YAC/B,IAAI,CAAC,SAAS,EAAE;;;AAGhB,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE;AACvE,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAChH,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACjB,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACjB,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5B,gBAAA,CAAC,CAAC;gBACF,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,CAAC,IAAI,CAAC,KAAK,CAAC;AACnE,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACzB;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,mBAAmB,CAAC,gCAAgC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAClH,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACjB,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACtB;AACJ,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,4BAA4B,EAAE;IACvC;IAEQ,4BAA4B,GAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC1B;QACJ;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY;AACrC,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;iBACxC,SAAS,CAAC,MAAK;gBACZ,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;AACnE,YAAA,CAAC,CAAC;AAEN,YAAA,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY;AACrC,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;iBACxC,SAAS,CAAC,MAAK;gBACZ,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC;AACpE,YAAA,CAAC,CAAC;AACV,QAAA,CAAC,CAAC;IACN;IAEA,SAAS,GAAA;AACL,QAAA,QAAQ,IAAI,CAAC,kBAAmB,CAAC,SAAS;AACtC,YAAA,KAAK,MAAM;AACX,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC;gBAC5D;AACJ,YAAA,KAAK,KAAK;AACV,YAAA,KAAK,QAAQ;AACT,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC;gBAC5D;AACJ,YAAA,KAAK,SAAS;AACd,YAAA,KAAK,aAAa;AACd,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;gBAC9D;AACJ,YAAA,KAAK,UAAU;AACf,YAAA,KAAK,YAAY;AACb,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;gBAC9D;;QAER,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC;IAC5D;AAEA,IAAA,SAAS,CAAC,KAA8B,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;QACnD,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC;QACpD,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC;AACd,cAAE,EAAE,GAAG,IAAI,CAAC,SAAS;AACrB,cAAE;AACI,gBAAA,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACnC,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC;aAClC;;;AAGP,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACjB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACnB,gBAAA,GAAG,IAAI;AACP,gBAAA,UAAU,EAAE;AACf,aAAA,CAAC;AACN,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;IAClC;AAEA,IAAA,MAAM,CAAC,KAA8B,EAAA;AACjC,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB;AAChD,QAAA,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC;QAC5C,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,kBAAmB,CAAC,UAAU,CAAC;AAC1E,QAAA,IAAI,KAAK,GAAG,iBAAiB,CAAC,KAAK;AACnC,QAAA,IAAI,MAAM,GAAG,iBAAiB,CAAC,MAAM;AACrC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;AAC7D,QAAA,QAAQ,IAAI,CAAC,kBAAmB,CAAC,SAAS;AACtC,YAAA,KAAK,aAAa;gBACd,KAAK,GAAG,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC,IAAI;gBACpD,MAAM,GAAG,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC,GAAG;gBACpD;AACJ,YAAA,KAAK,YAAY;AACb,gBAAA,KAAK,GAAG,iBAAiB,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;gBAC7E,MAAM,GAAG,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC,GAAG;gBACpD;AACJ,YAAA,KAAK,UAAU;gBACX,KAAK,GAAG,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC,IAAI;AACpD,gBAAA,MAAM,GAAG,iBAAiB,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;gBAC/E;AACJ,YAAA,KAAK,SAAS;AACV,gBAAA,KAAK,GAAG,iBAAiB,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAC7E,gBAAA,MAAM,GAAG,iBAAiB,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;gBAC/E;AACJ,YAAA,KAAK,KAAK;AACN,gBAAA,MAAM,GAAG,iBAAiB,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;gBAC/E;AACJ,YAAA,KAAK,OAAO;gBACR,KAAK,GAAG,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC,IAAI;gBACpD;AACJ,YAAA,KAAK,QAAQ;gBACT,MAAM,GAAG,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC,GAAG;gBACpD;AACJ,YAAA,KAAK,MAAM;AACP,gBAAA,KAAK,GAAG,iBAAiB,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;;AAErF,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;AAChD,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,EAAE;;;AAG5B,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAChB,gBAAA,GAAG,IAAI;AACP,gBAAA,UAAU,EAAE;AACf,aAAA,CAAC;AACN,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACnB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAC5B;IACJ;AAEA,IAAA,QAAQ,CAAC,KAAa,EAAE,MAAc,EAAE,KAAa,EAAA;AACjD,QAAA,IAAI,QAAiB;AACrB,QAAA,IAAI,SAAkB;AACtB,QAAA,IAAI,QAAiB;QACrB,IAAI,GAAG,GAAG,CAAC;QACX,IAAI,SAAS,GAAG,CAAC;AACjB,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE;QACjC,IAAI,UAAU,GAAG,QAAQ;QACzB,IAAI,WAAW,GAAG,QAAQ;AAC1B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AAC/B,QAAA,IAAI,MAAM,KAAK,QAAQ,EAAE;AACrB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;AAC3D,YAAA,IAAI,MAAM,YAAY,WAAW,EAAE;AAC/B,gBAAA,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE;AACjD,gBAAA,UAAU,GAAG,UAAU,CAAC,KAAK;AAC7B,gBAAA,WAAW,GAAG,UAAU,CAAC,MAAM;YACnC;QACJ;AAAO,aAAA,IAAI,MAAM,KAAK,QAAQ,EAAE;AAC5B,YAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAC/B,gBAAA,UAAU,GAAG,MAAM,CAAC,UAAU;AAC9B,gBAAA,WAAW,GAAG,MAAM,CAAC,WAAW;YACpC;QACJ;AAAO,aAAA,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,YAAY,WAAW,EAAE;YACtF,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,qBAAqB,EAAE;AAC/D,YAAA,UAAU,GAAG,UAAU,CAAC,KAAK;AAC7B,YAAA,WAAW,GAAG,UAAU,CAAC,MAAM;QACnC;QAEA,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,EAAG,EAAE,UAAU,CAAC;QAC1D,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,YAAY,EAAG,EAAE,WAAW,CAAC;AAEnE,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACjD,QAAA,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;AACxB,YAAA,SAAS,GAAG,QAAQ,GAAG,eAAe;AACtC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;AACrC,YAAA,QAAQ,GAAG,SAAS,KAAK,CAAC,CAAC,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ;AAC9D,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;AACrC,YAAA,QAAQ,GAAG,SAAS,KAAK,CAAC,CAAC,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ;QAClE;AAEA,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;AACrC,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACd,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAmB,CAAC,SAAS,CAAC,EAAE;AAC1D,gBAAA,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;AACxD,gBAAA,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC;gBACtE,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,EAAE;AAClD,oBAAA,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;gBACxE;YACJ;iBAAO;AACH,gBAAA,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC;AAC5D,gBAAA,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;gBACpE,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,EAAE;AAC9C,oBAAA,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC;gBAC1E;YACJ;QACJ;aAAO;AACH,YAAA,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;AACxD,YAAA,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC;QAChE;AAEA,QAAA,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;YACxB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;AACtC,YAAA,QAAQ,GAAG,GAAG,GAAG,SAAS;QAC9B;QAEA,OAAO;YACH,GAAG;AACH,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,MAAM,EAAE;SACX;IACL;AAEA,IAAA,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAkB,EAAA;QAC3C,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAA,EAAG,KAAK,CAAA,EAAA,CAAI,CAAC;AAChE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI,CAAC;IACtE;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACtD,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,uBAAuB,CAAC;QACnF;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC;IACpE;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC;QACpE;IACJ;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;IACzB;+GA9US,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,YAAA,EAAA,8BAAA,EAAA,eAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAPnB,CAAC,mBAAmB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAOvB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,SAAS,EAAE,CAAC,mBAAmB,CAAC;AAChC,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,eAAe;AACtB,wBAAA,gCAAgC,EAAE,YAAY;AAC9C,wBAAA,gCAAgC,EAAE;AACrC;AACJ,iBAAA;;;MCxBY,6BAA6B,CAAA;IACtC,WAAA,CACW,SAA6B,EAC7B,UAAmC,EAAA;QADnC,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,UAAU,GAAV,UAAU;IAClB;AACN;;ACLD,MAAM,2BAA2B,GAAG,+BAA+B,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAA4B;AAEjH;;;AAGG;MAyBU,eAAe,CAAA;AAxB5B,IAAA,WAAA,GAAA;AAyBY,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACjD,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAA0B,UAAU,CAAC;AAE1D;;;AAGG;AACM,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAqB,aAAa,wDAAC;AAEhE;;;AAGG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,2CAAI,SAAS,EAAE,qBAAqB,EAAA,CAAA,GAAA,CAAlC,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAC;AAErE;;AAEG;QACM,IAAA,CAAA,YAAY,GAAG,MAAM,EAAiC;QAEvD,IAAA,CAAA,YAAY,GAAG,eAAe,EAAE;AAEvB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AA0BnD,IAAA;IAxBG,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,IAAG;YAC/G,IAAI,OAAO,EAAE;AACT,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAChE;iBAAO;AACH,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,gCAAgC,CAAC;YACnE;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;;;;YAI/B,KAAK,CACD,SAAS,CAAa,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,2BAA2B,CAAC,EACxF,SAAS,CAAa,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,2BAA2B,CAAC;AAExF,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,iBAAA,SAAS,CAAC,CAAC,KAA8B,KAAI;AAC1C,gBAAA,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,CAAC,IAAI,CACxD,IAAI,6BAA6B,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,CAChE;AACL,YAAA,CAAC,CAAC;AACV,QAAA,CAAC,CAAC;IACN;+GAjDS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gCAAA,EAAA,0BAAA,EAAA,kCAAA,EAAA,4BAAA,EAAA,mCAAA,EAAA,6BAAA,EAAA,iCAAA,EAAA,2BAAA,EAAA,qCAAA,EAAA,+BAAA,EAAA,wCAAA,EAAA,kCAAA,EAAA,uCAAA,EAAA,iCAAA,EAAA,oCAAA,EAAA,8BAAA,EAAA,sCAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EArBd;;;;;AAKT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAgBQ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAxB3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wCAAwC;AAClD,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE;;;;;AAKT,IAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,sBAAsB;AAC7B,wBAAA,kCAAkC,EAAE,CAAA,wBAAA,CAA0B;AAC9D,wBAAA,oCAAoC,EAAE,CAAA,0BAAA,CAA4B;AAClE,wBAAA,qCAAqC,EAAE,CAAA,2BAAA,CAA6B;AACpE,wBAAA,mCAAmC,EAAE,CAAA,yBAAA,CAA2B;AAChE,wBAAA,uCAAuC,EAAE,CAAA,6BAAA,CAA+B;AACxE,wBAAA,0CAA0C,EAAE,CAAA,gCAAA,CAAkC;AAC9E,wBAAA,yCAAyC,EAAE,CAAA,+BAAA,CAAiC;AAC5E,wBAAA,sCAAsC,EAAE,CAAA,4BAAA,CAA8B;AACtE,wBAAA,wCAAwC,EAAE;AAC7C,qBAAA;AACD,oBAAA,OAAO,EAAE;AACZ,iBAAA;;;AChCM,MAAM,wBAAwB,GAAyB;IAC1D,aAAa;IACb,UAAU;IACV,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,OAAO;IACP,KAAK;IACL;;AAGJ;;;AAGG;MAYU,gBAAgB,CAAA;AAX7B,IAAA,WAAA,GAAA;AAYI;;;AAGG;AACM,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAuB,wBAAwB,yDAAC;AAE9E;;AAEG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,2CAAI,SAAS,EAAE,qBAAqB,EAAA,CAAA,GAAA,CAAlC,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAC;AAE5D,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAChC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;AACvC,YAAA,OAAO,IAAI,GAAG,CAAqB,UAAU,CAAC;AAClD,QAAA,CAAC,sDAAC;AACL,IAAA;+GAhBY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARf;;;;AAIT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAES,eAAe,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAEhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAX5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE;;;;AAIT,IAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,eAAe;AAC5B,iBAAA;;;MCrBY,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,OAAA,EAAA,CAHjB,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,gBAAgB,CAAA,EAAA,OAAA,EAAA,CACtE,qBAAqB,EAAE,eAAe,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAEzD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHjB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGb,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,gBAAgB,CAAC;AACjF,oBAAA,OAAO,EAAE,CAAC,qBAAqB,EAAE,eAAe,EAAE,gBAAgB;AACrE,iBAAA;;;ACTD;;AAEG;;;;"}