@ng-nest/ui 18.0.11 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (883) hide show
  1. package/README.md +1 -1
  2. package/affix/affix.property.d.ts +1 -1
  3. package/alert/alert.property.d.ts +1 -1
  4. package/anchor/anchor.property.d.ts +2 -2
  5. package/auto-complete/auto-complete.property.d.ts +16 -19
  6. package/avatar/avatar.property.d.ts +2 -2
  7. package/back-top/back-top.property.d.ts +1 -1
  8. package/badge/badge.property.d.ts +1 -1
  9. package/base-form/base-form.property.d.ts +2 -2
  10. package/button/button.property.d.ts +2 -2
  11. package/calendar/calendar.property.d.ts +1 -1
  12. package/card/card.property.d.ts +1 -1
  13. package/carousel/carousel.property.d.ts +2 -2
  14. package/cascade/cascade.property.d.ts +16 -27
  15. package/checkbox/checkbox.property.d.ts +16 -22
  16. package/collapse/collapse.property.d.ts +2 -2
  17. package/color/color.property.d.ts +1 -1
  18. package/color-picker/color-picker-portal.component.d.ts +10 -10
  19. package/color-picker/color-picker.property.d.ts +15 -15
  20. package/comment/comment.property.d.ts +2 -2
  21. package/container/container.property.d.ts +4 -4
  22. package/crumb/crumb.property.d.ts +1 -1
  23. package/date-picker/date-picker-portal.component.d.ts +1 -1
  24. package/date-picker/date-picker.property.d.ts +34 -34
  25. package/date-picker/date-range-portal.component.d.ts +5 -5
  26. package/description/description.property.d.ts +2 -2
  27. package/dialog/dialog-portal.component.d.ts +0 -2
  28. package/dialog/dialog-portal.directives.d.ts +2 -3
  29. package/dialog/dialog-ref.d.ts +4 -2
  30. package/dialog/dialog.component.d.ts +0 -5
  31. package/dialog/dialog.property.d.ts +14 -10
  32. package/drag/drag.property.d.ts +1 -1
  33. package/drawer/drawer.property.d.ts +2 -2
  34. package/dropdown/dropdown.property.d.ts +1 -1
  35. package/empty/empty.property.d.ts +1 -1
  36. package/fesm2022/ng-nest-ui-affix.mjs +14 -12
  37. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  38. package/fesm2022/ng-nest-ui-alert.mjs +14 -12
  39. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  40. package/fesm2022/ng-nest-ui-anchor.mjs +23 -20
  41. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  42. package/fesm2022/ng-nest-ui-api.mjs +8 -8
  43. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  44. package/fesm2022/ng-nest-ui-auto-complete.mjs +16 -16
  45. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  46. package/fesm2022/ng-nest-ui-avatar.mjs +18 -18
  47. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  48. package/fesm2022/ng-nest-ui-back-top.mjs +13 -12
  49. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  50. package/fesm2022/ng-nest-ui-badge.mjs +11 -11
  51. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  52. package/fesm2022/ng-nest-ui-base-form.mjs +10 -10
  53. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  54. package/fesm2022/ng-nest-ui-button.mjs +18 -18
  55. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  56. package/fesm2022/ng-nest-ui-calendar.mjs +14 -15
  57. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  58. package/fesm2022/ng-nest-ui-card.mjs +11 -12
  59. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  60. package/fesm2022/ng-nest-ui-carousel.mjs +20 -19
  61. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  62. package/fesm2022/ng-nest-ui-cascade.mjs +16 -16
  63. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  64. package/fesm2022/ng-nest-ui-checkbox.mjs +12 -12
  65. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  66. package/fesm2022/ng-nest-ui-collapse.mjs +18 -18
  67. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  68. package/fesm2022/ng-nest-ui-color-picker.mjs +15 -15
  69. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  70. package/fesm2022/ng-nest-ui-color.mjs +11 -11
  71. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  72. package/fesm2022/ng-nest-ui-comment.mjs +18 -18
  73. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  74. package/fesm2022/ng-nest-ui-container.mjs +36 -36
  75. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  76. package/fesm2022/ng-nest-ui-core.mjs +15 -15
  77. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  78. package/fesm2022/ng-nest-ui-crumb.mjs +11 -11
  79. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  80. package/fesm2022/ng-nest-ui-date-picker.mjs +57 -57
  81. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  82. package/fesm2022/ng-nest-ui-description.mjs +18 -18
  83. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  84. package/fesm2022/ng-nest-ui-dialog.mjs +70 -144
  85. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  86. package/fesm2022/ng-nest-ui-doc.mjs +8 -8
  87. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  88. package/fesm2022/ng-nest-ui-drag.mjs +11 -11
  89. package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
  90. package/fesm2022/ng-nest-ui-drawer.mjs +38 -41
  91. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  92. package/fesm2022/ng-nest-ui-dropdown.mjs +15 -16
  93. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  94. package/fesm2022/ng-nest-ui-empty.mjs +11 -11
  95. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  96. package/fesm2022/ng-nest-ui-examples.mjs +8 -8
  97. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  98. package/fesm2022/ng-nest-ui-find.mjs +11 -11
  99. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  100. package/fesm2022/ng-nest-ui-form.mjs +21 -40
  101. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  102. package/fesm2022/ng-nest-ui-highlight.mjs +14 -14
  103. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  104. package/fesm2022/ng-nest-ui-i18n.mjs +15 -17
  105. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  106. package/fesm2022/ng-nest-ui-icon.mjs +14 -14
  107. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  108. package/fesm2022/ng-nest-ui-image.mjs +24 -24
  109. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  110. package/fesm2022/ng-nest-ui-inner.mjs +11 -11
  111. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  112. package/fesm2022/ng-nest-ui-input-number.mjs +11 -11
  113. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  114. package/fesm2022/ng-nest-ui-input.mjs +19 -19
  115. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  116. package/fesm2022/ng-nest-ui-keyword.mjs +12 -13
  117. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  118. package/fesm2022/ng-nest-ui-layout.mjs +18 -18
  119. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  120. package/fesm2022/ng-nest-ui-link.mjs +11 -11
  121. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  122. package/fesm2022/ng-nest-ui-list.mjs +22 -23
  123. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  124. package/fesm2022/ng-nest-ui-loading.mjs +12 -12
  125. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  126. package/fesm2022/ng-nest-ui-menu.mjs +19 -20
  127. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  128. package/fesm2022/ng-nest-ui-message-box.mjs +11 -13
  129. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  130. package/fesm2022/ng-nest-ui-message.mjs +11 -11
  131. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  132. package/fesm2022/ng-nest-ui-notification.mjs +11 -11
  133. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  134. package/fesm2022/ng-nest-ui-outlet.mjs +8 -8
  135. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  136. package/fesm2022/ng-nest-ui-page-header.mjs +11 -11
  137. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  138. package/fesm2022/ng-nest-ui-pagination.mjs +11 -11
  139. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  140. package/fesm2022/ng-nest-ui-pattern.mjs +8 -8
  141. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  142. package/fesm2022/ng-nest-ui-popconfirm.mjs +11 -11
  143. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  144. package/fesm2022/ng-nest-ui-popover.mjs +15 -15
  145. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  146. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  147. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  148. package/fesm2022/ng-nest-ui-progress.mjs +11 -11
  149. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  150. package/fesm2022/ng-nest-ui-radio.mjs +11 -11
  151. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  152. package/fesm2022/ng-nest-ui-rate.mjs +11 -12
  153. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  154. package/fesm2022/ng-nest-ui-resizable.mjs +16 -14
  155. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  156. package/fesm2022/ng-nest-ui-result.mjs +11 -11
  157. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  158. package/fesm2022/ng-nest-ui-ripple.mjs +37 -27
  159. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  160. package/fesm2022/ng-nest-ui-select.mjs +32 -17
  161. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  162. package/fesm2022/ng-nest-ui-skeleton.mjs +13 -11
  163. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  164. package/fesm2022/ng-nest-ui-slider-select.mjs +15 -21
  165. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  166. package/fesm2022/ng-nest-ui-slider.mjs +11 -11
  167. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  168. package/fesm2022/ng-nest-ui-statistic.mjs +18 -18
  169. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  170. package/fesm2022/ng-nest-ui-steps.mjs +11 -11
  171. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  172. package/fesm2022/ng-nest-ui-switch.mjs +11 -11
  173. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  174. package/fesm2022/ng-nest-ui-table.mjs +33 -33
  175. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  176. package/fesm2022/ng-nest-ui-tabs.mjs +30 -32
  177. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  178. package/fesm2022/ng-nest-ui-tag.mjs +11 -11
  179. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  180. package/fesm2022/ng-nest-ui-text-retract.mjs +11 -11
  181. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  182. package/fesm2022/ng-nest-ui-textarea.mjs +11 -11
  183. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  184. package/fesm2022/ng-nest-ui-theme.mjs +13 -14
  185. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  186. package/fesm2022/ng-nest-ui-time-ago.mjs +8 -8
  187. package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
  188. package/fesm2022/ng-nest-ui-time-picker.mjs +19 -19
  189. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  190. package/fesm2022/ng-nest-ui-time-range.mjs +8 -8
  191. package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
  192. package/fesm2022/ng-nest-ui-timeline.mjs +11 -11
  193. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  194. package/fesm2022/ng-nest-ui-tooltip.mjs +15 -15
  195. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  196. package/fesm2022/ng-nest-ui-transfer.mjs +12 -13
  197. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  198. package/fesm2022/ng-nest-ui-tree-file.mjs +12 -20
  199. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  200. package/fesm2022/ng-nest-ui-tree-select.mjs +15 -15
  201. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  202. package/fesm2022/ng-nest-ui-tree.mjs +21 -21
  203. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  204. package/fesm2022/ng-nest-ui-typography.mjs +11 -11
  205. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  206. package/fesm2022/ng-nest-ui-upload.mjs +15 -15
  207. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  208. package/find/find.property.d.ts +12 -18
  209. package/form/form.property.d.ts +10 -21
  210. package/highlight/highlight.property.d.ts +1 -1
  211. package/icon/icon.property.d.ts +1 -1
  212. package/image/image.property.d.ts +2 -2
  213. package/inner/inner.property.d.ts +1 -1
  214. package/input/input.property.d.ts +17 -20
  215. package/input-number/input-number.property.d.ts +13 -13
  216. package/layout/layout.property.d.ts +2 -2
  217. package/link/link.property.d.ts +1 -1
  218. package/list/list.property.d.ts +12 -12
  219. package/loading/loading.property.d.ts +1 -1
  220. package/menu/menu.property.d.ts +2 -2
  221. package/package.json +108 -282
  222. package/page-header/page-header.property.d.ts +1 -1
  223. package/pagination/pagination.property.d.ts +1 -1
  224. package/popconfirm/popconfirm.property.d.ts +1 -1
  225. package/popover/popover.property.d.ts +1 -1
  226. package/progress/progress.property.d.ts +1 -1
  227. package/radio/radio.property.d.ts +13 -16
  228. package/rate/rate.property.d.ts +14 -22
  229. package/result/result.property.d.ts +1 -1
  230. package/ripple/ripple.directive.d.ts +7 -3
  231. package/ripple/ripple.property.d.ts +1 -1
  232. package/select/select-portal.component.d.ts +3 -2
  233. package/select/select.component.d.ts +1 -0
  234. package/select/select.property.d.ts +20 -15
  235. package/skeleton/skeleton.property.d.ts +1 -1
  236. package/slider/slider.property.d.ts +1 -1
  237. package/slider-select/slider-select.property.d.ts +13 -17
  238. package/statistic/statistic.property.d.ts +2 -2
  239. package/steps/steps.property.d.ts +1 -1
  240. package/style/core/index.css +87 -174
  241. package/style/core/index.css.map +1 -1
  242. package/style/core/index.scss +32 -5
  243. package/style/directives/index.scss +3 -3
  244. package/style/directives/keyword/index.scss +3 -2
  245. package/style/directives/keyword/mixin.scss +9 -11
  246. package/style/directives/keyword/param.scss +2 -1
  247. package/style/directives/resizable/index.scss +3 -2
  248. package/style/directives/resizable/mixin.scss +122 -16
  249. package/style/directives/resizable/param.scss +2 -1
  250. package/style/directives/ripple/index.scss +3 -2
  251. package/style/directives/ripple/mixin.scss +12 -12
  252. package/style/directives/ripple/param.scss +2 -1
  253. package/style/mixins/compatibility.scss +7 -5
  254. package/style/mixins/form.scss +6 -4
  255. package/style/mixins/hidden.scss +5 -2
  256. package/style/params/index.scss +282 -3
  257. package/switch/switch.property.d.ts +14 -14
  258. package/table/table.property.d.ts +4 -4
  259. package/tabs/tabs.property.d.ts +2 -2
  260. package/tag/tag.property.d.ts +1 -1
  261. package/text-retract/text-retract.property.d.ts +1 -1
  262. package/textarea/textarea.property.d.ts +14 -17
  263. package/theme/theme.property.d.ts +6 -10
  264. package/time-picker/time-picker.property.d.ts +17 -23
  265. package/timeline/timeline.property.d.ts +1 -1
  266. package/tooltip/tooltip.property.d.ts +1 -1
  267. package/transfer/transfer.property.d.ts +9 -13
  268. package/tree/tree.property.d.ts +2 -2
  269. package/tree-file/tree-file.property.d.ts +1 -1
  270. package/tree-select/tree-select-portal.component.d.ts +1 -1
  271. package/tree-select/tree-select.property.d.ts +15 -15
  272. package/typography/typography.property.d.ts +1 -1
  273. package/upload/upload.property.d.ts +9 -9
  274. package/esm2022/affix/affix.component.mjs +0 -12
  275. package/esm2022/affix/affix.module.mjs +0 -16
  276. package/esm2022/affix/affix.property.mjs +0 -51
  277. package/esm2022/affix/ng-nest-ui-affix.mjs +0 -5
  278. package/esm2022/affix/public-api.mjs +0 -4
  279. package/esm2022/alert/alert.component.mjs +0 -73
  280. package/esm2022/alert/alert.module.mjs +0 -16
  281. package/esm2022/alert/alert.property.mjs +0 -313
  282. package/esm2022/alert/ng-nest-ui-alert.mjs +0 -5
  283. package/esm2022/alert/public-api.mjs +0 -4
  284. package/esm2022/anchor/anchor-inner.component.mjs +0 -18
  285. package/esm2022/anchor/anchor.component.mjs +0 -160
  286. package/esm2022/anchor/anchor.module.mjs +0 -17
  287. package/esm2022/anchor/anchor.property.mjs +0 -121
  288. package/esm2022/anchor/ng-nest-ui-anchor.mjs +0 -5
  289. package/esm2022/anchor/public-api.mjs +0 -5
  290. package/esm2022/api/api.component.mjs +0 -18
  291. package/esm2022/api/api.module.mjs +0 -16
  292. package/esm2022/api/api.property.mjs +0 -7
  293. package/esm2022/api/ng-nest-ui-api.mjs +0 -5
  294. package/esm2022/api/public-api.mjs +0 -4
  295. package/esm2022/auto-complete/auto-complete-portal.component.mjs +0 -80
  296. package/esm2022/auto-complete/auto-complete.component.mjs +0 -306
  297. package/esm2022/auto-complete/auto-complete.module.mjs +0 -16
  298. package/esm2022/auto-complete/auto-complete.property.mjs +0 -172
  299. package/esm2022/auto-complete/ng-nest-ui-auto-complete.mjs +0 -5
  300. package/esm2022/auto-complete/public-api.mjs +0 -5
  301. package/esm2022/avatar/avatar-group.component.mjs +0 -19
  302. package/esm2022/avatar/avatar.component.mjs +0 -109
  303. package/esm2022/avatar/avatar.module.mjs +0 -17
  304. package/esm2022/avatar/avatar.property.mjs +0 -143
  305. package/esm2022/avatar/ng-nest-ui-avatar.mjs +0 -5
  306. package/esm2022/avatar/public-api.mjs +0 -5
  307. package/esm2022/back-top/back-top.component.mjs +0 -104
  308. package/esm2022/back-top/back-top.module.mjs +0 -16
  309. package/esm2022/back-top/back-top.property.mjs +0 -50
  310. package/esm2022/back-top/ng-nest-ui-back-top.mjs +0 -5
  311. package/esm2022/back-top/public-api.mjs +0 -4
  312. package/esm2022/badge/badge.component.mjs +0 -63
  313. package/esm2022/badge/badge.module.mjs +0 -16
  314. package/esm2022/badge/badge.property.mjs +0 -133
  315. package/esm2022/badge/ng-nest-ui-badge.mjs +0 -5
  316. package/esm2022/badge/public-api.mjs +0 -4
  317. package/esm2022/base-form/base-form.component.mjs +0 -101
  318. package/esm2022/base-form/base-form.module.mjs +0 -15
  319. package/esm2022/base-form/base-form.property.mjs +0 -237
  320. package/esm2022/base-form/ng-nest-ui-base-form.mjs +0 -5
  321. package/esm2022/base-form/public-api.mjs +0 -4
  322. package/esm2022/button/button.component.mjs +0 -71
  323. package/esm2022/button/button.module.mjs +0 -17
  324. package/esm2022/button/button.property.mjs +0 -331
  325. package/esm2022/button/buttons.component.mjs +0 -55
  326. package/esm2022/button/ng-nest-ui-button.mjs +0 -5
  327. package/esm2022/button/public-api.mjs +0 -5
  328. package/esm2022/calendar/calendar.component.mjs +0 -117
  329. package/esm2022/calendar/calendar.module.mjs +0 -16
  330. package/esm2022/calendar/calendar.property.mjs +0 -110
  331. package/esm2022/calendar/ng-nest-ui-calendar.mjs +0 -5
  332. package/esm2022/calendar/public-api.mjs +0 -4
  333. package/esm2022/card/card.component.mjs +0 -22
  334. package/esm2022/card/card.module.mjs +0 -16
  335. package/esm2022/card/card.property.mjs +0 -77
  336. package/esm2022/card/ng-nest-ui-card.mjs +0 -5
  337. package/esm2022/card/public-api.mjs +0 -4
  338. package/esm2022/carousel/carousel-panel.component.mjs +0 -157
  339. package/esm2022/carousel/carousel.component.mjs +0 -95
  340. package/esm2022/carousel/carousel.module.mjs +0 -17
  341. package/esm2022/carousel/carousel.property.mjs +0 -256
  342. package/esm2022/carousel/ng-nest-ui-carousel.mjs +0 -5
  343. package/esm2022/carousel/public-api.mjs +0 -5
  344. package/esm2022/cascade/cascade-portal.component.mjs +0 -141
  345. package/esm2022/cascade/cascade.component.mjs +0 -238
  346. package/esm2022/cascade/cascade.module.mjs +0 -16
  347. package/esm2022/cascade/cascade.property.mjs +0 -167
  348. package/esm2022/cascade/ng-nest-ui-cascade.mjs +0 -5
  349. package/esm2022/cascade/public-api.mjs +0 -5
  350. package/esm2022/checkbox/checkbox.component.mjs +0 -102
  351. package/esm2022/checkbox/checkbox.module.mjs +0 -16
  352. package/esm2022/checkbox/checkbox.property.mjs +0 -136
  353. package/esm2022/checkbox/ng-nest-ui-checkbox.mjs +0 -5
  354. package/esm2022/checkbox/public-api.mjs +0 -4
  355. package/esm2022/collapse/collapse-panel.component.mjs +0 -55
  356. package/esm2022/collapse/collapse.component.mjs +0 -49
  357. package/esm2022/collapse/collapse.module.mjs +0 -17
  358. package/esm2022/collapse/collapse.property.mjs +0 -189
  359. package/esm2022/collapse/ng-nest-ui-collapse.mjs +0 -5
  360. package/esm2022/collapse/public-api.mjs +0 -5
  361. package/esm2022/color/color.component.mjs +0 -35
  362. package/esm2022/color/color.module.mjs +0 -16
  363. package/esm2022/color/color.property.mjs +0 -71
  364. package/esm2022/color/ng-nest-ui-color.mjs +0 -5
  365. package/esm2022/color/public-api.mjs +0 -4
  366. package/esm2022/color-picker/color-picker-portal.component.mjs +0 -396
  367. package/esm2022/color-picker/color-picker.component.mjs +0 -191
  368. package/esm2022/color-picker/color-picker.module.mjs +0 -16
  369. package/esm2022/color-picker/color-picker.property.mjs +0 -142
  370. package/esm2022/color-picker/ng-nest-ui-color-picker.mjs +0 -5
  371. package/esm2022/color-picker/public-api.mjs +0 -5
  372. package/esm2022/comment/comment-reply.component.mjs +0 -24
  373. package/esm2022/comment/comment.component.mjs +0 -55
  374. package/esm2022/comment/comment.module.mjs +0 -17
  375. package/esm2022/comment/comment.property.mjs +0 -90
  376. package/esm2022/comment/ng-nest-ui-comment.mjs +0 -5
  377. package/esm2022/comment/public-api.mjs +0 -5
  378. package/esm2022/container/aside.component.mjs +0 -25
  379. package/esm2022/container/container.component.mjs +0 -31
  380. package/esm2022/container/container.module.mjs +0 -20
  381. package/esm2022/container/container.property.mjs +0 -115
  382. package/esm2022/container/footer.component.mjs +0 -35
  383. package/esm2022/container/header.component.mjs +0 -35
  384. package/esm2022/container/main.component.mjs +0 -18
  385. package/esm2022/container/ng-nest-ui-container.mjs +0 -5
  386. package/esm2022/container/public-api.mjs +0 -8
  387. package/esm2022/core/animation/badge.mjs +0 -53
  388. package/esm2022/core/animation/connect.mjs +0 -31
  389. package/esm2022/core/animation/consts.mjs +0 -11
  390. package/esm2022/core/animation/drop.mjs +0 -13
  391. package/esm2022/core/animation/fade.mjs +0 -24
  392. package/esm2022/core/animation/move.mjs +0 -179
  393. package/esm2022/core/animation/opacity.mjs +0 -13
  394. package/esm2022/core/animation/public-api.mjs +0 -9
  395. package/esm2022/core/animation/slide.mjs +0 -17
  396. package/esm2022/core/config/config.mjs +0 -3
  397. package/esm2022/core/config/config.service.mjs +0 -54
  398. package/esm2022/core/config/index.mjs +0 -2
  399. package/esm2022/core/config/public-api.mjs +0 -3
  400. package/esm2022/core/functions/chunk.mjs +0 -25
  401. package/esm2022/core/functions/clone-deep.mjs +0 -28
  402. package/esm2022/core/functions/convert.mjs +0 -230
  403. package/esm2022/core/functions/csspx.mjs +0 -17
  404. package/esm2022/core/functions/date.mjs +0 -223
  405. package/esm2022/core/functions/drop.mjs +0 -20
  406. package/esm2022/core/functions/flex.mjs +0 -25
  407. package/esm2022/core/functions/group-by.mjs +0 -14
  408. package/esm2022/core/functions/guid.mjs +0 -11
  409. package/esm2022/core/functions/has-in.mjs +0 -8
  410. package/esm2022/core/functions/order-by.mjs +0 -56
  411. package/esm2022/core/functions/parent-path.mjs +0 -27
  412. package/esm2022/core/functions/property.mjs +0 -20
  413. package/esm2022/core/functions/public-api.mjs +0 -16
  414. package/esm2022/core/functions/remove.mjs +0 -19
  415. package/esm2022/core/functions/resize.mjs +0 -22
  416. package/esm2022/core/interfaces/data.type.mjs +0 -164
  417. package/esm2022/core/interfaces/identify.type.mjs +0 -7
  418. package/esm2022/core/interfaces/index.mjs +0 -2
  419. package/esm2022/core/interfaces/layout.type.mjs +0 -2
  420. package/esm2022/core/interfaces/public-api.mjs +0 -5
  421. package/esm2022/core/interfaces/result-list.type.mjs +0 -2
  422. package/esm2022/core/ng-nest-ui-core.mjs +0 -5
  423. package/esm2022/core/public-api.mjs +0 -8
  424. package/esm2022/core/services/http.service.mjs +0 -58
  425. package/esm2022/core/services/preloading-strategy.service.mjs +0 -24
  426. package/esm2022/core/services/public-api.mjs +0 -6
  427. package/esm2022/core/services/repository.service.mjs +0 -29
  428. package/esm2022/core/services/reuse-strategy.service.mjs +0 -47
  429. package/esm2022/core/services/storage.service.mjs +0 -75
  430. package/esm2022/core/theme/index.mjs +0 -2
  431. package/esm2022/core/theme/public-api.mjs +0 -3
  432. package/esm2022/core/theme/theme.mjs +0 -89
  433. package/esm2022/core/theme/theme.service.mjs +0 -270
  434. package/esm2022/core/util/animation.mjs +0 -26
  435. package/esm2022/core/util/camel-to-kebab.mjs +0 -16
  436. package/esm2022/core/util/check.mjs +0 -15
  437. package/esm2022/core/util/computed-style.mjs +0 -20
  438. package/esm2022/core/util/host.mjs +0 -14
  439. package/esm2022/core/util/html.mjs +0 -12
  440. package/esm2022/core/util/index.mjs +0 -2
  441. package/esm2022/core/util/kebab-to-camel.mjs +0 -16
  442. package/esm2022/core/util/log.mjs +0 -15
  443. package/esm2022/core/util/option.mjs +0 -14
  444. package/esm2022/core/util/public-api.mjs +0 -11
  445. package/esm2022/core/util/sleep.mjs +0 -8
  446. package/esm2022/crumb/crumb.component.mjs +0 -25
  447. package/esm2022/crumb/crumb.module.mjs +0 -16
  448. package/esm2022/crumb/crumb.property.mjs +0 -45
  449. package/esm2022/crumb/ng-nest-ui-crumb.mjs +0 -5
  450. package/esm2022/crumb/public-api.mjs +0 -4
  451. package/esm2022/date-picker/date-picker-portal.component.mjs +0 -196
  452. package/esm2022/date-picker/date-picker.component.mjs +0 -320
  453. package/esm2022/date-picker/date-picker.module.mjs +0 -17
  454. package/esm2022/date-picker/date-picker.property.mjs +0 -770
  455. package/esm2022/date-picker/date-quarter.pipe.mjs +0 -19
  456. package/esm2022/date-picker/date-range-portal.component.mjs +0 -349
  457. package/esm2022/date-picker/date-range.component.mjs +0 -432
  458. package/esm2022/date-picker/ng-nest-ui-date-picker.mjs +0 -5
  459. package/esm2022/date-picker/picker-date.component.mjs +0 -334
  460. package/esm2022/date-picker/picker-month.component.mjs +0 -232
  461. package/esm2022/date-picker/picker-quarter.component.mjs +0 -237
  462. package/esm2022/date-picker/picker-year.component.mjs +0 -233
  463. package/esm2022/date-picker/public-api.mjs +0 -12
  464. package/esm2022/description/description-item.component.mjs +0 -24
  465. package/esm2022/description/description.component.mjs +0 -48
  466. package/esm2022/description/description.module.mjs +0 -17
  467. package/esm2022/description/description.property.mjs +0 -219
  468. package/esm2022/description/ng-nest-ui-description.mjs +0 -5
  469. package/esm2022/description/public-api.mjs +0 -5
  470. package/esm2022/dialog/dialog-container.component.mjs +0 -29
  471. package/esm2022/dialog/dialog-portal.component.mjs +0 -97
  472. package/esm2022/dialog/dialog-portal.directives.mjs +0 -119
  473. package/esm2022/dialog/dialog-ref.mjs +0 -100
  474. package/esm2022/dialog/dialog.component.mjs +0 -282
  475. package/esm2022/dialog/dialog.module.mjs +0 -50
  476. package/esm2022/dialog/dialog.property.mjs +0 -207
  477. package/esm2022/dialog/dialog.service.mjs +0 -122
  478. package/esm2022/dialog/ng-nest-ui-dialog.mjs +0 -5
  479. package/esm2022/dialog/public-api.mjs +0 -9
  480. package/esm2022/doc/doc.component.mjs +0 -18
  481. package/esm2022/doc/doc.module.mjs +0 -16
  482. package/esm2022/doc/doc.property.mjs +0 -7
  483. package/esm2022/doc/ng-nest-ui-doc.mjs +0 -5
  484. package/esm2022/doc/public-api.mjs +0 -4
  485. package/esm2022/drag/drag.directive.mjs +0 -57
  486. package/esm2022/drag/drag.module.mjs +0 -16
  487. package/esm2022/drag/drag.property.mjs +0 -25
  488. package/esm2022/drag/ng-nest-ui-drag.mjs +0 -5
  489. package/esm2022/drag/public-api.mjs +0 -4
  490. package/esm2022/drawer/drawer-container.component.mjs +0 -29
  491. package/esm2022/drawer/drawer-portal.component.mjs +0 -50
  492. package/esm2022/drawer/drawer-portal.directives.mjs +0 -58
  493. package/esm2022/drawer/drawer-ref.mjs +0 -17
  494. package/esm2022/drawer/drawer.component.mjs +0 -95
  495. package/esm2022/drawer/drawer.module.mjs +0 -38
  496. package/esm2022/drawer/drawer.property.mjs +0 -84
  497. package/esm2022/drawer/drawer.service.mjs +0 -65
  498. package/esm2022/drawer/ng-nest-ui-drawer.mjs +0 -5
  499. package/esm2022/drawer/public-api.mjs +0 -10
  500. package/esm2022/dropdown/dropdown-portal.component.mjs +0 -204
  501. package/esm2022/dropdown/dropdown.component.mjs +0 -179
  502. package/esm2022/dropdown/dropdown.module.mjs +0 -16
  503. package/esm2022/dropdown/dropdown.property.mjs +0 -96
  504. package/esm2022/dropdown/ng-nest-ui-dropdown.mjs +0 -5
  505. package/esm2022/dropdown/public-api.mjs +0 -5
  506. package/esm2022/empty/empty.component.mjs +0 -15
  507. package/esm2022/empty/empty.module.mjs +0 -16
  508. package/esm2022/empty/empty.property.mjs +0 -54
  509. package/esm2022/empty/ng-nest-ui-empty.mjs +0 -5
  510. package/esm2022/empty/public-api.mjs +0 -4
  511. package/esm2022/examples/examples.component.mjs +0 -18
  512. package/esm2022/examples/examples.module.mjs +0 -16
  513. package/esm2022/examples/examples.property.mjs +0 -7
  514. package/esm2022/examples/ng-nest-ui-examples.mjs +0 -5
  515. package/esm2022/examples/public-api.mjs +0 -4
  516. package/esm2022/find/find.component.mjs +0 -331
  517. package/esm2022/find/find.module.mjs +0 -16
  518. package/esm2022/find/find.property.mjs +0 -260
  519. package/esm2022/find/ng-nest-ui-find.mjs +0 -5
  520. package/esm2022/find/public-api.mjs +0 -4
  521. package/esm2022/form/control.component.mjs +0 -249
  522. package/esm2022/form/form.component.mjs +0 -116
  523. package/esm2022/form/form.module.mjs +0 -17
  524. package/esm2022/form/form.property.mjs +0 -202
  525. package/esm2022/form/ng-nest-ui-form.mjs +0 -5
  526. package/esm2022/form/public-api.mjs +0 -5
  527. package/esm2022/highlight/highlight.component.mjs +0 -85
  528. package/esm2022/highlight/highlight.module.mjs +0 -16
  529. package/esm2022/highlight/highlight.property.mjs +0 -45
  530. package/esm2022/highlight/highlight.service.mjs +0 -17
  531. package/esm2022/highlight/ng-nest-ui-highlight.mjs +0 -5
  532. package/esm2022/highlight/public-api.mjs +0 -5
  533. package/esm2022/i18n/i18n.directive.mjs +0 -29
  534. package/esm2022/i18n/i18n.module.mjs +0 -17
  535. package/esm2022/i18n/i18n.pipe.mjs +0 -28
  536. package/esm2022/i18n/i18n.property.mjs +0 -9
  537. package/esm2022/i18n/i18n.service.mjs +0 -57
  538. package/esm2022/i18n/languages/ar_EG.mjs +0 -169
  539. package/esm2022/i18n/languages/bg_BG.mjs +0 -172
  540. package/esm2022/i18n/languages/ca_ES.mjs +0 -172
  541. package/esm2022/i18n/languages/cs_CZ.mjs +0 -172
  542. package/esm2022/i18n/languages/da_DK.mjs +0 -172
  543. package/esm2022/i18n/languages/de_DE.mjs +0 -172
  544. package/esm2022/i18n/languages/el_GR.mjs +0 -172
  545. package/esm2022/i18n/languages/en_GB.mjs +0 -181
  546. package/esm2022/i18n/languages/en_US.mjs +0 -181
  547. package/esm2022/i18n/languages/es_ES.mjs +0 -172
  548. package/esm2022/i18n/languages/et_EE.mjs +0 -172
  549. package/esm2022/i18n/languages/fa_IR.mjs +0 -172
  550. package/esm2022/i18n/languages/fi_FI.mjs +0 -172
  551. package/esm2022/i18n/languages/fr_BE.mjs +0 -172
  552. package/esm2022/i18n/languages/fr_FR.mjs +0 -172
  553. package/esm2022/i18n/languages/he_IL.mjs +0 -169
  554. package/esm2022/i18n/languages/hi_IN.mjs +0 -172
  555. package/esm2022/i18n/languages/hr_HR.mjs +0 -172
  556. package/esm2022/i18n/languages/hu_HU.mjs +0 -172
  557. package/esm2022/i18n/languages/hy_AM.mjs +0 -172
  558. package/esm2022/i18n/languages/id_ID.mjs +0 -172
  559. package/esm2022/i18n/languages/is_IS.mjs +0 -172
  560. package/esm2022/i18n/languages/it_IT.mjs +0 -172
  561. package/esm2022/i18n/languages/ja_JP.mjs +0 -172
  562. package/esm2022/i18n/languages/ka_GE.mjs +0 -172
  563. package/esm2022/i18n/languages/kn_IN.mjs +0 -172
  564. package/esm2022/i18n/languages/ko_KR.mjs +0 -180
  565. package/esm2022/i18n/languages/ku_IQ.mjs +0 -156
  566. package/esm2022/i18n/languages/lv_LV.mjs +0 -180
  567. package/esm2022/i18n/languages/mn_MN.mjs +0 -180
  568. package/esm2022/i18n/languages/ms_MY.mjs +0 -180
  569. package/esm2022/i18n/languages/nb_NO.mjs +0 -180
  570. package/esm2022/i18n/languages/ne_NP.mjs +0 -180
  571. package/esm2022/i18n/languages/nl_BE.mjs +0 -180
  572. package/esm2022/i18n/languages/nl_NL.mjs +0 -180
  573. package/esm2022/i18n/languages/pl_PL.mjs +0 -180
  574. package/esm2022/i18n/languages/pt_BR.mjs +0 -180
  575. package/esm2022/i18n/languages/pt_PT.mjs +0 -180
  576. package/esm2022/i18n/languages/ro_RO.mjs +0 -180
  577. package/esm2022/i18n/languages/ru_RU.mjs +0 -180
  578. package/esm2022/i18n/languages/sk_SK.mjs +0 -171
  579. package/esm2022/i18n/languages/sl_SI.mjs +0 -172
  580. package/esm2022/i18n/languages/sr_RS.mjs +0 -172
  581. package/esm2022/i18n/languages/sv_SE.mjs +0 -172
  582. package/esm2022/i18n/languages/ta_IN.mjs +0 -180
  583. package/esm2022/i18n/languages/th_TH.mjs +0 -180
  584. package/esm2022/i18n/languages/tr_TR.mjs +0 -180
  585. package/esm2022/i18n/languages/uk_UA.mjs +0 -180
  586. package/esm2022/i18n/languages/vi_VN.mjs +0 -180
  587. package/esm2022/i18n/languages/zh_CN.mjs +0 -180
  588. package/esm2022/i18n/languages/zh_TW.mjs +0 -180
  589. package/esm2022/i18n/ng-nest-ui-i18n.mjs +0 -5
  590. package/esm2022/i18n/public-api.mjs +0 -57
  591. package/esm2022/icon/icon.component.mjs +0 -158
  592. package/esm2022/icon/icon.module.mjs +0 -16
  593. package/esm2022/icon/icon.property.mjs +0 -65
  594. package/esm2022/icon/icon.service.mjs +0 -89
  595. package/esm2022/icon/ng-nest-ui-icon.mjs +0 -5
  596. package/esm2022/icon/public-api.mjs +0 -5
  597. package/esm2022/image/image-group.component.mjs +0 -27
  598. package/esm2022/image/image-preview.component.mjs +0 -135
  599. package/esm2022/image/image.component.mjs +0 -75
  600. package/esm2022/image/image.module.mjs +0 -18
  601. package/esm2022/image/image.property.mjs +0 -196
  602. package/esm2022/image/ng-nest-ui-image.mjs +0 -5
  603. package/esm2022/image/public-api.mjs +0 -6
  604. package/esm2022/index.mjs +0 -106
  605. package/esm2022/inner/inner.component.mjs +0 -25
  606. package/esm2022/inner/inner.module.mjs +0 -16
  607. package/esm2022/inner/inner.property.mjs +0 -30
  608. package/esm2022/inner/ng-nest-ui-inner.mjs +0 -5
  609. package/esm2022/inner/public-api.mjs +0 -4
  610. package/esm2022/input/input-group.component.mjs +0 -16
  611. package/esm2022/input/input.component.mjs +0 -224
  612. package/esm2022/input/input.module.mjs +0 -17
  613. package/esm2022/input/input.property.mjs +0 -281
  614. package/esm2022/input/ng-nest-ui-input.mjs +0 -5
  615. package/esm2022/input/public-api.mjs +0 -5
  616. package/esm2022/input-number/input-number.component.mjs +0 -131
  617. package/esm2022/input-number/input-number.module.mjs +0 -16
  618. package/esm2022/input-number/input-number.property.mjs +0 -146
  619. package/esm2022/input-number/ng-nest-ui-input-number.mjs +0 -5
  620. package/esm2022/input-number/public-api.mjs +0 -4
  621. package/esm2022/keyword/keyword.directive.mjs +0 -61
  622. package/esm2022/keyword/keyword.module.mjs +0 -16
  623. package/esm2022/keyword/keyword.property.mjs +0 -45
  624. package/esm2022/keyword/ng-nest-ui-keyword.mjs +0 -5
  625. package/esm2022/keyword/public-api.mjs +0 -4
  626. package/esm2022/layout/col.component.mjs +0 -68
  627. package/esm2022/layout/layout.module.mjs +0 -17
  628. package/esm2022/layout/layout.property.mjs +0 -150
  629. package/esm2022/layout/ng-nest-ui-layout.mjs +0 -5
  630. package/esm2022/layout/public-api.mjs +0 -5
  631. package/esm2022/layout/row.component.mjs +0 -54
  632. package/esm2022/link/link.component.mjs +0 -28
  633. package/esm2022/link/link.module.mjs +0 -16
  634. package/esm2022/link/link.property.mjs +0 -109
  635. package/esm2022/link/ng-nest-ui-link.mjs +0 -5
  636. package/esm2022/link/public-api.mjs +0 -4
  637. package/esm2022/list/list-drop-group.directive.mjs +0 -39
  638. package/esm2022/list/list-option.component.mjs +0 -37
  639. package/esm2022/list/list.component.mjs +0 -409
  640. package/esm2022/list/list.module.mjs +0 -18
  641. package/esm2022/list/list.property.mjs +0 -273
  642. package/esm2022/list/ng-nest-ui-list.mjs +0 -5
  643. package/esm2022/list/public-api.mjs +0 -6
  644. package/esm2022/loading/loading.component.mjs +0 -77
  645. package/esm2022/loading/loading.module.mjs +0 -16
  646. package/esm2022/loading/loading.property.mjs +0 -70
  647. package/esm2022/loading/ng-nest-ui-loading.mjs +0 -5
  648. package/esm2022/loading/public-api.mjs +0 -4
  649. package/esm2022/menu/menu-node.component.mjs +0 -36
  650. package/esm2022/menu/menu.component.mjs +0 -171
  651. package/esm2022/menu/menu.module.mjs +0 -17
  652. package/esm2022/menu/menu.property.mjs +0 -107
  653. package/esm2022/menu/ng-nest-ui-menu.mjs +0 -5
  654. package/esm2022/menu/public-api.mjs +0 -5
  655. package/esm2022/message/message-ref.mjs +0 -13
  656. package/esm2022/message/message.component.mjs +0 -40
  657. package/esm2022/message/message.module.mjs +0 -15
  658. package/esm2022/message/message.property.mjs +0 -9
  659. package/esm2022/message/message.service.mjs +0 -146
  660. package/esm2022/message/ng-nest-ui-message.mjs +0 -5
  661. package/esm2022/message/public-api.mjs +0 -6
  662. package/esm2022/message-box/message-box.component.mjs +0 -122
  663. package/esm2022/message-box/message-box.module.mjs +0 -15
  664. package/esm2022/message-box/message-box.property.mjs +0 -8
  665. package/esm2022/message-box/message-box.service.mjs +0 -97
  666. package/esm2022/message-box/ng-nest-ui-message-box.mjs +0 -5
  667. package/esm2022/message-box/public-api.mjs +0 -5
  668. package/esm2022/ng-nest-ui.mjs +0 -5
  669. package/esm2022/notification/ng-nest-ui-notification.mjs +0 -5
  670. package/esm2022/notification/notification.component.mjs +0 -42
  671. package/esm2022/notification/notification.module.mjs +0 -15
  672. package/esm2022/notification/notification.property.mjs +0 -8
  673. package/esm2022/notification/notification.service.mjs +0 -107
  674. package/esm2022/notification/public-api.mjs +0 -5
  675. package/esm2022/outlet/ng-nest-ui-outlet.mjs +0 -5
  676. package/esm2022/outlet/outlet.directive.mjs +0 -72
  677. package/esm2022/outlet/outlet.module.mjs +0 -16
  678. package/esm2022/outlet/outlet.property.mjs +0 -7
  679. package/esm2022/outlet/public-api.mjs +0 -4
  680. package/esm2022/page-header/ng-nest-ui-page-header.mjs +0 -5
  681. package/esm2022/page-header/page-header.component.mjs +0 -24
  682. package/esm2022/page-header/page-header.module.mjs +0 -16
  683. package/esm2022/page-header/page-header.property.mjs +0 -50
  684. package/esm2022/page-header/public-api.mjs +0 -4
  685. package/esm2022/pagination/ng-nest-ui-pagination.mjs +0 -5
  686. package/esm2022/pagination/pagination.component.mjs +0 -205
  687. package/esm2022/pagination/pagination.module.mjs +0 -16
  688. package/esm2022/pagination/pagination.property.mjs +0 -149
  689. package/esm2022/pagination/public-api.mjs +0 -4
  690. package/esm2022/pattern/ng-nest-ui-pattern.mjs +0 -5
  691. package/esm2022/pattern/pattern.component.mjs +0 -18
  692. package/esm2022/pattern/pattern.module.mjs +0 -16
  693. package/esm2022/pattern/pattern.property.mjs +0 -7
  694. package/esm2022/pattern/public-api.mjs +0 -4
  695. package/esm2022/popconfirm/ng-nest-ui-popconfirm.mjs +0 -5
  696. package/esm2022/popconfirm/popconfirm.component.mjs +0 -59
  697. package/esm2022/popconfirm/popconfirm.module.mjs +0 -16
  698. package/esm2022/popconfirm/popconfirm.property.mjs +0 -100
  699. package/esm2022/popconfirm/public-api.mjs +0 -4
  700. package/esm2022/popover/ng-nest-ui-popover.mjs +0 -5
  701. package/esm2022/popover/popover-portal.component.mjs +0 -52
  702. package/esm2022/popover/popover.directive.mjs +0 -186
  703. package/esm2022/popover/popover.module.mjs +0 -16
  704. package/esm2022/popover/popover.property.mjs +0 -101
  705. package/esm2022/popover/public-api.mjs +0 -5
  706. package/esm2022/portal/ng-nest-ui-portal.mjs +0 -5
  707. package/esm2022/portal/portal.module.mjs +0 -16
  708. package/esm2022/portal/portal.property.mjs +0 -24
  709. package/esm2022/portal/portal.service.mjs +0 -190
  710. package/esm2022/portal/public-api.mjs +0 -4
  711. package/esm2022/progress/ng-nest-ui-progress.mjs +0 -5
  712. package/esm2022/progress/progress.component.mjs +0 -224
  713. package/esm2022/progress/progress.module.mjs +0 -16
  714. package/esm2022/progress/progress.property.mjs +0 -110
  715. package/esm2022/progress/public-api.mjs +0 -4
  716. package/esm2022/radio/ng-nest-ui-radio.mjs +0 -5
  717. package/esm2022/radio/public-api.mjs +0 -4
  718. package/esm2022/radio/radio.component.mjs +0 -77
  719. package/esm2022/radio/radio.module.mjs +0 -16
  720. package/esm2022/radio/radio.property.mjs +0 -121
  721. package/esm2022/rate/ng-nest-ui-rate.mjs +0 -5
  722. package/esm2022/rate/public-api.mjs +0 -4
  723. package/esm2022/rate/rate.component.mjs +0 -99
  724. package/esm2022/rate/rate.module.mjs +0 -16
  725. package/esm2022/rate/rate.property.mjs +0 -86
  726. package/esm2022/resizable/ng-nest-ui-resizable.mjs +0 -5
  727. package/esm2022/resizable/public-api.mjs +0 -4
  728. package/esm2022/resizable/resizable.directive.mjs +0 -262
  729. package/esm2022/resizable/resizable.module.mjs +0 -16
  730. package/esm2022/resizable/resizable.property.mjs +0 -64
  731. package/esm2022/result/ng-nest-ui-result.mjs +0 -5
  732. package/esm2022/result/public-api.mjs +0 -4
  733. package/esm2022/result/result.component.mjs +0 -25
  734. package/esm2022/result/result.module.mjs +0 -16
  735. package/esm2022/result/result.property.mjs +0 -45
  736. package/esm2022/ripple/ng-nest-ui-ripple.mjs +0 -5
  737. package/esm2022/ripple/public-api.mjs +0 -4
  738. package/esm2022/ripple/ripple.directive.mjs +0 -83
  739. package/esm2022/ripple/ripple.module.mjs +0 -16
  740. package/esm2022/ripple/ripple.property.mjs +0 -40
  741. package/esm2022/select/ng-nest-ui-select.mjs +0 -5
  742. package/esm2022/select/public-api.mjs +0 -5
  743. package/esm2022/select/select-portal.component.mjs +0 -102
  744. package/esm2022/select/select.component.mjs +0 -680
  745. package/esm2022/select/select.module.mjs +0 -16
  746. package/esm2022/select/select.property.mjs +0 -231
  747. package/esm2022/skeleton/ng-nest-ui-skeleton.mjs +0 -5
  748. package/esm2022/skeleton/public-api.mjs +0 -4
  749. package/esm2022/skeleton/skeleton.component.mjs +0 -23
  750. package/esm2022/skeleton/skeleton.module.mjs +0 -16
  751. package/esm2022/skeleton/skeleton.property.mjs +0 -55
  752. package/esm2022/slider/ng-nest-ui-slider.mjs +0 -5
  753. package/esm2022/slider/public-api.mjs +0 -4
  754. package/esm2022/slider/slider.component.mjs +0 -222
  755. package/esm2022/slider/slider.module.mjs +0 -17
  756. package/esm2022/slider/slider.property.mjs +0 -102
  757. package/esm2022/slider-select/ng-nest-ui-slider-select.mjs +0 -5
  758. package/esm2022/slider-select/public-api.mjs +0 -4
  759. package/esm2022/slider-select/slider-select.component.mjs +0 -363
  760. package/esm2022/slider-select/slider-select.module.mjs +0 -16
  761. package/esm2022/slider-select/slider-select.property.mjs +0 -136
  762. package/esm2022/statistic/countdown.component.mjs +0 -70
  763. package/esm2022/statistic/ng-nest-ui-statistic.mjs +0 -5
  764. package/esm2022/statistic/public-api.mjs +0 -5
  765. package/esm2022/statistic/statistic.component.mjs +0 -34
  766. package/esm2022/statistic/statistic.module.mjs +0 -17
  767. package/esm2022/statistic/statistic.property.mjs +0 -106
  768. package/esm2022/steps/ng-nest-ui-steps.mjs +0 -5
  769. package/esm2022/steps/public-api.mjs +0 -4
  770. package/esm2022/steps/steps.component.mjs +0 -49
  771. package/esm2022/steps/steps.module.mjs +0 -16
  772. package/esm2022/steps/steps.property.mjs +0 -60
  773. package/esm2022/switch/ng-nest-ui-switch.mjs +0 -5
  774. package/esm2022/switch/public-api.mjs +0 -4
  775. package/esm2022/switch/switch.component.mjs +0 -37
  776. package/esm2022/switch/switch.module.mjs +0 -16
  777. package/esm2022/switch/switch.property.mjs +0 -91
  778. package/esm2022/table/ng-nest-ui-table.mjs +0 -5
  779. package/esm2022/table/public-api.mjs +0 -7
  780. package/esm2022/table/table-body.component.mjs +0 -236
  781. package/esm2022/table/table-foot.component.mjs +0 -29
  782. package/esm2022/table/table-head.component.mjs +0 -169
  783. package/esm2022/table/table.component.mjs +0 -372
  784. package/esm2022/table/table.module.mjs +0 -19
  785. package/esm2022/table/table.property.mjs +0 -624
  786. package/esm2022/tabs/ng-nest-ui-tabs.mjs +0 -5
  787. package/esm2022/tabs/public-api.mjs +0 -7
  788. package/esm2022/tabs/tab-content.component.mjs +0 -21
  789. package/esm2022/tabs/tab-link.directive.mjs +0 -46
  790. package/esm2022/tabs/tab.component.mjs +0 -19
  791. package/esm2022/tabs/tabs.component.mjs +0 -143
  792. package/esm2022/tabs/tabs.module.mjs +0 -18
  793. package/esm2022/tabs/tabs.property.mjs +0 -141
  794. package/esm2022/tag/ng-nest-ui-tag.mjs +0 -5
  795. package/esm2022/tag/public-api.mjs +0 -4
  796. package/esm2022/tag/tag.component.mjs +0 -51
  797. package/esm2022/tag/tag.module.mjs +0 -16
  798. package/esm2022/tag/tag.property.mjs +0 -80
  799. package/esm2022/text-retract/ng-nest-ui-text-retract.mjs +0 -5
  800. package/esm2022/text-retract/public-api.mjs +0 -4
  801. package/esm2022/text-retract/text-retract.component.mjs +0 -42
  802. package/esm2022/text-retract/text-retract.module.mjs +0 -16
  803. package/esm2022/text-retract/text-retract.property.mjs +0 -35
  804. package/esm2022/textarea/ng-nest-ui-textarea.mjs +0 -5
  805. package/esm2022/textarea/public-api.mjs +0 -4
  806. package/esm2022/textarea/textarea.component.mjs +0 -68
  807. package/esm2022/textarea/textarea.module.mjs +0 -16
  808. package/esm2022/textarea/textarea.property.mjs +0 -126
  809. package/esm2022/theme/ng-nest-ui-theme.mjs +0 -5
  810. package/esm2022/theme/public-api.mjs +0 -4
  811. package/esm2022/theme/theme.component.mjs +0 -179
  812. package/esm2022/theme/theme.module.mjs +0 -16
  813. package/esm2022/theme/theme.property.mjs +0 -63
  814. package/esm2022/time-ago/ng-nest-ui-time-ago.mjs +0 -5
  815. package/esm2022/time-ago/public-api.mjs +0 -4
  816. package/esm2022/time-ago/time-ago.module.mjs +0 -16
  817. package/esm2022/time-ago/time-ago.pipe.mjs +0 -70
  818. package/esm2022/time-ago/time-ago.property.mjs +0 -7
  819. package/esm2022/time-picker/ng-nest-ui-time-picker.mjs +0 -5
  820. package/esm2022/time-picker/public-api.mjs +0 -6
  821. package/esm2022/time-picker/time-picker-frame.component.mjs +0 -312
  822. package/esm2022/time-picker/time-picker-portal.component.mjs +0 -78
  823. package/esm2022/time-picker/time-picker.component.mjs +0 -266
  824. package/esm2022/time-picker/time-picker.module.mjs +0 -17
  825. package/esm2022/time-picker/time-picker.property.mjs +0 -198
  826. package/esm2022/time-range/ng-nest-ui-time-range.mjs +0 -5
  827. package/esm2022/time-range/public-api.mjs +0 -4
  828. package/esm2022/time-range/time-range.module.mjs +0 -16
  829. package/esm2022/time-range/time-range.pipe.mjs +0 -44
  830. package/esm2022/time-range/time-range.property.mjs +0 -7
  831. package/esm2022/timeline/ng-nest-ui-timeline.mjs +0 -5
  832. package/esm2022/timeline/public-api.mjs +0 -4
  833. package/esm2022/timeline/timeline.component.mjs +0 -45
  834. package/esm2022/timeline/timeline.module.mjs +0 -16
  835. package/esm2022/timeline/timeline.property.mjs +0 -50
  836. package/esm2022/tooltip/ng-nest-ui-tooltip.mjs +0 -5
  837. package/esm2022/tooltip/public-api.mjs +0 -5
  838. package/esm2022/tooltip/tooltip-portal.component.mjs +0 -103
  839. package/esm2022/tooltip/tooltip.directive.mjs +0 -143
  840. package/esm2022/tooltip/tooltip.module.mjs +0 -16
  841. package/esm2022/tooltip/tooltip.property.mjs +0 -86
  842. package/esm2022/transfer/ng-nest-ui-transfer.mjs +0 -5
  843. package/esm2022/transfer/public-api.mjs +0 -4
  844. package/esm2022/transfer/transfer.component.mjs +0 -659
  845. package/esm2022/transfer/transfer.module.mjs +0 -16
  846. package/esm2022/transfer/transfer.property.mjs +0 -112
  847. package/esm2022/tree/ng-nest-ui-tree.mjs +0 -5
  848. package/esm2022/tree/public-api.mjs +0 -5
  849. package/esm2022/tree/tree-node.component.mjs +0 -297
  850. package/esm2022/tree/tree.component.mjs +0 -579
  851. package/esm2022/tree/tree.module.mjs +0 -17
  852. package/esm2022/tree/tree.property.mjs +0 -337
  853. package/esm2022/tree/tree.service.mjs +0 -102
  854. package/esm2022/tree-file/ng-nest-ui-tree-file.mjs +0 -5
  855. package/esm2022/tree-file/public-api.mjs +0 -4
  856. package/esm2022/tree-file/tree-file.component.mjs +0 -118
  857. package/esm2022/tree-file/tree-file.module.mjs +0 -16
  858. package/esm2022/tree-file/tree-file.property.mjs +0 -90
  859. package/esm2022/tree-select/ng-nest-ui-tree-select.mjs +0 -5
  860. package/esm2022/tree-select/public-api.mjs +0 -5
  861. package/esm2022/tree-select/tree-select-portal.component.mjs +0 -86
  862. package/esm2022/tree-select/tree-select.component.mjs +0 -659
  863. package/esm2022/tree-select/tree-select.module.mjs +0 -17
  864. package/esm2022/tree-select/tree-select.property.mjs +0 -237
  865. package/esm2022/typography/ng-nest-ui-typography.mjs +0 -5
  866. package/esm2022/typography/public-api.mjs +0 -4
  867. package/esm2022/typography/typography.component.mjs +0 -27
  868. package/esm2022/typography/typography.module.mjs +0 -16
  869. package/esm2022/typography/typography.property.mjs +0 -34
  870. package/esm2022/upload/ng-nest-ui-upload.mjs +0 -5
  871. package/esm2022/upload/public-api.mjs +0 -5
  872. package/esm2022/upload/upload-portal.component.mjs +0 -196
  873. package/esm2022/upload/upload.component.mjs +0 -233
  874. package/esm2022/upload/upload.module.mjs +0 -16
  875. package/esm2022/upload/upload.property.mjs +0 -118
  876. package/style/core/base.scss +0 -20
  877. package/style/core/cdk.scss +0 -72
  878. package/style/core/portal.scss +0 -5
  879. package/style/core/var.scss +0 -4
  880. package/style/mixins/index.scss +0 -9
  881. package/style/params/layout.scss +0 -73
  882. package/style/params/primary.scss +0 -208
  883. package/style/themes/default.scss +0 -1
@@ -1,196 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, Renderer2, inject, input, computed, viewChild, signal, output } from '@angular/core';
3
- import { fromEvent, Subject } from 'rxjs';
4
- import { takeUntil } from 'rxjs/operators';
5
- import { XClamp } from '@ng-nest/ui/core';
6
- import { XUploadPortalPrefix } from './upload.property';
7
- import { XIconComponent } from '@ng-nest/ui/icon';
8
- import * as i0 from "@angular/core";
9
- export class XUploadPortalComponent {
10
- constructor() {
11
- this.file = input();
12
- this.name = computed(() => {
13
- return this.file()?.name;
14
- });
15
- this.url = computed(() => {
16
- return this.file()?.url;
17
- });
18
- this.imgRef = viewChild.required('imgRef');
19
- this.imgClipRef = viewChild.required('imgClipRef');
20
- this.boundaryRef = viewChild.required('boundaryRef');
21
- this.cutRef = viewChild.required('cutRef');
22
- this.ready = signal(false);
23
- this.cutType = signal('');
24
- this.proportion = signal(1);
25
- this.originalSize = {
26
- width: 0,
27
- height: 0
28
- };
29
- this.boundaryBox = {
30
- width: 0,
31
- height: 0
32
- };
33
- this.cutBox = {
34
- width: 0,
35
- height: 0,
36
- x: 0,
37
- y: 0
38
- };
39
- this.doc = inject(DOCUMENT);
40
- this.closePortal = output();
41
- this.surePortal = output();
42
- this.unSubject = new Subject();
43
- this.renderer = inject(Renderer2);
44
- }
45
- ngAfterViewInit() {
46
- this.setCut();
47
- }
48
- ngOnDestroy() {
49
- this.unSubject.next();
50
- this.unSubject.complete();
51
- }
52
- setCut() {
53
- let width = this.imgRef().nativeElement.clientWidth;
54
- let height = this.imgRef().nativeElement.clientHeight;
55
- this.renderer.setStyle(this.cutRef().nativeElement, 'width', `${width}px`);
56
- this.renderer.setStyle(this.cutRef().nativeElement, 'height', `${height}px`);
57
- this.renderer.setStyle(this.boundaryRef().nativeElement, 'width', `${width}px`);
58
- this.renderer.setStyle(this.boundaryRef().nativeElement, 'height', `${height}px`);
59
- this.renderer.setStyle(this.imgRef().nativeElement, 'width', `${width}px`);
60
- this.renderer.setStyle(this.imgRef().nativeElement, 'height', `${height}px`);
61
- this.renderer.setStyle(this.imgClipRef().nativeElement, 'width', `${width}px`);
62
- this.renderer.setStyle(this.imgClipRef().nativeElement, 'height', `${height}px`);
63
- this.cutBox.width = width;
64
- this.cutBox.height = height;
65
- this.boundaryBox = { width, height };
66
- this.clipRect = {
67
- top: 0,
68
- right: width,
69
- bottom: height,
70
- left: 0
71
- };
72
- this.setOriginalSize();
73
- this.ready.set(true);
74
- const mouseDown = fromEvent(this.cutRef().nativeElement, 'mousedown').pipe(takeUntil(this.unSubject));
75
- mouseDown.subscribe((downMe) => {
76
- let x = downMe.pageX;
77
- let y = downMe.pageY;
78
- let offsetX = 0;
79
- let offsetY = 0;
80
- const _unSub = new Subject();
81
- let className = downMe.target.className;
82
- const spt = `${XUploadPortalPrefix}-cut-`;
83
- if (className.includes(spt)) {
84
- this.cutType.set(className.replace(spt, ''));
85
- }
86
- fromEvent(this.doc.documentElement, 'mousemove')
87
- .pipe(takeUntil(_unSub))
88
- .subscribe((moveMe) => {
89
- offsetX = moveMe.pageX - x;
90
- offsetY = moveMe.pageY - y;
91
- x = moveMe.pageX;
92
- y = moveMe.pageY;
93
- this.setCutEle(this.cutType(), offsetX, offsetY);
94
- });
95
- fromEvent(this.doc.documentElement, 'mouseup')
96
- .pipe(takeUntil(_unSub))
97
- .subscribe(() => {
98
- this.cutType.set('');
99
- _unSub.next();
100
- _unSub.complete();
101
- });
102
- });
103
- }
104
- setOriginalSize() {
105
- const img = new Image();
106
- img.src = this.url();
107
- img.onload = () => {
108
- this.originalSize = { width: img.width, height: img.height };
109
- this.proportion.set(this.boundaryBox.width / this.originalSize.width);
110
- };
111
- }
112
- setCutEle(position, x, y) {
113
- switch (position) {
114
- case 'top-start':
115
- this.cutBox.width -= x;
116
- this.cutBox.height -= y;
117
- this.cutBox.x += x;
118
- this.cutBox.y += y;
119
- break;
120
- case 'top':
121
- this.cutBox.height -= y;
122
- this.cutBox.y += y;
123
- break;
124
- case 'top-end':
125
- this.cutBox.width += x;
126
- this.cutBox.height -= y;
127
- this.cutBox.y += y;
128
- break;
129
- case 'right':
130
- this.cutBox.width += x;
131
- break;
132
- case 'bottom-end':
133
- this.cutBox.width += x;
134
- this.cutBox.height += y;
135
- break;
136
- case 'bottom':
137
- this.cutBox.height += y;
138
- break;
139
- case 'bottom-start':
140
- this.cutBox.width -= x;
141
- this.cutBox.height += y;
142
- this.cutBox.x += x;
143
- break;
144
- case 'left':
145
- this.cutBox.width -= x;
146
- this.cutBox.x += x;
147
- break;
148
- case '':
149
- this.cutBox.x += x;
150
- this.cutBox.y += y;
151
- break;
152
- }
153
- const boundaryRect = this.boundaryRef().nativeElement.getBoundingClientRect();
154
- const maxY = boundaryRect.height - this.cutBox.height;
155
- const maxX = boundaryRect.width - this.cutBox.width;
156
- this.cutBox.x = XClamp(this.cutBox.x, 0, maxX);
157
- this.cutBox.y = XClamp(this.cutBox.y, 0, maxY);
158
- // const maxWidth = boundaryRect.height - this.cutBox.y;
159
- // const maxHeight = boundaryRect.width - this.cutBox.x;
160
- // this.cutBox.width = XClamp(this.cutBox.width, 0, maxWidth);
161
- // this.cutBox.height = XClamp(this.cutBox.width, 0, maxHeight);
162
- this.clipRect = {
163
- top: this.cutBox.y,
164
- right: this.cutBox.width + this.cutBox.x,
165
- bottom: this.cutBox.height + this.cutBox.y,
166
- left: this.cutBox.x
167
- };
168
- this.renderer.setStyle(this.imgClipRef().nativeElement, 'clip', `rect(${this.clipRect.top}px,${this.clipRect.right}px,${this.clipRect.bottom}px,${this.clipRect.left}px)`);
169
- this.renderer.setStyle(this.cutRef().nativeElement, 'width', `${this.cutBox.width}px`);
170
- this.renderer.setStyle(this.cutRef().nativeElement, 'height', `${this.cutBox.height}px`);
171
- this.renderer.setStyle(this.cutRef().nativeElement, 'transform', `translate3d(${this.cutBox.x}px, ${this.cutBox.y}px, 0)`);
172
- }
173
- sure() {
174
- const canvas = this.doc.createElement('canvas');
175
- canvas.width = this.cutBox.width / this.proportion();
176
- canvas.height = this.cutBox.height / this.proportion();
177
- const context = canvas.getContext('2d');
178
- const img = new Image();
179
- img.src = this.url();
180
- img.crossOrigin = 'anonymous';
181
- img.onload = () => {
182
- context.drawImage(img, -this.cutBox.x / this.proportion(), -this.cutBox.y / this.proportion());
183
- canvas.toBlob((blob) => {
184
- this.surePortal.emit(blob);
185
- this.closePortal.emit();
186
- });
187
- };
188
- }
189
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XUploadPortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
190
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.2", type: XUploadPortalComponent, isStandalone: true, selector: "x-upload-portal", inputs: { file: { classPropertyName: "file", publicName: "file", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closePortal: "closePortal", surePortal: "surePortal" }, viewQueries: [{ propertyName: "imgRef", first: true, predicate: ["imgRef"], descendants: true, isSignal: true }, { propertyName: "imgClipRef", first: true, predicate: ["imgClipRef"], descendants: true, isSignal: true }, { propertyName: "boundaryRef", first: true, predicate: ["boundaryRef"], descendants: true, isSignal: true }, { propertyName: "cutRef", first: true, predicate: ["cutRef"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"x-upload-portal {{ cutType() }}\" [class.x-upload-portal-ready]=\"ready()\">\r\n <div class=\"x-upload-portal-tools\">\r\n <div class=\"x-upload-portal-title\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n <span>{{ name() }}</span>\r\n </div>\r\n <x-icon class=\"x-upload-portal-close\" type=\"fto-x\" (click)=\"closePortal.emit()\"></x-icon>\r\n </div>\r\n <div class=\"x-upload-portal-img\">\r\n <img #imgRef class=\"x-upload-portal-full-img\" [src]=\"url()\" />\r\n <div #boundaryRef class=\"x-upload-portal-boundary\">\r\n <img #imgClipRef class=\"x-upload-portal-clip-img\" [src]=\"url()\" />\r\n <div #cutRef class=\"x-upload-portal-cut\">\r\n <div class=\"x-upload-portal-cut-top-start\"></div>\r\n <div class=\"x-upload-portal-cut-top\"></div>\r\n <div class=\"x-upload-portal-cut-top-end\"></div>\r\n <div class=\"x-upload-portal-cut-left\"></div>\r\n <div class=\"x-upload-portal-cut-right\"></div>\r\n <div class=\"x-upload-portal-cut-bottom-start\"></div>\r\n <div class=\"x-upload-portal-cut-bottom\"></div>\r\n <div class=\"x-upload-portal-cut-bottom-end\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-upload-portal-bottom-tools\">\r\n <x-icon class=\"x-upload-portal-close\" type=\"fto-check\" (click)=\"sure()\"></x-icon>\r\n </div>\r\n</div>\r\n", styles: ["x-upload-portal{width:100%;height:100%}.x-upload-portal{margin:0;padding:0}.x-upload-portal{display:flex;position:relative;width:100%;height:100%;flex-direction:column}.x-upload-portal-tools{width:100%;height:3.25rem;display:flex;align-items:center;justify-content:space-between;position:absolute;z-index:1;color:#fff}.x-upload-portal-bottom-tools{width:100%;height:3.25rem;position:absolute;display:flex;justify-content:center;align-items:center;z-index:1;color:#fff;bottom:0}.x-upload-portal-title{display:flex;align-items:center;margin:0 1rem}.x-upload-portal-title>x-icon{font-size:1.25rem}.x-upload-portal-title>span{margin-left:.5rem}.x-upload-portal-close{font-size:1.75rem;padding:0 1rem;color:#fffc;transition:color var(--x-animation-duration-base);cursor:pointer}.x-upload-portal-close:hover{color:#fff}.x-upload-portal-img{flex:1;width:100%;position:relative;overflow:auto}.x-upload-portal-full-img{max-width:85%;max-height:85%;width:auto;height:auto;position:absolute;left:50%;top:50%;transform:translate3d(-50%,-50%,0)}.x-upload-portal-clip-img{position:absolute}.x-upload-portal-ready .x-upload-portal-full-img{max-width:inherit;max-height:inherit}.x-upload-portal-boundary{width:0;height:0;left:50%;top:50%;transform:translate3d(-50%,-50%,0);position:relative;background-color:#00000080}.x-upload-portal-cut{width:0;height:0;border:.125rem var(--x-border-style) rgba(255,255,255,.8);display:flex;align-items:center;justify-content:center;position:relative;cursor:move}.x-upload-portal-cut-top-start,.x-upload-portal-cut-top,.x-upload-portal-cut-top-end,.x-upload-portal-cut-left,.x-upload-portal-cut-right,.x-upload-portal-cut-bottom-start,.x-upload-portal-cut-bottom,.x-upload-portal-cut-bottom-end{width:.825rem;height:.825rem;background:#fff;position:absolute;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius)}.x-upload-portal-cut-top-start{top:-.4125rem;left:-.4125rem;cursor:se-resize}.x-upload-portal-cut-top{top:-.4125rem;cursor:s-resize}.x-upload-portal-cut-top-end{top:-.4125rem;right:-.4125rem;cursor:ne-resize}.x-upload-portal-cut-left{left:-.4125rem;cursor:w-resize}.x-upload-portal-cut-right{right:-.4125rem;cursor:w-resize}.x-upload-portal-cut-bottom-start{left:-.4125rem;bottom:-.4125rem;cursor:ne-resize}.x-upload-portal-cut-bottom{bottom:-.4125rem;cursor:s-resize}.x-upload-portal-cut-bottom-end{right:-.4125rem;bottom:-.4125rem;cursor:se-resize}.x-upload-portal-top-start{cursor:se-resize}.x-upload-portal-top{cursor:s-resize}.x-upload-portal-top-end{cursor:ne-resize}.x-upload-portal-left,.x-upload-portal-right{cursor:w-resize}.x-upload-portal-bottom-start{cursor:ne-resize}.x-upload-portal-bottom{cursor:s-resize}.x-upload-portal-bottom-end{cursor:se-resize}\n"], dependencies: [{ kind: "component", type: XIconComponent, selector: "x-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
191
- }
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XUploadPortalComponent, decorators: [{
193
- type: Component,
194
- args: [{ selector: `${XUploadPortalPrefix}`, standalone: true, imports: [XIconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-upload-portal {{ cutType() }}\" [class.x-upload-portal-ready]=\"ready()\">\r\n <div class=\"x-upload-portal-tools\">\r\n <div class=\"x-upload-portal-title\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n <span>{{ name() }}</span>\r\n </div>\r\n <x-icon class=\"x-upload-portal-close\" type=\"fto-x\" (click)=\"closePortal.emit()\"></x-icon>\r\n </div>\r\n <div class=\"x-upload-portal-img\">\r\n <img #imgRef class=\"x-upload-portal-full-img\" [src]=\"url()\" />\r\n <div #boundaryRef class=\"x-upload-portal-boundary\">\r\n <img #imgClipRef class=\"x-upload-portal-clip-img\" [src]=\"url()\" />\r\n <div #cutRef class=\"x-upload-portal-cut\">\r\n <div class=\"x-upload-portal-cut-top-start\"></div>\r\n <div class=\"x-upload-portal-cut-top\"></div>\r\n <div class=\"x-upload-portal-cut-top-end\"></div>\r\n <div class=\"x-upload-portal-cut-left\"></div>\r\n <div class=\"x-upload-portal-cut-right\"></div>\r\n <div class=\"x-upload-portal-cut-bottom-start\"></div>\r\n <div class=\"x-upload-portal-cut-bottom\"></div>\r\n <div class=\"x-upload-portal-cut-bottom-end\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-upload-portal-bottom-tools\">\r\n <x-icon class=\"x-upload-portal-close\" type=\"fto-check\" (click)=\"sure()\"></x-icon>\r\n </div>\r\n</div>\r\n", styles: ["x-upload-portal{width:100%;height:100%}.x-upload-portal{margin:0;padding:0}.x-upload-portal{display:flex;position:relative;width:100%;height:100%;flex-direction:column}.x-upload-portal-tools{width:100%;height:3.25rem;display:flex;align-items:center;justify-content:space-between;position:absolute;z-index:1;color:#fff}.x-upload-portal-bottom-tools{width:100%;height:3.25rem;position:absolute;display:flex;justify-content:center;align-items:center;z-index:1;color:#fff;bottom:0}.x-upload-portal-title{display:flex;align-items:center;margin:0 1rem}.x-upload-portal-title>x-icon{font-size:1.25rem}.x-upload-portal-title>span{margin-left:.5rem}.x-upload-portal-close{font-size:1.75rem;padding:0 1rem;color:#fffc;transition:color var(--x-animation-duration-base);cursor:pointer}.x-upload-portal-close:hover{color:#fff}.x-upload-portal-img{flex:1;width:100%;position:relative;overflow:auto}.x-upload-portal-full-img{max-width:85%;max-height:85%;width:auto;height:auto;position:absolute;left:50%;top:50%;transform:translate3d(-50%,-50%,0)}.x-upload-portal-clip-img{position:absolute}.x-upload-portal-ready .x-upload-portal-full-img{max-width:inherit;max-height:inherit}.x-upload-portal-boundary{width:0;height:0;left:50%;top:50%;transform:translate3d(-50%,-50%,0);position:relative;background-color:#00000080}.x-upload-portal-cut{width:0;height:0;border:.125rem var(--x-border-style) rgba(255,255,255,.8);display:flex;align-items:center;justify-content:center;position:relative;cursor:move}.x-upload-portal-cut-top-start,.x-upload-portal-cut-top,.x-upload-portal-cut-top-end,.x-upload-portal-cut-left,.x-upload-portal-cut-right,.x-upload-portal-cut-bottom-start,.x-upload-portal-cut-bottom,.x-upload-portal-cut-bottom-end{width:.825rem;height:.825rem;background:#fff;position:absolute;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius)}.x-upload-portal-cut-top-start{top:-.4125rem;left:-.4125rem;cursor:se-resize}.x-upload-portal-cut-top{top:-.4125rem;cursor:s-resize}.x-upload-portal-cut-top-end{top:-.4125rem;right:-.4125rem;cursor:ne-resize}.x-upload-portal-cut-left{left:-.4125rem;cursor:w-resize}.x-upload-portal-cut-right{right:-.4125rem;cursor:w-resize}.x-upload-portal-cut-bottom-start{left:-.4125rem;bottom:-.4125rem;cursor:ne-resize}.x-upload-portal-cut-bottom{bottom:-.4125rem;cursor:s-resize}.x-upload-portal-cut-bottom-end{right:-.4125rem;bottom:-.4125rem;cursor:se-resize}.x-upload-portal-top-start{cursor:se-resize}.x-upload-portal-top{cursor:s-resize}.x-upload-portal-top-end{cursor:ne-resize}.x-upload-portal-left,.x-upload-portal-right{cursor:w-resize}.x-upload-portal-bottom-start{cursor:ne-resize}.x-upload-portal-bottom{cursor:s-resize}.x-upload-portal-bottom-end{cursor:se-resize}\n"] }]
195
- }] });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLXBvcnRhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS91cGxvYWQvdXBsb2FkLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS91cGxvYWQvdXBsb2FkLXBvcnRhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxNQUFNLEVBR04sS0FBSyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sRUFBK0IsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBV2xELE1BQU0sT0FBTyxzQkFBc0I7SUFUbkM7UUFVRSxTQUFJLEdBQUcsS0FBSyxFQUFlLENBQUM7UUFDNUIsU0FBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsUUFBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxD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SSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBWSxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7SUFDSixDQUFDO2lJQTlNVSxzQkFBc0I7cUhBQXRCLHNCQUFzQiw0ckJDL0JuQyx1M0NBNEJBLHd2RkRIWSxjQUFjOzsyRkFNYixzQkFBc0I7a0JBVGxDLFNBQVM7K0JBQ0UsR0FBRyxtQkFBbUIsRUFBRSxjQUN0QixJQUFJLFdBQ1AsQ0FBQyxjQUFjLENBQUMsaUJBR1YsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgaW5qZWN0LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIGlucHV0LFxyXG4gIGNvbXB1dGVkLFxyXG4gIHZpZXdDaGlsZCxcclxuICBzaWduYWwsXHJcbiAgb3V0cHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhDbGFtcCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYVXBsb2FkQ3V0VHlwZSwgWFVwbG9hZE5vZGUsIFhVcGxvYWRQb3J0YWxQcmVmaXggfSBmcm9tICcuL3VwbG9hZC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJY29uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaWNvbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFVwbG9hZFBvcnRhbFByZWZpeH1gLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1hJY29uQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLXBvcnRhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhVcGxvYWRQb3J0YWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIGZpbGUgPSBpbnB1dDxYVXBsb2FkTm9kZT4oKTtcclxuICBuYW1lID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsZSgpPy5uYW1lO1xyXG4gIH0pO1xyXG4gIHVybCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLmZpbGUoKT8udXJsO1xyXG4gIH0pO1xyXG4gIGltZ1JlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ2ltZ1JlZicpO1xyXG4gIGltZ0NsaXBSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdpbWdDbGlwUmVmJyk7XHJcbiAgYm91bmRhcnlSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdib3VuZGFyeVJlZicpO1xyXG4gIGN1dFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ2N1dFJlZicpO1xyXG4gIHJlYWR5ID0gc2lnbmFsKGZhbHNlKTtcclxuICBjdXRUeXBlID0gc2lnbmFsPFhVcGxvYWRDdXRUeXBlPignJyk7XHJcbiAgcHJvcG9ydGlvbiA9IHNpZ25hbCgxKTtcclxuICBvcmlnaW5hbFNpemUgPSB7XHJcbiAgICB3aWR0aDogMCxcclxuICAgIGhlaWdodDogMFxyXG4gIH07XHJcbiAgYm91bmRhcnlCb3ggPSB7XHJcbiAgICB3aWR0aDogMCxcclxuICAgIGhlaWdodDogMFxyXG4gIH07XHJcbiAgY3V0Qm94ID0ge1xyXG4gICAgd2lkdGg6IDAsXHJcbiAgICBoZWlnaHQ6IDAsXHJcbiAgICB4OiAwLFxyXG4gICAgeTogMFxyXG4gIH07XHJcbiAgY2xpcFJlY3QhOiB7XHJcbiAgICB0b3A6IG51bWJlcjtcclxuICAgIHJpZ2h0OiBudW1iZXI7XHJcbiAgICBib3R0b206IG51bWJlcjtcclxuICAgIGxlZnQ6IG51bWJlcjtcclxuICB9O1xyXG5cclxuICBkb2MgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG5cclxuICBjbG9zZVBvcnRhbCA9IG91dHB1dDx2b2lkPigpO1xyXG4gIHN1cmVQb3J0YWwgPSBvdXRwdXQ8QmxvYj4oKTtcclxuICBwcml2YXRlIHVuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNldEN1dCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLnVuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q3V0KCkge1xyXG4gICAgbGV0IHdpZHRoID0gdGhpcy5pbWdSZWYoKS5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgbGV0IGhlaWdodCA9IHRoaXMuaW1nUmVmKCkubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY3V0UmVmKCkubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7d2lkdGh9cHhgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jdXRSZWYoKS5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYm91bmRhcnlSZWYoKS5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCBgJHt3aWR0aH1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJvdW5kYXJ5UmVmKCkubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmltZ1JlZigpLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3dpZHRofXB4YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaW1nUmVmKCkubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmltZ0NsaXBSZWYoKS5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCBgJHt3aWR0aH1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmltZ0NsaXBSZWYoKS5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YCk7XHJcbiAgICB0aGlzLmN1dEJveC53aWR0aCA9IHdpZHRoO1xyXG4gICAgdGhpcy5jdXRCb3guaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgdGhpcy5ib3VuZGFyeUJveCA9IHsgd2lkdGgsIGhlaWdodCB9O1xyXG4gICAgdGhpcy5jbGlwUmVjdCA9IHtcclxuICAgICAgdG9wOiAwLFxyXG4gICAgICByaWdodDogd2lkdGgsXHJcbiAgICAgIGJvdHRvbTogaGVpZ2h0LFxyXG4gICAgICBsZWZ0OiAwXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXRPcmlnaW5hbFNpemUoKTtcclxuICAgIHRoaXMucmVhZHkuc2V0KHRydWUpO1xyXG5cclxuICAgIGNvbnN0IG1vdXNlRG93biA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmN1dFJlZigpLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWRvd24nKS5waXBlKHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdCkpO1xyXG5cclxuICAgIG1vdXNlRG93bi5zdWJzY3JpYmUoKGRvd25NZTogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICBsZXQgeCA9IGRvd25NZS5wYWdlWDtcclxuICAgICAgbGV0IHkgPSBkb3duTWUucGFnZVk7XHJcbiAgICAgIGxldCBvZmZzZXRYID0gMDtcclxuICAgICAgbGV0IG9mZnNldFkgPSAwO1xyXG4gICAgICBjb25zdCBfdW5TdWIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgICBsZXQgY2xhc3NOYW1lID0gKGRvd25NZS50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQpLmNsYXNzTmFtZTtcclxuICAgICAgY29uc3Qgc3B0ID0gYCR7WFVwbG9hZFBvcnRhbFByZWZpeH0tY3V0LWA7XHJcbiAgICAgIGlmIChjbGFzc05hbWUuaW5jbHVkZXMoc3B0KSkge1xyXG4gICAgICAgIHRoaXMuY3V0VHlwZS5zZXQoY2xhc3NOYW1lLnJlcGxhY2Uoc3B0LCAnJykgYXMgWFVwbG9hZEN1dFR5cGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQsICdtb3VzZW1vdmUnKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbChfdW5TdWIpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKG1vdmVNZTogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICAgICAgb2Zmc2V0WCA9IG1vdmVNZS5wYWdlWCAtIHg7XHJcbiAgICAgICAgICBvZmZzZXRZID0gbW92ZU1lLnBhZ2VZIC0geTtcclxuICAgICAgICAgIHggPSBtb3ZlTWUucGFnZVg7XHJcbiAgICAgICAgICB5ID0gbW92ZU1lLnBhZ2VZO1xyXG4gICAgICAgICAgdGhpcy5zZXRDdXRFbGUodGhpcy5jdXRUeXBlKCksIG9mZnNldFgsIG9mZnNldFkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LCAnbW91c2V1cCcpXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKF91blN1YikpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmN1dFR5cGUuc2V0KCcnKTtcclxuICAgICAgICAgIF91blN1Yi5uZXh0KCk7XHJcbiAgICAgICAgICBfdW5TdWIuY29tcGxldGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0T3JpZ2luYWxTaXplKCkge1xyXG4gICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XHJcbiAgICBpbWcuc3JjID0gdGhpcy51cmwoKSE7XHJcbiAgICBpbWcub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLm9yaWdpbmFsU2l6ZSA9IHsgd2lkdGg6IGltZy53aWR0aCwgaGVpZ2h0OiBpbWcuaGVpZ2h0IH07XHJcbiAgICAgIHRoaXMucHJvcG9ydGlvbi5zZXQodGhpcy5ib3VuZGFyeUJveC53aWR0aCAvIHRoaXMub3JpZ2luYWxTaXplLndpZHRoKTtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzZXRDdXRFbGUocG9zaXRpb246IFhVcGxvYWRDdXRUeXBlLCB4OiBudW1iZXIsIHk6IG51bWJlcikge1xyXG4gICAgc3dpdGNoIChwb3NpdGlvbikge1xyXG4gICAgICBjYXNlICd0b3Atc3RhcnQnOlxyXG4gICAgICAgIHRoaXMuY3V0Qm94LndpZHRoIC09IHg7XHJcbiAgICAgICAgdGhpcy5jdXRCb3guaGVpZ2h0IC09IHk7XHJcbiAgICAgICAgdGhpcy5jdXRCb3gueCArPSB4O1xyXG4gICAgICAgIHRoaXMuY3V0Qm94LnkgKz0geTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndG9wJzpcclxuICAgICAgICB0aGlzLmN1dEJveC5oZWlnaHQgLT0geTtcclxuICAgICAgICB0aGlzLmN1dEJveC55ICs9IHk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RvcC1lbmQnOlxyXG4gICAgICAgIHRoaXMuY3V0Qm94LndpZHRoICs9IHg7XHJcbiAgICAgICAgdGhpcy5jdXRCb3guaGVpZ2h0IC09IHk7XHJcbiAgICAgICAgdGhpcy5jdXRCb3gueSArPSB5O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgICAgdGhpcy5jdXRCb3gud2lkdGggKz0geDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYm90dG9tLWVuZCc6XHJcbiAgICAgICAgdGhpcy5jdXRCb3gud2lkdGggKz0geDtcclxuICAgICAgICB0aGlzLmN1dEJveC5oZWlnaHQgKz0geTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgICB0aGlzLmN1dEJveC5oZWlnaHQgKz0geTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYm90dG9tLXN0YXJ0JzpcclxuICAgICAgICB0aGlzLmN1dEJveC53aWR0aCAtPSB4O1xyXG4gICAgICAgIHRoaXMuY3V0Qm94LmhlaWdodCArPSB5O1xyXG4gICAgICAgIHRoaXMuY3V0Qm94LnggKz0geDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgICAgdGhpcy5jdXRCb3gud2lkdGggLT0geDtcclxuICAgICAgICB0aGlzLmN1dEJveC54ICs9IHg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJyc6XHJcbiAgICAgICAgdGhpcy5jdXRCb3gueCArPSB4O1xyXG4gICAgICAgIHRoaXMuY3V0Qm94LnkgKz0geTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGNvbnN0IGJvdW5kYXJ5UmVjdCA9IHRoaXMuYm91bmRhcnlSZWYoKS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgIGNvbnN0IG1heFkgPSBib3VuZGFyeVJlY3QuaGVpZ2h0IC0gdGhpcy5jdXRCb3guaGVpZ2h0O1xyXG4gICAgY29uc3QgbWF4WCA9IGJvdW5kYXJ5UmVjdC53aWR0aCAtIHRoaXMuY3V0Qm94LndpZHRoO1xyXG5cclxuICAgIHRoaXMuY3V0Qm94LnggPSBYQ2xhbXAodGhpcy5jdXRCb3gueCwgMCwgbWF4WCk7XHJcbiAgICB0aGlzLmN1dEJveC55ID0gWENsYW1wKHRoaXMuY3V0Qm94LnksIDAsIG1heFkpO1xyXG5cclxuICAgIC8vIGNvbnN0IG1heFdpZHRoID0gYm91bmRhcnlSZWN0LmhlaWdodCAtIHRoaXMuY3V0Qm94Lnk7XHJcbiAgICAvLyBjb25zdCBtYXhIZWlnaHQgPSBib3VuZGFyeVJlY3Qud2lkdGggLSB0aGlzLmN1dEJveC54O1xyXG5cclxuICAgIC8vIHRoaXMuY3V0Qm94LndpZHRoID0gWENsYW1wKHRoaXMuY3V0Qm94LndpZHRoLCAwLCBtYXhXaWR0aCk7XHJcbiAgICAvLyB0aGlzLmN1dEJveC5oZWlnaHQgPSBYQ2xhbXAodGhpcy5jdXRCb3gud2lkdGgsIDAsIG1heEhlaWdodCk7XHJcblxyXG4gICAgdGhpcy5jbGlwUmVjdCA9IHtcclxuICAgICAgdG9wOiB0aGlzLmN1dEJveC55LFxyXG4gICAgICByaWdodDogdGhpcy5jdXRCb3gud2lkdGggKyB0aGlzLmN1dEJveC54LFxyXG4gICAgICBib3R0b206IHRoaXMuY3V0Qm94LmhlaWdodCArIHRoaXMuY3V0Qm94LnksXHJcbiAgICAgIGxlZnQ6IHRoaXMuY3V0Qm94LnhcclxuICAgIH07XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxyXG4gICAgICB0aGlzLmltZ0NsaXBSZWYoKS5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAnY2xpcCcsXHJcbiAgICAgIGByZWN0KCR7dGhpcy5jbGlwUmVjdC50b3B9cHgsJHt0aGlzLmNsaXBSZWN0LnJpZ2h0fXB4LCR7dGhpcy5jbGlwUmVjdC5ib3R0b219cHgsJHt0aGlzLmNsaXBSZWN0LmxlZnR9cHgpYFxyXG4gICAgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jdXRSZWYoKS5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCBgJHt0aGlzLmN1dEJveC53aWR0aH1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmN1dFJlZigpLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHt0aGlzLmN1dEJveC5oZWlnaHR9cHhgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXHJcbiAgICAgIHRoaXMuY3V0UmVmKCkubmF0aXZlRWxlbWVudCxcclxuICAgICAgJ3RyYW5zZm9ybScsXHJcbiAgICAgIGB0cmFuc2xhdGUzZCgke3RoaXMuY3V0Qm94Lnh9cHgsICR7dGhpcy5jdXRCb3gueX1weCwgMClgXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc3VyZSgpIHtcclxuICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgY2FudmFzLndpZHRoID0gdGhpcy5jdXRCb3gud2lkdGggLyB0aGlzLnByb3BvcnRpb24oKTtcclxuICAgIGNhbnZhcy5oZWlnaHQgPSB0aGlzLmN1dEJveC5oZWlnaHQgLyB0aGlzLnByb3BvcnRpb24oKTtcclxuICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKSE7XHJcbiAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcclxuICAgIGltZy5zcmMgPSB0aGlzLnVybCgpITtcclxuICAgIGltZy5jcm9zc09yaWdpbiA9ICdhbm9ueW1vdXMnO1xyXG4gICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1nLCAtdGhpcy5jdXRCb3gueCAvIHRoaXMucHJvcG9ydGlvbigpLCAtdGhpcy5jdXRCb3gueSAvIHRoaXMucHJvcG9ydGlvbigpKTtcclxuICAgICAgY2FudmFzLnRvQmxvYigoYmxvYikgPT4ge1xyXG4gICAgICAgIHRoaXMuc3VyZVBvcnRhbC5lbWl0KGJsb2IgYXMgQmxvYik7XHJcbiAgICAgICAgdGhpcy5jbG9zZVBvcnRhbC5lbWl0KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbCB7eyBjdXRUeXBlKCkgfX1cIiBbY2xhc3MueC11cGxvYWQtcG9ydGFsLXJlYWR5XT1cInJlYWR5KClcIj5cclxuICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLXRvb2xzXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLXRpdGxlXCI+XHJcbiAgICAgIDx4LWljb24gdHlwZT1cImZ0by1pbWFnZVwiPjwveC1pY29uPlxyXG4gICAgICA8c3Bhbj57eyBuYW1lKCkgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDx4LWljb24gY2xhc3M9XCJ4LXVwbG9hZC1wb3J0YWwtY2xvc2VcIiB0eXBlPVwiZnRvLXhcIiAoY2xpY2spPVwiY2xvc2VQb3J0YWwuZW1pdCgpXCI+PC94LWljb24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1pbWdcIj5cclxuICAgIDxpbWcgI2ltZ1JlZiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1mdWxsLWltZ1wiIFtzcmNdPVwidXJsKClcIiAvPlxyXG4gICAgPGRpdiAjYm91bmRhcnlSZWYgY2xhc3M9XCJ4LXVwbG9hZC1wb3J0YWwtYm91bmRhcnlcIj5cclxuICAgICAgPGltZyAjaW1nQ2xpcFJlZiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1jbGlwLWltZ1wiIFtzcmNdPVwidXJsKClcIiAvPlxyXG4gICAgICA8ZGl2ICNjdXRSZWYgY2xhc3M9XCJ4LXVwbG9hZC1wb3J0YWwtY3V0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1jdXQtdG9wLXN0YXJ0XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1jdXQtdG9wXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1jdXQtdG9wLWVuZFwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LXVwbG9hZC1wb3J0YWwtY3V0LWxlZnRcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWN1dC1yaWdodFwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LXVwbG9hZC1wb3J0YWwtY3V0LWJvdHRvbS1zdGFydFwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LXVwbG9hZC1wb3J0YWwtY3V0LWJvdHRvbVwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LXVwbG9hZC1wb3J0YWwtY3V0LWJvdHRvbS1lbmRcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWJvdHRvbS10b29sc1wiPlxyXG4gICAgPHgtaWNvbiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1jbG9zZVwiIHR5cGU9XCJmdG8tY2hlY2tcIiAoY2xpY2spPVwic3VyZSgpXCI+PC94LWljb24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,233 +0,0 @@
1
- import { HttpClient, HttpEventType, HttpRequest, HttpHeaders } from '@angular/common/http';
2
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewContainerRef, inject, viewChild, signal, computed } from '@angular/core';
3
- import { XUploadPrefix, XUploadProperty, XUploadPortalPrefix } from './upload.property';
4
- import { XIsArray, XIsEmpty, XIsTemplateRef } from '@ng-nest/ui/core';
5
- import { map } from 'rxjs/operators';
6
- import { XI18nService, zh_CN } from '@ng-nest/ui/i18n';
7
- import { XPortalService } from '@ng-nest/ui/portal';
8
- import { XUploadPortalComponent } from './upload-portal.component';
9
- import { XValueAccessor } from '@ng-nest/ui/base-form';
10
- import { XIconComponent } from '@ng-nest/ui/icon';
11
- import { XOutletDirective } from '@ng-nest/ui/outlet';
12
- import { XButtonComponent } from '@ng-nest/ui/button';
13
- import { XImageComponent, XImageGroupComponent } from '@ng-nest/ui/image';
14
- import { XProgressComponent } from '@ng-nest/ui/progress';
15
- import { NgTemplateOutlet } from '@angular/common';
16
- import { toSignal } from '@angular/core/rxjs-interop';
17
- import * as i0 from "@angular/core";
18
- export class XUploadComponent extends XUploadProperty {
19
- writeValue(value) {
20
- this.value.set(value);
21
- this.setFiles();
22
- }
23
- constructor() {
24
- super();
25
- this.http = inject(HttpClient, { optional: true });
26
- this.portalService = inject(XPortalService);
27
- this.viewContainerRef = inject(ViewContainerRef);
28
- this.i18n = inject(XI18nService);
29
- this.file = viewChild.required('file');
30
- this.files = signal([]);
31
- this.showUpload = signal(false);
32
- this.uploadNodes = signal([]);
33
- this.locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.upload)), { initialValue: zh_CN.upload });
34
- this.getText = computed(() => this.text() || this.locale().uploadText);
35
- this.isTemplateText = computed(() => XIsTemplateRef(this.getText()));
36
- this.acceptSignal = computed(() => {
37
- if (this.type() === 'img' && XIsEmpty(this.accept()))
38
- return 'image/*';
39
- return this.accept();
40
- });
41
- if (!this.http) {
42
- throw new Error(`${XUploadPrefix}: Not found 'HttpClient', You can import 'HttpClientModule' in your root module.`);
43
- }
44
- }
45
- setFiles() {
46
- if (!Array.isArray(this.value()))
47
- return;
48
- this.files.set(this.value().map((x) => {
49
- if (!x.state)
50
- x.state = 'success';
51
- return x;
52
- }));
53
- }
54
- change(event) {
55
- let input = event.target;
56
- if (typeof input === 'undefined' || input.files?.length === 0)
57
- return;
58
- let files = [];
59
- let max = this.maxLimit() > -1 ? this.maxLimit() : input.files.length;
60
- for (let i = 0; i < max; i++) {
61
- let file = input.files.item(i);
62
- file.state = 'ready';
63
- files = [...files, file];
64
- }
65
- if (files.length > 0)
66
- this.showUpload.set(true);
67
- if (this.multipleModel() === 'cover') {
68
- this.files.set(files);
69
- }
70
- else if (this.multipleModel() === 'add') {
71
- this.files.update((x) => [...x, ...files]);
72
- }
73
- this.value.set(this.files());
74
- this.onChange && this.onChange(this.value());
75
- this.onUploading();
76
- input.value = '';
77
- }
78
- remove(file, index) {
79
- this.files.update((x) => {
80
- x.splice(index, 1);
81
- return [...x];
82
- });
83
- if (this.files().length === 0)
84
- this.file().nativeElement.value = '';
85
- this.showUpload.set(this.files().find((x) => x.state === 'ready') != null);
86
- const vindex = this.value().indexOf(file);
87
- if (vindex > -1) {
88
- this.value.update((x) => {
89
- x.splice(vindex, 1);
90
- return [...x];
91
- });
92
- this.onChange && this.onChange(this.value());
93
- }
94
- this.removeClick.emit({ file: file, index: index });
95
- }
96
- uploadClick() {
97
- if (this.disabledComputed())
98
- return;
99
- this.file().nativeElement.click();
100
- }
101
- onUploading() {
102
- if (!this.action)
103
- return;
104
- let readyFiles = this.files().filter((x) => x.state === 'ready');
105
- readyFiles.forEach((x) => {
106
- this.uploadFile(x);
107
- });
108
- }
109
- uploadFile(file, index = -1) {
110
- let formData = new FormData();
111
- formData.append('file', file);
112
- const req = new HttpRequest('POST', this.action(), formData, {
113
- reportProgress: true,
114
- responseType: 'arraybuffer',
115
- withCredentials: false,
116
- headers: new HttpHeaders(this.headers())
117
- });
118
- this.http
119
- ?.request(req)
120
- .pipe(map((event) => this.getEventMessage(event, file, (body) => {
121
- let blob = new Blob([body]);
122
- let reader = new FileReader();
123
- reader.readAsText(blob, 'utf-8');
124
- reader.onload = () => {
125
- let body = [];
126
- try {
127
- body = JSON.parse(reader.result);
128
- if (XIsArray(body) && body.length > 0) {
129
- file.url = body[0];
130
- }
131
- file.body = body;
132
- }
133
- catch (e) {
134
- console.error(e);
135
- }
136
- if (index !== -1) {
137
- this.files.update((x) => {
138
- x[index] = file;
139
- return [...x];
140
- });
141
- }
142
- this.uploadSuccess.emit(file);
143
- };
144
- })))
145
- .subscribe({
146
- complete: () => {
147
- this.showUpload.set(this.files().find((y) => y.state === 'ready') != null);
148
- },
149
- error: () => {
150
- file.state = 'error';
151
- this.uploadError.emit(file);
152
- }
153
- });
154
- }
155
- getEventMessage(event, file, successFunc) {
156
- switch (event.type) {
157
- case HttpEventType.Sent:
158
- file.state = 'ready';
159
- this.uploadReady.emit(file);
160
- return this.locale().beginUploadText;
161
- case HttpEventType.UploadProgress:
162
- file.state = 'uploading';
163
- if (event.total)
164
- file.percent = Math.round((100 * event.loaded) / event.total);
165
- this.uploading.emit(file);
166
- return this.locale().uploadingText;
167
- case HttpEventType.Response:
168
- file.state = 'success';
169
- successFunc(event.body);
170
- return this.locale().uploadCompleted;
171
- }
172
- return;
173
- }
174
- onImgCut(file, index) {
175
- this.portal = this.portalService.attach({
176
- content: XUploadPortalComponent,
177
- viewContainerRef: this.viewContainerRef,
178
- overlayConfig: {
179
- panelClass: [XUploadPortalPrefix],
180
- hasBackdrop: true,
181
- positionStrategy: this.portalService.setPlace('center')
182
- }
183
- });
184
- this.setInstance(file, index);
185
- }
186
- setInstance(file, index) {
187
- let componentRef = this.portal?.componentRef;
188
- if (!componentRef)
189
- return;
190
- componentRef.setInput('file', file);
191
- const { closePortal, surePortal } = componentRef.instance;
192
- closePortal.subscribe(() => this.closePortal());
193
- surePortal.subscribe((blob) => {
194
- const fl = new File([blob], file.name, { type: blob.type });
195
- fl.state = 'ready';
196
- this.uploadFile(fl, index);
197
- });
198
- }
199
- portalAttached() {
200
- return this.portal?.overlayRef?.hasAttached();
201
- }
202
- closePortal() {
203
- if (this.portalAttached()) {
204
- this.portal?.overlayRef?.detach();
205
- return true;
206
- }
207
- return false;
208
- }
209
- destroyPortal() {
210
- this.portal?.overlayRef?.dispose();
211
- }
212
- imgError(_event, file) {
213
- file.state = 'error';
214
- }
215
- imgLoad(file) {
216
- file.state = 'success';
217
- }
218
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
219
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: XUploadComponent, isStandalone: true, selector: "x-upload", providers: [XValueAccessor(XUploadComponent)], viewQueries: [{ propertyName: "file", first: true, predicate: ["file"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #upload class=\"x-upload x-upload-{{ type() }}\" [class.x-disabled]=\"disabledComputed()\">\r\n <input\r\n type=\"file\"\r\n #file\r\n (change)=\"change($event)\"\r\n [attr.accept]=\"acceptSignal()\"\r\n [multiple]=\"multiple()\"\r\n style=\"display: none\"\r\n />\r\n\r\n @switch (type()) {\r\n @case ('list') {\r\n <ng-container *ngTemplateOutlet=\"uploadBtnTpl\"></ng-container>\r\n <ng-container *xOutlet=\"filesTpl(); context: { $files: files() }\">\r\n <ul class=\"x-upload-files\">\r\n @for (file of files(); track file; let i = $index) {\r\n <li [class.x-upload-disabled]=\"!download()\">\r\n @if (download()) {\r\n <a [href]=\"file.url\" target=\"_blank\" [title]=\"file.name\">\r\n <x-icon type=\"fto-file-text\"></x-icon>\r\n <span class=\"x-upload-filename\">{{ file.name }}</span>\r\n </a>\r\n } @else {\r\n <a>\r\n <x-icon type=\"fto-file-text\"></x-icon>\r\n <span class=\"x-upload-filename\">{{ file.name }}</span>\r\n </a>\r\n }\r\n\r\n @switch (file.state) {\r\n @case ('ready') {\r\n <x-icon class=\"x-upload-state\" type=\"fto-clock\"></x-icon>\r\n }\r\n @case ('uploading') {\r\n <span class=\"x-upload-percent\">{{ file.percent }}%</span>\r\n }\r\n @case ('success') {\r\n <x-icon class=\"x-upload-state success\" type=\"fto-check\"></x-icon>\r\n }\r\n @case ('error') {\r\n <x-icon class=\"x-upload-state error\" type=\"fto-info\"></x-icon>\r\n }\r\n }\r\n @if (file.state !== 'uploading') {\r\n <x-button icon=\"fto-x\" (click)=\"remove(file, i)\" onlyIcon closable size=\"mini\"></x-button>\r\n }\r\n </li>\r\n }\r\n </ul>\r\n </ng-container>\r\n }\r\n @case ('img') {\r\n <x-image-group>\r\n @for (file of files(); track file; let i = $index) {\r\n <x-image\r\n [src]=\"file.url\"\r\n (load)=\"imgLoad(file)\"\r\n (error)=\"imgError($event, file)\"\r\n class=\"{{ file.state }}\"\r\n [previewTpl]=\"previewTpl\"\r\n [fallback]=\"imgFallback()\"\r\n >\r\n </x-image>\r\n <ng-template #previewTpl let-image=\"$image\">\r\n @if (file.state == 'uploading') {\r\n <div class=\"x-upload-uploading\">\r\n <x-progress [percent]=\"file.percent!\" info=\"false\"></x-progress>\r\n </div>\r\n }\r\n <div class=\"x-image-overlay\">\r\n @switch (file.state) {\r\n @case ('ready') {\r\n <x-icon class=\"x-upload-state\" type=\"fto-clock\"></x-icon>\r\n }\r\n @case ('success') {\r\n <x-icon type=\"fto-eye\" (click)=\"image.onPreview()\"></x-icon>\r\n }\r\n }\r\n @if (imgCut() && file.state === 'success') {\r\n <x-icon type=\"fto-crop\" (click)=\"onImgCut(file, i)\"></x-icon>\r\n }\r\n @if (file.state !== 'uploading') {\r\n <x-icon type=\"fto-trash-2\" (click)=\"remove(file, i)\"></x-icon>\r\n }\r\n </div>\r\n </ng-template>\r\n }\r\n <ng-container *ngTemplateOutlet=\"uploadBtnTpl\"></ng-container>\r\n </x-image-group>\r\n }\r\n }\r\n</div>\r\n\r\n<ng-template #uploadBtnTpl>\r\n <div class=\"x-upload-buttons\" [class.x-upload-buttons-template]=\"isTemplateText()\" (click)=\"uploadClick()\">\r\n <ng-container *xOutlet=\"getText()\">\r\n <x-button icon=\"fto-upload\" [disabled]=\"disabledComputed()\" type=\"primary\">{{ getText() }}</x-button>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [".x-upload{margin:0;padding:0}.x-upload{color:var(--x-text);font-size:var(--x-font-size)}.x-upload-buttons{display:inline-flex}.x-upload-buttons>.x-button:not(:first-child){margin-left:.4rem}.x-upload-buttons-template{cursor:pointer}.x-upload-files{padding:0;margin:.4rem 0 0;list-style:none}.x-upload-files>li{margin:0;padding:0 .2rem;height:calc(var(--x-font-size) + .6rem);line-height:calc(var(--x-font-size) + .6rem);display:flex;align-items:center;overflow:hidden;cursor:pointer;border-radius:var(--x-border-radius)}.x-upload-files>li .x-icon{color:var(--x-text-400);font-size:1rem}.x-upload-files>li .x-icon.x-upload-state.success{color:var(--x-success)}.x-upload-files>li .x-icon.x-upload-state.error{color:var(--x-danger)}.x-upload-files>li a{flex:1;display:flex;align-items:center;height:calc(var(--x-font-size) + .6rem);line-height:calc(var(--x-font-size) + .6rem);color:inherit;text-decoration:none;overflow:hidden}.x-upload-files>li span.x-upload-filename{margin-left:.2rem;flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-upload-files>li span.x-upload-percent{color:var(--x-text-400)}.x-upload-files>li>.x-button{display:none;padding:0}.x-upload-files>li:not(:first-child){margin-top:.2rem}.x-upload-files>li.x-upload-disabled{cursor:default}.x-upload-files>li.x-upload-disabled>a{cursor:default}.x-upload-files>li:hover:not(.x-upload-disabled){color:var(--x-primary);background-color:var(--x-background)}.x-upload-files>li:hover>.x-button{display:inline-block}.x-upload-files>li:hover>.x-upload-state{display:none}.x-upload-img{display:flex;flex-wrap:wrap}.x-upload-img .x-upload-buttons-template{display:inline-flex;align-items:center;justify-content:center;flex-direction:column;width:6.25rem;height:6.25rem;margin-right:.5rem;margin-bottom:.5rem;border:var(--x-border-width) dashed var(--x-border);background:var(--x-background);border-radius:var(--x-border-radius);transition:border-color var(--x-animation-duration-base)}.x-upload-img .x-upload-buttons-template:hover{border-color:var(--x-primary)}.x-upload-img .x-image{height:6.25rem;width:6.25rem;padding:.325rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);transition:border-color var(--x-animation-duration-base);margin-right:.5rem;margin-bottom:.5rem;position:relative;display:flex;align-items:center;justify-content:center}.x-upload-img .x-image-overlay{border-radius:var(--x-border-radius)}.x-upload-img .x-image-overlay x-icon{font-size:1rem;color:#fffc;padding:.25rem;transition:color var(--x-animation-duration-base)}.x-upload-img .x-image-overlay x-icon:hover{color:#fff}.x-upload-img x-image.error .x-image{border-color:var(--x-danger)}.x-upload-img x-image.error .x-image-error-icon{color:var(--x-danger)}.x-upload-uploading{position:absolute;margin-top:3rem;width:calc(100% - 1rem)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XImageGroupComponent, selector: "x-image-group" }, { kind: "component", type: XImageComponent, selector: "x-image" }, { kind: "component", type: XProgressComponent, selector: "x-progress" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
220
- }
221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XUploadComponent, decorators: [{
222
- type: Component,
223
- args: [{ selector: `${XUploadPrefix}`, standalone: true, imports: [
224
- NgTemplateOutlet,
225
- XIconComponent,
226
- XOutletDirective,
227
- XButtonComponent,
228
- XImageGroupComponent,
229
- XImageComponent,
230
- XProgressComponent
231
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XUploadComponent)], template: "<div #upload class=\"x-upload x-upload-{{ type() }}\" [class.x-disabled]=\"disabledComputed()\">\r\n <input\r\n type=\"file\"\r\n #file\r\n (change)=\"change($event)\"\r\n [attr.accept]=\"acceptSignal()\"\r\n [multiple]=\"multiple()\"\r\n style=\"display: none\"\r\n />\r\n\r\n @switch (type()) {\r\n @case ('list') {\r\n <ng-container *ngTemplateOutlet=\"uploadBtnTpl\"></ng-container>\r\n <ng-container *xOutlet=\"filesTpl(); context: { $files: files() }\">\r\n <ul class=\"x-upload-files\">\r\n @for (file of files(); track file; let i = $index) {\r\n <li [class.x-upload-disabled]=\"!download()\">\r\n @if (download()) {\r\n <a [href]=\"file.url\" target=\"_blank\" [title]=\"file.name\">\r\n <x-icon type=\"fto-file-text\"></x-icon>\r\n <span class=\"x-upload-filename\">{{ file.name }}</span>\r\n </a>\r\n } @else {\r\n <a>\r\n <x-icon type=\"fto-file-text\"></x-icon>\r\n <span class=\"x-upload-filename\">{{ file.name }}</span>\r\n </a>\r\n }\r\n\r\n @switch (file.state) {\r\n @case ('ready') {\r\n <x-icon class=\"x-upload-state\" type=\"fto-clock\"></x-icon>\r\n }\r\n @case ('uploading') {\r\n <span class=\"x-upload-percent\">{{ file.percent }}%</span>\r\n }\r\n @case ('success') {\r\n <x-icon class=\"x-upload-state success\" type=\"fto-check\"></x-icon>\r\n }\r\n @case ('error') {\r\n <x-icon class=\"x-upload-state error\" type=\"fto-info\"></x-icon>\r\n }\r\n }\r\n @if (file.state !== 'uploading') {\r\n <x-button icon=\"fto-x\" (click)=\"remove(file, i)\" onlyIcon closable size=\"mini\"></x-button>\r\n }\r\n </li>\r\n }\r\n </ul>\r\n </ng-container>\r\n }\r\n @case ('img') {\r\n <x-image-group>\r\n @for (file of files(); track file; let i = $index) {\r\n <x-image\r\n [src]=\"file.url\"\r\n (load)=\"imgLoad(file)\"\r\n (error)=\"imgError($event, file)\"\r\n class=\"{{ file.state }}\"\r\n [previewTpl]=\"previewTpl\"\r\n [fallback]=\"imgFallback()\"\r\n >\r\n </x-image>\r\n <ng-template #previewTpl let-image=\"$image\">\r\n @if (file.state == 'uploading') {\r\n <div class=\"x-upload-uploading\">\r\n <x-progress [percent]=\"file.percent!\" info=\"false\"></x-progress>\r\n </div>\r\n }\r\n <div class=\"x-image-overlay\">\r\n @switch (file.state) {\r\n @case ('ready') {\r\n <x-icon class=\"x-upload-state\" type=\"fto-clock\"></x-icon>\r\n }\r\n @case ('success') {\r\n <x-icon type=\"fto-eye\" (click)=\"image.onPreview()\"></x-icon>\r\n }\r\n }\r\n @if (imgCut() && file.state === 'success') {\r\n <x-icon type=\"fto-crop\" (click)=\"onImgCut(file, i)\"></x-icon>\r\n }\r\n @if (file.state !== 'uploading') {\r\n <x-icon type=\"fto-trash-2\" (click)=\"remove(file, i)\"></x-icon>\r\n }\r\n </div>\r\n </ng-template>\r\n }\r\n <ng-container *ngTemplateOutlet=\"uploadBtnTpl\"></ng-container>\r\n </x-image-group>\r\n }\r\n }\r\n</div>\r\n\r\n<ng-template #uploadBtnTpl>\r\n <div class=\"x-upload-buttons\" [class.x-upload-buttons-template]=\"isTemplateText()\" (click)=\"uploadClick()\">\r\n <ng-container *xOutlet=\"getText()\">\r\n <x-button icon=\"fto-upload\" [disabled]=\"disabledComputed()\" type=\"primary\">{{ getText() }}</x-button>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [".x-upload{margin:0;padding:0}.x-upload{color:var(--x-text);font-size:var(--x-font-size)}.x-upload-buttons{display:inline-flex}.x-upload-buttons>.x-button:not(:first-child){margin-left:.4rem}.x-upload-buttons-template{cursor:pointer}.x-upload-files{padding:0;margin:.4rem 0 0;list-style:none}.x-upload-files>li{margin:0;padding:0 .2rem;height:calc(var(--x-font-size) + .6rem);line-height:calc(var(--x-font-size) + .6rem);display:flex;align-items:center;overflow:hidden;cursor:pointer;border-radius:var(--x-border-radius)}.x-upload-files>li .x-icon{color:var(--x-text-400);font-size:1rem}.x-upload-files>li .x-icon.x-upload-state.success{color:var(--x-success)}.x-upload-files>li .x-icon.x-upload-state.error{color:var(--x-danger)}.x-upload-files>li a{flex:1;display:flex;align-items:center;height:calc(var(--x-font-size) + .6rem);line-height:calc(var(--x-font-size) + .6rem);color:inherit;text-decoration:none;overflow:hidden}.x-upload-files>li span.x-upload-filename{margin-left:.2rem;flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-upload-files>li span.x-upload-percent{color:var(--x-text-400)}.x-upload-files>li>.x-button{display:none;padding:0}.x-upload-files>li:not(:first-child){margin-top:.2rem}.x-upload-files>li.x-upload-disabled{cursor:default}.x-upload-files>li.x-upload-disabled>a{cursor:default}.x-upload-files>li:hover:not(.x-upload-disabled){color:var(--x-primary);background-color:var(--x-background)}.x-upload-files>li:hover>.x-button{display:inline-block}.x-upload-files>li:hover>.x-upload-state{display:none}.x-upload-img{display:flex;flex-wrap:wrap}.x-upload-img .x-upload-buttons-template{display:inline-flex;align-items:center;justify-content:center;flex-direction:column;width:6.25rem;height:6.25rem;margin-right:.5rem;margin-bottom:.5rem;border:var(--x-border-width) dashed var(--x-border);background:var(--x-background);border-radius:var(--x-border-radius);transition:border-color var(--x-animation-duration-base)}.x-upload-img .x-upload-buttons-template:hover{border-color:var(--x-primary)}.x-upload-img .x-image{height:6.25rem;width:6.25rem;padding:.325rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);transition:border-color var(--x-animation-duration-base);margin-right:.5rem;margin-bottom:.5rem;position:relative;display:flex;align-items:center;justify-content:center}.x-upload-img .x-image-overlay{border-radius:var(--x-border-radius)}.x-upload-img .x-image-overlay x-icon{font-size:1rem;color:#fffc;padding:.25rem;transition:color var(--x-animation-duration-base)}.x-upload-img .x-image-overlay x-icon:hover{color:#fff}.x-upload-img x-image.error .x-image{border-color:var(--x-danger)}.x-upload-img x-image.error .x-image-error-icon{color:var(--x-danger)}.x-upload-uploading{position:absolute;margin-top:3rem;width:calc(100% - 1rem)}\n"] }]
232
- }], ctorParameters: () => [] });
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3VwbG9hZC91cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQWEsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEcsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBRXZCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBZSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBZSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRSxPQUFPLEVBQXFCLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQs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Z0JBQWdCLG9KQUNoQixjQUFjLG1EQUNkLGdCQUFnQiw2RkFDaEIsZ0JBQWdCLHFEQUNoQixvQkFBb0IsMERBQ3BCLGVBQWUsb0RBQ2Ysa0JBQWtCOzsyRkFRVCxnQkFBZ0I7a0JBbEI1QixTQUFTOytCQUNFLEdBQUcsYUFBYSxFQUFFLGNBQ2hCLElBQUksV0FDUDt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixrQkFBa0I7cUJBQ25CLGlCQUdjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50VHlwZSwgSHR0cFJlcXVlc3QsIEh0dHBFdmVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBpbmplY3QsXHJcbiAgdmlld0NoaWxkLFxyXG4gIHNpZ25hbCxcclxuICBjb21wdXRlZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYVXBsb2FkUHJlZml4LCBYVXBsb2FkTm9kZSwgWFVwbG9hZFByb3BlcnR5LCBYVXBsb2FkUG9ydGFsUHJlZml4IH0gZnJvbSAnLi91cGxvYWQucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNBcnJheSwgWElzRW1wdHksIFhJc1RlbXBsYXRlUmVmIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4blVwbG9hZCwgemhfQ04gfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWFBvcnRhbE92ZXJsYXlSZWYsIFhQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWFVwbG9hZFBvcnRhbENvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkLXBvcnRhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcbmltcG9ydCB7IFhJY29uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaWNvbic7XHJcbmltcG9ydCB7IFhPdXRsZXREaXJlY3RpdmUgfSBmcm9tICdAbmctbmVzdC91aS9vdXRsZXQnO1xyXG5pbXBvcnQgeyBYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgWEltYWdlQ29tcG9uZW50LCBYSW1hZ2VHcm91cENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2ltYWdlJztcclxuaW1wb3J0IHsgWFByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvcHJvZ3Jlc3MnO1xyXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFVwbG9hZFByZWZpeH1gLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgIFhJY29uQ29tcG9uZW50LFxyXG4gICAgWE91dGxldERpcmVjdGl2ZSxcclxuICAgIFhCdXR0b25Db21wb25lbnQsXHJcbiAgICBYSW1hZ2VHcm91cENvbXBvbmVudCxcclxuICAgIFhJbWFnZUNvbXBvbmVudCxcclxuICAgIFhQcm9ncmVzc0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtYVmFsdWVBY2Nlc3NvcihYVXBsb2FkQ29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhVcGxvYWRDb21wb25lbnQgZXh0ZW5kcyBYVXBsb2FkUHJvcGVydHkge1xyXG4gIHByaXZhdGUgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50LCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xyXG4gIHByaXZhdGUgcG9ydGFsU2VydmljZSA9IGluamVjdChYUG9ydGFsU2VydmljZSk7XHJcbiAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xyXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChYSTE4blNlcnZpY2UpO1xyXG5cclxuICBmaWxlID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+KCdmaWxlJyk7XHJcbiAgZmlsZXMgPSBzaWduYWw8WFVwbG9hZE5vZGVbXT4oW10pO1xyXG4gIHNob3dVcGxvYWQgPSBzaWduYWwoZmFsc2UpO1xyXG4gIHVwbG9hZE5vZGVzID0gc2lnbmFsPFhVcGxvYWROb2RlW10+KFtdKTtcclxuICBsb2NhbGUgPSB0b1NpZ25hbCh0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlLnBpcGUobWFwKCh4KSA9PiB4LnVwbG9hZCBhcyBYSTE4blVwbG9hZCkpLCB7IGluaXRpYWxWYWx1ZTogemhfQ04udXBsb2FkIH0pO1xyXG4gIHBvcnRhbCE6IFhQb3J0YWxPdmVybGF5UmVmPFhVcGxvYWRQb3J0YWxDb21wb25lbnQ+O1xyXG5cclxuICBnZXRUZXh0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50ZXh0KCkgfHwgdGhpcy5sb2NhbGUoKS51cGxvYWRUZXh0KTtcclxuXHJcbiAgaXNUZW1wbGF0ZVRleHQgPSBjb21wdXRlZCgoKSA9PiBYSXNUZW1wbGF0ZVJlZih0aGlzLmdldFRleHQoKSkpO1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBYVXBsb2FkTm9kZVtdKSB7XHJcbiAgICB0aGlzLnZhbHVlLnNldCh2YWx1ZSk7XHJcbiAgICB0aGlzLnNldEZpbGVzKCk7XHJcbiAgfVxyXG5cclxuICBhY2NlcHRTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBpZiAodGhpcy50eXBlKCkgPT09ICdpbWcnICYmIFhJc0VtcHR5KHRoaXMuYWNjZXB0KCkpKSByZXR1cm4gJ2ltYWdlLyonO1xyXG4gICAgcmV0dXJuIHRoaXMuYWNjZXB0KCk7XHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIGlmICghdGhpcy5odHRwKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICBgJHtYVXBsb2FkUHJlZml4fTogTm90IGZvdW5kICdIdHRwQ2xpZW50JywgWW91IGNhbiBpbXBvcnQgJ0h0dHBDbGllbnRNb2R1bGUnIGluIHlvdXIgcm9vdCBtb2R1bGUuYFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RmlsZXMoKSB7XHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSgpKSkgcmV0dXJuO1xyXG4gICAgdGhpcy5maWxlcy5zZXQoXHJcbiAgICAgIHRoaXMudmFsdWUoKS5tYXAoKHg6IFhVcGxvYWROb2RlKSA9PiB7XHJcbiAgICAgICAgaWYgKCF4LnN0YXRlKSB4LnN0YXRlID0gJ3N1Y2Nlc3MnO1xyXG4gICAgICAgIHJldHVybiB4O1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZShldmVudDogRXZlbnQpIHtcclxuICAgIGxldCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3VuZGVmaW5lZCcgfHwgaW5wdXQuZmlsZXM/Lmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG4gICAgbGV0IGZpbGVzOiBYVXBsb2FkTm9kZVtdID0gW107XHJcbiAgICBsZXQgbWF4ID0gdGhpcy5tYXhMaW1pdCgpID4gLTEgPyB0aGlzLm1heExpbWl0KCkgOiAoaW5wdXQuZmlsZXMgYXMgRmlsZUxpc3QpLmxlbmd0aDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWF4OyBpKyspIHtcclxuICAgICAgbGV0IGZpbGU6IFhVcGxvYWROb2RlID0gKGlucHV0LmZpbGVzIGFzIEZpbGVMaXN0KS5pdGVtKGkpIGFzIFhVcGxvYWROb2RlO1xyXG4gICAgICBmaWxlLnN0YXRlID0gJ3JlYWR5JztcclxuICAgICAgZmlsZXMgPSBbLi4uZmlsZXMsIGZpbGVdO1xyXG4gICAgfVxyXG4gICAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHRoaXMuc2hvd1VwbG9hZC5zZXQodHJ1ZSk7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZU1vZGVsKCkgPT09ICdjb3ZlcicpIHtcclxuICAgICAgdGhpcy5maWxlcy5zZXQoZmlsZXMpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm11bHRpcGxlTW9kZWwoKSA9PT0gJ2FkZCcpIHtcclxuICAgICAgdGhpcy5maWxlcy51cGRhdGUoKHgpID0+IFsuLi54LCAuLi5maWxlc10pO1xyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZS5zZXQodGhpcy5maWxlcygpKTtcclxuICAgIHRoaXMub25DaGFuZ2UgJiYgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKCkpO1xyXG4gICAgdGhpcy5vblVwbG9hZGluZygpO1xyXG4gICAgaW5wdXQudmFsdWUgPSAnJztcclxuICB9XHJcblxyXG4gIHJlbW92ZShmaWxlOiBYVXBsb2FkTm9kZSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5maWxlcy51cGRhdGUoKHgpID0+IHtcclxuICAgICAgeC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICByZXR1cm4gWy4uLnhdO1xyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5maWxlcygpLmxlbmd0aCA9PT0gMCkgdGhpcy5maWxlKCkubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5zaG93VXBsb2FkLnNldCh0aGlzLmZpbGVzKCkuZmluZCgoeCkgPT4geC5zdGF0ZSA9PT0gJ3JlYWR5JykgIT0gbnVsbCk7XHJcbiAgICBjb25zdCB2aW5kZXggPSB0aGlzLnZhbHVlKCkuaW5kZXhPZihmaWxlKTtcclxuICAgIGlmICh2aW5kZXggPiAtMSkge1xyXG4gICAgICB0aGlzLnZhbHVlLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgIHguc3BsaWNlKHZpbmRleCwgMSk7XHJcbiAgICAgICAgcmV0dXJuIFsuLi54XTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UgJiYgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZW1vdmVDbGljay5lbWl0KHsgZmlsZTogZmlsZSwgaW5kZXg6IGluZGV4IH0pO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZENvbXB1dGVkKCkpIHJldHVybjtcclxuICAgIHRoaXMuZmlsZSgpLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICB9XHJcblxyXG4gIG9uVXBsb2FkaW5nKCkge1xyXG4gICAgaWYgKCF0aGlzLmFjdGlvbikgcmV0dXJuO1xyXG4gICAgbGV0IHJlYWR5RmlsZXMgPSB0aGlzLmZpbGVzKCkuZmlsdGVyKCh4KSA9PiB4LnN0YXRlID09PSAncmVhZHknKTtcclxuICAgIHJlYWR5RmlsZXMuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnVwbG9hZEZpbGUoeCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwbG9hZEZpbGUoZmlsZTogWFVwbG9hZE5vZGUsIGluZGV4ID0gLTEpIHtcclxuICAgIGxldCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XHJcbiAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BPU1QnLCB0aGlzLmFjdGlvbigpISwgZm9ybURhdGEsIHtcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyxcclxuICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycygpKVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmh0dHBcclxuICAgICAgPy5yZXF1ZXN0KHJlcSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChldmVudCkgPT5cclxuICAgICAgICAgIHRoaXMuZ2V0RXZlbnRNZXNzYWdlKGV2ZW50LCBmaWxlLCAoYm9keTogQmxvYlBhcnQpID0+IHtcclxuICAgICAgICAgICAgbGV0IGJsb2IgPSBuZXcgQmxvYihbYm9keV0pO1xyXG4gICAgICAgICAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoYmxvYiwgJ3V0Zi04Jyk7XHJcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IGJvZHkgPSBbXTtcclxuICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgYm9keSA9IEpTT04ucGFyc2UocmVhZGVyLnJlc3VsdCBhcyBzdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKFhJc0FycmF5KGJvZHkpICYmIGJvZHkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICBmaWxlLnVybCA9IGJvZHlbMF0gYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZmlsZS5ib2R5ID0gYm9keTtcclxuICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVzLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB4W2luZGV4XSA9IGZpbGU7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4ueF07XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy51cGxvYWRTdWNjZXNzLmVtaXQoZmlsZSk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaG93VXBsb2FkLnNldCh0aGlzLmZpbGVzKCkuZmluZCgoeSkgPT4geS5zdGF0ZSA9PT0gJ3JlYWR5JykgIT0gbnVsbCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgZmlsZS5zdGF0ZSA9ICdlcnJvcic7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZEVycm9yLmVtaXQoZmlsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldEV2ZW50TWVzc2FnZShldmVudDogSHR0cEV2ZW50PGFueT4sIGZpbGU6IFhVcGxvYWROb2RlLCBzdWNjZXNzRnVuYzogRnVuY3Rpb24pIHtcclxuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuU2VudDpcclxuICAgICAgICBmaWxlLnN0YXRlID0gJ3JlYWR5JztcclxuICAgICAgICB0aGlzLnVwbG9hZFJlYWR5LmVtaXQoZmlsZSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKCkuYmVnaW5VcGxvYWRUZXh0O1xyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3M6XHJcbiAgICAgICAgZmlsZS5zdGF0ZSA9ICd1cGxvYWRpbmcnO1xyXG4gICAgICAgIGlmIChldmVudC50b3RhbCkgZmlsZS5wZXJjZW50ID0gTWF0aC5yb3VuZCgoMTAwICogZXZlbnQubG9hZGVkKSAvIGV2ZW50LnRvdGFsKTtcclxuICAgICAgICB0aGlzLnVwbG9hZGluZy5lbWl0KGZpbGUpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZSgpLnVwbG9hZGluZ1RleHQ7XHJcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcclxuICAgICAgICBmaWxlLnN0YXRlID0gJ3N1Y2Nlc3MnO1xyXG4gICAgICAgIHN1Y2Nlc3NGdW5jKGV2ZW50LmJvZHkpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZSgpLnVwbG9hZENvbXBsZXRlZDtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIG9uSW1nQ3V0KGZpbGU6IFhVcGxvYWROb2RlLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnBvcnRhbCA9IHRoaXMucG9ydGFsU2VydmljZS5hdHRhY2goe1xyXG4gICAgICBjb250ZW50OiBYVXBsb2FkUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IHtcclxuICAgICAgICBwYW5lbENsYXNzOiBbWFVwbG9hZFBvcnRhbFByZWZpeF0sXHJcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5wb3J0YWxTZXJ2aWNlLnNldFBsYWNlKCdjZW50ZXInKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0SW5zdGFuY2UoZmlsZSwgaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5zdGFuY2UoZmlsZTogWFVwbG9hZE5vZGUsIGluZGV4OiBudW1iZXIpIHtcclxuICAgIGxldCBjb21wb25lbnRSZWYgPSB0aGlzLnBvcnRhbD8uY29tcG9uZW50UmVmO1xyXG4gICAgaWYgKCFjb21wb25lbnRSZWYpIHJldHVybjtcclxuICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dCgnZmlsZScsIGZpbGUpO1xyXG4gICAgY29uc3QgeyBjbG9zZVBvcnRhbCwgc3VyZVBvcnRhbCB9ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgY2xvc2VQb3J0YWwuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2VQb3J0YWwoKSk7XHJcbiAgICBzdXJlUG9ydGFsLnN1YnNjcmliZSgoYmxvYikgPT4ge1xyXG4gICAgICBjb25zdCBmbCA9IG5ldyBGaWxlKFtibG9iXSwgZmlsZS5uYW1lLCB7IHR5cGU6IGJsb2IudHlwZSB9KSBhcyBYVXBsb2FkTm9kZTtcclxuICAgICAgZmwuc3RhdGUgPSAncmVhZHknO1xyXG4gICAgICB0aGlzLnVwbG9hZEZpbGUoZmwsIGluZGV4KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcG9ydGFsQXR0YWNoZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZVBvcnRhbCgpIHtcclxuICAgIGlmICh0aGlzLnBvcnRhbEF0dGFjaGVkKCkpIHtcclxuICAgICAgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LmRldGFjaCgpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3lQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gIH1cclxuICBpbWdFcnJvcihfZXZlbnQ6IEVycm9yRXZlbnQsIGZpbGU6IFhVcGxvYWROb2RlKSB7XHJcbiAgICBmaWxlLnN0YXRlID0gJ2Vycm9yJztcclxuICB9XHJcbiAgaW1nTG9hZChmaWxlOiBYVXBsb2FkTm9kZSkge1xyXG4gICAgZmlsZS5zdGF0ZSA9ICdzdWNjZXNzJztcclxuICB9XHJcbn1cclxuIiwiPGRpdiAjdXBsb2FkIGNsYXNzPVwieC11cGxvYWQgeC11cGxvYWQte3sgdHlwZSgpIH19XCIgW2NsYXNzLngtZGlzYWJsZWRdPVwiZGlzYWJsZWRDb21wdXRlZCgpXCI+XHJcbiAgPGlucHV0XHJcbiAgICB0eXBlPVwiZmlsZVwiXHJcbiAgICAjZmlsZVxyXG4gICAgKGNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICBbYXR0ci5hY2NlcHRdPVwiYWNjZXB0U2lnbmFsKClcIlxyXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlKClcIlxyXG4gICAgc3R5bGU9XCJkaXNwbGF5OiBub25lXCJcclxuICAvPlxyXG5cclxuICBAc3dpdGNoICh0eXBlKCkpIHtcclxuICAgIEBjYXNlICgnbGlzdCcpIHtcclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVwbG9hZEJ0blRwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZmlsZXNUcGwoKTsgY29udGV4dDogeyAkZmlsZXM6IGZpbGVzKCkgfVwiPlxyXG4gICAgICAgIDx1bCBjbGFzcz1cIngtdXBsb2FkLWZpbGVzXCI+XHJcbiAgICAgICAgICBAZm9yIChmaWxlIG9mIGZpbGVzKCk7IHRyYWNrIGZpbGU7IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgIDxsaSBbY2xhc3MueC11cGxvYWQtZGlzYWJsZWRdPVwiIWRvd25sb2FkKClcIj5cclxuICAgICAgICAgICAgICBAaWYgKGRvd25sb2FkKCkpIHtcclxuICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cImZpbGUudXJsXCIgdGFyZ2V0PVwiX2JsYW5rXCIgW3RpdGxlXT1cImZpbGUubmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8eC1pY29uIHR5cGU9XCJmdG8tZmlsZS10ZXh0XCI+PC94LWljb24+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwieC11cGxvYWQtZmlsZW5hbWVcIj57eyBmaWxlLm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICA8YT5cclxuICAgICAgICAgICAgICAgICAgPHgtaWNvbiB0eXBlPVwiZnRvLWZpbGUtdGV4dFwiPjwveC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIngtdXBsb2FkLWZpbGVuYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgQHN3aXRjaCAoZmlsZS5zdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdyZWFkeScpIHtcclxuICAgICAgICAgICAgICAgICAgPHgtaWNvbiBjbGFzcz1cIngtdXBsb2FkLXN0YXRlXCIgdHlwZT1cImZ0by1jbG9ja1wiPjwveC1pY29uPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCd1cGxvYWRpbmcnKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwieC11cGxvYWQtcGVyY2VudFwiPnt7IGZpbGUucGVyY2VudCB9fSU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgICAgICAgICAgIDx4LWljb24gY2xhc3M9XCJ4LXVwbG9hZC1zdGF0ZSBzdWNjZXNzXCIgdHlwZT1cImZ0by1jaGVja1wiPjwveC1pY29uPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdlcnJvcicpIHtcclxuICAgICAgICAgICAgICAgICAgPHgtaWNvbiBjbGFzcz1cIngtdXBsb2FkLXN0YXRlIGVycm9yXCIgdHlwZT1cImZ0by1pbmZvXCI+PC94LWljb24+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBpZiAoZmlsZS5zdGF0ZSAhPT0gJ3VwbG9hZGluZycpIHtcclxuICAgICAgICAgICAgICAgIDx4LWJ1dHRvbiBpY29uPVwiZnRvLXhcIiAoY2xpY2spPVwicmVtb3ZlKGZpbGUsIGkpXCIgb25seUljb24gY2xvc2FibGUgc2l6ZT1cIm1pbmlcIj48L3gtYnV0dG9uPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L3VsPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIH1cclxuICAgIEBjYXNlICgnaW1nJykge1xyXG4gICAgICA8eC1pbWFnZS1ncm91cD5cclxuICAgICAgICBAZm9yIChmaWxlIG9mIGZpbGVzKCk7IHRyYWNrIGZpbGU7IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICA8eC1pbWFnZVxyXG4gICAgICAgICAgICBbc3JjXT1cImZpbGUudXJsXCJcclxuICAgICAgICAgICAgKGxvYWQpPVwiaW1nTG9hZChmaWxlKVwiXHJcbiAgICAgICAgICAgIChlcnJvcik9XCJpbWdFcnJvcigkZXZlbnQsIGZpbGUpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ7eyBmaWxlLnN0YXRlIH19XCJcclxuICAgICAgICAgICAgW3ByZXZpZXdUcGxdPVwicHJldmlld1RwbFwiXHJcbiAgICAgICAgICAgIFtmYWxsYmFja109XCJpbWdGYWxsYmFjaygpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwveC1pbWFnZT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcHJldmlld1RwbCBsZXQtaW1hZ2U9XCIkaW1hZ2VcIj5cclxuICAgICAgICAgICAgQGlmIChmaWxlLnN0YXRlID09ICd1cGxvYWRpbmcnKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLXVwbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgPHgtcHJvZ3Jlc3MgW3BlcmNlbnRdPVwiZmlsZS5wZXJjZW50IVwiIGluZm89XCJmYWxzZVwiPjwveC1wcm9ncmVzcz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1pbWFnZS1vdmVybGF5XCI+XHJcbiAgICAgICAgICAgICAgQHN3aXRjaCAoZmlsZS5zdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdyZWFkeScpIHtcclxuICAgICAgICAgICAgICAgICAgPHgtaWNvbiBjbGFzcz1cIngtdXBsb2FkLXN0YXRlXCIgdHlwZT1cImZ0by1jbG9ja1wiPjwveC1pY29uPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdzdWNjZXNzJykge1xyXG4gICAgICAgICAgICAgICAgICA8eC1pY29uIHR5cGU9XCJmdG8tZXllXCIgKGNsaWNrKT1cImltYWdlLm9uUHJldmlldygpXCI+PC94LWljb24+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBpZiAoaW1nQ3V0KCkgJiYgZmlsZS5zdGF0ZSA9PT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgICAgICAgICA8eC1pY29uIHR5cGU9XCJmdG8tY3JvcFwiIChjbGljayk9XCJvbkltZ0N1dChmaWxlLCBpKVwiPjwveC1pY29uPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAaWYgKGZpbGUuc3RhdGUgIT09ICd1cGxvYWRpbmcnKSB7XHJcbiAgICAgICAgICAgICAgICA8eC1pY29uIHR5cGU9XCJmdG8tdHJhc2gtMlwiIChjbGljayk9XCJyZW1vdmUoZmlsZSwgaSlcIj48L3gtaWNvbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICB9XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVwbG9hZEJ0blRwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3gtaW1hZ2UtZ3JvdXA+XHJcbiAgICB9XHJcbiAgfVxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdXBsb2FkQnRuVHBsPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXVwbG9hZC1idXR0b25zXCIgW2NsYXNzLngtdXBsb2FkLWJ1dHRvbnMtdGVtcGxhdGVdPVwiaXNUZW1wbGF0ZVRleHQoKVwiIChjbGljayk9XCJ1cGxvYWRDbGljaygpXCI+XHJcbiAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZ2V0VGV4dCgpXCI+XHJcbiAgICAgIDx4LWJ1dHRvbiBpY29uPVwiZnRvLXVwbG9hZFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZENvbXB1dGVkKClcIiB0eXBlPVwicHJpbWFyeVwiPnt7IGdldFRleHQoKSB9fTwveC1idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -1,16 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { XUploadComponent } from './upload.component';
3
- import * as i0 from "@angular/core";
4
- export class XUploadModule {
5
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: XUploadModule, imports: [XUploadComponent], exports: [XUploadComponent] }); }
7
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XUploadModule, imports: [XUploadComponent] }); }
8
- }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XUploadModule, decorators: [{
10
- type: NgModule,
11
- args: [{
12
- exports: [XUploadComponent],
13
- imports: [XUploadComponent]
14
- }]
15
- }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3VwbG9hZC91cGxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBTXRELE1BQU0sT0FBTyxhQUFhO2lJQUFiLGFBQWE7a0lBQWIsYUFBYSxZQUZkLGdCQUFnQixhQURoQixnQkFBZ0I7a0lBR2YsYUFBYSxZQUZkLGdCQUFnQjs7MkZBRWYsYUFBYTtrQkFKekIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDM0IsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtYVXBsb2FkQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbWFVwbG9hZENvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhVcGxvYWRNb2R1bGUge31cclxuIl19