primeng 17.12.0 → 17.14.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 (488) hide show
  1. package/accordion/accordion.d.ts +5 -0
  2. package/animateonscroll/animateonscroll.d.ts +2 -0
  3. package/api/messageservice.d.ts +1 -1
  4. package/api/translation.d.ts +2 -0
  5. package/api/translationkeys.d.ts +1 -0
  6. package/api/treenode.d.ts +1 -0
  7. package/autocomplete/autocomplete.d.ts +27 -0
  8. package/autocomplete/autocomplete.interface.d.ts +1 -1
  9. package/autofocus/autofocus.d.ts +2 -1
  10. package/badge/badge.d.ts +34 -23
  11. package/baseicon/baseicon.d.ts +1 -0
  12. package/blockui/blockui.d.ts +2 -0
  13. package/button/button.d.ts +67 -6
  14. package/calendar/calendar.d.ts +47 -9
  15. package/carousel/carousel.d.ts +4 -0
  16. package/cascadeselect/cascadeselect.d.ts +23 -8
  17. package/chart/chart.d.ts +1 -0
  18. package/checkbox/checkbox.d.ts +16 -4
  19. package/chip/chip.d.ts +1 -0
  20. package/chips/chips.d.ts +19 -4
  21. package/colorpicker/colorpicker.d.ts +13 -2
  22. package/confirmdialog/confirmdialog.d.ts +10 -0
  23. package/confirmpopup/confirmpopup.d.ts +2 -0
  24. package/contextmenu/contextmenu.d.ts +11 -0
  25. package/dataview/dataview.d.ts +15 -0
  26. package/dialog/dialog.d.ts +20 -3
  27. package/dom/domhandler.d.ts +2 -0
  28. package/dragdrop/dragdrop.d.ts +1 -0
  29. package/dropdown/dropdown.d.ts +23 -0
  30. package/dynamicdialog/dialogservice.d.ts +3 -3
  31. package/dynamicdialog/dynamicdialog-config.d.ts +5 -0
  32. package/dynamicdialog/dynamicdialog-ref.d.ts +8 -2
  33. package/dynamicdialog/dynamicdialog.d.ts +6 -5
  34. package/editor/editor.d.ts +8 -8
  35. package/esm2022/accordion/accordion.mjs +14 -9
  36. package/esm2022/animateonscroll/animateonscroll.mjs +7 -5
  37. package/esm2022/api/messageservice.mjs +2 -2
  38. package/esm2022/api/primengconfig.mjs +4 -2
  39. package/esm2022/api/translation.mjs +1 -1
  40. package/esm2022/api/translationkeys.mjs +2 -1
  41. package/esm2022/api/treenode.mjs +1 -1
  42. package/esm2022/autocomplete/autocomplete.interface.mjs +1 -1
  43. package/esm2022/autocomplete/autocomplete.mjs +65 -38
  44. package/esm2022/autofocus/autofocus.mjs +13 -5
  45. package/esm2022/badge/badge.mjs +128 -82
  46. package/esm2022/baseicon/baseicon.mjs +5 -4
  47. package/esm2022/blockui/blockui.mjs +7 -5
  48. package/esm2022/button/button.mjs +130 -17
  49. package/esm2022/calendar/calendar.mjs +137 -106
  50. package/esm2022/carousel/carousel.mjs +11 -7
  51. package/esm2022/cascadeselect/cascadeselect.mjs +50 -27
  52. package/esm2022/chart/chart.mjs +5 -4
  53. package/esm2022/checkbox/checkbox.mjs +31 -12
  54. package/esm2022/chip/chip.mjs +5 -4
  55. package/esm2022/chips/chips.mjs +37 -15
  56. package/esm2022/colorpicker/colorpicker.mjs +29 -11
  57. package/esm2022/confirmdialog/confirmdialog.mjs +24 -14
  58. package/esm2022/confirmpopup/confirmpopup.mjs +8 -6
  59. package/esm2022/contextmenu/contextmenu.mjs +26 -15
  60. package/esm2022/dataview/dataview.mjs +34 -19
  61. package/esm2022/dialog/dialog.mjs +59 -56
  62. package/esm2022/dom/domhandler.mjs +22 -8
  63. package/esm2022/dragdrop/dragdrop.mjs +5 -4
  64. package/esm2022/dropdown/dropdown.mjs +69 -39
  65. package/esm2022/dynamicdialog/dialogservice.mjs +3 -3
  66. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +6 -1
  67. package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +7 -1
  68. package/esm2022/dynamicdialog/dynamicdialog.mjs +46 -70
  69. package/esm2022/editor/editor.mjs +49 -45
  70. package/esm2022/fieldset/fieldset.mjs +7 -5
  71. package/esm2022/fileupload/fileupload.mjs +76 -19
  72. package/esm2022/focustrap/focustrap.mjs +5 -4
  73. package/esm2022/galleria/galleria.mjs +57 -32
  74. package/esm2022/image/image.mjs +5 -4
  75. package/esm2022/inplace/inplace.mjs +12 -8
  76. package/esm2022/inputmask/inputmask.mjs +40 -17
  77. package/esm2022/inputnumber/inputnumber.interface.mjs +1 -1
  78. package/esm2022/inputnumber/inputnumber.mjs +63 -23
  79. package/esm2022/inputotp/inputotp.mjs +35 -16
  80. package/esm2022/inputswitch/inputswitch.mjs +27 -10
  81. package/esm2022/inputtextarea/inputtextarea.mjs +5 -4
  82. package/esm2022/keyfilter/keyfilter.mjs +16 -6
  83. package/esm2022/knob/knob.mjs +21 -12
  84. package/esm2022/listbox/listbox.mjs +41 -19
  85. package/esm2022/megamenu/megamenu.mjs +16 -10
  86. package/esm2022/menu/menu.mjs +11 -17
  87. package/esm2022/menubar/menubar.mjs +26 -15
  88. package/esm2022/message/message.mjs +5 -4
  89. package/esm2022/messages/messages.mjs +15 -11
  90. package/esm2022/metergroup/metergroup.interface.mjs +1 -1
  91. package/esm2022/metergroup/metergroup.mjs +12 -9
  92. package/esm2022/multiselect/multiselect.mjs +107 -54
  93. package/esm2022/orderlist/orderlist.mjs +16 -10
  94. package/esm2022/organizationchart/organizationchart.mjs +12 -8
  95. package/esm2022/overlaypanel/overlaypanel.mjs +13 -8
  96. package/esm2022/paginator/paginator.mjs +43 -13
  97. package/esm2022/panel/panel.mjs +9 -6
  98. package/esm2022/panelmenu/panelmenu.mjs +33 -16
  99. package/esm2022/password/password.mjs +34 -14
  100. package/esm2022/picklist/picklist.mjs +34 -19
  101. package/esm2022/progressbar/progressbar.mjs +7 -5
  102. package/esm2022/radiobutton/radiobutton.mjs +25 -9
  103. package/esm2022/rating/rating.mjs +38 -16
  104. package/esm2022/scroller/scroller.mjs +2 -2
  105. package/esm2022/scrollpanel/scrollpanel.mjs +5 -4
  106. package/esm2022/scrolltop/scrolltop.mjs +5 -4
  107. package/esm2022/selectbutton/selectbutton.mjs +31 -12
  108. package/esm2022/sidebar/sidebar.mjs +17 -10
  109. package/esm2022/slidemenu/slidemenu.mjs +40 -22
  110. package/esm2022/slider/slider.mjs +39 -14
  111. package/esm2022/speeddial/speeddial.interface.mjs +1 -1
  112. package/esm2022/speeddial/speeddial.mjs +94 -74
  113. package/esm2022/spinner/spinner.mjs +23 -13
  114. package/esm2022/splitbutton/splitbutton.mjs +173 -21
  115. package/esm2022/splitter/splitter.mjs +9 -6
  116. package/esm2022/steps/steps.mjs +13 -10
  117. package/esm2022/styleclass/styleclass.mjs +7 -5
  118. package/esm2022/table/table.mjs +146 -84
  119. package/esm2022/tabmenu/tabmenu.mjs +8 -6
  120. package/esm2022/tabview/tabview.mjs +18 -11
  121. package/esm2022/tag/tag.mjs +19 -7
  122. package/esm2022/tieredmenu/tieredmenu.mjs +35 -29
  123. package/esm2022/toast/toast.mjs +18 -11
  124. package/esm2022/togglebutton/togglebutton.mjs +27 -11
  125. package/esm2022/tooltip/tooltip.mjs +21 -12
  126. package/esm2022/tree/tree.mjs +42 -23
  127. package/esm2022/treeselect/treeselect.mjs +63 -18
  128. package/esm2022/treetable/treetable.mjs +288 -102
  129. package/esm2022/tristatecheckbox/tristatecheckbox.mjs +27 -10
  130. package/esm2022/virtualscroller/virtualscroller.mjs +9 -6
  131. package/fesm2022/primeng-accordion.mjs +13 -8
  132. package/fesm2022/primeng-accordion.mjs.map +1 -1
  133. package/fesm2022/primeng-animateonscroll.mjs +6 -4
  134. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  135. package/fesm2022/primeng-api.mjs +5 -2
  136. package/fesm2022/primeng-api.mjs.map +1 -1
  137. package/fesm2022/primeng-autocomplete.mjs +64 -37
  138. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  139. package/fesm2022/primeng-autofocus.mjs +12 -4
  140. package/fesm2022/primeng-autofocus.mjs.map +1 -1
  141. package/fesm2022/primeng-badge.mjs +127 -81
  142. package/fesm2022/primeng-badge.mjs.map +1 -1
  143. package/fesm2022/primeng-baseicon.mjs +4 -3
  144. package/fesm2022/primeng-baseicon.mjs.map +1 -1
  145. package/fesm2022/primeng-blockui.mjs +6 -4
  146. package/fesm2022/primeng-blockui.mjs.map +1 -1
  147. package/fesm2022/primeng-button.mjs +129 -16
  148. package/fesm2022/primeng-button.mjs.map +1 -1
  149. package/fesm2022/primeng-calendar.mjs +136 -105
  150. package/fesm2022/primeng-calendar.mjs.map +1 -1
  151. package/fesm2022/primeng-carousel.mjs +10 -6
  152. package/fesm2022/primeng-carousel.mjs.map +1 -1
  153. package/fesm2022/primeng-cascadeselect.mjs +49 -26
  154. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  155. package/fesm2022/primeng-chart.mjs +4 -3
  156. package/fesm2022/primeng-chart.mjs.map +1 -1
  157. package/fesm2022/primeng-checkbox.mjs +30 -11
  158. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  159. package/fesm2022/primeng-chip.mjs +4 -3
  160. package/fesm2022/primeng-chip.mjs.map +1 -1
  161. package/fesm2022/primeng-chips.mjs +36 -14
  162. package/fesm2022/primeng-chips.mjs.map +1 -1
  163. package/fesm2022/primeng-colorpicker.mjs +28 -10
  164. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  165. package/fesm2022/primeng-confirmdialog.mjs +23 -13
  166. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  167. package/fesm2022/primeng-confirmpopup.mjs +7 -5
  168. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  169. package/fesm2022/primeng-contextmenu.mjs +25 -14
  170. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  171. package/fesm2022/primeng-dataview.mjs +33 -18
  172. package/fesm2022/primeng-dataview.mjs.map +1 -1
  173. package/fesm2022/primeng-dialog.mjs +58 -55
  174. package/fesm2022/primeng-dialog.mjs.map +1 -1
  175. package/fesm2022/primeng-dom.mjs +21 -7
  176. package/fesm2022/primeng-dom.mjs.map +1 -1
  177. package/fesm2022/primeng-dragdrop.mjs +4 -3
  178. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  179. package/fesm2022/primeng-dropdown.mjs +68 -38
  180. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  181. package/fesm2022/primeng-dynamicdialog.mjs +58 -71
  182. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  183. package/fesm2022/primeng-editor.mjs +48 -43
  184. package/fesm2022/primeng-editor.mjs.map +1 -1
  185. package/fesm2022/primeng-fieldset.mjs +6 -4
  186. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  187. package/fesm2022/primeng-fileupload.mjs +75 -18
  188. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  189. package/fesm2022/primeng-focustrap.mjs +4 -3
  190. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  191. package/fesm2022/primeng-galleria.mjs +56 -31
  192. package/fesm2022/primeng-galleria.mjs.map +1 -1
  193. package/fesm2022/primeng-image.mjs +4 -3
  194. package/fesm2022/primeng-image.mjs.map +1 -1
  195. package/fesm2022/primeng-inplace.mjs +11 -7
  196. package/fesm2022/primeng-inplace.mjs.map +1 -1
  197. package/fesm2022/primeng-inputmask.mjs +39 -16
  198. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  199. package/fesm2022/primeng-inputnumber.mjs +62 -22
  200. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  201. package/fesm2022/primeng-inputotp.mjs +34 -15
  202. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  203. package/fesm2022/primeng-inputswitch.mjs +26 -9
  204. package/fesm2022/primeng-inputswitch.mjs.map +1 -1
  205. package/fesm2022/primeng-inputtextarea.mjs +4 -3
  206. package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
  207. package/fesm2022/primeng-keyfilter.mjs +15 -5
  208. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  209. package/fesm2022/primeng-knob.mjs +20 -11
  210. package/fesm2022/primeng-knob.mjs.map +1 -1
  211. package/fesm2022/primeng-listbox.mjs +40 -18
  212. package/fesm2022/primeng-listbox.mjs.map +1 -1
  213. package/fesm2022/primeng-megamenu.mjs +15 -9
  214. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  215. package/fesm2022/primeng-menu.mjs +10 -16
  216. package/fesm2022/primeng-menu.mjs.map +1 -1
  217. package/fesm2022/primeng-menubar.mjs +25 -14
  218. package/fesm2022/primeng-menubar.mjs.map +1 -1
  219. package/fesm2022/primeng-message.mjs +4 -3
  220. package/fesm2022/primeng-message.mjs.map +1 -1
  221. package/fesm2022/primeng-messages.mjs +14 -10
  222. package/fesm2022/primeng-messages.mjs.map +1 -1
  223. package/fesm2022/primeng-metergroup.mjs +11 -8
  224. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  225. package/fesm2022/primeng-multiselect.mjs +106 -53
  226. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  227. package/fesm2022/primeng-orderlist.mjs +15 -9
  228. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  229. package/fesm2022/primeng-organizationchart.mjs +11 -7
  230. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  231. package/fesm2022/primeng-overlaypanel.mjs +12 -7
  232. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  233. package/fesm2022/primeng-paginator.mjs +42 -12
  234. package/fesm2022/primeng-paginator.mjs.map +1 -1
  235. package/fesm2022/primeng-panel.mjs +8 -5
  236. package/fesm2022/primeng-panel.mjs.map +1 -1
  237. package/fesm2022/primeng-panelmenu.mjs +32 -15
  238. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  239. package/fesm2022/primeng-password.mjs +33 -13
  240. package/fesm2022/primeng-password.mjs.map +1 -1
  241. package/fesm2022/primeng-picklist.mjs +33 -18
  242. package/fesm2022/primeng-picklist.mjs.map +1 -1
  243. package/fesm2022/primeng-progressbar.mjs +6 -4
  244. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  245. package/fesm2022/primeng-radiobutton.mjs +24 -8
  246. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  247. package/fesm2022/primeng-rating.mjs +37 -15
  248. package/fesm2022/primeng-rating.mjs.map +1 -1
  249. package/fesm2022/primeng-scroller.mjs +1 -1
  250. package/fesm2022/primeng-scroller.mjs.map +1 -1
  251. package/fesm2022/primeng-scrollpanel.mjs +4 -3
  252. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  253. package/fesm2022/primeng-scrolltop.mjs +4 -3
  254. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  255. package/fesm2022/primeng-selectbutton.mjs +30 -11
  256. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  257. package/fesm2022/primeng-sidebar.mjs +16 -9
  258. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  259. package/fesm2022/primeng-slidemenu.mjs +39 -21
  260. package/fesm2022/primeng-slidemenu.mjs.map +1 -1
  261. package/fesm2022/primeng-slider.mjs +38 -13
  262. package/fesm2022/primeng-slider.mjs.map +1 -1
  263. package/fesm2022/primeng-speeddial.mjs +93 -73
  264. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  265. package/fesm2022/primeng-spinner.mjs +22 -12
  266. package/fesm2022/primeng-spinner.mjs.map +1 -1
  267. package/fesm2022/primeng-splitbutton.mjs +172 -20
  268. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  269. package/fesm2022/primeng-splitter.mjs +8 -5
  270. package/fesm2022/primeng-splitter.mjs.map +1 -1
  271. package/fesm2022/primeng-steps.mjs +12 -9
  272. package/fesm2022/primeng-steps.mjs.map +1 -1
  273. package/fesm2022/primeng-styleclass.mjs +6 -4
  274. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  275. package/fesm2022/primeng-table.mjs +145 -83
  276. package/fesm2022/primeng-table.mjs.map +1 -1
  277. package/fesm2022/primeng-tabmenu.mjs +7 -5
  278. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  279. package/fesm2022/primeng-tabview.mjs +17 -10
  280. package/fesm2022/primeng-tabview.mjs.map +1 -1
  281. package/fesm2022/primeng-tag.mjs +18 -6
  282. package/fesm2022/primeng-tag.mjs.map +1 -1
  283. package/fesm2022/primeng-tieredmenu.mjs +34 -28
  284. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  285. package/fesm2022/primeng-toast.mjs +17 -10
  286. package/fesm2022/primeng-toast.mjs.map +1 -1
  287. package/fesm2022/primeng-togglebutton.mjs +26 -10
  288. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  289. package/fesm2022/primeng-tooltip.mjs +20 -11
  290. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  291. package/fesm2022/primeng-tree.mjs +41 -22
  292. package/fesm2022/primeng-tree.mjs.map +1 -1
  293. package/fesm2022/primeng-treeselect.mjs +62 -17
  294. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  295. package/fesm2022/primeng-treetable.mjs +287 -101
  296. package/fesm2022/primeng-treetable.mjs.map +1 -1
  297. package/fesm2022/primeng-tristatecheckbox.mjs +26 -9
  298. package/fesm2022/primeng-tristatecheckbox.mjs.map +1 -1
  299. package/fesm2022/primeng-virtualscroller.mjs +8 -5
  300. package/fesm2022/primeng-virtualscroller.mjs.map +1 -1
  301. package/fieldset/fieldset.d.ts +2 -0
  302. package/fileupload/fileupload.d.ts +11 -0
  303. package/focustrap/focustrap.d.ts +1 -0
  304. package/galleria/galleria.d.ts +25 -0
  305. package/image/image.d.ts +1 -0
  306. package/inplace/inplace.d.ts +4 -0
  307. package/inputmask/inputmask.d.ts +20 -2
  308. package/inputnumber/inputnumber.d.ts +30 -6
  309. package/inputnumber/inputnumber.interface.d.ts +1 -1
  310. package/inputotp/inputotp.d.ts +10 -2
  311. package/inputswitch/inputswitch.d.ts +12 -2
  312. package/inputtextarea/inputtextarea.d.ts +1 -0
  313. package/keyfilter/keyfilter.d.ts +1 -0
  314. package/knob/knob.d.ts +9 -0
  315. package/listbox/listbox.d.ts +22 -2
  316. package/megamenu/megamenu.d.ts +6 -0
  317. package/menu/menu.d.ts +4 -0
  318. package/menubar/menubar.d.ts +11 -0
  319. package/message/message.d.ts +1 -0
  320. package/messages/messages.d.ts +3 -0
  321. package/metergroup/metergroup.d.ts +2 -2
  322. package/metergroup/metergroup.interface.d.ts +16 -0
  323. package/multiselect/multiselect.d.ts +37 -8
  324. package/orderlist/orderlist.d.ts +6 -0
  325. package/organizationchart/organizationchart.d.ts +4 -0
  326. package/overlaypanel/overlaypanel.d.ts +5 -0
  327. package/package.json +134 -134
  328. package/paginator/paginator.d.ts +19 -2
  329. package/panel/panel.d.ts +3 -0
  330. package/panelmenu/panelmenu.d.ts +11 -0
  331. package/password/password.d.ts +19 -6
  332. package/picklist/picklist.d.ts +11 -0
  333. package/progressbar/progressbar.d.ts +2 -0
  334. package/radiobutton/radiobutton.d.ts +11 -2
  335. package/rating/rating.d.ts +17 -6
  336. package/resources/components/calendar/calendar.css +1 -0
  337. package/resources/components/cascadeselect/cascadeselect.css +1 -0
  338. package/resources/components/rating/rating.css +2 -0
  339. package/resources/themes/arya-blue/fonts/Inter-italic.var.woff2 +0 -0
  340. package/resources/themes/arya-blue/fonts/Inter-roman.var.woff2 +0 -0
  341. package/resources/themes/arya-blue/theme.css +420 -584
  342. package/resources/themes/arya-green/fonts/Inter-italic.var.woff2 +0 -0
  343. package/resources/themes/arya-green/fonts/Inter-roman.var.woff2 +0 -0
  344. package/resources/themes/arya-green/theme.css +420 -584
  345. package/resources/themes/arya-orange/fonts/Inter-italic.var.woff2 +0 -0
  346. package/resources/themes/arya-orange/fonts/Inter-roman.var.woff2 +0 -0
  347. package/resources/themes/arya-orange/theme.css +420 -584
  348. package/resources/themes/arya-purple/fonts/Inter-italic.var.woff2 +0 -0
  349. package/resources/themes/arya-purple/fonts/Inter-roman.var.woff2 +0 -0
  350. package/resources/themes/arya-purple/theme.css +420 -584
  351. package/resources/themes/aura-dark-amber/fonts/Inter-italic.var.woff2 +0 -0
  352. package/resources/themes/aura-dark-amber/fonts/Inter-roman.var.woff2 +0 -0
  353. package/resources/themes/aura-dark-amber/theme.css +7658 -0
  354. package/resources/themes/aura-dark-blue/fonts/Inter-italic.var.woff2 +0 -0
  355. package/resources/themes/aura-dark-blue/fonts/Inter-roman.var.woff2 +0 -0
  356. package/resources/themes/aura-dark-blue/theme.css +7658 -0
  357. package/resources/themes/aura-dark-cyan/fonts/Inter-italic.var.woff2 +0 -0
  358. package/resources/themes/aura-dark-cyan/fonts/Inter-roman.var.woff2 +0 -0
  359. package/resources/themes/aura-dark-cyan/theme.css +7658 -0
  360. package/resources/themes/aura-dark-green/fonts/Inter-italic.var.woff2 +0 -0
  361. package/resources/themes/aura-dark-green/fonts/Inter-roman.var.woff2 +0 -0
  362. package/resources/themes/aura-dark-green/theme.css +7658 -0
  363. package/resources/themes/aura-dark-indigo/fonts/Inter-italic.var.woff2 +0 -0
  364. package/resources/themes/aura-dark-indigo/fonts/Inter-roman.var.woff2 +0 -0
  365. package/resources/themes/aura-dark-indigo/theme.css +7658 -0
  366. package/resources/themes/aura-dark-lime/fonts/Inter-italic.var.woff2 +0 -0
  367. package/resources/themes/aura-dark-lime/fonts/Inter-roman.var.woff2 +0 -0
  368. package/resources/themes/aura-dark-lime/theme.css +7658 -0
  369. package/resources/themes/aura-dark-noir/fonts/Inter-italic.var.woff2 +0 -0
  370. package/resources/themes/aura-dark-noir/fonts/Inter-roman.var.woff2 +0 -0
  371. package/resources/themes/aura-dark-noir/theme.css +7658 -0
  372. package/resources/themes/aura-dark-pink/fonts/Inter-italic.var.woff2 +0 -0
  373. package/resources/themes/aura-dark-pink/fonts/Inter-roman.var.woff2 +0 -0
  374. package/resources/themes/aura-dark-pink/theme.css +7658 -0
  375. package/resources/themes/aura-dark-purple/fonts/Inter-italic.var.woff2 +0 -0
  376. package/resources/themes/aura-dark-purple/fonts/Inter-roman.var.woff2 +0 -0
  377. package/resources/themes/aura-dark-purple/theme.css +7658 -0
  378. package/resources/themes/aura-dark-teal/fonts/Inter-italic.var.woff2 +0 -0
  379. package/resources/themes/aura-dark-teal/fonts/Inter-roman.var.woff2 +0 -0
  380. package/resources/themes/aura-dark-teal/theme.css +7658 -0
  381. package/resources/themes/aura-light-amber/fonts/Inter-italic.var.woff2 +0 -0
  382. package/resources/themes/aura-light-amber/fonts/Inter-roman.var.woff2 +0 -0
  383. package/resources/themes/aura-light-amber/theme.css +7660 -0
  384. package/resources/themes/aura-light-blue/fonts/Inter-italic.var.woff2 +0 -0
  385. package/resources/themes/aura-light-blue/fonts/Inter-roman.var.woff2 +0 -0
  386. package/resources/themes/aura-light-blue/theme.css +7660 -0
  387. package/resources/themes/aura-light-cyan/fonts/Inter-italic.var.woff2 +0 -0
  388. package/resources/themes/aura-light-cyan/fonts/Inter-roman.var.woff2 +0 -0
  389. package/resources/themes/aura-light-cyan/theme.css +7660 -0
  390. package/resources/themes/aura-light-green/fonts/Inter-italic.var.woff2 +0 -0
  391. package/resources/themes/aura-light-green/fonts/Inter-roman.var.woff2 +0 -0
  392. package/resources/themes/aura-light-green/theme.css +7660 -0
  393. package/resources/themes/aura-light-indigo/fonts/Inter-italic.var.woff2 +0 -0
  394. package/resources/themes/aura-light-indigo/fonts/Inter-roman.var.woff2 +0 -0
  395. package/resources/themes/aura-light-indigo/theme.css +7660 -0
  396. package/resources/themes/aura-light-lime/fonts/Inter-italic.var.woff2 +0 -0
  397. package/resources/themes/aura-light-lime/fonts/Inter-roman.var.woff2 +0 -0
  398. package/resources/themes/aura-light-lime/theme.css +7660 -0
  399. package/resources/themes/aura-light-noir/fonts/Inter-italic.var.woff2 +0 -0
  400. package/resources/themes/aura-light-noir/fonts/Inter-roman.var.woff2 +0 -0
  401. package/resources/themes/aura-light-noir/theme.css +7668 -0
  402. package/resources/themes/aura-light-pink/fonts/Inter-italic.var.woff2 +0 -0
  403. package/resources/themes/aura-light-pink/fonts/Inter-roman.var.woff2 +0 -0
  404. package/resources/themes/aura-light-pink/theme.css +7660 -0
  405. package/resources/themes/aura-light-purple/fonts/Inter-italic.var.woff2 +0 -0
  406. package/resources/themes/aura-light-purple/fonts/Inter-roman.var.woff2 +0 -0
  407. package/resources/themes/aura-light-purple/theme.css +7660 -0
  408. package/resources/themes/aura-light-teal/fonts/Inter-italic.var.woff2 +0 -0
  409. package/resources/themes/aura-light-teal/fonts/Inter-roman.var.woff2 +0 -0
  410. package/resources/themes/aura-light-teal/theme.css +7660 -0
  411. package/resources/themes/bootstrap4-dark-blue/theme.css +421 -584
  412. package/resources/themes/bootstrap4-dark-purple/theme.css +421 -584
  413. package/resources/themes/bootstrap4-light-blue/theme.css +421 -584
  414. package/resources/themes/bootstrap4-light-purple/theme.css +421 -584
  415. package/resources/themes/fluent-light/theme.css +447 -595
  416. package/resources/themes/lara-dark-amber/theme.css +649 -448
  417. package/resources/themes/lara-dark-blue/theme.css +485 -586
  418. package/resources/themes/lara-dark-cyan/theme.css +649 -448
  419. package/resources/themes/lara-dark-green/theme.css +649 -448
  420. package/resources/themes/lara-dark-indigo/theme.css +485 -586
  421. package/resources/themes/lara-dark-pink/theme.css +649 -448
  422. package/resources/themes/lara-dark-purple/theme.css +485 -586
  423. package/resources/themes/lara-dark-teal/theme.css +485 -586
  424. package/resources/themes/lara-light-amber/theme.css +619 -467
  425. package/resources/themes/lara-light-blue/theme.css +441 -594
  426. package/resources/themes/lara-light-cyan/theme.css +619 -467
  427. package/resources/themes/lara-light-green/theme.css +619 -467
  428. package/resources/themes/lara-light-indigo/theme.css +441 -594
  429. package/resources/themes/lara-light-pink/theme.css +619 -467
  430. package/resources/themes/lara-light-purple/theme.css +441 -594
  431. package/resources/themes/lara-light-teal/theme.css +441 -594
  432. package/resources/themes/luna-amber/theme.css +434 -597
  433. package/resources/themes/luna-blue/theme.css +434 -597
  434. package/resources/themes/luna-green/theme.css +434 -597
  435. package/resources/themes/luna-pink/theme.css +434 -597
  436. package/resources/themes/md-dark-deeppurple/theme.css +760 -742
  437. package/resources/themes/md-dark-indigo/theme.css +760 -742
  438. package/resources/themes/md-light-deeppurple/theme.css +635 -617
  439. package/resources/themes/md-light-indigo/theme.css +635 -617
  440. package/resources/themes/mdc-dark-deeppurple/theme.css +760 -742
  441. package/resources/themes/mdc-dark-indigo/theme.css +760 -742
  442. package/resources/themes/mdc-light-deeppurple/theme.css +635 -617
  443. package/resources/themes/mdc-light-indigo/theme.css +635 -617
  444. package/resources/themes/mira/theme.css +458 -591
  445. package/resources/themes/nano/theme.css +418 -584
  446. package/resources/themes/nova/theme.css +422 -584
  447. package/resources/themes/nova-accent/theme.css +419 -584
  448. package/resources/themes/nova-alt/theme.css +422 -584
  449. package/resources/themes/rhea/theme.css +419 -584
  450. package/resources/themes/saga-blue/theme.css +420 -584
  451. package/resources/themes/saga-green/theme.css +420 -584
  452. package/resources/themes/saga-orange/theme.css +420 -584
  453. package/resources/themes/saga-purple/theme.css +420 -584
  454. package/resources/themes/soho-dark/theme.css +454 -615
  455. package/resources/themes/soho-light/theme.css +430 -589
  456. package/resources/themes/tailwind-light/theme.css +463 -614
  457. package/resources/themes/vela-blue/theme.css +420 -584
  458. package/resources/themes/vela-green/theme.css +420 -584
  459. package/resources/themes/vela-orange/theme.css +420 -584
  460. package/resources/themes/vela-purple/theme.css +420 -584
  461. package/resources/themes/viva-dark/theme.css +444 -589
  462. package/resources/themes/viva-light/theme.css +444 -589
  463. package/scrollpanel/scrollpanel.d.ts +1 -0
  464. package/scrolltop/scrolltop.d.ts +1 -0
  465. package/selectbutton/selectbutton.d.ts +14 -2
  466. package/sidebar/sidebar.d.ts +7 -0
  467. package/slidemenu/slidemenu.d.ts +20 -2
  468. package/slider/slider.d.ts +16 -2
  469. package/speeddial/speeddial.d.ts +7 -0
  470. package/speeddial/speeddial.interface.d.ts +17 -0
  471. package/spinner/spinner.d.ts +10 -0
  472. package/splitbutton/splitbutton.d.ts +81 -8
  473. package/splitter/splitter.d.ts +3 -0
  474. package/steps/steps.d.ts +3 -0
  475. package/styleclass/styleclass.d.ts +2 -0
  476. package/table/table.d.ts +65 -1
  477. package/tabmenu/tabmenu.d.ts +2 -0
  478. package/tabview/tabview.d.ts +7 -0
  479. package/tag/tag.d.ts +11 -2
  480. package/tieredmenu/tieredmenu.d.ts +14 -3
  481. package/toast/toast.d.ts +7 -0
  482. package/togglebutton/togglebutton.d.ts +11 -2
  483. package/tooltip/tooltip.d.ts +9 -0
  484. package/tree/tree.d.ts +19 -0
  485. package/treeselect/treeselect.d.ts +36 -6
  486. package/treetable/treetable.d.ts +61 -4
  487. package/tristatecheckbox/tristatecheckbox.d.ts +14 -4
  488. package/virtualscroller/virtualscroller.d.ts +3 -0
@@ -1,14 +1,16 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, NgModule, Output, ViewChild, ViewEncapsulation, signal } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, NgModule, Output, ViewChild, ViewEncapsulation, booleanAttribute, numberAttribute, signal } from '@angular/core';
3
3
  import { PrimeTemplate } from 'primeng/api';
4
4
  import { ButtonModule } from 'primeng/button';
5
5
  import { ChevronDownIcon } from 'primeng/icons/chevrondown';
6
6
  import { TieredMenuModule } from 'primeng/tieredmenu';
7
7
  import { UniqueComponentId } from 'primeng/utils';
8
+ import { AutoFocusModule } from 'primeng/autofocus';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "@angular/common";
10
11
  import * as i2 from "primeng/button";
11
12
  import * as i3 from "primeng/tieredmenu";
13
+ import * as i4 from "primeng/autofocus";
12
14
  /**
13
15
  * SplitButton groups a set of commands in an overlay with a default command.
14
16
  * @group Components
@@ -19,6 +21,41 @@ export class SplitButton {
19
21
  * @group Props
20
22
  */
21
23
  model;
24
+ /**
25
+ * Defines the style of the button.
26
+ * @group Props
27
+ */
28
+ severity;
29
+ /**
30
+ * Add a shadow to indicate elevation.
31
+ * @group Props
32
+ */
33
+ raised = false;
34
+ /**
35
+ * Add a circular border radius to the button.
36
+ * @group Props
37
+ */
38
+ rounded = false;
39
+ /**
40
+ * Add a textual class to the button without a background initially.
41
+ * @group Props
42
+ */
43
+ text = false;
44
+ /**
45
+ * Add a border class without a background initially.
46
+ * @group Props
47
+ */
48
+ outlined = false;
49
+ /**
50
+ * Defines the size of the button.
51
+ * @group Props
52
+ */
53
+ size = null;
54
+ /**
55
+ * Add a plain textual class to the button without a background initially.
56
+ * @group Props
57
+ */
58
+ plain = false;
22
59
  /**
23
60
  * Name of the icon.
24
61
  * @group Props
@@ -58,11 +95,6 @@ export class SplitButton {
58
95
  * When present, it specifies that the element should be disabled.
59
96
  * @group Props
60
97
  */
61
- disabled;
62
- /**
63
- * Index of the element in tabbing order.
64
- * @group Prop
65
- */
66
98
  tabindex;
67
99
  /**
68
100
  * Target element to attach the overlay, valid values are "body" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]="mydiv" for a div element having #mydiv as variable name).
@@ -97,6 +129,11 @@ export class SplitButton {
97
129
  * Menu Button Props
98
130
  */
99
131
  menuButtonProps;
132
+ /**
133
+ * When present, it specifies that the component should automatically get focus on load.
134
+ * @group Props
135
+ */
136
+ autofocus;
100
137
  /**
101
138
  * Callback to invoke when default command button is clicked.
102
139
  * @param {MouseEvent} event - Mouse event.
@@ -108,6 +145,49 @@ export class SplitButton {
108
145
  * @param {MouseEvent} event - Mouse event.
109
146
  * @group Emits
110
147
  */
148
+ _disabled;
149
+ set disabled(v) {
150
+ this._disabled = v;
151
+ this._buttonDisabled = v;
152
+ this.menuButtonDisabled = v;
153
+ }
154
+ get disabled() {
155
+ return this._disabled;
156
+ }
157
+ /**
158
+ * Index of the element in tabbing order.
159
+ * @group Prop
160
+ */
161
+ /**
162
+ * When present, it specifies that the menu button element should be disabled.
163
+ * @group Props
164
+ */
165
+ _menuButtonDisabled;
166
+ set menuButtonDisabled(v) {
167
+ if (this.disabled) {
168
+ this._menuButtonDisabled = this.disabled;
169
+ }
170
+ else
171
+ this._menuButtonDisabled = v;
172
+ }
173
+ get menuButtonDisabled() {
174
+ return this._menuButtonDisabled;
175
+ }
176
+ /**
177
+ * When present, it specifies that the button element should be disabled.
178
+ * @group Props
179
+ */
180
+ _buttonDisabled;
181
+ set buttonDisabled(v) {
182
+ if (this.disabled) {
183
+ this.buttonDisabled = this.disabled;
184
+ }
185
+ else
186
+ this._buttonDisabled = v;
187
+ }
188
+ get buttonDisabled() {
189
+ return this._buttonDisabled;
190
+ }
111
191
  onDropdownClick = new EventEmitter();
112
192
  containerViewChild;
113
193
  buttonViewChild;
@@ -135,6 +215,17 @@ export class SplitButton {
135
215
  }
136
216
  });
137
217
  }
218
+ get containerClass() {
219
+ const cls = {
220
+ 'p-splitbutton p-component': true,
221
+ 'p-button-raised': this.raised,
222
+ 'p-button-rounded': this.rounded,
223
+ 'p-button-outlined': this.outlined,
224
+ 'p-button-text': this.text,
225
+ [`p-button-${this.size === 'small' ? 'sm' : 'lg'}`]: this.size
226
+ };
227
+ return { ...cls };
228
+ }
138
229
  onDefaultButtonClick(event) {
139
230
  this.onClick.emit(event);
140
231
  this.menu.hide();
@@ -151,19 +242,25 @@ export class SplitButton {
151
242
  }
152
243
  }
153
244
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SplitButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
154
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: SplitButton, selector: "p-splitButton", inputs: { model: "model", icon: "icon", iconPos: "iconPos", label: "label", style: "style", styleClass: "styleClass", menuStyle: "menuStyle", menuStyleClass: "menuStyleClass", disabled: "disabled", tabindex: "tabindex", appendTo: "appendTo", dir: "dir", expandAriaLabel: "expandAriaLabel", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", buttonProps: "buttonProps", menuButtonProps: "menuButtonProps" }, outputs: { onClick: "onClick", onDropdownClick: "onDropdownClick" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "buttonViewChild", first: true, predicate: ["defaultbtn"], descendants: true }, { propertyName: "menu", first: true, predicate: ["menu"], descendants: true }], ngImport: i0, template: `
155
- <div #container [ngClass]="'p-splitbutton p-component'" [ngStyle]="style" [class]="styleClass">
245
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.1", type: SplitButton, selector: "p-splitButton", inputs: { model: "model", severity: "severity", raised: ["raised", "raised", booleanAttribute], rounded: ["rounded", "rounded", booleanAttribute], text: ["text", "text", booleanAttribute], outlined: ["outlined", "outlined", booleanAttribute], size: "size", plain: ["plain", "plain", booleanAttribute], icon: "icon", iconPos: "iconPos", label: "label", style: "style", styleClass: "styleClass", menuStyle: "menuStyle", menuStyleClass: "menuStyleClass", tabindex: ["tabindex", "tabindex", numberAttribute], appendTo: "appendTo", dir: "dir", expandAriaLabel: "expandAriaLabel", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", buttonProps: "buttonProps", menuButtonProps: "menuButtonProps", autofocus: ["autofocus", "autofocus", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], menuButtonDisabled: "menuButtonDisabled", buttonDisabled: "buttonDisabled" }, outputs: { onClick: "onClick", onDropdownClick: "onDropdownClick" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "buttonViewChild", first: true, predicate: ["defaultbtn"], descendants: true }, { propertyName: "menu", first: true, predicate: ["menu"], descendants: true }], ngImport: i0, template: `
246
+ <div #container [ngClass]="containerClass" [class]="styleClass" [ngStyle]="style">
156
247
  <ng-container *ngIf="contentTemplate; else defaultButton">
157
248
  <button
158
249
  class="p-splitbutton-defaultbutton"
159
250
  type="button"
160
251
  pButton
252
+ [severity]="severity"
253
+ [text]="text"
254
+ [outlined]="outlined"
255
+ [size]="size"
161
256
  [icon]="icon"
162
257
  [iconPos]="iconPos"
163
258
  (click)="onDefaultButtonClick($event)"
164
259
  [disabled]="disabled"
165
260
  [attr.tabindex]="tabindex"
166
261
  [attr.aria-label]="buttonProps?.['aria-label'] || label"
262
+ pAutoFocus
263
+ [autofocus]="autofocus"
167
264
  >
168
265
  <ng-container *ngTemplateOutlet="contentTemplate"></ng-container>
169
266
  </button>
@@ -174,22 +271,32 @@ export class SplitButton {
174
271
  class="p-splitbutton-defaultbutton"
175
272
  type="button"
176
273
  pButton
274
+ [severity]="severity"
275
+ [text]="text"
276
+ [outlined]="outlined"
277
+ [size]="size"
177
278
  [icon]="icon"
178
279
  [iconPos]="iconPos"
179
280
  [label]="label"
180
281
  (click)="onDefaultButtonClick($event)"
181
- [disabled]="disabled"
282
+ [disabled]="buttonDisabled"
182
283
  [attr.tabindex]="tabindex"
183
284
  [attr.aria-label]="buttonProps?.['aria-label']"
285
+ pAutoFocus
286
+ [autofocus]="autofocus"
184
287
  ></button>
185
288
  </ng-template>
186
289
  <button
187
290
  type="button"
188
291
  pButton
292
+ [size]="size"
293
+ [severity]="severity"
294
+ [text]="text"
295
+ [outlined]="outlined"
189
296
  class="p-splitbutton-menubutton p-button-icon-only"
190
297
  (click)="onDropdownButtonClick($event)"
191
298
  (keydown)="onDropdownButtonKeydown($event)"
192
- [disabled]="disabled"
299
+ [disabled]="menuButtonDisabled"
193
300
  [attr.aria-label]="menuButtonProps?.['aria-label'] || expandAriaLabel"
194
301
  [attr.aria-haspopup]="menuButtonProps?.['aria-haspopup'] || true"
195
302
  [attr.aria-expanded]="menuButtonProps?.['aria-expanded'] || isExpanded()"
@@ -210,23 +317,29 @@ export class SplitButton {
210
317
  [hideTransitionOptions]="hideTransitionOptions"
211
318
  ></p-tieredMenu>
212
319
  </div>
213
- `, isInline: true, styles: ["@layer primeng{.p-splitbutton{display:inline-flex;position:relative}.p-splitbutton .p-splitbutton-defaultbutton,.p-splitbutton.p-button-rounded>.p-splitbutton-defaultbutton.p-button,.p-splitbutton.p-button-outlined>.p-splitbutton-defaultbutton.p-button{flex:1 1 auto;border-top-right-radius:0;border-bottom-right-radius:0;border-right:0 none}.p-splitbutton-menubutton,.p-splitbutton.p-button-rounded>.p-splitbutton-menubutton.p-button,.p-splitbutton.p-button-outlined>.p-splitbutton-menubutton.p-button{display:flex;align-items:center;justify-content:center;border-top-left-radius:0;border-bottom-left-radius:0}.p-splitbutton .p-menu{min-width:100%}.p-fluid .p-splitbutton{display:flex}}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i1.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(() => i2.ButtonDirective), selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i0.forwardRef(() => i3.TieredMenu), selector: "p-tieredMenu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "autoDisplay", "showTransitionOptions", "hideTransitionOptions", "id", "ariaLabel", "ariaLabelledBy", "disabled", "tabindex"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i0.forwardRef(() => ChevronDownIcon), selector: "ChevronDownIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
320
+ `, isInline: true, styles: ["@layer primeng{.p-splitbutton{display:inline-flex;position:relative}.p-splitbutton .p-splitbutton-defaultbutton,.p-splitbutton.p-button-rounded>.p-splitbutton-defaultbutton.p-button,.p-splitbutton.p-button-outlined>.p-splitbutton-defaultbutton.p-button{flex:1 1 auto;border-top-right-radius:0;border-bottom-right-radius:0;border-right:0 none}.p-splitbutton-menubutton,.p-splitbutton.p-button-rounded>.p-splitbutton-menubutton.p-button,.p-splitbutton.p-button-outlined>.p-splitbutton-menubutton.p-button{display:flex;align-items:center;justify-content:center;border-top-left-radius:0;border-bottom-left-radius:0}.p-splitbutton .p-menu{min-width:100%}.p-fluid .p-splitbutton{display:flex}}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i1.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(() => i2.ButtonDirective), selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: i0.forwardRef(() => i3.TieredMenu), selector: "p-tieredMenu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "autoDisplay", "showTransitionOptions", "hideTransitionOptions", "id", "ariaLabel", "ariaLabelledBy", "disabled", "tabindex"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i0.forwardRef(() => i4.AutoFocus), selector: "[pAutoFocus]", inputs: ["autofocus"] }, { kind: "component", type: i0.forwardRef(() => ChevronDownIcon), selector: "ChevronDownIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
214
321
  }
215
322
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SplitButton, decorators: [{
216
323
  type: Component,
217
324
  args: [{ selector: 'p-splitButton', template: `
218
- <div #container [ngClass]="'p-splitbutton p-component'" [ngStyle]="style" [class]="styleClass">
325
+ <div #container [ngClass]="containerClass" [class]="styleClass" [ngStyle]="style">
219
326
  <ng-container *ngIf="contentTemplate; else defaultButton">
220
327
  <button
221
328
  class="p-splitbutton-defaultbutton"
222
329
  type="button"
223
330
  pButton
331
+ [severity]="severity"
332
+ [text]="text"
333
+ [outlined]="outlined"
334
+ [size]="size"
224
335
  [icon]="icon"
225
336
  [iconPos]="iconPos"
226
337
  (click)="onDefaultButtonClick($event)"
227
338
  [disabled]="disabled"
228
339
  [attr.tabindex]="tabindex"
229
340
  [attr.aria-label]="buttonProps?.['aria-label'] || label"
341
+ pAutoFocus
342
+ [autofocus]="autofocus"
230
343
  >
231
344
  <ng-container *ngTemplateOutlet="contentTemplate"></ng-container>
232
345
  </button>
@@ -237,22 +350,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
237
350
  class="p-splitbutton-defaultbutton"
238
351
  type="button"
239
352
  pButton
353
+ [severity]="severity"
354
+ [text]="text"
355
+ [outlined]="outlined"
356
+ [size]="size"
240
357
  [icon]="icon"
241
358
  [iconPos]="iconPos"
242
359
  [label]="label"
243
360
  (click)="onDefaultButtonClick($event)"
244
- [disabled]="disabled"
361
+ [disabled]="buttonDisabled"
245
362
  [attr.tabindex]="tabindex"
246
363
  [attr.aria-label]="buttonProps?.['aria-label']"
364
+ pAutoFocus
365
+ [autofocus]="autofocus"
247
366
  ></button>
248
367
  </ng-template>
249
368
  <button
250
369
  type="button"
251
370
  pButton
371
+ [size]="size"
372
+ [severity]="severity"
373
+ [text]="text"
374
+ [outlined]="outlined"
252
375
  class="p-splitbutton-menubutton p-button-icon-only"
253
376
  (click)="onDropdownButtonClick($event)"
254
377
  (keydown)="onDropdownButtonKeydown($event)"
255
- [disabled]="disabled"
378
+ [disabled]="menuButtonDisabled"
256
379
  [attr.aria-label]="menuButtonProps?.['aria-label'] || expandAriaLabel"
257
380
  [attr.aria-haspopup]="menuButtonProps?.['aria-haspopup'] || true"
258
381
  [attr.aria-expanded]="menuButtonProps?.['aria-expanded'] || isExpanded()"
@@ -278,6 +401,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
278
401
  }, styles: ["@layer primeng{.p-splitbutton{display:inline-flex;position:relative}.p-splitbutton .p-splitbutton-defaultbutton,.p-splitbutton.p-button-rounded>.p-splitbutton-defaultbutton.p-button,.p-splitbutton.p-button-outlined>.p-splitbutton-defaultbutton.p-button{flex:1 1 auto;border-top-right-radius:0;border-bottom-right-radius:0;border-right:0 none}.p-splitbutton-menubutton,.p-splitbutton.p-button-rounded>.p-splitbutton-menubutton.p-button,.p-splitbutton.p-button-outlined>.p-splitbutton-menubutton.p-button{display:flex;align-items:center;justify-content:center;border-top-left-radius:0;border-bottom-left-radius:0}.p-splitbutton .p-menu{min-width:100%}.p-fluid .p-splitbutton{display:flex}}\n"] }]
279
402
  }], propDecorators: { model: [{
280
403
  type: Input
404
+ }], severity: [{
405
+ type: Input
406
+ }], raised: [{
407
+ type: Input,
408
+ args: [{ transform: booleanAttribute }]
409
+ }], rounded: [{
410
+ type: Input,
411
+ args: [{ transform: booleanAttribute }]
412
+ }], text: [{
413
+ type: Input,
414
+ args: [{ transform: booleanAttribute }]
415
+ }], outlined: [{
416
+ type: Input,
417
+ args: [{ transform: booleanAttribute }]
418
+ }], size: [{
419
+ type: Input
420
+ }], plain: [{
421
+ type: Input,
422
+ args: [{ transform: booleanAttribute }]
281
423
  }], icon: [{
282
424
  type: Input
283
425
  }], iconPos: [{
@@ -292,10 +434,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
292
434
  type: Input
293
435
  }], menuStyleClass: [{
294
436
  type: Input
295
- }], disabled: [{
296
- type: Input
297
437
  }], tabindex: [{
298
- type: Input
438
+ type: Input,
439
+ args: [{ transform: numberAttribute }]
299
440
  }], appendTo: [{
300
441
  type: Input
301
442
  }], dir: [{
@@ -310,8 +451,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
310
451
  type: Input
311
452
  }], menuButtonProps: [{
312
453
  type: Input
454
+ }], autofocus: [{
455
+ type: Input,
456
+ args: [{ transform: booleanAttribute }]
313
457
  }], onClick: [{
314
458
  type: Output
459
+ }], disabled: [{
460
+ type: Input,
461
+ args: [{ transform: booleanAttribute }]
462
+ }], menuButtonDisabled: [{
463
+ type: Input,
464
+ args: ['menuButtonDisabled']
465
+ }], buttonDisabled: [{
466
+ type: Input
315
467
  }], onDropdownClick: [{
316
468
  type: Output
317
469
  }], containerViewChild: [{
@@ -329,15 +481,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
329
481
  }] } });
330
482
  export class SplitButtonModule {
331
483
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SplitButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
332
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: SplitButtonModule, declarations: [SplitButton], imports: [CommonModule, ButtonModule, TieredMenuModule, ChevronDownIcon], exports: [SplitButton, ButtonModule, TieredMenuModule] });
333
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SplitButtonModule, imports: [CommonModule, ButtonModule, TieredMenuModule, ChevronDownIcon, ButtonModule, TieredMenuModule] });
484
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: SplitButtonModule, declarations: [SplitButton], imports: [CommonModule, ButtonModule, TieredMenuModule, AutoFocusModule, ChevronDownIcon], exports: [SplitButton, ButtonModule, TieredMenuModule] });
485
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SplitButtonModule, imports: [CommonModule, ButtonModule, TieredMenuModule, AutoFocusModule, ChevronDownIcon, ButtonModule, TieredMenuModule] });
334
486
  }
335
487
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SplitButtonModule, decorators: [{
336
488
  type: NgModule,
337
489
  args: [{
338
- imports: [CommonModule, ButtonModule, TieredMenuModule, ChevronDownIcon],
490
+ imports: [CommonModule, ButtonModule, TieredMenuModule, AutoFocusModule, ChevronDownIcon],
339
491
  exports: [SplitButton, ButtonModule, TieredMenuModule],
340
492
  declarations: [SplitButton]
341
493
  }]
342
494
  }] });
343
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXRidXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvc3BsaXRidXR0b24vc3BsaXRidXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBMEIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyTSxPQUFPLEVBQVksYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFjLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQUlsRDs7O0dBR0c7QUFzRUgsTUFBTSxPQUFPLFdBQVc7SUFDcEI7OztPQUdHO0lBQ00sS0FBSyxDQUF5QjtJQUN2Qzs7O09BR0c7SUFDTSxJQUFJLENBQXFCO0lBQ2xDOzs7T0FHRztJQUNNLE9BQU8sR0FBNEIsTUFBTSxDQUFDO0lBQ25EOzs7T0FHRztJQUNNLEtBQUssQ0FBcUI7SUFDbkM7OztPQUdHO0lBQ00sS0FBSyxDQUE4QztJQUM1RDs7O09BR0c7SUFDTSxVQUFVLENBQXFCO0lBQ3hDOzs7T0FHRztJQUNNLFNBQVMsQ0FBOEM7SUFDaEU7OztPQUdHO0lBQ00sY0FBYyxDQUFxQjtJQUM1Qzs7O09BR0c7SUFDTSxRQUFRLENBQXNCO0lBQ3ZDOzs7T0FHRztJQUNNLFFBQVEsQ0FBcUI7SUFDdEM7OztPQUdHO0lBQ00sUUFBUSxD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QVcsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ3RELFlBQVksRUFBRSxDQUFDLFdBQVcsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ01vZHVsZSwgT3V0cHV0LCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lbnVJdGVtLCBQcmltZVRlbXBsYXRlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgQ2hldnJvbkRvd25JY29uIH0gZnJvbSAncHJpbWVuZy9pY29ucy9jaGV2cm9uZG93bic7XG5pbXBvcnQgeyBUaWVyZWRNZW51LCBUaWVyZWRNZW51TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90aWVyZWRtZW51JztcbmltcG9ydCB7IFVuaXF1ZUNvbXBvbmVudElkIH0gZnJvbSAncHJpbWVuZy91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25Qcm9wcywgTWVudUJ1dHRvblByb3BzIH0gZnJvbSAnLi9zcGxpdGJ1dHRvbi5pbnRlcmZhY2UnO1xuXG50eXBlIFNwbGl0QnV0dG9uSWNvblBvc2l0aW9uID0gJ2xlZnQnIHwgJ3JpZ2h0Jztcbi8qKlxuICogU3BsaXRCdXR0b24gZ3JvdXBzIGEgc2V0IG9mIGNvbW1hbmRzIGluIGFuIG92ZXJsYXkgd2l0aCBhIGRlZmF1bHQgY29tbWFuZC5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zcGxpdEJ1dHRvbicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiAjY29udGFpbmVyIFtuZ0NsYXNzXT1cIidwLXNwbGl0YnV0dG9uIHAtY29tcG9uZW50J1wiIFtuZ1N0eWxlXT1cInN0eWxlXCIgW2NsYXNzXT1cInN0eWxlQ2xhc3NcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50VGVtcGxhdGU7IGVsc2UgZGVmYXVsdEJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLXNwbGl0YnV0dG9uLWRlZmF1bHRidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJpY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25Qb3NdPVwiaWNvblBvc1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRlZmF1bHRCdXR0b25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvblByb3BzPy5bJ2FyaWEtbGFiZWwnXSB8fCBsYWJlbFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICNkZWZhdWx0YnRuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1zcGxpdGJ1dHRvbi1kZWZhdWx0YnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uUG9zXT1cImljb25Qb3NcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25EZWZhdWx0QnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidXR0b25Qcm9wcz8uWydhcmlhLWxhYmVsJ11cIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC1zcGxpdGJ1dHRvbi1tZW51YnV0dG9uIHAtYnV0dG9uLWljb24tb25seVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRHJvcGRvd25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbkRyb3Bkb3duQnV0dG9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibWVudUJ1dHRvblByb3BzPy5bJ2FyaWEtbGFiZWwnXSB8fCBleHBhbmRBcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwibWVudUJ1dHRvblByb3BzPy5bJ2FyaWEtaGFzcG9wdXAnXSB8fCB0cnVlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm1lbnVCdXR0b25Qcm9wcz8uWydhcmlhLWV4cGFuZGVkJ10gfHwgaXNFeHBhbmRlZCgpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIm1lbnVCdXR0b25Qcm9wcz8uWydhcmlhLWNvbnRyb2xzJ10gfHwgYXJpYUlkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q2hldnJvbkRvd25JY29uICpuZ0lmPVwiIWRyb3Bkb3duSWNvblRlbXBsYXRlXCIgLz5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkcm9wZG93bkljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxwLXRpZXJlZE1lbnVcbiAgICAgICAgICAgICAgICBbaWRdPVwiYXJpYUlkXCJcbiAgICAgICAgICAgICAgICAjbWVudVxuICAgICAgICAgICAgICAgIFtwb3B1cF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbbW9kZWxdPVwibW9kZWxcIlxuICAgICAgICAgICAgICAgIFtzdHlsZV09XCJtZW51U3R5bGVcIlxuICAgICAgICAgICAgICAgIFtzdHlsZUNsYXNzXT1cIm1lbnVTdHlsZUNsYXNzXCJcbiAgICAgICAgICAgICAgICBbYXBwZW5kVG9dPVwiYXBwZW5kVG9cIlxuICAgICAgICAgICAgICAgIFtzaG93VHJhbnNpdGlvbk9wdGlvbnNdPVwic2hvd1RyYW5zaXRpb25PcHRpb25zXCJcbiAgICAgICAgICAgICAgICBbaGlkZVRyYW5zaXRpb25PcHRpb25zXT1cImhpZGVUcmFuc2l0aW9uT3B0aW9uc1wiXG4gICAgICAgICAgICA+PC9wLXRpZXJlZE1lbnU+XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdHlsZVVybHM6IFsnLi9zcGxpdGJ1dHRvbi5jc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAncC1lbGVtZW50J1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgU3BsaXRCdXR0b24ge1xuICAgIC8qKlxuICAgICAqIE1lbnVNb2RlbCBpbnN0YW5jZSB0byBkZWZpbmUgdGhlIG92ZXJsYXkgaXRlbXMuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbW9kZWw6IE1lbnVJdGVtW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgaWNvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIGljb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaWNvblBvczogU3BsaXRCdXR0b25JY29uUG9zaXRpb24gPSAnbGVmdCc7XG4gICAgLyoqXG4gICAgICogVGV4dCBvZiB0aGUgYnV0dG9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIENsYXNzIG9mIHRoZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIG92ZXJsYXkgbWVudS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBtZW51U3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgdGhlIG92ZXJsYXkgbWVudS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBtZW51U3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdoZW4gcHJlc2VudCwgaXQgc3BlY2lmaWVzIHRoYXQgdGhlIGVsZW1lbnQgc2hvdWxkIGJlIGRpc2FibGVkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEluZGV4IG9mIHRoZSBlbGVtZW50IGluIHRhYmJpbmcgb3JkZXIuXG4gICAgICogQGdyb3VwIFByb3BcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0YWJpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqICBUYXJnZXQgZWxlbWVudCB0byBhdHRhY2ggdGhlIG92ZXJsYXksIHZhbGlkIHZhbHVlcyBhcmUgXCJib2R5XCIgb3IgYSBsb2NhbCBuZy10ZW1wbGF0ZSB2YXJpYWJsZSBvZiBhbm90aGVyIGVsZW1lbnQgKG5vdGU6IHVzZSBiaW5kaW5nIHdpdGggYnJhY2tldHMgZm9yIHRlbXBsYXRlIHZhcmlhYmxlcywgZS5nLiBbYXBwZW5kVG9dPVwibXlkaXZcIiBmb3IgYSBkaXYgZWxlbWVudCBoYXZpbmcgI215ZGl2IGFzIHZhcmlhYmxlIG5hbWUpLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFwcGVuZFRvOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCB8IGFueTtcbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBkaXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGEgc3RyaW5nIHRoYXQgbGFiZWxzIHRoZSBleHBhbmQgYnV0dG9uIGZvciBhY2Nlc3NpYmlsaXR5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGV4cGFuZEFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFRyYW5zaXRpb24gb3B0aW9ucyBvZiB0aGUgc2hvdyBhbmltYXRpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc2hvd1RyYW5zaXRpb25PcHRpb25zOiBzdHJpbmcgPSAnLjEycyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSc7XG4gICAgLyoqXG4gICAgICogVHJhbnNpdGlvbiBvcHRpb25zIG9mIHRoZSBoaWRlIGFuaW1hdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBoaWRlVHJhbnNpdGlvbk9wdGlvbnM6IHN0cmluZyA9ICcuMXMgbGluZWFyJztcbiAgICAvKipcbiAgICAgKiBCdXR0b24gUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBidXR0b25Qcm9wczogQnV0dG9uUHJvcHMgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogTWVudSBCdXR0b24gUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBtZW51QnV0dG9uUHJvcHM6IE1lbnVCdXR0b25Qcm9wcyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBkZWZhdWx0IGNvbW1hbmQgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAgICogQHBhcmFtIHtNb3VzZUV2ZW50fSBldmVudCAtIE1vdXNlIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gZHJvcGRvd24gYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAgICogQHBhcmFtIHtNb3VzZUV2ZW50fSBldmVudCAtIE1vdXNlIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkRyb3Bkb3duQ2xpY2s6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lclZpZXdDaGlsZDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bHRidG4nKSBidXR0b25WaWV3Q2hpbGQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgICBAVmlld0NoaWxkKCdtZW51JykgbWVudTogVGllcmVkTWVudSB8IHVuZGVmaW5lZDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBkcm9wZG93bkljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIGFyaWFJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgaXNFeHBhbmRlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5hcmlhSWQgPSBVbmlxdWVDb21wb25lbnRJZCgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5nZXRUeXBlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdjb250ZW50JzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50VGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2Ryb3Bkb3duaWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcGRvd25JY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRGVmYXVsdEJ1dHRvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMub25DbGljay5lbWl0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5tZW51LmhpZGUoKTtcbiAgICB9XG5cbiAgICBvbkRyb3Bkb3duQnV0dG9uQ2xpY2soZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMub25Ecm9wZG93bkNsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgICB0aGlzLm1lbnU/LnRvZ2dsZSh7IGN1cnJlbnRUYXJnZXQ6IHRoaXMuY29udGFpbmVyVmlld0NoaWxkPy5uYXRpdmVFbGVtZW50LCByZWxhdGl2ZUFsaWduOiB0aGlzLmFwcGVuZFRvID09IG51bGwgfSk7XG4gICAgICAgIHRoaXMuaXNFeHBhbmRlZC5zZXQodGhpcy5tZW51LnZpc2libGUpO1xuICAgIH1cblxuICAgIG9uRHJvcGRvd25CdXR0b25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5jb2RlID09PSAnQXJyb3dEb3duJyB8fCBldmVudC5jb2RlID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgICAgIHRoaXMub25Ecm9wZG93bkJ1dHRvbkNsaWNrKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJ1dHRvbk1vZHVsZSwgVGllcmVkTWVudU1vZHVsZSwgQ2hldnJvbkRvd25JY29uXSxcbiAgICBleHBvcnRzOiBbU3BsaXRCdXR0b24sIEJ1dHRvbk1vZHVsZSwgVGllcmVkTWVudU1vZHVsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbU3BsaXRCdXR0b25dXG59KVxuZXhwb3J0IGNsYXNzIFNwbGl0QnV0dG9uTW9kdWxlIHt9XG4iXX0=
495
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXRidXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvc3BsaXRidXR0b24vc3BsaXRidXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBMEIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeE8sT0FBTyxFQUFZLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBYyxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7OztBQUtwRDs7O0dBR0c7QUFzRkgsTUFBTSxPQUFPLFdBQVc7SUFDcEI7OztPQUdHO0lBQ00sS0FBSyxDQUF5QjtJQUN2Qzs7O09BR0c7SUFDTSxRQUFRLENBQStHO0lBQ2hJOzs7T0FHRztJQUNxQyxNQUFNLEdBQVksS0FBSyxDQUFDO0lBQ2hFOzs7T0FHRztJQUNxQyxPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ2pFOzs7T0FHRztJQUNxQyxJQUFJLEdBQVksS0FBSyxDQUFDO0lBQzlEOzs7T0FHRztJQUNxQyxRQUFRLEdBQVksS0FBSyxDQUFDO0lBQ2xFOzs7T0FHRztJQUNNLElBQUksR0FBeUMsSUFBSSxDQUFDO0lBQzNE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WUFBWSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxhQXBQL0UsV0FBVyxFQXFQRyxZQUFZLEVBQUUsZ0JBQWdCO3dHQUc1QyxpQkFBaUIsWUFKaEIsWUFBWSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUNqRSxZQUFZLEVBQUUsZ0JBQWdCOzsyRkFHNUMsaUJBQWlCO2tCQUw3QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQztvQkFDekYsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztvQkFDdEQsWUFBWSxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE5nTW9kdWxlLCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIGJvb2xlYW5BdHRyaWJ1dGUsIG51bWJlckF0dHJpYnV0ZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZW51SXRlbSwgUHJpbWVUZW1wbGF0ZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7IENoZXZyb25Eb3duSWNvbiB9IGZyb20gJ3ByaW1lbmcvaWNvbnMvY2hldnJvbmRvd24nO1xuaW1wb3J0IHsgVGllcmVkTWVudSwgVGllcmVkTWVudU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGllcmVkbWVudSc7XG5pbXBvcnQgeyBVbmlxdWVDb21wb25lbnRJZCB9IGZyb20gJ3ByaW1lbmcvdXRpbHMnO1xuaW1wb3J0IHsgQXV0b0ZvY3VzTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hdXRvZm9jdXMnO1xuXG5pbXBvcnQgeyBCdXR0b25Qcm9wcywgTWVudUJ1dHRvblByb3BzIH0gZnJvbSAnLi9zcGxpdGJ1dHRvbi5pbnRlcmZhY2UnO1xuXG50eXBlIFNwbGl0QnV0dG9uSWNvblBvc2l0aW9uID0gJ2xlZnQnIHwgJ3JpZ2h0Jztcbi8qKlxuICogU3BsaXRCdXR0b24gZ3JvdXBzIGEgc2V0IG9mIGNvbW1hbmRzIGluIGFuIG92ZXJsYXkgd2l0aCBhIGRlZmF1bHQgY29tbWFuZC5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zcGxpdEJ1dHRvbicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiAjY29udGFpbmVyIFtuZ0NsYXNzXT1cImNvbnRhaW5lckNsYXNzXCIgW2NsYXNzXT1cInN0eWxlQ2xhc3NcIiBbbmdTdHlsZV09XCJzdHlsZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnRUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0QnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtc3BsaXRidXR0b24tZGVmYXVsdGJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtzZXZlcml0eV09XCJzZXZlcml0eVwiXG4gICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBbb3V0bGluZWRdPVwib3V0bGluZWRcIlxuICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uUG9zXT1cImljb25Qb3NcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25EZWZhdWx0QnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJidXR0b25Qcm9wcz8uWydhcmlhLWxhYmVsJ10gfHwgbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBwQXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0QnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgI2RlZmF1bHRidG5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLXNwbGl0YnV0dG9uLWRlZmF1bHRidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbc2V2ZXJpdHldPVwic2V2ZXJpdHlcIlxuICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW291dGxpbmVkXT1cIm91dGxpbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImljb25cIlxuICAgICAgICAgICAgICAgICAgICBbaWNvblBvc109XCJpY29uUG9zXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVmYXVsdEJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnV0dG9uUHJvcHM/LlsnYXJpYS1sYWJlbCddXCJcbiAgICAgICAgICAgICAgICAgICAgcEF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgW3NldmVyaXR5XT1cInNldmVyaXR5XCJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBbb3V0bGluZWRdPVwib3V0bGluZWRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC1zcGxpdGJ1dHRvbi1tZW51YnV0dG9uIHAtYnV0dG9uLWljb24tb25seVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRHJvcGRvd25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbkRyb3Bkb3duQnV0dG9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibWVudUJ1dHRvbkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1lbnVCdXR0b25Qcm9wcz8uWydhcmlhLWxhYmVsJ10gfHwgZXhwYW5kQXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cIm1lbnVCdXR0b25Qcm9wcz8uWydhcmlhLWhhc3BvcHVwJ10gfHwgdHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJtZW51QnV0dG9uUHJvcHM/LlsnYXJpYS1leHBhbmRlZCddIHx8IGlzRXhwYW5kZWQoKVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJtZW51QnV0dG9uUHJvcHM/LlsnYXJpYS1jb250cm9scyddIHx8IGFyaWFJZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENoZXZyb25Eb3duSWNvbiAqbmdJZj1cIiFkcm9wZG93bkljb25UZW1wbGF0ZVwiIC8+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcGRvd25JY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8cC10aWVyZWRNZW51XG4gICAgICAgICAgICAgICAgW2lkXT1cImFyaWFJZFwiXG4gICAgICAgICAgICAgICAgI21lbnVcbiAgICAgICAgICAgICAgICBbcG9wdXBdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cIm1vZGVsXCJcbiAgICAgICAgICAgICAgICBbc3R5bGVdPVwibWVudVN0eWxlXCJcbiAgICAgICAgICAgICAgICBbc3R5bGVDbGFzc109XCJtZW51U3R5bGVDbGFzc1wiXG4gICAgICAgICAgICAgICAgW2FwcGVuZFRvXT1cImFwcGVuZFRvXCJcbiAgICAgICAgICAgICAgICBbc2hvd1RyYW5zaXRpb25PcHRpb25zXT1cInNob3dUcmFuc2l0aW9uT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgW2hpZGVUcmFuc2l0aW9uT3B0aW9uc109XCJoaWRlVHJhbnNpdGlvbk9wdGlvbnNcIlxuICAgICAgICAgICAgPjwvcC10aWVyZWRNZW51PlxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3BsaXRidXR0b24uY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3AtZWxlbWVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFNwbGl0QnV0dG9uIHtcbiAgICAvKipcbiAgICAgKiBNZW51TW9kZWwgaW5zdGFuY2UgdG8gZGVmaW5lIHRoZSBvdmVybGF5IGl0ZW1zLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG1vZGVsOiBNZW51SXRlbVtdIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHN0eWxlIG9mIHRoZSBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc2V2ZXJpdHk6ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuaW5nJyB8ICdkYW5nZXInIHwgJ2hlbHAnIHwgJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnY29udHJhc3QnIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBBZGQgYSBzaGFkb3cgdG8gaW5kaWNhdGUgZWxldmF0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByYWlzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBZGQgYSBjaXJjdWxhciBib3JkZXIgcmFkaXVzIHRvIHRoZSBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJvdW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBZGQgYSB0ZXh0dWFsIGNsYXNzIHRvIHRoZSBidXR0b24gd2l0aG91dCBhIGJhY2tncm91bmQgaW5pdGlhbGx5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0ZXh0OiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQWRkIGEgYm9yZGVyIGNsYXNzIHdpdGhvdXQgYSBiYWNrZ3JvdW5kIGluaXRpYWxseS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgb3V0bGluZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBzaXplIG9mIHRoZSBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc2l6ZTogJ3NtYWxsJyB8ICdsYXJnZScgfCB1bmRlZmluZWQgfCBudWxsID0gbnVsbDtcbiAgICAvKipcbiAgICAgKiBBZGQgYSBwbGFpbiB0ZXh0dWFsIGNsYXNzIHRvIHRoZSBidXR0b24gd2l0aG91dCBhIGJhY2tncm91bmQgaW5pdGlhbGx5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBwbGFpbjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGljb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSBpY29uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGljb25Qb3M6IFNwbGl0QnV0dG9uSWNvblBvc2l0aW9uID0gJ2xlZnQnO1xuICAgIC8qKlxuICAgICAqIFRleHQgb2YgdGhlIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBDbGFzcyBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSBvdmVybGF5IG1lbnUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbWVudVN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBvdmVybGF5IG1lbnUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbWVudVN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGVuIHByZXNlbnQsIGl0IHNwZWNpZmllcyB0aGF0IHRoZSBlbGVtZW50IHNob3VsZCBiZSBkaXNhYmxlZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0YWJpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqICBUYXJnZXQgZWxlbWVudCB0byBhdHRhY2ggdGhlIG92ZXJsYXksIHZhbGlkIHZhbHVlcyBhcmUgXCJib2R5XCIgb3IgYSBsb2NhbCBuZy10ZW1wbGF0ZSB2YXJpYWJsZSBvZiBhbm90aGVyIGVsZW1lbnQgKG5vdGU6IHVzZSBiaW5kaW5nIHdpdGggYnJhY2tldHMgZm9yIHRlbXBsYXRlIHZhcmlhYmxlcywgZS5nLiBbYXBwZW5kVG9dPVwibXlkaXZcIiBmb3IgYSBkaXYgZWxlbWVudCBoYXZpbmcgI215ZGl2IGFzIHZhcmlhYmxlIG5hbWUpLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFwcGVuZFRvOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCB8IGFueTtcbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBkaXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGEgc3RyaW5nIHRoYXQgbGFiZWxzIHRoZSBleHBhbmQgYnV0dG9uIGZvciBhY2Nlc3NpYmlsaXR5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGV4cGFuZEFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFRyYW5zaXRpb24gb3B0aW9ucyBvZiB0aGUgc2hvdyBhbmltYXRpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc2hvd1RyYW5zaXRpb25PcHRpb25zOiBzdHJpbmcgPSAnLjEycyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSc7XG4gICAgLyoqXG4gICAgICogVHJhbnNpdGlvbiBvcHRpb25zIG9mIHRoZSBoaWRlIGFuaW1hdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBoaWRlVHJhbnNpdGlvbk9wdGlvbnM6IHN0cmluZyA9ICcuMXMgbGluZWFyJztcbiAgICAvKipcbiAgICAgKiBCdXR0b24gUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBidXR0b25Qcm9wczogQnV0dG9uUHJvcHMgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogTWVudSBCdXR0b24gUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBtZW51QnV0dG9uUHJvcHM6IE1lbnVCdXR0b25Qcm9wcyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGVuIHByZXNlbnQsIGl0IHNwZWNpZmllcyB0aGF0IHRoZSBjb21wb25lbnQgc2hvdWxkIGF1dG9tYXRpY2FsbHkgZ2V0IGZvY3VzIG9uIGxvYWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGF1dG9mb2N1czogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBkZWZhdWx0IGNvbW1hbmQgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAgICogQHBhcmFtIHtNb3VzZUV2ZW50fSBldmVudCAtIE1vdXNlIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gZHJvcGRvd24gYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAgICogQHBhcmFtIHtNb3VzZUV2ZW50fSBldmVudCAtIE1vdXNlIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzZXQgZGlzYWJsZWQodjogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IHY7XG4gICAgICAgIHRoaXMuX2J1dHRvbkRpc2FibGVkID0gdjtcbiAgICAgICAgdGhpcy5tZW51QnV0dG9uRGlzYWJsZWQgPSB2O1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEluZGV4IG9mIHRoZSBlbGVtZW50IGluIHRhYmJpbmcgb3JkZXIuXG4gICAgICogQGdyb3VwIFByb3BcbiAgICAgKi9cblxuICAgIC8qKlxuICAgICAqIFdoZW4gcHJlc2VudCwgaXQgc3BlY2lmaWVzIHRoYXQgdGhlIG1lbnUgYnV0dG9uIGVsZW1lbnQgc2hvdWxkIGJlIGRpc2FibGVkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIHByaXZhdGUgX21lbnVCdXR0b25EaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoJ21lbnVCdXR0b25EaXNhYmxlZCcpIHNldCBtZW51QnV0dG9uRGlzYWJsZWQodjogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5fbWVudUJ1dHRvbkRpc2FibGVkID0gdGhpcy5kaXNhYmxlZDtcbiAgICAgICAgfSBlbHNlIHRoaXMuX21lbnVCdXR0b25EaXNhYmxlZCA9IHY7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgbWVudUJ1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWVudUJ1dHRvbkRpc2FibGVkO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBXaGVuIHByZXNlbnQsIGl0IHNwZWNpZmllcyB0aGF0IHRoZSBidXR0b24gZWxlbWVudCBzaG91bGQgYmUgZGlzYWJsZWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgcHJpdmF0ZSBfYnV0dG9uRGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgc2V0IGJ1dHRvbkRpc2FibGVkKHY6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkO1xuICAgICAgICB9IGVsc2UgdGhpcy5fYnV0dG9uRGlzYWJsZWQgPSB2O1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGJ1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnV0dG9uRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIG9uRHJvcGRvd25DbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyVmlld0NoaWxkOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdGJ0bicpIGJ1dHRvblZpZXdDaGlsZDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICAgIEBWaWV3Q2hpbGQoJ21lbnUnKSBtZW51OiBUaWVyZWRNZW51IHwgdW5kZWZpbmVkO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihQcmltZVRlbXBsYXRlKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPiB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIGRyb3Bkb3duSWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgYXJpYUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpc0V4cGFuZGVkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmFyaWFJZCA9IFVuaXF1ZUNvbXBvbmVudElkKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRlbnQnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZHJvcGRvd25pY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wZG93bkljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50VGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRhaW5lckNsYXNzKCkge1xuICAgICAgICBjb25zdCBjbHMgPSB7XG4gICAgICAgICAgICAncC1zcGxpdGJ1dHRvbiBwLWNvbXBvbmVudCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tcmFpc2VkJzogdGhpcy5yYWlzZWQsXG4gICAgICAgICAgICAncC1idXR0b24tcm91bmRlZCc6IHRoaXMucm91bmRlZCxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1vdXRsaW5lZCc6IHRoaXMub3V0bGluZWQsXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRoaXMudGV4dCxcbiAgICAgICAgICAgIFtgcC1idXR0b24tJHt0aGlzLnNpemUgPT09ICdzbWFsbCcgPyAnc20nIDogJ2xnJ31gXTogdGhpcy5zaXplXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHsgLi4uY2xzIH07XG4gICAgfVxuXG4gICAgb25EZWZhdWx0QnV0dG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5vbkNsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgICB0aGlzLm1lbnUuaGlkZSgpO1xuICAgIH1cblxuICAgIG9uRHJvcGRvd25CdXR0b25DbGljayhldmVudD86IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5vbkRyb3Bkb3duQ2xpY2suZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMubWVudT8udG9nZ2xlKHsgY3VycmVudFRhcmdldDogdGhpcy5jb250YWluZXJWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQsIHJlbGF0aXZlQWxpZ246IHRoaXMuYXBwZW5kVG8gPT0gbnVsbCB9KTtcbiAgICAgICAgdGhpcy5pc0V4cGFuZGVkLnNldCh0aGlzLm1lbnUudmlzaWJsZSk7XG4gICAgfVxuXG4gICAgb25Ecm9wZG93bkJ1dHRvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmNvZGUgPT09ICdBcnJvd0Rvd24nIHx8IGV2ZW50LmNvZGUgPT09ICdBcnJvd1VwJykge1xuICAgICAgICAgICAgdGhpcy5vbkRyb3Bkb3duQnV0dG9uQ2xpY2soKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQnV0dG9uTW9kdWxlLCBUaWVyZWRNZW51TW9kdWxlLCBBdXRvRm9jdXNNb2R1bGUsIENoZXZyb25Eb3duSWNvbl0sXG4gICAgZXhwb3J0czogW1NwbGl0QnV0dG9uLCBCdXR0b25Nb2R1bGUsIFRpZXJlZE1lbnVNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW1NwbGl0QnV0dG9uXVxufSlcbmV4cG9ydCBjbGFzcyBTcGxpdEJ1dHRvbk1vZHVsZSB7fVxuIl19