@ng-nest/ui 15.0.18 → 15.0.20

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 (571) hide show
  1. package/anchor/anchor.component.d.ts +1 -1
  2. package/avatar/avatar.component.d.ts +1 -1
  3. package/back-top/back-top.component.d.ts +5 -3
  4. package/button/button.component.d.ts +2 -0
  5. package/color/color.component.d.ts +2 -2
  6. package/core/config/config.service.d.ts +4 -3
  7. package/core/functions/resize.d.ts +4 -2
  8. package/core/services/storage.service.d.ts +3 -1
  9. package/core/theme/theme.service.d.ts +2 -2
  10. package/core/util/computed-style.d.ts +2 -1
  11. package/core/util/index.d.ts +1 -0
  12. package/esm2020/affix/affix.component.mjs +3 -3
  13. package/esm2020/affix/affix.module.mjs +4 -4
  14. package/esm2020/affix/affix.property.mjs +3 -3
  15. package/esm2020/alert/alert.component.mjs +3 -3
  16. package/esm2020/alert/alert.module.mjs +4 -4
  17. package/esm2020/alert/alert.property.mjs +3 -3
  18. package/esm2020/anchor/anchor-inner.component.mjs +3 -3
  19. package/esm2020/anchor/anchor.component.mjs +16 -19
  20. package/esm2020/anchor/anchor.module.mjs +4 -4
  21. package/esm2020/anchor/anchor.property.mjs +6 -6
  22. package/esm2020/api/api.component.mjs +3 -3
  23. package/esm2020/api/api.module.mjs +4 -4
  24. package/esm2020/auto-complete/auto-complete-portal.component.mjs +3 -3
  25. package/esm2020/auto-complete/auto-complete.component.mjs +3 -3
  26. package/esm2020/auto-complete/auto-complete.module.mjs +4 -4
  27. package/esm2020/auto-complete/auto-complete.property.mjs +3 -3
  28. package/esm2020/avatar/avatar-group.component.mjs +3 -3
  29. package/esm2020/avatar/avatar.component.mjs +8 -11
  30. package/esm2020/avatar/avatar.module.mjs +4 -4
  31. package/esm2020/avatar/avatar.property.mjs +6 -6
  32. package/esm2020/back-top/back-top.component.mjs +17 -16
  33. package/esm2020/back-top/back-top.module.mjs +4 -4
  34. package/esm2020/back-top/back-top.property.mjs +3 -3
  35. package/esm2020/badge/badge.component.mjs +3 -3
  36. package/esm2020/badge/badge.module.mjs +4 -4
  37. package/esm2020/badge/badge.property.mjs +3 -3
  38. package/esm2020/base-form/base-form.component.mjs +3 -3
  39. package/esm2020/base-form/base-form.module.mjs +4 -4
  40. package/esm2020/base-form/base-form.property.mjs +3 -3
  41. package/esm2020/border/border.component.mjs +3 -3
  42. package/esm2020/border/border.module.mjs +4 -4
  43. package/esm2020/button/button.component.mjs +22 -10
  44. package/esm2020/button/button.module.mjs +4 -4
  45. package/esm2020/button/button.property.mjs +6 -6
  46. package/esm2020/button/buttons.component.mjs +3 -3
  47. package/esm2020/calendar/calendar.component.mjs +3 -3
  48. package/esm2020/calendar/calendar.module.mjs +4 -4
  49. package/esm2020/calendar/calendar.property.mjs +3 -3
  50. package/esm2020/card/card.component.mjs +3 -3
  51. package/esm2020/card/card.module.mjs +4 -4
  52. package/esm2020/card/card.property.mjs +3 -3
  53. package/esm2020/carousel/carousel-panel.component.mjs +3 -3
  54. package/esm2020/carousel/carousel.component.mjs +4 -4
  55. package/esm2020/carousel/carousel.module.mjs +4 -4
  56. package/esm2020/carousel/carousel.property.mjs +6 -6
  57. package/esm2020/cascade/cascade-portal.component.mjs +3 -3
  58. package/esm2020/cascade/cascade.component.mjs +3 -3
  59. package/esm2020/cascade/cascade.module.mjs +4 -4
  60. package/esm2020/cascade/cascade.property.mjs +3 -3
  61. package/esm2020/checkbox/checkbox.component.mjs +3 -3
  62. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  63. package/esm2020/checkbox/checkbox.property.mjs +3 -3
  64. package/esm2020/collapse/collapse-panel.component.mjs +3 -3
  65. package/esm2020/collapse/collapse.component.mjs +3 -3
  66. package/esm2020/collapse/collapse.module.mjs +4 -4
  67. package/esm2020/collapse/collapse.property.mjs +6 -6
  68. package/esm2020/color/color.component.mjs +10 -13
  69. package/esm2020/color/color.module.mjs +4 -4
  70. package/esm2020/color/color.property.mjs +3 -3
  71. package/esm2020/color-picker/color-picker-portal.component.mjs +6 -6
  72. package/esm2020/color-picker/color-picker.component.mjs +3 -3
  73. package/esm2020/color-picker/color-picker.module.mjs +4 -4
  74. package/esm2020/color-picker/color-picker.property.mjs +3 -3
  75. package/esm2020/comment/comment-reply.component.mjs +3 -3
  76. package/esm2020/comment/comment.component.mjs +3 -3
  77. package/esm2020/comment/comment.module.mjs +4 -4
  78. package/esm2020/comment/comment.property.mjs +6 -6
  79. package/esm2020/container/aside.component.mjs +3 -3
  80. package/esm2020/container/container.component.mjs +3 -3
  81. package/esm2020/container/container.module.mjs +4 -4
  82. package/esm2020/container/container.property.mjs +12 -12
  83. package/esm2020/container/footer.component.mjs +3 -3
  84. package/esm2020/container/header.component.mjs +3 -3
  85. package/esm2020/container/main.component.mjs +3 -3
  86. package/esm2020/core/config/config.service.mjs +11 -20
  87. package/esm2020/core/functions/resize.mjs +4 -1
  88. package/esm2020/core/services/http.service.mjs +3 -3
  89. package/esm2020/core/services/preloading-strategy.service.mjs +3 -3
  90. package/esm2020/core/services/storage.service.mjs +51 -12
  91. package/esm2020/core/theme/theme.service.mjs +10 -12
  92. package/esm2020/core/util/computed-style.mjs +9 -3
  93. package/esm2020/core/util/index.mjs +2 -0
  94. package/esm2020/crumb/crumb.component.mjs +3 -3
  95. package/esm2020/crumb/crumb.module.mjs +4 -4
  96. package/esm2020/crumb/crumb.property.mjs +3 -3
  97. package/esm2020/date-picker/date-picker-portal.component.mjs +3 -3
  98. package/esm2020/date-picker/date-picker.component.mjs +3 -3
  99. package/esm2020/date-picker/date-picker.module.mjs +4 -4
  100. package/esm2020/date-picker/date-picker.property.mjs +18 -18
  101. package/esm2020/date-picker/date-quarter.pipe.mjs +3 -3
  102. package/esm2020/date-picker/date-range-portal.component.mjs +3 -3
  103. package/esm2020/date-picker/date-range.component.mjs +3 -3
  104. package/esm2020/date-picker/picker-date.component.mjs +3 -3
  105. package/esm2020/date-picker/picker-month.component.mjs +3 -3
  106. package/esm2020/date-picker/picker-quarter.component.mjs +3 -3
  107. package/esm2020/date-picker/picker-year.component.mjs +3 -3
  108. package/esm2020/description/description-item.component.mjs +3 -3
  109. package/esm2020/description/description.component.mjs +3 -3
  110. package/esm2020/description/description.module.mjs +4 -4
  111. package/esm2020/description/description.property.mjs +6 -6
  112. package/esm2020/dialog/dialog-container.component.mjs +3 -3
  113. package/esm2020/dialog/dialog-portal.component.mjs +3 -3
  114. package/esm2020/dialog/dialog-portal.directives.mjs +18 -18
  115. package/esm2020/dialog/dialog.component.mjs +3 -3
  116. package/esm2020/dialog/dialog.module.mjs +4 -4
  117. package/esm2020/dialog/dialog.property.mjs +6 -6
  118. package/esm2020/dialog/dialog.service.mjs +3 -3
  119. package/esm2020/doc/doc.component.mjs +3 -3
  120. package/esm2020/doc/doc.module.mjs +4 -4
  121. package/esm2020/drawer/drawer-container.component.mjs +3 -3
  122. package/esm2020/drawer/drawer-portal.component.mjs +3 -3
  123. package/esm2020/drawer/drawer-portal.directives.mjs +9 -9
  124. package/esm2020/drawer/drawer.component.mjs +3 -3
  125. package/esm2020/drawer/drawer.module.mjs +4 -4
  126. package/esm2020/drawer/drawer.property.mjs +6 -6
  127. package/esm2020/drawer/drawer.service.mjs +3 -3
  128. package/esm2020/dropdown/dropdown-portal.component.mjs +3 -3
  129. package/esm2020/dropdown/dropdown.component.mjs +3 -3
  130. package/esm2020/dropdown/dropdown.module.mjs +4 -4
  131. package/esm2020/dropdown/dropdown.property.mjs +3 -3
  132. package/esm2020/empty/empty.component.mjs +3 -3
  133. package/esm2020/empty/empty.module.mjs +4 -4
  134. package/esm2020/empty/empty.property.mjs +3 -3
  135. package/esm2020/examples/examples.component.mjs +3 -3
  136. package/esm2020/examples/examples.module.mjs +4 -4
  137. package/esm2020/find/find.component.mjs +4 -4
  138. package/esm2020/find/find.module.mjs +4 -4
  139. package/esm2020/find/find.property.mjs +3 -3
  140. package/esm2020/form/control.component.mjs +3 -3
  141. package/esm2020/form/form.component.mjs +3 -3
  142. package/esm2020/form/form.module.mjs +4 -4
  143. package/esm2020/form/form.property.mjs +6 -6
  144. package/esm2020/highlight/highlight.component.mjs +9 -8
  145. package/esm2020/highlight/highlight.module.mjs +4 -4
  146. package/esm2020/highlight/highlight.property.mjs +3 -3
  147. package/esm2020/i18n/i18n.directive.mjs +3 -3
  148. package/esm2020/i18n/i18n.module.mjs +4 -4
  149. package/esm2020/i18n/i18n.pipe.mjs +3 -3
  150. package/esm2020/i18n/i18n.property.mjs +1 -1
  151. package/esm2020/i18n/i18n.service.mjs +3 -3
  152. package/esm2020/i18n/languages/en_GB.mjs +5 -2
  153. package/esm2020/i18n/languages/en_US.mjs +5 -2
  154. package/esm2020/i18n/languages/zh_CN.mjs +5 -2
  155. package/esm2020/i18n/languages/zh_TW.mjs +5 -2
  156. package/esm2020/icon/icon.component.mjs +9 -14
  157. package/esm2020/icon/icon.module.mjs +4 -4
  158. package/esm2020/icon/icon.property.mjs +3 -3
  159. package/esm2020/icon/icon.service.mjs +3 -3
  160. package/esm2020/image/image-group.component.mjs +3 -3
  161. package/esm2020/image/image-preview.component.mjs +14 -10
  162. package/esm2020/image/image.component.mjs +3 -3
  163. package/esm2020/image/image.module.mjs +4 -4
  164. package/esm2020/image/image.property.mjs +6 -6
  165. package/esm2020/inner/inner.component.mjs +3 -3
  166. package/esm2020/inner/inner.module.mjs +4 -4
  167. package/esm2020/inner/inner.property.mjs +3 -3
  168. package/esm2020/input/input-group.component.mjs +3 -3
  169. package/esm2020/input/input.component.mjs +3 -3
  170. package/esm2020/input/input.module.mjs +4 -4
  171. package/esm2020/input/input.property.mjs +6 -6
  172. package/esm2020/input-number/input-number.component.mjs +3 -3
  173. package/esm2020/input-number/input-number.module.mjs +4 -4
  174. package/esm2020/input-number/input-number.property.mjs +3 -3
  175. package/esm2020/keyword/keyword.directive.mjs +3 -3
  176. package/esm2020/keyword/keyword.module.mjs +4 -4
  177. package/esm2020/keyword/keyword.property.mjs +3 -3
  178. package/esm2020/layout/col.component.mjs +3 -3
  179. package/esm2020/layout/layout.module.mjs +4 -4
  180. package/esm2020/layout/layout.property.mjs +6 -6
  181. package/esm2020/layout/row.component.mjs +3 -3
  182. package/esm2020/link/link.component.mjs +3 -3
  183. package/esm2020/link/link.module.mjs +4 -4
  184. package/esm2020/link/link.property.mjs +3 -3
  185. package/esm2020/list/list-drop-group.directive.mjs +3 -3
  186. package/esm2020/list/list-option.component.mjs +3 -3
  187. package/esm2020/list/list.component.mjs +5 -5
  188. package/esm2020/list/list.module.mjs +4 -4
  189. package/esm2020/list/list.property.mjs +6 -6
  190. package/esm2020/loading/loading.component.mjs +3 -3
  191. package/esm2020/loading/loading.module.mjs +4 -4
  192. package/esm2020/loading/loading.property.mjs +3 -3
  193. package/esm2020/menu/menu-node.component.mjs +3 -3
  194. package/esm2020/menu/menu.component.mjs +12 -12
  195. package/esm2020/menu/menu.module.mjs +4 -4
  196. package/esm2020/menu/menu.property.mjs +6 -6
  197. package/esm2020/message/message.component.mjs +3 -3
  198. package/esm2020/message/message.module.mjs +4 -4
  199. package/esm2020/message/message.service.mjs +3 -3
  200. package/esm2020/message-box/message-box.component.mjs +3 -3
  201. package/esm2020/message-box/message-box.module.mjs +4 -4
  202. package/esm2020/message-box/message-box.service.mjs +3 -3
  203. package/esm2020/notification/notification.component.mjs +3 -3
  204. package/esm2020/notification/notification.module.mjs +4 -4
  205. package/esm2020/notification/notification.service.mjs +3 -3
  206. package/esm2020/outlet/outlet.directive.mjs +3 -3
  207. package/esm2020/outlet/outlet.module.mjs +4 -4
  208. package/esm2020/page-header/page-header.component.mjs +3 -3
  209. package/esm2020/page-header/page-header.module.mjs +4 -4
  210. package/esm2020/page-header/page-header.property.mjs +3 -3
  211. package/esm2020/pagination/pagination.component.mjs +3 -3
  212. package/esm2020/pagination/pagination.module.mjs +4 -4
  213. package/esm2020/pagination/pagination.property.mjs +3 -3
  214. package/esm2020/pattern/pattern.component.mjs +3 -3
  215. package/esm2020/pattern/pattern.module.mjs +4 -4
  216. package/esm2020/popconfirm/popconfirm.component.mjs +3 -3
  217. package/esm2020/popconfirm/popconfirm.module.mjs +4 -4
  218. package/esm2020/popconfirm/popconfirm.property.mjs +3 -3
  219. package/esm2020/popover/popover-portal.component.mjs +3 -3
  220. package/esm2020/popover/popover.directive.mjs +3 -3
  221. package/esm2020/popover/popover.module.mjs +4 -4
  222. package/esm2020/popover/popover.property.mjs +3 -3
  223. package/esm2020/portal/portal.module.mjs +4 -4
  224. package/esm2020/portal/portal.service.mjs +6 -5
  225. package/esm2020/progress/progress.component.mjs +3 -3
  226. package/esm2020/progress/progress.module.mjs +4 -4
  227. package/esm2020/progress/progress.property.mjs +3 -3
  228. package/esm2020/radio/radio.component.mjs +3 -3
  229. package/esm2020/radio/radio.module.mjs +4 -4
  230. package/esm2020/radio/radio.property.mjs +3 -3
  231. package/esm2020/rate/rate.component.mjs +3 -3
  232. package/esm2020/rate/rate.module.mjs +4 -4
  233. package/esm2020/rate/rate.property.mjs +3 -3
  234. package/esm2020/resizable/resizable.directive.mjs +10 -13
  235. package/esm2020/resizable/resizable.module.mjs +4 -4
  236. package/esm2020/resizable/resizable.property.mjs +3 -3
  237. package/esm2020/result/result.component.mjs +3 -3
  238. package/esm2020/result/result.module.mjs +4 -4
  239. package/esm2020/result/result.property.mjs +3 -3
  240. package/esm2020/ripple/ripple.directive.mjs +6 -5
  241. package/esm2020/ripple/ripple.module.mjs +4 -4
  242. package/esm2020/ripple/ripple.property.mjs +3 -3
  243. package/esm2020/select/select-portal.component.mjs +3 -3
  244. package/esm2020/select/select.component.mjs +6 -6
  245. package/esm2020/select/select.module.mjs +4 -4
  246. package/esm2020/select/select.property.mjs +3 -3
  247. package/esm2020/skeleton/skeleton.component.mjs +3 -3
  248. package/esm2020/skeleton/skeleton.module.mjs +4 -4
  249. package/esm2020/skeleton/skeleton.property.mjs +3 -3
  250. package/esm2020/slider/slider.component.mjs +7 -5
  251. package/esm2020/slider/slider.module.mjs +4 -4
  252. package/esm2020/slider/slider.property.mjs +3 -3
  253. package/esm2020/slider-select/slider-select.component.mjs +21 -14
  254. package/esm2020/slider-select/slider-select.module.mjs +4 -4
  255. package/esm2020/slider-select/slider-select.property.mjs +3 -3
  256. package/esm2020/statistic/countdown.component.mjs +3 -3
  257. package/esm2020/statistic/statistic.component.mjs +3 -3
  258. package/esm2020/statistic/statistic.module.mjs +4 -4
  259. package/esm2020/statistic/statistic.property.mjs +6 -6
  260. package/esm2020/steps/steps.component.mjs +3 -3
  261. package/esm2020/steps/steps.module.mjs +4 -4
  262. package/esm2020/steps/steps.property.mjs +3 -3
  263. package/esm2020/switch/switch.component.mjs +3 -3
  264. package/esm2020/switch/switch.module.mjs +4 -4
  265. package/esm2020/switch/switch.property.mjs +3 -3
  266. package/esm2020/table/drag.directive.mjs +8 -11
  267. package/esm2020/table/table-body.component.mjs +10 -13
  268. package/esm2020/table/table-foot.component.mjs +3 -3
  269. package/esm2020/table/table-head.component.mjs +3 -3
  270. package/esm2020/table/table.component.mjs +3 -3
  271. package/esm2020/table/table.module.mjs +4 -4
  272. package/esm2020/table/table.property.mjs +12 -12
  273. package/esm2020/tabs/tab-content.component.mjs +3 -3
  274. package/esm2020/tabs/tab-link.directive.mjs +6 -6
  275. package/esm2020/tabs/tab.component.mjs +3 -3
  276. package/esm2020/tabs/tabs.component.mjs +4 -4
  277. package/esm2020/tabs/tabs.module.mjs +4 -4
  278. package/esm2020/tabs/tabs.property.mjs +6 -6
  279. package/esm2020/tag/tag.component.mjs +3 -3
  280. package/esm2020/tag/tag.module.mjs +4 -4
  281. package/esm2020/tag/tag.property.mjs +3 -3
  282. package/esm2020/text-retract/text-retract.component.mjs +3 -3
  283. package/esm2020/text-retract/text-retract.module.mjs +4 -4
  284. package/esm2020/text-retract/text-retract.property.mjs +3 -3
  285. package/esm2020/textarea/textarea.component.mjs +3 -3
  286. package/esm2020/textarea/textarea.module.mjs +4 -4
  287. package/esm2020/textarea/textarea.property.mjs +3 -3
  288. package/esm2020/theme/theme.component.mjs +3 -3
  289. package/esm2020/theme/theme.module.mjs +4 -4
  290. package/esm2020/theme/theme.property.mjs +3 -3
  291. package/esm2020/time-ago/time-ago.module.mjs +4 -4
  292. package/esm2020/time-ago/time-ago.pipe.mjs +3 -3
  293. package/esm2020/time-picker/time-picker-frame.component.mjs +3 -3
  294. package/esm2020/time-picker/time-picker-portal.component.mjs +3 -3
  295. package/esm2020/time-picker/time-picker.component.mjs +21 -5
  296. package/esm2020/time-picker/time-picker.module.mjs +4 -4
  297. package/esm2020/time-picker/time-picker.property.mjs +3 -3
  298. package/esm2020/time-range/time-range.module.mjs +4 -4
  299. package/esm2020/time-range/time-range.pipe.mjs +3 -3
  300. package/esm2020/timeline/timeline.component.mjs +3 -3
  301. package/esm2020/timeline/timeline.module.mjs +4 -4
  302. package/esm2020/timeline/timeline.property.mjs +3 -3
  303. package/esm2020/tooltip/tooltip-portal.component.mjs +3 -3
  304. package/esm2020/tooltip/tooltip.directive.mjs +3 -3
  305. package/esm2020/tooltip/tooltip.module.mjs +4 -4
  306. package/esm2020/tooltip/tooltip.property.mjs +3 -3
  307. package/esm2020/transfer/transfer.component.mjs +3 -3
  308. package/esm2020/transfer/transfer.module.mjs +4 -4
  309. package/esm2020/transfer/transfer.property.mjs +3 -3
  310. package/esm2020/tree/tree-node.component.mjs +3 -3
  311. package/esm2020/tree/tree.component.mjs +6 -6
  312. package/esm2020/tree/tree.module.mjs +4 -4
  313. package/esm2020/tree/tree.property.mjs +6 -6
  314. package/esm2020/tree/tree.service.mjs +3 -3
  315. package/esm2020/tree-file/tree-file.component.mjs +9 -6
  316. package/esm2020/tree-file/tree-file.module.mjs +4 -4
  317. package/esm2020/tree-file/tree-file.property.mjs +5 -5
  318. package/esm2020/tree-select/tree-select-portal.component.mjs +3 -3
  319. package/esm2020/tree-select/tree-select.component.mjs +6 -6
  320. package/esm2020/tree-select/tree-select.module.mjs +4 -4
  321. package/esm2020/tree-select/tree-select.property.mjs +3 -3
  322. package/esm2020/typography/typography.component.mjs +3 -3
  323. package/esm2020/typography/typography.module.mjs +4 -4
  324. package/esm2020/typography/typography.property.mjs +3 -3
  325. package/esm2020/upload/upload-portal.component.mjs +8 -11
  326. package/esm2020/upload/upload.component.mjs +3 -3
  327. package/esm2020/upload/upload.module.mjs +4 -4
  328. package/esm2020/upload/upload.property.mjs +3 -3
  329. package/fesm2015/ng-nest-ui-affix.mjs +10 -10
  330. package/fesm2015/ng-nest-ui-alert.mjs +10 -10
  331. package/fesm2015/ng-nest-ui-anchor.mjs +28 -33
  332. package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
  333. package/fesm2015/ng-nest-ui-api.mjs +7 -7
  334. package/fesm2015/ng-nest-ui-auto-complete.mjs +13 -13
  335. package/fesm2015/ng-nest-ui-avatar.mjs +20 -25
  336. package/fesm2015/ng-nest-ui-avatar.mjs.map +1 -1
  337. package/fesm2015/ng-nest-ui-back-top.mjs +23 -24
  338. package/fesm2015/ng-nest-ui-back-top.mjs.map +1 -1
  339. package/fesm2015/ng-nest-ui-badge.mjs +10 -10
  340. package/fesm2015/ng-nest-ui-base-form.mjs +10 -10
  341. package/fesm2015/ng-nest-ui-border.mjs +7 -7
  342. package/fesm2015/ng-nest-ui-button.mjs +35 -22
  343. package/fesm2015/ng-nest-ui-button.mjs.map +1 -1
  344. package/fesm2015/ng-nest-ui-calendar.mjs +10 -10
  345. package/fesm2015/ng-nest-ui-card.mjs +10 -10
  346. package/fesm2015/ng-nest-ui-carousel.mjs +16 -16
  347. package/fesm2015/ng-nest-ui-carousel.mjs.map +1 -1
  348. package/fesm2015/ng-nest-ui-cascade.mjs +13 -13
  349. package/fesm2015/ng-nest-ui-checkbox.mjs +10 -10
  350. package/fesm2015/ng-nest-ui-collapse.mjs +16 -16
  351. package/fesm2015/ng-nest-ui-color-picker.mjs +15 -15
  352. package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
  353. package/fesm2015/ng-nest-ui-color.mjs +16 -21
  354. package/fesm2015/ng-nest-ui-color.mjs.map +1 -1
  355. package/fesm2015/ng-nest-ui-comment.mjs +16 -16
  356. package/fesm2015/ng-nest-ui-container.mjs +31 -31
  357. package/fesm2015/ng-nest-ui-core.mjs +83 -51
  358. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  359. package/fesm2015/ng-nest-ui-crumb.mjs +10 -10
  360. package/fesm2015/ng-nest-ui-date-picker.mjs +49 -49
  361. package/fesm2015/ng-nest-ui-description.mjs +16 -16
  362. package/fesm2015/ng-nest-ui-dialog.mjs +40 -40
  363. package/fesm2015/ng-nest-ui-doc.mjs +7 -7
  364. package/fesm2015/ng-nest-ui-drawer.mjs +31 -31
  365. package/fesm2015/ng-nest-ui-dropdown.mjs +13 -13
  366. package/fesm2015/ng-nest-ui-empty.mjs +10 -10
  367. package/fesm2015/ng-nest-ui-examples.mjs +7 -7
  368. package/fesm2015/ng-nest-ui-find.mjs +10 -10
  369. package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
  370. package/fesm2015/ng-nest-ui-form.mjs +16 -16
  371. package/fesm2015/ng-nest-ui-highlight.mjs +15 -14
  372. package/fesm2015/ng-nest-ui-highlight.mjs.map +1 -1
  373. package/fesm2015/ng-nest-ui-i18n.mjs +29 -17
  374. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  375. package/fesm2015/ng-nest-ui-icon.mjs +18 -25
  376. package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
  377. package/fesm2015/ng-nest-ui-image.mjs +30 -26
  378. package/fesm2015/ng-nest-ui-image.mjs.map +1 -1
  379. package/fesm2015/ng-nest-ui-inner.mjs +10 -10
  380. package/fesm2015/ng-nest-ui-input-number.mjs +10 -10
  381. package/fesm2015/ng-nest-ui-input.mjs +16 -16
  382. package/fesm2015/ng-nest-ui-keyword.mjs +10 -10
  383. package/fesm2015/ng-nest-ui-layout.mjs +16 -16
  384. package/fesm2015/ng-nest-ui-link.mjs +10 -10
  385. package/fesm2015/ng-nest-ui-list.mjs +20 -20
  386. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  387. package/fesm2015/ng-nest-ui-loading.mjs +10 -10
  388. package/fesm2015/ng-nest-ui-menu.mjs +24 -26
  389. package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
  390. package/fesm2015/ng-nest-ui-message-box.mjs +10 -10
  391. package/fesm2015/ng-nest-ui-message.mjs +10 -10
  392. package/fesm2015/ng-nest-ui-notification.mjs +10 -10
  393. package/fesm2015/ng-nest-ui-outlet.mjs +7 -7
  394. package/fesm2015/ng-nest-ui-page-header.mjs +10 -10
  395. package/fesm2015/ng-nest-ui-pagination.mjs +10 -10
  396. package/fesm2015/ng-nest-ui-pattern.mjs +7 -7
  397. package/fesm2015/ng-nest-ui-popconfirm.mjs +10 -10
  398. package/fesm2015/ng-nest-ui-popover.mjs +13 -13
  399. package/fesm2015/ng-nest-ui-portal.mjs +9 -9
  400. package/fesm2015/ng-nest-ui-portal.mjs.map +1 -1
  401. package/fesm2015/ng-nest-ui-progress.mjs +10 -10
  402. package/fesm2015/ng-nest-ui-radio.mjs +10 -10
  403. package/fesm2015/ng-nest-ui-rate.mjs +10 -10
  404. package/fesm2015/ng-nest-ui-resizable.mjs +16 -21
  405. package/fesm2015/ng-nest-ui-resizable.mjs.map +1 -1
  406. package/fesm2015/ng-nest-ui-result.mjs +10 -10
  407. package/fesm2015/ng-nest-ui-ripple.mjs +12 -12
  408. package/fesm2015/ng-nest-ui-ripple.mjs.map +1 -1
  409. package/fesm2015/ng-nest-ui-select.mjs +15 -15
  410. package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
  411. package/fesm2015/ng-nest-ui-skeleton.mjs +10 -10
  412. package/fesm2015/ng-nest-ui-slider-select.mjs +27 -20
  413. package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
  414. package/fesm2015/ng-nest-ui-slider.mjs +13 -11
  415. package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
  416. package/fesm2015/ng-nest-ui-statistic.mjs +16 -16
  417. package/fesm2015/ng-nest-ui-steps.mjs +10 -10
  418. package/fesm2015/ng-nest-ui-switch.mjs +10 -10
  419. package/fesm2015/ng-nest-ui-table.mjs +40 -50
  420. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  421. package/fesm2015/ng-nest-ui-tabs.mjs +25 -25
  422. package/fesm2015/ng-nest-ui-tabs.mjs.map +1 -1
  423. package/fesm2015/ng-nest-ui-tag.mjs +10 -10
  424. package/fesm2015/ng-nest-ui-text-retract.mjs +10 -10
  425. package/fesm2015/ng-nest-ui-textarea.mjs +10 -10
  426. package/fesm2015/ng-nest-ui-theme.mjs +10 -10
  427. package/fesm2015/ng-nest-ui-time-ago.mjs +7 -7
  428. package/fesm2015/ng-nest-ui-time-picker.mjs +33 -17
  429. package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
  430. package/fesm2015/ng-nest-ui-time-range.mjs +7 -7
  431. package/fesm2015/ng-nest-ui-timeline.mjs +10 -10
  432. package/fesm2015/ng-nest-ui-tooltip.mjs +13 -13
  433. package/fesm2015/ng-nest-ui-transfer.mjs +10 -10
  434. package/fesm2015/ng-nest-ui-tree-file.mjs +16 -13
  435. package/fesm2015/ng-nest-ui-tree-file.mjs.map +1 -1
  436. package/fesm2015/ng-nest-ui-tree-select.mjs +15 -15
  437. package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -1
  438. package/fesm2015/ng-nest-ui-tree.mjs +21 -21
  439. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  440. package/fesm2015/ng-nest-ui-typography.mjs +10 -10
  441. package/fesm2015/ng-nest-ui-upload.mjs +17 -22
  442. package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
  443. package/fesm2020/ng-nest-ui-affix.mjs +10 -10
  444. package/fesm2020/ng-nest-ui-alert.mjs +10 -10
  445. package/fesm2020/ng-nest-ui-anchor.mjs +28 -31
  446. package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
  447. package/fesm2020/ng-nest-ui-api.mjs +7 -7
  448. package/fesm2020/ng-nest-ui-auto-complete.mjs +13 -13
  449. package/fesm2020/ng-nest-ui-avatar.mjs +20 -23
  450. package/fesm2020/ng-nest-ui-avatar.mjs.map +1 -1
  451. package/fesm2020/ng-nest-ui-back-top.mjs +23 -22
  452. package/fesm2020/ng-nest-ui-back-top.mjs.map +1 -1
  453. package/fesm2020/ng-nest-ui-badge.mjs +10 -10
  454. package/fesm2020/ng-nest-ui-base-form.mjs +10 -10
  455. package/fesm2020/ng-nest-ui-border.mjs +7 -7
  456. package/fesm2020/ng-nest-ui-button.mjs +34 -22
  457. package/fesm2020/ng-nest-ui-button.mjs.map +1 -1
  458. package/fesm2020/ng-nest-ui-calendar.mjs +10 -10
  459. package/fesm2020/ng-nest-ui-card.mjs +10 -10
  460. package/fesm2020/ng-nest-ui-carousel.mjs +16 -16
  461. package/fesm2020/ng-nest-ui-carousel.mjs.map +1 -1
  462. package/fesm2020/ng-nest-ui-cascade.mjs +13 -13
  463. package/fesm2020/ng-nest-ui-checkbox.mjs +10 -10
  464. package/fesm2020/ng-nest-ui-collapse.mjs +16 -16
  465. package/fesm2020/ng-nest-ui-color-picker.mjs +15 -15
  466. package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
  467. package/fesm2020/ng-nest-ui-color.mjs +16 -19
  468. package/fesm2020/ng-nest-ui-color.mjs.map +1 -1
  469. package/fesm2020/ng-nest-ui-comment.mjs +16 -16
  470. package/fesm2020/ng-nest-ui-container.mjs +31 -31
  471. package/fesm2020/ng-nest-ui-core.mjs +83 -47
  472. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  473. package/fesm2020/ng-nest-ui-crumb.mjs +10 -10
  474. package/fesm2020/ng-nest-ui-date-picker.mjs +49 -49
  475. package/fesm2020/ng-nest-ui-description.mjs +16 -16
  476. package/fesm2020/ng-nest-ui-dialog.mjs +40 -40
  477. package/fesm2020/ng-nest-ui-doc.mjs +7 -7
  478. package/fesm2020/ng-nest-ui-drawer.mjs +31 -31
  479. package/fesm2020/ng-nest-ui-dropdown.mjs +13 -13
  480. package/fesm2020/ng-nest-ui-empty.mjs +10 -10
  481. package/fesm2020/ng-nest-ui-examples.mjs +7 -7
  482. package/fesm2020/ng-nest-ui-find.mjs +10 -10
  483. package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
  484. package/fesm2020/ng-nest-ui-form.mjs +16 -16
  485. package/fesm2020/ng-nest-ui-highlight.mjs +15 -14
  486. package/fesm2020/ng-nest-ui-highlight.mjs.map +1 -1
  487. package/fesm2020/ng-nest-ui-i18n.mjs +29 -17
  488. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  489. package/fesm2020/ng-nest-ui-icon.mjs +18 -23
  490. package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
  491. package/fesm2020/ng-nest-ui-image.mjs +29 -26
  492. package/fesm2020/ng-nest-ui-image.mjs.map +1 -1
  493. package/fesm2020/ng-nest-ui-inner.mjs +10 -10
  494. package/fesm2020/ng-nest-ui-input-number.mjs +10 -10
  495. package/fesm2020/ng-nest-ui-input.mjs +16 -16
  496. package/fesm2020/ng-nest-ui-keyword.mjs +10 -10
  497. package/fesm2020/ng-nest-ui-layout.mjs +16 -16
  498. package/fesm2020/ng-nest-ui-link.mjs +10 -10
  499. package/fesm2020/ng-nest-ui-list.mjs +20 -20
  500. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  501. package/fesm2020/ng-nest-ui-loading.mjs +10 -10
  502. package/fesm2020/ng-nest-ui-menu.mjs +24 -24
  503. package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
  504. package/fesm2020/ng-nest-ui-message-box.mjs +10 -10
  505. package/fesm2020/ng-nest-ui-message.mjs +10 -10
  506. package/fesm2020/ng-nest-ui-notification.mjs +10 -10
  507. package/fesm2020/ng-nest-ui-outlet.mjs +7 -7
  508. package/fesm2020/ng-nest-ui-page-header.mjs +10 -10
  509. package/fesm2020/ng-nest-ui-pagination.mjs +10 -10
  510. package/fesm2020/ng-nest-ui-pattern.mjs +7 -7
  511. package/fesm2020/ng-nest-ui-popconfirm.mjs +10 -10
  512. package/fesm2020/ng-nest-ui-popover.mjs +13 -13
  513. package/fesm2020/ng-nest-ui-portal.mjs +9 -9
  514. package/fesm2020/ng-nest-ui-portal.mjs.map +1 -1
  515. package/fesm2020/ng-nest-ui-progress.mjs +10 -10
  516. package/fesm2020/ng-nest-ui-radio.mjs +10 -10
  517. package/fesm2020/ng-nest-ui-rate.mjs +10 -10
  518. package/fesm2020/ng-nest-ui-resizable.mjs +16 -19
  519. package/fesm2020/ng-nest-ui-resizable.mjs.map +1 -1
  520. package/fesm2020/ng-nest-ui-result.mjs +10 -10
  521. package/fesm2020/ng-nest-ui-ripple.mjs +12 -12
  522. package/fesm2020/ng-nest-ui-ripple.mjs.map +1 -1
  523. package/fesm2020/ng-nest-ui-select.mjs +15 -15
  524. package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
  525. package/fesm2020/ng-nest-ui-skeleton.mjs +10 -10
  526. package/fesm2020/ng-nest-ui-slider-select.mjs +27 -20
  527. package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
  528. package/fesm2020/ng-nest-ui-slider.mjs +13 -11
  529. package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
  530. package/fesm2020/ng-nest-ui-statistic.mjs +16 -16
  531. package/fesm2020/ng-nest-ui-steps.mjs +10 -10
  532. package/fesm2020/ng-nest-ui-switch.mjs +10 -10
  533. package/fesm2020/ng-nest-ui-table.mjs +40 -46
  534. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  535. package/fesm2020/ng-nest-ui-tabs.mjs +25 -25
  536. package/fesm2020/ng-nest-ui-tabs.mjs.map +1 -1
  537. package/fesm2020/ng-nest-ui-tag.mjs +10 -10
  538. package/fesm2020/ng-nest-ui-text-retract.mjs +10 -10
  539. package/fesm2020/ng-nest-ui-textarea.mjs +10 -10
  540. package/fesm2020/ng-nest-ui-theme.mjs +10 -10
  541. package/fesm2020/ng-nest-ui-time-ago.mjs +7 -7
  542. package/fesm2020/ng-nest-ui-time-picker.mjs +33 -17
  543. package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
  544. package/fesm2020/ng-nest-ui-time-range.mjs +7 -7
  545. package/fesm2020/ng-nest-ui-timeline.mjs +10 -10
  546. package/fesm2020/ng-nest-ui-tooltip.mjs +13 -13
  547. package/fesm2020/ng-nest-ui-transfer.mjs +10 -10
  548. package/fesm2020/ng-nest-ui-tree-file.mjs +16 -13
  549. package/fesm2020/ng-nest-ui-tree-file.mjs.map +1 -1
  550. package/fesm2020/ng-nest-ui-tree-select.mjs +15 -15
  551. package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -1
  552. package/fesm2020/ng-nest-ui-tree.mjs +21 -21
  553. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  554. package/fesm2020/ng-nest-ui-typography.mjs +10 -10
  555. package/fesm2020/ng-nest-ui-upload.mjs +17 -20
  556. package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
  557. package/i18n/i18n.property.d.ts +3 -0
  558. package/i18n/languages/en_GB.d.ts +3 -0
  559. package/i18n/languages/en_US.d.ts +3 -0
  560. package/i18n/languages/zh_CN.d.ts +3 -0
  561. package/i18n/languages/zh_TW.d.ts +3 -0
  562. package/icon/icon.component.d.ts +4 -4
  563. package/image/image-preview.component.d.ts +1 -0
  564. package/menu/menu.component.d.ts +2 -2
  565. package/package.json +1 -1
  566. package/resizable/resizable.directive.d.ts +1 -1
  567. package/slider-select/slider-select.component.d.ts +1 -1
  568. package/table/drag.directive.d.ts +1 -1
  569. package/table/table-body.component.d.ts +2 -2
  570. package/time-picker/time-picker.component.d.ts +1 -0
  571. package/upload/upload-portal.component.d.ts +1 -1
@@ -1,4 +1,4 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, Optional, HostBinding } from '@angular/core';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, inject } from '@angular/core';
2
2
  import { DOCUMENT } from '@angular/common';
3
3
  import { XIconPrefix, XIconProperty } from './icon.property';
4
4
  import { warnIconTypeNotFound, warnSVGTagNotFound, XIsChange, XIsEmpty } from '@ng-nest/ui/core';
@@ -25,15 +25,15 @@ export const XViewBox = [
25
25
  // { souces: ["fto"], value: "0 0 24 24" }
26
26
  ];
27
27
  export class XIconComponent extends XIconProperty {
28
- constructor(elementRef, renderer, iconService, cdr, document, configService) {
28
+ constructor(elementRef, renderer, iconService, cdr, configService) {
29
29
  super();
30
30
  this.elementRef = elementRef;
31
31
  this.renderer = renderer;
32
32
  this.iconService = iconService;
33
33
  this.cdr = cdr;
34
- this.document = document;
35
34
  this.configService = configService;
36
35
  this._loaded = false;
36
+ this.document = inject(DOCUMENT);
37
37
  this.iconService.rootUrl = this.href;
38
38
  this.renderer.addClass(this.elementRef.nativeElement, XIconPrefix);
39
39
  }
@@ -160,7 +160,7 @@ export class XIconComponent extends XIconProperty {
160
160
  let child = this._svgElement.children[i];
161
161
  let toChild = svg?.children[i];
162
162
  if (child?.nodeName === 'path' && toChild?.nodeName === 'path') {
163
- let toAnimate = document.createElement('animate');
163
+ let toAnimate = this.document.createElement('animate');
164
164
  toAnimate.setAttribute('dur', '500ms');
165
165
  toAnimate.setAttribute('repeatCount', '1');
166
166
  toAnimate.setAttribute('attributeName', 'd');
@@ -173,18 +173,13 @@ export class XIconComponent extends XIconProperty {
173
173
  }
174
174
  }
175
175
  }
176
- /** @nocollapse */ XIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XIconComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.XIconService }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT, optional: true }, { token: i2.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
177
- /** @nocollapse */ XIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XIconComponent, selector: "x-icon", host: { properties: { "class.x-icon-spin": "this.getSpin" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\r\n", styles: ["@keyframes x-icon-spin{to{transform:rotate(360deg)}}.x-icon{margin:0;padding:0;display:inline-block;line-height:0;text-align:center;vertical-align:-.125em}.x-icon-spin{animation:1s linear infinite x-icon-spin}.x-icon[left]{margin-right:.25rem}.x-icon[right]{margin-left:.25rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XIconComponent, decorators: [{
176
+ /** @nocollapse */ XIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.XIconService }, { token: i0.ChangeDetectorRef }, { token: i2.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
177
+ /** @nocollapse */ XIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XIconComponent, selector: "x-icon", host: { properties: { "class.x-icon-spin": "this.getSpin" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\r\n", styles: ["@keyframes x-icon-spin{to{transform:rotate(360deg)}}.x-icon{margin:0;padding:0;display:inline-block;line-height:0;text-align:center;vertical-align:-.125em}.x-icon-spin{animation:1s linear infinite x-icon-spin}.x-icon[left]{margin-right:.25rem}.x-icon[right]{margin-left:.25rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconComponent, decorators: [{
179
179
  type: Component,
180
180
  args: [{ selector: `${XIconPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "\r\n", styles: ["@keyframes x-icon-spin{to{transform:rotate(360deg)}}.x-icon{margin:0;padding:0;display:inline-block;line-height:0;text-align:center;vertical-align:-.125em}.x-icon-spin{animation:1s linear infinite x-icon-spin}.x-icon[left]{margin-right:.25rem}.x-icon[right]{margin-left:.25rem}\n"] }]
181
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.XIconService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
182
- type: Optional
183
- }, {
184
- type: Inject,
185
- args: [DOCUMENT]
186
- }] }, { type: i2.XConfigService }]; }, propDecorators: { getSpin: [{
181
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.XIconService }, { type: i0.ChangeDetectorRef }, { type: i2.XConfigService }]; }, propDecorators: { getSpin: [{
187
182
  type: HostBinding,
188
183
  args: ['class.x-icon-spin']
189
184
  }] } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9pY29uL2ljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvaWNvbi9pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQU12QixNQUFNLEVBQ04sUUFBUSxFQUNSLFdBQVcsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBa0IsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQUVqSCxTQUFTO0FBQ1QsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFtQztJQUN2RCxHQUFHLEVBQUUsa0JBQWtCO0lBQ3ZCLEdBQUcsRUFBRSxxQkFBcUI7SUFDMUIsR0FBRyxFQUFFLHFCQUFxQjtJQUMxQixHQUFHLEVBQUUsV0FBVztJQUNoQixHQUFHLEVBQUUsY0FBYztJQUNuQixHQUFHLEVBQUUsVUFBVTtJQUNmLEdBQUcsRUFBRSxzQkFBc0I7SUFDM0IsR0FBRyxFQUFFLHVCQUF1QjtJQUM1QixHQUFHLEVBQUUscUJBQXFCO0lBQzFCLEdBQUcsRUFBRSx1QkFBdUI7SUFDNUIsR0FBRyxFQUFFLDBCQUEwQjtDQUNoQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHO0FBQ3RCLDZEQUE2RDtBQUM3RCxrREFBa0Q7QUFDbEQsMENBQTBDO0NBQzNDLENBQUM7QUFTRixNQUFNLE9BQU8sY0FBZSxTQUFRLGFBQWE7SUFRL0MsWUFDUyxVQUFtQyxFQUNsQyxRQUFtQixFQUNwQixXQUF5QixFQUN4QixHQUFzQixFQUNRLFFBQWEsRUFDNUMsYUFBNkI7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFQRCxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFjO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ1EsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUM1QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFaOUIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQWUvQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBYyxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFmRCxJQUFzQyxPQUFPO1FBQzNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBZUQsUUFBUSxLQUFJLENBQUM7SUFFYixXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDL0IsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDMUI7UUFDRCxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUN6QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUM7UUFDeEQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDO1FBQ3RELElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDaEUsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEtBQUssRUFBRTtZQUMxQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QixJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFBRSxPQUFPO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDckIsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBYztRQUNwQixJQUFJLElBQUksRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUMxRCxJQUFJLFVBQVUsRUFBRTtnQkFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQzthQUN0RTtZQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFZLENBQWdCLENBQUM7WUFDeEUsMEJBQTBCO1lBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFhO1FBQ3hCLElBQUksT0FBTyxJQUFJLEtBQUssV0FBVztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzNDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVCLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzVDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDMUIsb0JBQW9CLEVBQUUsQ0FBQztTQUN4QjtRQUNELE9BQU8sR0FBRyxRQUFRLEdBQUcsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFrQjtRQUM5QixJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNyRDtJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsTUFBYztRQUNyQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLENBQWdCLENBQUM7UUFDakcsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU87UUFDakIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6QixDQUFDLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxNQUFNLEVBQUU7Z0JBQ3hCLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ2hDO1lBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLGtCQUFrQixFQUFFLENBQUM7U0FDdEI7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWM7UUFDdEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsR0FBRyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7UUFDdkIsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQWUsQ0FBQztRQUNwRCxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3pCLE9BQU87WUFDTCxHQUFHLEVBQUUsTUFBTTtZQUNYLFFBQVEsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsNkNBQTZDLENBQUM7U0FDakYsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBZSxFQUFFLE1BQWtCLEVBQUUsU0FBaUIsRUFBRSxHQUFZO1FBQy9FLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsSUFBSSxJQUFJLEVBQUU7WUFDUixHQUFHLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNuQzthQUFNLElBQUksR0FBRyxFQUFFO1lBQ2QsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRUQsZ1JBQWdSO0lBRWhSLFdBQVcsQ0FBQyxJQUFjO1FBQ3hCLElBQUksSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFZLENBQUMsQ0FBQztZQUNqRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6RCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekMsSUFBSSxPQUFPLEdBQUcsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxLQUFLLEVBQUUsUUFBUSxLQUFLLE1BQU0sSUFBSSxPQUFPLEVBQUUsUUFBUSxLQUFLLE1BQU0sRUFBRTtvQkFDOUQsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDbEQsU0FBUyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ3ZDLFNBQVMsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUMzQyxTQUFTLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDN0MsU0FBUyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBQ3pDLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFXLENBQUMsQ0FBQztvQkFDbEUsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQVcsQ0FBQyxDQUFDO29CQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7aUJBQzdDO2FBQ0Y7U0FDRjtJQUNILENBQUM7OzhIQTdKVSxjQUFjLGtJQWFILFFBQVE7a0hBYm5CLGNBQWMseUpDL0MzQixNQUNBOzJGRDhDYSxjQUFjO2tCQVAxQixTQUFTOytCQUNFLEdBQUcsV0FBVyxFQUFFLGlCQUdYLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQWU1QyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7eUVBVFEsT0FBTztzQkFBNUMsV0FBVzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgSW5qZWN0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIEhvc3RCaW5kaW5nXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWEljb25QcmVmaXgsIFhJY29uUHJvcGVydHkgfSBmcm9tICcuL2ljb24ucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSWNvblNlcnZpY2UgfSBmcm9tICcuL2ljb24uc2VydmljZSc7XHJcbmltcG9ydCB7IHdhcm5JY29uVHlwZU5vdEZvdW5kLCB3YXJuU1ZHVGFnTm90Rm91bmQsIFhJc0NoYW5nZSwgWElzRW1wdHksIFhDb25maWdTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcblxyXG4vLyDmnaXmupDot6/lvoTlr7nlupRcclxuZXhwb3J0IGNvbnN0IFhTb3VjZVVybDogeyBbcHJvcGVydHk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xyXG4gIGFkZjogYGFudC1kZXNpZ24vZmlsbC9gLFxyXG4gIGFkbzogYGFudC1kZXNpZ24vb3V0bGluZS9gLFxyXG4gIGFkdDogYGFudC1kZXNpZ24vdHdvdG9uZS9gLFxyXG4gIGVhZjogYGV2YS9maWxsL2AsXHJcbiAgZWFvOiBgZXZhL291dGxpbmUvYCxcclxuICBmdG86IGBmZWF0aGVyL2AsXHJcbiAgZmFiOiBgZm9udC1hd2Vzb21lL2JyYW5kcy9gLFxyXG4gIGZhcjogYGZvbnQtYXdlc29tZS9yZWd1bGFyL2AsXHJcbiAgZmFzOiBgZm9udC1hd2Vzb21lL3NvbGlkL2AsXHJcbiAgbWRmOiBgbWF0ZXJpYWwtZGVzaWduL2ZpbGwvYCxcclxuICBtZG86IGBtYXRlcmlhbC1kZXNpZ24vb3V0bGluZS9gXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgWFZpZXdCb3ggPSBbXHJcbiAgLy8geyBzb3VjZXM6IFtcImFkZlwiLCBcImFkb1wiLCBcImFkdFwiXSwgdmFsdWU6IFwiMCAwIDEwMjQgMTAyNFwiIH0sXHJcbiAgLy8geyBzb3VjZXM6IFtcImVhZlwiLCBcImVhb1wiXSwgdmFsdWU6IFwiMCAwIDI0IDI0XCIgfSxcclxuICAvLyB7IHNvdWNlczogW1wiZnRvXCJdLCB2YWx1ZTogXCIwIDAgMjQgMjRcIiB9XHJcbl07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WEljb25QcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3R5bGUvaW5kZXguc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhJY29uQ29tcG9uZW50IGV4dGVuZHMgWEljb25Qcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBwcml2YXRlIF9zdmdFbGVtZW50ITogU1ZHRWxlbWVudDtcclxuICBwcml2YXRlIF9sb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy54LWljb24tc3BpbicpIGdldCBnZXRTcGluKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3BpbjtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGljb25TZXJ2aWNlOiBYSWNvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnksXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmljb25TZXJ2aWNlLnJvb3RVcmwgPSB0aGlzLmhyZWYgYXMgc3RyaW5nO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgWEljb25QcmVmaXgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHR5cGUsIHNwaW4gfSA9IGNoYW5nZXM7XHJcbiAgICBpZiAoWElzQ2hhbmdlKHR5cGUpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3ZnRWxlbWVudCgpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0eXBlLnByZXZpb3VzVmFsdWUpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBgJHt0aGlzLnR5cGV9YCk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIGlmIChYSXNDaGFuZ2Uoc3BpbikpIHtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U3ZnKCkge1xyXG4gICAgaWYgKHRoaXMuX2xvYWRlZCkgcmV0dXJuO1xyXG4gICAgbGV0IGhlaWdodCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgIGxldCB3aWR0aCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgbGV0IGJveCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYgKGJveC50b3AgPD0gaGVpZ2h0ICYmIGJveC5sZWZ0IDw9IHdpZHRoKSB7XHJcbiAgICAgIHRoaXMuc2V0U3ZnRWxlbWVudCgpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBgJHt0aGlzLnR5cGV9YCk7XHJcbiAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTdmdFbGVtZW50KCkge1xyXG4gICAgY29uc3QgdHlwZUljb24gPSB0aGlzLnNldFNvdXJjZVVybCh0aGlzLnR5cGUpO1xyXG4gICAgY29uc3QgdG9JY29uID0gdGhpcy5zZXRTb3VyY2VVcmwodGhpcy50byk7XHJcbiAgICBsZXQgaWNvbnMgPSBbdHlwZUljb25dO1xyXG4gICAgaWYgKFhJc0VtcHR5KHR5cGVJY29uKSkgcmV0dXJuO1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0b0ljb24pKSB7XHJcbiAgICAgIGljb25zID0gWy4uLmljb25zLCB0b0ljb25dO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pY29uU2VydmljZS5nZXRTdmdzKC4uLmljb25zKS5zdWJzY3JpYmUoKHgpID0+IHRoaXMuc2V0U3Zncyh4KSk7XHJcbiAgfVxyXG5cclxuICBzZXRTdmdzKHN2Z3M6IHN0cmluZ1tdKSB7XHJcbiAgICBpZiAoc3Zncz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZmlyc3RDaGlsZCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZpcnN0Q2hpbGQ7XHJcbiAgICAgIGlmIChmaXJzdENoaWxkKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgZmlyc3RDaGlsZCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fc3ZnRWxlbWVudCA9IHRoaXMuYnVpbGRTdmcoc3Zncy5zaGlmdCgpIGFzIHN0cmluZykgYXMgU1ZHQUVsZW1lbnQ7XHJcbiAgICAgIC8vIHRoaXMuc2V0QW5pbWF0ZXMoc3Zncyk7XHJcbiAgICAgIHRoaXMuc2V0QXR0cmlidXRlcyh0aGlzLl9zdmdFbGVtZW50KTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5fc3ZnRWxlbWVudCk7XHJcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U291cmNlVXJsKHR5cGU/OiBzdHJpbmcpIHtcclxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiAnJztcclxuICAgIGNvbnN0IHNwbGl0ID0gdHlwZS5zcGxpdCgnLScpO1xyXG4gICAgY29uc3Qgc291Y2UgPSBzcGxpdC5zaGlmdCgpO1xyXG4gICAgaWYgKHR5cGVvZiBzb3VjZSA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiAnJztcclxuICAgIGNvbnN0IHNvdWNlVXJsID0gWFNvdWNlVXJsW3NvdWNlXTtcclxuICAgIGNvbnN0IGZpbGVOYW1lID0gc3BsaXQuam9pbignLScpO1xyXG4gICAgaWYgKCFzb3VjZVVybCB8fCAhZmlsZU5hbWUpIHtcclxuICAgICAgd2Fybkljb25UeXBlTm90Rm91bmQoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHtzb3VjZVVybH0ke2ZpbGVOYW1lfWA7XHJcbiAgfVxyXG5cclxuICBzZXRBdHRyaWJ1dGVzKHN2Z0VsZTogU1ZHRWxlbWVudCkge1xyXG4gICAgaWYgKHN2Z0VsZSkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdmdFbGUsICd3aWR0aCcsICcxZW0nKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3ZnRWxlLCAnaGVpZ2h0JywgJzFlbScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYnVpbGRTdmcoc3ZnU3RyOiBzdHJpbmcpOiBTVkdBRWxlbWVudCB8IHVuZGVmaW5lZCB7XHJcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAnc3ZnJykgYXMgU1ZHQUVsZW1lbnQ7XHJcbiAgICBjb25zdCBzdmcgPSB0aGlzLmNyZWF0ZVN2ZyhzdmdTdHIpO1xyXG4gICAgaWYgKCFzdmcpIHJldHVybjtcclxuICAgIHN2Zy5jaGlsZHJlbi5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIHgucmVtb3ZlQXR0cmlidXRlKCdjbGFzcycpO1xyXG4gICAgICBpZiAoeC50YWdOYW1lID09PSAncmVjdCcpIHtcclxuICAgICAgICB4LnNldEF0dHJpYnV0ZSgnZmlsbCcsICdub25lJyk7XHJcbiAgICAgIH1cclxuICAgICAgcmVzdWx0LmFwcGVuZENoaWxkKHgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICd2aWV3Qm94Jyk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICdmaWxsJywgJ2N1cnJlbnRDb2xvcicpO1xyXG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUocmVzdWx0LCBzdmcuZWxlLCAnc3Ryb2tlJyk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICdzdHJva2Utd2lkdGgnKTtcclxuICAgIHRoaXMuc2V0QXR0cmlidXRlKHJlc3VsdCwgc3ZnLmVsZSwgJ3N0cm9rZS1saW5lY2FwJyk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICdzdHJva2UtbGluZWpvaW4nKTtcclxuICAgIGlmICghcmVzdWx0KSB7XHJcbiAgICAgIHdhcm5TVkdUYWdOb3RGb3VuZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVTdmcoc3ZnU3RyOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGRpdiA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBkaXYuaW5uZXJIVE1MID0gc3ZnU3RyO1xyXG4gICAgbGV0IHN2Z0VsZSA9IGRpdi5xdWVyeVNlbGVjdG9yKCdzdmcnKSBhcyBTVkdFbGVtZW50O1xyXG4gICAgaWYgKCFzdmdFbGUpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZWxlOiBzdmdFbGUsXHJcbiAgICAgIGNoaWxkcmVuOiBzdmdFbGUucXVlcnlTZWxlY3RvckFsbCgncGF0aCwgcG9seWxpbmUsIHBvbHlnb24sIGNpcmNsZSwgbGluZSwgcmVjdCcpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0QXR0cmlidXRlKHN2ZzogU1ZHRWxlbWVudCwgc3ZnRWxlOiBTVkdFbGVtZW50LCBhdHRyaWJ1dGU6IHN0cmluZywgZGVmPzogc3RyaW5nKSB7XHJcbiAgICBsZXQgYXR0ciA9IHN2Z0VsZS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcclxuICAgIGlmIChhdHRyKSB7XHJcbiAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCBhdHRyKTtcclxuICAgIH0gZWxzZSBpZiAoZGVmKSB7XHJcbiAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCBkZWYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy88YW5pbWF0ZSBiZWdpbj1cIm1vdXNlZW50ZXJcIiBkdXI9XCI1MDBtc1wiIHJlcGVhdENvdW50PVwiMVwiIGF0dHJpYnV0ZU5hbWU9XCJkXCIgZnJvbT1cIk04Ni40MjUsMTMuMjA0bDUuNjQ4LDEyLjc0MUgwLjU1ICAgbDAuMTI1LTEyLjYxNkwwLjU1LDAuNTQ0aDkxLjUyM0w4Ni40MjUsMTMuMjA0elwiIHRvPVwiTTkyLjcyNSwxMy41MjFsMC4wNDQsMTIuODg3SDEuMjQ1ICAgbDctMTIuNjE2bC03LTEyLjc4NWg5MS41MjNMOTIuNzI1LDEzLjUyMXpcIiBmaWxsPVwiZnJlZXplXCI+PC9hbmltYXRlPlxyXG5cclxuICBzZXRBbmltYXRlcyhzdmdzOiBzdHJpbmdbXSkge1xyXG4gICAgaWYgKHN2Z3M/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IHN2ZyA9IHRoaXMuY3JlYXRlU3ZnKHN2Z3Muc2hpZnQoKSBhcyBzdHJpbmcpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3N2Z0VsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgY2hpbGQgPSB0aGlzLl9zdmdFbGVtZW50LmNoaWxkcmVuW2ldO1xyXG4gICAgICAgIGxldCB0b0NoaWxkID0gc3ZnPy5jaGlsZHJlbltpXTtcclxuICAgICAgICBpZiAoY2hpbGQ/Lm5vZGVOYW1lID09PSAncGF0aCcgJiYgdG9DaGlsZD8ubm9kZU5hbWUgPT09ICdwYXRoJykge1xyXG4gICAgICAgICAgbGV0IHRvQW5pbWF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2FuaW1hdGUnKTtcclxuICAgICAgICAgIHRvQW5pbWF0ZS5zZXRBdHRyaWJ1dGUoJ2R1cicsICc1MDBtcycpO1xyXG4gICAgICAgICAgdG9BbmltYXRlLnNldEF0dHJpYnV0ZSgncmVwZWF0Q291bnQnLCAnMScpO1xyXG4gICAgICAgICAgdG9BbmltYXRlLnNldEF0dHJpYnV0ZSgnYXR0cmlidXRlTmFtZScsICdkJyk7XHJcbiAgICAgICAgICB0b0FuaW1hdGUuc2V0QXR0cmlidXRlKCdmaWxsJywgJ2ZyZWV6ZScpO1xyXG4gICAgICAgICAgdG9BbmltYXRlLnNldEF0dHJpYnV0ZSgnZnJvbScsIGNoaWxkLmdldEF0dHJpYnV0ZSgnZCcpIGFzIHN0cmluZyk7XHJcbiAgICAgICAgICB0b0FuaW1hdGUuc2V0QXR0cmlidXRlKCd0bycsIHRvQ2hpbGQuZ2V0QXR0cmlidXRlKCdkJykgYXMgc3RyaW5nKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoY2hpbGQsIHRvQW5pbWF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIlxyXG4iXX0=
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9pY29uL2ljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvaWNvbi9pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQU12QixXQUFXLEVBQ1gsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFrQixNQUFNLGtCQUFrQixDQUFDOzs7O0FBRWpILFNBQVM7QUFDVCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQW1DO0lBQ3ZELEdBQUcsRUFBRSxrQkFBa0I7SUFDdkIsR0FBRyxFQUFFLHFCQUFxQjtJQUMxQixHQUFHLEVBQUUscUJBQXFCO0lBQzFCLEdBQUcsRUFBRSxXQUFXO0lBQ2hCLEdBQUcsRUFBRSxjQUFjO0lBQ25CLEdBQUcsRUFBRSxVQUFVO0lBQ2YsR0FBRyxFQUFFLHNCQUFzQjtJQUMzQixHQUFHLEVBQUUsdUJBQXVCO0lBQzVCLEdBQUcsRUFBRSxxQkFBcUI7SUFDMUIsR0FBRyxFQUFFLHVCQUF1QjtJQUM1QixHQUFHLEVBQUUsMEJBQTBCO0NBQ2hDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUc7QUFDdEIsNkRBQTZEO0FBQzdELGtEQUFrRDtBQUNsRCwwQ0FBMEM7Q0FDM0MsQ0FBQztBQVNGLE1BQU0sT0FBTyxjQUFlLFNBQVEsYUFBYTtJQVMvQyxZQUNTLFVBQW1DLEVBQ2xDLFFBQW1CLEVBQ3BCLFdBQXlCLEVBQ3hCLEdBQXNCLEVBQ3ZCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTkQsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUN4QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFaOUIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBY2xDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFjLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQWRELElBQXNDLE9BQU87UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFjRCxRQUFRLEtBQUksQ0FBQztJQUViLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUMvQixJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzdFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUMxQjtRQUNELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQ3pCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQztRQUN4RCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUM7UUFDdEQsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNoRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksS0FBSyxFQUFFO1lBQzFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQyxJQUFJLEtBQUssR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUFFLE9BQU87UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyQixLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztTQUM1QjtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFjO1FBQ3BCLElBQUksSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1lBQzFELElBQUksVUFBVSxFQUFFO2dCQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQ3RFO1lBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQVksQ0FBa0IsQ0FBQztZQUMxRSwwQkFBMEI7WUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQWE7UUFDeEIsSUFBSSxPQUFPLElBQUksS0FBSyxXQUFXO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDM0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDNUMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMxQixvQkFBb0IsRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxHQUFHLFFBQVEsR0FBRyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWtCO1FBQzlCLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFjO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLDRCQUE0QixFQUFFLEtBQUssQ0FBa0IsQ0FBQztRQUNuRyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTztRQUNqQixHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3pCLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLE1BQU0sRUFBRTtnQkFDeEIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDaEM7WUFDRCxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsa0JBQWtCLEVBQUUsQ0FBQztTQUN0QjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYztRQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxHQUFHLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBZSxDQUFDO1FBQ3BELElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDekIsT0FBTztZQUNMLEdBQUcsRUFBRSxNQUFNO1lBQ1gsUUFBUSxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyw2Q0FBNkMsQ0FBQztTQUNqRixDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFlLEVBQUUsTUFBa0IsRUFBRSxTQUFpQixFQUFFLEdBQVk7UUFDL0UsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxJQUFJLElBQUksRUFBRTtZQUNSLEdBQUcsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ25DO2FBQU0sSUFBSSxHQUFHLEVBQUU7WUFDZCxHQUFHLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxnUkFBZ1I7SUFFaFIsV0FBVyxDQUFDLElBQWM7UUFDeEIsSUFBSSxJQUFJLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQVksQ0FBQyxDQUFDO1lBQ2pELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3pELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLE9BQU8sR0FBRyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLEtBQUssRUFBRSxRQUFRLEtBQUssTUFBTSxJQUFJLE9BQU8sRUFBRSxRQUFRLEtBQUssTUFBTSxFQUFFO29CQUM5RCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDdkQsU0FBUyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ3ZDLFNBQVMsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUMzQyxTQUFTLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDN0MsU0FBUyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBQ3pDLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFXLENBQUMsQ0FBQztvQkFDbEUsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQVcsQ0FBQyxDQUFDO29CQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7aUJBQzdDO2FBQ0Y7U0FDRjtJQUNILENBQUM7OzhIQTdKVSxjQUFjO2tIQUFkLGNBQWMseUpDOUMzQixNQUNBOzJGRDZDYSxjQUFjO2tCQVAxQixTQUFTOytCQUNFLEdBQUcsV0FBVyxFQUFFLGlCQUdYLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07aU5BT1QsT0FBTztzQkFBNUMsV0FBVzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgaW5qZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWEljb25QcmVmaXgsIFhJY29uUHJvcGVydHkgfSBmcm9tICcuL2ljb24ucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSWNvblNlcnZpY2UgfSBmcm9tICcuL2ljb24uc2VydmljZSc7XHJcbmltcG9ydCB7IHdhcm5JY29uVHlwZU5vdEZvdW5kLCB3YXJuU1ZHVGFnTm90Rm91bmQsIFhJc0NoYW5nZSwgWElzRW1wdHksIFhDb25maWdTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcblxyXG4vLyDmnaXmupDot6/lvoTlr7nlupRcclxuZXhwb3J0IGNvbnN0IFhTb3VjZVVybDogeyBbcHJvcGVydHk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xyXG4gIGFkZjogYGFudC1kZXNpZ24vZmlsbC9gLFxyXG4gIGFkbzogYGFudC1kZXNpZ24vb3V0bGluZS9gLFxyXG4gIGFkdDogYGFudC1kZXNpZ24vdHdvdG9uZS9gLFxyXG4gIGVhZjogYGV2YS9maWxsL2AsXHJcbiAgZWFvOiBgZXZhL291dGxpbmUvYCxcclxuICBmdG86IGBmZWF0aGVyL2AsXHJcbiAgZmFiOiBgZm9udC1hd2Vzb21lL2JyYW5kcy9gLFxyXG4gIGZhcjogYGZvbnQtYXdlc29tZS9yZWd1bGFyL2AsXHJcbiAgZmFzOiBgZm9udC1hd2Vzb21lL3NvbGlkL2AsXHJcbiAgbWRmOiBgbWF0ZXJpYWwtZGVzaWduL2ZpbGwvYCxcclxuICBtZG86IGBtYXRlcmlhbC1kZXNpZ24vb3V0bGluZS9gXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgWFZpZXdCb3ggPSBbXHJcbiAgLy8geyBzb3VjZXM6IFtcImFkZlwiLCBcImFkb1wiLCBcImFkdFwiXSwgdmFsdWU6IFwiMCAwIDEwMjQgMTAyNFwiIH0sXHJcbiAgLy8geyBzb3VjZXM6IFtcImVhZlwiLCBcImVhb1wiXSwgdmFsdWU6IFwiMCAwIDI0IDI0XCIgfSxcclxuICAvLyB7IHNvdWNlczogW1wiZnRvXCJdLCB2YWx1ZTogXCIwIDAgMjQgMjRcIiB9XHJcbl07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WEljb25QcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3R5bGUvaW5kZXguc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhJY29uQ29tcG9uZW50IGV4dGVuZHMgWEljb25Qcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBwcml2YXRlIF9zdmdFbGVtZW50ITogU1ZHRWxlbWVudDtcclxuICBwcml2YXRlIF9sb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy54LWljb24tc3BpbicpIGdldCBnZXRTcGluKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3BpbjtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGljb25TZXJ2aWNlOiBYSWNvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmljb25TZXJ2aWNlLnJvb3RVcmwgPSB0aGlzLmhyZWYgYXMgc3RyaW5nO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgWEljb25QcmVmaXgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHR5cGUsIHNwaW4gfSA9IGNoYW5nZXM7XHJcbiAgICBpZiAoWElzQ2hhbmdlKHR5cGUpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3ZnRWxlbWVudCgpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0eXBlLnByZXZpb3VzVmFsdWUpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBgJHt0aGlzLnR5cGV9YCk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIGlmIChYSXNDaGFuZ2Uoc3BpbikpIHtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U3ZnKCkge1xyXG4gICAgaWYgKHRoaXMuX2xvYWRlZCkgcmV0dXJuO1xyXG4gICAgbGV0IGhlaWdodCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgIGxldCB3aWR0aCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgbGV0IGJveCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYgKGJveC50b3AgPD0gaGVpZ2h0ICYmIGJveC5sZWZ0IDw9IHdpZHRoKSB7XHJcbiAgICAgIHRoaXMuc2V0U3ZnRWxlbWVudCgpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBgJHt0aGlzLnR5cGV9YCk7XHJcbiAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTdmdFbGVtZW50KCkge1xyXG4gICAgY29uc3QgdHlwZUljb24gPSB0aGlzLnNldFNvdXJjZVVybCh0aGlzLnR5cGUpO1xyXG4gICAgY29uc3QgdG9JY29uID0gdGhpcy5zZXRTb3VyY2VVcmwodGhpcy50byk7XHJcbiAgICBsZXQgaWNvbnMgPSBbdHlwZUljb25dO1xyXG4gICAgaWYgKFhJc0VtcHR5KHR5cGVJY29uKSkgcmV0dXJuO1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0b0ljb24pKSB7XHJcbiAgICAgIGljb25zID0gWy4uLmljb25zLCB0b0ljb25dO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pY29uU2VydmljZS5nZXRTdmdzKC4uLmljb25zKS5zdWJzY3JpYmUoKHgpID0+IHRoaXMuc2V0U3Zncyh4KSk7XHJcbiAgfVxyXG5cclxuICBzZXRTdmdzKHN2Z3M6IHN0cmluZ1tdKSB7XHJcbiAgICBpZiAoc3Zncz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZmlyc3RDaGlsZCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZpcnN0Q2hpbGQ7XHJcbiAgICAgIGlmIChmaXJzdENoaWxkKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgZmlyc3RDaGlsZCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fc3ZnRWxlbWVudCA9IHRoaXMuYnVpbGRTdmcoc3Zncy5zaGlmdCgpIGFzIHN0cmluZykgYXMgU1ZHU1ZHRWxlbWVudDtcclxuICAgICAgLy8gdGhpcy5zZXRBbmltYXRlcyhzdmdzKTtcclxuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGVzKHRoaXMuX3N2Z0VsZW1lbnQpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLl9zdmdFbGVtZW50KTtcclxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTb3VyY2VVcmwodHlwZT86IHN0cmluZykge1xyXG4gICAgaWYgKHR5cGVvZiB0eXBlID09PSAndW5kZWZpbmVkJykgcmV0dXJuICcnO1xyXG4gICAgY29uc3Qgc3BsaXQgPSB0eXBlLnNwbGl0KCctJyk7XHJcbiAgICBjb25zdCBzb3VjZSA9IHNwbGl0LnNoaWZ0KCk7XHJcbiAgICBpZiAodHlwZW9mIHNvdWNlID09PSAndW5kZWZpbmVkJykgcmV0dXJuICcnO1xyXG4gICAgY29uc3Qgc291Y2VVcmwgPSBYU291Y2VVcmxbc291Y2VdO1xyXG4gICAgY29uc3QgZmlsZU5hbWUgPSBzcGxpdC5qb2luKCctJyk7XHJcbiAgICBpZiAoIXNvdWNlVXJsIHx8ICFmaWxlTmFtZSkge1xyXG4gICAgICB3YXJuSWNvblR5cGVOb3RGb3VuZCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3NvdWNlVXJsfSR7ZmlsZU5hbWV9YDtcclxuICB9XHJcblxyXG4gIHNldEF0dHJpYnV0ZXMoc3ZnRWxlOiBTVkdFbGVtZW50KSB7XHJcbiAgICBpZiAoc3ZnRWxlKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2Z0VsZSwgJ3dpZHRoJywgJzFlbScpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdmdFbGUsICdoZWlnaHQnLCAnMWVtJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBidWlsZFN2ZyhzdmdTdHI6IHN0cmluZyk6IFNWR1NWR0VsZW1lbnQgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgJ3N2ZycpIGFzIFNWR1NWR0VsZW1lbnQ7XHJcbiAgICBjb25zdCBzdmcgPSB0aGlzLmNyZWF0ZVN2ZyhzdmdTdHIpO1xyXG4gICAgaWYgKCFzdmcpIHJldHVybjtcclxuICAgIHN2Zy5jaGlsZHJlbi5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIHgucmVtb3ZlQXR0cmlidXRlKCdjbGFzcycpO1xyXG4gICAgICBpZiAoeC50YWdOYW1lID09PSAncmVjdCcpIHtcclxuICAgICAgICB4LnNldEF0dHJpYnV0ZSgnZmlsbCcsICdub25lJyk7XHJcbiAgICAgIH1cclxuICAgICAgcmVzdWx0LmFwcGVuZENoaWxkKHgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICd2aWV3Qm94Jyk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICdmaWxsJywgJ2N1cnJlbnRDb2xvcicpO1xyXG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUocmVzdWx0LCBzdmcuZWxlLCAnc3Ryb2tlJyk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICdzdHJva2Utd2lkdGgnKTtcclxuICAgIHRoaXMuc2V0QXR0cmlidXRlKHJlc3VsdCwgc3ZnLmVsZSwgJ3N0cm9rZS1saW5lY2FwJyk7XHJcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShyZXN1bHQsIHN2Zy5lbGUsICdzdHJva2UtbGluZWpvaW4nKTtcclxuICAgIGlmICghcmVzdWx0KSB7XHJcbiAgICAgIHdhcm5TVkdUYWdOb3RGb3VuZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVTdmcoc3ZnU3RyOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGRpdiA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBkaXYuaW5uZXJIVE1MID0gc3ZnU3RyO1xyXG4gICAgbGV0IHN2Z0VsZSA9IGRpdi5xdWVyeVNlbGVjdG9yKCdzdmcnKSBhcyBTVkdFbGVtZW50O1xyXG4gICAgaWYgKCFzdmdFbGUpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZWxlOiBzdmdFbGUsXHJcbiAgICAgIGNoaWxkcmVuOiBzdmdFbGUucXVlcnlTZWxlY3RvckFsbCgncGF0aCwgcG9seWxpbmUsIHBvbHlnb24sIGNpcmNsZSwgbGluZSwgcmVjdCcpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0QXR0cmlidXRlKHN2ZzogU1ZHRWxlbWVudCwgc3ZnRWxlOiBTVkdFbGVtZW50LCBhdHRyaWJ1dGU6IHN0cmluZywgZGVmPzogc3RyaW5nKSB7XHJcbiAgICBsZXQgYXR0ciA9IHN2Z0VsZS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcclxuICAgIGlmIChhdHRyKSB7XHJcbiAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCBhdHRyKTtcclxuICAgIH0gZWxzZSBpZiAoZGVmKSB7XHJcbiAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCBkZWYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy88YW5pbWF0ZSBiZWdpbj1cIm1vdXNlZW50ZXJcIiBkdXI9XCI1MDBtc1wiIHJlcGVhdENvdW50PVwiMVwiIGF0dHJpYnV0ZU5hbWU9XCJkXCIgZnJvbT1cIk04Ni40MjUsMTMuMjA0bDUuNjQ4LDEyLjc0MUgwLjU1ICAgbDAuMTI1LTEyLjYxNkwwLjU1LDAuNTQ0aDkxLjUyM0w4Ni40MjUsMTMuMjA0elwiIHRvPVwiTTkyLjcyNSwxMy41MjFsMC4wNDQsMTIuODg3SDEuMjQ1ICAgbDctMTIuNjE2bC03LTEyLjc4NWg5MS41MjNMOTIuNzI1LDEzLjUyMXpcIiBmaWxsPVwiZnJlZXplXCI+PC9hbmltYXRlPlxyXG5cclxuICBzZXRBbmltYXRlcyhzdmdzOiBzdHJpbmdbXSkge1xyXG4gICAgaWYgKHN2Z3M/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IHN2ZyA9IHRoaXMuY3JlYXRlU3ZnKHN2Z3Muc2hpZnQoKSBhcyBzdHJpbmcpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3N2Z0VsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgY2hpbGQgPSB0aGlzLl9zdmdFbGVtZW50LmNoaWxkcmVuW2ldO1xyXG4gICAgICAgIGxldCB0b0NoaWxkID0gc3ZnPy5jaGlsZHJlbltpXTtcclxuICAgICAgICBpZiAoY2hpbGQ/Lm5vZGVOYW1lID09PSAncGF0aCcgJiYgdG9DaGlsZD8ubm9kZU5hbWUgPT09ICdwYXRoJykge1xyXG4gICAgICAgICAgbGV0IHRvQW5pbWF0ZSA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYW5pbWF0ZScpO1xyXG4gICAgICAgICAgdG9BbmltYXRlLnNldEF0dHJpYnV0ZSgnZHVyJywgJzUwMG1zJyk7XHJcbiAgICAgICAgICB0b0FuaW1hdGUuc2V0QXR0cmlidXRlKCdyZXBlYXRDb3VudCcsICcxJyk7XHJcbiAgICAgICAgICB0b0FuaW1hdGUuc2V0QXR0cmlidXRlKCdhdHRyaWJ1dGVOYW1lJywgJ2QnKTtcclxuICAgICAgICAgIHRvQW5pbWF0ZS5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCAnZnJlZXplJyk7XHJcbiAgICAgICAgICB0b0FuaW1hdGUuc2V0QXR0cmlidXRlKCdmcm9tJywgY2hpbGQuZ2V0QXR0cmlidXRlKCdkJykgYXMgc3RyaW5nKTtcclxuICAgICAgICAgIHRvQW5pbWF0ZS5zZXRBdHRyaWJ1dGUoJ3RvJywgdG9DaGlsZC5nZXRBdHRyaWJ1dGUoJ2QnKSBhcyBzdHJpbmcpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChjaGlsZCwgdG9BbmltYXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiXHJcbiJdfQ==
@@ -6,10 +6,10 @@ import { XIconProperty } from './icon.property';
6
6
  import * as i0 from "@angular/core";
7
7
  export class XIconModule {
8
8
  }
9
- /** @nocollapse */ XIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- /** @nocollapse */ XIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: XIconModule, declarations: [XIconComponent, XIconProperty], imports: [CommonModule], exports: [XIconComponent] });
11
- /** @nocollapse */ XIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XIconModule, providers: [XIconService], imports: [CommonModule] });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XIconModule, decorators: [{
9
+ /** @nocollapse */ XIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ /** @nocollapse */ XIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: XIconModule, declarations: [XIconComponent, XIconProperty], imports: [CommonModule], exports: [XIconComponent] });
11
+ /** @nocollapse */ XIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconModule, providers: [XIconService], imports: [CommonModule] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  declarations: [XIconComponent, XIconProperty],
@@ -15,8 +15,8 @@ export const XIconHref = 'https://ngnest.com/static/icons/';
15
15
  */
16
16
  export class XIconProperty extends XProperty {
17
17
  }
18
- /** @nocollapse */ XIconProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XIconProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
19
- /** @nocollapse */ XIconProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XIconProperty, selector: "ng-component", inputs: { href: "href", type: "type", color: "color", rotate: "rotate", spin: "spin", to: "to" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
18
+ /** @nocollapse */ XIconProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
19
+ /** @nocollapse */ XIconProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XIconProperty, selector: "ng-component", inputs: { href: "href", type: "type", color: "color", rotate: "rotate", spin: "spin", to: "to" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
20
20
  __decorate([
21
21
  XWithConfig(X_CONFIG_NAME, XIconHref)
22
22
  ], XIconProperty.prototype, "href", void 0);
@@ -26,7 +26,7 @@ __decorate([
26
26
  __decorate([
27
27
  XInputBoolean()
28
28
  ], XIconProperty.prototype, "spin", void 0);
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XIconProperty, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconProperty, decorators: [{
30
30
  type: Component,
31
31
  args: [{ template: '' }]
32
32
  }], propDecorators: { href: [{
@@ -77,9 +77,9 @@ export class XIconService {
77
77
  return this.http.get(safeUrl, { responseType: 'text' });
78
78
  }
79
79
  }
80
- /** @nocollapse */ XIconService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XIconService, deps: [{ token: i1.DomSanitizer }, { token: i2.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
81
- /** @nocollapse */ XIconService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XIconService });
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XIconService, decorators: [{
80
+ /** @nocollapse */ XIconService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconService, deps: [{ token: i1.DomSanitizer }, { token: i2.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
81
+ /** @nocollapse */ XIconService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconService });
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XIconService, decorators: [{
83
83
  type: Injectable
84
84
  }], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i2.HttpClient, decorators: [{
85
85
  type: Optional
@@ -12,9 +12,9 @@ export class XImageGroupComponent {
12
12
  this.images.splice(this.images.indexOf(image), 1);
13
13
  }
14
14
  }
15
- /** @nocollapse */ XImageGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XImageGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- /** @nocollapse */ XImageGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XImageGroupComponent, selector: "x-image-group", ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: ["x-image-group{display:inline-flex;flex-wrap:wrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XImageGroupComponent, decorators: [{
15
+ /** @nocollapse */ XImageGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ /** @nocollapse */ XImageGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XImageGroupComponent, selector: "x-image-group", ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: ["x-image-group{display:inline-flex;flex-wrap:wrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageGroupComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: `${XImageGroupPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\r\n", styles: ["x-image-group{display:inline-flex;flex-wrap:wrap}\n"] }]
20
20
  }] });
@@ -1,6 +1,7 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewChild } from '@angular/core';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewChild, inject } from '@angular/core';
2
2
  import { XImagePreviewPrefix, XImagePreviewProperty } from './image.property';
3
3
  import { X_DIALOG_DATA } from '@ng-nest/ui/dialog';
4
+ import { DOCUMENT } from '@angular/common';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@ng-nest/ui/core";
6
7
  import * as i2 from "@angular/common";
@@ -27,6 +28,7 @@ export class XImagePreviewComponent extends XImagePreviewProperty {
27
28
  };
28
29
  this.total = 1;
29
30
  this.current = 1;
31
+ this.document = inject(DOCUMENT);
30
32
  }
31
33
  get getWrapperTransform() {
32
34
  return `translate3d(${this.position.x}px, ${this.position.y}px, 0)`;
@@ -83,13 +85,15 @@ export class XImagePreviewComponent extends XImagePreviewProperty {
83
85
  onDragReleased() {
84
86
  let width = this.imageRef.nativeElement.offsetWidth * this.imgScale3d.x;
85
87
  let height = this.imageRef.nativeElement.offsetHeight * this.imgScale3d.x;
86
- const clientWidth = document.documentElement.clientWidth;
87
- const clientHeight = window.innerHeight || document.documentElement.clientHeight;
88
+ const clientWidth = this.document.documentElement.clientWidth;
89
+ const clientHeight = this.document.defaultView?.innerHeight || this.document.documentElement.clientHeight;
88
90
  const isRotate = this.rotate % 180 !== 0;
89
91
  const box = this.imageRef.nativeElement.getBoundingClientRect();
90
- const docElem = document.documentElement;
91
- const left = box.left + (window.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || document.body.clientLeft || 0);
92
- const top = box.top + (window.pageYOffset || docElem.scrollTop) - (docElem.clientTop || document.body.clientTop || 0);
92
+ const docElem = this.document.documentElement;
93
+ const left = box.left +
94
+ (this.document.defaultView?.pageXOffset || docElem.scrollLeft) -
95
+ (docElem.clientLeft || this.document.body.clientLeft || 0);
96
+ const top = box.top + (this.document.defaultView?.pageYOffset || docElem.scrollTop) - (docElem.clientTop || this.document.body.clientTop || 0);
93
97
  width = isRotate ? height : width;
94
98
  height = isRotate ? width : height;
95
99
  let position = { x: 0, y: 0 };
@@ -121,9 +125,9 @@ export class XImagePreviewComponent extends XImagePreviewProperty {
121
125
  return distance;
122
126
  }
123
127
  }
124
- /** @nocollapse */ XImagePreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XImagePreviewComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }, { token: X_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
125
- /** @nocollapse */ XImagePreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XImagePreviewComponent, selector: "x-image-preview", viewQueries: [{ propertyName: "imageRef", first: true, predicate: ["imageRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-image-preview\" [ngClass]=\"classMap\">\r\n <div class=\"x-image-preview-header\">\r\n <div class=\"x-image-preview-header-left\">\r\n <span class=\"x-image-preview-current\" *ngIf=\"total != 1\">{{ current }} / {{ total }}</span>\r\n </div>\r\n <div class=\"x-image-preview-header-center\">\r\n <x-icon type=\"fto-corner-up-left\" (click)=\"onRotate(-90)\"></x-icon>\r\n <x-icon type=\"fto-corner-up-right\" (click)=\"onRotate(90)\"></x-icon>\r\n <x-icon type=\"fto-zoom-out\" [class.x-image-preview-disabled]=\"imgScale3d.x === 1\" (click)=\"imgScale3d.x > 1 && onScale(-1)\"></x-icon>\r\n <x-icon type=\"fto-zoom-in\" (click)=\"onScale(1)\"></x-icon>\r\n </div>\r\n <div class=\"x-image-preview-header-right\">\r\n <x-icon type=\"fto-x\" x-dialog-close></x-icon>\r\n </div>\r\n </div>\r\n <div\r\n class=\"x-image-preview-wrapper\"\r\n cdkDrag\r\n [style.transform]=\"getWrapperTransform\"\r\n [cdkDragFreeDragPosition]=\"position\"\r\n (cdkDragReleased)=\"onDragReleased()\"\r\n >\r\n <img #imageRef [src]=\"activated?.src\" [attr.alt]=\"activated?.alt\" cdkDragHandle [style.transform]=\"getImgTransform\" />\r\n </div>\r\n <div\r\n *ngIf=\"data && data.length > 1\"\r\n [class.x-image-preview-disabled]=\"current === 1\"\r\n class=\"x-image-preview-left\"\r\n (click)=\"current > 1 && onCurrentChange(-1)\"\r\n >\r\n <x-icon type=\"fto-chevron-left\"></x-icon>\r\n </div>\r\n <div\r\n *ngIf=\"data && data.length > 1\"\r\n [class.x-image-preview-disabled]=\"current === total\"\r\n class=\"x-image-preview-right\"\r\n (click)=\"current != total && onCurrentChange(1)\"\r\n >\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </div>\r\n</div>\r\n", styles: ["x-image-preview{display:block;width:100%;height:100%}.x-image-preview{margin:0;padding:0;width:100%;height:100%}.x-image-preview-header{display:flex;align-items:center;justify-content:center;background-color:#0003;color:#fff;position:absolute;width:100%;z-index:1;height:2.75rem}.x-image-preview-header x-icon{font-size:1.25rem;padding:.75rem;cursor:pointer;transition:background-color var(--x-animation-duration-base)}.x-image-preview-header x-icon:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-header x-icon.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-header-center{position:absolute}.x-image-preview-header-right{position:absolute;right:0}.x-image-preview-header-left{position:absolute;left:0}.x-image-preview-current{padding:.75rem}.x-image-preview-wrapper{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-wrapper>img{max-width:100%;max-height:100%;vertical-align:middle;cursor:grab;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-left,.x-image-preview-right{position:absolute;top:50%;z-index:1;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-top:-1.375rem;color:#fff;background-color:#0003;border-radius:50%;transition:background-color var(--x-animation-duration-base);cursor:pointer;font-size:1.25rem}.x-image-preview-left:hover:not(.x-image-preview-disabled),.x-image-preview-right:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-left.x-image-preview-disabled,.x-image-preview-right.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-left{left:1rem}.x-image-preview-right{right:1rem}.x-image-preview-portal .x-dialog-portal{background:transparent;box-shadow:none;padding:0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i4.XDialogCloseDirective, selector: "[x-dialog-close]" }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XImagePreviewComponent, decorators: [{
128
+ /** @nocollapse */ XImagePreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImagePreviewComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }, { token: X_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
129
+ /** @nocollapse */ XImagePreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XImagePreviewComponent, selector: "x-image-preview", viewQueries: [{ propertyName: "imageRef", first: true, predicate: ["imageRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-image-preview\" [ngClass]=\"classMap\">\r\n <div class=\"x-image-preview-header\">\r\n <div class=\"x-image-preview-header-left\">\r\n <span class=\"x-image-preview-current\" *ngIf=\"total != 1\">{{ current }} / {{ total }}</span>\r\n </div>\r\n <div class=\"x-image-preview-header-center\">\r\n <x-icon type=\"fto-corner-up-left\" (click)=\"onRotate(-90)\"></x-icon>\r\n <x-icon type=\"fto-corner-up-right\" (click)=\"onRotate(90)\"></x-icon>\r\n <x-icon type=\"fto-zoom-out\" [class.x-image-preview-disabled]=\"imgScale3d.x === 1\" (click)=\"imgScale3d.x > 1 && onScale(-1)\"></x-icon>\r\n <x-icon type=\"fto-zoom-in\" (click)=\"onScale(1)\"></x-icon>\r\n </div>\r\n <div class=\"x-image-preview-header-right\">\r\n <x-icon type=\"fto-x\" x-dialog-close></x-icon>\r\n </div>\r\n </div>\r\n <div\r\n class=\"x-image-preview-wrapper\"\r\n cdkDrag\r\n [style.transform]=\"getWrapperTransform\"\r\n [cdkDragFreeDragPosition]=\"position\"\r\n (cdkDragReleased)=\"onDragReleased()\"\r\n >\r\n <img #imageRef [src]=\"activated?.src\" [attr.alt]=\"activated?.alt\" cdkDragHandle [style.transform]=\"getImgTransform\" />\r\n </div>\r\n <div\r\n *ngIf=\"data && data.length > 1\"\r\n [class.x-image-preview-disabled]=\"current === 1\"\r\n class=\"x-image-preview-left\"\r\n (click)=\"current > 1 && onCurrentChange(-1)\"\r\n >\r\n <x-icon type=\"fto-chevron-left\"></x-icon>\r\n </div>\r\n <div\r\n *ngIf=\"data && data.length > 1\"\r\n [class.x-image-preview-disabled]=\"current === total\"\r\n class=\"x-image-preview-right\"\r\n (click)=\"current != total && onCurrentChange(1)\"\r\n >\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </div>\r\n</div>\r\n", styles: ["x-image-preview{display:block;width:100%;height:100%}.x-image-preview{margin:0;padding:0;width:100%;height:100%}.x-image-preview-header{display:flex;align-items:center;justify-content:center;background-color:#0003;color:#fff;position:absolute;width:100%;z-index:1;height:2.75rem}.x-image-preview-header x-icon{font-size:1.25rem;padding:.75rem;cursor:pointer;transition:background-color var(--x-animation-duration-base)}.x-image-preview-header x-icon:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-header x-icon.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-header-center{position:absolute}.x-image-preview-header-right{position:absolute;right:0}.x-image-preview-header-left{position:absolute;left:0}.x-image-preview-current{padding:.75rem}.x-image-preview-wrapper{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-wrapper>img{max-width:100%;max-height:100%;vertical-align:middle;cursor:grab;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-left,.x-image-preview-right{position:absolute;top:50%;z-index:1;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-top:-1.375rem;color:#fff;background-color:#0003;border-radius:50%;transition:background-color var(--x-animation-duration-base);cursor:pointer;font-size:1.25rem}.x-image-preview-left:hover:not(.x-image-preview-disabled),.x-image-preview-right:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-left.x-image-preview-disabled,.x-image-preview-right.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-left{left:1rem}.x-image-preview-right{right:1rem}.x-image-preview-portal .x-dialog-portal{background:transparent;box-shadow:none;padding:0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i4.XDialogCloseDirective, selector: "[x-dialog-close]" }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImagePreviewComponent, decorators: [{
127
131
  type: Component,
128
132
  args: [{ selector: `${XImagePreviewPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-image-preview\" [ngClass]=\"classMap\">\r\n <div class=\"x-image-preview-header\">\r\n <div class=\"x-image-preview-header-left\">\r\n <span class=\"x-image-preview-current\" *ngIf=\"total != 1\">{{ current }} / {{ total }}</span>\r\n </div>\r\n <div class=\"x-image-preview-header-center\">\r\n <x-icon type=\"fto-corner-up-left\" (click)=\"onRotate(-90)\"></x-icon>\r\n <x-icon type=\"fto-corner-up-right\" (click)=\"onRotate(90)\"></x-icon>\r\n <x-icon type=\"fto-zoom-out\" [class.x-image-preview-disabled]=\"imgScale3d.x === 1\" (click)=\"imgScale3d.x > 1 && onScale(-1)\"></x-icon>\r\n <x-icon type=\"fto-zoom-in\" (click)=\"onScale(1)\"></x-icon>\r\n </div>\r\n <div class=\"x-image-preview-header-right\">\r\n <x-icon type=\"fto-x\" x-dialog-close></x-icon>\r\n </div>\r\n </div>\r\n <div\r\n class=\"x-image-preview-wrapper\"\r\n cdkDrag\r\n [style.transform]=\"getWrapperTransform\"\r\n [cdkDragFreeDragPosition]=\"position\"\r\n (cdkDragReleased)=\"onDragReleased()\"\r\n >\r\n <img #imageRef [src]=\"activated?.src\" [attr.alt]=\"activated?.alt\" cdkDragHandle [style.transform]=\"getImgTransform\" />\r\n </div>\r\n <div\r\n *ngIf=\"data && data.length > 1\"\r\n [class.x-image-preview-disabled]=\"current === 1\"\r\n class=\"x-image-preview-left\"\r\n (click)=\"current > 1 && onCurrentChange(-1)\"\r\n >\r\n <x-icon type=\"fto-chevron-left\"></x-icon>\r\n </div>\r\n <div\r\n *ngIf=\"data && data.length > 1\"\r\n [class.x-image-preview-disabled]=\"current === total\"\r\n class=\"x-image-preview-right\"\r\n (click)=\"current != total && onCurrentChange(1)\"\r\n >\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </div>\r\n</div>\r\n", styles: ["x-image-preview{display:block;width:100%;height:100%}.x-image-preview{margin:0;padding:0;width:100%;height:100%}.x-image-preview-header{display:flex;align-items:center;justify-content:center;background-color:#0003;color:#fff;position:absolute;width:100%;z-index:1;height:2.75rem}.x-image-preview-header x-icon{font-size:1.25rem;padding:.75rem;cursor:pointer;transition:background-color var(--x-animation-duration-base)}.x-image-preview-header x-icon:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-header x-icon.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-header-center{position:absolute}.x-image-preview-header-right{position:absolute;right:0}.x-image-preview-header-left{position:absolute;left:0}.x-image-preview-current{padding:.75rem}.x-image-preview-wrapper{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-wrapper>img{max-width:100%;max-height:100%;vertical-align:middle;cursor:grab;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-left,.x-image-preview-right{position:absolute;top:50%;z-index:1;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-top:-1.375rem;color:#fff;background-color:#0003;border-radius:50%;transition:background-color var(--x-animation-duration-base);cursor:pointer;font-size:1.25rem}.x-image-preview-left:hover:not(.x-image-preview-disabled),.x-image-preview-right:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-left.x-image-preview-disabled,.x-image-preview-right.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-left{left:1rem}.x-image-preview-right{right:1rem}.x-image-preview-portal .x-dialog-portal{background:transparent;box-shadow:none;padding:0}\n"] }]
129
133
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }, { type: undefined, decorators: [{
@@ -133,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
133
137
  type: ViewChild,
134
138
  args: ['imageRef']
135
139
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtcHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9pbWFnZS9pbWFnZS1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2ltYWdlL2ltYWdlLXByZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBRXZCLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFMUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7O0FBU25ELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxxQkFBcUI7SUEwQi9ELFlBQ1MsUUFBbUIsRUFDbkIsVUFBbUMsRUFDbkMsR0FBc0IsRUFDdEIsYUFBNkIsRUFDTixJQUFrQjtRQUVoRCxLQUFLLEVBQUUsQ0FBQztRQU5ELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBQ04sU0FBSSxHQUFKLElBQUksQ0FBYztRQTlCbEQsZUFBVSxHQUFHO1lBQ1gsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1NBQ0wsQ0FBQztRQUNGLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFFWCxhQUFRLEdBQUc7WUFDVCxDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1NBQ0wsQ0FBQztRQUdGLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixZQUFPLEdBQUcsQ0FBQyxDQUFDO0lBbUJaLENBQUM7SUFqQkQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxlQUFlLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDdEUsQ0FBQztJQUNELElBQUksZUFBZTtRQUNqQixPQUFPLFdBQVcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLE1BQU0sTUFBTSxDQUFDO0lBQy9HLENBQUM7SUFjRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxXQUFXLEtBQUksQ0FBQztJQUVoQixjQUFjO1FBQ1osSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNoQixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7U0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRztZQUNkLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7U0FDTCxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ3ZCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1NBQy9CO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRTtvQkFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7b0JBQ3pCLE9BQU8sSUFBSSxDQUFDO2lCQUNiO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsR0FBVztRQUN6QixJQUFJLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXO1FBQ2xCLElBQUksQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUMxRSxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQztRQUN6RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDO1FBQ2pGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUN6QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUM7UUFDekMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzSCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RILEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2xDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRW5DLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDOUIsSUFBSSxLQUFLLEdBQUcsV0FBVyxJQUFJLE1BQU0sR0FBRyxZQUFZLEVBQUU7WUFDaEQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztZQUNuRCxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYSxFQUFFLElBQVksRUFBRSxVQUFrQjtRQUN0RCxNQUFNLFlBQVksR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxJQUFJLFFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBRW5DLElBQUksSUFBSSxHQUFHLFVBQVUsRUFBRTtZQUNyQixJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsUUFBUSxHQUFHLFdBQVcsQ0FBQzthQUN4QjtZQUNELElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxZQUFZLEdBQUcsVUFBVSxFQUFFO2dCQUMxQyxRQUFRLEdBQUcsQ0FBQyxXQUFXLENBQUM7YUFDekI7U0FDRjthQUFNO1lBQ0wsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLFlBQVksR0FBRyxVQUFVLEVBQUU7Z0JBQzFDLFFBQVEsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO2FBQ25EO1NBQ0Y7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOztzSUFsSVUsc0JBQXNCLG9JQStCdkIsYUFBYTswSEEvQlosc0JBQXNCLHlNQ3RCbkMsa3ZEQXlDQTsyRkRuQmEsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNFLEdBQUcsbUJBQW1CLEVBQUUsaUJBR25CLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQWlDNUMsTUFBTTsyQkFBQyxhQUFhOzRDQVBBLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBJbmplY3QsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhJbWFnZU5vZGUsIFhJbWFnZVByZXZpZXdQcmVmaXgsIFhJbWFnZVByZXZpZXdQcm9wZXJ0eSB9IGZyb20gJy4vaW1hZ2UucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYQ29uZmlnU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYX0RJQUxPR19EQVRBIH0gZnJvbSAnQG5nLW5lc3QvdWkvZGlhbG9nJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYSW1hZ2VQcmV2aWV3UHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLXByZXZpZXcuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYSW1hZ2VQcmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgWEltYWdlUHJldmlld1Byb3BlcnR5IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBpbWdTY2FsZTNkID0ge1xyXG4gICAgeDogMSxcclxuICAgIHk6IDEsXHJcbiAgICB6OiAxXHJcbiAgfTtcclxuICByb3RhdGUgPSAwO1xyXG5cclxuICBwb3NpdGlvbiA9IHtcclxuICAgIHg6IDAsXHJcbiAgICB5OiAwXHJcbiAgfTtcclxuXHJcbiAgYWN0aXZhdGVkPzogWEltYWdlTm9kZTtcclxuICB0b3RhbCA9IDE7XHJcbiAgY3VycmVudCA9IDE7XHJcblxyXG4gIGdldCBnZXRXcmFwcGVyVHJhbnNmb3JtKCkge1xyXG4gICAgcmV0dXJuIGB0cmFuc2xhdGUzZCgke3RoaXMucG9zaXRpb24ueH1weCwgJHt0aGlzLnBvc2l0aW9uLnl9cHgsIDApYDtcclxuICB9XHJcbiAgZ2V0IGdldEltZ1RyYW5zZm9ybSgpIHtcclxuICAgIHJldHVybiBgc2NhbGUzZCgke3RoaXMuaW1nU2NhbGUzZC54fSwgJHt0aGlzLmltZ1NjYWxlM2QueX0sICR7dGhpcy5pbWdTY2FsZTNkLnp9KSByb3RhdGUoJHt0aGlzLnJvdGF0ZX1kZWcpYDtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ltYWdlUmVmJykgaW1hZ2VSZWYhOiBFbGVtZW50UmVmPEhUTUxJbWFnZUVsZW1lbnQ+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2UsXHJcbiAgICBASW5qZWN0KFhfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBYSW1hZ2VOb2RlW11cclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0QWN0aXZhdGVkKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHt9XHJcblxyXG4gIGluaXRpYWxpemF0aW9uKCkge1xyXG4gICAgdGhpcy5pbWdTY2FsZTNkID0ge1xyXG4gICAgICB4OiAxLFxyXG4gICAgICB5OiAxLFxyXG4gICAgICB6OiAxXHJcbiAgICB9O1xyXG4gICAgdGhpcy5yb3RhdGUgPSAwO1xyXG4gICAgdGhpcy5wb3NpdGlvbiA9IHtcclxuICAgICAgeDogMCxcclxuICAgICAgeTogMFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHNldEFjdGl2YXRlZCgpIHtcclxuICAgIGlmICghdGhpcy5kYXRhKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5kYXRhLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICB0aGlzLmFjdGl2YXRlZCA9IHRoaXMuZGF0YVswXTtcclxuICAgICAgdGhpcy50b3RhbCA9IHRoaXMuY3VycmVudCA9IDE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRvdGFsID0gdGhpcy5kYXRhLmxlbmd0aDtcclxuICAgICAgdGhpcy5hY3RpdmF0ZWQgPSB0aGlzLmRhdGEuZmluZCgoeCwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoeC5hY3RpdmF0ZWQpIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudCA9IGluZGV4ICsgMTtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DdXJyZW50Q2hhbmdlKG51bTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmN1cnJlbnQgKz0gbnVtO1xyXG4gICAgdGhpcy5hY3RpdmF0ZWQgPSB0aGlzLmRhdGFbdGhpcy5jdXJyZW50IC0gMV07XHJcbiAgICB0aGlzLmluaXRpYWxpemF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvblJvdGF0ZShkZWc6IG51bWJlcikge1xyXG4gICAgdGhpcy5yb3RhdGUgKz0gZGVnO1xyXG4gIH1cclxuXHJcbiAgb25TY2FsZSh6b29tOiBudW1iZXIpIHtcclxuICAgIHRoaXMuaW1nU2NhbGUzZC54ICs9IHpvb207XHJcbiAgICB0aGlzLmltZ1NjYWxlM2QueSArPSB6b29tO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnUmVsZWFzZWQoKSB7XHJcbiAgICBsZXQgd2lkdGggPSB0aGlzLmltYWdlUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKiB0aGlzLmltZ1NjYWxlM2QueDtcclxuICAgIGxldCBoZWlnaHQgPSB0aGlzLmltYWdlUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICogdGhpcy5pbWdTY2FsZTNkLng7XHJcbiAgICBjb25zdCBjbGllbnRXaWR0aCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtcclxuICAgIGNvbnN0IGNsaWVudEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgY29uc3QgaXNSb3RhdGUgPSB0aGlzLnJvdGF0ZSAlIDE4MCAhPT0gMDtcclxuICAgIGNvbnN0IGJveCA9IHRoaXMuaW1hZ2VSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IGRvY0VsZW0gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbiAgICBjb25zdCBsZWZ0ID0gYm94LmxlZnQgKyAod2luZG93LnBhZ2VYT2Zmc2V0IHx8IGRvY0VsZW0uc2Nyb2xsTGVmdCkgLSAoZG9jRWxlbS5jbGllbnRMZWZ0IHx8IGRvY3VtZW50LmJvZHkuY2xpZW50TGVmdCB8fCAwKTtcclxuICAgIGNvbnN0IHRvcCA9IGJveC50b3AgKyAod2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvY0VsZW0uc2Nyb2xsVG9wKSAtIChkb2NFbGVtLmNsaWVudFRvcCB8fCBkb2N1bWVudC5ib2R5LmNsaWVudFRvcCB8fCAwKTtcclxuICAgIHdpZHRoID0gaXNSb3RhdGUgPyBoZWlnaHQgOiB3aWR0aDtcclxuICAgIGhlaWdodCA9IGlzUm90YXRlID8gd2lkdGggOiBoZWlnaHQ7XHJcblxyXG4gICAgbGV0IHBvc2l0aW9uID0geyB4OiAwLCB5OiAwIH07XHJcbiAgICBpZiAod2lkdGggPiBjbGllbnRXaWR0aCB8fCBoZWlnaHQgPiBjbGllbnRIZWlnaHQpIHtcclxuICAgICAgY29uc3QgeCA9IHRoaXMuZml0UG9pbnQobGVmdCwgd2lkdGgsIGNsaWVudFdpZHRoKTtcclxuICAgICAgY29uc3QgeSA9IHRoaXMuZml0UG9pbnQodG9wLCBoZWlnaHQsIGNsaWVudEhlaWdodCk7XHJcbiAgICAgIHBvc2l0aW9uLnggPSB4ID8geCA6IDA7XHJcbiAgICAgIHBvc2l0aW9uLnkgPSB5ID8geSA6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wb3NpdGlvbiA9IHsgLi4udGhpcy5wb3NpdGlvbiwgLi4ucG9zaXRpb24gfTtcclxuICB9XHJcblxyXG4gIGZpdFBvaW50KHN0YXJ0OiBudW1iZXIsIHNpemU6IG51bWJlciwgY2xpZW50U2l6ZTogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICBjb25zdCBzdGFydEFkZFNpemUgPSBzdGFydCArIHNpemU7XHJcbiAgICBjb25zdCBvZmZzZXRTdGFydCA9IChzaXplIC0gY2xpZW50U2l6ZSkgLyAyO1xyXG4gICAgbGV0IGRpc3RhbmNlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBpZiAoc2l6ZSA+IGNsaWVudFNpemUpIHtcclxuICAgICAgaWYgKHN0YXJ0ID4gMCkge1xyXG4gICAgICAgIGRpc3RhbmNlID0gb2Zmc2V0U3RhcnQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHN0YXJ0IDwgMCAmJiBzdGFydEFkZFNpemUgPCBjbGllbnRTaXplKSB7XHJcbiAgICAgICAgZGlzdGFuY2UgPSAtb2Zmc2V0U3RhcnQ7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChzdGFydCA8IDAgfHwgc3RhcnRBZGRTaXplID4gY2xpZW50U2l6ZSkge1xyXG4gICAgICAgIGRpc3RhbmNlID0gc3RhcnQgPCAwID8gb2Zmc2V0U3RhcnQgOiAtb2Zmc2V0U3RhcnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGlzdGFuY2U7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWltYWdlLXByZXZpZXdcIiBbbmdDbGFzc109XCJjbGFzc01hcFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWltYWdlLXByZXZpZXctaGVhZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LWhlYWRlci1sZWZ0XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LWN1cnJlbnRcIiAqbmdJZj1cInRvdGFsICE9IDFcIj57eyBjdXJyZW50IH19IC8ge3sgdG90YWwgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWltYWdlLXByZXZpZXctaGVhZGVyLWNlbnRlclwiPlxyXG4gICAgICA8eC1pY29uIHR5cGU9XCJmdG8tY29ybmVyLXVwLWxlZnRcIiAoY2xpY2spPVwib25Sb3RhdGUoLTkwKVwiPjwveC1pY29uPlxyXG4gICAgICA8eC1pY29uIHR5cGU9XCJmdG8tY29ybmVyLXVwLXJpZ2h0XCIgKGNsaWNrKT1cIm9uUm90YXRlKDkwKVwiPjwveC1pY29uPlxyXG4gICAgICA8eC1pY29uIHR5cGU9XCJmdG8tem9vbS1vdXRcIiBbY2xhc3MueC1pbWFnZS1wcmV2aWV3LWRpc2FibGVkXT1cImltZ1NjYWxlM2QueCA9PT0gMVwiIChjbGljayk9XCJpbWdTY2FsZTNkLnggPiAxICYmIG9uU2NhbGUoLTEpXCI+PC94LWljb24+XHJcbiAgICAgIDx4LWljb24gdHlwZT1cImZ0by16b29tLWluXCIgKGNsaWNrKT1cIm9uU2NhbGUoMSlcIj48L3gtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtaW1hZ2UtcHJldmlldy1oZWFkZXItcmlnaHRcIj5cclxuICAgICAgPHgtaWNvbiB0eXBlPVwiZnRvLXhcIiB4LWRpYWxvZy1jbG9zZT48L3gtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LXdyYXBwZXJcIlxyXG4gICAgY2RrRHJhZ1xyXG4gICAgW3N0eWxlLnRyYW5zZm9ybV09XCJnZXRXcmFwcGVyVHJhbnNmb3JtXCJcclxuICAgIFtjZGtEcmFnRnJlZURyYWdQb3NpdGlvbl09XCJwb3NpdGlvblwiXHJcbiAgICAoY2RrRHJhZ1JlbGVhc2VkKT1cIm9uRHJhZ1JlbGVhc2VkKClcIlxyXG4gID5cclxuICAgIDxpbWcgI2ltYWdlUmVmIFtzcmNdPVwiYWN0aXZhdGVkPy5zcmNcIiBbYXR0ci5hbHRdPVwiYWN0aXZhdGVkPy5hbHRcIiBjZGtEcmFnSGFuZGxlIFtzdHlsZS50cmFuc2Zvcm1dPVwiZ2V0SW1nVHJhbnNmb3JtXCIgLz5cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImRhdGEgJiYgZGF0YS5sZW5ndGggPiAxXCJcclxuICAgIFtjbGFzcy54LWltYWdlLXByZXZpZXctZGlzYWJsZWRdPVwiY3VycmVudCA9PT0gMVwiXHJcbiAgICBjbGFzcz1cIngtaW1hZ2UtcHJldmlldy1sZWZ0XCJcclxuICAgIChjbGljayk9XCJjdXJyZW50ID4gMSAmJiBvbkN1cnJlbnRDaGFuZ2UoLTEpXCJcclxuICA+XHJcbiAgICA8eC1pY29uIHR5cGU9XCJmdG8tY2hldnJvbi1sZWZ0XCI+PC94LWljb24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJkYXRhICYmIGRhdGEubGVuZ3RoID4gMVwiXHJcbiAgICBbY2xhc3MueC1pbWFnZS1wcmV2aWV3LWRpc2FibGVkXT1cImN1cnJlbnQgPT09IHRvdGFsXCJcclxuICAgIGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LXJpZ2h0XCJcclxuICAgIChjbGljayk9XCJjdXJyZW50ICE9IHRvdGFsICYmIG9uQ3VycmVudENoYW5nZSgxKVwiXHJcbiAgPlxyXG4gICAgPHgtaWNvbiB0eXBlPVwiZnRvLWNoZXZyb24tcmlnaHRcIj48L3gtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtcHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9pbWFnZS9pbWFnZS1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2ltYWdlL2ltYWdlLXByZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBRXZCLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYyxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFTM0MsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHFCQUFxQjtJQTRCL0QsWUFDUyxRQUFtQixFQUNuQixVQUFtQyxFQUNuQyxHQUFzQixFQUN0QixhQUE2QixFQUNOLElBQWtCO1FBRWhELEtBQUssRUFBRSxDQUFDO1FBTkQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDTixTQUFJLEdBQUosSUFBSSxDQUFjO1FBaENsRCxlQUFVLEdBQUc7WUFDWCxDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7U0FDTCxDQUFDO1FBQ0YsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUVYLGFBQVEsR0FBRztZQUNULENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7U0FD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LENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQzthQUNuRDtTQUNGO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7c0lBeElVLHNCQUFzQixvSUFpQ3ZCLGFBQWE7MEhBakNaLHNCQUFzQix5TUN4Qm5DLGt2REF5Q0E7MkZEakJhLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxHQUFHLG1CQUFtQixFQUFFLGlCQUduQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFtQzVDLE1BQU07MkJBQUMsYUFBYTs0Q0FQQSxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBPbkNoYW5nZXMsXHJcbiAgSW5qZWN0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBpbmplY3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWEltYWdlTm9kZSwgWEltYWdlUHJldmlld1ByZWZpeCwgWEltYWdlUHJldmlld1Byb3BlcnR5IH0gZnJvbSAnLi9pbWFnZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhDb25maWdTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFhfRElBTE9HX0RBVEEgfSBmcm9tICdAbmctbmVzdC91aS9kaWFsb2cnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WEltYWdlUHJldmlld1ByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbWFnZS1wcmV2aWV3LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWEltYWdlUHJldmlld0NvbXBvbmVudCBleHRlbmRzIFhJbWFnZVByZXZpZXdQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgaW1nU2NhbGUzZCA9IHtcclxuICAgIHg6IDEsXHJcbiAgICB5OiAxLFxyXG4gICAgejogMVxyXG4gIH07XHJcbiAgcm90YXRlID0gMDtcclxuXHJcbiAgcG9zaXRpb24gPSB7XHJcbiAgICB4OiAwLFxyXG4gICAgeTogMFxyXG4gIH07XHJcblxyXG4gIGFjdGl2YXRlZD86IFhJbWFnZU5vZGU7XHJcbiAgdG90YWwgPSAxO1xyXG4gIGN1cnJlbnQgPSAxO1xyXG5cclxuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuXHJcbiAgZ2V0IGdldFdyYXBwZXJUcmFuc2Zvcm0oKSB7XHJcbiAgICByZXR1cm4gYHRyYW5zbGF0ZTNkKCR7dGhpcy5wb3NpdGlvbi54fXB4LCAke3RoaXMucG9zaXRpb24ueX1weCwgMClgO1xyXG4gIH1cclxuICBnZXQgZ2V0SW1nVHJhbnNmb3JtKCkge1xyXG4gICAgcmV0dXJuIGBzY2FsZTNkKCR7dGhpcy5pbWdTY2FsZTNkLnh9LCAke3RoaXMuaW1nU2NhbGUzZC55fSwgJHt0aGlzLmltZ1NjYWxlM2Quen0pIHJvdGF0ZSgke3RoaXMucm90YXRlfWRlZylgO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgnaW1hZ2VSZWYnKSBpbWFnZVJlZiE6IEVsZW1lbnRSZWY8SFRNTEltYWdlRWxlbWVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZSxcclxuICAgIEBJbmplY3QoWF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IFhJbWFnZU5vZGVbXVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRBY3RpdmF0ZWQoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge31cclxuXHJcbiAgaW5pdGlhbGl6YXRpb24oKSB7XHJcbiAgICB0aGlzLmltZ1NjYWxlM2QgPSB7XHJcbiAgICAgIHg6IDEsXHJcbiAgICAgIHk6IDEsXHJcbiAgICAgIHo6IDFcclxuICAgIH07XHJcbiAgICB0aGlzLnJvdGF0ZSA9IDA7XHJcbiAgICB0aGlzLnBvc2l0aW9uID0ge1xyXG4gICAgICB4OiAwLFxyXG4gICAgICB5OiAwXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZhdGVkKCkge1xyXG4gICAgaWYgKCF0aGlzLmRhdGEpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmRhdGEubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVkID0gdGhpcy5kYXRhWzBdO1xyXG4gICAgICB0aGlzLnRvdGFsID0gdGhpcy5jdXJyZW50ID0gMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudG90YWwgPSB0aGlzLmRhdGEubGVuZ3RoO1xyXG4gICAgICB0aGlzLmFjdGl2YXRlZCA9IHRoaXMuZGF0YS5maW5kKCh4LCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGlmICh4LmFjdGl2YXRlZCkge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50ID0gaW5kZXggKyAxO1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkN1cnJlbnRDaGFuZ2UobnVtOiBudW1iZXIpIHtcclxuICAgIHRoaXMuY3VycmVudCArPSBudW07XHJcbiAgICB0aGlzLmFjdGl2YXRlZCA9IHRoaXMuZGF0YVt0aGlzLmN1cnJlbnQgLSAxXTtcclxuICAgIHRoaXMuaW5pdGlhbGl6YXRpb24oKTtcclxuICB9XHJcblxyXG4gIG9uUm90YXRlKGRlZzogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnJvdGF0ZSArPSBkZWc7XHJcbiAgfVxyXG5cclxuICBvblNjYWxlKHpvb206IG51bWJlcikge1xyXG4gICAgdGhpcy5pbWdTY2FsZTNkLnggKz0gem9vbTtcclxuICAgIHRoaXMuaW1nU2NhbGUzZC55ICs9IHpvb207XHJcbiAgfVxyXG5cclxuICBvbkRyYWdSZWxlYXNlZCgpIHtcclxuICAgIGxldCB3aWR0aCA9IHRoaXMuaW1hZ2VSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAqIHRoaXMuaW1nU2NhbGUzZC54O1xyXG4gICAgbGV0IGhlaWdodCA9IHRoaXMuaW1hZ2VSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKiB0aGlzLmltZ1NjYWxlM2QueDtcclxuICAgIGNvbnN0IGNsaWVudFdpZHRoID0gdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7XHJcbiAgICBjb25zdCBjbGllbnRIZWlnaHQgPSB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Py5pbm5lckhlaWdodCB8fCB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICBjb25zdCBpc1JvdGF0ZSA9IHRoaXMucm90YXRlICUgMTgwICE9PSAwO1xyXG4gICAgY29uc3QgYm94ID0gdGhpcy5pbWFnZVJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgZG9jRWxlbSA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG4gICAgY29uc3QgbGVmdCA9XHJcbiAgICAgIGJveC5sZWZ0ICtcclxuICAgICAgKHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc/LnBhZ2VYT2Zmc2V0IHx8IGRvY0VsZW0uc2Nyb2xsTGVmdCkgLVxyXG4gICAgICAoZG9jRWxlbS5jbGllbnRMZWZ0IHx8IHRoaXMuZG9jdW1lbnQuYm9keS5jbGllbnRMZWZ0IHx8IDApO1xyXG4gICAgY29uc3QgdG9wID1cclxuICAgICAgYm94LnRvcCArICh0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Py5wYWdlWU9mZnNldCB8fCBkb2NFbGVtLnNjcm9sbFRvcCkgLSAoZG9jRWxlbS5jbGllbnRUb3AgfHwgdGhpcy5kb2N1bWVudC5ib2R5LmNsaWVudFRvcCB8fCAwKTtcclxuICAgIHdpZHRoID0gaXNSb3RhdGUgPyBoZWlnaHQgOiB3aWR0aDtcclxuICAgIGhlaWdodCA9IGlzUm90YXRlID8gd2lkdGggOiBoZWlnaHQ7XHJcblxyXG4gICAgbGV0IHBvc2l0aW9uID0geyB4OiAwLCB5OiAwIH07XHJcbiAgICBpZiAod2lkdGggPiBjbGllbnRXaWR0aCB8fCBoZWlnaHQgPiBjbGllbnRIZWlnaHQpIHtcclxuICAgICAgY29uc3QgeCA9IHRoaXMuZml0UG9pbnQobGVmdCwgd2lkdGgsIGNsaWVudFdpZHRoKTtcclxuICAgICAgY29uc3QgeSA9IHRoaXMuZml0UG9pbnQodG9wLCBoZWlnaHQsIGNsaWVudEhlaWdodCk7XHJcbiAgICAgIHBvc2l0aW9uLnggPSB4ID8geCA6IDA7XHJcbiAgICAgIHBvc2l0aW9uLnkgPSB5ID8geSA6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wb3NpdGlvbiA9IHsgLi4udGhpcy5wb3NpdGlvbiwgLi4ucG9zaXRpb24gfTtcclxuICB9XHJcblxyXG4gIGZpdFBvaW50KHN0YXJ0OiBudW1iZXIsIHNpemU6IG51bWJlciwgY2xpZW50U2l6ZTogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICBjb25zdCBzdGFydEFkZFNpemUgPSBzdGFydCArIHNpemU7XHJcbiAgICBjb25zdCBvZmZzZXRTdGFydCA9IChzaXplIC0gY2xpZW50U2l6ZSkgLyAyO1xyXG4gICAgbGV0IGRpc3RhbmNlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBpZiAoc2l6ZSA+IGNsaWVudFNpemUpIHtcclxuICAgICAgaWYgKHN0YXJ0ID4gMCkge1xyXG4gICAgICAgIGRpc3RhbmNlID0gb2Zmc2V0U3RhcnQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHN0YXJ0IDwgMCAmJiBzdGFydEFkZFNpemUgPCBjbGllbnRTaXplKSB7XHJcbiAgICAgICAgZGlzdGFuY2UgPSAtb2Zmc2V0U3RhcnQ7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChzdGFydCA8IDAgfHwgc3RhcnRBZGRTaXplID4gY2xpZW50U2l6ZSkge1xyXG4gICAgICAgIGRpc3RhbmNlID0gc3RhcnQgPCAwID8gb2Zmc2V0U3RhcnQgOiAtb2Zmc2V0U3RhcnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGlzdGFuY2U7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWltYWdlLXByZXZpZXdcIiBbbmdDbGFzc109XCJjbGFzc01hcFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWltYWdlLXByZXZpZXctaGVhZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LWhlYWRlci1sZWZ0XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LWN1cnJlbnRcIiAqbmdJZj1cInRvdGFsICE9IDFcIj57eyBjdXJyZW50IH19IC8ge3sgdG90YWwgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWltYWdlLXByZXZpZXctaGVhZGVyLWNlbnRlclwiPlxyXG4gICAgICA8eC1pY29uIHR5cGU9XCJmdG8tY29ybmVyLXVwLWxlZnRcIiAoY2xpY2spPVwib25Sb3RhdGUoLTkwKVwiPjwveC1pY29uPlxyXG4gICAgICA8eC1pY29uIHR5cGU9XCJmdG8tY29ybmVyLXVwLXJpZ2h0XCIgKGNsaWNrKT1cIm9uUm90YXRlKDkwKVwiPjwveC1pY29uPlxyXG4gICAgICA8eC1pY29uIHR5cGU9XCJmdG8tem9vbS1vdXRcIiBbY2xhc3MueC1pbWFnZS1wcmV2aWV3LWRpc2FibGVkXT1cImltZ1NjYWxlM2QueCA9PT0gMVwiIChjbGljayk9XCJpbWdTY2FsZTNkLnggPiAxICYmIG9uU2NhbGUoLTEpXCI+PC94LWljb24+XHJcbiAgICAgIDx4LWljb24gdHlwZT1cImZ0by16b29tLWluXCIgKGNsaWNrKT1cIm9uU2NhbGUoMSlcIj48L3gtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtaW1hZ2UtcHJldmlldy1oZWFkZXItcmlnaHRcIj5cclxuICAgICAgPHgtaWNvbiB0eXBlPVwiZnRvLXhcIiB4LWRpYWxvZy1jbG9zZT48L3gtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LXdyYXBwZXJcIlxyXG4gICAgY2RrRHJhZ1xyXG4gICAgW3N0eWxlLnRyYW5zZm9ybV09XCJnZXRXcmFwcGVyVHJhbnNmb3JtXCJcclxuICAgIFtjZGtEcmFnRnJlZURyYWdQb3NpdGlvbl09XCJwb3NpdGlvblwiXHJcbiAgICAoY2RrRHJhZ1JlbGVhc2VkKT1cIm9uRHJhZ1JlbGVhc2VkKClcIlxyXG4gID5cclxuICAgIDxpbWcgI2ltYWdlUmVmIFtzcmNdPVwiYWN0aXZhdGVkPy5zcmNcIiBbYXR0ci5hbHRdPVwiYWN0aXZhdGVkPy5hbHRcIiBjZGtEcmFnSGFuZGxlIFtzdHlsZS50cmFuc2Zvcm1dPVwiZ2V0SW1nVHJhbnNmb3JtXCIgLz5cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImRhdGEgJiYgZGF0YS5sZW5ndGggPiAxXCJcclxuICAgIFtjbGFzcy54LWltYWdlLXByZXZpZXctZGlzYWJsZWRdPVwiY3VycmVudCA9PT0gMVwiXHJcbiAgICBjbGFzcz1cIngtaW1hZ2UtcHJldmlldy1sZWZ0XCJcclxuICAgIChjbGljayk9XCJjdXJyZW50ID4gMSAmJiBvbkN1cnJlbnRDaGFuZ2UoLTEpXCJcclxuICA+XHJcbiAgICA8eC1pY29uIHR5cGU9XCJmdG8tY2hldnJvbi1sZWZ0XCI+PC94LWljb24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJkYXRhICYmIGRhdGEubGVuZ3RoID4gMVwiXHJcbiAgICBbY2xhc3MueC1pbWFnZS1wcmV2aWV3LWRpc2FibGVkXT1cImN1cnJlbnQgPT09IHRvdGFsXCJcclxuICAgIGNsYXNzPVwieC1pbWFnZS1wcmV2aWV3LXJpZ2h0XCJcclxuICAgIChjbGljayk9XCJjdXJyZW50ICE9IHRvdGFsICYmIG9uQ3VycmVudENoYW5nZSgxKVwiXHJcbiAgPlxyXG4gICAgPHgtaWNvbiB0eXBlPVwiZnRvLWNoZXZyb24tcmlnaHRcIj48L3gtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -83,9 +83,9 @@ export class XImageComponent extends XImageProperty {
83
83
  this.load.emit(event);
84
84
  }
85
85
  }
86
- /** @nocollapse */ XImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XImageComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }, { token: i2.XDialogService }, { token: i3.XI18nService }, { token: i4.XImageGroupComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component });
87
- /** @nocollapse */ XImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XImageComponent, selector: "x-image", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-image\" [ngClass]=\"classMap\">\r\n <img\r\n *ngIf=\"!isError && !fallback\"\r\n [hidden]=\"placeholder && !isLoaded\"\r\n class=\"x-image-img\"\r\n [src]=\"src\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n <img *ngIf=\"placeholder && !isLoaded\" class=\"x-image-img\" [src]=\"placeholder\" [style.width]=\"width\" [style.height]=\"height\" />\r\n <div *ngIf=\"isError && !fallback\" class=\"x-image-error-icon\" [style.width]=\"width\" [style.height]=\"height\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n <ng-container *xOutlet=\"previewTpl; context: { $image: this }\">\r\n <div class=\"x-image-overlay\" *ngIf=\"!isError\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ getPreviewText }}</span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: ["x-image{display:inline-block}.x-image{margin:0;padding:0;position:relative;display:inline-block}.x-image-img{max-width:100%;max-height:100%;vertical-align:middle}.x-image-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(0,0,0,.5);cursor:pointer;opacity:0;transition:opacity var(--x-animation-duration-base)}.x-image-overlay:hover{opacity:1}.x-image-text>span{margin-left:.25rem}.x-image-error{display:none}.x-image-error-icon{font-size:2rem}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i7.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XImageComponent, decorators: [{
86
+ /** @nocollapse */ XImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }, { token: i2.XDialogService }, { token: i3.XI18nService }, { token: i4.XImageGroupComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component });
87
+ /** @nocollapse */ XImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XImageComponent, selector: "x-image", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-image\" [ngClass]=\"classMap\">\r\n <img\r\n *ngIf=\"!isError && !fallback\"\r\n [hidden]=\"placeholder && !isLoaded\"\r\n class=\"x-image-img\"\r\n [src]=\"src\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n <img *ngIf=\"placeholder && !isLoaded\" class=\"x-image-img\" [src]=\"placeholder\" [style.width]=\"width\" [style.height]=\"height\" />\r\n <div *ngIf=\"isError && !fallback\" class=\"x-image-error-icon\" [style.width]=\"width\" [style.height]=\"height\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n <ng-container *xOutlet=\"previewTpl; context: { $image: this }\">\r\n <div class=\"x-image-overlay\" *ngIf=\"!isError\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ getPreviewText }}</span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: ["x-image{display:inline-block}.x-image{margin:0;padding:0;position:relative;display:inline-block}.x-image-img{max-width:100%;max-height:100%;vertical-align:middle}.x-image-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(0,0,0,.5);cursor:pointer;opacity:0;transition:opacity var(--x-animation-duration-base)}.x-image-overlay:hover{opacity:1}.x-image-text>span{margin-left:.25rem}.x-image-error{display:none}.x-image-error-icon{font-size:2rem}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i7.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageComponent, decorators: [{
89
89
  type: Component,
90
90
  args: [{ selector: `${XImagePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-image\" [ngClass]=\"classMap\">\r\n <img\r\n *ngIf=\"!isError && !fallback\"\r\n [hidden]=\"placeholder && !isLoaded\"\r\n class=\"x-image-img\"\r\n [src]=\"src\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n <img *ngIf=\"placeholder && !isLoaded\" class=\"x-image-img\" [src]=\"placeholder\" [style.width]=\"width\" [style.height]=\"height\" />\r\n <div *ngIf=\"isError && !fallback\" class=\"x-image-error-icon\" [style.width]=\"width\" [style.height]=\"height\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n <ng-container *xOutlet=\"previewTpl; context: { $image: this }\">\r\n <div class=\"x-image-overlay\" *ngIf=\"!isError\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ getPreviewText }}</span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: ["x-image{display:inline-block}.x-image{margin:0;padding:0;position:relative;display:inline-block}.x-image-img{max-width:100%;max-height:100%;vertical-align:middle}.x-image-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(0,0,0,.5);cursor:pointer;opacity:0;transition:opacity var(--x-animation-duration-base)}.x-image-overlay:hover{opacity:1}.x-image-text>span{margin-left:.25rem}.x-image-error{display:none}.x-image-error-icon{font-size:2rem}\n"] }]
91
91
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }, { type: i2.XDialogService }, { type: i3.XI18nService }, { type: i4.XImageGroupComponent, decorators: [{
@@ -13,10 +13,10 @@ import { XOutletModule } from '@ng-nest/ui/outlet';
13
13
  import * as i0 from "@angular/core";
14
14
  export class XImageModule {
15
15
  }
16
- /** @nocollapse */ XImageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
- /** @nocollapse */ XImageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: XImageModule, declarations: [XImageComponent, XImageProperty, XImagePreviewComponent, XImagePreviewProperty, XImageGroupComponent], imports: [CommonModule, XIconModule, XDialogModule, XButtonModule, XI18nModule, XOutletModule, DragDropModule], exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent] });
18
- /** @nocollapse */ XImageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XImageModule, imports: [CommonModule, XIconModule, XDialogModule, XButtonModule, XI18nModule, XOutletModule, DragDropModule] });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XImageModule, decorators: [{
16
+ /** @nocollapse */ XImageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ /** @nocollapse */ XImageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: XImageModule, declarations: [XImageComponent, XImageProperty, XImagePreviewComponent, XImagePreviewProperty, XImageGroupComponent], imports: [CommonModule, XIconModule, XDialogModule, XButtonModule, XI18nModule, XOutletModule, DragDropModule], exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent] });
18
+ /** @nocollapse */ XImageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageModule, imports: [CommonModule, XIconModule, XDialogModule, XButtonModule, XI18nModule, XOutletModule, DragDropModule] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageModule, decorators: [{
20
20
  type: NgModule,
21
21
  args: [{
22
22
  declarations: [XImageComponent, XImageProperty, XImagePreviewComponent, XImagePreviewProperty, XImageGroupComponent],
@@ -27,12 +27,12 @@ export class XImageProperty extends XProperty {
27
27
  this.load = new EventEmitter();
28
28
  }
29
29
  }
30
- /** @nocollapse */ XImageProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XImageProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
31
- /** @nocollapse */ XImageProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XImageProperty, selector: "ng-component", inputs: { src: "src", width: "width", height: "height", alt: "alt", fallback: "fallback", previewText: "previewText", placeholder: "placeholder", previewTpl: "previewTpl" }, outputs: { error: "error", load: "load" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
30
+ /** @nocollapse */ XImageProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
31
+ /** @nocollapse */ XImageProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XImageProperty, selector: "ng-component", inputs: { src: "src", width: "width", height: "height", alt: "alt", fallback: "fallback", previewText: "previewText", placeholder: "placeholder", previewTpl: "previewTpl" }, outputs: { error: "error", load: "load" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
32
32
  __decorate([
33
33
  XWithConfig(X_CONFIG_NAME)
34
34
  ], XImageProperty.prototype, "previewText", void 0);
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XImageProperty, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImageProperty, decorators: [{
36
36
  type: Component,
37
37
  args: [{ template: '' }]
38
38
  }], propDecorators: { src: [{
@@ -67,9 +67,9 @@ export const XImagePreviewPrefix = 'x-image-preview';
67
67
  */
68
68
  export class XImagePreviewProperty extends XProperty {
69
69
  }
70
- /** @nocollapse */ XImagePreviewProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XImagePreviewProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
71
- /** @nocollapse */ XImagePreviewProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XImagePreviewProperty, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XImagePreviewProperty, decorators: [{
70
+ /** @nocollapse */ XImagePreviewProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImagePreviewProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
71
+ /** @nocollapse */ XImagePreviewProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XImagePreviewProperty, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XImagePreviewProperty, decorators: [{
73
73
  type: Component,
74
74
  args: [{ template: '' }]
75
75
  }] });
@@ -21,9 +21,9 @@ export class XInnerComponent extends XInnerProperty {
21
21
  this.renderer.setStyle(this._ele, 'padding', this.padding);
22
22
  }
23
23
  }
24
- /** @nocollapse */ XInnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XInnerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
25
- /** @nocollapse */ XInnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XInnerComponent, selector: "x-inner", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [".x-inner{margin:0;padding:0;display:block;width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XInnerComponent, decorators: [{
24
+ /** @nocollapse */ XInnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInnerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
25
+ /** @nocollapse */ XInnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XInnerComponent, selector: "x-inner", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [".x-inner{margin:0;padding:0;display:block;width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInnerComponent, decorators: [{
27
27
  type: Component,
28
28
  args: [{ selector: `${XInnerPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\r\n", styles: [".x-inner{margin:0;padding:0;display:block;width:100%;height:100%}\n"] }]
29
29
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.XConfigService }]; } });
@@ -5,10 +5,10 @@ import { XInnerProperty } from './inner.property';
5
5
  import * as i0 from "@angular/core";
6
6
  export class XInnerModule {
7
7
  }
8
- /** @nocollapse */ XInnerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XInnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- /** @nocollapse */ XInnerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: XInnerModule, declarations: [XInnerComponent, XInnerProperty], imports: [CommonModule], exports: [XInnerComponent] });
10
- /** @nocollapse */ XInnerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XInnerModule, imports: [CommonModule] });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XInnerModule, decorators: [{
8
+ /** @nocollapse */ XInnerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ /** @nocollapse */ XInnerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: XInnerModule, declarations: [XInnerComponent, XInnerProperty], imports: [CommonModule], exports: [XInnerComponent] });
10
+ /** @nocollapse */ XInnerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInnerModule, imports: [CommonModule] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInnerModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  declarations: [XInnerComponent, XInnerProperty],
@@ -14,12 +14,12 @@ const X_CONFIG_NAME = 'inner';
14
14
  */
15
15
  export class XInnerProperty extends XProperty {
16
16
  }
17
- /** @nocollapse */ XInnerProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XInnerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
18
- /** @nocollapse */ XInnerProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XInnerProperty, selector: "ng-component", inputs: { padding: "padding" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
17
+ /** @nocollapse */ XInnerProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInnerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
18
+ /** @nocollapse */ XInnerProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XInnerProperty, selector: "ng-component", inputs: { padding: "padding" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
19
19
  __decorate([
20
20
  XWithConfig(X_CONFIG_NAME, '1rem')
21
21
  ], XInnerProperty.prototype, "padding", void 0);
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XInnerProperty, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInnerProperty, decorators: [{
23
23
  type: Component,
24
24
  args: [{ template: '' }]
25
25
  }], propDecorators: { padding: [{
@@ -11,9 +11,9 @@ export class XInputGroupComponent extends XInputGroupProperty {
11
11
  this.configService = configService;
12
12
  }
13
13
  }
14
- /** @nocollapse */ XInputGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XInputGroupComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
15
- /** @nocollapse */ XInputGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XInputGroupComponent, selector: "x-input-group", usesInheritance: true, ngImport: i0, template: "<div class=\"x-input-group\" [class.x-input-group-compact]=\"compact\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input-group{display:inline-block}.x-input-group{display:flex}.x-input-group-compact>*{display:inline-block}.x-input-group-compact>* input,.x-input-group-compact>* .x-button{border-radius:0!important}.x-input-group-compact>* input:hover,.x-input-group-compact>* input:focus,.x-input-group-compact>* .x-button:hover,.x-input-group-compact>* .x-button:focus{z-index:1}.x-input-group-compact>*:first-child input,.x-input-group-compact>*:first-child .x-button{border-top-left-radius:var(--x-border-radius)!important;border-bottom-left-radius:var(--x-border-radius)!important}.x-input-group-compact>*:last-child input,.x-input-group-compact>*:last-child .x-button{border-top-right-radius:var(--x-border-radius)!important;border-bottom-right-radius:var(--x-border-radius)!important}.x-input-group-compact>*:not(:last-child){margin-right:calc(var(--x-border-width) * -1)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XInputGroupComponent, decorators: [{
14
+ /** @nocollapse */ XInputGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInputGroupComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
15
+ /** @nocollapse */ XInputGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XInputGroupComponent, selector: "x-input-group", usesInheritance: true, ngImport: i0, template: "<div class=\"x-input-group\" [class.x-input-group-compact]=\"compact\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input-group{display:inline-block}.x-input-group{display:flex}.x-input-group-compact>*{display:inline-block}.x-input-group-compact>* input,.x-input-group-compact>* .x-button{border-radius:0!important}.x-input-group-compact>* input:hover,.x-input-group-compact>* input:focus,.x-input-group-compact>* .x-button:hover,.x-input-group-compact>* .x-button:focus{z-index:1}.x-input-group-compact>*:first-child input,.x-input-group-compact>*:first-child .x-button{border-top-left-radius:var(--x-border-radius)!important;border-bottom-left-radius:var(--x-border-radius)!important}.x-input-group-compact>*:last-child input,.x-input-group-compact>*:last-child .x-button{border-top-right-radius:var(--x-border-radius)!important;border-bottom-right-radius:var(--x-border-radius)!important}.x-input-group-compact>*:not(:last-child){margin-right:calc(var(--x-border-width) * -1)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XInputGroupComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{ selector: `${XInputGroupPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-input-group\" [class.x-input-group-compact]=\"compact\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input-group{display:inline-block}.x-input-group{display:flex}.x-input-group-compact>*{display:inline-block}.x-input-group-compact>* input,.x-input-group-compact>* .x-button{border-radius:0!important}.x-input-group-compact>* input:hover,.x-input-group-compact>* input:focus,.x-input-group-compact>* .x-button:hover,.x-input-group-compact>* .x-button:focus{z-index:1}.x-input-group-compact>*:first-child input,.x-input-group-compact>*:first-child .x-button{border-top-left-radius:var(--x-border-radius)!important;border-bottom-left-radius:var(--x-border-radius)!important}.x-input-group-compact>*:last-child input,.x-input-group-compact>*:last-child .x-button{border-top-right-radius:var(--x-border-radius)!important;border-bottom-right-radius:var(--x-border-radius)!important}.x-input-group-compact>*:not(:last-child){margin-right:calc(var(--x-border-width) * -1)}\n"] }]
19
19
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; } });