@ng-nest/ui 12.0.5 → 12.0.10

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 (794) hide show
  1. package/auto-complete/auto-complete-portal.component.d.ts +3 -3
  2. package/auto-complete/auto-complete.component.d.ts +6 -2
  3. package/auto-complete/auto-complete.property.d.ts +17 -2
  4. package/back-top/back-top.component.d.ts +1 -2
  5. package/base-form/base-form.component.d.ts +1 -1
  6. package/base-form/base-form.property.d.ts +48 -3
  7. package/bundles/ng-nest-ui-affix.umd.js +25 -21
  8. package/bundles/ng-nest-ui-affix.umd.js.map +1 -1
  9. package/bundles/ng-nest-ui-alert.umd.js +25 -21
  10. package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
  11. package/bundles/ng-nest-ui-anchor.umd.js +26 -22
  12. package/bundles/ng-nest-ui-anchor.umd.js.map +1 -1
  13. package/bundles/ng-nest-ui-api.umd.js +12 -14
  14. package/bundles/ng-nest-ui-api.umd.js.map +1 -1
  15. package/bundles/ng-nest-ui-auto-complete.umd.js +74 -36
  16. package/bundles/ng-nest-ui-auto-complete.umd.js.map +1 -1
  17. package/bundles/ng-nest-ui-avatar.umd.js +25 -21
  18. package/bundles/ng-nest-ui-avatar.umd.js.map +1 -1
  19. package/bundles/ng-nest-ui-back-top.umd.js +27 -23
  20. package/bundles/ng-nest-ui-back-top.umd.js.map +1 -1
  21. package/bundles/ng-nest-ui-badge.umd.js +27 -22
  22. package/bundles/ng-nest-ui-badge.umd.js.map +1 -1
  23. package/bundles/ng-nest-ui-base-form.umd.js +67 -22
  24. package/bundles/ng-nest-ui-base-form.umd.js.map +1 -1
  25. package/bundles/ng-nest-ui-border.umd.js +12 -14
  26. package/bundles/ng-nest-ui-border.umd.js.map +1 -1
  27. package/bundles/ng-nest-ui-button.umd.js +36 -29
  28. package/bundles/ng-nest-ui-button.umd.js.map +1 -1
  29. package/bundles/ng-nest-ui-calendar.umd.js +29 -24
  30. package/bundles/ng-nest-ui-calendar.umd.js.map +1 -1
  31. package/bundles/ng-nest-ui-card.umd.js +25 -21
  32. package/bundles/ng-nest-ui-card.umd.js.map +1 -1
  33. package/bundles/ng-nest-ui-carousel.umd.js +35 -30
  34. package/bundles/ng-nest-ui-carousel.umd.js.map +1 -1
  35. package/bundles/ng-nest-ui-cascade.umd.js +94 -36
  36. package/bundles/ng-nest-ui-cascade.umd.js.map +1 -1
  37. package/bundles/ng-nest-ui-checkbox.umd.js +28 -23
  38. package/bundles/ng-nest-ui-checkbox.umd.js.map +1 -1
  39. package/bundles/ng-nest-ui-collapse.umd.js +31 -27
  40. package/bundles/ng-nest-ui-collapse.umd.js.map +1 -1
  41. package/bundles/ng-nest-ui-color-picker.umd.js +79 -44
  42. package/bundles/ng-nest-ui-color-picker.umd.js.map +1 -1
  43. package/bundles/ng-nest-ui-color.umd.js +26 -22
  44. package/bundles/ng-nest-ui-color.umd.js.map +1 -1
  45. package/bundles/ng-nest-ui-comment.umd.js +34 -29
  46. package/bundles/ng-nest-ui-comment.umd.js.map +1 -1
  47. package/bundles/ng-nest-ui-container.umd.js +46 -42
  48. package/bundles/ng-nest-ui-container.umd.js.map +1 -1
  49. package/bundles/ng-nest-ui-core.umd.js +136 -35
  50. package/bundles/ng-nest-ui-core.umd.js.map +1 -1
  51. package/bundles/ng-nest-ui-crumb.umd.js +28 -23
  52. package/bundles/ng-nest-ui-crumb.umd.js.map +1 -1
  53. package/bundles/ng-nest-ui-date-picker.umd.js +923 -176
  54. package/bundles/ng-nest-ui-date-picker.umd.js.map +1 -1
  55. package/bundles/ng-nest-ui-description.umd.js +35 -32
  56. package/bundles/ng-nest-ui-description.umd.js.map +1 -1
  57. package/bundles/ng-nest-ui-dialog.umd.js +27 -22
  58. package/bundles/ng-nest-ui-dialog.umd.js.map +1 -1
  59. package/bundles/ng-nest-ui-doc.umd.js +12 -14
  60. package/bundles/ng-nest-ui-doc.umd.js.map +1 -1
  61. package/bundles/ng-nest-ui-drawer.umd.js +27 -22
  62. package/bundles/ng-nest-ui-drawer.umd.js.map +1 -1
  63. package/bundles/ng-nest-ui-dropdown.umd.js +32 -27
  64. package/bundles/ng-nest-ui-dropdown.umd.js.map +1 -1
  65. package/bundles/ng-nest-ui-empty.umd.js +25 -21
  66. package/bundles/ng-nest-ui-empty.umd.js.map +1 -1
  67. package/bundles/ng-nest-ui-examples.umd.js +12 -14
  68. package/bundles/ng-nest-ui-examples.umd.js.map +1 -1
  69. package/bundles/ng-nest-ui-find.umd.js +45 -27
  70. package/bundles/ng-nest-ui-find.umd.js.map +1 -1
  71. package/bundles/ng-nest-ui-form.umd.js +36 -36
  72. package/bundles/ng-nest-ui-form.umd.js.map +1 -1
  73. package/bundles/ng-nest-ui-highlight.umd.js +27 -22
  74. package/bundles/ng-nest-ui-highlight.umd.js.map +1 -1
  75. package/bundles/ng-nest-ui-i18n.umd.js +545 -140
  76. package/bundles/ng-nest-ui-i18n.umd.js.map +1 -1
  77. package/bundles/ng-nest-ui-icon.umd.js +34 -29
  78. package/bundles/ng-nest-ui-icon.umd.js.map +1 -1
  79. package/bundles/ng-nest-ui-inner.umd.js +26 -22
  80. package/bundles/ng-nest-ui-inner.umd.js.map +1 -1
  81. package/bundles/ng-nest-ui-input-number.umd.js +44 -24
  82. package/bundles/ng-nest-ui-input-number.umd.js.map +1 -1
  83. package/bundles/ng-nest-ui-input.umd.js +208 -50
  84. package/bundles/ng-nest-ui-input.umd.js.map +1 -1
  85. package/bundles/ng-nest-ui-layout.umd.js +31 -27
  86. package/bundles/ng-nest-ui-layout.umd.js.map +1 -1
  87. package/bundles/ng-nest-ui-link.umd.js +25 -21
  88. package/bundles/ng-nest-ui-link.umd.js.map +1 -1
  89. package/bundles/ng-nest-ui-list.umd.js +35 -30
  90. package/bundles/ng-nest-ui-list.umd.js.map +1 -1
  91. package/bundles/ng-nest-ui-loading.umd.js +27 -22
  92. package/bundles/ng-nest-ui-loading.umd.js.map +1 -1
  93. package/bundles/ng-nest-ui-menu.umd.js +38 -31
  94. package/bundles/ng-nest-ui-menu.umd.js.map +1 -1
  95. package/bundles/ng-nest-ui-message-box.umd.js +53 -47
  96. package/bundles/ng-nest-ui-message-box.umd.js.map +1 -1
  97. package/bundles/ng-nest-ui-message.umd.js +26 -22
  98. package/bundles/ng-nest-ui-message.umd.js.map +1 -1
  99. package/bundles/ng-nest-ui-notification.umd.js +26 -22
  100. package/bundles/ng-nest-ui-notification.umd.js.map +1 -1
  101. package/bundles/ng-nest-ui-outlet.umd.js +22 -18
  102. package/bundles/ng-nest-ui-outlet.umd.js.map +1 -1
  103. package/bundles/ng-nest-ui-page-header.umd.js +25 -21
  104. package/bundles/ng-nest-ui-page-header.umd.js.map +1 -1
  105. package/bundles/ng-nest-ui-pagination.umd.js +115 -26
  106. package/bundles/ng-nest-ui-pagination.umd.js.map +1 -1
  107. package/bundles/ng-nest-ui-pattern.umd.js +12 -14
  108. package/bundles/ng-nest-ui-pattern.umd.js.map +1 -1
  109. package/bundles/ng-nest-ui-popconfirm.umd.js +25 -21
  110. package/bundles/ng-nest-ui-popconfirm.umd.js.map +1 -1
  111. package/bundles/ng-nest-ui-popover.umd.js +31 -26
  112. package/bundles/ng-nest-ui-popover.umd.js.map +1 -1
  113. package/bundles/ng-nest-ui-portal.umd.js +22 -18
  114. package/bundles/ng-nest-ui-portal.umd.js.map +1 -1
  115. package/bundles/ng-nest-ui-progress.umd.js +28 -23
  116. package/bundles/ng-nest-ui-progress.umd.js.map +1 -1
  117. package/bundles/ng-nest-ui-radio.umd.js +28 -23
  118. package/bundles/ng-nest-ui-radio.umd.js.map +1 -1
  119. package/bundles/ng-nest-ui-rate.umd.js +30 -26
  120. package/bundles/ng-nest-ui-rate.umd.js.map +1 -1
  121. package/bundles/ng-nest-ui-result.umd.js +25 -21
  122. package/bundles/ng-nest-ui-result.umd.js.map +1 -1
  123. package/bundles/ng-nest-ui-ripple.umd.js +25 -21
  124. package/bundles/ng-nest-ui-ripple.umd.js.map +1 -1
  125. package/bundles/ng-nest-ui-select.umd.js +53 -34
  126. package/bundles/ng-nest-ui-select.umd.js.map +1 -1
  127. package/bundles/ng-nest-ui-skeleton.umd.js +27 -22
  128. package/bundles/ng-nest-ui-skeleton.umd.js.map +1 -1
  129. package/bundles/ng-nest-ui-slider-select.umd.js +25 -21
  130. package/bundles/ng-nest-ui-slider-select.umd.js.map +1 -1
  131. package/bundles/ng-nest-ui-slider.umd.js +32 -29
  132. package/bundles/ng-nest-ui-slider.umd.js.map +1 -1
  133. package/bundles/ng-nest-ui-statistic.umd.js +37 -31
  134. package/bundles/ng-nest-ui-statistic.umd.js.map +1 -1
  135. package/bundles/ng-nest-ui-steps.umd.js +35 -27
  136. package/bundles/ng-nest-ui-steps.umd.js.map +1 -1
  137. package/bundles/ng-nest-ui-switch.umd.js +25 -21
  138. package/bundles/ng-nest-ui-switch.umd.js.map +1 -1
  139. package/bundles/ng-nest-ui-table.umd.js +58 -51
  140. package/bundles/ng-nest-ui-table.umd.js.map +1 -1
  141. package/bundles/ng-nest-ui-tabs.umd.js +39 -34
  142. package/bundles/ng-nest-ui-tabs.umd.js.map +1 -1
  143. package/bundles/ng-nest-ui-tag.umd.js +36 -21
  144. package/bundles/ng-nest-ui-tag.umd.js.map +1 -1
  145. package/bundles/ng-nest-ui-text-retract.umd.js +27 -22
  146. package/bundles/ng-nest-ui-text-retract.umd.js.map +1 -1
  147. package/bundles/ng-nest-ui-textarea.umd.js +27 -32
  148. package/bundles/ng-nest-ui-textarea.umd.js.map +1 -1
  149. package/bundles/ng-nest-ui-theme.umd.js +26 -22
  150. package/bundles/ng-nest-ui-theme.umd.js.map +1 -1
  151. package/bundles/ng-nest-ui-time-ago.umd.js +12 -14
  152. package/bundles/ng-nest-ui-time-ago.umd.js.map +1 -1
  153. package/bundles/ng-nest-ui-time-picker.umd.js +87 -46
  154. package/bundles/ng-nest-ui-time-picker.umd.js.map +1 -1
  155. package/bundles/ng-nest-ui-time-range.umd.js +22 -18
  156. package/bundles/ng-nest-ui-time-range.umd.js.map +1 -1
  157. package/bundles/ng-nest-ui-timeline.umd.js +28 -23
  158. package/bundles/ng-nest-ui-timeline.umd.js.map +1 -1
  159. package/bundles/ng-nest-ui-tooltip.umd.js +31 -26
  160. package/bundles/ng-nest-ui-tooltip.umd.js.map +1 -1
  161. package/bundles/ng-nest-ui-transfer.umd.js +28 -23
  162. package/bundles/ng-nest-ui-transfer.umd.js.map +1 -1
  163. package/bundles/ng-nest-ui-tree-file.umd.js +25 -21
  164. package/bundles/ng-nest-ui-tree-file.umd.js.map +1 -1
  165. package/bundles/ng-nest-ui-tree.umd.js +39 -34
  166. package/bundles/ng-nest-ui-tree.umd.js.map +1 -1
  167. package/bundles/ng-nest-ui-typography.umd.js +25 -21
  168. package/bundles/ng-nest-ui-typography.umd.js.map +1 -1
  169. package/bundles/ng-nest-ui-upload.umd.js +32 -27
  170. package/bundles/ng-nest-ui-upload.umd.js.map +1 -1
  171. package/bundles/ng-nest-ui.umd.js +83 -243
  172. package/bundles/ng-nest-ui.umd.js.map +1 -1
  173. package/button/buttons.component.d.ts +1 -1
  174. package/calendar/calendar.component.d.ts +2 -2
  175. package/carousel/carousel.component.d.ts +1 -1
  176. package/cascade/cascade-portal.component.d.ts +13 -7
  177. package/cascade/cascade.component.d.ts +7 -1
  178. package/cascade/cascade.property.d.ts +33 -3
  179. package/checkbox/checkbox.component.d.ts +1 -1
  180. package/color/color.component.d.ts +2 -2
  181. package/color-picker/color-picker-portal.component.d.ts +3 -3
  182. package/color-picker/color-picker.component.d.ts +10 -4
  183. package/color-picker/color-picker.property.d.ts +12 -2
  184. package/comment/comment.component.d.ts +1 -1
  185. package/core/config/config.d.ts +39 -0
  186. package/core/functions/clone-deep.d.ts +1 -0
  187. package/core/functions/drop.d.ts +1 -0
  188. package/core/functions/flex.d.ts +1 -1
  189. package/core/functions/has-in.d.ts +1 -0
  190. package/core/functions/order-by.d.ts +1 -0
  191. package/core/functions/public-api.d.ts +5 -0
  192. package/core/functions/remove.d.ts +1 -0
  193. package/core/services/reuse-strategy.service.d.ts +1 -1
  194. package/crumb/crumb.component.d.ts +1 -1
  195. package/date-picker/date-picker-portal.component.d.ts +10 -12
  196. package/date-picker/date-picker.component.d.ts +5 -5
  197. package/date-picker/date-picker.module.d.ts +12 -10
  198. package/date-picker/date-picker.property.d.ts +169 -8
  199. package/date-picker/date-range-portal.component.d.ts +65 -0
  200. package/date-picker/date-range.component.d.ts +74 -0
  201. package/date-picker/picker-date.component.d.ts +13 -4
  202. package/date-picker/picker-month.component.d.ts +6 -3
  203. package/date-picker/picker-year.component.d.ts +4 -2
  204. package/date-picker/public-api.d.ts +2 -0
  205. package/description/description.component.d.ts +2 -4
  206. package/dropdown/dropdown-portal.component.d.ts +1 -3
  207. package/dropdown/dropdown.component.d.ts +2 -2
  208. package/esm2015/affix/affix.component.js +3 -3
  209. package/esm2015/affix/affix.module.js +4 -4
  210. package/esm2015/affix/affix.property.js +3 -3
  211. package/esm2015/alert/alert.component.js +4 -4
  212. package/esm2015/alert/alert.module.js +4 -4
  213. package/esm2015/alert/alert.property.js +3 -3
  214. package/esm2015/anchor/anchor.component.js +5 -5
  215. package/esm2015/anchor/anchor.module.js +4 -4
  216. package/esm2015/anchor/anchor.property.js +4 -4
  217. package/esm2015/api/api.component.js +3 -3
  218. package/esm2015/api/api.module.js +4 -4
  219. package/esm2015/auto-complete/auto-complete-portal.component.js +6 -6
  220. package/esm2015/auto-complete/auto-complete.component.js +29 -12
  221. package/esm2015/auto-complete/auto-complete.module.js +4 -4
  222. package/esm2015/auto-complete/auto-complete.property.js +22 -5
  223. package/esm2015/avatar/avatar.component.js +3 -3
  224. package/esm2015/avatar/avatar.module.js +4 -4
  225. package/esm2015/avatar/avatar.property.js +3 -3
  226. package/esm2015/back-top/back-top.component.js +6 -6
  227. package/esm2015/back-top/back-top.module.js +4 -4
  228. package/esm2015/back-top/back-top.property.js +3 -3
  229. package/esm2015/badge/badge.component.js +6 -5
  230. package/esm2015/badge/badge.module.js +4 -4
  231. package/esm2015/badge/badge.property.js +3 -3
  232. package/esm2015/base-form/base-form.component.js +5 -5
  233. package/esm2015/base-form/base-form.module.js +4 -4
  234. package/esm2015/base-form/base-form.property.js +46 -5
  235. package/esm2015/border/border.component.js +3 -3
  236. package/esm2015/border/border.module.js +4 -4
  237. package/esm2015/button/button.component.js +10 -7
  238. package/esm2015/button/button.module.js +4 -4
  239. package/esm2015/button/button.property.js +6 -6
  240. package/esm2015/button/buttons.component.js +4 -4
  241. package/esm2015/calendar/calendar.component.js +8 -7
  242. package/esm2015/calendar/calendar.module.js +4 -4
  243. package/esm2015/calendar/calendar.property.js +3 -3
  244. package/esm2015/card/card.component.js +3 -3
  245. package/esm2015/card/card.module.js +4 -4
  246. package/esm2015/card/card.property.js +3 -3
  247. package/esm2015/carousel/carousel-panel.component.js +4 -4
  248. package/esm2015/carousel/carousel.component.js +8 -7
  249. package/esm2015/carousel/carousel.module.js +4 -4
  250. package/esm2015/carousel/carousel.property.js +6 -6
  251. package/esm2015/cascade/cascade-portal.component.js +23 -11
  252. package/esm2015/cascade/cascade.component.js +25 -9
  253. package/esm2015/cascade/cascade.module.js +4 -4
  254. package/esm2015/cascade/cascade.property.js +28 -5
  255. package/esm2015/checkbox/checkbox.component.js +7 -6
  256. package/esm2015/checkbox/checkbox.module.js +4 -4
  257. package/esm2015/checkbox/checkbox.property.js +4 -4
  258. package/esm2015/collapse/collapse-panel.component.js +4 -4
  259. package/esm2015/collapse/collapse.component.js +3 -3
  260. package/esm2015/collapse/collapse.module.js +4 -4
  261. package/esm2015/collapse/collapse.property.js +6 -6
  262. package/esm2015/color/color.component.js +5 -5
  263. package/esm2015/color/color.module.js +4 -4
  264. package/esm2015/color/color.property.js +3 -3
  265. package/esm2015/color-picker/color-picker-portal.component.js +5 -5
  266. package/esm2015/color-picker/color-picker.component.js +33 -14
  267. package/esm2015/color-picker/color-picker.module.js +4 -4
  268. package/esm2015/color-picker/color-picker.property.js +16 -5
  269. package/esm2015/comment/comment-reply.component.js +3 -3
  270. package/esm2015/comment/comment.component.js +7 -6
  271. package/esm2015/comment/comment.module.js +4 -4
  272. package/esm2015/comment/comment.property.js +6 -6
  273. package/esm2015/container/aside.component.js +3 -3
  274. package/esm2015/container/container.component.js +5 -5
  275. package/esm2015/container/container.module.js +4 -4
  276. package/esm2015/container/container.property.js +12 -12
  277. package/esm2015/container/footer.component.js +3 -3
  278. package/esm2015/container/header.component.js +3 -3
  279. package/esm2015/container/main.component.js +3 -3
  280. package/esm2015/core/animation/fade.js +1 -1
  281. package/esm2015/core/config/config.js +1 -1
  282. package/esm2015/core/config/config.service.js +3 -3
  283. package/esm2015/core/functions/clone-deep.js +12 -0
  284. package/esm2015/core/functions/drop.js +8 -0
  285. package/esm2015/core/functions/flex.js +18 -7
  286. package/esm2015/core/functions/has-in.js +4 -0
  287. package/esm2015/core/functions/order-by.js +31 -0
  288. package/esm2015/core/functions/public-api.js +6 -1
  289. package/esm2015/core/functions/remove.js +15 -0
  290. package/esm2015/core/services/http.service.js +5 -5
  291. package/esm2015/core/services/preloading-strategy.service.js +5 -5
  292. package/esm2015/core/services/reuse-strategy.service.js +2 -2
  293. package/esm2015/core/services/storage.service.js +3 -3
  294. package/esm2015/core/theme/theme.service.js +3 -3
  295. package/esm2015/crumb/crumb.component.js +7 -6
  296. package/esm2015/crumb/crumb.module.js +4 -4
  297. package/esm2015/crumb/crumb.property.js +3 -3
  298. package/esm2015/date-picker/date-picker-portal.component.js +24 -43
  299. package/esm2015/date-picker/date-picker.component.js +24 -23
  300. package/esm2015/date-picker/date-picker.module.js +31 -11
  301. package/esm2015/date-picker/date-picker.property.js +190 -19
  302. package/esm2015/date-picker/date-range-portal.component.js +208 -0
  303. package/esm2015/date-picker/date-range.component.js +307 -0
  304. package/esm2015/date-picker/picker-date.component.js +50 -15
  305. package/esm2015/date-picker/picker-month.component.js +25 -9
  306. package/esm2015/date-picker/picker-year.component.js +21 -9
  307. package/esm2015/date-picker/public-api.js +3 -1
  308. package/esm2015/description/description-item.component.js +4 -4
  309. package/esm2015/description/description.component.js +8 -9
  310. package/esm2015/description/description.module.js +4 -4
  311. package/esm2015/description/description.property.js +6 -6
  312. package/esm2015/dialog/dialog.component.js +6 -5
  313. package/esm2015/dialog/dialog.module.js +4 -4
  314. package/esm2015/dialog/dialog.property.js +4 -4
  315. package/esm2015/doc/doc.component.js +3 -3
  316. package/esm2015/doc/doc.module.js +4 -4
  317. package/esm2015/drawer/drawer.component.js +6 -5
  318. package/esm2015/drawer/drawer.module.js +4 -4
  319. package/esm2015/drawer/drawer.property.js +3 -3
  320. package/esm2015/dropdown/dropdown-portal.component.js +5 -5
  321. package/esm2015/dropdown/dropdown.component.js +7 -6
  322. package/esm2015/dropdown/dropdown.module.js +4 -4
  323. package/esm2015/dropdown/dropdown.property.js +3 -3
  324. package/esm2015/empty/empty.component.js +3 -3
  325. package/esm2015/empty/empty.module.js +4 -4
  326. package/esm2015/empty/empty.property.js +3 -3
  327. package/esm2015/examples/examples.component.js +3 -3
  328. package/esm2015/examples/examples.module.js +4 -4
  329. package/esm2015/find/find.component.js +13 -10
  330. package/esm2015/find/find.module.js +4 -4
  331. package/esm2015/find/find.property.js +16 -5
  332. package/esm2015/form/control.component.js +4 -4
  333. package/esm2015/form/form.component.js +9 -8
  334. package/esm2015/form/form.module.js +4 -4
  335. package/esm2015/form/form.property.js +8 -13
  336. package/esm2015/highlight/highlight.component.js +6 -5
  337. package/esm2015/highlight/highlight.module.js +4 -4
  338. package/esm2015/highlight/highlight.property.js +4 -4
  339. package/esm2015/i18n/i18n.directive.js +6 -5
  340. package/esm2015/i18n/i18n.module.js +4 -4
  341. package/esm2015/i18n/i18n.pipe.js +3 -3
  342. package/esm2015/i18n/i18n.property.js +1 -1
  343. package/esm2015/i18n/i18n.service.js +3 -3
  344. package/esm2015/i18n/languages/ar_EG.js +11 -3
  345. package/esm2015/i18n/languages/bg_BG.js +11 -3
  346. package/esm2015/i18n/languages/ca_ES.js +11 -3
  347. package/esm2015/i18n/languages/cs_CZ.js +11 -3
  348. package/esm2015/i18n/languages/da_DK.js +11 -3
  349. package/esm2015/i18n/languages/de_DE.js +11 -3
  350. package/esm2015/i18n/languages/el_GR.js +11 -3
  351. package/esm2015/i18n/languages/en_GB.js +11 -3
  352. package/esm2015/i18n/languages/en_US.js +11 -3
  353. package/esm2015/i18n/languages/es_ES.js +11 -3
  354. package/esm2015/i18n/languages/et_EE.js +11 -3
  355. package/esm2015/i18n/languages/fa_IR.js +11 -3
  356. package/esm2015/i18n/languages/fi_FI.js +11 -3
  357. package/esm2015/i18n/languages/fr_BE.js +10 -2
  358. package/esm2015/i18n/languages/fr_FR.js +11 -3
  359. package/esm2015/i18n/languages/he_IL.js +11 -3
  360. package/esm2015/i18n/languages/hi_IN.js +11 -3
  361. package/esm2015/i18n/languages/hr_HR.js +11 -3
  362. package/esm2015/i18n/languages/hu_HU.js +11 -3
  363. package/esm2015/i18n/languages/hy_AM.js +11 -3
  364. package/esm2015/i18n/languages/id_ID.js +11 -3
  365. package/esm2015/i18n/languages/is_IS.js +11 -3
  366. package/esm2015/i18n/languages/it_IT.js +11 -3
  367. package/esm2015/i18n/languages/ja_JP.js +11 -3
  368. package/esm2015/i18n/languages/ka_GE.js +11 -3
  369. package/esm2015/i18n/languages/kn_IN.js +11 -3
  370. package/esm2015/i18n/languages/ko_KR.js +11 -3
  371. package/esm2015/i18n/languages/ku_IQ.js +11 -3
  372. package/esm2015/i18n/languages/lv_LV.js +11 -3
  373. package/esm2015/i18n/languages/mn_MN.js +11 -3
  374. package/esm2015/i18n/languages/ms_MY.js +11 -3
  375. package/esm2015/i18n/languages/nb_NO.js +11 -3
  376. package/esm2015/i18n/languages/ne_NP.js +11 -3
  377. package/esm2015/i18n/languages/nl_BE.js +11 -3
  378. package/esm2015/i18n/languages/nl_NL.js +11 -3
  379. package/esm2015/i18n/languages/pl_PL.js +11 -3
  380. package/esm2015/i18n/languages/pt_BR.js +11 -3
  381. package/esm2015/i18n/languages/pt_PT.js +11 -3
  382. package/esm2015/i18n/languages/ro_RO.js +11 -3
  383. package/esm2015/i18n/languages/ru_RU.js +11 -3
  384. package/esm2015/i18n/languages/sk_SK.js +11 -3
  385. package/esm2015/i18n/languages/sl_SI.js +11 -3
  386. package/esm2015/i18n/languages/sr_RS.js +11 -3
  387. package/esm2015/i18n/languages/sv_SE.js +11 -3
  388. package/esm2015/i18n/languages/ta_IN.js +11 -3
  389. package/esm2015/i18n/languages/th_TH.js +29 -21
  390. package/esm2015/i18n/languages/tr_TR.js +11 -3
  391. package/esm2015/i18n/languages/uk_UA.js +11 -3
  392. package/esm2015/i18n/languages/vi_VN.js +11 -3
  393. package/esm2015/i18n/languages/zh_CN.js +10 -3
  394. package/esm2015/i18n/languages/zh_TW.js +10 -3
  395. package/esm2015/icon/icon.component.js +7 -6
  396. package/esm2015/icon/icon.module.js +4 -4
  397. package/esm2015/icon/icon.property.js +3 -3
  398. package/esm2015/icon/icon.service.js +6 -6
  399. package/esm2015/inner/inner.component.js +5 -5
  400. package/esm2015/inner/inner.module.js +4 -4
  401. package/esm2015/inner/inner.property.js +3 -3
  402. package/esm2015/input/input-group.component.js +26 -0
  403. package/esm2015/input/input.component.js +60 -15
  404. package/esm2015/input/input.module.js +11 -9
  405. package/esm2015/input/input.property.js +77 -22
  406. package/esm2015/input/public-api.js +2 -1
  407. package/esm2015/input-number/input-number.component.js +9 -5
  408. package/esm2015/input-number/input-number.module.js +7 -6
  409. package/esm2015/input-number/input-number.property.js +17 -5
  410. package/esm2015/layout/col.component.js +3 -3
  411. package/esm2015/layout/layout.module.js +4 -4
  412. package/esm2015/layout/layout.property.js +6 -6
  413. package/esm2015/layout/row.component.js +3 -3
  414. package/esm2015/link/link.component.js +3 -3
  415. package/esm2015/link/link.module.js +4 -4
  416. package/esm2015/link/link.property.js +3 -3
  417. package/esm2015/list/list-option.component.js +3 -3
  418. package/esm2015/list/list.component.js +8 -7
  419. package/esm2015/list/list.module.js +4 -4
  420. package/esm2015/list/list.property.js +7 -7
  421. package/esm2015/loading/loading.component.js +6 -5
  422. package/esm2015/loading/loading.module.js +4 -4
  423. package/esm2015/loading/loading.property.js +3 -3
  424. package/esm2015/menu/menu-node.component.js +4 -4
  425. package/esm2015/menu/menu.component.js +11 -8
  426. package/esm2015/menu/menu.module.js +4 -4
  427. package/esm2015/menu/menu.property.js +6 -6
  428. package/esm2015/message/message.component.js +5 -5
  429. package/esm2015/message/message.module.js +4 -4
  430. package/esm2015/message/message.service.js +3 -3
  431. package/esm2015/message-box/message-box.component.js +20 -24
  432. package/esm2015/message-box/message-box.module.js +4 -4
  433. package/esm2015/message-box/message-box.service.js +10 -8
  434. package/esm2015/notification/notification.component.js +5 -5
  435. package/esm2015/notification/notification.module.js +4 -4
  436. package/esm2015/notification/notification.property.js +1 -1
  437. package/esm2015/notification/notification.service.js +3 -3
  438. package/esm2015/outlet/outlet.directive.js +3 -3
  439. package/esm2015/outlet/outlet.module.js +4 -4
  440. package/esm2015/page-header/page-header.component.js +3 -3
  441. package/esm2015/page-header/page-header.module.js +4 -4
  442. package/esm2015/page-header/page-header.property.js +3 -3
  443. package/esm2015/pagination/pagination.component.js +45 -7
  444. package/esm2015/pagination/pagination.module.js +10 -6
  445. package/esm2015/pagination/pagination.property.js +52 -4
  446. package/esm2015/pattern/pattern.component.js +3 -3
  447. package/esm2015/pattern/pattern.module.js +4 -4
  448. package/esm2015/popconfirm/popconfirm.component.js +3 -3
  449. package/esm2015/popconfirm/popconfirm.module.js +4 -4
  450. package/esm2015/popconfirm/popconfirm.property.js +3 -3
  451. package/esm2015/popover/popover-portal.component.js +4 -4
  452. package/esm2015/popover/popover.directive.js +7 -6
  453. package/esm2015/popover/popover.module.js +4 -4
  454. package/esm2015/popover/popover.property.js +3 -3
  455. package/esm2015/portal/portal.module.js +4 -4
  456. package/esm2015/portal/portal.service.js +3 -3
  457. package/esm2015/progress/progress.component.js +7 -6
  458. package/esm2015/progress/progress.module.js +4 -4
  459. package/esm2015/progress/progress.property.js +3 -3
  460. package/esm2015/radio/radio.component.js +7 -6
  461. package/esm2015/radio/radio.module.js +4 -4
  462. package/esm2015/radio/radio.property.js +4 -4
  463. package/esm2015/rate/rate.component.js +9 -9
  464. package/esm2015/rate/rate.module.js +4 -4
  465. package/esm2015/rate/rate.property.js +3 -3
  466. package/esm2015/result/result.component.js +3 -3
  467. package/esm2015/result/result.module.js +4 -4
  468. package/esm2015/result/result.property.js +3 -3
  469. package/esm2015/ripple/ripple.directive.js +4 -4
  470. package/esm2015/ripple/ripple.module.js +4 -4
  471. package/esm2015/ripple/ripple.property.js +4 -4
  472. package/esm2015/select/select-portal.component.js +6 -6
  473. package/esm2015/select/select.component.js +15 -11
  474. package/esm2015/select/select.module.js +4 -4
  475. package/esm2015/select/select.property.js +15 -4
  476. package/esm2015/skeleton/skeleton.component.js +6 -5
  477. package/esm2015/skeleton/skeleton.module.js +4 -4
  478. package/esm2015/skeleton/skeleton.property.js +3 -3
  479. package/esm2015/slider/slider.component.js +11 -12
  480. package/esm2015/slider/slider.module.js +4 -4
  481. package/esm2015/slider/slider.property.js +3 -3
  482. package/esm2015/slider-select/slider-select.component.js +3 -3
  483. package/esm2015/slider-select/slider-select.module.js +4 -4
  484. package/esm2015/slider-select/slider-select.property.js +3 -3
  485. package/esm2015/statistic/countdown.component.js +8 -7
  486. package/esm2015/statistic/statistic.component.js +6 -5
  487. package/esm2015/statistic/statistic.module.js +4 -4
  488. package/esm2015/statistic/statistic.property.js +6 -6
  489. package/esm2015/steps/steps.component.js +9 -7
  490. package/esm2015/steps/steps.module.js +7 -6
  491. package/esm2015/steps/steps.property.js +6 -4
  492. package/esm2015/switch/switch.component.js +3 -3
  493. package/esm2015/switch/switch.module.js +4 -4
  494. package/esm2015/switch/switch.property.js +3 -3
  495. package/esm2015/table/drag.directive.js +5 -5
  496. package/esm2015/table/table-body.component.js +7 -6
  497. package/esm2015/table/table-foot.component.js +4 -4
  498. package/esm2015/table/table-head.component.js +7 -6
  499. package/esm2015/table/table.component.js +9 -8
  500. package/esm2015/table/table.module.js +4 -4
  501. package/esm2015/table/table.property.js +13 -13
  502. package/esm2015/tabs/tab-content.component.js +3 -3
  503. package/esm2015/tabs/tab.component.js +4 -4
  504. package/esm2015/tabs/tabs.component.js +9 -8
  505. package/esm2015/tabs/tabs.module.js +4 -4
  506. package/esm2015/tabs/tabs.property.js +6 -6
  507. package/esm2015/tag/tag.component.js +10 -5
  508. package/esm2015/tag/tag.module.js +4 -4
  509. package/esm2015/tag/tag.property.js +10 -4
  510. package/esm2015/text-retract/text-retract.component.js +6 -5
  511. package/esm2015/text-retract/text-retract.module.js +4 -4
  512. package/esm2015/text-retract/text-retract.property.js +3 -3
  513. package/esm2015/textarea/textarea.component.js +6 -5
  514. package/esm2015/textarea/textarea.module.js +4 -4
  515. package/esm2015/textarea/textarea.property.js +4 -14
  516. package/esm2015/theme/theme.component.js +5 -5
  517. package/esm2015/theme/theme.module.js +4 -4
  518. package/esm2015/theme/theme.property.js +4 -4
  519. package/esm2015/time-ago/time-ago.module.js +4 -4
  520. package/esm2015/time-ago/time-ago.pipe.js +3 -3
  521. package/esm2015/time-picker/time-picker-frame.component.js +22 -12
  522. package/esm2015/time-picker/time-picker-portal.component.js +5 -5
  523. package/esm2015/time-picker/time-picker.component.js +31 -15
  524. package/esm2015/time-picker/time-picker.module.js +4 -4
  525. package/esm2015/time-picker/time-picker.property.js +16 -5
  526. package/esm2015/time-range/time-range.module.js +4 -4
  527. package/esm2015/time-range/time-range.pipe.js +3 -3
  528. package/esm2015/timeline/timeline.component.js +7 -6
  529. package/esm2015/timeline/timeline.module.js +4 -4
  530. package/esm2015/timeline/timeline.property.js +3 -3
  531. package/esm2015/tooltip/tooltip-portal.component.js +4 -4
  532. package/esm2015/tooltip/tooltip.directive.js +7 -6
  533. package/esm2015/tooltip/tooltip.module.js +4 -4
  534. package/esm2015/tooltip/tooltip.property.js +4 -4
  535. package/esm2015/transfer/transfer.component.js +7 -6
  536. package/esm2015/transfer/transfer.module.js +4 -4
  537. package/esm2015/transfer/transfer.property.js +3 -3
  538. package/esm2015/tree/tree-node.component.js +5 -5
  539. package/esm2015/tree/tree.component.js +11 -10
  540. package/esm2015/tree/tree.module.js +4 -4
  541. package/esm2015/tree/tree.property.js +7 -7
  542. package/esm2015/tree-file/tree-file.component.js +3 -3
  543. package/esm2015/tree-file/tree-file.module.js +4 -4
  544. package/esm2015/tree-file/tree-file.property.js +3 -3
  545. package/esm2015/typography/typography.component.js +3 -3
  546. package/esm2015/typography/typography.module.js +4 -4
  547. package/esm2015/typography/typography.property.js +3 -3
  548. package/esm2015/upload/upload-portal.component.js +5 -5
  549. package/esm2015/upload/upload.component.js +7 -6
  550. package/esm2015/upload/upload.module.js +4 -4
  551. package/esm2015/upload/upload.property.js +3 -3
  552. package/fesm2015/ng-nest-ui-affix.js +10 -10
  553. package/fesm2015/ng-nest-ui-alert.js +10 -10
  554. package/fesm2015/ng-nest-ui-alert.js.map +1 -1
  555. package/fesm2015/ng-nest-ui-anchor.js +11 -11
  556. package/fesm2015/ng-nest-ui-anchor.js.map +1 -1
  557. package/fesm2015/ng-nest-ui-api.js +7 -7
  558. package/fesm2015/ng-nest-ui-auto-complete.js +59 -25
  559. package/fesm2015/ng-nest-ui-auto-complete.js.map +1 -1
  560. package/fesm2015/ng-nest-ui-avatar.js +10 -10
  561. package/fesm2015/ng-nest-ui-back-top.js +12 -12
  562. package/fesm2015/ng-nest-ui-back-top.js.map +1 -1
  563. package/fesm2015/ng-nest-ui-badge.js +12 -11
  564. package/fesm2015/ng-nest-ui-badge.js.map +1 -1
  565. package/fesm2015/ng-nest-ui-base-form.js +53 -12
  566. package/fesm2015/ng-nest-ui-base-form.js.map +1 -1
  567. package/fesm2015/ng-nest-ui-border.js +7 -7
  568. package/fesm2015/ng-nest-ui-button.js +22 -19
  569. package/fesm2015/ng-nest-ui-button.js.map +1 -1
  570. package/fesm2015/ng-nest-ui-calendar.js +14 -13
  571. package/fesm2015/ng-nest-ui-calendar.js.map +1 -1
  572. package/fesm2015/ng-nest-ui-card.js +10 -10
  573. package/fesm2015/ng-nest-ui-carousel.js +20 -19
  574. package/fesm2015/ng-nest-ui-carousel.js.map +1 -1
  575. package/fesm2015/ng-nest-ui-cascade.js +80 -28
  576. package/fesm2015/ng-nest-ui-cascade.js.map +1 -1
  577. package/fesm2015/ng-nest-ui-checkbox.js +13 -12
  578. package/fesm2015/ng-nest-ui-checkbox.js.map +1 -1
  579. package/fesm2015/ng-nest-ui-collapse.js +16 -16
  580. package/fesm2015/ng-nest-ui-collapse.js.map +1 -1
  581. package/fesm2015/ng-nest-ui-color-picker.js +55 -24
  582. package/fesm2015/ng-nest-ui-color-picker.js.map +1 -1
  583. package/fesm2015/ng-nest-ui-color.js +11 -11
  584. package/fesm2015/ng-nest-ui-color.js.map +1 -1
  585. package/fesm2015/ng-nest-ui-comment.js +19 -18
  586. package/fesm2015/ng-nest-ui-comment.js.map +1 -1
  587. package/fesm2015/ng-nest-ui-container.js +32 -32
  588. package/fesm2015/ng-nest-ui-container.js.map +1 -1
  589. package/fesm2015/ng-nest-ui-core.js +106 -25
  590. package/fesm2015/ng-nest-ui-core.js.map +1 -1
  591. package/fesm2015/ng-nest-ui-crumb.js +13 -12
  592. package/fesm2015/ng-nest-ui-crumb.js.map +1 -1
  593. package/fesm2015/ng-nest-ui-date-picker.js +876 -156
  594. package/fesm2015/ng-nest-ui-date-picker.js.map +1 -1
  595. package/fesm2015/ng-nest-ui-description.js +21 -22
  596. package/fesm2015/ng-nest-ui-description.js.map +1 -1
  597. package/fesm2015/ng-nest-ui-dialog.js +12 -11
  598. package/fesm2015/ng-nest-ui-dialog.js.map +1 -1
  599. package/fesm2015/ng-nest-ui-doc.js +7 -7
  600. package/fesm2015/ng-nest-ui-drawer.js +12 -11
  601. package/fesm2015/ng-nest-ui-drawer.js.map +1 -1
  602. package/fesm2015/ng-nest-ui-dropdown.js +17 -16
  603. package/fesm2015/ng-nest-ui-dropdown.js.map +1 -1
  604. package/fesm2015/ng-nest-ui-empty.js +10 -10
  605. package/fesm2015/ng-nest-ui-examples.js +7 -7
  606. package/fesm2015/ng-nest-ui-find.js +31 -17
  607. package/fesm2015/ng-nest-ui-find.js.map +1 -1
  608. package/fesm2015/ng-nest-ui-form.js +22 -26
  609. package/fesm2015/ng-nest-ui-form.js.map +1 -1
  610. package/fesm2015/ng-nest-ui-highlight.js +12 -11
  611. package/fesm2015/ng-nest-ui-highlight.js.map +1 -1
  612. package/fesm2015/ng-nest-ui-i18n.js +540 -133
  613. package/fesm2015/ng-nest-ui-i18n.js.map +1 -1
  614. package/fesm2015/ng-nest-ui-icon.js +18 -18
  615. package/fesm2015/ng-nest-ui-icon.js.map +1 -1
  616. package/fesm2015/ng-nest-ui-inner.js +11 -11
  617. package/fesm2015/ng-nest-ui-inner.js.map +1 -1
  618. package/fesm2015/ng-nest-ui-input-number.js +31 -14
  619. package/fesm2015/ng-nest-ui-input-number.js.map +1 -1
  620. package/fesm2015/ng-nest-ui-input.js +164 -42
  621. package/fesm2015/ng-nest-ui-input.js.map +1 -1
  622. package/fesm2015/ng-nest-ui-layout.js +16 -16
  623. package/fesm2015/ng-nest-ui-link.js +10 -10
  624. package/fesm2015/ng-nest-ui-list.js +20 -19
  625. package/fesm2015/ng-nest-ui-list.js.map +1 -1
  626. package/fesm2015/ng-nest-ui-loading.js +12 -11
  627. package/fesm2015/ng-nest-ui-loading.js.map +1 -1
  628. package/fesm2015/ng-nest-ui-menu.js +23 -20
  629. package/fesm2015/ng-nest-ui-menu.js.map +1 -1
  630. package/fesm2015/ng-nest-ui-message-box.js +32 -34
  631. package/fesm2015/ng-nest-ui-message-box.js.map +1 -1
  632. package/fesm2015/ng-nest-ui-message.js +11 -11
  633. package/fesm2015/ng-nest-ui-message.js.map +1 -1
  634. package/fesm2015/ng-nest-ui-notification.js +11 -11
  635. package/fesm2015/ng-nest-ui-notification.js.map +1 -1
  636. package/fesm2015/ng-nest-ui-outlet.js +7 -7
  637. package/fesm2015/ng-nest-ui-page-header.js +10 -10
  638. package/fesm2015/ng-nest-ui-pagination.js +104 -14
  639. package/fesm2015/ng-nest-ui-pagination.js.map +1 -1
  640. package/fesm2015/ng-nest-ui-pattern.js +7 -7
  641. package/fesm2015/ng-nest-ui-popconfirm.js +10 -10
  642. package/fesm2015/ng-nest-ui-popover.js +16 -15
  643. package/fesm2015/ng-nest-ui-popover.js.map +1 -1
  644. package/fesm2015/ng-nest-ui-portal.js +7 -7
  645. package/fesm2015/ng-nest-ui-progress.js +13 -12
  646. package/fesm2015/ng-nest-ui-progress.js.map +1 -1
  647. package/fesm2015/ng-nest-ui-radio.js +13 -12
  648. package/fesm2015/ng-nest-ui-radio.js.map +1 -1
  649. package/fesm2015/ng-nest-ui-rate.js +15 -15
  650. package/fesm2015/ng-nest-ui-rate.js.map +1 -1
  651. package/fesm2015/ng-nest-ui-result.js +10 -10
  652. package/fesm2015/ng-nest-ui-ripple.js +10 -10
  653. package/fesm2015/ng-nest-ui-ripple.js.map +1 -1
  654. package/fesm2015/ng-nest-ui-select.js +37 -22
  655. package/fesm2015/ng-nest-ui-select.js.map +1 -1
  656. package/fesm2015/ng-nest-ui-skeleton.js +12 -11
  657. package/fesm2015/ng-nest-ui-skeleton.js.map +1 -1
  658. package/fesm2015/ng-nest-ui-slider-select.js +10 -10
  659. package/fesm2015/ng-nest-ui-slider.js +17 -18
  660. package/fesm2015/ng-nest-ui-slider.js.map +1 -1
  661. package/fesm2015/ng-nest-ui-statistic.js +22 -20
  662. package/fesm2015/ng-nest-ui-statistic.js.map +1 -1
  663. package/fesm2015/ng-nest-ui-steps.js +19 -14
  664. package/fesm2015/ng-nest-ui-steps.js.map +1 -1
  665. package/fesm2015/ng-nest-ui-switch.js +10 -10
  666. package/fesm2015/ng-nest-ui-table.js +43 -40
  667. package/fesm2015/ng-nest-ui-table.js.map +1 -1
  668. package/fesm2015/ng-nest-ui-tabs.js +24 -23
  669. package/fesm2015/ng-nest-ui-tabs.js.map +1 -1
  670. package/fesm2015/ng-nest-ui-tag.js +22 -11
  671. package/fesm2015/ng-nest-ui-tag.js.map +1 -1
  672. package/fesm2015/ng-nest-ui-text-retract.js +12 -11
  673. package/fesm2015/ng-nest-ui-text-retract.js.map +1 -1
  674. package/fesm2015/ng-nest-ui-textarea.js +12 -21
  675. package/fesm2015/ng-nest-ui-textarea.js.map +1 -1
  676. package/fesm2015/ng-nest-ui-theme.js +11 -11
  677. package/fesm2015/ng-nest-ui-theme.js.map +1 -1
  678. package/fesm2015/ng-nest-ui-time-ago.js +7 -7
  679. package/fesm2015/ng-nest-ui-time-picker.js +73 -36
  680. package/fesm2015/ng-nest-ui-time-picker.js.map +1 -1
  681. package/fesm2015/ng-nest-ui-time-range.js +7 -7
  682. package/fesm2015/ng-nest-ui-timeline.js +13 -12
  683. package/fesm2015/ng-nest-ui-timeline.js.map +1 -1
  684. package/fesm2015/ng-nest-ui-tooltip.js +16 -15
  685. package/fesm2015/ng-nest-ui-tooltip.js.map +1 -1
  686. package/fesm2015/ng-nest-ui-transfer.js +13 -12
  687. package/fesm2015/ng-nest-ui-transfer.js.map +1 -1
  688. package/fesm2015/ng-nest-ui-tree-file.js +10 -10
  689. package/fesm2015/ng-nest-ui-tree.js +24 -23
  690. package/fesm2015/ng-nest-ui-tree.js.map +1 -1
  691. package/fesm2015/ng-nest-ui-typography.js +10 -10
  692. package/fesm2015/ng-nest-ui-upload.js +17 -16
  693. package/fesm2015/ng-nest-ui-upload.js.map +1 -1
  694. package/find/find.component.d.ts +1 -1
  695. package/find/find.property.d.ts +22 -2
  696. package/form/control.component.d.ts +1 -1
  697. package/form/form.component.d.ts +1 -1
  698. package/form/form.property.d.ts +6 -6
  699. package/i18n/i18n.property.d.ts +3 -0
  700. package/i18n/languages/ar_EG.d.ts +8 -0
  701. package/i18n/languages/bg_BG.d.ts +8 -0
  702. package/i18n/languages/ca_ES.d.ts +8 -0
  703. package/i18n/languages/cs_CZ.d.ts +8 -0
  704. package/i18n/languages/da_DK.d.ts +8 -0
  705. package/i18n/languages/de_DE.d.ts +8 -0
  706. package/i18n/languages/el_GR.d.ts +8 -0
  707. package/i18n/languages/en_GB.d.ts +8 -0
  708. package/i18n/languages/en_US.d.ts +8 -0
  709. package/i18n/languages/es_ES.d.ts +8 -0
  710. package/i18n/languages/et_EE.d.ts +8 -0
  711. package/i18n/languages/fa_IR.d.ts +8 -0
  712. package/i18n/languages/fi_FI.d.ts +8 -0
  713. package/i18n/languages/fr_BE.d.ts +8 -0
  714. package/i18n/languages/fr_FR.d.ts +8 -0
  715. package/i18n/languages/he_IL.d.ts +8 -0
  716. package/i18n/languages/hi_IN.d.ts +8 -0
  717. package/i18n/languages/hr_HR.d.ts +8 -0
  718. package/i18n/languages/hu_HU.d.ts +8 -0
  719. package/i18n/languages/hy_AM.d.ts +8 -0
  720. package/i18n/languages/id_ID.d.ts +8 -0
  721. package/i18n/languages/is_IS.d.ts +8 -0
  722. package/i18n/languages/it_IT.d.ts +8 -0
  723. package/i18n/languages/ja_JP.d.ts +8 -0
  724. package/i18n/languages/ka_GE.d.ts +8 -0
  725. package/i18n/languages/kn_IN.d.ts +8 -0
  726. package/i18n/languages/ko_KR.d.ts +8 -0
  727. package/i18n/languages/ku_IQ.d.ts +8 -0
  728. package/i18n/languages/lv_LV.d.ts +8 -0
  729. package/i18n/languages/mn_MN.d.ts +8 -0
  730. package/i18n/languages/ms_MY.d.ts +8 -0
  731. package/i18n/languages/nb_NO.d.ts +8 -0
  732. package/i18n/languages/ne_NP.d.ts +8 -0
  733. package/i18n/languages/nl_BE.d.ts +8 -0
  734. package/i18n/languages/nl_NL.d.ts +8 -0
  735. package/i18n/languages/pl_PL.d.ts +8 -0
  736. package/i18n/languages/pt_BR.d.ts +8 -0
  737. package/i18n/languages/pt_PT.d.ts +8 -0
  738. package/i18n/languages/ro_RO.d.ts +8 -0
  739. package/i18n/languages/ru_RU.d.ts +8 -0
  740. package/i18n/languages/sk_SK.d.ts +8 -0
  741. package/i18n/languages/sl_SI.d.ts +8 -0
  742. package/i18n/languages/sr_RS.d.ts +8 -0
  743. package/i18n/languages/sv_SE.d.ts +8 -0
  744. package/i18n/languages/ta_IN.d.ts +8 -0
  745. package/i18n/languages/th_TH.d.ts +8 -0
  746. package/i18n/languages/tr_TR.d.ts +8 -0
  747. package/i18n/languages/uk_UA.d.ts +8 -0
  748. package/i18n/languages/vi_VN.d.ts +8 -0
  749. package/i18n/languages/zh_CN.d.ts +7 -0
  750. package/i18n/languages/zh_TW.d.ts +7 -0
  751. package/inner/inner.component.d.ts +1 -1
  752. package/input/input-group.component.d.ts +13 -0
  753. package/input/input.component.d.ts +10 -3
  754. package/input/input.module.d.ts +7 -5
  755. package/input/input.property.d.ts +79 -14
  756. package/input/public-api.d.ts +1 -0
  757. package/input-number/input-number.component.d.ts +3 -0
  758. package/input-number/input-number.module.d.ts +4 -3
  759. package/input-number/input-number.property.d.ts +12 -2
  760. package/list/list.component.d.ts +2 -2
  761. package/menu/menu.component.d.ts +1 -1
  762. package/message/message.component.d.ts +1 -1
  763. package/message-box/message-box.component.d.ts +2 -1
  764. package/notification/notification.component.d.ts +1 -1
  765. package/package.json +1 -1
  766. package/pagination/pagination.component.d.ts +5 -1
  767. package/pagination/pagination.module.d.ts +7 -3
  768. package/pagination/pagination.property.d.ts +49 -3
  769. package/radio/radio.component.d.ts +1 -1
  770. package/rate/rate.component.d.ts +5 -5
  771. package/select/select-portal.component.d.ts +3 -3
  772. package/select/select.component.d.ts +1 -1
  773. package/select/select.property.d.ts +12 -2
  774. package/slider/slider.component.d.ts +1 -1
  775. package/steps/steps.component.d.ts +1 -1
  776. package/steps/steps.module.d.ts +2 -1
  777. package/steps/steps.property.d.ts +7 -2
  778. package/table/table-body.component.d.ts +1 -1
  779. package/table/table-head.component.d.ts +1 -1
  780. package/table/table.component.d.ts +1 -1
  781. package/table/table.property.d.ts +10 -0
  782. package/tag/tag.component.d.ts +2 -1
  783. package/tag/tag.property.d.ts +6 -1
  784. package/textarea/textarea.property.d.ts +1 -6
  785. package/theme/theme.component.d.ts +1 -1
  786. package/time-picker/time-picker-frame.component.d.ts +4 -0
  787. package/time-picker/time-picker-portal.component.d.ts +3 -3
  788. package/time-picker/time-picker.component.d.ts +5 -3
  789. package/time-picker/time-picker.property.d.ts +12 -2
  790. package/timeline/timeline.component.d.ts +1 -1
  791. package/transfer/transfer.component.d.ts +1 -1
  792. package/tree/tree-node.component.d.ts +1 -1
  793. package/tree/tree.component.d.ts +1 -1
  794. package/upload/upload.component.d.ts +3 -3
@@ -81,7 +81,7 @@ export class XUploadPortalComponent {
81
81
  });
82
82
  fromEvent(this.doc.documentElement, 'mouseup')
83
83
  .pipe(takeUntil(_unSub))
84
- .subscribe((x) => {
84
+ .subscribe(() => {
85
85
  this.cutType = '';
86
86
  this.cdr.detectChanges();
87
87
  _unSub.next();
@@ -175,9 +175,9 @@ export class XUploadPortalComponent {
175
175
  };
176
176
  }
177
177
  }
178
- /** @nocollapse */ XUploadPortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XUploadPortalComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
179
- /** @nocollapse */ XUploadPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XUploadPortalComponent, selector: "x-upload-portal", viewQueries: [{ propertyName: "imgRef", first: true, predicate: ["imgRef"], descendants: true }, { propertyName: "imgClipRef", first: true, predicate: ["imgClipRef"], descendants: true }, { propertyName: "boundaryRef", first: true, predicate: ["boundaryRef"], descendants: true }, { propertyName: "cutRef", first: true, predicate: ["cutRef"], descendants: 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>{{ file?.name }}</span>\r\n </div>\r\n <x-icon class=\"x-upload-portal-close\" type=\"fto-x\" (click)=\"closePortal()\"></x-icon>\r\n </div>\r\n <div class=\"x-upload-portal-img\">\r\n <img #imgRef class=\"x-upload-portal-full-img\" [src]=\"file.url\" />\r\n <div #boundaryRef class=\"x-upload-portal-boundary\">\r\n <img #imgClipRef class=\"x-upload-portal-clip-img\" [src]=\"file.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,x-upload-portal{width:100%;height:100%}.x-upload-portal{margin:0;padding:0;display:flex;position:relative;flex-direction:column}.x-upload-portal-tools{justify-content:space-between}.x-upload-portal-bottom-tools,.x-upload-portal-tools{width:100%;height:3.25rem;display:flex;align-items:center;position:absolute;z-index:1;color:#fff}.x-upload-portal-bottom-tools{justify-content:center;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) #fffc;display:flex;align-items:center;justify-content:center;position:relative;cursor:move}.x-upload-portal-cut-bottom,.x-upload-portal-cut-bottom-end,.x-upload-portal-cut-bottom-start,.x-upload-portal-cut-left,.x-upload-portal-cut-right,.x-upload-portal-cut-top,.x-upload-portal-cut-top-end,.x-upload-portal-cut-top-start{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}"], components: [{ type: i1.XIconComponent, selector: "x-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XUploadPortalComponent, decorators: [{
178
+ /** @nocollapse */ XUploadPortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XUploadPortalComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
179
+ /** @nocollapse */ XUploadPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XUploadPortalComponent, selector: "x-upload-portal", viewQueries: [{ propertyName: "imgRef", first: true, predicate: ["imgRef"], descendants: true }, { propertyName: "imgClipRef", first: true, predicate: ["imgClipRef"], descendants: true }, { propertyName: "boundaryRef", first: true, predicate: ["boundaryRef"], descendants: true }, { propertyName: "cutRef", first: true, predicate: ["cutRef"], descendants: 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>{{ file?.name }}</span>\r\n </div>\r\n <x-icon class=\"x-upload-portal-close\" type=\"fto-x\" (click)=\"closePortal()\"></x-icon>\r\n </div>\r\n <div class=\"x-upload-portal-img\">\r\n <img #imgRef class=\"x-upload-portal-full-img\" [src]=\"file.url\" />\r\n <div #boundaryRef class=\"x-upload-portal-boundary\">\r\n <img #imgClipRef class=\"x-upload-portal-clip-img\" [src]=\"file.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;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:translate(-50%,-50%)}.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:translate(-50%,-50%);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:white;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{cursor:w-resize}.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"], components: [{ type: i1.XIconComponent, selector: "x-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XUploadPortalComponent, decorators: [{
181
181
  type: Component,
182
182
  args: [{
183
183
  selector: `${XUploadPortalPrefix}`,
@@ -202,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImpor
202
202
  type: ViewChild,
203
203
  args: ['cutRef']
204
204
  }] } });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLXBvcnRhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS91cGxvYWQvdXBsb2FkLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS91cGxvYWQvdXBsb2FkLXBvcnRhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFJVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFxQixTQUFTLEVBQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUErQixtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFTckYsTUFBTSxPQUFPLHNCQUFzQjtJQXFDakMsWUFBb0IsUUFBbUIsRUFBVSxHQUFzQixFQUFvQixRQUFhO1FBQXBGLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQS9CdkUsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLFlBQU8sR0FBbUIsRUFBRSxDQUFDO1FBQzdCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixpQkFBWSxHQUFHO1lBQ2IsS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsQ0FBQztTQUNWLENBQUM7UUFLRixXQUFNLEdBQUc7WUFDUCxLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sRUFBRSxDQUFDO1lBQ1QsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUs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LEVBQUU7WUFDaEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzNGLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFZLENBQUMsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7c0lBN01VLHNCQUFzQiw0RUFxQ2dELFFBQVE7MEhBckM5RSxzQkFBc0Isb2FDdkJuQyx3M0NBNEJBOzJGRExhLHNCQUFzQjtrQkFQbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsR0FBRyxtQkFBbUIsRUFBRTtvQkFDbEMsV0FBVyxFQUFFLGdDQUFnQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7b0JBQzdDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQXNDMkUsTUFBTTsyQkFBQyxRQUFROzRDQW5DcEUsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNNLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFDRyxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0gsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBWaWV3Q2hpbGQsXHJcbiAgRWxlbWVudFJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgSW5qZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhDbGFtcCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYVXBsb2FkQ3V0VHlwZSwgWFVwbG9hZE5vZGUsIFhVcGxvYWRQb3J0YWxQcmVmaXggfSBmcm9tICcuL3VwbG9hZC5wcm9wZXJ0eSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFVwbG9hZFBvcnRhbFByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtcG9ydGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91cGxvYWQtcG9ydGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFVwbG9hZFBvcnRhbENvbXBvbmVudCB7XHJcbiAgZmlsZSE6IFhVcGxvYWROb2RlO1xyXG4gIEBWaWV3Q2hpbGQoJ2ltZ1JlZicpIGltZ1JlZiE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW1nQ2xpcFJlZicpIGltZ0NsaXBSZWYhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2JvdW5kYXJ5UmVmJykgYm91bmRhcnlSZWYhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2N1dFJlZicpIGN1dFJlZiE6IEVsZW1lbnRSZWY7XHJcbiAgcmVhZHkgPSBmYWxzZTtcclxuICBjdXRUeXBlOiBYVXBsb2FkQ3V0VHlwZSA9ICcnO1xyXG4gIHByb3BvcnRpb24gPSAxO1xyXG4gIG9yaWdpbmFsU2l6ZSA9IHtcclxuICAgIHdpZHRoOiAwLFxyXG4gICAgaGVpZ2h0OiAwXHJcbiAgfTtcclxuICBib3VuZGFyeUJveCE6IHtcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gIH07XHJcbiAgY3V0Qm94ID0ge1xyXG4gICAgd2lkdGg6IDAsXHJcbiAgICBoZWlnaHQ6IDAsXHJcbiAgICB4OiAwLFxyXG4gICAgeTogMFxyXG4gIH07XHJcbiAgY2xpcFJlY3QhOiB7XHJcbiAgICB0b3A6IG51bWJlcjtcclxuICAgIHJpZ2h0OiBudW1iZXI7XHJcbiAgICBib3R0b206IG51bWJlcjtcclxuICAgIGxlZnQ6IG51bWJlcjtcclxuICB9O1xyXG5cclxuICBkb2M6IERvY3VtZW50O1xyXG5cclxuICBjbG9zZVBvcnRhbCE6ICgpID0+IHZvaWQ7XHJcbiAgZGVzdHJveVBvcnRhbCE6ICgpID0+IHZvaWQ7XHJcbiAgc3VyZVBvcnRhbCE6IChibG9iOiBCbG9iKSA9PiB2b2lkO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55KSB7XHJcbiAgICB0aGlzLmRvYyA9IGRvY3VtZW50O1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNldEN1dCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDdXQoKSB7XHJcbiAgICBsZXQgd2lkdGggPSB0aGlzLmltZ1JlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgbGV0IGhlaWdodCA9IHRoaXMuaW1nUmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmN1dFJlZi5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCBgJHt3aWR0aH1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmN1dFJlZi5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYm91bmRhcnlSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7d2lkdGh9cHhgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ib3VuZGFyeVJlZi5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaW1nUmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3dpZHRofXB4YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaW1nUmVmLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHtoZWlnaHR9cHhgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5pbWdDbGlwUmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3dpZHRofXB4YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaW1nQ2xpcFJlZi5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YCk7XHJcbiAgICB0aGlzLmN1dEJveC53aWR0aCA9IHdpZHRoO1xyXG4gICAgdGhpcy5jdXRCb3guaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgdGhpcy5ib3VuZGFyeUJveCA9IHsgd2lkdGgsIGhlaWdodCB9O1xyXG4gICAgdGhpcy5jbGlwUmVjdCA9IHtcclxuICAgICAgdG9wOiAwLFxyXG4gICAgICByaWdodDogd2lkdGgsXHJcbiAgICAgIGJvdHRvbTogaGVpZ2h0LFxyXG4gICAgICBsZWZ0OiAwXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXRPcmlnaW5hbFNpemUoKTtcclxuICAgIHRoaXMucmVhZHkgPSB0cnVlO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIGNvbnN0IG1vdXNlRG93biA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmN1dFJlZi5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJykucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSk7XHJcblxyXG4gICAgbW91c2VEb3duLnN1YnNjcmliZSgoZG93bk1lOiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICAgIGxldCB4ID0gZG93bk1lLnBhZ2VYO1xyXG4gICAgICBsZXQgeSA9IGRvd25NZS5wYWdlWTtcclxuICAgICAgbGV0IG9mZnNldFggPSAwO1xyXG4gICAgICBsZXQgb2Zmc2V0WSA9IDA7XHJcbiAgICAgIGNvbnN0IF91blN1YiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICAgIGxldCBjbGFzc05hbWUgPSAoZG93bk1lLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudCkuY2xhc3NOYW1lO1xyXG4gICAgICBjb25zdCBzcHQgPSBgJHtYVXBsb2FkUG9ydGFsUHJlZml4fS1jdXQtYDtcclxuICAgICAgaWYgKGNsYXNzTmFtZS5pbmNsdWRlcyhzcHQpKSB7XHJcbiAgICAgICAgdGhpcy5jdXRUeXBlID0gY2xhc3NOYW1lLnJlcGxhY2Uoc3B0LCAnJykgYXMgWFVwbG9hZEN1dFR5cGU7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQsICdtb3VzZW1vdmUnKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbChfdW5TdWIpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKG1vdmVNZTogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICAgICAgb2Zmc2V0WCA9IG1vdmVNZS5wYWdlWCAtIHg7XHJcbiAgICAgICAgICBvZmZzZXRZID0gbW92ZU1lLnBhZ2VZIC0geTtcclxuICAgICAgICAgIHggPSBtb3ZlTWUucGFnZVg7XHJcbiAgICAgICAgICB5ID0gbW92ZU1lLnBhZ2VZO1xyXG4gICAgICAgICAgdGhpcy5zZXRDdXRFbGUodGhpcy5jdXRUeXBlLCBvZmZzZXRYLCBvZmZzZXRZKTtcclxuICAgICAgICB9KTtcclxuICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudCwgJ21vdXNldXAnKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbChfdW5TdWIpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY3V0VHlwZSA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgX3VuU3ViLm5leHQoKTtcclxuICAgICAgICAgIF91blN1Yi5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRPcmlnaW5hbFNpemUoKSB7XHJcbiAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcclxuICAgIGltZy5zcmMgPSB0aGlzLmZpbGUudXJsITtcclxuICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMub3JpZ2luYWxTaXplID0geyB3aWR0aDogaW1nLndpZHRoLCBoZWlnaHQ6IGltZy5oZWlnaHQgfTtcclxuICAgICAgdGhpcy5wcm9wb3J0aW9uID0gdGhpcy5ib3VuZGFyeUJveC53aWR0aCAvIHRoaXMub3JpZ2luYWxTaXplLndpZHRoO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHNldEN1dEVsZShwb3NpdGlvbjogWFVwbG9hZEN1dFR5cGUsIHg6IG51bWJlciwgeTogbnVtYmVyKSB7XHJcbiAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7XHJcbiAgICAgIGNhc2UgJ3RvcC1zdGFydCc6XHJcbiAgICAgICAgdGhpcy5jdXRCb3gud2lkdGggLT0geDtcclxuICAgICAgICB0aGlzLmN1dEJveC5oZWlnaHQgLT0geTtcclxuICAgICAgICB0aGlzLmN1dEJveC54ICs9IHg7XHJcbiAgICAgICAgdGhpcy5jdXRCb3gueSArPSB5O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0b3AnOlxyXG4gICAgICAgIHRoaXMuY3V0Qm94LmhlaWdodCAtPSB5O1xyXG4gICAgICAgIHRoaXMuY3V0Qm94LnkgKz0geTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndG9wLWVuZCc6XHJcbiAgICAgICAgdGhpcy5jdXRCb3gud2lkdGggKz0geDtcclxuICAgICAgICB0aGlzLmN1dEJveC5oZWlnaHQgLT0geTtcclxuICAgICAgICB0aGlzLmN1dEJveC55ICs9IHk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICB0aGlzLmN1dEJveC53aWR0aCArPSB4O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tZW5kJzpcclxuICAgICAgICB0aGlzLmN1dEJveC53aWR0aCArPSB4O1xyXG4gICAgICAgIHRoaXMuY3V0Qm94LmhlaWdodCArPSB5O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICAgIHRoaXMuY3V0Qm94LmhlaWdodCArPSB5O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tc3RhcnQnOlxyXG4gICAgICAgIHRoaXMuY3V0Qm94LndpZHRoIC09IHg7XHJcbiAgICAgICAgdGhpcy5jdXRCb3guaGVpZ2h0ICs9IHk7XHJcbiAgICAgICAgdGhpcy5jdXRCb3gueCArPSB4O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICB0aGlzLmN1dEJveC53aWR0aCAtPSB4O1xyXG4gICAgICAgIHRoaXMuY3V0Qm94LnggKz0geDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnJzpcclxuICAgICAgICB0aGlzLmN1dEJveC54ICs9IHg7XHJcbiAgICAgICAgdGhpcy5jdXRCb3gueSArPSB5O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYm91bmRhcnlSZWN0ID0gdGhpcy5ib3VuZGFyeVJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgIGNvbnN0IG1heFkgPSBib3VuZGFyeVJlY3QuaGVpZ2h0IC0gdGhpcy5jdXRCb3guaGVpZ2h0O1xyXG4gICAgY29uc3QgbWF4WCA9IGJvdW5kYXJ5UmVjdC53aWR0aCAtIHRoaXMuY3V0Qm94LndpZHRoO1xyXG5cclxuICAgIHRoaXMuY3V0Qm94LnggPSBYQ2xhbXAodGhpcy5jdXRCb3gueCwgMCwgbWF4WCk7XHJcbiAgICB0aGlzLmN1dEJveC55ID0gWENsYW1wKHRoaXMuY3V0Qm94LnksIDAsIG1heFkpO1xyXG5cclxuICAgIC8vIGNvbnN0IG1heFdpZHRoID0gYm91bmRhcnlSZWN0LmhlaWdodCAtIHRoaXMuY3V0Qm94Lnk7XHJcbiAgICAvLyBjb25zdCBtYXhIZWlnaHQgPSBib3VuZGFyeVJlY3Qud2lkdGggLSB0aGlzLmN1dEJveC54O1xyXG5cclxuICAgIC8vIHRoaXMuY3V0Qm94LndpZHRoID0gWENsYW1wKHRoaXMuY3V0Qm94LndpZHRoLCAwLCBtYXhXaWR0aCk7XHJcbiAgICAvLyB0aGlzLmN1dEJveC5oZWlnaHQgPSBYQ2xhbXAodGhpcy5jdXRCb3gud2lkdGgsIDAsIG1heEhlaWdodCk7XHJcblxyXG4gICAgdGhpcy5jbGlwUmVjdCA9IHtcclxuICAgICAgdG9wOiB0aGlzLmN1dEJveC55LFxyXG4gICAgICByaWdodDogdGhpcy5jdXRCb3gud2lkdGggKyB0aGlzLmN1dEJveC54LFxyXG4gICAgICBib3R0b206IHRoaXMuY3V0Qm94LmhlaWdodCArIHRoaXMuY3V0Qm94LnksXHJcbiAgICAgIGxlZnQ6IHRoaXMuY3V0Qm94LnhcclxuICAgIH07XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxyXG4gICAgICB0aGlzLmltZ0NsaXBSZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgJ2NsaXAnLFxyXG4gICAgICBgcmVjdCgke3RoaXMuY2xpcFJlY3QudG9wfXB4LCR7dGhpcy5jbGlwUmVjdC5yaWdodH1weCwke3RoaXMuY2xpcFJlY3QuYm90dG9tfXB4LCR7dGhpcy5jbGlwUmVjdC5sZWZ0fXB4KWBcclxuICAgICk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY3V0UmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3RoaXMuY3V0Qm94LndpZHRofXB4YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY3V0UmVmLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHt0aGlzLmN1dEJveC5oZWlnaHR9cHhgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jdXRSZWYubmF0aXZlRWxlbWVudCwgJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUzZCgke3RoaXMuY3V0Qm94Lnh9cHgsICR7dGhpcy5jdXRCb3gueX1weCwgMClgKTtcclxuICB9XHJcblxyXG4gIHN1cmUoKSB7XHJcbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcclxuICAgIGNhbnZhcy53aWR0aCA9IHRoaXMuY3V0Qm94LndpZHRoIC8gdGhpcy5wcm9wb3J0aW9uO1xyXG4gICAgY2FudmFzLmhlaWdodCA9IHRoaXMuY3V0Qm94LmhlaWdodCAvIHRoaXMucHJvcG9ydGlvbjtcclxuICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKSE7XHJcbiAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcclxuICAgIGltZy5zcmMgPSB0aGlzLmZpbGUudXJsITtcclxuICAgIGltZy5jcm9zc09yaWdpbiA9ICdhbm9ueW1vdXMnO1xyXG4gICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1nLCAtdGhpcy5jdXRCb3gueCAvIHRoaXMucHJvcG9ydGlvbiwgLXRoaXMuY3V0Qm94LnkgLyB0aGlzLnByb3BvcnRpb24pO1xyXG4gICAgICBjYW52YXMudG9CbG9iKChibG9iKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdXJlUG9ydGFsKGJsb2IgYXMgQmxvYik7XHJcbiAgICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LXVwbG9hZC1wb3J0YWwge3sgY3V0VHlwZSB9fVwiIFtjbGFzcy54LXVwbG9hZC1wb3J0YWwtcmVhZHldPVwicmVhZHlcIj5cclxuICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLXRvb2xzXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLXRpdGxlXCI+XHJcbiAgICAgIDx4LWljb24gdHlwZT1cImZ0by1pbWFnZVwiPjwveC1pY29uPlxyXG4gICAgICA8c3Bhbj57eyBmaWxlPy5uYW1lIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8eC1pY29uIGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWNsb3NlXCIgdHlwZT1cImZ0by14XCIgKGNsaWNrKT1cImNsb3NlUG9ydGFsKClcIj48L3gtaWNvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWltZ1wiPlxyXG4gICAgPGltZyAjaW1nUmVmIGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWZ1bGwtaW1nXCIgW3NyY109XCJmaWxlLnVybFwiIC8+XHJcbiAgICA8ZGl2ICNib3VuZGFyeVJlZiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1ib3VuZGFyeVwiPlxyXG4gICAgICA8aW1nICNpbWdDbGlwUmVmIGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWNsaXAtaW1nXCIgW3NyY109XCJmaWxlLnVybFwiIC8+XHJcbiAgICAgIDxkaXYgI2N1dFJlZiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1jdXRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWN1dC10b3Atc3RhcnRcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWN1dC10b3BcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWN1dC10b3AtZW5kXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1jdXQtbGVmdFwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LXVwbG9hZC1wb3J0YWwtY3V0LXJpZ2h0XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1jdXQtYm90dG9tLXN0YXJ0XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1jdXQtYm90dG9tXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1jdXQtYm90dG9tLWVuZFwiPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXVwbG9hZC1wb3J0YWwtYm90dG9tLXRvb2xzXCI+XHJcbiAgICA8eC1pY29uIGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWNsb3NlXCIgdHlwZT1cImZ0by1jaGVja1wiIChjbGljayk9XCJzdXJlKClcIj48L3gtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLXBvcnRhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS91cGxvYWQvdXBsb2FkLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS91cGxvYWQvdXBsb2FkLXBvcnRhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFJVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEVBQStCLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQVNyRixNQUFNLE9BQU8sc0JBQXNCO0lBcUNqQyxZQUFvQixRQUFtQixFQUFVLEdBQXNCLEVBQW9CLFFBQWE7UUFBcEYsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBL0J2RSxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsWUFBTyxHQUFtQixFQUFFLENBQUM7UUFDN0IsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGlCQUFZLEdBQUc7WUFDYixLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sRUFBRSxDQUFDO1NBQ1YsQ0FBQztRQUtGLFdBQU0sR0FBRztZQUNQLEtBQUssRUFBRSxDQUFDO1lBQ1IsTUFBTSxFQUFFLENBQUM7WUFDVCxDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxD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LE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMzRixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBWSxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztJQUNKLENBQUM7O3NJQTdNVSxzQkFBc0IsNEVBcUNnRCxRQUFROzBIQXJDOUUsc0JBQXNCLG9hQ3ZCbkMsdzNDQTRCQTsyRkRMYSxzQkFBc0I7a0JBUGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEdBQUcsbUJBQW1CLEVBQUU7b0JBQ2xDLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO29CQUM3QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzswQkFzQzJFLE1BQU07MkJBQUMsUUFBUTs0Q0FuQ3BFLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDTSxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0csV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUNILE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgVmlld0NoaWxkLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIEluamVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBYQ2xhbXAgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWFVwbG9hZEN1dFR5cGUsIFhVcGxvYWROb2RlLCBYVXBsb2FkUG9ydGFsUHJlZml4IH0gZnJvbSAnLi91cGxvYWQucHJvcGVydHknO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hVcGxvYWRQb3J0YWxQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLXBvcnRhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhVcGxvYWRQb3J0YWxDb21wb25lbnQge1xyXG4gIGZpbGUhOiBYVXBsb2FkTm9kZTtcclxuICBAVmlld0NoaWxkKCdpbWdSZWYnKSBpbWdSZWYhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2ltZ0NsaXBSZWYnKSBpbWdDbGlwUmVmITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdib3VuZGFyeVJlZicpIGJvdW5kYXJ5UmVmITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdjdXRSZWYnKSBjdXRSZWYhOiBFbGVtZW50UmVmO1xyXG4gIHJlYWR5ID0gZmFsc2U7XHJcbiAgY3V0VHlwZTogWFVwbG9hZEN1dFR5cGUgPSAnJztcclxuICBwcm9wb3J0aW9uID0gMTtcclxuICBvcmlnaW5hbFNpemUgPSB7XHJcbiAgICB3aWR0aDogMCxcclxuICAgIGhlaWdodDogMFxyXG4gIH07XHJcbiAgYm91bmRhcnlCb3ghOiB7XHJcbiAgICB3aWR0aDogMDtcclxuICAgIGhlaWdodDogMDtcclxuICB9O1xyXG4gIGN1dEJveCA9IHtcclxuICAgIHdpZHRoOiAwLFxyXG4gICAgaGVpZ2h0OiAwLFxyXG4gICAgeDogMCxcclxuICAgIHk6IDBcclxuICB9O1xyXG4gIGNsaXBSZWN0IToge1xyXG4gICAgdG9wOiBudW1iZXI7XHJcbiAgICByaWdodDogbnVtYmVyO1xyXG4gICAgYm90dG9tOiBudW1iZXI7XHJcbiAgICBsZWZ0OiBudW1iZXI7XHJcbiAgfTtcclxuXHJcbiAgZG9jOiBEb2N1bWVudDtcclxuXHJcbiAgY2xvc2VQb3J0YWwhOiAoKSA9PiB2b2lkO1xyXG4gIGRlc3Ryb3lQb3J0YWwhOiAoKSA9PiB2b2lkO1xyXG4gIHN1cmVQb3J0YWwhOiAoYmxvYjogQmxvYikgPT4gdm9pZDtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IGFueSkge1xyXG4gICAgdGhpcy5kb2MgPSBkb2N1bWVudDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXRDdXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q3V0KCkge1xyXG4gICAgbGV0IHdpZHRoID0gdGhpcy5pbWdSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcclxuICAgIGxldCBoZWlnaHQgPSB0aGlzLmltZ1JlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jdXRSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7d2lkdGh9cHhgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jdXRSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJvdW5kYXJ5UmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3dpZHRofXB4YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYm91bmRhcnlSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmltZ1JlZi5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCBgJHt3aWR0aH1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmltZ1JlZi5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaW1nQ2xpcFJlZi5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCBgJHt3aWR0aH1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmltZ0NsaXBSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xyXG4gICAgdGhpcy5jdXRCb3gud2lkdGggPSB3aWR0aDtcclxuICAgIHRoaXMuY3V0Qm94LmhlaWdodCA9IGhlaWdodDtcclxuICAgIHRoaXMuYm91bmRhcnlCb3ggPSB7IHdpZHRoLCBoZWlnaHQgfTtcclxuICAgIHRoaXMuY2xpcFJlY3QgPSB7XHJcbiAgICAgIHRvcDogMCxcclxuICAgICAgcmlnaHQ6IHdpZHRoLFxyXG4gICAgICBib3R0b206IGhlaWdodCxcclxuICAgICAgbGVmdDogMFxyXG4gICAgfTtcclxuICAgIHRoaXMuc2V0T3JpZ2luYWxTaXplKCk7XHJcbiAgICB0aGlzLnJlYWR5ID0gdHJ1ZTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5jdXRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpO1xyXG5cclxuICAgIG1vdXNlRG93bi5zdWJzY3JpYmUoKGRvd25NZTogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICBsZXQgeCA9IGRvd25NZS5wYWdlWDtcclxuICAgICAgbGV0IHkgPSBkb3duTWUucGFnZVk7XHJcbiAgICAgIGxldCBvZmZzZXRYID0gMDtcclxuICAgICAgbGV0IG9mZnNldFkgPSAwO1xyXG4gICAgICBjb25zdCBfdW5TdWIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgICBsZXQgY2xhc3NOYW1lID0gKGRvd25NZS50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQpLmNsYXNzTmFtZTtcclxuICAgICAgY29uc3Qgc3B0ID0gYCR7WFVwbG9hZFBvcnRhbFByZWZpeH0tY3V0LWA7XHJcbiAgICAgIGlmIChjbGFzc05hbWUuaW5jbHVkZXMoc3B0KSkge1xyXG4gICAgICAgIHRoaXMuY3V0VHlwZSA9IGNsYXNzTmFtZS5yZXBsYWNlKHNwdCwgJycpIGFzIFhVcGxvYWRDdXRUeXBlO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LCAnbW91c2Vtb3ZlJylcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwoX3VuU3ViKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChtb3ZlTWU6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgICAgIG9mZnNldFggPSBtb3ZlTWUucGFnZVggLSB4O1xyXG4gICAgICAgICAgb2Zmc2V0WSA9IG1vdmVNZS5wYWdlWSAtIHk7XHJcbiAgICAgICAgICB4ID0gbW92ZU1lLnBhZ2VYO1xyXG4gICAgICAgICAgeSA9IG1vdmVNZS5wYWdlWTtcclxuICAgICAgICAgIHRoaXMuc2V0Q3V0RWxlKHRoaXMuY3V0VHlwZSwgb2Zmc2V0WCwgb2Zmc2V0WSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQsICdtb3VzZXVwJylcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwoX3VuU3ViKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY3V0VHlwZSA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgX3VuU3ViLm5leHQoKTtcclxuICAgICAgICAgIF91blN1Yi5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRPcmlnaW5hbFNpemUoKSB7XHJcbiAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcclxuICAgIGltZy5zcmMgPSB0aGlzLmZpbGUudXJsITtcclxuICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMub3JpZ2luYWxTaXplID0geyB3aWR0aDogaW1nLndpZHRoLCBoZWlnaHQ6IGltZy5oZWlnaHQgfTtcclxuICAgICAgdGhpcy5wcm9wb3J0aW9uID0gdGhpcy5ib3VuZGFyeUJveC53aWR0aCAvIHRoaXMub3JpZ2luYWxTaXplLndpZHRoO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHNldEN1dEVsZShwb3NpdGlvbjogWFVwbG9hZEN1dFR5cGUsIHg6IG51bWJlciwgeTogbnVtYmVyKSB7XHJcbiAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7XHJcbiAgICAgIGNhc2UgJ3RvcC1zdGFydCc6XHJcbiAgICAgICAgdGhpcy5jdXRCb3gud2lkdGggLT0geDtcclxuICAgICAgICB0aGlzLmN1dEJveC5oZWlnaHQgLT0geTtcclxuICAgICAgICB0aGlzLmN1dEJveC54ICs9IHg7XHJcbiAgICAgICAgdGhpcy5jdXRCb3gueSArPSB5O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0b3AnOlxyXG4gICAgICAgIHRoaXMuY3V0Qm94LmhlaWdodCAtPSB5O1xyXG4gICAgICAgIHRoaXMuY3V0Qm94LnkgKz0geTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndG9wLWVuZCc6XHJcbiAgICAgICAgdGhpcy5jdXRCb3gud2lkdGggKz0geDtcclxuICAgICAgICB0aGlzLmN1dEJveC5oZWlnaHQgLT0geTtcclxuICAgICAgICB0aGlzLmN1dEJveC55ICs9IHk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICB0aGlzLmN1dEJveC53aWR0aCArPSB4O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tZW5kJzpcclxuICAgICAgICB0aGlzLmN1dEJveC53aWR0aCArPSB4O1xyXG4gICAgICAgIHRoaXMuY3V0Qm94LmhlaWdodCArPSB5O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICAgIHRoaXMuY3V0Qm94LmhlaWdodCArPSB5O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tc3RhcnQnOlxyXG4gICAgICAgIHRoaXMuY3V0Qm94LndpZHRoIC09IHg7XHJcbiAgICAgICAgdGhpcy5jdXRCb3guaGVpZ2h0ICs9IHk7XHJcbiAgICAgICAgdGhpcy5jdXRCb3gueCArPSB4O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICB0aGlzLmN1dEJveC53aWR0aCAtPSB4O1xyXG4gICAgICAgIHRoaXMuY3V0Qm94LnggKz0geDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnJzpcclxuICAgICAgICB0aGlzLmN1dEJveC54ICs9IHg7XHJcbiAgICAgICAgdGhpcy5jdXRCb3gueSArPSB5O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYm91bmRhcnlSZWN0ID0gdGhpcy5ib3VuZGFyeVJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgIGNvbnN0IG1heFkgPSBib3VuZGFyeVJlY3QuaGVpZ2h0IC0gdGhpcy5jdXRCb3guaGVpZ2h0O1xyXG4gICAgY29uc3QgbWF4WCA9IGJvdW5kYXJ5UmVjdC53aWR0aCAtIHRoaXMuY3V0Qm94LndpZHRoO1xyXG5cclxuICAgIHRoaXMuY3V0Qm94LnggPSBYQ2xhbXAodGhpcy5jdXRCb3gueCwgMCwgbWF4WCk7XHJcbiAgICB0aGlzLmN1dEJveC55ID0gWENsYW1wKHRoaXMuY3V0Qm94LnksIDAsIG1heFkpO1xyXG5cclxuICAgIC8vIGNvbnN0IG1heFdpZHRoID0gYm91bmRhcnlSZWN0LmhlaWdodCAtIHRoaXMuY3V0Qm94Lnk7XHJcbiAgICAvLyBjb25zdCBtYXhIZWlnaHQgPSBib3VuZGFyeVJlY3Qud2lkdGggLSB0aGlzLmN1dEJveC54O1xyXG5cclxuICAgIC8vIHRoaXMuY3V0Qm94LndpZHRoID0gWENsYW1wKHRoaXMuY3V0Qm94LndpZHRoLCAwLCBtYXhXaWR0aCk7XHJcbiAgICAvLyB0aGlzLmN1dEJveC5oZWlnaHQgPSBYQ2xhbXAodGhpcy5jdXRCb3gud2lkdGgsIDAsIG1heEhlaWdodCk7XHJcblxyXG4gICAgdGhpcy5jbGlwUmVjdCA9IHtcclxuICAgICAgdG9wOiB0aGlzLmN1dEJveC55LFxyXG4gICAgICByaWdodDogdGhpcy5jdXRCb3gud2lkdGggKyB0aGlzLmN1dEJveC54LFxyXG4gICAgICBib3R0b206IHRoaXMuY3V0Qm94LmhlaWdodCArIHRoaXMuY3V0Qm94LnksXHJcbiAgICAgIGxlZnQ6IHRoaXMuY3V0Qm94LnhcclxuICAgIH07XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxyXG4gICAgICB0aGlzLmltZ0NsaXBSZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgJ2NsaXAnLFxyXG4gICAgICBgcmVjdCgke3RoaXMuY2xpcFJlY3QudG9wfXB4LCR7dGhpcy5jbGlwUmVjdC5yaWdodH1weCwke3RoaXMuY2xpcFJlY3QuYm90dG9tfXB4LCR7dGhpcy5jbGlwUmVjdC5sZWZ0fXB4KWBcclxuICAgICk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY3V0UmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3RoaXMuY3V0Qm94LndpZHRofXB4YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY3V0UmVmLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHt0aGlzLmN1dEJveC5oZWlnaHR9cHhgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jdXRSZWYubmF0aXZlRWxlbWVudCwgJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUzZCgke3RoaXMuY3V0Qm94Lnh9cHgsICR7dGhpcy5jdXRCb3gueX1weCwgMClgKTtcclxuICB9XHJcblxyXG4gIHN1cmUoKSB7XHJcbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcclxuICAgIGNhbnZhcy53aWR0aCA9IHRoaXMuY3V0Qm94LndpZHRoIC8gdGhpcy5wcm9wb3J0aW9uO1xyXG4gICAgY2FudmFzLmhlaWdodCA9IHRoaXMuY3V0Qm94LmhlaWdodCAvIHRoaXMucHJvcG9ydGlvbjtcclxuICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKSE7XHJcbiAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcclxuICAgIGltZy5zcmMgPSB0aGlzLmZpbGUudXJsITtcclxuICAgIGltZy5jcm9zc09yaWdpbiA9ICdhbm9ueW1vdXMnO1xyXG4gICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1nLCAtdGhpcy5jdXRCb3gueCAvIHRoaXMucHJvcG9ydGlvbiwgLXRoaXMuY3V0Qm94LnkgLyB0aGlzLnByb3BvcnRpb24pO1xyXG4gICAgICBjYW52YXMudG9CbG9iKChibG9iKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdXJlUG9ydGFsKGJsb2IgYXMgQmxvYik7XHJcbiAgICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LXVwbG9hZC1wb3J0YWwge3sgY3V0VHlwZSB9fVwiIFtjbGFzcy54LXVwbG9hZC1wb3J0YWwtcmVhZHldPVwicmVhZHlcIj5cclxuICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLXRvb2xzXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLXRpdGxlXCI+XHJcbiAgICAgIDx4LWljb24gdHlwZT1cImZ0by1pbWFnZVwiPjwveC1pY29uPlxyXG4gICAgICA8c3Bhbj57eyBmaWxlPy5uYW1lIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8eC1pY29uIGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWNsb3NlXCIgdHlwZT1cImZ0by14XCIgKGNsaWNrKT1cImNsb3NlUG9ydGFsKClcIj48L3gtaWNvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWltZ1wiPlxyXG4gICAgPGltZyAjaW1nUmVmIGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWZ1bGwtaW1nXCIgW3NyY109XCJmaWxlLnVybFwiIC8+XHJcbiAgICA8ZGl2ICNib3VuZGFyeVJlZiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1ib3VuZGFyeVwiPlxyXG4gICAgICA8aW1nICNpbWdDbGlwUmVmIGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWNsaXAtaW1nXCIgW3NyY109XCJmaWxlLnVybFwiIC8+XHJcbiAgICAgIDxkaXYgI2N1dFJlZiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1jdXRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWN1dC10b3Atc3RhcnRcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWN1dC10b3BcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWN1dC10b3AtZW5kXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1jdXQtbGVmdFwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LXVwbG9hZC1wb3J0YWwtY3V0LXJpZ2h0XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1jdXQtYm90dG9tLXN0YXJ0XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1jdXQtYm90dG9tXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLXBvcnRhbC1jdXQtYm90dG9tLWVuZFwiPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXVwbG9hZC1wb3J0YWwtYm90dG9tLXRvb2xzXCI+XHJcbiAgICA8eC1pY29uIGNsYXNzPVwieC11cGxvYWQtcG9ydGFsLWNsb3NlXCIgdHlwZT1cImZ0by1jaGVja1wiIChjbGljayk9XCJzdXJlKClcIj48L3gtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -156,7 +156,7 @@ export class XUploadComponent extends XUploadProperty {
156
156
  }
157
157
  return;
158
158
  }
159
- trackByItem(index, item) {
159
+ trackByItem(_index, item) {
160
160
  return `${item.name}-${item.lastModified}`;
161
161
  }
162
162
  onImgCut(file, index) {
@@ -207,16 +207,17 @@ export class XUploadComponent extends XUploadProperty {
207
207
  }
208
208
  imgError(event, file) {
209
209
  file.state = 'error';
210
+ console.error(event.error);
210
211
  this.cdr.detectChanges();
211
212
  }
212
- imgLoad(event, file) {
213
+ imgLoad(file) {
213
214
  file.state = 'success';
214
215
  this.cdr.detectChanges();
215
216
  }
216
217
  }
217
- /** @nocollapse */ XUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XUploadComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.HttpClient }, { token: i0.ChangeDetectorRef }, { token: i2.XPortalService }, { token: i0.ViewContainerRef }, { token: i3.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
218
- /** @nocollapse */ XUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XUploadComponent, selector: "x-upload", providers: [XValueAccessor(XUploadComponent)], viewQueries: [{ propertyName: "file", first: true, predicate: ["file"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #upload class=\"x-upload x-upload-{{ type }}\" [class.x-disabled]=\"disabled\">\r\n <input type=\"file\" #file (change)=\"change($event)\" [attr.accept]=\"accept\" [multiple]=\"multiple\" style=\"display: none\" />\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]=\"disabled\" type=\"primary\">{{ getText }}</x-button>\r\n </ng-container>\r\n </div>\r\n <ng-container [ngSwitch]=\"type\">\r\n <ng-container *ngSwitchCase=\"'list'\">\r\n <ul class=\"x-upload-files\">\r\n <li *ngFor=\"let file of files; index as i; trackBy: trackByItem\">\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 <ng-container [ngSwitch]=\"file.state\">\r\n <x-icon class=\"x-upload-state\" *ngSwitchCase=\"'ready'\" type=\"fto-clock\"></x-icon>\r\n <span class=\"x-upload-percent\" *ngSwitchCase=\"'uploading'\">{{ file.percent }}%</span>\r\n <x-icon class=\"x-upload-state success\" *ngSwitchCase=\"'success'\" type=\"fto-check\"></x-icon>\r\n <x-icon class=\"x-upload-state error\" *ngSwitchCase=\"'error'\" type=\"fto-info\"></x-icon>\r\n </ng-container>\r\n <x-button *ngIf=\"file.state !== 'uploading'\" icon=\"fto-x\" (click)=\"remove(file, i)\" onlyIcon closable></x-button>\r\n </li>\r\n </ul>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'img'\">\r\n <div class=\"x-upload-img-item {{ file.state }}\" *ngFor=\"let file of files; index as i; trackBy: trackByItem\" [title]=\"file.name\">\r\n <div class=\"x-upload-img-inner\">\r\n <img [src]=\"file.url\" (load)=\"imgLoad($event, file)\" (error)=\"imgError($event, file)\" />\r\n <x-icon type=\"fto-image\"></x-icon>\r\n <span *ngIf=\"file.state == 'uploading'\">{{ file.percent }}%</span>\r\n </div>\r\n <div class=\"x-upload-img-btns\">\r\n <div class=\"x-upload-img-btns-inner\">\r\n <ng-container [ngSwitch]=\"file.state\">\r\n <x-icon class=\"x-upload-state\" *ngSwitchCase=\"'ready'\" type=\"fto-clock\"></x-icon>\r\n <x-icon class=\"x-upload-state error\" *ngSwitchCase=\"'error'\" type=\"fto-info\"></x-icon>\r\n <a [href]=\"file.url\" target=\"_blank\" *ngSwitchCase=\"'success'\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n </a>\r\n </ng-container>\r\n <x-icon *ngIf=\"imgCut && file.state === 'success'\" type=\"fto-crop\" (click)=\"onImgCut(file, i)\"></x-icon>\r\n <x-icon *ngIf=\"file.state !== 'uploading'\" type=\"fto-trash-2\" (click)=\"remove(file, i)\"></x-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n", styles: [".x-upload{margin:0;padding:0;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{margin-top:.4rem}.x-upload-files>li{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:hover{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-item{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-item .x-upload-img-inner{height:100%;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-direction:column}.x-upload-img-item .x-upload-img-inner>img{width:100%;border-radius:var(--x-border-radius)}.x-upload-img-item .x-upload-img-inner>x-icon{display:none;font-size:3rem;color:var(--x-danger)}.x-upload-img-item.error{border-color:var(--x-danger)}.x-upload-img-item.error .x-upload-img-inner>img{display:none}.x-upload-img-item.error .x-upload-img-inner>x-icon{display:inherit}.x-upload-img-item:hover .x-upload-img-btns{background-color:#00000073}.x-upload-img-item:hover .x-upload-img-btns-inner{display:initial}.x-upload-img-btns{position:absolute;height:100%;width:100%;display:flex;align-items:center;justify-content:center;border-radius:var(--x-border-radius);background-color:#0000;transition:all var(--x-animation-duration-base)}.x-upload-img-btns x-icon{cursor:pointer;font-size:1rem;padding:.25rem;color:#ffffffb3}.x-upload-img-btns x-icon:hover{color:#fff}.x-upload-img-btns-inner{display:none}"], components: [{ type: i4.XButtonComponent, selector: "x-button" }, { type: i5.XIconComponent, selector: "x-icon" }], directives: [{ type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XUploadComponent, decorators: [{
218
+ /** @nocollapse */ XUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XUploadComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.HttpClient }, { token: i0.ChangeDetectorRef }, { token: i2.XPortalService }, { token: i0.ViewContainerRef }, { token: i3.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
219
+ /** @nocollapse */ XUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XUploadComponent, selector: "x-upload", providers: [XValueAccessor(XUploadComponent)], viewQueries: [{ propertyName: "file", first: true, predicate: ["file"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #upload class=\"x-upload x-upload-{{ type }}\" [class.x-disabled]=\"disabled\">\r\n <input type=\"file\" #file (change)=\"change($event)\" [attr.accept]=\"accept\" [multiple]=\"multiple\" style=\"display: none\" />\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]=\"disabled\" type=\"primary\">{{ getText }}</x-button>\r\n </ng-container>\r\n </div>\r\n <ng-container [ngSwitch]=\"type\">\r\n <ng-container *ngSwitchCase=\"'list'\">\r\n <ul class=\"x-upload-files\">\r\n <li *ngFor=\"let file of files; index as i; trackBy: trackByItem\">\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 <ng-container [ngSwitch]=\"file.state\">\r\n <x-icon class=\"x-upload-state\" *ngSwitchCase=\"'ready'\" type=\"fto-clock\"></x-icon>\r\n <span class=\"x-upload-percent\" *ngSwitchCase=\"'uploading'\">{{ file.percent }}%</span>\r\n <x-icon class=\"x-upload-state success\" *ngSwitchCase=\"'success'\" type=\"fto-check\"></x-icon>\r\n <x-icon class=\"x-upload-state error\" *ngSwitchCase=\"'error'\" type=\"fto-info\"></x-icon>\r\n </ng-container>\r\n <x-button *ngIf=\"file.state !== 'uploading'\" icon=\"fto-x\" (click)=\"remove(file, i)\" onlyIcon closable></x-button>\r\n </li>\r\n </ul>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'img'\">\r\n <div class=\"x-upload-img-item {{ file.state }}\" *ngFor=\"let file of files; index as i; trackBy: trackByItem\" [title]=\"file.name\">\r\n <div class=\"x-upload-img-inner\">\r\n <img [src]=\"file.url\" (load)=\"imgLoad(file)\" (error)=\"imgError($event, file)\" />\r\n <x-icon type=\"fto-image\"></x-icon>\r\n <span *ngIf=\"file.state == 'uploading'\">{{ file.percent }}%</span>\r\n </div>\r\n <div class=\"x-upload-img-btns\">\r\n <div class=\"x-upload-img-btns-inner\">\r\n <ng-container [ngSwitch]=\"file.state\">\r\n <x-icon class=\"x-upload-state\" *ngSwitchCase=\"'ready'\" type=\"fto-clock\"></x-icon>\r\n <x-icon class=\"x-upload-state error\" *ngSwitchCase=\"'error'\" type=\"fto-info\"></x-icon>\r\n <a [href]=\"file.url\" target=\"_blank\" *ngSwitchCase=\"'success'\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n </a>\r\n </ng-container>\r\n <x-icon *ngIf=\"imgCut && file.state === 'success'\" type=\"fto-crop\" (click)=\"onImgCut(file, i)\"></x-icon>\r\n <x-icon *ngIf=\"file.state !== 'uploading'\" type=\"fto-trash-2\" (click)=\"remove(file, i)\"></x-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n", styles: [".x-upload{margin:0;padding:0;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{margin-top:.4rem}.x-upload-files>li{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:hover{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-item{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-item .x-upload-img-inner{height:100%;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-direction:column}.x-upload-img-item .x-upload-img-inner>img{width:100%;border-radius:var(--x-border-radius)}.x-upload-img-item .x-upload-img-inner>x-icon{display:none;font-size:3rem;color:var(--x-danger)}.x-upload-img-item.error{border-color:var(--x-danger)}.x-upload-img-item.error .x-upload-img-inner>img{display:none}.x-upload-img-item.error .x-upload-img-inner>x-icon{display:inherit}.x-upload-img-item:hover .x-upload-img-btns{background-color:#00000073}.x-upload-img-item:hover .x-upload-img-btns-inner{display:initial}.x-upload-img-btns{position:absolute;height:100%;width:100%;display:flex;align-items:center;justify-content:center;border-radius:var(--x-border-radius);background-color:#0000;transition:all var(--x-animation-duration-base)}.x-upload-img-btns x-icon{cursor:pointer;font-size:1rem;padding:.25rem;color:#ffffffb3}.x-upload-img-btns x-icon:hover{color:#fff}.x-upload-img-btns-inner{display:none}\n"], components: [{ type: i4.XButtonComponent, selector: "x-button" }, { type: i5.XIconComponent, selector: "x-icon" }], directives: [{ type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XUploadComponent, decorators: [{
220
221
  type: Component,
221
222
  args: [{
222
223
  selector: `${XUploadPrefix}`,
@@ -230,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImpor
230
231
  type: ViewChild,
231
232
  args: ['file', { static: true }]
232
233
  }] } });
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3VwbG9hZC91cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsYUFBYSxFQUFFLFdBQVcsRUFBYSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUl2QixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBZSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9CLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7O0FBVXZELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxlQUFlO0lBd0JuRCxZQUNTLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLElBQWdCLEVBQ2hCLEdBQXNCLEVBQ3RCLGFBQTZCLEVBQzdCLGdCQUFrQyxFQUNsQyxJQUFrQjtRQUV6QixLQUFLLEVBQUUsQ0FBQztRQVJELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFh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QUFPLENBQUMsS0FBWSxFQUFFLElBQWlCO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7Z0lBeE5VLGdCQUFnQjtvSEFBaEIsZ0JBQWdCLG1DQUZoQixDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLDZKQzFCL0MseS9GQWlEQTsyRkRyQmEsZ0JBQWdCO2tCQVI1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxHQUFHLGFBQWEsRUFBRTtvQkFDNUIsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3RDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFLENBQUMsY0FBYyxrQkFBa0IsQ0FBQztpQkFDOUM7eVFBRXNDLElBQUk7c0JBQXhDLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudFR5cGUsIEh0dHBSZXF1ZXN0LCBIdHRwRXZlbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhVcGxvYWRQcmVmaXgsIFhVcGxvYWROb2RlLCBYVXBsb2FkUHJvcGVydHksIFhVcGxvYWRQb3J0YWxQcmVmaXggfSBmcm9tICcuL3VwbG9hZC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc1RlbXBsYXRlUmVmIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFhJMThuU2VydmljZSwgWEkxOG5VcGxvYWQgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWFBvcnRhbE92ZXJsYXlSZWYsIFhQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWFVwbG9hZFBvcnRhbENvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkLXBvcnRhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFVwbG9hZFByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWFVwbG9hZENvbXBvbmVudCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVXBsb2FkQ29tcG9uZW50IGV4dGVuZHMgWFVwbG9hZFByb3BlcnR5IHtcclxuICBAVmlld0NoaWxkKCdmaWxlJywgeyBzdGF0aWM6IHRydWUgfSkgZmlsZSE6IEVsZW1lbnRSZWY7XHJcbiAgZmlsZXM6IFhVcGxvYWROb2RlW10gPSBbXTtcclxuICBzaG93VXBsb2FkID0gZmFsc2U7XHJcbiAgdXBsb2FkTm9kZXM6IFhVcGxvYWROb2RlW10gPSBbXTtcclxuICBsb2NhbGU6IFhJMThuVXBsb2FkID0ge307XHJcbiAgcG9ydGFsITogWFBvcnRhbE92ZXJsYXlSZWY8WFVwbG9hZFBvcnRhbENvbXBvbmVudD47XHJcblxyXG4gIGdldCBnZXRUZXh0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGV4dCB8fCB0aGlzLmxvY2FsZS51cGxvYWRUZXh0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzVGVtcGxhdGVUZXh0KCkge1xyXG4gICAgcmV0dXJuIFhJc1RlbXBsYXRlUmVmKHRoaXMuZ2V0VGV4dCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBYVXBsb2FkTm9kZVtdKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnNldEZpbGVzKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIHBvcnRhbFNlcnZpY2U6IFhQb3J0YWxTZXJ2aWNlLFxyXG4gICAgcHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwdWJsaWMgaTE4bjogWEkxOG5TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC51cGxvYWQgYXMgWEkxOG5VcGxvYWQpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0geDtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnaW1nJykgdGhpcy5hY2NlcHQgPSAnaW1hZ2UvKic7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdG9yeSgpIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHNldEZpbGVzKCkge1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy50eXBlICE9PSAnaW1nJykgcmV0dXJuO1xyXG4gICAgdGhpcy5maWxlcyA9IHRoaXMudmFsdWUubWFwKCh4KSA9PiB7XHJcbiAgICAgIGlmICgheC5zdGF0ZSkgeC5zdGF0ZSA9ICdzdWNjZXNzJztcclxuICAgICAgcmV0dXJuIHg7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNoYW5nZShldmVudDogRXZlbnQpIHtcclxuICAgIGxldCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3VuZGVmaW5lZCcgfHwgaW5wdXQuZmlsZXM/Lmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG4gICAgbGV0IGZpbGVzOiBYVXBsb2FkTm9kZVtdID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IChpbnB1dC5maWxlcyBhcyBGaWxlTGlzdCkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGZpbGU6IFhVcGxvYWROb2RlID0gKGlucHV0LmZpbGVzIGFzIEZpbGVMaXN0KS5pdGVtKGkpIGFzIFhVcGxvYWROb2RlO1xyXG4gICAgICBmaWxlLnN0YXRlID0gJ3JlYWR5JztcclxuICAgICAgZmlsZXMgPSBbLi4uZmlsZXMsIGZpbGVdO1xyXG4gICAgfVxyXG4gICAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHRoaXMuc2hvd1VwbG9hZCA9IHRydWU7XHJcbiAgICB0aGlzLmZpbGVzID0gZmlsZXM7XHJcbiAgICB0aGlzLnZhbHVlID0gW107XHJcbiAgICB0aGlzLnVwbG9hZGluZygpO1xyXG4gICAgaW5wdXQudmFsdWUgPSAnJztcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZShmaWxlOiBYVXBsb2FkTm9kZSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgaWYgKHRoaXMuZmlsZXMubGVuZ3RoID09PSAwKSB0aGlzLmZpbGUubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5zaG93VXBsb2FkID0gdGhpcy5maWxlcy5maW5kKCh4KSA9PiB4LnN0YXRlID09PSAncmVhZHknKSAhPSBudWxsO1xyXG4gICAgdGhpcy5yZW1vdmVDbGljay5lbWl0KHsgZmlsZTogZmlsZSwgaW5kZXg6IGluZGV4IH0pO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5maWxlLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICB9XHJcblxyXG4gIHVwbG9hZGluZygpIHtcclxuICAgIGlmICghdGhpcy5hY3Rpb24pIHJldHVybjtcclxuICAgIGxldCByZWFkeUZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIoKHgpID0+IHguc3RhdGUgPT09ICdyZWFkeScpO1xyXG4gICAgcmVhZHlGaWxlcy5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMudXBsb2FkRmlsZSh4KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkRmlsZShmaWxlOiBYVXBsb2FkTm9kZSwgaW5kZXggPSAtMSkge1xyXG4gICAgbGV0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcclxuICAgIGNvbnN0IHJlcSA9IG5ldyBIdHRwUmVxdWVzdCgnUE9TVCcsIHRoaXMuYWN0aW9uIGFzIHN0cmluZywgZm9ybURhdGEsIHtcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmh0dHBcclxuICAgICAgLnJlcXVlc3QocmVxKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKGV2ZW50KSA9PlxyXG4gICAgICAgICAgdGhpcy5nZXRFdmVudE1lc3NhZ2UoZXZlbnQsIGZpbGUsIChib2R5OiBCbG9iUGFydCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgYmxvYiA9IG5ldyBCbG9iKFtib2R5XSk7XHJcbiAgICAgICAgICAgIGxldCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICByZWFkZXIucmVhZEFzVGV4dChibG9iLCAndXRmLTgnKTtcclxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICBmaWxlLnVybCA9IEpTT04ucGFyc2UocmVhZGVyLnJlc3VsdCBhcyBzdHJpbmcpWzBdO1xyXG4gICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUucHVzaChmaWxlKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZVtpbmRleF0gPSBmaWxlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlc1tpbmRleF0gPSBmaWxlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hvd1VwbG9hZCA9IHRoaXMuZmlsZXMuZmluZCgoeSkgPT4geS5zdGF0ZSA9PT0gJ3JlYWR5JykgIT0gbnVsbDtcclxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIGZpbGUuc3RhdGUgPSAnZXJyb3InO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIGdldEV2ZW50TWVzc2FnZShldmVudDogSHR0cEV2ZW50PGFueT4sIGZpbGU6IFhVcGxvYWROb2RlLCBmdW46IEZ1bmN0aW9uKSB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlNlbnQ6XHJcbiAgICAgICAgZmlsZS5zdGF0ZSA9ICdyZWFkeSc7XHJcbiAgICAgICAgcmV0dXJuIGDlvIDlp4vkuIrkvKDmlofku7ZgO1xyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3M6XHJcbiAgICAgICAgZmlsZS5zdGF0ZSA9ICd1cGxvYWRpbmcnO1xyXG4gICAgICAgIGlmIChldmVudC50b3RhbCkgZmlsZS5wZXJjZW50ID0gTWF0aC5yb3VuZCgoMTAwICogZXZlbnQubG9hZGVkKSAvIGV2ZW50LnRvdGFsKTtcclxuICAgICAgICByZXR1cm4gYOS4iuS8oOS4rWA7XHJcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcclxuICAgICAgICBmaWxlLnN0YXRlID0gJ3N1Y2Nlc3MnO1xyXG4gICAgICAgIGZ1bihldmVudC5ib2R5KTtcclxuICAgICAgICByZXR1cm4gYOaWh+S7tuS4iuS8oOWujOavlWA7XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICB0cmFja0J5SXRlbShpbmRleDogbnVtYmVyLCBpdGVtOiBYVXBsb2FkTm9kZSkge1xyXG4gICAgcmV0dXJuIGAke2l0ZW0ubmFtZX0tJHtpdGVtLmxhc3RNb2RpZmllZH1gO1xyXG4gIH1cclxuXHJcbiAgb25JbWdDdXQoZmlsZTogWFVwbG9hZE5vZGUsIGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMucG9ydGFsID0gdGhpcy5wb3J0YWxTZXJ2aWNlLmF0dGFjaCh7XHJcbiAgICAgIGNvbnRlbnQ6IFhVcGxvYWRQb3J0YWxDb21wb25lbnQsXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcclxuICAgICAgb3ZlcmxheUNvbmZpZzoge1xyXG4gICAgICAgIHBhbmVsQ2xhc3M6IFtYVXBsb2FkUG9ydGFsUHJlZml4XSxcclxuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2UoJ2NlbnRlcicpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRJbnN0YW5jZShmaWxlLCBpbmRleCk7XHJcbiAgfVxyXG5cclxuICBzZXRJbnN0YW5jZShmaWxlOiBYVXBsb2FkTm9kZSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMucG9ydGFsPy5jb21wb25lbnRSZWY7XHJcbiAgICBpZiAoIWNvbXBvbmVudFJlZikgcmV0dXJuO1xyXG4gICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHtcclxuICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgY2xvc2VQb3J0YWw6ICgpID0+IHRoaXMuY2xvc2VQb3J0YWwoKSxcclxuICAgICAgZGVzdHJveVBvcnRhbDogKCkgPT4gdGhpcy5kZXN0cm95UG9ydGFsKCksXHJcbiAgICAgIHN1cmVQb3J0YWw6IChibG9iOiBCbG9iKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZmwgPSBuZXcgRmlsZShbYmxvYl0sIGZpbGUubmFtZSwgeyB0eXBlOiBibG9iLnR5cGUgfSkgYXMgWFVwbG9hZE5vZGU7XHJcbiAgICAgICAgZmwuc3RhdGUgPSAncmVhZHknO1xyXG4gICAgICAgIHRoaXMudXBsb2FkRmlsZShmbCwgaW5kZXgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwb3J0YWxBdHRhY2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGV0YWNoKCk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBkZXN0cm95UG9ydGFsKCkge1xyXG4gICAgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcclxuICB9XHJcblxyXG4gIGltZ0Vycm9yKGV2ZW50OiBFdmVudCwgZmlsZTogWFVwbG9hZE5vZGUpIHtcclxuICAgIGZpbGUuc3RhdGUgPSAnZXJyb3InO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgaW1nTG9hZChldmVudDogRXZlbnQsIGZpbGU6IFhVcGxvYWROb2RlKSB7XHJcbiAgICBmaWxlLnN0YXRlID0gJ3N1Y2Nlc3MnO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICN1cGxvYWQgY2xhc3M9XCJ4LXVwbG9hZCB4LXVwbG9hZC17eyB0eXBlIH19XCIgW2NsYXNzLngtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICA8aW5wdXQgdHlwZT1cImZpbGVcIiAjZmlsZSAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCIgW2F0dHIuYWNjZXB0XT1cImFjY2VwdFwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIC8+XHJcbiAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLWJ1dHRvbnNcIiBbY2xhc3MueC11cGxvYWQtYnV0dG9ucy10ZW1wbGF0ZV09XCJpc1RlbXBsYXRlVGV4dFwiIChjbGljayk9XCJ1cGxvYWRDbGljaygpXCI+XHJcbiAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZ2V0VGV4dFwiPlxyXG4gICAgICA8eC1idXR0b24gaWNvbj1cImZ0by11cGxvYWRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiB0eXBlPVwicHJpbWFyeVwiPnt7IGdldFRleHQgfX08L3gtYnV0dG9uPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xpc3QnXCI+XHJcbiAgICAgIDx1bCBjbGFzcz1cIngtdXBsb2FkLWZpbGVzXCI+XHJcbiAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiPlxyXG4gICAgICAgICAgPGEgW2hyZWZdPVwiZmlsZS51cmxcIiB0YXJnZXQ9XCJfYmxhbmtcIiBbdGl0bGVdPVwiZmlsZS5uYW1lXCI+XHJcbiAgICAgICAgICAgIDx4LWljb24gdHlwZT1cImZ0by1maWxlLXRleHRcIj48L3gtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ4LXVwbG9hZC1maWxlbmFtZVwiPnt7IGZpbGUubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpbGUuc3RhdGVcIj5cclxuICAgICAgICAgICAgPHgtaWNvbiBjbGFzcz1cIngtdXBsb2FkLXN0YXRlXCIgKm5nU3dpdGNoQ2FzZT1cIidyZWFkeSdcIiB0eXBlPVwiZnRvLWNsb2NrXCI+PC94LWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwieC11cGxvYWQtcGVyY2VudFwiICpuZ1N3aXRjaENhc2U9XCIndXBsb2FkaW5nJ1wiPnt7IGZpbGUucGVyY2VudCB9fSU8L3NwYW4+XHJcbiAgICAgICAgICAgIDx4LWljb24gY2xhc3M9XCJ4LXVwbG9hZC1zdGF0ZSBzdWNjZXNzXCIgKm5nU3dpdGNoQ2FzZT1cIidzdWNjZXNzJ1wiIHR5cGU9XCJmdG8tY2hlY2tcIj48L3gtaWNvbj5cclxuICAgICAgICAgICAgPHgtaWNvbiBjbGFzcz1cIngtdXBsb2FkLXN0YXRlIGVycm9yXCIgKm5nU3dpdGNoQ2FzZT1cIidlcnJvcidcIiB0eXBlPVwiZnRvLWluZm9cIj48L3gtaWNvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPHgtYnV0dG9uICpuZ0lmPVwiZmlsZS5zdGF0ZSAhPT0gJ3VwbG9hZGluZydcIiBpY29uPVwiZnRvLXhcIiAoY2xpY2spPVwicmVtb3ZlKGZpbGUsIGkpXCIgb25seUljb24gY2xvc2FibGU+PC94LWJ1dHRvbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW1nJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtaW1nLWl0ZW0ge3sgZmlsZS5zdGF0ZSB9fVwiICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiIFt0aXRsZV09XCJmaWxlLm5hbWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtaW1nLWlubmVyXCI+XHJcbiAgICAgICAgICA8aW1nIFtzcmNdPVwiZmlsZS51cmxcIiAobG9hZCk9XCJpbWdMb2FkKCRldmVudCwgZmlsZSlcIiAoZXJyb3IpPVwiaW1nRXJyb3IoJGV2ZW50LCBmaWxlKVwiIC8+XHJcbiAgICAgICAgICA8eC1pY29uIHR5cGU9XCJmdG8taW1hZ2VcIj48L3gtaWNvbj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZmlsZS5zdGF0ZSA9PSAndXBsb2FkaW5nJ1wiPnt7IGZpbGUucGVyY2VudCB9fSU8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLWltZy1idG5zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtaW1nLWJ0bnMtaW5uZXJcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmlsZS5zdGF0ZVwiPlxyXG4gICAgICAgICAgICAgIDx4LWljb24gY2xhc3M9XCJ4LXVwbG9hZC1zdGF0ZVwiICpuZ1N3aXRjaENhc2U9XCIncmVhZHknXCIgdHlwZT1cImZ0by1jbG9ja1wiPjwveC1pY29uPlxyXG4gICAgICAgICAgICAgIDx4LWljb24gY2xhc3M9XCJ4LXVwbG9hZC1zdGF0ZSBlcnJvclwiICpuZ1N3aXRjaENhc2U9XCInZXJyb3InXCIgdHlwZT1cImZ0by1pbmZvXCI+PC94LWljb24+XHJcbiAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiZmlsZS51cmxcIiB0YXJnZXQ9XCJfYmxhbmtcIiAqbmdTd2l0Y2hDYXNlPVwiJ3N1Y2Nlc3MnXCI+XHJcbiAgICAgICAgICAgICAgICA8eC1pY29uIHR5cGU9XCJmdG8tZXllXCI+PC94LWljb24+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPHgtaWNvbiAqbmdJZj1cImltZ0N1dCAmJiBmaWxlLnN0YXRlID09PSAnc3VjY2VzcydcIiB0eXBlPVwiZnRvLWNyb3BcIiAoY2xpY2spPVwib25JbWdDdXQoZmlsZSwgaSlcIj48L3gtaWNvbj5cclxuICAgICAgICAgICAgPHgtaWNvbiAqbmdJZj1cImZpbGUuc3RhdGUgIT09ICd1cGxvYWRpbmcnXCIgdHlwZT1cImZ0by10cmFzaC0yXCIgKGNsaWNrKT1cInJlbW92ZShmaWxlLCBpKVwiPjwveC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3VwbG9hZC91cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsYUFBYSxFQUFFLFdBQVcsRUFBYSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUl2QixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBZSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9CLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7O0FBVXZELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxlQUFlO0lBd0JuRCxZQUNTLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLElBQWdCLEVBQ2hCLEdBQXNCLEVBQ3RCLGFBQTZCLEVBQzdCLGdCQUFrQyxFQUNsQyxJQUFrQjtRQUV6QixLQUFLLEVBQUUsQ0FBQztRQVJELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFh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SUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQWlCO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7Z0lBek5VLGdCQUFnQjtvSEFBaEIsZ0JBQWdCLG1DQUZoQixDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLDZKQzFCL0MsaS9GQWlEQTsyRkRyQmEsZ0JBQWdCO2tCQVI1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxHQUFHLGFBQWEsRUFBRTtvQkFDNUIsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3RDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFLENBQUMsY0FBYyxrQkFBa0IsQ0FBQztpQkFDOUM7eVFBRXNDLElBQUk7c0JBQXhDLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudFR5cGUsIEh0dHBSZXF1ZXN0LCBIdHRwRXZlbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhVcGxvYWRQcmVmaXgsIFhVcGxvYWROb2RlLCBYVXBsb2FkUHJvcGVydHksIFhVcGxvYWRQb3J0YWxQcmVmaXggfSBmcm9tICcuL3VwbG9hZC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc1RlbXBsYXRlUmVmIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFhJMThuU2VydmljZSwgWEkxOG5VcGxvYWQgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWFBvcnRhbE92ZXJsYXlSZWYsIFhQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWFVwbG9hZFBvcnRhbENvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkLXBvcnRhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFVwbG9hZFByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWFVwbG9hZENvbXBvbmVudCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVXBsb2FkQ29tcG9uZW50IGV4dGVuZHMgWFVwbG9hZFByb3BlcnR5IHtcclxuICBAVmlld0NoaWxkKCdmaWxlJywgeyBzdGF0aWM6IHRydWUgfSkgZmlsZSE6IEVsZW1lbnRSZWY7XHJcbiAgZmlsZXM6IFhVcGxvYWROb2RlW10gPSBbXTtcclxuICBzaG93VXBsb2FkID0gZmFsc2U7XHJcbiAgdXBsb2FkTm9kZXM6IFhVcGxvYWROb2RlW10gPSBbXTtcclxuICBsb2NhbGU6IFhJMThuVXBsb2FkID0ge307XHJcbiAgcG9ydGFsITogWFBvcnRhbE92ZXJsYXlSZWY8WFVwbG9hZFBvcnRhbENvbXBvbmVudD47XHJcblxyXG4gIGdldCBnZXRUZXh0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGV4dCB8fCB0aGlzLmxvY2FsZS51cGxvYWRUZXh0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzVGVtcGxhdGVUZXh0KCkge1xyXG4gICAgcmV0dXJuIFhJc1RlbXBsYXRlUmVmKHRoaXMuZ2V0VGV4dCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBYVXBsb2FkTm9kZVtdKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnNldEZpbGVzKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIHBvcnRhbFNlcnZpY2U6IFhQb3J0YWxTZXJ2aWNlLFxyXG4gICAgcHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwdWJsaWMgaTE4bjogWEkxOG5TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC51cGxvYWQgYXMgWEkxOG5VcGxvYWQpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0geDtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnaW1nJykgdGhpcy5hY2NlcHQgPSAnaW1hZ2UvKic7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdG9yeSgpIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHNldEZpbGVzKCkge1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy50eXBlICE9PSAnaW1nJykgcmV0dXJuO1xyXG4gICAgdGhpcy5maWxlcyA9IHRoaXMudmFsdWUubWFwKCh4KSA9PiB7XHJcbiAgICAgIGlmICgheC5zdGF0ZSkgeC5zdGF0ZSA9ICdzdWNjZXNzJztcclxuICAgICAgcmV0dXJuIHg7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNoYW5nZShldmVudDogRXZlbnQpIHtcclxuICAgIGxldCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3VuZGVmaW5lZCcgfHwgaW5wdXQuZmlsZXM/Lmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG4gICAgbGV0IGZpbGVzOiBYVXBsb2FkTm9kZVtdID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IChpbnB1dC5maWxlcyBhcyBGaWxlTGlzdCkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGZpbGU6IFhVcGxvYWROb2RlID0gKGlucHV0LmZpbGVzIGFzIEZpbGVMaXN0KS5pdGVtKGkpIGFzIFhVcGxvYWROb2RlO1xyXG4gICAgICBmaWxlLnN0YXRlID0gJ3JlYWR5JztcclxuICAgICAgZmlsZXMgPSBbLi4uZmlsZXMsIGZpbGVdO1xyXG4gICAgfVxyXG4gICAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHRoaXMuc2hvd1VwbG9hZCA9IHRydWU7XHJcbiAgICB0aGlzLmZpbGVzID0gZmlsZXM7XHJcbiAgICB0aGlzLnZhbHVlID0gW107XHJcbiAgICB0aGlzLnVwbG9hZGluZygpO1xyXG4gICAgaW5wdXQudmFsdWUgPSAnJztcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZShmaWxlOiBYVXBsb2FkTm9kZSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgaWYgKHRoaXMuZmlsZXMubGVuZ3RoID09PSAwKSB0aGlzLmZpbGUubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5zaG93VXBsb2FkID0gdGhpcy5maWxlcy5maW5kKCh4KSA9PiB4LnN0YXRlID09PSAncmVhZHknKSAhPSBudWxsO1xyXG4gICAgdGhpcy5yZW1vdmVDbGljay5lbWl0KHsgZmlsZTogZmlsZSwgaW5kZXg6IGluZGV4IH0pO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5maWxlLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICB9XHJcblxyXG4gIHVwbG9hZGluZygpIHtcclxuICAgIGlmICghdGhpcy5hY3Rpb24pIHJldHVybjtcclxuICAgIGxldCByZWFkeUZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIoKHgpID0+IHguc3RhdGUgPT09ICdyZWFkeScpO1xyXG4gICAgcmVhZHlGaWxlcy5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMudXBsb2FkRmlsZSh4KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkRmlsZShmaWxlOiBYVXBsb2FkTm9kZSwgaW5kZXggPSAtMSkge1xyXG4gICAgbGV0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcclxuICAgIGNvbnN0IHJlcSA9IG5ldyBIdHRwUmVxdWVzdCgnUE9TVCcsIHRoaXMuYWN0aW9uIGFzIHN0cmluZywgZm9ybURhdGEsIHtcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmh0dHBcclxuICAgICAgLnJlcXVlc3QocmVxKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKGV2ZW50KSA9PlxyXG4gICAgICAgICAgdGhpcy5nZXRFdmVudE1lc3NhZ2UoZXZlbnQsIGZpbGUsIChib2R5OiBCbG9iUGFydCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgYmxvYiA9IG5ldyBCbG9iKFtib2R5XSk7XHJcbiAgICAgICAgICAgIGxldCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICByZWFkZXIucmVhZEFzVGV4dChibG9iLCAndXRmLTgnKTtcclxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICBmaWxlLnVybCA9IEpTT04ucGFyc2UocmVhZGVyLnJlc3VsdCBhcyBzdHJpbmcpWzBdO1xyXG4gICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUucHVzaChmaWxlKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZVtpbmRleF0gPSBmaWxlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlc1tpbmRleF0gPSBmaWxlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hvd1VwbG9hZCA9IHRoaXMuZmlsZXMuZmluZCgoeSkgPT4geS5zdGF0ZSA9PT0gJ3JlYWR5JykgIT0gbnVsbDtcclxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIGZpbGUuc3RhdGUgPSAnZXJyb3InO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIGdldEV2ZW50TWVzc2FnZShldmVudDogSHR0cEV2ZW50PGFueT4sIGZpbGU6IFhVcGxvYWROb2RlLCBmdW46IEZ1bmN0aW9uKSB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlNlbnQ6XHJcbiAgICAgICAgZmlsZS5zdGF0ZSA9ICdyZWFkeSc7XHJcbiAgICAgICAgcmV0dXJuIGDlvIDlp4vkuIrkvKDmlofku7ZgO1xyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3M6XHJcbiAgICAgICAgZmlsZS5zdGF0ZSA9ICd1cGxvYWRpbmcnO1xyXG4gICAgICAgIGlmIChldmVudC50b3RhbCkgZmlsZS5wZXJjZW50ID0gTWF0aC5yb3VuZCgoMTAwICogZXZlbnQubG9hZGVkKSAvIGV2ZW50LnRvdGFsKTtcclxuICAgICAgICByZXR1cm4gYOS4iuS8oOS4rWA7XHJcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcclxuICAgICAgICBmaWxlLnN0YXRlID0gJ3N1Y2Nlc3MnO1xyXG4gICAgICAgIGZ1bihldmVudC5ib2R5KTtcclxuICAgICAgICByZXR1cm4gYOaWh+S7tuS4iuS8oOWujOavlWA7XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICB0cmFja0J5SXRlbShfaW5kZXg6IG51bWJlciwgaXRlbTogWFVwbG9hZE5vZGUpIHtcclxuICAgIHJldHVybiBgJHtpdGVtLm5hbWV9LSR7aXRlbS5sYXN0TW9kaWZpZWR9YDtcclxuICB9XHJcblxyXG4gIG9uSW1nQ3V0KGZpbGU6IFhVcGxvYWROb2RlLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnBvcnRhbCA9IHRoaXMucG9ydGFsU2VydmljZS5hdHRhY2goe1xyXG4gICAgICBjb250ZW50OiBYVXBsb2FkUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IHtcclxuICAgICAgICBwYW5lbENsYXNzOiBbWFVwbG9hZFBvcnRhbFByZWZpeF0sXHJcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5wb3J0YWxTZXJ2aWNlLnNldFBsYWNlKCdjZW50ZXInKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0SW5zdGFuY2UoZmlsZSwgaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5zdGFuY2UoZmlsZTogWFVwbG9hZE5vZGUsIGluZGV4OiBudW1iZXIpIHtcclxuICAgIGxldCBjb21wb25lbnRSZWYgPSB0aGlzLnBvcnRhbD8uY29tcG9uZW50UmVmO1xyXG4gICAgaWYgKCFjb21wb25lbnRSZWYpIHJldHVybjtcclxuICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCB7XHJcbiAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgIGNsb3NlUG9ydGFsOiAoKSA9PiB0aGlzLmNsb3NlUG9ydGFsKCksXHJcbiAgICAgIGRlc3Ryb3lQb3J0YWw6ICgpID0+IHRoaXMuZGVzdHJveVBvcnRhbCgpLFxyXG4gICAgICBzdXJlUG9ydGFsOiAoYmxvYjogQmxvYikgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZsID0gbmV3IEZpbGUoW2Jsb2JdLCBmaWxlLm5hbWUsIHsgdHlwZTogYmxvYi50eXBlIH0pIGFzIFhVcGxvYWROb2RlO1xyXG4gICAgICAgIGZsLnN0YXRlID0gJ3JlYWR5JztcclxuICAgICAgICB0aGlzLnVwbG9hZEZpbGUoZmwsIGluZGV4KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcG9ydGFsQXR0YWNoZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZVBvcnRhbCgpIHtcclxuICAgIGlmICh0aGlzLnBvcnRhbEF0dGFjaGVkKCkpIHtcclxuICAgICAgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LmRldGFjaCgpO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveVBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICBpbWdFcnJvcihldmVudDogRXJyb3JFdmVudCwgZmlsZTogWFVwbG9hZE5vZGUpIHtcclxuICAgIGZpbGUuc3RhdGUgPSAnZXJyb3InO1xyXG4gICAgY29uc29sZS5lcnJvcihldmVudC5lcnJvcik7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBpbWdMb2FkKGZpbGU6IFhVcGxvYWROb2RlKSB7XHJcbiAgICBmaWxlLnN0YXRlID0gJ3N1Y2Nlc3MnO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICN1cGxvYWQgY2xhc3M9XCJ4LXVwbG9hZCB4LXVwbG9hZC17eyB0eXBlIH19XCIgW2NsYXNzLngtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICA8aW5wdXQgdHlwZT1cImZpbGVcIiAjZmlsZSAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCIgW2F0dHIuYWNjZXB0XT1cImFjY2VwdFwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIC8+XHJcbiAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLWJ1dHRvbnNcIiBbY2xhc3MueC11cGxvYWQtYnV0dG9ucy10ZW1wbGF0ZV09XCJpc1RlbXBsYXRlVGV4dFwiIChjbGljayk9XCJ1cGxvYWRDbGljaygpXCI+XHJcbiAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZ2V0VGV4dFwiPlxyXG4gICAgICA8eC1idXR0b24gaWNvbj1cImZ0by11cGxvYWRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiB0eXBlPVwicHJpbWFyeVwiPnt7IGdldFRleHQgfX08L3gtYnV0dG9uPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xpc3QnXCI+XHJcbiAgICAgIDx1bCBjbGFzcz1cIngtdXBsb2FkLWZpbGVzXCI+XHJcbiAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiPlxyXG4gICAgICAgICAgPGEgW2hyZWZdPVwiZmlsZS51cmxcIiB0YXJnZXQ9XCJfYmxhbmtcIiBbdGl0bGVdPVwiZmlsZS5uYW1lXCI+XHJcbiAgICAgICAgICAgIDx4LWljb24gdHlwZT1cImZ0by1maWxlLXRleHRcIj48L3gtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ4LXVwbG9hZC1maWxlbmFtZVwiPnt7IGZpbGUubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpbGUuc3RhdGVcIj5cclxuICAgICAgICAgICAgPHgtaWNvbiBjbGFzcz1cIngtdXBsb2FkLXN0YXRlXCIgKm5nU3dpdGNoQ2FzZT1cIidyZWFkeSdcIiB0eXBlPVwiZnRvLWNsb2NrXCI+PC94LWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwieC11cGxvYWQtcGVyY2VudFwiICpuZ1N3aXRjaENhc2U9XCIndXBsb2FkaW5nJ1wiPnt7IGZpbGUucGVyY2VudCB9fSU8L3NwYW4+XHJcbiAgICAgICAgICAgIDx4LWljb24gY2xhc3M9XCJ4LXVwbG9hZC1zdGF0ZSBzdWNjZXNzXCIgKm5nU3dpdGNoQ2FzZT1cIidzdWNjZXNzJ1wiIHR5cGU9XCJmdG8tY2hlY2tcIj48L3gtaWNvbj5cclxuICAgICAgICAgICAgPHgtaWNvbiBjbGFzcz1cIngtdXBsb2FkLXN0YXRlIGVycm9yXCIgKm5nU3dpdGNoQ2FzZT1cIidlcnJvcidcIiB0eXBlPVwiZnRvLWluZm9cIj48L3gtaWNvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPHgtYnV0dG9uICpuZ0lmPVwiZmlsZS5zdGF0ZSAhPT0gJ3VwbG9hZGluZydcIiBpY29uPVwiZnRvLXhcIiAoY2xpY2spPVwicmVtb3ZlKGZpbGUsIGkpXCIgb25seUljb24gY2xvc2FibGU+PC94LWJ1dHRvbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW1nJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtaW1nLWl0ZW0ge3sgZmlsZS5zdGF0ZSB9fVwiICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiIFt0aXRsZV09XCJmaWxlLm5hbWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwieC11cGxvYWQtaW1nLWlubmVyXCI+XHJcbiAgICAgICAgICA8aW1nIFtzcmNdPVwiZmlsZS51cmxcIiAobG9hZCk9XCJpbWdMb2FkKGZpbGUpXCIgKGVycm9yKT1cImltZ0Vycm9yKCRldmVudCwgZmlsZSlcIiAvPlxyXG4gICAgICAgICAgPHgtaWNvbiB0eXBlPVwiZnRvLWltYWdlXCI+PC94LWljb24+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImZpbGUuc3RhdGUgPT0gJ3VwbG9hZGluZydcIj57eyBmaWxlLnBlcmNlbnQgfX0lPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LXVwbG9hZC1pbWctYnRuc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIngtdXBsb2FkLWltZy1idG5zLWlubmVyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpbGUuc3RhdGVcIj5cclxuICAgICAgICAgICAgICA8eC1pY29uIGNsYXNzPVwieC11cGxvYWQtc3RhdGVcIiAqbmdTd2l0Y2hDYXNlPVwiJ3JlYWR5J1wiIHR5cGU9XCJmdG8tY2xvY2tcIj48L3gtaWNvbj5cclxuICAgICAgICAgICAgICA8eC1pY29uIGNsYXNzPVwieC11cGxvYWQtc3RhdGUgZXJyb3JcIiAqbmdTd2l0Y2hDYXNlPVwiJ2Vycm9yJ1wiIHR5cGU9XCJmdG8taW5mb1wiPjwveC1pY29uPlxyXG4gICAgICAgICAgICAgIDxhIFtocmVmXT1cImZpbGUudXJsXCIgdGFyZ2V0PVwiX2JsYW5rXCIgKm5nU3dpdGNoQ2FzZT1cIidzdWNjZXNzJ1wiPlxyXG4gICAgICAgICAgICAgICAgPHgtaWNvbiB0eXBlPVwiZnRvLWV5ZVwiPjwveC1pY29uPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDx4LWljb24gKm5nSWY9XCJpbWdDdXQgJiYgZmlsZS5zdGF0ZSA9PT0gJ3N1Y2Nlc3MnXCIgdHlwZT1cImZ0by1jcm9wXCIgKGNsaWNrKT1cIm9uSW1nQ3V0KGZpbGUsIGkpXCI+PC94LWljb24+XHJcbiAgICAgICAgICAgIDx4LWljb24gKm5nSWY9XCJmaWxlLnN0YXRlICE9PSAndXBsb2FkaW5nJ1wiIHR5cGU9XCJmdG8tdHJhc2gtMlwiIChjbGljayk9XCJyZW1vdmUoZmlsZSwgaSlcIj48L3gtaWNvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuIl19
@@ -14,8 +14,8 @@ import { XBaseFormModule } from '@ng-nest/ui/base-form';
14
14
  import * as i0 from "@angular/core";
15
15
  export class XUploadModule {
16
16
  }
17
- /** @nocollapse */ XUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
- /** @nocollapse */ XUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XUploadModule, declarations: [XUploadComponent, XUploadPortalComponent, XUploadProperty], imports: [CommonModule,
17
+ /** @nocollapse */ XUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
+ /** @nocollapse */ XUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XUploadModule, declarations: [XUploadComponent, XUploadPortalComponent, XUploadProperty], imports: [CommonModule,
19
19
  FormsModule,
20
20
  DragDropModule,
21
21
  XPortalModule,
@@ -24,7 +24,7 @@ export class XUploadModule {
24
24
  XIconModule,
25
25
  XI18nModule,
26
26
  XBaseFormModule], exports: [XUploadComponent] });
27
- /** @nocollapse */ XUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XUploadModule, imports: [[
27
+ /** @nocollapse */ XUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XUploadModule, imports: [[
28
28
  CommonModule,
29
29
  FormsModule,
30
30
  DragDropModule,
@@ -35,7 +35,7 @@ export class XUploadModule {
35
35
  XI18nModule,
36
36
  XBaseFormModule
37
37
  ]] });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XUploadModule, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XUploadModule, decorators: [{
39
39
  type: NgModule,
40
40
  args: [{
41
41
  declarations: [XUploadComponent, XUploadPortalComponent, XUploadProperty],
@@ -27,15 +27,15 @@ export class XUploadProperty extends XControlValueAccessor {
27
27
  this.removeClick = new EventEmitter();
28
28
  }
29
29
  }
30
- /** @nocollapse */ XUploadProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XUploadProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
31
- /** @nocollapse */ XUploadProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XUploadProperty, selector: "ng-component", inputs: { text: "text", action: "action", accept: "accept", type: "type", imgCut: "imgCut", multiple: "multiple" }, outputs: { removeClick: "removeClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
30
+ /** @nocollapse */ XUploadProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XUploadProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
31
+ /** @nocollapse */ XUploadProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XUploadProperty, selector: "ng-component", inputs: { text: "text", action: "action", accept: "accept", type: "type", imgCut: "imgCut", multiple: "multiple" }, outputs: { removeClick: "removeClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
32
32
  __decorate([
33
33
  XInputBoolean()
34
34
  ], XUploadProperty.prototype, "imgCut", void 0);
35
35
  __decorate([
36
36
  XInputBoolean()
37
37
  ], XUploadProperty.prototype, "multiple", void 0);
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XUploadProperty, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XUploadProperty, decorators: [{
39
39
  type: Component,
40
40
  args: [{ template: '' }]
41
41
  }], propDecorators: { text: [{
@@ -17,15 +17,15 @@ const X_CONFIG_NAME = 'affix';
17
17
  */
18
18
  class XAffixProperty extends XProperty {
19
19
  }
20
- /** @nocollapse */ XAffixProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAffixProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
21
- /** @nocollapse */ XAffixProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XAffixProperty, selector: "ng-component", inputs: { top: "top", left: "left" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
20
+ /** @nocollapse */ XAffixProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAffixProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
21
+ /** @nocollapse */ XAffixProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XAffixProperty, selector: "ng-component", inputs: { top: "top", left: "left" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
22
22
  __decorate([
23
23
  XWithConfig(X_CONFIG_NAME)
24
24
  ], XAffixProperty.prototype, "top", void 0);
25
25
  __decorate([
26
26
  XWithConfig(X_CONFIG_NAME)
27
27
  ], XAffixProperty.prototype, "left", void 0);
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAffixProperty, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAffixProperty, decorators: [{
29
29
  type: Component,
30
30
  args: [{ template: '' }]
31
31
  }], propDecorators: { top: [{
@@ -40,9 +40,9 @@ class XAffixComponent extends XAffixProperty {
40
40
  this.configService = configService;
41
41
  }
42
42
  }
43
- /** @nocollapse */ XAffixComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAffixComponent, deps: [{ token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
44
- /** @nocollapse */ XAffixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XAffixComponent, selector: "x-affix", usesInheritance: true, ngImport: i0, template: "<div #affix class=\"x-affix\" [style.top]=\"top\" [style.left]=\"left\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".x-affix{margin:0;padding:0;position:sticky;display:inline-block}"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAffixComponent, decorators: [{
43
+ /** @nocollapse */ XAffixComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAffixComponent, deps: [{ token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
44
+ /** @nocollapse */ XAffixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XAffixComponent, selector: "x-affix", usesInheritance: true, ngImport: i0, template: "<div #affix class=\"x-affix\" [style.top]=\"top\" [style.left]=\"left\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".x-affix{margin:0;padding:0;position:sticky;display:inline-block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAffixComponent, decorators: [{
46
46
  type: Component,
47
47
  args: [{
48
48
  selector: `${XAffixPrefix}`,
@@ -55,10 +55,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImpor
55
55
 
56
56
  class XAffixModule {
57
57
  }
58
- /** @nocollapse */ XAffixModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAffixModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
59
- /** @nocollapse */ XAffixModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAffixModule, declarations: [XAffixComponent, XAffixProperty], imports: [CommonModule], exports: [XAffixComponent] });
60
- /** @nocollapse */ XAffixModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAffixModule, imports: [[CommonModule]] });
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAffixModule, decorators: [{
58
+ /** @nocollapse */ XAffixModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAffixModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
59
+ /** @nocollapse */ XAffixModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAffixModule, declarations: [XAffixComponent, XAffixProperty], imports: [CommonModule], exports: [XAffixComponent] });
60
+ /** @nocollapse */ XAffixModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAffixModule, imports: [[CommonModule]] });
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAffixModule, decorators: [{
62
62
  type: NgModule,
63
63
  args: [{
64
64
  declarations: [XAffixComponent, XAffixProperty],
@@ -41,8 +41,8 @@ class XAlertProperty extends XProperty {
41
41
  this.close = new EventEmitter();
42
42
  }
43
43
  }
44
- /** @nocollapse */ XAlertProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAlertProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
45
- /** @nocollapse */ XAlertProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XAlertProperty, selector: "ng-component", inputs: { hide: "hide", title: "title", content: "content", type: "type", effect: "effect", hideClose: "hideClose", closeText: "closeText", showIcon: "showIcon", disabledAnimation: "disabledAnimation", duration: "duration", manual: "manual", draggable: "draggable", dragBoundary: "dragBoundary" }, outputs: { close: "close" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
44
+ /** @nocollapse */ XAlertProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAlertProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
45
+ /** @nocollapse */ XAlertProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XAlertProperty, selector: "ng-component", inputs: { hide: "hide", title: "title", content: "content", type: "type", effect: "effect", hideClose: "hideClose", closeText: "closeText", showIcon: "showIcon", disabledAnimation: "disabledAnimation", duration: "duration", manual: "manual", draggable: "draggable", dragBoundary: "dragBoundary" }, outputs: { close: "close" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
46
46
  __decorate([
47
47
  XInputBoolean()
48
48
  ], XAlertProperty.prototype, "hide", void 0);
@@ -72,7 +72,7 @@ __decorate([
72
72
  XWithConfig(X_CONFIG_NAME, false),
73
73
  XInputBoolean()
74
74
  ], XAlertProperty.prototype, "draggable", void 0);
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAlertProperty, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAlertProperty, decorators: [{
76
76
  type: Component,
77
77
  args: [{ template: '' }]
78
78
  }], propDecorators: { hide: [{
@@ -154,9 +154,9 @@ class XAlertComponent extends XAlertProperty {
154
154
  }
155
155
  }
156
156
  }
157
- /** @nocollapse */ XAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAlertComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
158
- /** @nocollapse */ XAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XAlertComponent, selector: "x-alert", usesInheritance: true, ngImport: i0, template: "<div\r\n #alert\r\n class=\"x-alert\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!draggable\"\r\n [cdkDragBoundary]=\"dragBoundary\"\r\n [ngClass]=\"classMap\"\r\n *ngIf=\"!hide\"\r\n @x-fade-animation\r\n [@.disabled]=\"disabledAnimation\"\r\n (@x-fade-animation.done)=\"onCloseAnimationDone()\"\r\n>\r\n <ng-container *ngIf=\"showIcon\">\r\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\r\n </ng-container>\r\n <ng-template #iconTpl>\r\n <ng-container [ngSwitch]=\"type\">\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'success'\" type=\"adf-check-circle\"></x-icon>\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'info'\" type=\"adf-info-circle\"></x-icon>\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'warning'\" type=\"adf-exclamation-circle\"></x-icon>\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'error'\" type=\"adf-close-circle\"></x-icon>\r\n </ng-container>\r\n </ng-template>\r\n <div class=\"x-alert-inner\">\r\n <span class=\"x-alert-title\" cdkDragHandle [class.x-bold]=\"title && content\">\r\n <ng-container *xOutlet=\"title; context: { $iconTpl: iconTpl }\">{{ title }}</ng-container>\r\n </span>\r\n <div class=\"x-alert-content\" *ngIf=\"content\">\r\n <ng-container *xOutlet=\"content; context: { $iconTpl: iconTpl }\">{{ content }}</ng-container>\r\n </div>\r\n <x-button\r\n *ngIf=\"!hideClose\"\r\n class=\"x-alert-close\"\r\n size=\"small\"\r\n [icon]=\"!closeText ? 'fto-x' : ''\"\r\n [onlyIcon]=\"!closeText\"\r\n [type]=\"closeText ? 'text' : 'initial'\"\r\n (click)=\"onClose()\"\r\n closable\r\n >{{ closeText }}</x-button\r\n >\r\n </div>\r\n</div>\r\n", styles: ["x-alert{display:block}.x-alert{margin:0;background-color:var(--x-background);border:.0625rem solid var(--x-border-300);border-radius:var(--x-border-radius);padding:.5rem 1rem;position:relative;display:flex;align-items:center}.x-alert-close{position:absolute;top:.425rem;right:.25rem}.x-alert-inner{width:100%}.x-alert-title.x-bold{font-weight:600}.x-alert-content{font-size:calc(var(--x-font-size) - .0625rem);line-height:1.325rem;margin:.25rem 0 0}.x-alert-icon.x-icon{font-size:calc(var(--x-font-size) + .25rem);margin-right:.5rem}.x-alert-icon-medium>.x-icon{font-size:1.75rem}.x-alert-draggable .cdk-drag-handle{cursor:move}.x-alert-success.x-light{color:var(--x-success);background-color:var(--x-success-900);border-color:#0000;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-success.x-light x-button.x-alert-close .x-button{color:var(--x-success-400)}.x-alert-success.x-light x-button.x-alert-close .x-button:hover{color:var(--x-success)}.x-alert-success.x-dark{background-color:var(--x-success);border-color:#0000;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-success.x-dark,.x-alert-success.x-dark x-button.x-alert-close .x-button{color:var(--x-success-900)}.x-alert-success.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-success.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:#0000;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-success.x-white .x-alert-icon.x-icon{color:var(--x-success)}.x-alert-success.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-success.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-info.x-light{color:var(--x-info);background-color:var(--x-info-900);border-color:#0000;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-info.x-light x-button.x-alert-close .x-button{color:var(--x-info-400)}.x-alert-info.x-light x-button.x-alert-close .x-button:hover{color:var(--x-info)}.x-alert-info.x-dark{background-color:var(--x-info);border-color:#0000;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-info.x-dark,.x-alert-info.x-dark x-button.x-alert-close .x-button{color:var(--x-info-900)}.x-alert-info.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-info.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:#0000;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-info.x-white .x-alert-icon.x-icon{color:var(--x-info)}.x-alert-info.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-info.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-warning.x-light{color:var(--x-warning);background-color:var(--x-warning-900);border-color:#0000;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-warning.x-light x-button.x-alert-close .x-button{color:var(--x-warning-400)}.x-alert-warning.x-light x-button.x-alert-close .x-button:hover{color:var(--x-warning)}.x-alert-warning.x-dark{background-color:var(--x-warning);border-color:#0000;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-warning.x-dark,.x-alert-warning.x-dark x-button.x-alert-close .x-button{color:var(--x-warning-900)}.x-alert-warning.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-warning.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:#0000;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-warning.x-white .x-alert-icon.x-icon{color:var(--x-warning)}.x-alert-warning.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-warning.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-error.x-light{color:var(--x-danger);background-color:var(--x-danger-900);border-color:#0000;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-error.x-light x-button.x-alert-close .x-button{color:var(--x-danger-400)}.x-alert-error.x-light x-button.x-alert-close .x-button:hover{color:var(--x-danger)}.x-alert-error.x-dark{background-color:var(--x-danger);border-color:#0000;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-error.x-dark,.x-alert-error.x-dark x-button.x-alert-close .x-button{color:var(--x-danger-900)}.x-alert-error.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-error.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:#0000;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-error.x-white .x-alert-icon.x-icon{color:var(--x-danger)}.x-alert-error.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-error.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}"], components: [{ type: i2.XIconComponent, selector: "x-icon" }, { type: i3.XButtonComponent, selector: "x-button" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragDisabled", "cdkDragStartDelay", "cdkDragLockAxis", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragBoundary", "cdkDragRootElement", "cdkDragPreviewContainer", "cdkDragData", "cdkDragFreeDragPosition"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], animations: [XFadeAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAlertComponent, decorators: [{
157
+ /** @nocollapse */ XAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAlertComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
158
+ /** @nocollapse */ XAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XAlertComponent, selector: "x-alert", usesInheritance: true, ngImport: i0, template: "<div\r\n #alert\r\n class=\"x-alert\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"!draggable\"\r\n [cdkDragBoundary]=\"dragBoundary\"\r\n [ngClass]=\"classMap\"\r\n *ngIf=\"!hide\"\r\n @x-fade-animation\r\n [@.disabled]=\"disabledAnimation\"\r\n (@x-fade-animation.done)=\"onCloseAnimationDone()\"\r\n>\r\n <ng-container *ngIf=\"showIcon\">\r\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\r\n </ng-container>\r\n <ng-template #iconTpl>\r\n <ng-container [ngSwitch]=\"type\">\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'success'\" type=\"adf-check-circle\"></x-icon>\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'info'\" type=\"adf-info-circle\"></x-icon>\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'warning'\" type=\"adf-exclamation-circle\"></x-icon>\r\n <x-icon class=\"x-alert-icon\" *ngSwitchCase=\"'error'\" type=\"adf-close-circle\"></x-icon>\r\n </ng-container>\r\n </ng-template>\r\n <div class=\"x-alert-inner\">\r\n <span class=\"x-alert-title\" cdkDragHandle [class.x-bold]=\"title && content\">\r\n <ng-container *xOutlet=\"title; context: { $iconTpl: iconTpl }\">{{ title }}</ng-container>\r\n </span>\r\n <div class=\"x-alert-content\" *ngIf=\"content\">\r\n <ng-container *xOutlet=\"content; context: { $iconTpl: iconTpl }\">{{ content }}</ng-container>\r\n </div>\r\n <x-button\r\n *ngIf=\"!hideClose\"\r\n class=\"x-alert-close\"\r\n size=\"small\"\r\n [icon]=\"!closeText ? 'fto-x' : ''\"\r\n [onlyIcon]=\"!closeText\"\r\n [type]=\"closeText ? 'text' : 'initial'\"\r\n (click)=\"onClose()\"\r\n closable\r\n >{{ closeText }}</x-button\r\n >\r\n </div>\r\n</div>\r\n", styles: ["x-alert{display:block}.x-alert{margin:0;background-color:var(--x-background);border:.0625rem solid var(--x-border-300);border-radius:var(--x-border-radius);padding:.5rem 1rem;position:relative;display:flex;align-items:center}.x-alert-close{position:absolute;top:.425rem;right:.25rem}.x-alert-inner{width:100%}.x-alert-title.x-bold{font-weight:600}.x-alert-content{font-size:calc(var(--x-font-size) - .0625rem);line-height:1.325rem;margin:.25rem 0 0}.x-alert-icon.x-icon{font-size:calc(var(--x-font-size) + .25rem);margin-right:.5rem}.x-alert-icon-medium>.x-icon{font-size:1.75rem}.x-alert-draggable .cdk-drag-handle{cursor:move}.x-alert-success.x-light{color:var(--x-success);background-color:var(--x-success-900);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-success.x-light x-button.x-alert-close .x-button{color:var(--x-success-400)}.x-alert-success.x-light x-button.x-alert-close .x-button:hover{color:var(--x-success)}.x-alert-success.x-dark{color:var(--x-success-900);background-color:var(--x-success);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-success.x-dark x-button.x-alert-close .x-button{color:var(--x-success-900)}.x-alert-success.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-success.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-success.x-white .x-alert-icon.x-icon{color:var(--x-success)}.x-alert-success.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-success.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-info.x-light{color:var(--x-info);background-color:var(--x-info-900);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-info.x-light x-button.x-alert-close .x-button{color:var(--x-info-400)}.x-alert-info.x-light x-button.x-alert-close .x-button:hover{color:var(--x-info)}.x-alert-info.x-dark{color:var(--x-info-900);background-color:var(--x-info);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-info.x-dark x-button.x-alert-close .x-button{color:var(--x-info-900)}.x-alert-info.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-info.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-info.x-white .x-alert-icon.x-icon{color:var(--x-info)}.x-alert-info.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-info.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-warning.x-light{color:var(--x-warning);background-color:var(--x-warning-900);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-warning.x-light x-button.x-alert-close .x-button{color:var(--x-warning-400)}.x-alert-warning.x-light x-button.x-alert-close .x-button:hover{color:var(--x-warning)}.x-alert-warning.x-dark{color:var(--x-warning-900);background-color:var(--x-warning);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-warning.x-dark x-button.x-alert-close .x-button{color:var(--x-warning-900)}.x-alert-warning.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-warning.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-warning.x-white .x-alert-icon.x-icon{color:var(--x-warning)}.x-alert-warning.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-warning.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}.x-alert-error.x-light{color:var(--x-danger);background-color:var(--x-danger-900);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-error.x-light x-button.x-alert-close .x-button{color:var(--x-danger-400)}.x-alert-error.x-light x-button.x-alert-close .x-button:hover{color:var(--x-danger)}.x-alert-error.x-dark{color:var(--x-danger-900);background-color:var(--x-danger);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-error.x-dark x-button.x-alert-close .x-button{color:var(--x-danger-900)}.x-alert-error.x-dark x-button.x-alert-close .x-button:hover{color:var(--x-background-100)}.x-alert-error.x-white{color:var(--x-text-300);background-color:var(--x-background);border-color:transparent;box-shadow:var(--x-box-shadow) var(--x-box-shadow-base-color)}.x-alert-error.x-white .x-alert-icon.x-icon{color:var(--x-danger)}.x-alert-error.x-white x-button.x-alert-close .x-button{color:var(--x-text-400)}.x-alert-error.x-white x-button.x-alert-close .x-button:hover{color:var(--x-text-300)}\n"], components: [{ type: i2.XIconComponent, selector: "x-icon" }, { type: i3.XButtonComponent, selector: "x-button" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragDisabled", "cdkDragStartDelay", "cdkDragLockAxis", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragBoundary", "cdkDragRootElement", "cdkDragPreviewContainer", "cdkDragData", "cdkDragFreeDragPosition"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], animations: [XFadeAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAlertComponent, decorators: [{
160
160
  type: Component,
161
161
  args: [{
162
162
  selector: `${XAlertPrefix}`,
@@ -170,10 +170,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImpor
170
170
 
171
171
  class XAlertModule {
172
172
  }
173
- /** @nocollapse */ XAlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
174
- /** @nocollapse */ XAlertModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAlertModule, declarations: [XAlertComponent, XAlertProperty], imports: [CommonModule, DragDropModule, XIconModule, XButtonModule, XOutletModule], exports: [XAlertComponent] });
175
- /** @nocollapse */ XAlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAlertModule, imports: [[CommonModule, DragDropModule, XIconModule, XButtonModule, XOutletModule]] });
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XAlertModule, decorators: [{
173
+ /** @nocollapse */ XAlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
174
+ /** @nocollapse */ XAlertModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAlertModule, declarations: [XAlertComponent, XAlertProperty], imports: [CommonModule, DragDropModule, XIconModule, XButtonModule, XOutletModule], exports: [XAlertComponent] });
175
+ /** @nocollapse */ XAlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAlertModule, imports: [[CommonModule, DragDropModule, XIconModule, XButtonModule, XOutletModule]] });
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XAlertModule, decorators: [{
177
177
  type: NgModule,
178
178
  args: [{
179
179
  declarations: [XAlertComponent, XAlertProperty],