@ng-nest/ui 17.0.1 → 17.0.3

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 (724) hide show
  1. package/affix/affix.component.d.ts +1 -2
  2. package/affix/affix.module.d.ts +1 -3
  3. package/alert/alert.component.d.ts +4 -5
  4. package/alert/alert.module.d.ts +1 -8
  5. package/anchor/anchor-inner.component.d.ts +1 -1
  6. package/anchor/anchor.component.d.ts +6 -7
  7. package/anchor/anchor.module.d.ts +2 -6
  8. package/api/api.component.d.ts +4 -4
  9. package/api/api.module.d.ts +1 -2
  10. package/auto-complete/auto-complete-portal.component.d.ts +3 -5
  11. package/auto-complete/auto-complete.component.d.ts +12 -13
  12. package/auto-complete/auto-complete.module.d.ts +1 -9
  13. package/avatar/avatar-group.component.d.ts +1 -2
  14. package/avatar/avatar.component.d.ts +6 -7
  15. package/avatar/avatar.module.d.ts +2 -6
  16. package/back-top/back-top.component.d.ts +7 -12
  17. package/back-top/back-top.module.d.ts +1 -5
  18. package/badge/badge.component.d.ts +3 -8
  19. package/badge/badge.module.d.ts +1 -3
  20. package/base-form/base-form.component.d.ts +1 -1
  21. package/base-form/base-form.module.d.ts +1 -2
  22. package/border/border.component.d.ts +4 -4
  23. package/border/border.module.d.ts +1 -1
  24. package/button/button.component.d.ts +8 -10
  25. package/button/button.module.d.ts +1 -5
  26. package/button/buttons.component.d.ts +4 -5
  27. package/calendar/calendar.component.d.ts +9 -14
  28. package/calendar/calendar.module.d.ts +1 -10
  29. package/card/card.component.d.ts +2 -6
  30. package/card/card.module.d.ts +1 -5
  31. package/carousel/carousel-panel.component.d.ts +10 -13
  32. package/carousel/carousel.component.d.ts +4 -8
  33. package/carousel/carousel.module.d.ts +1 -5
  34. package/cascade/cascade-portal.component.d.ts +4 -5
  35. package/cascade/cascade.component.d.ts +14 -13
  36. package/cascade/cascade.module.d.ts +1 -9
  37. package/checkbox/checkbox.component.d.ts +6 -9
  38. package/checkbox/checkbox.module.d.ts +1 -8
  39. package/collapse/collapse-panel.component.d.ts +5 -8
  40. package/collapse/collapse.component.d.ts +3 -7
  41. package/collapse/collapse.module.d.ts +1 -5
  42. package/color/color.component.d.ts +4 -6
  43. package/color/color.module.d.ts +1 -3
  44. package/color-picker/color-picker-portal.component.d.ts +7 -11
  45. package/color-picker/color-picker.component.d.ts +11 -12
  46. package/color-picker/color-picker.module.d.ts +1 -11
  47. package/comment/comment-reply.component.d.ts +4 -9
  48. package/comment/comment.component.d.ts +5 -9
  49. package/comment/comment.module.d.ts +1 -11
  50. package/container/aside.component.d.ts +5 -5
  51. package/container/container.component.d.ts +2 -3
  52. package/container/container.module.d.ts +1 -3
  53. package/container/footer.component.d.ts +5 -7
  54. package/container/header.component.d.ts +5 -7
  55. package/container/main.component.d.ts +4 -4
  56. package/crumb/crumb.component.d.ts +4 -6
  57. package/crumb/crumb.module.d.ts +1 -5
  58. package/date-picker/date-picker-portal.component.d.ts +5 -9
  59. package/date-picker/date-picker.component.d.ts +14 -16
  60. package/date-picker/date-picker.module.d.ts +2 -21
  61. package/date-picker/date-quarter.pipe.d.ts +1 -1
  62. package/date-picker/date-range-portal.component.d.ts +1 -1
  63. package/date-picker/date-range.component.d.ts +17 -19
  64. package/date-picker/picker-date.component.d.ts +8 -12
  65. package/date-picker/picker-month.component.d.ts +8 -11
  66. package/date-picker/picker-quarter.component.d.ts +9 -14
  67. package/date-picker/picker-year.component.d.ts +5 -8
  68. package/description/description-item.component.d.ts +1 -2
  69. package/description/description.component.d.ts +4 -5
  70. package/description/description.module.d.ts +2 -5
  71. package/dialog/dialog-container.component.d.ts +1 -2
  72. package/dialog/dialog-portal.component.d.ts +1 -1
  73. package/dialog/dialog-portal.directives.d.ts +13 -17
  74. package/dialog/dialog.component.d.ts +15 -17
  75. package/dialog/dialog.module.d.ts +1 -14
  76. package/dialog/dialog.service.d.ts +8 -10
  77. package/doc/doc.component.d.ts +6 -6
  78. package/doc/doc.module.d.ts +1 -2
  79. package/drag/drag.directive.d.ts +5 -6
  80. package/drag/drag.module.d.ts +1 -2
  81. package/drawer/drawer-container.component.d.ts +1 -2
  82. package/drawer/drawer-portal.component.d.ts +1 -2
  83. package/drawer/drawer-portal.directives.d.ts +5 -6
  84. package/drawer/drawer.component.d.ts +10 -15
  85. package/drawer/drawer.module.d.ts +2 -8
  86. package/drawer/drawer.service.d.ts +5 -7
  87. package/dropdown/dropdown-portal.component.d.ts +1 -1
  88. package/dropdown/dropdown.component.d.ts +10 -13
  89. package/dropdown/dropdown.module.d.ts +1 -7
  90. package/empty/empty.component.d.ts +4 -7
  91. package/empty/empty.module.d.ts +1 -6
  92. package/esm2022/affix/affix.component.mjs +11 -11
  93. package/esm2022/affix/affix.module.mjs +6 -9
  94. package/esm2022/affix/affix.property.mjs +3 -3
  95. package/esm2022/alert/alert.component.mjs +19 -19
  96. package/esm2022/alert/alert.module.mjs +6 -14
  97. package/esm2022/alert/alert.property.mjs +4 -4
  98. package/esm2022/anchor/anchor-inner.component.mjs +5 -4
  99. package/esm2022/anchor/anchor.component.mjs +18 -21
  100. package/esm2022/anchor/anchor.module.mjs +6 -11
  101. package/esm2022/anchor/anchor.property.mjs +7 -7
  102. package/esm2022/api/api.component.mjs +14 -12
  103. package/esm2022/api/api.module.mjs +6 -8
  104. package/esm2022/auto-complete/auto-complete-portal.component.mjs +15 -16
  105. package/esm2022/auto-complete/auto-complete.component.mjs +44 -31
  106. package/esm2022/auto-complete/auto-complete.module.mjs +7 -16
  107. package/esm2022/auto-complete/auto-complete.property.mjs +3 -3
  108. package/esm2022/avatar/avatar-group.component.mjs +7 -7
  109. package/esm2022/avatar/avatar.component.mjs +17 -19
  110. package/esm2022/avatar/avatar.module.mjs +6 -11
  111. package/esm2022/avatar/avatar.property.mjs +7 -7
  112. package/esm2022/back-top/back-top.component.mjs +23 -29
  113. package/esm2022/back-top/back-top.module.mjs +6 -11
  114. package/esm2022/back-top/back-top.property.mjs +3 -3
  115. package/esm2022/badge/badge.component.mjs +18 -23
  116. package/esm2022/badge/badge.module.mjs +6 -9
  117. package/esm2022/badge/badge.property.mjs +3 -3
  118. package/esm2022/base-form/base-form.component.mjs +11 -6
  119. package/esm2022/base-form/base-form.module.mjs +7 -8
  120. package/esm2022/base-form/base-form.property.mjs +4 -4
  121. package/esm2022/border/border.component.mjs +14 -12
  122. package/esm2022/border/border.module.mjs +6 -6
  123. package/esm2022/button/button.component.mjs +19 -24
  124. package/esm2022/button/button.module.mjs +6 -11
  125. package/esm2022/button/button.property.mjs +7 -7
  126. package/esm2022/button/buttons.component.mjs +15 -15
  127. package/esm2022/calendar/calendar.component.mjs +38 -30
  128. package/esm2022/calendar/calendar.module.mjs +6 -16
  129. package/esm2022/calendar/calendar.property.mjs +3 -3
  130. package/esm2022/card/card.component.mjs +14 -17
  131. package/esm2022/card/card.module.mjs +6 -11
  132. package/esm2022/card/card.property.mjs +3 -3
  133. package/esm2022/carousel/carousel-panel.component.mjs +36 -34
  134. package/esm2022/carousel/carousel.component.mjs +19 -26
  135. package/esm2022/carousel/carousel.module.mjs +7 -12
  136. package/esm2022/carousel/carousel.property.mjs +6 -6
  137. package/esm2022/cascade/cascade-portal.component.mjs +20 -20
  138. package/esm2022/cascade/cascade.component.mjs +34 -29
  139. package/esm2022/cascade/cascade.module.mjs +7 -16
  140. package/esm2022/cascade/cascade.property.mjs +3 -3
  141. package/esm2022/checkbox/checkbox.component.mjs +31 -27
  142. package/esm2022/checkbox/checkbox.module.mjs +6 -14
  143. package/esm2022/checkbox/checkbox.property.mjs +3 -3
  144. package/esm2022/collapse/collapse-panel.component.mjs +18 -21
  145. package/esm2022/collapse/collapse.component.mjs +11 -15
  146. package/esm2022/collapse/collapse.module.mjs +6 -11
  147. package/esm2022/collapse/collapse.property.mjs +6 -6
  148. package/esm2022/color/color.component.mjs +14 -19
  149. package/esm2022/color/color.module.mjs +6 -9
  150. package/esm2022/color/color.property.mjs +3 -3
  151. package/esm2022/color-picker/color-picker-portal.component.mjs +45 -35
  152. package/esm2022/color-picker/color-picker.component.mjs +36 -35
  153. package/esm2022/color-picker/color-picker.module.mjs +7 -44
  154. package/esm2022/color-picker/color-picker.property.mjs +3 -3
  155. package/esm2022/comment/comment-reply.component.mjs +18 -19
  156. package/esm2022/comment/comment.component.mjs +30 -25
  157. package/esm2022/comment/comment.module.mjs +6 -43
  158. package/esm2022/comment/comment.property.mjs +7 -7
  159. package/esm2022/container/aside.component.mjs +15 -13
  160. package/esm2022/container/container.component.mjs +14 -14
  161. package/esm2022/container/container.module.mjs +7 -37
  162. package/esm2022/container/container.property.mjs +12 -12
  163. package/esm2022/container/footer.component.mjs +17 -21
  164. package/esm2022/container/header.component.mjs +17 -21
  165. package/esm2022/container/main.component.mjs +14 -12
  166. package/esm2022/core/config/config.service.mjs +11 -6
  167. package/esm2022/core/services/http.service.mjs +3 -3
  168. package/esm2022/core/services/preloading-strategy.service.mjs +6 -5
  169. package/esm2022/core/services/storage.service.mjs +3 -3
  170. package/esm2022/core/theme/theme.service.mjs +3 -3
  171. package/esm2022/crumb/crumb.component.mjs +15 -19
  172. package/esm2022/crumb/crumb.module.mjs +6 -11
  173. package/esm2022/crumb/crumb.property.mjs +3 -3
  174. package/esm2022/date-picker/date-picker-portal.component.mjs +38 -29
  175. package/esm2022/date-picker/date-picker.component.mjs +52 -47
  176. package/esm2022/date-picker/date-picker.module.mjs +7 -108
  177. package/esm2022/date-picker/date-picker.property.mjs +18 -18
  178. package/esm2022/date-picker/date-quarter.pipe.mjs +5 -5
  179. package/esm2022/date-picker/date-range-portal.component.mjs +25 -13
  180. package/esm2022/date-picker/date-range.component.mjs +50 -51
  181. package/esm2022/date-picker/picker-date.component.mjs +45 -43
  182. package/esm2022/date-picker/picker-month.component.mjs +31 -30
  183. package/esm2022/date-picker/picker-quarter.component.mjs +31 -32
  184. package/esm2022/date-picker/picker-year.component.mjs +26 -25
  185. package/esm2022/description/description-item.component.mjs +6 -9
  186. package/esm2022/description/description.component.mjs +13 -14
  187. package/esm2022/description/description.module.mjs +6 -10
  188. package/esm2022/description/description.property.mjs +6 -6
  189. package/esm2022/dialog/dialog-container.component.mjs +7 -7
  190. package/esm2022/dialog/dialog-portal.component.mjs +22 -11
  191. package/esm2022/dialog/dialog-portal.directives.mjs +48 -48
  192. package/esm2022/dialog/dialog-ref.mjs +1 -1
  193. package/esm2022/dialog/dialog.component.mjs +40 -48
  194. package/esm2022/dialog/dialog.module.mjs +12 -71
  195. package/esm2022/dialog/dialog.property.mjs +6 -6
  196. package/esm2022/dialog/dialog.service.mjs +16 -17
  197. package/esm2022/doc/doc.component.mjs +12 -10
  198. package/esm2022/doc/doc.module.mjs +6 -8
  199. package/esm2022/drag/drag.directive.mjs +11 -11
  200. package/esm2022/drag/drag.module.mjs +6 -8
  201. package/esm2022/drag/drag.property.mjs +3 -3
  202. package/esm2022/drawer/drawer-container.component.mjs +7 -7
  203. package/esm2022/drawer/drawer-portal.component.mjs +12 -12
  204. package/esm2022/drawer/drawer-portal.directives.mjs +22 -21
  205. package/esm2022/drawer/drawer.component.mjs +23 -33
  206. package/esm2022/drawer/drawer.module.mjs +10 -27
  207. package/esm2022/drawer/drawer.property.mjs +6 -6
  208. package/esm2022/drawer/drawer.service.mjs +15 -15
  209. package/esm2022/dropdown/dropdown-portal.component.mjs +8 -7
  210. package/esm2022/dropdown/dropdown.component.mjs +18 -22
  211. package/esm2022/dropdown/dropdown.module.mjs +7 -14
  212. package/esm2022/dropdown/dropdown.property.mjs +3 -3
  213. package/esm2022/empty/empty.component.mjs +20 -18
  214. package/esm2022/empty/empty.module.mjs +6 -12
  215. package/esm2022/empty/empty.property.mjs +3 -3
  216. package/esm2022/examples/examples.component.mjs +12 -10
  217. package/esm2022/examples/examples.module.mjs +6 -8
  218. package/esm2022/find/find.component.mjs +48 -33
  219. package/esm2022/find/find.module.mjs +6 -54
  220. package/esm2022/find/find.property.mjs +3 -3
  221. package/esm2022/form/control.component.mjs +67 -40
  222. package/esm2022/form/form.component.mjs +28 -22
  223. package/esm2022/form/form.module.mjs +6 -71
  224. package/esm2022/form/form.property.mjs +6 -6
  225. package/esm2022/highlight/highlight.component.mjs +26 -24
  226. package/esm2022/highlight/highlight.module.mjs +6 -10
  227. package/esm2022/highlight/highlight.property.mjs +3 -3
  228. package/esm2022/i18n/i18n.directive.mjs +14 -11
  229. package/esm2022/i18n/i18n.module.mjs +6 -6
  230. package/esm2022/i18n/i18n.pipe.mjs +6 -5
  231. package/esm2022/i18n/i18n.service.mjs +9 -13
  232. package/esm2022/icon/icon.component.mjs +21 -22
  233. package/esm2022/icon/icon.module.mjs +6 -11
  234. package/esm2022/icon/icon.property.mjs +4 -4
  235. package/esm2022/icon/icon.service.mjs +36 -35
  236. package/esm2022/image/image-group.component.mjs +12 -6
  237. package/esm2022/image/image-preview.component.mjs +26 -32
  238. package/esm2022/image/image.component.mjs +30 -30
  239. package/esm2022/image/image.module.mjs +6 -15
  240. package/esm2022/image/image.property.mjs +6 -6
  241. package/esm2022/inner/inner.component.mjs +14 -14
  242. package/esm2022/inner/inner.module.mjs +6 -9
  243. package/esm2022/inner/inner.property.mjs +3 -3
  244. package/esm2022/input/input-group.component.mjs +12 -14
  245. package/esm2022/input/input.component.mjs +33 -35
  246. package/esm2022/input/input.module.mjs +6 -13
  247. package/esm2022/input/input.property.mjs +6 -6
  248. package/esm2022/input-number/input-number.component.mjs +23 -27
  249. package/esm2022/input-number/input-number.module.mjs +6 -13
  250. package/esm2022/input-number/input-number.property.mjs +3 -3
  251. package/esm2022/keyword/keyword.directive.mjs +14 -14
  252. package/esm2022/keyword/keyword.module.mjs +6 -9
  253. package/esm2022/keyword/keyword.property.mjs +5 -5
  254. package/esm2022/layout/col.component.mjs +15 -19
  255. package/esm2022/layout/layout.module.mjs +6 -9
  256. package/esm2022/layout/layout.property.mjs +7 -7
  257. package/esm2022/layout/row.component.mjs +13 -13
  258. package/esm2022/link/link.component.mjs +17 -19
  259. package/esm2022/link/link.module.mjs +6 -12
  260. package/esm2022/link/link.property.mjs +3 -3
  261. package/esm2022/list/list-drop-group.directive.mjs +5 -4
  262. package/esm2022/list/list-option.component.mjs +16 -17
  263. package/esm2022/list/list.component.mjs +36 -33
  264. package/esm2022/list/list.module.mjs +6 -54
  265. package/esm2022/list/list.property.mjs +6 -6
  266. package/esm2022/loading/loading.component.mjs +19 -22
  267. package/esm2022/loading/loading.module.mjs +6 -12
  268. package/esm2022/loading/loading.property.mjs +3 -3
  269. package/esm2022/menu/menu-node.component.mjs +17 -18
  270. package/esm2022/menu/menu.component.mjs +21 -27
  271. package/esm2022/menu/menu.module.mjs +6 -13
  272. package/esm2022/menu/menu.property.mjs +6 -6
  273. package/esm2022/message/message.component.mjs +10 -16
  274. package/esm2022/message/message.module.mjs +7 -14
  275. package/esm2022/message/message.service.mjs +13 -13
  276. package/esm2022/message-box/message-box.component.mjs +21 -12
  277. package/esm2022/message-box/message-box.module.mjs +7 -49
  278. package/esm2022/message-box/message-box.service.mjs +13 -12
  279. package/esm2022/notification/notification.component.mjs +10 -16
  280. package/esm2022/notification/notification.module.mjs +7 -14
  281. package/esm2022/notification/notification.service.mjs +15 -11
  282. package/esm2022/outlet/outlet.directive.mjs +10 -10
  283. package/esm2022/outlet/outlet.module.mjs +6 -8
  284. package/esm2022/page-header/page-header.component.mjs +18 -19
  285. package/esm2022/page-header/page-header.module.mjs +6 -10
  286. package/esm2022/page-header/page-header.property.mjs +3 -3
  287. package/esm2022/pagination/pagination.component.mjs +37 -33
  288. package/esm2022/pagination/pagination.module.mjs +6 -15
  289. package/esm2022/pagination/pagination.property.mjs +3 -3
  290. package/esm2022/pattern/pattern.component.mjs +12 -10
  291. package/esm2022/pattern/pattern.module.mjs +6 -8
  292. package/esm2022/popconfirm/popconfirm.component.mjs +23 -26
  293. package/esm2022/popconfirm/popconfirm.module.mjs +6 -13
  294. package/esm2022/popconfirm/popconfirm.property.mjs +3 -3
  295. package/esm2022/popover/popover-portal.component.mjs +16 -16
  296. package/esm2022/popover/popover.directive.mjs +17 -19
  297. package/esm2022/popover/popover.module.mjs +7 -13
  298. package/esm2022/popover/popover.property.mjs +3 -3
  299. package/esm2022/portal/portal.module.mjs +8 -11
  300. package/esm2022/portal/portal.service.mjs +13 -12
  301. package/esm2022/progress/progress.component.mjs +16 -19
  302. package/esm2022/progress/progress.module.mjs +6 -11
  303. package/esm2022/progress/progress.property.mjs +3 -3
  304. package/esm2022/radio/radio.component.mjs +21 -25
  305. package/esm2022/radio/radio.module.mjs +6 -14
  306. package/esm2022/radio/radio.property.mjs +3 -3
  307. package/esm2022/rate/rate.component.mjs +22 -22
  308. package/esm2022/rate/rate.module.mjs +6 -13
  309. package/esm2022/rate/rate.property.mjs +3 -3
  310. package/esm2022/resizable/resizable.directive.mjs +57 -46
  311. package/esm2022/resizable/resizable.module.mjs +7 -9
  312. package/esm2022/resizable/resizable.property.mjs +5 -5
  313. package/esm2022/result/result.component.mjs +15 -19
  314. package/esm2022/result/result.module.mjs +6 -11
  315. package/esm2022/result/result.property.mjs +3 -3
  316. package/esm2022/ripple/ripple.directive.mjs +12 -11
  317. package/esm2022/ripple/ripple.module.mjs +7 -10
  318. package/esm2022/ripple/ripple.property.mjs +3 -3
  319. package/esm2022/select/select-portal.component.mjs +7 -6
  320. package/esm2022/select/select.component.mjs +51 -50
  321. package/esm2022/select/select.module.mjs +7 -48
  322. package/esm2022/select/select.property.mjs +3 -3
  323. package/esm2022/skeleton/skeleton.component.mjs +14 -17
  324. package/esm2022/skeleton/skeleton.module.mjs +6 -10
  325. package/esm2022/skeleton/skeleton.property.mjs +3 -3
  326. package/esm2022/slider/slider.component.mjs +38 -39
  327. package/esm2022/slider/slider.module.mjs +7 -13
  328. package/esm2022/slider/slider.property.mjs +3 -3
  329. package/esm2022/slider-select/slider-select.component.mjs +46 -38
  330. package/esm2022/slider-select/slider-select.module.mjs +6 -38
  331. package/esm2022/slider-select/slider-select.property.mjs +3 -3
  332. package/esm2022/statistic/countdown.component.mjs +15 -16
  333. package/esm2022/statistic/statistic.component.mjs +13 -14
  334. package/esm2022/statistic/statistic.module.mjs +6 -11
  335. package/esm2022/statistic/statistic.property.mjs +6 -6
  336. package/esm2022/steps/steps.component.mjs +17 -22
  337. package/esm2022/steps/steps.module.mjs +6 -11
  338. package/esm2022/steps/steps.property.mjs +3 -3
  339. package/esm2022/switch/switch.component.mjs +18 -18
  340. package/esm2022/switch/switch.module.mjs +6 -13
  341. package/esm2022/switch/switch.property.mjs +3 -3
  342. package/esm2022/table/table-body.component.mjs +23 -13
  343. package/esm2022/table/table-foot.component.mjs +12 -16
  344. package/esm2022/table/table-head.component.mjs +35 -31
  345. package/esm2022/table/table.component.mjs +22 -13
  346. package/esm2022/table/table.module.mjs +6 -71
  347. package/esm2022/table/table.property.mjs +12 -12
  348. package/esm2022/tabs/tab-content.component.mjs +13 -11
  349. package/esm2022/tabs/tab-link.directive.mjs +11 -9
  350. package/esm2022/tabs/tab.component.mjs +11 -11
  351. package/esm2022/tabs/tabs.component.mjs +28 -27
  352. package/esm2022/tabs/tabs.module.mjs +7 -28
  353. package/esm2022/tabs/tabs.property.mjs +6 -6
  354. package/esm2022/tag/tag.component.mjs +16 -20
  355. package/esm2022/tag/tag.module.mjs +6 -11
  356. package/esm2022/tag/tag.property.mjs +3 -3
  357. package/esm2022/text-retract/text-retract.component.mjs +16 -19
  358. package/esm2022/text-retract/text-retract.module.mjs +6 -12
  359. package/esm2022/text-retract/text-retract.property.mjs +3 -3
  360. package/esm2022/textarea/textarea.component.mjs +24 -25
  361. package/esm2022/textarea/textarea.module.mjs +6 -12
  362. package/esm2022/textarea/textarea.property.mjs +3 -3
  363. package/esm2022/theme/theme.component.mjs +42 -31
  364. package/esm2022/theme/theme.module.mjs +6 -42
  365. package/esm2022/theme/theme.property.mjs +3 -3
  366. package/esm2022/time-ago/time-ago.module.mjs +6 -8
  367. package/esm2022/time-ago/time-ago.pipe.mjs +21 -21
  368. package/esm2022/time-picker/time-picker-frame.component.mjs +30 -30
  369. package/esm2022/time-picker/time-picker-portal.component.mjs +18 -20
  370. package/esm2022/time-picker/time-picker.component.mjs +40 -41
  371. package/esm2022/time-picker/time-picker.module.mjs +7 -48
  372. package/esm2022/time-picker/time-picker.property.mjs +3 -3
  373. package/esm2022/time-range/time-range.module.mjs +7 -7
  374. package/esm2022/time-range/time-range.pipe.mjs +5 -5
  375. package/esm2022/timeline/timeline.component.mjs +17 -20
  376. package/esm2022/timeline/timeline.module.mjs +6 -13
  377. package/esm2022/timeline/timeline.property.mjs +3 -3
  378. package/esm2022/tooltip/tooltip-portal.component.mjs +16 -16
  379. package/esm2022/tooltip/tooltip.directive.mjs +16 -19
  380. package/esm2022/tooltip/tooltip.module.mjs +7 -13
  381. package/esm2022/tooltip/tooltip.property.mjs +3 -3
  382. package/esm2022/transfer/transfer.component.mjs +70 -55
  383. package/esm2022/transfer/transfer.module.mjs +6 -59
  384. package/esm2022/transfer/transfer.property.mjs +3 -3
  385. package/esm2022/tree/tree-node.component.mjs +36 -30
  386. package/esm2022/tree/tree.component.mjs +12 -16
  387. package/esm2022/tree/tree.module.mjs +6 -43
  388. package/esm2022/tree/tree.property.mjs +6 -6
  389. package/esm2022/tree/tree.service.mjs +6 -5
  390. package/esm2022/tree-file/tree-file.component.mjs +34 -31
  391. package/esm2022/tree-file/tree-file.module.mjs +6 -15
  392. package/esm2022/tree-file/tree-file.property.mjs +3 -3
  393. package/esm2022/tree-select/tree-select-portal.component.mjs +24 -26
  394. package/esm2022/tree-select/tree-select.component.mjs +52 -51
  395. package/esm2022/tree-select/tree-select.module.mjs +8 -56
  396. package/esm2022/tree-select/tree-select.property.mjs +3 -3
  397. package/esm2022/typography/typography.component.mjs +12 -12
  398. package/esm2022/typography/typography.module.mjs +6 -9
  399. package/esm2022/typography/typography.property.mjs +3 -3
  400. package/esm2022/upload/upload-portal.component.mjs +11 -12
  401. package/esm2022/upload/upload.component.mjs +42 -43
  402. package/esm2022/upload/upload.module.mjs +6 -55
  403. package/esm2022/upload/upload.property.mjs +3 -3
  404. package/examples/examples.component.d.ts +6 -6
  405. package/examples/examples.module.d.ts +1 -2
  406. package/fesm2022/ng-nest-ui-affix.mjs +18 -21
  407. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  408. package/fesm2022/ng-nest-ui-alert.mjs +25 -32
  409. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  410. package/fesm2022/ng-nest-ui-anchor.mjs +32 -37
  411. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  412. package/fesm2022/ng-nest-ui-api.mjs +18 -18
  413. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  414. package/fesm2022/ng-nest-ui-auto-complete.mjs +65 -57
  415. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  416. package/fesm2022/ng-nest-ui-avatar.mjs +33 -38
  417. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  418. package/fesm2022/ng-nest-ui-back-top.mjs +30 -39
  419. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  420. package/fesm2022/ng-nest-ui-badge.mjs +25 -32
  421. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  422. package/fesm2022/ng-nest-ui-base-form.mjs +19 -14
  423. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  424. package/fesm2022/ng-nest-ui-border.mjs +18 -16
  425. package/fesm2022/ng-nest-ui-border.mjs.map +1 -1
  426. package/fesm2022/ng-nest-ui-button.mjs +40 -49
  427. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  428. package/fesm2022/ng-nest-ui-calendar.mjs +44 -44
  429. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  430. package/fesm2022/ng-nest-ui-card.mjs +21 -28
  431. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  432. package/fesm2022/ng-nest-ui-carousel.mjs +62 -68
  433. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  434. package/fesm2022/ng-nest-ui-cascade.mjs +58 -58
  435. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  436. package/fesm2022/ng-nest-ui-checkbox.mjs +37 -39
  437. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  438. package/fesm2022/ng-nest-ui-collapse.mjs +36 -47
  439. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  440. package/fesm2022/ng-nest-ui-color-picker.mjs +84 -106
  441. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  442. package/fesm2022/ng-nest-ui-color.mjs +22 -28
  443. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  444. package/fesm2022/ng-nest-ui-comment.mjs +51 -83
  445. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  446. package/fesm2022/ng-nest-ui-container.mjs +80 -114
  447. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  448. package/fesm2022/ng-nest-ui-core.mjs +24 -18
  449. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  450. package/fesm2022/ng-nest-ui-crumb.mjs +22 -30
  451. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  452. package/fesm2022/ng-nest-ui-date-picker.mjs +277 -326
  453. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  454. package/fesm2022/ng-nest-ui-description.mjs +28 -35
  455. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  456. package/fesm2022/ng-nest-ui-dialog.mjs +193 -242
  457. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  458. package/fesm2022/ng-nest-ui-doc.mjs +16 -16
  459. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  460. package/fesm2022/ng-nest-ui-drag.mjs +19 -20
  461. package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
  462. package/fesm2022/ng-nest-ui-drawer.mjs +128 -149
  463. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  464. package/fesm2022/ng-nest-ui-dropdown.mjs +33 -38
  465. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  466. package/fesm2022/ng-nest-ui-empty.mjs +26 -31
  467. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  468. package/fesm2022/ng-nest-ui-examples.mjs +16 -16
  469. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  470. package/fesm2022/ng-nest-ui-find.mjs +55 -86
  471. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  472. package/fesm2022/ng-nest-ui-form.mjs +98 -126
  473. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  474. package/fesm2022/ng-nest-ui-highlight.mjs +33 -33
  475. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  476. package/fesm2022/ng-nest-ui-i18n.mjs +29 -29
  477. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  478. package/fesm2022/ng-nest-ui-icon.mjs +62 -64
  479. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  480. package/fesm2022/ng-nest-ui-image.mjs +69 -75
  481. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  482. package/fesm2022/ng-nest-ui-inner.mjs +21 -24
  483. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  484. package/fesm2022/ng-nest-ui-input-number.mjs +31 -38
  485. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  486. package/fesm2022/ng-nest-ui-input.mjs +51 -60
  487. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  488. package/fesm2022/ng-nest-ui-keyword.mjs +22 -24
  489. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  490. package/fesm2022/ng-nest-ui-layout.mjs +35 -41
  491. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  492. package/fesm2022/ng-nest-ui-link.mjs +24 -31
  493. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  494. package/fesm2022/ng-nest-ui-list.mjs +63 -100
  495. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  496. package/fesm2022/ng-nest-ui-loading.mjs +26 -34
  497. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  498. package/fesm2022/ng-nest-ui-menu.mjs +42 -54
  499. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  500. package/fesm2022/ng-nest-ui-message-box.mjs +38 -66
  501. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  502. package/fesm2022/ng-nest-ui-message.mjs +26 -37
  503. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  504. package/fesm2022/ng-nest-ui-notification.mjs +28 -35
  505. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  506. package/fesm2022/ng-nest-ui-outlet.mjs +14 -16
  507. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  508. package/fesm2022/ng-nest-ui-page-header.mjs +25 -30
  509. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  510. package/fesm2022/ng-nest-ui-pagination.mjs +43 -47
  511. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  512. package/fesm2022/ng-nest-ui-pattern.mjs +16 -16
  513. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  514. package/fesm2022/ng-nest-ui-popconfirm.mjs +30 -40
  515. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  516. package/fesm2022/ng-nest-ui-popover.mjs +39 -44
  517. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  518. package/fesm2022/ng-nest-ui-portal.mjs +26 -26
  519. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  520. package/fesm2022/ng-nest-ui-progress.mjs +22 -29
  521. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  522. package/fesm2022/ng-nest-ui-radio.mjs +28 -38
  523. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  524. package/fesm2022/ng-nest-ui-rate.mjs +29 -34
  525. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  526. package/fesm2022/ng-nest-ui-resizable.mjs +67 -57
  527. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  528. package/fesm2022/ng-nest-ui-result.mjs +22 -30
  529. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  530. package/fesm2022/ng-nest-ui-ripple.mjs +20 -21
  531. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  532. package/fesm2022/ng-nest-ui-select.mjs +66 -100
  533. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  534. package/fesm2022/ng-nest-ui-skeleton.mjs +21 -27
  535. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  536. package/fesm2022/ng-nest-ui-slider-select.mjs +53 -73
  537. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  538. package/fesm2022/ng-nest-ui-slider.mjs +46 -52
  539. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  540. package/fesm2022/ng-nest-ui-statistic.mjs +34 -40
  541. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  542. package/fesm2022/ng-nest-ui-steps.mjs +24 -33
  543. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  544. package/fesm2022/ng-nest-ui-switch.mjs +25 -30
  545. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  546. package/fesm2022/ng-nest-ui-table.mjs +111 -154
  547. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  548. package/fesm2022/ng-nest-ui-tabs.mjs +67 -79
  549. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  550. package/fesm2022/ng-nest-ui-tag.mjs +23 -31
  551. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  552. package/fesm2022/ng-nest-ui-text-retract.mjs +22 -30
  553. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  554. package/fesm2022/ng-nest-ui-textarea.mjs +31 -36
  555. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  556. package/fesm2022/ng-nest-ui-theme.mjs +49 -71
  557. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  558. package/fesm2022/ng-nest-ui-time-ago.mjs +24 -26
  559. package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
  560. package/fesm2022/ng-nest-ui-time-picker.mjs +89 -127
  561. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  562. package/fesm2022/ng-nest-ui-time-range.mjs +10 -10
  563. package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
  564. package/fesm2022/ng-nest-ui-timeline.mjs +24 -33
  565. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  566. package/fesm2022/ng-nest-ui-tooltip.mjs +38 -44
  567. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  568. package/fesm2022/ng-nest-ui-transfer.mjs +76 -111
  569. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  570. package/fesm2022/ng-nest-ui-tree-file.mjs +41 -46
  571. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  572. package/fesm2022/ng-nest-ui-tree-select.mjs +83 -126
  573. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  574. package/fesm2022/ng-nest-ui-tree.mjs +60 -89
  575. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  576. package/fesm2022/ng-nest-ui-typography.mjs +19 -21
  577. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  578. package/fesm2022/ng-nest-ui-upload.mjs +58 -106
  579. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  580. package/find/find.component.d.ts +6 -8
  581. package/find/find.module.d.ts +1 -13
  582. package/form/control.component.d.ts +6 -7
  583. package/form/form.component.d.ts +5 -8
  584. package/form/form.module.d.ts +1 -24
  585. package/highlight/highlight.component.d.ts +12 -10
  586. package/highlight/highlight.module.d.ts +1 -4
  587. package/i18n/i18n.directive.d.ts +6 -7
  588. package/i18n/i18n.module.d.ts +1 -1
  589. package/i18n/i18n.pipe.d.ts +1 -1
  590. package/i18n/i18n.service.d.ts +3 -2
  591. package/icon/icon.component.d.ts +7 -9
  592. package/icon/icon.module.d.ts +1 -3
  593. package/icon/icon.property.d.ts +1 -1
  594. package/icon/icon.service.d.ts +6 -7
  595. package/image/image-group.component.d.ts +3 -1
  596. package/image/image-preview.component.d.ts +5 -10
  597. package/image/image.component.d.ts +9 -14
  598. package/image/image.module.d.ts +3 -11
  599. package/inner/inner.component.d.ts +2 -3
  600. package/inner/inner.module.d.ts +1 -3
  601. package/input/input-group.component.d.ts +3 -6
  602. package/input/input.component.d.ts +8 -10
  603. package/input/input.module.d.ts +2 -8
  604. package/input-number/input-number.component.d.ts +5 -6
  605. package/input-number/input-number.module.d.ts +1 -7
  606. package/keyword/keyword.directive.d.ts +3 -4
  607. package/keyword/keyword.module.d.ts +1 -3
  608. package/keyword/keyword.property.d.ts +1 -1
  609. package/layout/col.component.d.ts +5 -7
  610. package/layout/layout.module.d.ts +1 -3
  611. package/layout/row.component.d.ts +3 -4
  612. package/link/link.component.d.ts +5 -7
  613. package/link/link.module.d.ts +1 -6
  614. package/list/list-drop-group.directive.d.ts +1 -1
  615. package/list/list-option.component.d.ts +6 -7
  616. package/list/list.component.d.ts +9 -12
  617. package/list/list.module.d.ts +1 -13
  618. package/loading/loading.component.d.ts +7 -10
  619. package/loading/loading.module.d.ts +1 -6
  620. package/menu/menu-node.component.d.ts +6 -7
  621. package/menu/menu.component.d.ts +4 -8
  622. package/menu/menu.module.d.ts +1 -7
  623. package/message/message.component.d.ts +3 -7
  624. package/message/message.module.d.ts +1 -5
  625. package/message/message.service.d.ts +4 -5
  626. package/message-box/message-box.component.d.ts +1 -1
  627. package/message-box/message-box.module.d.ts +1 -11
  628. package/message-box/message-box.service.d.ts +2 -5
  629. package/notification/notification.component.d.ts +3 -7
  630. package/notification/notification.module.d.ts +1 -5
  631. package/notification/notification.service.d.ts +1 -3
  632. package/outlet/outlet.directive.d.ts +4 -5
  633. package/outlet/outlet.module.d.ts +1 -2
  634. package/package.json +36 -36
  635. package/page-header/page-header.component.d.ts +5 -7
  636. package/page-header/page-header.module.d.ts +1 -4
  637. package/pagination/pagination.component.d.ts +8 -11
  638. package/pagination/pagination.module.d.ts +1 -9
  639. package/pattern/pattern.component.d.ts +4 -4
  640. package/pattern/pattern.module.d.ts +1 -2
  641. package/popconfirm/popconfirm.component.d.ts +6 -9
  642. package/popconfirm/popconfirm.module.d.ts +1 -7
  643. package/popover/popover-portal.component.d.ts +4 -5
  644. package/popover/popover.directive.d.ts +9 -10
  645. package/popover/popover.module.d.ts +1 -6
  646. package/portal/portal.module.d.ts +1 -3
  647. package/portal/portal.service.d.ts +3 -4
  648. package/progress/progress.component.d.ts +3 -7
  649. package/progress/progress.module.d.ts +1 -5
  650. package/radio/radio.component.d.ts +6 -9
  651. package/radio/radio.module.d.ts +1 -8
  652. package/rate/rate.component.d.ts +6 -8
  653. package/rate/rate.module.d.ts +1 -7
  654. package/resizable/resizable.directive.d.ts +5 -7
  655. package/resizable/resizable.module.d.ts +1 -2
  656. package/resizable/resizable.property.d.ts +1 -1
  657. package/result/result.component.d.ts +3 -7
  658. package/result/result.module.d.ts +1 -5
  659. package/ripple/ripple.directive.d.ts +4 -5
  660. package/ripple/ripple.module.d.ts +1 -3
  661. package/select/select-portal.component.d.ts +1 -1
  662. package/select/select.component.d.ts +14 -15
  663. package/select/select.module.d.ts +1 -12
  664. package/skeleton/skeleton.component.d.ts +3 -6
  665. package/skeleton/skeleton.module.d.ts +1 -4
  666. package/slider/slider.component.d.ts +5 -8
  667. package/slider/slider.module.d.ts +1 -7
  668. package/slider-select/slider-select.component.d.ts +6 -7
  669. package/slider-select/slider-select.module.d.ts +1 -9
  670. package/statistic/countdown.component.d.ts +6 -7
  671. package/statistic/statistic.component.d.ts +2 -3
  672. package/statistic/statistic.module.d.ts +1 -5
  673. package/steps/steps.component.d.ts +4 -8
  674. package/steps/steps.module.d.ts +1 -5
  675. package/style/core/index.css +1 -1
  676. package/style/params/colors.scss +1 -1
  677. package/switch/switch.component.d.ts +6 -7
  678. package/switch/switch.module.d.ts +1 -7
  679. package/table/table-body.component.d.ts +1 -1
  680. package/table/table-foot.component.d.ts +3 -6
  681. package/table/table-head.component.d.ts +5 -8
  682. package/table/table.component.d.ts +1 -1
  683. package/table/table.module.d.ts +4 -17
  684. package/tabs/tab-content.component.d.ts +6 -6
  685. package/tabs/tab-link.directive.d.ts +2 -2
  686. package/tabs/tab.component.d.ts +2 -3
  687. package/tabs/tabs.component.d.ts +8 -9
  688. package/tabs/tabs.module.d.ts +3 -9
  689. package/tag/tag.component.d.ts +4 -8
  690. package/tag/tag.module.d.ts +1 -5
  691. package/text-retract/text-retract.component.d.ts +6 -10
  692. package/text-retract/text-retract.module.d.ts +1 -6
  693. package/textarea/textarea.component.d.ts +5 -7
  694. package/textarea/textarea.module.d.ts +1 -6
  695. package/theme/theme.component.d.ts +8 -9
  696. package/theme/theme.module.d.ts +1 -10
  697. package/time-ago/time-ago.module.d.ts +1 -1
  698. package/time-ago/time-ago.pipe.d.ts +6 -9
  699. package/time-picker/time-picker-frame.component.d.ts +5 -6
  700. package/time-picker/time-picker-portal.component.d.ts +5 -7
  701. package/time-picker/time-picker.component.d.ts +14 -16
  702. package/time-picker/time-picker.module.d.ts +2 -13
  703. package/time-range/time-range.module.d.ts +1 -1
  704. package/time-range/time-range.pipe.d.ts +1 -1
  705. package/timeline/timeline.component.d.ts +5 -8
  706. package/timeline/timeline.module.d.ts +1 -7
  707. package/tooltip/tooltip-portal.component.d.ts +4 -5
  708. package/tooltip/tooltip.directive.d.ts +8 -9
  709. package/tooltip/tooltip.module.d.ts +1 -6
  710. package/transfer/transfer.component.d.ts +6 -9
  711. package/transfer/transfer.module.d.ts +1 -15
  712. package/tree/tree-node.component.d.ts +6 -10
  713. package/tree/tree.component.d.ts +1 -1
  714. package/tree/tree.module.d.ts +1 -11
  715. package/tree-file/tree-file.component.d.ts +5 -10
  716. package/tree-file/tree-file.module.d.ts +1 -9
  717. package/tree-select/tree-select-portal.component.d.ts +5 -7
  718. package/tree-select/tree-select.component.d.ts +14 -15
  719. package/tree-select/tree-select.module.d.ts +1 -14
  720. package/typography/typography.component.d.ts +3 -4
  721. package/typography/typography.module.d.ts +1 -3
  722. package/upload/upload-portal.component.d.ts +5 -7
  723. package/upload/upload.component.d.ts +12 -16
  724. package/upload/upload.module.d.ts +1 -14
@@ -1,20 +1,41 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, Optional, Inject, HostBinding } from '@angular/core';
2
- import { XMoveBoxAnimation, XIsChange, XIsFunction, XIsEmpty, XClearClass, XOpacityAnimation } from '@ng-nest/ui/core';
1
+ import { Component, ViewEncapsulation, Renderer2, ElementRef, ChangeDetectorRef, ChangeDetectionStrategy, ViewChild, ViewContainerRef, HostBinding, inject } from '@angular/core';
2
+ import { XMoveBoxAnimation, XIsChange, XIsFunction, XConfigService, XIsEmpty, XClearClass, XOpacityAnimation } from '@ng-nest/ui/core';
3
3
  import { XDialogPrefix, XDialogProperty, XDialogContainer, X_DIALOG_CONTAINER } from './dialog.property';
4
- import { PortalResizablePrefix } from '@ng-nest/ui/portal';
4
+ import { PortalResizablePrefix, XPortalService } from '@ng-nest/ui/portal';
5
5
  import { Subject } from 'rxjs';
6
+ import { Overlay } from '@angular/cdk/overlay';
7
+ import { XI18nService } from '@ng-nest/ui/i18n';
6
8
  import { map, takeUntil } from 'rxjs/operators';
9
+ import { XAlertComponent } from '@ng-nest/ui/alert';
10
+ import { XButtonComponent, XButtonsComponent } from '@ng-nest/ui/button';
11
+ import { XOutletDirective } from '@ng-nest/ui/outlet';
12
+ import { NgStyle, NgTemplateOutlet } from '@angular/common';
7
13
  import * as i0 from "@angular/core";
8
- import * as i1 from "@ng-nest/ui/portal";
9
- import * as i2 from "@angular/cdk/overlay";
10
- import * as i3 from "@ng-nest/ui/i18n";
11
- import * as i4 from "@ng-nest/ui/core";
12
- import * as i5 from "@angular/common";
13
- import * as i6 from "@ng-nest/ui/button";
14
- import * as i7 from "@ng-nest/ui/alert";
15
- import * as i8 from "@ng-nest/ui/outlet";
16
- import * as i9 from "./dialog-container.component";
17
14
  export class XDialogComponent extends XDialogProperty {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.locale = {};
18
+ this.initHeight = 0;
19
+ this.initContentHeight = 0;
20
+ this.isMaximize = false;
21
+ this.isDefaultMaximize = false;
22
+ this.dialogBox = {};
23
+ this.contentBox = {};
24
+ this.distance = { x: 0, y: 0 };
25
+ this.viewInit = false;
26
+ this.action = null;
27
+ this.containerInit = false;
28
+ this._unSubject = new Subject();
29
+ this.renderer = inject(Renderer2);
30
+ this.elementRef = inject(ElementRef);
31
+ this.cdr = inject(ChangeDetectorRef);
32
+ this.viewContainerRef = inject(ViewContainerRef);
33
+ this.protalService = inject(XPortalService);
34
+ this.overlay = inject(Overlay);
35
+ this.i18n = inject(XI18nService);
36
+ this.container = inject(X_DIALOG_CONTAINER, { optional: true });
37
+ this.configService = inject(XConfigService);
38
+ }
18
39
  get getVisible() {
19
40
  return this.visible;
20
41
  }
@@ -35,32 +56,8 @@ export class XDialogComponent extends XDialogProperty {
35
56
  }
36
57
  : {};
37
58
  }
38
- constructor(renderer, elementRef, cdr, viewContainerRef, protalService, overlay, i18n, configService, container) {
39
- super();
40
- this.renderer = renderer;
41
- this.elementRef = elementRef;
42
- this.cdr = cdr;
43
- this.viewContainerRef = viewContainerRef;
44
- this.protalService = protalService;
45
- this.overlay = overlay;
46
- this.i18n = i18n;
47
- this.configService = configService;
48
- this.container = container;
49
- this.locale = {};
50
- this.initHeight = 0;
51
- this.initContentHeight = 0;
52
- this.isMaximize = false;
53
- this.isDefaultMaximize = false;
54
- this.dialogBox = {};
55
- this.contentBox = {};
56
- this.distance = { x: 0, y: 0 };
57
- this.viewInit = false;
58
- this.action = null;
59
- this.containerInit = false;
60
- this._unSubject = new Subject();
61
- this.scrollStrategy = this.protalService.overlay.scrollStrategies.block();
62
- }
63
59
  ngOnInit() {
60
+ this.scrollStrategy = this.protalService.overlay.scrollStrategies.block();
64
61
  this.i18n.localeChange
65
62
  .pipe(map((x) => x.dialog), takeUntil(this._unSubject))
66
63
  .subscribe((x) => {
@@ -280,22 +277,17 @@ export class XDialogComponent extends XDialogProperty {
280
277
  this.renderer.setStyle(this.dialogContent, 'height', `${contentHeight}px`);
281
278
  }
282
279
  }
283
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XDialogComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i1.XPortalService }, { token: i2.Overlay }, { token: i3.XI18nService }, { token: i4.XConfigService }, { token: X_DIALOG_CONTAINER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
284
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XDialogComponent, selector: "x-dialog", host: { properties: { "class.x-dialog-visible": "this.getVisible" } }, viewQueries: [{ propertyName: "dialogTpl", first: true, predicate: ["dialogTpl"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #dialogTpl>\r\n <div class=\"x-dialog-backdrop\" *ngIf=\"container && hasBackdrop\" [@x-opacity-animation]=\"visible\" (click)=\"onClose('close')\"></div>\r\n <div\r\n class=\"x-dialog\"\r\n [@x-move-box-animation]=\"placement\"\r\n (@x-move-box-animation.done)=\"moveDone($event)\"\r\n [class.x-dialog-maximize]=\"isMaximize\"\r\n [class.x-dialog-resizable]=\"resizable\"\r\n [class.x-dialog-default-maximize]=\"isDefaultMaximize\"\r\n [ngStyle]=\"getStyle\"\r\n >\r\n <x-alert\r\n [draggable]=\"draggable && dialogBox['draggable']\"\r\n [resizable]=\"resizable && dialogBox['resizable']\"\r\n [dragFreeDragPosition]=\"dialogBox['distance']\"\r\n [offsetLeft]=\"offsetLeft\"\r\n [offsetTop]=\"offsetTop\"\r\n [minWidth]=\"dialogBox['minWidth']\"\r\n [minHeight]=\"dialogBox['minHeight']\"\r\n [dragBoundary]=\"'.cdk-overlay-container'\"\r\n [title]=\"title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"type\"\r\n [effect]=\"effect\"\r\n [hideClose]=\"hideClose\"\r\n [closeText]=\"closeText\"\r\n [operationTpl]=\"operationTpl\"\r\n (close)=\"onClose('close')\"\r\n (dragEnded)=\"onDragEnded($event)\"\r\n (resizing)=\"onResizing($event)\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #contentTpl>\r\n <div class=\"x-dialog-inner\">\r\n <div class=\"x-dialog-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"x-dialog-buttons\" [class.x-dialog-buttons-center]=\"buttonsCenter\">\r\n <ng-container *xOutlet=\"footer\">\r\n <x-buttons space=\"1\" *ngIf=\"showCancel || showConfirm\">\r\n <x-button *ngIf=\"showCancel\" (click)=\"onClose('cancel')\">{{ getCancelText }}</x-button>\r\n <x-button *ngIf=\"showConfirm\" type=\"primary\" (click)=\"onClose('confirm')\">{{ getConfirmText }}</x-button>\r\n </x-buttons>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #operationTpl>\r\n <ng-container *ngIf=\"maximize || resizable\">\r\n <x-button size=\"small\" [icon]=\"isMaximize ? 'fto-minimize' : 'fto-maximize'\" [onlyIcon]=\"true\" (click)=\"onSize()\"></x-button>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-container *ngIf=\"container && visible\">\r\n <ng-container *ngTemplateOutlet=\"dialogTpl\"></ng-container>\r\n</ng-container>\r\n", styles: [".x-dialog{margin:0;padding:0;width:100%;height:100%}.x-dialog>x-alert{height:100%}.x-dialog>x-alert .x-alert{min-height:100%;height:-moz-fit-content;height:fit-content;align-items:inherit;padding:0}.x-dialog>x-alert .x-alert-inner{min-height:100%;display:flex;flex-direction:column}.x-dialog>x-alert .x-alert-title{padding:1rem 1rem 0}.x-dialog>x-alert .x-alert-content{flex:1;display:flex;flex-direction:column;padding:0 1rem .5rem}.x-dialog-inner{display:flex;flex-direction:column;margin:.5rem 0;flex:1}.x-dialog-buttons{display:flex;justify-content:flex-end}.x-dialog-buttons>x-buttons{margin-top:1rem;align-self:flex-end}.x-dialog-buttons-center{justify-content:center}.x-dialog-content{display:inline-flex;flex-direction:column;flex:1;max-height:70vh;overflow:auto;min-height:2rem}.x-dialog-maximize>x-alert .x-alert{left:0!important;top:0!important}.x-dialog-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important}.x-dialog-default-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important;flex:initial}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.XButtonComponent, selector: "x-button" }, { kind: "component", type: i6.XButtonsComponent, selector: "x-buttons" }, { kind: "component", type: i7.XAlertComponent, selector: "x-alert" }, { kind: "directive", type: i8.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], animations: [XMoveBoxAnimation, XOpacityAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
280
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
281
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.7", type: XDialogComponent, isStandalone: true, selector: "x-dialog", host: { properties: { "class.x-dialog-visible": "this.getVisible" } }, viewQueries: [{ propertyName: "dialogTpl", first: true, predicate: ["dialogTpl"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #dialogTpl>\r\n @if (container && hasBackdrop) {\r\n <div class=\"x-dialog-backdrop\" [@x-opacity-animation]=\"visible\" (click)=\"onClose('close')\"></div>\r\n }\r\n <div\r\n class=\"x-dialog\"\r\n [@x-move-box-animation]=\"placement\"\r\n (@x-move-box-animation.done)=\"moveDone($event)\"\r\n [class.x-dialog-maximize]=\"isMaximize\"\r\n [class.x-dialog-resizable]=\"resizable\"\r\n [class.x-dialog-default-maximize]=\"isDefaultMaximize\"\r\n [ngStyle]=\"getStyle\"\r\n >\r\n <x-alert\r\n [draggable]=\"draggable && dialogBox['draggable']\"\r\n [resizable]=\"resizable && dialogBox['resizable']\"\r\n [dragFreeDragPosition]=\"dialogBox['distance']\"\r\n [offsetLeft]=\"offsetLeft\"\r\n [offsetTop]=\"offsetTop\"\r\n [minWidth]=\"dialogBox['minWidth']\"\r\n [minHeight]=\"dialogBox['minHeight']\"\r\n [dragBoundary]=\"'.cdk-overlay-container'\"\r\n [title]=\"title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"type\"\r\n [effect]=\"effect\"\r\n [hideClose]=\"hideClose\"\r\n [closeText]=\"closeText\"\r\n [operationTpl]=\"operationTpl\"\r\n (close)=\"onClose('close')\"\r\n (dragEnded)=\"onDragEnded($event)\"\r\n (resizing)=\"onResizing($event)\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #contentTpl>\r\n <div class=\"x-dialog-inner\">\r\n <div class=\"x-dialog-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"x-dialog-buttons\" [class.x-dialog-buttons-center]=\"buttonsCenter\">\r\n <ng-container *xOutlet=\"footer\">\r\n @if (showCancel || showConfirm) {\r\n <x-buttons space=\"1\">\r\n @if (showCancel) {\r\n <x-button (click)=\"onClose('cancel')\">{{ getCancelText }}</x-button>\r\n }\r\n @if (showConfirm) {\r\n <x-button type=\"primary\" (click)=\"onClose('confirm')\">{{ getConfirmText }}</x-button>\r\n }\r\n </x-buttons>\r\n }\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #operationTpl>\r\n @if (maximize || resizable) {\r\n <x-button\r\n size=\"small\"\r\n [icon]=\"isMaximize ? 'fto-minimize' : 'fto-maximize'\"\r\n [onlyIcon]=\"true\"\r\n (click)=\"onSize()\"\r\n ></x-button>\r\n }\r\n</ng-template>\r\n\r\n@if (container && visible) {\r\n <ng-container *ngTemplateOutlet=\"dialogTpl\"></ng-container>\r\n}\r\n", styles: [".x-dialog{margin:0;padding:0;width:100%;height:100%}.x-dialog>x-alert{height:100%}.x-dialog>x-alert .x-alert{min-height:100%;height:-moz-fit-content;height:fit-content;align-items:inherit;padding:0}.x-dialog>x-alert .x-alert-inner{min-height:100%;display:flex;flex-direction:column}.x-dialog>x-alert .x-alert-title{padding:1rem 1rem 0}.x-dialog>x-alert .x-alert-content{flex:1;display:flex;flex-direction:column;padding:0 1rem .5rem}.x-dialog-inner{display:flex;flex-direction:column;margin:.5rem 0;flex:1}.x-dialog-buttons{display:flex;justify-content:flex-end}.x-dialog-buttons>x-buttons{margin-top:1rem;align-self:flex-end}.x-dialog-buttons-center{justify-content:center}.x-dialog-content{display:inline-flex;flex-direction:column;flex:1;max-height:70vh;overflow:auto;min-height:2rem}.x-dialog-maximize>x-alert .x-alert{left:0!important;top:0!important}.x-dialog-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important}.x-dialog-default-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important;flex:initial}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: XAlertComponent, selector: "x-alert" }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XButtonsComponent, selector: "x-buttons" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], animations: [XMoveBoxAnimation, XOpacityAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
285
282
  }
286
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XDialogComponent, decorators: [{
283
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XDialogComponent, decorators: [{
287
284
  type: Component,
288
- args: [{ selector: `${XDialogPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XMoveBoxAnimation, XOpacityAnimation], template: "<ng-template #dialogTpl>\r\n <div class=\"x-dialog-backdrop\" *ngIf=\"container && hasBackdrop\" [@x-opacity-animation]=\"visible\" (click)=\"onClose('close')\"></div>\r\n <div\r\n class=\"x-dialog\"\r\n [@x-move-box-animation]=\"placement\"\r\n (@x-move-box-animation.done)=\"moveDone($event)\"\r\n [class.x-dialog-maximize]=\"isMaximize\"\r\n [class.x-dialog-resizable]=\"resizable\"\r\n [class.x-dialog-default-maximize]=\"isDefaultMaximize\"\r\n [ngStyle]=\"getStyle\"\r\n >\r\n <x-alert\r\n [draggable]=\"draggable && dialogBox['draggable']\"\r\n [resizable]=\"resizable && dialogBox['resizable']\"\r\n [dragFreeDragPosition]=\"dialogBox['distance']\"\r\n [offsetLeft]=\"offsetLeft\"\r\n [offsetTop]=\"offsetTop\"\r\n [minWidth]=\"dialogBox['minWidth']\"\r\n [minHeight]=\"dialogBox['minHeight']\"\r\n [dragBoundary]=\"'.cdk-overlay-container'\"\r\n [title]=\"title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"type\"\r\n [effect]=\"effect\"\r\n [hideClose]=\"hideClose\"\r\n [closeText]=\"closeText\"\r\n [operationTpl]=\"operationTpl\"\r\n (close)=\"onClose('close')\"\r\n (dragEnded)=\"onDragEnded($event)\"\r\n (resizing)=\"onResizing($event)\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #contentTpl>\r\n <div class=\"x-dialog-inner\">\r\n <div class=\"x-dialog-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"x-dialog-buttons\" [class.x-dialog-buttons-center]=\"buttonsCenter\">\r\n <ng-container *xOutlet=\"footer\">\r\n <x-buttons space=\"1\" *ngIf=\"showCancel || showConfirm\">\r\n <x-button *ngIf=\"showCancel\" (click)=\"onClose('cancel')\">{{ getCancelText }}</x-button>\r\n <x-button *ngIf=\"showConfirm\" type=\"primary\" (click)=\"onClose('confirm')\">{{ getConfirmText }}</x-button>\r\n </x-buttons>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #operationTpl>\r\n <ng-container *ngIf=\"maximize || resizable\">\r\n <x-button size=\"small\" [icon]=\"isMaximize ? 'fto-minimize' : 'fto-maximize'\" [onlyIcon]=\"true\" (click)=\"onSize()\"></x-button>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-container *ngIf=\"container && visible\">\r\n <ng-container *ngTemplateOutlet=\"dialogTpl\"></ng-container>\r\n</ng-container>\r\n", styles: [".x-dialog{margin:0;padding:0;width:100%;height:100%}.x-dialog>x-alert{height:100%}.x-dialog>x-alert .x-alert{min-height:100%;height:-moz-fit-content;height:fit-content;align-items:inherit;padding:0}.x-dialog>x-alert .x-alert-inner{min-height:100%;display:flex;flex-direction:column}.x-dialog>x-alert .x-alert-title{padding:1rem 1rem 0}.x-dialog>x-alert .x-alert-content{flex:1;display:flex;flex-direction:column;padding:0 1rem .5rem}.x-dialog-inner{display:flex;flex-direction:column;margin:.5rem 0;flex:1}.x-dialog-buttons{display:flex;justify-content:flex-end}.x-dialog-buttons>x-buttons{margin-top:1rem;align-self:flex-end}.x-dialog-buttons-center{justify-content:center}.x-dialog-content{display:inline-flex;flex-direction:column;flex:1;max-height:70vh;overflow:auto;min-height:2rem}.x-dialog-maximize>x-alert .x-alert{left:0!important;top:0!important}.x-dialog-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important}.x-dialog-default-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important;flex:initial}\n"] }]
289
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i1.XPortalService }, { type: i2.Overlay }, { type: i3.XI18nService }, { type: i4.XConfigService }, { type: i9.XDialogContainerComponent, decorators: [{
290
- type: Optional
291
- }, {
292
- type: Inject,
293
- args: [X_DIALOG_CONTAINER]
294
- }] }], propDecorators: { getVisible: [{
285
+ args: [{ selector: `${XDialogPrefix}`, standalone: true, imports: [NgStyle, NgTemplateOutlet, XAlertComponent, XButtonComponent, XButtonsComponent, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XMoveBoxAnimation, XOpacityAnimation], template: "<ng-template #dialogTpl>\r\n @if (container && hasBackdrop) {\r\n <div class=\"x-dialog-backdrop\" [@x-opacity-animation]=\"visible\" (click)=\"onClose('close')\"></div>\r\n }\r\n <div\r\n class=\"x-dialog\"\r\n [@x-move-box-animation]=\"placement\"\r\n (@x-move-box-animation.done)=\"moveDone($event)\"\r\n [class.x-dialog-maximize]=\"isMaximize\"\r\n [class.x-dialog-resizable]=\"resizable\"\r\n [class.x-dialog-default-maximize]=\"isDefaultMaximize\"\r\n [ngStyle]=\"getStyle\"\r\n >\r\n <x-alert\r\n [draggable]=\"draggable && dialogBox['draggable']\"\r\n [resizable]=\"resizable && dialogBox['resizable']\"\r\n [dragFreeDragPosition]=\"dialogBox['distance']\"\r\n [offsetLeft]=\"offsetLeft\"\r\n [offsetTop]=\"offsetTop\"\r\n [minWidth]=\"dialogBox['minWidth']\"\r\n [minHeight]=\"dialogBox['minHeight']\"\r\n [dragBoundary]=\"'.cdk-overlay-container'\"\r\n [title]=\"title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"type\"\r\n [effect]=\"effect\"\r\n [hideClose]=\"hideClose\"\r\n [closeText]=\"closeText\"\r\n [operationTpl]=\"operationTpl\"\r\n (close)=\"onClose('close')\"\r\n (dragEnded)=\"onDragEnded($event)\"\r\n (resizing)=\"onResizing($event)\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #contentTpl>\r\n <div class=\"x-dialog-inner\">\r\n <div class=\"x-dialog-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"x-dialog-buttons\" [class.x-dialog-buttons-center]=\"buttonsCenter\">\r\n <ng-container *xOutlet=\"footer\">\r\n @if (showCancel || showConfirm) {\r\n <x-buttons space=\"1\">\r\n @if (showCancel) {\r\n <x-button (click)=\"onClose('cancel')\">{{ getCancelText }}</x-button>\r\n }\r\n @if (showConfirm) {\r\n <x-button type=\"primary\" (click)=\"onClose('confirm')\">{{ getConfirmText }}</x-button>\r\n }\r\n </x-buttons>\r\n }\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #operationTpl>\r\n @if (maximize || resizable) {\r\n <x-button\r\n size=\"small\"\r\n [icon]=\"isMaximize ? 'fto-minimize' : 'fto-maximize'\"\r\n [onlyIcon]=\"true\"\r\n (click)=\"onSize()\"\r\n ></x-button>\r\n }\r\n</ng-template>\r\n\r\n@if (container && visible) {\r\n <ng-container *ngTemplateOutlet=\"dialogTpl\"></ng-container>\r\n}\r\n", styles: [".x-dialog{margin:0;padding:0;width:100%;height:100%}.x-dialog>x-alert{height:100%}.x-dialog>x-alert .x-alert{min-height:100%;height:-moz-fit-content;height:fit-content;align-items:inherit;padding:0}.x-dialog>x-alert .x-alert-inner{min-height:100%;display:flex;flex-direction:column}.x-dialog>x-alert .x-alert-title{padding:1rem 1rem 0}.x-dialog>x-alert .x-alert-content{flex:1;display:flex;flex-direction:column;padding:0 1rem .5rem}.x-dialog-inner{display:flex;flex-direction:column;margin:.5rem 0;flex:1}.x-dialog-buttons{display:flex;justify-content:flex-end}.x-dialog-buttons>x-buttons{margin-top:1rem;align-self:flex-end}.x-dialog-buttons-center{justify-content:center}.x-dialog-content{display:inline-flex;flex-direction:column;flex:1;max-height:70vh;overflow:auto;min-height:2rem}.x-dialog-maximize>x-alert .x-alert{left:0!important;top:0!important}.x-dialog-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important}.x-dialog-default-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important;flex:initial}\n"] }]
286
+ }], propDecorators: { getVisible: [{
295
287
  type: HostBinding,
296
288
  args: ['class.x-dialog-visible']
297
289
  }], dialogTpl: [{
298
290
  type: ViewChild,
299
291
  args: ['dialogTpl']
300
292
  }] } });
301
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUlqQix1QkFBdUIsRUFHdkIsU0FBUyxFQUlULFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFrQixRQUFRLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkksT0FBTyxFQUFFLGFBQWEsRUFBcUIsZUFBZSxFQUFFLGdCQUFnQixFQUFpQixrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNJLE9BQU8sRUFBRSxxQkFBcUIsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRSxPQUFPLEVBQWdCLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc3QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztBQWFoRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQUNuRCxJQUEyQyxVQUFVO1FBQ25ELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBcUJELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUztZQUNuQixDQUFDLENBQUM7Z0JBQ0UsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDcEUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2FBQzFCO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNULENBQUM7SUFFRCxZQUNTLFFBQW1CLEVBQ25CLFVBQW1DLEVBQ25DLEdBQXNCLEVBQ3RCLGdCQUFrQyxFQUNsQyxhQUE2QixFQUM3QixPQUFnQixFQUNoQixJQUFrQixFQUNsQixhQUE2QixFQUNXLFNBQXFDO1FBRXBGLEtBQUssRUFBRSxDQUFDO1FBVkQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQWM7UUFDbEIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBQ1csY0FBUyxHQUFULFNBQVMsQ0FBNEI7UUE3Q3RGLFdBQU0sR0FBZ0IsRUFBRSxDQUFDO1FBR3pCLGVBQVUsR0FBSSxDQUFDLENBQUM7UUFDaEIsc0JBQWlCLEdBQUksQ0FBQyxDQUFDO1FBQ3ZCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLGNBQVMsR0FBMkIsRUFBRSxDQUFDO1FBQ3ZDLGVBQVUsR0FBb0IsRUFBRSxDQUFDO1FBQ2pDLGFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsV0FBTSxHQUF5QixJQUFJLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFZCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQWtDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1RSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTthQUNuQixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBcUIsQ0FBQyxFQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzQjthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDdkMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QyxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN4QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELFdBQVc7UUFDVCxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDL0Q7UUFDRCxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUc7WUFDZCxDQUFDLEdBQUcsYUFBYSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDbEUsQ0FBQztRQUNGLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMzQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2Y7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDMUIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUN6QyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDdkIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxhQUFhLEVBQUU7Z0JBQ2IsVUFBVSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDOUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUN0QyxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3JELEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDekIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQzNFO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVcsQ0FBQztRQUNuRSxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzVCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztTQUMxQixDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLHFCQUFxQixDQUFDLENBQUM7WUFDM0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDckcsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBZSxDQUFDLFVBQVUsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBZSxDQUFDLFNBQVMsQ0FBQztnQkFDaEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsb0JBQW9CLENBQUUsQ0FBQztnQkFDbEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDO2dCQUMvQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFFLENBQUM7Z0JBQzlFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztZQUMzRCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUU7WUFDeEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ3hHO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQWdCLENBQUMsRUFBRTtZQUMzRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxPQUFPLENBQUMsTUFBcUIsRUFBRSxZQUFZLEdBQUcsSUFBSTtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQ3RELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUNsRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksWUFBWSxFQUFFO1lBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7U0FDdEI7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtnQkFDekIsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNwQjtZQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNyQjtZQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNwQjtZQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWtCO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDckcsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO1lBQ3BDLEtBQUssRUFBRSxNQUFNO1lBQ2IsTUFBTSxFQUFFLE1BQU07WUFDZCxRQUFRLEVBQUUsTUFBTTtZQUNoQixTQUFTLEVBQUUsTUFBTTtTQUNsQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDbEU7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO1lBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUM5QixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7WUFDaEMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1lBQ3BDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztTQUN2QyxDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ25EO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUM3RjtZQUNELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUMvRjtZQUNELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNqRztZQUNELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNuRztTQUNGO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUEyQjtRQUNsQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFO1lBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUc7Z0JBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7YUFDMUIsQ0FBQztZQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQztTQUN2QzthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQXNCO1FBQy9CLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFtQixDQUFDLEVBQUU7WUFDL0csSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsR0FBRyxhQUFhLElBQUksQ0FBQyxDQUFDO1NBQzVFO0lBQ0gsQ0FBQztpSUFqU1UsZ0JBQWdCLHFQQXFETCxrQkFBa0I7cUhBckQ3QixnQkFBZ0IsMlFDcEM3QiwrOEVBK0RBLHF5REQ3QmMsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQzs7MkZBRXZDLGdCQUFnQjtrQkFSNUIsU0FBUzsrQkFDRSxHQUFHLGFBQWEsRUFBRSxpQkFHYixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7OzBCQXVEL0MsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQkFBa0I7eUNBcERHLFVBQVU7c0JBQXBELFdBQVc7dUJBQUMsd0JBQXdCO2dCQUdiLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIE9uRGVzdHJveSxcclxuICBPcHRpb25hbCxcclxuICBJbmplY3QsXHJcbiAgSG9zdEJpbmRpbmdcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWE1vdmVCb3hBbmltYXRpb24sIFhJc0NoYW5nZSwgWElzRnVuY3Rpb24sIFhDb25maWdTZXJ2aWNlLCBYSXNFbXB0eSwgWENsZWFyQ2xhc3MsIFhPcGFjaXR5QW5pbWF0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFhEaWFsb2dQcmVmaXgsIFhEaWFsb2dPdmVybGF5UmVmLCBYRGlhbG9nUHJvcGVydHksIFhEaWFsb2dDb250YWluZXIsIFhEaWFsb2dBY3Rpb24sIFhfRElBTE9HX0NPTlRBSU5FUiB9IGZyb20gJy4vZGlhbG9nLnByb3BlcnR5JztcclxuaW1wb3J0IHsgUG9ydGFsUmVzaXphYmxlUHJlZml4LCBYUG9ydGFsU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL3BvcnRhbCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCbG9ja1Njcm9sbFN0cmF0ZWd5LCBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBYSTE4bkRpYWxvZywgWEkxOG5TZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRW5kIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFhSZXNpemFibGVFdmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3Jlc2l6YWJsZSc7XHJcbmltcG9ydCB7IFhEaWFsb2dDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZy1jb250YWluZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYRGlhbG9nUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWE1vdmVCb3hBbmltYXRpb24sIFhPcGFjaXR5QW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWERpYWxvZ0NvbXBvbmVudCBleHRlbmRzIFhEaWFsb2dQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLngtZGlhbG9nLXZpc2libGUnKSBnZXQgZ2V0VmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnZpc2libGU7XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ1RwbCcpIGRpYWxvZ1RwbCE6IFRlbXBsYXRlUmVmPHZvaWQ+O1xyXG4gIGRpYWxvZ1JlZiE6IFhEaWFsb2dPdmVybGF5UmVmO1xyXG4gIGJhY2tkcm9wQ2xpY2skITogU3Vic2NyaXB0aW9uO1xyXG4gIHNjcm9sbFN0cmF0ZWd5OiBCbG9ja1Njcm9sbFN0cmF0ZWd5O1xyXG4gIGxvY2FsZTogWEkxOG5EaWFsb2cgPSB7fTtcclxuICBvdmVybGF5RWxlbWVudD86IEhUTUxFbGVtZW50O1xyXG4gIGRpYWxvZ0NvbnRlbnQ/OiBIVE1MRWxlbWVudDtcclxuICBpbml0SGVpZ2h0PyA9IDA7XHJcbiAgaW5pdENvbnRlbnRIZWlnaHQ/ID0gMDtcclxuICBpc01heGltaXplID0gZmFsc2U7XHJcbiAgaXNEZWZhdWx0TWF4aW1pemUgPSBmYWxzZTtcclxuICBkaWFsb2dCb3g6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuICBjb250ZW50Qm94OiBYUmVzaXphYmxlRXZlbnQgPSB7fTtcclxuICBkaXN0YW5jZSA9IHsgeDogMCwgeTogMCB9O1xyXG4gIHZpZXdJbml0ID0gZmFsc2U7XHJcbiAgYWN0aW9uOiBYRGlhbG9nQWN0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgY29udGFpbmVySW5pdCA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBnZXQgZ2V0Q2FuY2VsVGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNhbmNlbFRleHQgfHwgdGhpcy5sb2NhbGUuY2FuY2VsVGV4dDtcclxuICB9XHJcblxyXG4gIGdldCBnZXRDb25maXJtVGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpcm1UZXh0IHx8IHRoaXMubG9jYWxlLmNvbmZpcm1UZXh0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdldFN0eWxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyXHJcbiAgICAgID8ge1xyXG4gICAgICAgICAgLi4udGhpcy5wcm90YWxTZXJ2aWNlLnNldENvbnRhaW5lclN0eWxlKHRoaXMucGxhY2VtZW50LCB0aGlzLm9mZnNldCksXHJcbiAgICAgICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXHJcbiAgICAgICAgICBtaW5XaWR0aDogdGhpcy5taW5XaWR0aCxcclxuICAgICAgICAgIG1pbkhlaWdodDogdGhpcy5taW5IZWlnaHRcclxuICAgICAgICB9XHJcbiAgICAgIDoge307XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHB1YmxpYyBwcm90YWxTZXJ2aWNlOiBYUG9ydGFsU2VydmljZSxcclxuICAgIHB1YmxpYyBvdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHVibGljIGkxOG46IFhJMThuU2VydmljZSxcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoWF9ESUFMT0dfQ09OVEFJTkVSKSBwdWJsaWMgY29udGFpbmVyPzogWERpYWxvZ0NvbnRhaW5lckNvbXBvbmVudFxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLnByb3RhbFNlcnZpY2Uub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2VcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCh4KSA9PiB4LmRpYWxvZyBhcyBYSTE4bkRpYWxvZyksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB4O1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nQm94WydkcmFnZ2FibGUnXSA9IHRoaXMuZHJhZ2dhYmxlO1xyXG4gICAgdGhpcy5kaWFsb2dCb3hbJ3Jlc2l6YWJsZSddID0gdGhpcy5yZXNpemFibGU7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHZpc2libGUsIHBsYWNlbWVudCB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZSh2aXNpYmxlKSAmJiB0aGlzLnNldFZpc2libGUoKTtcclxuICAgIGlmIChYSXNDaGFuZ2UocGxhY2VtZW50KSkge1xyXG4gICAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMudmlld0luaXQgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnZpc2libGUgJiYgdGhpcy5jcmVhdGUoKSk7XHJcbiAgfVxyXG5cclxuICB1bnN1YnNjcmliZSgpIHtcclxuICAgIHRoaXMuYmFja2Ryb3BDbGljayQ/LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDbGFzc01hcCgpIHtcclxuICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmNsYXNzTWFwKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGtleSk7XHJcbiAgICB9XHJcbiAgICBYQ2xlYXJDbGFzcyh0aGlzLmNsYXNzTWFwKTtcclxuICAgIHRoaXMuY2xhc3NNYXAgPSB7XHJcbiAgICAgIFtgJHtYRGlhbG9nUHJlZml4fS0ke3RoaXMucGxhY2VtZW50fWBdOiAhWElzRW1wdHkodGhpcy5wbGFjZW1lbnQpXHJcbiAgICB9O1xyXG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMuY2xhc3NNYXApIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwga2V5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFZpc2libGUoKSB7XHJcbiAgICBpZiAoIXRoaXMudmlld0luaXQpIHJldHVybjtcclxuICAgIGlmICh0aGlzLnZpc2libGUpIHtcclxuICAgICAgdGhpcy5jcmVhdGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub25DbG9zZSgnY2xvc2UnLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGUoKSB7XHJcbiAgICBpZiAodGhpcy5jb250YWluZXIpIHtcclxuICAgICAgdGhpcy5jb250YWluZXJJbml0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLnByb3RhbFNlcnZpY2UuYXR0YWNoKHtcclxuICAgICAgY29udGVudDogdGhpcy5kaWFsb2dUcGwsXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcclxuICAgICAgb3ZlcmxheUNvbmZpZzoge1xyXG4gICAgICAgIHBhbmVsQ2xhc3M6IFtYRGlhbG9nQ29udGFpbmVyLCB0aGlzLmNsYXNzTmFtZV0sXHJcbiAgICAgICAgaGFzQmFja2Ryb3A6IEJvb2xlYW4odGhpcy5oYXNCYWNrZHJvcCksXHJcbiAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCksXHJcbiAgICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXHJcbiAgICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCxcclxuICAgICAgICBtaW5XaWR0aDogdGhpcy5taW5XaWR0aCxcclxuICAgICAgICBtaW5IZWlnaHQ6IHRoaXMubWluSGVpZ2h0LFxyXG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMucHJvdGFsU2VydmljZS5zZXRQbGFjZSh0aGlzLnBsYWNlbWVudCwgdGhpcy5vZmZzZXQpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29uc3QgeyBob3N0RWxlbWVudCwgb3ZlcmxheUVsZW1lbnQgfSA9IHRoaXMuZGlhbG9nUmVmLm92ZXJsYXlSZWYhO1xyXG4gICAgdGhpcy5vdmVybGF5RWxlbWVudCA9IG92ZXJsYXlFbGVtZW50O1xyXG4gICAgdGhpcy5zZXRXaWR0aEhlaWdodCgpO1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLmRpYWxvZ0JveCwge1xyXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCxcclxuICAgICAgbWluV2lkdGg6IHRoaXMubWluV2lkdGgsXHJcbiAgICAgIG1pbkhlaWdodDogdGhpcy5taW5IZWlnaHRcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMucmVzaXphYmxlICYmICF0aGlzLmlzRGVmYXVsdE1heGltaXplKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsZW1lbnQsIFBvcnRhbFJlc2l6YWJsZVByZWZpeCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5kaWFsb2dCb3gsIHRoaXMucHJvdGFsU2VydmljZS5zZXRSZXNpemFibGUodGhpcy5vdmVybGF5RWxlbWVudCEsIHRoaXMucGxhY2VtZW50KSk7XHJcbiAgICAgICAgdGhpcy5vZmZzZXRMZWZ0ID0gdGhpcy5vdmVybGF5RWxlbWVudCEub2Zmc2V0TGVmdDtcclxuICAgICAgICB0aGlzLm9mZnNldFRvcCA9IHRoaXMub3ZlcmxheUVsZW1lbnQhLm9mZnNldFRvcDtcclxuICAgICAgICBjb25zdCBkaWFsb2dEcmFnZ2FibGUgPSB0aGlzLm92ZXJsYXlFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCcueC1hbGVydC1kcmFnZ2FibGUnKSE7XHJcbiAgICAgICAgdGhpcy5pbml0SGVpZ2h0ID0gZGlhbG9nRHJhZ2dhYmxlLmNsaWVudEhlaWdodDtcclxuICAgICAgICB0aGlzLmRpYWxvZ0NvbnRlbnQgPSB0aGlzLm92ZXJsYXlFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCcueC1kaWFsb2ctY29udGVudCcpITtcclxuICAgICAgICB0aGlzLmluaXRDb250ZW50SGVpZ2h0ID0gdGhpcy5kaWFsb2dDb250ZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5oYXNCYWNrZHJvcCAmJiB0aGlzLmJhY2tkcm9wQ2xvc2UgJiYgdGhpcy5kaWFsb2dSZWY/Lm92ZXJsYXlSZWYpIHtcclxuICAgICAgdGhpcy5iYWNrZHJvcENsaWNrJCA9IHRoaXMuZGlhbG9nUmVmLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uQ2xvc2UoJ2Nsb3NlJykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0V2lkdGhIZWlnaHQoKSB7XHJcbiAgICBjb25zdCB3cyA9IFsnMTAwJScsICcxMDB2dyddO1xyXG4gICAgY29uc3QgaHMgPSBbJzEwMCUnLCAnMTAwdmgnXTtcclxuICAgIGlmICh3cy5pbmNsdWRlcyh0aGlzLndpZHRoIGFzIHN0cmluZykgJiYgaHMuaW5jbHVkZXModGhpcy5oZWlnaHQgYXMgc3RyaW5nKSkge1xyXG4gICAgICB0aGlzLmlzRGVmYXVsdE1heGltaXplID0gdHJ1ZTtcclxuICAgICAgdGhpcy5yZXNpemFibGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5kcmFnZ2FibGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5tYXhpbWl6ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9ydGFsQXR0YWNoZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWY/Lm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlKGFjdGlvbjogWERpYWxvZ0FjdGlvbiwgZXhlY0Z1bmN0aW9uID0gdHJ1ZSkge1xyXG4gICAgaWYgKCF0aGlzLnBvcnRhbEF0dGFjaGVkKCkgJiYgIXRoaXMuY29udGFpbmVyKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5jb250YWluZXIgJiYgIXRoaXMuY29udGFpbmVySW5pdCkgcmV0dXJuO1xyXG4gICAgaWYgKFhJc0Z1bmN0aW9uKHRoaXMuYmVmb3JlQ2xvc2UpICYmIGV4ZWNGdW5jdGlvbikge1xyXG4gICAgICB0aGlzLmJlZm9yZUNsb3NlKGFjdGlvbik7XHJcbiAgICAgIHRoaXMuYWN0aW9uID0gYWN0aW9uO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMudmlzaWJsZSk7XHJcbiAgICAgIGlmICh0aGlzLnBvcnRhbEF0dGFjaGVkKCkpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZj8ub3ZlcmxheVJlZj8uZGV0YWNoKCk7XHJcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChbYWN0aW9uLCB0aGlzLmFjdGlvbl0uaW5jbHVkZXMoJ2NvbmZpcm0nKSkge1xyXG4gICAgICAgIHRoaXMuY29uZmlybS5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFthY3Rpb24sIHRoaXMuYWN0aW9uXS5pbmNsdWRlcygnY2FuY2VsJykpIHtcclxuICAgICAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb250YWluZXJJbml0ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuYWN0aW9uID0gbnVsbDtcclxuICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkRyYWdFbmRlZCgkZXZlbnQ6IENka0RyYWdFbmQpIHtcclxuICAgIHRoaXMuZGlzdGFuY2UgPSB7IHg6IHRoaXMuZGlzdGFuY2UueCArICRldmVudC5kaXN0YW5jZS54LCB5OiB0aGlzLmRpc3RhbmNlLnkgKyAkZXZlbnQuZGlzdGFuY2UueSB9O1xyXG4gIH1cclxuXHJcbiAgb25TaXplKCkge1xyXG4gICAgaWYgKCF0aGlzLmRpYWxvZ1JlZikgcmV0dXJuO1xyXG4gICAgdGhpcy5pc01heGltaXplID0gIXRoaXMuaXNNYXhpbWl6ZTtcclxuICAgIGlmICh0aGlzLmlzTWF4aW1pemUpIHtcclxuICAgICAgdGhpcy5vbk1heGltaXplKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9uTWluaW1pemUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTWF4aW1pemUoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5vdmVybGF5UmVmPy51cGRhdGVTaXplKHtcclxuICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgaGVpZ2h0OiAnMTAwJScsXHJcbiAgICAgIG1pbldpZHRoOiAnMTAwJScsXHJcbiAgICAgIG1pbkhlaWdodDogJzEwMCUnXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nQm94WydtaW5XaWR0aCddID0gJzEwMCUnO1xyXG4gICAgdGhpcy5kaWFsb2dCb3hbJ21pbkhlaWdodCddID0gJzEwMCUnO1xyXG4gICAgdGhpcy5kaWFsb2dCb3hbJ2RyYWdnYWJsZSddID0gZmFsc2U7XHJcbiAgICB0aGlzLmRpYWxvZ0JveFsncmVzaXphYmxlJ10gPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLnJlc2l6YWJsZSkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMub3ZlcmxheUVsZW1lbnQsICdtYXJnaW4nLCAnMCAwIDAgMCcpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZHJhZ2dhYmxlKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nQm94WydkaXN0YW5jZSddID0geyB4OiAwLCB5OiAwIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk1pbmltaXplKCkge1xyXG4gICAgdGhpcy5kaWFsb2dCb3hbJ21pbldpZHRoJ10gPSB0aGlzLm1pbldpZHRoO1xyXG4gICAgdGhpcy5kaWFsb2dCb3hbJ21pbkhlaWdodCddID0gdGhpcy5taW5IZWlnaHQ7XHJcbiAgICB0aGlzLmRpYWxvZ0JveFsnZHJhZ2dhYmxlJ10gPSB0aGlzLmRyYWdnYWJsZTtcclxuICAgIHRoaXMuZGlhbG9nQm94WydyZXNpemFibGUnXSA9IHRoaXMucmVzaXphYmxlO1xyXG4gICAgdGhpcy5kaWFsb2dSZWYub3ZlcmxheVJlZj8udXBkYXRlU2l6ZSh7XHJcbiAgICAgIHdpZHRoOiB0aGlzLmRpYWxvZ0JveFsnd2lkdGgnXSxcclxuICAgICAgaGVpZ2h0OiB0aGlzLmRpYWxvZ0JveFsnaGVpZ2h0J10sXHJcbiAgICAgIG1pbldpZHRoOiB0aGlzLmRpYWxvZ0JveFsnbWluV2lkdGgnXSxcclxuICAgICAgbWluSGVpZ2h0OiB0aGlzLmRpYWxvZ0JveFsnbWluSGVpZ2h0J11cclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuZHJhZ2dhYmxlKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nQm94WydkaXN0YW5jZSddID0geyAuLi50aGlzLmRpc3RhbmNlIH07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5yZXNpemFibGUpIHtcclxuICAgICAgaWYgKHRoaXMuZGlhbG9nQm94WydtYXJnaW5Ub3AnXSkge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5vdmVybGF5RWxlbWVudCwgJ21hcmdpbi10b3AnLCBgJHt0aGlzLmRpYWxvZ0JveFsnbWFyZ2luVG9wJ119YCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZGlhbG9nQm94WydtYXJnaW5MZWZ0J10pIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMub3ZlcmxheUVsZW1lbnQsICdtYXJnaW4tbGVmdCcsIGAke3RoaXMuZGlhbG9nQm94WydtYXJnaW5MZWZ0J119YCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZGlhbG9nQm94WydtYXJnaW5SaWdodCddKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm92ZXJsYXlFbGVtZW50LCAnbWFyZ2luLXJpZ2h0JywgYCR7dGhpcy5kaWFsb2dCb3hbJ21hcmdpblJpZ2h0J119YCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZGlhbG9nQm94WydtYXJnaW5Cb3R0b20nXSkge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5vdmVybGF5RWxlbWVudCwgJ21hcmdpbi1ib3R0b20nLCBgJHt0aGlzLmRpYWxvZ0JveFsnbWFyZ2luQm90dG9tJ119YCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vdmVEb25lKCRldmVudDogeyB0b1N0YXRlOiBzdHJpbmcgfSkge1xyXG4gICAgaWYgKCRldmVudC50b1N0YXRlID09PSAndm9pZCcpIHtcclxuICAgICAgdGhpcy5jbG9zZURvbmUuZW1pdCgkZXZlbnQpO1xyXG4gICAgICB0aGlzLmlzTWF4aW1pemUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5kaWFsb2dCb3ggPSB7XHJcbiAgICAgICAgZHJhZ2dhYmxlOiB0aGlzLmRyYWdnYWJsZSxcclxuICAgICAgICByZXNpemFibGU6IHRoaXMucmVzaXphYmxlXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuZGlzdGFuY2UgPSB7IHg6IDAsIHk6IDAgfTtcclxuICAgICAgdGhpcy5kaWFsb2dSZWY/Lm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd0RvbmUuZW1pdCgkZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25SZXNpemluZyhldmVudDogWFJlc2l6YWJsZUV2ZW50KSB7XHJcbiAgICBjb25zdCBjb250ZW50SGVpZ2h0ID0gTnVtYmVyKHRoaXMuaW5pdENvbnRlbnRIZWlnaHQpICsgTnVtYmVyKGV2ZW50LmNsaWVudEhlaWdodCkgLSBOdW1iZXIodGhpcy5pbml0SGVpZ2h0KTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kaWFsb2dDb250ZW50LCAnbWF4LWhlaWdodCcsICdpbml0aWFsJyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZGlhbG9nQ29udGVudCwgJ2ZsZXgnLCAnaW5pdGlhbCcpO1xyXG4gICAgaWYgKFsndG9wLXN0YXJ0JywgJ3RvcC1lbmQnLCAnYm90dG9tJywgJ3RvcCcsICdib3R0b20tc3RhcnQnLCAnYm90dG9tLWVuZCddLmluY2x1ZGVzKGV2ZW50LmRpcmVjdGlvbiBhcyBzdHJpbmcpKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kaWFsb2dDb250ZW50LCAnaGVpZ2h0JywgYCR7Y29udGVudEhlaWdodH1weGApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI2RpYWxvZ1RwbD5cclxuICA8ZGl2IGNsYXNzPVwieC1kaWFsb2ctYmFja2Ryb3BcIiAqbmdJZj1cImNvbnRhaW5lciAmJiBoYXNCYWNrZHJvcFwiIFtAeC1vcGFjaXR5LWFuaW1hdGlvbl09XCJ2aXNpYmxlXCIgKGNsaWNrKT1cIm9uQ2xvc2UoJ2Nsb3NlJylcIj48L2Rpdj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cIngtZGlhbG9nXCJcclxuICAgIFtAeC1tb3ZlLWJveC1hbmltYXRpb25dPVwicGxhY2VtZW50XCJcclxuICAgIChAeC1tb3ZlLWJveC1hbmltYXRpb24uZG9uZSk9XCJtb3ZlRG9uZSgkZXZlbnQpXCJcclxuICAgIFtjbGFzcy54LWRpYWxvZy1tYXhpbWl6ZV09XCJpc01heGltaXplXCJcclxuICAgIFtjbGFzcy54LWRpYWxvZy1yZXNpemFibGVdPVwicmVzaXphYmxlXCJcclxuICAgIFtjbGFzcy54LWRpYWxvZy1kZWZhdWx0LW1heGltaXplXT1cImlzRGVmYXVsdE1heGltaXplXCJcclxuICAgIFtuZ1N0eWxlXT1cImdldFN0eWxlXCJcclxuICA+XHJcbiAgICA8eC1hbGVydFxyXG4gICAgICBbZHJhZ2dhYmxlXT1cImRyYWdnYWJsZSAmJiBkaWFsb2dCb3hbJ2RyYWdnYWJsZSddXCJcclxuICAgICAgW3Jlc2l6YWJsZV09XCJyZXNpemFibGUgJiYgZGlhbG9nQm94WydyZXNpemFibGUnXVwiXHJcbiAgICAgIFtkcmFnRnJlZURyYWdQb3NpdGlvbl09XCJkaWFsb2dCb3hbJ2Rpc3RhbmNlJ11cIlxyXG4gICAgICBbb2Zmc2V0TGVmdF09XCJvZmZzZXRMZWZ0XCJcclxuICAgICAgW29mZnNldFRvcF09XCJvZmZzZXRUb3BcIlxyXG4gICAgICBbbWluV2lkdGhdPVwiZGlhbG9nQm94WydtaW5XaWR0aCddXCJcclxuICAgICAgW21pbkhlaWdodF09XCJkaWFsb2dCb3hbJ21pbkhlaWdodCddXCJcclxuICAgICAgW2RyYWdCb3VuZGFyeV09XCInLmNkay1vdmVybGF5LWNvbnRhaW5lcidcIlxyXG4gICAgICBbdGl0bGVdPVwidGl0bGVcIlxyXG4gICAgICBbY29udGVudF09XCJjb250ZW50VHBsXCJcclxuICAgICAgW3R5cGVdPVwidHlwZVwiXHJcbiAgICAgIFtlZmZlY3RdPVwiZWZmZWN0XCJcclxuICAgICAgW2hpZGVDbG9zZV09XCJoaWRlQ2xvc2VcIlxyXG4gICAgICBbY2xvc2VUZXh0XT1cImNsb3NlVGV4dFwiXHJcbiAgICAgIFtvcGVyYXRpb25UcGxdPVwib3BlcmF0aW9uVHBsXCJcclxuICAgICAgKGNsb3NlKT1cIm9uQ2xvc2UoJ2Nsb3NlJylcIlxyXG4gICAgICAoZHJhZ0VuZGVkKT1cIm9uRHJhZ0VuZGVkKCRldmVudClcIlxyXG4gICAgICAocmVzaXppbmcpPVwib25SZXNpemluZygkZXZlbnQpXCJcclxuICAgICAgc2hvd0ljb249XCJmYWxzZVwiXHJcbiAgICAgIGR1cmF0aW9uPVwiMFwiXHJcbiAgICAgIG1hbnVhbFxyXG4gICAgICBkaXNhYmxlZEFuaW1hdGlvblxyXG4gICAgPjwveC1hbGVydD5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY29udGVudFRwbD5cclxuICA8ZGl2IGNsYXNzPVwieC1kaWFsb2ctaW5uZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWRpYWxvZy1jb250ZW50XCI+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGlhbG9nLWJ1dHRvbnNcIiBbY2xhc3MueC1kaWFsb2ctYnV0dG9ucy1jZW50ZXJdPVwiYnV0dG9uc0NlbnRlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZm9vdGVyXCI+XHJcbiAgICAgICAgPHgtYnV0dG9ucyBzcGFjZT1cIjFcIiAqbmdJZj1cInNob3dDYW5jZWwgfHwgc2hvd0NvbmZpcm1cIj5cclxuICAgICAgICAgIDx4LWJ1dHRvbiAqbmdJZj1cInNob3dDYW5jZWxcIiAoY2xpY2spPVwib25DbG9zZSgnY2FuY2VsJylcIj57eyBnZXRDYW5jZWxUZXh0IH19PC94LWJ1dHRvbj5cclxuICAgICAgICAgIDx4LWJ1dHRvbiAqbmdJZj1cInNob3dDb25maXJtXCIgdHlwZT1cInByaW1hcnlcIiAoY2xpY2spPVwib25DbG9zZSgnY29uZmlybScpXCI+e3sgZ2V0Q29uZmlybVRleHQgfX08L3gtYnV0dG9uPlxyXG4gICAgICAgIDwveC1idXR0b25zPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNvcGVyYXRpb25UcGw+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1heGltaXplIHx8IHJlc2l6YWJsZVwiPlxyXG4gICAgPHgtYnV0dG9uIHNpemU9XCJzbWFsbFwiIFtpY29uXT1cImlzTWF4aW1pemUgPyAnZnRvLW1pbmltaXplJyA6ICdmdG8tbWF4aW1pemUnXCIgW29ubHlJY29uXT1cInRydWVcIiAoY2xpY2spPVwib25TaXplKClcIj48L3gtYnV0dG9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRhaW5lciAmJiB2aXNpYmxlXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRpYWxvZ1RwbFwiPjwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
293
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLGlCQUFpQixFQUNqQix1QkFBdUIsRUFHdkIsU0FBUyxFQUVULGdCQUFnQixFQUVoQixXQUFXLEVBQ1gsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFdBQVcsRUFDWCxjQUFjLEVBQ2QsUUFBUSxFQUNSLFdBQVcsRUFDWCxpQkFBaUIsRUFDbEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQ0wsYUFBYSxFQUViLGVBQWUsRUFDZixnQkFBZ0IsRUFFaEIsa0JBQWtCLEVBQ25CLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNFLE9BQU8sRUFBZ0IsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBdUIsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEUsT0FBTyxFQUFlLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFB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QixTQUFTOytCQUNFLEdBQUcsYUFBYSxFQUFFLGNBQ2hCLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsaUJBRzdGLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQzs4QkFHUCxVQUFVO3NCQUFwRCxXQUFXO3VCQUFDLHdCQUF3QjtnQkFHYixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBPbkRlc3Ryb3ksXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgaW5qZWN0LFxyXG4gIE9uSW5pdCxcclxuICBBZnRlclZpZXdJbml0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgWE1vdmVCb3hBbmltYXRpb24sXHJcbiAgWElzQ2hhbmdlLFxyXG4gIFhJc0Z1bmN0aW9uLFxyXG4gIFhDb25maWdTZXJ2aWNlLFxyXG4gIFhJc0VtcHR5LFxyXG4gIFhDbGVhckNsYXNzLFxyXG4gIFhPcGFjaXR5QW5pbWF0aW9uXHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgWERpYWxvZ1ByZWZpeCxcclxuICBYRGlhbG9nT3ZlcmxheVJlZixcclxuICBYRGlhbG9nUHJvcGVydHksXHJcbiAgWERpYWxvZ0NvbnRhaW5lcixcclxuICBYRGlhbG9nQWN0aW9uLFxyXG4gIFhfRElBTE9HX0NPTlRBSU5FUlxyXG59IGZyb20gJy4vZGlhbG9nLnByb3BlcnR5JztcclxuaW1wb3J0IHsgUG9ydGFsUmVzaXphYmxlUHJlZml4LCBYUG9ydGFsU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL3BvcnRhbCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCbG9ja1Njcm9sbFN0cmF0ZWd5LCBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBYSTE4bkRpYWxvZywgWEkxOG5TZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRW5kIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFhSZXNpemFibGVFdmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3Jlc2l6YWJsZSc7XHJcbmltcG9ydCB7IFhEaWFsb2dDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZy1jb250YWluZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWEFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvYWxlcnQnO1xyXG5pbXBvcnQgeyBYQnV0dG9uQ29tcG9uZW50LCBYQnV0dG9uc0NvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IFhPdXRsZXREaXJlY3RpdmUgfSBmcm9tICdAbmctbmVzdC91aS9vdXRsZXQnO1xyXG5pbXBvcnQgeyBOZ1N0eWxlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYRGlhbG9nUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCwgWEFsZXJ0Q29tcG9uZW50LCBYQnV0dG9uQ29tcG9uZW50LCBYQnV0dG9uc0NvbXBvbmVudCwgWE91dGxldERpcmVjdGl2ZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWE1vdmVCb3hBbmltYXRpb24sIFhPcGFjaXR5QW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWERpYWxvZ0NvbXBvbmVudCBleHRlbmRzIFhEaWFsb2dQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MueC1kaWFsb2ctdmlzaWJsZScpIGdldCBnZXRWaXNpYmxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZTtcclxuICB9XHJcbiAgQFZpZXdDaGlsZCgnZGlhbG9nVHBsJykgZGlhbG9nVHBsITogVGVtcGxhdGVSZWY8dm9pZD47XHJcbiAgZGlhbG9nUmVmITogWERpYWxvZ092ZXJsYXlSZWY7XHJcbiAgYmFja2Ryb3BDbGljayQhOiBTdWJzY3JpcHRpb247XHJcbiAgc2Nyb2xsU3RyYXRlZ3khOiBCbG9ja1Njcm9sbFN0cmF0ZWd5O1xyXG4gIGxvY2FsZTogWEkxOG5EaWFsb2cgPSB7fTtcclxuICBvdmVybGF5RWxlbWVudD86IEhUTUxFbGVtZW50O1xyXG4gIGRpYWxvZ0NvbnRlbnQ/OiBIVE1MRWxlbWVudDtcclxuICBpbml0SGVpZ2h0PyA9IDA7XHJcbiAgaW5pdENvbnRlbnRIZWlnaHQ/ID0gMDtcclxuICBpc01heGltaXplID0gZmFsc2U7XHJcbiAgaXNEZWZhdWx0TWF4aW1pemUgPSBmYWxzZTtcclxuICBkaWFsb2dCb3g6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuICBjb250ZW50Qm94OiBYUmVzaXphYmxlRXZlbnQgPSB7fTtcclxuICBkaXN0YW5jZSA9IHsgeDogMCwgeTogMCB9O1xyXG4gIHZpZXdJbml0ID0gZmFsc2U7XHJcbiAgYWN0aW9uOiBYRGlhbG9nQWN0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgY29udGFpbmVySW5pdCA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBnZXQgZ2V0Q2FuY2VsVGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNhbmNlbFRleHQgfHwgdGhpcy5sb2NhbGUuY2FuY2VsVGV4dDtcclxuICB9XHJcblxyXG4gIGdldCBnZXRDb25maXJtVGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpcm1UZXh0IHx8IHRoaXMubG9jYWxlLmNvbmZpcm1UZXh0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdldFN0eWxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyXHJcbiAgICAgID8ge1xyXG4gICAgICAgICAgLi4udGhpcy5wcm90YWxTZXJ2aWNlLnNldENvbnRhaW5lclN0eWxlKHRoaXMucGxhY2VtZW50LCB0aGlzLm9mZnNldCksXHJcbiAgICAgICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXHJcbiAgICAgICAgICBtaW5XaWR0aDogdGhpcy5taW5XaWR0aCxcclxuICAgICAgICAgIG1pbkhlaWdodDogdGhpcy5taW5IZWlnaHRcclxuICAgICAgICB9XHJcbiAgICAgIDoge307XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XHJcbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG4gIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwcml2YXRlIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XHJcbiAgcHJpdmF0ZSBwcm90YWxTZXJ2aWNlID0gaW5qZWN0KFhQb3J0YWxTZXJ2aWNlKTtcclxuICBwcml2YXRlIG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XHJcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KFhJMThuU2VydmljZSk7XHJcbiAgY29udGFpbmVyID0gaW5qZWN0PFhEaWFsb2dDb250YWluZXJDb21wb25lbnQ+KFhfRElBTE9HX0NPTlRBSU5FUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcclxuICBjb25maWdTZXJ2aWNlID0gaW5qZWN0KFhDb25maWdTZXJ2aWNlKTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5wcm90YWxTZXJ2aWNlLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpO1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+IHguZGlhbG9nIGFzIFhJMThuRGlhbG9nKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmxvY2FsZSA9IHg7XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2dCb3hbJ2RyYWdnYWJsZSddID0gdGhpcy5kcmFnZ2FibGU7XHJcbiAgICB0aGlzLmRpYWxvZ0JveFsncmVzaXphYmxlJ10gPSB0aGlzLnJlc2l6YWJsZTtcclxuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgdmlzaWJsZSwgcGxhY2VtZW50IH0gPSBjaGFuZ2VzO1xyXG4gICAgWElzQ2hhbmdlKHZpc2libGUpICYmIHRoaXMuc2V0VmlzaWJsZSgpO1xyXG4gICAgaWYgKFhJc0NoYW5nZShwbGFjZW1lbnQpKSB7XHJcbiAgICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy52aWV3SW5pdCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudmlzaWJsZSAmJiB0aGlzLmNyZWF0ZSgpKTtcclxuICB9XHJcblxyXG4gIHVuc3Vic2NyaWJlKCkge1xyXG4gICAgdGhpcy5iYWNrZHJvcENsaWNrJD8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMuY2xhc3NNYXApIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwga2V5KTtcclxuICAgIH1cclxuICAgIFhDbGVhckNsYXNzKHRoaXMuY2xhc3NNYXApO1xyXG4gICAgdGhpcy5jbGFzc01hcCA9IHtcclxuICAgICAgW2Ake1hEaWFsb2dQcmVmaXh9LSR7dGhpcy5wbGFjZW1lbnR9YF06ICFYSXNFbXB0eSh0aGlzLnBsYWNlbWVudClcclxuICAgIH07XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5jbGFzc01hcCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBrZXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VmlzaWJsZSgpIHtcclxuICAgIGlmICghdGhpcy52aWV3SW5pdCkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMudmlzaWJsZSkge1xyXG4gICAgICB0aGlzLmNyZWF0ZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vbkNsb3NlKCdjbG9zZScsIGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZSgpIHtcclxuICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xyXG4gICAgICB0aGlzLmNvbnRhaW5lckluaXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMucHJvdGFsU2VydmljZS5hdHRhY2goe1xyXG4gICAgICBjb250ZW50OiB0aGlzLmRpYWxvZ1RwbCxcclxuICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICBvdmVybGF5Q29uZmlnOiB7XHJcbiAgICAgICAgcGFuZWxDbGFzczogW1hEaWFsb2dDb250YWluZXIsIHRoaXMuY2xhc3NOYW1lXSxcclxuICAgICAgICBoYXNCYWNrZHJvcDogQm9vbGVhbih0aGlzLmhhc0JhY2tkcm9wKSxcclxuICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSxcclxuICAgICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0LFxyXG4gICAgICAgIG1pbldpZHRoOiB0aGlzLm1pbldpZHRoLFxyXG4gICAgICAgIG1pbkhlaWdodDogdGhpcy5taW5IZWlnaHQsXHJcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5wcm90YWxTZXJ2aWNlLnNldFBsYWNlKHRoaXMucGxhY2VtZW50LCB0aGlzLm9mZnNldClcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7IGhvc3RFbGVtZW50LCBvdmVybGF5RWxlbWVudCB9ID0gdGhpcy5kaWFsb2dSZWYub3ZlcmxheVJlZiE7XHJcbiAgICB0aGlzLm92ZXJsYXlFbGVtZW50ID0gb3ZlcmxheUVsZW1lbnQ7XHJcbiAgICB0aGlzLnNldFdpZHRoSGVpZ2h0KCk7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuZGlhbG9nQm94LCB7XHJcbiAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxyXG4gICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0LFxyXG4gICAgICBtaW5XaWR0aDogdGhpcy5taW5XaWR0aCxcclxuICAgICAgbWluSGVpZ2h0OiB0aGlzLm1pbkhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5yZXNpemFibGUgJiYgIXRoaXMuaXNEZWZhdWx0TWF4aW1pemUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhob3N0RWxlbWVudCwgUG9ydGFsUmVzaXphYmxlUHJlZml4KTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmRpYWxvZ0JveCwgdGhpcy5wcm90YWxTZXJ2aWNlLnNldFJlc2l6YWJsZSh0aGlzLm92ZXJsYXlFbGVtZW50ISwgdGhpcy5wbGFjZW1lbnQpKTtcclxuICAgICAgICB0aGlzLm9mZnNldExlZnQgPSB0aGlzLm92ZXJsYXlFbGVtZW50IS5vZmZzZXRMZWZ0O1xyXG4gICAgICAgIHRoaXMub2Zmc2V0VG9wID0gdGhpcy5vdmVybGF5RWxlbWVudCEub2Zmc2V0VG9wO1xyXG4gICAgICAgIGNvbnN0IGRpYWxvZ0RyYWdnYWJsZSA9IHRoaXMub3ZlcmxheUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJy54LWFsZXJ0LWRyYWdnYWJsZScpITtcclxuICAgICAgICB0aGlzLmluaXRIZWlnaHQgPSBkaWFsb2dEcmFnZ2FibGUuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIHRoaXMuZGlhbG9nQ29udGVudCA9IHRoaXMub3ZlcmxheUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJy54LWRpYWxvZy1jb250ZW50JykhO1xyXG4gICAgICAgIHRoaXMuaW5pdENvbnRlbnRIZWlnaHQgPSB0aGlzLmRpYWxvZ0NvbnRlbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmhhc0JhY2tkcm9wICYmIHRoaXMuYmFja2Ryb3BDbG9zZSAmJiB0aGlzLmRpYWxvZ1JlZj8ub3ZlcmxheVJlZikge1xyXG4gICAgICB0aGlzLmJhY2tkcm9wQ2xpY2skID0gdGhpcy5kaWFsb2dSZWYub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMub25DbG9zZSgnY2xvc2UnKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRXaWR0aEhlaWdodCgpIHtcclxuICAgIGNvbnN0IHdzID0gWycxMDAlJywgJzEwMHZ3J107XHJcbiAgICBjb25zdCBocyA9IFsnMTAwJScsICcxMDB2aCddO1xyXG4gICAgaWYgKHdzLmluY2x1ZGVzKHRoaXMud2lkdGggYXMgc3RyaW5nKSAmJiBocy5pbmNsdWRlcyh0aGlzLmhlaWdodCBhcyBzdHJpbmcpKSB7XHJcbiAgICAgIHRoaXMuaXNEZWZhdWx0TWF4aW1pemUgPSB0cnVlO1xyXG4gICAgICB0aGlzLnJlc2l6YWJsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmRyYWdnYWJsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm1heGltaXplID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwb3J0YWxBdHRhY2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRpYWxvZ1JlZj8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xvc2UoYWN0aW9uOiBYRGlhbG9nQWN0aW9uLCBleGVjRnVuY3Rpb24gPSB0cnVlKSB7XHJcbiAgICBpZiAoIXRoaXMucG9ydGFsQXR0YWNoZWQoKSAmJiAhdGhpcy5jb250YWluZXIpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmNvbnRhaW5lciAmJiAhdGhpcy5jb250YWluZXJJbml0KSByZXR1cm47XHJcbiAgICBpZiAoWElzRnVuY3Rpb24odGhpcy5iZWZvcmVDbG9zZSkgJiYgZXhlY0Z1bmN0aW9uKSB7XHJcbiAgICAgIHRoaXMuYmVmb3JlQ2xvc2UoYWN0aW9uKTtcclxuICAgICAgdGhpcy5hY3Rpb24gPSBhY3Rpb247XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy52aXNpYmxlKTtcclxuICAgICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmPy5vdmVybGF5UmVmPy5kZXRhY2goKTtcclxuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFthY3Rpb24sIHRoaXMuYWN0aW9uXS5pbmNsdWRlcygnY29uZmlybScpKSB7XHJcbiAgICAgICAgdGhpcy5jb25maXJtLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoW2FjdGlvbiwgdGhpcy5hY3Rpb25dLmluY2x1ZGVzKCdjYW5jZWwnKSkge1xyXG4gICAgICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbnRhaW5lckluaXQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5hY3Rpb24gPSBudWxsO1xyXG4gICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRHJhZ0VuZGVkKCRldmVudDogQ2RrRHJhZ0VuZCkge1xyXG4gICAgdGhpcy5kaXN0YW5jZSA9IHsgeDogdGhpcy5kaXN0YW5jZS54ICsgJGV2ZW50LmRpc3RhbmNlLngsIHk6IHRoaXMuZGlzdGFuY2UueSArICRldmVudC5kaXN0YW5jZS55IH07XHJcbiAgfVxyXG5cclxuICBvblNpemUoKSB7XHJcbiAgICBpZiAoIXRoaXMuZGlhbG9nUmVmKSByZXR1cm47XHJcbiAgICB0aGlzLmlzTWF4aW1pemUgPSAhdGhpcy5pc01heGltaXplO1xyXG4gICAgaWYgKHRoaXMuaXNNYXhpbWl6ZSkge1xyXG4gICAgICB0aGlzLm9uTWF4aW1pemUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub25NaW5pbWl6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25NYXhpbWl6ZSgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLm92ZXJsYXlSZWY/LnVwZGF0ZVNpemUoe1xyXG4gICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgbWluV2lkdGg6ICcxMDAlJyxcclxuICAgICAgbWluSGVpZ2h0OiAnMTAwJSdcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2dCb3hbJ21pbldpZHRoJ10gPSAnMTAwJSc7XHJcbiAgICB0aGlzLmRpYWxvZ0JveFsnbWluSGVpZ2h0J10gPSAnMTAwJSc7XHJcbiAgICB0aGlzLmRpYWxvZ0JveFsnZHJhZ2dhYmxlJ10gPSBmYWxzZTtcclxuICAgIHRoaXMuZGlhbG9nQm94WydyZXNpemFibGUnXSA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMucmVzaXphYmxlKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5vdmVybGF5RWxlbWVudCwgJ21hcmdpbicsICcwIDAgMCAwJyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kcmFnZ2FibGUpIHtcclxuICAgICAgdGhpcy5kaWFsb2dCb3hbJ2Rpc3RhbmNlJ10gPSB7IHg6IDAsIHk6IDAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTWluaW1pemUoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ0JveFsnbWluV2lkdGgnXSA9IHRoaXMubWluV2lkdGg7XHJcbiAgICB0aGlzLmRpYWxvZ0JveFsnbWluSGVpZ2h0J10gPSB0aGlzLm1pbkhlaWdodDtcclxuICAgIHRoaXMuZGlhbG9nQm94WydkcmFnZ2FibGUnXSA9IHRoaXMuZHJhZ2dhYmxlO1xyXG4gICAgdGhpcy5kaWFsb2dCb3hbJ3Jlc2l6YWJsZSddID0gdGhpcy5yZXNpemFibGU7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5vdmVybGF5UmVmPy51cGRhdGVTaXplKHtcclxuICAgICAgd2lkdGg6IHRoaXMuZGlhbG9nQm94Wyd3aWR0aCddLFxyXG4gICAgICBoZWlnaHQ6IHRoaXMuZGlhbG9nQm94WydoZWlnaHQnXSxcclxuICAgICAgbWluV2lkdGg6IHRoaXMuZGlhbG9nQm94WydtaW5XaWR0aCddLFxyXG4gICAgICBtaW5IZWlnaHQ6IHRoaXMuZGlhbG9nQm94WydtaW5IZWlnaHQnXVxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5kcmFnZ2FibGUpIHtcclxuICAgICAgdGhpcy5kaWFsb2dCb3hbJ2Rpc3RhbmNlJ10gPSB7IC4uLnRoaXMuZGlzdGFuY2UgfTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJlc2l6YWJsZSkge1xyXG4gICAgICBpZiAodGhpcy5kaWFsb2dCb3hbJ21hcmdpblRvcCddKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm92ZXJsYXlFbGVtZW50LCAnbWFyZ2luLXRvcCcsIGAke3RoaXMuZGlhbG9nQm94WydtYXJnaW5Ub3AnXX1gKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kaWFsb2dCb3hbJ21hcmdpbkxlZnQnXSkge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5vdmVybGF5RWxlbWVudCwgJ21hcmdpbi1sZWZ0JywgYCR7dGhpcy5kaWFsb2dCb3hbJ21hcmdpbkxlZnQnXX1gKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kaWFsb2dCb3hbJ21hcmdpblJpZ2h0J10pIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMub3ZlcmxheUVsZW1lbnQsICdtYXJnaW4tcmlnaHQnLCBgJHt0aGlzLmRpYWxvZ0JveFsnbWFyZ2luUmlnaHQnXX1gKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kaWFsb2dCb3hbJ21hcmdpbkJvdHRvbSddKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm92ZXJsYXlFbGVtZW50LCAnbWFyZ2luLWJvdHRvbScsIGAke3RoaXMuZGlhbG9nQm94WydtYXJnaW5Cb3R0b20nXX1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbW92ZURvbmUoJGV2ZW50OiB7IHRvU3RhdGU6IHN0cmluZyB9KSB7XHJcbiAgICBpZiAoJGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJykge1xyXG4gICAgICB0aGlzLmNsb3NlRG9uZS5lbWl0KCRldmVudCk7XHJcbiAgICAgIHRoaXMuaXNNYXhpbWl6ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmRpYWxvZ0JveCA9IHtcclxuICAgICAgICBkcmFnZ2FibGU6IHRoaXMuZHJhZ2dhYmxlLFxyXG4gICAgICAgIHJlc2l6YWJsZTogdGhpcy5yZXNpemFibGVcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5kaXN0YW5jZSA9IHsgeDogMCwgeTogMCB9O1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZj8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93RG9uZS5lbWl0KCRldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblJlc2l6aW5nKGV2ZW50OiBYUmVzaXphYmxlRXZlbnQpIHtcclxuICAgIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSBOdW1iZXIodGhpcy5pbml0Q29udGVudEhlaWdodCkgKyBOdW1iZXIoZXZlbnQuY2xpZW50SGVpZ2h0KSAtIE51bWJlcih0aGlzLmluaXRIZWlnaHQpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRpYWxvZ0NvbnRlbnQsICdtYXgtaGVpZ2h0JywgJ2luaXRpYWwnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kaWFsb2dDb250ZW50LCAnZmxleCcsICdpbml0aWFsJyk7XHJcbiAgICBpZiAoWyd0b3Atc3RhcnQnLCAndG9wLWVuZCcsICdib3R0b20nLCAndG9wJywgJ2JvdHRvbS1zdGFydCcsICdib3R0b20tZW5kJ10uaW5jbHVkZXMoZXZlbnQuZGlyZWN0aW9uIGFzIHN0cmluZykpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRpYWxvZ0NvbnRlbnQsICdoZWlnaHQnLCBgJHtjb250ZW50SGVpZ2h0fXB4YCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSAjZGlhbG9nVHBsPlxyXG4gIEBpZiAoY29udGFpbmVyICYmIGhhc0JhY2tkcm9wKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1kaWFsb2ctYmFja2Ryb3BcIiBbQHgtb3BhY2l0eS1hbmltYXRpb25dPVwidmlzaWJsZVwiIChjbGljayk9XCJvbkNsb3NlKCdjbG9zZScpXCI+PC9kaXY+XHJcbiAgfVxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwieC1kaWFsb2dcIlxyXG4gICAgW0B4LW1vdmUtYm94LWFuaW1hdGlvbl09XCJwbGFjZW1lbnRcIlxyXG4gICAgKEB4LW1vdmUtYm94LWFuaW1hdGlvbi5kb25lKT1cIm1vdmVEb25lKCRldmVudClcIlxyXG4gICAgW2NsYXNzLngtZGlhbG9nLW1heGltaXplXT1cImlzTWF4aW1pemVcIlxyXG4gICAgW2NsYXNzLngtZGlhbG9nLXJlc2l6YWJsZV09XCJyZXNpemFibGVcIlxyXG4gICAgW2NsYXNzLngtZGlhbG9nLWRlZmF1bHQtbWF4aW1pemVdPVwiaXNEZWZhdWx0TWF4aW1pemVcIlxyXG4gICAgW25nU3R5bGVdPVwiZ2V0U3R5bGVcIlxyXG4gID5cclxuICAgIDx4LWFsZXJ0XHJcbiAgICAgIFtkcmFnZ2FibGVdPVwiZHJhZ2dhYmxlICYmIGRpYWxvZ0JveFsnZHJhZ2dhYmxlJ11cIlxyXG4gICAgICBbcmVzaXphYmxlXT1cInJlc2l6YWJsZSAmJiBkaWFsb2dCb3hbJ3Jlc2l6YWJsZSddXCJcclxuICAgICAgW2RyYWdGcmVlRHJhZ1Bvc2l0aW9uXT1cImRpYWxvZ0JveFsnZGlzdGFuY2UnXVwiXHJcbiAgICAgIFtvZmZzZXRMZWZ0XT1cIm9mZnNldExlZnRcIlxyXG4gICAgICBbb2Zmc2V0VG9wXT1cIm9mZnNldFRvcFwiXHJcbiAgICAgIFttaW5XaWR0aF09XCJkaWFsb2dCb3hbJ21pbldpZHRoJ11cIlxyXG4gICAgICBbbWluSGVpZ2h0XT1cImRpYWxvZ0JveFsnbWluSGVpZ2h0J11cIlxyXG4gICAgICBbZHJhZ0JvdW5kYXJ5XT1cIicuY2RrLW92ZXJsYXktY29udGFpbmVyJ1wiXHJcbiAgICAgIFt0aXRsZV09XCJ0aXRsZVwiXHJcbiAgICAgIFtjb250ZW50XT1cImNvbnRlbnRUcGxcIlxyXG4gICAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgICAgW2VmZmVjdF09XCJlZmZlY3RcIlxyXG4gICAgICBbaGlkZUNsb3NlXT1cImhpZGVDbG9zZVwiXHJcbiAgICAgIFtjbG9zZVRleHRdPVwiY2xvc2VUZXh0XCJcclxuICAgICAgW29wZXJhdGlvblRwbF09XCJvcGVyYXRpb25UcGxcIlxyXG4gICAgICAoY2xvc2UpPVwib25DbG9zZSgnY2xvc2UnKVwiXHJcbiAgICAgIChkcmFnRW5kZWQpPVwib25EcmFnRW5kZWQoJGV2ZW50KVwiXHJcbiAgICAgIChyZXNpemluZyk9XCJvblJlc2l6aW5nKCRldmVudClcIlxyXG4gICAgICBzaG93SWNvbj1cImZhbHNlXCJcclxuICAgICAgZHVyYXRpb249XCIwXCJcclxuICAgICAgbWFudWFsXHJcbiAgICAgIGRpc2FibGVkQW5pbWF0aW9uXHJcbiAgICA+PC94LWFsZXJ0PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb250ZW50VHBsPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWRpYWxvZy1pbm5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGlhbG9nLWNvbnRlbnRcIj5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1kaWFsb2ctYnV0dG9uc1wiIFtjbGFzcy54LWRpYWxvZy1idXR0b25zLWNlbnRlcl09XCJidXR0b25zQ2VudGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJmb290ZXJcIj5cclxuICAgICAgICBAaWYgKHNob3dDYW5jZWwgfHwgc2hvd0NvbmZpcm0pIHtcclxuICAgICAgICAgIDx4LWJ1dHRvbnMgc3BhY2U9XCIxXCI+XHJcbiAgICAgICAgICAgIEBpZiAoc2hvd0NhbmNlbCkge1xyXG4gICAgICAgICAgICAgIDx4LWJ1dHRvbiAoY2xpY2spPVwib25DbG9zZSgnY2FuY2VsJylcIj57eyBnZXRDYW5jZWxUZXh0IH19PC94LWJ1dHRvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaWYgKHNob3dDb25maXJtKSB7XHJcbiAgICAgICAgICAgICAgPHgtYnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9uQ2xvc2UoJ2NvbmZpcm0nKVwiPnt7IGdldENvbmZpcm1UZXh0IH19PC94LWJ1dHRvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC94LWJ1dHRvbnM+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNvcGVyYXRpb25UcGw+XHJcbiAgQGlmIChtYXhpbWl6ZSB8fCByZXNpemFibGUpIHtcclxuICAgIDx4LWJ1dHRvblxyXG4gICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICBbaWNvbl09XCJpc01heGltaXplID8gJ2Z0by1taW5pbWl6ZScgOiAnZnRvLW1heGltaXplJ1wiXHJcbiAgICAgIFtvbmx5SWNvbl09XCJ0cnVlXCJcclxuICAgICAgKGNsaWNrKT1cIm9uU2l6ZSgpXCJcclxuICAgID48L3gtYnV0dG9uPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbkBpZiAoY29udGFpbmVyICYmIHZpc2libGUpIHtcclxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGlhbG9nVHBsXCI+PC9uZy1jb250YWluZXI+XHJcbn1cclxuIl19
@@ -1,71 +1,31 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
2
  import { XDialogComponent } from './dialog.component';
4
- import { XAlertModule } from '@ng-nest/ui/alert';
5
- import { XPortalModule } from '@ng-nest/ui/portal';
6
- import { XButtonModule } from '@ng-nest/ui/button';
7
- import { XIconModule } from '@ng-nest/ui/icon';
8
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
9
- import { XInputModule } from '@ng-nest/ui/input';
10
- import { XOutletModule } from '@ng-nest/ui/outlet';
11
- import { XResizableModule } from '@ng-nest/ui/resizable';
12
- import { DragDropModule } from '@angular/cdk/drag-drop';
13
- import { XDialogContainerProperty, XDialogProperty } from './dialog.property';
14
3
  import { XDialogActionsDirective, XDialogCloseDirective, XDialogContentDirective, XDialogDragHandleDirective, XDialogFullscreenDirective, XDialogTitleDirective } from './dialog-portal.directives';
15
- import { XDialogPortalComponent } from './dialog-portal.component';
16
- import { XDialogService } from './dialog.service';
17
4
  import { XDialogContainerComponent } from './dialog-container.component';
18
- import { XI18nModule } from '@ng-nest/ui/i18n';
19
5
  import * as i0 from "@angular/core";
20
6
  export class XDialogModule {
21
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
22
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: XDialogModule, declarations: [XDialogComponent,
7
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: XDialogModule, imports: [XDialogComponent,
23
9
  XDialogContainerComponent,
24
10
  XDialogCloseDirective,
25
11
  XDialogTitleDirective,
26
12
  XDialogContentDirective,
27
13
  XDialogActionsDirective,
28
14
  XDialogDragHandleDirective,
29
- XDialogFullscreenDirective,
30
- XDialogPortalComponent,
31
- XDialogProperty,
32
- XDialogContainerProperty], imports: [CommonModule,
33
- FormsModule,
34
- ReactiveFormsModule,
35
- DragDropModule,
36
- XInputModule,
37
- XButtonModule,
38
- XIconModule,
39
- XPortalModule,
40
- XAlertModule,
41
- XOutletModule,
42
- XResizableModule,
43
- XI18nModule], exports: [XDialogComponent,
15
+ XDialogFullscreenDirective], exports: [XDialogComponent,
44
16
  XDialogContainerComponent,
45
17
  XDialogCloseDirective,
46
18
  XDialogTitleDirective,
47
19
  XDialogContentDirective,
48
20
  XDialogActionsDirective,
49
21
  XDialogDragHandleDirective,
50
- XDialogFullscreenDirective,
51
- XDialogPortalComponent] }); }
52
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XDialogModule, providers: [XDialogService], imports: [CommonModule,
53
- FormsModule,
54
- ReactiveFormsModule,
55
- DragDropModule,
56
- XInputModule,
57
- XButtonModule,
58
- XIconModule,
59
- XPortalModule,
60
- XAlertModule,
61
- XOutletModule,
62
- XResizableModule,
63
- XI18nModule] }); }
22
+ XDialogFullscreenDirective] }); }
23
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XDialogModule, imports: [XDialogComponent] }); }
64
24
  }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XDialogModule, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XDialogModule, decorators: [{
66
26
  type: NgModule,
67
27
  args: [{
68
- declarations: [
28
+ exports: [
69
29
  XDialogComponent,
70
30
  XDialogContainerComponent,
71
31
  XDialogCloseDirective,
@@ -73,12 +33,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
73
33
  XDialogContentDirective,
74
34
  XDialogActionsDirective,
75
35
  XDialogDragHandleDirective,
76
- XDialogFullscreenDirective,
77
- XDialogPortalComponent,
78
- XDialogProperty,
79
- XDialogContainerProperty
36
+ XDialogFullscreenDirective
80
37
  ],
81
- exports: [
38
+ imports: [
82
39
  XDialogComponent,
83
40
  XDialogContainerComponent,
84
41
  XDialogCloseDirective,
@@ -86,24 +43,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
86
43
  XDialogContentDirective,
87
44
  XDialogActionsDirective,
88
45
  XDialogDragHandleDirective,
89
- XDialogFullscreenDirective,
90
- XDialogPortalComponent
91
- ],
92
- imports: [
93
- CommonModule,
94
- FormsModule,
95
- ReactiveFormsModule,
96
- DragDropModule,
97
- XInputModule,
98
- XButtonModule,
99
- XIconModule,
100
- XPortalModule,
101
- XAlertModule,
102
- XOutletModule,
103
- XResizableModule,
104
- XI18nModule
105
- ],
106
- providers: [XDialogService]
46
+ XDialogFullscreenDirective
47
+ ]
107
48
  }]
108
49
  }] });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RpYWxvZy9kaWFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLHFCQUFxQixFQUN0QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBMkMvQyxNQUFNLE9BQU8sYUFBYTtpSUFBYixhQUFhO2tJQUFiLGFBQWEsaUJBdkN0QixnQkFBZ0I7WUFDaEIseUJBQXlCO1lBQ3pCLHFCQUFxQjtZQUNyQixxQkFBcUI7WUFDckIsdUJBQXVCO1lBQ3ZCLHVCQUF1QjtZQUN2QiwwQkFBMEI7WUFDMUIsMEJBQTBCO1lBQzFCLHNCQUFzQjtZQUN0QixlQUFlO1lBQ2Ysd0JBQXdCLGFBY3hCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxZQUFZO1lBQ1osYUFBYTtZQUNiLFdBQVc7WUFDWCxhQUFhO1lBQ2IsWUFBWTtZQUNaLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsV0FBVyxhQXRCWCxnQkFBZ0I7WUFDaEIseUJBQXlCO1lBQ3pCLHFCQUFxQjtZQUNyQixxQkFBcUI7WUFDckIsdUJBQXVCO1lBQ3ZCLHVCQUF1QjtZQUN2QiwwQkFBMEI7WUFDMUIsMEJBQTBCO1lBQzFCLHNCQUFzQjtrSUFrQmIsYUFBYSxhQUZiLENBQUMsY0FBYyxDQUFDLFlBYnpCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxZQUFZO1lBQ1osYUFBYTtZQUNiLFdBQVc7WUFDWCxhQUFhO1lBQ2IsWUFBWTtZQUNaLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsV0FBVzs7MkZBSUYsYUFBYTtrQkF6Q3pCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGdCQUFnQjt3QkFDaEIseUJBQXlCO3dCQUN6QixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQixzQkFBc0I7d0JBQ3RCLGVBQWU7d0JBQ2Ysd0JBQXdCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZ0JBQWdCO3dCQUNoQix5QkFBeUI7d0JBQ3pCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixXQUFXO3FCQUNaO29CQUNELFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBYRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWEFsZXJ0TW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvYWxlcnQnO1xyXG5pbXBvcnQgeyBYUG9ydGFsTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IFhJY29uTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvaWNvbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBYSW5wdXRNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcbmltcG9ydCB7IFhPdXRsZXRNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9vdXRsZXQnO1xyXG5pbXBvcnQgeyBYUmVzaXphYmxlTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcmVzaXphYmxlJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgWERpYWxvZ0NvbnRhaW5lclByb3BlcnR5LCBYRGlhbG9nUHJvcGVydHkgfSBmcm9tICcuL2RpYWxvZy5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7XHJcbiAgWERpYWxvZ0FjdGlvbnNEaXJlY3RpdmUsXHJcbiAgWERpYWxvZ0Nsb3NlRGlyZWN0aXZlLFxyXG4gIFhEaWFsb2dDb250ZW50RGlyZWN0aXZlLFxyXG4gIFhEaWFsb2dEcmFnSGFuZGxlRGlyZWN0aXZlLFxyXG4gIFhEaWFsb2dGdWxsc2NyZWVuRGlyZWN0aXZlLFxyXG4gIFhEaWFsb2dUaXRsZURpcmVjdGl2ZVxyXG59IGZyb20gJy4vZGlhbG9nLXBvcnRhbC5kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgWERpYWxvZ1BvcnRhbENvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLXBvcnRhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYRGlhbG9nU2VydmljZSB9IGZyb20gJy4vZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBYRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhJMThuTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgWERpYWxvZ0NvbXBvbmVudCxcclxuICAgIFhEaWFsb2dDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBYRGlhbG9nQ2xvc2VEaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nVGl0bGVEaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nQ29udGVudERpcmVjdGl2ZSxcclxuICAgIFhEaWFsb2dBY3Rpb25zRGlyZWN0aXZlLFxyXG4gICAgWERpYWxvZ0RyYWdIYW5kbGVEaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nRnVsbHNjcmVlbkRpcmVjdGl2ZSxcclxuICAgIFhEaWFsb2dQb3J0YWxDb21wb25lbnQsXHJcbiAgICBYRGlhbG9nUHJvcGVydHksXHJcbiAgICBYRGlhbG9nQ29udGFpbmVyUHJvcGVydHlcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFhEaWFsb2dDb21wb25lbnQsXHJcbiAgICBYRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgWERpYWxvZ0Nsb3NlRGlyZWN0aXZlLFxyXG4gICAgWERpYWxvZ1RpdGxlRGlyZWN0aXZlLFxyXG4gICAgWERpYWxvZ0NvbnRlbnREaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nQWN0aW9uc0RpcmVjdGl2ZSxcclxuICAgIFhEaWFsb2dEcmFnSGFuZGxlRGlyZWN0aXZlLFxyXG4gICAgWERpYWxvZ0Z1bGxzY3JlZW5EaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nUG9ydGFsQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICAgIFhJbnB1dE1vZHVsZSxcclxuICAgIFhCdXR0b25Nb2R1bGUsXHJcbiAgICBYSWNvbk1vZHVsZSxcclxuICAgIFhQb3J0YWxNb2R1bGUsXHJcbiAgICBYQWxlcnRNb2R1bGUsXHJcbiAgICBYT3V0bGV0TW9kdWxlLFxyXG4gICAgWFJlc2l6YWJsZU1vZHVsZSxcclxuICAgIFhJMThuTW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtYRGlhbG9nU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhEaWFsb2dNb2R1bGUge31cclxuIl19
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RpYWxvZy9kaWFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFDMUIscUJBQXFCLEVBQ3RCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBd0J6RSxNQUFNLE9BQU8sYUFBYTtpSUFBYixhQUFhO2tJQUFiLGFBQWEsWUFWdEIsZ0JBQWdCO1lBQ2hCLHlCQUF5QjtZQUN6QixxQkFBcUI7WUFDckIscUJBQXFCO1lBQ3JCLHVCQUF1QjtZQUN2Qix1QkFBdUI7WUFDdkIsMEJBQTBCO1lBQzFCLDBCQUEwQixhQWpCMUIsZ0JBQWdCO1lBQ2hCLHlCQUF5QjtZQUN6QixxQkFBcUI7WUFDckIscUJBQXFCO1lBQ3JCLHVCQUF1QjtZQUN2Qix1QkFBdUI7WUFDdkIsMEJBQTBCO1lBQzFCLDBCQUEwQjtrSUFhakIsYUFBYSxZQVZ0QixnQkFBZ0I7OzJGQVVQLGFBQWE7a0JBdEJ6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxnQkFBZ0I7d0JBQ2hCLHlCQUF5Qjt3QkFDekIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLDBCQUEwQjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjt3QkFDaEIseUJBQXlCO3dCQUN6QixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3FCQUMzQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIFhEaWFsb2dBY3Rpb25zRGlyZWN0aXZlLFxyXG4gIFhEaWFsb2dDbG9zZURpcmVjdGl2ZSxcclxuICBYRGlhbG9nQ29udGVudERpcmVjdGl2ZSxcclxuICBYRGlhbG9nRHJhZ0hhbmRsZURpcmVjdGl2ZSxcclxuICBYRGlhbG9nRnVsbHNjcmVlbkRpcmVjdGl2ZSxcclxuICBYRGlhbG9nVGl0bGVEaXJlY3RpdmVcclxufSBmcm9tICcuL2RpYWxvZy1wb3J0YWwuZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IFhEaWFsb2dDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZy1jb250YWluZXIuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZXhwb3J0czogW1xyXG4gICAgWERpYWxvZ0NvbXBvbmVudCxcclxuICAgIFhEaWFsb2dDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBYRGlhbG9nQ2xvc2VEaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nVGl0bGVEaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nQ29udGVudERpcmVjdGl2ZSxcclxuICAgIFhEaWFsb2dBY3Rpb25zRGlyZWN0aXZlLFxyXG4gICAgWERpYWxvZ0RyYWdIYW5kbGVEaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nRnVsbHNjcmVlbkRpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgWERpYWxvZ0NvbXBvbmVudCxcclxuICAgIFhEaWFsb2dDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBYRGlhbG9nQ2xvc2VEaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nVGl0bGVEaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nQ29udGVudERpcmVjdGl2ZSxcclxuICAgIFhEaWFsb2dBY3Rpb25zRGlyZWN0aXZlLFxyXG4gICAgWERpYWxvZ0RyYWdIYW5kbGVEaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nRnVsbHNjcmVlbkRpcmVjdGl2ZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhEaWFsb2dNb2R1bGUge31cclxuIl19
@@ -55,8 +55,8 @@ export class XDialogProperty extends XAlertProperty {
55
55
  */
56
56
  this.closeDone = new EventEmitter();
57
57
  }
58
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XDialogProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
59
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XDialogProperty, selector: "x-dialog-property", inputs: { visible: "visible", placement: "placement", offset: "offset", type: "type", width: "width", height: "height", minWidth: "minWidth", minHeight: "minHeight", effect: "effect", footer: "footer", showCancel: "showCancel", cancelText: "cancelText", showConfirm: "showConfirm", confirmText: "confirmText", backdropClose: "backdropClose", hasBackdrop: "hasBackdrop", className: "className", buttonsCenter: "buttonsCenter", draggable: "draggable", resizable: "resizable", maximize: "maximize", beforeClose: "beforeClose" }, outputs: { cancel: "cancel", confirm: "confirm", close: "close", visibleChange: "visibleChange", showDone: "showDone", closeDone: "closeDone" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
58
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XDialogProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
59
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: XDialogProperty, selector: "x-dialog-property", inputs: { visible: "visible", placement: "placement", offset: "offset", type: "type", width: "width", height: "height", minWidth: "minWidth", minHeight: "minHeight", effect: "effect", footer: "footer", showCancel: "showCancel", cancelText: "cancelText", showConfirm: "showConfirm", confirmText: "confirmText", backdropClose: "backdropClose", hasBackdrop: "hasBackdrop", className: "className", buttonsCenter: "buttonsCenter", draggable: "draggable", resizable: "resizable", maximize: "maximize", beforeClose: "beforeClose" }, outputs: { cancel: "cancel", confirm: "confirm", close: "close", visibleChange: "visibleChange", showDone: "showDone", closeDone: "closeDone" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
60
60
  }
61
61
  __decorate([
62
62
  XInputBoolean()
@@ -116,7 +116,7 @@ __decorate([
116
116
  XWithConfig(X_DIALOG_CONFIG_NAME, false),
117
117
  XInputBoolean()
118
118
  ], XDialogProperty.prototype, "maximize", void 0);
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XDialogProperty, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XDialogProperty, decorators: [{
120
120
  type: Component,
121
121
  args: [{ selector: `${XDialogPrefix}-property`, template: '' }]
122
122
  }], propDecorators: { visible: [{
@@ -187,10 +187,10 @@ export const X_DIALOG_CONTAINER = new InjectionToken('X_DIALOG_CONTAINER');
187
187
  * Dialog Container Property
188
188
  */
189
189
  export class XDialogContainerProperty extends XProperty {
190
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XDialogContainerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
191
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XDialogContainerProperty, selector: "x-dialog-container-property", usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
190
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XDialogContainerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
191
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: XDialogContainerProperty, selector: "x-dialog-container-property", usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
192
192
  }
193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XDialogContainerProperty, decorators: [{
193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XDialogContainerProperty, decorators: [{
194
194
  type: Component,
195
195
  args: [{ selector: `${XDialogContainerPrefix}-property`, template: '' }]
196
196
  }] });
@@ -1,20 +1,14 @@
1
+ import { Overlay } from '@angular/cdk/overlay';
1
2
  import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
2
- import { Injectable, TemplateRef } from '@angular/core';
3
- import { fillDefault } from '@ng-nest/ui/core';
4
- import { PortalResizablePrefix } from '@ng-nest/ui/portal';
3
+ import { Injectable, RendererFactory2, TemplateRef, inject } from '@angular/core';
4
+ import { fillDefault, XConfigService } from '@ng-nest/ui/core';
5
+ import { PortalResizablePrefix, XPortalService } from '@ng-nest/ui/portal';
5
6
  import { XDialogPortalComponent } from './dialog-portal.component';
6
7
  import { XDialogRef } from './dialog-ref';
7
8
  import { X_DIALOG_CONFIG_NAME, X_DIALOG_DATA } from './dialog.property';
8
9
  import * as i0 from "@angular/core";
9
- import * as i1 from "@ng-nest/ui/portal";
10
- import * as i2 from "@ng-nest/ui/core";
11
- import * as i3 from "@angular/cdk/overlay";
12
10
  export class XDialogService {
13
- constructor(portalService, configService, overlay, rendererFactory) {
14
- this.portalService = portalService;
15
- this.configService = configService;
16
- this.overlay = overlay;
17
- this.rendererFactory = rendererFactory;
11
+ constructor() {
18
12
  this.default = {
19
13
  placement: 'center',
20
14
  offset: '1rem',
@@ -26,6 +20,10 @@ export class XDialogService {
26
20
  draggable: false,
27
21
  resizable: false
28
22
  };
23
+ this.portalService = inject(XPortalService);
24
+ this.configService = inject(XConfigService);
25
+ this.overlay = inject(Overlay);
26
+ this.rendererFactory = inject(RendererFactory2);
29
27
  this.renderer = this.rendererFactory.createRenderer(null, null);
30
28
  this.configDefault = this.configService.getConfigForComponent(X_DIALOG_CONFIG_NAME);
31
29
  Object.assign(this.default, this.configDefault);
@@ -114,10 +112,11 @@ export class XDialogService {
114
112
  }
115
113
  return false;
116
114
  }
117
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XDialogService, deps: [{ token: i1.XPortalService }, { token: i2.XConfigService }, { token: i3.Overlay }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
118
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XDialogService }); }
115
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
116
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XDialogService, providedIn: 'root' }); }
119
117
  }
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XDialogService, decorators: [{
121
- type: Injectable
122
- }], ctorParameters: () => [{ type: i1.XPortalService }, { type: i2.XConfigService }, { type: i3.Overlay }, { type: i0.RendererFactory2 }] });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kaWFsb2cvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBaUIsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckYsT0FBTyxFQUFFLFVBQVUsRUFBK0IsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQWlDLE1BQU0sa0JBQWtCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHFCQUFxQixFQUFrQixNQUFNLG9CQUFvQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFvQixvQkFBb0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFHMUYsTUFBTSxPQUFPLGNBQWM7SUFnQnpCLFlBQ1MsYUFBNkIsRUFDN0IsYUFBNkIsRUFDN0IsT0FBZ0IsRUFDaEIsZUFBaUM7UUFIakMsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQW5CMUMsWUFBTyxHQUFxQjtZQUMxQixTQUFTLEVBQUUsUUFBUTtZQUNuQixNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxPQUFPO1lBQ2QsUUFBUSxFQUFFLE9BQU87WUFDakIsU0FBUyxFQUFFLE1BQU07WUFDakIsYUFBYSxFQUFFLElBQUk7WUFDbkIsV0FBVyxFQUFFLElBQUk7WUFDakIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsU0FBUyxFQUFFLEtBQUs7U0FDakIsQ0FBQztRQVdBLElBQUks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U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztpSUFuSFUsY0FBYztxSUFBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBDb21wb25lbnRUeXBlLCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZpbGxEZWZhdWx0LCBYQ29uZmlnU2VydmljZSwgWERpYWxvZ0NvbmZpZyB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBQb3J0YWxSZXNpemFibGVQcmVmaXgsIFhQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWERpYWxvZ1BvcnRhbENvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLXBvcnRhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYRGlhbG9nUmVmIH0gZnJvbSAnLi9kaWFsb2ctcmVmJztcclxuaW1wb3J0IHsgWERpYWxvZ1JlZk9wdGlvbiwgWF9ESUFMT0dfQ09ORklHX05BTUUsIFhfRElBTE9HX0RBVEEgfSBmcm9tICcuL2RpYWxvZy5wcm9wZXJ0eSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBYRGlhbG9nU2VydmljZSB7XHJcbiAgZGVmYXVsdDogWERpYWxvZ1JlZk9wdGlvbiA9IHtcclxuICAgIHBsYWNlbWVudDogJ2NlbnRlcicsXHJcbiAgICBvZmZzZXQ6ICcxcmVtJyxcclxuICAgIHdpZHRoOiAnMzJyZW0nLFxyXG4gICAgbWluV2lkdGg6ICcxOHJlbScsXHJcbiAgICBtaW5IZWlnaHQ6ICc4cmVtJyxcclxuICAgIGJhY2tkcm9wQ2xvc2U6IHRydWUsXHJcbiAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgIGRyYWdnYWJsZTogZmFsc2UsXHJcbiAgICByZXNpemFibGU6IGZhbHNlXHJcbiAgfTtcclxuICBjb25maWdEZWZhdWx0PzogWERpYWxvZ0NvbmZpZztcclxuXHJcbiAgcmVuZGVyZXIhOiBSZW5kZXJlcjI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHBvcnRhbFNlcnZpY2U6IFhQb3J0YWxTZXJ2aWNlLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlLFxyXG4gICAgcHVibGljIG92ZXJsYXk6IE92ZXJsYXksXHJcbiAgICBwdWJsaWMgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyXHJcbiAgKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XHJcbiAgICB0aGlzLmNvbmZpZ0RlZmF1bHQgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnRm9yQ29tcG9uZW50KFhfRElBTE9HX0NPTkZJR19OQU1FKTtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5kZWZhdWx0LCB0aGlzLmNvbmZpZ0RlZmF1bHQpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlPFQ+KGNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT4gfCBDb21wb25lbnRUeXBlPFQ+LCBvcHRpb246IFhEaWFsb2dSZWZPcHRpb24gPSB7fSk6IFhEaWFsb2dSZWY8VD4ge1xyXG4gICAgZmlsbERlZmF1bHQob3B0aW9uLCB0aGlzLmRlZmF1bHQpO1xyXG4gICAgY29uc3QgcG9ydGFsID0gdGhpcy5wb3J0YWxTZXJ2aWNlLmF0dGFjaDxYRGlhbG9nUG9ydGFsQ29tcG9uZW50Pih7XHJcbiAgICAgIGNvbnRlbnQ6IFhEaWFsb2dQb3J0YWxDb21wb25lbnQsXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IG9wdGlvbi52aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICBvdmVybGF5Q29uZmlnOiB7XHJcbiAgICAgICAgaGFzQmFja2Ryb3A6IG9wdGlvbi5oYXNCYWNrZHJvcCxcclxuICAgICAgICBwYW5lbENsYXNzOiBvcHRpb24uY2xhc3NOYW1lLFxyXG4gICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxyXG4gICAgICAgIHdpZHRoOiBvcHRpb24ud2lkdGgsXHJcbiAgICAgICAgaGVpZ2h0OiBvcHRpb24uaGVpZ2h0LFxyXG4gICAgICAgIG1pbldpZHRoOiBvcHRpb24ubWluV2lkdGgsXHJcbiAgICAgICAgbWluSGVpZ2h0OiBvcHRpb24ubWluSGVpZ2h0LFxyXG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMucG9ydGFsU2VydmljZS5zZXRQbGFjZShvcHRpb24ucGxhY2VtZW50LCBvcHRpb24ub2Zmc2V0ISlcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgeyBvdmVybGF5UmVmLCBjb21wb25lbnRSZWYgfSA9IHBvcnRhbCB8fCB7fTtcclxuICAgIGNvbnN0IHsgaW5zdGFuY2UgfSA9IGNvbXBvbmVudFJlZiEgfHwge307XHJcbiAgICBjb25zdCB7IGhvc3RFbGVtZW50LCBvdmVybGF5RWxlbWVudCB9ID0gb3ZlcmxheVJlZiB8fCB7fTtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IG5ldyBYRGlhbG9nUmVmPFQ+KG92ZXJsYXlSZWYhLCBpbnN0YW5jZSwgdGhpcy5yZW5kZXJlciwgdGhpcy5wb3J0YWxTZXJ2aWNlKTtcclxuICAgIGxldCBkaWFsb2dCb3ggPSB7XHJcbiAgICAgIGRyYWdnYWJsZTogb3B0aW9uLmRyYWdnYWJsZSxcclxuICAgICAgcmVzaXphYmxlOiBvcHRpb24ucmVzaXphYmxlXHJcbiAgICB9O1xyXG4gICAgbGV0IGRlZmF1bHRNYXhpbWl6ZSA9IHRoaXMuc2V0TWF4aW1pemUob3B0aW9uKTtcclxuICAgIE9iamVjdC5hc3NpZ24oZGlhbG9nQm94LCB7XHJcbiAgICAgIHdpZHRoOiBkZWZhdWx0TWF4aW1pemUgPyB0aGlzLmRlZmF1bHQud2lkdGggOiBvcHRpb24ud2lkdGgsXHJcbiAgICAgIGhlaWdodDogZGVmYXVsdE1heGltaXplID8gbnVsbCA6IG9wdGlvbi5oZWlnaHQsXHJcbiAgICAgIG1pbldpZHRoOiBvcHRpb24ubWluV2lkdGgsXHJcbiAgICAgIG1pbkhlaWdodDogb3B0aW9uLm1pbkhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBpbnN0YW5jZS5wbGFjZW1lbnQgPSBvcHRpb24ucGxhY2VtZW50O1xyXG4gICAgaW5zdGFuY2Uub3B0aW9uID0gb3B0aW9uO1xyXG4gICAgaW5zdGFuY2UuZGlhbG9nUmVmID0gZGlhbG9nUmVmO1xyXG4gICAgaW5zdGFuY2UuZGVmYXVsdE1heGltaXplID0gZGVmYXVsdE1heGltaXplO1xyXG4gICAgaW5zdGFuY2UuZGlhbG9nQm94ID0gZGlhbG9nQm94O1xyXG4gICAgaW5zdGFuY2UuaG9zdEVsZW1lbnQgPSBob3N0RWxlbWVudDtcclxuICAgIGluc3RhbmNlLm92ZXJsYXlFbGVtZW50ID0gb3ZlcmxheUVsZW1lbnQ7XHJcbiAgICBkaWFsb2dSZWYub3B0aW9uID0gb3B0aW9uO1xyXG4gICAgZGlhbG9nUmVmLmZ1bGxzY3JlZW4gPSBkZWZhdWx0TWF4aW1pemU7XHJcbiAgICBpZiAob3B0aW9uLnJlc2l6YWJsZSAmJiAhZGVmYXVsdE1heGltaXplKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsZW1lbnQsIFBvcnRhbFJlc2l6YWJsZVByZWZpeCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24oZGlhbG9nQm94LCB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UmVzaXphYmxlKG92ZXJsYXlFbGVtZW50ISwgb3B0aW9uLnBsYWNlbWVudCkpO1xyXG4gICAgICAgIGluc3RhbmNlLm9mZnNldExlZnQgPSBvdmVybGF5RWxlbWVudCEub2Zmc2V0TGVmdDtcclxuICAgICAgICBpbnN0YW5jZS5vZmZzZXRUb3AgPSBvdmVybGF5RWxlbWVudCEub2Zmc2V0VG9wO1xyXG4gICAgICAgIGNvbnN0IGRpYWxvZ0RyYWdnYWJsZSA9IG92ZXJsYXlFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCcueC1kaWFsb2ctcG9ydGFsJykhO1xyXG4gICAgICAgIGluc3RhbmNlLmluaXRIZWlnaHQgPSBkaWFsb2dEcmFnZ2FibGUuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIGluc3RhbmNlLmRpYWxvZ0NvbnRlbnQgPSBvdmVybGF5RWxlbWVudD8ucXVlcnlTZWxlY3RvcignLngtZGlhbG9nLXBvcnRhbC1jb250ZW50JykhO1xyXG4gICAgICAgIGluc3RhbmNlLmluaXRDb250ZW50SGVpZ2h0ID0gaW5zdGFuY2UuZGlhbG9nQ29udGVudD8uY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIGluc3RhbmNlLmRpYWxvZ0JveCA9IGRpYWxvZ0JveDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoZGVmYXVsdE1heGltaXplKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3Mob3ZlcmxheUVsZW1lbnQsICd4LWRpYWxvZy1wb3J0YWwtZnVsbHNjcmVlbicpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xyXG4gICAgICBpbnN0YW5jZS5hdHRhY2hUZW1wbGF0ZVBvcnRhbChcclxuICAgICAgICBuZXcgVGVtcGxhdGVQb3J0YWwoY29udGVudCwgb3B0aW9uLnZpZXdDb250YWluZXJSZWYhLCB7ICRpbXBsaWNpdDogb3B0aW9uLmRhdGEsIGRpYWxvZ1JlZjogZGlhbG9nUmVmIH0pXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBpbmplY3RvciA9IHRoaXMucG9ydGFsU2VydmljZS5jcmVhdGVJbmplY3RvcihbXHJcbiAgICAgICAgeyBwcm92aWRlOiBYX0RJQUxPR19EQVRBLCB1c2VWYWx1ZTogb3B0aW9uLmRhdGEgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IFhEaWFsb2dSZWYsIHVzZVZhbHVlOiBkaWFsb2dSZWYgfVxyXG4gICAgICBdKTtcclxuICAgICAgY29uc3QgY29tUmVmID0gaW5zdGFuY2UuYXR0YWNoQ29tcG9uZW50UG9ydGFsKG5ldyBDb21wb25lbnRQb3J0YWwoY29udGVudCwgb3B0aW9uLnZpZXdDb250YWluZXJSZWYsIGluamVjdG9yKSk7XHJcbiAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZSA9IGNvbVJlZi5pbnN0YW5jZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0aW9uLmhhc0JhY2tkcm9wICYmIG9wdGlvbi5iYWNrZHJvcENsb3NlICYmIG92ZXJsYXlSZWYpIHtcclxuICAgICAgb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBkaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRpYWxvZ1JlZjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TWF4aW1pemUob3B0aW9uOiBYRGlhbG9nUmVmT3B0aW9uID0ge30pIHtcclxuICAgIGNvbnN0IHdzID0gWycxMDAlJywgJzEwMHZ3J107XHJcbiAgICBjb25zdCBocyA9IFsnMTAwJScsICcxMDB2aCddO1xyXG4gICAgaWYgKHdzLmluY2x1ZGVzKG9wdGlvbi53aWR0aCBhcyBzdHJpbmcpICYmIGhzLmluY2x1ZGVzKG9wdGlvbi5oZWlnaHQgYXMgc3RyaW5nKSkge1xyXG4gICAgICBvcHRpb24ucmVzaXphYmxlID0gZmFsc2U7XHJcbiAgICAgIG9wdGlvbi5kcmFnZ2FibGUgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XDialogService, decorators: [{
119
+ type: Injectable,
120
+ args: [{ providedIn: 'root' }]
121
+ }], ctorParameters: () => [] });
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kaWFsb2cvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQWlCLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBaUIsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQW9CLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUcxRixNQUFNLE9BQU8sY0FBYztJQW9CekI7UUFuQkEsWUFBTyxHQUFxQjtZQUMxQixTQUFTLEVBQUUsUUFBUTtZQUNuQixNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxPQUFPO1lBQ2QsUUFBUSxFQUFFLE9BQU87WUFDakIsU0FBUyxFQUFFLE1BQU07WUFDakIsYUFBYSxFQUFFLElBQUk7WUFDbkIsV0FBVyxFQUFFLElBQUk7WUFDakIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsU0FBUyxFQUFFLEtBQUs7U0FDakIsQ0FBQztRQUdNLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZDLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZD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QUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDekIsTUFBTSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztpSUFqSFUsY0FBYztxSUFBZCxjQUFjLGNBREQsTUFBTTs7MkZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBDb21wb25lbnRUeXBlLCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBSZW5kZXJlckZhY3RvcnkyLCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZpbGxEZWZhdWx0LCBYQ29uZmlnU2VydmljZSwgWERpYWxvZ0NvbmZpZyB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBQb3J0YWxSZXNpemFibGVQcmVmaXgsIFhQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWERpYWxvZ1BvcnRhbENvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLXBvcnRhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYRGlhbG9nUmVmIH0gZnJvbSAnLi9kaWFsb2ctcmVmJztcclxuaW1wb3J0IHsgWERpYWxvZ1JlZk9wdGlvbiwgWF9ESUFMT0dfQ09ORklHX05BTUUsIFhfRElBTE9HX0RBVEEgfSBmcm9tICcuL2RpYWxvZy5wcm9wZXJ0eSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgWERpYWxvZ1NlcnZpY2Uge1xyXG4gIGRlZmF1bHQ6IFhEaWFsb2dSZWZPcHRpb24gPSB7XHJcbiAgICBwbGFjZW1lbnQ6ICdjZW50ZXInLFxyXG4gICAgb2Zmc2V0OiAnMXJlbScsXHJcbiAgICB3aWR0aDogJzMycmVtJyxcclxuICAgIG1pbldpZHRoOiAnMThyZW0nLFxyXG4gICAgbWluSGVpZ2h0OiAnOHJlbScsXHJcbiAgICBiYWNrZHJvcENsb3NlOiB0cnVlLFxyXG4gICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICBkcmFnZ2FibGU6IGZhbHNlLFxyXG4gICAgcmVzaXphYmxlOiBmYWxzZVxyXG4gIH07XHJcbiAgY29uZmlnRGVmYXVsdD86IFhEaWFsb2dDb25maWc7XHJcblxyXG4gIHByaXZhdGUgcG9ydGFsU2VydmljZSA9IGluamVjdChYUG9ydGFsU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlID0gaW5qZWN0KFhDb25maWdTZXJ2aWNlKTtcclxuICBwcml2YXRlIG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XHJcbiAgcHJpdmF0ZSByZW5kZXJlckZhY3RvcnkgPSBpbmplY3QoUmVuZGVyZXJGYWN0b3J5Mik7XHJcbiAgcHJpdmF0ZSByZW5kZXJlciA9IHRoaXMucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuY29uZmlnRGVmYXVsdCA9IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWdGb3JDb21wb25lbnQoWF9ESUFMT0dfQ09ORklHX05BTUUpO1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLmRlZmF1bHQsIHRoaXMuY29uZmlnRGVmYXVsdCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGU8VD4oY29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IENvbXBvbmVudFR5cGU8VD4sIG9wdGlvbjogWERpYWxvZ1JlZk9wdGlvbiA9IHt9KTogWERpYWxvZ1JlZjxUPiB7XHJcbiAgICBmaWxsRGVmYXVsdChvcHRpb24sIHRoaXMuZGVmYXVsdCk7XHJcbiAgICBjb25zdCBwb3J0YWwgPSB0aGlzLnBvcnRhbFNlcnZpY2UuYXR0YWNoPFhEaWFsb2dQb3J0YWxDb21wb25lbnQ+KHtcclxuICAgICAgY29udGVudDogWERpYWxvZ1BvcnRhbENvbXBvbmVudCxcclxuICAgICAgdmlld0NvbnRhaW5lclJlZjogb3B0aW9uLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IHtcclxuICAgICAgICBoYXNCYWNrZHJvcDogb3B0aW9uLmhhc0JhY2tkcm9wLFxyXG4gICAgICAgIHBhbmVsQ2xhc3M6IG9wdGlvbi5jbGFzc05hbWUsXHJcbiAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCksXHJcbiAgICAgICAgd2lkdGg6IG9wdGlvbi53aWR0aCxcclxuICAgICAgICBoZWlnaHQ6IG9wdGlvbi5oZWlnaHQsXHJcbiAgICAgICAgbWluV2lkdGg6IG9wdGlvbi5taW5XaWR0aCxcclxuICAgICAgICBtaW5IZWlnaHQ6IG9wdGlvbi5taW5IZWlnaHQsXHJcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5wb3J0YWxTZXJ2aWNlLnNldFBsYWNlKG9wdGlvbi5wbGFjZW1lbnQsIG9wdGlvbi5vZmZzZXQhKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCB7IG92ZXJsYXlSZWYsIGNvbXBvbmVudFJlZiB9ID0gcG9ydGFsIHx8IHt9O1xyXG4gICAgY29uc3QgeyBpbnN0YW5jZSB9ID0gY29tcG9uZW50UmVmISB8fCB7fTtcclxuICAgIGNvbnN0IHsgaG9zdEVsZW1lbnQsIG92ZXJsYXlFbGVtZW50IH0gPSBvdmVybGF5UmVmIHx8IHt9O1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gbmV3IFhEaWFsb2dSZWY8VD4ob3ZlcmxheVJlZiEsIGluc3RhbmNlLCB0aGlzLnJlbmRlcmVyLCB0aGlzLnBvcnRhbFNlcnZpY2UpO1xyXG4gICAgbGV0IGRpYWxvZ0JveCA9IHtcclxuICAgICAgZHJhZ2dhYmxlOiBvcHRpb24uZHJhZ2dhYmxlLFxyXG4gICAgICByZXNpemFibGU6IG9wdGlvbi5yZXNpemFibGVcclxuICAgIH07XHJcbiAgICBsZXQgZGVmYXVsdE1heGltaXplID0gdGhpcy5zZXRNYXhpbWl6ZShvcHRpb24pO1xyXG4gICAgT2JqZWN0LmFzc2lnbihkaWFsb2dCb3gsIHtcclxuICAgICAgd2lkdGg6IGRlZmF1bHRNYXhpbWl6ZSA/IHRoaXMuZGVmYXVsdC53aWR0aCA6IG9wdGlvbi53aWR0aCxcclxuICAgICAgaGVpZ2h0OiBkZWZhdWx0TWF4aW1pemUgPyBudWxsIDogb3B0aW9uLmhlaWdodCxcclxuICAgICAgbWluV2lkdGg6IG9wdGlvbi5taW5XaWR0aCxcclxuICAgICAgbWluSGVpZ2h0OiBvcHRpb24ubWluSGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGluc3RhbmNlLnBsYWNlbWVudCA9IG9wdGlvbi5wbGFjZW1lbnQ7XHJcbiAgICBpbnN0YW5jZS5vcHRpb24gPSBvcHRpb247XHJcbiAgICBpbnN0YW5jZS5kaWFsb2dSZWYgPSBkaWFsb2dSZWY7XHJcbiAgICBpbnN0YW5jZS5kZWZhdWx0TWF4aW1pemUgPSBkZWZhdWx0TWF4aW1pemU7XHJcbiAgICBpbnN0YW5jZS5kaWFsb2dCb3ggPSBkaWFsb2dCb3g7XHJcbiAgICBpbnN0YW5jZS5ob3N0RWxlbWVudCA9IGhvc3RFbGVtZW50O1xyXG4gICAgaW5zdGFuY2Uub3ZlcmxheUVsZW1lbnQgPSBvdmVybGF5RWxlbWVudDtcclxuICAgIGRpYWxvZ1JlZi5vcHRpb24gPSBvcHRpb247XHJcbiAgICBkaWFsb2dSZWYuZnVsbHNjcmVlbiA9IGRlZmF1bHRNYXhpbWl6ZTtcclxuICAgIGlmIChvcHRpb24ucmVzaXphYmxlICYmICFkZWZhdWx0TWF4aW1pemUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhob3N0RWxlbWVudCwgUG9ydGFsUmVzaXphYmxlUHJlZml4KTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihkaWFsb2dCb3gsIHRoaXMucG9ydGFsU2VydmljZS5zZXRSZXNpemFibGUob3ZlcmxheUVsZW1lbnQhLCBvcHRpb24ucGxhY2VtZW50KSk7XHJcbiAgICAgICAgaW5zdGFuY2Uub2Zmc2V0TGVmdCA9IG92ZXJsYXlFbGVtZW50IS5vZmZzZXRMZWZ0O1xyXG4gICAgICAgIGluc3RhbmNlLm9mZnNldFRvcCA9IG92ZXJsYXlFbGVtZW50IS5vZmZzZXRUb3A7XHJcbiAgICAgICAgY29uc3QgZGlhbG9nRHJhZ2dhYmxlID0gb3ZlcmxheUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJy54LWRpYWxvZy1wb3J0YWwnKSE7XHJcbiAgICAgICAgaW5zdGFuY2UuaW5pdEhlaWdodCA9IGRpYWxvZ0RyYWdnYWJsZS5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgaW5zdGFuY2UuZGlhbG9nQ29udGVudCA9IG92ZXJsYXlFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCcueC1kaWFsb2ctcG9ydGFsLWNvbnRlbnQnKSE7XHJcbiAgICAgICAgaW5zdGFuY2UuaW5pdENvbnRlbnRIZWlnaHQgPSBpbnN0YW5jZS5kaWFsb2dDb250ZW50Py5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgaW5zdGFuY2UuZGlhbG9nQm94ID0gZGlhbG9nQm94O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChkZWZhdWx0TWF4aW1pemUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhvdmVybGF5RWxlbWVudCwgJ3gtZGlhbG9nLXBvcnRhbC1mdWxsc2NyZWVuJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIGluc3RhbmNlLmF0dGFjaFRlbXBsYXRlUG9ydGFsKFxyXG4gICAgICAgIG5ldyBUZW1wbGF0ZVBvcnRhbChjb250ZW50LCBvcHRpb24udmlld0NvbnRhaW5lclJlZiEsIHsgJGltcGxpY2l0OiBvcHRpb24uZGF0YSwgZGlhbG9nUmVmOiBkaWFsb2dSZWYgfSlcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGluamVjdG9yID0gdGhpcy5wb3J0YWxTZXJ2aWNlLmNyZWF0ZUluamVjdG9yKFtcclxuICAgICAgICB7IHByb3ZpZGU6IFhfRElBTE9HX0RBVEEsIHVzZVZhbHVlOiBvcHRpb24uZGF0YSB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogWERpYWxvZ1JlZiwgdXNlVmFsdWU6IGRpYWxvZ1JlZiB9XHJcbiAgICAgIF0pO1xyXG4gICAgICBjb25zdCBjb21SZWYgPSBpbnN0YW5jZS5hdHRhY2hDb21wb25lbnRQb3J0YWwobmV3IENvbXBvbmVudFBvcnRhbChjb250ZW50LCBvcHRpb24udmlld0NvbnRhaW5lclJlZiwgaW5qZWN0b3IpKTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlID0gY29tUmVmLmluc3RhbmNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvcHRpb24uaGFzQmFja2Ryb3AgJiYgb3B0aW9uLmJhY2tkcm9wQ2xvc2UgJiYgb3ZlcmxheVJlZikge1xyXG4gICAgICBvdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGlhbG9nUmVmO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRNYXhpbWl6ZShvcHRpb246IFhEaWFsb2dSZWZPcHRpb24gPSB7fSkge1xyXG4gICAgY29uc3Qgd3MgPSBbJzEwMCUnLCAnMTAwdncnXTtcclxuICAgIGNvbnN0IGhzID0gWycxMDAlJywgJzEwMHZoJ107XHJcbiAgICBpZiAod3MuaW5jbHVkZXMob3B0aW9uLndpZHRoIGFzIHN0cmluZykgJiYgaHMuaW5jbHVkZXMob3B0aW9uLmhlaWdodCBhcyBzdHJpbmcpKSB7XHJcbiAgICAgIG9wdGlvbi5yZXNpemFibGUgPSBmYWxzZTtcclxuICAgICAgb3B0aW9uLmRyYWdnYWJsZSA9IGZhbHNlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19