@ng-nest/ui 17.0.11 → 18.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (923) hide show
  1. package/README.md +1 -1
  2. package/affix/affix.component.d.ts +0 -2
  3. package/affix/affix.property.d.ts +12 -7
  4. package/alert/alert.component.d.ts +12 -11
  5. package/alert/alert.property.d.ts +36 -35
  6. package/anchor/anchor.component.d.ts +15 -18
  7. package/anchor/anchor.property.d.ts +17 -8
  8. package/api/api.component.d.ts +2 -7
  9. package/auto-complete/auto-complete-portal.component.d.ts +20 -25
  10. package/auto-complete/auto-complete.component.d.ts +17 -34
  11. package/auto-complete/auto-complete.property.d.ts +282 -20
  12. package/avatar/avatar.component.d.ts +29 -19
  13. package/avatar/avatar.property.d.ts +78 -12
  14. package/back-top/back-top.component.d.ts +12 -17
  15. package/back-top/back-top.property.d.ts +12 -8
  16. package/badge/badge.component.d.ts +9 -16
  17. package/badge/badge.property.d.ts +95 -13
  18. package/base-form/base-form.component.d.ts +53 -26
  19. package/base-form/base-form.module.d.ts +1 -2
  20. package/base-form/base-form.property.d.ts +173 -45
  21. package/button/button.component.d.ts +16 -14
  22. package/button/button.property.d.ts +242 -100
  23. package/button/buttons.component.d.ts +8 -10
  24. package/calendar/calendar.component.d.ts +41 -27
  25. package/calendar/calendar.property.d.ts +69 -10
  26. package/card/card.component.d.ts +4 -6
  27. package/card/card.property.d.ts +50 -9
  28. package/carousel/carousel-panel.component.d.ts +15 -14
  29. package/carousel/carousel.component.d.ts +18 -19
  30. package/carousel/carousel.property.d.ts +168 -28
  31. package/cascade/cascade-portal.component.d.ts +28 -28
  32. package/cascade/cascade.component.d.ts +24 -30
  33. package/cascade/cascade.property.d.ts +292 -20
  34. package/checkbox/checkbox.component.d.ts +17 -17
  35. package/checkbox/checkbox.property.d.ts +274 -35
  36. package/collapse/collapse-panel.component.d.ts +5 -2
  37. package/collapse/collapse.component.d.ts +3 -7
  38. package/collapse/collapse.property.d.ts +113 -20
  39. package/color/color.component.d.ts +4 -9
  40. package/color/color.property.d.ts +36 -8
  41. package/color-picker/color-picker-portal.component.d.ts +40 -52
  42. package/color-picker/color-picker.component.d.ts +19 -28
  43. package/color-picker/color-picker.property.d.ts +260 -10
  44. package/comment/comment-reply.component.d.ts +1 -8
  45. package/comment/comment.component.d.ts +4 -14
  46. package/comment/comment.property.d.ts +21 -15
  47. package/container/aside.component.d.ts +3 -8
  48. package/container/container.component.d.ts +5 -9
  49. package/container/container.property.d.ts +33 -19
  50. package/container/footer.component.d.ts +2 -5
  51. package/container/header.component.d.ts +2 -5
  52. package/container/main.component.d.ts +2 -7
  53. package/core/animation/badge.d.ts +8 -0
  54. package/core/animation/connect.d.ts +8 -1
  55. package/core/animation/consts.d.ts +4 -0
  56. package/core/animation/drop.d.ts +4 -0
  57. package/core/animation/fade.d.ts +4 -0
  58. package/core/animation/move.d.ts +4 -0
  59. package/core/animation/opacity.d.ts +4 -0
  60. package/core/animation/slide.d.ts +4 -1
  61. package/core/config/config.d.ts +174 -108
  62. package/core/config/config.service.d.ts +5 -5
  63. package/core/config/index.d.ts +1 -0
  64. package/core/functions/chunk.d.ts +12 -1
  65. package/core/functions/clone-deep.d.ts +16 -0
  66. package/core/functions/convert.d.ts +77 -4
  67. package/core/functions/csspx.d.ts +5 -0
  68. package/core/functions/date.d.ts +59 -3
  69. package/core/functions/drop.d.ts +13 -1
  70. package/core/functions/flex.d.ts +4 -0
  71. package/core/functions/group-by.d.ts +5 -1
  72. package/core/functions/guid.d.ts +2 -1
  73. package/core/functions/has-in.d.ts +4 -0
  74. package/core/functions/order-by.d.ts +5 -1
  75. package/core/functions/parent-path.d.ts +8 -0
  76. package/core/functions/property.d.ts +12 -6
  77. package/core/functions/public-api.d.ts +1 -0
  78. package/core/functions/remove.d.ts +5 -1
  79. package/core/functions/resize.d.ts +13 -1
  80. package/core/interfaces/data.type.d.ts +172 -3
  81. package/core/interfaces/identify.type.d.ts +60 -0
  82. package/core/interfaces/layout.type.d.ts +88 -37
  83. package/core/interfaces/result-list.type.d.ts +91 -3
  84. package/core/services/http.service.d.ts +0 -22
  85. package/core/services/repository.service.d.ts +1 -1
  86. package/core/services/reuse-strategy.service.d.ts +0 -22
  87. package/core/services/storage.service.d.ts +0 -21
  88. package/core/theme/theme.d.ts +45 -1
  89. package/core/theme/theme.service.d.ts +46 -11
  90. package/core/util/animation.d.ts +1 -1
  91. package/core/util/camel-to-kebab.d.ts +13 -0
  92. package/core/util/check.d.ts +10 -2
  93. package/core/util/computed-style.d.ts +8 -0
  94. package/core/util/host.d.ts +3 -2
  95. package/core/util/html.d.ts +3 -2
  96. package/core/util/kebab-to-camel.d.ts +13 -0
  97. package/core/util/log.d.ts +10 -2
  98. package/core/util/option.d.ts +3 -4
  99. package/core/util/public-api.d.ts +2 -0
  100. package/crumb/crumb.component.d.ts +1 -10
  101. package/crumb/crumb.property.d.ts +12 -8
  102. package/date-picker/date-picker-portal.component.d.ts +80 -33
  103. package/date-picker/date-picker.component.d.ts +74 -32
  104. package/date-picker/date-picker.property.d.ts +662 -214
  105. package/date-picker/date-range-portal.component.d.ts +102 -49
  106. package/date-picker/date-range.component.d.ts +87 -43
  107. package/date-picker/picker-date.component.d.ts +63 -17
  108. package/date-picker/picker-month.component.d.ts +59 -13
  109. package/date-picker/picker-quarter.component.d.ts +61 -15
  110. package/date-picker/picker-year.component.d.ts +8 -11
  111. package/description/description-item.component.d.ts +1 -1
  112. package/description/description.component.d.ts +6 -10
  113. package/description/description.property.d.ts +135 -16
  114. package/dialog/dialog-portal.component.d.ts +4 -4
  115. package/dialog/dialog-portal.directives.d.ts +1 -1
  116. package/dialog/dialog.component.d.ts +30 -23
  117. package/dialog/dialog.property.d.ts +77 -134
  118. package/doc/doc.component.d.ts +2 -5
  119. package/drag/drag.directive.d.ts +1 -1
  120. package/drag/drag.property.d.ts +4 -5
  121. package/drawer/drawer-container.component.d.ts +1 -1
  122. package/drawer/drawer-portal.component.d.ts +1 -1
  123. package/drawer/drawer.component.d.ts +15 -14
  124. package/drawer/drawer.property.d.ts +26 -18
  125. package/dropdown/dropdown-portal.component.d.ts +36 -45
  126. package/dropdown/dropdown.component.d.ts +17 -21
  127. package/dropdown/dropdown.property.d.ts +24 -21
  128. package/empty/empty.component.d.ts +0 -7
  129. package/empty/empty.property.d.ts +27 -4
  130. package/esm2022/affix/affix.component.mjs +6 -11
  131. package/esm2022/affix/affix.module.mjs +4 -4
  132. package/esm2022/affix/affix.property.mjs +22 -20
  133. package/esm2022/alert/alert.component.mjs +39 -44
  134. package/esm2022/alert/alert.module.mjs +4 -4
  135. package/esm2022/alert/alert.property.mjs +102 -107
  136. package/esm2022/anchor/anchor-inner.component.mjs +3 -3
  137. package/esm2022/anchor/anchor.component.mjs +73 -95
  138. package/esm2022/anchor/anchor.module.mjs +4 -4
  139. package/esm2022/anchor/anchor.property.mjs +45 -35
  140. package/esm2022/api/api.component.mjs +11 -14
  141. package/esm2022/api/api.module.mjs +4 -4
  142. package/esm2022/auto-complete/auto-complete-portal.component.mjs +36 -47
  143. package/esm2022/auto-complete/auto-complete.component.mjs +122 -162
  144. package/esm2022/auto-complete/auto-complete.module.mjs +4 -4
  145. package/esm2022/auto-complete/auto-complete.property.mjs +142 -55
  146. package/esm2022/avatar/avatar-group.component.mjs +3 -3
  147. package/esm2022/avatar/avatar.component.mjs +75 -81
  148. package/esm2022/avatar/avatar.module.mjs +4 -4
  149. package/esm2022/avatar/avatar.property.mjs +116 -45
  150. package/esm2022/back-top/back-top.component.mjs +57 -73
  151. package/esm2022/back-top/back-top.module.mjs +4 -4
  152. package/esm2022/back-top/back-top.property.mjs +37 -29
  153. package/esm2022/badge/badge.component.mjs +51 -59
  154. package/esm2022/badge/badge.module.mjs +4 -4
  155. package/esm2022/badge/badge.property.mjs +111 -38
  156. package/esm2022/base-form/base-form.component.mjs +89 -81
  157. package/esm2022/base-form/base-form.module.mjs +7 -8
  158. package/esm2022/base-form/base-form.property.mjs +200 -89
  159. package/esm2022/button/button.component.mjs +50 -59
  160. package/esm2022/button/button.module.mjs +4 -4
  161. package/esm2022/button/button.property.mjs +293 -98
  162. package/esm2022/button/buttons.component.mjs +35 -21
  163. package/esm2022/calendar/calendar.component.mjs +56 -84
  164. package/esm2022/calendar/calendar.module.mjs +4 -4
  165. package/esm2022/calendar/calendar.property.mjs +78 -24
  166. package/esm2022/card/card.component.mjs +10 -14
  167. package/esm2022/card/card.module.mjs +4 -4
  168. package/esm2022/card/card.property.mjs +57 -22
  169. package/esm2022/carousel/carousel-panel.component.mjs +98 -76
  170. package/esm2022/carousel/carousel.component.mjs +55 -65
  171. package/esm2022/carousel/carousel.module.mjs +4 -4
  172. package/esm2022/carousel/carousel.property.mjs +215 -85
  173. package/esm2022/cascade/cascade-portal.component.mjs +77 -69
  174. package/esm2022/cascade/cascade.component.mjs +107 -135
  175. package/esm2022/cascade/cascade.module.mjs +4 -4
  176. package/esm2022/cascade/cascade.property.mjs +137 -48
  177. package/esm2022/checkbox/checkbox.component.mjs +68 -83
  178. package/esm2022/checkbox/checkbox.module.mjs +4 -4
  179. package/esm2022/checkbox/checkbox.property.mjs +136 -73
  180. package/esm2022/collapse/collapse-panel.component.mjs +31 -21
  181. package/esm2022/collapse/collapse.component.mjs +16 -21
  182. package/esm2022/collapse/collapse.module.mjs +4 -4
  183. package/esm2022/collapse/collapse.property.mjs +156 -66
  184. package/esm2022/color/color.component.mjs +25 -26
  185. package/esm2022/color/color.module.mjs +4 -4
  186. package/esm2022/color/color.property.mjs +47 -27
  187. package/esm2022/color-picker/color-picker-portal.component.mjs +120 -130
  188. package/esm2022/color-picker/color-picker.component.mjs +76 -117
  189. package/esm2022/color-picker/color-picker.module.mjs +4 -4
  190. package/esm2022/color-picker/color-picker.property.mjs +123 -27
  191. package/esm2022/comment/comment-reply.component.mjs +9 -24
  192. package/esm2022/comment/comment.component.mjs +11 -40
  193. package/esm2022/comment/comment.module.mjs +4 -4
  194. package/esm2022/comment/comment.property.mjs +27 -50
  195. package/esm2022/container/aside.component.mjs +12 -15
  196. package/esm2022/container/container.component.mjs +21 -24
  197. package/esm2022/container/container.module.mjs +4 -4
  198. package/esm2022/container/container.property.mjs +55 -51
  199. package/esm2022/container/footer.component.mjs +14 -16
  200. package/esm2022/container/header.component.mjs +14 -16
  201. package/esm2022/container/main.component.mjs +10 -13
  202. package/esm2022/core/animation/badge.mjs +17 -3
  203. package/esm2022/core/animation/connect.mjs +17 -99
  204. package/esm2022/core/animation/consts.mjs +5 -1
  205. package/esm2022/core/animation/drop.mjs +5 -1
  206. package/esm2022/core/animation/fade.mjs +13 -3
  207. package/esm2022/core/animation/move.mjs +5 -1
  208. package/esm2022/core/animation/opacity.mjs +5 -1
  209. package/esm2022/core/animation/slide.mjs +5 -23
  210. package/esm2022/core/config/config.mjs +1 -1
  211. package/esm2022/core/config/config.service.mjs +11 -59
  212. package/esm2022/core/config/index.mjs +2 -0
  213. package/esm2022/core/functions/chunk.mjs +12 -1
  214. package/esm2022/core/functions/clone-deep.mjs +17 -1
  215. package/esm2022/core/functions/convert.mjs +110 -13
  216. package/esm2022/core/functions/csspx.mjs +17 -0
  217. package/esm2022/core/functions/date.mjs +80 -4
  218. package/esm2022/core/functions/drop.mjs +13 -1
  219. package/esm2022/core/functions/flex.mjs +5 -1
  220. package/esm2022/core/functions/group-by.mjs +5 -1
  221. package/esm2022/core/functions/guid.mjs +3 -2
  222. package/esm2022/core/functions/has-in.mjs +5 -1
  223. package/esm2022/core/functions/order-by.mjs +5 -1
  224. package/esm2022/core/functions/parent-path.mjs +9 -1
  225. package/esm2022/core/functions/property.mjs +16 -8
  226. package/esm2022/core/functions/public-api.mjs +2 -1
  227. package/esm2022/core/functions/remove.mjs +5 -1
  228. package/esm2022/core/functions/resize.mjs +7 -5
  229. package/esm2022/core/interfaces/data.type.mjs +97 -8
  230. package/esm2022/core/interfaces/identify.type.mjs +5 -2
  231. package/esm2022/core/interfaces/layout.type.mjs +1 -1
  232. package/esm2022/core/interfaces/result-list.type.mjs +1 -1
  233. package/esm2022/core/services/http.service.mjs +4 -33
  234. package/esm2022/core/services/preloading-strategy.service.mjs +4 -6
  235. package/esm2022/core/services/repository.service.mjs +1 -1
  236. package/esm2022/core/services/reuse-strategy.service.mjs +1 -26
  237. package/esm2022/core/services/storage.service.mjs +4 -26
  238. package/esm2022/core/theme/theme.mjs +55 -11
  239. package/esm2022/core/theme/theme.service.mjs +92 -20
  240. package/esm2022/core/util/animation.mjs +2 -23
  241. package/esm2022/core/util/camel-to-kebab.mjs +16 -0
  242. package/esm2022/core/util/check.mjs +11 -3
  243. package/esm2022/core/util/computed-style.mjs +9 -1
  244. package/esm2022/core/util/host.mjs +4 -3
  245. package/esm2022/core/util/html.mjs +5 -4
  246. package/esm2022/core/util/kebab-to-camel.mjs +16 -0
  247. package/esm2022/core/util/log.mjs +11 -3
  248. package/esm2022/core/util/option.mjs +4 -5
  249. package/esm2022/core/util/public-api.mjs +3 -1
  250. package/esm2022/crumb/crumb.component.mjs +6 -29
  251. package/esm2022/crumb/crumb.module.mjs +4 -4
  252. package/esm2022/crumb/crumb.property.mjs +21 -26
  253. package/esm2022/date-picker/date-picker-portal.component.mjs +86 -102
  254. package/esm2022/date-picker/date-picker.component.mjs +157 -191
  255. package/esm2022/date-picker/date-picker.module.mjs +4 -4
  256. package/esm2022/date-picker/date-picker.property.mjs +440 -462
  257. package/esm2022/date-picker/date-quarter.pipe.mjs +3 -3
  258. package/esm2022/date-picker/date-range-portal.component.mjs +172 -186
  259. package/esm2022/date-picker/date-range.component.mjs +224 -266
  260. package/esm2022/date-picker/picker-date.component.mjs +150 -150
  261. package/esm2022/date-picker/picker-month.component.mjs +115 -118
  262. package/esm2022/date-picker/picker-quarter.component.mjs +120 -119
  263. package/esm2022/date-picker/picker-year.component.mjs +121 -108
  264. package/esm2022/description/description-item.component.mjs +12 -11
  265. package/esm2022/description/description.component.mjs +33 -48
  266. package/esm2022/description/description.module.mjs +4 -4
  267. package/esm2022/description/description.property.mjs +175 -52
  268. package/esm2022/dialog/dialog-container.component.mjs +3 -3
  269. package/esm2022/dialog/dialog-portal.component.mjs +14 -20
  270. package/esm2022/dialog/dialog-portal.directives.mjs +20 -20
  271. package/esm2022/dialog/dialog-ref.mjs +1 -1
  272. package/esm2022/dialog/dialog.component.mjs +117 -131
  273. package/esm2022/dialog/dialog.module.mjs +4 -4
  274. package/esm2022/dialog/dialog.property.mjs +149 -139
  275. package/esm2022/dialog/dialog.service.mjs +7 -7
  276. package/esm2022/doc/doc.component.mjs +11 -12
  277. package/esm2022/doc/doc.module.mjs +4 -4
  278. package/esm2022/drag/drag.directive.mjs +8 -21
  279. package/esm2022/drag/drag.module.mjs +4 -4
  280. package/esm2022/drag/drag.property.mjs +10 -16
  281. package/esm2022/drawer/drawer-container.component.mjs +9 -9
  282. package/esm2022/drawer/drawer-portal.component.mjs +11 -13
  283. package/esm2022/drawer/drawer-portal.directives.mjs +9 -9
  284. package/esm2022/drawer/drawer.component.mjs +40 -59
  285. package/esm2022/drawer/drawer.module.mjs +4 -4
  286. package/esm2022/drawer/drawer.property.mjs +47 -54
  287. package/esm2022/drawer/drawer.service.mjs +6 -6
  288. package/esm2022/dropdown/dropdown-portal.component.mjs +90 -91
  289. package/esm2022/dropdown/dropdown.component.mjs +75 -91
  290. package/esm2022/dropdown/dropdown.module.mjs +4 -4
  291. package/esm2022/dropdown/dropdown.property.mjs +62 -59
  292. package/esm2022/empty/empty.component.mjs +6 -26
  293. package/esm2022/empty/empty.module.mjs +4 -4
  294. package/esm2022/empty/empty.property.mjs +41 -20
  295. package/esm2022/examples/examples.component.mjs +11 -12
  296. package/esm2022/examples/examples.module.mjs +4 -4
  297. package/esm2022/find/find.component.mjs +188 -232
  298. package/esm2022/find/find.module.mjs +4 -4
  299. package/esm2022/find/find.property.mjs +234 -193
  300. package/esm2022/form/control.component.mjs +138 -116
  301. package/esm2022/form/form.component.mjs +28 -36
  302. package/esm2022/form/form.module.mjs +4 -4
  303. package/esm2022/form/form.property.mjs +57 -55
  304. package/esm2022/highlight/highlight.component.mjs +54 -59
  305. package/esm2022/highlight/highlight.module.mjs +4 -4
  306. package/esm2022/highlight/highlight.property.mjs +25 -21
  307. package/esm2022/highlight/highlight.service.mjs +17 -0
  308. package/esm2022/highlight/public-api.mjs +2 -1
  309. package/esm2022/i18n/i18n.directive.mjs +17 -31
  310. package/esm2022/i18n/i18n.module.mjs +4 -4
  311. package/esm2022/i18n/i18n.pipe.mjs +4 -4
  312. package/esm2022/i18n/i18n.property.mjs +2 -2
  313. package/esm2022/i18n/i18n.service.mjs +4 -4
  314. package/esm2022/i18n/languages/ar_EG.mjs +122 -77
  315. package/esm2022/i18n/languages/bg_BG.mjs +135 -87
  316. package/esm2022/i18n/languages/ca_ES.mjs +130 -82
  317. package/esm2022/i18n/languages/cs_CZ.mjs +127 -79
  318. package/esm2022/i18n/languages/da_DK.mjs +129 -81
  319. package/esm2022/i18n/languages/de_DE.mjs +125 -77
  320. package/esm2022/i18n/languages/el_GR.mjs +132 -84
  321. package/esm2022/i18n/languages/en_GB.mjs +5 -2
  322. package/esm2022/i18n/languages/en_US.mjs +5 -2
  323. package/esm2022/i18n/languages/es_ES.mjs +131 -83
  324. package/esm2022/i18n/languages/et_EE.mjs +130 -82
  325. package/esm2022/i18n/languages/fa_IR.mjs +109 -61
  326. package/esm2022/i18n/languages/fi_FI.mjs +134 -86
  327. package/esm2022/i18n/languages/fr_BE.mjs +128 -80
  328. package/esm2022/i18n/languages/fr_FR.mjs +127 -79
  329. package/esm2022/i18n/languages/he_IL.mjs +119 -74
  330. package/esm2022/i18n/languages/hi_IN.mjs +104 -56
  331. package/esm2022/i18n/languages/hr_HR.mjs +133 -85
  332. package/esm2022/i18n/languages/hu_HU.mjs +132 -84
  333. package/esm2022/i18n/languages/hy_AM.mjs +133 -85
  334. package/esm2022/i18n/languages/id_ID.mjs +119 -71
  335. package/esm2022/i18n/languages/is_IS.mjs +125 -77
  336. package/esm2022/i18n/languages/it_IT.mjs +127 -79
  337. package/esm2022/i18n/languages/ja_JP.mjs +95 -47
  338. package/esm2022/i18n/languages/ka_GE.mjs +106 -58
  339. package/esm2022/i18n/languages/kn_IN.mjs +110 -62
  340. package/esm2022/i18n/languages/ko_KR.mjs +126 -70
  341. package/esm2022/i18n/languages/ku_IQ.mjs +117 -85
  342. package/esm2022/i18n/languages/lv_LV.mjs +128 -72
  343. package/esm2022/i18n/languages/mn_MN.mjs +138 -82
  344. package/esm2022/i18n/languages/ms_MY.mjs +124 -68
  345. package/esm2022/i18n/languages/nb_NO.mjs +133 -77
  346. package/esm2022/i18n/languages/ne_NP.mjs +117 -61
  347. package/esm2022/i18n/languages/nl_BE.mjs +134 -78
  348. package/esm2022/i18n/languages/nl_NL.mjs +134 -78
  349. package/esm2022/i18n/languages/pl_PL.mjs +132 -76
  350. package/esm2022/i18n/languages/pt_BR.mjs +133 -77
  351. package/esm2022/i18n/languages/pt_PT.mjs +133 -77
  352. package/esm2022/i18n/languages/ro_RO.mjs +130 -74
  353. package/esm2022/i18n/languages/ru_RU.mjs +131 -75
  354. package/esm2022/i18n/languages/sk_SK.mjs +130 -83
  355. package/esm2022/i18n/languages/sl_SI.mjs +121 -73
  356. package/esm2022/i18n/languages/sr_RS.mjs +138 -90
  357. package/esm2022/i18n/languages/sv_SE.mjs +132 -84
  358. package/esm2022/i18n/languages/ta_IN.mjs +117 -61
  359. package/esm2022/i18n/languages/th_TH.mjs +99 -43
  360. package/esm2022/i18n/languages/tr_TR.mjs +126 -70
  361. package/esm2022/i18n/languages/uk_UA.mjs +124 -68
  362. package/esm2022/i18n/languages/vi_VN.mjs +133 -77
  363. package/esm2022/i18n/languages/zh_CN.mjs +5 -2
  364. package/esm2022/i18n/languages/zh_TW.mjs +5 -2
  365. package/esm2022/icon/icon.component.mjs +46 -77
  366. package/esm2022/icon/icon.module.mjs +4 -4
  367. package/esm2022/icon/icon.property.mjs +52 -30
  368. package/esm2022/icon/icon.service.mjs +15 -14
  369. package/esm2022/image/image-group.component.mjs +15 -15
  370. package/esm2022/image/image-preview.component.mjs +47 -46
  371. package/esm2022/image/image.component.mjs +34 -53
  372. package/esm2022/image/image.module.mjs +4 -4
  373. package/esm2022/image/image.property.mjs +152 -38
  374. package/esm2022/index.mjs +1 -3
  375. package/esm2022/inner/inner.component.mjs +15 -20
  376. package/esm2022/inner/inner.module.mjs +4 -4
  377. package/esm2022/inner/inner.property.mjs +17 -15
  378. package/esm2022/input/input-group.component.mjs +5 -7
  379. package/esm2022/input/input.component.mjs +130 -143
  380. package/esm2022/input/input.module.mjs +4 -4
  381. package/esm2022/input/input.property.mjs +205 -143
  382. package/esm2022/input-number/input-number.component.mjs +68 -86
  383. package/esm2022/input-number/input-number.module.mjs +4 -4
  384. package/esm2022/input-number/input-number.property.mjs +130 -60
  385. package/esm2022/keyword/keyword.directive.mjs +46 -54
  386. package/esm2022/keyword/keyword.module.mjs +4 -4
  387. package/esm2022/keyword/keyword.property.mjs +32 -28
  388. package/esm2022/layout/col.component.mjs +48 -51
  389. package/esm2022/layout/layout.module.mjs +4 -4
  390. package/esm2022/layout/layout.property.mjs +71 -63
  391. package/esm2022/layout/row.component.mjs +36 -27
  392. package/esm2022/link/link.component.mjs +18 -45
  393. package/esm2022/link/link.module.mjs +4 -4
  394. package/esm2022/link/link.property.mjs +101 -41
  395. package/esm2022/list/list-drop-group.directive.mjs +9 -18
  396. package/esm2022/list/list-option.component.mjs +16 -33
  397. package/esm2022/list/list.component.mjs +160 -164
  398. package/esm2022/list/list.module.mjs +4 -4
  399. package/esm2022/list/list.property.mjs +195 -188
  400. package/esm2022/loading/loading.component.mjs +44 -45
  401. package/esm2022/loading/loading.module.mjs +4 -4
  402. package/esm2022/loading/loading.property.mjs +50 -52
  403. package/esm2022/menu/menu-node.component.mjs +21 -21
  404. package/esm2022/menu/menu.component.mjs +57 -76
  405. package/esm2022/menu/menu.module.mjs +4 -4
  406. package/esm2022/menu/menu.property.mjs +56 -73
  407. package/esm2022/message/message.component.mjs +8 -8
  408. package/esm2022/message/message.module.mjs +4 -4
  409. package/esm2022/message/message.property.mjs +1 -1
  410. package/esm2022/message/message.service.mjs +7 -7
  411. package/esm2022/message-box/message-box.component.mjs +5 -5
  412. package/esm2022/message-box/message-box.module.mjs +4 -4
  413. package/esm2022/message-box/message-box.service.mjs +6 -6
  414. package/esm2022/notification/notification.component.mjs +8 -8
  415. package/esm2022/notification/notification.module.mjs +4 -4
  416. package/esm2022/notification/notification.property.mjs +1 -1
  417. package/esm2022/notification/notification.service.mjs +8 -8
  418. package/esm2022/outlet/outlet.directive.mjs +12 -14
  419. package/esm2022/outlet/outlet.module.mjs +4 -4
  420. package/esm2022/outlet/outlet.property.mjs +2 -2
  421. package/esm2022/page-header/page-header.component.mjs +12 -28
  422. package/esm2022/page-header/page-header.module.mjs +4 -4
  423. package/esm2022/page-header/page-header.property.mjs +31 -27
  424. package/esm2022/pagination/pagination.component.mjs +74 -100
  425. package/esm2022/pagination/pagination.module.mjs +4 -4
  426. package/esm2022/pagination/pagination.property.mjs +99 -136
  427. package/esm2022/pattern/pattern.component.mjs +12 -13
  428. package/esm2022/pattern/pattern.module.mjs +4 -4
  429. package/esm2022/pattern/pattern.property.mjs +2 -2
  430. package/esm2022/popconfirm/popconfirm.component.mjs +35 -47
  431. package/esm2022/popconfirm/popconfirm.module.mjs +4 -4
  432. package/esm2022/popconfirm/popconfirm.property.mjs +76 -62
  433. package/esm2022/popover/popover-portal.component.mjs +24 -75
  434. package/esm2022/popover/popover.directive.mjs +70 -86
  435. package/esm2022/popover/popover.module.mjs +4 -4
  436. package/esm2022/popover/popover.property.mjs +71 -58
  437. package/esm2022/portal/portal.module.mjs +4 -4
  438. package/esm2022/portal/portal.property.mjs +1 -1
  439. package/esm2022/portal/portal.service.mjs +4 -4
  440. package/esm2022/progress/progress.component.mjs +173 -167
  441. package/esm2022/progress/progress.module.mjs +4 -4
  442. package/esm2022/progress/progress.property.mjs +67 -71
  443. package/esm2022/radio/radio.component.mjs +45 -61
  444. package/esm2022/radio/radio.module.mjs +4 -4
  445. package/esm2022/radio/radio.property.mjs +139 -66
  446. package/esm2022/rate/rate.component.mjs +61 -79
  447. package/esm2022/rate/rate.module.mjs +4 -4
  448. package/esm2022/rate/rate.property.mjs +121 -29
  449. package/esm2022/resizable/resizable.directive.mjs +30 -45
  450. package/esm2022/resizable/resizable.module.mjs +4 -4
  451. package/esm2022/resizable/resizable.property.mjs +16 -46
  452. package/esm2022/result/result.component.mjs +13 -17
  453. package/esm2022/result/result.module.mjs +4 -4
  454. package/esm2022/result/result.property.mjs +25 -17
  455. package/esm2022/ripple/ripple.directive.mjs +38 -27
  456. package/esm2022/ripple/ripple.module.mjs +4 -4
  457. package/esm2022/ripple/ripple.property.mjs +27 -20
  458. package/esm2022/select/select-portal.component.mjs +52 -67
  459. package/esm2022/select/select.component.mjs +301 -289
  460. package/esm2022/select/select.module.mjs +4 -4
  461. package/esm2022/select/select.property.mjs +195 -102
  462. package/esm2022/skeleton/skeleton.component.mjs +12 -23
  463. package/esm2022/skeleton/skeleton.module.mjs +4 -4
  464. package/esm2022/skeleton/skeleton.property.mjs +31 -28
  465. package/esm2022/slider/slider.component.mjs +103 -149
  466. package/esm2022/slider/slider.module.mjs +4 -4
  467. package/esm2022/slider/slider.property.mjs +60 -79
  468. package/esm2022/slider-select/slider-select.component.mjs +201 -220
  469. package/esm2022/slider-select/slider-select.module.mjs +4 -4
  470. package/esm2022/slider-select/slider-select.property.mjs +143 -70
  471. package/esm2022/statistic/countdown.component.mjs +13 -16
  472. package/esm2022/statistic/statistic.component.mjs +23 -21
  473. package/esm2022/statistic/statistic.module.mjs +4 -4
  474. package/esm2022/statistic/statistic.property.mjs +68 -34
  475. package/esm2022/steps/steps.component.mjs +33 -63
  476. package/esm2022/steps/steps.module.mjs +4 -4
  477. package/esm2022/steps/steps.property.mjs +28 -39
  478. package/esm2022/switch/switch.component.mjs +22 -37
  479. package/esm2022/switch/switch.module.mjs +4 -4
  480. package/esm2022/switch/switch.property.mjs +122 -32
  481. package/esm2022/table/table-body.component.mjs +134 -139
  482. package/esm2022/table/table-foot.component.mjs +15 -18
  483. package/esm2022/table/table-head.component.mjs +60 -91
  484. package/esm2022/table/table.component.mjs +192 -222
  485. package/esm2022/table/table.module.mjs +4 -4
  486. package/esm2022/table/table.property.mjs +396 -341
  487. package/esm2022/tabs/tab-content.component.mjs +13 -16
  488. package/esm2022/tabs/tab-link.directive.mjs +6 -6
  489. package/esm2022/tabs/tab.component.mjs +9 -17
  490. package/esm2022/tabs/tabs.component.mjs +83 -135
  491. package/esm2022/tabs/tabs.module.mjs +4 -4
  492. package/esm2022/tabs/tabs.property.mjs +80 -91
  493. package/esm2022/tag/tag.component.mjs +19 -33
  494. package/esm2022/tag/tag.module.mjs +4 -4
  495. package/esm2022/tag/tag.property.mjs +44 -68
  496. package/esm2022/text-retract/text-retract.component.mjs +29 -46
  497. package/esm2022/text-retract/text-retract.module.mjs +4 -4
  498. package/esm2022/text-retract/text-retract.property.mjs +22 -18
  499. package/esm2022/textarea/textarea.component.mjs +49 -79
  500. package/esm2022/textarea/textarea.module.mjs +4 -4
  501. package/esm2022/textarea/textarea.property.mjs +124 -47
  502. package/esm2022/theme/theme.component.mjs +86 -81
  503. package/esm2022/theme/theme.module.mjs +4 -4
  504. package/esm2022/theme/theme.property.mjs +35 -46
  505. package/esm2022/time-ago/time-ago.module.mjs +4 -4
  506. package/esm2022/time-ago/time-ago.pipe.mjs +12 -11
  507. package/esm2022/time-ago/time-ago.property.mjs +2 -2
  508. package/esm2022/time-picker/time-picker-frame.component.mjs +173 -188
  509. package/esm2022/time-picker/time-picker-portal.component.mjs +35 -42
  510. package/esm2022/time-picker/time-picker.component.mjs +139 -170
  511. package/esm2022/time-picker/time-picker.module.mjs +4 -4
  512. package/esm2022/time-picker/time-picker.property.mjs +158 -70
  513. package/esm2022/time-range/time-range.module.mjs +4 -4
  514. package/esm2022/time-range/time-range.pipe.mjs +10 -10
  515. package/esm2022/time-range/time-range.property.mjs +2 -2
  516. package/esm2022/timeline/timeline.component.mjs +14 -38
  517. package/esm2022/timeline/timeline.module.mjs +4 -4
  518. package/esm2022/timeline/timeline.property.mjs +30 -30
  519. package/esm2022/tooltip/tooltip-portal.component.mjs +51 -65
  520. package/esm2022/tooltip/tooltip.directive.mjs +65 -62
  521. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  522. package/esm2022/tooltip/tooltip.property.mjs +53 -47
  523. package/esm2022/transfer/transfer.component.mjs +225 -184
  524. package/esm2022/transfer/transfer.module.mjs +4 -4
  525. package/esm2022/transfer/transfer.property.mjs +84 -76
  526. package/esm2022/tree/tree-node.component.mjs +142 -132
  527. package/esm2022/tree/tree.component.mjs +236 -232
  528. package/esm2022/tree/tree.module.mjs +4 -4
  529. package/esm2022/tree/tree.property.mjs +228 -226
  530. package/esm2022/tree/tree.service.mjs +4 -4
  531. package/esm2022/tree-file/tree-file.component.mjs +34 -43
  532. package/esm2022/tree-file/tree-file.module.mjs +4 -4
  533. package/esm2022/tree-file/tree-file.property.mjs +45 -56
  534. package/esm2022/tree-select/tree-select-portal.component.mjs +45 -78
  535. package/esm2022/tree-select/tree-select.component.mjs +283 -296
  536. package/esm2022/tree-select/tree-select.module.mjs +4 -4
  537. package/esm2022/tree-select/tree-select.property.mjs +203 -125
  538. package/esm2022/typography/typography.component.mjs +13 -10
  539. package/esm2022/typography/typography.module.mjs +4 -4
  540. package/esm2022/typography/typography.property.mjs +12 -11
  541. package/esm2022/upload/upload-portal.component.mjs +54 -57
  542. package/esm2022/upload/upload.component.mjs +79 -98
  543. package/esm2022/upload/upload.module.mjs +4 -4
  544. package/esm2022/upload/upload.property.mjs +73 -68
  545. package/examples/examples.component.d.ts +2 -5
  546. package/fesm2022/ng-nest-ui-affix.mjs +30 -32
  547. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  548. package/fesm2022/ng-nest-ui-alert.mjs +142 -152
  549. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  550. package/fesm2022/ng-nest-ui-anchor.mjs +121 -133
  551. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  552. package/fesm2022/ng-nest-ui-api.mjs +14 -17
  553. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  554. package/fesm2022/ng-nest-ui-auto-complete.mjs +296 -260
  555. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  556. package/fesm2022/ng-nest-ui-avatar.mjs +195 -130
  557. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  558. package/fesm2022/ng-nest-ui-back-top.mjs +95 -103
  559. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  560. package/fesm2022/ng-nest-ui-badge.mjs +161 -96
  561. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  562. package/fesm2022/ng-nest-ui-base-form.mjs +286 -166
  563. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  564. package/fesm2022/ng-nest-ui-button.mjs +376 -175
  565. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  566. package/fesm2022/ng-nest-ui-calendar.mjs +134 -108
  567. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  568. package/fesm2022/ng-nest-ui-card.mjs +67 -36
  569. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  570. package/fesm2022/ng-nest-ui-carousel.mjs +365 -223
  571. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  572. package/fesm2022/ng-nest-ui-cascade.mjs +318 -249
  573. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  574. package/fesm2022/ng-nest-ui-checkbox.mjs +203 -155
  575. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  576. package/fesm2022/ng-nest-ui-collapse.mjs +202 -106
  577. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  578. package/fesm2022/ng-nest-ui-color-picker.mjs +316 -270
  579. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  580. package/fesm2022/ng-nest-ui-color.mjs +73 -54
  581. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  582. package/fesm2022/ng-nest-ui-comment.mjs +44 -108
  583. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  584. package/fesm2022/ng-nest-ui-container.mjs +119 -123
  585. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  586. package/fesm2022/ng-nest-ui-core.mjs +985 -664
  587. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  588. package/fesm2022/ng-nest-ui-crumb.mjs +28 -55
  589. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  590. package/fesm2022/ng-nest-ui-date-picker.mjs +1552 -1671
  591. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  592. package/fesm2022/ng-nest-ui-description.mjs +218 -109
  593. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  594. package/fesm2022/ng-nest-ui-dialog.mjs +307 -316
  595. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  596. package/fesm2022/ng-nest-ui-doc.mjs +14 -15
  597. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  598. package/fesm2022/ng-nest-ui-drag.mjs +20 -39
  599. package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
  600. package/fesm2022/ng-nest-ui-drawer.mjs +116 -145
  601. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  602. package/fesm2022/ng-nest-ui-dropdown.mjs +223 -238
  603. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  604. package/fesm2022/ng-nest-ui-empty.mjs +49 -46
  605. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  606. package/fesm2022/ng-nest-ui-examples.mjs +14 -15
  607. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  608. package/fesm2022/ng-nest-ui-find.mjs +422 -425
  609. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  610. package/fesm2022/ng-nest-ui-form.mjs +218 -203
  611. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  612. package/fesm2022/ng-nest-ui-highlight.mjs +93 -81
  613. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  614. package/fesm2022/ng-nest-ui-i18n.mjs +5892 -3516
  615. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  616. package/fesm2022/ng-nest-ui-icon.mjs +112 -120
  617. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  618. package/fesm2022/ng-nest-ui-image.mjs +244 -147
  619. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  620. package/fesm2022/ng-nest-ui-inner.mjs +33 -35
  621. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  622. package/fesm2022/ng-nest-ui-input-number.mjs +198 -146
  623. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  624. package/fesm2022/ng-nest-ui-input.mjs +340 -292
  625. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  626. package/fesm2022/ng-nest-ui-keyword.mjs +78 -82
  627. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  628. package/fesm2022/ng-nest-ui-layout.mjs +151 -140
  629. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  630. package/fesm2022/ng-nest-ui-link.mjs +119 -86
  631. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  632. package/fesm2022/ng-nest-ui-list.mjs +376 -400
  633. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  634. package/fesm2022/ng-nest-ui-loading.mjs +94 -97
  635. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  636. package/fesm2022/ng-nest-ui-menu.mjs +131 -167
  637. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  638. package/fesm2022/ng-nest-ui-message-box.mjs +13 -13
  639. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  640. package/fesm2022/ng-nest-ui-message.mjs +17 -17
  641. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  642. package/fesm2022/ng-nest-ui-notification.mjs +18 -18
  643. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  644. package/fesm2022/ng-nest-ui-outlet.mjs +16 -18
  645. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  646. package/fesm2022/ng-nest-ui-page-header.mjs +44 -55
  647. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  648. package/fesm2022/ng-nest-ui-pagination.mjs +173 -236
  649. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  650. package/fesm2022/ng-nest-ui-pattern.mjs +16 -17
  651. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  652. package/fesm2022/ng-nest-ui-popconfirm.mjs +110 -107
  653. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  654. package/fesm2022/ng-nest-ui-popover.mjs +163 -215
  655. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  656. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  657. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  658. package/fesm2022/ng-nest-ui-progress.mjs +240 -238
  659. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  660. package/fesm2022/ng-nest-ui-radio.mjs +184 -127
  661. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  662. package/fesm2022/ng-nest-ui-rate.mjs +182 -108
  663. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  664. package/fesm2022/ng-nest-ui-resizable.mjs +46 -91
  665. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  666. package/fesm2022/ng-nest-ui-result.mjs +38 -34
  667. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  668. package/fesm2022/ng-nest-ui-ripple.mjs +66 -48
  669. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  670. package/fesm2022/ng-nest-ui-select.mjs +547 -459
  671. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  672. package/fesm2022/ng-nest-ui-skeleton.mjs +44 -52
  673. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  674. package/fesm2022/ng-nest-ui-slider-select.mjs +344 -290
  675. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  676. package/fesm2022/ng-nest-ui-slider.mjs +163 -228
  677. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  678. package/fesm2022/ng-nest-ui-statistic.mjs +102 -68
  679. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  680. package/fesm2022/ng-nest-ui-steps.mjs +61 -102
  681. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  682. package/fesm2022/ng-nest-ui-switch.mjs +145 -69
  683. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  684. package/fesm2022/ng-nest-ui-table.mjs +784 -800
  685. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  686. package/fesm2022/ng-nest-ui-tabs.mjs +185 -259
  687. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  688. package/fesm2022/ng-nest-ui-tag.mjs +63 -101
  689. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  690. package/fesm2022/ng-nest-ui-text-retract.mjs +52 -64
  691. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  692. package/fesm2022/ng-nest-ui-textarea.mjs +173 -126
  693. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  694. package/fesm2022/ng-nest-ui-theme.mjs +123 -129
  695. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  696. package/fesm2022/ng-nest-ui-time-ago.mjs +16 -15
  697. package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
  698. package/fesm2022/ng-nest-ui-time-picker.mjs +498 -463
  699. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  700. package/fesm2022/ng-nest-ui-time-range.mjs +14 -14
  701. package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
  702. package/fesm2022/ng-nest-ui-timeline.mjs +44 -68
  703. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  704. package/fesm2022/ng-nest-ui-tooltip.mjs +168 -170
  705. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  706. package/fesm2022/ng-nest-ui-transfer.mjs +311 -262
  707. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  708. package/fesm2022/ng-nest-ui-tree-file.mjs +80 -99
  709. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  710. package/fesm2022/ng-nest-ui-tree-select.mjs +527 -495
  711. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  712. package/fesm2022/ng-nest-ui-tree.mjs +601 -587
  713. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  714. package/fesm2022/ng-nest-ui-typography.mjs +26 -22
  715. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  716. package/fesm2022/ng-nest-ui-upload.mjs +204 -220
  717. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  718. package/fesm2022/ng-nest-ui.mjs +0 -2
  719. package/fesm2022/ng-nest-ui.mjs.map +1 -1
  720. package/find/find.component.d.ts +30 -34
  721. package/find/find.property.d.ts +321 -108
  722. package/form/control.component.d.ts +37 -18
  723. package/form/form.component.d.ts +8 -10
  724. package/form/form.property.d.ts +111 -27
  725. package/highlight/highlight.component.d.ts +10 -17
  726. package/highlight/highlight.property.d.ts +40 -11
  727. package/highlight/highlight.service.d.ts +8 -0
  728. package/highlight/public-api.d.ts +1 -0
  729. package/i18n/i18n.directive.d.ts +6 -9
  730. package/i18n/i18n.property.d.ts +6 -2
  731. package/i18n/i18n.service.d.ts +2 -2
  732. package/i18n/languages/ar_EG.d.ts +56 -0
  733. package/i18n/languages/bg_BG.d.ts +56 -0
  734. package/i18n/languages/ca_ES.d.ts +56 -0
  735. package/i18n/languages/cs_CZ.d.ts +56 -0
  736. package/i18n/languages/da_DK.d.ts +56 -0
  737. package/i18n/languages/de_DE.d.ts +56 -0
  738. package/i18n/languages/el_GR.d.ts +56 -0
  739. package/i18n/languages/en_GB.d.ts +3 -0
  740. package/i18n/languages/en_US.d.ts +3 -0
  741. package/i18n/languages/es_ES.d.ts +56 -0
  742. package/i18n/languages/et_EE.d.ts +56 -0
  743. package/i18n/languages/fa_IR.d.ts +56 -0
  744. package/i18n/languages/fi_FI.d.ts +56 -0
  745. package/i18n/languages/fr_BE.d.ts +60 -4
  746. package/i18n/languages/fr_FR.d.ts +56 -0
  747. package/i18n/languages/he_IL.d.ts +56 -0
  748. package/i18n/languages/hi_IN.d.ts +56 -0
  749. package/i18n/languages/hr_HR.d.ts +56 -0
  750. package/i18n/languages/hu_HU.d.ts +56 -0
  751. package/i18n/languages/hy_AM.d.ts +56 -0
  752. package/i18n/languages/id_ID.d.ts +56 -0
  753. package/i18n/languages/is_IS.d.ts +56 -0
  754. package/i18n/languages/it_IT.d.ts +56 -0
  755. package/i18n/languages/ja_JP.d.ts +56 -0
  756. package/i18n/languages/ka_GE.d.ts +56 -0
  757. package/i18n/languages/kn_IN.d.ts +56 -0
  758. package/i18n/languages/ko_KR.d.ts +56 -0
  759. package/i18n/languages/ku_IQ.d.ts +32 -0
  760. package/i18n/languages/lv_LV.d.ts +56 -0
  761. package/i18n/languages/mn_MN.d.ts +56 -0
  762. package/i18n/languages/ms_MY.d.ts +56 -0
  763. package/i18n/languages/nb_NO.d.ts +56 -0
  764. package/i18n/languages/ne_NP.d.ts +56 -0
  765. package/i18n/languages/nl_BE.d.ts +56 -0
  766. package/i18n/languages/nl_NL.d.ts +56 -0
  767. package/i18n/languages/pl_PL.d.ts +56 -0
  768. package/i18n/languages/pt_BR.d.ts +56 -0
  769. package/i18n/languages/pt_PT.d.ts +56 -0
  770. package/i18n/languages/ro_RO.d.ts +56 -0
  771. package/i18n/languages/ru_RU.d.ts +56 -0
  772. package/i18n/languages/sk_SK.d.ts +56 -1
  773. package/i18n/languages/sl_SI.d.ts +56 -0
  774. package/i18n/languages/sr_RS.d.ts +56 -0
  775. package/i18n/languages/sv_SE.d.ts +56 -0
  776. package/i18n/languages/ta_IN.d.ts +56 -0
  777. package/i18n/languages/th_TH.d.ts +56 -0
  778. package/i18n/languages/tr_TR.d.ts +56 -0
  779. package/i18n/languages/uk_UA.d.ts +56 -0
  780. package/i18n/languages/vi_VN.d.ts +56 -0
  781. package/i18n/languages/zh_CN.d.ts +3 -0
  782. package/i18n/languages/zh_TW.d.ts +3 -0
  783. package/icon/icon.component.d.ts +8 -14
  784. package/icon/icon.property.d.ts +31 -13
  785. package/icon/icon.service.d.ts +1 -1
  786. package/image/image-group.component.d.ts +1 -3
  787. package/image/image-preview.component.d.ts +11 -13
  788. package/image/image.component.d.ts +10 -11
  789. package/image/image.property.d.ts +117 -16
  790. package/index.d.ts +0 -2
  791. package/inner/inner.component.d.ts +3 -10
  792. package/inner/inner.property.d.ts +8 -4
  793. package/input/input-group.component.d.ts +0 -2
  794. package/input/input.component.d.ts +32 -30
  795. package/input/input.property.d.ts +347 -65
  796. package/input-number/input-number.component.d.ts +14 -19
  797. package/input-number/input-number.property.d.ts +292 -26
  798. package/keyword/keyword.directive.d.ts +4 -12
  799. package/keyword/keyword.property.d.ts +11 -7
  800. package/layout/col.component.d.ts +8 -11
  801. package/layout/layout.property.d.ts +25 -18
  802. package/layout/row.component.d.ts +7 -8
  803. package/link/link.component.d.ts +7 -13
  804. package/link/link.property.d.ts +64 -11
  805. package/list/list-drop-group.directive.d.ts +3 -5
  806. package/list/list-option.component.d.ts +7 -9
  807. package/list/list.component.d.ts +35 -30
  808. package/list/list.property.d.ts +126 -61
  809. package/loading/loading.component.d.ts +12 -12
  810. package/loading/loading.property.d.ts +20 -11
  811. package/menu/menu-node.component.d.ts +11 -8
  812. package/menu/menu.component.d.ts +18 -19
  813. package/menu/menu.property.d.ts +23 -28
  814. package/message/message.property.d.ts +1 -1
  815. package/notification/notification.property.d.ts +1 -1
  816. package/outlet/outlet.directive.d.ts +4 -4
  817. package/outlet/outlet.property.d.ts +1 -1
  818. package/package.json +78 -84
  819. package/page-header/page-header.component.d.ts +4 -8
  820. package/page-header/page-header.property.d.ts +11 -8
  821. package/pagination/pagination.component.d.ts +15 -22
  822. package/pagination/pagination.property.d.ts +34 -66
  823. package/pattern/pattern.component.d.ts +2 -5
  824. package/pattern/pattern.property.d.ts +1 -1
  825. package/popconfirm/popconfirm.component.d.ts +12 -14
  826. package/popconfirm/popconfirm.property.d.ts +32 -19
  827. package/popover/popover-portal.component.d.ts +16 -33
  828. package/popover/popover.directive.d.ts +6 -12
  829. package/popover/popover.property.d.ts +31 -22
  830. package/portal/portal.property.d.ts +2 -2
  831. package/portal/portal.service.d.ts +2 -2
  832. package/progress/progress.component.d.ts +25 -30
  833. package/progress/progress.property.d.ts +29 -20
  834. package/radio/radio.component.d.ts +14 -15
  835. package/radio/radio.property.d.ts +271 -31
  836. package/rate/rate.component.d.ts +14 -17
  837. package/rate/rate.property.d.ts +259 -12
  838. package/resizable/resizable.directive.d.ts +5 -5
  839. package/resizable/resizable.property.d.ts +14 -14
  840. package/result/result.component.d.ts +5 -7
  841. package/result/result.property.d.ts +11 -7
  842. package/ripple/ripple.directive.d.ts +5 -4
  843. package/ripple/ripple.property.d.ts +14 -5
  844. package/select/select-portal.component.d.ts +39 -43
  845. package/select/select.component.d.ts +53 -56
  846. package/select/select.property.d.ts +317 -37
  847. package/skeleton/skeleton.component.d.ts +4 -8
  848. package/skeleton/skeleton.property.d.ts +17 -8
  849. package/slider/slider.component.d.ts +34 -31
  850. package/slider/slider.property.d.ts +26 -22
  851. package/slider-select/slider-select.component.d.ts +38 -38
  852. package/slider-select/slider-select.property.d.ts +302 -28
  853. package/statistic/countdown.component.d.ts +2 -5
  854. package/statistic/statistic.component.d.ts +3 -8
  855. package/statistic/statistic.property.d.ts +44 -13
  856. package/steps/steps.component.d.ts +6 -16
  857. package/steps/steps.property.d.ts +15 -10
  858. package/style/core/index.css +0 -38
  859. package/style/core/index.css.map +1 -1
  860. package/style/core/var.scss +0 -4
  861. package/style/mixins/compatibility.scss +0 -1
  862. package/style/mixins/form.scss +8 -2
  863. package/style/params/index.scss +0 -1
  864. package/style/params/primary.scss +7 -28
  865. package/switch/switch.component.d.ts +9 -10
  866. package/switch/switch.property.d.ts +265 -16
  867. package/table/table-body.component.d.ts +21 -20
  868. package/table/table-foot.component.d.ts +7 -5
  869. package/table/table-head.component.d.ts +17 -19
  870. package/table/table.component.d.ts +62 -50
  871. package/table/table.property.d.ts +180 -178
  872. package/tabs/tab-content.component.d.ts +6 -8
  873. package/tabs/tab.component.d.ts +3 -5
  874. package/tabs/tabs.component.d.ts +17 -24
  875. package/tabs/tabs.property.d.ts +28 -24
  876. package/tag/tag.component.d.ts +7 -8
  877. package/tag/tag.property.d.ts +19 -21
  878. package/text-retract/text-retract.component.d.ts +4 -14
  879. package/text-retract/text-retract.property.d.ts +9 -5
  880. package/textarea/textarea.component.d.ts +17 -20
  881. package/textarea/textarea.property.d.ts +266 -30
  882. package/theme/theme.component.d.ts +24 -13
  883. package/theme/theme.property.d.ts +67 -16
  884. package/time-ago/time-ago.pipe.d.ts +7 -3
  885. package/time-ago/time-ago.property.d.ts +1 -1
  886. package/time-picker/time-picker-frame.component.d.ts +52 -39
  887. package/time-picker/time-picker-portal.component.d.ts +29 -29
  888. package/time-picker/time-picker.component.d.ts +29 -30
  889. package/time-picker/time-picker.property.d.ts +314 -23
  890. package/time-range/time-range.property.d.ts +1 -1
  891. package/timeline/timeline.component.d.ts +5 -13
  892. package/timeline/timeline.property.d.ts +12 -8
  893. package/tooltip/tooltip-portal.component.d.ts +23 -29
  894. package/tooltip/tooltip.directive.d.ts +10 -9
  895. package/tooltip/tooltip.property.d.ts +18 -14
  896. package/transfer/transfer.component.d.ts +23 -20
  897. package/transfer/transfer.property.d.ts +81 -25
  898. package/tree/tree-node.component.d.ts +21 -21
  899. package/tree/tree.component.d.ts +29 -28
  900. package/tree/tree.property.d.ts +129 -79
  901. package/tree-file/tree-file.component.d.ts +7 -9
  902. package/tree-file/tree-file.property.d.ts +40 -16
  903. package/tree-select/tree-select-portal.component.d.ts +38 -49
  904. package/tree-select/tree-select.component.d.ts +50 -53
  905. package/tree-select/tree-select.property.d.ts +328 -39
  906. package/typography/typography.component.d.ts +1 -1
  907. package/typography/typography.property.d.ts +3 -3
  908. package/upload/upload-portal.component.d.ts +14 -14
  909. package/upload/upload.component.d.ts +18 -17
  910. package/upload/upload.property.d.ts +73 -24
  911. package/border/border.component.d.ts +0 -11
  912. package/border/border.module.d.ts +0 -7
  913. package/border/border.property.d.ts +0 -6
  914. package/border/index.d.ts +0 -5
  915. package/border/public-api.d.ts +0 -3
  916. package/esm2022/border/border.component.mjs +0 -21
  917. package/esm2022/border/border.module.mjs +0 -16
  918. package/esm2022/border/border.property.mjs +0 -7
  919. package/esm2022/border/ng-nest-ui-border.mjs +0 -5
  920. package/esm2022/border/public-api.mjs +0 -4
  921. package/fesm2022/ng-nest-ui-border.mjs +0 -47
  922. package/fesm2022/ng-nest-ui-border.mjs.map +0 -1
  923. package/style/params/colors.scss +0 -38
@@ -1,150 +1,178 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, ViewChild, ChangeDetectorRef, inject } from '@angular/core';
2
- import { XControlProperty, XCascadeControl, XInputControl, XSelectControl, XCheckboxControl, XRadioControl, XDatePickerControl, XInputNumberControl, XSwitchControl, XRateControl, XSliderSelectControl, XTimePickerControl, XColorPickerControl, XFindControl, XTextareaControl, XAutoCompleteControl } from './form.property';
3
- import { FormControlName, Validators, UntypedFormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { XIsEmpty, XConfigService, XIsFunction } from '@ng-nest/ui/core';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject, viewChild, signal, ViewContainerRef, OutputEmitterRef, effect } from '@angular/core';
2
+ import { XControlProperty } from './form.property';
3
+ import { Validators, UntypedFormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { XIsEmpty, XIsFunction } from '@ng-nest/ui/core';
5
5
  import { Subject } from 'rxjs';
6
6
  import { map, takeUntil } from 'rxjs/operators';
7
- import { XI18nService } from '@ng-nest/ui/i18n';
7
+ import { XI18nService, zh_CN } from '@ng-nest/ui/i18n';
8
8
  import { XFormInputValidator } from '@ng-nest/ui/base-form';
9
+ import { XFormComponent } from './form.component';
10
+ import { toSignal } from '@angular/core/rxjs-interop';
11
+ import { CdkPortalOutlet, ComponentPortal, PortalModule } from '@angular/cdk/portal';
9
12
  import { XInputComponent } from '@ng-nest/ui/input';
10
- import { XSelectComponent } from '@ng-nest/ui/select';
13
+ import { XAutoCompleteComponent } from '@ng-nest/ui/auto-complete';
11
14
  import { XCascadeComponent } from '@ng-nest/ui/cascade';
12
15
  import { XCheckboxComponent } from '@ng-nest/ui/checkbox';
13
16
  import { XColorPickerComponent } from '@ng-nest/ui/color-picker';
14
17
  import { XDatePickerComponent } from '@ng-nest/ui/date-picker';
18
+ import { XFindComponent } from '@ng-nest/ui/find';
15
19
  import { XInputNumberComponent } from '@ng-nest/ui/input-number';
16
20
  import { XRadioComponent } from '@ng-nest/ui/radio';
17
21
  import { XRateComponent } from '@ng-nest/ui/rate';
22
+ import { XSelectComponent } from '@ng-nest/ui/select';
18
23
  import { XSliderSelectComponent } from '@ng-nest/ui/slider-select';
19
24
  import { XSwitchComponent } from '@ng-nest/ui/switch';
20
- import { XTimePickerModule } from '@ng-nest/ui/time-picker';
21
25
  import { XTextareaComponent } from '@ng-nest/ui/textarea';
22
- import { XFindComponent } from '@ng-nest/ui/find';
23
- import { XAutoCompleteComponent } from '@ng-nest/ui/auto-complete';
26
+ import { XTimePickerComponent, XTimePickerModule } from '@ng-nest/ui/time-picker';
24
27
  import * as i0 from "@angular/core";
25
28
  import * as i1 from "@angular/forms";
26
- import * as i2 from "@ng-nest/ui/time-picker";
29
+ import * as i2 from "@angular/cdk/portal";
30
+ // import { XSelectComponent } from '@ng-nest/ui/select';
27
31
  export class XControlComponent extends XControlProperty {
28
32
  constructor() {
29
- super(...arguments);
30
- this.locale = {};
31
- this._sharedProps = ['span', 'direction', 'justify', 'align', 'labelWidth', 'labelAlign'];
32
- this._changeProps = ['label', ...this._sharedProps];
33
- this._validatorFns = [];
34
- this._unSubject = new Subject();
35
- this.cdr = inject(ChangeDetectorRef);
33
+ super();
36
34
  this.i18n = inject(XI18nService);
37
- this.configService = inject(XConfigService);
35
+ this.viewContainerRef = inject(ViewContainerRef);
36
+ this._sharedProps = signal(['span', 'direction', 'justify', 'align', 'labelWidth', 'labelAlign']);
37
+ this.validatorFns = signal([]);
38
+ this.formControl = signal(null);
39
+ this._unSubject = new Subject();
40
+ this.value = signal(null);
41
+ this.form = inject(XFormComponent, { optional: true });
42
+ this.locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.form)), { initialValue: zh_CN.form });
43
+ this.portal = signal(null);
44
+ this.portalOutlet = viewChild.required(CdkPortalOutlet);
45
+ effect(() => {
46
+ this.formControl()?.setValue(this.value());
47
+ }, { allowSignalWrites: true });
38
48
  }
39
49
  ngOnInit() {
40
- this.option = { ...this.option };
41
- this.setProps();
42
- if (XIsEmpty(this.option.label))
43
- this.option.label = '';
44
- this.option.label = `${this.option.label}${this.form.labelSuffix}`;
45
- this._control = this.createControl(this.option);
46
- this._formControl = new UntypedFormControl(this._control.value, {
47
- nonNullable: this._control.nonNullable
48
- });
50
+ this.setOption();
51
+ this.formControl.set(new UntypedFormControl(this.option().value, {
52
+ nonNullable: this.option().nonNullable
53
+ }));
49
54
  this.setValidators();
50
- this._formControl.statusChanges.pipe(takeUntil(this._unSubject)).subscribe((x) => {
51
- this.setMessages(x);
52
- });
53
- this._control.setValidators = () => this.setValidators();
54
- this.form.formGroup.addControl(this._control.id, this._formControl);
55
- this.option.change = () => {
56
- this._changeProps.forEach((x) => {
57
- if (this.control.valueAccessor && this.option[x]) {
58
- this.control.valueAccessor[x] = this.option[x];
59
- }
60
- });
61
- this.form.controlComponents[this._control.id].formControlChanges();
62
- };
63
- this.i18n.localeChange
64
- .pipe(map((x) => x.form), takeUntil(this._unSubject))
55
+ this.formControl()
56
+ .statusChanges.pipe(takeUntil(this._unSubject))
65
57
  .subscribe((x) => {
66
- this.locale = x;
67
- this.cdr.markForCheck();
58
+ this.setMessages(x);
68
59
  });
60
+ this.option().setValidators = () => this.setValidators();
61
+ this.form.formGroup().addControl(this.option().id, this.formControl());
69
62
  }
70
63
  ngAfterViewInit() {
71
- Object.assign(this.control.valueAccessor, this._control);
72
- this.form.controlTypes[this._control.id] = this._control;
73
- this.form.controlComponents[this._control.id] = this.control
74
- .valueAccessor;
75
- this.form.controlComponents[this._control.id].formControlChanges();
64
+ this.componentPortal = this.createComponentPortal(this.option());
65
+ this.componentRef = this.portalOutlet().attachComponentPortal(this.componentPortal);
66
+ for (let key in this.option()) {
67
+ if (key in this.componentRef.instance) {
68
+ const val = this.componentRef.instance[key];
69
+ if (XIsFunction(val)) {
70
+ const valStr = val.toString();
71
+ if (valStr.startsWith('[Input Signal:')) {
72
+ // input
73
+ this.componentRef.setInput(key, this.option()[key]);
74
+ }
75
+ else if (valStr.startsWith('[Model Signal:')) {
76
+ // model
77
+ this.componentRef.setInput(key, this.option()[key]);
78
+ val.subscribe((x) => {
79
+ this.option()[key] = x;
80
+ });
81
+ }
82
+ else if (valStr.startsWith('[Signal:')) {
83
+ // signal
84
+ val.set(this.option()[key]);
85
+ }
86
+ }
87
+ else if (val instanceof OutputEmitterRef) {
88
+ // output
89
+ val.subscribe((x) => this.option()[key](x));
90
+ }
91
+ }
92
+ }
93
+ // value
94
+ this.value = this.componentRef.instance['value'];
95
+ this.form.controlTypes[this.option().id] = this.option();
96
+ this.form.controlComponents[this.option().id] = this.componentRef.instance;
76
97
  }
77
98
  ngOnDestroy() {
78
99
  this._unSubject.next();
79
100
  this._unSubject.unsubscribe();
80
101
  }
81
102
  setValidators() {
82
- this._validatorFns = [];
83
- if (this._control.disabled || this.form.disabled) {
84
- this._formControl.disable();
103
+ this.validatorFns.set([]);
104
+ if (this.option().disabled || this.form.disabled()) {
105
+ this.formControl().disable();
85
106
  }
86
107
  else {
87
- this._formControl.enable();
108
+ this.formControl().enable();
88
109
  }
89
- if (this._control.required && !this.form.disabled) {
90
- this._validatorFns = [...this._validatorFns, Validators.required];
110
+ if (this.option().required && !this.form.disabled()) {
111
+ this.validatorFns.update((x) => [...x, Validators.required]);
91
112
  }
92
- if (this._control.pattern) {
113
+ if (this.option().pattern) {
93
114
  this.setPattern();
94
115
  }
95
- if (XIsFunction(this._control.inputValidator)) {
96
- this._validatorFns = [
97
- ...this._validatorFns,
98
- XFormInputValidator(this._control.inputValidator)
99
- ];
116
+ if (XIsFunction(this.option().inputValidator)) {
117
+ this.validatorFns.update((x) => [...x, XFormInputValidator(this.option().inputValidator)]);
100
118
  }
101
- this._formControl.setValidators(this._validatorFns);
102
- this._formControl.updateValueAndValidity();
119
+ this.formControl().setValidators(this.validatorFns());
120
+ this.formControl().updateValueAndValidity();
103
121
  }
104
- setProps() {
105
- for (let prop of this._sharedProps) {
106
- if (XIsEmpty(this.option[prop]))
107
- this.option[prop] = this.form[prop];
122
+ setOption() {
123
+ for (let prop of this._sharedProps()) {
124
+ if (XIsEmpty(this.option()[prop])) {
125
+ this.option.update((x) => {
126
+ x[prop] = this.form[prop]();
127
+ return x;
128
+ });
129
+ }
108
130
  }
131
+ if (XIsEmpty(this.option().label)) {
132
+ this.option.update((x) => {
133
+ x.label = '';
134
+ return x;
135
+ });
136
+ }
137
+ this.option.update((x) => {
138
+ x.label = `${this.option().label}${this.form.labelSuffix()}`;
139
+ return x;
140
+ });
109
141
  }
110
142
  setPattern() {
111
- if (Array.isArray(this._control.pattern)) {
112
- for (const pt of this._control.pattern) {
113
- this._validatorFns = [...this._validatorFns, Validators.pattern(pt)];
143
+ const pattern = this.option().pattern;
144
+ if (Array.isArray(pattern)) {
145
+ for (const pt of pattern) {
146
+ this.validatorFns.update((x) => [...x, Validators.pattern(pt)]);
114
147
  }
115
148
  }
116
149
  else {
117
- this._validatorFns = [
118
- ...this._validatorFns,
119
- Validators.pattern(this._control.pattern)
120
- ];
150
+ this.validatorFns.update((x) => [...x, Validators.pattern(pattern)]);
121
151
  }
122
152
  }
123
153
  getPatternMsg(pattern) {
124
- if (Array.isArray(this._control.pattern)) {
125
- return this._control.message[this._control.pattern.findIndex((x) => String(x) === pattern)];
154
+ const controlPattern = this.option().pattern;
155
+ if (Array.isArray(controlPattern)) {
156
+ return this.option().message[controlPattern.findIndex((x) => String(x) === pattern)];
126
157
  }
127
158
  else {
128
- return this._control.message;
159
+ return this.option().message;
129
160
  }
130
161
  }
131
162
  setMessages(state) {
132
- let control = this._formControl;
133
- if (state === 'INVALID' && this._formControl.errors !== null) {
163
+ let control = this.formControl();
164
+ if (state === 'INVALID' && this.formControl().errors !== null) {
134
165
  let messages = [];
135
166
  for (const key in control.errors) {
136
- const label = this._control.label || this._control.id;
167
+ const label = this.option().label || this.option().id;
137
168
  if (key === 'required') {
138
- messages = [...messages, `${label} ${this.locale?.required || 'required'}`];
169
+ messages = [...messages, `${label} ${this.locale().required || 'required'}`];
139
170
  }
140
171
  else if (key === 'pattern') {
141
- messages = [
142
- ...messages,
143
- `${label} ${this.getPatternMsg(control.errors[key].requiredPattern)}`
144
- ];
172
+ messages = [...messages, `${label} ${this.getPatternMsg(control.errors[key].requiredPattern)}`];
145
173
  }
146
174
  else if (key === 'inputValidator') {
147
- messages = [...messages, `${label} ${this._control.message}`];
175
+ messages = [...messages, `${label} ${this.option().message}`];
148
176
  }
149
177
  }
150
178
  control.messages = messages;
@@ -153,50 +181,51 @@ export class XControlComponent extends XControlProperty {
153
181
  control.messages = [];
154
182
  }
155
183
  }
156
- createControl(option) {
184
+ createComponentPortal(option) {
157
185
  switch (option.control) {
158
186
  case 'input':
159
- return new XInputControl(option);
187
+ return new ComponentPortal(XInputComponent, this.viewContainerRef);
160
188
  case 'select':
161
- return new XSelectControl(option);
189
+ return new ComponentPortal(XSelectComponent, this.viewContainerRef);
162
190
  case 'checkbox':
163
- return new XCheckboxControl(option);
191
+ return new ComponentPortal(XCheckboxComponent, this.viewContainerRef);
164
192
  case 'radio':
165
- return new XRadioControl(option);
193
+ return new ComponentPortal(XRadioComponent, this.viewContainerRef);
166
194
  case 'switch':
167
- return new XSwitchControl(option);
195
+ return new ComponentPortal(XSwitchComponent, this.viewContainerRef);
168
196
  case 'rate':
169
- return new XRateControl(option);
197
+ return new ComponentPortal(XRateComponent, this.viewContainerRef);
170
198
  case 'date-picker':
171
- return new XDatePickerControl(option);
199
+ return new ComponentPortal(XDatePickerComponent, this.viewContainerRef);
172
200
  case 'time-picker':
173
- return new XTimePickerControl(option);
201
+ return new ComponentPortal(XTimePickerComponent, this.viewContainerRef);
174
202
  case 'input-number':
175
- return new XInputNumberControl(option);
203
+ return new ComponentPortal(XInputNumberComponent, this.viewContainerRef);
176
204
  case 'slider-select':
177
- return new XSliderSelectControl(option);
205
+ return new ComponentPortal(XSliderSelectComponent, this.viewContainerRef);
178
206
  case 'cascade':
179
- return new XCascadeControl(option);
207
+ return new ComponentPortal(XCascadeComponent, this.viewContainerRef);
180
208
  case 'color-picker':
181
- return new XColorPickerControl(option);
209
+ return new ComponentPortal(XColorPickerComponent, this.viewContainerRef);
182
210
  case 'textarea':
183
- return new XTextareaControl(option);
211
+ return new ComponentPortal(XTextareaComponent, this.viewContainerRef);
184
212
  case 'find':
185
- return new XFindControl(option);
213
+ return new ComponentPortal(XFindComponent, this.viewContainerRef);
186
214
  case 'auto-complete':
187
- return new XAutoCompleteControl(option);
215
+ return new ComponentPortal(XAutoCompleteComponent, this.viewContainerRef);
188
216
  default:
189
- return new XInputControl(option);
217
+ return new ComponentPortal(XInputComponent, this.viewContainerRef);
190
218
  }
191
219
  }
192
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: XControlComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
193
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: XControlComponent, isStandalone: true, selector: "x-control", inputs: { option: "option", form: "form" }, viewQueries: [{ propertyName: "control", first: true, predicate: FormControlName, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"x-control\" [formGroup]=\"form.formGroup\">\r\n @switch (option.control) {\r\n @case ('input') {\r\n <x-input [formControlName]=\"option.id\" (clearEmit)=\"option.clearClick && option.clearClick($event)\"></x-input>\r\n }\r\n @case ('select') {\r\n <x-select [formControlName]=\"option.id\"></x-select>\r\n }\r\n @case ('cascade') {\r\n <x-cascade [formControlName]=\"option.id\" (nodeEmit)=\"option.nodeClick && option.nodeClick($event)\"></x-cascade>\r\n }\r\n @case ('checkbox') {\r\n <x-checkbox [formControlName]=\"option.id\"></x-checkbox>\r\n }\r\n @case ('color-picker') {\r\n <x-color-picker [formControlName]=\"option.id\"></x-color-picker>\r\n }\r\n @case ('date-picker') {\r\n <x-date-picker\r\n [formControlName]=\"option.id\"\r\n (nodeEmit)=\"option.nodeClick && option.nodeClick($event)\"\r\n ></x-date-picker>\r\n }\r\n @case ('input-number') {\r\n <x-input-number [formControlName]=\"option.id\"></x-input-number>\r\n }\r\n @case ('radio') {\r\n <x-radio [formControlName]=\"option.id\"></x-radio>\r\n }\r\n @case ('rate') {\r\n <x-rate [formControlName]=\"option.id\"></x-rate>\r\n }\r\n @case ('slider-select') {\r\n <x-slider-select [formControlName]=\"option.id\"></x-slider-select>\r\n }\r\n @case ('switch') {\r\n <x-switch [formControlName]=\"option.id\"></x-switch>\r\n }\r\n @case ('time-picker') {\r\n <x-time-picker [formControlName]=\"option.id\"></x-time-picker>\r\n }\r\n @case ('textarea') {\r\n <x-textarea\r\n [formControlName]=\"option.id\"\r\n (clearEmit)=\"option.clearClick && option.clearClick($event)\"\r\n ></x-textarea>\r\n }\r\n @case ('auto-complete') {\r\n <x-auto-complete\r\n [formControlName]=\"option.id\"\r\n (nodeEmit)=\"option.nodeClick && option.nodeClick($event)\"\r\n ></x-auto-complete>\r\n }\r\n @case ('find') {\r\n <x-find [formControlName]=\"option.id\"></x-find>\r\n }\r\n }\r\n</div>\r\n", styles: [".x-control{margin:0;padding:0}.x-control x-input,.x-control x-select,.x-control x-date-picker,.x-control x-time-picker,.x-control x-input-number,.x-control x-slider-select,.x-control x-cascade,.x-control x-color-picker,.x-control x-textarea,.x-control x-auto-complete{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: XInputComponent, selector: "x-input" }, { kind: "component", type: XSelectComponent, selector: "x-select" }, { kind: "component", type: XCascadeComponent, selector: "x-cascade" }, { kind: "component", type: XCheckboxComponent, selector: "x-checkbox" }, { kind: "component", type: XColorPickerComponent, selector: "x-color-picker" }, { kind: "component", type: XDatePickerComponent, selector: "x-date-picker" }, { kind: "component", type: XInputNumberComponent, selector: "x-input-number" }, { kind: "component", type: XRadioComponent, selector: "x-radio" }, { kind: "component", type: XRateComponent, selector: "x-rate" }, { kind: "component", type: XSliderSelectComponent, selector: "x-slider-select" }, { kind: "component", type: XSwitchComponent, selector: "x-switch" }, { kind: "ngmodule", type: XTimePickerModule }, { kind: "component", type: i2.XTimePickerComponent, selector: "x-time-picker" }, { kind: "component", type: XTextareaComponent, selector: "x-textarea" }, { kind: "component", type: XFindComponent, selector: "x-find" }, { kind: "component", type: XAutoCompleteComponent, selector: "x-auto-complete" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
220
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
221
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.1", type: XControlComponent, isStandalone: true, selector: "x-control", viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"x-control\" [formGroup]=\"form.formGroup()\">\r\n <ng-template cdkPortalOutlet></ng-template>\r\n</div>\r\n", styles: [".x-control{margin:0;padding:0}.x-control x-input,.x-control x-select,.x-control x-date-picker,.x-control x-time-picker,.x-control x-input-number,.x-control x-slider-select,.x-control x-cascade,.x-control x-color-picker,.x-control x-textarea,.x-control x-auto-complete{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "ngmodule", type: XTimePickerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
194
222
  }
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: XControlComponent, decorators: [{
223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XControlComponent, decorators: [{
196
224
  type: Component,
197
225
  args: [{ selector: 'x-control', standalone: true, imports: [
198
226
  FormsModule,
199
227
  ReactiveFormsModule,
228
+ PortalModule,
200
229
  XInputComponent,
201
230
  XSelectComponent,
202
231
  XCascadeComponent,
@@ -212,13 +241,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
212
241
  XTextareaComponent,
213
242
  XFindComponent,
214
243
  XAutoCompleteComponent
215
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-control\" [formGroup]=\"form.formGroup\">\r\n @switch (option.control) {\r\n @case ('input') {\r\n <x-input [formControlName]=\"option.id\" (clearEmit)=\"option.clearClick && option.clearClick($event)\"></x-input>\r\n }\r\n @case ('select') {\r\n <x-select [formControlName]=\"option.id\"></x-select>\r\n }\r\n @case ('cascade') {\r\n <x-cascade [formControlName]=\"option.id\" (nodeEmit)=\"option.nodeClick && option.nodeClick($event)\"></x-cascade>\r\n }\r\n @case ('checkbox') {\r\n <x-checkbox [formControlName]=\"option.id\"></x-checkbox>\r\n }\r\n @case ('color-picker') {\r\n <x-color-picker [formControlName]=\"option.id\"></x-color-picker>\r\n }\r\n @case ('date-picker') {\r\n <x-date-picker\r\n [formControlName]=\"option.id\"\r\n (nodeEmit)=\"option.nodeClick && option.nodeClick($event)\"\r\n ></x-date-picker>\r\n }\r\n @case ('input-number') {\r\n <x-input-number [formControlName]=\"option.id\"></x-input-number>\r\n }\r\n @case ('radio') {\r\n <x-radio [formControlName]=\"option.id\"></x-radio>\r\n }\r\n @case ('rate') {\r\n <x-rate [formControlName]=\"option.id\"></x-rate>\r\n }\r\n @case ('slider-select') {\r\n <x-slider-select [formControlName]=\"option.id\"></x-slider-select>\r\n }\r\n @case ('switch') {\r\n <x-switch [formControlName]=\"option.id\"></x-switch>\r\n }\r\n @case ('time-picker') {\r\n <x-time-picker [formControlName]=\"option.id\"></x-time-picker>\r\n }\r\n @case ('textarea') {\r\n <x-textarea\r\n [formControlName]=\"option.id\"\r\n (clearEmit)=\"option.clearClick && option.clearClick($event)\"\r\n ></x-textarea>\r\n }\r\n @case ('auto-complete') {\r\n <x-auto-complete\r\n [formControlName]=\"option.id\"\r\n (nodeEmit)=\"option.nodeClick && option.nodeClick($event)\"\r\n ></x-auto-complete>\r\n }\r\n @case ('find') {\r\n <x-find [formControlName]=\"option.id\"></x-find>\r\n }\r\n }\r\n</div>\r\n", styles: [".x-control{margin:0;padding:0}.x-control x-input,.x-control x-select,.x-control x-date-picker,.x-control x-time-picker,.x-control x-input-number,.x-control x-slider-select,.x-control x-cascade,.x-control x-color-picker,.x-control x-textarea,.x-control x-auto-complete{width:100%}\n"] }]
216
- }], propDecorators: { option: [{
217
- type: Input
218
- }], form: [{
219
- type: Input
220
- }], control: [{
221
- type: ViewChild,
222
- args: [FormControlName]
223
- }] } });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9mb3JtL2NvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZm9ybS9jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUlqQixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGdCQUFnQixFQUloQixlQUFlLEVBRWYsYUFBYSxFQUViLGNBQWMsRUFFZCxnQkFBZ0IsRUFFaEIsYUFBYSxFQUdiLGtCQUFrQixFQUNsQixtQkFBbUIsRUFFbkIsY0FBYyxFQUVkLFlBQVksRUFFWixvQkFBb0IsRUFFcEIsa0JBQWtCLEVBRWxCLG1CQUFtQixFQUduQixZQUFZLEVBR1osZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUVyQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsVUFBVSxFQUNWLGtCQUFrQixFQUlsQixXQUFXLEVBQ1gsbUJBQW1CLEVBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBYSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFF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LENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFNN0IsTUFBTTtzQkFBdkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ3NCLE9BQU87c0JBQWxDLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIElucHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBPbkluaXQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgaW5qZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgWENvbnRyb2xQcm9wZXJ0eSxcclxuICBYRm9ybUNvbnRyb2xPcHRpb24sXHJcbiAgWEZvcm1Db250cm9sQ29tcG9uZW50LFxyXG4gIFhGb3JtQ29udHJvbFR5cGUsXHJcbiAgWENhc2NhZGVDb250cm9sLFxyXG4gIFhDYXNjYWRlQ29udHJvbE9wdGlvbixcclxuICBYSW5wdXRDb250cm9sLFxyXG4gIFhJbnB1dENvbnRyb2xPcHRpb24sXHJcbiAgWFNlbGVjdENvbnRyb2wsXHJcbiAgWFNlbGVjdENvbnRyb2xPcHRpb24sXHJcbiAgWENoZWNrYm94Q29udHJvbCxcclxuICBYQ2hlY2tib3hDb250cm9sT3B0aW9uLFxyXG4gIFhSYWRpb0NvbnRyb2wsXHJcbiAgWFJhZGlvQ29udHJvbE9wdGlvbixcclxuICBYRGF0ZVBpY2tlckNvbnRyb2xPcHRpb24sXHJcbiAgWERhdGVQaWNrZXJDb250cm9sLFxyXG4gIFhJbnB1dE51bWJlckNvbnRyb2wsXHJcbiAgWElucHV0TnVtYmVyQ29udHJvbE9wdGlvbixcclxuICBYU3dpdGNoQ29udHJvbCxcclxuICBYU3dpdGNoQ29udHJvbE9wdGlvbixcclxuICBYUmF0ZUNvbnRyb2wsXHJcbiAgWFJhdGVDb250cm9sT3B0aW9uLFxyXG4gIFhTbGlkZXJTZWxlY3RDb250cm9sLFxyXG4gIFhTbGlkZXJTZWxlY3RDb250cm9sT3B0aW9uLFxyXG4gIFhUaW1lUGlja2VyQ29udHJvbCxcclxuICBYVGltZVBpY2tlckNvbnRyb2xPcHRpb24sXHJcbiAgWENvbG9yUGlja2VyQ29udHJvbCxcclxuICBYQ29sb3JQaWNrZXJDb250cm9sT3B0aW9uLFxyXG4gIFhGb3JtQ29udHJvbCxcclxuICBYRmluZENvbnRyb2wsXHJcbiAgWEZpbmRDb250cm9sT3B0aW9uLFxyXG4gIFhUZXh0YXJlYUNvbnRyb2xPcHRpb24sXHJcbiAgWFRleHRhcmVhQ29udHJvbCxcclxuICBYQXV0b0NvbXBsZXRlQ29udHJvbCxcclxuICBYQXV0b0NvbXBsZXRlQ29udHJvbE9wdGlvblxyXG59IGZyb20gJy4vZm9ybS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7XHJcbiAgRm9ybUNvbnRyb2xOYW1lLFxyXG4gIFZhbGlkYXRvcnMsXHJcbiAgVW50eXBlZEZvcm1Db250cm9sLFxyXG4gIFZhbGlkYXRvckZuLFxyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIEZvcm1Db250cm9sU3RhdHVzLFxyXG4gIEZvcm1zTW9kdWxlLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGVcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYQ29uZmlnU2VydmljZSwgWElzRnVuY3Rpb24gfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWEkxOG5Gb3JtLCBYSTE4blNlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWEZvcm1JbnB1dFZhbGlkYXRvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgWFNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3NlbGVjdCc7XHJcbmltcG9ydCB7IFhDYXNjYWRlQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvY2FzY2FkZSc7XHJcbmltcG9ydCB7IFhDaGVja2JveENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NoZWNrYm94JztcclxuaW1wb3J0IHsgWENvbG9yUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvY29sb3ItcGlja2VyJztcclxuaW1wb3J0IHsgWERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9kYXRlLXBpY2tlcic7XHJcbmltcG9ydCB7IFhJbnB1dE51bWJlckNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0LW51bWJlcic7XHJcbmltcG9ydCB7IFhSYWRpb0NvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3JhZGlvJztcclxuaW1wb3J0IHsgWFJhdGVDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9yYXRlJztcclxuaW1wb3J0IHsgWFNsaWRlclNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3NsaWRlci1zZWxlY3QnO1xyXG5pbXBvcnQgeyBYU3dpdGNoQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvc3dpdGNoJztcclxuaW1wb3J0IHsgWFRpbWVQaWNrZXJNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS90aW1lLXBpY2tlcic7XHJcbmltcG9ydCB7IFhUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3RleHRhcmVhJztcclxuaW1wb3J0IHsgWEZpbmRDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9maW5kJztcclxuaW1wb3J0IHsgWEF1dG9Db21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2F1dG8tY29tcGxldGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd4LWNvbnRyb2wnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgWElucHV0Q29tcG9uZW50LFxyXG4gICAgWFNlbGVjdENvbXBvbmVudCxcclxuICAgIFhDYXNjYWRlQ29tcG9uZW50LFxyXG4gICAgWENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgWENvbG9yUGlja2VyQ29tcG9uZW50LFxyXG4gICAgWERhdGVQaWNrZXJDb21wb25lbnQsXHJcbiAgICBYSW5wdXROdW1iZXJDb21wb25lbnQsXHJcbiAgICBYUmFkaW9Db21wb25lbnQsXHJcbiAgICBYUmF0ZUNvbXBvbmVudCxcclxuICAgIFhTbGlkZXJTZWxlY3RDb21wb25lbnQsXHJcbiAgICBYU3dpdGNoQ29tcG9uZW50LFxyXG4gICAgWFRpbWVQaWNrZXJNb2R1bGUsXHJcbiAgICBYVGV4dGFyZWFDb21wb25lbnQsXHJcbiAgICBYRmluZENvbXBvbmVudCxcclxuICAgIFhBdXRvQ29tcGxldGVDb21wb25lbnRcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250cm9sLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb250cm9sLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWENvbnRyb2xDb21wb25lbnRcclxuICBleHRlbmRzIFhDb250cm9sUHJvcGVydHlcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XHJcbntcclxuICBASW5wdXQoKSBvdmVycmlkZSBvcHRpb24hOiBYRm9ybUNvbnRyb2xPcHRpb247XHJcbiAgQElucHV0KCkgZm9ybTogYW55O1xyXG4gIEBWaWV3Q2hpbGQoRm9ybUNvbnRyb2xOYW1lKSBjb250cm9sITogRm9ybUNvbnRyb2xOYW1lO1xyXG4gIGxvY2FsZTogWEkxOG5Gb3JtID0ge307XHJcbiAgcHJpdmF0ZSBfc2hhcmVkUHJvcHMgPSBbJ3NwYW4nLCAnZGlyZWN0aW9uJywgJ2p1c3RpZnknLCAnYWxpZ24nLCAnbGFiZWxXaWR0aCcsICdsYWJlbEFsaWduJ107XHJcbiAgcHJpdmF0ZSBfY2hhbmdlUHJvcHMgPSBbJ2xhYmVsJywgLi4udGhpcy5fc2hhcmVkUHJvcHNdO1xyXG4gIHByaXZhdGUgX2NvbnRyb2whOiBYRm9ybUNvbnRyb2xUeXBlO1xyXG4gIHByaXZhdGUgX3ZhbGlkYXRvckZuczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfZm9ybUNvbnRyb2whOiBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChYSTE4blNlcnZpY2UpO1xyXG4gIGNvbmZpZ1NlcnZpY2UgPSBpbmplY3QoWENvbmZpZ1NlcnZpY2UpO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub3B0aW9uID0geyAuLi50aGlzLm9wdGlvbiB9O1xyXG4gICAgdGhpcy5zZXRQcm9wcygpO1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMub3B0aW9uLmxhYmVsKSkgdGhpcy5vcHRpb24ubGFiZWwgPSAnJztcclxuICAgIHRoaXMub3B0aW9uLmxhYmVsID0gYCR7dGhpcy5vcHRpb24ubGFiZWx9JHt0aGlzLmZvcm0ubGFiZWxTdWZmaXh9YDtcclxuICAgIHRoaXMuX2NvbnRyb2wgPSB0aGlzLmNyZWF0ZUNvbnRyb2wodGhpcy5vcHRpb24pO1xyXG4gICAgdGhpcy5fZm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMuX2NvbnRyb2wudmFsdWUsIHtcclxuICAgICAgbm9uTnVsbGFibGU6IHRoaXMuX2NvbnRyb2wubm9uTnVsbGFibGVcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLl9mb3JtQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnNldE1lc3NhZ2VzKHgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9jb250cm9sLnNldFZhbGlkYXRvcnMgPSAoKSA9PiB0aGlzLnNldFZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuZm9ybS5mb3JtR3JvdXAuYWRkQ29udHJvbCh0aGlzLl9jb250cm9sLmlkLCB0aGlzLl9mb3JtQ29udHJvbCk7XHJcbiAgICB0aGlzLm9wdGlvbi5jaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2NoYW5nZVByb3BzLmZvckVhY2goKHg6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciAmJiB0aGlzLm9wdGlvblt4XSkge1xyXG4gICAgICAgICAgKHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yIGFzIGFueSlbeF0gPSB0aGlzLm9wdGlvblt4XTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbENvbXBvbmVudHNbdGhpcy5fY29udHJvbC5pZF0uZm9ybUNvbnRyb2xDaGFuZ2VzKCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+IHguZm9ybSBhcyBYSTE4bkZvcm0pLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0geDtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yISwgdGhpcy5fY29udHJvbCBhcyBDb250cm9sVmFsdWVBY2Nlc3Nvcik7XHJcbiAgICB0aGlzLmZvcm0uY29udHJvbFR5cGVzW3RoaXMuX2NvbnRyb2wuaWRdID0gdGhpcy5fY29udHJvbDtcclxuICAgIHRoaXMuZm9ybS5jb250cm9sQ29tcG9uZW50c1t0aGlzLl9jb250cm9sLmlkXSA9IHRoaXMuY29udHJvbFxyXG4gICAgICAudmFsdWVBY2Nlc3NvciBhcyBYRm9ybUNvbnRyb2xDb21wb25lbnQ7XHJcbiAgICB0aGlzLmZvcm0uY29udHJvbENvbXBvbmVudHNbdGhpcy5fY29udHJvbC5pZF0uZm9ybUNvbnRyb2xDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHNldFZhbGlkYXRvcnMoKSB7XHJcbiAgICB0aGlzLl92YWxpZGF0b3JGbnMgPSBbXTtcclxuICAgIGlmICh0aGlzLl9jb250cm9sLmRpc2FibGVkIHx8IHRoaXMuZm9ybS5kaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLl9mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9mb3JtQ29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9jb250cm9sLnJlcXVpcmVkICYmICF0aGlzLmZvcm0uZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5fdmFsaWRhdG9yRm5zID0gWy4uLnRoaXMuX3ZhbGlkYXRvckZucywgVmFsaWRhdG9ycy5yZXF1aXJlZF07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fY29udHJvbC5wYXR0ZXJuKSB7XHJcbiAgICAgIHRoaXMuc2V0UGF0dGVybigpO1xyXG4gICAgfVxyXG4gICAgaWYgKFhJc0Z1bmN0aW9uKHRoaXMuX2NvbnRyb2wuaW5wdXRWYWxpZGF0b3IpKSB7XHJcbiAgICAgIHRoaXMuX3ZhbGlkYXRvckZucyA9IFtcclxuICAgICAgICAuLi50aGlzLl92YWxpZGF0b3JGbnMsXHJcbiAgICAgICAgWEZvcm1JbnB1dFZhbGlkYXRvcih0aGlzLl9jb250cm9sLmlucHV0VmFsaWRhdG9yISlcclxuICAgICAgXTtcclxuICAgIH1cclxuICAgIHRoaXMuX2Zvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy5fdmFsaWRhdG9yRm5zKTtcclxuICAgIHRoaXMuX2Zvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIHNldFByb3BzKCkge1xyXG4gICAgZm9yIChsZXQgcHJvcCBvZiB0aGlzLl9zaGFyZWRQcm9wcykge1xyXG4gICAgICBpZiAoWElzRW1wdHkodGhpcy5vcHRpb25bcHJvcF0pKSB0aGlzLm9wdGlvbltwcm9wXSA9ICh0aGlzLmZvcm0gYXMgYW55KVtwcm9wXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBhdHRlcm4oKSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLl9jb250cm9sLnBhdHRlcm4pKSB7XHJcbiAgICAgIGZvciAoY29uc3QgcHQgb2YgdGhpcy5fY29udHJvbC5wYXR0ZXJuKSB7XHJcbiAgICAgICAgdGhpcy5fdmFsaWRhdG9yRm5zID0gWy4uLnRoaXMuX3ZhbGlkYXRvckZucywgVmFsaWRhdG9ycy5wYXR0ZXJuKHB0KV07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3ZhbGlkYXRvckZucyA9IFtcclxuICAgICAgICAuLi50aGlzLl92YWxpZGF0b3JGbnMsXHJcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMuX2NvbnRyb2wucGF0dGVybiBhcyBSZWdFeHApXHJcbiAgICAgIF07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRQYXR0ZXJuTXNnKHBhdHRlcm46IHN0cmluZykge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5fY29udHJvbC5wYXR0ZXJuKSkge1xyXG4gICAgICByZXR1cm4gKHRoaXMuX2NvbnRyb2wubWVzc2FnZSBhcyBBcnJheTxhbnk+KVtcclxuICAgICAgICB0aGlzLl9jb250cm9sLnBhdHRlcm4uZmluZEluZGV4KCh4KSA9PiBTdHJpbmcoeCkgPT09IHBhdHRlcm4pXHJcbiAgICAgIF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5fY29udHJvbC5tZXNzYWdlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TWVzc2FnZXMoc3RhdGU6IEZvcm1Db250cm9sU3RhdHVzKSB7XHJcbiAgICBsZXQgY29udHJvbDogWEZvcm1Db250cm9sID0gdGhpcy5fZm9ybUNvbnRyb2w7XHJcbiAgICBpZiAoc3RhdGUgPT09ICdJTlZBTElEJyAmJiB0aGlzLl9mb3JtQ29udHJvbC5lcnJvcnMgIT09IG51bGwpIHtcclxuICAgICAgbGV0IG1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBjb250cm9sLmVycm9ycykge1xyXG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5fY29udHJvbC5sYWJlbCB8fCB0aGlzLl9jb250cm9sLmlkO1xyXG4gICAgICAgIGlmIChrZXkgPT09ICdyZXF1aXJlZCcpIHtcclxuICAgICAgICAgIG1lc3NhZ2VzID0gWy4uLm1lc3NhZ2VzLCBgJHtsYWJlbH0gJHt0aGlzLmxvY2FsZT8ucmVxdWlyZWQgfHwgJ3JlcXVpcmVkJ31gXTtcclxuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3BhdHRlcm4nKSB7XHJcbiAgICAgICAgICBtZXNzYWdlcyA9IFtcclxuICAgICAgICAgICAgLi4ubWVzc2FnZXMsXHJcbiAgICAgICAgICAgIGAke2xhYmVsfSAke3RoaXMuZ2V0UGF0dGVybk1zZyhjb250cm9sLmVycm9yc1trZXldLnJlcXVpcmVkUGF0dGVybil9YFxyXG4gICAgICAgICAgXTtcclxuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2lucHV0VmFsaWRhdG9yJykge1xyXG4gICAgICAgICAgbWVzc2FnZXMgPSBbLi4ubWVzc2FnZXMsIGAke2xhYmVsfSAke3RoaXMuX2NvbnRyb2wubWVzc2FnZX1gXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29udHJvbC5tZXNzYWdlcyA9IG1lc3NhZ2VzO1xyXG4gICAgfSBlbHNlIGlmIChzdGF0ZSA9PT0gJ1ZBTElEJykge1xyXG4gICAgICBjb250cm9sLm1lc3NhZ2VzID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVDb250cm9sKG9wdGlvbjogWEZvcm1Db250cm9sT3B0aW9uKSB7XHJcbiAgICBzd2l0Y2ggKG9wdGlvbi5jb250cm9sKSB7XHJcbiAgICAgIGNhc2UgJ2lucHV0JzpcclxuICAgICAgICByZXR1cm4gbmV3IFhJbnB1dENvbnRyb2wob3B0aW9uIGFzIFhJbnB1dENvbnRyb2xPcHRpb24pO1xyXG4gICAgICBjYXNlICdzZWxlY3QnOlxyXG4gICAgICAgIHJldHVybiBuZXcgWFNlbGVjdENvbnRyb2wob3B0aW9uIGFzIFhTZWxlY3RDb250cm9sT3B0aW9uKTtcclxuICAgICAgY2FzZSAnY2hlY2tib3gnOlxyXG4gICAgICAgIHJldHVybiBuZXcgWENoZWNrYm94Q29udHJvbChvcHRpb24gYXMgWENoZWNrYm94Q29udHJvbE9wdGlvbik7XHJcbiAgICAgIGNhc2UgJ3JhZGlvJzpcclxuICAgICAgICByZXR1cm4gbmV3IFhSYWRpb0NvbnRyb2wob3B0aW9uIGFzIFhSYWRpb0NvbnRyb2xPcHRpb24pO1xyXG4gICAgICBjYXNlICdzd2l0Y2gnOlxyXG4gICAgICAgIHJldHVybiBuZXcgWFN3aXRjaENvbnRyb2wob3B0aW9uIGFzIFhTd2l0Y2hDb250cm9sT3B0aW9uKTtcclxuICAgICAgY2FzZSAncmF0ZSc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYUmF0ZUNvbnRyb2wob3B0aW9uIGFzIFhSYXRlQ29udHJvbE9wdGlvbik7XHJcbiAgICAgIGNhc2UgJ2RhdGUtcGlja2VyJzpcclxuICAgICAgICByZXR1cm4gbmV3IFhEYXRlUGlja2VyQ29udHJvbChvcHRpb24gYXMgWERhdGVQaWNrZXJDb250cm9sT3B0aW9uKTtcclxuICAgICAgY2FzZSAndGltZS1waWNrZXInOlxyXG4gICAgICAgIHJldHVybiBuZXcgWFRpbWVQaWNrZXJDb250cm9sKG9wdGlvbiBhcyBYVGltZVBpY2tlckNvbnRyb2xPcHRpb24pO1xyXG4gICAgICBjYXNlICdpbnB1dC1udW1iZXInOlxyXG4gICAgICAgIHJldHVybiBuZXcgWElucHV0TnVtYmVyQ29udHJvbChvcHRpb24gYXMgWElucHV0TnVtYmVyQ29udHJvbE9wdGlvbik7XHJcbiAgICAgIGNhc2UgJ3NsaWRlci1zZWxlY3QnOlxyXG4gICAgICAgIHJldHVybiBuZXcgWFNsaWRlclNlbGVjdENvbnRyb2wob3B0aW9uIGFzIFhTbGlkZXJTZWxlY3RDb250cm9sT3B0aW9uKTtcclxuICAgICAgY2FzZSAnY2FzY2FkZSc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYQ2FzY2FkZUNvbnRyb2wob3B0aW9uIGFzIFhDYXNjYWRlQ29udHJvbE9wdGlvbik7XHJcbiAgICAgIGNhc2UgJ2NvbG9yLXBpY2tlcic6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYQ29sb3JQaWNrZXJDb250cm9sKG9wdGlvbiBhcyBYQ29sb3JQaWNrZXJDb250cm9sT3B0aW9uKTtcclxuICAgICAgY2FzZSAndGV4dGFyZWEnOlxyXG4gICAgICAgIHJldHVybiBuZXcgWFRleHRhcmVhQ29udHJvbChvcHRpb24gYXMgWFRleHRhcmVhQ29udHJvbE9wdGlvbik7XHJcbiAgICAgIGNhc2UgJ2ZpbmQnOlxyXG4gICAgICAgIHJldHVybiBuZXcgWEZpbmRDb250cm9sKG9wdGlvbiBhcyBYRmluZENvbnRyb2xPcHRpb24pO1xyXG4gICAgICBjYXNlICdhdXRvLWNvbXBsZXRlJzpcclxuICAgICAgICByZXR1cm4gbmV3IFhBdXRvQ29tcGxldGVDb250cm9sKG9wdGlvbiBhcyBYQXV0b0NvbXBsZXRlQ29udHJvbE9wdGlvbik7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYSW5wdXRDb250cm9sKG9wdGlvbiBhcyBYSW5wdXRDb250cm9sT3B0aW9uKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIngtY29udHJvbFwiIFtmb3JtR3JvdXBdPVwiZm9ybS5mb3JtR3JvdXBcIj5cclxuICBAc3dpdGNoIChvcHRpb24uY29udHJvbCkge1xyXG4gICAgQGNhc2UgKCdpbnB1dCcpIHtcclxuICAgICAgPHgtaW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIiAoY2xlYXJFbWl0KT1cIm9wdGlvbi5jbGVhckNsaWNrICYmIG9wdGlvbi5jbGVhckNsaWNrKCRldmVudClcIj48L3gtaW5wdXQ+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ3NlbGVjdCcpIHtcclxuICAgICAgPHgtc2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCI+PC94LXNlbGVjdD5cclxuICAgIH1cclxuICAgIEBjYXNlICgnY2FzY2FkZScpIHtcclxuICAgICAgPHgtY2FzY2FkZSBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbi5pZFwiIChub2RlRW1pdCk9XCJvcHRpb24ubm9kZUNsaWNrICYmIG9wdGlvbi5ub2RlQ2xpY2soJGV2ZW50KVwiPjwveC1jYXNjYWRlPlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKCdjaGVja2JveCcpIHtcclxuICAgICAgPHgtY2hlY2tib3ggW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIj48L3gtY2hlY2tib3g+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ2NvbG9yLXBpY2tlcicpIHtcclxuICAgICAgPHgtY29sb3ItcGlja2VyIFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCI+PC94LWNvbG9yLXBpY2tlcj5cclxuICAgIH1cclxuICAgIEBjYXNlICgnZGF0ZS1waWNrZXInKSB7XHJcbiAgICAgIDx4LWRhdGUtcGlja2VyXHJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIlxyXG4gICAgICAgIChub2RlRW1pdCk9XCJvcHRpb24ubm9kZUNsaWNrICYmIG9wdGlvbi5ub2RlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgID48L3gtZGF0ZS1waWNrZXI+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ2lucHV0LW51bWJlcicpIHtcclxuICAgICAgPHgtaW5wdXQtbnVtYmVyIFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCI+PC94LWlucHV0LW51bWJlcj5cclxuICAgIH1cclxuICAgIEBjYXNlICgncmFkaW8nKSB7XHJcbiAgICAgIDx4LXJhZGlvIFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCI+PC94LXJhZGlvPlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKCdyYXRlJykge1xyXG4gICAgICA8eC1yYXRlIFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCI+PC94LXJhdGU+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ3NsaWRlci1zZWxlY3QnKSB7XHJcbiAgICAgIDx4LXNsaWRlci1zZWxlY3QgW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIj48L3gtc2xpZGVyLXNlbGVjdD5cclxuICAgIH1cclxuICAgIEBjYXNlICgnc3dpdGNoJykge1xyXG4gICAgICA8eC1zd2l0Y2ggW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIj48L3gtc3dpdGNoPlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKCd0aW1lLXBpY2tlcicpIHtcclxuICAgICAgPHgtdGltZS1waWNrZXIgW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIj48L3gtdGltZS1waWNrZXI+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ3RleHRhcmVhJykge1xyXG4gICAgICA8eC10ZXh0YXJlYVxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uLmlkXCJcclxuICAgICAgICAoY2xlYXJFbWl0KT1cIm9wdGlvbi5jbGVhckNsaWNrICYmIG9wdGlvbi5jbGVhckNsaWNrKCRldmVudClcIlxyXG4gICAgICA+PC94LXRleHRhcmVhPlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKCdhdXRvLWNvbXBsZXRlJykge1xyXG4gICAgICA8eC1hdXRvLWNvbXBsZXRlXHJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb24uaWRcIlxyXG4gICAgICAgIChub2RlRW1pdCk9XCJvcHRpb24ubm9kZUNsaWNrICYmIG9wdGlvbi5ub2RlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgID48L3gtYXV0by1jb21wbGV0ZT5cclxuICAgIH1cclxuICAgIEBjYXNlICgnZmluZCcpIHtcclxuICAgICAgPHgtZmluZCBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbi5pZFwiPjwveC1maW5kPlxyXG4gICAgfVxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
244
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-control\" [formGroup]=\"form.formGroup()\">\r\n <ng-template cdkPortalOutlet></ng-template>\r\n</div>\r\n", styles: [".x-control{margin:0;padding:0}.x-control x-input,.x-control x-select,.x-control x-date-picker,.x-control x-time-picker,.x-control x-input-number,.x-control x-slider-select,.x-control x-cascade,.x-control x-color-picker,.x-control x-textarea,.x-control x-auto-complete{width:100%}\n"] }]
245
+ }], ctorParameters: () => [] });
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9mb3JtL2NvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZm9ybS9jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUl2QixNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixnQkFBZ0IsRUFFaEIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQTJELE1BQU0saUJBQWlCLENBQUM7QUFDNUcsT0FBTyxFQUNMLFVBQVUsRUFDVixrQkFBa0IsRUFHbEIsV0FBVyxFQUNYLG1CQUFtQixFQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBYSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBVSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1C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QUNqQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2Qsc0JBQXNCO3FCQUN2QixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgT25Jbml0LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIGluamVjdCxcclxuICB2aWV3Q2hpbGQsXHJcbiAgc2lnbmFsLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgQ29tcG9uZW50UmVmLFxyXG4gIE91dHB1dEVtaXR0ZXJSZWYsXHJcbiAgZWZmZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhDb250cm9sUHJvcGVydHksIFhGb3JtQ29udHJvbE9wdGlvbiwgWEZvcm1Db250cm9sQ29tcG9uZW50LCBYRm9ybUNvbnRyb2wgfSBmcm9tICcuL2Zvcm0ucHJvcGVydHknO1xyXG5pbXBvcnQge1xyXG4gIFZhbGlkYXRvcnMsXHJcbiAgVW50eXBlZEZvcm1Db250cm9sLFxyXG4gIFZhbGlkYXRvckZuLFxyXG4gIEZvcm1Db250cm9sU3RhdHVzLFxyXG4gIEZvcm1zTW9kdWxlLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGVcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYSXNGdW5jdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBYSTE4bkZvcm0sIFhJMThuU2VydmljZSwgemhfQ04gfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWEZvcm1JbnB1dFZhbGlkYXRvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcbmltcG9ydCB7IFhGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXQsIENvbXBvbmVudFBvcnRhbCwgUG9ydGFsLCBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYQXV0b0NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvYXV0by1jb21wbGV0ZSc7XHJcbmltcG9ydCB7IFhDYXNjYWRlQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvY2FzY2FkZSc7XHJcbmltcG9ydCB7IFhDaGVja2JveENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NoZWNrYm94JztcclxuaW1wb3J0IHsgWENvbG9yUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvY29sb3ItcGlja2VyJztcclxuaW1wb3J0IHsgWERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9kYXRlLXBpY2tlcic7XHJcbmltcG9ydCB7IFhGaW5kQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvZmluZCc7XHJcbmltcG9ydCB7IFhJbnB1dE51bWJlckNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0LW51bWJlcic7XHJcbmltcG9ydCB7IFhSYWRpb0NvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3JhZGlvJztcclxuaW1wb3J0IHsgWFJhdGVDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9yYXRlJztcclxuaW1wb3J0IHsgWFNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3NlbGVjdCc7XHJcbmltcG9ydCB7IFhTbGlkZXJTZWxlY3RDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9zbGlkZXItc2VsZWN0JztcclxuaW1wb3J0IHsgWFN3aXRjaENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3N3aXRjaCc7XHJcbmltcG9ydCB7IFhUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3RleHRhcmVhJztcclxuaW1wb3J0IHsgWFRpbWVQaWNrZXJDb21wb25lbnQsIFhUaW1lUGlja2VyTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvdGltZS1waWNrZXInO1xyXG4vLyBpbXBvcnQgeyBYU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvc2VsZWN0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAneC1jb250cm9sJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFBvcnRhbE1vZHVsZSxcclxuXHJcbiAgICBYSW5wdXRDb21wb25lbnQsXHJcbiAgICBYU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgWENhc2NhZGVDb21wb25lbnQsXHJcbiAgICBYQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBYQ29sb3JQaWNrZXJDb21wb25lbnQsXHJcbiAgICBYRGF0ZVBpY2tlckNvbXBvbmVudCxcclxuICAgIFhJbnB1dE51bWJlckNvbXBvbmVudCxcclxuICAgIFhSYWRpb0NvbXBvbmVudCxcclxuICAgIFhSYXRlQ29tcG9uZW50LFxyXG4gICAgWFNsaWRlclNlbGVjdENvbXBvbmVudCxcclxuICAgIFhTd2l0Y2hDb21wb25lbnQsXHJcbiAgICBYVGltZVBpY2tlck1vZHVsZSxcclxuICAgIFhUZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIFhGaW5kQ29tcG9uZW50LFxyXG4gICAgWEF1dG9Db21wbGV0ZUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQ29udHJvbENvbXBvbmVudCBleHRlbmRzIFhDb250cm9sUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KFhJMThuU2VydmljZSk7XHJcbiAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xyXG4gIHByaXZhdGUgX3NoYXJlZFByb3BzID0gc2lnbmFsKFsnc3BhbicsICdkaXJlY3Rpb24nLCAnanVzdGlmeScsICdhbGlnbicsICdsYWJlbFdpZHRoJywgJ2xhYmVsQWxpZ24nXSk7XHJcbiAgcHJpdmF0ZSB2YWxpZGF0b3JGbnMgPSBzaWduYWw8VmFsaWRhdG9yRm5bXT4oW10pO1xyXG4gIHByaXZhdGUgZm9ybUNvbnRyb2wgPSBzaWduYWw8VW50eXBlZEZvcm1Db250cm9sIHwgbnVsbD4obnVsbCk7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICB2YWx1ZSA9IHNpZ25hbDxhbnk+KG51bGwpO1xyXG5cclxuICBmb3JtID0gaW5qZWN0KFhGb3JtQ29tcG9uZW50LCB7IG9wdGlvbmFsOiB0cnVlIH0pITtcclxuICBsb2NhbGUgPSB0b1NpZ25hbCh0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlLnBpcGUobWFwKCh4KSA9PiB4LmZvcm0gYXMgWEkxOG5Gb3JtKSksIHsgaW5pdGlhbFZhbHVlOiB6aF9DTi5mb3JtIH0pO1xyXG4gIHBvcnRhbCA9IHNpZ25hbDxQb3J0YWw8YW55PiB8IG51bGw+KG51bGwpO1xyXG4gIGNvbXBvbmVudFBvcnRhbCE6IENvbXBvbmVudFBvcnRhbDxYRm9ybUNvbnRyb2xDb21wb25lbnQ+O1xyXG4gIGNvbXBvbmVudFJlZiE6IENvbXBvbmVudFJlZjxYRm9ybUNvbnRyb2xDb21wb25lbnQ+O1xyXG4gIHBvcnRhbE91dGxldCA9IHZpZXdDaGlsZC5yZXF1aXJlZChDZGtQb3J0YWxPdXRsZXQpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBlZmZlY3QoXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICB0aGlzLmZvcm1Db250cm9sKCk/LnNldFZhbHVlKHRoaXMudmFsdWUoKSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRPcHRpb24oKTtcclxuXHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldChcclxuICAgICAgbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLm9wdGlvbigpLnZhbHVlLCB7XHJcbiAgICAgICAgbm9uTnVsbGFibGU6IHRoaXMub3B0aW9uKCkubm9uTnVsbGFibGVcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLnNldFZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2woKSFcclxuICAgICAgLnN0YXR1c0NoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0TWVzc2FnZXMoeCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5vcHRpb24oKS5zZXRWYWxpZGF0b3JzID0gKCkgPT4gdGhpcy5zZXRWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLmZvcm0uZm9ybUdyb3VwKCkuYWRkQ29udHJvbCh0aGlzLm9wdGlvbigpLmlkLCB0aGlzLmZvcm1Db250cm9sKCkpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRQb3J0YWwgPSB0aGlzLmNyZWF0ZUNvbXBvbmVudFBvcnRhbCh0aGlzLm9wdGlvbigpKTtcclxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5wb3J0YWxPdXRsZXQoKS5hdHRhY2hDb21wb25lbnRQb3J0YWwodGhpcy5jb21wb25lbnRQb3J0YWwpO1xyXG5cclxuICAgIGZvciAobGV0IGtleSBpbiB0aGlzLm9wdGlvbigpKSB7XHJcbiAgICAgIGlmIChrZXkgaW4gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpIHtcclxuICAgICAgICBjb25zdCB2YWwgPSAodGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgYW55KVtrZXldO1xyXG4gICAgICAgIGlmIChYSXNGdW5jdGlvbih2YWwpKSB7XHJcbiAgICAgICAgICBjb25zdCB2YWxTdHIgPSB2YWwudG9TdHJpbmcoKTtcclxuICAgICAgICAgIGlmICh2YWxTdHIuc3RhcnRzV2l0aCgnW0lucHV0IFNpZ25hbDonKSkge1xyXG4gICAgICAgICAgICAvLyBpbnB1dFxyXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5zZXRJbnB1dChrZXksIHRoaXMub3B0aW9uKClba2V5XSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHZhbFN0ci5zdGFydHNXaXRoKCdbTW9kZWwgU2lnbmFsOicpKSB7XHJcbiAgICAgICAgICAgIC8vIG1vZGVsXHJcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLnNldElucHV0KGtleSwgdGhpcy5vcHRpb24oKVtrZXldKTtcclxuICAgICAgICAgICAgdmFsLnN1YnNjcmliZSgoeDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vcHRpb24oKVtrZXldID0geDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHZhbFN0ci5zdGFydHNXaXRoKCdbU2lnbmFsOicpKSB7XHJcbiAgICAgICAgICAgIC8vIHNpZ25hbFxyXG4gICAgICAgICAgICB2YWwuc2V0KHRoaXMub3B0aW9uKClba2V5XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWwgaW5zdGFuY2VvZiBPdXRwdXRFbWl0dGVyUmVmKSB7XHJcbiAgICAgICAgICAvLyBvdXRwdXRcclxuICAgICAgICAgIHZhbC5zdWJzY3JpYmUoKHgpID0+IHRoaXMub3B0aW9uKClba2V5XSh4KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdmFsdWVcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZVsndmFsdWUnXTtcclxuXHJcbiAgICB0aGlzLmZvcm0uY29udHJvbFR5cGVzW3RoaXMub3B0aW9uKCkuaWRdID0gdGhpcy5vcHRpb24oKTtcclxuICAgIHRoaXMuZm9ybS5jb250cm9sQ29tcG9uZW50c1t0aGlzLm9wdGlvbigpLmlkXSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWxpZGF0b3JzKCkge1xyXG4gICAgdGhpcy52YWxpZGF0b3JGbnMuc2V0KFtdKTtcclxuICAgIGlmICh0aGlzLm9wdGlvbigpLmRpc2FibGVkIHx8IHRoaXMuZm9ybS5kaXNhYmxlZCgpKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2woKSEuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbCgpIS5lbmFibGUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9wdGlvbigpLnJlcXVpcmVkICYmICF0aGlzLmZvcm0uZGlzYWJsZWQoKSkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRvckZucy51cGRhdGUoKHgpID0+IFsuLi54LCBWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vcHRpb24oKS5wYXR0ZXJuKSB7XHJcbiAgICAgIHRoaXMuc2V0UGF0dGVybigpO1xyXG4gICAgfVxyXG4gICAgaWYgKFhJc0Z1bmN0aW9uKHRoaXMub3B0aW9uKCkuaW5wdXRWYWxpZGF0b3IpKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdG9yRm5zLnVwZGF0ZSgoeCkgPT4gWy4uLngsIFhGb3JtSW5wdXRWYWxpZGF0b3IodGhpcy5vcHRpb24oKS5pbnB1dFZhbGlkYXRvciEpXSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sKCkhLnNldFZhbGlkYXRvcnModGhpcy52YWxpZGF0b3JGbnMoKSk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sKCkhLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIHNldE9wdGlvbigpIHtcclxuICAgIGZvciAobGV0IHByb3Agb2YgdGhpcy5fc2hhcmVkUHJvcHMoKSkge1xyXG4gICAgICBpZiAoWElzRW1wdHkodGhpcy5vcHRpb24oKVtwcm9wXSkpIHtcclxuICAgICAgICB0aGlzLm9wdGlvbi51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICAgIHhbcHJvcF0gPSAodGhpcy5mb3JtIGFzIGFueSlbcHJvcF0oKTtcclxuICAgICAgICAgIHJldHVybiB4O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy5vcHRpb24oKS5sYWJlbCkpIHtcclxuICAgICAgdGhpcy5vcHRpb24udXBkYXRlKCh4KSA9PiB7XHJcbiAgICAgICAgeC5sYWJlbCA9ICcnO1xyXG4gICAgICAgIHJldHVybiB4O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMub3B0aW9uLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICB4LmxhYmVsID0gYCR7dGhpcy5vcHRpb24oKS5sYWJlbH0ke3RoaXMuZm9ybS5sYWJlbFN1ZmZpeCgpfWA7XHJcbiAgICAgIHJldHVybiB4O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQYXR0ZXJuKCkge1xyXG4gICAgY29uc3QgcGF0dGVybiA9IHRoaXMub3B0aW9uKCkucGF0dGVybjtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHBhdHRlcm4pKSB7XHJcbiAgICAgIGZvciAoY29uc3QgcHQgb2YgcGF0dGVybikge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdG9yRm5zLnVwZGF0ZSgoeCkgPT4gWy4uLngsIFZhbGlkYXRvcnMucGF0dGVybihwdCldKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWxpZGF0b3JGbnMudXBkYXRlKCh4KSA9PiBbLi4ueCwgVmFsaWRhdG9ycy5wYXR0ZXJuKHBhdHRlcm4gYXMgUmVnRXhwKV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UGF0dGVybk1zZyhwYXR0ZXJuOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGNvbnRyb2xQYXR0ZXJuID0gdGhpcy5vcHRpb24oKS5wYXR0ZXJuO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY29udHJvbFBhdHRlcm4pKSB7XHJcbiAgICAgIHJldHVybiAodGhpcy5vcHRpb24oKS5tZXNzYWdlIGFzIEFycmF5PGFueT4pW2NvbnRyb2xQYXR0ZXJuLmZpbmRJbmRleCgoeCkgPT4gU3RyaW5nKHgpID09PSBwYXR0ZXJuKV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5vcHRpb24oKS5tZXNzYWdlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TWVzc2FnZXMoc3RhdGU6IEZvcm1Db250cm9sU3RhdHVzKSB7XHJcbiAgICBsZXQgY29udHJvbCA9IHRoaXMuZm9ybUNvbnRyb2woKSEgYXMgWEZvcm1Db250cm9sO1xyXG4gICAgaWYgKHN0YXRlID09PSAnSU5WQUxJRCcgJiYgdGhpcy5mb3JtQ29udHJvbCgpIS5lcnJvcnMgIT09IG51bGwpIHtcclxuICAgICAgbGV0IG1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBjb250cm9sLmVycm9ycykge1xyXG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5vcHRpb24oKS5sYWJlbCB8fCB0aGlzLm9wdGlvbigpLmlkO1xyXG4gICAgICAgIGlmIChrZXkgPT09ICdyZXF1aXJlZCcpIHtcclxuICAgICAgICAgIG1lc3NhZ2VzID0gWy4uLm1lc3NhZ2VzLCBgJHtsYWJlbH0gJHt0aGlzLmxvY2FsZSgpLnJlcXVpcmVkIHx8ICdyZXF1aXJlZCd9YF07XHJcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdwYXR0ZXJuJykge1xyXG4gICAgICAgICAgbWVzc2FnZXMgPSBbLi4ubWVzc2FnZXMsIGAke2xhYmVsfSAke3RoaXMuZ2V0UGF0dGVybk1zZyhjb250cm9sLmVycm9yc1trZXldLnJlcXVpcmVkUGF0dGVybil9YF07XHJcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdpbnB1dFZhbGlkYXRvcicpIHtcclxuICAgICAgICAgIG1lc3NhZ2VzID0gWy4uLm1lc3NhZ2VzLCBgJHtsYWJlbH0gJHt0aGlzLm9wdGlvbigpLm1lc3NhZ2V9YF07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnRyb2wubWVzc2FnZXMgPSBtZXNzYWdlcztcclxuICAgIH0gZWxzZSBpZiAoc3RhdGUgPT09ICdWQUxJRCcpIHtcclxuICAgICAgY29udHJvbC5tZXNzYWdlcyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlQ29tcG9uZW50UG9ydGFsKG9wdGlvbjogWEZvcm1Db250cm9sT3B0aW9uKSB7XHJcbiAgICBzd2l0Y2ggKG9wdGlvbi5jb250cm9sKSB7XHJcbiAgICAgIGNhc2UgJ2lucHV0JzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYSW5wdXRDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDb21wb25lbnRQb3J0YWwoWFNlbGVjdENvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgY2FzZSAnY2hlY2tib3gnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhDaGVja2JveENvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgY2FzZSAncmFkaW8nOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhSYWRpb0NvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgY2FzZSAnc3dpdGNoJzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYU3dpdGNoQ29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBjYXNlICdyYXRlJzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYUmF0ZUNvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgY2FzZSAnZGF0ZS1waWNrZXInOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhEYXRlUGlja2VyQ29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBjYXNlICd0aW1lLXBpY2tlcic6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDb21wb25lbnRQb3J0YWwoWFRpbWVQaWNrZXJDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIGNhc2UgJ2lucHV0LW51bWJlcic6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDb21wb25lbnRQb3J0YWwoWElucHV0TnVtYmVyQ29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBjYXNlICdzbGlkZXItc2VsZWN0JzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYU2xpZGVyU2VsZWN0Q29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBjYXNlICdjYXNjYWRlJzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYQ2FzY2FkZUNvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgY2FzZSAnY29sb3ItcGlja2VyJzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYQ29sb3JQaWNrZXJDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIGNhc2UgJ3RleHRhcmVhJzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYVGV4dGFyZWFDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIGNhc2UgJ2ZpbmQnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhGaW5kQ29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBjYXNlICdhdXRvLWNvbXBsZXRlJzpcclxuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChYQXV0b0NvbXBsZXRlQ29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFhJbnB1dENvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIngtY29udHJvbFwiIFtmb3JtR3JvdXBdPVwiZm9ybS5mb3JtR3JvdXAoKVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSBjZGtQb3J0YWxPdXRsZXQ+PC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==