@ng-nest/ui 12.0.5 → 12.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (794) hide show
  1. package/auto-complete/auto-complete-portal.component.d.ts +3 -3
  2. package/auto-complete/auto-complete.component.d.ts +6 -2
  3. package/auto-complete/auto-complete.property.d.ts +17 -2
  4. package/back-top/back-top.component.d.ts +1 -2
  5. package/base-form/base-form.component.d.ts +1 -1
  6. package/base-form/base-form.property.d.ts +48 -3
  7. package/bundles/ng-nest-ui-affix.umd.js +25 -21
  8. package/bundles/ng-nest-ui-affix.umd.js.map +1 -1
  9. package/bundles/ng-nest-ui-alert.umd.js +25 -21
  10. package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
  11. package/bundles/ng-nest-ui-anchor.umd.js +26 -22
  12. package/bundles/ng-nest-ui-anchor.umd.js.map +1 -1
  13. package/bundles/ng-nest-ui-api.umd.js +12 -14
  14. package/bundles/ng-nest-ui-api.umd.js.map +1 -1
  15. package/bundles/ng-nest-ui-auto-complete.umd.js +74 -36
  16. package/bundles/ng-nest-ui-auto-complete.umd.js.map +1 -1
  17. package/bundles/ng-nest-ui-avatar.umd.js +25 -21
  18. package/bundles/ng-nest-ui-avatar.umd.js.map +1 -1
  19. package/bundles/ng-nest-ui-back-top.umd.js +27 -23
  20. package/bundles/ng-nest-ui-back-top.umd.js.map +1 -1
  21. package/bundles/ng-nest-ui-badge.umd.js +27 -22
  22. package/bundles/ng-nest-ui-badge.umd.js.map +1 -1
  23. package/bundles/ng-nest-ui-base-form.umd.js +67 -22
  24. package/bundles/ng-nest-ui-base-form.umd.js.map +1 -1
  25. package/bundles/ng-nest-ui-border.umd.js +12 -14
  26. package/bundles/ng-nest-ui-border.umd.js.map +1 -1
  27. package/bundles/ng-nest-ui-button.umd.js +36 -29
  28. package/bundles/ng-nest-ui-button.umd.js.map +1 -1
  29. package/bundles/ng-nest-ui-calendar.umd.js +29 -24
  30. package/bundles/ng-nest-ui-calendar.umd.js.map +1 -1
  31. package/bundles/ng-nest-ui-card.umd.js +25 -21
  32. package/bundles/ng-nest-ui-card.umd.js.map +1 -1
  33. package/bundles/ng-nest-ui-carousel.umd.js +35 -30
  34. package/bundles/ng-nest-ui-carousel.umd.js.map +1 -1
  35. package/bundles/ng-nest-ui-cascade.umd.js +94 -36
  36. package/bundles/ng-nest-ui-cascade.umd.js.map +1 -1
  37. package/bundles/ng-nest-ui-checkbox.umd.js +28 -23
  38. package/bundles/ng-nest-ui-checkbox.umd.js.map +1 -1
  39. package/bundles/ng-nest-ui-collapse.umd.js +31 -27
  40. package/bundles/ng-nest-ui-collapse.umd.js.map +1 -1
  41. package/bundles/ng-nest-ui-color-picker.umd.js +79 -44
  42. package/bundles/ng-nest-ui-color-picker.umd.js.map +1 -1
  43. package/bundles/ng-nest-ui-color.umd.js +26 -22
  44. package/bundles/ng-nest-ui-color.umd.js.map +1 -1
  45. package/bundles/ng-nest-ui-comment.umd.js +34 -29
  46. package/bundles/ng-nest-ui-comment.umd.js.map +1 -1
  47. package/bundles/ng-nest-ui-container.umd.js +46 -42
  48. package/bundles/ng-nest-ui-container.umd.js.map +1 -1
  49. package/bundles/ng-nest-ui-core.umd.js +136 -35
  50. package/bundles/ng-nest-ui-core.umd.js.map +1 -1
  51. package/bundles/ng-nest-ui-crumb.umd.js +28 -23
  52. package/bundles/ng-nest-ui-crumb.umd.js.map +1 -1
  53. package/bundles/ng-nest-ui-date-picker.umd.js +923 -176
  54. package/bundles/ng-nest-ui-date-picker.umd.js.map +1 -1
  55. package/bundles/ng-nest-ui-description.umd.js +35 -32
  56. package/bundles/ng-nest-ui-description.umd.js.map +1 -1
  57. package/bundles/ng-nest-ui-dialog.umd.js +27 -22
  58. package/bundles/ng-nest-ui-dialog.umd.js.map +1 -1
  59. package/bundles/ng-nest-ui-doc.umd.js +12 -14
  60. package/bundles/ng-nest-ui-doc.umd.js.map +1 -1
  61. package/bundles/ng-nest-ui-drawer.umd.js +27 -22
  62. package/bundles/ng-nest-ui-drawer.umd.js.map +1 -1
  63. package/bundles/ng-nest-ui-dropdown.umd.js +32 -27
  64. package/bundles/ng-nest-ui-dropdown.umd.js.map +1 -1
  65. package/bundles/ng-nest-ui-empty.umd.js +25 -21
  66. package/bundles/ng-nest-ui-empty.umd.js.map +1 -1
  67. package/bundles/ng-nest-ui-examples.umd.js +12 -14
  68. package/bundles/ng-nest-ui-examples.umd.js.map +1 -1
  69. package/bundles/ng-nest-ui-find.umd.js +45 -27
  70. package/bundles/ng-nest-ui-find.umd.js.map +1 -1
  71. package/bundles/ng-nest-ui-form.umd.js +36 -36
  72. package/bundles/ng-nest-ui-form.umd.js.map +1 -1
  73. package/bundles/ng-nest-ui-highlight.umd.js +27 -22
  74. package/bundles/ng-nest-ui-highlight.umd.js.map +1 -1
  75. package/bundles/ng-nest-ui-i18n.umd.js +545 -140
  76. package/bundles/ng-nest-ui-i18n.umd.js.map +1 -1
  77. package/bundles/ng-nest-ui-icon.umd.js +34 -29
  78. package/bundles/ng-nest-ui-icon.umd.js.map +1 -1
  79. package/bundles/ng-nest-ui-inner.umd.js +26 -22
  80. package/bundles/ng-nest-ui-inner.umd.js.map +1 -1
  81. package/bundles/ng-nest-ui-input-number.umd.js +44 -24
  82. package/bundles/ng-nest-ui-input-number.umd.js.map +1 -1
  83. package/bundles/ng-nest-ui-input.umd.js +208 -50
  84. package/bundles/ng-nest-ui-input.umd.js.map +1 -1
  85. package/bundles/ng-nest-ui-layout.umd.js +31 -27
  86. package/bundles/ng-nest-ui-layout.umd.js.map +1 -1
  87. package/bundles/ng-nest-ui-link.umd.js +25 -21
  88. package/bundles/ng-nest-ui-link.umd.js.map +1 -1
  89. package/bundles/ng-nest-ui-list.umd.js +35 -30
  90. package/bundles/ng-nest-ui-list.umd.js.map +1 -1
  91. package/bundles/ng-nest-ui-loading.umd.js +27 -22
  92. package/bundles/ng-nest-ui-loading.umd.js.map +1 -1
  93. package/bundles/ng-nest-ui-menu.umd.js +38 -31
  94. package/bundles/ng-nest-ui-menu.umd.js.map +1 -1
  95. package/bundles/ng-nest-ui-message-box.umd.js +53 -47
  96. package/bundles/ng-nest-ui-message-box.umd.js.map +1 -1
  97. package/bundles/ng-nest-ui-message.umd.js +26 -22
  98. package/bundles/ng-nest-ui-message.umd.js.map +1 -1
  99. package/bundles/ng-nest-ui-notification.umd.js +26 -22
  100. package/bundles/ng-nest-ui-notification.umd.js.map +1 -1
  101. package/bundles/ng-nest-ui-outlet.umd.js +22 -18
  102. package/bundles/ng-nest-ui-outlet.umd.js.map +1 -1
  103. package/bundles/ng-nest-ui-page-header.umd.js +25 -21
  104. package/bundles/ng-nest-ui-page-header.umd.js.map +1 -1
  105. package/bundles/ng-nest-ui-pagination.umd.js +115 -26
  106. package/bundles/ng-nest-ui-pagination.umd.js.map +1 -1
  107. package/bundles/ng-nest-ui-pattern.umd.js +12 -14
  108. package/bundles/ng-nest-ui-pattern.umd.js.map +1 -1
  109. package/bundles/ng-nest-ui-popconfirm.umd.js +25 -21
  110. package/bundles/ng-nest-ui-popconfirm.umd.js.map +1 -1
  111. package/bundles/ng-nest-ui-popover.umd.js +31 -26
  112. package/bundles/ng-nest-ui-popover.umd.js.map +1 -1
  113. package/bundles/ng-nest-ui-portal.umd.js +22 -18
  114. package/bundles/ng-nest-ui-portal.umd.js.map +1 -1
  115. package/bundles/ng-nest-ui-progress.umd.js +28 -23
  116. package/bundles/ng-nest-ui-progress.umd.js.map +1 -1
  117. package/bundles/ng-nest-ui-radio.umd.js +28 -23
  118. package/bundles/ng-nest-ui-radio.umd.js.map +1 -1
  119. package/bundles/ng-nest-ui-rate.umd.js +30 -26
  120. package/bundles/ng-nest-ui-rate.umd.js.map +1 -1
  121. package/bundles/ng-nest-ui-result.umd.js +25 -21
  122. package/bundles/ng-nest-ui-result.umd.js.map +1 -1
  123. package/bundles/ng-nest-ui-ripple.umd.js +25 -21
  124. package/bundles/ng-nest-ui-ripple.umd.js.map +1 -1
  125. package/bundles/ng-nest-ui-select.umd.js +53 -34
  126. package/bundles/ng-nest-ui-select.umd.js.map +1 -1
  127. package/bundles/ng-nest-ui-skeleton.umd.js +27 -22
  128. package/bundles/ng-nest-ui-skeleton.umd.js.map +1 -1
  129. package/bundles/ng-nest-ui-slider-select.umd.js +25 -21
  130. package/bundles/ng-nest-ui-slider-select.umd.js.map +1 -1
  131. package/bundles/ng-nest-ui-slider.umd.js +32 -29
  132. package/bundles/ng-nest-ui-slider.umd.js.map +1 -1
  133. package/bundles/ng-nest-ui-statistic.umd.js +37 -31
  134. package/bundles/ng-nest-ui-statistic.umd.js.map +1 -1
  135. package/bundles/ng-nest-ui-steps.umd.js +35 -27
  136. package/bundles/ng-nest-ui-steps.umd.js.map +1 -1
  137. package/bundles/ng-nest-ui-switch.umd.js +25 -21
  138. package/bundles/ng-nest-ui-switch.umd.js.map +1 -1
  139. package/bundles/ng-nest-ui-table.umd.js +58 -51
  140. package/bundles/ng-nest-ui-table.umd.js.map +1 -1
  141. package/bundles/ng-nest-ui-tabs.umd.js +39 -34
  142. package/bundles/ng-nest-ui-tabs.umd.js.map +1 -1
  143. package/bundles/ng-nest-ui-tag.umd.js +36 -21
  144. package/bundles/ng-nest-ui-tag.umd.js.map +1 -1
  145. package/bundles/ng-nest-ui-text-retract.umd.js +27 -22
  146. package/bundles/ng-nest-ui-text-retract.umd.js.map +1 -1
  147. package/bundles/ng-nest-ui-textarea.umd.js +27 -32
  148. package/bundles/ng-nest-ui-textarea.umd.js.map +1 -1
  149. package/bundles/ng-nest-ui-theme.umd.js +26 -22
  150. package/bundles/ng-nest-ui-theme.umd.js.map +1 -1
  151. package/bundles/ng-nest-ui-time-ago.umd.js +12 -14
  152. package/bundles/ng-nest-ui-time-ago.umd.js.map +1 -1
  153. package/bundles/ng-nest-ui-time-picker.umd.js +87 -46
  154. package/bundles/ng-nest-ui-time-picker.umd.js.map +1 -1
  155. package/bundles/ng-nest-ui-time-range.umd.js +22 -18
  156. package/bundles/ng-nest-ui-time-range.umd.js.map +1 -1
  157. package/bundles/ng-nest-ui-timeline.umd.js +28 -23
  158. package/bundles/ng-nest-ui-timeline.umd.js.map +1 -1
  159. package/bundles/ng-nest-ui-tooltip.umd.js +31 -26
  160. package/bundles/ng-nest-ui-tooltip.umd.js.map +1 -1
  161. package/bundles/ng-nest-ui-transfer.umd.js +28 -23
  162. package/bundles/ng-nest-ui-transfer.umd.js.map +1 -1
  163. package/bundles/ng-nest-ui-tree-file.umd.js +25 -21
  164. package/bundles/ng-nest-ui-tree-file.umd.js.map +1 -1
  165. package/bundles/ng-nest-ui-tree.umd.js +39 -34
  166. package/bundles/ng-nest-ui-tree.umd.js.map +1 -1
  167. package/bundles/ng-nest-ui-typography.umd.js +25 -21
  168. package/bundles/ng-nest-ui-typography.umd.js.map +1 -1
  169. package/bundles/ng-nest-ui-upload.umd.js +32 -27
  170. package/bundles/ng-nest-ui-upload.umd.js.map +1 -1
  171. package/bundles/ng-nest-ui.umd.js +83 -243
  172. package/bundles/ng-nest-ui.umd.js.map +1 -1
  173. package/button/buttons.component.d.ts +1 -1
  174. package/calendar/calendar.component.d.ts +2 -2
  175. package/carousel/carousel.component.d.ts +1 -1
  176. package/cascade/cascade-portal.component.d.ts +13 -7
  177. package/cascade/cascade.component.d.ts +7 -1
  178. package/cascade/cascade.property.d.ts +33 -3
  179. package/checkbox/checkbox.component.d.ts +1 -1
  180. package/color/color.component.d.ts +2 -2
  181. package/color-picker/color-picker-portal.component.d.ts +3 -3
  182. package/color-picker/color-picker.component.d.ts +10 -4
  183. package/color-picker/color-picker.property.d.ts +12 -2
  184. package/comment/comment.component.d.ts +1 -1
  185. package/core/config/config.d.ts +39 -0
  186. package/core/functions/clone-deep.d.ts +1 -0
  187. package/core/functions/drop.d.ts +1 -0
  188. package/core/functions/flex.d.ts +1 -1
  189. package/core/functions/has-in.d.ts +1 -0
  190. package/core/functions/order-by.d.ts +1 -0
  191. package/core/functions/public-api.d.ts +5 -0
  192. package/core/functions/remove.d.ts +1 -0
  193. package/core/services/reuse-strategy.service.d.ts +1 -1
  194. package/crumb/crumb.component.d.ts +1 -1
  195. package/date-picker/date-picker-portal.component.d.ts +10 -12
  196. package/date-picker/date-picker.component.d.ts +5 -5
  197. package/date-picker/date-picker.module.d.ts +12 -10
  198. package/date-picker/date-picker.property.d.ts +169 -8
  199. package/date-picker/date-range-portal.component.d.ts +65 -0
  200. package/date-picker/date-range.component.d.ts +74 -0
  201. package/date-picker/picker-date.component.d.ts +13 -4
  202. package/date-picker/picker-month.component.d.ts +6 -3
  203. package/date-picker/picker-year.component.d.ts +4 -2
  204. package/date-picker/public-api.d.ts +2 -0
  205. package/description/description.component.d.ts +2 -4
  206. package/dropdown/dropdown-portal.component.d.ts +1 -3
  207. package/dropdown/dropdown.component.d.ts +2 -2
  208. package/esm2015/affix/affix.component.js +3 -3
  209. package/esm2015/affix/affix.module.js +4 -4
  210. package/esm2015/affix/affix.property.js +3 -3
  211. package/esm2015/alert/alert.component.js +4 -4
  212. package/esm2015/alert/alert.module.js +4 -4
  213. package/esm2015/alert/alert.property.js +3 -3
  214. package/esm2015/anchor/anchor.component.js +5 -5
  215. package/esm2015/anchor/anchor.module.js +4 -4
  216. package/esm2015/anchor/anchor.property.js +4 -4
  217. package/esm2015/api/api.component.js +3 -3
  218. package/esm2015/api/api.module.js +4 -4
  219. package/esm2015/auto-complete/auto-complete-portal.component.js +6 -6
  220. package/esm2015/auto-complete/auto-complete.component.js +29 -12
  221. package/esm2015/auto-complete/auto-complete.module.js +4 -4
  222. package/esm2015/auto-complete/auto-complete.property.js +22 -5
  223. package/esm2015/avatar/avatar.component.js +3 -3
  224. package/esm2015/avatar/avatar.module.js +4 -4
  225. package/esm2015/avatar/avatar.property.js +3 -3
  226. package/esm2015/back-top/back-top.component.js +6 -6
  227. package/esm2015/back-top/back-top.module.js +4 -4
  228. package/esm2015/back-top/back-top.property.js +3 -3
  229. package/esm2015/badge/badge.component.js +6 -5
  230. package/esm2015/badge/badge.module.js +4 -4
  231. package/esm2015/badge/badge.property.js +3 -3
  232. package/esm2015/base-form/base-form.component.js +5 -5
  233. package/esm2015/base-form/base-form.module.js +4 -4
  234. package/esm2015/base-form/base-form.property.js +46 -5
  235. package/esm2015/border/border.component.js +3 -3
  236. package/esm2015/border/border.module.js +4 -4
  237. package/esm2015/button/button.component.js +10 -7
  238. package/esm2015/button/button.module.js +4 -4
  239. package/esm2015/button/button.property.js +6 -6
  240. package/esm2015/button/buttons.component.js +4 -4
  241. package/esm2015/calendar/calendar.component.js +8 -7
  242. package/esm2015/calendar/calendar.module.js +4 -4
  243. package/esm2015/calendar/calendar.property.js +3 -3
  244. package/esm2015/card/card.component.js +3 -3
  245. package/esm2015/card/card.module.js +4 -4
  246. package/esm2015/card/card.property.js +3 -3
  247. package/esm2015/carousel/carousel-panel.component.js +4 -4
  248. package/esm2015/carousel/carousel.component.js +8 -7
  249. package/esm2015/carousel/carousel.module.js +4 -4
  250. package/esm2015/carousel/carousel.property.js +6 -6
  251. package/esm2015/cascade/cascade-portal.component.js +23 -11
  252. package/esm2015/cascade/cascade.component.js +25 -9
  253. package/esm2015/cascade/cascade.module.js +4 -4
  254. package/esm2015/cascade/cascade.property.js +28 -5
  255. package/esm2015/checkbox/checkbox.component.js +7 -6
  256. package/esm2015/checkbox/checkbox.module.js +4 -4
  257. package/esm2015/checkbox/checkbox.property.js +4 -4
  258. package/esm2015/collapse/collapse-panel.component.js +4 -4
  259. package/esm2015/collapse/collapse.component.js +3 -3
  260. package/esm2015/collapse/collapse.module.js +4 -4
  261. package/esm2015/collapse/collapse.property.js +6 -6
  262. package/esm2015/color/color.component.js +5 -5
  263. package/esm2015/color/color.module.js +4 -4
  264. package/esm2015/color/color.property.js +3 -3
  265. package/esm2015/color-picker/color-picker-portal.component.js +5 -5
  266. package/esm2015/color-picker/color-picker.component.js +33 -14
  267. package/esm2015/color-picker/color-picker.module.js +4 -4
  268. package/esm2015/color-picker/color-picker.property.js +16 -5
  269. package/esm2015/comment/comment-reply.component.js +3 -3
  270. package/esm2015/comment/comment.component.js +7 -6
  271. package/esm2015/comment/comment.module.js +4 -4
  272. package/esm2015/comment/comment.property.js +6 -6
  273. package/esm2015/container/aside.component.js +3 -3
  274. package/esm2015/container/container.component.js +5 -5
  275. package/esm2015/container/container.module.js +4 -4
  276. package/esm2015/container/container.property.js +12 -12
  277. package/esm2015/container/footer.component.js +3 -3
  278. package/esm2015/container/header.component.js +3 -3
  279. package/esm2015/container/main.component.js +3 -3
  280. package/esm2015/core/animation/fade.js +1 -1
  281. package/esm2015/core/config/config.js +1 -1
  282. package/esm2015/core/config/config.service.js +3 -3
  283. package/esm2015/core/functions/clone-deep.js +12 -0
  284. package/esm2015/core/functions/drop.js +8 -0
  285. package/esm2015/core/functions/flex.js +18 -7
  286. package/esm2015/core/functions/has-in.js +4 -0
  287. package/esm2015/core/functions/order-by.js +31 -0
  288. package/esm2015/core/functions/public-api.js +6 -1
  289. package/esm2015/core/functions/remove.js +15 -0
  290. package/esm2015/core/services/http.service.js +5 -5
  291. package/esm2015/core/services/preloading-strategy.service.js +5 -5
  292. package/esm2015/core/services/reuse-strategy.service.js +2 -2
  293. package/esm2015/core/services/storage.service.js +3 -3
  294. package/esm2015/core/theme/theme.service.js +3 -3
  295. package/esm2015/crumb/crumb.component.js +7 -6
  296. package/esm2015/crumb/crumb.module.js +4 -4
  297. package/esm2015/crumb/crumb.property.js +3 -3
  298. package/esm2015/date-picker/date-picker-portal.component.js +24 -43
  299. package/esm2015/date-picker/date-picker.component.js +24 -23
  300. package/esm2015/date-picker/date-picker.module.js +31 -11
  301. package/esm2015/date-picker/date-picker.property.js +190 -19
  302. package/esm2015/date-picker/date-range-portal.component.js +208 -0
  303. package/esm2015/date-picker/date-range.component.js +307 -0
  304. package/esm2015/date-picker/picker-date.component.js +50 -15
  305. package/esm2015/date-picker/picker-month.component.js +25 -9
  306. package/esm2015/date-picker/picker-year.component.js +21 -9
  307. package/esm2015/date-picker/public-api.js +3 -1
  308. package/esm2015/description/description-item.component.js +4 -4
  309. package/esm2015/description/description.component.js +8 -9
  310. package/esm2015/description/description.module.js +4 -4
  311. package/esm2015/description/description.property.js +6 -6
  312. package/esm2015/dialog/dialog.component.js +6 -5
  313. package/esm2015/dialog/dialog.module.js +4 -4
  314. package/esm2015/dialog/dialog.property.js +4 -4
  315. package/esm2015/doc/doc.component.js +3 -3
  316. package/esm2015/doc/doc.module.js +4 -4
  317. package/esm2015/drawer/drawer.component.js +6 -5
  318. package/esm2015/drawer/drawer.module.js +4 -4
  319. package/esm2015/drawer/drawer.property.js +3 -3
  320. package/esm2015/dropdown/dropdown-portal.component.js +5 -5
  321. package/esm2015/dropdown/dropdown.component.js +7 -6
  322. package/esm2015/dropdown/dropdown.module.js +4 -4
  323. package/esm2015/dropdown/dropdown.property.js +3 -3
  324. package/esm2015/empty/empty.component.js +3 -3
  325. package/esm2015/empty/empty.module.js +4 -4
  326. package/esm2015/empty/empty.property.js +3 -3
  327. package/esm2015/examples/examples.component.js +3 -3
  328. package/esm2015/examples/examples.module.js +4 -4
  329. package/esm2015/find/find.component.js +13 -10
  330. package/esm2015/find/find.module.js +4 -4
  331. package/esm2015/find/find.property.js +16 -5
  332. package/esm2015/form/control.component.js +4 -4
  333. package/esm2015/form/form.component.js +9 -8
  334. package/esm2015/form/form.module.js +4 -4
  335. package/esm2015/form/form.property.js +8 -13
  336. package/esm2015/highlight/highlight.component.js +6 -5
  337. package/esm2015/highlight/highlight.module.js +4 -4
  338. package/esm2015/highlight/highlight.property.js +4 -4
  339. package/esm2015/i18n/i18n.directive.js +6 -5
  340. package/esm2015/i18n/i18n.module.js +4 -4
  341. package/esm2015/i18n/i18n.pipe.js +3 -3
  342. package/esm2015/i18n/i18n.property.js +1 -1
  343. package/esm2015/i18n/i18n.service.js +3 -3
  344. package/esm2015/i18n/languages/ar_EG.js +11 -3
  345. package/esm2015/i18n/languages/bg_BG.js +11 -3
  346. package/esm2015/i18n/languages/ca_ES.js +11 -3
  347. package/esm2015/i18n/languages/cs_CZ.js +11 -3
  348. package/esm2015/i18n/languages/da_DK.js +11 -3
  349. package/esm2015/i18n/languages/de_DE.js +11 -3
  350. package/esm2015/i18n/languages/el_GR.js +11 -3
  351. package/esm2015/i18n/languages/en_GB.js +11 -3
  352. package/esm2015/i18n/languages/en_US.js +11 -3
  353. package/esm2015/i18n/languages/es_ES.js +11 -3
  354. package/esm2015/i18n/languages/et_EE.js +11 -3
  355. package/esm2015/i18n/languages/fa_IR.js +11 -3
  356. package/esm2015/i18n/languages/fi_FI.js +11 -3
  357. package/esm2015/i18n/languages/fr_BE.js +10 -2
  358. package/esm2015/i18n/languages/fr_FR.js +11 -3
  359. package/esm2015/i18n/languages/he_IL.js +11 -3
  360. package/esm2015/i18n/languages/hi_IN.js +11 -3
  361. package/esm2015/i18n/languages/hr_HR.js +11 -3
  362. package/esm2015/i18n/languages/hu_HU.js +11 -3
  363. package/esm2015/i18n/languages/hy_AM.js +11 -3
  364. package/esm2015/i18n/languages/id_ID.js +11 -3
  365. package/esm2015/i18n/languages/is_IS.js +11 -3
  366. package/esm2015/i18n/languages/it_IT.js +11 -3
  367. package/esm2015/i18n/languages/ja_JP.js +11 -3
  368. package/esm2015/i18n/languages/ka_GE.js +11 -3
  369. package/esm2015/i18n/languages/kn_IN.js +11 -3
  370. package/esm2015/i18n/languages/ko_KR.js +11 -3
  371. package/esm2015/i18n/languages/ku_IQ.js +11 -3
  372. package/esm2015/i18n/languages/lv_LV.js +11 -3
  373. package/esm2015/i18n/languages/mn_MN.js +11 -3
  374. package/esm2015/i18n/languages/ms_MY.js +11 -3
  375. package/esm2015/i18n/languages/nb_NO.js +11 -3
  376. package/esm2015/i18n/languages/ne_NP.js +11 -3
  377. package/esm2015/i18n/languages/nl_BE.js +11 -3
  378. package/esm2015/i18n/languages/nl_NL.js +11 -3
  379. package/esm2015/i18n/languages/pl_PL.js +11 -3
  380. package/esm2015/i18n/languages/pt_BR.js +11 -3
  381. package/esm2015/i18n/languages/pt_PT.js +11 -3
  382. package/esm2015/i18n/languages/ro_RO.js +11 -3
  383. package/esm2015/i18n/languages/ru_RU.js +11 -3
  384. package/esm2015/i18n/languages/sk_SK.js +11 -3
  385. package/esm2015/i18n/languages/sl_SI.js +11 -3
  386. package/esm2015/i18n/languages/sr_RS.js +11 -3
  387. package/esm2015/i18n/languages/sv_SE.js +11 -3
  388. package/esm2015/i18n/languages/ta_IN.js +11 -3
  389. package/esm2015/i18n/languages/th_TH.js +29 -21
  390. package/esm2015/i18n/languages/tr_TR.js +11 -3
  391. package/esm2015/i18n/languages/uk_UA.js +11 -3
  392. package/esm2015/i18n/languages/vi_VN.js +11 -3
  393. package/esm2015/i18n/languages/zh_CN.js +10 -3
  394. package/esm2015/i18n/languages/zh_TW.js +10 -3
  395. package/esm2015/icon/icon.component.js +7 -6
  396. package/esm2015/icon/icon.module.js +4 -4
  397. package/esm2015/icon/icon.property.js +3 -3
  398. package/esm2015/icon/icon.service.js +6 -6
  399. package/esm2015/inner/inner.component.js +5 -5
  400. package/esm2015/inner/inner.module.js +4 -4
  401. package/esm2015/inner/inner.property.js +3 -3
  402. package/esm2015/input/input-group.component.js +26 -0
  403. package/esm2015/input/input.component.js +60 -15
  404. package/esm2015/input/input.module.js +11 -9
  405. package/esm2015/input/input.property.js +77 -22
  406. package/esm2015/input/public-api.js +2 -1
  407. package/esm2015/input-number/input-number.component.js +9 -5
  408. package/esm2015/input-number/input-number.module.js +7 -6
  409. package/esm2015/input-number/input-number.property.js +17 -5
  410. package/esm2015/layout/col.component.js +3 -3
  411. package/esm2015/layout/layout.module.js +4 -4
  412. package/esm2015/layout/layout.property.js +6 -6
  413. package/esm2015/layout/row.component.js +3 -3
  414. package/esm2015/link/link.component.js +3 -3
  415. package/esm2015/link/link.module.js +4 -4
  416. package/esm2015/link/link.property.js +3 -3
  417. package/esm2015/list/list-option.component.js +3 -3
  418. package/esm2015/list/list.component.js +8 -7
  419. package/esm2015/list/list.module.js +4 -4
  420. package/esm2015/list/list.property.js +7 -7
  421. package/esm2015/loading/loading.component.js +6 -5
  422. package/esm2015/loading/loading.module.js +4 -4
  423. package/esm2015/loading/loading.property.js +3 -3
  424. package/esm2015/menu/menu-node.component.js +4 -4
  425. package/esm2015/menu/menu.component.js +11 -8
  426. package/esm2015/menu/menu.module.js +4 -4
  427. package/esm2015/menu/menu.property.js +6 -6
  428. package/esm2015/message/message.component.js +5 -5
  429. package/esm2015/message/message.module.js +4 -4
  430. package/esm2015/message/message.service.js +3 -3
  431. package/esm2015/message-box/message-box.component.js +20 -24
  432. package/esm2015/message-box/message-box.module.js +4 -4
  433. package/esm2015/message-box/message-box.service.js +10 -8
  434. package/esm2015/notification/notification.component.js +5 -5
  435. package/esm2015/notification/notification.module.js +4 -4
  436. package/esm2015/notification/notification.property.js +1 -1
  437. package/esm2015/notification/notification.service.js +3 -3
  438. package/esm2015/outlet/outlet.directive.js +3 -3
  439. package/esm2015/outlet/outlet.module.js +4 -4
  440. package/esm2015/page-header/page-header.component.js +3 -3
  441. package/esm2015/page-header/page-header.module.js +4 -4
  442. package/esm2015/page-header/page-header.property.js +3 -3
  443. package/esm2015/pagination/pagination.component.js +45 -7
  444. package/esm2015/pagination/pagination.module.js +10 -6
  445. package/esm2015/pagination/pagination.property.js +52 -4
  446. package/esm2015/pattern/pattern.component.js +3 -3
  447. package/esm2015/pattern/pattern.module.js +4 -4
  448. package/esm2015/popconfirm/popconfirm.component.js +3 -3
  449. package/esm2015/popconfirm/popconfirm.module.js +4 -4
  450. package/esm2015/popconfirm/popconfirm.property.js +3 -3
  451. package/esm2015/popover/popover-portal.component.js +4 -4
  452. package/esm2015/popover/popover.directive.js +7 -6
  453. package/esm2015/popover/popover.module.js +4 -4
  454. package/esm2015/popover/popover.property.js +3 -3
  455. package/esm2015/portal/portal.module.js +4 -4
  456. package/esm2015/portal/portal.service.js +3 -3
  457. package/esm2015/progress/progress.component.js +7 -6
  458. package/esm2015/progress/progress.module.js +4 -4
  459. package/esm2015/progress/progress.property.js +3 -3
  460. package/esm2015/radio/radio.component.js +7 -6
  461. package/esm2015/radio/radio.module.js +4 -4
  462. package/esm2015/radio/radio.property.js +4 -4
  463. package/esm2015/rate/rate.component.js +9 -9
  464. package/esm2015/rate/rate.module.js +4 -4
  465. package/esm2015/rate/rate.property.js +3 -3
  466. package/esm2015/result/result.component.js +3 -3
  467. package/esm2015/result/result.module.js +4 -4
  468. package/esm2015/result/result.property.js +3 -3
  469. package/esm2015/ripple/ripple.directive.js +4 -4
  470. package/esm2015/ripple/ripple.module.js +4 -4
  471. package/esm2015/ripple/ripple.property.js +4 -4
  472. package/esm2015/select/select-portal.component.js +6 -6
  473. package/esm2015/select/select.component.js +15 -11
  474. package/esm2015/select/select.module.js +4 -4
  475. package/esm2015/select/select.property.js +15 -4
  476. package/esm2015/skeleton/skeleton.component.js +6 -5
  477. package/esm2015/skeleton/skeleton.module.js +4 -4
  478. package/esm2015/skeleton/skeleton.property.js +3 -3
  479. package/esm2015/slider/slider.component.js +11 -12
  480. package/esm2015/slider/slider.module.js +4 -4
  481. package/esm2015/slider/slider.property.js +3 -3
  482. package/esm2015/slider-select/slider-select.component.js +3 -3
  483. package/esm2015/slider-select/slider-select.module.js +4 -4
  484. package/esm2015/slider-select/slider-select.property.js +3 -3
  485. package/esm2015/statistic/countdown.component.js +8 -7
  486. package/esm2015/statistic/statistic.component.js +6 -5
  487. package/esm2015/statistic/statistic.module.js +4 -4
  488. package/esm2015/statistic/statistic.property.js +6 -6
  489. package/esm2015/steps/steps.component.js +9 -7
  490. package/esm2015/steps/steps.module.js +7 -6
  491. package/esm2015/steps/steps.property.js +6 -4
  492. package/esm2015/switch/switch.component.js +3 -3
  493. package/esm2015/switch/switch.module.js +4 -4
  494. package/esm2015/switch/switch.property.js +3 -3
  495. package/esm2015/table/drag.directive.js +5 -5
  496. package/esm2015/table/table-body.component.js +7 -6
  497. package/esm2015/table/table-foot.component.js +4 -4
  498. package/esm2015/table/table-head.component.js +7 -6
  499. package/esm2015/table/table.component.js +9 -8
  500. package/esm2015/table/table.module.js +4 -4
  501. package/esm2015/table/table.property.js +13 -13
  502. package/esm2015/tabs/tab-content.component.js +3 -3
  503. package/esm2015/tabs/tab.component.js +4 -4
  504. package/esm2015/tabs/tabs.component.js +9 -8
  505. package/esm2015/tabs/tabs.module.js +4 -4
  506. package/esm2015/tabs/tabs.property.js +6 -6
  507. package/esm2015/tag/tag.component.js +10 -5
  508. package/esm2015/tag/tag.module.js +4 -4
  509. package/esm2015/tag/tag.property.js +10 -4
  510. package/esm2015/text-retract/text-retract.component.js +6 -5
  511. package/esm2015/text-retract/text-retract.module.js +4 -4
  512. package/esm2015/text-retract/text-retract.property.js +3 -3
  513. package/esm2015/textarea/textarea.component.js +6 -5
  514. package/esm2015/textarea/textarea.module.js +4 -4
  515. package/esm2015/textarea/textarea.property.js +4 -14
  516. package/esm2015/theme/theme.component.js +5 -5
  517. package/esm2015/theme/theme.module.js +4 -4
  518. package/esm2015/theme/theme.property.js +4 -4
  519. package/esm2015/time-ago/time-ago.module.js +4 -4
  520. package/esm2015/time-ago/time-ago.pipe.js +3 -3
  521. package/esm2015/time-picker/time-picker-frame.component.js +22 -12
  522. package/esm2015/time-picker/time-picker-portal.component.js +5 -5
  523. package/esm2015/time-picker/time-picker.component.js +31 -15
  524. package/esm2015/time-picker/time-picker.module.js +4 -4
  525. package/esm2015/time-picker/time-picker.property.js +16 -5
  526. package/esm2015/time-range/time-range.module.js +4 -4
  527. package/esm2015/time-range/time-range.pipe.js +3 -3
  528. package/esm2015/timeline/timeline.component.js +7 -6
  529. package/esm2015/timeline/timeline.module.js +4 -4
  530. package/esm2015/timeline/timeline.property.js +3 -3
  531. package/esm2015/tooltip/tooltip-portal.component.js +4 -4
  532. package/esm2015/tooltip/tooltip.directive.js +7 -6
  533. package/esm2015/tooltip/tooltip.module.js +4 -4
  534. package/esm2015/tooltip/tooltip.property.js +4 -4
  535. package/esm2015/transfer/transfer.component.js +7 -6
  536. package/esm2015/transfer/transfer.module.js +4 -4
  537. package/esm2015/transfer/transfer.property.js +3 -3
  538. package/esm2015/tree/tree-node.component.js +5 -5
  539. package/esm2015/tree/tree.component.js +11 -10
  540. package/esm2015/tree/tree.module.js +4 -4
  541. package/esm2015/tree/tree.property.js +7 -7
  542. package/esm2015/tree-file/tree-file.component.js +3 -3
  543. package/esm2015/tree-file/tree-file.module.js +4 -4
  544. package/esm2015/tree-file/tree-file.property.js +3 -3
  545. package/esm2015/typography/typography.component.js +3 -3
  546. package/esm2015/typography/typography.module.js +4 -4
  547. package/esm2015/typography/typography.property.js +3 -3
  548. package/esm2015/upload/upload-portal.component.js +5 -5
  549. package/esm2015/upload/upload.component.js +7 -6
  550. package/esm2015/upload/upload.module.js +4 -4
  551. package/esm2015/upload/upload.property.js +3 -3
  552. package/fesm2015/ng-nest-ui-affix.js +10 -10
  553. package/fesm2015/ng-nest-ui-alert.js +10 -10
  554. package/fesm2015/ng-nest-ui-alert.js.map +1 -1
  555. package/fesm2015/ng-nest-ui-anchor.js +11 -11
  556. package/fesm2015/ng-nest-ui-anchor.js.map +1 -1
  557. package/fesm2015/ng-nest-ui-api.js +7 -7
  558. package/fesm2015/ng-nest-ui-auto-complete.js +59 -25
  559. package/fesm2015/ng-nest-ui-auto-complete.js.map +1 -1
  560. package/fesm2015/ng-nest-ui-avatar.js +10 -10
  561. package/fesm2015/ng-nest-ui-back-top.js +12 -12
  562. package/fesm2015/ng-nest-ui-back-top.js.map +1 -1
  563. package/fesm2015/ng-nest-ui-badge.js +12 -11
  564. package/fesm2015/ng-nest-ui-badge.js.map +1 -1
  565. package/fesm2015/ng-nest-ui-base-form.js +53 -12
  566. package/fesm2015/ng-nest-ui-base-form.js.map +1 -1
  567. package/fesm2015/ng-nest-ui-border.js +7 -7
  568. package/fesm2015/ng-nest-ui-button.js +22 -19
  569. package/fesm2015/ng-nest-ui-button.js.map +1 -1
  570. package/fesm2015/ng-nest-ui-calendar.js +14 -13
  571. package/fesm2015/ng-nest-ui-calendar.js.map +1 -1
  572. package/fesm2015/ng-nest-ui-card.js +10 -10
  573. package/fesm2015/ng-nest-ui-carousel.js +20 -19
  574. package/fesm2015/ng-nest-ui-carousel.js.map +1 -1
  575. package/fesm2015/ng-nest-ui-cascade.js +80 -28
  576. package/fesm2015/ng-nest-ui-cascade.js.map +1 -1
  577. package/fesm2015/ng-nest-ui-checkbox.js +13 -12
  578. package/fesm2015/ng-nest-ui-checkbox.js.map +1 -1
  579. package/fesm2015/ng-nest-ui-collapse.js +16 -16
  580. package/fesm2015/ng-nest-ui-collapse.js.map +1 -1
  581. package/fesm2015/ng-nest-ui-color-picker.js +55 -24
  582. package/fesm2015/ng-nest-ui-color-picker.js.map +1 -1
  583. package/fesm2015/ng-nest-ui-color.js +11 -11
  584. package/fesm2015/ng-nest-ui-color.js.map +1 -1
  585. package/fesm2015/ng-nest-ui-comment.js +19 -18
  586. package/fesm2015/ng-nest-ui-comment.js.map +1 -1
  587. package/fesm2015/ng-nest-ui-container.js +32 -32
  588. package/fesm2015/ng-nest-ui-container.js.map +1 -1
  589. package/fesm2015/ng-nest-ui-core.js +106 -25
  590. package/fesm2015/ng-nest-ui-core.js.map +1 -1
  591. package/fesm2015/ng-nest-ui-crumb.js +13 -12
  592. package/fesm2015/ng-nest-ui-crumb.js.map +1 -1
  593. package/fesm2015/ng-nest-ui-date-picker.js +876 -156
  594. package/fesm2015/ng-nest-ui-date-picker.js.map +1 -1
  595. package/fesm2015/ng-nest-ui-description.js +21 -22
  596. package/fesm2015/ng-nest-ui-description.js.map +1 -1
  597. package/fesm2015/ng-nest-ui-dialog.js +12 -11
  598. package/fesm2015/ng-nest-ui-dialog.js.map +1 -1
  599. package/fesm2015/ng-nest-ui-doc.js +7 -7
  600. package/fesm2015/ng-nest-ui-drawer.js +12 -11
  601. package/fesm2015/ng-nest-ui-drawer.js.map +1 -1
  602. package/fesm2015/ng-nest-ui-dropdown.js +17 -16
  603. package/fesm2015/ng-nest-ui-dropdown.js.map +1 -1
  604. package/fesm2015/ng-nest-ui-empty.js +10 -10
  605. package/fesm2015/ng-nest-ui-examples.js +7 -7
  606. package/fesm2015/ng-nest-ui-find.js +31 -17
  607. package/fesm2015/ng-nest-ui-find.js.map +1 -1
  608. package/fesm2015/ng-nest-ui-form.js +22 -26
  609. package/fesm2015/ng-nest-ui-form.js.map +1 -1
  610. package/fesm2015/ng-nest-ui-highlight.js +12 -11
  611. package/fesm2015/ng-nest-ui-highlight.js.map +1 -1
  612. package/fesm2015/ng-nest-ui-i18n.js +540 -133
  613. package/fesm2015/ng-nest-ui-i18n.js.map +1 -1
  614. package/fesm2015/ng-nest-ui-icon.js +18 -18
  615. package/fesm2015/ng-nest-ui-icon.js.map +1 -1
  616. package/fesm2015/ng-nest-ui-inner.js +11 -11
  617. package/fesm2015/ng-nest-ui-inner.js.map +1 -1
  618. package/fesm2015/ng-nest-ui-input-number.js +31 -14
  619. package/fesm2015/ng-nest-ui-input-number.js.map +1 -1
  620. package/fesm2015/ng-nest-ui-input.js +164 -42
  621. package/fesm2015/ng-nest-ui-input.js.map +1 -1
  622. package/fesm2015/ng-nest-ui-layout.js +16 -16
  623. package/fesm2015/ng-nest-ui-link.js +10 -10
  624. package/fesm2015/ng-nest-ui-list.js +20 -19
  625. package/fesm2015/ng-nest-ui-list.js.map +1 -1
  626. package/fesm2015/ng-nest-ui-loading.js +12 -11
  627. package/fesm2015/ng-nest-ui-loading.js.map +1 -1
  628. package/fesm2015/ng-nest-ui-menu.js +23 -20
  629. package/fesm2015/ng-nest-ui-menu.js.map +1 -1
  630. package/fesm2015/ng-nest-ui-message-box.js +32 -34
  631. package/fesm2015/ng-nest-ui-message-box.js.map +1 -1
  632. package/fesm2015/ng-nest-ui-message.js +11 -11
  633. package/fesm2015/ng-nest-ui-message.js.map +1 -1
  634. package/fesm2015/ng-nest-ui-notification.js +11 -11
  635. package/fesm2015/ng-nest-ui-notification.js.map +1 -1
  636. package/fesm2015/ng-nest-ui-outlet.js +7 -7
  637. package/fesm2015/ng-nest-ui-page-header.js +10 -10
  638. package/fesm2015/ng-nest-ui-pagination.js +104 -14
  639. package/fesm2015/ng-nest-ui-pagination.js.map +1 -1
  640. package/fesm2015/ng-nest-ui-pattern.js +7 -7
  641. package/fesm2015/ng-nest-ui-popconfirm.js +10 -10
  642. package/fesm2015/ng-nest-ui-popover.js +16 -15
  643. package/fesm2015/ng-nest-ui-popover.js.map +1 -1
  644. package/fesm2015/ng-nest-ui-portal.js +7 -7
  645. package/fesm2015/ng-nest-ui-progress.js +13 -12
  646. package/fesm2015/ng-nest-ui-progress.js.map +1 -1
  647. package/fesm2015/ng-nest-ui-radio.js +13 -12
  648. package/fesm2015/ng-nest-ui-radio.js.map +1 -1
  649. package/fesm2015/ng-nest-ui-rate.js +15 -15
  650. package/fesm2015/ng-nest-ui-rate.js.map +1 -1
  651. package/fesm2015/ng-nest-ui-result.js +10 -10
  652. package/fesm2015/ng-nest-ui-ripple.js +10 -10
  653. package/fesm2015/ng-nest-ui-ripple.js.map +1 -1
  654. package/fesm2015/ng-nest-ui-select.js +37 -22
  655. package/fesm2015/ng-nest-ui-select.js.map +1 -1
  656. package/fesm2015/ng-nest-ui-skeleton.js +12 -11
  657. package/fesm2015/ng-nest-ui-skeleton.js.map +1 -1
  658. package/fesm2015/ng-nest-ui-slider-select.js +10 -10
  659. package/fesm2015/ng-nest-ui-slider.js +17 -18
  660. package/fesm2015/ng-nest-ui-slider.js.map +1 -1
  661. package/fesm2015/ng-nest-ui-statistic.js +22 -20
  662. package/fesm2015/ng-nest-ui-statistic.js.map +1 -1
  663. package/fesm2015/ng-nest-ui-steps.js +19 -14
  664. package/fesm2015/ng-nest-ui-steps.js.map +1 -1
  665. package/fesm2015/ng-nest-ui-switch.js +10 -10
  666. package/fesm2015/ng-nest-ui-table.js +43 -40
  667. package/fesm2015/ng-nest-ui-table.js.map +1 -1
  668. package/fesm2015/ng-nest-ui-tabs.js +24 -23
  669. package/fesm2015/ng-nest-ui-tabs.js.map +1 -1
  670. package/fesm2015/ng-nest-ui-tag.js +22 -11
  671. package/fesm2015/ng-nest-ui-tag.js.map +1 -1
  672. package/fesm2015/ng-nest-ui-text-retract.js +12 -11
  673. package/fesm2015/ng-nest-ui-text-retract.js.map +1 -1
  674. package/fesm2015/ng-nest-ui-textarea.js +12 -21
  675. package/fesm2015/ng-nest-ui-textarea.js.map +1 -1
  676. package/fesm2015/ng-nest-ui-theme.js +11 -11
  677. package/fesm2015/ng-nest-ui-theme.js.map +1 -1
  678. package/fesm2015/ng-nest-ui-time-ago.js +7 -7
  679. package/fesm2015/ng-nest-ui-time-picker.js +73 -36
  680. package/fesm2015/ng-nest-ui-time-picker.js.map +1 -1
  681. package/fesm2015/ng-nest-ui-time-range.js +7 -7
  682. package/fesm2015/ng-nest-ui-timeline.js +13 -12
  683. package/fesm2015/ng-nest-ui-timeline.js.map +1 -1
  684. package/fesm2015/ng-nest-ui-tooltip.js +16 -15
  685. package/fesm2015/ng-nest-ui-tooltip.js.map +1 -1
  686. package/fesm2015/ng-nest-ui-transfer.js +13 -12
  687. package/fesm2015/ng-nest-ui-transfer.js.map +1 -1
  688. package/fesm2015/ng-nest-ui-tree-file.js +10 -10
  689. package/fesm2015/ng-nest-ui-tree.js +24 -23
  690. package/fesm2015/ng-nest-ui-tree.js.map +1 -1
  691. package/fesm2015/ng-nest-ui-typography.js +10 -10
  692. package/fesm2015/ng-nest-ui-upload.js +17 -16
  693. package/fesm2015/ng-nest-ui-upload.js.map +1 -1
  694. package/find/find.component.d.ts +1 -1
  695. package/find/find.property.d.ts +22 -2
  696. package/form/control.component.d.ts +1 -1
  697. package/form/form.component.d.ts +1 -1
  698. package/form/form.property.d.ts +6 -6
  699. package/i18n/i18n.property.d.ts +3 -0
  700. package/i18n/languages/ar_EG.d.ts +8 -0
  701. package/i18n/languages/bg_BG.d.ts +8 -0
  702. package/i18n/languages/ca_ES.d.ts +8 -0
  703. package/i18n/languages/cs_CZ.d.ts +8 -0
  704. package/i18n/languages/da_DK.d.ts +8 -0
  705. package/i18n/languages/de_DE.d.ts +8 -0
  706. package/i18n/languages/el_GR.d.ts +8 -0
  707. package/i18n/languages/en_GB.d.ts +8 -0
  708. package/i18n/languages/en_US.d.ts +8 -0
  709. package/i18n/languages/es_ES.d.ts +8 -0
  710. package/i18n/languages/et_EE.d.ts +8 -0
  711. package/i18n/languages/fa_IR.d.ts +8 -0
  712. package/i18n/languages/fi_FI.d.ts +8 -0
  713. package/i18n/languages/fr_BE.d.ts +8 -0
  714. package/i18n/languages/fr_FR.d.ts +8 -0
  715. package/i18n/languages/he_IL.d.ts +8 -0
  716. package/i18n/languages/hi_IN.d.ts +8 -0
  717. package/i18n/languages/hr_HR.d.ts +8 -0
  718. package/i18n/languages/hu_HU.d.ts +8 -0
  719. package/i18n/languages/hy_AM.d.ts +8 -0
  720. package/i18n/languages/id_ID.d.ts +8 -0
  721. package/i18n/languages/is_IS.d.ts +8 -0
  722. package/i18n/languages/it_IT.d.ts +8 -0
  723. package/i18n/languages/ja_JP.d.ts +8 -0
  724. package/i18n/languages/ka_GE.d.ts +8 -0
  725. package/i18n/languages/kn_IN.d.ts +8 -0
  726. package/i18n/languages/ko_KR.d.ts +8 -0
  727. package/i18n/languages/ku_IQ.d.ts +8 -0
  728. package/i18n/languages/lv_LV.d.ts +8 -0
  729. package/i18n/languages/mn_MN.d.ts +8 -0
  730. package/i18n/languages/ms_MY.d.ts +8 -0
  731. package/i18n/languages/nb_NO.d.ts +8 -0
  732. package/i18n/languages/ne_NP.d.ts +8 -0
  733. package/i18n/languages/nl_BE.d.ts +8 -0
  734. package/i18n/languages/nl_NL.d.ts +8 -0
  735. package/i18n/languages/pl_PL.d.ts +8 -0
  736. package/i18n/languages/pt_BR.d.ts +8 -0
  737. package/i18n/languages/pt_PT.d.ts +8 -0
  738. package/i18n/languages/ro_RO.d.ts +8 -0
  739. package/i18n/languages/ru_RU.d.ts +8 -0
  740. package/i18n/languages/sk_SK.d.ts +8 -0
  741. package/i18n/languages/sl_SI.d.ts +8 -0
  742. package/i18n/languages/sr_RS.d.ts +8 -0
  743. package/i18n/languages/sv_SE.d.ts +8 -0
  744. package/i18n/languages/ta_IN.d.ts +8 -0
  745. package/i18n/languages/th_TH.d.ts +8 -0
  746. package/i18n/languages/tr_TR.d.ts +8 -0
  747. package/i18n/languages/uk_UA.d.ts +8 -0
  748. package/i18n/languages/vi_VN.d.ts +8 -0
  749. package/i18n/languages/zh_CN.d.ts +7 -0
  750. package/i18n/languages/zh_TW.d.ts +7 -0
  751. package/inner/inner.component.d.ts +1 -1
  752. package/input/input-group.component.d.ts +13 -0
  753. package/input/input.component.d.ts +10 -3
  754. package/input/input.module.d.ts +7 -5
  755. package/input/input.property.d.ts +79 -14
  756. package/input/public-api.d.ts +1 -0
  757. package/input-number/input-number.component.d.ts +3 -0
  758. package/input-number/input-number.module.d.ts +4 -3
  759. package/input-number/input-number.property.d.ts +12 -2
  760. package/list/list.component.d.ts +2 -2
  761. package/menu/menu.component.d.ts +1 -1
  762. package/message/message.component.d.ts +1 -1
  763. package/message-box/message-box.component.d.ts +2 -1
  764. package/notification/notification.component.d.ts +1 -1
  765. package/package.json +1 -1
  766. package/pagination/pagination.component.d.ts +5 -1
  767. package/pagination/pagination.module.d.ts +7 -3
  768. package/pagination/pagination.property.d.ts +49 -3
  769. package/radio/radio.component.d.ts +1 -1
  770. package/rate/rate.component.d.ts +5 -5
  771. package/select/select-portal.component.d.ts +3 -3
  772. package/select/select.component.d.ts +1 -1
  773. package/select/select.property.d.ts +12 -2
  774. package/slider/slider.component.d.ts +1 -1
  775. package/steps/steps.component.d.ts +1 -1
  776. package/steps/steps.module.d.ts +2 -1
  777. package/steps/steps.property.d.ts +7 -2
  778. package/table/table-body.component.d.ts +1 -1
  779. package/table/table-head.component.d.ts +1 -1
  780. package/table/table.component.d.ts +1 -1
  781. package/table/table.property.d.ts +10 -0
  782. package/tag/tag.component.d.ts +2 -1
  783. package/tag/tag.property.d.ts +6 -1
  784. package/textarea/textarea.property.d.ts +1 -6
  785. package/theme/theme.component.d.ts +1 -1
  786. package/time-picker/time-picker-frame.component.d.ts +4 -0
  787. package/time-picker/time-picker-portal.component.d.ts +3 -3
  788. package/time-picker/time-picker.component.d.ts +5 -3
  789. package/time-picker/time-picker.property.d.ts +12 -2
  790. package/timeline/timeline.component.d.ts +1 -1
  791. package/transfer/transfer.component.d.ts +1 -1
  792. package/tree/tree-node.component.d.ts +1 -1
  793. package/tree/tree.component.d.ts +1 -1
  794. package/upload/upload.component.d.ts +3 -3
@@ -0,0 +1,208 @@
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener } from '@angular/core';
2
+ import { XDateRangePortalPrefix } from './date-picker.property';
3
+ import { XIsEmpty, XConnectBaseAnimation, XAddDays, XAddMonths } from '@ng-nest/ui/core';
4
+ import { Subject } from 'rxjs';
5
+ import { takeUntil, map } from 'rxjs/operators';
6
+ import { DatePipe, LowerCasePipe } from '@angular/common';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@ng-nest/ui/i18n";
10
+ import * as i3 from "./picker-date.component";
11
+ import * as i4 from "@ng-nest/ui/button";
12
+ export class XDateRangePortalComponent {
13
+ constructor(datePipe, lowerCasePipe, cdr, i18n) {
14
+ this.datePipe = datePipe;
15
+ this.lowerCasePipe = lowerCasePipe;
16
+ this.cdr = cdr;
17
+ this.i18n = i18n;
18
+ this.type = 'date';
19
+ this.display = new Date();
20
+ this.startDisplay = new Date();
21
+ this.endDisplay = XAddMonths(this.startDisplay, 1);
22
+ this.value = [];
23
+ this.locale = {};
24
+ this.preset = [];
25
+ this._unSubject = new Subject();
26
+ }
27
+ done(event) {
28
+ this.animating(false);
29
+ event.toState === 'void' && this.destroyPortal();
30
+ }
31
+ start() {
32
+ this.animating(true);
33
+ }
34
+ ngOnInit() {
35
+ this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {
36
+ this.value = x;
37
+ this.init();
38
+ });
39
+ this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {
40
+ this.placement = x;
41
+ this.cdr.detectChanges();
42
+ });
43
+ this.i18n.localeChange
44
+ .pipe(map((x) => x.datePicker), takeUntil(this._unSubject))
45
+ .subscribe((x) => {
46
+ this.locale = x;
47
+ this.cdr.markForCheck();
48
+ });
49
+ }
50
+ ngAfterViewInit() {
51
+ this.init();
52
+ }
53
+ ngOnDestroy() {
54
+ this._unSubject.next();
55
+ this._unSubject.unsubscribe();
56
+ }
57
+ init() {
58
+ if (!XIsEmpty(this.value)) {
59
+ this.setDefault();
60
+ }
61
+ else {
62
+ this.value = [];
63
+ this.model = this.display;
64
+ this.startModel = this.model;
65
+ this.endModel = XAddMonths(this.model, 1);
66
+ }
67
+ this.time = this.model.getTime();
68
+ this._type = this.type;
69
+ this.setDisplay(this.model);
70
+ this.cdr.detectChanges();
71
+ }
72
+ stopPropagation(event) {
73
+ event.stopPropagation();
74
+ }
75
+ setDefault() {
76
+ const date = new Date();
77
+ this.model = date;
78
+ if (this.value.length > 0) {
79
+ this.startModel = new Date(this.value[0]);
80
+ this.startDisplay = this.startModel;
81
+ }
82
+ if (this.value.length > 1) {
83
+ this.endModel = new Date(this.value[1]);
84
+ this.endDisplay = this.endModel;
85
+ }
86
+ }
87
+ setDisplay(date) {
88
+ this.display = new Date(date.getFullYear(), date.getMonth(), 1);
89
+ this.startDisplay = this.display;
90
+ this.endDisplay = XAddMonths(this.display, 1);
91
+ }
92
+ dateChange(date) {
93
+ let time = date.getTime();
94
+ if (this.value.length === 0) {
95
+ this.value.push(time);
96
+ this.startNodeEmit(date);
97
+ }
98
+ else if (this.value.length === 1) {
99
+ if (time > this.value[0]) {
100
+ this.value.push(time);
101
+ this.endNodeEmit(date);
102
+ }
103
+ else {
104
+ this.value.unshift(time);
105
+ this.startNodeEmit(date);
106
+ this.endNodeEmit(new Date(this.value[1]));
107
+ }
108
+ this.nodeEmit(this.value.map((x) => new Date(x)));
109
+ }
110
+ }
111
+ typeChange(type) {
112
+ this.type = type;
113
+ this.cdr.detectChanges();
114
+ }
115
+ monthChange(date) {
116
+ this.setDisplay(date);
117
+ if (this._type === 'month') {
118
+ this.model = date;
119
+ // this.nodeEmit(date);
120
+ }
121
+ else {
122
+ this.type = this._type;
123
+ }
124
+ this.cdr.detectChanges();
125
+ }
126
+ yearChange(date) {
127
+ this.setDisplay(date);
128
+ if (this._type === 'year') {
129
+ this.model = date;
130
+ // this.nodeEmit(date);
131
+ }
132
+ else {
133
+ this.type = 'month';
134
+ }
135
+ this.cdr.detectChanges();
136
+ }
137
+ yearStartChange(number) {
138
+ this.startYear = number;
139
+ this.cdr.detectChanges();
140
+ }
141
+ nextMonth(num) {
142
+ let date = new Date(this.display);
143
+ date.setMonth(date.getMonth() + num);
144
+ this.setDisplay(date);
145
+ this.cdr.detectChanges();
146
+ }
147
+ nextYear(num) {
148
+ let date = new Date(this.display);
149
+ date.setFullYear(date.getFullYear() + num);
150
+ this.setDisplay(date);
151
+ this.cdr.detectChanges();
152
+ }
153
+ nextYears(num) {
154
+ this.startYear += num;
155
+ let date = new Date(this.display);
156
+ date.setFullYear(this.startYear);
157
+ this.setDisplay(date);
158
+ this.cdr.detectChanges();
159
+ }
160
+ getLocaleMonth(date) {
161
+ return this.locale[this.lowerCasePipe.transform(this.datePipe.transform(date, 'LLLL'))];
162
+ }
163
+ onToday() {
164
+ this.dateChange(new Date());
165
+ }
166
+ onYesterday() {
167
+ this.dateChange(XAddDays(new Date(), -1));
168
+ }
169
+ onTomorrow() {
170
+ this.dateChange(XAddDays(new Date(), 1));
171
+ }
172
+ onPresetFunc(item) {
173
+ this.dateChange(item.func());
174
+ }
175
+ selectTime(time) {
176
+ this.time = time.getTime();
177
+ // this.nodeEmit(this.setModel(this.model, time), false);
178
+ this.cdr.detectChanges();
179
+ }
180
+ setModel(date, time) {
181
+ this.model = new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.getHours(), time.getMinutes(), time.getSeconds());
182
+ return this.model;
183
+ }
184
+ }
185
+ /** @nocollapse */ XDateRangePortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDateRangePortalComponent, deps: [{ token: i1.DatePipe }, { token: i1.LowerCasePipe }, { token: i0.ChangeDetectorRef }, { token: i2.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
186
+ /** @nocollapse */ XDateRangePortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XDateRangePortalComponent, selector: "x-date-range-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DatePipe, LowerCasePipe], ngImport: i0, template: "<div class=\"x-date-range-portal {{ type }}\" [ngSwitch]=\"type\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div class=\"x-date-range-portal-header\">\r\n <ng-container *ngTemplateOutlet=\"startDateHeaderTpl\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"endDateHeaderTpl\"></ng-container>\r\n </div>\r\n <div class=\"x-date-range-portal-body\">\r\n <x-picker-date\r\n class=\"x-date-range-portal-start\"\r\n [display]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n (modelChange)=\"dateChange($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n class=\"x-date-range-portal-end\"\r\n [display]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n (modelChange)=\"dateChange($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #startDateHeaderTpl>\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\"></x-button>\r\n <div class=\"x-date-range-portal-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('year')\">{{ startDisplay | date: 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('month')\">{{ getLocaleMonth(startDisplay) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon style=\"visibility: hidden\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon style=\"visibility: hidden\"></x-button>\r\n</ng-template>\r\n\r\n<ng-template #endDateHeaderTpl>\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\" style=\"visibility: hidden\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\" style=\"visibility: hidden\"></x-button>\r\n <div class=\"x-date-range-portal-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('year')\">{{ endDisplay | date: 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('month')\">{{ getLocaleMonth(endDisplay) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon (click)=\"nextMonth(1)\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon (click)=\"nextYear(1)\"></x-button>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-range-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:34rem;display:flex;flex-direction:column;font-size:var(--x-font-size-small)}.x-date-range-portal.date-time{width:27rem}.x-date-range-portal.date-hour{width:19.75rem}.x-date-range-portal.date-minute{width:23.375rem}.x-date-range-portal-content{display:flex}.x-date-range-portal-header{display:flex;align-items:center;justify-content:space-between;padding:.4rem;border-bottom:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset{display:flex;align-items:center;justify-content:center;border-top:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset>x-button{flex:1}.x-date-range-portal-year-month{flex:1;text-align:center}.x-date-range-portal-body{padding:.4rem;display:flex}.x-date-range-portal-start{flex:1;margin-right:.4rem}.x-date-range-portal-end{flex:1;margin-left:.4rem}.x-date-range-portal-footer{display:flex;justify-content:flex-end;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-range-portal-date{flex:1}.x-date-range-portal-time{display:flex;flex-direction:column}.x-date-range-portal-time-label{padding:.4rem;text-align:center;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-range-portal-time .x-time-picker-frame{border-width:var(--x-border-width) 0 0 var(--x-border-width);box-shadow:none}\n"], components: [{ type: i3.XPickerDateComponent, selector: "x-picker-date" }, { type: i4.XButtonComponent, selector: "x-button" }], directives: [{ type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "date": i1.DatePipe }, animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDateRangePortalComponent, decorators: [{
188
+ type: Component,
189
+ args: [{
190
+ selector: `${XDateRangePortalPrefix}`,
191
+ templateUrl: './date-range-portal.component.html',
192
+ styleUrls: ['./date-range-portal.component.scss'],
193
+ encapsulation: ViewEncapsulation.None,
194
+ changeDetection: ChangeDetectionStrategy.OnPush,
195
+ animations: [XConnectBaseAnimation],
196
+ providers: [DatePipe, LowerCasePipe]
197
+ }]
198
+ }], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i1.LowerCasePipe }, { type: i0.ChangeDetectorRef }, { type: i2.XI18nService }]; }, propDecorators: { placement: [{
199
+ type: HostBinding,
200
+ args: ['@x-connect-base-animation']
201
+ }], done: [{
202
+ type: HostListener,
203
+ args: ['@x-connect-base-animation.done', ['$event']]
204
+ }], start: [{
205
+ type: HostListener,
206
+ args: ['@x-connect-base-animation.start', ['$event']]
207
+ }] } });
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1wb3J0YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1yYW5nZS1wb3J0YWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1yYW5nZS1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3ZCLFdBQVcsRUFDWCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFzQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQXNCLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBWTFELE1BQU0sT0FBTyx5QkFBeUI7SUFpQ3BDLFlBQW1CLFFBQWtCLEVBQVMsYUFBNEIsRUFBUyxHQUFzQixFQUFTLElBQWtCO1FBQWpILGFBQVEsR0FBUixRQUFRLENBQVU7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBYztRQXZCcEksU0FBSSxHQUFvQixNQUFNLENBQUM7UUFDL0IsWUFBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFLckIsaUJBQVksR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2hD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QVEsQ0FBQyxJQUFVLEVBQUUsSUFBVTtRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDbEksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7O3lJQTNNVSx5QkFBeUI7NkhBQXpCLHlCQUF5Qiw0T0FGekIsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLDBCQ3pCdEMscWdGQThDQSw4akVEdEJjLENBQUMscUJBQXFCLENBQUM7MkZBR3hCLHlCQUF5QjtrQkFUckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsR0FBRyxzQkFBc0IsRUFBRTtvQkFDckMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsU0FBUyxFQUFFLENBQUMsb0NBQW9DLENBQUM7b0JBQ2pELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ25DLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUM7aUJBQ3JDO3NMQUVrRCxTQUFTO3NCQUF6RCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFDb0IsSUFBSTtzQkFBL0QsWUFBWTt1QkFBQyxnQ0FBZ0MsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJRyxLQUFLO3NCQUFqRSxZQUFZO3VCQUFDLGlDQUFpQyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lclxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYRGF0ZVJhbmdlUG9ydGFsUHJlZml4LCBYRGF0ZVBpY2tlclByZXNldCwgWERhdGVQaWNrZXJUeXBlIH0gZnJvbSAnLi9kYXRlLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYQ29ubmVjdEJhc2VBbmltYXRpb24sIFhQb3NpdGlvblRvcEJvdHRvbSwgWEFkZERheXMsIFhBZGRNb250aHMgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUsIExvd2VyQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBYSTE4blNlcnZpY2UsIFhJMThuRGF0ZVBpY2tlciB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hEYXRlUmFuZ2VQb3J0YWxQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1yYW5nZS1wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcmFuZ2UtcG9ydGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWENvbm5lY3RCYXNlQW5pbWF0aW9uXSxcclxuICBwcm92aWRlcnM6IFtEYXRlUGlwZSwgTG93ZXJDYXNlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhEYXRlUmFuZ2VQb3J0YWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQEhvc3RCaW5kaW5nKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uJykgcHVibGljIHBsYWNlbWVudCE6IFhQb3NpdGlvblRvcEJvdHRvbTtcclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLmRvbmUnLCBbJyRldmVudCddKSBkb25lKGV2ZW50OiB7IHRvU3RhdGU6IGFueSB9KSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyhmYWxzZSk7XHJcbiAgICBldmVudC50b1N0YXRlID09PSAndm9pZCcgJiYgdGhpcy5kZXN0cm95UG9ydGFsKCk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uc3RhcnQnLCBbJyRldmVudCddKSBzdGFydCgpIHtcclxuICAgIHRoaXMuYW5pbWF0aW5nKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIGRpc3BsYXkgPSBuZXcgRGF0ZSgpO1xyXG4gIG1vZGVsITogRGF0ZTtcclxuICBzdGFydE1vZGVsITogRGF0ZTtcclxuICBlbmRNb2RlbCE6IERhdGU7XHJcbiAgc3RhcnRZZWFyITogbnVtYmVyO1xyXG4gIHN0YXJ0RGlzcGxheTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgZW5kRGlzcGxheTogRGF0ZSA9IFhBZGRNb250aHModGhpcy5zdGFydERpc3BsYXksIDEpO1xyXG4gIHZhbHVlOiBudW1iZXJbXSA9IFtdO1xyXG4gIHZhbHVlQ2hhbmdlITogU3ViamVjdDxudW1iZXJbXT47XHJcbiAgcG9zaXRpb25DaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgYW5pbWF0aW5nITogRnVuY3Rpb247XHJcbiAgY2xvc2VQb3J0YWwhOiBGdW5jdGlvbjtcclxuICBkZXN0cm95UG9ydGFsITogRnVuY3Rpb247XHJcbiAgbm9kZUVtaXQhOiAoZGF0ZTogRGF0ZVtdLCBzdXJlPzogYm9vbGVhbikgPT4gdm9pZDtcclxuICBzdGFydE5vZGVFbWl0ITogKGRhdGU6IERhdGUpID0+IHZvaWQ7XHJcbiAgZW5kTm9kZUVtaXQhOiAoZGF0ZTogRGF0ZSkgPT4gdm9pZDtcclxuICBsb2NhbGU6IFhJMThuRGF0ZVBpY2tlciA9IHt9O1xyXG4gIHRpbWUhOiBudW1iZXI7XHJcbiAgcHJlc2V0OiBYRGF0ZVBpY2tlclByZXNldFtdID0gW107XHJcbiAgcHJpdmF0ZSBfdHlwZSE6IFhEYXRlUGlja2VyVHlwZTtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0ZVBpcGU6IERhdGVQaXBlLCBwdWJsaWMgbG93ZXJDYXNlUGlwZTogTG93ZXJDYXNlUGlwZSwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHg7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnBsYWNlbWVudCA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+IHguZGF0ZVBpY2tlciBhcyBYSTE4bkRhdGVQaWNrZXIpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0geDtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdCgpIHtcclxuICAgIGlmICghWElzRW1wdHkodGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5zZXREZWZhdWx0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlID0gW107XHJcbiAgICAgIHRoaXMubW9kZWwgPSB0aGlzLmRpc3BsYXk7XHJcbiAgICAgIHRoaXMuc3RhcnRNb2RlbCA9IHRoaXMubW9kZWw7XHJcbiAgICAgIHRoaXMuZW5kTW9kZWwgPSBYQWRkTW9udGhzKHRoaXMubW9kZWwsIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy50aW1lID0gdGhpcy5tb2RlbC5nZXRUaW1lKCk7XHJcbiAgICB0aGlzLl90eXBlID0gdGhpcy50eXBlO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KHRoaXMubW9kZWwpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0KCkge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB0aGlzLm1vZGVsID0gZGF0ZTtcclxuICAgIGlmICh0aGlzLnZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zdGFydE1vZGVsID0gbmV3IERhdGUodGhpcy52YWx1ZVswXSk7XHJcbiAgICAgIHRoaXMuc3RhcnREaXNwbGF5ID0gdGhpcy5zdGFydE1vZGVsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudmFsdWUubGVuZ3RoID4gMSkge1xyXG4gICAgICB0aGlzLmVuZE1vZGVsID0gbmV3IERhdGUodGhpcy52YWx1ZVsxXSk7XHJcbiAgICAgIHRoaXMuZW5kRGlzcGxheSA9IHRoaXMuZW5kTW9kZWw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5KGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuZGlzcGxheSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCAxKTtcclxuICAgIHRoaXMuc3RhcnREaXNwbGF5ID0gdGhpcy5kaXNwbGF5O1xyXG4gICAgdGhpcy5lbmREaXNwbGF5ID0gWEFkZE1vbnRocyh0aGlzLmRpc3BsYXksIDEpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUNoYW5nZShkYXRlOiBEYXRlKSB7XHJcbiAgICBsZXQgdGltZSA9IGRhdGUuZ2V0VGltZSgpO1xyXG4gICAgaWYgKHRoaXMudmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMudmFsdWUucHVzaCh0aW1lKTtcclxuICAgICAgdGhpcy5zdGFydE5vZGVFbWl0KGRhdGUpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICBpZiAodGltZSA+IHRoaXMudmFsdWVbMF0pIHtcclxuICAgICAgICB0aGlzLnZhbHVlLnB1c2godGltZSk7XHJcbiAgICAgICAgdGhpcy5lbmROb2RlRW1pdChkYXRlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZhbHVlLnVuc2hpZnQodGltZSk7XHJcbiAgICAgICAgdGhpcy5zdGFydE5vZGVFbWl0KGRhdGUpO1xyXG4gICAgICAgIHRoaXMuZW5kTm9kZUVtaXQobmV3IERhdGUodGhpcy52YWx1ZVsxXSkpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubm9kZUVtaXQodGhpcy52YWx1ZS5tYXAoKHgpID0+IG5ldyBEYXRlKHgpKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0eXBlQ2hhbmdlKHR5cGU6IFhEYXRlUGlja2VyVHlwZSkge1xyXG4gICAgdGhpcy50eXBlID0gdHlwZTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG1vbnRoQ2hhbmdlKGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBkYXRlO1xyXG4gICAgICAvLyB0aGlzLm5vZGVFbWl0KGRhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50eXBlID0gdGhpcy5fdHlwZTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHllYXJDaGFuZ2UoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICd5ZWFyJykge1xyXG4gICAgICB0aGlzLm1vZGVsID0gZGF0ZTtcclxuICAgICAgLy8gdGhpcy5ub2RlRW1pdChkYXRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHlwZSA9ICdtb250aCc7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB5ZWFyU3RhcnRDaGFuZ2UobnVtYmVyOiBudW1iZXIpIHtcclxuICAgIHRoaXMuc3RhcnRZZWFyID0gbnVtYmVyO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmV4dE1vbnRoKG51bTogbnVtYmVyKSB7XHJcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuZGlzcGxheSk7XHJcbiAgICBkYXRlLnNldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSArIG51bSk7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZXh0WWVhcihudW06IG51bWJlcikge1xyXG4gICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmRpc3BsYXkpO1xyXG4gICAgZGF0ZS5zZXRGdWxsWWVhcihkYXRlLmdldEZ1bGxZZWFyKCkgKyBudW0pO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmV4dFllYXJzKG51bTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnN0YXJ0WWVhciArPSBudW07XHJcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuZGlzcGxheSk7XHJcbiAgICBkYXRlLnNldEZ1bGxZZWFyKHRoaXMuc3RhcnRZZWFyKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGdldExvY2FsZU1vbnRoKGRhdGU6IERhdGUpIHtcclxuICAgIHJldHVybiAodGhpcy5sb2NhbGUgYXMgYW55KVt0aGlzLmxvd2VyQ2FzZVBpcGUudHJhbnNmb3JtKHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGUsICdMTExMJykgYXMgc3RyaW5nKV07XHJcbiAgfVxyXG5cclxuICBvblRvZGF5KCkge1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKG5ldyBEYXRlKCkpO1xyXG4gIH1cclxuXHJcbiAgb25ZZXN0ZXJkYXkoKSB7XHJcbiAgICB0aGlzLmRhdGVDaGFuZ2UoWEFkZERheXMobmV3IERhdGUoKSwgLTEpKTtcclxuICB9XHJcblxyXG4gIG9uVG9tb3Jyb3coKSB7XHJcbiAgICB0aGlzLmRhdGVDaGFuZ2UoWEFkZERheXMobmV3IERhdGUoKSwgMSkpO1xyXG4gIH1cclxuXHJcbiAgb25QcmVzZXRGdW5jKGl0ZW06IFhEYXRlUGlja2VyUHJlc2V0KSB7XHJcbiAgICB0aGlzLmRhdGVDaGFuZ2UoaXRlbS5mdW5jKCkpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0VGltZSh0aW1lOiBEYXRlKSB7XHJcbiAgICB0aGlzLnRpbWUgPSB0aW1lLmdldFRpbWUoKTtcclxuICAgIC8vIHRoaXMubm9kZUVtaXQodGhpcy5zZXRNb2RlbCh0aGlzLm1vZGVsLCB0aW1lKSwgZmFsc2UpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0TW9kZWwoZGF0ZTogRGF0ZSwgdGltZTogRGF0ZSkge1xyXG4gICAgdGhpcy5tb2RlbCA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSwgdGltZS5nZXRIb3VycygpLCB0aW1lLmdldE1pbnV0ZXMoKSwgdGltZS5nZXRTZWNvbmRzKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWRhdGUtcmFuZ2UtcG9ydGFsIHt7IHR5cGUgfX1cIiBbbmdTd2l0Y2hdPVwidHlwZVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1yYW5nZS1wb3J0YWwtaGVhZGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGFydERhdGVIZWFkZXJUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVuZERhdGVIZWFkZXJUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1yYW5nZS1wb3J0YWwtYm9keVwiPlxyXG4gICAgICA8eC1waWNrZXItZGF0ZVxyXG4gICAgICAgIGNsYXNzPVwieC1kYXRlLXJhbmdlLXBvcnRhbC1zdGFydFwiXHJcbiAgICAgICAgW2Rpc3BsYXldPVwic3RhcnREaXNwbGF5XCJcclxuICAgICAgICBbbW9kZWxdPVwic3RhcnRNb2RlbFwiXHJcbiAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgcmFuZ2VQaWNrZXJcclxuICAgICAgPjwveC1waWNrZXItZGF0ZT5cclxuICAgICAgPHgtcGlja2VyLWRhdGVcclxuICAgICAgICBjbGFzcz1cIngtZGF0ZS1yYW5nZS1wb3J0YWwtZW5kXCJcclxuICAgICAgICBbZGlzcGxheV09XCJlbmREaXNwbGF5XCJcclxuICAgICAgICBbbW9kZWxdPVwiZW5kTW9kZWxcIlxyXG4gICAgICAgIChtb2RlbENoYW5nZSk9XCJkYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIHJhbmdlUGlja2VyXHJcbiAgICAgID48L3gtcGlja2VyLWRhdGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI3N0YXJ0RGF0ZUhlYWRlclRwbD5cclxuICA8eC1idXR0b24gaWNvbj1cImZ0by1jaGV2cm9ucy1sZWZ0XCIgc2l6ZT1cInNtYWxsXCIgb25seUljb24gKGNsaWNrKT1cIm5leHRZZWFyKC0xKVwiPjwveC1idXR0b24+XHJcbiAgPHgtYnV0dG9uIGljb249XCJmdG8tY2hldnJvbi1sZWZ0XCIgc2l6ZT1cInNtYWxsXCIgb25seUljb24gKGNsaWNrKT1cIm5leHRNb250aCgtMSlcIj48L3gtYnV0dG9uPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcmFuZ2UtcG9ydGFsLXllYXItbW9udGhcIj5cclxuICAgIDx4LWJ1dHRvbiB0eXBlPVwidGV4dFwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJ0eXBlQ2hhbmdlKCd5ZWFyJylcIj57eyBzdGFydERpc3BsYXkgfCBkYXRlOiAneXl5eScgfX17eyBsb2NhbGUueWVhciB9fTwveC1idXR0b24+XHJcbiAgICA8eC1idXR0b24gdHlwZT1cInRleHRcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwidHlwZUNoYW5nZSgnbW9udGgnKVwiPnt7IGdldExvY2FsZU1vbnRoKHN0YXJ0RGlzcGxheSkgfX08L3gtYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDx4LWJ1dHRvbiBpY29uPVwiZnRvLWNoZXZyb24tcmlnaHRcIiBzaXplPVwic21hbGxcIiBvbmx5SWNvbiBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlblwiPjwveC1idXR0b24+XHJcbiAgPHgtYnV0dG9uIGljb249XCJmdG8tY2hldnJvbnMtcmlnaHRcIiBzaXplPVwic21hbGxcIiBvbmx5SWNvbiBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlblwiPjwveC1idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2VuZERhdGVIZWFkZXJUcGw+XHJcbiAgPHgtYnV0dG9uIGljb249XCJmdG8tY2hldnJvbnMtbGVmdFwiIHNpemU9XCJzbWFsbFwiIG9ubHlJY29uIChjbGljayk9XCJuZXh0WWVhcigtMSlcIiBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlblwiPjwveC1idXR0b24+XHJcbiAgPHgtYnV0dG9uIGljb249XCJmdG8tY2hldnJvbi1sZWZ0XCIgc2l6ZT1cInNtYWxsXCIgb25seUljb24gKGNsaWNrKT1cIm5leHRNb250aCgtMSlcIiBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlblwiPjwveC1idXR0b24+XHJcbiAgPGRpdiBjbGFzcz1cIngtZGF0ZS1yYW5nZS1wb3J0YWwteWVhci1tb250aFwiPlxyXG4gICAgPHgtYnV0dG9uIHR5cGU9XCJ0ZXh0XCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cInR5cGVDaGFuZ2UoJ3llYXInKVwiPnt7IGVuZERpc3BsYXkgfCBkYXRlOiAneXl5eScgfX17eyBsb2NhbGUueWVhciB9fTwveC1idXR0b24+XHJcbiAgICA8eC1idXR0b24gdHlwZT1cInRleHRcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwidHlwZUNoYW5nZSgnbW9udGgnKVwiPnt7IGdldExvY2FsZU1vbnRoKGVuZERpc3BsYXkpIH19PC94LWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8eC1idXR0b24gaWNvbj1cImZ0by1jaGV2cm9uLXJpZ2h0XCIgc2l6ZT1cInNtYWxsXCIgb25seUljb24gKGNsaWNrKT1cIm5leHRNb250aCgxKVwiPjwveC1idXR0b24+XHJcbiAgPHgtYnV0dG9uIGljb249XCJmdG8tY2hldnJvbnMtcmlnaHRcIiBzaXplPVwic21hbGxcIiBvbmx5SWNvbiAoY2xpY2spPVwibmV4dFllYXIoMSlcIj48L3gtYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -0,0 +1,307 @@
1
+ import { XPortalConnectedPosition } from '@ng-nest/ui/portal';
2
+ import { Subject } from 'rxjs';
3
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild } from '@angular/core';
4
+ import { XDateRangePrefix, XDateRangeProperty } from './date-picker.property';
5
+ import { XIsEmpty, XIsDate, XIsNumber, XIsChange, XClearClass, XIsString, XIsUndefined } from '@ng-nest/ui/core';
6
+ import { DatePipe } from '@angular/common';
7
+ import { takeUntil } from 'rxjs/operators';
8
+ import { XValueAccessor } from '@ng-nest/ui/base-form';
9
+ import { XDateRangePortalComponent } from './date-range-portal.component';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@ng-nest/ui/core";
12
+ import * as i2 from "@ng-nest/ui/portal";
13
+ import * as i3 from "@angular/common";
14
+ import * as i4 from "@angular/cdk/overlay";
15
+ import * as i5 from "@ng-nest/ui/input";
16
+ import * as i6 from "@ng-nest/ui/icon";
17
+ import * as i7 from "@angular/forms";
18
+ export class XDateRangeComponent extends XDateRangeProperty {
19
+ constructor(renderer, configService, cdr, portalService, viewContainerRef, datePipe, overlay) {
20
+ super();
21
+ this.renderer = renderer;
22
+ this.configService = configService;
23
+ this.cdr = cdr;
24
+ this.portalService = portalService;
25
+ this.viewContainerRef = viewContainerRef;
26
+ this.datePipe = datePipe;
27
+ this.overlay = overlay;
28
+ this.modelType = 'date';
29
+ this.isInput = false;
30
+ this.enter = false;
31
+ this.inputClearable = false;
32
+ this.animating = false;
33
+ this.displayValue = [];
34
+ this.icon = 'fto-calendar';
35
+ this.maxNodes = 6;
36
+ this.protalTobottom = true;
37
+ this.valueChange = new Subject();
38
+ this.dataChange = new Subject();
39
+ this.positionChange = new Subject();
40
+ this.closeSubject = new Subject();
41
+ this.startDisplay = '';
42
+ this.endDisplay = '';
43
+ this.startActive = false;
44
+ this.endActive = false;
45
+ this._unSubject = new Subject();
46
+ }
47
+ get getRequired() {
48
+ return this.required && XIsEmpty(this.value);
49
+ }
50
+ writeValue(value) {
51
+ if (XIsUndefined(value))
52
+ value = [];
53
+ if (value.length > 0) {
54
+ if (XIsDate(value[0])) {
55
+ this.modelType = 'date';
56
+ this.numberValue = value.getTime();
57
+ }
58
+ else if (XIsNumber(value[0])) {
59
+ this.modelType = 'number';
60
+ this.numberValue = value;
61
+ }
62
+ else if (XIsString(value[0])) {
63
+ this.modelType = 'string';
64
+ const valueTime = value.map((x) => new Date(x).getTime());
65
+ this.numberValue = !isNaN(valueTime[0]) ? valueTime : [];
66
+ }
67
+ }
68
+ this.value = value;
69
+ this.setDisplayValue(this.numberValue);
70
+ this.valueChange.next(this.numberValue);
71
+ this.cdr.detectChanges();
72
+ }
73
+ ngOnInit() {
74
+ this.setFlex(this.dateRange.nativeElement, this.renderer, this.justify, this.align, this.direction);
75
+ this.setFormat();
76
+ this.setClassMap();
77
+ this.setSubject();
78
+ }
79
+ ngAfterViewInit() {
80
+ this.setPortal();
81
+ }
82
+ ngOnChanges(changes) {
83
+ const { type } = changes;
84
+ if (XIsChange(type)) {
85
+ this.setFormat();
86
+ this.setDisplayValue(this.numberValue);
87
+ }
88
+ }
89
+ ngOnDestroy() {
90
+ this._unSubject.next();
91
+ this._unSubject.unsubscribe();
92
+ }
93
+ setSubject() {
94
+ this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {
95
+ this.closePortal();
96
+ });
97
+ }
98
+ setFormat() {
99
+ if (this.format !== 'yyyy-MM-dd')
100
+ return;
101
+ if (this.type === 'date') {
102
+ this.format = 'yyyy-MM-dd';
103
+ }
104
+ else if (this.type === 'year') {
105
+ this.format = 'yyyy';
106
+ }
107
+ else if (this.type === 'month') {
108
+ this.format = 'yyyy-MM';
109
+ }
110
+ else if (this.type === 'date-time') {
111
+ this.format = 'yyyy-MM-dd HH:mm:ss';
112
+ }
113
+ else if (this.type === 'date-hour') {
114
+ this.format = 'yyyy-MM-dd HH';
115
+ }
116
+ else if (this.type === 'date-minute') {
117
+ this.format = 'yyyy-MM-dd HH:mm';
118
+ }
119
+ }
120
+ menter() {
121
+ if (this.disabled)
122
+ return;
123
+ this.enter = true;
124
+ if (!XIsEmpty(this.numberValue)) {
125
+ this.icon = '';
126
+ this.inputClearable = true;
127
+ this.cdr.detectChanges();
128
+ }
129
+ }
130
+ mleave() {
131
+ if (this.disabled)
132
+ return;
133
+ this.enter = false;
134
+ if (this.inputClearable) {
135
+ this.icon = 'fto-calendar';
136
+ this.inputClearable = false;
137
+ this.cdr.detectChanges();
138
+ }
139
+ }
140
+ clearEmit() {
141
+ this.value = [];
142
+ this.numberValue = [];
143
+ this.displayValue = [];
144
+ this.mleave();
145
+ this.valueChange.next(this.numberValue);
146
+ this.modelChange();
147
+ }
148
+ modelChange() {
149
+ if (this.onChange) {
150
+ this.onChange(this.getValue());
151
+ }
152
+ }
153
+ getValue() {
154
+ return this.modelType === 'date'
155
+ ? this.numberValue.map((x) => new Date(x))
156
+ : this.modelType === 'string'
157
+ ? this.numberValue.map((x) => this.datePipe.transform(x, this.format))
158
+ : this.numberValue;
159
+ }
160
+ portalAttached() {
161
+ var _a, _b;
162
+ return (_b = (_a = this.portal) === null || _a === void 0 ? void 0 : _a.overlayRef) === null || _b === void 0 ? void 0 : _b.hasAttached();
163
+ }
164
+ closePortal() {
165
+ var _a, _b;
166
+ if (this.portalAttached()) {
167
+ (_b = (_a = this.portal) === null || _a === void 0 ? void 0 : _a.overlayRef) === null || _b === void 0 ? void 0 : _b.detach();
168
+ this.active = false;
169
+ this.cdr.detectChanges();
170
+ return true;
171
+ }
172
+ return false;
173
+ }
174
+ destroyPortal() {
175
+ var _a, _b;
176
+ (_b = (_a = this.portal) === null || _a === void 0 ? void 0 : _a.overlayRef) === null || _b === void 0 ? void 0 : _b.dispose();
177
+ }
178
+ showPortal($event, type) {
179
+ var _a;
180
+ $event.stopPropagation();
181
+ if (this.disabled || this.animating)
182
+ return;
183
+ this.active = true;
184
+ this.startActive = type === 'start';
185
+ this.endActive = type === 'end';
186
+ const config = {
187
+ backdropClass: '',
188
+ positionStrategy: this.setPlacement(),
189
+ scrollStrategy: this.overlay.scrollStrategies.reposition()
190
+ };
191
+ this.setPosition(config);
192
+ this.portal = this.portalService.attach({
193
+ content: XDateRangePortalComponent,
194
+ viewContainerRef: this.viewContainerRef,
195
+ overlayConfig: config
196
+ });
197
+ (_a = this.portal.overlayRef) === null || _a === void 0 ? void 0 : _a.outsidePointerEvents().pipe(takeUntil(this._unSubject)).subscribe(() => {
198
+ this.setDisplayValue(this.numberValue);
199
+ this.closeSubject.next();
200
+ });
201
+ this.setInstance();
202
+ }
203
+ setPosition(config) {
204
+ let position = config.positionStrategy;
205
+ position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos) => {
206
+ const place = XPortalConnectedPosition.get(pos.connectionPair);
207
+ place !== this.placement && this.positionChange.next(place);
208
+ });
209
+ }
210
+ setInstance() {
211
+ var _a;
212
+ let componentRef = (_a = this.portal) === null || _a === void 0 ? void 0 : _a.componentRef;
213
+ if (!componentRef)
214
+ return;
215
+ Object.assign(componentRef.instance, {
216
+ type: this.type,
217
+ value: this.numberValue,
218
+ placement: this.placement,
219
+ preset: this.preset,
220
+ valueChange: this.valueChange,
221
+ positionChange: this.positionChange,
222
+ closePortal: () => this.closeSubject.next(),
223
+ destroyPortal: () => this.destroyPortal(),
224
+ nodeEmit: (dates, sure = true) => this.onNodeClick(dates, sure),
225
+ startNodeEmit: (node) => this.startNodeClick(node),
226
+ endNodeEmit: (node) => this.endNodeClick(node),
227
+ animating: (ing) => (this.animating = ing)
228
+ });
229
+ componentRef.changeDetectorRef.detectChanges();
230
+ }
231
+ startNodeClick(node) {
232
+ this.startDisplay = this.datePipe.transform(node, this.format);
233
+ this.cdr.detectChanges();
234
+ }
235
+ endNodeClick(node) {
236
+ this.endDisplay = this.datePipe.transform(node, this.format);
237
+ this.cdr.detectChanges();
238
+ }
239
+ onNodeClick(dates, sure = true) {
240
+ this.isInput = false;
241
+ if (sure) {
242
+ this.numberValue = dates.map((x) => x.getTime());
243
+ this.value = this.getValue();
244
+ this.setDisplayValue(this.numberValue);
245
+ this.closeSubject.next();
246
+ this.modelChange();
247
+ this.nodeEmit.emit(this.numberValue);
248
+ }
249
+ else {
250
+ this.setDisplayValue(dates.map((x) => x.getTime()));
251
+ this.cdr.markForCheck();
252
+ }
253
+ }
254
+ onInput() {
255
+ this.isInput = true;
256
+ }
257
+ setDisplayValue(dateNumber) {
258
+ // if (this.isInput && isNaN(this.startDisplay) && !isNaN(Date.parse(this.displayValue))) {
259
+ // this.displayValue = this.datePipe.transform(this.displayValue, this.format);
260
+ // this.numberValue = new Date(this.displayValue).getTime();
261
+ // this.value = this.getValue();
262
+ // this.modelChange();
263
+ // this.isInput = false;
264
+ // } else {
265
+ this.displayValue = dateNumber.map((x) => this.datePipe.transform(x, this.format));
266
+ // }
267
+ }
268
+ setPlacement() {
269
+ return this.portalService.setPlacement({
270
+ elementRef: this.inputGroup.elementRef,
271
+ placement: [this.placement, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],
272
+ transformOriginOn: 'x-date-range-portal'
273
+ });
274
+ }
275
+ setPortal() {
276
+ var _a, _b;
277
+ this.portalAttached() && ((_b = (_a = this.portal) === null || _a === void 0 ? void 0 : _a.overlayRef) === null || _b === void 0 ? void 0 : _b.updatePositionStrategy(this.setPlacement()));
278
+ }
279
+ setClassMap() {
280
+ XClearClass(this.labelMap);
281
+ this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;
282
+ }
283
+ formControlChanges() {
284
+ this.ngOnInit();
285
+ this.cdr.detectChanges();
286
+ }
287
+ }
288
+ /** @nocollapse */ XDateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDateRangeComponent, deps: [{ token: i0.Renderer2 }, { token: i1.XConfigService }, { token: i0.ChangeDetectorRef }, { token: i2.XPortalService }, { token: i0.ViewContainerRef }, { token: i3.DatePipe }, { token: i4.Overlay }], target: i0.ɵɵFactoryTarget.Component });
289
+ /** @nocollapse */ XDateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XDateRangeComponent, selector: "x-date-range", providers: [XValueAccessor(XDateRangeComponent), DatePipe], viewQueries: [{ propertyName: "dateRange", first: true, predicate: ["dateRange"], descendants: true, static: true }, { propertyName: "inputGroup", first: true, predicate: ["inputGroup"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #dateRange class=\"x-date-range\" [class.x-date-range-active]=\"active\">\r\n <div class=\"x-date-range-row\">\r\n <x-input-group #inputGroup class=\"x-date-range-group\" bordered=\"false\" (click)=\"showPortal($event)\">\r\n <x-input\r\n #inputStartCom\r\n type=\"text\"\r\n placeholder=\"\u5F00\u59CB\u65E5\u671F\"\r\n [(active)]=\"startActive\"\r\n (click)=\"showPortal($event, 'start')\"\r\n [(ngModel)]=\"startDisplay\"\r\n ></x-input>\r\n <x-icon type=\"fto-arrow-right\"></x-icon>\r\n <x-input\r\n #inputEndCom\r\n type=\"text\"\r\n placeholder=\"\u7ED3\u675F\u65E5\u671F\"\r\n [(active)]=\"endActive\"\r\n (click)=\"showPortal($event, 'end')\"\r\n [(ngModel)]=\"endDisplay\"\r\n ></x-input>\r\n <x-icon [type]=\"icon\"></x-icon>\r\n </x-input-group>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-date-range{display:inline-block}.x-date-range{margin:0;padding:0;width:100%}.x-date-range-row{flex:1;display:flex;align-items:center}.x-date-range-group{display:inline-flex;flex:1;width:100%;font-size:var(--x-font-size);background-color:var(--x-background);background-image:none;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) transparent;transition:all var(--x-animation-duration-slow)}.x-date-range-group .x-input-group{display:flex;align-items:center}.x-date-range-group .x-input-group>x-icon{color:var(--x-text-400);transition:all var(--x-animation-duration-base);z-index:2;padding:.4rem}.x-date-range-group .x-input-group>x-input{width:6rem}.x-date-range-group .x-input-group>x-input input{padding-left:0!important;padding-right:0!important;margin-left:.4rem;margin-right:.4rem}.x-date-range-group .x-input-group>x-input.x-input-active input{background-color:gray}.x-date-range-group:hover{border-color:var(--x-primary-300)}.x-date-range-active .x-date-range-group{border-color:var(--x-primary)}\n"], components: [{ type: i5.XInputGroupComponent, selector: "x-input-group" }, { type: i5.XInputComponent, selector: "x-input" }, { type: i6.XIconComponent, selector: "x-icon" }], directives: [{ type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDateRangeComponent, decorators: [{
291
+ type: Component,
292
+ args: [{
293
+ selector: `${XDateRangePrefix}`,
294
+ templateUrl: './date-range.component.html',
295
+ styleUrls: ['./date-range.component.scss'],
296
+ encapsulation: ViewEncapsulation.None,
297
+ changeDetection: ChangeDetectionStrategy.OnPush,
298
+ providers: [XValueAccessor(XDateRangeComponent), DatePipe]
299
+ }]
300
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.XConfigService }, { type: i0.ChangeDetectorRef }, { type: i2.XPortalService }, { type: i0.ViewContainerRef }, { type: i3.DatePipe }, { type: i4.Overlay }]; }, propDecorators: { dateRange: [{
301
+ type: ViewChild,
302
+ args: ['dateRange', { static: true }]
303
+ }], inputGroup: [{
304
+ type: ViewChild,
305
+ args: ['inputGroup', { static: true }]
306
+ }] } });
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXJhbmdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RhdGUtcGlja2VyL2RhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBTXZCLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEcsT0FBTyxFQUNMLFFBQVEsRUFDUixPQUFPLEVBQ1AsU0FBUyxFQUNULFNBQVMsRUFFVCxXQUFXLEVBQ1gsU0FBUyxFQUVULFlBQVksRUFFYixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7QUFVMUUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQXFEekQsWUFDUyxRQUFtQixFQUNuQixhQUE2QixFQUM1QixHQUFzQixFQUN0QixhQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsUUFBa0IsRUFDbEIsT0FBZ0I7UUFFeEIsS0FBSyxFQUFFLENBQUM7UUFSRCxhQUFRLEdB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aUJBQzNEO3NRQUUyQyxTQUFTO3NCQUFsRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0csVUFBVTtzQkFBcEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWFBvcnRhbFNlcnZpY2UsIFhQb3J0YWxPdmVybGF5UmVmLCBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tICdAbmctbmVzdC91aS9wb3J0YWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYRGF0ZVBpY2tlck1vZGVsVHlwZSwgWERhdGVSYW5nZVByZWZpeCwgWERhdGVSYW5nZVByb3BlcnR5IH0gZnJvbSAnLi9kYXRlLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7XHJcbiAgWElzRW1wdHksXHJcbiAgWElzRGF0ZSxcclxuICBYSXNOdW1iZXIsXHJcbiAgWElzQ2hhbmdlLFxyXG4gIFhDb3JuZXIsXHJcbiAgWENsZWFyQ2xhc3MsXHJcbiAgWElzU3RyaW5nLFxyXG4gIFhDb25maWdTZXJ2aWNlLFxyXG4gIFhJc1VuZGVmaW5lZCxcclxuICBYQm9vbGVhblxyXG59IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYSW5wdXRHcm91cENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcbmltcG9ydCB7IFhEYXRlUmFuZ2VQb3J0YWxDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtcmFuZ2UtcG9ydGFsLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WERhdGVSYW5nZVByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXJhbmdlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtYVmFsdWVBY2Nlc3NvcihYRGF0ZVJhbmdlQ29tcG9uZW50KSwgRGF0ZVBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVJhbmdlQ29tcG9uZW50IGV4dGVuZHMgWERhdGVSYW5nZVByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBWaWV3Q2hpbGQoJ2RhdGVSYW5nZScsIHsgc3RhdGljOiB0cnVlIH0pIGRhdGVSYW5nZSE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRHcm91cCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0R3JvdXAhOiBYSW5wdXRHcm91cENvbXBvbmVudDtcclxuXHJcbiAgbW9kZWxUeXBlOiBYRGF0ZVBpY2tlck1vZGVsVHlwZSA9ICdkYXRlJztcclxuICBudW1iZXJWYWx1ZSE6IG51bWJlcltdO1xyXG4gIGlzSW5wdXQgPSBmYWxzZTtcclxuXHJcbiAgZ2V0IGdldFJlcXVpcmVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucmVxdWlyZWQgJiYgWElzRW1wdHkodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmIChYSXNVbmRlZmluZWQodmFsdWUpKSB2YWx1ZSA9IFtdO1xyXG4gICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKFhJc0RhdGUodmFsdWVbMF0pKSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbFR5cGUgPSAnZGF0ZSc7XHJcbiAgICAgICAgdGhpcy5udW1iZXJWYWx1ZSA9IHZhbHVlLmdldFRpbWUoKTtcclxuICAgICAgfSBlbHNlIGlmIChYSXNOdW1iZXIodmFsdWVbMF0pKSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbFR5cGUgPSAnbnVtYmVyJztcclxuICAgICAgICB0aGlzLm51bWJlclZhbHVlID0gdmFsdWU7XHJcbiAgICAgIH0gZWxzZSBpZiAoWElzU3RyaW5nKHZhbHVlWzBdKSkge1xyXG4gICAgICAgIHRoaXMubW9kZWxUeXBlID0gJ3N0cmluZyc7XHJcbiAgICAgICAgY29uc3QgdmFsdWVUaW1lID0gdmFsdWUubWFwKCh4OiBzdHJpbmcpID0+IG5ldyBEYXRlKHgpLmdldFRpbWUoKSk7XHJcbiAgICAgICAgdGhpcy5udW1iZXJWYWx1ZSA9ICFpc05hTih2YWx1ZVRpbWVbMF0pID8gdmFsdWVUaW1lIDogW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZW50ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpbnB1dENsZWFyYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFuaW1hdGluZyA9IGZhbHNlO1xyXG4gIGRpc3BsYXlWYWx1ZTogc3RyaW5nW10gPSBbXTtcclxuICBwb3J0YWwhOiBYUG9ydGFsT3ZlcmxheVJlZjxYRGF0ZVJhbmdlUG9ydGFsQ29tcG9uZW50PjtcclxuICBpY29uOiBzdHJpbmcgPSAnZnRvLWNhbGVuZGFyJztcclxuICBib3ghOiBET01SZWN0O1xyXG4gIHByb3RhbEhlaWdodCE6IG51bWJlcjtcclxuICBtYXhOb2RlczogbnVtYmVyID0gNjtcclxuICBwcm90YWxUb2JvdHRvbTogYm9vbGVhbiA9IHRydWU7XHJcbiAgdmFsdWVDaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZGF0YUNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwb3NpdGlvbkNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjbG9zZVN1YmplY3Q6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHN0YXJ0RGlzcGxheTogc3RyaW5nIHwgbnVtYmVyID0gJyc7XHJcbiAgZW5kRGlzcGxheTogc3RyaW5nIHwgbnVtYmVyID0gJyc7XHJcbiAgc3RhcnRBY3RpdmU6IFhCb29sZWFuID0gZmFsc2U7XHJcbiAgZW5kQWN0aXZlOiBYQm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHBvcnRhbFNlcnZpY2U6IFhQb3J0YWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXlcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RmxleCh0aGlzLmRhdGVSYW5nZS5uYXRpdmVFbGVtZW50LCB0aGlzLnJlbmRlcmVyLCB0aGlzLmp1c3RpZnksIHRoaXMuYWxpZ24sIHRoaXMuZGlyZWN0aW9uKTtcclxuICAgIHRoaXMuc2V0Rm9ybWF0KCk7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB0aGlzLnNldFN1YmplY3QoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2V0UG9ydGFsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHR5cGUgfSA9IGNoYW5nZXM7XHJcbiAgICBpZiAoWElzQ2hhbmdlKHR5cGUpKSB7XHJcbiAgICAgIHRoaXMuc2V0Rm9ybWF0KCk7XHJcbiAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRGb3JtYXQoKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtYXQgIT09ICd5eXl5LU1NLWRkJykgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUnKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0tZGQnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICd5ZWFyJykge1xyXG4gICAgICB0aGlzLmZvcm1hdCA9ICd5eXl5JztcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0nO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlLXRpbWUnKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0tZGQgSEg6bW06c3MnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlLWhvdXInKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0tZGQgSEgnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlLW1pbnV0ZScpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTS1kZCBISDptbSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtZW50ZXIoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5lbnRlciA9IHRydWU7XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMubnVtYmVyVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaWNvbiA9ICcnO1xyXG4gICAgICB0aGlzLmlucHV0Q2xlYXJhYmxlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWxlYXZlKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuZW50ZXIgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmlucHV0Q2xlYXJhYmxlKSB7XHJcbiAgICAgIHRoaXMuaWNvbiA9ICdmdG8tY2FsZW5kYXInO1xyXG4gICAgICB0aGlzLmlucHV0Q2xlYXJhYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyRW1pdCgpIHtcclxuICAgIHRoaXMudmFsdWUgPSBbXTtcclxuICAgIHRoaXMubnVtYmVyVmFsdWUgPSBbXTtcclxuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gW107XHJcbiAgICB0aGlzLm1sZWF2ZSgpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgbW9kZWxDaGFuZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuZ2V0VmFsdWUoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGVsVHlwZSA9PT0gJ2RhdGUnXHJcbiAgICAgID8gdGhpcy5udW1iZXJWYWx1ZS5tYXAoKHgpID0+IG5ldyBEYXRlKHgpKVxyXG4gICAgICA6IHRoaXMubW9kZWxUeXBlID09PSAnc3RyaW5nJ1xyXG4gICAgICA/IHRoaXMubnVtYmVyVmFsdWUubWFwKCh4KSA9PiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh4LCB0aGlzLmZvcm1hdCkpXHJcbiAgICAgIDogdGhpcy5udW1iZXJWYWx1ZTtcclxuICB9XHJcblxyXG4gIHBvcnRhbEF0dGFjaGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kZXRhY2goKTtcclxuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3lQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd1BvcnRhbCgkZXZlbnQ6IEV2ZW50LCB0eXBlPzogJ3N0YXJ0JyB8ICdlbmQnKSB7XHJcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmFuaW1hdGluZykgcmV0dXJuO1xyXG4gICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xyXG4gICAgdGhpcy5zdGFydEFjdGl2ZSA9IHR5cGUgPT09ICdzdGFydCc7XHJcbiAgICB0aGlzLmVuZEFjdGl2ZSA9IHR5cGUgPT09ICdlbmQnO1xyXG4gICAgY29uc3QgY29uZmlnOiBPdmVybGF5Q29uZmlnID0ge1xyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnJyxcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5zZXRQbGFjZW1lbnQoKSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxyXG4gICAgfTtcclxuICAgIHRoaXMuc2V0UG9zaXRpb24oY29uZmlnKTtcclxuICAgIHRoaXMucG9ydGFsID0gdGhpcy5wb3J0YWxTZXJ2aWNlLmF0dGFjaCh7XHJcbiAgICAgIGNvbnRlbnQ6IFhEYXRlUmFuZ2VQb3J0YWxDb21wb25lbnQsXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcclxuICAgICAgb3ZlcmxheUNvbmZpZzogY29uZmlnXHJcbiAgICB9KTtcclxuICAgIHRoaXMucG9ydGFsLm92ZXJsYXlSZWZcclxuICAgICAgPy5vdXRzaWRlUG9pbnRlckV2ZW50cygpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSh0aGlzLm51bWJlclZhbHVlKTtcclxuICAgICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5zZXRJbnN0YW5jZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UG9zaXRpb24oY29uZmlnOiBPdmVybGF5Q29uZmlnKSB7XHJcbiAgICBsZXQgcG9zaXRpb24gPSBjb25maWcucG9zaXRpb25TdHJhdGVneSBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3k7XHJcbiAgICBwb3NpdGlvbi5wb3NpdGlvbkNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKChwb3M6IENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSkgPT4ge1xyXG4gICAgICBjb25zdCBwbGFjZSA9IFhQb3J0YWxDb25uZWN0ZWRQb3NpdGlvbi5nZXQocG9zLmNvbm5lY3Rpb25QYWlyKSBhcyBYQ29ybmVyO1xyXG4gICAgICBwbGFjZSAhPT0gdGhpcy5wbGFjZW1lbnQgJiYgdGhpcy5wb3NpdGlvbkNoYW5nZS5uZXh0KHBsYWNlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5zdGFuY2UoKSB7XHJcbiAgICBsZXQgY29tcG9uZW50UmVmID0gdGhpcy5wb3J0YWw/LmNvbXBvbmVudFJlZjtcclxuICAgIGlmICghY29tcG9uZW50UmVmKSByZXR1cm47XHJcbiAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwge1xyXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXHJcbiAgICAgIHZhbHVlOiB0aGlzLm51bWJlclZhbHVlLFxyXG4gICAgICBwbGFjZW1lbnQ6IHRoaXMucGxhY2VtZW50LFxyXG4gICAgICBwcmVzZXQ6IHRoaXMucHJlc2V0LFxyXG4gICAgICB2YWx1ZUNoYW5nZTogdGhpcy52YWx1ZUNoYW5nZSxcclxuICAgICAgcG9zaXRpb25DaGFuZ2U6IHRoaXMucG9zaXRpb25DaGFuZ2UsXHJcbiAgICAgIGNsb3NlUG9ydGFsOiAoKSA9PiB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCksXHJcbiAgICAgIGRlc3Ryb3lQb3J0YWw6ICgpID0+IHRoaXMuZGVzdHJveVBvcnRhbCgpLFxyXG4gICAgICBub2RlRW1pdDogKGRhdGVzOiBEYXRlW10sIHN1cmUgPSB0cnVlKSA9PiB0aGlzLm9uTm9kZUNsaWNrKGRhdGVzLCBzdXJlKSxcclxuICAgICAgc3RhcnROb2RlRW1pdDogKG5vZGU6IERhdGUpID0+IHRoaXMuc3RhcnROb2RlQ2xpY2sobm9kZSksXHJcbiAgICAgIGVuZE5vZGVFbWl0OiAobm9kZTogRGF0ZSkgPT4gdGhpcy5lbmROb2RlQ2xpY2sobm9kZSksXHJcbiAgICAgIGFuaW1hdGluZzogKGluZzogYm9vbGVhbikgPT4gKHRoaXMuYW5pbWF0aW5nID0gaW5nKVxyXG4gICAgfSk7XHJcbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnROb2RlQ2xpY2sobm9kZTogRGF0ZSkge1xyXG4gICAgdGhpcy5zdGFydERpc3BsYXkgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShub2RlLCB0aGlzLmZvcm1hdCkgYXMgc3RyaW5nO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZW5kTm9kZUNsaWNrKG5vZGU6IERhdGUpIHtcclxuICAgIHRoaXMuZW5kRGlzcGxheSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5vZGUsIHRoaXMuZm9ybWF0KSBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbk5vZGVDbGljayhkYXRlczogRGF0ZVtdLCBzdXJlID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5pc0lucHV0ID0gZmFsc2U7XHJcbiAgICBpZiAoc3VyZSkge1xyXG4gICAgICB0aGlzLm51bWJlclZhbHVlID0gZGF0ZXMubWFwKCh4KSA9PiB4LmdldFRpbWUoKSk7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XHJcbiAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UoKTtcclxuICAgICAgdGhpcy5ub2RlRW1pdC5lbWl0KHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUoZGF0ZXMubWFwKCh4KSA9PiB4LmdldFRpbWUoKSkpO1xyXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW5wdXQoKSB7XHJcbiAgICB0aGlzLmlzSW5wdXQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzcGxheVZhbHVlKGRhdGVOdW1iZXI6IG51bWJlcltdKSB7XHJcbiAgICAvLyBpZiAodGhpcy5pc0lucHV0ICYmIGlzTmFOKHRoaXMuc3RhcnREaXNwbGF5KSAmJiAhaXNOYU4oRGF0ZS5wYXJzZSh0aGlzLmRpc3BsYXlWYWx1ZSkpKSB7XHJcbiAgICAvLyAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5kaXNwbGF5VmFsdWUsIHRoaXMuZm9ybWF0KTtcclxuICAgIC8vICAgdGhpcy5udW1iZXJWYWx1ZSA9IG5ldyBEYXRlKHRoaXMuZGlzcGxheVZhbHVlKS5nZXRUaW1lKCk7XHJcbiAgICAvLyAgIHRoaXMudmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XHJcbiAgICAvLyAgIHRoaXMubW9kZWxDaGFuZ2UoKTtcclxuICAgIC8vICAgdGhpcy5pc0lucHV0ID0gZmFsc2U7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBkYXRlTnVtYmVyLm1hcCgoeCkgPT4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oeCwgdGhpcy5mb3JtYXQpKSBhcyBzdHJpbmdbXTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIHNldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgZWxlbWVudFJlZjogdGhpcy5pbnB1dEdyb3VwLmVsZW1lbnRSZWYsXHJcbiAgICAgIHBsYWNlbWVudDogW3RoaXMucGxhY2VtZW50IGFzIFhDb3JuZXIsICdib3R0b20tc3RhcnQnLCAnYm90dG9tLWVuZCcsICd0b3Atc3RhcnQnLCAndG9wLWVuZCddLFxyXG4gICAgICB0cmFuc2Zvcm1PcmlnaW5PbjogJ3gtZGF0ZS1yYW5nZS1wb3J0YWwnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsQXR0YWNoZWQoKSAmJiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLnNldFBsYWNlbWVudCgpKTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgWENsZWFyQ2xhc3ModGhpcy5sYWJlbE1hcCk7XHJcbiAgICB0aGlzLmxhYmVsTWFwW2B4LXRleHQtYWxpZ24tJHt0aGlzLmxhYmVsQWxpZ259YF0gPSB0aGlzLmxhYmVsQWxpZ24gPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBmb3JtQ29udHJvbENoYW5nZXMoKSB7XHJcbiAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI2RhdGVSYW5nZSBjbGFzcz1cIngtZGF0ZS1yYW5nZVwiIFtjbGFzcy54LWRhdGUtcmFuZ2UtYWN0aXZlXT1cImFjdGl2ZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcmFuZ2Utcm93XCI+XHJcbiAgICA8eC1pbnB1dC1ncm91cCAjaW5wdXRHcm91cCBjbGFzcz1cIngtZGF0ZS1yYW5nZS1ncm91cFwiIGJvcmRlcmVkPVwiZmFsc2VcIiAoY2xpY2spPVwic2hvd1BvcnRhbCgkZXZlbnQpXCI+XHJcbiAgICAgIDx4LWlucHV0XHJcbiAgICAgICAgI2lucHV0U3RhcnRDb21cclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgIFsoYWN0aXZlKV09XCJzdGFydEFjdGl2ZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInNob3dQb3J0YWwoJGV2ZW50LCAnc3RhcnQnKVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzdGFydERpc3BsYXlcIlxyXG4gICAgICA+PC94LWlucHV0PlxyXG4gICAgICA8eC1pY29uIHR5cGU9XCJmdG8tYXJyb3ctcmlnaHRcIj48L3gtaWNvbj5cclxuICAgICAgPHgtaW5wdXRcclxuICAgICAgICAjaW5wdXRFbmRDb21cclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCLnu5PmnZ/ml6XmnJ9cIlxyXG4gICAgICAgIFsoYWN0aXZlKV09XCJlbmRBY3RpdmVcIlxyXG4gICAgICAgIChjbGljayk9XCJzaG93UG9ydGFsKCRldmVudCwgJ2VuZCcpXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cImVuZERpc3BsYXlcIlxyXG4gICAgICA+PC94LWlucHV0PlxyXG4gICAgICA8eC1pY29uIFt0eXBlXT1cImljb25cIj48L3gtaWNvbj5cclxuICAgIDwveC1pbnB1dC1ncm91cD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==