@ng-nest/ui 12.0.7 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (810) hide show
  1. package/auto-complete/auto-complete-portal.component.d.ts +3 -3
  2. package/auto-complete/auto-complete.component.d.ts +5 -1
  3. package/auto-complete/auto-complete.property.d.ts +6 -1
  4. package/back-top/back-top.component.d.ts +1 -2
  5. package/base-form/base-form.component.d.ts +1 -1
  6. package/base-form/base-form.property.d.ts +22 -2
  7. package/bundles/ng-nest-ui-affix.umd.js +25 -21
  8. package/bundles/ng-nest-ui-affix.umd.js.map +1 -1
  9. package/bundles/ng-nest-ui-alert.umd.js +25 -21
  10. package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
  11. package/bundles/ng-nest-ui-anchor.umd.js +26 -22
  12. package/bundles/ng-nest-ui-anchor.umd.js.map +1 -1
  13. package/bundles/ng-nest-ui-api.umd.js +12 -14
  14. package/bundles/ng-nest-ui-api.umd.js.map +1 -1
  15. package/bundles/ng-nest-ui-auto-complete.umd.js +52 -29
  16. package/bundles/ng-nest-ui-auto-complete.umd.js.map +1 -1
  17. package/bundles/ng-nest-ui-avatar.umd.js +25 -21
  18. package/bundles/ng-nest-ui-avatar.umd.js.map +1 -1
  19. package/bundles/ng-nest-ui-back-top.umd.js +27 -23
  20. package/bundles/ng-nest-ui-back-top.umd.js.map +1 -1
  21. package/bundles/ng-nest-ui-badge.umd.js +27 -22
  22. package/bundles/ng-nest-ui-badge.umd.js.map +1 -1
  23. package/bundles/ng-nest-ui-base-form.umd.js +50 -22
  24. package/bundles/ng-nest-ui-base-form.umd.js.map +1 -1
  25. package/bundles/ng-nest-ui-border.umd.js +12 -14
  26. package/bundles/ng-nest-ui-border.umd.js.map +1 -1
  27. package/bundles/ng-nest-ui-button.umd.js +35 -30
  28. package/bundles/ng-nest-ui-button.umd.js.map +1 -1
  29. package/bundles/ng-nest-ui-calendar.umd.js +29 -24
  30. package/bundles/ng-nest-ui-calendar.umd.js.map +1 -1
  31. package/bundles/ng-nest-ui-card.umd.js +25 -21
  32. package/bundles/ng-nest-ui-card.umd.js.map +1 -1
  33. package/bundles/ng-nest-ui-carousel.umd.js +44 -39
  34. package/bundles/ng-nest-ui-carousel.umd.js.map +1 -1
  35. package/bundles/ng-nest-ui-cascade.umd.js +78 -31
  36. package/bundles/ng-nest-ui-cascade.umd.js.map +1 -1
  37. package/bundles/ng-nest-ui-checkbox.umd.js +28 -23
  38. package/bundles/ng-nest-ui-checkbox.umd.js.map +1 -1
  39. package/bundles/ng-nest-ui-collapse.umd.js +31 -27
  40. package/bundles/ng-nest-ui-collapse.umd.js.map +1 -1
  41. package/bundles/ng-nest-ui-color-picker.umd.js +39 -32
  42. package/bundles/ng-nest-ui-color-picker.umd.js.map +1 -1
  43. package/bundles/ng-nest-ui-color.umd.js +26 -22
  44. package/bundles/ng-nest-ui-color.umd.js.map +1 -1
  45. package/bundles/ng-nest-ui-comment.umd.js +34 -29
  46. package/bundles/ng-nest-ui-comment.umd.js.map +1 -1
  47. package/bundles/ng-nest-ui-container.umd.js +46 -42
  48. package/bundles/ng-nest-ui-container.umd.js.map +1 -1
  49. package/bundles/ng-nest-ui-core.umd.js +136 -35
  50. package/bundles/ng-nest-ui-core.umd.js.map +1 -1
  51. package/bundles/ng-nest-ui-crumb.umd.js +28 -23
  52. package/bundles/ng-nest-ui-crumb.umd.js.map +1 -1
  53. package/bundles/ng-nest-ui-date-picker.umd.js +387 -242
  54. package/bundles/ng-nest-ui-date-picker.umd.js.map +1 -1
  55. package/bundles/ng-nest-ui-description.umd.js +35 -32
  56. package/bundles/ng-nest-ui-description.umd.js.map +1 -1
  57. package/bundles/ng-nest-ui-dialog.umd.js +305 -48
  58. package/bundles/ng-nest-ui-dialog.umd.js.map +1 -1
  59. package/bundles/ng-nest-ui-doc.umd.js +12 -14
  60. package/bundles/ng-nest-ui-doc.umd.js.map +1 -1
  61. package/bundles/ng-nest-ui-drawer.umd.js +266 -30
  62. package/bundles/ng-nest-ui-drawer.umd.js.map +1 -1
  63. package/bundles/ng-nest-ui-dropdown.umd.js +32 -27
  64. package/bundles/ng-nest-ui-dropdown.umd.js.map +1 -1
  65. package/bundles/ng-nest-ui-empty.umd.js +25 -21
  66. package/bundles/ng-nest-ui-empty.umd.js.map +1 -1
  67. package/bundles/ng-nest-ui-examples.umd.js +12 -14
  68. package/bundles/ng-nest-ui-examples.umd.js.map +1 -1
  69. package/bundles/ng-nest-ui-find.umd.js +31 -26
  70. package/bundles/ng-nest-ui-find.umd.js.map +1 -1
  71. package/bundles/ng-nest-ui-form.umd.js +36 -36
  72. package/bundles/ng-nest-ui-form.umd.js.map +1 -1
  73. package/bundles/ng-nest-ui-highlight.umd.js +27 -22
  74. package/bundles/ng-nest-ui-highlight.umd.js.map +1 -1
  75. package/bundles/ng-nest-ui-i18n.umd.js +537 -138
  76. package/bundles/ng-nest-ui-i18n.umd.js.map +1 -1
  77. package/bundles/ng-nest-ui-icon.umd.js +34 -29
  78. package/bundles/ng-nest-ui-icon.umd.js.map +1 -1
  79. package/bundles/ng-nest-ui-inner.umd.js +26 -22
  80. package/bundles/ng-nest-ui-inner.umd.js.map +1 -1
  81. package/bundles/ng-nest-ui-input-number.umd.js +25 -21
  82. package/bundles/ng-nest-ui-input-number.umd.js.map +1 -1
  83. package/bundles/ng-nest-ui-input.umd.js +64 -32
  84. package/bundles/ng-nest-ui-input.umd.js.map +1 -1
  85. package/bundles/ng-nest-ui-layout.umd.js +31 -27
  86. package/bundles/ng-nest-ui-layout.umd.js.map +1 -1
  87. package/bundles/ng-nest-ui-link.umd.js +25 -21
  88. package/bundles/ng-nest-ui-link.umd.js.map +1 -1
  89. package/bundles/ng-nest-ui-list.umd.js +35 -30
  90. package/bundles/ng-nest-ui-list.umd.js.map +1 -1
  91. package/bundles/ng-nest-ui-loading.umd.js +27 -22
  92. package/bundles/ng-nest-ui-loading.umd.js.map +1 -1
  93. package/bundles/ng-nest-ui-menu.umd.js +37 -33
  94. package/bundles/ng-nest-ui-menu.umd.js.map +1 -1
  95. package/bundles/ng-nest-ui-message-box.umd.js +53 -47
  96. package/bundles/ng-nest-ui-message-box.umd.js.map +1 -1
  97. package/bundles/ng-nest-ui-message.umd.js +29 -25
  98. package/bundles/ng-nest-ui-message.umd.js.map +1 -1
  99. package/bundles/ng-nest-ui-notification.umd.js +26 -22
  100. package/bundles/ng-nest-ui-notification.umd.js.map +1 -1
  101. package/bundles/ng-nest-ui-outlet.umd.js +22 -18
  102. package/bundles/ng-nest-ui-outlet.umd.js.map +1 -1
  103. package/bundles/ng-nest-ui-page-header.umd.js +25 -21
  104. package/bundles/ng-nest-ui-page-header.umd.js.map +1 -1
  105. package/bundles/ng-nest-ui-pagination.umd.js +115 -26
  106. package/bundles/ng-nest-ui-pagination.umd.js.map +1 -1
  107. package/bundles/ng-nest-ui-pattern.umd.js +12 -14
  108. package/bundles/ng-nest-ui-pattern.umd.js.map +1 -1
  109. package/bundles/ng-nest-ui-popconfirm.umd.js +25 -21
  110. package/bundles/ng-nest-ui-popconfirm.umd.js.map +1 -1
  111. package/bundles/ng-nest-ui-popover.umd.js +31 -26
  112. package/bundles/ng-nest-ui-popover.umd.js.map +1 -1
  113. package/bundles/ng-nest-ui-portal.umd.js +28 -24
  114. package/bundles/ng-nest-ui-portal.umd.js.map +1 -1
  115. package/bundles/ng-nest-ui-progress.umd.js +259 -39
  116. package/bundles/ng-nest-ui-progress.umd.js.map +1 -1
  117. package/bundles/ng-nest-ui-radio.umd.js +28 -23
  118. package/bundles/ng-nest-ui-radio.umd.js.map +1 -1
  119. package/bundles/ng-nest-ui-rate.umd.js +30 -26
  120. package/bundles/ng-nest-ui-rate.umd.js.map +1 -1
  121. package/bundles/ng-nest-ui-result.umd.js +25 -21
  122. package/bundles/ng-nest-ui-result.umd.js.map +1 -1
  123. package/bundles/ng-nest-ui-ripple.umd.js +25 -21
  124. package/bundles/ng-nest-ui-ripple.umd.js.map +1 -1
  125. package/bundles/ng-nest-ui-select.umd.js +53 -34
  126. package/bundles/ng-nest-ui-select.umd.js.map +1 -1
  127. package/bundles/ng-nest-ui-skeleton.umd.js +27 -22
  128. package/bundles/ng-nest-ui-skeleton.umd.js.map +1 -1
  129. package/bundles/ng-nest-ui-slider-select.umd.js +25 -21
  130. package/bundles/ng-nest-ui-slider-select.umd.js.map +1 -1
  131. package/bundles/ng-nest-ui-slider.umd.js +32 -29
  132. package/bundles/ng-nest-ui-slider.umd.js.map +1 -1
  133. package/bundles/ng-nest-ui-statistic.umd.js +37 -31
  134. package/bundles/ng-nest-ui-statistic.umd.js.map +1 -1
  135. package/bundles/ng-nest-ui-steps.umd.js +53 -33
  136. package/bundles/ng-nest-ui-steps.umd.js.map +1 -1
  137. package/bundles/ng-nest-ui-switch.umd.js +25 -21
  138. package/bundles/ng-nest-ui-switch.umd.js.map +1 -1
  139. package/bundles/ng-nest-ui-table.umd.js +58 -51
  140. package/bundles/ng-nest-ui-table.umd.js.map +1 -1
  141. package/bundles/ng-nest-ui-tabs.umd.js +39 -34
  142. package/bundles/ng-nest-ui-tabs.umd.js.map +1 -1
  143. package/bundles/ng-nest-ui-tag.umd.js +27 -22
  144. package/bundles/ng-nest-ui-tag.umd.js.map +1 -1
  145. package/bundles/ng-nest-ui-text-retract.umd.js +27 -22
  146. package/bundles/ng-nest-ui-text-retract.umd.js.map +1 -1
  147. package/bundles/ng-nest-ui-textarea.umd.js +27 -32
  148. package/bundles/ng-nest-ui-textarea.umd.js.map +1 -1
  149. package/bundles/ng-nest-ui-theme.umd.js +26 -22
  150. package/bundles/ng-nest-ui-theme.umd.js.map +1 -1
  151. package/bundles/ng-nest-ui-time-ago.umd.js +12 -14
  152. package/bundles/ng-nest-ui-time-ago.umd.js.map +1 -1
  153. package/bundles/ng-nest-ui-time-picker.umd.js +87 -46
  154. package/bundles/ng-nest-ui-time-picker.umd.js.map +1 -1
  155. package/bundles/ng-nest-ui-time-range.umd.js +22 -18
  156. package/bundles/ng-nest-ui-time-range.umd.js.map +1 -1
  157. package/bundles/ng-nest-ui-timeline.umd.js +28 -23
  158. package/bundles/ng-nest-ui-timeline.umd.js.map +1 -1
  159. package/bundles/ng-nest-ui-tooltip.umd.js +31 -26
  160. package/bundles/ng-nest-ui-tooltip.umd.js.map +1 -1
  161. package/bundles/ng-nest-ui-transfer.umd.js +28 -23
  162. package/bundles/ng-nest-ui-transfer.umd.js.map +1 -1
  163. package/bundles/ng-nest-ui-tree-file.umd.js +25 -21
  164. package/bundles/ng-nest-ui-tree-file.umd.js.map +1 -1
  165. package/bundles/ng-nest-ui-tree.umd.js +39 -34
  166. package/bundles/ng-nest-ui-tree.umd.js.map +1 -1
  167. package/bundles/ng-nest-ui-typography.umd.js +25 -21
  168. package/bundles/ng-nest-ui-typography.umd.js.map +1 -1
  169. package/bundles/ng-nest-ui-upload.umd.js +32 -27
  170. package/bundles/ng-nest-ui-upload.umd.js.map +1 -1
  171. package/bundles/ng-nest-ui.umd.js +83 -243
  172. package/bundles/ng-nest-ui.umd.js.map +1 -1
  173. package/button/buttons.component.d.ts +1 -1
  174. package/calendar/calendar.component.d.ts +2 -2
  175. package/carousel/carousel-panel.component.d.ts +2 -3
  176. package/carousel/carousel.component.d.ts +1 -1
  177. package/cascade/cascade-portal.component.d.ts +13 -7
  178. package/cascade/cascade.component.d.ts +7 -1
  179. package/cascade/cascade.property.d.ts +23 -3
  180. package/checkbox/checkbox.component.d.ts +1 -1
  181. package/color/color.component.d.ts +2 -2
  182. package/color-picker/color-picker-portal.component.d.ts +3 -3
  183. package/color-picker/color-picker.component.d.ts +2 -3
  184. package/comment/comment.component.d.ts +1 -1
  185. package/core/config/config.d.ts +18 -0
  186. package/core/functions/clone-deep.d.ts +1 -0
  187. package/core/functions/drop.d.ts +1 -0
  188. package/core/functions/flex.d.ts +1 -1
  189. package/core/functions/has-in.d.ts +1 -0
  190. package/core/functions/order-by.d.ts +1 -0
  191. package/core/functions/public-api.d.ts +5 -0
  192. package/core/functions/remove.d.ts +1 -0
  193. package/core/services/reuse-strategy.service.d.ts +1 -1
  194. package/crumb/crumb.component.d.ts +1 -1
  195. package/date-picker/date-picker-portal.component.d.ts +4 -11
  196. package/date-picker/date-picker.component.d.ts +3 -4
  197. package/date-picker/date-picker.property.d.ts +55 -20
  198. package/date-picker/date-range-portal.component.d.ts +10 -6
  199. package/date-picker/date-range.component.d.ts +15 -11
  200. package/date-picker/picker-date.component.d.ts +13 -4
  201. package/date-picker/picker-month.component.d.ts +6 -3
  202. package/date-picker/picker-year.component.d.ts +4 -2
  203. package/description/description.component.d.ts +2 -4
  204. package/dialog/dialog-container.component.d.ts +18 -0
  205. package/dialog/dialog-container.directives.d.ts +24 -0
  206. package/dialog/dialog-ref.d.ts +9 -0
  207. package/dialog/dialog.module.d.ts +13 -11
  208. package/dialog/dialog.property.d.ts +84 -6
  209. package/dialog/dialog.service.d.ts +19 -0
  210. package/dialog/public-api.d.ts +4 -0
  211. package/drawer/drawer-container.component.d.ts +18 -0
  212. package/drawer/drawer-container.directives.d.ts +19 -0
  213. package/drawer/drawer-ref.d.ts +9 -0
  214. package/drawer/drawer.module.d.ts +8 -6
  215. package/drawer/drawer.property.d.ts +83 -2
  216. package/drawer/drawer.service.d.ts +19 -0
  217. package/drawer/public-api.d.ts +5 -0
  218. package/dropdown/dropdown-portal.component.d.ts +1 -3
  219. package/dropdown/dropdown.component.d.ts +2 -2
  220. package/esm2015/affix/affix.component.js +3 -3
  221. package/esm2015/affix/affix.module.js +4 -4
  222. package/esm2015/affix/affix.property.js +3 -3
  223. package/esm2015/alert/alert.component.js +4 -4
  224. package/esm2015/alert/alert.module.js +4 -4
  225. package/esm2015/alert/alert.property.js +3 -3
  226. package/esm2015/anchor/anchor.component.js +5 -5
  227. package/esm2015/anchor/anchor.module.js +4 -4
  228. package/esm2015/anchor/anchor.property.js +4 -4
  229. package/esm2015/api/api.component.js +3 -3
  230. package/esm2015/api/api.module.js +4 -4
  231. package/esm2015/auto-complete/auto-complete-portal.component.js +6 -6
  232. package/esm2015/auto-complete/auto-complete.component.js +20 -7
  233. package/esm2015/auto-complete/auto-complete.module.js +4 -4
  234. package/esm2015/auto-complete/auto-complete.property.js +10 -4
  235. package/esm2015/avatar/avatar.component.js +3 -3
  236. package/esm2015/avatar/avatar.module.js +4 -4
  237. package/esm2015/avatar/avatar.property.js +3 -3
  238. package/esm2015/back-top/back-top.component.js +6 -6
  239. package/esm2015/back-top/back-top.module.js +4 -4
  240. package/esm2015/back-top/back-top.property.js +3 -3
  241. package/esm2015/badge/badge.component.js +6 -5
  242. package/esm2015/badge/badge.module.js +4 -4
  243. package/esm2015/badge/badge.property.js +3 -3
  244. package/esm2015/base-form/base-form.component.js +5 -5
  245. package/esm2015/base-form/base-form.module.js +4 -4
  246. package/esm2015/base-form/base-form.property.js +29 -5
  247. package/esm2015/border/border.component.js +3 -3
  248. package/esm2015/border/border.module.js +4 -4
  249. package/esm2015/button/button.component.js +8 -7
  250. package/esm2015/button/button.module.js +4 -4
  251. package/esm2015/button/button.property.js +6 -6
  252. package/esm2015/button/buttons.component.js +4 -4
  253. package/esm2015/calendar/calendar.component.js +8 -7
  254. package/esm2015/calendar/calendar.module.js +4 -4
  255. package/esm2015/calendar/calendar.property.js +3 -3
  256. package/esm2015/card/card.component.js +3 -3
  257. package/esm2015/card/card.module.js +4 -4
  258. package/esm2015/card/card.property.js +3 -3
  259. package/esm2015/carousel/carousel-panel.component.js +15 -14
  260. package/esm2015/carousel/carousel.component.js +7 -6
  261. package/esm2015/carousel/carousel.module.js +4 -4
  262. package/esm2015/carousel/carousel.property.js +6 -6
  263. package/esm2015/cascade/cascade-portal.component.js +23 -11
  264. package/esm2015/cascade/cascade.component.js +23 -6
  265. package/esm2015/cascade/cascade.module.js +4 -4
  266. package/esm2015/cascade/cascade.property.js +16 -4
  267. package/esm2015/checkbox/checkbox.component.js +7 -6
  268. package/esm2015/checkbox/checkbox.module.js +4 -4
  269. package/esm2015/checkbox/checkbox.property.js +4 -4
  270. package/esm2015/collapse/collapse-panel.component.js +4 -4
  271. package/esm2015/collapse/collapse.component.js +3 -3
  272. package/esm2015/collapse/collapse.module.js +4 -4
  273. package/esm2015/collapse/collapse.property.js +6 -6
  274. package/esm2015/color/color.component.js +5 -5
  275. package/esm2015/color/color.module.js +4 -4
  276. package/esm2015/color/color.property.js +3 -3
  277. package/esm2015/color-picker/color-picker-portal.component.js +5 -5
  278. package/esm2015/color-picker/color-picker.component.js +14 -11
  279. package/esm2015/color-picker/color-picker.module.js +4 -4
  280. package/esm2015/color-picker/color-picker.property.js +3 -3
  281. package/esm2015/comment/comment-reply.component.js +3 -3
  282. package/esm2015/comment/comment.component.js +7 -6
  283. package/esm2015/comment/comment.module.js +4 -4
  284. package/esm2015/comment/comment.property.js +6 -6
  285. package/esm2015/container/aside.component.js +3 -3
  286. package/esm2015/container/container.component.js +5 -5
  287. package/esm2015/container/container.module.js +4 -4
  288. package/esm2015/container/container.property.js +12 -12
  289. package/esm2015/container/footer.component.js +3 -3
  290. package/esm2015/container/header.component.js +3 -3
  291. package/esm2015/container/main.component.js +3 -3
  292. package/esm2015/core/animation/fade.js +1 -1
  293. package/esm2015/core/config/config.js +1 -1
  294. package/esm2015/core/config/config.service.js +3 -3
  295. package/esm2015/core/functions/clone-deep.js +12 -0
  296. package/esm2015/core/functions/drop.js +8 -0
  297. package/esm2015/core/functions/flex.js +18 -7
  298. package/esm2015/core/functions/has-in.js +4 -0
  299. package/esm2015/core/functions/order-by.js +31 -0
  300. package/esm2015/core/functions/public-api.js +6 -1
  301. package/esm2015/core/functions/remove.js +15 -0
  302. package/esm2015/core/services/http.service.js +5 -5
  303. package/esm2015/core/services/preloading-strategy.service.js +5 -5
  304. package/esm2015/core/services/reuse-strategy.service.js +2 -2
  305. package/esm2015/core/services/storage.service.js +3 -3
  306. package/esm2015/core/theme/theme.service.js +3 -3
  307. package/esm2015/crumb/crumb.component.js +7 -6
  308. package/esm2015/crumb/crumb.module.js +4 -4
  309. package/esm2015/crumb/crumb.property.js +3 -3
  310. package/esm2015/date-picker/date-picker-portal.component.js +11 -43
  311. package/esm2015/date-picker/date-picker.component.js +13 -14
  312. package/esm2015/date-picker/date-picker.module.js +4 -4
  313. package/esm2015/date-picker/date-picker.property.js +102 -34
  314. package/esm2015/date-picker/date-range-portal.component.js +41 -20
  315. package/esm2015/date-picker/date-range.component.js +66 -47
  316. package/esm2015/date-picker/picker-date.component.js +50 -15
  317. package/esm2015/date-picker/picker-month.component.js +25 -9
  318. package/esm2015/date-picker/picker-year.component.js +21 -9
  319. package/esm2015/description/description-item.component.js +4 -4
  320. package/esm2015/description/description.component.js +8 -9
  321. package/esm2015/description/description.module.js +4 -4
  322. package/esm2015/description/description.property.js +6 -6
  323. package/esm2015/dialog/dialog-container.component.js +59 -0
  324. package/esm2015/dialog/dialog-container.directives.js +73 -0
  325. package/esm2015/dialog/dialog-ref.js +17 -0
  326. package/esm2015/dialog/dialog.component.js +6 -5
  327. package/esm2015/dialog/dialog.module.js +39 -9
  328. package/esm2015/dialog/dialog.property.js +20 -19
  329. package/esm2015/dialog/dialog.service.js +67 -0
  330. package/esm2015/dialog/public-api.js +5 -1
  331. package/esm2015/doc/doc.component.js +3 -3
  332. package/esm2015/doc/doc.module.js +4 -4
  333. package/esm2015/drawer/drawer-container.component.js +59 -0
  334. package/esm2015/drawer/drawer-container.directives.js +57 -0
  335. package/esm2015/drawer/drawer-ref.js +17 -0
  336. package/esm2015/drawer/drawer.component.js +6 -5
  337. package/esm2015/drawer/drawer.module.js +24 -8
  338. package/esm2015/drawer/drawer.property.js +24 -8
  339. package/esm2015/drawer/drawer.service.js +65 -0
  340. package/esm2015/drawer/public-api.js +6 -1
  341. package/esm2015/dropdown/dropdown-portal.component.js +5 -5
  342. package/esm2015/dropdown/dropdown.component.js +7 -6
  343. package/esm2015/dropdown/dropdown.module.js +4 -4
  344. package/esm2015/dropdown/dropdown.property.js +3 -3
  345. package/esm2015/empty/empty.component.js +3 -3
  346. package/esm2015/empty/empty.module.js +4 -4
  347. package/esm2015/empty/empty.property.js +3 -3
  348. package/esm2015/examples/examples.component.js +3 -3
  349. package/esm2015/examples/examples.module.js +4 -4
  350. package/esm2015/find/find.component.js +10 -9
  351. package/esm2015/find/find.module.js +4 -4
  352. package/esm2015/find/find.property.js +3 -3
  353. package/esm2015/form/control.component.js +4 -4
  354. package/esm2015/form/form.component.js +9 -8
  355. package/esm2015/form/form.module.js +4 -4
  356. package/esm2015/form/form.property.js +8 -13
  357. package/esm2015/highlight/highlight.component.js +6 -5
  358. package/esm2015/highlight/highlight.module.js +4 -4
  359. package/esm2015/highlight/highlight.property.js +4 -4
  360. package/esm2015/i18n/i18n.directive.js +6 -5
  361. package/esm2015/i18n/i18n.module.js +4 -4
  362. package/esm2015/i18n/i18n.pipe.js +3 -3
  363. package/esm2015/i18n/i18n.service.js +3 -3
  364. package/esm2015/i18n/languages/ar_EG.js +11 -3
  365. package/esm2015/i18n/languages/bg_BG.js +11 -3
  366. package/esm2015/i18n/languages/ca_ES.js +11 -3
  367. package/esm2015/i18n/languages/cs_CZ.js +11 -3
  368. package/esm2015/i18n/languages/da_DK.js +11 -3
  369. package/esm2015/i18n/languages/de_DE.js +11 -3
  370. package/esm2015/i18n/languages/el_GR.js +11 -3
  371. package/esm2015/i18n/languages/en_GB.js +11 -3
  372. package/esm2015/i18n/languages/en_US.js +7 -2
  373. package/esm2015/i18n/languages/es_ES.js +11 -3
  374. package/esm2015/i18n/languages/et_EE.js +11 -3
  375. package/esm2015/i18n/languages/fa_IR.js +11 -3
  376. package/esm2015/i18n/languages/fi_FI.js +11 -3
  377. package/esm2015/i18n/languages/fr_BE.js +10 -2
  378. package/esm2015/i18n/languages/fr_FR.js +11 -3
  379. package/esm2015/i18n/languages/he_IL.js +11 -3
  380. package/esm2015/i18n/languages/hi_IN.js +11 -3
  381. package/esm2015/i18n/languages/hr_HR.js +11 -3
  382. package/esm2015/i18n/languages/hu_HU.js +11 -3
  383. package/esm2015/i18n/languages/hy_AM.js +11 -3
  384. package/esm2015/i18n/languages/id_ID.js +11 -3
  385. package/esm2015/i18n/languages/is_IS.js +11 -3
  386. package/esm2015/i18n/languages/it_IT.js +11 -3
  387. package/esm2015/i18n/languages/ja_JP.js +11 -3
  388. package/esm2015/i18n/languages/ka_GE.js +11 -3
  389. package/esm2015/i18n/languages/kn_IN.js +11 -3
  390. package/esm2015/i18n/languages/ko_KR.js +11 -3
  391. package/esm2015/i18n/languages/ku_IQ.js +11 -3
  392. package/esm2015/i18n/languages/lv_LV.js +11 -3
  393. package/esm2015/i18n/languages/mn_MN.js +11 -3
  394. package/esm2015/i18n/languages/ms_MY.js +11 -3
  395. package/esm2015/i18n/languages/nb_NO.js +11 -3
  396. package/esm2015/i18n/languages/ne_NP.js +11 -3
  397. package/esm2015/i18n/languages/nl_BE.js +11 -3
  398. package/esm2015/i18n/languages/nl_NL.js +11 -3
  399. package/esm2015/i18n/languages/pl_PL.js +11 -3
  400. package/esm2015/i18n/languages/pt_BR.js +11 -3
  401. package/esm2015/i18n/languages/pt_PT.js +11 -3
  402. package/esm2015/i18n/languages/ro_RO.js +11 -3
  403. package/esm2015/i18n/languages/ru_RU.js +11 -3
  404. package/esm2015/i18n/languages/sk_SK.js +11 -3
  405. package/esm2015/i18n/languages/sl_SI.js +11 -3
  406. package/esm2015/i18n/languages/sr_RS.js +11 -3
  407. package/esm2015/i18n/languages/sv_SE.js +11 -3
  408. package/esm2015/i18n/languages/ta_IN.js +11 -3
  409. package/esm2015/i18n/languages/th_TH.js +29 -21
  410. package/esm2015/i18n/languages/tr_TR.js +11 -3
  411. package/esm2015/i18n/languages/uk_UA.js +11 -3
  412. package/esm2015/i18n/languages/vi_VN.js +11 -3
  413. package/esm2015/i18n/languages/zh_CN.js +6 -2
  414. package/esm2015/i18n/languages/zh_TW.js +10 -3
  415. package/esm2015/icon/icon.component.js +7 -6
  416. package/esm2015/icon/icon.module.js +4 -4
  417. package/esm2015/icon/icon.property.js +3 -3
  418. package/esm2015/icon/icon.service.js +6 -6
  419. package/esm2015/inner/inner.component.js +5 -5
  420. package/esm2015/inner/inner.module.js +4 -4
  421. package/esm2015/inner/inner.property.js +3 -3
  422. package/esm2015/input/input-group.component.js +4 -6
  423. package/esm2015/input/input.component.js +21 -7
  424. package/esm2015/input/input.module.js +4 -4
  425. package/esm2015/input/input.property.js +12 -7
  426. package/esm2015/input-number/input-number.component.js +3 -3
  427. package/esm2015/input-number/input-number.module.js +4 -4
  428. package/esm2015/input-number/input-number.property.js +3 -3
  429. package/esm2015/layout/col.component.js +3 -3
  430. package/esm2015/layout/layout.module.js +4 -4
  431. package/esm2015/layout/layout.property.js +6 -6
  432. package/esm2015/layout/row.component.js +3 -3
  433. package/esm2015/link/link.component.js +3 -3
  434. package/esm2015/link/link.module.js +4 -4
  435. package/esm2015/link/link.property.js +3 -3
  436. package/esm2015/list/list-option.component.js +3 -3
  437. package/esm2015/list/list.component.js +8 -7
  438. package/esm2015/list/list.module.js +4 -4
  439. package/esm2015/list/list.property.js +7 -7
  440. package/esm2015/loading/loading.component.js +6 -5
  441. package/esm2015/loading/loading.module.js +4 -4
  442. package/esm2015/loading/loading.property.js +3 -3
  443. package/esm2015/menu/menu-node.component.js +4 -4
  444. package/esm2015/menu/menu.component.js +10 -10
  445. package/esm2015/menu/menu.module.js +4 -4
  446. package/esm2015/menu/menu.property.js +6 -6
  447. package/esm2015/message/message.component.js +5 -5
  448. package/esm2015/message/message.module.js +4 -4
  449. package/esm2015/message/message.property.js +2 -2
  450. package/esm2015/message/message.service.js +6 -6
  451. package/esm2015/message-box/message-box.component.js +20 -24
  452. package/esm2015/message-box/message-box.module.js +4 -4
  453. package/esm2015/message-box/message-box.service.js +10 -8
  454. package/esm2015/notification/notification.component.js +5 -5
  455. package/esm2015/notification/notification.module.js +4 -4
  456. package/esm2015/notification/notification.property.js +1 -1
  457. package/esm2015/notification/notification.service.js +3 -3
  458. package/esm2015/outlet/outlet.directive.js +3 -3
  459. package/esm2015/outlet/outlet.module.js +4 -4
  460. package/esm2015/page-header/page-header.component.js +3 -3
  461. package/esm2015/page-header/page-header.module.js +4 -4
  462. package/esm2015/page-header/page-header.property.js +3 -3
  463. package/esm2015/pagination/pagination.component.js +45 -7
  464. package/esm2015/pagination/pagination.module.js +10 -6
  465. package/esm2015/pagination/pagination.property.js +52 -4
  466. package/esm2015/pattern/pattern.component.js +3 -3
  467. package/esm2015/pattern/pattern.module.js +4 -4
  468. package/esm2015/popconfirm/popconfirm.component.js +3 -3
  469. package/esm2015/popconfirm/popconfirm.module.js +4 -4
  470. package/esm2015/popconfirm/popconfirm.property.js +3 -3
  471. package/esm2015/popover/popover-portal.component.js +4 -4
  472. package/esm2015/popover/popover.directive.js +7 -6
  473. package/esm2015/popover/popover.module.js +4 -4
  474. package/esm2015/popover/popover.property.js +3 -3
  475. package/esm2015/portal/portal.module.js +6 -5
  476. package/esm2015/portal/portal.service.js +11 -12
  477. package/esm2015/progress/progress.component.js +180 -17
  478. package/esm2015/progress/progress.module.js +4 -4
  479. package/esm2015/progress/progress.property.js +52 -5
  480. package/esm2015/radio/radio.component.js +7 -6
  481. package/esm2015/radio/radio.module.js +4 -4
  482. package/esm2015/radio/radio.property.js +4 -4
  483. package/esm2015/rate/rate.component.js +9 -9
  484. package/esm2015/rate/rate.module.js +4 -4
  485. package/esm2015/rate/rate.property.js +3 -3
  486. package/esm2015/result/result.component.js +3 -3
  487. package/esm2015/result/result.module.js +4 -4
  488. package/esm2015/result/result.property.js +3 -3
  489. package/esm2015/ripple/ripple.directive.js +4 -4
  490. package/esm2015/ripple/ripple.module.js +4 -4
  491. package/esm2015/ripple/ripple.property.js +4 -4
  492. package/esm2015/select/select-portal.component.js +6 -6
  493. package/esm2015/select/select.component.js +15 -11
  494. package/esm2015/select/select.module.js +4 -4
  495. package/esm2015/select/select.property.js +15 -4
  496. package/esm2015/skeleton/skeleton.component.js +6 -5
  497. package/esm2015/skeleton/skeleton.module.js +4 -4
  498. package/esm2015/skeleton/skeleton.property.js +3 -3
  499. package/esm2015/slider/slider.component.js +11 -12
  500. package/esm2015/slider/slider.module.js +4 -4
  501. package/esm2015/slider/slider.property.js +3 -3
  502. package/esm2015/slider-select/slider-select.component.js +3 -3
  503. package/esm2015/slider-select/slider-select.module.js +4 -4
  504. package/esm2015/slider-select/slider-select.property.js +3 -3
  505. package/esm2015/statistic/countdown.component.js +8 -7
  506. package/esm2015/statistic/statistic.component.js +6 -5
  507. package/esm2015/statistic/statistic.module.js +4 -4
  508. package/esm2015/statistic/statistic.property.js +6 -6
  509. package/esm2015/steps/steps.component.js +22 -13
  510. package/esm2015/steps/steps.module.js +7 -6
  511. package/esm2015/steps/steps.property.js +12 -5
  512. package/esm2015/switch/switch.component.js +3 -3
  513. package/esm2015/switch/switch.module.js +4 -4
  514. package/esm2015/switch/switch.property.js +3 -3
  515. package/esm2015/table/drag.directive.js +5 -5
  516. package/esm2015/table/table-body.component.js +7 -6
  517. package/esm2015/table/table-foot.component.js +4 -4
  518. package/esm2015/table/table-head.component.js +7 -6
  519. package/esm2015/table/table.component.js +9 -8
  520. package/esm2015/table/table.module.js +4 -4
  521. package/esm2015/table/table.property.js +13 -13
  522. package/esm2015/tabs/tab-content.component.js +3 -3
  523. package/esm2015/tabs/tab.component.js +4 -4
  524. package/esm2015/tabs/tabs.component.js +9 -8
  525. package/esm2015/tabs/tabs.module.js +4 -4
  526. package/esm2015/tabs/tabs.property.js +6 -6
  527. package/esm2015/tag/tag.component.js +6 -5
  528. package/esm2015/tag/tag.module.js +4 -4
  529. package/esm2015/tag/tag.property.js +3 -3
  530. package/esm2015/text-retract/text-retract.component.js +6 -5
  531. package/esm2015/text-retract/text-retract.module.js +4 -4
  532. package/esm2015/text-retract/text-retract.property.js +3 -3
  533. package/esm2015/textarea/textarea.component.js +6 -5
  534. package/esm2015/textarea/textarea.module.js +4 -4
  535. package/esm2015/textarea/textarea.property.js +4 -14
  536. package/esm2015/theme/theme.component.js +5 -5
  537. package/esm2015/theme/theme.module.js +4 -4
  538. package/esm2015/theme/theme.property.js +4 -4
  539. package/esm2015/time-ago/time-ago.module.js +4 -4
  540. package/esm2015/time-ago/time-ago.pipe.js +3 -3
  541. package/esm2015/time-picker/time-picker-frame.component.js +22 -12
  542. package/esm2015/time-picker/time-picker-portal.component.js +5 -5
  543. package/esm2015/time-picker/time-picker.component.js +31 -15
  544. package/esm2015/time-picker/time-picker.module.js +4 -4
  545. package/esm2015/time-picker/time-picker.property.js +16 -5
  546. package/esm2015/time-range/time-range.module.js +4 -4
  547. package/esm2015/time-range/time-range.pipe.js +3 -3
  548. package/esm2015/timeline/timeline.component.js +7 -6
  549. package/esm2015/timeline/timeline.module.js +4 -4
  550. package/esm2015/timeline/timeline.property.js +3 -3
  551. package/esm2015/tooltip/tooltip-portal.component.js +4 -4
  552. package/esm2015/tooltip/tooltip.directive.js +7 -6
  553. package/esm2015/tooltip/tooltip.module.js +4 -4
  554. package/esm2015/tooltip/tooltip.property.js +4 -4
  555. package/esm2015/transfer/transfer.component.js +7 -6
  556. package/esm2015/transfer/transfer.module.js +4 -4
  557. package/esm2015/transfer/transfer.property.js +3 -3
  558. package/esm2015/tree/tree-node.component.js +5 -5
  559. package/esm2015/tree/tree.component.js +11 -10
  560. package/esm2015/tree/tree.module.js +4 -4
  561. package/esm2015/tree/tree.property.js +7 -7
  562. package/esm2015/tree-file/tree-file.component.js +3 -3
  563. package/esm2015/tree-file/tree-file.module.js +4 -4
  564. package/esm2015/tree-file/tree-file.property.js +3 -3
  565. package/esm2015/typography/typography.component.js +3 -3
  566. package/esm2015/typography/typography.module.js +4 -4
  567. package/esm2015/typography/typography.property.js +3 -3
  568. package/esm2015/upload/upload-portal.component.js +5 -5
  569. package/esm2015/upload/upload.component.js +7 -6
  570. package/esm2015/upload/upload.module.js +4 -4
  571. package/esm2015/upload/upload.property.js +3 -3
  572. package/fesm2015/ng-nest-ui-affix.js +10 -10
  573. package/fesm2015/ng-nest-ui-alert.js +10 -10
  574. package/fesm2015/ng-nest-ui-alert.js.map +1 -1
  575. package/fesm2015/ng-nest-ui-anchor.js +11 -11
  576. package/fesm2015/ng-nest-ui-anchor.js.map +1 -1
  577. package/fesm2015/ng-nest-ui-api.js +7 -7
  578. package/fesm2015/ng-nest-ui-auto-complete.js +37 -18
  579. package/fesm2015/ng-nest-ui-auto-complete.js.map +1 -1
  580. package/fesm2015/ng-nest-ui-avatar.js +10 -10
  581. package/fesm2015/ng-nest-ui-back-top.js +12 -12
  582. package/fesm2015/ng-nest-ui-back-top.js.map +1 -1
  583. package/fesm2015/ng-nest-ui-badge.js +12 -11
  584. package/fesm2015/ng-nest-ui-badge.js.map +1 -1
  585. package/fesm2015/ng-nest-ui-base-form.js +36 -12
  586. package/fesm2015/ng-nest-ui-base-form.js.map +1 -1
  587. package/fesm2015/ng-nest-ui-border.js +7 -7
  588. package/fesm2015/ng-nest-ui-button.js +20 -19
  589. package/fesm2015/ng-nest-ui-button.js.map +1 -1
  590. package/fesm2015/ng-nest-ui-calendar.js +14 -13
  591. package/fesm2015/ng-nest-ui-calendar.js.map +1 -1
  592. package/fesm2015/ng-nest-ui-card.js +10 -10
  593. package/fesm2015/ng-nest-ui-carousel.js +28 -27
  594. package/fesm2015/ng-nest-ui-carousel.js.map +1 -1
  595. package/fesm2015/ng-nest-ui-cascade.js +63 -22
  596. package/fesm2015/ng-nest-ui-cascade.js.map +1 -1
  597. package/fesm2015/ng-nest-ui-checkbox.js +13 -12
  598. package/fesm2015/ng-nest-ui-checkbox.js.map +1 -1
  599. package/fesm2015/ng-nest-ui-collapse.js +16 -16
  600. package/fesm2015/ng-nest-ui-collapse.js.map +1 -1
  601. package/fesm2015/ng-nest-ui-color-picker.js +24 -21
  602. package/fesm2015/ng-nest-ui-color-picker.js.map +1 -1
  603. package/fesm2015/ng-nest-ui-color.js +11 -11
  604. package/fesm2015/ng-nest-ui-color.js.map +1 -1
  605. package/fesm2015/ng-nest-ui-comment.js +19 -18
  606. package/fesm2015/ng-nest-ui-comment.js.map +1 -1
  607. package/fesm2015/ng-nest-ui-container.js +32 -32
  608. package/fesm2015/ng-nest-ui-container.js.map +1 -1
  609. package/fesm2015/ng-nest-ui-core.js +106 -25
  610. package/fesm2015/ng-nest-ui-core.js.map +1 -1
  611. package/fesm2015/ng-nest-ui-crumb.js +13 -12
  612. package/fesm2015/ng-nest-ui-crumb.js.map +1 -1
  613. package/fesm2015/ng-nest-ui-date-picker.js +325 -186
  614. package/fesm2015/ng-nest-ui-date-picker.js.map +1 -1
  615. package/fesm2015/ng-nest-ui-description.js +21 -22
  616. package/fesm2015/ng-nest-ui-description.js.map +1 -1
  617. package/fesm2015/ng-nest-ui-dialog.js +263 -33
  618. package/fesm2015/ng-nest-ui-dialog.js.map +1 -1
  619. package/fesm2015/ng-nest-ui-doc.js +7 -7
  620. package/fesm2015/ng-nest-ui-drawer.js +232 -20
  621. package/fesm2015/ng-nest-ui-drawer.js.map +1 -1
  622. package/fesm2015/ng-nest-ui-dropdown.js +17 -16
  623. package/fesm2015/ng-nest-ui-dropdown.js.map +1 -1
  624. package/fesm2015/ng-nest-ui-empty.js +10 -10
  625. package/fesm2015/ng-nest-ui-examples.js +7 -7
  626. package/fesm2015/ng-nest-ui-find.js +16 -15
  627. package/fesm2015/ng-nest-ui-find.js.map +1 -1
  628. package/fesm2015/ng-nest-ui-form.js +22 -26
  629. package/fesm2015/ng-nest-ui-form.js.map +1 -1
  630. package/fesm2015/ng-nest-ui-highlight.js +12 -11
  631. package/fesm2015/ng-nest-ui-highlight.js.map +1 -1
  632. package/fesm2015/ng-nest-ui-i18n.js +532 -131
  633. package/fesm2015/ng-nest-ui-i18n.js.map +1 -1
  634. package/fesm2015/ng-nest-ui-icon.js +18 -18
  635. package/fesm2015/ng-nest-ui-icon.js.map +1 -1
  636. package/fesm2015/ng-nest-ui-inner.js +11 -11
  637. package/fesm2015/ng-nest-ui-inner.js.map +1 -1
  638. package/fesm2015/ng-nest-ui-input-number.js +10 -10
  639. package/fesm2015/ng-nest-ui-input.js +38 -21
  640. package/fesm2015/ng-nest-ui-input.js.map +1 -1
  641. package/fesm2015/ng-nest-ui-layout.js +16 -16
  642. package/fesm2015/ng-nest-ui-link.js +10 -10
  643. package/fesm2015/ng-nest-ui-list.js +20 -19
  644. package/fesm2015/ng-nest-ui-list.js.map +1 -1
  645. package/fesm2015/ng-nest-ui-loading.js +12 -11
  646. package/fesm2015/ng-nest-ui-loading.js.map +1 -1
  647. package/fesm2015/ng-nest-ui-menu.js +22 -22
  648. package/fesm2015/ng-nest-ui-menu.js.map +1 -1
  649. package/fesm2015/ng-nest-ui-message-box.js +32 -34
  650. package/fesm2015/ng-nest-ui-message-box.js.map +1 -1
  651. package/fesm2015/ng-nest-ui-message.js +14 -14
  652. package/fesm2015/ng-nest-ui-message.js.map +1 -1
  653. package/fesm2015/ng-nest-ui-notification.js +11 -11
  654. package/fesm2015/ng-nest-ui-notification.js.map +1 -1
  655. package/fesm2015/ng-nest-ui-outlet.js +7 -7
  656. package/fesm2015/ng-nest-ui-page-header.js +10 -10
  657. package/fesm2015/ng-nest-ui-pagination.js +104 -14
  658. package/fesm2015/ng-nest-ui-pagination.js.map +1 -1
  659. package/fesm2015/ng-nest-ui-pattern.js +7 -7
  660. package/fesm2015/ng-nest-ui-popconfirm.js +10 -10
  661. package/fesm2015/ng-nest-ui-popover.js +16 -15
  662. package/fesm2015/ng-nest-ui-popover.js.map +1 -1
  663. package/fesm2015/ng-nest-ui-portal.js +15 -15
  664. package/fesm2015/ng-nest-ui-portal.js.map +1 -1
  665. package/fesm2015/ng-nest-ui-progress.js +234 -25
  666. package/fesm2015/ng-nest-ui-progress.js.map +1 -1
  667. package/fesm2015/ng-nest-ui-radio.js +13 -12
  668. package/fesm2015/ng-nest-ui-radio.js.map +1 -1
  669. package/fesm2015/ng-nest-ui-rate.js +15 -15
  670. package/fesm2015/ng-nest-ui-rate.js.map +1 -1
  671. package/fesm2015/ng-nest-ui-result.js +10 -10
  672. package/fesm2015/ng-nest-ui-ripple.js +10 -10
  673. package/fesm2015/ng-nest-ui-ripple.js.map +1 -1
  674. package/fesm2015/ng-nest-ui-select.js +37 -22
  675. package/fesm2015/ng-nest-ui-select.js.map +1 -1
  676. package/fesm2015/ng-nest-ui-skeleton.js +12 -11
  677. package/fesm2015/ng-nest-ui-skeleton.js.map +1 -1
  678. package/fesm2015/ng-nest-ui-slider-select.js +10 -10
  679. package/fesm2015/ng-nest-ui-slider.js +17 -18
  680. package/fesm2015/ng-nest-ui-slider.js.map +1 -1
  681. package/fesm2015/ng-nest-ui-statistic.js +22 -20
  682. package/fesm2015/ng-nest-ui-statistic.js.map +1 -1
  683. package/fesm2015/ng-nest-ui-steps.js +38 -21
  684. package/fesm2015/ng-nest-ui-steps.js.map +1 -1
  685. package/fesm2015/ng-nest-ui-switch.js +10 -10
  686. package/fesm2015/ng-nest-ui-table.js +43 -40
  687. package/fesm2015/ng-nest-ui-table.js.map +1 -1
  688. package/fesm2015/ng-nest-ui-tabs.js +24 -23
  689. package/fesm2015/ng-nest-ui-tabs.js.map +1 -1
  690. package/fesm2015/ng-nest-ui-tag.js +12 -11
  691. package/fesm2015/ng-nest-ui-tag.js.map +1 -1
  692. package/fesm2015/ng-nest-ui-text-retract.js +12 -11
  693. package/fesm2015/ng-nest-ui-text-retract.js.map +1 -1
  694. package/fesm2015/ng-nest-ui-textarea.js +12 -21
  695. package/fesm2015/ng-nest-ui-textarea.js.map +1 -1
  696. package/fesm2015/ng-nest-ui-theme.js +11 -11
  697. package/fesm2015/ng-nest-ui-theme.js.map +1 -1
  698. package/fesm2015/ng-nest-ui-time-ago.js +7 -7
  699. package/fesm2015/ng-nest-ui-time-picker.js +73 -36
  700. package/fesm2015/ng-nest-ui-time-picker.js.map +1 -1
  701. package/fesm2015/ng-nest-ui-time-range.js +7 -7
  702. package/fesm2015/ng-nest-ui-timeline.js +13 -12
  703. package/fesm2015/ng-nest-ui-timeline.js.map +1 -1
  704. package/fesm2015/ng-nest-ui-tooltip.js +16 -15
  705. package/fesm2015/ng-nest-ui-tooltip.js.map +1 -1
  706. package/fesm2015/ng-nest-ui-transfer.js +13 -12
  707. package/fesm2015/ng-nest-ui-transfer.js.map +1 -1
  708. package/fesm2015/ng-nest-ui-tree-file.js +10 -10
  709. package/fesm2015/ng-nest-ui-tree.js +24 -23
  710. package/fesm2015/ng-nest-ui-tree.js.map +1 -1
  711. package/fesm2015/ng-nest-ui-typography.js +10 -10
  712. package/fesm2015/ng-nest-ui-upload.js +17 -16
  713. package/fesm2015/ng-nest-ui-upload.js.map +1 -1
  714. package/find/find.component.d.ts +1 -1
  715. package/form/control.component.d.ts +1 -1
  716. package/form/form.component.d.ts +1 -1
  717. package/form/form.property.d.ts +6 -6
  718. package/i18n/languages/ar_EG.d.ts +8 -0
  719. package/i18n/languages/bg_BG.d.ts +8 -0
  720. package/i18n/languages/ca_ES.d.ts +8 -0
  721. package/i18n/languages/cs_CZ.d.ts +8 -0
  722. package/i18n/languages/da_DK.d.ts +8 -0
  723. package/i18n/languages/de_DE.d.ts +8 -0
  724. package/i18n/languages/el_GR.d.ts +8 -0
  725. package/i18n/languages/en_GB.d.ts +8 -0
  726. package/i18n/languages/en_US.d.ts +5 -0
  727. package/i18n/languages/es_ES.d.ts +8 -0
  728. package/i18n/languages/et_EE.d.ts +8 -0
  729. package/i18n/languages/fa_IR.d.ts +8 -0
  730. package/i18n/languages/fi_FI.d.ts +8 -0
  731. package/i18n/languages/fr_BE.d.ts +8 -0
  732. package/i18n/languages/fr_FR.d.ts +8 -0
  733. package/i18n/languages/he_IL.d.ts +8 -0
  734. package/i18n/languages/hi_IN.d.ts +8 -0
  735. package/i18n/languages/hr_HR.d.ts +8 -0
  736. package/i18n/languages/hu_HU.d.ts +8 -0
  737. package/i18n/languages/hy_AM.d.ts +8 -0
  738. package/i18n/languages/id_ID.d.ts +8 -0
  739. package/i18n/languages/is_IS.d.ts +8 -0
  740. package/i18n/languages/it_IT.d.ts +8 -0
  741. package/i18n/languages/ja_JP.d.ts +8 -0
  742. package/i18n/languages/ka_GE.d.ts +8 -0
  743. package/i18n/languages/kn_IN.d.ts +8 -0
  744. package/i18n/languages/ko_KR.d.ts +8 -0
  745. package/i18n/languages/ku_IQ.d.ts +8 -0
  746. package/i18n/languages/lv_LV.d.ts +8 -0
  747. package/i18n/languages/mn_MN.d.ts +8 -0
  748. package/i18n/languages/ms_MY.d.ts +8 -0
  749. package/i18n/languages/nb_NO.d.ts +8 -0
  750. package/i18n/languages/ne_NP.d.ts +8 -0
  751. package/i18n/languages/nl_BE.d.ts +8 -0
  752. package/i18n/languages/nl_NL.d.ts +8 -0
  753. package/i18n/languages/pl_PL.d.ts +8 -0
  754. package/i18n/languages/pt_BR.d.ts +8 -0
  755. package/i18n/languages/pt_PT.d.ts +8 -0
  756. package/i18n/languages/ro_RO.d.ts +8 -0
  757. package/i18n/languages/ru_RU.d.ts +8 -0
  758. package/i18n/languages/sk_SK.d.ts +8 -0
  759. package/i18n/languages/sl_SI.d.ts +8 -0
  760. package/i18n/languages/sr_RS.d.ts +8 -0
  761. package/i18n/languages/sv_SE.d.ts +8 -0
  762. package/i18n/languages/ta_IN.d.ts +8 -0
  763. package/i18n/languages/th_TH.d.ts +8 -0
  764. package/i18n/languages/tr_TR.d.ts +8 -0
  765. package/i18n/languages/uk_UA.d.ts +8 -0
  766. package/i18n/languages/vi_VN.d.ts +8 -0
  767. package/i18n/languages/zh_CN.d.ts +4 -0
  768. package/i18n/languages/zh_TW.d.ts +7 -0
  769. package/inner/inner.component.d.ts +1 -1
  770. package/input/input-group.component.d.ts +2 -4
  771. package/input/input.component.d.ts +3 -1
  772. package/input/input.property.d.ts +6 -1
  773. package/list/list.component.d.ts +2 -2
  774. package/menu/menu.component.d.ts +1 -1
  775. package/message/message.component.d.ts +1 -1
  776. package/message/message.property.d.ts +1 -1
  777. package/message-box/message-box.component.d.ts +2 -1
  778. package/notification/notification.component.d.ts +1 -1
  779. package/package.json +1 -1
  780. package/pagination/pagination.component.d.ts +5 -1
  781. package/pagination/pagination.module.d.ts +7 -3
  782. package/pagination/pagination.property.d.ts +49 -3
  783. package/portal/portal.module.d.ts +1 -1
  784. package/portal/portal.service.d.ts +2 -3
  785. package/progress/progress.component.d.ts +31 -3
  786. package/progress/progress.property.d.ts +80 -5
  787. package/radio/radio.component.d.ts +1 -1
  788. package/rate/rate.component.d.ts +5 -5
  789. package/select/select-portal.component.d.ts +3 -3
  790. package/select/select.component.d.ts +1 -1
  791. package/select/select.property.d.ts +12 -2
  792. package/slider/slider.component.d.ts +1 -1
  793. package/steps/steps.component.d.ts +1 -1
  794. package/steps/steps.module.d.ts +2 -1
  795. package/steps/steps.property.d.ts +12 -2
  796. package/table/table-body.component.d.ts +1 -1
  797. package/table/table-head.component.d.ts +1 -1
  798. package/table/table.component.d.ts +1 -1
  799. package/table/table.property.d.ts +11 -1
  800. package/textarea/textarea.property.d.ts +1 -6
  801. package/theme/theme.component.d.ts +1 -1
  802. package/time-picker/time-picker-frame.component.d.ts +4 -0
  803. package/time-picker/time-picker-portal.component.d.ts +3 -3
  804. package/time-picker/time-picker.component.d.ts +5 -3
  805. package/time-picker/time-picker.property.d.ts +12 -2
  806. package/timeline/timeline.component.d.ts +1 -1
  807. package/transfer/transfer.component.d.ts +1 -1
  808. package/tree/tree-node.component.d.ts +1 -1
  809. package/tree/tree.component.d.ts +1 -1
  810. package/upload/upload.component.d.ts +3 -3
@@ -34,7 +34,8 @@ export class XDropdownComponent extends XDropdownProperty {
34
34
  this.setSubject();
35
35
  }
36
36
  ngOnChanges(changes) {
37
- XIsChange(changes.data) && this.setData();
37
+ const { data } = changes;
38
+ XIsChange(data) && this.setData();
38
39
  }
39
40
  ngOnDestroy() {
40
41
  this._unSubject.next();
@@ -43,7 +44,7 @@ export class XDropdownComponent extends XDropdownProperty {
43
44
  this.hoverDelayUnsub.complete();
44
45
  }
45
46
  setSubject() {
46
- this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe((x) => {
47
+ this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {
47
48
  this.closePortal();
48
49
  });
49
50
  }
@@ -178,9 +179,9 @@ export class XDropdownComponent extends XDropdownProperty {
178
179
  });
179
180
  }
180
181
  }
181
- /** @nocollapse */ XDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XDropdownComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XPortalService }, { token: i0.ViewContainerRef }, { token: i2.Overlay }, { token: i3.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
182
- /** @nocollapse */ XDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XDropdownComponent, selector: "x-dropdown", viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #dropdown\r\n class=\"x-dropdown\"\r\n [ngClass]=\"classMap\"\r\n [class.x-visible]=\"visible\"\r\n (mouseenter)=\"onEnter()\"\r\n (mouseleave)=\"onLeave()\"\r\n (click)=\"showPortal()\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".x-dropdown{margin:0;padding:0;display:inline-block}.x-dropdown.x-visible{color:var(--x-primary)}"], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XDropdownComponent, decorators: [{
182
+ /** @nocollapse */ XDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDropdownComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XPortalService }, { token: i0.ViewContainerRef }, { token: i2.Overlay }, { token: i3.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
183
+ /** @nocollapse */ XDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XDropdownComponent, selector: "x-dropdown", viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #dropdown\r\n class=\"x-dropdown\"\r\n [ngClass]=\"classMap\"\r\n [class.x-visible]=\"visible\"\r\n (mouseenter)=\"onEnter()\"\r\n (mouseleave)=\"onLeave()\"\r\n (click)=\"showPortal()\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".x-dropdown{margin:0;padding:0;display:inline-block}.x-dropdown.x-visible{color:var(--x-primary)}\n"], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDropdownComponent, decorators: [{
184
185
  type: Component,
185
186
  args: [{
186
187
  selector: `${XDropdownPrefix}`,
@@ -193,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImpor
193
194
  type: ViewChild,
194
195
  args: ['dropdown', { static: true }]
195
196
  }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBSXZCLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQWtELE1BQU0sa0JBQWtCLENBQUM7QUFDL0gsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLHdCQUF3QixFQUFxQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBVTlFLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFldkQsWUFDUyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixHQUFzQixFQUNyQixhQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsT0FBZ0IsRUFDakIsYUFBNkI7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFSRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDckIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBQzdCLHFC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STtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEO3dRQUUwQyxRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYRHJvcGRvd25QcmVmaXgsIFhEcm9wZG93bk5vZGUsIFhEcm9wZG93blByb3BlcnR5IH0gZnJvbSAnLi9kcm9wZG93bi5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0NoYW5nZSwgWElzRW1wdHksIFhTZXREYXRhLCBYR2V0Q2hpbGRyZW4sIFhDb25maWdTZXJ2aWNlLCBYUG9zaXRpb25Ub3BCb3R0b20sIFhQbGFjZW1lbnQgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uLCBYUG9ydGFsT3ZlcmxheVJlZiwgWFBvcnRhbFNlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9wb3J0YWwnO1xyXG5pbXBvcnQgeyBYRHJvcGRvd25Qb3J0YWxDb21wb25lbnQgfSBmcm9tICcuL2Ryb3Bkb3duLXBvcnRhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRlbGF5LCB0YWtlVW50aWwsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlLCBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksIE92ZXJsYXksIE92ZXJsYXlDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WERyb3Bkb3duUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhEcm9wZG93bkNvbXBvbmVudCBleHRlbmRzIFhEcm9wZG93blByb3BlcnR5IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBAVmlld0NoaWxkKCdkcm9wZG93bicsIHsgc3RhdGljOiB0cnVlIH0pIGRyb3Bkb3duITogRWxlbWVudFJlZjtcclxuICBkYXRhczogWERyb3Bkb3duTm9kZVtdID0gW107XHJcbiAgbm9kZXM6IFhEcm9wZG93bk5vZGVbXSA9IFtdO1xyXG4gIHBvcnRhbCE6IFhQb3J0YWxPdmVybGF5UmVmPFhEcm9wZG93blBvcnRhbENvbXBvbmVudD47XHJcbiAgdGltZW91dEhpZGU6IGFueTtcclxuICB2aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYW5pbWF0aW5nID0gZmFsc2U7XHJcbiAgb3V0c2lkZUNsaWNrID0gZmFsc2U7XHJcbiAgbWluV2lkdGghOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgaG92ZXJEZWxheVVuc3ViID0gbmV3IFN1YmplY3QoKTtcclxuICBwb3NpdGlvbkNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjbG9zZVN1YmplY3Q6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHBvcnRhbFNlcnZpY2U6IFhQb3J0YWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldFN1YmplY3QoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIFhJc0NoYW5nZShjaGFuZ2VzLmRhdGEpICYmIHRoaXMuc2V0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLmhvdmVyRGVsYXlVbnN1Yi5uZXh0KCk7XHJcbiAgICB0aGlzLmhvdmVyRGVsYXlVbnN1Yi5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U3ViamVjdCgpIHtcclxuICAgIHRoaXMuY2xvc2VTdWJqZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLmNsb3NlUG9ydGFsKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uRW50ZXIoKSB7XHJcbiAgICBvZih0cnVlKVxyXG4gICAgICAucGlwZShkZWxheSh0aGlzLmhvdmVyRGVsYXkpLCB0YWtlVW50aWwodGhpcy5ob3ZlckRlbGF5VW5zdWIpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnRyaWdnZXIgPT09ICdjbGljaycpIHJldHVybjtcclxuICAgICAgICBpZiAodGhpcy50aW1lb3V0SGlkZSkgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dEhpZGUpO1xyXG4gICAgICAgIGlmICghdGhpcy5wb3J0YWwgfHwgKHRoaXMucG9ydGFsICYmICF0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKSkpIHtcclxuICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZVBvcnRhbCgpO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkxlYXZlKCkge1xyXG4gICAgdGhpcy5ob3ZlckRlbGF5VW5zdWIubmV4dCgpO1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy50cmlnZ2VyID09PSAnY2xpY2snKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCkpIHtcclxuICAgICAgdGhpcy50aW1lb3V0SGlkZSA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3dQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnRyaWdnZXIgPT09ICdob3ZlcicgfHwgdGhpcy5hbmltYXRpbmcpIHJldHVybjtcclxuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09ICdjbGljaycgJiYgdGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jcmVhdGVQb3J0YWwoKTtcclxuICB9XHJcblxyXG4gIHBvcnRhbEF0dGFjaGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveVBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVQb3J0YWwoKSB7XHJcbiAgICBsZXQgYm94ID0gdGhpcy5kcm9wZG93bi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgdGhpcy5taW5XaWR0aCA9IHRoaXMucG9ydGFsTWluV2lkdGggPyB0aGlzLnBvcnRhbE1pbldpZHRoIDogYm94LndpZHRoO1xyXG4gICAgY29uc3QgY29uZmlnOiBPdmVybGF5Q29uZmlnID0ge1xyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnJyxcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5zZXRQbGFjZW1lbnQoKSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcclxuICAgICAgbWluV2lkdGg6IHRoaXMubWluV2lkdGhcclxuICAgIH07XHJcbiAgICB0aGlzLnNldFBvc2l0aW9uKGNvbmZpZyk7XHJcbiAgICB0aGlzLnBvcnRhbCA9IHRoaXMucG9ydGFsU2VydmljZS5hdHRhY2goe1xyXG4gICAgICBjb250ZW50OiBYRHJvcGRvd25Qb3J0YWxDb21wb25lbnQsXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcclxuICAgICAgb3ZlcmxheUNvbmZpZzogY29uZmlnXHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09ICdjbGljaycpIHtcclxuICAgICAgdGhpcy5wb3J0YWwub3ZlcmxheVJlZlxyXG4gICAgICAgID8ub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxyXG4gICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgzMCksIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRJbnN0YW5jZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UG9zaXRpb24oY29uZmlnOiBPdmVybGF5Q29uZmlnKSB7XHJcbiAgICBsZXQgcG9zaXRpb24gPSBjb25maWcucG9zaXRpb25TdHJhdGVneSBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3k7XHJcbiAgICBwb3NpdGlvbi5wb3NpdGlvbkNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKChwb3M6IENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSkgPT4ge1xyXG4gICAgICBjb25zdCBwbGFjZSA9IFhQb3J0YWxDb25uZWN0ZWRQb3NpdGlvbi5nZXQocG9zLmNvbm5lY3Rpb25QYWlyKSBhcyBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgICAgIHBsYWNlICE9PSB0aGlzLnBsYWNlbWVudCAmJiB0aGlzLnBvc2l0aW9uQ2hhbmdlLm5leHQocGxhY2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRJbnN0YW5jZSgpIHtcclxuICAgIGxldCBjb21wb25lbnRSZWYgPSB0aGlzLnBvcnRhbD8uY29tcG9uZW50UmVmO1xyXG4gICAgaWYgKCFjb21wb25lbnRSZWYpIHJldHVybjtcclxuICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCB7XHJcbiAgICAgIGRhdGE6IHRoaXMubm9kZXMsXHJcbiAgICAgIHRyaWdnZXI6IHRoaXMudHJpZ2dlcixcclxuICAgICAgbWluV2lkdGg6IHRoaXMubWluV2lkdGgsXHJcbiAgICAgIGNsb3NlOiAoKSA9PiB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCksXHJcbiAgICAgIHBvc2l0aW9uQ2hhbmdlOiB0aGlzLnBvc2l0aW9uQ2hhbmdlLFxyXG4gICAgICBkZXN0cm95UG9ydGFsOiAoKSA9PiB0aGlzLmRlc3Ryb3lQb3J0YWwoKSxcclxuICAgICAgbm9kZUVtaXQ6IChub2RlOiBYRHJvcGRvd25Ob2RlKSA9PiB0aGlzLm5vZGVDbGljay5lbWl0KG5vZGUpLFxyXG4gICAgICBwb3J0YWxIb3ZlcjogKGhvdmVyOiBib29sZWFuKSA9PiB0aGlzLnBvcnRhbEhvdmVyKGhvdmVyKSxcclxuICAgICAgYW5pbWF0aW5nOiAoaW5nOiBib29sZWFuKSA9PiAodGhpcy5hbmltYXRpbmcgPSBpbmcpXHJcbiAgICB9KTtcclxuICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwb3J0YWxIb3Zlcihob3ZlcjogYm9vbGVhbikge1xyXG4gICAgaWYgKHRoaXMudGltZW91dEhpZGUgJiYgaG92ZXIpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dEhpZGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vbkxlYXZlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQbGFjZW1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3J0YWxTZXJ2aWNlLnNldFBsYWNlbWVudCh7XHJcbiAgICAgIGVsZW1lbnRSZWY6IHRoaXMuZHJvcGRvd24sXHJcbiAgICAgIHBsYWNlbWVudDogW3RoaXMucGxhY2VtZW50IGFzIFhQbGFjZW1lbnQsICdib3R0b20tc3RhcnQnLCAndG9wLXN0YXJ0JywgJ2JvdHRvbS1lbmQnLCAndG9wLWVuZCddLFxyXG4gICAgICB0cmFuc2Zvcm1PcmlnaW5PbjogJ3gtZHJvcGRvd24tcG9ydGFsJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERhdGEoKSB7XHJcbiAgICBYU2V0RGF0YTxYRHJvcGRvd25Ob2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMuZGF0YXMgPSB4O1xyXG4gICAgICBpZiAoIXRoaXMuY2hpbGRyZW4pIHtcclxuICAgICAgICB0aGlzLm5vZGVzID0geC5maWx0ZXIoKHkpID0+IFhJc0VtcHR5KHkucGlkKSkubWFwKCh5KSA9PiBYR2V0Q2hpbGRyZW48WERyb3Bkb3duTm9kZT4oeCwgeSwgMCkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubm9kZXMgPSB4O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI2Ryb3Bkb3duXHJcbiAgY2xhc3M9XCJ4LWRyb3Bkb3duXCJcclxuICBbbmdDbGFzc109XCJjbGFzc01hcFwiXHJcbiAgW2NsYXNzLngtdmlzaWJsZV09XCJ2aXNpYmxlXCJcclxuICAobW91c2VlbnRlcik9XCJvbkVudGVyKClcIlxyXG4gIChtb3VzZWxlYXZlKT1cIm9uTGVhdmUoKVwiXHJcbiAgKGNsaWNrKT1cInNob3dQb3J0YWwoKVwiXHJcbj5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PlxyXG4iXX0=
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBSXZCLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQWtELE1BQU0sa0JBQWtCLENBQUM7QUFDL0gsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLHdCQUF3QixFQUFxQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFVaEUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjtJQWV2RCxZQUNTLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLEdBQXNCLEVBQ3JCLGFBQTZCLEVBQzdCLGdCQUFrQyxFQUNsQyxPQUFnQixFQUNqQixhQUE2QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQVJELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUNyQixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDN0IscUJB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RUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7d1FBRTBDLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhEcm9wZG93blByZWZpeCwgWERyb3Bkb3duTm9kZSwgWERyb3Bkb3duUHJvcGVydHkgfSBmcm9tICcuL2Ryb3Bkb3duLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWElzQ2hhbmdlLCBYSXNFbXB0eSwgWFNldERhdGEsIFhHZXRDaGlsZHJlbiwgWENvbmZpZ1NlcnZpY2UsIFhQb3NpdGlvblRvcEJvdHRvbSwgWFBsYWNlbWVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24sIFhQb3J0YWxPdmVybGF5UmVmLCBYUG9ydGFsU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL3BvcnRhbCc7XHJcbmltcG9ydCB7IFhEcm9wZG93blBvcnRhbENvbXBvbmVudCB9IGZyb20gJy4vZHJvcGRvd24tcG9ydGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGVsYXksIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlLCBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksIE92ZXJsYXksIE92ZXJsYXlDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WERyb3Bkb3duUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhEcm9wZG93bkNvbXBvbmVudCBleHRlbmRzIFhEcm9wZG93blByb3BlcnR5IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBAVmlld0NoaWxkKCdkcm9wZG93bicsIHsgc3RhdGljOiB0cnVlIH0pIGRyb3Bkb3duITogRWxlbWVudFJlZjtcclxuICBkYXRhczogWERyb3Bkb3duTm9kZVtdID0gW107XHJcbiAgbm9kZXM6IFhEcm9wZG93bk5vZGVbXSA9IFtdO1xyXG4gIHBvcnRhbCE6IFhQb3J0YWxPdmVybGF5UmVmPFhEcm9wZG93blBvcnRhbENvbXBvbmVudD47XHJcbiAgdGltZW91dEhpZGU6IGFueTtcclxuICB2aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYW5pbWF0aW5nID0gZmFsc2U7XHJcbiAgb3V0c2lkZUNsaWNrID0gZmFsc2U7XHJcbiAgbWluV2lkdGghOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgaG92ZXJEZWxheVVuc3ViID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwb3NpdGlvbkNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjbG9zZVN1YmplY3Q6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBwb3J0YWxTZXJ2aWNlOiBYUG9ydGFsU2VydmljZSxcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRTdWJqZWN0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IGRhdGEgfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2UoZGF0YSkgJiYgdGhpcy5zZXREYXRhKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QuY29tcGxldGUoKTtcclxuICAgIHRoaXMuaG92ZXJEZWxheVVuc3ViLm5leHQoKTtcclxuICAgIHRoaXMuaG92ZXJEZWxheVVuc3ViLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkVudGVyKCkge1xyXG4gICAgb2YodHJ1ZSlcclxuICAgICAgLnBpcGUoZGVsYXkodGhpcy5ob3ZlckRlbGF5KSwgdGFrZVVudGlsKHRoaXMuaG92ZXJEZWxheVVuc3ViKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy50cmlnZ2VyID09PSAnY2xpY2snKSByZXR1cm47XHJcbiAgICAgICAgaWYgKHRoaXMudGltZW91dEhpZGUpIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRIaWRlKTtcclxuICAgICAgICBpZiAoIXRoaXMucG9ydGFsIHx8ICh0aGlzLnBvcnRhbCAmJiAhdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCkpKSB7XHJcbiAgICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5jcmVhdGVQb3J0YWwoKTtcclxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25MZWF2ZSgpIHtcclxuICAgIHRoaXMuaG92ZXJEZWxheVVuc3ViLm5leHQoKTtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMudHJpZ2dlciA9PT0gJ2NsaWNrJykgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMudGltZW91dEhpZGUgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93UG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy50cmlnZ2VyID09PSAnaG92ZXInIHx8IHRoaXMuYW5pbWF0aW5nKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSAnY2xpY2snICYmIHRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY3JlYXRlUG9ydGFsKCk7XHJcbiAgfVxyXG5cclxuICBwb3J0YWxBdHRhY2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3lQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlUG9ydGFsKCkge1xyXG4gICAgbGV0IGJveCA9IHRoaXMuZHJvcGRvd24ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHRoaXMubWluV2lkdGggPSB0aGlzLnBvcnRhbE1pbldpZHRoID8gdGhpcy5wb3J0YWxNaW5XaWR0aCA6IGJveC53aWR0aDtcclxuICAgIGNvbnN0IGNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHtcclxuICAgICAgYmFja2Ryb3BDbGFzczogJycsXHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuc2V0UGxhY2VtZW50KCksXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXHJcbiAgICAgIG1pbldpZHRoOiB0aGlzLm1pbldpZHRoXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvbihjb25maWcpO1xyXG4gICAgdGhpcy5wb3J0YWwgPSB0aGlzLnBvcnRhbFNlcnZpY2UuYXR0YWNoKHtcclxuICAgICAgY29udGVudDogWERyb3Bkb3duUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IGNvbmZpZ1xyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSAnY2xpY2snKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsLm92ZXJsYXlSZWZcclxuICAgICAgICA/Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0SW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKGNvbmZpZzogT3ZlcmxheUNvbmZpZykge1xyXG4gICAgbGV0IHBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xyXG4gICAgcG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgocG9zOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpID0+IHtcclxuICAgICAgY29uc3QgcGxhY2UgPSBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24uZ2V0KHBvcy5jb25uZWN0aW9uUGFpcikgYXMgWFBvc2l0aW9uVG9wQm90dG9tO1xyXG4gICAgICBwbGFjZSAhPT0gdGhpcy5wbGFjZW1lbnQgJiYgdGhpcy5wb3NpdGlvbkNoYW5nZS5uZXh0KHBsYWNlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5zdGFuY2UoKSB7XHJcbiAgICBsZXQgY29tcG9uZW50UmVmID0gdGhpcy5wb3J0YWw/LmNvbXBvbmVudFJlZjtcclxuICAgIGlmICghY29tcG9uZW50UmVmKSByZXR1cm47XHJcbiAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwge1xyXG4gICAgICBkYXRhOiB0aGlzLm5vZGVzLFxyXG4gICAgICB0cmlnZ2VyOiB0aGlzLnRyaWdnZXIsXHJcbiAgICAgIG1pbldpZHRoOiB0aGlzLm1pbldpZHRoLFxyXG4gICAgICBjbG9zZTogKCkgPT4gdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpLFxyXG4gICAgICBwb3NpdGlvbkNoYW5nZTogdGhpcy5wb3NpdGlvbkNoYW5nZSxcclxuICAgICAgZGVzdHJveVBvcnRhbDogKCkgPT4gdGhpcy5kZXN0cm95UG9ydGFsKCksXHJcbiAgICAgIG5vZGVFbWl0OiAobm9kZTogWERyb3Bkb3duTm9kZSkgPT4gdGhpcy5ub2RlQ2xpY2suZW1pdChub2RlKSxcclxuICAgICAgcG9ydGFsSG92ZXI6IChob3ZlcjogYm9vbGVhbikgPT4gdGhpcy5wb3J0YWxIb3Zlcihob3ZlciksXHJcbiAgICAgIGFuaW1hdGluZzogKGluZzogYm9vbGVhbikgPT4gKHRoaXMuYW5pbWF0aW5nID0gaW5nKVxyXG4gICAgfSk7XHJcbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcG9ydGFsSG92ZXIoaG92ZXI6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLnRpbWVvdXRIaWRlICYmIGhvdmVyKSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRIaWRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub25MZWF2ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UGxhY2VtZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsU2VydmljZS5zZXRQbGFjZW1lbnQoe1xyXG4gICAgICBlbGVtZW50UmVmOiB0aGlzLmRyb3Bkb3duLFxyXG4gICAgICBwbGFjZW1lbnQ6IFt0aGlzLnBsYWNlbWVudCBhcyBYUGxhY2VtZW50LCAnYm90dG9tLXN0YXJ0JywgJ3RvcC1zdGFydCcsICdib3R0b20tZW5kJywgJ3RvcC1lbmQnXSxcclxuICAgICAgdHJhbnNmb3JtT3JpZ2luT246ICd4LWRyb3Bkb3duLXBvcnRhbCdcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREYXRhKCkge1xyXG4gICAgWFNldERhdGE8WERyb3Bkb3duTm9kZT4odGhpcy5kYXRhLCB0aGlzLl91blN1YmplY3QpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLmRhdGFzID0geDtcclxuICAgICAgaWYgKCF0aGlzLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgdGhpcy5ub2RlcyA9IHguZmlsdGVyKCh5KSA9PiBYSXNFbXB0eSh5LnBpZCkpLm1hcCgoeSkgPT4gWEdldENoaWxkcmVuPFhEcm9wZG93bk5vZGU+KHgsIHksIDApKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm5vZGVzID0geDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICNkcm9wZG93blxyXG4gIGNsYXNzPVwieC1kcm9wZG93blwiXHJcbiAgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIlxyXG4gIFtjbGFzcy54LXZpc2libGVdPVwidmlzaWJsZVwiXHJcbiAgKG1vdXNlZW50ZXIpPVwib25FbnRlcigpXCJcclxuICAobW91c2VsZWF2ZSk9XCJvbkxlYXZlKClcIlxyXG4gIChjbGljayk9XCJzaG93UG9ydGFsKClcIlxyXG4+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2Rpdj5cclxuIl19
@@ -8,10 +8,10 @@ import { XDropdownProperty } from './dropdown.property';
8
8
  import * as i0 from "@angular/core";
9
9
  export class XDropdownModule {
10
10
  }
11
- /** @nocollapse */ XDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- /** @nocollapse */ XDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XDropdownModule, declarations: [XDropdownComponent, XDropdownPortalComponent, XDropdownProperty], imports: [CommonModule, XPortalModule, XListModule], exports: [XDropdownComponent, XDropdownPortalComponent] });
13
- /** @nocollapse */ XDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XDropdownModule, imports: [[CommonModule, XPortalModule, XListModule]] });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XDropdownModule, decorators: [{
11
+ /** @nocollapse */ XDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ /** @nocollapse */ XDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDropdownModule, declarations: [XDropdownComponent, XDropdownPortalComponent, XDropdownProperty], imports: [CommonModule, XPortalModule, XListModule], exports: [XDropdownComponent, XDropdownPortalComponent] });
13
+ /** @nocollapse */ XDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDropdownModule, imports: [[CommonModule, XPortalModule, XListModule]] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDropdownModule, decorators: [{
15
15
  type: NgModule,
16
16
  args: [{
17
17
  declarations: [XDropdownComponent, XDropdownPortalComponent, XDropdownProperty],
@@ -32,8 +32,8 @@ export class XDropdownProperty extends XProperty {
32
32
  this.nodeClick = new EventEmitter();
33
33
  }
34
34
  }
35
- /** @nocollapse */ XDropdownProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XDropdownProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
36
- /** @nocollapse */ XDropdownProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XDropdownProperty, selector: "ng-component", inputs: { data: "data", trigger: "trigger", placement: "placement", disabled: "disabled", children: "children", portalMinWidth: "portalMinWidth", hoverDelay: "hoverDelay" }, outputs: { nodeClick: "nodeClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
35
+ /** @nocollapse */ XDropdownProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDropdownProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
36
+ /** @nocollapse */ XDropdownProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XDropdownProperty, selector: "ng-component", inputs: { data: "data", trigger: "trigger", placement: "placement", disabled: "disabled", children: "children", portalMinWidth: "portalMinWidth", hoverDelay: "hoverDelay" }, outputs: { nodeClick: "nodeClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
37
37
  __decorate([
38
38
  XDataConvert()
39
39
  ], XDropdownProperty.prototype, "data", void 0);
@@ -49,7 +49,7 @@ __decorate([
49
49
  __decorate([
50
50
  XInputBoolean()
51
51
  ], XDropdownProperty.prototype, "children", void 0);
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XDropdownProperty, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDropdownProperty, decorators: [{
53
53
  type: Component,
54
54
  args: [{ template: '' }]
55
55
  }], propDecorators: { data: [{
@@ -24,9 +24,9 @@ export class XEmptyComponent extends XEmptyProperty {
24
24
  this._unSubject.unsubscribe();
25
25
  }
26
26
  }
27
- /** @nocollapse */ XEmptyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XEmptyComponent, deps: [{ token: i1.XConfigService }, { token: i0.ChangeDetectorRef }, { token: i2.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
28
- /** @nocollapse */ XEmptyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XEmptyComponent, selector: "x-empty", usesInheritance: true, ngImport: i0, template: "<div #empty class=\"x-empty\">\r\n <ng-container *ngIf=\"img; else imgDefaultTemp\">\r\n <ng-container *xOutlet=\"img\">\r\n <img class=\"x-empty-img\" [src]=\"img\" />\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"content; else contentDefaultTemp\">\r\n <ng-container *xOutlet=\"content\">\r\n <span>{{ content }}</span>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #imgDefaultTemp>\r\n <x-icon type=\"fto-inbox\"></x-icon>\r\n</ng-template>\r\n\r\n<ng-template #contentDefaultTemp>\r\n <span>{{ 'empty.noData' | xI18n }}</span>\r\n</ng-template>\r\n", styles: [".x-empty{margin:0;padding:0;display:flex;align-items:center;flex-direction:column;color:var(--x-text-400)}.x-empty>.x-icon{font-size:calc(var(--x-font-size) + 1.125rem)}.x-empty>span{line-height:calc(var(--x-font-size) + 1rem)}.x-empty-img{height:5rem}"], components: [{ type: i3.XIconComponent, selector: "x-icon" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], pipes: { "xI18n": i2.XI18nPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XEmptyComponent, decorators: [{
27
+ /** @nocollapse */ XEmptyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XEmptyComponent, deps: [{ token: i1.XConfigService }, { token: i0.ChangeDetectorRef }, { token: i2.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
28
+ /** @nocollapse */ XEmptyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XEmptyComponent, selector: "x-empty", usesInheritance: true, ngImport: i0, template: "<div #empty class=\"x-empty\">\r\n <ng-container *ngIf=\"img; else imgDefaultTemp\">\r\n <ng-container *xOutlet=\"img\">\r\n <img class=\"x-empty-img\" [src]=\"img\" />\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"content; else contentDefaultTemp\">\r\n <ng-container *xOutlet=\"content\">\r\n <span>{{ content }}</span>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #imgDefaultTemp>\r\n <x-icon type=\"fto-inbox\"></x-icon>\r\n</ng-template>\r\n\r\n<ng-template #contentDefaultTemp>\r\n <span>{{ 'empty.noData' | xI18n }}</span>\r\n</ng-template>\r\n", styles: [".x-empty{margin:0;padding:0;display:flex;align-items:center;flex-direction:column;color:var(--x-text-400)}.x-empty>.x-icon{font-size:calc(var(--x-font-size) + 1.125rem)}.x-empty>span{line-height:calc(var(--x-font-size) + 1rem)}.x-empty-img{height:5rem}\n"], components: [{ type: i3.XIconComponent, selector: "x-icon" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], pipes: { "xI18n": i2.XI18nPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XEmptyComponent, decorators: [{
30
30
  type: Component,
31
31
  args: [{
32
32
  selector: `${XEmptyPrefix}`,
@@ -8,10 +8,10 @@ import { XI18nModule } from '@ng-nest/ui/i18n';
8
8
  import * as i0 from "@angular/core";
9
9
  export class XEmptyModule {
10
10
  }
11
- /** @nocollapse */ XEmptyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XEmptyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- /** @nocollapse */ XEmptyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XEmptyModule, declarations: [XEmptyComponent, XEmptyProperty], imports: [CommonModule, XOutletModule, XIconModule, XI18nModule], exports: [XEmptyComponent] });
13
- /** @nocollapse */ XEmptyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XEmptyModule, imports: [[CommonModule, XOutletModule, XIconModule, XI18nModule]] });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XEmptyModule, decorators: [{
11
+ /** @nocollapse */ XEmptyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XEmptyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ /** @nocollapse */ XEmptyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XEmptyModule, declarations: [XEmptyComponent, XEmptyProperty], imports: [CommonModule, XOutletModule, XIconModule, XI18nModule], exports: [XEmptyComponent] });
13
+ /** @nocollapse */ XEmptyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XEmptyModule, imports: [[CommonModule, XOutletModule, XIconModule, XI18nModule]] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XEmptyModule, decorators: [{
15
15
  type: NgModule,
16
16
  args: [{
17
17
  declarations: [XEmptyComponent, XEmptyProperty],
@@ -14,12 +14,12 @@ const X_CONFIG_NAME = 'empty';
14
14
  */
15
15
  export class XEmptyProperty {
16
16
  }
17
- /** @nocollapse */ XEmptyProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XEmptyProperty, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- /** @nocollapse */ XEmptyProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XEmptyProperty, selector: "ng-component", inputs: { img: "img", content: "content" }, ngImport: i0, template: '', isInline: true });
17
+ /** @nocollapse */ XEmptyProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XEmptyProperty, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ /** @nocollapse */ XEmptyProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XEmptyProperty, selector: "ng-component", inputs: { img: "img", content: "content" }, ngImport: i0, template: '', isInline: true });
19
19
  __decorate([
20
20
  XWithConfig(X_CONFIG_NAME)
21
21
  ], XEmptyProperty.prototype, "content", void 0);
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XEmptyProperty, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XEmptyProperty, decorators: [{
23
23
  type: Component,
24
24
  args: [{ template: '' }]
25
25
  }], propDecorators: { img: [{
@@ -8,9 +8,9 @@ export class XExamplesComponent {
8
8
  this.renderer.addClass(this.elementRef.nativeElement, XExamplesPrefix);
9
9
  }
10
10
  }
11
- /** @nocollapse */ XExamplesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XExamplesComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
12
- /** @nocollapse */ XExamplesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XExamplesComponent, selector: "x-examples", ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [".x-examples{margin:0;padding:0;display:block}.x-examples .x-examples-html{padding:1rem;margin:1rem 0;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:.125rem;position:relative}.x-examples .x-examples-tools{position:absolute;bottom:-.875rem;left:0;display:flex;width:100%;justify-content:center}.x-examples .x-examples-tools .x-buttons{background-color:var(--x-background);padding:0 .25rem}.x-examples .x-examples-code{padding:1rem 0}.x-examples .x-examples-code>x-tabs>.x-tabs{border-radius:.125rem}.x-examples .x-examples-code>x-tabs>.x-tabs>.x-tabs-contents>.x-tab-content>.x-highlight{border-top:0}.x-examples .x-examples-code>x-tabs>.x-tabs>.x-tabs-contents>.x-tab-content>.x-highlight>pre{background-color:initial}.x-examples .x-examples-info{padding:1rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:.125rem;background-color:var(--x-background-a100)}.x-examples .x-examples-info>p{margin:.25rem 0 0}.x-examples .x-examples-info>p:first-of-type{margin-top:0}.x-examples .x-examples-info>ul{margin:.25rem 0}.x-examples .x-examples-info>ul>li{list-style-type:square;margin-left:1.25rem;line-height:1.75rem}.x-examples>x-tabs>.x-tabs{width:100%}.x-examples>x-tabs>.x-tabs>.x-tabs-list{border:none}.x-examples>x-tabs>.x-tabs>.x-tabs-contents>x-tab-content>x-tabs>.x-tabs-top>.x-tabs-list{border:none;background:#0000000d}.x-examples>x-tabs>.x-tabs-left>.x-tabs-list>x-slider>.x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs-left>.x-tabs-list>x-slider>.x-slider-row>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-row>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs>.x-tabs-contents>x-tab-content>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs>.x-tabs-contents>x-tab-content>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-row>.x-slider-scroll>ul>li.x-slider-highlight{border-radius:var(--x-border-radius);border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-examples>x-tabs>.x-tabs-left>.x-tabs-list{padding:0}.x-examples>x-tabs>.x-tabs-left>.x-tabs-list>x-slider>.x-slider>.x-slider-scroll>ul{min-width:6rem}"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XExamplesComponent, decorators: [{
11
+ /** @nocollapse */ XExamplesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XExamplesComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
12
+ /** @nocollapse */ XExamplesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XExamplesComponent, selector: "x-examples", ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [".x-examples{margin:0;padding:0;display:block}.x-examples .x-examples-html{padding:1rem;margin:1rem 0;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:.125rem;position:relative}.x-examples .x-examples-tools{position:absolute;bottom:-.875rem;left:0;display:flex;width:100%;justify-content:center}.x-examples .x-examples-tools .x-buttons{background-color:var(--x-background);padding:0 .25rem}.x-examples .x-examples-code{padding:1rem 0}.x-examples .x-examples-code>x-tabs>.x-tabs{border-radius:.125rem}.x-examples .x-examples-code>x-tabs>.x-tabs>.x-tabs-contents>.x-tab-content>.x-highlight{border-top:0}.x-examples .x-examples-code>x-tabs>.x-tabs>.x-tabs-contents>.x-tab-content>.x-highlight>pre{background-color:transparent}.x-examples .x-examples-info{padding:1rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:.125rem;background-color:var(--x-background-a100)}.x-examples .x-examples-info>p{margin:.25rem 0 0}.x-examples .x-examples-info>p:first-of-type{margin-top:0}.x-examples .x-examples-info>ul{margin:.25rem 0}.x-examples .x-examples-info>ul>li{list-style-type:square;margin-left:1.25rem;line-height:1.75rem}.x-examples>x-tabs>.x-tabs{width:100%}.x-examples>x-tabs>.x-tabs>.x-tabs-list{border:none}.x-examples>x-tabs>.x-tabs>.x-tabs-contents>x-tab-content>x-tabs>.x-tabs-top>.x-tabs-list{border:none;background:rgba(0,0,0,.05)}.x-examples>x-tabs>.x-tabs>.x-tabs-contents>x-tab-content>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-row>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs>.x-tabs-contents>x-tab-content>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight{border-radius:var(--x-border-radius);border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-examples>x-tabs>.x-tabs-left>.x-tabs-list>x-slider>.x-slider-row>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs-left>.x-tabs-list>x-slider>.x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-row>.x-slider-scroll>ul>li.x-slider-highlight,.x-examples>x-tabs>.x-tabs-top>.x-tabs-list>x-slider>.x-slider-column>.x-slider-scroll>ul>li.x-slider-highlight{border-radius:var(--x-border-radius);border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-examples>x-tabs>.x-tabs-left>.x-tabs-list{padding:0}.x-examples>x-tabs>.x-tabs-left>.x-tabs-list>x-slider>.x-slider>.x-slider-scroll>ul{min-width:6rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XExamplesComponent, decorators: [{
14
14
  type: Component,
15
15
  args: [{
16
16
  selector: `${XExamplesPrefix}`,
@@ -4,10 +4,10 @@ import { XExamplesComponent } from './examples.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class XExamplesModule {
6
6
  }
7
- /** @nocollapse */ XExamplesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XExamplesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- /** @nocollapse */ XExamplesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XExamplesModule, declarations: [XExamplesComponent], imports: [CommonModule], exports: [XExamplesComponent] });
9
- /** @nocollapse */ XExamplesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XExamplesModule, imports: [[CommonModule]] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XExamplesModule, decorators: [{
7
+ /** @nocollapse */ XExamplesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XExamplesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ /** @nocollapse */ XExamplesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XExamplesModule, declarations: [XExamplesComponent], imports: [CommonModule], exports: [XExamplesComponent] });
9
+ /** @nocollapse */ XExamplesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XExamplesModule, imports: [[CommonModule]] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XExamplesModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  declarations: [XExamplesComponent],
@@ -67,8 +67,9 @@ export class XFindComponent extends XFindProperty {
67
67
  this.cdr.detectChanges();
68
68
  }
69
69
  ngOnChanges(simples) {
70
- XIsChange(simples.tableData) && this.setTableCheckedRow();
71
- XIsChange(simples.labelAlign, simples.size) && this.setClassMap();
70
+ const { tableData, labelAlign, size } = simples;
71
+ XIsChange(tableData) && this.setTableCheckedRow();
72
+ XIsChange(labelAlign, size) && this.setClassMap();
72
73
  }
73
74
  ngOnInit() {
74
75
  this.setFlex(this.find.nativeElement, this.renderer, this.justify, this.align, this.direction);
@@ -193,7 +194,7 @@ export class XFindComponent extends XFindProperty {
193
194
  if (this.hasTable) {
194
195
  let it = (_a = this.tableCom) === null || _a === void 0 ? void 0 : _a.tableData.find((x) => item.id === x.id);
195
196
  if (it) {
196
- it.$checked = false;
197
+ it['$checked'] = false;
197
198
  (_b = this.tableCom) === null || _b === void 0 ? void 0 : _b.bodyChange();
198
199
  }
199
200
  }
@@ -234,7 +235,7 @@ export class XFindComponent extends XFindProperty {
234
235
  rowMultiple(data) {
235
236
  if (typeof this.temp === 'undefined')
236
237
  this.temp = [];
237
- if (data.$checked) {
238
+ if (data['$checked']) {
238
239
  this.temp = [...this.temp, data];
239
240
  }
240
241
  else {
@@ -285,7 +286,7 @@ export class XFindComponent extends XFindProperty {
285
286
  treeCheckboxChange(node) {
286
287
  this.treeMultiple(node);
287
288
  }
288
- trackByItem(index, item) {
289
+ trackByItem(_index, item) {
289
290
  return item.id;
290
291
  }
291
292
  formControlChanges() {
@@ -321,9 +322,9 @@ export class XFindComponent extends XFindProperty {
321
322
  this.cdr.detectChanges();
322
323
  }
323
324
  }
324
- /** @nocollapse */ XFindComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XFindComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
325
- /** @nocollapse */ XFindComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XFindComponent, selector: "x-find", providers: [XValueAccessor(XFindComponent)], viewQueries: [{ propertyName: "find", first: true, predicate: ["find"], descendants: true, static: true }, { propertyName: "dialogCom", first: true, predicate: ["dialogCom"], descendants: true }, { propertyName: "tableCom", first: true, predicate: ["tableCom"], descendants: true }, { propertyName: "treeCom", first: true, predicate: ["treeCom"], descendants: true }, { propertyName: "buttonCom", first: true, predicate: ["buttonCom"], descendants: true }, { propertyName: "tableRef", first: true, predicate: ["tableRef"], descendants: true }, { propertyName: "treeRef", first: true, predicate: ["treeRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #find\r\n class=\"x-find\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-find-row\">\r\n <x-button #buttonCom icon=\"fto-search\" [onlyIcon]=\"!bordered\" [size]=\"size\" [disabled]=\"disabled\" (click)=\"showModal()\"></x-button>\r\n <div class=\"x-find-tags\">\r\n <ng-container *ngIf=\"multiple; else singleTpl\">\r\n <x-tag\r\n *ngFor=\"let item of value; index as i; trackBy: trackByItem\"\r\n closable\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [disabled]=\"disabled\"\r\n (close)=\"tagClose(i)\"\r\n >{{ item[columnLabel] }}</x-tag\r\n >\r\n </ng-container>\r\n <ng-template #singleTpl>\r\n <x-tag *ngIf=\"value\" closable [disabled]=\"disabled\" [bordered]=\"bordered\" [size]=\"size\" (close)=\"tagClose()\">{{\r\n value[columnLabel]\r\n }}</x-tag>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<x-dialog\r\n #dialogCom\r\n [title]=\"dialogTitle\"\r\n [width]=\"dialogWidth\"\r\n [height]=\"dialogHeight\"\r\n [buttonsCenter]=\"dialogButtonsCenter\"\r\n [(visible)]=\"dialogVisible\"\r\n (visibleChange)=\"dialogVisibleChange.emit($event)\"\r\n (closeDone)=\"dialogCloseDone()\"\r\n (cancel)=\"closeModal()\"\r\n (close)=\"closeModal()\"\r\n (confirm)=\"sure()\"\r\n>\r\n <div class=\"x-find-dialog\" [class.x-find-dialog-tree-table]=\"hasTable && hasTree\">\r\n <div class=\"x-find-dialog-tree\" *ngIf=\"hasTree\" #treeRef [style.height.px]=\"hasTreeTable && multiple && height\">\r\n <x-tree\r\n #treeCom\r\n [data]=\"treeData\"\r\n nodeHeight=\"1.8\"\r\n [(manual)]=\"dialogVisible\"\r\n [activatedId]=\"treeActivatedId\"\r\n [expandedLevel]=\"treeExpandedLevel\"\r\n (activatedChange)=\"treeActivatedClick($event)\"\r\n [checkbox]=\"hasTreeMultiple\"\r\n [checked]=\"treeChecked\"\r\n (checkboxChange)=\"treeCheckboxChange($event)\"\r\n [levelCheck]=\"!hasTreeMultiple\"\r\n ></x-tree>\r\n </div>\r\n <div class=\"x-find-dialog-table\" *ngIf=\"hasTable\" #tableRef>\r\n <div class=\"x-find-search\" *ngIf=\"hasSearch\">\r\n <x-input [label]=\"search.label\" direction=\"row\" (xKeydown)=\"searchKeyDown($event)\" [(ngModel)]=\"search.value\"></x-input>\r\n <x-button type=\"primary\" plain (click)=\"searchClick()\">{{ search.button || '\u67E5\u8BE2' }}</x-button>\r\n </div>\r\n <x-table\r\n #tableCom\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns\"\r\n [(manual)]=\"dialogVisible\"\r\n [(index)]=\"tableIndex\"\r\n [(size)]=\"tableSize\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n [allowSelectRow]=\"!multiple\"\r\n [checkedRow]=\"tableCheckedRow\"\r\n [loading]=\"tableLoading\"\r\n (indexChange)=\"tableIndexChange.emit($event)\"\r\n (sortChange)=\"tableSortChange.emit($event)\"\r\n [(activatedRow)]=\"tableActivatedRow\"\r\n (activatedRowChange)=\"tableActivatedRowChange($event)\"\r\n [rowHeight]=\"tableRowHeight\"\r\n [bodyHeight]=\"tableBodyHeight\"\r\n [virtualScroll]=\"tableVirtualScroll\"\r\n [minBufferPx]=\"tableMinBufferPx\"\r\n [maxBufferPx]=\"tableMaxBufferPx\"\r\n [adaptionHeight]=\"tableAdaptionHeight\"\r\n [docPercent]=\"tableDocPercent\"\r\n ></x-table>\r\n </div>\r\n <div *ngIf=\"multiple\" class=\"x-find-dialog-checked\" [class.x-find-empty]=\"getEmpty\" [style.height.px]=\"height\">\r\n <x-empty *ngIf=\"getEmpty\" content=\"\u8BF7\u9009\u62E9\u6570\u636E\"></x-empty>\r\n <div class=\"x-find-dialog-tags\">\r\n <x-tag *ngFor=\"let item of temp; index as i; trackBy: trackByItem\" closable (close)=\"tempClose(i, item)\">\r\n <span>{{ item[columnLabel] }}</span>\r\n </x-tag>\r\n </div>\r\n </div>\r\n </div>\r\n</x-dialog>\r\n\r\n<ng-template #treeLabelTpl let-node=\"$node\">\r\n <div class=\"x-find-dialog-tree-node\">\r\n <span>{{ node.label }} </span>\r\n <x-icon type=\"fto-check\" *ngIf=\"node.$checked\"></x-icon>\r\n </div>\r\n</ng-template>\r\n", styles: [".x-find{margin:0;padding:0;width:100%}.x-find.x-flex{display:flex}.x-find.x-justify-start{justify-content:flex-start}.x-find.x-justify-center{justify-content:center}.x-find.x-justify-end{justify-content:flex-end}.x-find.x-justify-space-between{justify-content:space-between}.x-find.x-justify-space-around{justify-content:space-around}.x-find.x-align-start{align-items:flex-start}.x-find.x-align-center{align-items:center}.x-find.x-align-end{align-items:flex-end}.x-find.x-direction-column{flex-direction:column}.x-find.x-direction-column-reverse{flex-direction:column-reverse}.x-find.x-direction-row{flex-direction:row}.x-find.x-direction-row-reverse{flex-direction:row-reverse}.x-find>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-find>label.x-text-align-start{text-align:start}.x-find>label.x-text-align-center{text-align:center}.x-find>label.x-text-align-end{text-align:end}.x-find-row{flex:1;display:flex;align-items:flex-start;position:relative}.x-find-tags{margin:-.0625rem -.0625rem -.0625rem .4375rem}.x-find-tags>x-tag{margin:.0625rem}.x-find.x-required>label{color:var(--x-danger)}.x-find.x-direction-row>label{padding:0 .5rem 0 0}.x-find.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-find.x-direction-column,.x-find.x-direction-column-reverse{align-items:inherit}.x-find-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-find-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-find-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-find-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-find-small .x-find-tags{margin-top:-.1875rem}.x-find-small .x-find-tags>x-tag{margin-top:.125rem}.x-find-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-find-mini .x-find-tags{margin-top:-.25rem}.x-find-mini .x-find-tags>x-tag{margin-top:.125rem}.x-find-dialog{flex:1;display:flex}.x-find-dialog-table{flex:1;min-height:18.75rem;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.x-find-dialog-tree{flex:1;min-height:18.75rem;max-height:25rem;overflow-y:auto}.x-find-dialog-tree .x-tree-node-content.x-activated{color:var(--x-primary)}.x-find-dialog-tree-node{flex:1;display:flex;align-items:center;justify-content:space-between}.x-find-dialog-tree-node>span{flex:1;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none}.x-find-dialog-tree-table .x-find-dialog-tree{flex:initial;min-height:auto;max-height:none;width:14rem;margin-right:1rem;padding-right:1rem;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-find-dialog-checked{margin-left:1rem;border-left:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:1rem;width:10rem;overflow-y:auto;height:100%}.x-find-dialog-checked x-tag{display:block}.x-find-dialog-checked x-tag:not(:first-child){margin-top:.5rem}.x-find-dialog-checked x-tag .x-tag{width:100%;display:flex;justify-content:space-between}.x-find-dialog-checked x-tag .x-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-find-dialog-checked.x-find-empty{display:flex;align-items:center;justify-content:center}.x-find-search{display:flex;padding:.3rem}.x-find-search .x-input,.x-find-search x-input{width:15rem}.x-find-search .x-button{margin-left:.5rem}"], components: [{ type: i2.XButtonComponent, selector: "x-button" }, { type: i3.XTagComponent, selector: "x-tag" }, { type: i4.XDialogComponent, selector: "x-dialog" }, { type: i5.XTreeComponent, selector: "x-tree" }, { type: i6.XInputComponent, selector: "x-input" }, { type: i7.XTableComponent, selector: "x-table" }, { type: i8.XEmptyComponent, selector: "x-empty" }, { type: i9.XIconComponent, selector: "x-icon" }], directives: [{ type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
326
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XFindComponent, decorators: [{
325
+ /** @nocollapse */ XFindComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XFindComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
326
+ /** @nocollapse */ XFindComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XFindComponent, selector: "x-find", providers: [XValueAccessor(XFindComponent)], viewQueries: [{ propertyName: "find", first: true, predicate: ["find"], descendants: true, static: true }, { propertyName: "dialogCom", first: true, predicate: ["dialogCom"], descendants: true }, { propertyName: "tableCom", first: true, predicate: ["tableCom"], descendants: true }, { propertyName: "treeCom", first: true, predicate: ["treeCom"], descendants: true }, { propertyName: "buttonCom", first: true, predicate: ["buttonCom"], descendants: true }, { propertyName: "tableRef", first: true, predicate: ["tableRef"], descendants: true }, { propertyName: "treeRef", first: true, predicate: ["treeRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #find\r\n class=\"x-find\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-find-row\">\r\n <x-button #buttonCom icon=\"fto-search\" [onlyIcon]=\"!bordered\" [size]=\"size\" [disabled]=\"disabled\" (click)=\"showModal()\"></x-button>\r\n <div class=\"x-find-tags\">\r\n <ng-container *ngIf=\"multiple; else singleTpl\">\r\n <x-tag\r\n *ngFor=\"let item of value; index as i; trackBy: trackByItem\"\r\n closable\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [disabled]=\"disabled\"\r\n (close)=\"tagClose(i)\"\r\n >{{ item[columnLabel] }}</x-tag\r\n >\r\n </ng-container>\r\n <ng-template #singleTpl>\r\n <x-tag *ngIf=\"value\" closable [disabled]=\"disabled\" [bordered]=\"bordered\" [size]=\"size\" (close)=\"tagClose()\">{{\r\n value[columnLabel]\r\n }}</x-tag>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<x-dialog\r\n #dialogCom\r\n [title]=\"dialogTitle\"\r\n [width]=\"dialogWidth\"\r\n [height]=\"dialogHeight\"\r\n [buttonsCenter]=\"dialogButtonsCenter\"\r\n [(visible)]=\"dialogVisible\"\r\n (visibleChange)=\"dialogVisibleChange.emit($event)\"\r\n (closeDone)=\"dialogCloseDone()\"\r\n (cancel)=\"closeModal()\"\r\n (close)=\"closeModal()\"\r\n (confirm)=\"sure()\"\r\n>\r\n <div class=\"x-find-dialog\" [class.x-find-dialog-tree-table]=\"hasTable && hasTree\">\r\n <div class=\"x-find-dialog-tree\" *ngIf=\"hasTree\" #treeRef [style.height.px]=\"hasTreeTable && multiple && height\">\r\n <x-tree\r\n #treeCom\r\n [data]=\"treeData\"\r\n nodeHeight=\"1.8\"\r\n [(manual)]=\"dialogVisible\"\r\n [activatedId]=\"treeActivatedId\"\r\n [expandedLevel]=\"treeExpandedLevel\"\r\n (activatedChange)=\"treeActivatedClick($event)\"\r\n [checkbox]=\"hasTreeMultiple\"\r\n [checked]=\"treeChecked\"\r\n (checkboxChange)=\"treeCheckboxChange($event)\"\r\n [levelCheck]=\"!hasTreeMultiple\"\r\n ></x-tree>\r\n </div>\r\n <div class=\"x-find-dialog-table\" *ngIf=\"hasTable\" #tableRef>\r\n <div class=\"x-find-search\" *ngIf=\"hasSearch\">\r\n <x-input [label]=\"search.label\" direction=\"row\" (xKeydown)=\"searchKeyDown($event)\" [(ngModel)]=\"search.value\"></x-input>\r\n <x-button type=\"primary\" plain (click)=\"searchClick()\">{{ search.button || '\u67E5\u8BE2' }}</x-button>\r\n </div>\r\n <x-table\r\n #tableCom\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns\"\r\n [(manual)]=\"dialogVisible\"\r\n [(index)]=\"tableIndex\"\r\n [(size)]=\"tableSize\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n [allowSelectRow]=\"!multiple\"\r\n [checkedRow]=\"tableCheckedRow\"\r\n [loading]=\"tableLoading\"\r\n (indexChange)=\"tableIndexChange.emit($event)\"\r\n (sortChange)=\"tableSortChange.emit($event)\"\r\n [(activatedRow)]=\"tableActivatedRow\"\r\n (activatedRowChange)=\"tableActivatedRowChange($event)\"\r\n [rowHeight]=\"tableRowHeight\"\r\n [bodyHeight]=\"tableBodyHeight\"\r\n [virtualScroll]=\"tableVirtualScroll\"\r\n [minBufferPx]=\"tableMinBufferPx\"\r\n [maxBufferPx]=\"tableMaxBufferPx\"\r\n [adaptionHeight]=\"tableAdaptionHeight\"\r\n [docPercent]=\"tableDocPercent\"\r\n ></x-table>\r\n </div>\r\n <div *ngIf=\"multiple\" class=\"x-find-dialog-checked\" [class.x-find-empty]=\"getEmpty\" [style.height.px]=\"height\">\r\n <x-empty *ngIf=\"getEmpty\" content=\"\u8BF7\u9009\u62E9\u6570\u636E\"></x-empty>\r\n <div class=\"x-find-dialog-tags\">\r\n <x-tag *ngFor=\"let item of temp; index as i; trackBy: trackByItem\" closable (close)=\"tempClose(i, item)\">\r\n <span>{{ item[columnLabel] }}</span>\r\n </x-tag>\r\n </div>\r\n </div>\r\n </div>\r\n</x-dialog>\r\n\r\n<ng-template #treeLabelTpl let-node=\"$node\">\r\n <div class=\"x-find-dialog-tree-node\">\r\n <span>{{ node.label }} </span>\r\n <x-icon type=\"fto-check\" *ngIf=\"node.$checked\"></x-icon>\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-find{margin:0;padding:0;width:100%}.x-find.x-flex{display:flex}.x-find.x-justify-start{justify-content:flex-start}.x-find.x-justify-center{justify-content:center}.x-find.x-justify-end{justify-content:flex-end}.x-find.x-justify-space-between{justify-content:space-between}.x-find.x-justify-space-around{justify-content:space-around}.x-find.x-align-start{align-items:flex-start}.x-find.x-align-center{align-items:center}.x-find.x-align-end{align-items:flex-end}.x-find.x-direction-column{flex-direction:column}.x-find.x-direction-column-reverse{flex-direction:column-reverse}.x-find.x-direction-row{flex-direction:row}.x-find.x-direction-row-reverse{flex-direction:row-reverse}.x-find>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-find>label.x-text-align-start{text-align:start}.x-find>label.x-text-align-center{text-align:center}.x-find>label.x-text-align-end{text-align:end}.x-find-row{flex:1;display:flex;align-items:flex-start;position:relative}.x-find-tags{margin:-.0625rem -.0625rem -.0625rem .4375rem}.x-find-tags>x-tag{margin:.0625rem}.x-find.x-required>label{color:var(--x-danger)}.x-find.x-direction-row>label{padding:0 .5rem 0 0}.x-find.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-find.x-direction-column{align-items:inherit}.x-find.x-direction-column-reverse{align-items:inherit}.x-find-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-find-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-find-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-find-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-find-small .x-find-tags{margin-top:-.1875rem}.x-find-small .x-find-tags>x-tag{margin-top:.125rem}.x-find-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-find-mini .x-find-tags{margin-top:-.25rem}.x-find-mini .x-find-tags>x-tag{margin-top:.125rem}.x-find-dialog{flex:1;display:flex}.x-find-dialog-table{flex:1;min-height:18.75rem;height:-moz-fit-content;height:fit-content}.x-find-dialog-tree{flex:1;min-height:18.75rem;max-height:25rem;overflow-y:auto}.x-find-dialog-tree .x-tree-node-content.x-activated{color:var(--x-primary)}.x-find-dialog-tree-node{flex:1;display:flex;align-items:center;justify-content:space-between}.x-find-dialog-tree-node>span{flex:1;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none}.x-find-dialog-tree-table .x-find-dialog-tree{flex:initial;min-height:initial;max-height:initial;width:14rem;margin-right:1rem;padding-right:1rem;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-find-dialog-checked{margin-left:1rem;border-left:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:1rem;width:10rem;overflow-y:auto;height:100%}.x-find-dialog-checked x-tag{display:block}.x-find-dialog-checked x-tag:not(:first-child){margin-top:.5rem}.x-find-dialog-checked x-tag .x-tag{width:100%;display:flex;justify-content:space-between}.x-find-dialog-checked x-tag .x-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-find-dialog-checked.x-find-empty{display:flex;align-items:center;justify-content:center}.x-find-search{display:flex;padding:.3rem}.x-find-search .x-input,.x-find-search x-input{width:15rem}.x-find-search .x-button{margin-left:.5rem}\n"], components: [{ type: i2.XButtonComponent, selector: "x-button" }, { type: i3.XTagComponent, selector: "x-tag" }, { type: i4.XDialogComponent, selector: "x-dialog" }, { type: i5.XTreeComponent, selector: "x-tree" }, { type: i6.XInputComponent, selector: "x-input" }, { type: i7.XTableComponent, selector: "x-table" }, { type: i8.XEmptyComponent, selector: "x-empty" }, { type: i9.XIconComponent, selector: "x-icon" }], directives: [{ type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XFindComponent, decorators: [{
327
328
  type: Component,
328
329
  args: [{
329
330
  selector: `${XFindPrefix}`,
@@ -355,4 +356,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImpor
355
356
  type: ViewChild,
356
357
  args: ['treeRef']
357
358
  }] } });
358
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9maW5kL2ZpbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZmluZC9maW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUl2QixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFrQixRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUkzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVV2RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGFBQWE7SUFvRS9DLFlBQW1CLFFBQW1CLEVBQVUsR0FBc0IsRUFBUyxhQUE2QjtRQUMxRyxLQUFLLEVBQUUsQ0FBQztRQURTLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQVY1RyxXQUFNLEdBQUcsR0FBRyxDQUFDO1FBRUwsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFVekMsQ0FBQztJQTlERCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUNXLFFBQVEsQ0FBQyxLQUFp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LGNBQWMsZ0JBQWdCLENBQUM7aUJBQzVDOzZKQUVzQyxJQUFJO3NCQUF4QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1gsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNDLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDQyxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0ksU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQU9YLFFBQVE7c0JBRGxCLFNBQVM7dUJBQUMsVUFBVTtnQkFhVixPQUFPO3NCQURqQixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFNpbXBsZUNoYW5nZXNcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWEZpbmRQcm9wZXJ0eSwgWEZpbmRQcmVmaXggfSBmcm9tICcuL2ZpbmQucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYQ2xlYXJDbGFzcywgWFJlc2l6ZSwgWElzVW5kZWZpbmVkLCBYSXNDaGFuZ2UsIFhDb25maWdTZXJ2aWNlLCBYSXNFbXB0eSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYVGFibGVDb21wb25lbnQsIFhUYWJsZVJvdyB9IGZyb20gJ0BuZy1uZXN0L3VpL3RhYmxlJztcclxuaW1wb3J0IHsgWERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2RpYWxvZyc7XHJcbmltcG9ydCB7IFhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9idXR0b24nO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBYVHJlZU5vZGUsIFhUcmVlQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvdHJlZSc7XHJcbmltcG9ydCB7IFhWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYRmluZFByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maW5kLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maW5kLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtYVmFsdWVBY2Nlc3NvcihYRmluZENvbXBvbmVudCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYRmluZENvbXBvbmVudCBleHRlbmRzIFhGaW5kUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbmQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBmaW5kITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdkaWFsb2dDb20nKSBkaWFsb2dDb20hOiBYRGlhbG9nQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlQ29tJykgdGFibGVDb20hOiBYVGFibGVDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgndHJlZUNvbScpIHRyZWVDb20hOiBYVHJlZUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdidXR0b25Db20nKSBidXR0b25Db20hOiBYQnV0dG9uQ29tcG9uZW50O1xyXG5cclxuICBwcml2YXRlIF90YWJsZVJlZiE6IEVsZW1lbnRSZWY7XHJcbiAgcHVibGljIGdldCB0YWJsZVJlZigpOiBFbGVtZW50UmVmIHtcclxuICAgIHJldHVybiB0aGlzLl90YWJsZVJlZjtcclxuICB9XHJcbiAgQFZpZXdDaGlsZCgndGFibGVSZWYnKVxyXG4gIHB1YmxpYyBzZXQgdGFibGVSZWYodmFsdWU6IEVsZW1lbnRSZWYpIHtcclxuICAgIHRoaXMuX3RhYmxlUmVmID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgJiYgdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLnNldFN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdHJlZVJlZiE6IEVsZW1lbnRSZWY7XHJcbiAgcHVibGljIGdldCB0cmVlUmVmKCk6IEVsZW1lbnRSZWYge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyZWVSZWY7XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ3RyZWVSZWYnKVxyXG4gIHB1YmxpYyBzZXQgdHJlZVJlZih2YWx1ZTogRWxlbWVudFJlZikge1xyXG4gICAgdGhpcy5fdHJlZVJlZiA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlICYmIHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5zZXRTdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBnZXRFbXB0eSgpIHtcclxuICAgIHJldHVybiAhdGhpcy50ZW1wIHx8IHRoaXMudGVtcC5sZW5ndGggPT09IDA7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzVGFibGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZUNvbHVtbnM/Lmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzVHJlZSgpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIChBcnJheS5pc0FycmF5KHRoaXMudHJlZURhdGEpICYmIHRoaXMudHJlZURhdGEubGVuZ3RoID4gMCkgfHwgdGhpcy50cmVlRGF0YSBpbnN0YW5jZW9mIEZ1bmN0aW9uIHx8IHRoaXMudHJlZURhdGEgaW5zdGFuY2VvZiBPYnNlcnZhYmxlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1RyZWVUYWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmhhc1RhYmxlICYmIHRoaXMuaGFzVHJlZTtcclxuICB9XHJcblxyXG4gIGdldCBoYXNUcmVlTXVsdGlwbGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYXNUcmVlICYmICF0aGlzLmhhc1RyZWVUYWJsZSAmJiB0aGlzLm11bHRpcGxlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1NlYXJjaCgpIHtcclxuICAgIHJldHVybiB0aGlzLnNlYXJjaCAmJiB0aGlzLmhhc1RhYmxlO1xyXG4gIH1cclxuXHJcbiAgdGVtcDogYW55O1xyXG4gIGhlaWdodCA9IDEwMDtcclxuXHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIF9yZXNpemVPYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZSkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKHNpbXBsZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIFhJc0NoYW5nZShzaW1wbGVzLnRhYmxlRGF0YSkgJiYgdGhpcy5zZXRUYWJsZUNoZWNrZWRSb3coKTtcclxuICAgIFhJc0NoYW5nZShzaW1wbGVzLmxhYmVsQWxpZ24sIHNpbXBsZXMuc2l6ZSkgJiYgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldEZsZXgodGhpcy5maW5kLm5hdGl2ZUVsZW1lbnQsIHRoaXMucmVuZGVyZXIsIHRoaXMuanVzdGlmeSwgdGhpcy5hbGlnbiwgdGhpcy5kaXJlY3Rpb24pO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgdGhpcy5zZXRNdWx0aXBsZSgpO1xyXG4gICAgdGhpcy5zZXRXaWR0aCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMudmFsdWUpIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgWENsZWFyQ2xhc3ModGhpcy5sYWJlbE1hcCwgdGhpcy5jbGFzc01hcCk7XHJcbiAgICB0aGlzLmxhYmVsTWFwW2B4LXRleHQtYWxpZ24tJHt0aGlzLmxhYmVsQWxpZ259YF0gPSB0aGlzLmxhYmVsQWxpZ24gPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLmNsYXNzTWFwW2B4LWZpbmQtJHt0aGlzLnNpemV9YF0gPSAhWElzRW1wdHkodGhpcy5zaXplKTtcclxuICB9XHJcblxyXG4gIHNldFN1YnNjcmliZSgpIHtcclxuICAgIGxldCByZXNpemVSZWY6IEVsZW1lbnRbXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgcmVzaXplUmVmID0gW3RoaXMudGFibGVSZWY/Lm5hdGl2ZUVsZW1lbnRdO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaGFzVHJlZSAmJiAhdGhpcy5oYXNUcmVlVGFibGUpIHtcclxuICAgICAgcmVzaXplUmVmLnB1c2godGhpcy50cmVlUmVmPy5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICBYUmVzaXplKC4uLnJlc2l6ZVJlZilcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDMwKSwgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGVSZWYpIHtcclxuICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy50YWJsZVJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgICAgdGhpcy5oZWlnaHQgPSB0aGlzLnRyZWVSZWY/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0TXVsdGlwbGUoKSB7XHJcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmhhc1RhYmxlKSB7XHJcbiAgICAgIGlmICghdGhpcy50YWJsZUNvbHVtbnMuZmluZCgoeCkgPT4geC5yb3dDaGVja2VkKSkge1xyXG4gICAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gW3sgaWQ6ICckY2hlY2tlZCcsIGxhYmVsOiAn6YCJ5oupJywgcm93Q2hlY2tlZDogdHJ1ZSwgdHlwZTogJ2NoZWNrYm94Jywgd2lkdGg6IDYwIH0sIC4uLnRoaXMudGFibGVDb2x1bW5zXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0V2lkdGgoKSB7XHJcbiAgICBpZiAoWElzVW5kZWZpbmVkKHRoaXMuZGlhbG9nV2lkdGgpKSB7XHJcbiAgICAgIGlmICgodGhpcy5oYXNUYWJsZSAmJiB0aGlzLmhhc1RyZWUpIHx8IHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1dpZHRoID0gJzUwcmVtJztcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmhhc1RyZWUgJiYgdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nV2lkdGggPSAnMzByZW0nO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nV2lkdGggPSAnMjByZW0nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93TW9kYWwoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZTtcclxuICAgIHRoaXMuZGlhbG9nVmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuZGlhbG9nVmlzaWJsZSk7XHJcbiAgICBpZiAodGhpcy52YWx1ZSkge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIHRoaXMudGVtcCA9ICh0aGlzLnZhbHVlIGFzIEFycmF5PGFueT4pLm1hcCgoeCkgPT4gT2JqZWN0LmFzc2lnbih7fSwgeCkpO1xyXG4gICAgICAgIHRoaXMuc2V0VGFibGVDaGVja2VkUm93KCk7XHJcbiAgICAgICAgdGhpcy5zZXRUcmVlQ2hlY2tlZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGFibGVBY3RpdmF0ZWRSb3cgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgIGlmICghdGhpcy5oYXNUcmVlVGFibGUgJiYgdGhpcy5oYXNUcmVlKSB7XHJcbiAgICAgICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IHRoaXMudmFsdWUuaWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRlbXAgPSB0aGlzLm11bHRpcGxlID8gW10gOiBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgdGhpcy50YWJsZUNvbS52aXJ0dWFsQm9keT8uc2Nyb2xsVG9JbmRleCgwKTtcclxuICAgICAgdGhpcy50YWJsZUNvbS52aXJ0dWFsQm9keT8uY2hlY2tWaWV3cG9ydFNpemUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFRhYmxlQ2hlY2tlZFJvdygpIHtcclxuICAgIGlmICghdGhpcy5tdWx0aXBsZSB8fCBYSXNVbmRlZmluZWQodGhpcy50ZW1wKSkgcmV0dXJuO1xyXG4gICAgY29uc3QgaWRzID0gKHRoaXMudGVtcCBhcyBBcnJheTxhbnk+KS5tYXAoKHgpID0+IHguaWQpO1xyXG4gICAgdGhpcy50YWJsZUNoZWNrZWRSb3cgPSB7XHJcbiAgICAgIC4uLnRoaXMudGFibGVDaGVja2VkUm93LFxyXG4gICAgICAkY2hlY2tlZDogaWRzXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0VHJlZUNoZWNrZWQoKSB7XHJcbiAgICBpZiAodGhpcy5oYXNUcmVlTXVsdGlwbGUpIHRoaXMudHJlZUNoZWNrZWQgPSB0aGlzLnRlbXAubWFwKCh4OiBhbnkpID0+IHguaWQpO1xyXG4gIH1cclxuXHJcbiAgc3VyZSgpIHtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnRlbXA7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VNb2RhbCgpIHtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGRpYWxvZ0Nsb3NlRG9uZSgpIHtcclxuICAgIGlmICh0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgdGhpcy50cmVlQWN0aXZhdGVkSWQgPSBudWxsO1xyXG4gICAgICB0aGlzLnRlbXAgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGVtcENsb3NlKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy50ZW1wLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICBpZiAodGhpcy5oYXNUYWJsZSkge1xyXG4gICAgICBsZXQgaXQgPSB0aGlzLnRhYmxlQ29tPy50YWJsZURhdGEuZmluZCgoeCkgPT4gaXRlbS5pZCA9PT0geC5pZCk7XHJcbiAgICAgIGlmIChpdCkge1xyXG4gICAgICAgIGl0LiRjaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50YWJsZUNvbT8uYm9keUNoYW5nZSgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICBsZXQgaXQgPSB0aGlzLnRyZWVDb20/LnRyZWVEYXRhLmZpbmQoKHgpID0+IGl0ZW0uaWQgPT09IHguaWQpO1xyXG4gICAgICBpZiAoaXQpIHtcclxuICAgICAgICBpdC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgaXQuY2hhbmdlICYmIGl0LmNoYW5nZSgpO1xyXG4gICAgICAgIHRoaXMudHJlZUNvbT8uY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRhZ0Nsb3NlKGluZGV4OiBudW1iZXIgPSAtMSkge1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy52YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMudGFibGVBY3RpdmF0ZWRSb3cgPSBudWxsO1xyXG4gICAgICBpZiAoIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgIHRoaXMudHJlZUFjdGl2YXRlZElkID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRhYmxlQWN0aXZhdGVkUm93Q2hhbmdlKGRhdGE6IFhUYWJsZVJvdykge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5yb3dNdWx0aXBsZShkYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGVtcCA9IGRhdGE7XHJcbiAgICAgIHRoaXMuc3VyZSgpO1xyXG4gICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJvd011bHRpcGxlKGRhdGE6IFhUYWJsZVJvdykge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLnRlbXAgPT09ICd1bmRlZmluZWQnKSB0aGlzLnRlbXAgPSBbXTtcclxuICAgIGlmIChkYXRhLiRjaGVja2VkKSB7XHJcbiAgICAgIHRoaXMudGVtcCA9IFsuLi50aGlzLnRlbXAsIGRhdGFdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50ZW1wLnNwbGljZShcclxuICAgICAgICAodGhpcy50ZW1wIGFzIEFycmF5PGFueT4pLmZpbmRJbmRleCgoeCkgPT4geC5pZCA9PT0gZGF0YS5pZCksXHJcbiAgICAgICAgMVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdHJlZU11bHRpcGxlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLnRlbXAgPT09ICd1bmRlZmluZWQnKSB0aGlzLnRlbXAgPSBbXTtcclxuICAgIC8vIG5vZGUuJGNoZWNrZWQgPSAhbm9kZS4kY2hlY2tlZDtcclxuICAgIGlmIChub2RlLmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy50ZW1wID0gWy4uLnRoaXMudGVtcCwgbm9kZV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRlbXAuc3BsaWNlKFxyXG4gICAgICAgICh0aGlzLnRlbXAgYXMgQXJyYXk8YW55PikuZmluZEluZGV4KCh4KSA9PiB4LmlkID09PSBub2RlLmlkKSxcclxuICAgICAgICAxXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0cmVlQWN0aXZhdGVkQ2xpY2sobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBpZiAoIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIC8vIHRoaXMudHJlZU11bHRpcGxlKG5vZGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGVtcCA9IG5vZGU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNUcmVlVGFibGUgJiYgdGhpcy50cmVlVGFibGVDb25uZWN0KSB7XHJcbiAgICAgIGlmICghdGhpcy50YWJsZVF1ZXJ5KSB0aGlzLnRhYmxlUXVlcnkgPSB7fTtcclxuICAgICAgaWYgKCF0aGlzLnRhYmxlUXVlcnkuZmlsdGVyKSB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyID0gW107XHJcbiAgICAgIGxldCBmaWVsZCA9IHRoaXMudGFibGVRdWVyeS5maWx0ZXIuZmluZCgoeCkgPT4geC5maWVsZCA9PT0gdGhpcy50cmVlVGFibGVDb25uZWN0KTtcclxuICAgICAgaWYgKGZpZWxkKSB7XHJcbiAgICAgICAgZmllbGQudmFsdWUgPSBub2RlLmlkO1xyXG4gICAgICAgIGZpZWxkLm9wZXJhdGlvbiA9ICc9JztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyID0gWy4uLnRoaXMudGFibGVRdWVyeS5maWx0ZXIsIHsgZmllbGQ6IHRoaXMudHJlZVRhYmxlQ29ubmVjdCwgdmFsdWU6IG5vZGUuaWQsIG9wZXJhdGlvbjogJz0nIH1dO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudGFibGVDb20uY2hhbmdlKDEpO1xyXG4gICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IG5vZGUuaWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyZWVBY3RpdmF0ZWRDaGFuZ2UuZW1pdChub2RlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRyZWVDaGVja2JveENoYW5nZShub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIHRoaXMudHJlZU11bHRpcGxlKG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUl0ZW0oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XHJcbiAgICByZXR1cm4gaXRlbS5pZDtcclxuICB9XHJcblxyXG4gIGZvcm1Db250cm9sQ2hhbmdlcygpIHtcclxuICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIHRoaXMubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICB0aGlzLnRyZWVDb20/LnNldERhdGEoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgdGhpcy5zZWFyY2hDbGljaygpO1xyXG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnKSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoLnZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWFyY2hDbGljaygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5oYXNTZWFyY2gpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudGFibGVRdWVyeSA9IHRoaXMudGFibGVRdWVyeSB8fCBbXTtcclxuICAgIHRoaXMudGFibGVRdWVyeS5maWx0ZXIgPSB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyIHx8IFtdO1xyXG4gICAgY29uc3QgZmllbGQgPSB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyLmZpbmQoKHgpID0+IHguZmllbGQgPT09IHRoaXMuc2VhcmNoLmZpZWxkKTtcclxuXHJcbiAgICBpZiAoZmllbGQpIHtcclxuICAgICAgZmllbGQudmFsdWUgPSB0aGlzLnNlYXJjaC52YWx1ZSB8fCAnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFibGVRdWVyeS5maWx0ZXIgPSBbLi4udGhpcy50YWJsZVF1ZXJ5Py5maWx0ZXIsIHRoaXMuc2VhcmNoXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRhYmxlQ29tLmNoYW5nZSgxKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICNmaW5kXHJcbiAgY2xhc3M9XCJ4LWZpbmRcIlxyXG4gIFtjbGFzcy54LWZsZXhdPVwianVzdGlmeSB8fCBhbGlnbiB8fCBkaXJlY3Rpb25cIlxyXG4gIFtjbGFzcy54LWNoZWNrZWRdPVwidmFsdWVcIlxyXG4gIFtjbGFzcy54LWRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICBbY2xhc3MueC1yZXF1aXJlZF09XCJyZXF1aXJlZElzRW1wdHlcIlxyXG4gIFtjbGFzcy54LWludmFsaWRdPVwiaW52YWxpZFwiXHJcbiAgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIlxyXG4+XHJcbiAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBbc3R5bGUud2lkdGhdPVwibGFiZWxXaWR0aFwiIFtuZ0NsYXNzXT1cImxhYmVsTWFwXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWZpbmQtcm93XCI+XHJcbiAgICA8eC1idXR0b24gI2J1dHRvbkNvbSBpY29uPVwiZnRvLXNlYXJjaFwiIFtvbmx5SWNvbl09XCIhYm9yZGVyZWRcIiBbc2l6ZV09XCJzaXplXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGNsaWNrKT1cInNob3dNb2RhbCgpXCI+PC94LWJ1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWZpbmQtdGFnc1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlwbGU7IGVsc2Ugc2luZ2xlVHBsXCI+XHJcbiAgICAgICAgPHgtdGFnXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiB2YWx1ZTsgaW5kZXggYXMgaTsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxyXG4gICAgICAgICAgY2xvc2FibGVcclxuICAgICAgICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgICAgICAgW2JvcmRlcmVkXT1cImJvcmRlcmVkXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAoY2xvc2UpPVwidGFnQ2xvc2UoaSlcIlxyXG4gICAgICAgICAgPnt7IGl0ZW1bY29sdW1uTGFiZWxdIH19PC94LXRhZ1xyXG4gICAgICAgID5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2luZ2xlVHBsPlxyXG4gICAgICAgIDx4LXRhZyAqbmdJZj1cInZhbHVlXCIgY2xvc2FibGUgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW2JvcmRlcmVkXT1cImJvcmRlcmVkXCIgW3NpemVdPVwic2l6ZVwiIChjbG9zZSk9XCJ0YWdDbG9zZSgpXCI+e3tcclxuICAgICAgICAgIHZhbHVlW2NvbHVtbkxhYmVsXVxyXG4gICAgICAgIH19PC94LXRhZz5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjx4LWRpYWxvZ1xyXG4gICNkaWFsb2dDb21cclxuICBbdGl0bGVdPVwiZGlhbG9nVGl0bGVcIlxyXG4gIFt3aWR0aF09XCJkaWFsb2dXaWR0aFwiXHJcbiAgW2hlaWdodF09XCJkaWFsb2dIZWlnaHRcIlxyXG4gIFtidXR0b25zQ2VudGVyXT1cImRpYWxvZ0J1dHRvbnNDZW50ZXJcIlxyXG4gIFsodmlzaWJsZSldPVwiZGlhbG9nVmlzaWJsZVwiXHJcbiAgKHZpc2libGVDaGFuZ2UpPVwiZGlhbG9nVmlzaWJsZUNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gIChjbG9zZURvbmUpPVwiZGlhbG9nQ2xvc2VEb25lKClcIlxyXG4gIChjYW5jZWwpPVwiY2xvc2VNb2RhbCgpXCJcclxuICAoY2xvc2UpPVwiY2xvc2VNb2RhbCgpXCJcclxuICAoY29uZmlybSk9XCJzdXJlKClcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2dcIiBbY2xhc3MueC1maW5kLWRpYWxvZy10cmVlLXRhYmxlXT1cImhhc1RhYmxlICYmIGhhc1RyZWVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWZpbmQtZGlhbG9nLXRyZWVcIiAqbmdJZj1cImhhc1RyZWVcIiAjdHJlZVJlZiBbc3R5bGUuaGVpZ2h0LnB4XT1cImhhc1RyZWVUYWJsZSAmJiBtdWx0aXBsZSAmJiBoZWlnaHRcIj5cclxuICAgICAgPHgtdHJlZVxyXG4gICAgICAgICN0cmVlQ29tXHJcbiAgICAgICAgW2RhdGFdPVwidHJlZURhdGFcIlxyXG4gICAgICAgIG5vZGVIZWlnaHQ9XCIxLjhcIlxyXG4gICAgICAgIFsobWFudWFsKV09XCJkaWFsb2dWaXNpYmxlXCJcclxuICAgICAgICBbYWN0aXZhdGVkSWRdPVwidHJlZUFjdGl2YXRlZElkXCJcclxuICAgICAgICBbZXhwYW5kZWRMZXZlbF09XCJ0cmVlRXhwYW5kZWRMZXZlbFwiXHJcbiAgICAgICAgKGFjdGl2YXRlZENoYW5nZSk9XCJ0cmVlQWN0aXZhdGVkQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgW2NoZWNrYm94XT1cImhhc1RyZWVNdWx0aXBsZVwiXHJcbiAgICAgICAgW2NoZWNrZWRdPVwidHJlZUNoZWNrZWRcIlxyXG4gICAgICAgIChjaGVja2JveENoYW5nZSk9XCJ0cmVlQ2hlY2tib3hDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2xldmVsQ2hlY2tdPVwiIWhhc1RyZWVNdWx0aXBsZVwiXHJcbiAgICAgID48L3gtdHJlZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2ctdGFibGVcIiAqbmdJZj1cImhhc1RhYmxlXCIgI3RhYmxlUmVmPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1maW5kLXNlYXJjaFwiICpuZ0lmPVwiaGFzU2VhcmNoXCI+XHJcbiAgICAgICAgPHgtaW5wdXQgW2xhYmVsXT1cInNlYXJjaC5sYWJlbFwiIGRpcmVjdGlvbj1cInJvd1wiICh4S2V5ZG93bik9XCJzZWFyY2hLZXlEb3duKCRldmVudClcIiBbKG5nTW9kZWwpXT1cInNlYXJjaC52YWx1ZVwiPjwveC1pbnB1dD5cclxuICAgICAgICA8eC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBwbGFpbiAoY2xpY2spPVwic2VhcmNoQ2xpY2soKVwiPnt7IHNlYXJjaC5idXR0b24gfHwgJ+afpeivoicgfX08L3gtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHgtdGFibGVcclxuICAgICAgICAjdGFibGVDb21cclxuICAgICAgICBbZGF0YV09XCJ0YWJsZURhdGFcIlxyXG4gICAgICAgIFtjb2x1bW5zXT1cInRhYmxlQ29sdW1uc1wiXHJcbiAgICAgICAgWyhtYW51YWwpXT1cImRpYWxvZ1Zpc2libGVcIlxyXG4gICAgICAgIFsoaW5kZXgpXT1cInRhYmxlSW5kZXhcIlxyXG4gICAgICAgIFsoc2l6ZSldPVwidGFibGVTaXplXCJcclxuICAgICAgICBbcXVlcnldPVwidGFibGVRdWVyeVwiXHJcbiAgICAgICAgW3RvdGFsXT1cInRhYmxlVG90YWxcIlxyXG4gICAgICAgIFthbGxvd1NlbGVjdFJvd109XCIhbXVsdGlwbGVcIlxyXG4gICAgICAgIFtjaGVja2VkUm93XT1cInRhYmxlQ2hlY2tlZFJvd1wiXHJcbiAgICAgICAgW2xvYWRpbmddPVwidGFibGVMb2FkaW5nXCJcclxuICAgICAgICAoaW5kZXhDaGFuZ2UpPVwidGFibGVJbmRleENoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChzb3J0Q2hhbmdlKT1cInRhYmxlU29ydENoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIFsoYWN0aXZhdGVkUm93KV09XCJ0YWJsZUFjdGl2YXRlZFJvd1wiXHJcbiAgICAgICAgKGFjdGl2YXRlZFJvd0NoYW5nZSk9XCJ0YWJsZUFjdGl2YXRlZFJvd0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbcm93SGVpZ2h0XT1cInRhYmxlUm93SGVpZ2h0XCJcclxuICAgICAgICBbYm9keUhlaWdodF09XCJ0YWJsZUJvZHlIZWlnaHRcIlxyXG4gICAgICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInRhYmxlVmlydHVhbFNjcm9sbFwiXHJcbiAgICAgICAgW21pbkJ1ZmZlclB4XT1cInRhYmxlTWluQnVmZmVyUHhcIlxyXG4gICAgICAgIFttYXhCdWZmZXJQeF09XCJ0YWJsZU1heEJ1ZmZlclB4XCJcclxuICAgICAgICBbYWRhcHRpb25IZWlnaHRdPVwidGFibGVBZGFwdGlvbkhlaWdodFwiXHJcbiAgICAgICAgW2RvY1BlcmNlbnRdPVwidGFibGVEb2NQZXJjZW50XCJcclxuICAgICAgPjwveC10YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIm11bHRpcGxlXCIgY2xhc3M9XCJ4LWZpbmQtZGlhbG9nLWNoZWNrZWRcIiBbY2xhc3MueC1maW5kLWVtcHR5XT1cImdldEVtcHR5XCIgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRcIj5cclxuICAgICAgPHgtZW1wdHkgKm5nSWY9XCJnZXRFbXB0eVwiIGNvbnRlbnQ9XCLor7fpgInmi6nmlbDmja5cIj48L3gtZW1wdHk+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWZpbmQtZGlhbG9nLXRhZ3NcIj5cclxuICAgICAgICA8eC10YWcgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGVtcDsgaW5kZXggYXMgaTsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIiBjbG9zYWJsZSAoY2xvc2UpPVwidGVtcENsb3NlKGksIGl0ZW0pXCI+XHJcbiAgICAgICAgICA8c3Bhbj57eyBpdGVtW2NvbHVtbkxhYmVsXSB9fTwvc3Bhbj5cclxuICAgICAgICA8L3gtdGFnPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3gtZGlhbG9nPlxyXG5cclxuPG5nLXRlbXBsYXRlICN0cmVlTGFiZWxUcGwgbGV0LW5vZGU9XCIkbm9kZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWZpbmQtZGlhbG9nLXRyZWUtbm9kZVwiPlxyXG4gICAgPHNwYW4+e3sgbm9kZS5sYWJlbCB9fSA8L3NwYW4+XHJcbiAgICA8eC1pY29uIHR5cGU9XCJmdG8tY2hlY2tcIiAqbmdJZj1cIm5vZGUuJGNoZWNrZWRcIj48L3gtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
359
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9maW5kL2ZpbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZmluZC9maW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUl2QixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFrQixRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUkzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVV2RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGFBQWE7SUFvRS9DLFlBQW1CLFFBQW1CLEVBQVUsR0FBc0IsRUFBUyxhQUE2QjtRQUMxRyxLQUFLLEVBQUUsQ0FBQztRQURTLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQVY1RyxXQUFNLEdBQUcsR0FBRyxDQUFDO1FBRUwsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFVekMsQ0FBQztJQTlERCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUNXLFFBQVEsQ0FBQyxLQUFp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QUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFLENBQUMsY0FBYyxnQkFBZ0IsQ0FBQztpQkFDNUM7NkpBRXNDLElBQUk7c0JBQXhDLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDWCxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ0MsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNDLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDSSxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBT1gsUUFBUTtzQkFEbEIsU0FBUzt1QkFBQyxVQUFVO2dCQWFWLE9BQU87c0JBRGpCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYRmluZFByb3BlcnR5LCBYRmluZFByZWZpeCB9IGZyb20gJy4vZmluZC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhDbGVhckNsYXNzLCBYUmVzaXplLCBYSXNVbmRlZmluZWQsIFhJc0NoYW5nZSwgWENvbmZpZ1NlcnZpY2UsIFhJc0VtcHR5IH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFhUYWJsZUNvbXBvbmVudCwgWFRhYmxlUm93IH0gZnJvbSAnQG5nLW5lc3QvdWkvdGFibGUnO1xyXG5pbXBvcnQgeyBYRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvZGlhbG9nJztcclxuaW1wb3J0IHsgWEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFhUcmVlTm9kZSwgWFRyZWVDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS90cmVlJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hGaW5kUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbmQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1hWYWx1ZUFjY2Vzc29yKFhGaW5kQ29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhGaW5kQ29tcG9uZW50IGV4dGVuZHMgWEZpbmRQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnZmluZCcsIHsgc3RhdGljOiB0cnVlIH0pIGZpbmQhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ0NvbScpIGRpYWxvZ0NvbSE6IFhEaWFsb2dDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgndGFibGVDb20nKSB0YWJsZUNvbSE6IFhUYWJsZUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCd0cmVlQ29tJykgdHJlZUNvbSE6IFhUcmVlQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2J1dHRvbkNvbScpIGJ1dHRvbkNvbSE6IFhCdXR0b25Db21wb25lbnQ7XHJcblxyXG4gIHByaXZhdGUgX3RhYmxlUmVmITogRWxlbWVudFJlZjtcclxuICBwdWJsaWMgZ2V0IHRhYmxlUmVmKCk6IEVsZW1lbnRSZWYge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlUmVmO1xyXG4gIH1cclxuICBAVmlld0NoaWxkKCd0YWJsZVJlZicpXHJcbiAgcHVibGljIHNldCB0YWJsZVJlZih2YWx1ZTogRWxlbWVudFJlZikge1xyXG4gICAgdGhpcy5fdGFibGVSZWYgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSAmJiB0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuc2V0U3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90cmVlUmVmITogRWxlbWVudFJlZjtcclxuICBwdWJsaWMgZ2V0IHRyZWVSZWYoKTogRWxlbWVudFJlZiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJlZVJlZjtcclxuICB9XHJcbiAgQFZpZXdDaGlsZCgndHJlZVJlZicpXHJcbiAgcHVibGljIHNldCB0cmVlUmVmKHZhbHVlOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLl90cmVlUmVmID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgJiYgdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLnNldFN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGdldEVtcHR5KCkge1xyXG4gICAgcmV0dXJuICF0aGlzLnRlbXAgfHwgdGhpcy50ZW1wLmxlbmd0aCA9PT0gMDtcclxuICB9XHJcblxyXG4gIGdldCBoYXNUYWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlQ29sdW1ucz8ubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIGdldCBoYXNUcmVlKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgKEFycmF5LmlzQXJyYXkodGhpcy50cmVlRGF0YSkgJiYgdGhpcy50cmVlRGF0YS5sZW5ndGggPiAwKSB8fCB0aGlzLnRyZWVEYXRhIGluc3RhbmNlb2YgRnVuY3Rpb24gfHwgdGhpcy50cmVlRGF0YSBpbnN0YW5jZW9mIE9ic2VydmFibGVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzVHJlZVRhYmxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFzVGFibGUgJiYgdGhpcy5oYXNUcmVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1RyZWVNdWx0aXBsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmhhc1RyZWUgJiYgIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMubXVsdGlwbGU7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzU2VhcmNoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoICYmIHRoaXMuaGFzVGFibGU7XHJcbiAgfVxyXG5cclxuICB0ZW1wOiBhbnk7XHJcbiAgaGVpZ2h0ID0gMTAwO1xyXG5cclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyITogUmVzaXplT2JzZXJ2ZXI7XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoc2ltcGxlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyB0YWJsZURhdGEsIGxhYmVsQWxpZ24sIHNpemUgfSA9IHNpbXBsZXM7XHJcbiAgICBYSXNDaGFuZ2UodGFibGVEYXRhKSAmJiB0aGlzLnNldFRhYmxlQ2hlY2tlZFJvdygpO1xyXG4gICAgWElzQ2hhbmdlKGxhYmVsQWxpZ24sIHNpemUpICYmIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRGbGV4KHRoaXMuZmluZC5uYXRpdmVFbGVtZW50LCB0aGlzLnJlbmRlcmVyLCB0aGlzLmp1c3RpZnksIHRoaXMuYWxpZ24sIHRoaXMuZGlyZWN0aW9uKTtcclxuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICAgIHRoaXMuc2V0TXVsdGlwbGUoKTtcclxuICAgIHRoaXMuc2V0V2lkdGgoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnZhbHVlKSB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBzZXRDbGFzc01hcCgpIHtcclxuICAgIFhDbGVhckNsYXNzKHRoaXMubGFiZWxNYXAsIHRoaXMuY2xhc3NNYXApO1xyXG4gICAgdGhpcy5sYWJlbE1hcFtgeC10ZXh0LWFsaWduLSR7dGhpcy5sYWJlbEFsaWdufWBdID0gdGhpcy5sYWJlbEFsaWduID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy5jbGFzc01hcFtgeC1maW5kLSR7dGhpcy5zaXplfWBdID0gIVhJc0VtcHR5KHRoaXMuc2l6ZSk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJzY3JpYmUoKSB7XHJcbiAgICBsZXQgcmVzaXplUmVmOiBFbGVtZW50W10gPSBbXTtcclxuICAgIGlmICh0aGlzLmhhc1RhYmxlKSB7XHJcbiAgICAgIHJlc2l6ZVJlZiA9IFt0aGlzLnRhYmxlUmVmPy5uYXRpdmVFbGVtZW50XTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmhhc1RyZWUgJiYgIXRoaXMuaGFzVHJlZVRhYmxlKSB7XHJcbiAgICAgIHJlc2l6ZVJlZi5wdXNoKHRoaXMudHJlZVJlZj8ubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgWFJlc2l6ZSguLi5yZXNpemVSZWYpXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgzMCksIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIgPSB4LnJlc2l6ZU9ic2VydmVyO1xyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlUmVmKSB7XHJcbiAgICAgICAgICB0aGlzLmhlaWdodCA9IHRoaXMudGFibGVSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy50cmVlUmVmPy5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldE11bHRpcGxlKCkge1xyXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5oYXNUYWJsZSkge1xyXG4gICAgICBpZiAoIXRoaXMudGFibGVDb2x1bW5zLmZpbmQoKHgpID0+IHgucm93Q2hlY2tlZCkpIHtcclxuICAgICAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IFt7IGlkOiAnJGNoZWNrZWQnLCBsYWJlbDogJ+mAieaLqScsIHJvd0NoZWNrZWQ6IHRydWUsIHR5cGU6ICdjaGVja2JveCcsIHdpZHRoOiA2MCB9LCAuLi50aGlzLnRhYmxlQ29sdW1uc107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFdpZHRoKCkge1xyXG4gICAgaWYgKFhJc1VuZGVmaW5lZCh0aGlzLmRpYWxvZ1dpZHRoKSkge1xyXG4gICAgICBpZiAoKHRoaXMuaGFzVGFibGUgJiYgdGhpcy5oYXNUcmVlKSB8fCB0aGlzLmhhc1RhYmxlKSB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dXaWR0aCA9ICc1MHJlbSc7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNUcmVlICYmIHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1dpZHRoID0gJzMwcmVtJztcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1dpZHRoID0gJzIwcmVtJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2hvd01vZGFsKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7XHJcbiAgICB0aGlzLmRpYWxvZ1Zpc2libGVDaGFuZ2UuZW1pdCh0aGlzLmRpYWxvZ1Zpc2libGUpO1xyXG4gICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICB0aGlzLnRlbXAgPSAodGhpcy52YWx1ZSBhcyBBcnJheTxhbnk+KS5tYXAoKHgpID0+IE9iamVjdC5hc3NpZ24oe30sIHgpKTtcclxuICAgICAgICB0aGlzLnNldFRhYmxlQ2hlY2tlZFJvdygpO1xyXG4gICAgICAgIHRoaXMuc2V0VHJlZUNoZWNrZWQoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRhYmxlQWN0aXZhdGVkUm93ID0gdGhpcy52YWx1ZTtcclxuICAgICAgICBpZiAoIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgICAgdGhpcy50cmVlQWN0aXZhdGVkSWQgPSB0aGlzLnZhbHVlLmlkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50ZW1wID0gdGhpcy5tdWx0aXBsZSA/IFtdIDogbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmhhc1RhYmxlKSB7XHJcbiAgICAgIHRoaXMudGFibGVDb20udmlydHVhbEJvZHk/LnNjcm9sbFRvSW5kZXgoMCk7XHJcbiAgICAgIHRoaXMudGFibGVDb20udmlydHVhbEJvZHk/LmNoZWNrVmlld3BvcnRTaXplKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRUYWJsZUNoZWNrZWRSb3coKSB7XHJcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUgfHwgWElzVW5kZWZpbmVkKHRoaXMudGVtcCkpIHJldHVybjtcclxuICAgIGNvbnN0IGlkcyA9ICh0aGlzLnRlbXAgYXMgQXJyYXk8YW55PikubWFwKCh4KSA9PiB4LmlkKTtcclxuICAgIHRoaXMudGFibGVDaGVja2VkUm93ID0ge1xyXG4gICAgICAuLi50aGlzLnRhYmxlQ2hlY2tlZFJvdyxcclxuICAgICAgJGNoZWNrZWQ6IGlkc1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHNldFRyZWVDaGVja2VkKCkge1xyXG4gICAgaWYgKHRoaXMuaGFzVHJlZU11bHRpcGxlKSB0aGlzLnRyZWVDaGVja2VkID0gdGhpcy50ZW1wLm1hcCgoeDogYW55KSA9PiB4LmlkKTtcclxuICB9XHJcblxyXG4gIHN1cmUoKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy50ZW1wO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlTW9kYWwoKSB7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBkaWFsb2dDbG9zZURvbmUoKSB7XHJcbiAgICBpZiAodGhpcy5oYXNUcmVlKSB7XHJcbiAgICAgIHRoaXMudHJlZUFjdGl2YXRlZElkID0gbnVsbDtcclxuICAgICAgdGhpcy50ZW1wID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRlbXBDbG9zZShpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcclxuICAgIHRoaXMudGVtcC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgaWYgKHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgbGV0IGl0ID0gdGhpcy50YWJsZUNvbT8udGFibGVEYXRhLmZpbmQoKHgpID0+IGl0ZW0uaWQgPT09IHguaWQpO1xyXG4gICAgICBpZiAoaXQpIHtcclxuICAgICAgICBpdFsnJGNoZWNrZWQnXSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGFibGVDb20/LmJvZHlDaGFuZ2UoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgbGV0IGl0ID0gdGhpcy50cmVlQ29tPy50cmVlRGF0YS5maW5kKCh4KSA9PiBpdGVtLmlkID09PSB4LmlkKTtcclxuICAgICAgaWYgKGl0KSB7XHJcbiAgICAgICAgaXQuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgIGl0LmNoYW5nZSAmJiBpdC5jaGFuZ2UoKTtcclxuICAgICAgICB0aGlzLnRyZWVDb20/LmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0YWdDbG9zZShpbmRleDogbnVtYmVyID0gLTEpIHtcclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIHRoaXMudmFsdWUuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLnRhYmxlQWN0aXZhdGVkUm93ID0gbnVsbDtcclxuICAgICAgaWYgKCF0aGlzLmhhc1RyZWVUYWJsZSAmJiB0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0YWJsZUFjdGl2YXRlZFJvd0NoYW5nZShkYXRhOiBYVGFibGVSb3cpIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMucm93TXVsdGlwbGUoZGF0YSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRlbXAgPSBkYXRhO1xyXG4gICAgICB0aGlzLnN1cmUoKTtcclxuICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByb3dNdWx0aXBsZShkYXRhOiBYVGFibGVSb3cpIHtcclxuICAgIGlmICh0eXBlb2YgdGhpcy50ZW1wID09PSAndW5kZWZpbmVkJykgdGhpcy50ZW1wID0gW107XHJcbiAgICBpZiAoZGF0YVsnJGNoZWNrZWQnXSkge1xyXG4gICAgICB0aGlzLnRlbXAgPSBbLi4udGhpcy50ZW1wLCBkYXRhXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGVtcC5zcGxpY2UoXHJcbiAgICAgICAgKHRoaXMudGVtcCBhcyBBcnJheTxhbnk+KS5maW5kSW5kZXgoKHgpID0+IHguaWQgPT09IGRhdGEuaWQpLFxyXG4gICAgICAgIDFcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRyZWVNdWx0aXBsZShub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIGlmICh0eXBlb2YgdGhpcy50ZW1wID09PSAndW5kZWZpbmVkJykgdGhpcy50ZW1wID0gW107XHJcbiAgICAvLyBub2RlLiRjaGVja2VkID0gIW5vZGUuJGNoZWNrZWQ7XHJcbiAgICBpZiAobm9kZS5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMudGVtcCA9IFsuLi50aGlzLnRlbXAsIG5vZGVdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50ZW1wLnNwbGljZShcclxuICAgICAgICAodGhpcy50ZW1wIGFzIEFycmF5PGFueT4pLmZpbmRJbmRleCgoeCkgPT4geC5pZCA9PT0gbm9kZS5pZCksXHJcbiAgICAgICAgMVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdHJlZUFjdGl2YXRlZENsaWNrKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgaWYgKCF0aGlzLmhhc1RyZWVUYWJsZSAmJiB0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAvLyB0aGlzLnRyZWVNdWx0aXBsZShub2RlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRlbXAgPSBub2RlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMudHJlZVRhYmxlQ29ubmVjdCkge1xyXG4gICAgICBpZiAoIXRoaXMudGFibGVRdWVyeSkgdGhpcy50YWJsZVF1ZXJ5ID0ge307XHJcbiAgICAgIGlmICghdGhpcy50YWJsZVF1ZXJ5LmZpbHRlcikgdGhpcy50YWJsZVF1ZXJ5LmZpbHRlciA9IFtdO1xyXG4gICAgICBsZXQgZmllbGQgPSB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyLmZpbmQoKHgpID0+IHguZmllbGQgPT09IHRoaXMudHJlZVRhYmxlQ29ubmVjdCk7XHJcbiAgICAgIGlmIChmaWVsZCkge1xyXG4gICAgICAgIGZpZWxkLnZhbHVlID0gbm9kZS5pZDtcclxuICAgICAgICBmaWVsZC5vcGVyYXRpb24gPSAnPSc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50YWJsZVF1ZXJ5LmZpbHRlciA9IFsuLi50aGlzLnRhYmxlUXVlcnkuZmlsdGVyLCB7IGZpZWxkOiB0aGlzLnRyZWVUYWJsZUNvbm5lY3QsIHZhbHVlOiBub2RlLmlkLCBvcGVyYXRpb246ICc9JyB9XTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRhYmxlQ29tLmNoYW5nZSgxKTtcclxuICAgICAgdGhpcy50cmVlQWN0aXZhdGVkSWQgPSBub2RlLmlkO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmVlQWN0aXZhdGVkQ2hhbmdlLmVtaXQobm9kZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0cmVlQ2hlY2tib3hDaGFuZ2Uobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICB0aGlzLnRyZWVNdWx0aXBsZShub2RlKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxuXHJcbiAgZm9ybUNvbnRyb2xDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5uZ0FmdGVyVmlld0luaXQoKTtcclxuICAgIHRoaXMudHJlZUNvbT8uc2V0RGF0YSgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICB0aGlzLnNlYXJjaENsaWNrKCk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScpIHtcclxuICAgICAgdGhpcy5zZWFyY2gudmFsdWUgPSAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlYXJjaENsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmhhc1NlYXJjaCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50YWJsZVF1ZXJ5ID0gdGhpcy50YWJsZVF1ZXJ5IHx8IFtdO1xyXG4gICAgdGhpcy50YWJsZVF1ZXJ5LmZpbHRlciA9IHRoaXMudGFibGVRdWVyeS5maWx0ZXIgfHwgW107XHJcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMudGFibGVRdWVyeS5maWx0ZXIuZmluZCgoeCkgPT4geC5maWVsZCA9PT0gdGhpcy5zZWFyY2guZmllbGQpO1xyXG5cclxuICAgIGlmIChmaWVsZCkge1xyXG4gICAgICBmaWVsZC52YWx1ZSA9IHRoaXMuc2VhcmNoLnZhbHVlIHx8ICcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJsZVF1ZXJ5LmZpbHRlciA9IFsuLi50aGlzLnRhYmxlUXVlcnk/LmZpbHRlciwgdGhpcy5zZWFyY2hdO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudGFibGVDb20uY2hhbmdlKDEpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI2ZpbmRcclxuICBjbGFzcz1cIngtZmluZFwiXHJcbiAgW2NsYXNzLngtZmxleF09XCJqdXN0aWZ5IHx8IGFsaWduIHx8IGRpcmVjdGlvblwiXHJcbiAgW2NsYXNzLngtY2hlY2tlZF09XCJ2YWx1ZVwiXHJcbiAgW2NsYXNzLngtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtjbGFzcy54LXJlcXVpcmVkXT1cInJlcXVpcmVkSXNFbXB0eVwiXHJcbiAgW2NsYXNzLngtaW52YWxpZF09XCJpbnZhbGlkXCJcclxuICBbbmdDbGFzc109XCJjbGFzc01hcFwiXHJcbj5cclxuICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIFtzdHlsZS53aWR0aF09XCJsYWJlbFdpZHRoXCIgW25nQ2xhc3NdPVwibGFiZWxNYXBcIj57eyBsYWJlbCB9fTwvbGFiZWw+XHJcbiAgPGRpdiBjbGFzcz1cIngtZmluZC1yb3dcIj5cclxuICAgIDx4LWJ1dHRvbiAjYnV0dG9uQ29tIGljb249XCJmdG8tc2VhcmNoXCIgW29ubHlJY29uXT1cIiFib3JkZXJlZFwiIFtzaXplXT1cInNpemVcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoY2xpY2spPVwic2hvd01vZGFsKClcIj48L3gtYnV0dG9uPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZmluZC10YWdzXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aXBsZTsgZWxzZSBzaW5nbGVUcGxcIj5cclxuICAgICAgICA8eC10YWdcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHZhbHVlOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiXHJcbiAgICAgICAgICBjbG9zYWJsZVxyXG4gICAgICAgICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICAgICAgICBbYm9yZGVyZWRdPVwiYm9yZGVyZWRcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgIChjbG9zZSk9XCJ0YWdDbG9zZShpKVwiXHJcbiAgICAgICAgICA+e3sgaXRlbVtjb2x1bW5MYWJlbF0gfX08L3gtdGFnXHJcbiAgICAgICAgPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNzaW5nbGVUcGw+XHJcbiAgICAgICAgPHgtdGFnICpuZ0lmPVwidmFsdWVcIiBjbG9zYWJsZSBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbYm9yZGVyZWRdPVwiYm9yZGVyZWRcIiBbc2l6ZV09XCJzaXplXCIgKGNsb3NlKT1cInRhZ0Nsb3NlKClcIj57e1xyXG4gICAgICAgICAgdmFsdWVbY29sdW1uTGFiZWxdXHJcbiAgICAgICAgfX08L3gtdGFnPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHgtZGlhbG9nXHJcbiAgI2RpYWxvZ0NvbVxyXG4gIFt0aXRsZV09XCJkaWFsb2dUaXRsZVwiXHJcbiAgW3dpZHRoXT1cImRpYWxvZ1dpZHRoXCJcclxuICBbaGVpZ2h0XT1cImRpYWxvZ0hlaWdodFwiXHJcbiAgW2J1dHRvbnNDZW50ZXJdPVwiZGlhbG9nQnV0dG9uc0NlbnRlclwiXHJcbiAgWyh2aXNpYmxlKV09XCJkaWFsb2dWaXNpYmxlXCJcclxuICAodmlzaWJsZUNoYW5nZSk9XCJkaWFsb2dWaXNpYmxlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgKGNsb3NlRG9uZSk9XCJkaWFsb2dDbG9zZURvbmUoKVwiXHJcbiAgKGNhbmNlbCk9XCJjbG9zZU1vZGFsKClcIlxyXG4gIChjbG9zZSk9XCJjbG9zZU1vZGFsKClcIlxyXG4gIChjb25maXJtKT1cInN1cmUoKVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwieC1maW5kLWRpYWxvZ1wiIFtjbGFzcy54LWZpbmQtZGlhbG9nLXRyZWUtdGFibGVdPVwiaGFzVGFibGUgJiYgaGFzVHJlZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2ctdHJlZVwiICpuZ0lmPVwiaGFzVHJlZVwiICN0cmVlUmVmIFtzdHlsZS5oZWlnaHQucHhdPVwiaGFzVHJlZVRhYmxlICYmIG11bHRpcGxlICYmIGhlaWdodFwiPlxyXG4gICAgICA8eC10cmVlXHJcbiAgICAgICAgI3RyZWVDb21cclxuICAgICAgICBbZGF0YV09XCJ0cmVlRGF0YVwiXHJcbiAgICAgICAgbm9kZUhlaWdodD1cIjEuOFwiXHJcbiAgICAgICAgWyhtYW51YWwpXT1cImRpYWxvZ1Zpc2libGVcIlxyXG4gICAgICAgIFthY3RpdmF0ZWRJZF09XCJ0cmVlQWN0aXZhdGVkSWRcIlxyXG4gICAgICAgIFtleHBhbmRlZExldmVsXT1cInRyZWVFeHBhbmRlZExldmVsXCJcclxuICAgICAgICAoYWN0aXZhdGVkQ2hhbmdlKT1cInRyZWVBY3RpdmF0ZWRDbGljaygkZXZlbnQpXCJcclxuICAgICAgICBbY2hlY2tib3hdPVwiaGFzVHJlZU11bHRpcGxlXCJcclxuICAgICAgICBbY2hlY2tlZF09XCJ0cmVlQ2hlY2tlZFwiXHJcbiAgICAgICAgKGNoZWNrYm94Q2hhbmdlKT1cInRyZWVDaGVja2JveENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbbGV2ZWxDaGVja109XCIhaGFzVHJlZU11bHRpcGxlXCJcclxuICAgICAgPjwveC10cmVlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1maW5kLWRpYWxvZy10YWJsZVwiICpuZ0lmPVwiaGFzVGFibGVcIiAjdGFibGVSZWY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWZpbmQtc2VhcmNoXCIgKm5nSWY9XCJoYXNTZWFyY2hcIj5cclxuICAgICAgICA8eC1pbnB1dCBbbGFiZWxdPVwic2VhcmNoLmxhYmVsXCIgZGlyZWN0aW9uPVwicm93XCIgKHhLZXlkb3duKT1cInNlYXJjaEtleURvd24oJGV2ZW50KVwiIFsobmdNb2RlbCldPVwic2VhcmNoLnZhbHVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgIDx4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIHBsYWluIChjbGljayk9XCJzZWFyY2hDbGljaygpXCI+e3sgc2VhcmNoLmJ1dHRvbiB8fCAn5p+l6K+iJyB9fTwveC1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8eC10YWJsZVxyXG4gICAgICAgICN0YWJsZUNvbVxyXG4gICAgICAgIFtkYXRhXT1cInRhYmxlRGF0YVwiXHJcbiAgICAgICAgW2NvbHVtbnNdPVwidGFibGVDb2x1bW5zXCJcclxuICAgICAgICBbKG1hbnVhbCldPVwiZGlhbG9nVmlzaWJsZVwiXHJcbiAgICAgICAgWyhpbmRleCldPVwidGFibGVJbmRleFwiXHJcbiAgICAgICAgWyhzaXplKV09XCJ0YWJsZVNpemVcIlxyXG4gICAgICAgIFtxdWVyeV09XCJ0YWJsZVF1ZXJ5XCJcclxuICAgICAgICBbdG90YWxdPVwidGFibGVUb3RhbFwiXHJcbiAgICAgICAgW2FsbG93U2VsZWN0Um93XT1cIiFtdWx0aXBsZVwiXHJcbiAgICAgICAgW2NoZWNrZWRSb3ddPVwidGFibGVDaGVja2VkUm93XCJcclxuICAgICAgICBbbG9hZGluZ109XCJ0YWJsZUxvYWRpbmdcIlxyXG4gICAgICAgIChpbmRleENoYW5nZSk9XCJ0YWJsZUluZGV4Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNvcnRDaGFuZ2UpPVwidGFibGVTb3J0Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgWyhhY3RpdmF0ZWRSb3cpXT1cInRhYmxlQWN0aXZhdGVkUm93XCJcclxuICAgICAgICAoYWN0aXZhdGVkUm93Q2hhbmdlKT1cInRhYmxlQWN0aXZhdGVkUm93Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtyb3dIZWlnaHRdPVwidGFibGVSb3dIZWlnaHRcIlxyXG4gICAgICAgIFtib2R5SGVpZ2h0XT1cInRhYmxlQm9keUhlaWdodFwiXHJcbiAgICAgICAgW3ZpcnR1YWxTY3JvbGxdPVwidGFibGVWaXJ0dWFsU2Nyb2xsXCJcclxuICAgICAgICBbbWluQnVmZmVyUHhdPVwidGFibGVNaW5CdWZmZXJQeFwiXHJcbiAgICAgICAgW21heEJ1ZmZlclB4XT1cInRhYmxlTWF4QnVmZmVyUHhcIlxyXG4gICAgICAgIFthZGFwdGlvbkhlaWdodF09XCJ0YWJsZUFkYXB0aW9uSGVpZ2h0XCJcclxuICAgICAgICBbZG9jUGVyY2VudF09XCJ0YWJsZURvY1BlcmNlbnRcIlxyXG4gICAgICA+PC94LXRhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwibXVsdGlwbGVcIiBjbGFzcz1cIngtZmluZC1kaWFsb2ctY2hlY2tlZFwiIFtjbGFzcy54LWZpbmQtZW1wdHldPVwiZ2V0RW1wdHlcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFwiPlxyXG4gICAgICA8eC1lbXB0eSAqbmdJZj1cImdldEVtcHR5XCIgY29udGVudD1cIuivt+mAieaLqeaVsOaNrlwiPjwveC1lbXB0eT5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2ctdGFnc1wiPlxyXG4gICAgICAgIDx4LXRhZyAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0ZW1wOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiIGNsb3NhYmxlIChjbG9zZSk9XCJ0ZW1wQ2xvc2UoaSwgaXRlbSlcIj5cclxuICAgICAgICAgIDxzcGFuPnt7IGl0ZW1bY29sdW1uTGFiZWxdIH19PC9zcGFuPlxyXG4gICAgICAgIDwveC10YWc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwveC1kaWFsb2c+XHJcblxyXG48bmctdGVtcGxhdGUgI3RyZWVMYWJlbFRwbCBsZXQtbm9kZT1cIiRub2RlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2ctdHJlZS1ub2RlXCI+XHJcbiAgICA8c3Bhbj57eyBub2RlLmxhYmVsIH19IDwvc3Bhbj5cclxuICAgIDx4LWljb24gdHlwZT1cImZ0by1jaGVja1wiICpuZ0lmPVwibm9kZS4kY2hlY2tlZFwiPjwveC1pY29uPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -15,8 +15,8 @@ import { XInputModule } from '@ng-nest/ui/input';
15
15
  import * as i0 from "@angular/core";
16
16
  export class XFindModule {
17
17
  }
18
- /** @nocollapse */ XFindModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XFindModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
- /** @nocollapse */ XFindModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XFindModule, declarations: [XFindComponent, XFindProperty], imports: [CommonModule,
18
+ /** @nocollapse */ XFindModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XFindModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
+ /** @nocollapse */ XFindModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XFindModule, declarations: [XFindComponent, XFindProperty], imports: [CommonModule,
20
20
  FormsModule,
21
21
  ReactiveFormsModule,
22
22
  XTagModule,
@@ -28,7 +28,7 @@ export class XFindModule {
28
28
  XEmptyModule,
29
29
  XInputModule,
30
30
  XBaseFormModule], exports: [XFindComponent] });
31
- /** @nocollapse */ XFindModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XFindModule, imports: [[
31
+ /** @nocollapse */ XFindModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XFindModule, imports: [[
32
32
  CommonModule,
33
33
  FormsModule,
34
34
  ReactiveFormsModule,
@@ -42,7 +42,7 @@ export class XFindModule {
42
42
  XInputModule,
43
43
  XBaseFormModule
44
44
  ]] });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XFindModule, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XFindModule, decorators: [{
46
46
  type: NgModule,
47
47
  args: [{
48
48
  declarations: [XFindComponent, XFindProperty],