@ng-nest/ui 18.0.11 → 19.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 (883) hide show
  1. package/README.md +1 -1
  2. package/affix/affix.property.d.ts +1 -1
  3. package/alert/alert.property.d.ts +1 -1
  4. package/anchor/anchor.property.d.ts +2 -2
  5. package/auto-complete/auto-complete.property.d.ts +16 -19
  6. package/avatar/avatar.property.d.ts +2 -2
  7. package/back-top/back-top.property.d.ts +1 -1
  8. package/badge/badge.property.d.ts +1 -1
  9. package/base-form/base-form.property.d.ts +2 -2
  10. package/button/button.property.d.ts +2 -2
  11. package/calendar/calendar.property.d.ts +1 -1
  12. package/card/card.property.d.ts +1 -1
  13. package/carousel/carousel.property.d.ts +2 -2
  14. package/cascade/cascade.property.d.ts +16 -27
  15. package/checkbox/checkbox.property.d.ts +16 -22
  16. package/collapse/collapse.property.d.ts +2 -2
  17. package/color/color.property.d.ts +1 -1
  18. package/color-picker/color-picker-portal.component.d.ts +10 -10
  19. package/color-picker/color-picker.property.d.ts +15 -15
  20. package/comment/comment.property.d.ts +2 -2
  21. package/container/container.property.d.ts +4 -4
  22. package/crumb/crumb.property.d.ts +1 -1
  23. package/date-picker/date-picker-portal.component.d.ts +1 -1
  24. package/date-picker/date-picker.property.d.ts +34 -34
  25. package/date-picker/date-range-portal.component.d.ts +5 -5
  26. package/description/description.property.d.ts +2 -2
  27. package/dialog/dialog-portal.component.d.ts +0 -2
  28. package/dialog/dialog-portal.directives.d.ts +2 -3
  29. package/dialog/dialog-ref.d.ts +4 -2
  30. package/dialog/dialog.component.d.ts +0 -5
  31. package/dialog/dialog.property.d.ts +14 -10
  32. package/drag/drag.property.d.ts +1 -1
  33. package/drawer/drawer.property.d.ts +2 -2
  34. package/dropdown/dropdown.property.d.ts +1 -1
  35. package/empty/empty.property.d.ts +1 -1
  36. package/fesm2022/ng-nest-ui-affix.mjs +14 -12
  37. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  38. package/fesm2022/ng-nest-ui-alert.mjs +14 -12
  39. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  40. package/fesm2022/ng-nest-ui-anchor.mjs +23 -20
  41. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  42. package/fesm2022/ng-nest-ui-api.mjs +8 -8
  43. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  44. package/fesm2022/ng-nest-ui-auto-complete.mjs +16 -16
  45. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  46. package/fesm2022/ng-nest-ui-avatar.mjs +18 -18
  47. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  48. package/fesm2022/ng-nest-ui-back-top.mjs +13 -12
  49. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  50. package/fesm2022/ng-nest-ui-badge.mjs +11 -11
  51. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  52. package/fesm2022/ng-nest-ui-base-form.mjs +10 -10
  53. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  54. package/fesm2022/ng-nest-ui-button.mjs +18 -18
  55. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  56. package/fesm2022/ng-nest-ui-calendar.mjs +14 -15
  57. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  58. package/fesm2022/ng-nest-ui-card.mjs +11 -12
  59. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  60. package/fesm2022/ng-nest-ui-carousel.mjs +20 -19
  61. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  62. package/fesm2022/ng-nest-ui-cascade.mjs +16 -16
  63. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  64. package/fesm2022/ng-nest-ui-checkbox.mjs +12 -12
  65. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  66. package/fesm2022/ng-nest-ui-collapse.mjs +18 -18
  67. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  68. package/fesm2022/ng-nest-ui-color-picker.mjs +15 -15
  69. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  70. package/fesm2022/ng-nest-ui-color.mjs +11 -11
  71. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  72. package/fesm2022/ng-nest-ui-comment.mjs +18 -18
  73. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  74. package/fesm2022/ng-nest-ui-container.mjs +36 -36
  75. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  76. package/fesm2022/ng-nest-ui-core.mjs +15 -15
  77. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  78. package/fesm2022/ng-nest-ui-crumb.mjs +11 -11
  79. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  80. package/fesm2022/ng-nest-ui-date-picker.mjs +57 -57
  81. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  82. package/fesm2022/ng-nest-ui-description.mjs +18 -18
  83. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  84. package/fesm2022/ng-nest-ui-dialog.mjs +70 -144
  85. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  86. package/fesm2022/ng-nest-ui-doc.mjs +8 -8
  87. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  88. package/fesm2022/ng-nest-ui-drag.mjs +11 -11
  89. package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
  90. package/fesm2022/ng-nest-ui-drawer.mjs +38 -41
  91. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  92. package/fesm2022/ng-nest-ui-dropdown.mjs +15 -16
  93. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  94. package/fesm2022/ng-nest-ui-empty.mjs +11 -11
  95. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  96. package/fesm2022/ng-nest-ui-examples.mjs +8 -8
  97. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  98. package/fesm2022/ng-nest-ui-find.mjs +11 -11
  99. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  100. package/fesm2022/ng-nest-ui-form.mjs +21 -40
  101. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  102. package/fesm2022/ng-nest-ui-highlight.mjs +14 -14
  103. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  104. package/fesm2022/ng-nest-ui-i18n.mjs +15 -17
  105. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  106. package/fesm2022/ng-nest-ui-icon.mjs +14 -14
  107. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  108. package/fesm2022/ng-nest-ui-image.mjs +24 -24
  109. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  110. package/fesm2022/ng-nest-ui-inner.mjs +11 -11
  111. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  112. package/fesm2022/ng-nest-ui-input-number.mjs +11 -11
  113. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  114. package/fesm2022/ng-nest-ui-input.mjs +19 -19
  115. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  116. package/fesm2022/ng-nest-ui-keyword.mjs +12 -13
  117. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  118. package/fesm2022/ng-nest-ui-layout.mjs +18 -18
  119. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  120. package/fesm2022/ng-nest-ui-link.mjs +11 -11
  121. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  122. package/fesm2022/ng-nest-ui-list.mjs +22 -23
  123. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  124. package/fesm2022/ng-nest-ui-loading.mjs +12 -12
  125. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  126. package/fesm2022/ng-nest-ui-menu.mjs +19 -20
  127. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  128. package/fesm2022/ng-nest-ui-message-box.mjs +11 -13
  129. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  130. package/fesm2022/ng-nest-ui-message.mjs +11 -11
  131. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  132. package/fesm2022/ng-nest-ui-notification.mjs +11 -11
  133. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  134. package/fesm2022/ng-nest-ui-outlet.mjs +8 -8
  135. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  136. package/fesm2022/ng-nest-ui-page-header.mjs +11 -11
  137. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  138. package/fesm2022/ng-nest-ui-pagination.mjs +11 -11
  139. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  140. package/fesm2022/ng-nest-ui-pattern.mjs +8 -8
  141. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  142. package/fesm2022/ng-nest-ui-popconfirm.mjs +11 -11
  143. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  144. package/fesm2022/ng-nest-ui-popover.mjs +15 -15
  145. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  146. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  147. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  148. package/fesm2022/ng-nest-ui-progress.mjs +11 -11
  149. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  150. package/fesm2022/ng-nest-ui-radio.mjs +11 -11
  151. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  152. package/fesm2022/ng-nest-ui-rate.mjs +11 -12
  153. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  154. package/fesm2022/ng-nest-ui-resizable.mjs +16 -14
  155. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  156. package/fesm2022/ng-nest-ui-result.mjs +11 -11
  157. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  158. package/fesm2022/ng-nest-ui-ripple.mjs +37 -27
  159. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  160. package/fesm2022/ng-nest-ui-select.mjs +32 -17
  161. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  162. package/fesm2022/ng-nest-ui-skeleton.mjs +13 -11
  163. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  164. package/fesm2022/ng-nest-ui-slider-select.mjs +15 -21
  165. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  166. package/fesm2022/ng-nest-ui-slider.mjs +11 -11
  167. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  168. package/fesm2022/ng-nest-ui-statistic.mjs +18 -18
  169. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  170. package/fesm2022/ng-nest-ui-steps.mjs +11 -11
  171. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  172. package/fesm2022/ng-nest-ui-switch.mjs +11 -11
  173. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  174. package/fesm2022/ng-nest-ui-table.mjs +33 -33
  175. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  176. package/fesm2022/ng-nest-ui-tabs.mjs +30 -32
  177. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  178. package/fesm2022/ng-nest-ui-tag.mjs +11 -11
  179. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  180. package/fesm2022/ng-nest-ui-text-retract.mjs +11 -11
  181. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  182. package/fesm2022/ng-nest-ui-textarea.mjs +11 -11
  183. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  184. package/fesm2022/ng-nest-ui-theme.mjs +13 -14
  185. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  186. package/fesm2022/ng-nest-ui-time-ago.mjs +8 -8
  187. package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
  188. package/fesm2022/ng-nest-ui-time-picker.mjs +19 -19
  189. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  190. package/fesm2022/ng-nest-ui-time-range.mjs +8 -8
  191. package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
  192. package/fesm2022/ng-nest-ui-timeline.mjs +11 -11
  193. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  194. package/fesm2022/ng-nest-ui-tooltip.mjs +15 -15
  195. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  196. package/fesm2022/ng-nest-ui-transfer.mjs +12 -13
  197. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  198. package/fesm2022/ng-nest-ui-tree-file.mjs +12 -20
  199. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  200. package/fesm2022/ng-nest-ui-tree-select.mjs +15 -15
  201. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  202. package/fesm2022/ng-nest-ui-tree.mjs +21 -21
  203. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  204. package/fesm2022/ng-nest-ui-typography.mjs +11 -11
  205. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  206. package/fesm2022/ng-nest-ui-upload.mjs +15 -15
  207. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  208. package/find/find.property.d.ts +12 -18
  209. package/form/form.property.d.ts +10 -21
  210. package/highlight/highlight.property.d.ts +1 -1
  211. package/icon/icon.property.d.ts +1 -1
  212. package/image/image.property.d.ts +2 -2
  213. package/inner/inner.property.d.ts +1 -1
  214. package/input/input.property.d.ts +17 -20
  215. package/input-number/input-number.property.d.ts +13 -13
  216. package/layout/layout.property.d.ts +2 -2
  217. package/link/link.property.d.ts +1 -1
  218. package/list/list.property.d.ts +12 -12
  219. package/loading/loading.property.d.ts +1 -1
  220. package/menu/menu.property.d.ts +2 -2
  221. package/package.json +108 -282
  222. package/page-header/page-header.property.d.ts +1 -1
  223. package/pagination/pagination.property.d.ts +1 -1
  224. package/popconfirm/popconfirm.property.d.ts +1 -1
  225. package/popover/popover.property.d.ts +1 -1
  226. package/progress/progress.property.d.ts +1 -1
  227. package/radio/radio.property.d.ts +13 -16
  228. package/rate/rate.property.d.ts +14 -22
  229. package/result/result.property.d.ts +1 -1
  230. package/ripple/ripple.directive.d.ts +7 -3
  231. package/ripple/ripple.property.d.ts +1 -1
  232. package/select/select-portal.component.d.ts +3 -2
  233. package/select/select.component.d.ts +1 -0
  234. package/select/select.property.d.ts +20 -15
  235. package/skeleton/skeleton.property.d.ts +1 -1
  236. package/slider/slider.property.d.ts +1 -1
  237. package/slider-select/slider-select.property.d.ts +13 -17
  238. package/statistic/statistic.property.d.ts +2 -2
  239. package/steps/steps.property.d.ts +1 -1
  240. package/style/core/index.css +87 -174
  241. package/style/core/index.css.map +1 -1
  242. package/style/core/index.scss +32 -5
  243. package/style/directives/index.scss +3 -3
  244. package/style/directives/keyword/index.scss +3 -2
  245. package/style/directives/keyword/mixin.scss +9 -11
  246. package/style/directives/keyword/param.scss +2 -1
  247. package/style/directives/resizable/index.scss +3 -2
  248. package/style/directives/resizable/mixin.scss +122 -16
  249. package/style/directives/resizable/param.scss +2 -1
  250. package/style/directives/ripple/index.scss +3 -2
  251. package/style/directives/ripple/mixin.scss +12 -12
  252. package/style/directives/ripple/param.scss +2 -1
  253. package/style/mixins/compatibility.scss +7 -5
  254. package/style/mixins/form.scss +6 -4
  255. package/style/mixins/hidden.scss +5 -2
  256. package/style/params/index.scss +282 -3
  257. package/switch/switch.property.d.ts +14 -14
  258. package/table/table.property.d.ts +4 -4
  259. package/tabs/tabs.property.d.ts +2 -2
  260. package/tag/tag.property.d.ts +1 -1
  261. package/text-retract/text-retract.property.d.ts +1 -1
  262. package/textarea/textarea.property.d.ts +14 -17
  263. package/theme/theme.property.d.ts +6 -10
  264. package/time-picker/time-picker.property.d.ts +17 -23
  265. package/timeline/timeline.property.d.ts +1 -1
  266. package/tooltip/tooltip.property.d.ts +1 -1
  267. package/transfer/transfer.property.d.ts +9 -13
  268. package/tree/tree.property.d.ts +2 -2
  269. package/tree-file/tree-file.property.d.ts +1 -1
  270. package/tree-select/tree-select-portal.component.d.ts +1 -1
  271. package/tree-select/tree-select.property.d.ts +15 -15
  272. package/typography/typography.property.d.ts +1 -1
  273. package/upload/upload.property.d.ts +9 -9
  274. package/esm2022/affix/affix.component.mjs +0 -12
  275. package/esm2022/affix/affix.module.mjs +0 -16
  276. package/esm2022/affix/affix.property.mjs +0 -51
  277. package/esm2022/affix/ng-nest-ui-affix.mjs +0 -5
  278. package/esm2022/affix/public-api.mjs +0 -4
  279. package/esm2022/alert/alert.component.mjs +0 -73
  280. package/esm2022/alert/alert.module.mjs +0 -16
  281. package/esm2022/alert/alert.property.mjs +0 -313
  282. package/esm2022/alert/ng-nest-ui-alert.mjs +0 -5
  283. package/esm2022/alert/public-api.mjs +0 -4
  284. package/esm2022/anchor/anchor-inner.component.mjs +0 -18
  285. package/esm2022/anchor/anchor.component.mjs +0 -160
  286. package/esm2022/anchor/anchor.module.mjs +0 -17
  287. package/esm2022/anchor/anchor.property.mjs +0 -121
  288. package/esm2022/anchor/ng-nest-ui-anchor.mjs +0 -5
  289. package/esm2022/anchor/public-api.mjs +0 -5
  290. package/esm2022/api/api.component.mjs +0 -18
  291. package/esm2022/api/api.module.mjs +0 -16
  292. package/esm2022/api/api.property.mjs +0 -7
  293. package/esm2022/api/ng-nest-ui-api.mjs +0 -5
  294. package/esm2022/api/public-api.mjs +0 -4
  295. package/esm2022/auto-complete/auto-complete-portal.component.mjs +0 -80
  296. package/esm2022/auto-complete/auto-complete.component.mjs +0 -306
  297. package/esm2022/auto-complete/auto-complete.module.mjs +0 -16
  298. package/esm2022/auto-complete/auto-complete.property.mjs +0 -172
  299. package/esm2022/auto-complete/ng-nest-ui-auto-complete.mjs +0 -5
  300. package/esm2022/auto-complete/public-api.mjs +0 -5
  301. package/esm2022/avatar/avatar-group.component.mjs +0 -19
  302. package/esm2022/avatar/avatar.component.mjs +0 -109
  303. package/esm2022/avatar/avatar.module.mjs +0 -17
  304. package/esm2022/avatar/avatar.property.mjs +0 -143
  305. package/esm2022/avatar/ng-nest-ui-avatar.mjs +0 -5
  306. package/esm2022/avatar/public-api.mjs +0 -5
  307. package/esm2022/back-top/back-top.component.mjs +0 -104
  308. package/esm2022/back-top/back-top.module.mjs +0 -16
  309. package/esm2022/back-top/back-top.property.mjs +0 -50
  310. package/esm2022/back-top/ng-nest-ui-back-top.mjs +0 -5
  311. package/esm2022/back-top/public-api.mjs +0 -4
  312. package/esm2022/badge/badge.component.mjs +0 -63
  313. package/esm2022/badge/badge.module.mjs +0 -16
  314. package/esm2022/badge/badge.property.mjs +0 -133
  315. package/esm2022/badge/ng-nest-ui-badge.mjs +0 -5
  316. package/esm2022/badge/public-api.mjs +0 -4
  317. package/esm2022/base-form/base-form.component.mjs +0 -101
  318. package/esm2022/base-form/base-form.module.mjs +0 -15
  319. package/esm2022/base-form/base-form.property.mjs +0 -237
  320. package/esm2022/base-form/ng-nest-ui-base-form.mjs +0 -5
  321. package/esm2022/base-form/public-api.mjs +0 -4
  322. package/esm2022/button/button.component.mjs +0 -71
  323. package/esm2022/button/button.module.mjs +0 -17
  324. package/esm2022/button/button.property.mjs +0 -331
  325. package/esm2022/button/buttons.component.mjs +0 -55
  326. package/esm2022/button/ng-nest-ui-button.mjs +0 -5
  327. package/esm2022/button/public-api.mjs +0 -5
  328. package/esm2022/calendar/calendar.component.mjs +0 -117
  329. package/esm2022/calendar/calendar.module.mjs +0 -16
  330. package/esm2022/calendar/calendar.property.mjs +0 -110
  331. package/esm2022/calendar/ng-nest-ui-calendar.mjs +0 -5
  332. package/esm2022/calendar/public-api.mjs +0 -4
  333. package/esm2022/card/card.component.mjs +0 -22
  334. package/esm2022/card/card.module.mjs +0 -16
  335. package/esm2022/card/card.property.mjs +0 -77
  336. package/esm2022/card/ng-nest-ui-card.mjs +0 -5
  337. package/esm2022/card/public-api.mjs +0 -4
  338. package/esm2022/carousel/carousel-panel.component.mjs +0 -157
  339. package/esm2022/carousel/carousel.component.mjs +0 -95
  340. package/esm2022/carousel/carousel.module.mjs +0 -17
  341. package/esm2022/carousel/carousel.property.mjs +0 -256
  342. package/esm2022/carousel/ng-nest-ui-carousel.mjs +0 -5
  343. package/esm2022/carousel/public-api.mjs +0 -5
  344. package/esm2022/cascade/cascade-portal.component.mjs +0 -141
  345. package/esm2022/cascade/cascade.component.mjs +0 -238
  346. package/esm2022/cascade/cascade.module.mjs +0 -16
  347. package/esm2022/cascade/cascade.property.mjs +0 -167
  348. package/esm2022/cascade/ng-nest-ui-cascade.mjs +0 -5
  349. package/esm2022/cascade/public-api.mjs +0 -5
  350. package/esm2022/checkbox/checkbox.component.mjs +0 -102
  351. package/esm2022/checkbox/checkbox.module.mjs +0 -16
  352. package/esm2022/checkbox/checkbox.property.mjs +0 -136
  353. package/esm2022/checkbox/ng-nest-ui-checkbox.mjs +0 -5
  354. package/esm2022/checkbox/public-api.mjs +0 -4
  355. package/esm2022/collapse/collapse-panel.component.mjs +0 -55
  356. package/esm2022/collapse/collapse.component.mjs +0 -49
  357. package/esm2022/collapse/collapse.module.mjs +0 -17
  358. package/esm2022/collapse/collapse.property.mjs +0 -189
  359. package/esm2022/collapse/ng-nest-ui-collapse.mjs +0 -5
  360. package/esm2022/collapse/public-api.mjs +0 -5
  361. package/esm2022/color/color.component.mjs +0 -35
  362. package/esm2022/color/color.module.mjs +0 -16
  363. package/esm2022/color/color.property.mjs +0 -71
  364. package/esm2022/color/ng-nest-ui-color.mjs +0 -5
  365. package/esm2022/color/public-api.mjs +0 -4
  366. package/esm2022/color-picker/color-picker-portal.component.mjs +0 -396
  367. package/esm2022/color-picker/color-picker.component.mjs +0 -191
  368. package/esm2022/color-picker/color-picker.module.mjs +0 -16
  369. package/esm2022/color-picker/color-picker.property.mjs +0 -142
  370. package/esm2022/color-picker/ng-nest-ui-color-picker.mjs +0 -5
  371. package/esm2022/color-picker/public-api.mjs +0 -5
  372. package/esm2022/comment/comment-reply.component.mjs +0 -24
  373. package/esm2022/comment/comment.component.mjs +0 -55
  374. package/esm2022/comment/comment.module.mjs +0 -17
  375. package/esm2022/comment/comment.property.mjs +0 -90
  376. package/esm2022/comment/ng-nest-ui-comment.mjs +0 -5
  377. package/esm2022/comment/public-api.mjs +0 -5
  378. package/esm2022/container/aside.component.mjs +0 -25
  379. package/esm2022/container/container.component.mjs +0 -31
  380. package/esm2022/container/container.module.mjs +0 -20
  381. package/esm2022/container/container.property.mjs +0 -115
  382. package/esm2022/container/footer.component.mjs +0 -35
  383. package/esm2022/container/header.component.mjs +0 -35
  384. package/esm2022/container/main.component.mjs +0 -18
  385. package/esm2022/container/ng-nest-ui-container.mjs +0 -5
  386. package/esm2022/container/public-api.mjs +0 -8
  387. package/esm2022/core/animation/badge.mjs +0 -53
  388. package/esm2022/core/animation/connect.mjs +0 -31
  389. package/esm2022/core/animation/consts.mjs +0 -11
  390. package/esm2022/core/animation/drop.mjs +0 -13
  391. package/esm2022/core/animation/fade.mjs +0 -24
  392. package/esm2022/core/animation/move.mjs +0 -179
  393. package/esm2022/core/animation/opacity.mjs +0 -13
  394. package/esm2022/core/animation/public-api.mjs +0 -9
  395. package/esm2022/core/animation/slide.mjs +0 -17
  396. package/esm2022/core/config/config.mjs +0 -3
  397. package/esm2022/core/config/config.service.mjs +0 -54
  398. package/esm2022/core/config/index.mjs +0 -2
  399. package/esm2022/core/config/public-api.mjs +0 -3
  400. package/esm2022/core/functions/chunk.mjs +0 -25
  401. package/esm2022/core/functions/clone-deep.mjs +0 -28
  402. package/esm2022/core/functions/convert.mjs +0 -230
  403. package/esm2022/core/functions/csspx.mjs +0 -17
  404. package/esm2022/core/functions/date.mjs +0 -223
  405. package/esm2022/core/functions/drop.mjs +0 -20
  406. package/esm2022/core/functions/flex.mjs +0 -25
  407. package/esm2022/core/functions/group-by.mjs +0 -14
  408. package/esm2022/core/functions/guid.mjs +0 -11
  409. package/esm2022/core/functions/has-in.mjs +0 -8
  410. package/esm2022/core/functions/order-by.mjs +0 -56
  411. package/esm2022/core/functions/parent-path.mjs +0 -27
  412. package/esm2022/core/functions/property.mjs +0 -20
  413. package/esm2022/core/functions/public-api.mjs +0 -16
  414. package/esm2022/core/functions/remove.mjs +0 -19
  415. package/esm2022/core/functions/resize.mjs +0 -22
  416. package/esm2022/core/interfaces/data.type.mjs +0 -164
  417. package/esm2022/core/interfaces/identify.type.mjs +0 -7
  418. package/esm2022/core/interfaces/index.mjs +0 -2
  419. package/esm2022/core/interfaces/layout.type.mjs +0 -2
  420. package/esm2022/core/interfaces/public-api.mjs +0 -5
  421. package/esm2022/core/interfaces/result-list.type.mjs +0 -2
  422. package/esm2022/core/ng-nest-ui-core.mjs +0 -5
  423. package/esm2022/core/public-api.mjs +0 -8
  424. package/esm2022/core/services/http.service.mjs +0 -58
  425. package/esm2022/core/services/preloading-strategy.service.mjs +0 -24
  426. package/esm2022/core/services/public-api.mjs +0 -6
  427. package/esm2022/core/services/repository.service.mjs +0 -29
  428. package/esm2022/core/services/reuse-strategy.service.mjs +0 -47
  429. package/esm2022/core/services/storage.service.mjs +0 -75
  430. package/esm2022/core/theme/index.mjs +0 -2
  431. package/esm2022/core/theme/public-api.mjs +0 -3
  432. package/esm2022/core/theme/theme.mjs +0 -89
  433. package/esm2022/core/theme/theme.service.mjs +0 -270
  434. package/esm2022/core/util/animation.mjs +0 -26
  435. package/esm2022/core/util/camel-to-kebab.mjs +0 -16
  436. package/esm2022/core/util/check.mjs +0 -15
  437. package/esm2022/core/util/computed-style.mjs +0 -20
  438. package/esm2022/core/util/host.mjs +0 -14
  439. package/esm2022/core/util/html.mjs +0 -12
  440. package/esm2022/core/util/index.mjs +0 -2
  441. package/esm2022/core/util/kebab-to-camel.mjs +0 -16
  442. package/esm2022/core/util/log.mjs +0 -15
  443. package/esm2022/core/util/option.mjs +0 -14
  444. package/esm2022/core/util/public-api.mjs +0 -11
  445. package/esm2022/core/util/sleep.mjs +0 -8
  446. package/esm2022/crumb/crumb.component.mjs +0 -25
  447. package/esm2022/crumb/crumb.module.mjs +0 -16
  448. package/esm2022/crumb/crumb.property.mjs +0 -45
  449. package/esm2022/crumb/ng-nest-ui-crumb.mjs +0 -5
  450. package/esm2022/crumb/public-api.mjs +0 -4
  451. package/esm2022/date-picker/date-picker-portal.component.mjs +0 -196
  452. package/esm2022/date-picker/date-picker.component.mjs +0 -320
  453. package/esm2022/date-picker/date-picker.module.mjs +0 -17
  454. package/esm2022/date-picker/date-picker.property.mjs +0 -770
  455. package/esm2022/date-picker/date-quarter.pipe.mjs +0 -19
  456. package/esm2022/date-picker/date-range-portal.component.mjs +0 -349
  457. package/esm2022/date-picker/date-range.component.mjs +0 -432
  458. package/esm2022/date-picker/ng-nest-ui-date-picker.mjs +0 -5
  459. package/esm2022/date-picker/picker-date.component.mjs +0 -334
  460. package/esm2022/date-picker/picker-month.component.mjs +0 -232
  461. package/esm2022/date-picker/picker-quarter.component.mjs +0 -237
  462. package/esm2022/date-picker/picker-year.component.mjs +0 -233
  463. package/esm2022/date-picker/public-api.mjs +0 -12
  464. package/esm2022/description/description-item.component.mjs +0 -24
  465. package/esm2022/description/description.component.mjs +0 -48
  466. package/esm2022/description/description.module.mjs +0 -17
  467. package/esm2022/description/description.property.mjs +0 -219
  468. package/esm2022/description/ng-nest-ui-description.mjs +0 -5
  469. package/esm2022/description/public-api.mjs +0 -5
  470. package/esm2022/dialog/dialog-container.component.mjs +0 -29
  471. package/esm2022/dialog/dialog-portal.component.mjs +0 -97
  472. package/esm2022/dialog/dialog-portal.directives.mjs +0 -119
  473. package/esm2022/dialog/dialog-ref.mjs +0 -100
  474. package/esm2022/dialog/dialog.component.mjs +0 -282
  475. package/esm2022/dialog/dialog.module.mjs +0 -50
  476. package/esm2022/dialog/dialog.property.mjs +0 -207
  477. package/esm2022/dialog/dialog.service.mjs +0 -122
  478. package/esm2022/dialog/ng-nest-ui-dialog.mjs +0 -5
  479. package/esm2022/dialog/public-api.mjs +0 -9
  480. package/esm2022/doc/doc.component.mjs +0 -18
  481. package/esm2022/doc/doc.module.mjs +0 -16
  482. package/esm2022/doc/doc.property.mjs +0 -7
  483. package/esm2022/doc/ng-nest-ui-doc.mjs +0 -5
  484. package/esm2022/doc/public-api.mjs +0 -4
  485. package/esm2022/drag/drag.directive.mjs +0 -57
  486. package/esm2022/drag/drag.module.mjs +0 -16
  487. package/esm2022/drag/drag.property.mjs +0 -25
  488. package/esm2022/drag/ng-nest-ui-drag.mjs +0 -5
  489. package/esm2022/drag/public-api.mjs +0 -4
  490. package/esm2022/drawer/drawer-container.component.mjs +0 -29
  491. package/esm2022/drawer/drawer-portal.component.mjs +0 -50
  492. package/esm2022/drawer/drawer-portal.directives.mjs +0 -58
  493. package/esm2022/drawer/drawer-ref.mjs +0 -17
  494. package/esm2022/drawer/drawer.component.mjs +0 -95
  495. package/esm2022/drawer/drawer.module.mjs +0 -38
  496. package/esm2022/drawer/drawer.property.mjs +0 -84
  497. package/esm2022/drawer/drawer.service.mjs +0 -65
  498. package/esm2022/drawer/ng-nest-ui-drawer.mjs +0 -5
  499. package/esm2022/drawer/public-api.mjs +0 -10
  500. package/esm2022/dropdown/dropdown-portal.component.mjs +0 -204
  501. package/esm2022/dropdown/dropdown.component.mjs +0 -179
  502. package/esm2022/dropdown/dropdown.module.mjs +0 -16
  503. package/esm2022/dropdown/dropdown.property.mjs +0 -96
  504. package/esm2022/dropdown/ng-nest-ui-dropdown.mjs +0 -5
  505. package/esm2022/dropdown/public-api.mjs +0 -5
  506. package/esm2022/empty/empty.component.mjs +0 -15
  507. package/esm2022/empty/empty.module.mjs +0 -16
  508. package/esm2022/empty/empty.property.mjs +0 -54
  509. package/esm2022/empty/ng-nest-ui-empty.mjs +0 -5
  510. package/esm2022/empty/public-api.mjs +0 -4
  511. package/esm2022/examples/examples.component.mjs +0 -18
  512. package/esm2022/examples/examples.module.mjs +0 -16
  513. package/esm2022/examples/examples.property.mjs +0 -7
  514. package/esm2022/examples/ng-nest-ui-examples.mjs +0 -5
  515. package/esm2022/examples/public-api.mjs +0 -4
  516. package/esm2022/find/find.component.mjs +0 -331
  517. package/esm2022/find/find.module.mjs +0 -16
  518. package/esm2022/find/find.property.mjs +0 -260
  519. package/esm2022/find/ng-nest-ui-find.mjs +0 -5
  520. package/esm2022/find/public-api.mjs +0 -4
  521. package/esm2022/form/control.component.mjs +0 -249
  522. package/esm2022/form/form.component.mjs +0 -116
  523. package/esm2022/form/form.module.mjs +0 -17
  524. package/esm2022/form/form.property.mjs +0 -202
  525. package/esm2022/form/ng-nest-ui-form.mjs +0 -5
  526. package/esm2022/form/public-api.mjs +0 -5
  527. package/esm2022/highlight/highlight.component.mjs +0 -85
  528. package/esm2022/highlight/highlight.module.mjs +0 -16
  529. package/esm2022/highlight/highlight.property.mjs +0 -45
  530. package/esm2022/highlight/highlight.service.mjs +0 -17
  531. package/esm2022/highlight/ng-nest-ui-highlight.mjs +0 -5
  532. package/esm2022/highlight/public-api.mjs +0 -5
  533. package/esm2022/i18n/i18n.directive.mjs +0 -29
  534. package/esm2022/i18n/i18n.module.mjs +0 -17
  535. package/esm2022/i18n/i18n.pipe.mjs +0 -28
  536. package/esm2022/i18n/i18n.property.mjs +0 -9
  537. package/esm2022/i18n/i18n.service.mjs +0 -57
  538. package/esm2022/i18n/languages/ar_EG.mjs +0 -169
  539. package/esm2022/i18n/languages/bg_BG.mjs +0 -172
  540. package/esm2022/i18n/languages/ca_ES.mjs +0 -172
  541. package/esm2022/i18n/languages/cs_CZ.mjs +0 -172
  542. package/esm2022/i18n/languages/da_DK.mjs +0 -172
  543. package/esm2022/i18n/languages/de_DE.mjs +0 -172
  544. package/esm2022/i18n/languages/el_GR.mjs +0 -172
  545. package/esm2022/i18n/languages/en_GB.mjs +0 -181
  546. package/esm2022/i18n/languages/en_US.mjs +0 -181
  547. package/esm2022/i18n/languages/es_ES.mjs +0 -172
  548. package/esm2022/i18n/languages/et_EE.mjs +0 -172
  549. package/esm2022/i18n/languages/fa_IR.mjs +0 -172
  550. package/esm2022/i18n/languages/fi_FI.mjs +0 -172
  551. package/esm2022/i18n/languages/fr_BE.mjs +0 -172
  552. package/esm2022/i18n/languages/fr_FR.mjs +0 -172
  553. package/esm2022/i18n/languages/he_IL.mjs +0 -169
  554. package/esm2022/i18n/languages/hi_IN.mjs +0 -172
  555. package/esm2022/i18n/languages/hr_HR.mjs +0 -172
  556. package/esm2022/i18n/languages/hu_HU.mjs +0 -172
  557. package/esm2022/i18n/languages/hy_AM.mjs +0 -172
  558. package/esm2022/i18n/languages/id_ID.mjs +0 -172
  559. package/esm2022/i18n/languages/is_IS.mjs +0 -172
  560. package/esm2022/i18n/languages/it_IT.mjs +0 -172
  561. package/esm2022/i18n/languages/ja_JP.mjs +0 -172
  562. package/esm2022/i18n/languages/ka_GE.mjs +0 -172
  563. package/esm2022/i18n/languages/kn_IN.mjs +0 -172
  564. package/esm2022/i18n/languages/ko_KR.mjs +0 -180
  565. package/esm2022/i18n/languages/ku_IQ.mjs +0 -156
  566. package/esm2022/i18n/languages/lv_LV.mjs +0 -180
  567. package/esm2022/i18n/languages/mn_MN.mjs +0 -180
  568. package/esm2022/i18n/languages/ms_MY.mjs +0 -180
  569. package/esm2022/i18n/languages/nb_NO.mjs +0 -180
  570. package/esm2022/i18n/languages/ne_NP.mjs +0 -180
  571. package/esm2022/i18n/languages/nl_BE.mjs +0 -180
  572. package/esm2022/i18n/languages/nl_NL.mjs +0 -180
  573. package/esm2022/i18n/languages/pl_PL.mjs +0 -180
  574. package/esm2022/i18n/languages/pt_BR.mjs +0 -180
  575. package/esm2022/i18n/languages/pt_PT.mjs +0 -180
  576. package/esm2022/i18n/languages/ro_RO.mjs +0 -180
  577. package/esm2022/i18n/languages/ru_RU.mjs +0 -180
  578. package/esm2022/i18n/languages/sk_SK.mjs +0 -171
  579. package/esm2022/i18n/languages/sl_SI.mjs +0 -172
  580. package/esm2022/i18n/languages/sr_RS.mjs +0 -172
  581. package/esm2022/i18n/languages/sv_SE.mjs +0 -172
  582. package/esm2022/i18n/languages/ta_IN.mjs +0 -180
  583. package/esm2022/i18n/languages/th_TH.mjs +0 -180
  584. package/esm2022/i18n/languages/tr_TR.mjs +0 -180
  585. package/esm2022/i18n/languages/uk_UA.mjs +0 -180
  586. package/esm2022/i18n/languages/vi_VN.mjs +0 -180
  587. package/esm2022/i18n/languages/zh_CN.mjs +0 -180
  588. package/esm2022/i18n/languages/zh_TW.mjs +0 -180
  589. package/esm2022/i18n/ng-nest-ui-i18n.mjs +0 -5
  590. package/esm2022/i18n/public-api.mjs +0 -57
  591. package/esm2022/icon/icon.component.mjs +0 -158
  592. package/esm2022/icon/icon.module.mjs +0 -16
  593. package/esm2022/icon/icon.property.mjs +0 -65
  594. package/esm2022/icon/icon.service.mjs +0 -89
  595. package/esm2022/icon/ng-nest-ui-icon.mjs +0 -5
  596. package/esm2022/icon/public-api.mjs +0 -5
  597. package/esm2022/image/image-group.component.mjs +0 -27
  598. package/esm2022/image/image-preview.component.mjs +0 -135
  599. package/esm2022/image/image.component.mjs +0 -75
  600. package/esm2022/image/image.module.mjs +0 -18
  601. package/esm2022/image/image.property.mjs +0 -196
  602. package/esm2022/image/ng-nest-ui-image.mjs +0 -5
  603. package/esm2022/image/public-api.mjs +0 -6
  604. package/esm2022/index.mjs +0 -106
  605. package/esm2022/inner/inner.component.mjs +0 -25
  606. package/esm2022/inner/inner.module.mjs +0 -16
  607. package/esm2022/inner/inner.property.mjs +0 -30
  608. package/esm2022/inner/ng-nest-ui-inner.mjs +0 -5
  609. package/esm2022/inner/public-api.mjs +0 -4
  610. package/esm2022/input/input-group.component.mjs +0 -16
  611. package/esm2022/input/input.component.mjs +0 -224
  612. package/esm2022/input/input.module.mjs +0 -17
  613. package/esm2022/input/input.property.mjs +0 -281
  614. package/esm2022/input/ng-nest-ui-input.mjs +0 -5
  615. package/esm2022/input/public-api.mjs +0 -5
  616. package/esm2022/input-number/input-number.component.mjs +0 -131
  617. package/esm2022/input-number/input-number.module.mjs +0 -16
  618. package/esm2022/input-number/input-number.property.mjs +0 -146
  619. package/esm2022/input-number/ng-nest-ui-input-number.mjs +0 -5
  620. package/esm2022/input-number/public-api.mjs +0 -4
  621. package/esm2022/keyword/keyword.directive.mjs +0 -61
  622. package/esm2022/keyword/keyword.module.mjs +0 -16
  623. package/esm2022/keyword/keyword.property.mjs +0 -45
  624. package/esm2022/keyword/ng-nest-ui-keyword.mjs +0 -5
  625. package/esm2022/keyword/public-api.mjs +0 -4
  626. package/esm2022/layout/col.component.mjs +0 -68
  627. package/esm2022/layout/layout.module.mjs +0 -17
  628. package/esm2022/layout/layout.property.mjs +0 -150
  629. package/esm2022/layout/ng-nest-ui-layout.mjs +0 -5
  630. package/esm2022/layout/public-api.mjs +0 -5
  631. package/esm2022/layout/row.component.mjs +0 -54
  632. package/esm2022/link/link.component.mjs +0 -28
  633. package/esm2022/link/link.module.mjs +0 -16
  634. package/esm2022/link/link.property.mjs +0 -109
  635. package/esm2022/link/ng-nest-ui-link.mjs +0 -5
  636. package/esm2022/link/public-api.mjs +0 -4
  637. package/esm2022/list/list-drop-group.directive.mjs +0 -39
  638. package/esm2022/list/list-option.component.mjs +0 -37
  639. package/esm2022/list/list.component.mjs +0 -409
  640. package/esm2022/list/list.module.mjs +0 -18
  641. package/esm2022/list/list.property.mjs +0 -273
  642. package/esm2022/list/ng-nest-ui-list.mjs +0 -5
  643. package/esm2022/list/public-api.mjs +0 -6
  644. package/esm2022/loading/loading.component.mjs +0 -77
  645. package/esm2022/loading/loading.module.mjs +0 -16
  646. package/esm2022/loading/loading.property.mjs +0 -70
  647. package/esm2022/loading/ng-nest-ui-loading.mjs +0 -5
  648. package/esm2022/loading/public-api.mjs +0 -4
  649. package/esm2022/menu/menu-node.component.mjs +0 -36
  650. package/esm2022/menu/menu.component.mjs +0 -171
  651. package/esm2022/menu/menu.module.mjs +0 -17
  652. package/esm2022/menu/menu.property.mjs +0 -107
  653. package/esm2022/menu/ng-nest-ui-menu.mjs +0 -5
  654. package/esm2022/menu/public-api.mjs +0 -5
  655. package/esm2022/message/message-ref.mjs +0 -13
  656. package/esm2022/message/message.component.mjs +0 -40
  657. package/esm2022/message/message.module.mjs +0 -15
  658. package/esm2022/message/message.property.mjs +0 -9
  659. package/esm2022/message/message.service.mjs +0 -146
  660. package/esm2022/message/ng-nest-ui-message.mjs +0 -5
  661. package/esm2022/message/public-api.mjs +0 -6
  662. package/esm2022/message-box/message-box.component.mjs +0 -122
  663. package/esm2022/message-box/message-box.module.mjs +0 -15
  664. package/esm2022/message-box/message-box.property.mjs +0 -8
  665. package/esm2022/message-box/message-box.service.mjs +0 -97
  666. package/esm2022/message-box/ng-nest-ui-message-box.mjs +0 -5
  667. package/esm2022/message-box/public-api.mjs +0 -5
  668. package/esm2022/ng-nest-ui.mjs +0 -5
  669. package/esm2022/notification/ng-nest-ui-notification.mjs +0 -5
  670. package/esm2022/notification/notification.component.mjs +0 -42
  671. package/esm2022/notification/notification.module.mjs +0 -15
  672. package/esm2022/notification/notification.property.mjs +0 -8
  673. package/esm2022/notification/notification.service.mjs +0 -107
  674. package/esm2022/notification/public-api.mjs +0 -5
  675. package/esm2022/outlet/ng-nest-ui-outlet.mjs +0 -5
  676. package/esm2022/outlet/outlet.directive.mjs +0 -72
  677. package/esm2022/outlet/outlet.module.mjs +0 -16
  678. package/esm2022/outlet/outlet.property.mjs +0 -7
  679. package/esm2022/outlet/public-api.mjs +0 -4
  680. package/esm2022/page-header/ng-nest-ui-page-header.mjs +0 -5
  681. package/esm2022/page-header/page-header.component.mjs +0 -24
  682. package/esm2022/page-header/page-header.module.mjs +0 -16
  683. package/esm2022/page-header/page-header.property.mjs +0 -50
  684. package/esm2022/page-header/public-api.mjs +0 -4
  685. package/esm2022/pagination/ng-nest-ui-pagination.mjs +0 -5
  686. package/esm2022/pagination/pagination.component.mjs +0 -205
  687. package/esm2022/pagination/pagination.module.mjs +0 -16
  688. package/esm2022/pagination/pagination.property.mjs +0 -149
  689. package/esm2022/pagination/public-api.mjs +0 -4
  690. package/esm2022/pattern/ng-nest-ui-pattern.mjs +0 -5
  691. package/esm2022/pattern/pattern.component.mjs +0 -18
  692. package/esm2022/pattern/pattern.module.mjs +0 -16
  693. package/esm2022/pattern/pattern.property.mjs +0 -7
  694. package/esm2022/pattern/public-api.mjs +0 -4
  695. package/esm2022/popconfirm/ng-nest-ui-popconfirm.mjs +0 -5
  696. package/esm2022/popconfirm/popconfirm.component.mjs +0 -59
  697. package/esm2022/popconfirm/popconfirm.module.mjs +0 -16
  698. package/esm2022/popconfirm/popconfirm.property.mjs +0 -100
  699. package/esm2022/popconfirm/public-api.mjs +0 -4
  700. package/esm2022/popover/ng-nest-ui-popover.mjs +0 -5
  701. package/esm2022/popover/popover-portal.component.mjs +0 -52
  702. package/esm2022/popover/popover.directive.mjs +0 -186
  703. package/esm2022/popover/popover.module.mjs +0 -16
  704. package/esm2022/popover/popover.property.mjs +0 -101
  705. package/esm2022/popover/public-api.mjs +0 -5
  706. package/esm2022/portal/ng-nest-ui-portal.mjs +0 -5
  707. package/esm2022/portal/portal.module.mjs +0 -16
  708. package/esm2022/portal/portal.property.mjs +0 -24
  709. package/esm2022/portal/portal.service.mjs +0 -190
  710. package/esm2022/portal/public-api.mjs +0 -4
  711. package/esm2022/progress/ng-nest-ui-progress.mjs +0 -5
  712. package/esm2022/progress/progress.component.mjs +0 -224
  713. package/esm2022/progress/progress.module.mjs +0 -16
  714. package/esm2022/progress/progress.property.mjs +0 -110
  715. package/esm2022/progress/public-api.mjs +0 -4
  716. package/esm2022/radio/ng-nest-ui-radio.mjs +0 -5
  717. package/esm2022/radio/public-api.mjs +0 -4
  718. package/esm2022/radio/radio.component.mjs +0 -77
  719. package/esm2022/radio/radio.module.mjs +0 -16
  720. package/esm2022/radio/radio.property.mjs +0 -121
  721. package/esm2022/rate/ng-nest-ui-rate.mjs +0 -5
  722. package/esm2022/rate/public-api.mjs +0 -4
  723. package/esm2022/rate/rate.component.mjs +0 -99
  724. package/esm2022/rate/rate.module.mjs +0 -16
  725. package/esm2022/rate/rate.property.mjs +0 -86
  726. package/esm2022/resizable/ng-nest-ui-resizable.mjs +0 -5
  727. package/esm2022/resizable/public-api.mjs +0 -4
  728. package/esm2022/resizable/resizable.directive.mjs +0 -262
  729. package/esm2022/resizable/resizable.module.mjs +0 -16
  730. package/esm2022/resizable/resizable.property.mjs +0 -64
  731. package/esm2022/result/ng-nest-ui-result.mjs +0 -5
  732. package/esm2022/result/public-api.mjs +0 -4
  733. package/esm2022/result/result.component.mjs +0 -25
  734. package/esm2022/result/result.module.mjs +0 -16
  735. package/esm2022/result/result.property.mjs +0 -45
  736. package/esm2022/ripple/ng-nest-ui-ripple.mjs +0 -5
  737. package/esm2022/ripple/public-api.mjs +0 -4
  738. package/esm2022/ripple/ripple.directive.mjs +0 -83
  739. package/esm2022/ripple/ripple.module.mjs +0 -16
  740. package/esm2022/ripple/ripple.property.mjs +0 -40
  741. package/esm2022/select/ng-nest-ui-select.mjs +0 -5
  742. package/esm2022/select/public-api.mjs +0 -5
  743. package/esm2022/select/select-portal.component.mjs +0 -102
  744. package/esm2022/select/select.component.mjs +0 -680
  745. package/esm2022/select/select.module.mjs +0 -16
  746. package/esm2022/select/select.property.mjs +0 -231
  747. package/esm2022/skeleton/ng-nest-ui-skeleton.mjs +0 -5
  748. package/esm2022/skeleton/public-api.mjs +0 -4
  749. package/esm2022/skeleton/skeleton.component.mjs +0 -23
  750. package/esm2022/skeleton/skeleton.module.mjs +0 -16
  751. package/esm2022/skeleton/skeleton.property.mjs +0 -55
  752. package/esm2022/slider/ng-nest-ui-slider.mjs +0 -5
  753. package/esm2022/slider/public-api.mjs +0 -4
  754. package/esm2022/slider/slider.component.mjs +0 -222
  755. package/esm2022/slider/slider.module.mjs +0 -17
  756. package/esm2022/slider/slider.property.mjs +0 -102
  757. package/esm2022/slider-select/ng-nest-ui-slider-select.mjs +0 -5
  758. package/esm2022/slider-select/public-api.mjs +0 -4
  759. package/esm2022/slider-select/slider-select.component.mjs +0 -363
  760. package/esm2022/slider-select/slider-select.module.mjs +0 -16
  761. package/esm2022/slider-select/slider-select.property.mjs +0 -136
  762. package/esm2022/statistic/countdown.component.mjs +0 -70
  763. package/esm2022/statistic/ng-nest-ui-statistic.mjs +0 -5
  764. package/esm2022/statistic/public-api.mjs +0 -5
  765. package/esm2022/statistic/statistic.component.mjs +0 -34
  766. package/esm2022/statistic/statistic.module.mjs +0 -17
  767. package/esm2022/statistic/statistic.property.mjs +0 -106
  768. package/esm2022/steps/ng-nest-ui-steps.mjs +0 -5
  769. package/esm2022/steps/public-api.mjs +0 -4
  770. package/esm2022/steps/steps.component.mjs +0 -49
  771. package/esm2022/steps/steps.module.mjs +0 -16
  772. package/esm2022/steps/steps.property.mjs +0 -60
  773. package/esm2022/switch/ng-nest-ui-switch.mjs +0 -5
  774. package/esm2022/switch/public-api.mjs +0 -4
  775. package/esm2022/switch/switch.component.mjs +0 -37
  776. package/esm2022/switch/switch.module.mjs +0 -16
  777. package/esm2022/switch/switch.property.mjs +0 -91
  778. package/esm2022/table/ng-nest-ui-table.mjs +0 -5
  779. package/esm2022/table/public-api.mjs +0 -7
  780. package/esm2022/table/table-body.component.mjs +0 -236
  781. package/esm2022/table/table-foot.component.mjs +0 -29
  782. package/esm2022/table/table-head.component.mjs +0 -169
  783. package/esm2022/table/table.component.mjs +0 -372
  784. package/esm2022/table/table.module.mjs +0 -19
  785. package/esm2022/table/table.property.mjs +0 -624
  786. package/esm2022/tabs/ng-nest-ui-tabs.mjs +0 -5
  787. package/esm2022/tabs/public-api.mjs +0 -7
  788. package/esm2022/tabs/tab-content.component.mjs +0 -21
  789. package/esm2022/tabs/tab-link.directive.mjs +0 -46
  790. package/esm2022/tabs/tab.component.mjs +0 -19
  791. package/esm2022/tabs/tabs.component.mjs +0 -143
  792. package/esm2022/tabs/tabs.module.mjs +0 -18
  793. package/esm2022/tabs/tabs.property.mjs +0 -141
  794. package/esm2022/tag/ng-nest-ui-tag.mjs +0 -5
  795. package/esm2022/tag/public-api.mjs +0 -4
  796. package/esm2022/tag/tag.component.mjs +0 -51
  797. package/esm2022/tag/tag.module.mjs +0 -16
  798. package/esm2022/tag/tag.property.mjs +0 -80
  799. package/esm2022/text-retract/ng-nest-ui-text-retract.mjs +0 -5
  800. package/esm2022/text-retract/public-api.mjs +0 -4
  801. package/esm2022/text-retract/text-retract.component.mjs +0 -42
  802. package/esm2022/text-retract/text-retract.module.mjs +0 -16
  803. package/esm2022/text-retract/text-retract.property.mjs +0 -35
  804. package/esm2022/textarea/ng-nest-ui-textarea.mjs +0 -5
  805. package/esm2022/textarea/public-api.mjs +0 -4
  806. package/esm2022/textarea/textarea.component.mjs +0 -68
  807. package/esm2022/textarea/textarea.module.mjs +0 -16
  808. package/esm2022/textarea/textarea.property.mjs +0 -126
  809. package/esm2022/theme/ng-nest-ui-theme.mjs +0 -5
  810. package/esm2022/theme/public-api.mjs +0 -4
  811. package/esm2022/theme/theme.component.mjs +0 -179
  812. package/esm2022/theme/theme.module.mjs +0 -16
  813. package/esm2022/theme/theme.property.mjs +0 -63
  814. package/esm2022/time-ago/ng-nest-ui-time-ago.mjs +0 -5
  815. package/esm2022/time-ago/public-api.mjs +0 -4
  816. package/esm2022/time-ago/time-ago.module.mjs +0 -16
  817. package/esm2022/time-ago/time-ago.pipe.mjs +0 -70
  818. package/esm2022/time-ago/time-ago.property.mjs +0 -7
  819. package/esm2022/time-picker/ng-nest-ui-time-picker.mjs +0 -5
  820. package/esm2022/time-picker/public-api.mjs +0 -6
  821. package/esm2022/time-picker/time-picker-frame.component.mjs +0 -312
  822. package/esm2022/time-picker/time-picker-portal.component.mjs +0 -78
  823. package/esm2022/time-picker/time-picker.component.mjs +0 -266
  824. package/esm2022/time-picker/time-picker.module.mjs +0 -17
  825. package/esm2022/time-picker/time-picker.property.mjs +0 -198
  826. package/esm2022/time-range/ng-nest-ui-time-range.mjs +0 -5
  827. package/esm2022/time-range/public-api.mjs +0 -4
  828. package/esm2022/time-range/time-range.module.mjs +0 -16
  829. package/esm2022/time-range/time-range.pipe.mjs +0 -44
  830. package/esm2022/time-range/time-range.property.mjs +0 -7
  831. package/esm2022/timeline/ng-nest-ui-timeline.mjs +0 -5
  832. package/esm2022/timeline/public-api.mjs +0 -4
  833. package/esm2022/timeline/timeline.component.mjs +0 -45
  834. package/esm2022/timeline/timeline.module.mjs +0 -16
  835. package/esm2022/timeline/timeline.property.mjs +0 -50
  836. package/esm2022/tooltip/ng-nest-ui-tooltip.mjs +0 -5
  837. package/esm2022/tooltip/public-api.mjs +0 -5
  838. package/esm2022/tooltip/tooltip-portal.component.mjs +0 -103
  839. package/esm2022/tooltip/tooltip.directive.mjs +0 -143
  840. package/esm2022/tooltip/tooltip.module.mjs +0 -16
  841. package/esm2022/tooltip/tooltip.property.mjs +0 -86
  842. package/esm2022/transfer/ng-nest-ui-transfer.mjs +0 -5
  843. package/esm2022/transfer/public-api.mjs +0 -4
  844. package/esm2022/transfer/transfer.component.mjs +0 -659
  845. package/esm2022/transfer/transfer.module.mjs +0 -16
  846. package/esm2022/transfer/transfer.property.mjs +0 -112
  847. package/esm2022/tree/ng-nest-ui-tree.mjs +0 -5
  848. package/esm2022/tree/public-api.mjs +0 -5
  849. package/esm2022/tree/tree-node.component.mjs +0 -297
  850. package/esm2022/tree/tree.component.mjs +0 -579
  851. package/esm2022/tree/tree.module.mjs +0 -17
  852. package/esm2022/tree/tree.property.mjs +0 -337
  853. package/esm2022/tree/tree.service.mjs +0 -102
  854. package/esm2022/tree-file/ng-nest-ui-tree-file.mjs +0 -5
  855. package/esm2022/tree-file/public-api.mjs +0 -4
  856. package/esm2022/tree-file/tree-file.component.mjs +0 -118
  857. package/esm2022/tree-file/tree-file.module.mjs +0 -16
  858. package/esm2022/tree-file/tree-file.property.mjs +0 -90
  859. package/esm2022/tree-select/ng-nest-ui-tree-select.mjs +0 -5
  860. package/esm2022/tree-select/public-api.mjs +0 -5
  861. package/esm2022/tree-select/tree-select-portal.component.mjs +0 -86
  862. package/esm2022/tree-select/tree-select.component.mjs +0 -659
  863. package/esm2022/tree-select/tree-select.module.mjs +0 -17
  864. package/esm2022/tree-select/tree-select.property.mjs +0 -237
  865. package/esm2022/typography/ng-nest-ui-typography.mjs +0 -5
  866. package/esm2022/typography/public-api.mjs +0 -4
  867. package/esm2022/typography/typography.component.mjs +0 -27
  868. package/esm2022/typography/typography.module.mjs +0 -16
  869. package/esm2022/typography/typography.property.mjs +0 -34
  870. package/esm2022/upload/ng-nest-ui-upload.mjs +0 -5
  871. package/esm2022/upload/public-api.mjs +0 -5
  872. package/esm2022/upload/upload-portal.component.mjs +0 -196
  873. package/esm2022/upload/upload.component.mjs +0 -233
  874. package/esm2022/upload/upload.module.mjs +0 -16
  875. package/esm2022/upload/upload.property.mjs +0 -118
  876. package/style/core/base.scss +0 -20
  877. package/style/core/cdk.scss +0 -72
  878. package/style/core/portal.scss +0 -5
  879. package/style/core/var.scss +0 -4
  880. package/style/mixins/index.scss +0 -9
  881. package/style/params/layout.scss +0 -73
  882. package/style/params/primary.scss +0 -208
  883. package/style/themes/default.scss +0 -1
@@ -1,680 +0,0 @@
1
- import { Subject, fromEvent, of } from 'rxjs';
2
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, Renderer2, ElementRef, ViewContainerRef, inject, viewChild, computed, signal, effect } from '@angular/core';
3
- import { XSelectProperty, XSelectPrefix } from './select.property';
4
- import { XIsEmpty, XIsObservable, XIsChange, XSetData, XIsObjectArray, XIsFunction, XIsArray, XIsString, XRemove, XResize, XComputed, XParents, XIsUndefined, XIsNull } from '@ng-nest/ui/core';
5
- import { XPortalService, XPortalConnectedPosition } from '@ng-nest/ui/portal';
6
- import { XInputComponent } from '@ng-nest/ui/input';
7
- import { XSelectPortalComponent } from './select-portal.component';
8
- import { Overlay } from '@angular/cdk/overlay';
9
- import { takeUntil, throttleTime, debounceTime, distinctUntilChanged, map, filter, delay } from 'rxjs/operators';
10
- import { DOWN_ARROW, UP_ARROW, ENTER, MAC_ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW, TAB, BACKSPACE } from '@angular/cdk/keycodes';
11
- import { XValueAccessor } from '@ng-nest/ui/base-form';
12
- import { XI18nService, zh_CN } from '@ng-nest/ui/i18n';
13
- import { DOCUMENT } from '@angular/common';
14
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
15
- import { XTagComponent } from '@ng-nest/ui/tag';
16
- import { XOutletDirective } from '@ng-nest/ui/outlet';
17
- import { toSignal } from '@angular/core/rxjs-interop';
18
- import * as i0 from "@angular/core";
19
- import * as i1 from "@angular/forms";
20
- export class XSelectComponent extends XSelectProperty {
21
- writeValue(value) {
22
- if (this.multiple()) {
23
- if (XIsNull(value) || XIsUndefined(value)) {
24
- value = [];
25
- }
26
- if (!XIsArray(value)) {
27
- value = [value];
28
- }
29
- }
30
- this.value.set(value);
31
- this.setDisplayValue();
32
- }
33
- constructor() {
34
- super();
35
- this.i18n = inject(XI18nService);
36
- this.document = inject(DOCUMENT);
37
- this.renderer = inject(Renderer2);
38
- this.cdr = inject(ChangeDetectorRef);
39
- this.portalService = inject(XPortalService);
40
- this.viewContainerRef = inject(ViewContainerRef);
41
- this.elementRef = inject(ElementRef);
42
- this.overlay = inject(Overlay);
43
- this.inputCom = viewChild.required('inputCom');
44
- this.select = viewChild.required('select');
45
- this.multipleValueTpl = viewChild.required('multipleValueTpl');
46
- this.multipleInput = viewChild('multipleInput');
47
- this.searchInput = viewChild('searchInput');
48
- this.valueTemplate = viewChild.required('valueTemplate');
49
- this.searchTemplate = viewChild.required('searchTemplate');
50
- this.getReadonly = computed(() => this.readonly() || !this.search());
51
- this.getMaxTagContent = computed(() => this.maxTagContent() || this.locale().maxTagContent);
52
- this.noPortalWidthPlacements = ['bottom', 'top'];
53
- this.hasPortalWidthPlacements = ['bottom-start', 'bottom-end', 'top-start', 'top-end'];
54
- this.enter = signal(false);
55
- this.showClearable = signal(false);
56
- this.displayValue = signal('');
57
- this.multipleSearchValue = signal('');
58
- this.nodes = signal([]);
59
- this.selectedNodes = signal([]);
60
- this.displayNodes = signal([]);
61
- this.displayMore = signal('');
62
- this.showDisplayMore = signal(false);
63
- this.searchNodes = signal([]);
64
- this.icon = signal('fto-chevron-down');
65
- this.iconSpin = signal(false);
66
- this.animating = signal(false);
67
- this.objectArray = signal(false);
68
- this.selectedSurplus = signal(0);
69
- this.selectedTotal = signal(0);
70
- this.composition = signal(false);
71
- this.locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.select)), { initialValue: zh_CN.select });
72
- this.closeSubject = new Subject();
73
- this.keydownSubject = new Subject();
74
- this.inputChange = new Subject();
75
- this.multipleInputSizeChange = new Subject();
76
- this.unSubject = new Subject();
77
- this.valueTplComputed = computed(() => {
78
- if (this.nodeTpl()) {
79
- return this.nodeTpl();
80
- }
81
- if (this.valueTpl()) {
82
- return this.valueTpl();
83
- }
84
- if (this.multiple()) {
85
- return this.multipleValueTpl();
86
- }
87
- if (this.search()) {
88
- return this.searchTemplate();
89
- }
90
- return this.valueTemplate();
91
- });
92
- this.valueTplContextSignal = signal({ $node: null, $isValue: true });
93
- this.valueTplContextComputed = computed(() => {
94
- return this.valueTplContext() ? this.valueTplContext() : this.valueTplContextSignal();
95
- });
96
- this.placements = computed(() => {
97
- let placement = this.placement();
98
- if (this.portalWidth()) {
99
- if (placement === 'bottom') {
100
- placement = 'bottom-start';
101
- }
102
- return [placement, ...this.hasPortalWidthPlacements];
103
- }
104
- else {
105
- return [placement, ...this.noPortalWidthPlacements];
106
- }
107
- });
108
- this.realPlacement = signal(null);
109
- this.portalComponent = signal(null);
110
- this.portalOverlayRef = signal(null);
111
- this.inputChanged = toSignal(this.inputChange);
112
- this.portalData = computed(() => {
113
- const nodes = this.nodes();
114
- if (XIsFunction(this.data()) || XIsEmpty(this.inputChanged()))
115
- return nodes;
116
- return this.searchNodes();
117
- });
118
- this.allowAgian = signal(true);
119
- effect(() => this.portalComponent()?.setInput('data', this.portalData()));
120
- effect(() => this.portalComponent()?.setInput('value', this.value()));
121
- effect(() => this.portalComponent()?.setInput('placement', this.realPlacement()));
122
- effect(() => this.portalComponent()?.setInput('multiple', this.multiple() === true ? 0 : 1));
123
- effect(() => this.portalComponent()?.setInput('nodeTpl', this.nodeTpl()));
124
- effect(() => this.portalComponent()?.setInput('inputCom', this.inputCom()));
125
- effect(() => this.portalComponent()?.setInput('portalMaxHeight', this.portalMaxHeight()));
126
- effect(() => this.portalComponent()?.setInput('objectArray', this.objectArray()));
127
- effect(() => this.portalComponent()?.setInput('selectAll', this.selectAll()));
128
- effect(() => this.portalComponent()?.setInput('selectAllText', this.selectAllText()));
129
- effect(() => this.portalComponent()?.setInput('caseSensitive', this.caseSensitive()));
130
- effect(() => this.portalComponent()?.setInput('search', this.search()));
131
- effect(() => this.portalComponent()?.setInput('virtualScroll', this.virtualScroll()));
132
- effect(() => this.portalComponent()?.setInput('size', this.size()));
133
- effect(() => this.portalComponent()?.setInput('keywordText', this.inputChanged()));
134
- }
135
- ngOnInit() {
136
- this.setSubject();
137
- this.setParantScroll();
138
- }
139
- ngOnChanges(changes) {
140
- const { data } = changes;
141
- XIsChange(data) && this.setData();
142
- }
143
- ngAfterViewInit() {
144
- this.setPortal();
145
- if (this.multiple() && this.inputCom().inputValueRef()) {
146
- XResize(this.inputCom().inputValueRef()?.nativeElement)
147
- .pipe(debounceTime(30), takeUntil(this.unSubject))
148
- .subscribe((x) => {
149
- this.resizeObserver = x.resizeObserver;
150
- this.setMutipleInputSize();
151
- });
152
- }
153
- }
154
- ngOnDestroy() {
155
- this.unSubject.next();
156
- this.unSubject.complete();
157
- this.resizeObserver?.disconnect();
158
- }
159
- setData() {
160
- if (this.async())
161
- return;
162
- XSetData(this.data(), this.unSubject).subscribe((x) => {
163
- this.nodes.set(x);
164
- this.setDisplayValue();
165
- this.setPortal();
166
- });
167
- }
168
- setSubject() {
169
- this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {
170
- this.closePortal();
171
- });
172
- this.inputChange
173
- .pipe(debounceTime(this.debounceTime()), distinctUntilChanged(), takeUntil(this.unSubject))
174
- .subscribe((x) => {
175
- this.modelChange(x);
176
- });
177
- this.keydownSubject.pipe(throttleTime(10), takeUntil(this.unSubject)).subscribe((x) => {
178
- const keyCode = x.keyCode;
179
- if (!this.portalAttached() &&
180
- [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, MAC_ENTER, BACKSPACE].includes(keyCode)) {
181
- this.modelChange(this.displayValue());
182
- }
183
- if (this.portalAttached() && [ESCAPE].includes(keyCode)) {
184
- this.closeSubject.next();
185
- }
186
- });
187
- this.multipleInputSizeChange.pipe(distinctUntilChanged(), takeUntil(this.unSubject)).subscribe((x) => {
188
- if (this.multipleInput()) {
189
- const input = this.multipleInput()?.elementRef.nativeElement;
190
- this.renderer.setStyle(input, 'width', `${x}px`);
191
- }
192
- });
193
- }
194
- setMutipleInputSize() {
195
- const ivf = this.inputCom().inputValueRef()?.nativeElement;
196
- let { clientWidth, scrollHeight } = ivf;
197
- const len = ivf.children.length;
198
- let lastRowTagTop = -1;
199
- let lines = 1;
200
- let rowTagTop = -1;
201
- let lastRowTagsWidth = 0;
202
- let marginLeft = 0;
203
- let marginTop = 0;
204
- for (let i = len - 1; i >= 0; i--) {
205
- const ele = ivf.children[i];
206
- if (ele.tagName === 'X-TAG') {
207
- const { offsetTop, offsetWidth } = ele;
208
- const style = XComputed(ele);
209
- marginLeft = Number(style.marginLeft.replace('px', ''));
210
- marginTop = Number(style.marginTop.replace('px', ''));
211
- if (rowTagTop === -1) {
212
- rowTagTop = offsetTop;
213
- }
214
- else if (rowTagTop !== offsetTop) {
215
- lines++;
216
- rowTagTop = offsetTop;
217
- }
218
- if (lastRowTagTop === -1) {
219
- lastRowTagTop = offsetTop;
220
- }
221
- if (lastRowTagTop === offsetTop) {
222
- lastRowTagsWidth += offsetWidth + marginLeft;
223
- }
224
- }
225
- }
226
- const height = scrollHeight + (lines > 1 ? marginTop : 0);
227
- this.renderer.setStyle(this.inputCom().inputRef().nativeElement, 'height', `${height}px`);
228
- if (this.multipleInput()) {
229
- this.multipleInputSizeChange.next(clientWidth - lastRowTagsWidth - marginLeft);
230
- }
231
- this.portal?.overlayRef?.updatePosition();
232
- }
233
- menter() {
234
- if (this.disabledComputed() || !this.clearable() || this.iconSpin())
235
- return;
236
- this.enter.set(true);
237
- if ((!this.multiple() && !XIsEmpty(this.displayValue())) || (this.multiple() && !XIsEmpty(this.displayNodes()))) {
238
- this.icon.set('');
239
- this.showClearable.set(true);
240
- }
241
- }
242
- mleave() {
243
- if (this.disabledComputed() || !this.clearable() || this.iconSpin())
244
- return;
245
- this.enter.set(false);
246
- if (this.clearable()) {
247
- this.icon.set('fto-chevron-down');
248
- this.showClearable.set(false);
249
- }
250
- }
251
- modelChange(value) {
252
- if (XIsFunction(this.data())) {
253
- if (!this.portalAttached()) {
254
- this.showPortal();
255
- }
256
- this.icon.set('fto-loader');
257
- this.iconSpin.set(true);
258
- XSetData(this.data(), this.unSubject, true, value).subscribe((x) => {
259
- this.icon.set('');
260
- this.iconSpin.set(false);
261
- if (!this.enter() && this.clearable()) {
262
- this.showClearable.set(false);
263
- }
264
- this.nodes.set(x);
265
- });
266
- return;
267
- }
268
- if (this.nodes()) {
269
- if (!this.portalAttached()) {
270
- this.showPortal();
271
- }
272
- if (XIsEmpty(value)) {
273
- this.searchNodes.set(this.nodes());
274
- }
275
- else {
276
- this.setSearchNodes(value);
277
- }
278
- }
279
- }
280
- setSearchNodes(value) {
281
- if (this.caseSensitive()) {
282
- this.searchNodes.set(this.nodes().filter((x) => String(x.label).indexOf(String(value)) >= 0));
283
- }
284
- else {
285
- this.searchNodes.set(this.nodes().filter((x) => String(x.label).toLowerCase().indexOf(String(value).toLowerCase()) >= 0));
286
- }
287
- }
288
- setParantScroll() {
289
- if (!this.document)
290
- return;
291
- const parents = XParents(this.elementRef.nativeElement);
292
- let firstScroll = null;
293
- for (let item of parents) {
294
- if (item.clientHeight < item.scrollHeight) {
295
- firstScroll = item;
296
- break;
297
- }
298
- }
299
- if (firstScroll && firstScroll.tagName !== 'BODY') {
300
- fromEvent(firstScroll, 'scroll')
301
- .pipe(filter(() => this.portalAttached()), takeUntil(this.unSubject))
302
- .subscribe(() => {
303
- this.portal?.overlayRef?.updatePosition();
304
- const eract = this.elementRef.nativeElement.getBoundingClientRect();
305
- const frect = firstScroll.getBoundingClientRect();
306
- if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {
307
- this.closeSubject.next();
308
- }
309
- });
310
- }
311
- }
312
- clearEmit() {
313
- this.value.update(() => {
314
- if (this.multiple()) {
315
- return [];
316
- }
317
- else {
318
- return '';
319
- }
320
- });
321
- this.displayValue.set('');
322
- this.multipleSearchValue.set('');
323
- this.selectedNodes.set([]);
324
- this.setDisplayNodes();
325
- this.valueTplContextSignal.update((x) => {
326
- x.$node = null;
327
- return { ...x };
328
- });
329
- this.mleave();
330
- this.inputChange.next('');
331
- if (this.onChange)
332
- this.onChange(this.value());
333
- }
334
- setDisplayValue(clickNode) {
335
- if (this.nodes().length > 0) {
336
- if (this.multiple()) {
337
- if (XIsEmpty(this.value())) {
338
- if (XIsUndefined(this.value()) || XIsNull(this.value())) {
339
- this.value.set([]);
340
- }
341
- else {
342
- this.value.update((x) => {
343
- x.splice(0, x.length);
344
- return x;
345
- });
346
- }
347
- this.displayValue.set('');
348
- this.selectedNodes.set([]);
349
- this.displayNodes.set([]);
350
- this.displayMore.set('');
351
- this.valueTplContextSignal.update((x) => {
352
- x.$node = null;
353
- return { ...x };
354
- });
355
- this.setDisplayNodes();
356
- }
357
- else {
358
- let ids = [];
359
- let selected = [];
360
- if (XIsObjectArray(this.value())) {
361
- this.objectArray.set(true);
362
- ids = this.value().map((x) => x.id);
363
- }
364
- else {
365
- this.objectArray.set(false);
366
- ids = this.value();
367
- }
368
- if (clickNode) {
369
- if (clickNode.selected) {
370
- this.selectedNodes.update((x) => {
371
- x.push(clickNode);
372
- return [...x];
373
- });
374
- }
375
- else {
376
- this.selectedNodes.update((x) => {
377
- XRemove(x, (y) => y.id === clickNode.id);
378
- return [...x];
379
- });
380
- }
381
- }
382
- else {
383
- for (let id of ids) {
384
- let node = this.nodes().find((x) => x.id === id);
385
- if (node)
386
- selected.push(node);
387
- }
388
- this.selectedNodes.set(selected);
389
- }
390
- this.setDisplayNodes();
391
- this.displayValue.set(this.selectedNodes()
392
- .map((x) => x.label)
393
- .join(','));
394
- this.valueTplContextSignal.update((x) => {
395
- x.$node = [...this.selectedNodes()];
396
- return { ...x };
397
- });
398
- }
399
- }
400
- else {
401
- let node = this.nodes().find((x) => x.id === this.value());
402
- if (node) {
403
- this.displayValue.set(node.label);
404
- this.valueTplContextSignal.update((x) => {
405
- x.$node = node;
406
- return { ...x };
407
- });
408
- }
409
- else {
410
- this.displayValue.set('');
411
- this.valueTplContextSignal.update((x) => {
412
- x.$node = null;
413
- return { ...x };
414
- });
415
- }
416
- }
417
- }
418
- }
419
- closeNode(event, node, index) {
420
- let inx = -1;
421
- if (XIsObjectArray(this.value())) {
422
- inx = this.value().findIndex((y) => y.id === node.id);
423
- }
424
- else {
425
- inx = this.value().findIndex((y) => y === node.id);
426
- }
427
- if (inx >= 0) {
428
- this.value.update((x) => {
429
- x.splice(inx, 1);
430
- return x;
431
- });
432
- if (this.onChange)
433
- this.onChange(this.value());
434
- this.selectedNodes.update((x) => {
435
- x.splice(index, 1);
436
- return x;
437
- });
438
- this.setDisplayNodes();
439
- }
440
- event.stopPropagation();
441
- }
442
- setDisplayNodes() {
443
- if (!this.multiple())
444
- return;
445
- const maxlen = this.selectedNodes().length;
446
- let len = 0;
447
- if (this.maxTagCount() >= 0) {
448
- len = maxlen > this.maxTagCount() ? this.maxTagCount() : maxlen;
449
- }
450
- else {
451
- len = maxlen;
452
- }
453
- let more = maxlen - len;
454
- more = more < 0 ? 0 : more;
455
- this.displayNodes.set(this.selectedNodes().slice(0, len));
456
- this.showDisplayMore.set(more > 0);
457
- if (XIsString(this.getMaxTagContent())) {
458
- this.displayMore.set(more > 0 ? this.getMaxTagContent().replace(/\{\{surplus\}\}/g, `${more}`) : '');
459
- }
460
- else {
461
- this.selectedSurplus.set(more);
462
- this.selectedTotal.set(maxlen);
463
- }
464
- setTimeout(() => this.setMutipleInputSize());
465
- }
466
- portalAttached() {
467
- return this.portal?.overlayRef?.hasAttached();
468
- }
469
- closePortal() {
470
- if (this.portalAttached()) {
471
- this.portal?.overlayRef?.detach();
472
- this.active.set(false);
473
- this.multipleSearchValue.set('');
474
- this.allowAgian.set(false);
475
- of(true)
476
- .pipe(delay(200))
477
- .subscribe(() => this.allowAgian.set(true));
478
- return true;
479
- }
480
- return false;
481
- }
482
- destroyPortal() {
483
- this.portal?.overlayRef?.dispose();
484
- }
485
- showPortal(click = false) {
486
- if (this.disabledComputed() || !this.allowAgian() || this.iconSpin() || this.animating())
487
- return;
488
- this.active.set(true);
489
- if ((this.async() && XIsObservable(this.data()) && this.nodes().length === 0) || XIsFunction(this.data())) {
490
- this.icon.set('fto-loader');
491
- this.iconSpin.set(true);
492
- XSetData(this.data(), this.unSubject, true, click ? '' : this.displayValue()).subscribe((x) => {
493
- this.icon.set('fto-chevron-down');
494
- this.iconSpin.set(false);
495
- if (!this.enter() && this.clearable()) {
496
- this.showClearable.set(false);
497
- }
498
- this.nodes.set(x);
499
- if (!this.search())
500
- this.setDisplayValue();
501
- this.createPortal();
502
- });
503
- }
504
- else {
505
- this.createPortal();
506
- }
507
- if (this.search() && this.multiple()) {
508
- this.multipleInput()?.inputFocus();
509
- }
510
- else if (this.search() && !this.multiple()) {
511
- this.searchInput()?.inputFocus();
512
- }
513
- else {
514
- this.inputCom().inputFocus('focus');
515
- }
516
- }
517
- createPortal() {
518
- this.nodes.update((nodes) => {
519
- nodes.filter((x) => x.selected).map((x) => (x.selected = false));
520
- return [...nodes];
521
- });
522
- const box = this.inputCom().inputRef().nativeElement.getBoundingClientRect();
523
- const config = {
524
- backdropClass: '',
525
- width: this.portalWidth() || box.width,
526
- positionStrategy: this.setPlacement(),
527
- scrollStrategy: this.overlay.scrollStrategies.reposition()
528
- };
529
- this.setPosition(config);
530
- this.portal = this.portalService.attach({
531
- content: XSelectPortalComponent,
532
- viewContainerRef: this.viewContainerRef,
533
- overlayConfig: config
534
- });
535
- this.portal.overlayRef
536
- ?.outsidePointerEvents()
537
- .pipe(takeUntil(this.unSubject))
538
- .subscribe(() => {
539
- this.setDisplayValue();
540
- this.closeSubject.next();
541
- });
542
- this.setInstance();
543
- }
544
- setPosition(config) {
545
- let position = config.positionStrategy;
546
- position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos) => {
547
- const place = XPortalConnectedPosition.get(pos.connectionPair);
548
- if (place !== this.realPlacement()) {
549
- this.realPlacement.set(place);
550
- this.portalOverlayRef()?.updatePosition();
551
- }
552
- });
553
- }
554
- setInstance() {
555
- let { componentRef, overlayRef } = this.portal;
556
- if (!componentRef || !overlayRef)
557
- return;
558
- this.portalComponent.set(componentRef);
559
- this.portalOverlayRef.set(overlayRef);
560
- this.realPlacement.set(this.placement());
561
- Object.assign(componentRef.instance, {
562
- closeSubject: this.closeSubject,
563
- keydownSubject: this.keydownSubject
564
- });
565
- const { nodeClick, animating } = componentRef.instance;
566
- nodeClick.subscribe((x) => this.nodeClick(x.node, x.value));
567
- animating.subscribe((ing) => this.animating.set(ing));
568
- }
569
- nodeClick(node, value) {
570
- if (this.multiple()) {
571
- if (node) {
572
- if (XIsObjectArray(value)) {
573
- if (node.selected) {
574
- this.value.update((x) => {
575
- x.push(node);
576
- return x;
577
- });
578
- }
579
- else {
580
- let inx = this.value().findIndex((x) => x.id === node.id);
581
- this.value.update((x) => {
582
- x.splice(inx, 1);
583
- return x;
584
- });
585
- }
586
- }
587
- else if (XIsArray(value)) {
588
- if (node.selected) {
589
- this.value.update((x) => {
590
- x.push(node.id);
591
- return x;
592
- });
593
- }
594
- else {
595
- this.value.update((x) => {
596
- x.splice(x.indexOf(node.id), 1);
597
- return x;
598
- });
599
- }
600
- }
601
- }
602
- else {
603
- this.value.update((x) => {
604
- x.splice(0, x.length);
605
- x.push(...value);
606
- return x;
607
- });
608
- }
609
- if (this.multipleInput()) {
610
- const input = this.multipleInput().elementRef.nativeElement;
611
- this.renderer.setStyle(input, 'width', '2rem');
612
- }
613
- if (this.search() && this.multipleSearchValue() !== '') {
614
- this.multipleSearchValue.set('');
615
- this.inputChange.next('');
616
- }
617
- this.setDisplayValue(node);
618
- }
619
- else {
620
- node = node;
621
- this.displayValue.set(node.label);
622
- this.valueTplContextSignal.update((x) => {
623
- x.$node = node;
624
- return { ...x };
625
- });
626
- this.value.set(node.id);
627
- if (this.search()) {
628
- this.inputChange.next('');
629
- }
630
- this.closeSubject.next();
631
- }
632
- if (this.search() && this.multiple() && this.multipleInput()) {
633
- this.multipleInput().inputFocus();
634
- }
635
- else {
636
- this.inputCom().inputFocus('focus');
637
- }
638
- if (this.onChange)
639
- this.onChange(this.value());
640
- this.formControlValidator();
641
- }
642
- selectAllNodes(value) {
643
- this.value.set(value);
644
- }
645
- setPlacement() {
646
- return this.portalService.setPlacement({
647
- elementRef: this.inputCom().inputRef(),
648
- placement: this.placements(),
649
- transformOriginOn: 'x-select-portal'
650
- });
651
- }
652
- setPortal() {
653
- this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());
654
- }
655
- onKeydown($event) {
656
- this.keydownSubject.next($event);
657
- if ($event.keyCode !== TAB && !this.search) {
658
- $event.preventDefault();
659
- }
660
- }
661
- onFocus(_event) {
662
- if (this.search() && this.multiple() && this.multipleInput()) {
663
- this.multipleInput().inputFocus();
664
- }
665
- else {
666
- this.inputCom().inputFocus('focus');
667
- }
668
- }
669
- onInput(_event) {
670
- this.formControlValidator();
671
- setTimeout(() => this.inputChange.next(this.multiple() ? this.multipleSearchValue() : this.displayValue()));
672
- }
673
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
674
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: XSelectComponent, isStandalone: true, selector: "x-select", providers: [XValueAccessor(XSelectComponent)], viewQueries: [{ propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, isSignal: true }, { propertyName: "select", first: true, predicate: ["select"], descendants: true, isSignal: true }, { propertyName: "multipleValueTpl", first: true, predicate: ["multipleValueTpl"], descendants: true, isSignal: true }, { propertyName: "multipleInput", first: true, predicate: ["multipleInput"], descendants: true, isSignal: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, isSignal: true }, { propertyName: "valueTemplate", first: true, predicate: ["valueTemplate"], descendants: true, isSignal: true }, { propertyName: "searchTemplate", first: true, predicate: ["searchTemplate"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #select\r\n class=\"x-select\"\r\n [class.x-select-multiple]=\"multiple()\"\r\n [class.x-select-search-single]=\"search() && !multiple()\"\r\n>\r\n <div class=\"x-select-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [width]=\"width()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()!\"\r\n [inputValidator]=\"inputValidator()\"\r\n [icon]=\"icon()\"\r\n [iconSpin]=\"iconSpin()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"getReadonly()\"\r\n [clearable]=\"showClearable()\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTplComputed()\"\r\n [valueTplContext]=\"valueTplContextComputed()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"pointer()\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n (xInput)=\"onInput($event)\"\r\n (xFocus)=\"onFocus($event)\"\r\n (xClick)=\"showPortal(true)\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n (xComposition)=\"composition.set($event)\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n\r\n<ng-template #valueTemplate>{{ displayValue() }}</ng-template>\r\n\r\n<ng-template #searchTemplate>\r\n <x-input\r\n #searchInput\r\n [bordered]=\"false\"\r\n [size]=\"size()\"\r\n [(ngModel)]=\"displayValue\"\r\n (xInput)=\"onInput($event)\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n ></x-input>\r\n</ng-template>\r\n\r\n<ng-template #multipleValueTpl>\r\n @for (node of displayNodes(); track node.id; let i = $index) {\r\n <x-tag\r\n [@.disabled]=\"true\"\r\n [bordered]=\"false\"\r\n [closable]=\"!disabledComputed()\"\r\n [type]=\"'info'\"\r\n (close)=\"closeNode($event, node, i)\"\r\n [size]=\"size()\"\r\n >{{ node.label }}</x-tag\r\n >\r\n }\r\n @if (showDisplayMore()) {\r\n <x-tag [@.disabled]=\"true\" [bordered]=\"false\" [type]=\"'info'\" [size]=\"size()\">\r\n <ng-container *xOutlet=\"getMaxTagContent(); context: { $surplus: selectedSurplus(), $total: selectedTotal() }\">{{\r\n displayMore()\r\n }}</ng-container>\r\n </x-tag>\r\n }\r\n\r\n @if (search()) {\r\n <x-input\r\n #multipleInput\r\n [bordered]=\"false\"\r\n [size]=\"size()\"\r\n [ngModel]=\"multipleSearchValue()\"\r\n (ngModelChange)=\"multipleSearchValue.set($event)\"\r\n (xInput)=\"onInput($event)\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n ></x-input>\r\n }\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";x-select{display:inline-block;width:12rem}.x-select{margin:0;padding:0}.x-select{width:100%}.x-select x-input{width:100%}.x-select-multiple .x-input-value-template-value,.x-select-search-single .x-input-value-template-value{display:flex;align-items:center;margin-bottom:.125rem;flex-wrap:wrap;width:initial;height:initial!important;left:.125rem!important}.x-select-multiple .x-input-value-template-value>x-tag,.x-select-search-single .x-input-value-template-value>x-tag{display:inline-flex;margin-left:.0625rem;margin-top:.125rem}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-big,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-big{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-big>.x-icon,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-big>.x-icon{right:calc(-var(--x-padding-large)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-large,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-large{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-large>.x-icon,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-large>.x-icon{right:calc(-var(--x-padding-medium)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-medium,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-medium{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-medium>.x-icon,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-medium>.x-icon{right:calc(-var(--x-padding-small)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-small,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-small{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-small>.x-icon,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-small>.x-icon{right:calc(-var(--x-padding-mini)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-mini,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-mini{height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-mini>.x-icon,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-mini>.x-icon{right:-.0625rem}.x-select-multiple .x-input-value-template-value>x-input,.x-select-search-single .x-input-value-template-value>x-input{margin-top:.125rem;width:5rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value,.x-select-search-single .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>input,.x-select-search-single .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-max-length,.x-select-search-single .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-large);line-height:var(--x-height-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>label,.x-select-search-single .x-input-value-template-value>x-input .x-input-big>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value,.x-select-search-single .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>input,.x-select-search-single .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-max-length,.x-select-search-single .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>label,.x-select-search-single .x-input-value-template-value>x-input .x-input-large>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value,.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>input,.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-max-length,.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-small);line-height:var(--x-height-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>label,.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value,.x-select-search-single .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>input,.x-select-search-single .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-max-length,.x-select-search-single .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>label,.x-select-search-single .x-input-value-template-value>x-input .x-input-small>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value,.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>input,.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value{height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-max-length,.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-max-length{height:1.125rem;line-height:1.125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>label,.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>label{height:1.125rem;line-height:1.125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-row>.x-input-input>input,.x-select-search-single .x-input-value-template-value>x-input .x-input-row>.x-input-input>input{background-color:transparent}.x-select-search-single .x-input-value-template-value{left:.75rem!important}.x-select-search-single .x-input-value-template-value>x-input{width:100%}.x-select-search-single .x-input-value-template-value>x-input .x-input-row>.x-input-input>input{padding:0!important}.x-select-portal{color:var(--x-text);width:100%;border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);position:relative;display:flex;background-color:var(--x-background-100);overflow:hidden auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XTagComponent, selector: "x-tag" }, { kind: "component", type: XInputComponent, selector: "x-input" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
675
- }
676
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XSelectComponent, decorators: [{
677
- type: Component,
678
- args: [{ selector: `${XSelectPrefix}`, standalone: true, imports: [FormsModule, ReactiveFormsModule, XTagComponent, XInputComponent, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XSelectComponent)], template: "<div\r\n #select\r\n class=\"x-select\"\r\n [class.x-select-multiple]=\"multiple()\"\r\n [class.x-select-search-single]=\"search() && !multiple()\"\r\n>\r\n <div class=\"x-select-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [width]=\"width()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()!\"\r\n [inputValidator]=\"inputValidator()\"\r\n [icon]=\"icon()\"\r\n [iconSpin]=\"iconSpin()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"getReadonly()\"\r\n [clearable]=\"showClearable()\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTplComputed()\"\r\n [valueTplContext]=\"valueTplContextComputed()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"pointer()\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n (xInput)=\"onInput($event)\"\r\n (xFocus)=\"onFocus($event)\"\r\n (xClick)=\"showPortal(true)\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n (xComposition)=\"composition.set($event)\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n\r\n<ng-template #valueTemplate>{{ displayValue() }}</ng-template>\r\n\r\n<ng-template #searchTemplate>\r\n <x-input\r\n #searchInput\r\n [bordered]=\"false\"\r\n [size]=\"size()\"\r\n [(ngModel)]=\"displayValue\"\r\n (xInput)=\"onInput($event)\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n ></x-input>\r\n</ng-template>\r\n\r\n<ng-template #multipleValueTpl>\r\n @for (node of displayNodes(); track node.id; let i = $index) {\r\n <x-tag\r\n [@.disabled]=\"true\"\r\n [bordered]=\"false\"\r\n [closable]=\"!disabledComputed()\"\r\n [type]=\"'info'\"\r\n (close)=\"closeNode($event, node, i)\"\r\n [size]=\"size()\"\r\n >{{ node.label }}</x-tag\r\n >\r\n }\r\n @if (showDisplayMore()) {\r\n <x-tag [@.disabled]=\"true\" [bordered]=\"false\" [type]=\"'info'\" [size]=\"size()\">\r\n <ng-container *xOutlet=\"getMaxTagContent(); context: { $surplus: selectedSurplus(), $total: selectedTotal() }\">{{\r\n displayMore()\r\n }}</ng-container>\r\n </x-tag>\r\n }\r\n\r\n @if (search()) {\r\n <x-input\r\n #multipleInput\r\n [bordered]=\"false\"\r\n [size]=\"size()\"\r\n [ngModel]=\"multipleSearchValue()\"\r\n (ngModelChange)=\"multipleSearchValue.set($event)\"\r\n (xInput)=\"onInput($event)\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n ></x-input>\r\n }\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";x-select{display:inline-block;width:12rem}.x-select{margin:0;padding:0}.x-select{width:100%}.x-select x-input{width:100%}.x-select-multiple .x-input-value-template-value,.x-select-search-single .x-input-value-template-value{display:flex;align-items:center;margin-bottom:.125rem;flex-wrap:wrap;width:initial;height:initial!important;left:.125rem!important}.x-select-multiple .x-input-value-template-value>x-tag,.x-select-search-single .x-input-value-template-value>x-tag{display:inline-flex;margin-left:.0625rem;margin-top:.125rem}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-big,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-big{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-big>.x-icon,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-big>.x-icon{right:calc(-var(--x-padding-large)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-large,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-large{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-large>.x-icon,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-large>.x-icon{right:calc(-var(--x-padding-medium)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-medium,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-medium{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-medium>.x-icon,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-medium>.x-icon{right:calc(-var(--x-padding-small)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-small,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-small{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-small>.x-icon,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-small>.x-icon{right:calc(-var(--x-padding-mini)/2)}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-mini,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-mini{height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-select-multiple .x-input-value-template-value>x-tag .x-tag-mini>.x-icon,.x-select-search-single .x-input-value-template-value>x-tag .x-tag-mini>.x-icon{right:-.0625rem}.x-select-multiple .x-input-value-template-value>x-input,.x-select-search-single .x-input-value-template-value>x-input{margin-top:.125rem;width:5rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value,.x-select-search-single .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>input,.x-select-search-single .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-max-length,.x-select-search-single .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-large);line-height:var(--x-height-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-big>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-big>label,.x-select-search-single .x-input-value-template-value>x-input .x-input-big>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value,.x-select-search-single .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>input,.x-select-search-single .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-max-length,.x-select-search-single .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-large>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-large>label,.x-select-search-single .x-input-value-template-value>x-input .x-input-large>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value,.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>input,.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-max-length,.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-small);line-height:var(--x-height-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-medium>label,.x-select-search-single .x-input-value-template-value>x-input .x-input-medium>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value,.x-select-search-single .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>input,.x-select-search-single .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-value-template-value{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-max-length,.x-select-search-single .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-input>.x-input-max-length{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-small>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-small>label,.x-select-search-single .x-input-value-template-value>x-input .x-input-small>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>input,.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value,.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>input,.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-value-template-value{height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-max-length,.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-input>.x-input-max-length{height:1.125rem;line-height:1.125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-before:not(.x-input-row-before-template),.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>.x-input-row>.x-input-row-after:not(.x-input-row-after-template){height:1.125rem;line-height:1.125rem;padding:0 .125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-mini>label,.x-select-search-single .x-input-value-template-value>x-input .x-input-mini>label{height:1.125rem;line-height:1.125rem}.x-select-multiple .x-input-value-template-value>x-input .x-input-row>.x-input-input>input,.x-select-search-single .x-input-value-template-value>x-input .x-input-row>.x-input-input>input{background-color:transparent}.x-select-search-single .x-input-value-template-value{left:.75rem!important}.x-select-search-single .x-input-value-template-value>x-input{width:100%}.x-select-search-single .x-input-value-template-value>x-input .x-input-row>.x-input-input>input{padding:0!important}.x-select-portal{color:var(--x-text);width:100%;border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);position:relative;display:flex;background-color:var(--x-background-100);overflow:hidden auto;max-height:calc(calc(var(--x-font-size) + .875rem) * 6 + var(--x-border-width) * 7)}\n"] }]
679
- }], ctorParameters: () => [] });
680
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUdWLGdCQUFnQixFQUVoQixNQUFNLEVBR04sU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBRU4sTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUNMLFFBQVEsRUFDUixhQUFhLEVBQ2IsU0FBUyxFQUNULFFBQVEsRUFFUixjQUFjLEVBQ2QsV0FBVyxFQUNYLFFBQVEsRUFDUixTQUFTLEVBQ1QsT0FBTyxFQUNQLE9BQU8sRUFFUCxTQUFTLEVBRVQsUUFBUSxFQUNSLFlBQVksRUFDWixPQUFPLEVBQ1IsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsY0FBYyxFQUFxQix3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsT0FBTyxFQUtSLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLG9CQUFv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R0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5RSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4RSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsUUFBUTtRQUNOLElB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O0lBRUQsT0FBTyxDQUFDLE1BQWtCO1FBQ3hCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7aUlBeHBCVSxnQkFBZ0I7cUhBQWhCLGdCQUFnQix1REFGaEIsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyx3MUJDaEYvQyw2N0ZBOEZBLGtqZURuQlksV0FBVyxvdEJBQUUsbUJBQW1CLCtCQUFFLGFBQWEsa0RBQUUsZUFBZSxvREFBRSxnQkFBZ0I7OzJGQU9qRixnQkFBZ0I7a0JBVjVCLFNBQVM7K0JBQ0UsR0FBRyxhQUFhLEVBQUUsY0FDaEIsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsaUJBRzlFLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBUZW1wbGF0ZVJlZixcclxuICBpbmplY3QsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgdmlld0NoaWxkLFxyXG4gIGNvbXB1dGVkLFxyXG4gIHNpZ25hbCxcclxuICBDb21wb25lbnRSZWYsXHJcbiAgZWZmZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhTZWxlY3ROb2RlLCBYU2VsZWN0UHJvcGVydHksIFhTZWxlY3RQcmVmaXggfSBmcm9tICcuL3NlbGVjdC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7XHJcbiAgWElzRW1wdHksXHJcbiAgWElzT2JzZXJ2YWJsZSxcclxuICBYSXNDaGFuZ2UsXHJcbiAgWFNldERhdGEsXHJcbiAgWFBvc2l0aW9uVG9wQm90dG9tLFxyXG4gIFhJc09iamVjdEFycmF5LFxyXG4gIFhJc0Z1bmN0aW9uLFxyXG4gIFhJc0FycmF5LFxyXG4gIFhJc1N0cmluZyxcclxuICBYUmVtb3ZlLFxyXG4gIFhSZXNpemUsXHJcbiAgWFBsYWNlbWVudCxcclxuICBYQ29tcHV0ZWQsXHJcbiAgWFJlc2l6ZU9ic2VydmVyLFxyXG4gIFhQYXJlbnRzLFxyXG4gIFhJc1VuZGVmaW5lZCxcclxuICBYSXNOdWxsXHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFhQb3J0YWxTZXJ2aWNlLCBYUG9ydGFsT3ZlcmxheVJlZiwgWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYU2VsZWN0UG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtcG9ydGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgT3ZlcmxheSxcclxuICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXHJcbiAgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlLFxyXG4gIE92ZXJsYXlDb25maWcsXHJcbiAgT3ZlcmxheVJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgdGFrZVVudGlsLCB0aHJvdHRsZVRpbWUsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgZmlsdGVyLCBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtcclxuICBET1dOX0FSUk9XLFxyXG4gIFVQX0FSUk9XLFxyXG4gIEVOVEVSLFxyXG4gIE1BQ19FTlRFUixcclxuICBFU0NBUEUsXHJcbiAgTEVGVF9BUlJPVyxcclxuICBSSUdIVF9BUlJPVyxcclxuICBUQUIsXHJcbiAgQkFDS1NQQUNFXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5pbXBvcnQgeyBYSTE4blNlbGVjdCwgWEkxOG5TZXJ2aWNlLCB6aF9DTiB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBYVGFnQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvdGFnJztcclxuaW1wb3J0IHsgWE91dGxldERpcmVjdGl2ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL291dGxldCc7XHJcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hTZWxlY3RQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgWFRhZ0NvbXBvbmVudCwgWElucHV0Q29tcG9uZW50LCBYT3V0bGV0RGlyZWN0aXZlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1hWYWx1ZUFjY2Vzc29yKFhTZWxlY3RDb21wb25lbnQpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFNlbGVjdENvbXBvbmVudCBleHRlbmRzIFhTZWxlY3RQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChYSTE4blNlcnZpY2UpO1xyXG4gIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XHJcbiAgb3ZlcnJpZGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwcml2YXRlIHBvcnRhbFNlcnZpY2UgPSBpbmplY3QoWFBvcnRhbFNlcnZpY2UpO1xyXG4gIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcclxuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XHJcbiAgcHJpdmF0ZSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xyXG5cclxuICBpbnB1dENvbSA9IHZpZXdDaGlsZC5yZXF1aXJlZDxYSW5wdXRDb21wb25lbnQ+KCdpbnB1dENvbScpO1xyXG4gIHNlbGVjdCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ3NlbGVjdCcpO1xyXG4gIG11bHRpcGxlVmFsdWVUcGwgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8VGVtcGxhdGVSZWY8dm9pZD4+KCdtdWx0aXBsZVZhbHVlVHBsJyk7XHJcbiAgbXVsdGlwbGVJbnB1dCA9IHZpZXdDaGlsZDxYSW5wdXRDb21wb25lbnQ+KCdtdWx0aXBsZUlucHV0Jyk7XHJcbiAgc2VhcmNoSW5wdXQgPSB2aWV3Q2hpbGQ8WElucHV0Q29tcG9uZW50Pignc2VhcmNoSW5wdXQnKTtcclxuICB2YWx1ZVRlbXBsYXRlID0gdmlld0NoaWxkLnJlcXVpcmVkPFRlbXBsYXRlUmVmPHZvaWQ+PigndmFsdWVUZW1wbGF0ZScpO1xyXG4gIHNlYXJjaFRlbXBsYXRlID0gdmlld0NoaWxkLnJlcXVpcmVkPFRlbXBsYXRlUmVmPHZvaWQ+Pignc2VhcmNoVGVtcGxhdGUnKTtcclxuXHJcbiAgZ2V0UmVhZG9ubHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlYWRvbmx5KCkgfHwgIXRoaXMuc2VhcmNoKCkpO1xyXG4gIGdldE1heFRhZ0NvbnRlbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1heFRhZ0NvbnRlbnQoKSB8fCB0aGlzLmxvY2FsZSgpLm1heFRhZ0NvbnRlbnQpO1xyXG5cclxuICBub1BvcnRhbFdpZHRoUGxhY2VtZW50czogWFBsYWNlbWVudFtdID0gWydib3R0b20nLCAndG9wJ107XHJcbiAgaGFzUG9ydGFsV2lkdGhQbGFjZW1lbnRzOiBYUGxhY2VtZW50W10gPSBbJ2JvdHRvbS1zdGFydCcsICdib3R0b20tZW5kJywgJ3RvcC1zdGFydCcsICd0b3AtZW5kJ107XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUoKSkge1xyXG4gICAgICBpZiAoWElzTnVsbCh2YWx1ZSkgfHwgWElzVW5kZWZpbmVkKHZhbHVlKSkge1xyXG4gICAgICAgIHZhbHVlID0gW107XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFYSXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICB2YWx1ZSA9IFt2YWx1ZV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUuc2V0KHZhbHVlKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBlbnRlciA9IHNpZ25hbChmYWxzZSk7XHJcbiAgc2hvd0NsZWFyYWJsZSA9IHNpZ25hbChmYWxzZSk7XHJcbiAgZGlzcGxheVZhbHVlID0gc2lnbmFsKCcnKTtcclxuICBtdWx0aXBsZVNlYXJjaFZhbHVlID0gc2lnbmFsKCcnKTtcclxuICBub2RlcyA9IHNpZ25hbDxYU2VsZWN0Tm9kZVtdPihbXSk7XHJcbiAgc2VsZWN0ZWROb2RlcyA9IHNpZ25hbDxYU2VsZWN0Tm9kZVtdPihbXSk7XHJcbiAgZGlzcGxheU5vZGVzID0gc2lnbmFsPFhTZWxlY3ROb2RlW10+KFtdKTtcclxuICBkaXNwbGF5TW9yZSA9IHNpZ25hbCgnJyk7XHJcbiAgc2hvd0Rpc3BsYXlNb3JlID0gc2lnbmFsKGZhbHNlKTtcclxuICBzZWFyY2hOb2RlcyA9IHNpZ25hbDxYU2VsZWN0Tm9kZVtdPihbXSk7XHJcbiAgcG9ydGFsITogWFBvcnRhbE92ZXJsYXlSZWY8WFNlbGVjdFBvcnRhbENvbXBvbmVudD47XHJcbiAgaWNvbiA9IHNpZ25hbCgnZnRvLWNoZXZyb24tZG93bicpO1xyXG4gIGljb25TcGluID0gc2lnbmFsKGZhbHNlKTtcclxuICBhbmltYXRpbmcgPSBzaWduYWwoZmFsc2UpO1xyXG4gIG9iamVjdEFycmF5ID0gc2lnbmFsKGZhbHNlKTtcclxuICBzZWxlY3RlZFN1cnBsdXMgPSBzaWduYWwoMCk7XHJcbiAgc2VsZWN0ZWRUb3RhbCA9IHNpZ25hbCgwKTtcclxuICBjb21wb3NpdGlvbiA9IHNpZ25hbChmYWxzZSk7XHJcbiAgbG9jYWxlID0gdG9TaWduYWwodGhpcy5pMThuLmxvY2FsZUNoYW5nZS5waXBlKG1hcCgoeCkgPT4geC5zZWxlY3QgYXMgWEkxOG5TZWxlY3QpKSwgeyBpbml0aWFsVmFsdWU6IHpoX0NOLnNlbGVjdCB9KTtcclxuICBjbG9zZVN1YmplY3Q6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIGtleWRvd25TdWJqZWN0OiBTdWJqZWN0PEtleWJvYXJkRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICBpbnB1dENoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBtdWx0aXBsZUlucHV0U2l6ZUNoYW5nZSA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcclxuICBwcml2YXRlIHVuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlciE6IFhSZXNpemVPYnNlcnZlcjtcclxuXHJcbiAgdmFsdWVUcGxDb21wdXRlZCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGlmICh0aGlzLm5vZGVUcGwoKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5ub2RlVHBsKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy52YWx1ZVRwbCgpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlVHBsKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm11bHRpcGxlVmFsdWVUcGwoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlYXJjaCgpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlYXJjaFRlbXBsYXRlKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZVRlbXBsYXRlKCk7XHJcbiAgfSk7XHJcblxyXG4gIHZhbHVlVHBsQ29udGV4dFNpZ25hbCA9IHNpZ25hbDx7ICRub2RlOiBhbnk7ICRpc1ZhbHVlOiBib29sZWFuIH0+KHsgJG5vZGU6IG51bGwsICRpc1ZhbHVlOiB0cnVlIH0pO1xyXG4gIHZhbHVlVHBsQ29udGV4dENvbXB1dGVkID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsdWVUcGxDb250ZXh0KCkgPyB0aGlzLnZhbHVlVHBsQ29udGV4dCgpIDogdGhpcy52YWx1ZVRwbENvbnRleHRTaWduYWwoKTtcclxuICB9KTtcclxuICBwbGFjZW1lbnRzID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgbGV0IHBsYWNlbWVudCA9IHRoaXMucGxhY2VtZW50KCk7XHJcbiAgICBpZiAodGhpcy5wb3J0YWxXaWR0aCgpKSB7XHJcbiAgICAgIGlmIChwbGFjZW1lbnQgPT09ICdib3R0b20nKSB7XHJcbiAgICAgICAgcGxhY2VtZW50ID0gJ2JvdHRvbS1zdGFydCc7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIFtwbGFjZW1lbnQsIC4uLnRoaXMuaGFzUG9ydGFsV2lkdGhQbGFjZW1lbnRzXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBbcGxhY2VtZW50LCAuLi50aGlzLm5vUG9ydGFsV2lkdGhQbGFjZW1lbnRzXTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgcHJpdmF0ZSByZWFsUGxhY2VtZW50ID0gc2lnbmFsPFhQbGFjZW1lbnQgfCBudWxsPihudWxsKTtcclxuICBwb3J0YWxDb21wb25lbnQgPSBzaWduYWw8Q29tcG9uZW50UmVmPFhTZWxlY3RQb3J0YWxDb21wb25lbnQ+IHwgbnVsbD4obnVsbCk7XHJcbiAgcG9ydGFsT3ZlcmxheVJlZiA9IHNpZ25hbDxPdmVybGF5UmVmIHwgbnVsbD4obnVsbCk7XHJcbiAgaW5wdXRDaGFuZ2VkID0gdG9TaWduYWwodGhpcy5pbnB1dENoYW5nZSk7XHJcbiAgcG9ydGFsRGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGNvbnN0IG5vZGVzID0gdGhpcy5ub2RlcygpO1xyXG4gICAgaWYgKFhJc0Z1bmN0aW9uKHRoaXMuZGF0YSgpKSB8fCBYSXNFbXB0eSh0aGlzLmlucHV0Q2hhbmdlZCgpKSkgcmV0dXJuIG5vZGVzO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoTm9kZXMoKTtcclxuICB9KTtcclxuICBhbGxvd0FnaWFuID0gc2lnbmFsKHRydWUpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ2RhdGEnLCB0aGlzLnBvcnRhbERhdGEoKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCd2YWx1ZScsIHRoaXMudmFsdWUoKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdwbGFjZW1lbnQnLCB0aGlzLnJlYWxQbGFjZW1lbnQoKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdtdWx0aXBsZScsIHRoaXMubXVsdGlwbGUoKSA9PT0gdHJ1ZSA/IDAgOiAxKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ25vZGVUcGwnLCB0aGlzLm5vZGVUcGwoKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdpbnB1dENvbScsIHRoaXMuaW5wdXRDb20oKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdwb3J0YWxNYXhIZWlnaHQnLCB0aGlzLnBvcnRhbE1heEhlaWdodCgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ29iamVjdEFycmF5JywgdGhpcy5vYmplY3RBcnJheSgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ3NlbGVjdEFsbCcsIHRoaXMuc2VsZWN0QWxsKCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgnc2VsZWN0QWxsVGV4dCcsIHRoaXMuc2VsZWN0QWxsVGV4dCgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ2Nhc2VTZW5zaXRpdmUnLCB0aGlzLmNhc2VTZW5zaXRpdmUoKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdzZWFyY2gnLCB0aGlzLnNlYXJjaCgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ3ZpcnR1YWxTY3JvbGwnLCB0aGlzLnZpcnR1YWxTY3JvbGwoKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdzaXplJywgdGhpcy5zaXplKCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgna2V5d29yZFRleHQnLCB0aGlzLmlucHV0Q2hhbmdlZCgpKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0U3ViamVjdCgpO1xyXG4gICAgdGhpcy5zZXRQYXJhbnRTY3JvbGwoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgZGF0YSB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZShkYXRhKSAmJiB0aGlzLnNldERhdGEoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2V0UG9ydGFsKCk7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSgpICYmIHRoaXMuaW5wdXRDb20oKS5pbnB1dFZhbHVlUmVmKCkpIHtcclxuICAgICAgWFJlc2l6ZSh0aGlzLmlucHV0Q29tKCkuaW5wdXRWYWx1ZVJlZigpPy5uYXRpdmVFbGVtZW50KVxyXG4gICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgzMCksIHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgICB0aGlzLnNldE11dGlwbGVJbnB1dFNpemUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy51blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy51blN1YmplY3QuY29tcGxldGUoKTtcclxuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIHNldERhdGEoKSB7XHJcbiAgICBpZiAodGhpcy5hc3luYygpKSByZXR1cm47XHJcbiAgICBYU2V0RGF0YTxYU2VsZWN0Tm9kZT4odGhpcy5kYXRhKCksIHRoaXMudW5TdWJqZWN0KS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5ub2Rlcy5zZXQoeCk7XHJcbiAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKCk7XHJcbiAgICAgIHRoaXMuc2V0UG9ydGFsKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFN1YmplY3QoKSB7XHJcbiAgICB0aGlzLmNsb3NlU3ViamVjdC5waXBlKHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2xvc2VQb3J0YWwoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pbnB1dENoYW5nZVxyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUoKSBhcyBudW1iZXIpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB0YWtlVW50aWwodGhpcy51blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5tb2RlbENoYW5nZSh4KTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmtleWRvd25TdWJqZWN0LnBpcGUodGhyb3R0bGVUaW1lKDEwKSwgdGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIGNvbnN0IGtleUNvZGUgPSB4LmtleUNvZGU7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAhdGhpcy5wb3J0YWxBdHRhY2hlZCgpICYmXHJcbiAgICAgICAgW0RPV05fQVJST1csIFVQX0FSUk9XLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVywgRU5URVIsIE1BQ19FTlRFUiwgQkFDS1NQQUNFXS5pbmNsdWRlcyhrZXlDb2RlKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlKHRoaXMuZGlzcGxheVZhbHVlKCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnBvcnRhbEF0dGFjaGVkKCkgJiYgW0VTQ0FQRV0uaW5jbHVkZXMoa2V5Q29kZSkpIHtcclxuICAgICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5tdWx0aXBsZUlucHV0U2l6ZUNoYW5nZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZUlucHV0KCkpIHtcclxuICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMubXVsdGlwbGVJbnB1dCgpPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShpbnB1dCwgJ3dpZHRoJywgYCR7eH1weGApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldE11dGlwbGVJbnB1dFNpemUoKSB7XHJcbiAgICBjb25zdCBpdmYgPSB0aGlzLmlucHV0Q29tKCkuaW5wdXRWYWx1ZVJlZigpPy5uYXRpdmVFbGVtZW50IGFzIEhUTUxEaXZFbGVtZW50O1xyXG4gICAgbGV0IHsgY2xpZW50V2lkdGgsIHNjcm9sbEhlaWdodCB9ID0gaXZmO1xyXG4gICAgY29uc3QgbGVuID0gaXZmLmNoaWxkcmVuLmxlbmd0aDtcclxuICAgIGxldCBsYXN0Um93VGFnVG9wID0gLTE7XHJcbiAgICBsZXQgbGluZXMgPSAxO1xyXG4gICAgbGV0IHJvd1RhZ1RvcCA9IC0xO1xyXG4gICAgbGV0IGxhc3RSb3dUYWdzV2lkdGggPSAwO1xyXG4gICAgbGV0IG1hcmdpbkxlZnQgPSAwO1xyXG4gICAgbGV0IG1hcmdpblRvcCA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gbGVuIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgY29uc3QgZWxlID0gaXZmLmNoaWxkcmVuW2ldIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBpZiAoZWxlLnRhZ05hbWUgPT09ICdYLVRBRycpIHtcclxuICAgICAgICBjb25zdCB7IG9mZnNldFRvcCwgb2Zmc2V0V2lkdGggfSA9IGVsZTtcclxuICAgICAgICBjb25zdCBzdHlsZSA9IFhDb21wdXRlZChlbGUpO1xyXG4gICAgICAgIG1hcmdpbkxlZnQgPSBOdW1iZXIoc3R5bGUubWFyZ2luTGVmdC5yZXBsYWNlKCdweCcsICcnKSk7XHJcbiAgICAgICAgbWFyZ2luVG9wID0gTnVtYmVyKHN0eWxlLm1hcmdpblRvcC5yZXBsYWNlKCdweCcsICcnKSk7XHJcbiAgICAgICAgaWYgKHJvd1RhZ1RvcCA9PT0gLTEpIHtcclxuICAgICAgICAgIHJvd1RhZ1RvcCA9IG9mZnNldFRvcDtcclxuICAgICAgICB9IGVsc2UgaWYgKHJvd1RhZ1RvcCAhPT0gb2Zmc2V0VG9wKSB7XHJcbiAgICAgICAgICBsaW5lcysrO1xyXG4gICAgICAgICAgcm93VGFnVG9wID0gb2Zmc2V0VG9wO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGFzdFJvd1RhZ1RvcCA9PT0gLTEpIHtcclxuICAgICAgICAgIGxhc3RSb3dUYWdUb3AgPSBvZmZzZXRUb3A7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChsYXN0Um93VGFnVG9wID09PSBvZmZzZXRUb3ApIHtcclxuICAgICAgICAgIGxhc3RSb3dUYWdzV2lkdGggKz0gb2Zmc2V0V2lkdGggKyBtYXJnaW5MZWZ0O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgaGVpZ2h0ID0gc2Nyb2xsSGVpZ2h0ICsgKGxpbmVzID4gMSA/IG1hcmdpblRvcCA6IDApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmlucHV0Q29tKCkuaW5wdXRSZWYoKS5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YCk7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZUlucHV0KCkpIHtcclxuICAgICAgdGhpcy5tdWx0aXBsZUlucHV0U2l6ZUNoYW5nZS5uZXh0KGNsaWVudFdpZHRoIC0gbGFzdFJvd1RhZ3NXaWR0aCAtIG1hcmdpbkxlZnQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBtZW50ZXIoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZENvbXB1dGVkKCkgfHwgIXRoaXMuY2xlYXJhYmxlKCkgfHwgdGhpcy5pY29uU3BpbigpKSByZXR1cm47XHJcbiAgICB0aGlzLmVudGVyLnNldCh0cnVlKTtcclxuICAgIGlmICgoIXRoaXMubXVsdGlwbGUoKSAmJiAhWElzRW1wdHkodGhpcy5kaXNwbGF5VmFsdWUoKSkpIHx8ICh0aGlzLm11bHRpcGxlKCkgJiYgIVhJc0VtcHR5KHRoaXMuZGlzcGxheU5vZGVzKCkpKSkge1xyXG4gICAgICB0aGlzLmljb24uc2V0KCcnKTtcclxuICAgICAgdGhpcy5zaG93Q2xlYXJhYmxlLnNldCh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1sZWF2ZSgpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkQ29tcHV0ZWQoKSB8fCAhdGhpcy5jbGVhcmFibGUoKSB8fCB0aGlzLmljb25TcGluKCkpIHJldHVybjtcclxuICAgIHRoaXMuZW50ZXIuc2V0KGZhbHNlKTtcclxuICAgIGlmICh0aGlzLmNsZWFyYWJsZSgpKSB7XHJcbiAgICAgIHRoaXMuaWNvbi5zZXQoJ2Z0by1jaGV2cm9uLWRvd24nKTtcclxuICAgICAgdGhpcy5zaG93Q2xlYXJhYmxlLnNldChmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtb2RlbENoYW5nZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICBpZiAoWElzRnVuY3Rpb24odGhpcy5kYXRhKCkpKSB7XHJcbiAgICAgIGlmICghdGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgICAgdGhpcy5zaG93UG9ydGFsKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pY29uLnNldCgnZnRvLWxvYWRlcicpO1xyXG4gICAgICB0aGlzLmljb25TcGluLnNldCh0cnVlKTtcclxuICAgICAgWFNldERhdGE8WFNlbGVjdE5vZGU+KHRoaXMuZGF0YSgpLCB0aGlzLnVuU3ViamVjdCwgdHJ1ZSwgdmFsdWUgYXMgYW55KS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmljb24uc2V0KCcnKTtcclxuICAgICAgICB0aGlzLmljb25TcGluLnNldChmYWxzZSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmVudGVyKCkgJiYgdGhpcy5jbGVhcmFibGUoKSkge1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2xlYXJhYmxlLnNldChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZXMuc2V0KHgpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubm9kZXMoKSkge1xyXG4gICAgICBpZiAoIXRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICAgIHRoaXMuc2hvd1BvcnRhbCgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChYSXNFbXB0eSh2YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaE5vZGVzLnNldCh0aGlzLm5vZGVzKCkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2V0U2VhcmNoTm9kZXModmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTZWFyY2hOb2Rlcyh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5jYXNlU2Vuc2l0aXZlKCkpIHtcclxuICAgICAgdGhpcy5zZWFyY2hOb2Rlcy5zZXQodGhpcy5ub2RlcygpLmZpbHRlcigoeCkgPT4gU3RyaW5nKHgubGFiZWwpLmluZGV4T2YoU3RyaW5nKHZhbHVlKSkgPj0gMCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWFyY2hOb2Rlcy5zZXQoXHJcbiAgICAgICAgdGhpcy5ub2RlcygpLmZpbHRlcigoeCkgPT4gU3RyaW5nKHgubGFiZWwpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihTdHJpbmcodmFsdWUpLnRvTG93ZXJDYXNlKCkpID49IDApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQYXJhbnRTY3JvbGwoKSB7XHJcbiAgICBpZiAoIXRoaXMuZG9jdW1lbnQpIHJldHVybjtcclxuICAgIGNvbnN0IHBhcmVudHMgPSBYUGFyZW50cyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICBsZXQgZmlyc3RTY3JvbGw6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcbiAgICBmb3IgKGxldCBpdGVtIG9mIHBhcmVudHMpIHtcclxuICAgICAgaWYgKGl0ZW0uY2xpZW50SGVpZ2h0IDwgaXRlbS5zY3JvbGxIZWlnaHQpIHtcclxuICAgICAgICBmaXJzdFNjcm9sbCA9IGl0ZW07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChmaXJzdFNjcm9sbCAmJiBmaXJzdFNjcm9sbC50YWdOYW1lICE9PSAnQk9EWScpIHtcclxuICAgICAgZnJvbUV2ZW50KGZpcnN0U2Nyb2xsLCAnc2Nyb2xsJylcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnBvcnRhbEF0dGFjaGVkKCkhKSxcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdClcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb24oKTtcclxuICAgICAgICAgIGNvbnN0IGVyYWN0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgICBjb25zdCBmcmVjdCA9IGZpcnN0U2Nyb2xsIS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgIGlmIChlcmFjdC50b3AgKyBlcmFjdC5oZWlnaHQgLSBmcmVjdC50b3AgPCAwIHx8IGVyYWN0LmJvdHRvbSA+IGZyZWN0LmJvdHRvbSkge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhckVtaXQoKSB7XHJcbiAgICB0aGlzLnZhbHVlLnVwZGF0ZSgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlzcGxheVZhbHVlLnNldCgnJyk7XHJcbiAgICB0aGlzLm11bHRpcGxlU2VhcmNoVmFsdWUuc2V0KCcnKTtcclxuICAgIHRoaXMuc2VsZWN0ZWROb2Rlcy5zZXQoW10pO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5Tm9kZXMoKTtcclxuICAgIHRoaXMudmFsdWVUcGxDb250ZXh0U2lnbmFsLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICB4LiRub2RlID0gbnVsbDtcclxuICAgICAgcmV0dXJuIHsgLi4ueCB9O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLm1sZWF2ZSgpO1xyXG4gICAgdGhpcy5pbnB1dENoYW5nZS5uZXh0KCcnKTtcclxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUoKSk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5VmFsdWUoY2xpY2tOb2RlPzogWFNlbGVjdE5vZGUpIHtcclxuICAgIGlmICh0aGlzLm5vZGVzKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB7XHJcbiAgICAgICAgaWYgKFhJc0VtcHR5KHRoaXMudmFsdWUoKSkpIHtcclxuICAgICAgICAgIGlmIChYSXNVbmRlZmluZWQodGhpcy52YWx1ZSgpKSB8fCBYSXNOdWxsKHRoaXMudmFsdWUoKSkpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZS5zZXQoW10pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZS51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICAgICAgICB4LnNwbGljZSgwLCB4Lmxlbmd0aCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHg7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUuc2V0KCcnKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2Rlcy5zZXQoW10pO1xyXG4gICAgICAgICAgdGhpcy5kaXNwbGF5Tm9kZXMuc2V0KFtdKTtcclxuICAgICAgICAgIHRoaXMuZGlzcGxheU1vcmUuc2V0KCcnKTtcclxuICAgICAgICAgIHRoaXMudmFsdWVUcGxDb250ZXh0U2lnbmFsLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICB4LiRub2RlID0gbnVsbDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgLi4ueCB9O1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnNldERpc3BsYXlOb2RlcygpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgaWRzID0gW107XHJcbiAgICAgICAgICBsZXQgc2VsZWN0ZWQgPSBbXTtcclxuICAgICAgICAgIGlmIChYSXNPYmplY3RBcnJheTxYU2VsZWN0Tm9kZVtdPih0aGlzLnZhbHVlKCkpKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JqZWN0QXJyYXkuc2V0KHRydWUpO1xyXG4gICAgICAgICAgICBpZHMgPSB0aGlzLnZhbHVlKCkubWFwKCh4OiBYU2VsZWN0Tm9kZSkgPT4geC5pZCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm9iamVjdEFycmF5LnNldChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlkcyA9IHRoaXMudmFsdWUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChjbGlja05vZGUpIHtcclxuICAgICAgICAgICAgaWYgKGNsaWNrTm9kZS5zZWxlY3RlZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2Rlcy51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICAgICAgICAgIHgucHVzaChjbGlja05vZGUpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFsuLi54XTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMudXBkYXRlKCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBYUmVtb3ZlKHgsICh5KSA9PiB5LmlkID09PSBjbGlja05vZGUuaWQpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFsuLi54XTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaWQgb2YgaWRzKSB7XHJcbiAgICAgICAgICAgICAgbGV0IG5vZGUgPSB0aGlzLm5vZGVzKCkuZmluZCgoeCkgPT4geC5pZCA9PT0gaWQpO1xyXG4gICAgICAgICAgICAgIGlmIChub2RlKSBzZWxlY3RlZC5wdXNoKG5vZGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2Rlcy5zZXQoc2VsZWN0ZWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXREaXNwbGF5Tm9kZXMoKTtcclxuICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlLnNldChcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGVzKClcclxuICAgICAgICAgICAgICAubWFwKCh4KSA9PiB4LmxhYmVsKVxyXG4gICAgICAgICAgICAgIC5qb2luKCcsJylcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlVHBsQ29udGV4dFNpZ25hbC51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICAgICAgeC4kbm9kZSA9IFsuLi50aGlzLnNlbGVjdGVkTm9kZXMoKV07XHJcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnggfTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgbm9kZSA9IHRoaXMubm9kZXMoKS5maW5kKCh4KSA9PiB4LmlkID09PSB0aGlzLnZhbHVlKCkpO1xyXG4gICAgICAgIGlmIChub2RlKSB7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZS5zZXQobm9kZS5sYWJlbCk7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlVHBsQ29udGV4dFNpZ25hbC51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICAgICAgeC4kbm9kZSA9IG5vZGU7XHJcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnggfTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZS5zZXQoJycpO1xyXG4gICAgICAgICAgdGhpcy52YWx1ZVRwbENvbnRleHRTaWduYWwudXBkYXRlKCh4KSA9PiB7XHJcbiAgICAgICAgICAgIHguJG5vZGUgPSBudWxsO1xyXG4gICAgICAgICAgICByZXR1cm4geyAuLi54IH07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlTm9kZShldmVudDogRXZlbnQsIG5vZGU6IFhTZWxlY3ROb2RlLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBsZXQgaW54ID0gLTE7XHJcbiAgICBpZiAoWElzT2JqZWN0QXJyYXk8WFNlbGVjdE5vZGVbXT4odGhpcy52YWx1ZSgpKSkge1xyXG4gICAgICBpbnggPSB0aGlzLnZhbHVlKCkuZmluZEluZGV4KCh5OiBYU2VsZWN0Tm9kZSkgPT4geS5pZCA9PT0gbm9kZS5pZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpbnggPSB0aGlzLnZhbHVlKCkuZmluZEluZGV4KCh5OiBudW1iZXIgfCBzdHJpbmcpID0+IHkgPT09IG5vZGUuaWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlueCA+PSAwKSB7XHJcbiAgICAgIHRoaXMudmFsdWUudXBkYXRlKCh4KSA9PiB7XHJcbiAgICAgICAgeC5zcGxpY2UoaW54LCAxKTtcclxuICAgICAgICByZXR1cm4geDtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUoKSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWROb2Rlcy51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICB4LnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgcmV0dXJuIHg7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNldERpc3BsYXlOb2RlcygpO1xyXG4gICAgfVxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5Tm9kZXMoKSB7XHJcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUoKSkgcmV0dXJuO1xyXG4gICAgY29uc3QgbWF4bGVuID0gdGhpcy5zZWxlY3RlZE5vZGVzKCkubGVuZ3RoO1xyXG4gICAgbGV0IGxlbiA9IDA7XHJcbiAgICBpZiAodGhpcy5tYXhUYWdDb3VudCgpID49IDApIHtcclxuICAgICAgbGVuID0gbWF4bGVuID4gdGhpcy5tYXhUYWdDb3VudCgpID8gdGhpcy5tYXhUYWdDb3VudCgpIDogbWF4bGVuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGVuID0gbWF4bGVuO1xyXG4gICAgfVxyXG4gICAgbGV0IG1vcmUgPSBtYXhsZW4gLSBsZW47XHJcbiAgICBtb3JlID0gbW9yZSA8IDAgPyAwIDogbW9yZTtcclxuICAgIHRoaXMuZGlzcGxheU5vZGVzLnNldCh0aGlzLnNlbGVjdGVkTm9kZXMoKS5zbGljZSgwLCBsZW4pKTtcclxuICAgIHRoaXMuc2hvd0Rpc3BsYXlNb3JlLnNldChtb3JlID4gMCk7XHJcbiAgICBpZiAoWElzU3RyaW5nKHRoaXMuZ2V0TWF4VGFnQ29udGVudCgpKSkge1xyXG4gICAgICB0aGlzLmRpc3BsYXlNb3JlLnNldChtb3JlID4gMCA/ICh0aGlzLmdldE1heFRhZ0NvbnRlbnQoKSBhcyBzdHJpbmcpLnJlcGxhY2UoL1xce1xce3N1cnBsdXNcXH1cXH0vZywgYCR7bW9yZX1gKSA6ICcnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRTdXJwbHVzLnNldChtb3JlKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRvdGFsLnNldChtYXhsZW4pO1xyXG4gICAgfVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNldE11dGlwbGVJbnB1dFNpemUoKSk7XHJcbiAgfVxyXG5cclxuICBwb3J0YWxBdHRhY2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGV0YWNoKCk7XHJcbiAgICAgIHRoaXMuYWN0aXZlLnNldChmYWxzZSk7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWFyY2hWYWx1ZS5zZXQoJycpO1xyXG4gICAgICB0aGlzLmFsbG93QWdpYW4uc2V0KGZhbHNlKTtcclxuICAgICAgb2YodHJ1ZSlcclxuICAgICAgICAucGlwZShkZWxheSgyMDApKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5hbGxvd0FnaWFuLnNldCh0cnVlKSk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveVBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICBzaG93UG9ydGFsKGNsaWNrID0gZmFsc2UpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkQ29tcHV0ZWQoKSB8fCAhdGhpcy5hbGxvd0FnaWFuKCkgfHwgdGhpcy5pY29uU3BpbigpIHx8IHRoaXMuYW5pbWF0aW5nKCkpIHJldHVybjtcclxuICAgIHRoaXMuYWN0aXZlLnNldCh0cnVlKTtcclxuICAgIGlmICgodGhpcy5hc3luYygpICYmIFhJc09ic2VydmFibGUodGhpcy5kYXRhKCkpICYmIHRoaXMubm9kZXMoKS5sZW5ndGggPT09IDApIHx8IFhJc0Z1bmN0aW9uKHRoaXMuZGF0YSgpKSkge1xyXG4gICAgICB0aGlzLmljb24uc2V0KCdmdG8tbG9hZGVyJyk7XHJcbiAgICAgIHRoaXMuaWNvblNwaW4uc2V0KHRydWUpO1xyXG4gICAgICBYU2V0RGF0YTxYU2VsZWN0Tm9kZT4odGhpcy5kYXRhKCksIHRoaXMudW5TdWJqZWN0LCB0cnVlLCBjbGljayA/ICcnIDogdGhpcy5kaXNwbGF5VmFsdWUoKSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pY29uLnNldCgnZnRvLWNoZXZyb24tZG93bicpO1xyXG4gICAgICAgIHRoaXMuaWNvblNwaW4uc2V0KGZhbHNlKTtcclxuICAgICAgICBpZiAoIXRoaXMuZW50ZXIoKSAmJiB0aGlzLmNsZWFyYWJsZSgpKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dDbGVhcmFibGUuc2V0KGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ub2Rlcy5zZXQoeCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaCgpKSB0aGlzLnNldERpc3BsYXlWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlUG9ydGFsKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jcmVhdGVQb3J0YWwoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlYXJjaCgpICYmIHRoaXMubXVsdGlwbGUoKSkge1xyXG4gICAgICB0aGlzLm11bHRpcGxlSW5wdXQoKT8uaW5wdXRGb2N1cygpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnNlYXJjaCgpICYmICF0aGlzLm11bHRpcGxlKCkpIHtcclxuICAgICAgdGhpcy5zZWFyY2hJbnB1dCgpPy5pbnB1dEZvY3VzKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucHV0Q29tKCkuaW5wdXRGb2N1cygnZm9jdXMnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZVBvcnRhbCgpIHtcclxuICAgIHRoaXMubm9kZXMudXBkYXRlKChub2RlcykgPT4ge1xyXG4gICAgICBub2Rlcy5maWx0ZXIoKHgpID0+IHguc2VsZWN0ZWQpLm1hcCgoeCkgPT4gKHguc2VsZWN0ZWQgPSBmYWxzZSkpO1xyXG4gICAgICByZXR1cm4gWy4uLm5vZGVzXTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgYm94ID0gdGhpcy5pbnB1dENvbSgpLmlucHV0UmVmKCkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IGNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHtcclxuICAgICAgYmFja2Ryb3BDbGFzczogJycsXHJcbiAgICAgIHdpZHRoOiB0aGlzLnBvcnRhbFdpZHRoKCkgfHwgYm94LndpZHRoLFxyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLnNldFBsYWNlbWVudCgpLFxyXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvbihjb25maWcpO1xyXG4gICAgdGhpcy5wb3J0YWwgPSB0aGlzLnBvcnRhbFNlcnZpY2UuYXR0YWNoKHtcclxuICAgICAgY29udGVudDogWFNlbGVjdFBvcnRhbENvbXBvbmVudCxcclxuICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICBvdmVybGF5Q29uZmlnOiBjb25maWdcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wb3J0YWwub3ZlcmxheVJlZlxyXG4gICAgICA/Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUoKTtcclxuICAgICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5zZXRJbnN0YW5jZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UG9zaXRpb24oY29uZmlnOiBPdmVybGF5Q29uZmlnKSB7XHJcbiAgICBsZXQgcG9zaXRpb24gPSBjb25maWcucG9zaXRpb25TdHJhdGVneSBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3k7XHJcbiAgICBwb3NpdGlvbi5wb3NpdGlvbkNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy51blN1YmplY3QpKS5zdWJzY3JpYmUoKHBvczogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBsYWNlID0gWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uLmdldChwb3MuY29ubmVjdGlvblBhaXIpIGFzIFhQb3NpdGlvblRvcEJvdHRvbTtcclxuICAgICAgaWYgKHBsYWNlICE9PSB0aGlzLnJlYWxQbGFjZW1lbnQoKSkge1xyXG4gICAgICAgIHRoaXMucmVhbFBsYWNlbWVudC5zZXQocGxhY2UpO1xyXG4gICAgICAgIHRoaXMucG9ydGFsT3ZlcmxheVJlZigpPy51cGRhdGVQb3NpdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEluc3RhbmNlKCkge1xyXG4gICAgbGV0IHsgY29tcG9uZW50UmVmLCBvdmVybGF5UmVmIH0gPSB0aGlzLnBvcnRhbDtcclxuICAgIGlmICghY29tcG9uZW50UmVmIHx8ICFvdmVybGF5UmVmKSByZXR1cm47XHJcbiAgICB0aGlzLnBvcnRhbENvbXBvbmVudC5zZXQoY29tcG9uZW50UmVmKTtcclxuICAgIHRoaXMucG9ydGFsT3ZlcmxheVJlZi5zZXQob3ZlcmxheVJlZik7XHJcbiAgICB0aGlzLnJlYWxQbGFjZW1lbnQuc2V0KHRoaXMucGxhY2VtZW50KCkpO1xyXG4gICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHtcclxuICAgICAgY2xvc2VTdWJqZWN0OiB0aGlzLmNsb3NlU3ViamVjdCxcclxuICAgICAga2V5ZG93blN1YmplY3Q6IHRoaXMua2V5ZG93blN1YmplY3RcclxuICAgIH0pO1xyXG4gICAgY29uc3QgeyBub2RlQ2xpY2ssIGFuaW1hdGluZyB9ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgbm9kZUNsaWNrLnN1YnNjcmliZSgoeCkgPT4gdGhpcy5ub2RlQ2xpY2soeC5ub2RlISwgeC52YWx1ZSkpO1xyXG4gICAgYW5pbWF0aW5nLnN1YnNjcmliZSgoaW5nKSA9PiB0aGlzLmFuaW1hdGluZy5zZXQoaW5nKSk7XHJcbiAgfVxyXG5cclxuICBub2RlQ2xpY2sobm9kZTogWFNlbGVjdE5vZGUsIHZhbHVlPzogWFNlbGVjdE5vZGVbXSB8IChzdHJpbmcgfCBudW1iZXIpW10pIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHtcclxuICAgICAgaWYgKG5vZGUpIHtcclxuICAgICAgICBpZiAoWElzT2JqZWN0QXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICBpZiAobm9kZS5zZWxlY3RlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgIHgucHVzaChub2RlKTtcclxuICAgICAgICAgICAgICByZXR1cm4geDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgaW54ID0gdGhpcy52YWx1ZSgpLmZpbmRJbmRleCgoeDogWFNlbGVjdE5vZGUpID0+IHguaWQgPT09IG5vZGUuaWQpO1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgIHguc3BsaWNlKGlueCwgMSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHg7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoWElzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICBpZiAobm9kZS5zZWxlY3RlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgIHgucHVzaChub2RlLmlkKTtcclxuICAgICAgICAgICAgICByZXR1cm4geDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgIHguc3BsaWNlKHguaW5kZXhPZihub2RlLmlkKSwgMSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHg7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZhbHVlLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgICAgeC5zcGxpY2UoMCwgeC5sZW5ndGgpO1xyXG4gICAgICAgICAgeC5wdXNoKC4uLih2YWx1ZSBhcyBhbnlbXSkpO1xyXG4gICAgICAgICAgcmV0dXJuIHg7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMubXVsdGlwbGVJbnB1dCgpKSB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLm11bHRpcGxlSW5wdXQoKSEuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaW5wdXQsICd3aWR0aCcsICcycmVtJyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2VhcmNoKCkgJiYgdGhpcy5tdWx0aXBsZVNlYXJjaFZhbHVlKCkgIT09ICcnKSB7XHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZVNlYXJjaFZhbHVlLnNldCgnJyk7XHJcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5uZXh0KCcnKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldERpc3BsYXlWYWx1ZShub2RlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5vZGUgPSBub2RlIGFzIFhTZWxlY3ROb2RlO1xyXG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZS5zZXQobm9kZS5sYWJlbCk7XHJcbiAgICAgIHRoaXMudmFsdWVUcGxDb250ZXh0U2lnbmFsLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgIHguJG5vZGUgPSBub2RlO1xyXG4gICAgICAgIHJldHVybiB7IC4uLnggfTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudmFsdWUuc2V0KG5vZGUuaWQpO1xyXG4gICAgICBpZiAodGhpcy5zZWFyY2goKSkge1xyXG4gICAgICAgIHRoaXMuaW5wdXRDaGFuZ2UubmV4dCgnJyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VhcmNoKCkgJiYgdGhpcy5tdWx0aXBsZSgpICYmIHRoaXMubXVsdGlwbGVJbnB1dCgpKSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVJbnB1dCgpIS5pbnB1dEZvY3VzKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucHV0Q29tKCkuaW5wdXRGb2N1cygnZm9jdXMnKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUoKSk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGxOb2Rlcyh2YWx1ZTogWFNlbGVjdE5vZGVbXSB8IChzdHJpbmcgfCBudW1iZXIpW10pIHtcclxuICAgIHRoaXMudmFsdWUuc2V0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHNldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgZWxlbWVudFJlZjogdGhpcy5pbnB1dENvbSgpLmlucHV0UmVmKCksXHJcbiAgICAgIHBsYWNlbWVudDogdGhpcy5wbGFjZW1lbnRzKCksXHJcbiAgICAgIHRyYW5zZm9ybU9yaWdpbk9uOiAneC1zZWxlY3QtcG9ydGFsJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbEF0dGFjaGVkKCkgJiYgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5zZXRQbGFjZW1lbnQoKSk7XHJcbiAgfVxyXG5cclxuICBvbktleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICB0aGlzLmtleWRvd25TdWJqZWN0Lm5leHQoJGV2ZW50KTtcclxuICAgIGlmICgkZXZlbnQua2V5Q29kZSAhPT0gVEFCICYmICF0aGlzLnNlYXJjaCkge1xyXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRm9jdXMoX2V2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoKCkgJiYgdGhpcy5tdWx0aXBsZSgpICYmIHRoaXMubXVsdGlwbGVJbnB1dCgpKSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVJbnB1dCgpIS5pbnB1dEZvY3VzKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucHV0Q29tKCkuaW5wdXRGb2N1cygnZm9jdXMnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW5wdXQoX2V2ZW50OiBJbnB1dEV2ZW50KSB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sVmFsaWRhdG9yKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaW5wdXRDaGFuZ2UubmV4dCh0aGlzLm11bHRpcGxlKCkgPyB0aGlzLm11bHRpcGxlU2VhcmNoVmFsdWUoKSA6IHRoaXMuZGlzcGxheVZhbHVlKCkpKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICNzZWxlY3RcclxuICBjbGFzcz1cIngtc2VsZWN0XCJcclxuICBbY2xhc3MueC1zZWxlY3QtbXVsdGlwbGVdPVwibXVsdGlwbGUoKVwiXHJcbiAgW2NsYXNzLngtc2VsZWN0LXNlYXJjaC1zaW5nbGVdPVwic2VhcmNoKCkgJiYgIW11bHRpcGxlKClcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cIngtc2VsZWN0LXJvd1wiPlxyXG4gICAgPHgtaW5wdXRcclxuICAgICAgI2lucHV0Q29tXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgW2xhYmVsXT1cImxhYmVsKClcIlxyXG4gICAgICBbbGFiZWxXaWR0aF09XCJsYWJlbFdpZHRoKClcIlxyXG4gICAgICBbbGFiZWxBbGlnbl09XCJsYWJlbEFsaWduKClcIlxyXG4gICAgICBbd2lkdGhdPVwid2lkdGgoKVwiXHJcbiAgICAgIFtqdXN0aWZ5XT1cImp1c3RpZnkoKVwiXHJcbiAgICAgIFthbGlnbl09XCJhbGlnbigpXCJcclxuICAgICAgW2RpcmVjdGlvbl09XCJkaXJlY3Rpb24oKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZENvbXB1dGVkKClcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRDb21wdXRlZCgpXCJcclxuICAgICAgW3ZhbGlkYXRvcl09XCJ2YWxpZGF0b3JDb21wdXRlZCgpIVwiXHJcbiAgICAgIFtpbnB1dFZhbGlkYXRvcl09XCJpbnB1dFZhbGlkYXRvcigpXCJcclxuICAgICAgW2ljb25dPVwiaWNvbigpXCJcclxuICAgICAgW2ljb25TcGluXT1cImljb25TcGluKClcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXHJcbiAgICAgIFtyZWFkb25seV09XCJnZXRSZWFkb25seSgpXCJcclxuICAgICAgW2NsZWFyYWJsZV09XCJzaG93Q2xlYXJhYmxlKClcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgW3ZhbHVlVHBsXT1cInZhbHVlVHBsQ29tcHV0ZWQoKVwiXHJcbiAgICAgIFt2YWx1ZVRwbENvbnRleHRdPVwidmFsdWVUcGxDb250ZXh0Q29tcHV0ZWQoKVwiXHJcbiAgICAgIFtzaXplXT1cInNpemUoKVwiXHJcbiAgICAgIFtib3JkZXJlZF09XCJib3JkZXJlZCgpXCJcclxuICAgICAgW2JlZm9yZV09XCJiZWZvcmUoKVwiXHJcbiAgICAgIFthZnRlcl09XCJhZnRlcigpXCJcclxuICAgICAgW3BhdHRlcm5dPVwicGF0dGVybkNvbXB1dGVkKClcIlxyXG4gICAgICBbbWVzc2FnZV09XCJtZXNzYWdlQ29tcHV0ZWQoKVwiXHJcbiAgICAgIFtwb2ludGVyXT1cInBvaW50ZXIoKVwiXHJcbiAgICAgIFsoYWN0aXZlKV09XCJhY3RpdmVcIlxyXG4gICAgICAoY2xlYXJFbWl0KT1cImNsZWFyRW1pdCgpXCJcclxuICAgICAgKHhLZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcclxuICAgICAgKHhJbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxyXG4gICAgICAoeEZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICh4Q2xpY2spPVwic2hvd1BvcnRhbCh0cnVlKVwiXHJcbiAgICAgICh4TW91c2VlbnRlcik9XCJtZW50ZXIoKVwiXHJcbiAgICAgICh4TW91c2VsZWF2ZSk9XCJtbGVhdmUoKVwiXHJcbiAgICAgICh4Q29tcG9zaXRpb24pPVwiY29tcG9zaXRpb24uc2V0KCRldmVudClcIlxyXG4gICAgPjwveC1pbnB1dD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI3ZhbHVlVGVtcGxhdGU+e3sgZGlzcGxheVZhbHVlKCkgfX08L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNzZWFyY2hUZW1wbGF0ZT5cclxuICA8eC1pbnB1dFxyXG4gICAgI3NlYXJjaElucHV0XHJcbiAgICBbYm9yZGVyZWRdPVwiZmFsc2VcIlxyXG4gICAgW3NpemVdPVwic2l6ZSgpXCJcclxuICAgIFsobmdNb2RlbCldPVwiZGlzcGxheVZhbHVlXCJcclxuICAgICh4SW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcclxuICAgICh4S2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXHJcbiAgPjwveC1pbnB1dD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbXVsdGlwbGVWYWx1ZVRwbD5cclxuICBAZm9yIChub2RlIG9mIGRpc3BsYXlOb2RlcygpOyB0cmFjayBub2RlLmlkOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgPHgtdGFnXHJcbiAgICAgIFtALmRpc2FibGVkXT1cInRydWVcIlxyXG4gICAgICBbYm9yZGVyZWRdPVwiZmFsc2VcIlxyXG4gICAgICBbY2xvc2FibGVdPVwiIWRpc2FibGVkQ29tcHV0ZWQoKVwiXHJcbiAgICAgIFt0eXBlXT1cIidpbmZvJ1wiXHJcbiAgICAgIChjbG9zZSk9XCJjbG9zZU5vZGUoJGV2ZW50LCBub2RlLCBpKVwiXHJcbiAgICAgIFtzaXplXT1cInNpemUoKVwiXHJcbiAgICAgID57eyBub2RlLmxhYmVsIH19PC94LXRhZ1xyXG4gICAgPlxyXG4gIH1cclxuICBAaWYgKHNob3dEaXNwbGF5TW9yZSgpKSB7XHJcbiAgICA8eC10YWcgW0AuZGlzYWJsZWRdPVwidHJ1ZVwiIFtib3JkZXJlZF09XCJmYWxzZVwiIFt0eXBlXT1cIidpbmZvJ1wiIFtzaXplXT1cInNpemUoKVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZ2V0TWF4VGFnQ29udGVudCgpOyBjb250ZXh0OiB7ICRzdXJwbHVzOiBzZWxlY3RlZFN1cnBsdXMoKSwgJHRvdGFsOiBzZWxlY3RlZFRvdGFsKCkgfVwiPnt7XHJcbiAgICAgICAgZGlzcGxheU1vcmUoKVxyXG4gICAgICB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC94LXRhZz5cclxuICB9XHJcblxyXG4gIEBpZiAoc2VhcmNoKCkpIHtcclxuICAgIDx4LWlucHV0XHJcbiAgICAgICNtdWx0aXBsZUlucHV0XHJcbiAgICAgIFtib3JkZXJlZF09XCJmYWxzZVwiXHJcbiAgICAgIFtzaXplXT1cInNpemUoKVwiXHJcbiAgICAgIFtuZ01vZGVsXT1cIm11bHRpcGxlU2VhcmNoVmFsdWUoKVwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm11bHRpcGxlU2VhcmNoVmFsdWUuc2V0KCRldmVudClcIlxyXG4gICAgICAoeElucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICh4S2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXHJcbiAgICA+PC94LWlucHV0PlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19