ngx-tethys 19.1.13 → 20.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (827) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/action/index.d.ts +107 -3
  3. package/affix/index.d.ts +65 -2
  4. package/alert/index.d.ts +74 -3
  5. package/anchor/index.d.ts +118 -3
  6. package/arrow-switcher/index.d.ts +79 -2
  7. package/autocomplete/index.d.ts +280 -7
  8. package/avatar/index.d.ts +195 -5
  9. package/back-top/index.d.ts +68 -2
  10. package/badge/index.d.ts +87 -2
  11. package/breadcrumb/index.d.ts +71 -3
  12. package/button/index.d.ts +156 -4
  13. package/calendar/index.d.ts +161 -4
  14. package/card/index.d.ts +100 -4
  15. package/carousel/index.d.ts +210 -4
  16. package/cascader/index.d.ts +471 -5
  17. package/checkbox/index.d.ts +27 -2
  18. package/collapse/index.d.ts +108 -3
  19. package/color-picker/index.d.ts +494 -13
  20. package/comment/index.d.ts +53 -4
  21. package/copy/index.d.ts +59 -2
  22. package/core/index.d.ts +680 -15
  23. package/date-picker/index.d.ts +1148 -36
  24. package/date-range/index.d.ts +158 -4
  25. package/dialog/index.d.ts +393 -11
  26. package/divider/index.d.ts +60 -2
  27. package/dot/index.d.ts +56 -2
  28. package/drag-drop/index.d.ts +281 -9
  29. package/dropdown/index.d.ts +282 -6
  30. package/empty/index.d.ts +116 -3
  31. package/fesm2022/ngx-tethys-action.mjs +26 -26
  32. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  33. package/fesm2022/ngx-tethys-affix.mjs +14 -14
  34. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  35. package/fesm2022/ngx-tethys-alert.mjs +19 -19
  36. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  37. package/fesm2022/ngx-tethys-anchor.mjs +25 -25
  38. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  39. package/fesm2022/ngx-tethys-arrow-switcher.mjs +20 -20
  40. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  41. package/fesm2022/ngx-tethys-autocomplete.mjs +41 -36
  42. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  43. package/fesm2022/ngx-tethys-avatar.mjs +45 -45
  44. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  45. package/fesm2022/ngx-tethys-back-top.mjs +15 -15
  46. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  47. package/fesm2022/ngx-tethys-badge.mjs +27 -27
  48. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  49. package/fesm2022/ngx-tethys-breadcrumb.mjs +20 -20
  50. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  51. package/fesm2022/ngx-tethys-button.mjs +57 -51
  52. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  53. package/fesm2022/ngx-tethys-calendar.mjs +29 -29
  54. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  55. package/fesm2022/ngx-tethys-card.mjs +28 -28
  56. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  57. package/fesm2022/ngx-tethys-carousel.mjs +29 -29
  58. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  59. package/fesm2022/ngx-tethys-cascader.mjs +93 -87
  60. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  61. package/fesm2022/ngx-tethys-checkbox.mjs +9 -9
  62. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  63. package/fesm2022/ngx-tethys-collapse.mjs +24 -24
  64. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  65. package/fesm2022/ngx-tethys-color-picker.mjs +75 -73
  66. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  67. package/fesm2022/ngx-tethys-comment.mjs +17 -17
  68. package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
  69. package/fesm2022/ngx-tethys-copy.mjs +15 -15
  70. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  71. package/fesm2022/ngx-tethys-core.mjs +38 -38
  72. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  73. package/fesm2022/ngx-tethys-date-picker.mjs +323 -305
  74. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  75. package/fesm2022/ngx-tethys-date-range.mjs +23 -23
  76. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  77. package/fesm2022/ngx-tethys-dialog.mjs +56 -54
  78. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  79. package/fesm2022/ngx-tethys-divider.mjs +16 -16
  80. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys-dot.mjs +20 -20
  82. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  83. package/fesm2022/ngx-tethys-drag-drop.mjs +20 -21
  84. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  85. package/fesm2022/ngx-tethys-dropdown.mjs +85 -83
  86. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  87. package/fesm2022/ngx-tethys-empty.mjs +28 -28
  88. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  89. package/fesm2022/ngx-tethys-flexible-text.mjs +13 -13
  90. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  91. package/fesm2022/ngx-tethys-form.mjs +99 -95
  92. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  93. package/fesm2022/ngx-tethys-fullscreen.mjs +22 -21
  94. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  95. package/fesm2022/ngx-tethys-grid.mjs +60 -60
  96. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  97. package/fesm2022/ngx-tethys-guider.mjs +20 -20
  98. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  99. package/fesm2022/ngx-tethys-i18n.mjs +4 -4
  100. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  101. package/fesm2022/ngx-tethys-icon.mjs +20 -20
  102. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  103. package/fesm2022/ngx-tethys-image.mjs +26 -26
  104. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  105. package/fesm2022/ngx-tethys-input-number.mjs +28 -24
  106. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  107. package/fesm2022/ngx-tethys-input.mjs +72 -71
  108. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  109. package/fesm2022/ngx-tethys-layout.mjs +128 -118
  110. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  111. package/fesm2022/ngx-tethys-list.mjs +37 -37
  112. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  113. package/fesm2022/ngx-tethys-loading.mjs +11 -11
  114. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  115. package/fesm2022/ngx-tethys-mention.mjs +18 -18
  116. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  117. package/fesm2022/ngx-tethys-menu.mjs +57 -57
  118. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  119. package/fesm2022/ngx-tethys-message.mjs +43 -40
  120. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  121. package/fesm2022/ngx-tethys-nav.mjs +58 -58
  122. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  123. package/fesm2022/ngx-tethys-notify.mjs +35 -32
  124. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  125. package/fesm2022/ngx-tethys-pagination.mjs +38 -38
  126. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  127. package/fesm2022/ngx-tethys-popover.mjs +46 -38
  128. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  129. package/fesm2022/ngx-tethys-progress.mjs +64 -57
  130. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  131. package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
  132. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  133. package/fesm2022/ngx-tethys-property.mjs +29 -29
  134. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  135. package/fesm2022/ngx-tethys-radio.mjs +23 -23
  136. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  137. package/fesm2022/ngx-tethys-rate.mjs +28 -28
  138. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  139. package/fesm2022/ngx-tethys-resizable.mjs +38 -38
  140. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  141. package/fesm2022/ngx-tethys-result.mjs +16 -16
  142. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  143. package/fesm2022/ngx-tethys-segment.mjs +23 -23
  144. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  145. package/fesm2022/ngx-tethys-select.mjs +76 -64
  146. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  147. package/fesm2022/ngx-tethys-shared.mjs +163 -155
  148. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  149. package/fesm2022/ngx-tethys-skeleton.mjs +84 -84
  150. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  151. package/fesm2022/ngx-tethys-slide.mjs +50 -46
  152. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  153. package/fesm2022/ngx-tethys-slider.mjs +21 -21
  154. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  155. package/fesm2022/ngx-tethys-space.mjs +16 -16
  156. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  157. package/fesm2022/ngx-tethys-statistic.mjs +29 -29
  158. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  159. package/fesm2022/ngx-tethys-stepper.mjs +37 -37
  160. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  161. package/fesm2022/ngx-tethys-strength.mjs +22 -22
  162. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  163. package/fesm2022/ngx-tethys-switch.mjs +19 -19
  164. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  165. package/fesm2022/ngx-tethys-table.mjs +22 -22
  166. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  167. package/fesm2022/ngx-tethys-tabs.mjs +31 -31
  168. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  169. package/fesm2022/ngx-tethys-tag.mjs +18 -18
  170. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  171. package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
  172. package/fesm2022/ngx-tethys-time-picker.mjs +75 -74
  173. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  174. package/fesm2022/ngx-tethys-timeline.mjs +28 -28
  175. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  176. package/fesm2022/ngx-tethys-tooltip.mjs +28 -28
  177. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  178. package/fesm2022/ngx-tethys-transfer.mjs +36 -36
  179. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  180. package/fesm2022/ngx-tethys-tree-select.mjs +58 -58
  181. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  182. package/fesm2022/ngx-tethys-tree.mjs +77 -72
  183. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  184. package/fesm2022/ngx-tethys-typography.mjs +19 -19
  185. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  186. package/fesm2022/ngx-tethys-upload.mjs +68 -68
  187. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  188. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  189. package/fesm2022/ngx-tethys-vote.mjs +25 -25
  190. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  191. package/fesm2022/ngx-tethys-watermark.mjs +12 -12
  192. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  193. package/fesm2022/ngx-tethys.mjs +1 -1
  194. package/fesm2022/ngx-tethys.mjs.map +1 -1
  195. package/flexible-text/index.d.ts +64 -2
  196. package/form/index.d.ts +405 -11
  197. package/fullscreen/index.d.ts +117 -6
  198. package/grid/index.d.ts +262 -7
  199. package/guider/index.d.ts +304 -8
  200. package/i18n/index.d.ts +1053 -6
  201. package/icon/index.d.ts +145 -4
  202. package/image/index.d.ts +263 -8
  203. package/index.d.ts +5 -5
  204. package/input/index.d.ts +281 -6
  205. package/input-number/index.d.ts +133 -2
  206. package/layout/index.d.ts +362 -10
  207. package/list/index.d.ts +182 -6
  208. package/loading/index.d.ts +34 -2
  209. package/mention/index.d.ts +147 -4
  210. package/menu/index.d.ts +191 -8
  211. package/message/index.d.ts +203 -8
  212. package/nav/index.d.ts +269 -6
  213. package/notify/index.d.ts +158 -7
  214. package/package.json +13 -13
  215. package/pagination/index.d.ts +248 -5
  216. package/popover/index.d.ts +339 -9
  217. package/progress/index.d.ts +154 -5
  218. package/property/index.d.ts +118 -3
  219. package/property-operation/index.d.ts +114 -3
  220. package/radio/index.d.ts +102 -4
  221. package/rate/index.d.ts +99 -3
  222. package/resizable/index.d.ts +197 -7
  223. package/result/index.d.ts +63 -2
  224. package/schematics/ng-update/migration-collection.json +4 -4
  225. package/schematics/ng-update/{update-19 → update-20}/index.js +1 -1
  226. package/schematics/ng-update/{update-19 → update-20}/index.spec.js +5 -5
  227. package/schematics/version.d.ts +1 -1
  228. package/schematics/version.js +1 -1
  229. package/segment/index.d.ts +119 -4
  230. package/select/index.d.ts +332 -4
  231. package/shared/index.d.ts +516 -16
  232. package/skeleton/index.d.ts +301 -8
  233. package/slide/index.d.ts +270 -12
  234. package/slider/index.d.ts +117 -2
  235. package/space/index.d.ts +48 -2
  236. package/statistic/index.d.ts +124 -2
  237. package/stepper/index.d.ts +112 -5
  238. package/strength/index.d.ts +77 -2
  239. package/switch/index.d.ts +69 -2
  240. package/table/index.d.ts +670 -9
  241. package/tabs/index.d.ts +114 -4
  242. package/tag/index.d.ts +71 -3
  243. package/testing/index.d.ts +178 -7
  244. package/time-picker/index.d.ts +468 -7
  245. package/timeline/index.d.ts +109 -5
  246. package/tooltip/index.d.ts +198 -8
  247. package/transfer/index.d.ts +212 -4
  248. package/tree/index.d.ts +469 -5
  249. package/tree-select/index.d.ts +231 -3
  250. package/types/index.d.ts +22 -3
  251. package/typography/index.d.ts +69 -4
  252. package/upload/index.d.ts +253 -6
  253. package/util/index.d.ts +595 -14
  254. package/vote/index.d.ts +66 -2
  255. package/watermark/index.d.ts +75 -2
  256. package/action/action.component.d.ts +0 -76
  257. package/action/action.module.d.ts +0 -10
  258. package/action/actions.component.d.ts +0 -21
  259. package/affix/affix.component.d.ts +0 -54
  260. package/affix/affix.module.d.ts +0 -9
  261. package/affix/respond-events.d.ts +0 -9
  262. package/alert/alert.component.d.ts +0 -51
  263. package/alert/alert.directive.d.ts +0 -12
  264. package/alert/alert.module.d.ts +0 -10
  265. package/anchor/anchor-link.component.d.ts +0 -34
  266. package/anchor/anchor.component.d.ts +0 -68
  267. package/anchor/anchor.module.d.ts +0 -11
  268. package/anchor/anchor.token.d.ts +0 -9
  269. package/arrow-switcher/arrow-switcher.component.d.ts +0 -64
  270. package/arrow-switcher/module.d.ts +0 -12
  271. package/autocomplete/autocomplete.component.d.ts +0 -79
  272. package/autocomplete/autocomplete.trigger.directive.d.ts +0 -77
  273. package/autocomplete/module.d.ts +0 -18
  274. package/autocomplete/overlay/autocomplete-animations.d.ts +0 -8
  275. package/autocomplete/overlay/autocomplete-container.component.d.ts +0 -33
  276. package/autocomplete/overlay/autocomplete-ref.d.ts +0 -14
  277. package/autocomplete/overlay/autocomplete.config.d.ts +0 -36
  278. package/autocomplete/overlay/autocomplete.options.d.ts +0 -2
  279. package/autocomplete/overlay/autocomplete.service.d.ts +0 -32
  280. package/avatar/avatar-list/avatar-list.component.d.ts +0 -41
  281. package/avatar/avatar.component.d.ts +0 -95
  282. package/avatar/avatar.module.d.ts +0 -11
  283. package/avatar/avatar.pipe.d.ts +0 -30
  284. package/avatar/avatar.service.d.ts +0 -21
  285. package/back-top/back-top.component.d.ts +0 -57
  286. package/back-top/back-top.module.d.ts +0 -9
  287. package/badge/badge.component.d.ts +0 -75
  288. package/badge/badge.module.d.ts +0 -9
  289. package/breadcrumb/breadcrumb-item.component.d.ts +0 -15
  290. package/breadcrumb/breadcrumb.component.d.ts +0 -44
  291. package/breadcrumb/module.d.ts +0 -12
  292. package/button/button-group.component.d.ts +0 -32
  293. package/button/button-icon.component.d.ts +0 -51
  294. package/button/button.component.d.ts +0 -61
  295. package/button/button.module.d.ts +0 -11
  296. package/calendar/calendar-cells.d.ts +0 -17
  297. package/calendar/calendar-header.component.d.ts +0 -51
  298. package/calendar/calendar.component.d.ts +0 -78
  299. package/calendar/module.d.ts +0 -18
  300. package/card/card.component.d.ts +0 -28
  301. package/card/card.module.d.ts +0 -10
  302. package/card/content.component.d.ts +0 -21
  303. package/card/header.component.d.ts +0 -42
  304. package/carousel/carousel-item.directive.d.ts +0 -14
  305. package/carousel/carousel.component.d.ts +0 -112
  306. package/carousel/carousel.service.d.ts +0 -19
  307. package/carousel/carousel.token.d.ts +0 -7
  308. package/carousel/engine/carousel-base.d.ts +0 -27
  309. package/carousel/engine/carousel-fade.d.ts +0 -15
  310. package/carousel/engine/carousel-noop.d.ts +0 -14
  311. package/carousel/engine/carousel-slide.d.ts +0 -16
  312. package/carousel/engine/index.d.ts +0 -4
  313. package/carousel/module.d.ts +0 -11
  314. package/carousel/typings.d.ts +0 -20
  315. package/cascader/cascader-li.component.d.ts +0 -24
  316. package/cascader/cascader-search-option.component.d.ts +0 -21
  317. package/cascader/cascader.component.d.ts +0 -284
  318. package/cascader/cascader.pipe.d.ts +0 -11
  319. package/cascader/cascader.service.d.ts +0 -97
  320. package/cascader/module.d.ts +0 -19
  321. package/cascader/types.d.ts +0 -23
  322. package/checkbox/checkbox.component.d.ts +0 -16
  323. package/checkbox/module.d.ts +0 -9
  324. package/collapse/collapse-item.component.d.ts +0 -52
  325. package/collapse/collapse.component.d.ts +0 -29
  326. package/collapse/collapse.token.d.ts +0 -15
  327. package/collapse/module.d.ts +0 -13
  328. package/color-picker/color-picker-custom-panel.component.d.ts +0 -17
  329. package/color-picker/color-picker-panel.component.d.ts +0 -28
  330. package/color-picker/color-picker.component.d.ts +0 -100
  331. package/color-picker/constant.d.ts +0 -1
  332. package/color-picker/coordinates.directive.d.ts +0 -28
  333. package/color-picker/helpers/color.class.d.ts +0 -32
  334. package/color-picker/helpers/colors-table.class.d.ts +0 -154
  335. package/color-picker/helpers/rgba.class.d.ts +0 -20
  336. package/color-picker/module.d.ts +0 -22
  337. package/color-picker/parts/alpha/alpha.component.d.ts +0 -28
  338. package/color-picker/parts/hue/hue.component.d.ts +0 -26
  339. package/color-picker/parts/indicator/indicator.component.d.ts +0 -13
  340. package/color-picker/parts/inputs/inputs.component.d.ts +0 -18
  341. package/color-picker/parts/saturation/saturation.component.d.ts +0 -28
  342. package/comment/comment-actions.directive.d.ts +0 -8
  343. package/comment/comment-content.directive.d.ts +0 -8
  344. package/comment/comment.component.d.ts +0 -24
  345. package/comment/comment.module.d.ts +0 -13
  346. package/copy/copy.directive.d.ts +0 -47
  347. package/copy/module.d.ts +0 -9
  348. package/core/animation/animation-consts.d.ts +0 -22
  349. package/core/animation/collapse.d.ts +0 -2
  350. package/core/animation/fade.d.ts +0 -2
  351. package/core/animation/index.d.ts +0 -1
  352. package/core/animation/public-api.d.ts +0 -5
  353. package/core/animation/thumb.d.ts +0 -6
  354. package/core/animation/zoom.d.ts +0 -4
  355. package/core/behaviors/constructor.d.ts +0 -5
  356. package/core/behaviors/control-value-accessor.d.ts +0 -7
  357. package/core/behaviors/decorators.d.ts +0 -9
  358. package/core/behaviors/disabled.d.ts +0 -7
  359. package/core/behaviors/focus-control.d.ts +0 -14
  360. package/core/behaviors/index.d.ts +0 -10
  361. package/core/behaviors/initialized.d.ts +0 -6
  362. package/core/behaviors/loading-done.d.ts +0 -5
  363. package/core/behaviors/mixin.d.ts +0 -5
  364. package/core/behaviors/tabindex.d.ts +0 -11
  365. package/core/behaviors/unsubscribe.d.ts +0 -11
  366. package/core/click-positioner.d.ts +0 -15
  367. package/core/color/color.d.ts +0 -9
  368. package/core/color/index.d.ts +0 -1
  369. package/core/debounce-time.d.ts +0 -8
  370. package/core/event-dispatchers/index.d.ts +0 -1
  371. package/core/overlay/abstract-overlay-container.d.ts +0 -43
  372. package/core/overlay/abstract-overlay-ref.d.ts +0 -101
  373. package/core/overlay/abstract-overlay.config.d.ts +0 -131
  374. package/core/overlay/abstract-overlay.service.d.ts +0 -56
  375. package/core/overlay/index.d.ts +0 -9
  376. package/core/overlay/interface.d.ts +0 -5
  377. package/core/overlay/overlay-position-map.d.ts +0 -5
  378. package/core/overlay/overlay.directive.d.ts +0 -51
  379. package/core/overlay/portal-directives.d.ts +0 -14
  380. package/core/overlay/utils.d.ts +0 -14
  381. package/core/request-animation.d.ts +0 -2
  382. package/core/scroll-to.service.d.ts +0 -4
  383. package/core/scroll.d.ts +0 -22
  384. package/core/spacing/index.d.ts +0 -1
  385. package/core/spacing/spacing.d.ts +0 -2
  386. package/core/store/action-state.d.ts +0 -5
  387. package/core/store/action.d.ts +0 -4
  388. package/core/store/actions-stream.d.ts +0 -14
  389. package/core/store/index.d.ts +0 -3
  390. package/core/store/store.d.ts +0 -43
  391. package/core/store/types.d.ts +0 -12
  392. package/core/store/utils.d.ts +0 -2
  393. package/core/theme/enum.d.ts +0 -5
  394. package/core/theme/index.d.ts +0 -3
  395. package/core/theme/store.d.ts +0 -12
  396. package/core/theme/theme.d.ts +0 -2
  397. package/core/translate.d.ts +0 -8
  398. package/core/update-host-class.service.d.ts +0 -15
  399. package/date-picker/abstract-picker.component.d.ts +0 -174
  400. package/date-picker/abstract-picker.directive.d.ts +0 -57
  401. package/date-picker/base-picker.component.d.ts +0 -49
  402. package/date-picker/date-helper.service.d.ts +0 -20
  403. package/date-picker/date-picker.component.d.ts +0 -15
  404. package/date-picker/date-picker.config.d.ts +0 -27
  405. package/date-picker/date-picker.directive.d.ts +0 -13
  406. package/date-picker/date-picker.module.d.ts +0 -24
  407. package/date-picker/date-picker.service.d.ts +0 -14
  408. package/date-picker/inner-types.d.ts +0 -19
  409. package/date-picker/lib/calendar/calendar-footer.component.d.ts +0 -37
  410. package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -44
  411. package/date-picker/lib/calendar/calendar-table.component.d.ts +0 -41
  412. package/date-picker/lib/date/date-header.component.d.ts +0 -10
  413. package/date-picker/lib/date/date-table-cell.component.d.ts +0 -18
  414. package/date-picker/lib/date/date-table.component.d.ts +0 -23
  415. package/date-picker/lib/date/types.d.ts +0 -41
  416. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +0 -65
  417. package/date-picker/lib/decade/decade-header.component.d.ts +0 -14
  418. package/date-picker/lib/decade/decade-table.component.d.ts +0 -21
  419. package/date-picker/lib/lib-packer.module.d.ts +0 -28
  420. package/date-picker/lib/month/month-header.component.d.ts +0 -10
  421. package/date-picker/lib/month/month-table.component.d.ts +0 -22
  422. package/date-picker/lib/popups/date-popup.component.d.ts +0 -99
  423. package/date-picker/lib/popups/inner-popup.component.d.ts +0 -43
  424. package/date-picker/lib/quarter/quarter-table.component.d.ts +0 -21
  425. package/date-picker/lib/year/year-header.component.d.ts +0 -14
  426. package/date-picker/lib/year/year-table.component.d.ts +0 -21
  427. package/date-picker/month-picker.component.d.ts +0 -19
  428. package/date-picker/picker.component.d.ts +0 -76
  429. package/date-picker/picker.pipes.d.ts +0 -40
  430. package/date-picker/picker.util.d.ts +0 -30
  431. package/date-picker/picker.validators.d.ts +0 -22
  432. package/date-picker/quarter-picker.component.d.ts +0 -22
  433. package/date-picker/range-picker.component.d.ts +0 -16
  434. package/date-picker/range-picker.directive.d.ts +0 -14
  435. package/date-picker/standard-types.d.ts +0 -45
  436. package/date-picker/week-picker.component.d.ts +0 -15
  437. package/date-picker/year-picker.component.d.ts +0 -22
  438. package/date-range/date-range.class.d.ts +0 -29
  439. package/date-range/date-range.component.d.ts +0 -89
  440. package/date-range/module.d.ts +0 -15
  441. package/date-range/optional-dates/optional-dates.component.d.ts +0 -25
  442. package/dialog/body/dialog-body.component.d.ts +0 -18
  443. package/dialog/confirm/confirm.component.d.ts +0 -29
  444. package/dialog/confirm/token.d.ts +0 -8
  445. package/dialog/confirm.config.d.ts +0 -71
  446. package/dialog/dialog-animations.d.ts +0 -8
  447. package/dialog/dialog-container.component.d.ts +0 -46
  448. package/dialog/dialog-ref.d.ts +0 -32
  449. package/dialog/dialog.config.d.ts +0 -79
  450. package/dialog/dialog.module.d.ts +0 -20
  451. package/dialog/dialog.options.d.ts +0 -2
  452. package/dialog/dialog.service.d.ts +0 -52
  453. package/dialog/footer/dialog-footer.component.d.ts +0 -33
  454. package/dialog/header/dialog-header.component.d.ts +0 -47
  455. package/divider/divider.component.d.ts +0 -47
  456. package/divider/divider.module.d.ts +0 -10
  457. package/dot/dot.component.d.ts +0 -45
  458. package/dot/dot.module.d.ts +0 -8
  459. package/drag-drop/drag-content.directive.d.ts +0 -15
  460. package/drag-drop/drag-drop.class.d.ts +0 -36
  461. package/drag-drop/drag-drop.service.d.ts +0 -27
  462. package/drag-drop/drag-drop.token.d.ts +0 -24
  463. package/drag-drop/drag-handle.directive.d.ts +0 -24
  464. package/drag-drop/drag-ref.d.ts +0 -47
  465. package/drag-drop/drag.directive.d.ts +0 -39
  466. package/drag-drop/drop-container.directive.d.ts +0 -70
  467. package/drag-drop/module.d.ts +0 -14
  468. package/dropdown/dropdown-active.directive.d.ts +0 -27
  469. package/dropdown/dropdown-menu-item.directive.d.ts +0 -95
  470. package/dropdown/dropdown-menu.component.d.ts +0 -54
  471. package/dropdown/dropdown-submenu.component.d.ts +0 -23
  472. package/dropdown/dropdown.directive.d.ts +0 -77
  473. package/dropdown/module.d.ts +0 -13
  474. package/empty/empty.component.d.ts +0 -92
  475. package/empty/empty.config.d.ts +0 -10
  476. package/empty/empty.module.d.ts +0 -10
  477. package/empty/svgs.d.ts +0 -4
  478. package/flexible-text/flexible-text.component.d.ts +0 -53
  479. package/flexible-text/flexible-text.module.d.ts +0 -10
  480. package/form/form-group-error/form-group-error.component.d.ts +0 -21
  481. package/form/form-group-label.directive.d.ts +0 -18
  482. package/form/form-group.component.d.ts +0 -68
  483. package/form/form-submit.directive.d.ts +0 -18
  484. package/form/form-validator-loader.d.ts +0 -28
  485. package/form/form-validator.service.d.ts +0 -54
  486. package/form/form.class.d.ts +0 -54
  487. package/form/form.directive.d.ts +0 -56
  488. package/form/from-group-footer/form-group-footer.component.d.ts +0 -27
  489. package/form/module.d.ts +0 -25
  490. package/form/validator/confirm-validator.directive.d.ts +0 -17
  491. package/form/validator/index.d.ts +0 -4
  492. package/form/validator/max-validator.directive.d.ts +0 -15
  493. package/form/validator/min-validator.directive.d.ts +0 -15
  494. package/form/validator/unique-validator.directive.d.ts +0 -16
  495. package/fullscreen/fullscreen-launch.directive.d.ts +0 -9
  496. package/fullscreen/fullscreen-ref.d.ts +0 -25
  497. package/fullscreen/fullscreen.component.d.ts +0 -34
  498. package/fullscreen/fullscreen.config.d.ts +0 -23
  499. package/fullscreen/fullscreen.module.d.ts +0 -8
  500. package/fullscreen/fullscreen.service.d.ts +0 -20
  501. package/grid/flex.d.ts +0 -85
  502. package/grid/grid.token.d.ts +0 -7
  503. package/grid/grid.type.d.ts +0 -5
  504. package/grid/module.d.ts +0 -11
  505. package/grid/thy-col.directive.d.ts +0 -33
  506. package/grid/thy-grid-item.component.d.ts +0 -28
  507. package/grid/thy-grid.component.d.ts +0 -71
  508. package/grid/thy-row.directive.d.ts +0 -30
  509. package/guider/guider-hint/guider-hint.component.d.ts +0 -28
  510. package/guider/guider-manager.d.ts +0 -23
  511. package/guider/guider-ref.d.ts +0 -42
  512. package/guider/guider-step-ref.d.ts +0 -44
  513. package/guider/guider.class.d.ts +0 -95
  514. package/guider/guider.directive.d.ts +0 -21
  515. package/guider/guider.interface.d.ts +0 -26
  516. package/guider/guider.module.d.ts +0 -13
  517. package/guider/guider.service.d.ts +0 -25
  518. package/guider/utils.d.ts +0 -4
  519. package/i18n/i18n.d.ts +0 -191
  520. package/i18n/i18n.service.d.ts +0 -19
  521. package/i18n/i18n.token.d.ts +0 -8
  522. package/i18n/locale.d.ts +0 -4
  523. package/i18n/locales/de-de.d.ts +0 -162
  524. package/i18n/locales/en-us.d.ts +0 -183
  525. package/i18n/locales/index.d.ts +0 -5
  526. package/i18n/locales/ja-jp.d.ts +0 -162
  527. package/i18n/locales/zh-hans.d.ts +0 -162
  528. package/i18n/locales/zh-hant.d.ts +0 -162
  529. package/i18n/util.d.ts +0 -3
  530. package/icon/config.d.ts +0 -2
  531. package/icon/icon-registry.d.ts +0 -84
  532. package/icon/icon.component.d.ts +0 -47
  533. package/icon/icon.module.d.ts +0 -9
  534. package/image/image-group.component.d.ts +0 -16
  535. package/image/image.class.d.ts +0 -38
  536. package/image/image.config.d.ts +0 -21
  537. package/image/image.directive.d.ts +0 -50
  538. package/image/image.service.d.ts +0 -30
  539. package/image/image.token.d.ts +0 -17
  540. package/image/module.d.ts +0 -19
  541. package/image/preview/image-preview-ref.d.ts +0 -14
  542. package/image/preview/image-preview.component.d.ts +0 -73
  543. package/image/utils.d.ts +0 -1
  544. package/input/input-count.component.d.ts +0 -27
  545. package/input/input-group.component.d.ts +0 -71
  546. package/input/input-search.component.d.ts +0 -70
  547. package/input/input.component.d.ts +0 -82
  548. package/input/input.directive.d.ts +0 -26
  549. package/input/module.d.ts +0 -16
  550. package/input-number/input-number.component.d.ts +0 -115
  551. package/input-number/module.d.ts +0 -13
  552. package/layout/content-main.component.d.ts +0 -19
  553. package/layout/content-section.component.d.ts +0 -19
  554. package/layout/content.component.d.ts +0 -19
  555. package/layout/header.component.d.ts +0 -69
  556. package/layout/layout.component.d.ts +0 -22
  557. package/layout/layout.module.d.ts +0 -21
  558. package/layout/sidebar-content.component.d.ts +0 -19
  559. package/layout/sidebar-footer.component.d.ts +0 -19
  560. package/layout/sidebar-header.component.d.ts +0 -40
  561. package/layout/sidebar.component.d.ts +0 -123
  562. package/list/list-item-meta.component.d.ts +0 -25
  563. package/list/list-item.component.d.ts +0 -9
  564. package/list/list.component.d.ts +0 -14
  565. package/list/list.module.d.ts +0 -13
  566. package/list/selection/selection-list.d.ts +0 -116
  567. package/list/selection/selection.interface.d.ts +0 -8
  568. package/loading/loading.component.d.ts +0 -24
  569. package/loading/loading.module.d.ts +0 -8
  570. package/mention/adapter/adapter.d.ts +0 -19
  571. package/mention/adapter/editable.adapter.d.ts +0 -9
  572. package/mention/adapter/index.d.ts +0 -7
  573. package/mention/adapter/textarea.adapter.d.ts +0 -11
  574. package/mention/caret-positioner.d.ts +0 -19
  575. package/mention/interfaces.d.ts +0 -61
  576. package/mention/mention.directive.d.ts +0 -43
  577. package/mention/mention.module.d.ts +0 -13
  578. package/mention/suggestions/suggestions.component.d.ts +0 -28
  579. package/menu/divider/menu-divider.component.d.ts +0 -12
  580. package/menu/group/menu-group.component.d.ts +0 -61
  581. package/menu/item/action/menu-item-action.component.d.ts +0 -34
  582. package/menu/item/icon/menu-item-icon.component.d.ts +0 -18
  583. package/menu/item/menu-item.component.d.ts +0 -20
  584. package/menu/item/name/menu-item-name.component.d.ts +0 -17
  585. package/menu/menu.component.d.ts +0 -23
  586. package/menu/menu.module.d.ts +0 -16
  587. package/message/abstract/abstract-message-container.component.d.ts +0 -13
  588. package/message/abstract/abstract-message-queue.service.d.ts +0 -13
  589. package/message/abstract/abstract-message-ref.d.ts +0 -18
  590. package/message/abstract/abstract-message.component.d.ts +0 -35
  591. package/message/abstract/abstract-message.service.d.ts +0 -17
  592. package/message/abstract/index.d.ts +0 -5
  593. package/message/message-container.component.d.ts +0 -12
  594. package/message/message-queue.service.d.ts +0 -11
  595. package/message/message-ref.d.ts +0 -4
  596. package/message/message.component.d.ts +0 -13
  597. package/message/message.config.d.ts +0 -29
  598. package/message/message.service.d.ts +0 -36
  599. package/message/module.d.ts +0 -13
  600. package/nav/icon-nav/icon-nav-link.directive.d.ts +0 -10
  601. package/nav/icon-nav/icon-nav.component.d.ts +0 -15
  602. package/nav/nav-ink-bar.directive.d.ts +0 -22
  603. package/nav/nav-item.directive.d.ts +0 -60
  604. package/nav/nav.component.d.ts +0 -142
  605. package/nav/nav.module.d.ts +0 -17
  606. package/nav/nav.pipe.d.ts +0 -11
  607. package/notify/module.d.ts +0 -13
  608. package/notify/notify-container.component.d.ts +0 -12
  609. package/notify/notify-queue.service.d.ts +0 -15
  610. package/notify/notify-ref.d.ts +0 -4
  611. package/notify/notify.component.d.ts +0 -19
  612. package/notify/notify.config.d.ts +0 -55
  613. package/notify/notify.service.d.ts +0 -42
  614. package/pagination/pagination.class.d.ts +0 -79
  615. package/pagination/pagination.component.d.ts +0 -132
  616. package/pagination/pagination.config.d.ts +0 -8
  617. package/pagination/pagination.module.d.ts +0 -13
  618. package/pagination/pagination.pipe.d.ts +0 -17
  619. package/popover/body/popover-body.component.d.ts +0 -10
  620. package/popover/header/popover-header.component.d.ts +0 -35
  621. package/popover/module.d.ts +0 -14
  622. package/popover/popover-animations.d.ts +0 -8
  623. package/popover/popover-container.component.d.ts +0 -38
  624. package/popover/popover-ref.d.ts +0 -14
  625. package/popover/popover.config.d.ts +0 -110
  626. package/popover/popover.directive.d.ts +0 -67
  627. package/popover/popover.options.d.ts +0 -2
  628. package/popover/popover.service.d.ts +0 -58
  629. package/progress/interfaces.d.ts +0 -23
  630. package/progress/progress-circle.component.d.ts +0 -43
  631. package/progress/progress-strip.component.d.ts +0 -23
  632. package/progress/progress.component.d.ts +0 -59
  633. package/progress/progress.module.d.ts +0 -11
  634. package/property/module.d.ts +0 -11
  635. package/property/properties.component.d.ts +0 -25
  636. package/property/property-item.component.d.ts +0 -80
  637. package/property-operation/group/property-operation-group.component.d.ts +0 -10
  638. package/property-operation/module.d.ts +0 -12
  639. package/property-operation/property-operation.component.d.ts +0 -92
  640. package/public-api.d.ts +0 -1
  641. package/radio/button/radio-button.component.d.ts +0 -18
  642. package/radio/group/radio-group.component.d.ts +0 -46
  643. package/radio/module.d.ts +0 -11
  644. package/radio/radio.component.d.ts +0 -22
  645. package/radio/radio.token.d.ts +0 -12
  646. package/rate/module.d.ts +0 -13
  647. package/rate/rate-item.component.d.ts +0 -17
  648. package/rate/rate.component.d.ts +0 -69
  649. package/resizable/interface.d.ts +0 -12
  650. package/resizable/module.d.ts +0 -10
  651. package/resizable/resizable.directive.d.ts +0 -91
  652. package/resizable/resizable.service.d.ts +0 -32
  653. package/resizable/resize-handle.component.d.ts +0 -31
  654. package/resizable/resize-handles.component.d.ts +0 -21
  655. package/resizable/utils.d.ts +0 -3
  656. package/result/result.component.d.ts +0 -54
  657. package/result/result.module.d.ts +0 -8
  658. package/segment/segment-item.component.d.ts +0 -34
  659. package/segment/segment.component.d.ts +0 -55
  660. package/segment/segment.module.d.ts +0 -11
  661. package/segment/segment.token.d.ts +0 -16
  662. package/segment/types.d.ts +0 -5
  663. package/select/custom-select/custom-select.component.d.ts +0 -271
  664. package/select/module.d.ts +0 -16
  665. package/select/native-select/native-select.component.d.ts +0 -30
  666. package/select/select.config.d.ts +0 -34
  667. package/shared/base-form-check.component.d.ts +0 -51
  668. package/shared/directives/string-or-template-outlet.directive.d.ts +0 -17
  669. package/shared/directives/thy-autofocus.directive.d.ts +0 -23
  670. package/shared/directives/thy-contextmenu.directive.d.ts +0 -17
  671. package/shared/directives/thy-ctrl-enter.directive.d.ts +0 -17
  672. package/shared/directives/thy-drag-drop.directive.d.ts +0 -15
  673. package/shared/directives/thy-enter.directive.d.ts +0 -18
  674. package/shared/directives/thy-scroll.directive.d.ts +0 -39
  675. package/shared/directives/thy-show.d.ts +0 -19
  676. package/shared/directives/thy-stop-propagation.directive.d.ts +0 -17
  677. package/shared/directives/view-outlet.directive.d.ts +0 -27
  678. package/shared/ng-transclude.directive.d.ts +0 -14
  679. package/shared/option/group/option-group.component.d.ts +0 -22
  680. package/shared/option/index.d.ts +0 -8
  681. package/shared/option/list-option/list-option.component.d.ts +0 -32
  682. package/shared/option/module.d.ts +0 -13
  683. package/shared/option/option-group.component.d.ts +0 -12
  684. package/shared/option/option.component.d.ts +0 -51
  685. package/shared/option/option.token.d.ts +0 -30
  686. package/shared/option/options-container.component.d.ts +0 -9
  687. package/shared/option/select-option-base.d.ts +0 -5
  688. package/shared/select/index.d.ts +0 -2
  689. package/shared/select/module.d.ts +0 -11
  690. package/shared/select/select-control/select-control.component.d.ts +0 -73
  691. package/shared/shared.module.d.ts +0 -17
  692. package/shared/shared.type.d.ts +0 -1
  693. package/skeleton/module.d.ts +0 -16
  694. package/skeleton/skeleton-circle.component.d.ts +0 -45
  695. package/skeleton/skeleton-rectangle.component.d.ts +0 -55
  696. package/skeleton/skeleton.component.d.ts +0 -27
  697. package/skeleton/skeleton.config.d.ts +0 -8
  698. package/skeleton/stylized/bullet-list.component.d.ts +0 -55
  699. package/skeleton/stylized/list.component.d.ts +0 -44
  700. package/skeleton/stylized/paragraph.component.d.ts +0 -52
  701. package/slide/drawer/drawer-container.directive.d.ts +0 -11
  702. package/slide/slide-animations.d.ts +0 -4
  703. package/slide/slide-body/slide-body-section.component.d.ts +0 -16
  704. package/slide/slide-body/slide-body.component.d.ts +0 -10
  705. package/slide/slide-container.component.d.ts +0 -49
  706. package/slide/slide-footer/slide-footer.component.d.ts +0 -12
  707. package/slide/slide-header/slide-header.component.d.ts +0 -33
  708. package/slide/slide-layout/slide-layout.component.d.ts +0 -13
  709. package/slide/slide-ref.service.d.ts +0 -20
  710. package/slide/slide.config.d.ts +0 -73
  711. package/slide/slide.module.d.ts +0 -19
  712. package/slide/slide.service.d.ts +0 -28
  713. package/slider/slider.component.d.ts +0 -105
  714. package/slider/slider.module.d.ts +0 -9
  715. package/space/space.component.d.ts +0 -38
  716. package/space/space.module.d.ts +0 -8
  717. package/statistic/statistic.component.d.ts +0 -111
  718. package/statistic/statistic.module.d.ts +0 -10
  719. package/stepper/step-header.component.d.ts +0 -15
  720. package/stepper/step.component.d.ts +0 -28
  721. package/stepper/stepper-button.directive.d.ts +0 -25
  722. package/stepper/stepper.component.d.ts +0 -34
  723. package/stepper/stepper.module.d.ts +0 -11
  724. package/strength/strength.component.d.ts +0 -69
  725. package/strength/strength.module.d.ts +0 -7
  726. package/switch/switch.component.d.ts +0 -59
  727. package/switch/switch.module.d.ts +0 -8
  728. package/table/enums/column-skeleton-type.d.ts +0 -6
  729. package/table/enums/index.d.ts +0 -1
  730. package/table/pipes/drag.pipe.d.ts +0 -11
  731. package/table/pipes/table.pipe.d.ts +0 -10
  732. package/table/table-column.component.d.ts +0 -131
  733. package/table/table-skeleton.component.d.ts +0 -93
  734. package/table/table.component.d.ts +0 -333
  735. package/table/table.interface.d.ts +0 -87
  736. package/table/table.module.d.ts +0 -22
  737. package/table/table.type.d.ts +0 -3
  738. package/tabs/tab-content.component.d.ts +0 -12
  739. package/tabs/tab.component.d.ts +0 -31
  740. package/tabs/tabs.component.d.ts +0 -59
  741. package/tabs/tabs.module.d.ts +0 -12
  742. package/tabs/types.d.ts +0 -2
  743. package/tag/tag.component.d.ts +0 -48
  744. package/tag/tag.module.d.ts +0 -10
  745. package/tag/tags.component.d.ts +0 -11
  746. package/testing/data-transfer.d.ts +0 -22
  747. package/testing/dispatcher-events.d.ts +0 -32
  748. package/testing/element-focus.d.ts +0 -13
  749. package/testing/events.d.ts +0 -33
  750. package/testing/thy-icon.d.ts +0 -5
  751. package/testing/type-in-element.d.ts +0 -14
  752. package/testing/xhr-mock.d.ts +0 -51
  753. package/time-picker/inner/inner-time-picker.class.d.ts +0 -37
  754. package/time-picker/inner/inner-time-picker.component.d.ts +0 -91
  755. package/time-picker/inner/inner-time-picker.config.d.ts +0 -42
  756. package/time-picker/inner/inner-time-picker.store.d.ts +0 -23
  757. package/time-picker/time-picker-controls.util.d.ts +0 -7
  758. package/time-picker/time-picker-panel.component.d.ts +0 -113
  759. package/time-picker/time-picker.component.d.ts +0 -136
  760. package/time-picker/time-picker.module.d.ts +0 -17
  761. package/time-picker/time-picker.utils.d.ts +0 -16
  762. package/timeline/timeline-item.component.d.ts +0 -43
  763. package/timeline/timeline.component.d.ts +0 -47
  764. package/timeline/timeline.module.d.ts +0 -11
  765. package/timeline/timeline.service.d.ts +0 -8
  766. package/timeline/timeline.type.d.ts +0 -1
  767. package/tooltip/interface.d.ts +0 -5
  768. package/tooltip/tooltip-animations.d.ts +0 -4
  769. package/tooltip/tooltip-ref.d.ts +0 -31
  770. package/tooltip/tooltip.component.d.ts +0 -36
  771. package/tooltip/tooltip.config.d.ts +0 -22
  772. package/tooltip/tooltip.directive.d.ts +0 -81
  773. package/tooltip/tooltip.module.d.ts +0 -11
  774. package/tooltip/tooltip.service.d.ts +0 -16
  775. package/transfer/transfer-list.component.d.ts +0 -41
  776. package/transfer/transfer.component.d.ts +0 -90
  777. package/transfer/transfer.interface.d.ts +0 -66
  778. package/transfer/transfer.module.d.ts +0 -15
  779. package/tree/tree-abstract.d.ts +0 -19
  780. package/tree/tree-node.component.d.ts +0 -95
  781. package/tree/tree.class.d.ts +0 -106
  782. package/tree/tree.component.d.ts +0 -199
  783. package/tree/tree.module.d.ts +0 -20
  784. package/tree/tree.pipe.d.ts +0 -12
  785. package/tree/tree.service.d.ts +0 -34
  786. package/tree-select/module.d.ts +0 -14
  787. package/tree-select/tree-select.class.d.ts +0 -12
  788. package/tree-select/tree-select.component.d.ts +0 -203
  789. package/types/common.d.ts +0 -2
  790. package/types/dictionary.d.ts +0 -10
  791. package/types/pagination.d.ts +0 -6
  792. package/typography/bg-color.directive.d.ts +0 -20
  793. package/typography/module.d.ts +0 -11
  794. package/typography/text/text.component.d.ts +0 -17
  795. package/typography/text-color.directive.d.ts +0 -22
  796. package/upload/constant.d.ts +0 -73
  797. package/upload/file-drop.directive.d.ts +0 -32
  798. package/upload/file-select-base.d.ts +0 -22
  799. package/upload/file-select.component.d.ts +0 -34
  800. package/upload/module.d.ts +0 -9
  801. package/upload/types.d.ts +0 -11
  802. package/upload/upload.config.d.ts +0 -17
  803. package/upload/upload.service.d.ts +0 -140
  804. package/upload/util.d.ts +0 -1
  805. package/util/date/functions.d.ts +0 -85
  806. package/util/date/tiny-date.d.ts +0 -124
  807. package/util/dom.d.ts +0 -101
  808. package/util/helpers/helpers.d.ts +0 -55
  809. package/util/helpers/index.d.ts +0 -1
  810. package/util/immutable.d.ts +0 -70
  811. package/util/keycodes.d.ts +0 -2
  812. package/util/logger/index.d.ts +0 -1
  813. package/util/logger/logger.d.ts +0 -6
  814. package/util/ng.d.ts +0 -2
  815. package/util/references.d.ts +0 -58
  816. package/version.d.ts +0 -2
  817. package/vote/vote.component.d.ts +0 -53
  818. package/vote/vote.module.d.ts +0 -10
  819. package/watermark/config.d.ts +0 -19
  820. package/watermark/watermark.directive.d.ts +0 -63
  821. package/watermark/watermark.module.d.ts +0 -9
  822. /package/schematics/ng-update/{update-19 → update-20}/class-name-migration.d.ts +0 -0
  823. /package/schematics/ng-update/{update-19 → update-20}/class-name-migration.js +0 -0
  824. /package/schematics/ng-update/{update-19 → update-20}/index.d.ts +0 -0
  825. /package/schematics/ng-update/{update-19 → update-20}/index.spec.d.ts +0 -0
  826. /package/schematics/ng-update/{update-19 → update-20}/update-data.d.ts +0 -0
  827. /package/schematics/ng-update/{update-19 → update-20}/update-data.js +0 -0
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Injector, ElementRef, ViewEncapsulation, ChangeDetectionStrategy, Component, ChangeDetectorRef, NgZone, output, DestroyRef, ViewChild, Injectable, input, effect, InjectFlags, Directive, NgModule } from '@angular/core';
2
+ import { InjectionToken, inject, Injector, ElementRef, ViewEncapsulation, ChangeDetectionStrategy, Component, ChangeDetectorRef, NgZone, output, DestroyRef, ViewChild, Injectable, input, effect, Directive, NgModule } from '@angular/core';
3
3
  import { ThyAbstractOverlayConfig } from 'ngx-tethys/core';
4
4
  import { CdkDrag, DragDropModule } from '@angular/cdk/drag-drop';
5
5
  import { takeUntilDestroyed, outputToObservable } from '@angular/core/rxjs-interop';
@@ -39,15 +39,15 @@ class ThyImageGroup {
39
39
  removeImage(index) {
40
40
  this.images.splice(index, 1);
41
41
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyImageGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.8", type: ThyImageGroup, isStandalone: true, selector: "thy-image-group, [thyImageGroup]", providers: [
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyImageGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.10", type: ThyImageGroup, isStandalone: true, selector: "thy-image-group, [thyImageGroup]", providers: [
44
44
  {
45
45
  provide: THY_IMAGE_GROUP_COMPONENT,
46
46
  useClass: ThyImageGroup
47
47
  }
48
48
  ], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
49
49
  }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyImageGroup, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyImageGroup, decorators: [{
51
51
  type: Component,
52
52
  args: [{
53
53
  selector: 'thy-image-group, [thyImageGroup]',
@@ -471,16 +471,16 @@ class ThyImagePreview {
471
471
  updatePreviewImageWrapperTransform() {
472
472
  this.previewImageWrapperTransform = `translate3d(${this.position.x}px, ${this.position.y}px, 0)`;
473
473
  }
474
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyImagePreview, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
475
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThyImagePreview, isStandalone: true, selector: "thy-image-preview", outputs: { downloadClicked: "downloadClicked" }, host: { properties: { "class.thy-image-preview-moving": "isDragging" }, classAttribute: "thy-image-preview-wrap" }, viewQueries: [{ propertyName: "imageRef", first: true, predicate: ["imgRef"], descendants: true }, { propertyName: "imagePreviewWrapper", first: true, predicate: ["imagePreviewWrapper"], descendants: true, static: true }], exportAs: ["thyImagePreview"], ngImport: i0, template: "<div class=\"thy-image-preview\" [class.thy-image-preview-fullscreen]=\"isFullScreen\">\n @if (!isFullScreen) {\n <div class=\"thy-image-preview-header pl-10 pr-8\">\n <div class=\"thy-image-preview-header-info\">\n <p class=\"thy-image-name text-truncate\" [thyTooltipDisabled]=\"previewImage?.name?.length < 32\" [thyTooltip]=\"previewImage?.name\">\n {{ previewImage?.name }}\n </p>\n <span class=\"thy-image-size\"> {{ previewImage?.size }}</span>\n </div>\n <a thyAction thyIcon=\"close\" [thyTooltip]=\"locale().exitPreview\" href=\"javascript:;\" (click)=\"thyDialog.close()\"></a>\n </div>\n }\n @if (isFullScreen) {\n <a\n class=\"thy-image-preview-exit-fullscreen\"\n thyAction\n thyIcon=\"close\"\n href=\"javascript:;\"\n (click)=\"thyFullscreen.exit()\"\n [thyTooltip]=\"locale().exitFullScreen\"></a>\n }\n <div\n class=\"thy-image-preview-img-wrapper\"\n #imagePreviewWrapper\n cdkDrag\n [class.thy-image-preview-inside]=\"isInsideScreen\"\n [style.transform]=\"previewImageWrapperTransform\"\n [cdkDragFreeDragPosition]=\"position\"\n (cdkDragReleased)=\"dragReleased()\">\n @for (image of images; track $index; let imageIndex = $index) {\n @if (previewIndex === imageIndex && isLoadingDone) {\n <img #imgRef class=\"thy-image-preview-img\" [src]=\"image.objectURL || image.src\" [style.transform]=\"previewImageTransform\" />\n }\n }\n <thy-loading [thyDone]=\"isLoadingDone\"></thy-loading>\n </div>\n\n @if (images.length > 1 && !isFullScreen) {\n <div\n class=\"thy-image-preview-switch-left\"\n [thyTooltipDisabled]=\"previewIndex <= 0\"\n [thyTooltip]=\"locale().prev\"\n [class.thy-image-preview-switch-left-disabled]=\"previewIndex <= 0\"\n (click)=\"prev()\">\n <thy-icon thyIconName=\"angle-left-bold\"></thy-icon>\n </div>\n <div\n class=\"thy-image-preview-switch-right\"\n [thyTooltip]=\"locale().next\"\n [thyTooltipDisabled]=\"previewIndex >= images.length - 1\"\n [class.thy-image-preview-switch-right-disabled]=\"previewIndex >= images.length - 1\"\n (click)=\"next()\">\n <thy-icon thyIconName=\"angle-right-bold\"> </thy-icon>\n </div>\n }\n @if (!isFullScreen) {\n <thy-actions thySize=\"xs\" class=\"thy-image-preview-operations py-3 px-4\">\n @for (option of previewOperations; track $index; let i = $index) {\n @if (!['original-scale', 'fit-screen', 'copyLink'].includes(option.type) || currentImageMode === option.type) {\n <a\n href=\"javascript:;\"\n thyAction\n [thyActionIcon]=\"option.icon\"\n [thyTooltip]=\"option.name\"\n [thyTooltipOffset]=\"13\"\n (click)=\"option.action(previewImage)\"></a>\n }\n @if (option?.type === 'zoom-out') {\n <span class=\"mr-2\"> {{ (zoom * 100).toFixed(0) + '%' }} </span>\n }\n @if (option?.type === 'rotate-right') {\n <thy-divider class=\"ml-2\" [thyVertical]=\"true\"></thy-divider>\n }\n @if (option.type === 'copyLink') {\n <a\n href=\"javascript:;\"\n thyAction\n [thyCopyTips]=\"option.name\"\n [thyActionIcon]=\"option.icon\"\n [thyCopyTipsOffset]=\"13\"\n (thyCopy)=\"copyLink($event)\"\n [thyCopyContent]=\"previewImageOriginSrc\"\n [thyShowNotify]=\"false\"></a>\n }\n }\n <thy-divider [thyVertical]=\"true\"></thy-divider>\n <span class=\"thy-image-preview-operations-text\"> {{ previewIndex + 1 }} / {{ images.length }} </span>\n </thy-actions>\n }\n</div>\n", dependencies: [{ kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: ThyLoading, selector: "thy-loading", inputs: ["thyDone", "thyTip", "thyIsMask"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyActions, selector: "thy-actions", inputs: ["thySize"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: ThyCopyDirective, selector: "[thyCopy]", inputs: ["thyCopySuccessText", "thyCopyTips", "thyCopyTipsOffset", "thyCopyContent", "thyShowNotify"], outputs: ["thyCopy"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
474
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyImagePreview, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
475
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.10", type: ThyImagePreview, isStandalone: true, selector: "thy-image-preview", outputs: { downloadClicked: "downloadClicked" }, host: { properties: { "class.thy-image-preview-moving": "isDragging" }, classAttribute: "thy-image-preview-wrap" }, viewQueries: [{ propertyName: "imageRef", first: true, predicate: ["imgRef"], descendants: true }, { propertyName: "imagePreviewWrapper", first: true, predicate: ["imagePreviewWrapper"], descendants: true, static: true }], exportAs: ["thyImagePreview"], ngImport: i0, template: "<div class=\"thy-image-preview\" [class.thy-image-preview-fullscreen]=\"isFullScreen\">\n @if (!isFullScreen) {\n <div class=\"thy-image-preview-header pl-10 pr-8\">\n <div class=\"thy-image-preview-header-info\">\n <p class=\"thy-image-name text-truncate\" [thyTooltipDisabled]=\"previewImage?.name?.length < 32\" [thyTooltip]=\"previewImage?.name\">\n {{ previewImage?.name }}\n </p>\n <span class=\"thy-image-size\"> {{ previewImage?.size }}</span>\n </div>\n <a thyAction thyIcon=\"close\" [thyTooltip]=\"locale().exitPreview\" href=\"javascript:;\" (click)=\"thyDialog.close()\"></a>\n </div>\n }\n @if (isFullScreen) {\n <a\n class=\"thy-image-preview-exit-fullscreen\"\n thyAction\n thyIcon=\"close\"\n href=\"javascript:;\"\n (click)=\"thyFullscreen.exit()\"\n [thyTooltip]=\"locale().exitFullScreen\"></a>\n }\n <div\n class=\"thy-image-preview-img-wrapper\"\n #imagePreviewWrapper\n cdkDrag\n [class.thy-image-preview-inside]=\"isInsideScreen\"\n [style.transform]=\"previewImageWrapperTransform\"\n [cdkDragFreeDragPosition]=\"position\"\n (cdkDragReleased)=\"dragReleased()\">\n @for (image of images; track $index; let imageIndex = $index) {\n @if (previewIndex === imageIndex && isLoadingDone) {\n <img #imgRef class=\"thy-image-preview-img\" [src]=\"image.objectURL || image.src\" [style.transform]=\"previewImageTransform\" />\n }\n }\n <thy-loading [thyDone]=\"isLoadingDone\"></thy-loading>\n </div>\n\n @if (images.length > 1 && !isFullScreen) {\n <div\n class=\"thy-image-preview-switch-left\"\n [thyTooltipDisabled]=\"previewIndex <= 0\"\n [thyTooltip]=\"locale().prev\"\n [class.thy-image-preview-switch-left-disabled]=\"previewIndex <= 0\"\n (click)=\"prev()\">\n <thy-icon thyIconName=\"angle-left-bold\"></thy-icon>\n </div>\n <div\n class=\"thy-image-preview-switch-right\"\n [thyTooltip]=\"locale().next\"\n [thyTooltipDisabled]=\"previewIndex >= images.length - 1\"\n [class.thy-image-preview-switch-right-disabled]=\"previewIndex >= images.length - 1\"\n (click)=\"next()\">\n <thy-icon thyIconName=\"angle-right-bold\"> </thy-icon>\n </div>\n }\n @if (!isFullScreen) {\n <thy-actions thySize=\"xs\" class=\"thy-image-preview-operations py-3 px-4\">\n @for (option of previewOperations; track $index; let i = $index) {\n @if (!['original-scale', 'fit-screen', 'copyLink'].includes(option.type) || currentImageMode === option.type) {\n <a\n href=\"javascript:;\"\n thyAction\n [thyActionIcon]=\"option.icon\"\n [thyTooltip]=\"option.name\"\n [thyTooltipOffset]=\"13\"\n (click)=\"option.action(previewImage)\"></a>\n }\n @if (option?.type === 'zoom-out') {\n <span class=\"mr-2\"> {{ (zoom * 100).toFixed(0) + '%' }} </span>\n }\n @if (option?.type === 'rotate-right') {\n <thy-divider class=\"ml-2\" [thyVertical]=\"true\"></thy-divider>\n }\n @if (option.type === 'copyLink') {\n <a\n href=\"javascript:;\"\n thyAction\n [thyCopyTips]=\"option.name\"\n [thyActionIcon]=\"option.icon\"\n [thyCopyTipsOffset]=\"13\"\n (thyCopy)=\"copyLink($event)\"\n [thyCopyContent]=\"previewImageOriginSrc\"\n [thyShowNotify]=\"false\"></a>\n }\n }\n <thy-divider [thyVertical]=\"true\"></thy-divider>\n <span class=\"thy-image-preview-operations-text\"> {{ previewIndex + 1 }} / {{ images.length }} </span>\n </thy-actions>\n }\n</div>\n", dependencies: [{ kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: ThyLoading, selector: "thy-loading", inputs: ["thyDone", "thyTip", "thyIsMask"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyActions, selector: "thy-actions", inputs: ["thySize"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: ThyCopyDirective, selector: "[thyCopy]", inputs: ["thyCopySuccessText", "thyCopyTips", "thyCopyTipsOffset", "thyCopyContent", "thyShowNotify"], outputs: ["thyCopy"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
476
476
  }
477
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyImagePreview, decorators: [{
477
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyImagePreview, decorators: [{
478
478
  type: Component,
479
479
  args: [{ selector: 'thy-image-preview', exportAs: 'thyImagePreview', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
480
480
  class: 'thy-image-preview-wrap',
481
481
  '[class.thy-image-preview-moving]': 'isDragging'
482
482
  }, imports: [ThyTooltipDirective, ThyAction, CdkDrag, ThyLoading, ThyIcon, ThyActions, ThyDivider, ThyCopyDirective], template: "<div class=\"thy-image-preview\" [class.thy-image-preview-fullscreen]=\"isFullScreen\">\n @if (!isFullScreen) {\n <div class=\"thy-image-preview-header pl-10 pr-8\">\n <div class=\"thy-image-preview-header-info\">\n <p class=\"thy-image-name text-truncate\" [thyTooltipDisabled]=\"previewImage?.name?.length < 32\" [thyTooltip]=\"previewImage?.name\">\n {{ previewImage?.name }}\n </p>\n <span class=\"thy-image-size\"> {{ previewImage?.size }}</span>\n </div>\n <a thyAction thyIcon=\"close\" [thyTooltip]=\"locale().exitPreview\" href=\"javascript:;\" (click)=\"thyDialog.close()\"></a>\n </div>\n }\n @if (isFullScreen) {\n <a\n class=\"thy-image-preview-exit-fullscreen\"\n thyAction\n thyIcon=\"close\"\n href=\"javascript:;\"\n (click)=\"thyFullscreen.exit()\"\n [thyTooltip]=\"locale().exitFullScreen\"></a>\n }\n <div\n class=\"thy-image-preview-img-wrapper\"\n #imagePreviewWrapper\n cdkDrag\n [class.thy-image-preview-inside]=\"isInsideScreen\"\n [style.transform]=\"previewImageWrapperTransform\"\n [cdkDragFreeDragPosition]=\"position\"\n (cdkDragReleased)=\"dragReleased()\">\n @for (image of images; track $index; let imageIndex = $index) {\n @if (previewIndex === imageIndex && isLoadingDone) {\n <img #imgRef class=\"thy-image-preview-img\" [src]=\"image.objectURL || image.src\" [style.transform]=\"previewImageTransform\" />\n }\n }\n <thy-loading [thyDone]=\"isLoadingDone\"></thy-loading>\n </div>\n\n @if (images.length > 1 && !isFullScreen) {\n <div\n class=\"thy-image-preview-switch-left\"\n [thyTooltipDisabled]=\"previewIndex <= 0\"\n [thyTooltip]=\"locale().prev\"\n [class.thy-image-preview-switch-left-disabled]=\"previewIndex <= 0\"\n (click)=\"prev()\">\n <thy-icon thyIconName=\"angle-left-bold\"></thy-icon>\n </div>\n <div\n class=\"thy-image-preview-switch-right\"\n [thyTooltip]=\"locale().next\"\n [thyTooltipDisabled]=\"previewIndex >= images.length - 1\"\n [class.thy-image-preview-switch-right-disabled]=\"previewIndex >= images.length - 1\"\n (click)=\"next()\">\n <thy-icon thyIconName=\"angle-right-bold\"> </thy-icon>\n </div>\n }\n @if (!isFullScreen) {\n <thy-actions thySize=\"xs\" class=\"thy-image-preview-operations py-3 px-4\">\n @for (option of previewOperations; track $index; let i = $index) {\n @if (!['original-scale', 'fit-screen', 'copyLink'].includes(option.type) || currentImageMode === option.type) {\n <a\n href=\"javascript:;\"\n thyAction\n [thyActionIcon]=\"option.icon\"\n [thyTooltip]=\"option.name\"\n [thyTooltipOffset]=\"13\"\n (click)=\"option.action(previewImage)\"></a>\n }\n @if (option?.type === 'zoom-out') {\n <span class=\"mr-2\"> {{ (zoom * 100).toFixed(0) + '%' }} </span>\n }\n @if (option?.type === 'rotate-right') {\n <thy-divider class=\"ml-2\" [thyVertical]=\"true\"></thy-divider>\n }\n @if (option.type === 'copyLink') {\n <a\n href=\"javascript:;\"\n thyAction\n [thyCopyTips]=\"option.name\"\n [thyActionIcon]=\"option.icon\"\n [thyCopyTipsOffset]=\"13\"\n (thyCopy)=\"copyLink($event)\"\n [thyCopyContent]=\"previewImageOriginSrc\"\n [thyShowNotify]=\"false\"></a>\n }\n }\n <thy-divider [thyVertical]=\"true\"></thy-divider>\n <span class=\"thy-image-preview-operations-text\"> {{ previewIndex + 1 }} / {{ images.length }} </span>\n </thy-actions>\n }\n</div>\n" }]
483
- }], propDecorators: { imageRef: [{
483
+ }], propDecorators: { downloadClicked: [{ type: i0.Output, args: ["downloadClicked"] }], imageRef: [{
484
484
  type: ViewChild,
485
485
  args: ['imgRef', { static: false }]
486
486
  }], imagePreviewWrapper: [{
@@ -562,10 +562,10 @@ class ThyImageService {
562
562
  this.ngUnsubscribe$.next();
563
563
  this.ngUnsubscribe$.complete();
564
564
  }
565
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
566
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyImageService }); }
565
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
566
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyImageService }); }
567
567
  }
568
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyImageService, decorators: [{
568
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyImageService, decorators: [{
569
569
  type: Injectable
570
570
  }], ctorParameters: () => [] });
571
571
 
@@ -585,28 +585,28 @@ class ThyImageDirective {
585
585
  /**
586
586
  * 图片地址
587
587
  */
588
- this.thySrc = input();
588
+ this.thySrc = input(...(ngDevMode ? [undefined, { debugName: "thySrc" }] : []));
589
589
  /**
590
590
  * 预览图片地址
591
591
  */
592
- this.thyPreviewSrc = input();
592
+ this.thyPreviewSrc = input(...(ngDevMode ? [undefined, { debugName: "thyPreviewSrc" }] : []));
593
593
  /**
594
594
  * 图片原图地址
595
595
  */
596
- this.thyOriginSrc = input();
596
+ this.thyOriginSrc = input(...(ngDevMode ? [undefined, { debugName: "thyOriginSrc" }] : []));
597
597
  /**
598
598
  * 图片附加信息,包含 { name: string, size?: string | number; }
599
599
  */
600
- this.thyImageMeta = input();
600
+ this.thyImageMeta = input(...(ngDevMode ? [undefined, { debugName: "thyImageMeta" }] : []));
601
601
  /**
602
602
  * 是否禁止预览
603
603
  * @default false
604
604
  */
605
- this.thyDisablePreview = input(undefined, { transform: coerceBooleanProperty });
605
+ this.thyDisablePreview = input(undefined, ...(ngDevMode ? [{ debugName: "thyDisablePreview", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
606
606
  /**
607
607
  * 是否自动计算图片资源大小
608
608
  */
609
- this.thyResolveSize = input(false, { transform: coerceBooleanProperty });
609
+ this.thyResolveSize = input(false, ...(ngDevMode ? [{ debugName: "thyResolveSize", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
610
610
  effect(() => {
611
611
  this.elementRef.nativeElement.src = this.thySrc();
612
612
  });
@@ -623,7 +623,7 @@ class ThyImageDirective {
623
623
  while (true) {
624
624
  // 多层 thy-image-group 嵌套时,获取最外层 thy-image-group 下的所有图片
625
625
  const injector = this.parentGroup?.injector || this.injector;
626
- const parentGroup = injector.get(THY_IMAGE_GROUP_COMPONENT, null, InjectFlags.SkipSelf);
626
+ const parentGroup = injector.get(THY_IMAGE_GROUP_COMPONENT, null, { skipSelf: true });
627
627
  if (!parentGroup) {
628
628
  break;
629
629
  }
@@ -681,10 +681,10 @@ class ThyImageDirective {
681
681
  this.parentGroup.removeImage(index);
682
682
  }
683
683
  }
684
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyImageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
685
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: ThyImageDirective, isStandalone: true, selector: "img[thyImage]", inputs: { thySrc: { classPropertyName: "thySrc", publicName: "thySrc", isSignal: true, isRequired: false, transformFunction: null }, thyPreviewSrc: { classPropertyName: "thyPreviewSrc", publicName: "thyPreviewSrc", isSignal: true, isRequired: false, transformFunction: null }, thyOriginSrc: { classPropertyName: "thyOriginSrc", publicName: "thyOriginSrc", isSignal: true, isRequired: false, transformFunction: null }, thyImageMeta: { classPropertyName: "thyImageMeta", publicName: "thyImageMeta", isSignal: true, isRequired: false, transformFunction: null }, thyDisablePreview: { classPropertyName: "thyDisablePreview", publicName: "thyDisablePreview", isSignal: true, isRequired: false, transformFunction: null }, thyResolveSize: { classPropertyName: "thyResolveSize", publicName: "thyResolveSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onPreview($event)" }, properties: { "class.thy-image-disabled": "thyDisablePreview()" }, classAttribute: "thy-image" }, exportAs: ["thyImage"], ngImport: i0 }); }
684
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyImageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
685
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.10", type: ThyImageDirective, isStandalone: true, selector: "img[thyImage]", inputs: { thySrc: { classPropertyName: "thySrc", publicName: "thySrc", isSignal: true, isRequired: false, transformFunction: null }, thyPreviewSrc: { classPropertyName: "thyPreviewSrc", publicName: "thyPreviewSrc", isSignal: true, isRequired: false, transformFunction: null }, thyOriginSrc: { classPropertyName: "thyOriginSrc", publicName: "thyOriginSrc", isSignal: true, isRequired: false, transformFunction: null }, thyImageMeta: { classPropertyName: "thyImageMeta", publicName: "thyImageMeta", isSignal: true, isRequired: false, transformFunction: null }, thyDisablePreview: { classPropertyName: "thyDisablePreview", publicName: "thyDisablePreview", isSignal: true, isRequired: false, transformFunction: null }, thyResolveSize: { classPropertyName: "thyResolveSize", publicName: "thyResolveSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onPreview($event)" }, properties: { "class.thy-image-disabled": "thyDisablePreview()" }, classAttribute: "thy-image" }, exportAs: ["thyImage"], ngImport: i0 }); }
686
686
  }
687
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyImageDirective, decorators: [{
687
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyImageDirective, decorators: [{
688
688
  type: Directive,
689
689
  args: [{
690
690
  selector: 'img[thyImage]',
@@ -695,11 +695,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
695
695
  '[class.thy-image-disabled]': 'thyDisablePreview()'
696
696
  }
697
697
  }]
698
- }], ctorParameters: () => [] });
698
+ }], ctorParameters: () => [], propDecorators: { thySrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySrc", required: false }] }], thyPreviewSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyPreviewSrc", required: false }] }], thyOriginSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyOriginSrc", required: false }] }], thyImageMeta: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyImageMeta", required: false }] }], thyDisablePreview: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDisablePreview", required: false }] }], thyResolveSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyResolveSize", required: false }] }] } });
699
699
 
700
700
  class ThyImageModule {
701
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
702
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.8", ngImport: i0, type: ThyImageModule, imports: [CommonModule,
701
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
702
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.10", ngImport: i0, type: ThyImageModule, imports: [CommonModule,
703
703
  PortalModule,
704
704
  DragDropModule,
705
705
  ThyIconModule,
@@ -712,7 +712,7 @@ class ThyImageModule {
712
712
  ThyImageDirective,
713
713
  ThyImageGroup,
714
714
  ThyImagePreview], exports: [ThyImageDirective, ThyImageGroup, ThyImagePreview] }); }
715
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyImageModule, providers: [ThyImageService, THY_IMAGE_DEFAULT_PREVIEW_OPTIONS_PROVIDER], imports: [CommonModule,
715
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyImageModule, providers: [ThyImageService, THY_IMAGE_DEFAULT_PREVIEW_OPTIONS_PROVIDER], imports: [CommonModule,
716
716
  PortalModule,
717
717
  DragDropModule,
718
718
  ThyIconModule,
@@ -724,7 +724,7 @@ class ThyImageModule {
724
724
  ThyActionModule,
725
725
  ThyImagePreview] }); }
726
726
  }
727
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyImageModule, decorators: [{
727
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyImageModule, decorators: [{
728
728
  type: NgModule,
729
729
  args: [{
730
730
  exports: [ThyImageDirective, ThyImageGroup, ThyImagePreview],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-image.mjs","sources":["../../../src/image/image.token.ts","../../../src/image/image-group.component.ts","../../../src/image/image.config.ts","../../../src/image/utils.ts","../../../src/image/preview/image-preview.component.ts","../../../src/image/preview/image-preview.component.html","../../../src/image/preview/image-preview-ref.ts","../../../src/image/image.service.ts","../../../src/image/image.directive.ts","../../../src/image/module.ts","../../../src/image/ngx-tethys-image.ts"],"sourcesContent":["import { ElementRef, InjectionToken, Injector, InputSignal } from '@angular/core';\nimport { ThyImageMeta } from './image.class';\n\nexport interface IThyImageDirective {\n previewable: boolean;\n thySrc: InputSignal<string>;\n thyPreviewSrc: InputSignal<string>;\n thyOriginSrc: InputSignal<string>;\n thyImageMeta: InputSignal<ThyImageMeta>;\n}\n\nexport interface IThyImageGroupComponent {\n injector: Injector;\n element: ElementRef;\n images: IThyImageDirective[];\n addImage: (image: IThyImageDirective, index: number) => void;\n removeImage: (index: number) => void;\n}\n\nexport const THY_IMAGE_GROUP_COMPONENT = new InjectionToken<IThyImageGroupComponent>('THY_IMAGE_GROUP_COMPONENT');\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, Injector, ElementRef, inject } from '@angular/core';\nimport { IThyImageDirective, IThyImageGroupComponent, THY_IMAGE_GROUP_COMPONENT } from './image.token';\n\n/**\n * 图片分组,提供 thyImageGroup 指令和 thy-image-group 标签两种使用方式\n * @name thy-image-group,[thyImageGroup]\n */\n@Component({\n selector: 'thy-image-group, [thyImageGroup]',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: THY_IMAGE_GROUP_COMPONENT,\n useClass: ThyImageGroup\n }\n ]\n})\nexport class ThyImageGroup implements IThyImageGroupComponent {\n injector = inject(Injector);\n\n element = inject(ElementRef);\n\n images: IThyImageDirective[] = [];\n\n addImage(image: IThyImageDirective, index: number): void {\n this.images.splice(index, 0, image);\n }\n\n removeImage(index: number) {\n this.images.splice(index, 1);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ThyAbstractOverlayConfig, ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nexport class ThyImagePreviewConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n closeOnNavigation?: boolean;\n disableClose?: boolean;\n disableKeyboardSelectable?: boolean;\n zoom?: number;\n rotate?: number;\n}\n\nexport const THY_IMAGE_DEFAULT_PREVIEW_OPTIONS = new InjectionToken<ThyImagePreviewConfig>('thy-image-default-options');\n\nexport const THY_IMAGE_DEFAULT_PREVIEW_OPTIONS_PROVIDER = {\n provide: THY_IMAGE_DEFAULT_PREVIEW_OPTIONS,\n useValue: {\n hasBackdrop: true,\n closeOnNavigation: true,\n disableClose: false,\n disableKeyboardSelectable: false,\n restoreFocus: false\n }\n};\n\nexport const imageAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'image',\n animationEnabled: true,\n disposeWhenClose: true\n};\n","import { fromEvent } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\nexport const fetchImageBlob = (url: string) => {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n const loadedXhr$ = fromEvent(xhr, 'load').pipe(\n take(1),\n map(data => {\n return xhr.response;\n })\n );\n xhr.send();\n return loadedXhr$;\n};\n","import { CdkDrag } from '@angular/cdk/drag-drop';\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n NgZone,\n OnInit,\n output,\n Signal,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ThyAction, ThyActions } from 'ngx-tethys/action';\nimport { ThyCopyDirective, ThyCopyEvent } from 'ngx-tethys/copy';\nimport { ThyDialog } from 'ngx-tethys/dialog';\nimport { ThyDivider } from 'ngx-tethys/divider';\nimport { ThyFullscreen } from 'ngx-tethys/fullscreen';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyLoading } from 'ngx-tethys/loading';\nimport { ThyNotifyService } from 'ngx-tethys/notify';\nimport { ThyTooltipDirective } from 'ngx-tethys/tooltip';\nimport { getClientSize, getFitContentPosition, getOffset, helpers, humanizeBytes, isNumber, isUndefinedOrNull } from 'ngx-tethys/util';\nimport { Observable, fromEvent } from 'rxjs';\nimport { InternalImageInfo, ThyImageInfo, ThyImagePreviewMode, ThyImagePreviewOperation, ThyImagePreviewOptions } from '../image.class';\nimport { fetchImageBlob } from '../utils';\nimport { injectLocale, ThyImageLocale } from 'ngx-tethys/i18n';\n\nconst initialPosition = {\n x: 0,\n y: 0\n};\nconst IMAGE_MAX_ZOOM = 3;\nconst IMAGE_MIN_ZOOM = 0.1;\nconst HORIZONTAL_SPACE = 100 * 2; // left: 100px; right: 100px\nconst VERTICAL_SPACE = 96 + 106; // top: 96px; bottom: 106px\n\n/**\n * 图片预览组件\n * @name thy-image-preview\n * @order 20\n */\n@Component({\n selector: 'thy-image-preview',\n exportAs: 'thyImagePreview',\n templateUrl: './image-preview.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'thy-image-preview-wrap',\n '[class.thy-image-preview-moving]': 'isDragging'\n },\n imports: [ThyTooltipDirective, ThyAction, CdkDrag, ThyLoading, ThyIcon, ThyActions, ThyDivider, ThyCopyDirective]\n})\nexport class ThyImagePreview implements OnInit {\n thyDialog = inject(ThyDialog);\n thyFullscreen = inject(ThyFullscreen);\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n private notifyService = inject(ThyNotifyService);\n private host = inject<ElementRef<HTMLElement>>(ElementRef);\n private sanitizer = inject(DomSanitizer);\n public locale: Signal<ThyImageLocale> = injectLocale('image');\n\n readonly downloadClicked = output<ThyImageInfo>();\n\n private readonly destroyRef = inject(DestroyRef);\n\n images: InternalImageInfo[] = [];\n previewIndex: number = 0;\n previewConfig: ThyImagePreviewOptions;\n previewImageTransform = '';\n previewImageWrapperTransform = '';\n zoomDisabled = false;\n zoom: number = 1;\n position = { ...initialPosition };\n isDragging = false;\n isLoadingDone = false;\n isFullScreen = false;\n isInsideScreen = true;\n currentImageMode: ThyImagePreviewMode = 'original-scale';\n previewOperations: ThyImagePreviewOperation[];\n defaultPreviewOperations: ThyImagePreviewOperation[] = [\n {\n icon: 'zoom-out',\n name: this.locale().zoomOut,\n action: (image: ThyImageInfo) => {\n this.zoomOut();\n },\n type: 'zoom-out'\n },\n {\n icon: 'zoom-in',\n name: this.locale().zoomIn,\n action: (image: ThyImageInfo) => {\n this.zoomIn();\n },\n type: 'zoom-in'\n },\n {\n icon: 'one-to-one',\n name: this.locale().originalSize,\n action: (image: ThyImageInfo) => {\n this.setOriginalSize();\n },\n type: 'original-scale'\n },\n {\n icon: 'max-view',\n name: this.locale().fitToScreen,\n action: () => {\n this.setFitScreen();\n },\n type: 'fit-screen'\n },\n {\n icon: 'expand-arrows',\n name: this.locale().fullScreen,\n action: () => {\n this.fullScreen();\n },\n type: 'full-screen'\n },\n {\n icon: 'rotate-right',\n name: this.locale().spin,\n action: (image: ThyImageInfo) => {\n this.rotateRight();\n },\n type: 'rotate-right'\n },\n {\n icon: 'download',\n name: this.locale().download,\n action: (image: ThyImageInfo) => {\n this.download(image);\n },\n type: 'download'\n },\n {\n icon: 'preview',\n name: this.locale().viewOriginal,\n action: () => {\n this.viewOriginal();\n },\n type: 'view-original'\n },\n {\n icon: 'link-insert',\n name: this.locale().copyLink,\n type: 'copyLink'\n }\n ];\n\n private rotate: number;\n\n get previewImage(): InternalImageInfo {\n const image = this.images[this.previewIndex];\n if (image.size) {\n image.size = isNumber(image.size) ? humanizeBytes(image.size) : image.size;\n }\n return image;\n }\n\n get previewImageOriginSrc() {\n let imageSrc = this.previewImage.origin?.src || this.previewImage.src;\n if (imageSrc.startsWith('./')) {\n return window.location.host + '/' + imageSrc.split('./')[1];\n }\n return imageSrc;\n }\n\n get defaultZoom(): number {\n if (this.previewConfig?.zoom && this.previewConfig?.zoom > 0) {\n return this.previewConfig.zoom >= IMAGE_MAX_ZOOM\n ? IMAGE_MAX_ZOOM\n : this.previewConfig.zoom <= IMAGE_MIN_ZOOM\n ? IMAGE_MIN_ZOOM\n : this.previewConfig.zoom;\n }\n }\n\n @ViewChild('imgRef', { static: false }) imageRef!: ElementRef<HTMLImageElement>;\n @ViewChild('imagePreviewWrapper', { static: true }) imagePreviewWrapper!: ElementRef<HTMLElement>;\n\n ngOnInit(): void {\n this.initPreview();\n this.ngZone.runOutsideAngular(() => {\n fromEvent(this.host.nativeElement, 'click')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(event => {\n if (\n (event.target === event.currentTarget ||\n (this.isInsideScreen && this.imagePreviewWrapper.nativeElement.contains(event.target as HTMLElement))) &&\n !this.previewConfig?.disableClose\n ) {\n this.ngZone.run(() => !this.isFullScreen && this.thyDialog.close());\n }\n });\n\n fromEvent(this.imagePreviewWrapper.nativeElement, 'mousedown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.isDragging = !this.isInsideScreen && true;\n });\n });\n }\n\n setOriginalSize() {\n this.reset();\n this.currentImageMode = 'fit-screen';\n this.zoom = 1;\n this.updatePreviewImageTransform();\n this.calculateInsideScreen();\n this.isLoadingDone = true;\n this.cdr.detectChanges();\n }\n\n setFitScreen() {\n this.reset();\n this.isInsideScreen = true;\n this.updatePreviewImage();\n }\n\n useDefaultZoomUpdate(isUpdateImageWrapper: boolean) {\n this.zoom = this.defaultZoom;\n this.isLoadingDone = true;\n this.updatePreviewImageTransform();\n if (isUpdateImageWrapper) {\n this.updatePreviewImageWrapperTransform();\n }\n this.cdr.detectChanges();\n }\n\n useCalculateZoomUpdate(isUpdateImageWrapper?: boolean) {\n let img = new Image();\n img.src = this.previewImage.src;\n img.onload = () => {\n const { width: offsetWidth, height: offsetHeight } = getClientSize();\n const innerWidth = offsetWidth - HORIZONTAL_SPACE;\n const innerHeight = offsetHeight - VERTICAL_SPACE;\n const { naturalWidth, naturalHeight } = img;\n const xRatio = innerWidth / naturalWidth;\n const yRatio = innerHeight / naturalHeight;\n const zoom = Math.min(xRatio, yRatio);\n if (zoom > 1) {\n this.zoom = 1;\n } else {\n this.zoom = zoom;\n }\n this.isLoadingDone = true;\n this.updatePreviewImageTransform();\n if (isUpdateImageWrapper) {\n this.updatePreviewImageWrapperTransform();\n }\n this.cdr.detectChanges();\n };\n }\n\n updatePreviewImage() {\n this.resolvePreviewImage().subscribe(result => {\n if (!result) {\n // error\n this.isLoadingDone = true;\n return;\n }\n // image size\n if (!this.previewImage.size && this.previewImage.blob) {\n this.previewImage.size = humanizeBytes(this.previewImage.blob.size);\n }\n if (this.defaultZoom) {\n this.useDefaultZoomUpdate(true);\n } else {\n this.useCalculateZoomUpdate();\n }\n });\n }\n\n resolvePreviewImage() {\n return new Observable<Boolean>(subscriber => {\n if (this.previewImage.src.startsWith('blob:')) {\n this.previewImage.objectURL = this.sanitizer.bypassSecurityTrustUrl(this.previewImage.src);\n subscriber.next(true);\n subscriber.complete();\n return;\n }\n if (this.previewImage.objectURL || !this.previewConfig.resolveSize) {\n subscriber.next(true);\n subscriber.complete();\n } else {\n fetchImageBlob(this.previewImage.src).subscribe(\n blob => {\n const urlCreator = window.URL || window.webkitURL;\n const objectURL = urlCreator.createObjectURL(blob);\n this.previewImage.objectURL = this.sanitizer.bypassSecurityTrustUrl(objectURL);\n this.previewImage.blob = blob;\n subscriber.next(true);\n subscriber.complete();\n },\n error => {\n subscriber.next(false);\n subscriber.complete();\n }\n );\n }\n });\n }\n\n initPreview() {\n if (Array.isArray(this.previewConfig?.operations) && this.previewConfig?.operations.length) {\n const defaultOperationsMap = helpers.keyBy(this.defaultPreviewOperations, 'type');\n this.previewOperations = this.previewConfig?.operations.map(operation => {\n if (helpers.isString(operation) && defaultOperationsMap[operation]) {\n return defaultOperationsMap[operation];\n } else {\n return operation as ThyImagePreviewOperation;\n }\n });\n } else {\n this.previewOperations = this.defaultPreviewOperations;\n }\n this.rotate = this.previewConfig?.rotate ?? 0;\n this.updatePreviewImage();\n }\n\n download(image: ThyImageInfo) {\n this.downloadClicked.emit(image);\n const src = image.origin?.src || image.src;\n fetchImageBlob(src)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(blob => {\n const urlCreator = window.URL || window.webkitURL;\n const objectURL = urlCreator.createObjectURL(blob);\n let a = document.createElement('a');\n a.download = image.name || 'default.png';\n a.href = objectURL;\n a.click();\n });\n }\n\n zoomIn(): void {\n if (this.zoom < IMAGE_MAX_ZOOM) {\n this.zoom = Math.min(this.zoom + 0.1, IMAGE_MAX_ZOOM);\n this.calculateInsideScreen();\n this.updatePreviewImageTransform();\n this.position = { ...initialPosition };\n }\n }\n\n zoomOut(): void {\n if (this.zoom > IMAGE_MIN_ZOOM) {\n this.zoom = Math.max(this.zoom - 0.1, IMAGE_MIN_ZOOM);\n this.calculateInsideScreen();\n this.updatePreviewImageTransform();\n this.position = { ...initialPosition };\n }\n }\n\n calculateInsideScreen() {\n const width = this.imageRef.nativeElement.offsetWidth * this.zoom;\n const height = this.imageRef.nativeElement.offsetHeight * this.zoom;\n const { width: clientWidth, height: clientHeight } = getClientSize();\n if (width >= clientWidth || height >= clientHeight) {\n this.isInsideScreen = false;\n } else {\n this.isInsideScreen = true;\n }\n }\n\n viewOriginal() {\n window.open(this.previewImage?.origin?.src || this.previewImage.src, '_blank');\n }\n\n rotateRight(): void {\n this.rotate += 90;\n this.updatePreviewImageTransform();\n }\n\n fullScreen(): void {\n const targetElement = this.host.nativeElement.querySelector('.thy-image-preview');\n this.isFullScreen = true;\n const fullscreenRef = this.thyFullscreen.launch({\n target: targetElement\n });\n fullscreenRef.afterExited().subscribe(() => {\n this.isFullScreen = false;\n this.cdr.markForCheck();\n });\n }\n\n copyLink(event: ThyCopyEvent) {\n if (event.isSuccess) {\n this.notifyService.success(this.locale().copySuccess);\n } else {\n this.notifyService.error(this.locale().copyError);\n }\n }\n\n prev() {\n if (this.previewIndex > 0) {\n this.previewIndex--;\n this.isLoadingDone = false;\n this.reset();\n this.updatePreviewImage();\n }\n }\n\n next() {\n if (this.previewIndex < this.images.length - 1) {\n this.previewIndex++;\n this.isLoadingDone = false;\n this.reset();\n this.updatePreviewImage();\n }\n }\n\n dragReleased() {\n this.isDragging = false;\n const width = this.imageRef.nativeElement.offsetWidth * this.zoom;\n const height = this.imageRef.nativeElement.offsetHeight * this.zoom;\n const { left, top } = getOffset(this.imageRef.nativeElement, window);\n const { width: clientWidth, height: clientHeight } = getClientSize();\n const isRotate = this.rotate % 180 !== 0;\n const fitContentParams = {\n width: isRotate ? height : width,\n height: isRotate ? width : height,\n left,\n top,\n clientWidth,\n clientHeight\n };\n const fitContentPos = getFitContentPosition(fitContentParams);\n if (!isUndefinedOrNull(fitContentPos.x) || !isUndefinedOrNull(fitContentPos.y)) {\n this.position = { ...this.position, ...fitContentPos };\n }\n }\n\n private reset(): void {\n this.currentImageMode = 'original-scale';\n this.rotate = this.previewConfig?.rotate ?? 0;\n this.position = { ...initialPosition };\n this.cdr.detectChanges();\n }\n\n private updatePreviewImageTransform(): void {\n this.previewImageTransform = `scale3d(${this.zoom}, ${this.zoom}, 1) rotate(${this.rotate}deg)`;\n }\n\n private updatePreviewImageWrapperTransform(): void {\n this.previewImageWrapperTransform = `translate3d(${this.position.x}px, ${this.position.y}px, 0)`;\n }\n}\n","<div class=\"thy-image-preview\" [class.thy-image-preview-fullscreen]=\"isFullScreen\">\n @if (!isFullScreen) {\n <div class=\"thy-image-preview-header pl-10 pr-8\">\n <div class=\"thy-image-preview-header-info\">\n <p class=\"thy-image-name text-truncate\" [thyTooltipDisabled]=\"previewImage?.name?.length < 32\" [thyTooltip]=\"previewImage?.name\">\n {{ previewImage?.name }}\n </p>\n <span class=\"thy-image-size\"> {{ previewImage?.size }}</span>\n </div>\n <a thyAction thyIcon=\"close\" [thyTooltip]=\"locale().exitPreview\" href=\"javascript:;\" (click)=\"thyDialog.close()\"></a>\n </div>\n }\n @if (isFullScreen) {\n <a\n class=\"thy-image-preview-exit-fullscreen\"\n thyAction\n thyIcon=\"close\"\n href=\"javascript:;\"\n (click)=\"thyFullscreen.exit()\"\n [thyTooltip]=\"locale().exitFullScreen\"></a>\n }\n <div\n class=\"thy-image-preview-img-wrapper\"\n #imagePreviewWrapper\n cdkDrag\n [class.thy-image-preview-inside]=\"isInsideScreen\"\n [style.transform]=\"previewImageWrapperTransform\"\n [cdkDragFreeDragPosition]=\"position\"\n (cdkDragReleased)=\"dragReleased()\">\n @for (image of images; track $index; let imageIndex = $index) {\n @if (previewIndex === imageIndex && isLoadingDone) {\n <img #imgRef class=\"thy-image-preview-img\" [src]=\"image.objectURL || image.src\" [style.transform]=\"previewImageTransform\" />\n }\n }\n <thy-loading [thyDone]=\"isLoadingDone\"></thy-loading>\n </div>\n\n @if (images.length > 1 && !isFullScreen) {\n <div\n class=\"thy-image-preview-switch-left\"\n [thyTooltipDisabled]=\"previewIndex <= 0\"\n [thyTooltip]=\"locale().prev\"\n [class.thy-image-preview-switch-left-disabled]=\"previewIndex <= 0\"\n (click)=\"prev()\">\n <thy-icon thyIconName=\"angle-left-bold\"></thy-icon>\n </div>\n <div\n class=\"thy-image-preview-switch-right\"\n [thyTooltip]=\"locale().next\"\n [thyTooltipDisabled]=\"previewIndex >= images.length - 1\"\n [class.thy-image-preview-switch-right-disabled]=\"previewIndex >= images.length - 1\"\n (click)=\"next()\">\n <thy-icon thyIconName=\"angle-right-bold\"> </thy-icon>\n </div>\n }\n @if (!isFullScreen) {\n <thy-actions thySize=\"xs\" class=\"thy-image-preview-operations py-3 px-4\">\n @for (option of previewOperations; track $index; let i = $index) {\n @if (!['original-scale', 'fit-screen', 'copyLink'].includes(option.type) || currentImageMode === option.type) {\n <a\n href=\"javascript:;\"\n thyAction\n [thyActionIcon]=\"option.icon\"\n [thyTooltip]=\"option.name\"\n [thyTooltipOffset]=\"13\"\n (click)=\"option.action(previewImage)\"></a>\n }\n @if (option?.type === 'zoom-out') {\n <span class=\"mr-2\"> {{ (zoom * 100).toFixed(0) + '%' }} </span>\n }\n @if (option?.type === 'rotate-right') {\n <thy-divider class=\"ml-2\" [thyVertical]=\"true\"></thy-divider>\n }\n @if (option.type === 'copyLink') {\n <a\n href=\"javascript:;\"\n thyAction\n [thyCopyTips]=\"option.name\"\n [thyActionIcon]=\"option.icon\"\n [thyCopyTipsOffset]=\"13\"\n (thyCopy)=\"copyLink($event)\"\n [thyCopyContent]=\"previewImageOriginSrc\"\n [thyShowNotify]=\"false\"></a>\n }\n }\n <thy-divider [thyVertical]=\"true\"></thy-divider>\n <span class=\"thy-image-preview-operations-text\"> {{ previewIndex + 1 }} / {{ images.length }} </span>\n </thy-actions>\n }\n</div>\n","import { ThyImagePreview } from './image-preview.component';\nimport { ThyDialogRef } from 'ngx-tethys/dialog';\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { ThyImageInfo, ThyImagePreviewOptions } from '../image.class';\nimport { Observable } from 'rxjs';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\n\nexport class ThyImagePreviewRef {\n get componentInstance() {\n return this.dialogRef.componentInstance;\n }\n\n constructor(\n public previewInstance: ThyImagePreview,\n private config: ThyImagePreviewOptions,\n private dialogRef: ThyDialogRef<ThyImagePreview>\n ) {\n dialogRef\n .keydownEvents()\n .pipe()\n .subscribe(event => {\n if (!config.disableKeyboardSelectable && event.keyCode === LEFT_ARROW) {\n this.prev();\n }\n if (!config.disableKeyboardSelectable && event.keyCode === RIGHT_ARROW) {\n this.next();\n }\n });\n }\n\n next(): void {\n this.previewInstance.next();\n }\n\n prev(): void {\n this.previewInstance.prev();\n }\n\n downloadClicked(): Observable<ThyImageInfo> {\n return outputToObservable(this.previewInstance.downloadClicked);\n }\n}\n","import { Injectable, OnDestroy, inject } from '@angular/core';\nimport { ThyImagePreviewConfig, THY_IMAGE_DEFAULT_PREVIEW_OPTIONS } from './image.config';\nimport { ThyImageInfo, ThyImagePreviewOptions } from './image.class';\nimport { ThyImagePreview } from './preview/image-preview.component';\nimport { ThyDialog, ThyDialogSizes } from 'ngx-tethys/dialog';\nimport { ThyImagePreviewRef } from './preview/image-preview-ref';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * 图片预览服务\n */\n@Injectable()\nexport class ThyImageService implements OnDestroy {\n thyDialog = inject(ThyDialog);\n\n /**\n * 图片预览默认配置,外部可通过注入 THY_IMAGE_DEFAULT_PREVIEW_OPTIONS 进行配置\n */\n defaultConfig: ThyImagePreviewConfig;\n\n private downloadClicked$ = new Subject<ThyImageInfo>();\n\n private ngUnsubscribe$ = new Subject<void>();\n\n constructor() {\n const defaultConfig = inject(THY_IMAGE_DEFAULT_PREVIEW_OPTIONS, { optional: true })!;\n\n this.defaultConfig = defaultConfig;\n }\n\n /**\n * 图片预览方法\n */\n preview(images: ThyImageInfo[], options?: ThyImagePreviewOptions & { startIndex?: number }): ThyImagePreviewRef {\n const config = { ...this.defaultConfig, ...options };\n const dialogRef = this.thyDialog.open(ThyImagePreview, {\n initialState: {\n images,\n previewIndex: options?.startIndex >= 0 && options?.startIndex < images.length ? options.startIndex : 0,\n previewConfig: config\n },\n backdropClass: 'thy-image-preview-backdrop',\n panelClass: 'thy-image-preview-container',\n size: ThyDialogSizes.full,\n ...config\n });\n const imagePreviewRef = new ThyImagePreviewRef(dialogRef.componentInstance, { ...this.defaultConfig, ...options }, dialogRef);\n imagePreviewRef\n .downloadClicked()\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(image => {\n this.downloadClicked$.next(image);\n });\n return imagePreviewRef;\n }\n\n downloadClicked(): Observable<ThyImageInfo> {\n return this.downloadClicked$.asObservable();\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n}\n","import { Directive, ElementRef, InjectFlags, OnInit, Injector, OnDestroy, AfterViewInit, inject, input, effect } from '@angular/core';\nimport { IThyImageDirective, IThyImageGroupComponent, THY_IMAGE_GROUP_COMPONENT } from './image.token';\nimport { ThyImageMeta } from './image.class';\nimport { ThyImageService } from './image.service';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * thyImage: 预览图片指令,只可绑定到 img 标签上\n * @name img[thyImage]\n * @order 10\n */\n@Directive({\n selector: 'img[thyImage]',\n exportAs: 'thyImage',\n host: {\n '(click)': 'onPreview($event)',\n class: 'thy-image',\n '[class.thy-image-disabled]': 'thyDisablePreview()'\n }\n})\nexport class ThyImageDirective implements IThyImageDirective, OnInit, AfterViewInit, OnDestroy {\n private thyImageService = inject(ThyImageService);\n private injector = inject(Injector);\n private elementRef = inject(ElementRef);\n\n /**\n * 图片地址\n */\n readonly thySrc = input<string>();\n\n /**\n * 预览图片地址\n */\n readonly thyPreviewSrc = input<string>();\n\n /**\n * 图片原图地址\n */\n readonly thyOriginSrc = input<string>();\n\n /**\n * 图片附加信息,包含 { name: string, size?: string | number; }\n */\n readonly thyImageMeta = input<ThyImageMeta>();\n\n /**\n * 是否禁止预览\n * @default false\n */\n readonly thyDisablePreview = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 是否自动计算图片资源大小\n */\n readonly thyResolveSize = input(false, { transform: coerceBooleanProperty });\n\n get previewable(): boolean {\n return !this.thyDisablePreview();\n }\n\n private parentGroup: IThyImageGroupComponent;\n\n constructor() {\n effect(() => {\n this.elementRef.nativeElement.src = this.thySrc();\n });\n }\n\n ngOnInit(): void {\n this.getParentGroup();\n }\n\n ngAfterViewInit(): void {\n if (this.parentGroup) {\n this.addParentImage();\n }\n }\n\n getParentGroup() {\n while (true) {\n // 多层 thy-image-group 嵌套时,获取最外层 thy-image-group 下的所有图片\n const injector = this.parentGroup?.injector || this.injector;\n const parentGroup = injector.get(THY_IMAGE_GROUP_COMPONENT, null, InjectFlags.SkipSelf);\n if (!parentGroup) {\n break;\n }\n this.parentGroup = parentGroup;\n }\n }\n\n addParentImage() {\n setTimeout(() => {\n const parentElement: HTMLElement = this.parentGroup.element.nativeElement;\n const images = parentElement.querySelectorAll('img[thyImage]');\n const index = Array.prototype.indexOf.call(images, this.elementRef.nativeElement);\n if (index >= 0) {\n this.parentGroup.addImage(this, index);\n } else {\n this.parentGroup.addImage(this, this.parentGroup.images.length);\n }\n });\n }\n\n onPreview(event: MouseEvent) {\n if (!this.previewable || event.button !== 0) {\n return;\n }\n if (this.parentGroup) {\n const previewAbleImages = this.parentGroup.images.filter(e => e.previewable);\n const previewImages = previewAbleImages.map(e => ({\n src: e.thyPreviewSrc() || e.thySrc(),\n ...e.thyImageMeta(),\n origin: {\n src: e.thyOriginSrc()\n }\n }));\n const startIndex = previewAbleImages.findIndex(el => this === el);\n this.thyImageService.preview(previewImages, {\n startIndex,\n resolveSize: this.thyResolveSize()\n });\n } else {\n const previewImages = [\n {\n src: this.thyPreviewSrc() || this.thySrc(),\n ...this.thyImageMeta(),\n origin: {\n src: this.thyOriginSrc()\n }\n }\n ];\n this.thyImageService.preview(previewImages, { resolveSize: this.thyResolveSize() });\n }\n }\n\n ngOnDestroy(): void {\n if (this.parentGroup) {\n const index = this.parentGroup.images.findIndex(item => item === this);\n this.parentGroup.removeImage(index);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyImageDirective } from './image.directive';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ThyImageGroup } from './image-group.component';\nimport { ThyImagePreview } from './preview/image-preview.component';\nimport { ThyImageService } from './image.service';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { THY_IMAGE_DEFAULT_PREVIEW_OPTIONS_PROVIDER } from './image.config';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyDividerModule } from 'ngx-tethys/divider';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\nimport { ThyCopyModule } from 'ngx-tethys/copy';\nimport { ThyLoadingModule } from 'ngx-tethys/loading';\nimport { ThyDialogModule } from 'ngx-tethys/dialog';\nimport { ThyActionModule } from 'ngx-tethys/action';\n\n@NgModule({\n exports: [ThyImageDirective, ThyImageGroup, ThyImagePreview],\n imports: [\n CommonModule,\n PortalModule,\n DragDropModule,\n ThyIconModule,\n ThyDialogModule,\n ThyDividerModule,\n ThyTooltipModule,\n ThyCopyModule,\n ThyLoadingModule,\n ThyActionModule,\n ThyImageDirective,\n ThyImageGroup,\n ThyImagePreview\n ],\n providers: [ThyImageService, THY_IMAGE_DEFAULT_PREVIEW_OPTIONS_PROVIDER]\n})\nexport class ThyImageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAmBO,MAAM,yBAAyB,GAAG,IAAI,cAAc,CAA0B,2BAA2B,CAAC;;AChBjH;;;AAGG;MAaU,aAAa,CAAA;AAZ1B,IAAA,WAAA,GAAA;AAaI,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE3B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;QAE5B,IAAM,CAAA,MAAA,GAAyB,EAAE;AASpC;IAPG,QAAQ,CAAC,KAAyB,EAAE,KAAa,EAAA;QAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC;;AAGvC,IAAA,WAAW,CAAC,KAAa,EAAA;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;;8GAZvB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAPX,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,yBAAyB;AAClC,gBAAA,QAAQ,EAAE;AACb;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARS,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAU5B,aAAa,EAAA,UAAA,EAAA,CAAA;kBAZzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,QAAQ,EAAE,2BAA2B;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,QAAQ,EAAe;AAC1B;AACJ;AACJ,iBAAA;;;ACfK,MAAO,qBAAuC,SAAQ,wBAA+B,CAAA;AAM1F;MAEY,iCAAiC,GAAG,IAAI,cAAc,CAAwB,2BAA2B;AAEzG,MAAA,0CAA0C,GAAG;AACtD,IAAA,OAAO,EAAE,iCAAiC;AAC1C,IAAA,QAAQ,EAAE;AACN,QAAA,WAAW,EAAE,IAAI;AACjB,QAAA,iBAAiB,EAAE,IAAI;AACvB,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,yBAAyB,EAAE,KAAK;AAChC,QAAA,YAAY,EAAE;AACjB;;AAGQ,MAAA,2BAA2B,GAA8B;AAClE,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,gBAAgB,EAAE,IAAI;AACtB,IAAA,gBAAgB,EAAE;;;ACxBf,MAAM,cAAc,GAAG,CAAC,GAAW,KAAI;AAC1C,IAAA,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE;AAChC,IAAA,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;AACpB,IAAA,GAAG,CAAC,YAAY,GAAG,MAAM;IACzB,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,CAC1C,IAAI,CAAC,CAAC,CAAC,EACP,GAAG,CAAC,IAAI,IAAG;QACP,OAAO,GAAG,CAAC,QAAQ;KACtB,CAAC,CACL;IACD,GAAG,CAAC,IAAI,EAAE;AACV,IAAA,OAAO,UAAU;AACrB,CAAC;;ACkBD,MAAM,eAAe,GAAG;AACpB,IAAA,CAAC,EAAE,CAAC;AACJ,IAAA,CAAC,EAAE;CACN;AACD,MAAM,cAAc,GAAG,CAAC;AACxB,MAAM,cAAc,GAAG,GAAG;AAC1B,MAAM,gBAAgB,GAAG,GAAG,GAAG,CAAC,CAAC;AACjC,MAAM,cAAc,GAAG,EAAE,GAAG,GAAG,CAAC;AAEhC;;;;AAIG;MAaU,eAAe,CAAA;AAZ5B,IAAA,WAAA,GAAA;AAaI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAC7B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAA0B,UAAU,CAAC;AAClD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;AACjC,QAAA,IAAA,CAAA,MAAM,GAA2B,YAAY,CAAC,OAAO,CAAC;QAEpD,IAAe,CAAA,eAAA,GAAG,MAAM,EAAgB;AAEhC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAEhD,IAAM,CAAA,MAAA,GAAwB,EAAE;QAChC,IAAY,CAAA,YAAA,GAAW,CAAC;QAExB,IAAqB,CAAA,qBAAA,GAAG,EAAE;QAC1B,IAA4B,CAAA,4BAAA,GAAG,EAAE;QACjC,IAAY,CAAA,YAAA,GAAG,KAAK;QACpB,IAAI,CAAA,IAAA,GAAW,CAAC;AAChB,QAAA,IAAA,CAAA,QAAQ,GAAG,EAAE,GAAG,eAAe,EAAE;QACjC,IAAU,CAAA,UAAA,GAAG,KAAK;QAClB,IAAa,CAAA,aAAA,GAAG,KAAK;QACrB,IAAY,CAAA,YAAA,GAAG,KAAK;QACpB,IAAc,CAAA,cAAA,GAAG,IAAI;QACrB,IAAgB,CAAA,gBAAA,GAAwB,gBAAgB;AAExD,QAAA,IAAA,CAAA,wBAAwB,GAA+B;AACnD,YAAA;AACI,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO;AAC3B,gBAAA,MAAM,EAAE,CAAC,KAAmB,KAAI;oBAC5B,IAAI,CAAC,OAAO,EAAE;iBACjB;AACD,gBAAA,IAAI,EAAE;AACT,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM;AAC1B,gBAAA,MAAM,EAAE,CAAC,KAAmB,KAAI;oBAC5B,IAAI,CAAC,MAAM,EAAE;iBAChB;AACD,gBAAA,IAAI,EAAE;AACT,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY;AAChC,gBAAA,MAAM,EAAE,CAAC,KAAmB,KAAI;oBAC5B,IAAI,CAAC,eAAe,EAAE;iBACzB;AACD,gBAAA,IAAI,EAAE;AACT,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW;gBAC/B,MAAM,EAAE,MAAK;oBACT,IAAI,CAAC,YAAY,EAAE;iBACtB;AACD,gBAAA,IAAI,EAAE;AACT,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,eAAe;AACrB,gBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU;gBAC9B,MAAM,EAAE,MAAK;oBACT,IAAI,CAAC,UAAU,EAAE;iBACpB;AACD,gBAAA,IAAI,EAAE;AACT,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,cAAc;AACpB,gBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI;AACxB,gBAAA,MAAM,EAAE,CAAC,KAAmB,KAAI;oBAC5B,IAAI,CAAC,WAAW,EAAE;iBACrB;AACD,gBAAA,IAAI,EAAE;AACT,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ;AAC5B,gBAAA,MAAM,EAAE,CAAC,KAAmB,KAAI;AAC5B,oBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;iBACvB;AACD,gBAAA,IAAI,EAAE;AACT,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY;gBAChC,MAAM,EAAE,MAAK;oBACT,IAAI,CAAC,YAAY,EAAE;iBACtB;AACD,gBAAA,IAAI,EAAE;AACT,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ;AAC5B,gBAAA,IAAI,EAAE;AACT;SACJ;AA2SJ;AAvSG,IAAA,IAAI,YAAY,GAAA;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;AAC5C,QAAA,IAAI,KAAK,CAAC,IAAI,EAAE;YACZ,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI;;AAE9E,QAAA,OAAO,KAAK;;AAGhB,IAAA,IAAI,qBAAqB,GAAA;AACrB,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG;AACrE,QAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAC3B,YAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;AAE/D,QAAA,OAAO,QAAQ;;AAGnB,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,CAAC,EAAE;AAC1D,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI;AAC9B,kBAAE;AACF,kBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI;AAC3B,sBAAE;AACF,sBAAE,IAAI,CAAC,aAAa,CAAC,IAAI;;;IAOvC,QAAQ,GAAA;QACJ,IAAI,CAAC,WAAW,EAAE;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;YAC/B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO;AACrC,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;iBACxC,SAAS,CAAC,KAAK,IAAG;AACf,gBAAA,IACI,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa;AACjC,qBAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC;AACzG,oBAAA,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,EACnC;oBACE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;;AAE3E,aAAC,CAAC;YAEN,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,WAAW;AACxD,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;iBACxC,SAAS,CAAC,MAAK;gBACZ,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI;AAClD,aAAC,CAAC;AACV,SAAC,CAAC;;IAGN,eAAe,GAAA;QACX,IAAI,CAAC,KAAK,EAAE;AACZ,QAAA,IAAI,CAAC,gBAAgB,GAAG,YAAY;AACpC,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC;QACb,IAAI,CAAC,2BAA2B,EAAE;QAClC,IAAI,CAAC,qBAAqB,EAAE;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;;IAG5B,YAAY,GAAA;QACR,IAAI,CAAC,KAAK,EAAE;AACZ,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;QAC1B,IAAI,CAAC,kBAAkB,EAAE;;AAG7B,IAAA,oBAAoB,CAAC,oBAA6B,EAAA;AAC9C,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QACzB,IAAI,CAAC,2BAA2B,EAAE;QAClC,IAAI,oBAAoB,EAAE;YACtB,IAAI,CAAC,kCAAkC,EAAE;;AAE7C,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;;AAG5B,IAAA,sBAAsB,CAAC,oBAA8B,EAAA;AACjD,QAAA,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE;QACrB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG;AAC/B,QAAA,GAAG,CAAC,MAAM,GAAG,MAAK;AACd,YAAA,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE;AACpE,YAAA,MAAM,UAAU,GAAG,WAAW,GAAG,gBAAgB;AACjD,YAAA,MAAM,WAAW,GAAG,YAAY,GAAG,cAAc;AACjD,YAAA,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,GAAG;AAC3C,YAAA,MAAM,MAAM,GAAG,UAAU,GAAG,YAAY;AACxC,YAAA,MAAM,MAAM,GAAG,WAAW,GAAG,aAAa;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;AACrC,YAAA,IAAI,IAAI,GAAG,CAAC,EAAE;AACV,gBAAA,IAAI,CAAC,IAAI,GAAG,CAAC;;iBACV;AACH,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAEpB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;YACzB,IAAI,CAAC,2BAA2B,EAAE;YAClC,IAAI,oBAAoB,EAAE;gBACtB,IAAI,CAAC,kCAAkC,EAAE;;AAE7C,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AAC5B,SAAC;;IAGL,kBAAkB,GAAA;QACd,IAAI,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;YAC1C,IAAI,CAAC,MAAM,EAAE;;AAET,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;gBACzB;;;AAGJ,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACnD,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;AAEvE,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;;iBAC5B;gBACH,IAAI,CAAC,sBAAsB,EAAE;;AAErC,SAAC,CAAC;;IAGN,mBAAmB,GAAA;AACf,QAAA,OAAO,IAAI,UAAU,CAAU,UAAU,IAAG;YACxC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AAC3C,gBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AAC1F,gBAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrB,UAAU,CAAC,QAAQ,EAAE;gBACrB;;AAEJ,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;AAChE,gBAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrB,UAAU,CAAC,QAAQ,EAAE;;iBAClB;AACH,gBAAA,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,CAC3C,IAAI,IAAG;oBACH,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,SAAS;oBACjD,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC;AAClD,oBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,CAAC;AAC9E,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI;AAC7B,oBAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;oBACrB,UAAU,CAAC,QAAQ,EAAE;iBACxB,EACD,KAAK,IAAG;AACJ,oBAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;oBACtB,UAAU,CAAC,QAAQ,EAAE;AACzB,iBAAC,CACJ;;AAET,SAAC,CAAC;;IAGN,WAAW,GAAA;AACP,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,MAAM,EAAE;AACxF,YAAA,MAAM,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC;AACjF,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG,CAAC,SAAS,IAAG;AACpE,gBAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,SAAS,CAAC,EAAE;AAChE,oBAAA,OAAO,oBAAoB,CAAC,SAAS,CAAC;;qBACnC;AACH,oBAAA,OAAO,SAAqC;;AAEpD,aAAC,CAAC;;aACC;AACH,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,wBAAwB;;QAE1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;QAC7C,IAAI,CAAC,kBAAkB,EAAE;;AAG7B,IAAA,QAAQ,CAAC,KAAmB,EAAA;AACxB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;QAChC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,GAAG;QAC1C,cAAc,CAAC,GAAG;AACb,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,IAAI,IAAG;YACd,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,SAAS;YACjD,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC;YAClD,IAAI,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;YACnC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,IAAI,aAAa;AACxC,YAAA,CAAC,CAAC,IAAI,GAAG,SAAS;YAClB,CAAC,CAAC,KAAK,EAAE;AACb,SAAC,CAAC;;IAGV,MAAM,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,GAAG,cAAc,EAAE;AAC5B,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,cAAc,CAAC;YACrD,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,2BAA2B,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,eAAe,EAAE;;;IAI9C,OAAO,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,IAAI,GAAG,cAAc,EAAE;AAC5B,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,cAAc,CAAC;YACrD,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,2BAA2B,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,eAAe,EAAE;;;IAI9C,qBAAqB,GAAA;AACjB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI;AACjE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI;AACnE,QAAA,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE;QACpE,IAAI,KAAK,IAAI,WAAW,IAAI,MAAM,IAAI,YAAY,EAAE;AAChD,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;aACxB;AACH,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;;;IAIlC,YAAY,GAAA;AACR,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC;;IAGlF,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,MAAM,IAAI,EAAE;QACjB,IAAI,CAAC,2BAA2B,EAAE;;IAGtC,UAAU,GAAA;AACN,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,oBAAoB,CAAC;AACjF,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAC5C,YAAA,MAAM,EAAE;AACX,SAAA,CAAC;AACF,QAAA,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAK;AACvC,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AAC3B,SAAC,CAAC;;AAGN,IAAA,QAAQ,CAAC,KAAmB,EAAA;AACxB,QAAA,IAAI,KAAK,CAAC,SAAS,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC;;aAClD;AACH,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC;;;IAIzD,IAAI,GAAA;AACA,QAAA,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;YAC1B,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,kBAAkB,EAAE;;;IAIjC,IAAI,GAAA;AACA,QAAA,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5C,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;YAC1B,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,kBAAkB,EAAE;;;IAIjC,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI;AACjE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI;AACnE,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;AACpE,QAAA,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC;AACxC,QAAA,MAAM,gBAAgB,GAAG;YACrB,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK;YAChC,MAAM,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM;YACjC,IAAI;YACJ,GAAG;YACH,WAAW;YACX;SACH;AACD,QAAA,MAAM,aAAa,GAAG,qBAAqB,CAAC,gBAAgB,CAAC;AAC7D,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;AAC5E,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,aAAa,EAAE;;;IAItD,KAAK,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;AAC7C,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,eAAe,EAAE;AACtC,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;;IAGpB,2BAA2B,GAAA;AAC/B,QAAA,IAAI,CAAC,qBAAqB,GAAG,CAAW,QAAA,EAAA,IAAI,CAAC,IAAI,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,CAAe,YAAA,EAAA,IAAI,CAAC,MAAM,MAAM;;IAG3F,kCAAkC,GAAA;AACtC,QAAA,IAAI,CAAC,4BAA4B,GAAG,CAAe,YAAA,EAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ;;8GA3Y3F,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,QAAA,EAAA,IAAA,EAAA,eAAe,gfC3D5B,2pHA0FA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDjCc,mBAAmB,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,2BAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAE,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EAAE,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,oGAAE,OAAO,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAE,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,qJAAE,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEvG,eAAe,EAAA,UAAA,EAAA,CAAA;kBAZ3B,SAAS;+BACI,mBAAmB,EAAA,QAAA,EACnB,iBAAiB,EAAA,eAAA,EAEV,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC/B,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,wBAAwB;AAC/B,wBAAA,kCAAkC,EAAE;AACvC,qBAAA,EAAA,OAAA,EACQ,CAAC,mBAAmB,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,2pHAAA,EAAA;8BAkIzE,QAAQ,EAAA,CAAA;sBAA/C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBACc,mBAAmB,EAAA,CAAA;sBAAtE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;MErLzC,kBAAkB,CAAA;AAC3B,IAAA,IAAI,iBAAiB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB;;AAG3C,IAAA,WAAA,CACW,eAAgC,EAC/B,MAA8B,EAC9B,SAAwC,EAAA;QAFzC,IAAe,CAAA,eAAA,GAAf,eAAe;QACd,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAS,CAAA,SAAA,GAAT,SAAS;QAEjB;AACK,aAAA,aAAa;AACb,aAAA,IAAI;aACJ,SAAS,CAAC,KAAK,IAAG;YACf,IAAI,CAAC,MAAM,CAAC,yBAAyB,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE;gBACnE,IAAI,CAAC,IAAI,EAAE;;YAEf,IAAI,CAAC,MAAM,CAAC,yBAAyB,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW,EAAE;gBACpE,IAAI,CAAC,IAAI,EAAE;;AAEnB,SAAC,CAAC;;IAGV,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;;IAG/B,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;;IAG/B,eAAe,GAAA;QACX,OAAO,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC;;AAEtE;;AChCD;;AAEG;MAEU,eAAe,CAAA;AAYxB,IAAA,WAAA,GAAA;AAXA,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAOrB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAgB;AAE9C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AAGxC,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,iCAAiC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAE;AAEpF,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;AAGtC;;AAEG;IACH,OAAO,CAAC,MAAsB,EAAE,OAA0D,EAAA;QACtF,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,OAAO,EAAE;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE;AACnD,YAAA,YAAY,EAAE;gBACV,MAAM;gBACN,YAAY,EAAE,OAAO,EAAE,UAAU,IAAI,CAAC,IAAI,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,CAAC;AACtG,gBAAA,aAAa,EAAE;AAClB,aAAA;AACD,YAAA,aAAa,EAAE,4BAA4B;AAC3C,YAAA,UAAU,EAAE,6BAA6B;YACzC,IAAI,EAAE,cAAc,CAAC,IAAI;AACzB,YAAA,GAAG;AACN,SAAA,CAAC;QACF,MAAM,eAAe,GAAG,IAAI,kBAAkB,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,OAAO,EAAE,EAAE,SAAS,CAAC;QAC7H;AACK,aAAA,eAAe;AACf,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;aACnC,SAAS,CAAC,KAAK,IAAG;AACf,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC,SAAC,CAAC;AACN,QAAA,OAAO,eAAe;;IAG1B,eAAe,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;;IAG/C,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;;8GAlDzB,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAf,eAAe,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;;ACND;;;;AAIG;MAUU,iBAAiB,CAAA;AAoC1B,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE;;AAKpC,IAAA,WAAA,GAAA;AAzCQ,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvC;;AAEG;QACM,IAAM,CAAA,MAAA,GAAG,KAAK,EAAU;AAEjC;;AAEG;QACM,IAAa,CAAA,aAAA,GAAG,KAAK,EAAU;AAExC;;AAEG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,EAAU;AAEvC;;AAEG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,EAAgB;AAE7C;;;AAGG;QACM,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAA2B,SAAS,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAE7G;;AAEG;QACM,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;QASxE,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACrD,SAAC,CAAC;;IAGN,QAAQ,GAAA;QACJ,IAAI,CAAC,cAAc,EAAE;;IAGzB,eAAe,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,cAAc,EAAE;;;IAI7B,cAAc,GAAA;QACV,OAAO,IAAI,EAAE;;YAET,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ;AAC5D,YAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC;YACvF,IAAI,CAAC,WAAW,EAAE;gBACd;;AAEJ,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;;IAItC,cAAc,GAAA;QACV,UAAU,CAAC,MAAK;YACZ,MAAM,aAAa,GAAgB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa;YACzE,MAAM,MAAM,GAAG,aAAa,CAAC,gBAAgB,CAAC,eAAe,CAAC;AAC9D,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AACjF,YAAA,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;;iBACnC;AACH,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;;AAEvE,SAAC,CAAC;;AAGN,IAAA,SAAS,CAAC,KAAiB,EAAA;QACvB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACzC;;AAEJ,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;YAC5E,MAAM,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK;gBAC9C,GAAG,EAAE,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE;gBACpC,GAAG,CAAC,CAAC,YAAY,EAAE;AACnB,gBAAA,MAAM,EAAE;AACJ,oBAAA,GAAG,EAAE,CAAC,CAAC,YAAY;AACtB;AACJ,aAAA,CAAC,CAAC;AACH,YAAA,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,KAAK,EAAE,CAAC;AACjE,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,EAAE;gBACxC,UAAU;AACV,gBAAA,WAAW,EAAE,IAAI,CAAC,cAAc;AACnC,aAAA,CAAC;;aACC;AACH,YAAA,MAAM,aAAa,GAAG;AAClB,gBAAA;oBACI,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;oBAC1C,GAAG,IAAI,CAAC,YAAY,EAAE;AACtB,oBAAA,MAAM,EAAE;AACJ,wBAAA,GAAG,EAAE,IAAI,CAAC,YAAY;AACzB;AACJ;aACJ;AACD,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;;;IAI3F,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;AACtE,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC;;;8GAtHlC,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,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,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,EAAA,cAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,mBAAmB;AAC9B,wBAAA,KAAK,EAAE,WAAW;AAClB,wBAAA,4BAA4B,EAAE;AACjC;AACJ,iBAAA;;;MCiBY,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAhBnB,YAAY;YACZ,YAAY;YACZ,cAAc;YACd,aAAa;YACb,eAAe;YACf,gBAAgB;YAChB,gBAAgB;YAChB,aAAa;YACb,gBAAgB;YAChB,eAAe;YACf,iBAAiB;YACjB,aAAa;AACb,YAAA,eAAe,CAdT,EAAA,OAAA,EAAA,CAAA,iBAAiB,EAAE,aAAa,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;AAkBlD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,aAFZ,CAAC,eAAe,EAAE,0CAA0C,CAAC,YAdpE,YAAY;YACZ,YAAY;YACZ,cAAc;YACd,aAAa;YACb,eAAe;YACf,gBAAgB;YAChB,gBAAgB;YAChB,aAAa;YACb,gBAAgB;YAChB,eAAe;YAGf,eAAe,CAAA,EAAA,CAAA,CAAA;;2FAIV,cAAc,EAAA,UAAA,EAAA,CAAA;kBAnB1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,aAAa,EAAE,eAAe,CAAC;AAC5D,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,YAAY;wBACZ,cAAc;wBACd,aAAa;wBACb,eAAe;wBACf,gBAAgB;wBAChB,gBAAgB;wBAChB,aAAa;wBACb,gBAAgB;wBAChB,eAAe;wBACf,iBAAiB;wBACjB,aAAa;wBACb;AACH,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,eAAe,EAAE,0CAA0C;AAC1E,iBAAA;;;ACnCD;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys-image.mjs","sources":["../../../src/image/image.token.ts","../../../src/image/image-group.component.ts","../../../src/image/image.config.ts","../../../src/image/utils.ts","../../../src/image/preview/image-preview.component.ts","../../../src/image/preview/image-preview.component.html","../../../src/image/preview/image-preview-ref.ts","../../../src/image/image.service.ts","../../../src/image/image.directive.ts","../../../src/image/module.ts","../../../src/image/ngx-tethys-image.ts"],"sourcesContent":["import { ElementRef, InjectionToken, Injector, InputSignal } from '@angular/core';\nimport { ThyImageMeta } from './image.class';\n\nexport interface IThyImageDirective {\n previewable: boolean;\n thySrc: InputSignal<string>;\n thyPreviewSrc: InputSignal<string>;\n thyOriginSrc: InputSignal<string>;\n thyImageMeta: InputSignal<ThyImageMeta>;\n}\n\nexport interface IThyImageGroupComponent {\n injector: Injector;\n element: ElementRef;\n images: IThyImageDirective[];\n addImage: (image: IThyImageDirective, index: number) => void;\n removeImage: (index: number) => void;\n}\n\nexport const THY_IMAGE_GROUP_COMPONENT = new InjectionToken<IThyImageGroupComponent>('THY_IMAGE_GROUP_COMPONENT');\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, Injector, ElementRef, inject } from '@angular/core';\nimport { IThyImageDirective, IThyImageGroupComponent, THY_IMAGE_GROUP_COMPONENT } from './image.token';\n\n/**\n * 图片分组,提供 thyImageGroup 指令和 thy-image-group 标签两种使用方式\n * @name thy-image-group,[thyImageGroup]\n */\n@Component({\n selector: 'thy-image-group, [thyImageGroup]',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: THY_IMAGE_GROUP_COMPONENT,\n useClass: ThyImageGroup\n }\n ]\n})\nexport class ThyImageGroup implements IThyImageGroupComponent {\n injector = inject(Injector);\n\n element = inject(ElementRef);\n\n images: IThyImageDirective[] = [];\n\n addImage(image: IThyImageDirective, index: number): void {\n this.images.splice(index, 0, image);\n }\n\n removeImage(index: number) {\n this.images.splice(index, 1);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ThyAbstractOverlayConfig, ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nexport class ThyImagePreviewConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n closeOnNavigation?: boolean;\n disableClose?: boolean;\n disableKeyboardSelectable?: boolean;\n zoom?: number;\n rotate?: number;\n}\n\nexport const THY_IMAGE_DEFAULT_PREVIEW_OPTIONS = new InjectionToken<ThyImagePreviewConfig>('thy-image-default-options');\n\nexport const THY_IMAGE_DEFAULT_PREVIEW_OPTIONS_PROVIDER = {\n provide: THY_IMAGE_DEFAULT_PREVIEW_OPTIONS,\n useValue: {\n hasBackdrop: true,\n closeOnNavigation: true,\n disableClose: false,\n disableKeyboardSelectable: false,\n restoreFocus: false\n }\n};\n\nexport const imageAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'image',\n animationEnabled: true,\n disposeWhenClose: true\n};\n","import { fromEvent } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\nexport const fetchImageBlob = (url: string) => {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n const loadedXhr$ = fromEvent(xhr, 'load').pipe(\n take(1),\n map(data => {\n return xhr.response;\n })\n );\n xhr.send();\n return loadedXhr$;\n};\n","import { CdkDrag } from '@angular/cdk/drag-drop';\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n NgZone,\n OnInit,\n output,\n Signal,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ThyAction, ThyActions } from 'ngx-tethys/action';\nimport { ThyCopyDirective, ThyCopyEvent } from 'ngx-tethys/copy';\nimport { ThyDialog } from 'ngx-tethys/dialog';\nimport { ThyDivider } from 'ngx-tethys/divider';\nimport { ThyFullscreen } from 'ngx-tethys/fullscreen';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyLoading } from 'ngx-tethys/loading';\nimport { ThyNotifyService } from 'ngx-tethys/notify';\nimport { ThyTooltipDirective } from 'ngx-tethys/tooltip';\nimport { getClientSize, getFitContentPosition, getOffset, helpers, humanizeBytes, isNumber, isUndefinedOrNull } from 'ngx-tethys/util';\nimport { Observable, fromEvent } from 'rxjs';\nimport { InternalImageInfo, ThyImageInfo, ThyImagePreviewMode, ThyImagePreviewOperation, ThyImagePreviewOptions } from '../image.class';\nimport { fetchImageBlob } from '../utils';\nimport { injectLocale, ThyImageLocale } from 'ngx-tethys/i18n';\n\nconst initialPosition = {\n x: 0,\n y: 0\n};\nconst IMAGE_MAX_ZOOM = 3;\nconst IMAGE_MIN_ZOOM = 0.1;\nconst HORIZONTAL_SPACE = 100 * 2; // left: 100px; right: 100px\nconst VERTICAL_SPACE = 96 + 106; // top: 96px; bottom: 106px\n\n/**\n * 图片预览组件\n * @name thy-image-preview\n * @order 20\n */\n@Component({\n selector: 'thy-image-preview',\n exportAs: 'thyImagePreview',\n templateUrl: './image-preview.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'thy-image-preview-wrap',\n '[class.thy-image-preview-moving]': 'isDragging'\n },\n imports: [ThyTooltipDirective, ThyAction, CdkDrag, ThyLoading, ThyIcon, ThyActions, ThyDivider, ThyCopyDirective]\n})\nexport class ThyImagePreview implements OnInit {\n thyDialog = inject(ThyDialog);\n thyFullscreen = inject(ThyFullscreen);\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n private notifyService = inject(ThyNotifyService);\n private host = inject<ElementRef<HTMLElement>>(ElementRef);\n private sanitizer = inject(DomSanitizer);\n public locale: Signal<ThyImageLocale> = injectLocale('image');\n\n readonly downloadClicked = output<ThyImageInfo>();\n\n private readonly destroyRef = inject(DestroyRef);\n\n images: InternalImageInfo[] = [];\n previewIndex: number = 0;\n previewConfig: ThyImagePreviewOptions;\n previewImageTransform = '';\n previewImageWrapperTransform = '';\n zoomDisabled = false;\n zoom: number = 1;\n position = { ...initialPosition };\n isDragging = false;\n isLoadingDone = false;\n isFullScreen = false;\n isInsideScreen = true;\n currentImageMode: ThyImagePreviewMode = 'original-scale';\n previewOperations: ThyImagePreviewOperation[];\n defaultPreviewOperations: ThyImagePreviewOperation[] = [\n {\n icon: 'zoom-out',\n name: this.locale().zoomOut,\n action: (image: ThyImageInfo) => {\n this.zoomOut();\n },\n type: 'zoom-out'\n },\n {\n icon: 'zoom-in',\n name: this.locale().zoomIn,\n action: (image: ThyImageInfo) => {\n this.zoomIn();\n },\n type: 'zoom-in'\n },\n {\n icon: 'one-to-one',\n name: this.locale().originalSize,\n action: (image: ThyImageInfo) => {\n this.setOriginalSize();\n },\n type: 'original-scale'\n },\n {\n icon: 'max-view',\n name: this.locale().fitToScreen,\n action: () => {\n this.setFitScreen();\n },\n type: 'fit-screen'\n },\n {\n icon: 'expand-arrows',\n name: this.locale().fullScreen,\n action: () => {\n this.fullScreen();\n },\n type: 'full-screen'\n },\n {\n icon: 'rotate-right',\n name: this.locale().spin,\n action: (image: ThyImageInfo) => {\n this.rotateRight();\n },\n type: 'rotate-right'\n },\n {\n icon: 'download',\n name: this.locale().download,\n action: (image: ThyImageInfo) => {\n this.download(image);\n },\n type: 'download'\n },\n {\n icon: 'preview',\n name: this.locale().viewOriginal,\n action: () => {\n this.viewOriginal();\n },\n type: 'view-original'\n },\n {\n icon: 'link-insert',\n name: this.locale().copyLink,\n type: 'copyLink'\n }\n ];\n\n private rotate: number;\n\n get previewImage(): InternalImageInfo {\n const image = this.images[this.previewIndex];\n if (image.size) {\n image.size = isNumber(image.size) ? humanizeBytes(image.size) : image.size;\n }\n return image;\n }\n\n get previewImageOriginSrc() {\n let imageSrc = this.previewImage.origin?.src || this.previewImage.src;\n if (imageSrc.startsWith('./')) {\n return window.location.host + '/' + imageSrc.split('./')[1];\n }\n return imageSrc;\n }\n\n get defaultZoom(): number {\n if (this.previewConfig?.zoom && this.previewConfig?.zoom > 0) {\n return this.previewConfig.zoom >= IMAGE_MAX_ZOOM\n ? IMAGE_MAX_ZOOM\n : this.previewConfig.zoom <= IMAGE_MIN_ZOOM\n ? IMAGE_MIN_ZOOM\n : this.previewConfig.zoom;\n }\n }\n\n @ViewChild('imgRef', { static: false }) imageRef!: ElementRef<HTMLImageElement>;\n @ViewChild('imagePreviewWrapper', { static: true }) imagePreviewWrapper!: ElementRef<HTMLElement>;\n\n ngOnInit(): void {\n this.initPreview();\n this.ngZone.runOutsideAngular(() => {\n fromEvent(this.host.nativeElement, 'click')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(event => {\n if (\n (event.target === event.currentTarget ||\n (this.isInsideScreen && this.imagePreviewWrapper.nativeElement.contains(event.target as HTMLElement))) &&\n !this.previewConfig?.disableClose\n ) {\n this.ngZone.run(() => !this.isFullScreen && this.thyDialog.close());\n }\n });\n\n fromEvent(this.imagePreviewWrapper.nativeElement, 'mousedown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.isDragging = !this.isInsideScreen && true;\n });\n });\n }\n\n setOriginalSize() {\n this.reset();\n this.currentImageMode = 'fit-screen';\n this.zoom = 1;\n this.updatePreviewImageTransform();\n this.calculateInsideScreen();\n this.isLoadingDone = true;\n this.cdr.detectChanges();\n }\n\n setFitScreen() {\n this.reset();\n this.isInsideScreen = true;\n this.updatePreviewImage();\n }\n\n useDefaultZoomUpdate(isUpdateImageWrapper: boolean) {\n this.zoom = this.defaultZoom;\n this.isLoadingDone = true;\n this.updatePreviewImageTransform();\n if (isUpdateImageWrapper) {\n this.updatePreviewImageWrapperTransform();\n }\n this.cdr.detectChanges();\n }\n\n useCalculateZoomUpdate(isUpdateImageWrapper?: boolean) {\n let img = new Image();\n img.src = this.previewImage.src;\n img.onload = () => {\n const { width: offsetWidth, height: offsetHeight } = getClientSize();\n const innerWidth = offsetWidth - HORIZONTAL_SPACE;\n const innerHeight = offsetHeight - VERTICAL_SPACE;\n const { naturalWidth, naturalHeight } = img;\n const xRatio = innerWidth / naturalWidth;\n const yRatio = innerHeight / naturalHeight;\n const zoom = Math.min(xRatio, yRatio);\n if (zoom > 1) {\n this.zoom = 1;\n } else {\n this.zoom = zoom;\n }\n this.isLoadingDone = true;\n this.updatePreviewImageTransform();\n if (isUpdateImageWrapper) {\n this.updatePreviewImageWrapperTransform();\n }\n this.cdr.detectChanges();\n };\n }\n\n updatePreviewImage() {\n this.resolvePreviewImage().subscribe(result => {\n if (!result) {\n // error\n this.isLoadingDone = true;\n return;\n }\n // image size\n if (!this.previewImage.size && this.previewImage.blob) {\n this.previewImage.size = humanizeBytes(this.previewImage.blob.size);\n }\n if (this.defaultZoom) {\n this.useDefaultZoomUpdate(true);\n } else {\n this.useCalculateZoomUpdate();\n }\n });\n }\n\n resolvePreviewImage() {\n return new Observable<Boolean>(subscriber => {\n if (this.previewImage.src.startsWith('blob:')) {\n this.previewImage.objectURL = this.sanitizer.bypassSecurityTrustUrl(this.previewImage.src);\n subscriber.next(true);\n subscriber.complete();\n return;\n }\n if (this.previewImage.objectURL || !this.previewConfig.resolveSize) {\n subscriber.next(true);\n subscriber.complete();\n } else {\n fetchImageBlob(this.previewImage.src).subscribe(\n blob => {\n const urlCreator = window.URL || window.webkitURL;\n const objectURL = urlCreator.createObjectURL(blob);\n this.previewImage.objectURL = this.sanitizer.bypassSecurityTrustUrl(objectURL);\n this.previewImage.blob = blob;\n subscriber.next(true);\n subscriber.complete();\n },\n error => {\n subscriber.next(false);\n subscriber.complete();\n }\n );\n }\n });\n }\n\n initPreview() {\n if (Array.isArray(this.previewConfig?.operations) && this.previewConfig?.operations.length) {\n const defaultOperationsMap = helpers.keyBy(this.defaultPreviewOperations, 'type');\n this.previewOperations = this.previewConfig?.operations.map(operation => {\n if (helpers.isString(operation) && defaultOperationsMap[operation]) {\n return defaultOperationsMap[operation];\n } else {\n return operation as ThyImagePreviewOperation;\n }\n });\n } else {\n this.previewOperations = this.defaultPreviewOperations;\n }\n this.rotate = this.previewConfig?.rotate ?? 0;\n this.updatePreviewImage();\n }\n\n download(image: ThyImageInfo) {\n this.downloadClicked.emit(image);\n const src = image.origin?.src || image.src;\n fetchImageBlob(src)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(blob => {\n const urlCreator = window.URL || window.webkitURL;\n const objectURL = urlCreator.createObjectURL(blob);\n let a = document.createElement('a');\n a.download = image.name || 'default.png';\n a.href = objectURL;\n a.click();\n });\n }\n\n zoomIn(): void {\n if (this.zoom < IMAGE_MAX_ZOOM) {\n this.zoom = Math.min(this.zoom + 0.1, IMAGE_MAX_ZOOM);\n this.calculateInsideScreen();\n this.updatePreviewImageTransform();\n this.position = { ...initialPosition };\n }\n }\n\n zoomOut(): void {\n if (this.zoom > IMAGE_MIN_ZOOM) {\n this.zoom = Math.max(this.zoom - 0.1, IMAGE_MIN_ZOOM);\n this.calculateInsideScreen();\n this.updatePreviewImageTransform();\n this.position = { ...initialPosition };\n }\n }\n\n calculateInsideScreen() {\n const width = this.imageRef.nativeElement.offsetWidth * this.zoom;\n const height = this.imageRef.nativeElement.offsetHeight * this.zoom;\n const { width: clientWidth, height: clientHeight } = getClientSize();\n if (width >= clientWidth || height >= clientHeight) {\n this.isInsideScreen = false;\n } else {\n this.isInsideScreen = true;\n }\n }\n\n viewOriginal() {\n window.open(this.previewImage?.origin?.src || this.previewImage.src, '_blank');\n }\n\n rotateRight(): void {\n this.rotate += 90;\n this.updatePreviewImageTransform();\n }\n\n fullScreen(): void {\n const targetElement = this.host.nativeElement.querySelector('.thy-image-preview');\n this.isFullScreen = true;\n const fullscreenRef = this.thyFullscreen.launch({\n target: targetElement\n });\n fullscreenRef.afterExited().subscribe(() => {\n this.isFullScreen = false;\n this.cdr.markForCheck();\n });\n }\n\n copyLink(event: ThyCopyEvent) {\n if (event.isSuccess) {\n this.notifyService.success(this.locale().copySuccess);\n } else {\n this.notifyService.error(this.locale().copyError);\n }\n }\n\n prev() {\n if (this.previewIndex > 0) {\n this.previewIndex--;\n this.isLoadingDone = false;\n this.reset();\n this.updatePreviewImage();\n }\n }\n\n next() {\n if (this.previewIndex < this.images.length - 1) {\n this.previewIndex++;\n this.isLoadingDone = false;\n this.reset();\n this.updatePreviewImage();\n }\n }\n\n dragReleased() {\n this.isDragging = false;\n const width = this.imageRef.nativeElement.offsetWidth * this.zoom;\n const height = this.imageRef.nativeElement.offsetHeight * this.zoom;\n const { left, top } = getOffset(this.imageRef.nativeElement, window);\n const { width: clientWidth, height: clientHeight } = getClientSize();\n const isRotate = this.rotate % 180 !== 0;\n const fitContentParams = {\n width: isRotate ? height : width,\n height: isRotate ? width : height,\n left,\n top,\n clientWidth,\n clientHeight\n };\n const fitContentPos = getFitContentPosition(fitContentParams);\n if (!isUndefinedOrNull(fitContentPos.x) || !isUndefinedOrNull(fitContentPos.y)) {\n this.position = { ...this.position, ...fitContentPos };\n }\n }\n\n private reset(): void {\n this.currentImageMode = 'original-scale';\n this.rotate = this.previewConfig?.rotate ?? 0;\n this.position = { ...initialPosition };\n this.cdr.detectChanges();\n }\n\n private updatePreviewImageTransform(): void {\n this.previewImageTransform = `scale3d(${this.zoom}, ${this.zoom}, 1) rotate(${this.rotate}deg)`;\n }\n\n private updatePreviewImageWrapperTransform(): void {\n this.previewImageWrapperTransform = `translate3d(${this.position.x}px, ${this.position.y}px, 0)`;\n }\n}\n","<div class=\"thy-image-preview\" [class.thy-image-preview-fullscreen]=\"isFullScreen\">\n @if (!isFullScreen) {\n <div class=\"thy-image-preview-header pl-10 pr-8\">\n <div class=\"thy-image-preview-header-info\">\n <p class=\"thy-image-name text-truncate\" [thyTooltipDisabled]=\"previewImage?.name?.length < 32\" [thyTooltip]=\"previewImage?.name\">\n {{ previewImage?.name }}\n </p>\n <span class=\"thy-image-size\"> {{ previewImage?.size }}</span>\n </div>\n <a thyAction thyIcon=\"close\" [thyTooltip]=\"locale().exitPreview\" href=\"javascript:;\" (click)=\"thyDialog.close()\"></a>\n </div>\n }\n @if (isFullScreen) {\n <a\n class=\"thy-image-preview-exit-fullscreen\"\n thyAction\n thyIcon=\"close\"\n href=\"javascript:;\"\n (click)=\"thyFullscreen.exit()\"\n [thyTooltip]=\"locale().exitFullScreen\"></a>\n }\n <div\n class=\"thy-image-preview-img-wrapper\"\n #imagePreviewWrapper\n cdkDrag\n [class.thy-image-preview-inside]=\"isInsideScreen\"\n [style.transform]=\"previewImageWrapperTransform\"\n [cdkDragFreeDragPosition]=\"position\"\n (cdkDragReleased)=\"dragReleased()\">\n @for (image of images; track $index; let imageIndex = $index) {\n @if (previewIndex === imageIndex && isLoadingDone) {\n <img #imgRef class=\"thy-image-preview-img\" [src]=\"image.objectURL || image.src\" [style.transform]=\"previewImageTransform\" />\n }\n }\n <thy-loading [thyDone]=\"isLoadingDone\"></thy-loading>\n </div>\n\n @if (images.length > 1 && !isFullScreen) {\n <div\n class=\"thy-image-preview-switch-left\"\n [thyTooltipDisabled]=\"previewIndex <= 0\"\n [thyTooltip]=\"locale().prev\"\n [class.thy-image-preview-switch-left-disabled]=\"previewIndex <= 0\"\n (click)=\"prev()\">\n <thy-icon thyIconName=\"angle-left-bold\"></thy-icon>\n </div>\n <div\n class=\"thy-image-preview-switch-right\"\n [thyTooltip]=\"locale().next\"\n [thyTooltipDisabled]=\"previewIndex >= images.length - 1\"\n [class.thy-image-preview-switch-right-disabled]=\"previewIndex >= images.length - 1\"\n (click)=\"next()\">\n <thy-icon thyIconName=\"angle-right-bold\"> </thy-icon>\n </div>\n }\n @if (!isFullScreen) {\n <thy-actions thySize=\"xs\" class=\"thy-image-preview-operations py-3 px-4\">\n @for (option of previewOperations; track $index; let i = $index) {\n @if (!['original-scale', 'fit-screen', 'copyLink'].includes(option.type) || currentImageMode === option.type) {\n <a\n href=\"javascript:;\"\n thyAction\n [thyActionIcon]=\"option.icon\"\n [thyTooltip]=\"option.name\"\n [thyTooltipOffset]=\"13\"\n (click)=\"option.action(previewImage)\"></a>\n }\n @if (option?.type === 'zoom-out') {\n <span class=\"mr-2\"> {{ (zoom * 100).toFixed(0) + '%' }} </span>\n }\n @if (option?.type === 'rotate-right') {\n <thy-divider class=\"ml-2\" [thyVertical]=\"true\"></thy-divider>\n }\n @if (option.type === 'copyLink') {\n <a\n href=\"javascript:;\"\n thyAction\n [thyCopyTips]=\"option.name\"\n [thyActionIcon]=\"option.icon\"\n [thyCopyTipsOffset]=\"13\"\n (thyCopy)=\"copyLink($event)\"\n [thyCopyContent]=\"previewImageOriginSrc\"\n [thyShowNotify]=\"false\"></a>\n }\n }\n <thy-divider [thyVertical]=\"true\"></thy-divider>\n <span class=\"thy-image-preview-operations-text\"> {{ previewIndex + 1 }} / {{ images.length }} </span>\n </thy-actions>\n }\n</div>\n","import { ThyImagePreview } from './image-preview.component';\nimport { ThyDialogRef } from 'ngx-tethys/dialog';\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { ThyImageInfo, ThyImagePreviewOptions } from '../image.class';\nimport { Observable } from 'rxjs';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\n\nexport class ThyImagePreviewRef {\n get componentInstance() {\n return this.dialogRef.componentInstance;\n }\n\n constructor(\n public previewInstance: ThyImagePreview,\n private config: ThyImagePreviewOptions,\n private dialogRef: ThyDialogRef<ThyImagePreview>\n ) {\n dialogRef\n .keydownEvents()\n .pipe()\n .subscribe(event => {\n if (!config.disableKeyboardSelectable && event.keyCode === LEFT_ARROW) {\n this.prev();\n }\n if (!config.disableKeyboardSelectable && event.keyCode === RIGHT_ARROW) {\n this.next();\n }\n });\n }\n\n next(): void {\n this.previewInstance.next();\n }\n\n prev(): void {\n this.previewInstance.prev();\n }\n\n downloadClicked(): Observable<ThyImageInfo> {\n return outputToObservable(this.previewInstance.downloadClicked);\n }\n}\n","import { Injectable, OnDestroy, inject } from '@angular/core';\nimport { ThyImagePreviewConfig, THY_IMAGE_DEFAULT_PREVIEW_OPTIONS } from './image.config';\nimport { ThyImageInfo, ThyImagePreviewOptions } from './image.class';\nimport { ThyImagePreview } from './preview/image-preview.component';\nimport { ThyDialog, ThyDialogSizes } from 'ngx-tethys/dialog';\nimport { ThyImagePreviewRef } from './preview/image-preview-ref';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * 图片预览服务\n */\n@Injectable()\nexport class ThyImageService implements OnDestroy {\n thyDialog = inject(ThyDialog);\n\n /**\n * 图片预览默认配置,外部可通过注入 THY_IMAGE_DEFAULT_PREVIEW_OPTIONS 进行配置\n */\n defaultConfig: ThyImagePreviewConfig;\n\n private downloadClicked$ = new Subject<ThyImageInfo>();\n\n private ngUnsubscribe$ = new Subject<void>();\n\n constructor() {\n const defaultConfig = inject(THY_IMAGE_DEFAULT_PREVIEW_OPTIONS, { optional: true })!;\n\n this.defaultConfig = defaultConfig;\n }\n\n /**\n * 图片预览方法\n */\n preview(images: ThyImageInfo[], options?: ThyImagePreviewOptions & { startIndex?: number }): ThyImagePreviewRef {\n const config = { ...this.defaultConfig, ...options };\n const dialogRef = this.thyDialog.open(ThyImagePreview, {\n initialState: {\n images,\n previewIndex: options?.startIndex >= 0 && options?.startIndex < images.length ? options.startIndex : 0,\n previewConfig: config\n },\n backdropClass: 'thy-image-preview-backdrop',\n panelClass: 'thy-image-preview-container',\n size: ThyDialogSizes.full,\n ...config\n });\n const imagePreviewRef = new ThyImagePreviewRef(dialogRef.componentInstance, { ...this.defaultConfig, ...options }, dialogRef);\n imagePreviewRef\n .downloadClicked()\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(image => {\n this.downloadClicked$.next(image);\n });\n return imagePreviewRef;\n }\n\n downloadClicked(): Observable<ThyImageInfo> {\n return this.downloadClicked$.asObservable();\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n}\n","import { Directive, ElementRef, OnInit, Injector, OnDestroy, AfterViewInit, inject, input, effect } from '@angular/core';\nimport { IThyImageDirective, IThyImageGroupComponent, THY_IMAGE_GROUP_COMPONENT } from './image.token';\nimport { ThyImageMeta } from './image.class';\nimport { ThyImageService } from './image.service';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * thyImage: 预览图片指令,只可绑定到 img 标签上\n * @name img[thyImage]\n * @order 10\n */\n@Directive({\n selector: 'img[thyImage]',\n exportAs: 'thyImage',\n host: {\n '(click)': 'onPreview($event)',\n class: 'thy-image',\n '[class.thy-image-disabled]': 'thyDisablePreview()'\n }\n})\nexport class ThyImageDirective implements IThyImageDirective, OnInit, AfterViewInit, OnDestroy {\n private thyImageService = inject(ThyImageService);\n private injector = inject(Injector);\n private elementRef = inject(ElementRef);\n\n /**\n * 图片地址\n */\n readonly thySrc = input<string>();\n\n /**\n * 预览图片地址\n */\n readonly thyPreviewSrc = input<string>();\n\n /**\n * 图片原图地址\n */\n readonly thyOriginSrc = input<string>();\n\n /**\n * 图片附加信息,包含 { name: string, size?: string | number; }\n */\n readonly thyImageMeta = input<ThyImageMeta>();\n\n /**\n * 是否禁止预览\n * @default false\n */\n readonly thyDisablePreview = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 是否自动计算图片资源大小\n */\n readonly thyResolveSize = input(false, { transform: coerceBooleanProperty });\n\n get previewable(): boolean {\n return !this.thyDisablePreview();\n }\n\n private parentGroup: IThyImageGroupComponent;\n\n constructor() {\n effect(() => {\n this.elementRef.nativeElement.src = this.thySrc();\n });\n }\n\n ngOnInit(): void {\n this.getParentGroup();\n }\n\n ngAfterViewInit(): void {\n if (this.parentGroup) {\n this.addParentImage();\n }\n }\n\n getParentGroup() {\n while (true) {\n // 多层 thy-image-group 嵌套时,获取最外层 thy-image-group 下的所有图片\n const injector = this.parentGroup?.injector || this.injector;\n const parentGroup = injector.get(THY_IMAGE_GROUP_COMPONENT, null, { skipSelf: true });\n if (!parentGroup) {\n break;\n }\n this.parentGroup = parentGroup;\n }\n }\n\n addParentImage() {\n setTimeout(() => {\n const parentElement: HTMLElement = this.parentGroup.element.nativeElement;\n const images = parentElement.querySelectorAll('img[thyImage]');\n const index = Array.prototype.indexOf.call(images, this.elementRef.nativeElement);\n if (index >= 0) {\n this.parentGroup.addImage(this, index);\n } else {\n this.parentGroup.addImage(this, this.parentGroup.images.length);\n }\n });\n }\n\n onPreview(event: MouseEvent) {\n if (!this.previewable || event.button !== 0) {\n return;\n }\n if (this.parentGroup) {\n const previewAbleImages = this.parentGroup.images.filter(e => e.previewable);\n const previewImages = previewAbleImages.map(e => ({\n src: e.thyPreviewSrc() || e.thySrc(),\n ...e.thyImageMeta(),\n origin: {\n src: e.thyOriginSrc()\n }\n }));\n const startIndex = previewAbleImages.findIndex(el => this === el);\n this.thyImageService.preview(previewImages, {\n startIndex,\n resolveSize: this.thyResolveSize()\n });\n } else {\n const previewImages = [\n {\n src: this.thyPreviewSrc() || this.thySrc(),\n ...this.thyImageMeta(),\n origin: {\n src: this.thyOriginSrc()\n }\n }\n ];\n this.thyImageService.preview(previewImages, { resolveSize: this.thyResolveSize() });\n }\n }\n\n ngOnDestroy(): void {\n if (this.parentGroup) {\n const index = this.parentGroup.images.findIndex(item => item === this);\n this.parentGroup.removeImage(index);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyImageDirective } from './image.directive';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ThyImageGroup } from './image-group.component';\nimport { ThyImagePreview } from './preview/image-preview.component';\nimport { ThyImageService } from './image.service';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { THY_IMAGE_DEFAULT_PREVIEW_OPTIONS_PROVIDER } from './image.config';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyDividerModule } from 'ngx-tethys/divider';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\nimport { ThyCopyModule } from 'ngx-tethys/copy';\nimport { ThyLoadingModule } from 'ngx-tethys/loading';\nimport { ThyDialogModule } from 'ngx-tethys/dialog';\nimport { ThyActionModule } from 'ngx-tethys/action';\n\n@NgModule({\n exports: [ThyImageDirective, ThyImageGroup, ThyImagePreview],\n imports: [\n CommonModule,\n PortalModule,\n DragDropModule,\n ThyIconModule,\n ThyDialogModule,\n ThyDividerModule,\n ThyTooltipModule,\n ThyCopyModule,\n ThyLoadingModule,\n ThyActionModule,\n ThyImageDirective,\n ThyImageGroup,\n ThyImagePreview\n ],\n providers: [ThyImageService, THY_IMAGE_DEFAULT_PREVIEW_OPTIONS_PROVIDER]\n})\nexport class ThyImageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}