primeng 18.0.0-rc.2 → 19.0.0-rc.1

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 (1091) hide show
  1. package/LICENSE.md +1 -1
  2. package/autocomplete/autocomplete.d.ts +11 -11
  3. package/base/style/basestyle.d.ts +11 -11
  4. package/config/primeng.d.ts +12 -6
  5. package/config/provideprimeng.d.ts +1 -12
  6. package/config/themeprovider.d.ts +10 -4
  7. package/confirmdialog/confirmdialog.d.ts +1 -0
  8. package/fesm2022/primeng-accordion.mjs +12 -12
  9. package/fesm2022/primeng-accordion.mjs.map +1 -1
  10. package/fesm2022/primeng-animateonscroll.mjs +1 -1
  11. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  12. package/fesm2022/primeng-api.mjs +5 -5
  13. package/fesm2022/primeng-api.mjs.map +1 -1
  14. package/fesm2022/primeng-autocomplete.mjs +135 -136
  15. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  16. package/fesm2022/primeng-autofocus.mjs +1 -1
  17. package/fesm2022/primeng-autofocus.mjs.map +1 -1
  18. package/fesm2022/primeng-avatar.mjs +2 -2
  19. package/fesm2022/primeng-avatar.mjs.map +1 -1
  20. package/fesm2022/primeng-avatargroup.mjs +2 -2
  21. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  22. package/fesm2022/primeng-badge.mjs +3 -3
  23. package/fesm2022/primeng-badge.mjs.map +1 -1
  24. package/fesm2022/primeng-basecomponent.mjs +1 -1
  25. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  26. package/fesm2022/primeng-blockui.mjs +2 -2
  27. package/fesm2022/primeng-blockui.mjs.map +1 -1
  28. package/fesm2022/primeng-breadcrumb.mjs +2 -2
  29. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  30. package/fesm2022/primeng-button.mjs +5 -5
  31. package/fesm2022/primeng-button.mjs.map +1 -1
  32. package/fesm2022/primeng-buttongroup.mjs +2 -2
  33. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  34. package/fesm2022/primeng-calendar.mjs +3 -3
  35. package/fesm2022/primeng-calendar.mjs.map +1 -1
  36. package/fesm2022/primeng-card.mjs +2 -2
  37. package/fesm2022/primeng-card.mjs.map +1 -1
  38. package/fesm2022/primeng-carousel.mjs +2 -2
  39. package/fesm2022/primeng-carousel.mjs.map +1 -1
  40. package/fesm2022/primeng-cascadeselect.mjs +6 -6
  41. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  42. package/fesm2022/primeng-chart.mjs +2 -2
  43. package/fesm2022/primeng-chart.mjs.map +1 -1
  44. package/fesm2022/primeng-checkbox.mjs +3 -4
  45. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  46. package/fesm2022/primeng-chip.mjs +2 -2
  47. package/fesm2022/primeng-chip.mjs.map +1 -1
  48. package/fesm2022/primeng-colorpicker.mjs +3 -3
  49. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  50. package/fesm2022/primeng-config.mjs +39 -40
  51. package/fesm2022/primeng-config.mjs.map +1 -1
  52. package/fesm2022/primeng-confirmdialog.mjs +13 -10
  53. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  54. package/fesm2022/primeng-confirmpopup.mjs +2 -2
  55. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  56. package/fesm2022/primeng-contextmenu.mjs +6 -6
  57. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  58. package/fesm2022/primeng-dataview.mjs +2 -2
  59. package/fesm2022/primeng-dataview.mjs.map +1 -1
  60. package/fesm2022/primeng-datepicker.mjs +5 -5
  61. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  62. package/fesm2022/primeng-defer.mjs +1 -1
  63. package/fesm2022/primeng-dialog.mjs +18 -19
  64. package/fesm2022/primeng-dialog.mjs.map +1 -1
  65. package/fesm2022/primeng-divider.mjs +2 -2
  66. package/fesm2022/primeng-divider.mjs.map +1 -1
  67. package/fesm2022/primeng-dock.mjs +3 -4
  68. package/fesm2022/primeng-dock.mjs.map +1 -1
  69. package/fesm2022/primeng-dragdrop.mjs +2 -2
  70. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  71. package/fesm2022/primeng-drawer.mjs +5 -5
  72. package/fesm2022/primeng-drawer.mjs.map +1 -1
  73. package/fesm2022/primeng-dropdown.mjs +4 -4
  74. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  75. package/fesm2022/primeng-dynamicdialog.mjs +4 -4
  76. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  77. package/fesm2022/primeng-editor.mjs +2 -2
  78. package/fesm2022/primeng-editor.mjs.map +1 -1
  79. package/fesm2022/primeng-fieldset.mjs +2 -2
  80. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  81. package/fesm2022/primeng-fileupload.mjs +3 -4
  82. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  83. package/fesm2022/primeng-floatlabel.mjs +2 -2
  84. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  85. package/fesm2022/primeng-fluid.mjs +2 -2
  86. package/fesm2022/primeng-fluid.mjs.map +1 -1
  87. package/fesm2022/primeng-focustrap.mjs +1 -1
  88. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  89. package/fesm2022/primeng-galleria.mjs +10 -10
  90. package/fesm2022/primeng-galleria.mjs.map +1 -1
  91. package/fesm2022/primeng-iconfield.mjs +2 -2
  92. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  93. package/fesm2022/primeng-icons-angledoubledown.mjs +2 -2
  94. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
  95. package/fesm2022/primeng-icons-angledoubleleft.mjs +2 -2
  96. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
  97. package/fesm2022/primeng-icons-angledoubleright.mjs +2 -2
  98. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
  99. package/fesm2022/primeng-icons-angledoubleup.mjs +2 -2
  100. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
  101. package/fesm2022/primeng-icons-angledown.mjs +2 -2
  102. package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
  103. package/fesm2022/primeng-icons-angleleft.mjs +2 -2
  104. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
  105. package/fesm2022/primeng-icons-angleright.mjs +2 -2
  106. package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
  107. package/fesm2022/primeng-icons-angleup.mjs +2 -2
  108. package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
  109. package/fesm2022/primeng-icons-arrowdown.mjs +2 -2
  110. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
  111. package/fesm2022/primeng-icons-arrowdownleft.mjs +2 -2
  112. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
  113. package/fesm2022/primeng-icons-arrowdownright.mjs +2 -2
  114. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
  115. package/fesm2022/primeng-icons-arrowleft.mjs +2 -2
  116. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
  117. package/fesm2022/primeng-icons-arrowright.mjs +2 -2
  118. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
  119. package/fesm2022/primeng-icons-arrowup.mjs +2 -2
  120. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
  121. package/fesm2022/primeng-icons-ban.mjs +2 -2
  122. package/fesm2022/primeng-icons-ban.mjs.map +1 -1
  123. package/fesm2022/primeng-icons-bars.mjs +2 -2
  124. package/fesm2022/primeng-icons-bars.mjs.map +1 -1
  125. package/fesm2022/primeng-icons-baseicon.mjs +2 -2
  126. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
  127. package/fesm2022/primeng-icons-blank.mjs +2 -2
  128. package/fesm2022/primeng-icons-blank.mjs.map +1 -1
  129. package/fesm2022/primeng-icons-calendar.mjs +2 -2
  130. package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
  131. package/fesm2022/primeng-icons-caretleft.mjs +2 -2
  132. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
  133. package/fesm2022/primeng-icons-caretright.mjs +2 -2
  134. package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
  135. package/fesm2022/primeng-icons-check.mjs +2 -2
  136. package/fesm2022/primeng-icons-check.mjs.map +1 -1
  137. package/fesm2022/primeng-icons-chevrondown.mjs +2 -2
  138. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
  139. package/fesm2022/primeng-icons-chevronleft.mjs +2 -2
  140. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
  141. package/fesm2022/primeng-icons-chevronright.mjs +2 -2
  142. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
  143. package/fesm2022/primeng-icons-chevronup.mjs +2 -2
  144. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
  145. package/fesm2022/primeng-icons-exclamationtriangle.mjs +2 -2
  146. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
  147. package/fesm2022/primeng-icons-eye.mjs +2 -2
  148. package/fesm2022/primeng-icons-eye.mjs.map +1 -1
  149. package/fesm2022/primeng-icons-eyeslash.mjs +2 -2
  150. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
  151. package/fesm2022/primeng-icons-filter.mjs +2 -2
  152. package/fesm2022/primeng-icons-filter.mjs.map +1 -1
  153. package/fesm2022/primeng-icons-filterslash.mjs +2 -2
  154. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
  155. package/fesm2022/primeng-icons-home.mjs +2 -2
  156. package/fesm2022/primeng-icons-home.mjs.map +1 -1
  157. package/fesm2022/primeng-icons-infocircle.mjs +2 -2
  158. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
  159. package/fesm2022/primeng-icons-minus.mjs +2 -2
  160. package/fesm2022/primeng-icons-minus.mjs.map +1 -1
  161. package/fesm2022/primeng-icons-pencil.mjs +2 -2
  162. package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
  163. package/fesm2022/primeng-icons-plus.mjs +2 -2
  164. package/fesm2022/primeng-icons-plus.mjs.map +1 -1
  165. package/fesm2022/primeng-icons-refresh.mjs +2 -2
  166. package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
  167. package/fesm2022/primeng-icons-search.mjs +2 -2
  168. package/fesm2022/primeng-icons-search.mjs.map +1 -1
  169. package/fesm2022/primeng-icons-searchminus.mjs +2 -2
  170. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
  171. package/fesm2022/primeng-icons-searchplus.mjs +2 -2
  172. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
  173. package/fesm2022/primeng-icons-sortalt.mjs +2 -2
  174. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
  175. package/fesm2022/primeng-icons-sortamountdown.mjs +2 -2
  176. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
  177. package/fesm2022/primeng-icons-sortamountupalt.mjs +2 -2
  178. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
  179. package/fesm2022/primeng-icons-spinner.mjs +2 -2
  180. package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
  181. package/fesm2022/primeng-icons-star.mjs +2 -2
  182. package/fesm2022/primeng-icons-star.mjs.map +1 -1
  183. package/fesm2022/primeng-icons-starfill.mjs +2 -2
  184. package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
  185. package/fesm2022/primeng-icons-thlarge.mjs +2 -2
  186. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
  187. package/fesm2022/primeng-icons-times.mjs +2 -2
  188. package/fesm2022/primeng-icons-times.mjs.map +1 -1
  189. package/fesm2022/primeng-icons-timescircle.mjs +2 -2
  190. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
  191. package/fesm2022/primeng-icons-trash.mjs +2 -2
  192. package/fesm2022/primeng-icons-trash.mjs.map +1 -1
  193. package/fesm2022/primeng-icons-undo.mjs +2 -2
  194. package/fesm2022/primeng-icons-undo.mjs.map +1 -1
  195. package/fesm2022/primeng-icons-upload.mjs +2 -2
  196. package/fesm2022/primeng-icons-upload.mjs.map +1 -1
  197. package/fesm2022/primeng-icons-windowmaximize.mjs +2 -2
  198. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
  199. package/fesm2022/primeng-icons-windowminimize.mjs +2 -2
  200. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
  201. package/fesm2022/primeng-iftalabel.mjs +2 -2
  202. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  203. package/fesm2022/primeng-image.mjs +3 -3
  204. package/fesm2022/primeng-image.mjs.map +1 -1
  205. package/fesm2022/primeng-imagecompare.mjs +2 -2
  206. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  207. package/fesm2022/primeng-inplace.mjs +6 -6
  208. package/fesm2022/primeng-inplace.mjs.map +1 -1
  209. package/fesm2022/primeng-inputgroup.mjs +2 -2
  210. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  211. package/fesm2022/primeng-inputgroupaddon.mjs +2 -2
  212. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  213. package/fesm2022/primeng-inputicon.mjs +2 -2
  214. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  215. package/fesm2022/primeng-inputmask.mjs +4 -4
  216. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  217. package/fesm2022/primeng-inputnumber.mjs +5 -6
  218. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  219. package/fesm2022/primeng-inputotp.mjs +4 -4
  220. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  221. package/fesm2022/primeng-inputswitch.mjs +2 -2
  222. package/fesm2022/primeng-inputswitch.mjs.map +1 -1
  223. package/fesm2022/primeng-inputtext.mjs +10 -9
  224. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  225. package/fesm2022/primeng-inputtextarea.mjs +1 -1
  226. package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
  227. package/fesm2022/primeng-keyfilter.mjs +1 -1
  228. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  229. package/fesm2022/primeng-knob.mjs +2 -2
  230. package/fesm2022/primeng-knob.mjs.map +1 -1
  231. package/fesm2022/primeng-listbox.mjs +2 -2
  232. package/fesm2022/primeng-listbox.mjs.map +1 -1
  233. package/fesm2022/primeng-megamenu.mjs +5 -5
  234. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  235. package/fesm2022/primeng-menu.mjs +7 -7
  236. package/fesm2022/primeng-menu.mjs.map +1 -1
  237. package/fesm2022/primeng-menubar.mjs +6 -6
  238. package/fesm2022/primeng-menubar.mjs.map +1 -1
  239. package/fesm2022/primeng-message.mjs +2 -2
  240. package/fesm2022/primeng-message.mjs.map +1 -1
  241. package/fesm2022/primeng-messages.mjs +2 -2
  242. package/fesm2022/primeng-messages.mjs.map +1 -1
  243. package/fesm2022/primeng-metergroup.mjs +4 -4
  244. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  245. package/fesm2022/primeng-multiselect.mjs +6 -9
  246. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  247. package/fesm2022/primeng-orderlist.mjs +4 -4
  248. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  249. package/fesm2022/primeng-organizationchart.mjs +5 -5
  250. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  251. package/fesm2022/primeng-overlay.mjs +3 -3
  252. package/fesm2022/primeng-overlay.mjs.map +1 -1
  253. package/fesm2022/primeng-overlaybadge.mjs +2 -2
  254. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  255. package/fesm2022/primeng-overlaypanel.mjs +7 -4
  256. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  257. package/fesm2022/primeng-paginator.mjs +2 -2
  258. package/fesm2022/primeng-paginator.mjs.map +1 -1
  259. package/fesm2022/primeng-panel.mjs +3 -4
  260. package/fesm2022/primeng-panel.mjs.map +1 -1
  261. package/fesm2022/primeng-panelmenu.mjs +9 -9
  262. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  263. package/fesm2022/primeng-password.mjs +30 -7
  264. package/fesm2022/primeng-password.mjs.map +1 -1
  265. package/fesm2022/primeng-picklist.mjs +135 -139
  266. package/fesm2022/primeng-picklist.mjs.map +1 -1
  267. package/fesm2022/primeng-popover.mjs +9 -8
  268. package/fesm2022/primeng-popover.mjs.map +1 -1
  269. package/fesm2022/primeng-progressbar.mjs +2 -2
  270. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  271. package/fesm2022/primeng-progressspinner.mjs +2 -2
  272. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  273. package/fesm2022/primeng-radiobutton.mjs +2 -2
  274. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  275. package/fesm2022/primeng-rating.mjs +4 -4
  276. package/fesm2022/primeng-rating.mjs.map +1 -1
  277. package/fesm2022/primeng-ripple.mjs +5 -2
  278. package/fesm2022/primeng-ripple.mjs.map +1 -1
  279. package/fesm2022/primeng-scroller.mjs +2 -2
  280. package/fesm2022/primeng-scroller.mjs.map +1 -1
  281. package/fesm2022/primeng-scrollpanel.mjs +2 -2
  282. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  283. package/fesm2022/primeng-scrolltop.mjs +2 -2
  284. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  285. package/fesm2022/primeng-select.mjs +9 -11
  286. package/fesm2022/primeng-select.mjs.map +1 -1
  287. package/fesm2022/primeng-selectbutton.mjs +3 -4
  288. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  289. package/fesm2022/primeng-sidebar.mjs +4 -5
  290. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  291. package/fesm2022/primeng-skeleton.mjs +2 -2
  292. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  293. package/fesm2022/primeng-slider.mjs +2 -2
  294. package/fesm2022/primeng-slider.mjs.map +1 -1
  295. package/fesm2022/primeng-speeddial.mjs +2 -2
  296. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  297. package/fesm2022/primeng-splitbutton.mjs +2 -2
  298. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  299. package/fesm2022/primeng-splitter.mjs +30 -19
  300. package/fesm2022/primeng-splitter.mjs.map +1 -1
  301. package/fesm2022/primeng-stepper.mjs +16 -16
  302. package/fesm2022/primeng-stepper.mjs.map +1 -1
  303. package/fesm2022/primeng-steps.mjs +2 -2
  304. package/fesm2022/primeng-steps.mjs.map +1 -1
  305. package/fesm2022/primeng-styleclass.mjs +1 -1
  306. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  307. package/fesm2022/primeng-table.mjs +6392 -6520
  308. package/fesm2022/primeng-table.mjs.map +1 -1
  309. package/fesm2022/primeng-tabmenu.mjs +2 -2
  310. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  311. package/fesm2022/primeng-tabs.mjs +11 -11
  312. package/fesm2022/primeng-tabs.mjs.map +1 -1
  313. package/fesm2022/primeng-tabview.mjs +5 -5
  314. package/fesm2022/primeng-tabview.mjs.map +1 -1
  315. package/fesm2022/primeng-tag.mjs +2 -2
  316. package/fesm2022/primeng-tag.mjs.map +1 -1
  317. package/fesm2022/primeng-terminal.mjs +2 -2
  318. package/fesm2022/primeng-terminal.mjs.map +1 -1
  319. package/fesm2022/primeng-textarea.mjs +8 -8
  320. package/fesm2022/primeng-textarea.mjs.map +1 -1
  321. package/fesm2022/primeng-tieredmenu.mjs +6 -6
  322. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  323. package/fesm2022/primeng-timeline.mjs +2 -2
  324. package/fesm2022/primeng-timeline.mjs.map +1 -1
  325. package/fesm2022/primeng-toast.mjs +6 -7
  326. package/fesm2022/primeng-toast.mjs.map +1 -1
  327. package/fesm2022/primeng-togglebutton.mjs +3 -4
  328. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  329. package/fesm2022/primeng-toggleswitch.mjs +2 -2
  330. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  331. package/fesm2022/primeng-toolbar.mjs +2 -2
  332. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  333. package/fesm2022/primeng-tooltip.mjs +5 -3
  334. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  335. package/fesm2022/primeng-tree.mjs +112 -63
  336. package/fesm2022/primeng-tree.mjs.map +1 -1
  337. package/fesm2022/primeng-treeselect.mjs +5 -10
  338. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  339. package/fesm2022/primeng-treetable.mjs +31 -29
  340. package/fesm2022/primeng-treetable.mjs.map +1 -1
  341. package/inputtext/inputtext.d.ts +2 -2
  342. package/package.json +176 -524
  343. package/password/password.d.ts +5 -1
  344. package/popover/popover.d.ts +1 -1
  345. package/speeddial/speeddial.d.ts +2 -2
  346. package/splitter/splitter.d.ts +2 -3
  347. package/splitter/style/splitterstyle.d.ts +0 -13
  348. package/table/table.d.ts +928 -1030
  349. package/textarea/textarea.d.ts +2 -2
  350. package/tree/style/treestyle.d.ts +1 -1
  351. package/tree/tree.d.ts +4 -2
  352. package/treetable/treetable.d.ts +1 -1
  353. package/esm2022/accordion/accordion.mjs +0 -1266
  354. package/esm2022/accordion/primeng-accordion.mjs +0 -5
  355. package/esm2022/accordion/public_api.mjs +0 -3
  356. package/esm2022/accordion/style/accordionstyle.mjs +0 -163
  357. package/esm2022/animateonscroll/animateonscroll.mjs +0 -174
  358. package/esm2022/animateonscroll/primeng-animateonscroll.mjs +0 -5
  359. package/esm2022/animateonscroll/public_api.mjs +0 -2
  360. package/esm2022/api/blockableui.mjs +0 -2
  361. package/esm2022/api/confirmaeventtype.mjs +0 -10
  362. package/esm2022/api/confirmation.mjs +0 -2
  363. package/esm2022/api/confirmationservice.mjs +0 -43
  364. package/esm2022/api/contextmenuservice.mjs +0 -22
  365. package/esm2022/api/filtermatchmode.mjs +0 -23
  366. package/esm2022/api/filtermetadata.mjs +0 -2
  367. package/esm2022/api/filteroperator.mjs +0 -5
  368. package/esm2022/api/filterservice.mjs +0 -224
  369. package/esm2022/api/lazyloadevent.mjs +0 -2
  370. package/esm2022/api/lazyloadmeta.mjs +0 -2
  371. package/esm2022/api/megamenuitem.mjs +0 -2
  372. package/esm2022/api/menuitem.mjs +0 -2
  373. package/esm2022/api/messageservice.mjs +0 -47
  374. package/esm2022/api/overlayoptions.mjs +0 -2
  375. package/esm2022/api/overlayservice.mjs +0 -19
  376. package/esm2022/api/primeicons.mjs +0 -314
  377. package/esm2022/api/primeng-api.mjs +0 -5
  378. package/esm2022/api/public_api.mjs +0 -33
  379. package/esm2022/api/scrolleroptions.mjs +0 -2
  380. package/esm2022/api/selectitem.mjs +0 -2
  381. package/esm2022/api/selectitemgroup.mjs +0 -2
  382. package/esm2022/api/shared.mjs +0 -76
  383. package/esm2022/api/sortevent.mjs +0 -2
  384. package/esm2022/api/sortmeta.mjs +0 -2
  385. package/esm2022/api/tablestate.mjs +0 -2
  386. package/esm2022/api/toastmessage.mjs +0 -2
  387. package/esm2022/api/tooltipoptions.mjs +0 -2
  388. package/esm2022/api/translation.mjs +0 -2
  389. package/esm2022/api/translationkeys.mjs +0 -51
  390. package/esm2022/api/treedragdropservice.mjs +0 -21
  391. package/esm2022/api/treenode.mjs +0 -2
  392. package/esm2022/api/treenodedragevent.mjs +0 -2
  393. package/esm2022/api/treetablenode.mjs +0 -2
  394. package/esm2022/autocomplete/autocomplete.interface.mjs +0 -2
  395. package/esm2022/autocomplete/autocomplete.mjs +0 -2225
  396. package/esm2022/autocomplete/primeng-autocomplete.mjs +0 -5
  397. package/esm2022/autocomplete/public_api.mjs +0 -4
  398. package/esm2022/autocomplete/style/autocompletestyle.mjs +0 -408
  399. package/esm2022/autofocus/autofocus.mjs +0 -86
  400. package/esm2022/autofocus/primeng-autofocus.mjs +0 -5
  401. package/esm2022/autofocus/public_api.mjs +0 -2
  402. package/esm2022/avatar/avatar.mjs +0 -193
  403. package/esm2022/avatar/primeng-avatar.mjs +0 -5
  404. package/esm2022/avatar/public_api.mjs +0 -3
  405. package/esm2022/avatar/style/avatarstyle.mjs +0 -130
  406. package/esm2022/avatargroup/avatargroup.mjs +0 -80
  407. package/esm2022/avatargroup/primeng-avatargroup.mjs +0 -5
  408. package/esm2022/avatargroup/public_api.mjs +0 -3
  409. package/esm2022/avatargroup/style/avatargroupstyle.mjs +0 -29
  410. package/esm2022/badge/badge.mjs +0 -332
  411. package/esm2022/badge/primeng-badge.mjs +0 -5
  412. package/esm2022/badge/public_api.mjs +0 -3
  413. package/esm2022/badge/style/badgestyle.mjs +0 -143
  414. package/esm2022/base/base.mjs +0 -19
  415. package/esm2022/base/primeng-base.mjs +0 -5
  416. package/esm2022/base/public_api.mjs +0 -3
  417. package/esm2022/base/style/basestyle.mjs +0 -256
  418. package/esm2022/basecomponent/basecomponent.mjs +0 -183
  419. package/esm2022/basecomponent/primeng-basecomponent.mjs +0 -5
  420. package/esm2022/basecomponent/public_api.mjs +0 -3
  421. package/esm2022/basecomponent/style/basecomponentstyle.mjs +0 -13
  422. package/esm2022/blockui/blockui.interface.mjs +0 -2
  423. package/esm2022/blockui/blockui.mjs +0 -210
  424. package/esm2022/blockui/primeng-blockui.mjs +0 -5
  425. package/esm2022/blockui/public_api.mjs +0 -4
  426. package/esm2022/blockui/style/blockuistyle.mjs +0 -50
  427. package/esm2022/breadcrumb/breadcrumb.interface.mjs +0 -2
  428. package/esm2022/breadcrumb/breadcrumb.mjs +0 -583
  429. package/esm2022/breadcrumb/primeng-breadcrumb.mjs +0 -5
  430. package/esm2022/breadcrumb/public_api.mjs +0 -4
  431. package/esm2022/breadcrumb/style/breadcrumbstyle.mjs +0 -133
  432. package/esm2022/button/button.interface.mjs +0 -2
  433. package/esm2022/button/button.mjs +0 -896
  434. package/esm2022/button/primeng-button.mjs +0 -5
  435. package/esm2022/button/public_api.mjs +0 -4
  436. package/esm2022/button/style/buttonstyle.mjs +0 -707
  437. package/esm2022/buttongroup/buttongroup.mjs +0 -47
  438. package/esm2022/buttongroup/primeng-buttongroup.mjs +0 -5
  439. package/esm2022/buttongroup/public_api.mjs +0 -3
  440. package/esm2022/buttongroup/style/buttongroupstyle.mjs +0 -120
  441. package/esm2022/calendar/calendar.interface.mjs +0 -2
  442. package/esm2022/calendar/calendar.mjs +0 -4504
  443. package/esm2022/calendar/primeng-calendar.mjs +0 -5
  444. package/esm2022/calendar/public_api.mjs +0 -4
  445. package/esm2022/calendar/style/calendarstyle.mjs +0 -472
  446. package/esm2022/card/card.interface.mjs +0 -2
  447. package/esm2022/card/card.mjs +0 -243
  448. package/esm2022/card/primeng-card.mjs +0 -5
  449. package/esm2022/card/public_api.mjs +0 -4
  450. package/esm2022/card/style/cardstyle.mjs +0 -100
  451. package/esm2022/carousel/carousel.interface.mjs +0 -2
  452. package/esm2022/carousel/carousel.mjs +0 -1181
  453. package/esm2022/carousel/primeng-carousel.mjs +0 -5
  454. package/esm2022/carousel/public_api.mjs +0 -4
  455. package/esm2022/carousel/style/carouselstyle.mjs +0 -234
  456. package/esm2022/cascadeselect/cascadeselect.interface.mjs +0 -2
  457. package/esm2022/cascadeselect/cascadeselect.mjs +0 -1840
  458. package/esm2022/cascadeselect/primeng-cascadeselect.mjs +0 -5
  459. package/esm2022/cascadeselect/public_api.mjs +0 -4
  460. package/esm2022/cascadeselect/style/cascadeselectstyle.mjs +0 -379
  461. package/esm2022/chart/chart.mjs +0 -210
  462. package/esm2022/chart/primeng-chart.mjs +0 -5
  463. package/esm2022/chart/public_api.mjs +0 -3
  464. package/esm2022/chart/style/chartstyle.mjs +0 -36
  465. package/esm2022/checkbox/checkbox.interface.mjs +0 -2
  466. package/esm2022/checkbox/checkbox.mjs +0 -450
  467. package/esm2022/checkbox/primeng-checkbox.mjs +0 -5
  468. package/esm2022/checkbox/public_api.mjs +0 -4
  469. package/esm2022/checkbox/style/checkboxstyle.mjs +0 -191
  470. package/esm2022/chip/chip.interface.mjs +0 -2
  471. package/esm2022/chip/chip.mjs +0 -337
  472. package/esm2022/chip/primeng-chip.mjs +0 -5
  473. package/esm2022/chip/public_api.mjs +0 -4
  474. package/esm2022/chip/style/chipstyle.mjs +0 -104
  475. package/esm2022/colorpicker/colorpicker.interface.mjs +0 -2
  476. package/esm2022/colorpicker/colorpicker.mjs +0 -856
  477. package/esm2022/colorpicker/primeng-colorpicker.mjs +0 -5
  478. package/esm2022/colorpicker/public_api.mjs +0 -4
  479. package/esm2022/colorpicker/style/colorpickerstyle.mjs +0 -213
  480. package/esm2022/config/primeng-config.mjs +0 -5
  481. package/esm2022/config/primeng.mjs +0 -189
  482. package/esm2022/config/provideprimeng.mjs +0 -11
  483. package/esm2022/config/public_api.mjs +0 -4
  484. package/esm2022/config/themeprovider.mjs +0 -74
  485. package/esm2022/confirmdialog/confirmdialog.interface.mjs +0 -2
  486. package/esm2022/confirmdialog/confirmdialog.mjs +0 -810
  487. package/esm2022/confirmdialog/primeng-confirmdialog.mjs +0 -5
  488. package/esm2022/confirmdialog/public_api.mjs +0 -4
  489. package/esm2022/confirmdialog/style/confirmdialogstyle.mjs +0 -67
  490. package/esm2022/confirmpopup/confirmpopup.interface.mjs +0 -2
  491. package/esm2022/confirmpopup/confirmpopup.mjs +0 -619
  492. package/esm2022/confirmpopup/primeng-confirmpopup.mjs +0 -5
  493. package/esm2022/confirmpopup/public_api.mjs +0 -4
  494. package/esm2022/confirmpopup/style/confirmpopupstyle.mjs +0 -170
  495. package/esm2022/contextmenu/contextmenu.mjs +0 -1436
  496. package/esm2022/contextmenu/primeng-contextmenu.mjs +0 -5
  497. package/esm2022/contextmenu/public_api.mjs +0 -3
  498. package/esm2022/contextmenu/style/contextmenustyle.mjs +0 -244
  499. package/esm2022/dataview/dataview.interface.mjs +0 -2
  500. package/esm2022/dataview/dataview.mjs +0 -819
  501. package/esm2022/dataview/primeng-dataview.mjs +0 -5
  502. package/esm2022/dataview/public_api.mjs +0 -4
  503. package/esm2022/dataview/style/dataviewstyle.mjs +0 -115
  504. package/esm2022/datepicker/datepicker.interface.mjs +0 -2
  505. package/esm2022/datepicker/datepicker.mjs +0 -4539
  506. package/esm2022/datepicker/primeng-datepicker.mjs +0 -5
  507. package/esm2022/datepicker/public_api.mjs +0 -4
  508. package/esm2022/datepicker/style/datepickerstyle.mjs +0 -663
  509. package/esm2022/defer/defer.mjs +0 -100
  510. package/esm2022/defer/primeng-defer.mjs +0 -5
  511. package/esm2022/defer/public_api.mjs +0 -2
  512. package/esm2022/dialog/dialog.interface.mjs +0 -2
  513. package/esm2022/dialog/dialog.mjs +0 -1384
  514. package/esm2022/dialog/primeng-dialog.mjs +0 -5
  515. package/esm2022/dialog/public_api.mjs +0 -4
  516. package/esm2022/dialog/style/dialogstyle.mjs +0 -283
  517. package/esm2022/divider/divider.mjs +0 -119
  518. package/esm2022/divider/primeng-divider.mjs +0 -5
  519. package/esm2022/divider/public_api.mjs +0 -3
  520. package/esm2022/divider/style/dividerstyle.mjs +0 -138
  521. package/esm2022/dock/dock.interface.mjs +0 -2
  522. package/esm2022/dock/dock.mjs +0 -447
  523. package/esm2022/dock/primeng-dock.mjs +0 -5
  524. package/esm2022/dock/public_api.mjs +0 -4
  525. package/esm2022/dock/style/dockstyle.mjs +0 -210
  526. package/esm2022/dom/connectedoverlayscrollhandler.mjs +0 -30
  527. package/esm2022/dom/domhandler.mjs +0 -725
  528. package/esm2022/dom/primeng-dom.mjs +0 -5
  529. package/esm2022/dom/public_api.mjs +0 -3
  530. package/esm2022/dragdrop/dragdrop.mjs +0 -323
  531. package/esm2022/dragdrop/primeng-dragdrop.mjs +0 -5
  532. package/esm2022/dragdrop/public_api.mjs +0 -2
  533. package/esm2022/drawer/drawer.interface.mjs +0 -2
  534. package/esm2022/drawer/drawer.mjs +0 -663
  535. package/esm2022/drawer/primeng-drawer.mjs +0 -5
  536. package/esm2022/drawer/public_api.mjs +0 -4
  537. package/esm2022/drawer/style/drawerstyle.mjs +0 -283
  538. package/esm2022/dropdown/dropdown.interface.mjs +0 -2
  539. package/esm2022/dropdown/dropdown.mjs +0 -2498
  540. package/esm2022/dropdown/primeng-dropdown.mjs +0 -5
  541. package/esm2022/dropdown/public_api.mjs +0 -4
  542. package/esm2022/dropdown/style/dropdownstyle.mjs +0 -264
  543. package/esm2022/dynamicdialog/dialogservice.mjs +0 -105
  544. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +0 -182
  545. package/esm2022/dynamicdialog/dynamicdialog-injector.mjs +0 -15
  546. package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +0 -119
  547. package/esm2022/dynamicdialog/dynamicdialog.mjs +0 -875
  548. package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +0 -18
  549. package/esm2022/dynamicdialog/primeng-dynamicdialog.mjs +0 -5
  550. package/esm2022/dynamicdialog/public_api.mjs +0 -8
  551. package/esm2022/dynamicdialog/style/dynamicdialogstyle.mjs +0 -60
  552. package/esm2022/editor/editor.interface.mjs +0 -2
  553. package/esm2022/editor/editor.mjs +0 -427
  554. package/esm2022/editor/primeng-editor.mjs +0 -5
  555. package/esm2022/editor/public_api.mjs +0 -4
  556. package/esm2022/editor/style/editorstyle.mjs +0 -1008
  557. package/esm2022/fieldset/fieldset.interface.mjs +0 -2
  558. package/esm2022/fieldset/fieldset.mjs +0 -427
  559. package/esm2022/fieldset/primeng-fieldset.mjs +0 -5
  560. package/esm2022/fieldset/public_api.mjs +0 -4
  561. package/esm2022/fieldset/style/fieldsetstyle.mjs +0 -143
  562. package/esm2022/fileupload/fileupload.interface.mjs +0 -2
  563. package/esm2022/fileupload/fileupload.mjs +0 -1597
  564. package/esm2022/fileupload/primeng-fileupload.mjs +0 -5
  565. package/esm2022/fileupload/public_api.mjs +0 -4
  566. package/esm2022/fileupload/style/fileuploadstyle.mjs +0 -194
  567. package/esm2022/floatlabel/floatlabel.mjs +0 -61
  568. package/esm2022/floatlabel/primeng-floatlabel.mjs +0 -5
  569. package/esm2022/floatlabel/public_api.mjs +0 -3
  570. package/esm2022/floatlabel/style/floatlabelstyle.mjs +0 -133
  571. package/esm2022/fluid/fluid.mjs +0 -50
  572. package/esm2022/fluid/primeng-fluid.mjs +0 -5
  573. package/esm2022/fluid/public_api.mjs +0 -3
  574. package/esm2022/fluid/style/fluidstyle.mjs +0 -38
  575. package/esm2022/focustrap/focustrap.mjs +0 -104
  576. package/esm2022/focustrap/primeng-focustrap.mjs +0 -5
  577. package/esm2022/focustrap/public_api.mjs +0 -2
  578. package/esm2022/galleria/galleria.interface.mjs +0 -2
  579. package/esm2022/galleria/galleria.mjs +0 -1858
  580. package/esm2022/galleria/primeng-galleria.mjs +0 -5
  581. package/esm2022/galleria/public_api.mjs +0 -4
  582. package/esm2022/galleria/style/galleriastyle.mjs +0 -644
  583. package/esm2022/iconfield/iconfield.mjs +0 -73
  584. package/esm2022/iconfield/primeng-iconfield.mjs +0 -5
  585. package/esm2022/iconfield/public_api.mjs +0 -3
  586. package/esm2022/iconfield/style/iconfieldstyle.mjs +0 -77
  587. package/esm2022/icons/angledoubledown/angledoubledown.mjs +0 -34
  588. package/esm2022/icons/angledoubledown/primeng-icons-angledoubledown.mjs +0 -5
  589. package/esm2022/icons/angledoubledown/public_api.mjs +0 -2
  590. package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +0 -34
  591. package/esm2022/icons/angledoubleleft/primeng-icons-angledoubleleft.mjs +0 -5
  592. package/esm2022/icons/angledoubleleft/public_api.mjs +0 -2
  593. package/esm2022/icons/angledoubleright/angledoubleright.mjs +0 -34
  594. package/esm2022/icons/angledoubleright/primeng-icons-angledoubleright.mjs +0 -5
  595. package/esm2022/icons/angledoubleright/public_api.mjs +0 -2
  596. package/esm2022/icons/angledoubleup/angledoubleup.mjs +0 -34
  597. package/esm2022/icons/angledoubleup/primeng-icons-angledoubleup.mjs +0 -5
  598. package/esm2022/icons/angledoubleup/public_api.mjs +0 -2
  599. package/esm2022/icons/angledown/angledown.mjs +0 -32
  600. package/esm2022/icons/angledown/primeng-icons-angledown.mjs +0 -5
  601. package/esm2022/icons/angledown/public_api.mjs +0 -2
  602. package/esm2022/icons/angleleft/angleleft.mjs +0 -32
  603. package/esm2022/icons/angleleft/primeng-icons-angleleft.mjs +0 -5
  604. package/esm2022/icons/angleleft/public_api.mjs +0 -2
  605. package/esm2022/icons/angleright/angleright.mjs +0 -32
  606. package/esm2022/icons/angleright/primeng-icons-angleright.mjs +0 -5
  607. package/esm2022/icons/angleright/public_api.mjs +0 -2
  608. package/esm2022/icons/angleup/angleup.mjs +0 -32
  609. package/esm2022/icons/angleup/primeng-icons-angleup.mjs +0 -5
  610. package/esm2022/icons/angleup/public_api.mjs +0 -2
  611. package/esm2022/icons/arrowdown/arrowdown.mjs +0 -53
  612. package/esm2022/icons/arrowdown/primeng-icons-arrowdown.mjs +0 -5
  613. package/esm2022/icons/arrowdown/public_api.mjs +0 -2
  614. package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +0 -32
  615. package/esm2022/icons/arrowdownleft/primeng-icons-arrowdownleft.mjs +0 -5
  616. package/esm2022/icons/arrowdownleft/public_api.mjs +0 -2
  617. package/esm2022/icons/arrowdownright/arrowdownright.mjs +0 -32
  618. package/esm2022/icons/arrowdownright/primeng-icons-arrowdownright.mjs +0 -5
  619. package/esm2022/icons/arrowdownright/public_api.mjs +0 -2
  620. package/esm2022/icons/arrowleft/arrowleft.mjs +0 -53
  621. package/esm2022/icons/arrowleft/primeng-icons-arrowleft.mjs +0 -5
  622. package/esm2022/icons/arrowleft/public_api.mjs +0 -2
  623. package/esm2022/icons/arrowright/arrowright.mjs +0 -34
  624. package/esm2022/icons/arrowright/primeng-icons-arrowright.mjs +0 -5
  625. package/esm2022/icons/arrowright/public_api.mjs +0 -2
  626. package/esm2022/icons/arrowup/arrowup.mjs +0 -53
  627. package/esm2022/icons/arrowup/primeng-icons-arrowup.mjs +0 -5
  628. package/esm2022/icons/arrowup/public_api.mjs +0 -2
  629. package/esm2022/icons/ban/ban.mjs +0 -51
  630. package/esm2022/icons/ban/primeng-icons-ban.mjs +0 -5
  631. package/esm2022/icons/ban/public_api.mjs +0 -2
  632. package/esm2022/icons/bars/bars.mjs +0 -34
  633. package/esm2022/icons/bars/primeng-icons-bars.mjs +0 -5
  634. package/esm2022/icons/bars/public_api.mjs +0 -2
  635. package/esm2022/icons/baseicon/baseicon.mjs +0 -54
  636. package/esm2022/icons/baseicon/primeng-icons-baseicon.mjs +0 -5
  637. package/esm2022/icons/baseicon/public_api.mjs +0 -3
  638. package/esm2022/icons/baseicon/style/baseiconstyle.mjs +0 -57
  639. package/esm2022/icons/blank/blank.mjs +0 -26
  640. package/esm2022/icons/blank/primeng-icons-blank.mjs +0 -5
  641. package/esm2022/icons/blank/public_api.mjs +0 -2
  642. package/esm2022/icons/calendar/calendar.mjs +0 -32
  643. package/esm2022/icons/calendar/primeng-icons-calendar.mjs +0 -5
  644. package/esm2022/icons/calendar/public_api.mjs +0 -2
  645. package/esm2022/icons/caretleft/caretleft.mjs +0 -32
  646. package/esm2022/icons/caretleft/primeng-icons-caretleft.mjs +0 -5
  647. package/esm2022/icons/caretleft/public_api.mjs +0 -2
  648. package/esm2022/icons/caretright/caretright.mjs +0 -32
  649. package/esm2022/icons/caretright/primeng-icons-caretright.mjs +0 -5
  650. package/esm2022/icons/caretright/public_api.mjs +0 -2
  651. package/esm2022/icons/check/check.mjs +0 -32
  652. package/esm2022/icons/check/primeng-icons-check.mjs +0 -5
  653. package/esm2022/icons/check/public_api.mjs +0 -2
  654. package/esm2022/icons/chevrondown/chevrondown.mjs +0 -32
  655. package/esm2022/icons/chevrondown/primeng-icons-chevrondown.mjs +0 -5
  656. package/esm2022/icons/chevrondown/public_api.mjs +0 -2
  657. package/esm2022/icons/chevronleft/chevronleft.mjs +0 -32
  658. package/esm2022/icons/chevronleft/primeng-icons-chevronleft.mjs +0 -5
  659. package/esm2022/icons/chevronleft/public_api.mjs +0 -2
  660. package/esm2022/icons/chevronright/chevronright.mjs +0 -32
  661. package/esm2022/icons/chevronright/primeng-icons-chevronright.mjs +0 -5
  662. package/esm2022/icons/chevronright/public_api.mjs +0 -2
  663. package/esm2022/icons/chevronup/chevronup.mjs +0 -32
  664. package/esm2022/icons/chevronup/primeng-icons-chevronup.mjs +0 -5
  665. package/esm2022/icons/chevronup/public_api.mjs +0 -2
  666. package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +0 -59
  667. package/esm2022/icons/exclamationtriangle/primeng-icons-exclamationtriangle.mjs +0 -5
  668. package/esm2022/icons/exclamationtriangle/public_api.mjs +0 -2
  669. package/esm2022/icons/eye/eye.mjs +0 -34
  670. package/esm2022/icons/eye/primeng-icons-eye.mjs +0 -5
  671. package/esm2022/icons/eye/public_api.mjs +0 -2
  672. package/esm2022/icons/eyeslash/eyeslash.mjs +0 -53
  673. package/esm2022/icons/eyeslash/primeng-icons-eyeslash.mjs +0 -5
  674. package/esm2022/icons/eyeslash/public_api.mjs +0 -2
  675. package/esm2022/icons/filter/filter.mjs +0 -51
  676. package/esm2022/icons/filter/primeng-icons-filter.mjs +0 -5
  677. package/esm2022/icons/filter/public_api.mjs +0 -2
  678. package/esm2022/icons/filterslash/filterslash.mjs +0 -53
  679. package/esm2022/icons/filterslash/primeng-icons-filterslash.mjs +0 -5
  680. package/esm2022/icons/filterslash/public_api.mjs +0 -2
  681. package/esm2022/icons/home/home.mjs +0 -53
  682. package/esm2022/icons/home/primeng-icons-home.mjs +0 -5
  683. package/esm2022/icons/home/public_api.mjs +0 -2
  684. package/esm2022/icons/infocircle/infocircle.mjs +0 -53
  685. package/esm2022/icons/infocircle/primeng-icons-infocircle.mjs +0 -5
  686. package/esm2022/icons/infocircle/public_api.mjs +0 -2
  687. package/esm2022/icons/minus/minus.mjs +0 -32
  688. package/esm2022/icons/minus/primeng-icons-minus.mjs +0 -5
  689. package/esm2022/icons/minus/public_api.mjs +0 -2
  690. package/esm2022/icons/pencil/pencil.mjs +0 -51
  691. package/esm2022/icons/pencil/primeng-icons-pencil.mjs +0 -5
  692. package/esm2022/icons/pencil/public_api.mjs +0 -2
  693. package/esm2022/icons/plus/plus.mjs +0 -51
  694. package/esm2022/icons/plus/primeng-icons-plus.mjs +0 -5
  695. package/esm2022/icons/plus/public_api.mjs +0 -2
  696. package/esm2022/icons/primeng-icons.mjs +0 -5
  697. package/esm2022/icons/public_api.mjs +0 -58
  698. package/esm2022/icons/refresh/primeng-icons-refresh.mjs +0 -5
  699. package/esm2022/icons/refresh/public_api.mjs +0 -2
  700. package/esm2022/icons/refresh/refresh.mjs +0 -53
  701. package/esm2022/icons/search/primeng-icons-search.mjs +0 -5
  702. package/esm2022/icons/search/public_api.mjs +0 -2
  703. package/esm2022/icons/search/search.mjs +0 -53
  704. package/esm2022/icons/searchminus/primeng-icons-searchminus.mjs +0 -5
  705. package/esm2022/icons/searchminus/public_api.mjs +0 -2
  706. package/esm2022/icons/searchminus/searchminus.mjs +0 -53
  707. package/esm2022/icons/searchplus/primeng-icons-searchplus.mjs +0 -5
  708. package/esm2022/icons/searchplus/public_api.mjs +0 -2
  709. package/esm2022/icons/searchplus/searchplus.mjs +0 -53
  710. package/esm2022/icons/sortalt/primeng-icons-sortalt.mjs +0 -5
  711. package/esm2022/icons/sortalt/public_api.mjs +0 -2
  712. package/esm2022/icons/sortalt/sortalt.mjs +0 -57
  713. package/esm2022/icons/sortamountdown/primeng-icons-sortamountdown.mjs +0 -5
  714. package/esm2022/icons/sortamountdown/public_api.mjs +0 -2
  715. package/esm2022/icons/sortamountdown/sortamountdown.mjs +0 -51
  716. package/esm2022/icons/sortamountupalt/primeng-icons-sortamountupalt.mjs +0 -5
  717. package/esm2022/icons/sortamountupalt/public_api.mjs +0 -2
  718. package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +0 -51
  719. package/esm2022/icons/spinner/primeng-icons-spinner.mjs +0 -5
  720. package/esm2022/icons/spinner/public_api.mjs +0 -2
  721. package/esm2022/icons/spinner/spinner.mjs +0 -51
  722. package/esm2022/icons/star/primeng-icons-star.mjs +0 -5
  723. package/esm2022/icons/star/public_api.mjs +0 -2
  724. package/esm2022/icons/star/star.mjs +0 -51
  725. package/esm2022/icons/starfill/primeng-icons-starfill.mjs +0 -5
  726. package/esm2022/icons/starfill/public_api.mjs +0 -2
  727. package/esm2022/icons/starfill/starfill.mjs +0 -51
  728. package/esm2022/icons/thlarge/primeng-icons-thlarge.mjs +0 -5
  729. package/esm2022/icons/thlarge/public_api.mjs +0 -2
  730. package/esm2022/icons/thlarge/thlarge.mjs +0 -53
  731. package/esm2022/icons/times/primeng-icons-times.mjs +0 -5
  732. package/esm2022/icons/times/public_api.mjs +0 -2
  733. package/esm2022/icons/times/times.mjs +0 -32
  734. package/esm2022/icons/timescircle/primeng-icons-timescircle.mjs +0 -5
  735. package/esm2022/icons/timescircle/public_api.mjs +0 -2
  736. package/esm2022/icons/timescircle/timescircle.mjs +0 -53
  737. package/esm2022/icons/trash/primeng-icons-trash.mjs +0 -5
  738. package/esm2022/icons/trash/public_api.mjs +0 -2
  739. package/esm2022/icons/trash/trash.mjs +0 -53
  740. package/esm2022/icons/undo/primeng-icons-undo.mjs +0 -5
  741. package/esm2022/icons/undo/public_api.mjs +0 -2
  742. package/esm2022/icons/undo/undo.mjs +0 -53
  743. package/esm2022/icons/upload/primeng-icons-upload.mjs +0 -5
  744. package/esm2022/icons/upload/public_api.mjs +0 -2
  745. package/esm2022/icons/upload/upload.mjs +0 -53
  746. package/esm2022/icons/windowmaximize/primeng-icons-windowmaximize.mjs +0 -5
  747. package/esm2022/icons/windowmaximize/public_api.mjs +0 -2
  748. package/esm2022/icons/windowmaximize/windowmaximize.mjs +0 -53
  749. package/esm2022/icons/windowminimize/primeng-icons-windowminimize.mjs +0 -5
  750. package/esm2022/icons/windowminimize/public_api.mjs +0 -2
  751. package/esm2022/icons/windowminimize/windowminimize.mjs +0 -53
  752. package/esm2022/iftalabel/iftalabel.mjs +0 -49
  753. package/esm2022/iftalabel/primeng-iftalabel.mjs +0 -5
  754. package/esm2022/iftalabel/public_api.mjs +0 -3
  755. package/esm2022/iftalabel/style/iftalabelstyle.mjs +0 -96
  756. package/esm2022/image/image.interface.mjs +0 -2
  757. package/esm2022/image/image.mjs +0 -747
  758. package/esm2022/image/primeng-image.mjs +0 -5
  759. package/esm2022/image/public_api.mjs +0 -4
  760. package/esm2022/image/style/imagestyle.mjs +0 -219
  761. package/esm2022/imagecompare/imagecompare.mjs +0 -158
  762. package/esm2022/imagecompare/primeng-imagecompare.mjs +0 -5
  763. package/esm2022/imagecompare/public_api.mjs +0 -3
  764. package/esm2022/imagecompare/style/imagecomparestyle.mjs +0 -124
  765. package/esm2022/inplace/inplace.interface.mjs +0 -2
  766. package/esm2022/inplace/inplace.mjs +0 -344
  767. package/esm2022/inplace/primeng-inplace.mjs +0 -5
  768. package/esm2022/inplace/public_api.mjs +0 -4
  769. package/esm2022/inplace/style/inplacestyle.mjs +0 -69
  770. package/esm2022/inputgroup/inputgroup.mjs +0 -68
  771. package/esm2022/inputgroup/primeng-inputgroup.mjs +0 -5
  772. package/esm2022/inputgroup/public_api.mjs +0 -3
  773. package/esm2022/inputgroup/style/inputgroupstyle.mjs +0 -145
  774. package/esm2022/inputgroupaddon/inputgroupaddon.mjs +0 -74
  775. package/esm2022/inputgroupaddon/primeng-inputgroupaddon.mjs +0 -5
  776. package/esm2022/inputgroupaddon/public_api.mjs +0 -3
  777. package/esm2022/inputgroupaddon/style/inputgroupaddonstyle.mjs +0 -16
  778. package/esm2022/inputicon/inputicon.mjs +0 -66
  779. package/esm2022/inputicon/primeng-inputicon.mjs +0 -5
  780. package/esm2022/inputicon/public_api.mjs +0 -3
  781. package/esm2022/inputicon/style/inputiconstyle.mjs +0 -16
  782. package/esm2022/inputmask/inputmask.interface.mjs +0 -2
  783. package/esm2022/inputmask/inputmask.mjs +0 -911
  784. package/esm2022/inputmask/primeng-inputmask.mjs +0 -5
  785. package/esm2022/inputmask/public_api.mjs +0 -4
  786. package/esm2022/inputmask/style/inputmaskstyle.mjs +0 -62
  787. package/esm2022/inputnumber/inputnumber.interface.mjs +0 -2
  788. package/esm2022/inputnumber/inputnumber.mjs +0 -1745
  789. package/esm2022/inputnumber/primeng-inputnumber.mjs +0 -5
  790. package/esm2022/inputnumber/public_api.mjs +0 -4
  791. package/esm2022/inputnumber/style/inputnumberstyle.mjs +0 -240
  792. package/esm2022/inputotp/inputotp.mjs +0 -406
  793. package/esm2022/inputotp/primeng-inputotp.mjs +0 -5
  794. package/esm2022/inputotp/public_api.mjs +0 -3
  795. package/esm2022/inputotp/style/inputotpstyle.mjs +0 -60
  796. package/esm2022/inputswitch/inputswitch.interface.mjs +0 -2
  797. package/esm2022/inputswitch/inputswitch.mjs +0 -241
  798. package/esm2022/inputswitch/primeng-inputswitch.mjs +0 -5
  799. package/esm2022/inputswitch/public_api.mjs +0 -4
  800. package/esm2022/inputswitch/style/inputswitchstyle.mjs +0 -130
  801. package/esm2022/inputtext/inputtext.mjs +0 -103
  802. package/esm2022/inputtext/primeng-inputtext.mjs +0 -5
  803. package/esm2022/inputtext/public_api.mjs +0 -3
  804. package/esm2022/inputtext/style/inputtextstyle.mjs +0 -117
  805. package/esm2022/inputtextarea/inputtextarea.mjs +0 -156
  806. package/esm2022/inputtextarea/primeng-inputtextarea.mjs +0 -5
  807. package/esm2022/inputtextarea/public_api.mjs +0 -3
  808. package/esm2022/inputtextarea/style/textareastyle.mjs +0 -107
  809. package/esm2022/keyfilter/keyfilter.interface.mjs +0 -2
  810. package/esm2022/keyfilter/keyfilter.mjs +0 -263
  811. package/esm2022/keyfilter/primeng-keyfilter.mjs +0 -5
  812. package/esm2022/keyfilter/public_api.mjs +0 -3
  813. package/esm2022/knob/knob.mjs +0 -471
  814. package/esm2022/knob/primeng-knob.mjs +0 -5
  815. package/esm2022/knob/public_api.mjs +0 -3
  816. package/esm2022/knob/style/knobstyle.mjs +0 -83
  817. package/esm2022/listbox/listbox.interface.mjs +0 -2
  818. package/esm2022/listbox/listbox.mjs +0 -2044
  819. package/esm2022/listbox/primeng-listbox.mjs +0 -5
  820. package/esm2022/listbox/public_api.mjs +0 -4
  821. package/esm2022/listbox/style/listboxstyle.mjs +0 -206
  822. package/esm2022/megamenu/megamenu.interface.mjs +0 -2
  823. package/esm2022/megamenu/megamenu.mjs +0 -1607
  824. package/esm2022/megamenu/primeng-megamenu.mjs +0 -5
  825. package/esm2022/megamenu/public_api.mjs +0 -4
  826. package/esm2022/megamenu/style/megamenustyle.mjs +0 -487
  827. package/esm2022/menu/menu.mjs +0 -1193
  828. package/esm2022/menu/primeng-menu.mjs +0 -5
  829. package/esm2022/menu/public_api.mjs +0 -3
  830. package/esm2022/menu/style/menustyle.mjs +0 -179
  831. package/esm2022/menubar/menubar.interface.mjs +0 -2
  832. package/esm2022/menubar/menubar.mjs +0 -1484
  833. package/esm2022/menubar/primeng-menubar.mjs +0 -5
  834. package/esm2022/menubar/public_api.mjs +0 -4
  835. package/esm2022/menubar/style/menubarstyle.mjs +0 -375
  836. package/esm2022/message/message.mjs +0 -421
  837. package/esm2022/message/primeng-message.mjs +0 -5
  838. package/esm2022/message/public_api.mjs +0 -3
  839. package/esm2022/message/style/messagestyle.mjs +0 -357
  840. package/esm2022/messages/messages.interface.mjs +0 -2
  841. package/esm2022/messages/messages.mjs +0 -529
  842. package/esm2022/messages/primeng-messages.mjs +0 -5
  843. package/esm2022/messages/public_api.mjs +0 -4
  844. package/esm2022/messages/style/messagesstyle.mjs +0 -229
  845. package/esm2022/metergroup/metergroup.interface.mjs +0 -2
  846. package/esm2022/metergroup/metergroup.mjs +0 -423
  847. package/esm2022/metergroup/primeng-metergroup.mjs +0 -5
  848. package/esm2022/metergroup/public_api.mjs +0 -4
  849. package/esm2022/metergroup/style/metergroupstyle.mjs +0 -169
  850. package/esm2022/multiselect/multiselect.interface.mjs +0 -2
  851. package/esm2022/multiselect/multiselect.mjs +0 -2924
  852. package/esm2022/multiselect/primeng-multiselect.mjs +0 -5
  853. package/esm2022/multiselect/public_api.mjs +0 -4
  854. package/esm2022/multiselect/style/multiselectstyle.mjs +0 -376
  855. package/esm2022/orderlist/orderlist.interface.mjs +0 -2
  856. package/esm2022/orderlist/orderlist.mjs +0 -1121
  857. package/esm2022/orderlist/primeng-orderlist.mjs +0 -5
  858. package/esm2022/orderlist/public_api.mjs +0 -4
  859. package/esm2022/orderlist/style/orderliststyle.mjs +0 -51
  860. package/esm2022/organizationchart/organizationchart.interface.mjs +0 -2
  861. package/esm2022/organizationchart/organizationchart.mjs +0 -591
  862. package/esm2022/organizationchart/primeng-organizationchart.mjs +0 -5
  863. package/esm2022/organizationchart/public_api.mjs +0 -4
  864. package/esm2022/organizationchart/style/organizationchartstyle.mjs +0 -191
  865. package/esm2022/overlay/overlay.mjs +0 -668
  866. package/esm2022/overlay/primeng-overlay.mjs +0 -5
  867. package/esm2022/overlay/public_api.mjs +0 -3
  868. package/esm2022/overlay/style/overlaystyle.mjs +0 -93
  869. package/esm2022/overlaybadge/overlaybadge.mjs +0 -121
  870. package/esm2022/overlaybadge/primeng-overlaybadge.mjs +0 -5
  871. package/esm2022/overlaybadge/public_api.mjs +0 -3
  872. package/esm2022/overlaybadge/style/overlaybadgestyle.mjs +0 -34
  873. package/esm2022/overlaypanel/overlaypanel.mjs +0 -529
  874. package/esm2022/overlaypanel/primeng-overlaypanel.mjs +0 -5
  875. package/esm2022/overlaypanel/public_api.mjs +0 -3
  876. package/esm2022/overlaypanel/style/popoverstyle.mjs +0 -119
  877. package/esm2022/paginator/paginator.interface.mjs +0 -2
  878. package/esm2022/paginator/paginator.mjs +0 -893
  879. package/esm2022/paginator/primeng-paginator.mjs +0 -5
  880. package/esm2022/paginator/public_api.mjs +0 -4
  881. package/esm2022/paginator/style/paginatorstyle.mjs +0 -243
  882. package/esm2022/panel/panel.mjs +0 -585
  883. package/esm2022/panel/primeng-panel.mjs +0 -5
  884. package/esm2022/panel/public_api.mjs +0 -3
  885. package/esm2022/panel/style/panelstyle.mjs +0 -120
  886. package/esm2022/panelmenu/panelmenu.interface.mjs +0 -2
  887. package/esm2022/panelmenu/panelmenu.mjs +0 -1628
  888. package/esm2022/panelmenu/primeng-panelmenu.mjs +0 -5
  889. package/esm2022/panelmenu/public_api.mjs +0 -4
  890. package/esm2022/panelmenu/style/panelmenustyle.mjs +0 -291
  891. package/esm2022/password/password.mjs +0 -1178
  892. package/esm2022/password/primeng-password.mjs +0 -5
  893. package/esm2022/password/public_api.mjs +0 -3
  894. package/esm2022/password/style/passwordstyle.mjs +0 -182
  895. package/esm2022/picklist/picklist.interface.mjs +0 -2
  896. package/esm2022/picklist/picklist.mjs +0 -2298
  897. package/esm2022/picklist/primeng-picklist.mjs +0 -5
  898. package/esm2022/picklist/public_api.mjs +0 -4
  899. package/esm2022/picklist/style/pickliststyle.mjs +0 -79
  900. package/esm2022/popover/popover.mjs +0 -518
  901. package/esm2022/popover/primeng-popover.mjs +0 -5
  902. package/esm2022/popover/public_api.mjs +0 -3
  903. package/esm2022/popover/style/popoverstyle.mjs +0 -99
  904. package/esm2022/primeng.mjs +0 -5
  905. package/esm2022/progressbar/primeng-progressbar.mjs +0 -5
  906. package/esm2022/progressbar/progressbar.mjs +0 -197
  907. package/esm2022/progressbar/public_api.mjs +0 -3
  908. package/esm2022/progressbar/style/progressbarstyle.mjs +0 -165
  909. package/esm2022/progressspinner/primeng-progressspinner.mjs +0 -5
  910. package/esm2022/progressspinner/progressspinner.mjs +0 -105
  911. package/esm2022/progressspinner/public_api.mjs +0 -3
  912. package/esm2022/progressspinner/style/progressspinnerstyle.mjs +0 -115
  913. package/esm2022/public_api.mjs +0 -2
  914. package/esm2022/radiobutton/primeng-radiobutton.mjs +0 -5
  915. package/esm2022/radiobutton/public_api.mjs +0 -4
  916. package/esm2022/radiobutton/radiobutton.interface.mjs +0 -2
  917. package/esm2022/radiobutton/radiobutton.mjs +0 -356
  918. package/esm2022/radiobutton/style/radiobuttonstyle.mjs +0 -196
  919. package/esm2022/rating/primeng-rating.mjs +0 -5
  920. package/esm2022/rating/public_api.mjs +0 -4
  921. package/esm2022/rating/rating.interface.mjs +0 -2
  922. package/esm2022/rating/rating.mjs +0 -425
  923. package/esm2022/rating/style/ratingstyle.mjs +0 -103
  924. package/esm2022/ripple/primeng-ripple.mjs +0 -5
  925. package/esm2022/ripple/public_api.mjs +0 -3
  926. package/esm2022/ripple/ripple.mjs +0 -131
  927. package/esm2022/ripple/style/ripplestyle.mjs +0 -63
  928. package/esm2022/scroller/primeng-scroller.mjs +0 -5
  929. package/esm2022/scroller/public_api.mjs +0 -4
  930. package/esm2022/scroller/scroller.interface.mjs +0 -2
  931. package/esm2022/scroller/scroller.mjs +0 -1290
  932. package/esm2022/scroller/style/scrollerstyle.mjs +0 -104
  933. package/esm2022/scrollpanel/primeng-scrollpanel.mjs +0 -5
  934. package/esm2022/scrollpanel/public_api.mjs +0 -4
  935. package/esm2022/scrollpanel/scrollpanel.interface.mjs +0 -2
  936. package/esm2022/scrollpanel/scrollpanel.mjs +0 -506
  937. package/esm2022/scrollpanel/style/scrollpanelstyle.mjs +0 -120
  938. package/esm2022/scrolltop/primeng-scrolltop.mjs +0 -5
  939. package/esm2022/scrolltop/public_api.mjs +0 -4
  940. package/esm2022/scrolltop/scrolltop.interface.mjs +0 -2
  941. package/esm2022/scrolltop/scrolltop.mjs +0 -336
  942. package/esm2022/scrolltop/style/scrolltopstyle.mjs +0 -77
  943. package/esm2022/select/primeng-select.mjs +0 -5
  944. package/esm2022/select/public_api.mjs +0 -4
  945. package/esm2022/select/select.interface.mjs +0 -2
  946. package/esm2022/select/select.mjs +0 -2617
  947. package/esm2022/select/style/selectstyle.mjs +0 -368
  948. package/esm2022/selectbutton/primeng-selectbutton.mjs +0 -5
  949. package/esm2022/selectbutton/public_api.mjs +0 -4
  950. package/esm2022/selectbutton/selectbutton.interface.mjs +0 -2
  951. package/esm2022/selectbutton/selectbutton.mjs +0 -373
  952. package/esm2022/selectbutton/style/selectbuttonstyle.mjs +0 -73
  953. package/esm2022/sidebar/primeng-sidebar.mjs +0 -5
  954. package/esm2022/sidebar/public_api.mjs +0 -4
  955. package/esm2022/sidebar/sidebar.interface.mjs +0 -2
  956. package/esm2022/sidebar/sidebar.mjs +0 -578
  957. package/esm2022/sidebar/style/drawerstyle.mjs +0 -174
  958. package/esm2022/skeleton/primeng-skeleton.mjs +0 -5
  959. package/esm2022/skeleton/public_api.mjs +0 -3
  960. package/esm2022/skeleton/skeleton.mjs +0 -121
  961. package/esm2022/skeleton/style/skeletonstyle.mjs +0 -93
  962. package/esm2022/slider/primeng-slider.mjs +0 -5
  963. package/esm2022/slider/public_api.mjs +0 -4
  964. package/esm2022/slider/slider.interface.mjs +0 -2
  965. package/esm2022/slider/slider.mjs +0 -820
  966. package/esm2022/slider/style/sliderstyle.mjs +0 -141
  967. package/esm2022/speeddial/primeng-speeddial.mjs +0 -5
  968. package/esm2022/speeddial/public_api.mjs +0 -4
  969. package/esm2022/speeddial/speeddial.interface.mjs +0 -2
  970. package/esm2022/speeddial/speeddial.mjs +0 -866
  971. package/esm2022/speeddial/style/speeddialstyle.mjs +0 -167
  972. package/esm2022/splitbutton/primeng-splitbutton.mjs +0 -5
  973. package/esm2022/splitbutton/public_api.mjs +0 -4
  974. package/esm2022/splitbutton/splitbutton.interface.mjs +0 -2
  975. package/esm2022/splitbutton/splitbutton.mjs +0 -579
  976. package/esm2022/splitbutton/style/splitbuttonstyle.mjs +0 -100
  977. package/esm2022/splitter/primeng-splitter.mjs +0 -5
  978. package/esm2022/splitter/public_api.mjs +0 -4
  979. package/esm2022/splitter/splitter.interface.mjs +0 -2
  980. package/esm2022/splitter/splitter.mjs +0 -616
  981. package/esm2022/splitter/style/splitterstyle.mjs +0 -126
  982. package/esm2022/stepper/primeng-stepper.mjs +0 -5
  983. package/esm2022/stepper/public_api.mjs +0 -3
  984. package/esm2022/stepper/stepper.mjs +0 -521
  985. package/esm2022/stepper/style/stepperstyle.mjs +0 -228
  986. package/esm2022/steps/primeng-steps.mjs +0 -5
  987. package/esm2022/steps/public_api.mjs +0 -3
  988. package/esm2022/steps/steps.mjs +0 -405
  989. package/esm2022/steps/style/stepsstyle.mjs +0 -180
  990. package/esm2022/styleclass/primeng-styleclass.mjs +0 -5
  991. package/esm2022/styleclass/public_api.mjs +0 -2
  992. package/esm2022/styleclass/styleclass.mjs +0 -315
  993. package/esm2022/table/columnfilter.interface.mjs +0 -2
  994. package/esm2022/table/primeng-table.mjs +0 -5
  995. package/esm2022/table/public_api.mjs +0 -5
  996. package/esm2022/table/style/tablestyle.mjs +0 -906
  997. package/esm2022/table/table.interface.mjs +0 -2
  998. package/esm2022/table/table.mjs +0 -7982
  999. package/esm2022/tabmenu/primeng-tabmenu.mjs +0 -5
  1000. package/esm2022/tabmenu/public_api.mjs +0 -4
  1001. package/esm2022/tabmenu/style/tabmenustyle.mjs +0 -192
  1002. package/esm2022/tabmenu/tabmenu.interface.mjs +0 -2
  1003. package/esm2022/tabmenu/tabmenu.mjs +0 -730
  1004. package/esm2022/tabs/primeng-tabs.mjs +0 -5
  1005. package/esm2022/tabs/public_api.mjs +0 -7
  1006. package/esm2022/tabs/style/tabsstyle.mjs +0 -211
  1007. package/esm2022/tabs/tab.mjs +0 -175
  1008. package/esm2022/tabs/tablist.mjs +0 -297
  1009. package/esm2022/tabs/tabpanel.mjs +0 -60
  1010. package/esm2022/tabs/tabpanels.mjs +0 -38
  1011. package/esm2022/tabs/tabs.mjs +0 -105
  1012. package/esm2022/tabview/primeng-tabview.mjs +0 -5
  1013. package/esm2022/tabview/public_api.mjs +0 -4
  1014. package/esm2022/tabview/style/tabsstyle.mjs +0 -211
  1015. package/esm2022/tabview/tabview.interface.mjs +0 -2
  1016. package/esm2022/tabview/tabview.mjs +0 -1089
  1017. package/esm2022/tag/primeng-tag.mjs +0 -5
  1018. package/esm2022/tag/public_api.mjs +0 -4
  1019. package/esm2022/tag/style/tagstyle.mjs +0 -108
  1020. package/esm2022/tag/tag.interface.mjs +0 -2
  1021. package/esm2022/tag/tag.mjs +0 -168
  1022. package/esm2022/terminal/primeng-terminal.mjs +0 -5
  1023. package/esm2022/terminal/public_api.mjs +0 -4
  1024. package/esm2022/terminal/style/terminalstyle.mjs +0 -113
  1025. package/esm2022/terminal/terminal.mjs +0 -195
  1026. package/esm2022/terminal/terminalservice.mjs +0 -25
  1027. package/esm2022/textarea/primeng-textarea.mjs +0 -5
  1028. package/esm2022/textarea/public_api.mjs +0 -3
  1029. package/esm2022/textarea/style/textareastyle.mjs +0 -120
  1030. package/esm2022/textarea/textarea.mjs +0 -165
  1031. package/esm2022/tieredmenu/primeng-tieredmenu.mjs +0 -5
  1032. package/esm2022/tieredmenu/public_api.mjs +0 -4
  1033. package/esm2022/tieredmenu/style/tieredmenustyle.mjs +0 -276
  1034. package/esm2022/tieredmenu/tieredmenu.interface.mjs +0 -2
  1035. package/esm2022/tieredmenu/tieredmenu.mjs +0 -1444
  1036. package/esm2022/timeline/primeng-timeline.mjs +0 -5
  1037. package/esm2022/timeline/public_api.mjs +0 -4
  1038. package/esm2022/timeline/style/timelinestyle.mjs +0 -217
  1039. package/esm2022/timeline/timeline.interface.mjs +0 -2
  1040. package/esm2022/timeline/timeline.mjs +0 -223
  1041. package/esm2022/toast/primeng-toast.mjs +0 -5
  1042. package/esm2022/toast/public_api.mjs +0 -4
  1043. package/esm2022/toast/style/toaststyle.mjs +0 -351
  1044. package/esm2022/toast/toast.interface.mjs +0 -2
  1045. package/esm2022/toast/toast.mjs +0 -738
  1046. package/esm2022/togglebutton/primeng-togglebutton.mjs +0 -5
  1047. package/esm2022/togglebutton/public_api.mjs +0 -3
  1048. package/esm2022/togglebutton/style/togglebuttonstyle.mjs +0 -170
  1049. package/esm2022/togglebutton/togglebutton.interface.mjs +0 -2
  1050. package/esm2022/togglebutton/togglebutton.mjs +0 -353
  1051. package/esm2022/toggleswitch/primeng-toggleswitch.mjs +0 -5
  1052. package/esm2022/toggleswitch/public_api.mjs +0 -4
  1053. package/esm2022/toggleswitch/style/toggleswitchstyle.mjs +0 -165
  1054. package/esm2022/toggleswitch/toggleswitch.interface.mjs +0 -2
  1055. package/esm2022/toggleswitch/toggleswitch.mjs +0 -278
  1056. package/esm2022/toolbar/primeng-toolbar.mjs +0 -5
  1057. package/esm2022/toolbar/public_api.mjs +0 -4
  1058. package/esm2022/toolbar/style/toolbarstyle.mjs +0 -69
  1059. package/esm2022/toolbar/toolbar.interface.mjs +0 -2
  1060. package/esm2022/toolbar/toolbar.mjs +0 -172
  1061. package/esm2022/tooltip/primeng-tooltip.mjs +0 -5
  1062. package/esm2022/tooltip/public_api.mjs +0 -3
  1063. package/esm2022/tooltip/style/tooltipstyle.mjs +0 -113
  1064. package/esm2022/tooltip/tooltip.mjs +0 -715
  1065. package/esm2022/tree/primeng-tree.mjs +0 -5
  1066. package/esm2022/tree/public_api.mjs +0 -4
  1067. package/esm2022/tree/style/treestyle.mjs +0 -323
  1068. package/esm2022/tree/tree.interface.mjs +0 -2
  1069. package/esm2022/tree/tree.mjs +0 -2248
  1070. package/esm2022/treeselect/primeng-treeselect.mjs +0 -5
  1071. package/esm2022/treeselect/public_api.mjs +0 -4
  1072. package/esm2022/treeselect/style/treeselectstyle.mjs +0 -274
  1073. package/esm2022/treeselect/treeselect.interface.mjs +0 -2
  1074. package/esm2022/treeselect/treeselect.mjs +0 -1372
  1075. package/esm2022/treetable/primeng-treetable.mjs +0 -5
  1076. package/esm2022/treetable/public_api.mjs +0 -4
  1077. package/esm2022/treetable/style/treetablestyle.mjs +0 -621
  1078. package/esm2022/treetable/treetable.interface.mjs +0 -2
  1079. package/esm2022/treetable/treetable.mjs +0 -4642
  1080. package/esm2022/ts-helpers/primeng-ts-helpers.mjs +0 -5
  1081. package/esm2022/ts-helpers/public_api.mjs +0 -2
  1082. package/esm2022/ts-helpers/ts-helpers.mjs +0 -2
  1083. package/esm2022/usestyle/primeng-usestyle.mjs +0 -5
  1084. package/esm2022/usestyle/public_api.mjs +0 -2
  1085. package/esm2022/usestyle/usestyle.mjs +0 -44
  1086. package/esm2022/utils/inpututils.mjs +0 -7
  1087. package/esm2022/utils/objectutils.mjs +0 -276
  1088. package/esm2022/utils/primeng-utils.mjs +0 -5
  1089. package/esm2022/utils/public_api.mjs +0 -6
  1090. package/esm2022/utils/uniquecomponentid.mjs +0 -6
  1091. package/esm2022/utils/zindexutils.mjs +0 -35
@@ -1,616 +0,0 @@
1
- import { CommonModule, isPlatformBrowser } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, computed, contentChild, ContentChildren, EventEmitter, inject, Input, NgModule, numberAttribute, Output, ViewChild, ViewEncapsulation } from '@angular/core';
3
- import { addClass, getHeight, getOuterHeight, getOuterWidth, getWidth, hasClass, isRTL, removeClass } from '@primeuix/utils';
4
- import { PrimeTemplate, SharedModule } from 'primeng/api';
5
- import { BaseComponent } from 'primeng/basecomponent';
6
- import { SplitterStyle } from './style/splitterstyle';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common";
9
- const _c0 = ["*"];
10
- const _c1 = ["container"];
11
- function Splitter_ng_template_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
12
- i0.ɵɵelementContainer(0);
13
- } }
14
- function Splitter_ng_template_2_div_2_Template(rf, ctx) { if (rf & 1) {
15
- const _r1 = i0.ɵɵgetCurrentView();
16
- i0.ɵɵelementStart(0, "div", 6);
17
- i0.ɵɵlistener("mousedown", function Splitter_ng_template_2_div_2_Template_div_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r1); const i_r2 = i0.ɵɵnextContext().index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onGutterMouseDown($event, i_r2)); })("touchstart", function Splitter_ng_template_2_div_2_Template_div_touchstart_0_listener($event) { i0.ɵɵrestoreView(_r1); const i_r2 = i0.ɵɵnextContext().index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onGutterTouchStart($event, i_r2)); })("touchmove", function Splitter_ng_template_2_div_2_Template_div_touchmove_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onGutterTouchMove($event)); })("touchend", function Splitter_ng_template_2_div_2_Template_div_touchend_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onGutterTouchEnd($event)); });
18
- i0.ɵɵelementStart(1, "div", 7);
19
- i0.ɵɵlistener("keyup", function Splitter_ng_template_2_div_2_Template_div_keyup_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onGutterKeyUp($event)); })("keydown", function Splitter_ng_template_2_div_2_Template_div_keydown_1_listener($event) { i0.ɵɵrestoreView(_r1); const i_r2 = i0.ɵɵnextContext().index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onGutterKeyDown($event, i_r2)); });
20
- i0.ɵɵelementEnd()();
21
- } if (rf & 2) {
22
- const ctx_r2 = i0.ɵɵnextContext(2);
23
- i0.ɵɵattribute("data-p-gutter-resizing", false)("data-pc-section", "gutter");
24
- i0.ɵɵadvance();
25
- i0.ɵɵproperty("ngStyle", ctx_r2.gutterStyle());
26
- i0.ɵɵattribute("aria-orientation", ctx_r2.layout)("aria-valuenow", ctx_r2.prevSize)("data-pc-section", "gutterhandle");
27
- } }
28
- function Splitter_ng_template_2_Template(rf, ctx) { if (rf & 1) {
29
- i0.ɵɵelementStart(0, "div", 3);
30
- i0.ɵɵtemplate(1, Splitter_ng_template_2_ng_container_1_Template, 1, 0, "ng-container", 4);
31
- i0.ɵɵelementEnd();
32
- i0.ɵɵtemplate(2, Splitter_ng_template_2_div_2_Template, 2, 6, "div", 5);
33
- } if (rf & 2) {
34
- const panel_r4 = ctx.$implicit;
35
- const i_r2 = ctx.index;
36
- const ctx_r2 = i0.ɵɵnextContext();
37
- i0.ɵɵclassMap(ctx_r2.panelStyleClass);
38
- i0.ɵɵproperty("ngClass", ctx_r2.panelContainerClass())("ngStyle", ctx_r2.panelStyle);
39
- i0.ɵɵattribute("data-pc-name", "splitter")("data-pc-section", "root");
40
- i0.ɵɵadvance();
41
- i0.ɵɵproperty("ngTemplateOutlet", panel_r4);
42
- i0.ɵɵadvance();
43
- i0.ɵɵproperty("ngIf", i_r2 !== ctx_r2.panels.length - 1);
44
- } }
45
- export class SplitterPanel extends BaseComponent {
46
- splitter = contentChild(Splitter);
47
- nestedState = computed(() => this.splitter());
48
- static ɵfac = /*@__PURE__*/ (() => { let ɵSplitterPanel_BaseFactory; return function SplitterPanel_Factory(__ngFactoryType__) { return (ɵSplitterPanel_BaseFactory || (ɵSplitterPanel_BaseFactory = i0.ɵɵgetInheritedFactory(SplitterPanel)))(__ngFactoryType__ || SplitterPanel); }; })();
49
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SplitterPanel, selectors: [["p-splitter-panel"]], contentQueries: function SplitterPanel_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
50
- i0.ɵɵcontentQuerySignal(dirIndex, ctx.splitter, Splitter, 5);
51
- } if (rf & 2) {
52
- i0.ɵɵqueryAdvance();
53
- } }, hostAttrs: [1, "p-splitter-panel"], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function SplitterPanel_Template(rf, ctx) { if (rf & 1) {
54
- i0.ɵɵprojectionDef();
55
- i0.ɵɵprojection(0);
56
- } }, dependencies: [CommonModule], encapsulation: 2, changeDetection: 0 });
57
- }
58
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SplitterPanel, [{
59
- type: Component,
60
- args: [{
61
- selector: 'p-splitter-panel',
62
- standalone: true,
63
- imports: [CommonModule],
64
- template: `<ng-content></ng-content>`,
65
- changeDetection: ChangeDetectionStrategy.OnPush,
66
- host: {
67
- class: 'p-splitter-panel'
68
- }
69
- }]
70
- }], null, null); })();
71
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SplitterPanel, { className: "SplitterPanel" }); })();
72
- /**
73
- * Splitter is utilized to separate and resize panels.
74
- * @group Components
75
- */
76
- export class Splitter extends BaseComponent {
77
- /**
78
- * Style class of the component.
79
- * @group Props
80
- */
81
- styleClass;
82
- /**
83
- * Style class of the panel.
84
- * @group Props
85
- */
86
- panelStyleClass;
87
- /**
88
- * Inline style of the component.
89
- * @group Props
90
- */
91
- style;
92
- /**
93
- * Inline style of the panel.
94
- * @group Props
95
- */
96
- panelStyle;
97
- /**
98
- * Defines where a stateful splitter keeps its state, valid values are 'session' for sessionStorage and 'local' for localStorage.
99
- * @group Props
100
- */
101
- stateStorage = 'session';
102
- /**
103
- * Storage identifier of a stateful Splitter.
104
- * @group Props
105
- */
106
- stateKey = null;
107
- /**
108
- * Orientation of the panels. Valid values are 'horizontal' and 'vertical'.
109
- * @group Props
110
- */
111
- layout = 'horizontal';
112
- /**
113
- * Size of the divider in pixels.
114
- * @group Props
115
- */
116
- gutterSize = 4;
117
- /**
118
- * Step factor to increment/decrement the size of the panels while pressing the arrow keys.
119
- * @group Props
120
- */
121
- step = 5;
122
- /**
123
- * Minimum size of the elements relative to 100%.
124
- * @group Props
125
- */
126
- minSizes = [];
127
- /**
128
- * Size of the elements relative to 100%.
129
- * @group Props
130
- */
131
- get panelSizes() {
132
- return this._panelSizes;
133
- }
134
- set panelSizes(val) {
135
- this._panelSizes = val;
136
- if (this.el && this.el.nativeElement && this.panels.length > 0) {
137
- let children = [...this.el.nativeElement.children[0].children].filter((child) => hasClass(child, 'p-splitter-panel'));
138
- let _panelSizes = [];
139
- this.panels.map((panel, i) => {
140
- let panelInitialSize = this.panelSizes.length - 1 >= i ? this.panelSizes[i] : null;
141
- let panelSize = panelInitialSize || 100 / this.panels.length;
142
- _panelSizes[i] = panelSize;
143
- children[i].style.flexBasis = 'calc(' + panelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';
144
- });
145
- }
146
- }
147
- /**
148
- * Callback to invoke when resize ends.
149
- * @param {SplitterResizeEndEvent} event - Custom panel resize end event
150
- * @group Emits
151
- */
152
- onResizeEnd = new EventEmitter();
153
- /**
154
- * Callback to invoke when resize starts.
155
- * @param {SplitterResizeStartEvent} event - Custom panel resize start event
156
- * @group Emits
157
- */
158
- onResizeStart = new EventEmitter();
159
- containerViewChild;
160
- nested = false;
161
- panels = [];
162
- dragging = false;
163
- mouseMoveListener;
164
- mouseUpListener;
165
- touchMoveListener;
166
- touchEndListener;
167
- size;
168
- gutterElement;
169
- startPos;
170
- prevPanelElement;
171
- nextPanelElement;
172
- nextPanelSize;
173
- prevPanelSize;
174
- _panelSizes = [];
175
- prevPanelIndex;
176
- timer;
177
- prevSize;
178
- _componentStyle = inject(SplitterStyle);
179
- ngOnInit() {
180
- super.ngOnInit();
181
- this.nested = this.isNested();
182
- }
183
- _templates;
184
- ngAfterContentInit() {
185
- this._templates.forEach((item) => {
186
- switch (item.getType()) {
187
- case 'panel':
188
- this.panels.push(item.template);
189
- break;
190
- default:
191
- this.panels.push(item.template);
192
- break;
193
- }
194
- });
195
- }
196
- ngAfterViewInit() {
197
- super.ngAfterViewInit();
198
- if (isPlatformBrowser(this.platformId)) {
199
- if (this.panels && this.panels.length) {
200
- let initialized = false;
201
- if (this.isStateful()) {
202
- initialized = this.restoreState();
203
- }
204
- if (!initialized) {
205
- let children = [...this.el.nativeElement.children[0].children].filter((child) => hasClass(child, 'p-splitter-panel'));
206
- let _panelSizes = [];
207
- this.panels.map((panel, i) => {
208
- let panelInitialSize = this.panelSizes.length - 1 >= i ? this.panelSizes[i] : null;
209
- let panelSize = panelInitialSize || 100 / this.panels.length;
210
- _panelSizes[i] = panelSize;
211
- children[i].style.flexBasis = 'calc(' + panelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';
212
- });
213
- this._panelSizes = _panelSizes;
214
- this.prevSize = parseFloat(_panelSizes[0]).toFixed(4);
215
- }
216
- }
217
- }
218
- }
219
- resizeStart(event, index, isKeyDown) {
220
- this.gutterElement = event.currentTarget || event.target.parentElement;
221
- this.size = this.horizontal() ? getWidth(this.containerViewChild.nativeElement) : getHeight(this.containerViewChild.nativeElement);
222
- if (!isKeyDown) {
223
- this.dragging = true;
224
- this.startPos = this.horizontal() ? (event instanceof MouseEvent ? event.pageX : event.changedTouches[0].pageX) : event instanceof MouseEvent ? event.pageY : event.changedTouches[0].pageY;
225
- }
226
- this.prevPanelElement = this.gutterElement.previousElementSibling;
227
- this.nextPanelElement = this.gutterElement.nextElementSibling;
228
- if (isKeyDown) {
229
- this.prevPanelSize = this.horizontal() ? getOuterWidth(this.prevPanelElement, true) : getOuterHeight(this.prevPanelElement, true);
230
- this.nextPanelSize = this.horizontal() ? getOuterWidth(this.nextPanelElement, true) : getOuterHeight(this.nextPanelElement, true);
231
- }
232
- else {
233
- this.prevPanelSize = (100 * (this.horizontal() ? getOuterWidth(this.prevPanelElement, true) : getOuterHeight(this.prevPanelElement, true))) / this.size;
234
- this.nextPanelSize = (100 * (this.horizontal() ? getOuterWidth(this.nextPanelElement, true) : getOuterHeight(this.nextPanelElement, true))) / this.size;
235
- }
236
- this.prevPanelIndex = index;
237
- addClass(this.gutterElement, 'p-splitter-gutter-resizing');
238
- this.gutterElement.setAttribute('data-p-gutter-resizing', 'true');
239
- addClass(this.containerViewChild.nativeElement, 'p-splitter-resizing');
240
- this.containerViewChild.nativeElement.setAttribute('data-p-resizing', 'true');
241
- this.onResizeStart.emit({ originalEvent: event, sizes: this._panelSizes });
242
- }
243
- onResize(event, step, isKeyDown) {
244
- let newPos, newPrevPanelSize, newNextPanelSize;
245
- if (isKeyDown) {
246
- if (this.horizontal()) {
247
- newPrevPanelSize = (100 * (this.prevPanelSize + step)) / this.size;
248
- newNextPanelSize = (100 * (this.nextPanelSize - step)) / this.size;
249
- }
250
- else {
251
- newPrevPanelSize = (100 * (this.prevPanelSize - step)) / this.size;
252
- newNextPanelSize = (100 * (this.nextPanelSize + step)) / this.size;
253
- }
254
- }
255
- else {
256
- if (this.horizontal) {
257
- if (isRTL(this.el.nativeElement)) {
258
- newPos = ((this.startPos - event.pageX) * 100) / this.size;
259
- }
260
- else {
261
- newPos = ((event.pageX - this.startPos) * 100) / this.size;
262
- }
263
- }
264
- else {
265
- newPos = ((event.pageY - this.startPos) * 100) / this.size;
266
- }
267
- newPrevPanelSize = this.prevPanelSize + newPos;
268
- newNextPanelSize = this.nextPanelSize - newPos;
269
- }
270
- this.prevSize = parseFloat(newPrevPanelSize).toFixed(4);
271
- if (this.validateResize(newPrevPanelSize, newNextPanelSize)) {
272
- this.prevPanelElement.style.flexBasis = 'calc(' + newPrevPanelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';
273
- this.nextPanelElement.style.flexBasis = 'calc(' + newNextPanelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';
274
- this._panelSizes[this.prevPanelIndex] = newPrevPanelSize;
275
- this._panelSizes[this.prevPanelIndex + 1] = newNextPanelSize;
276
- }
277
- }
278
- resizeEnd(event) {
279
- if (this.isStateful()) {
280
- this.saveState();
281
- }
282
- this.onResizeEnd.emit({ originalEvent: event, sizes: this._panelSizes });
283
- removeClass(this.gutterElement, 'p-splitter-gutter-resizing');
284
- removeClass(this.containerViewChild.nativeElement, 'p-splitter-resizing');
285
- this.clear();
286
- }
287
- onGutterMouseDown(event, index) {
288
- this.resizeStart(event, index);
289
- this.bindMouseListeners();
290
- }
291
- onGutterTouchStart(event, index) {
292
- if (event.cancelable) {
293
- this.resizeStart(event, index);
294
- this.bindTouchListeners();
295
- event.preventDefault();
296
- }
297
- }
298
- onGutterTouchMove(event) {
299
- this.onResize(event);
300
- event.preventDefault();
301
- }
302
- onGutterTouchEnd(event) {
303
- this.resizeEnd(event);
304
- this.unbindTouchListeners();
305
- if (event.cancelable)
306
- event.preventDefault();
307
- }
308
- repeat(event, index, step) {
309
- this.resizeStart(event, index, true);
310
- this.onResize(event, step, true);
311
- }
312
- setTimer(event, index, step) {
313
- this.clearTimer();
314
- this.timer = setTimeout(() => {
315
- this.repeat(event, index, step);
316
- }, 40);
317
- }
318
- clearTimer() {
319
- if (this.timer) {
320
- clearTimeout(this.timer);
321
- }
322
- }
323
- onGutterKeyUp(event) {
324
- this.clearTimer();
325
- this.resizeEnd(event);
326
- }
327
- onGutterKeyDown(event, index) {
328
- switch (event.code) {
329
- case 'ArrowLeft': {
330
- if (this.layout === 'horizontal') {
331
- this.setTimer(event, index, this.step * -1);
332
- }
333
- event.preventDefault();
334
- break;
335
- }
336
- case 'ArrowRight': {
337
- if (this.layout === 'horizontal') {
338
- this.setTimer(event, index, this.step);
339
- }
340
- event.preventDefault();
341
- break;
342
- }
343
- case 'ArrowDown': {
344
- if (this.layout === 'vertical') {
345
- this.setTimer(event, index, this.step * -1);
346
- }
347
- event.preventDefault();
348
- break;
349
- }
350
- case 'ArrowUp': {
351
- if (this.layout === 'vertical') {
352
- this.setTimer(event, index, this.step);
353
- }
354
- event.preventDefault();
355
- break;
356
- }
357
- default:
358
- //no op
359
- break;
360
- }
361
- }
362
- validateResize(newPrevPanelSize, newNextPanelSize) {
363
- if (this.minSizes.length >= 1 && this.minSizes[0] && this.minSizes[0] > newPrevPanelSize) {
364
- return false;
365
- }
366
- if (this.minSizes.length > 1 && this.minSizes[1] && this.minSizes[1] > newNextPanelSize) {
367
- return false;
368
- }
369
- return true;
370
- }
371
- bindMouseListeners() {
372
- if (!this.mouseMoveListener) {
373
- this.mouseMoveListener = this.renderer.listen(this.document, 'mousemove', (event) => {
374
- this.onResize(event);
375
- });
376
- }
377
- if (!this.mouseUpListener) {
378
- this.mouseUpListener = this.renderer.listen(this.document, 'mouseup', (event) => {
379
- this.resizeEnd(event);
380
- this.unbindMouseListeners();
381
- });
382
- }
383
- }
384
- bindTouchListeners() {
385
- if (!this.touchMoveListener) {
386
- this.touchMoveListener = this.renderer.listen(this.document, 'touchmove', (event) => {
387
- this.onResize(event.changedTouches[0]);
388
- });
389
- }
390
- if (!this.touchEndListener) {
391
- this.touchEndListener = this.renderer.listen(this.document, 'touchend', (event) => {
392
- this.resizeEnd(event);
393
- this.unbindTouchListeners();
394
- });
395
- }
396
- }
397
- unbindMouseListeners() {
398
- if (this.mouseMoveListener) {
399
- this.mouseMoveListener();
400
- this.mouseMoveListener = null;
401
- }
402
- if (this.mouseUpListener) {
403
- this.mouseUpListener();
404
- this.mouseUpListener = null;
405
- }
406
- }
407
- unbindTouchListeners() {
408
- if (this.touchMoveListener) {
409
- this.touchMoveListener();
410
- this.touchMoveListener = null;
411
- }
412
- if (this.touchEndListener) {
413
- this.touchEndListener();
414
- this.touchEndListener = null;
415
- }
416
- }
417
- clear() {
418
- this.dragging = false;
419
- this.size = null;
420
- this.startPos = null;
421
- this.prevPanelElement = null;
422
- this.nextPanelElement = null;
423
- this.prevPanelSize = null;
424
- this.nextPanelSize = null;
425
- this.gutterElement = null;
426
- this.prevPanelIndex = null;
427
- }
428
- isNested() {
429
- if (this.el.nativeElement) {
430
- let parent = this.el.nativeElement.parentElement;
431
- while (parent && !hasClass(parent, 'p-splitter')) {
432
- parent = parent.parentElement;
433
- }
434
- return parent !== null;
435
- }
436
- else {
437
- return false;
438
- }
439
- }
440
- isStateful() {
441
- return this.stateKey != null;
442
- }
443
- getStorage() {
444
- if (isPlatformBrowser(this.platformId)) {
445
- switch (this.stateStorage) {
446
- case 'local':
447
- return this.document.defaultView.localStorage;
448
- case 'session':
449
- return this.document.defaultView.sessionStorage;
450
- default:
451
- throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are "local" and "session".');
452
- }
453
- }
454
- else {
455
- throw new Error('Storage is not a available by default on the server.');
456
- }
457
- }
458
- saveState() {
459
- this.getStorage().setItem(this.stateKey, JSON.stringify(this._panelSizes));
460
- }
461
- restoreState() {
462
- const storage = this.getStorage();
463
- const stateString = storage.getItem(this.stateKey);
464
- if (stateString) {
465
- this._panelSizes = JSON.parse(stateString);
466
- let children = [...this.containerViewChild.nativeElement.children].filter((child) => hasClass(child, 'p-splitter-panel'));
467
- children.forEach((child, i) => {
468
- child.style.flexBasis = 'calc(' + this._panelSizes[i] + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';
469
- });
470
- return true;
471
- }
472
- return false;
473
- }
474
- containerClass() {
475
- return {
476
- 'p-splitter p-component': true,
477
- 'p-splitter-horizontal': this.layout === 'horizontal',
478
- 'p-splitter-vertical': this.layout === 'vertical'
479
- };
480
- }
481
- panelContainerClass() {
482
- return {
483
- 'p-splitter-panel': true,
484
- 'p-splitter-panel-nested': true
485
- };
486
- }
487
- gutterStyle() {
488
- if (this.horizontal())
489
- return { width: this.gutterSize + 'px' };
490
- else
491
- return { height: this.gutterSize + 'px' };
492
- }
493
- horizontal() {
494
- return this.layout === 'horizontal';
495
- }
496
- static ɵfac = /*@__PURE__*/ (() => { let ɵSplitter_BaseFactory; return function Splitter_Factory(__ngFactoryType__) { return (ɵSplitter_BaseFactory || (ɵSplitter_BaseFactory = i0.ɵɵgetInheritedFactory(Splitter)))(__ngFactoryType__ || Splitter); }; })();
497
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Splitter, selectors: [["p-splitter"]], contentQueries: function Splitter_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
498
- i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);
499
- } if (rf & 2) {
500
- let _t;
501
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._templates = _t);
502
- } }, viewQuery: function Splitter_Query(rf, ctx) { if (rf & 1) {
503
- i0.ɵɵviewQuery(_c1, 5);
504
- } if (rf & 2) {
505
- let _t;
506
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerViewChild = _t.first);
507
- } }, hostVars: 2, hostBindings: function Splitter_HostBindings(rf, ctx) { if (rf & 2) {
508
- i0.ɵɵclassProp("p-splitter-panel-nested", ctx.nested);
509
- } }, inputs: { styleClass: "styleClass", panelStyleClass: "panelStyleClass", style: "style", panelStyle: "panelStyle", stateStorage: "stateStorage", stateKey: "stateKey", layout: "layout", gutterSize: [2, "gutterSize", "gutterSize", numberAttribute], step: [2, "step", "step", numberAttribute], minSizes: [2, "minSizes", "minSizes", numberAttribute], panelSizes: "panelSizes" }, outputs: { onResizeEnd: "onResizeEnd", onResizeStart: "onResizeStart" }, standalone: true, features: [i0.ɵɵProvidersFeature([SplitterStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 3, vars: 8, consts: [["container", ""], [3, "ngClass", "ngStyle"], ["ngFor", "", 3, "ngForOf"], ["tabindex", "-1", 3, "ngClass", "ngStyle"], [4, "ngTemplateOutlet"], ["class", "p-splitter-gutter", "role", "separator", "tabindex", "-1", 3, "mousedown", "touchstart", "touchmove", "touchend", 4, "ngIf"], ["role", "separator", "tabindex", "-1", 1, "p-splitter-gutter", 3, "mousedown", "touchstart", "touchmove", "touchend"], ["tabindex", "0", 1, "p-splitter-gutter-handle", 3, "keyup", "keydown", "ngStyle"]], template: function Splitter_Template(rf, ctx) { if (rf & 1) {
510
- i0.ɵɵelementStart(0, "div", 1, 0);
511
- i0.ɵɵtemplate(2, Splitter_ng_template_2_Template, 3, 8, "ng-template", 2);
512
- i0.ɵɵelementEnd();
513
- } if (rf & 2) {
514
- i0.ɵɵclassMap(ctx.styleClass);
515
- i0.ɵɵproperty("ngClass", ctx.containerClass())("ngStyle", ctx.style);
516
- i0.ɵɵattribute("data-pc-name", "splitter")("data-p-gutter-resizing", false)("data-pc-section", "root");
517
- i0.ɵɵadvance(2);
518
- i0.ɵɵproperty("ngForOf", ctx.panels);
519
- } }, dependencies: [CommonModule, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, SharedModule], encapsulation: 2, changeDetection: 0 });
520
- }
521
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Splitter, [{
522
- type: Component,
523
- args: [{
524
- selector: 'p-splitter',
525
- standalone: true,
526
- imports: [CommonModule, SharedModule],
527
- template: `
528
- <div #container [ngClass]="containerClass()" [class]="styleClass" [ngStyle]="style" [attr.data-pc-name]="'splitter'" [attr.data-p-gutter-resizing]="false" [attr.data-pc-section]="'root'">
529
- <ng-template ngFor let-panel [ngForOf]="panels" let-i="index">
530
- <div [ngClass]="panelContainerClass()" [class]="panelStyleClass" [ngStyle]="panelStyle" tabindex="-1" [attr.data-pc-name]="'splitter'" [attr.data-pc-section]="'root'">
531
- <ng-container *ngTemplateOutlet="panel"></ng-container>
532
- </div>
533
- <div
534
- *ngIf="i !== panels.length - 1"
535
- class="p-splitter-gutter"
536
- role="separator"
537
- tabindex="-1"
538
- (mousedown)="onGutterMouseDown($event, i)"
539
- (touchstart)="onGutterTouchStart($event, i)"
540
- (touchmove)="onGutterTouchMove($event)"
541
- (touchend)="onGutterTouchEnd($event)"
542
- [attr.data-p-gutter-resizing]="false"
543
- [attr.data-pc-section]="'gutter'"
544
- >
545
- <div
546
- class="p-splitter-gutter-handle"
547
- tabindex="0"
548
- [ngStyle]="gutterStyle()"
549
- [attr.aria-orientation]="layout"
550
- [attr.aria-valuenow]="prevSize"
551
- [attr.data-pc-section]="'gutterhandle'"
552
- (keyup)="onGutterKeyUp($event)"
553
- (keydown)="onGutterKeyDown($event, i)"
554
- ></div>
555
- </div>
556
- </ng-template>
557
- </div>
558
- `,
559
- encapsulation: ViewEncapsulation.None,
560
- changeDetection: ChangeDetectionStrategy.OnPush,
561
- host: {
562
- '[class.p-splitter-panel-nested]': 'nested'
563
- },
564
- providers: [SplitterStyle]
565
- }]
566
- }], null, { styleClass: [{
567
- type: Input
568
- }], panelStyleClass: [{
569
- type: Input
570
- }], style: [{
571
- type: Input
572
- }], panelStyle: [{
573
- type: Input
574
- }], stateStorage: [{
575
- type: Input
576
- }], stateKey: [{
577
- type: Input
578
- }], layout: [{
579
- type: Input
580
- }], gutterSize: [{
581
- type: Input,
582
- args: [{ transform: numberAttribute }]
583
- }], step: [{
584
- type: Input,
585
- args: [{ transform: numberAttribute }]
586
- }], minSizes: [{
587
- type: Input,
588
- args: [{ transform: numberAttribute }]
589
- }], panelSizes: [{
590
- type: Input
591
- }], onResizeEnd: [{
592
- type: Output
593
- }], onResizeStart: [{
594
- type: Output
595
- }], containerViewChild: [{
596
- type: ViewChild,
597
- args: ['container', { static: false }]
598
- }], _templates: [{
599
- type: ContentChildren,
600
- args: [PrimeTemplate]
601
- }] }); })();
602
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(Splitter, { className: "Splitter" }); })();
603
- export class SplitterModule {
604
- static ɵfac = function SplitterModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SplitterModule)(); };
605
- static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SplitterModule });
606
- static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Splitter, SplitterPanel, SharedModule, SharedModule] });
607
- }
608
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SplitterModule, [{
609
- type: NgModule,
610
- args: [{
611
- imports: [Splitter, SplitterPanel, SharedModule],
612
- exports: [Splitter, SplitterPanel, SharedModule]
613
- }]
614
- }], null, null); })();
615
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(SplitterModule, { imports: [Splitter, SplitterPanel, SharedModule], exports: [Splitter, SplitterPanel, SharedModule] }); })();
616
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BsaXR0ZXIvc3BsaXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBbUIsZUFBZSxFQUFzQixZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMVAsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3SCxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7SUE4QmxDLHdCQUF1RDs7OztJQUUzRCw4QkFXQztJQUhHLEFBREEsQUFEQSxBQURBLG9PQUFhLHNDQUE0QixLQUFDLHlOQUM1Qix1Q0FBNkIsS0FBQyxpTEFDL0IsZ0NBQXlCLEtBQUMsK0tBQzNCLCtCQUF3QixLQUFDO0lBSXJDLDhCQVNDO0lBREcsQUFEQSxzTEFBUyw0QkFBcUIsS0FBQyxtTkFDcEIsb0NBQTBCLEtBQUM7SUFFOUMsQUFESyxpQkFBTSxFQUNMOzs7O0lBUEUsY0FBeUI7SUFBekIsOENBQXlCOzs7O0lBbEJqQyw4QkFBdUs7SUFDbksseUZBQXdDO0lBQzVDLGlCQUFNO0lBQ04sdUVBV0M7Ozs7O0lBZHNDLHFDQUF5QjtJ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LEVBQUUsQ0FBQyxhQUFhLENBQUM7YUFDN0I7Z0JBTVksVUFBVTtrQkFBbEIsS0FBSztZQUtHLGVBQWU7a0JBQXZCLEtBQUs7WUFLRyxLQUFLO2tCQUFiLEtBQUs7WUFLRyxVQUFVO2tCQUFsQixLQUFLO1lBS0csWUFBWTtrQkFBcEIsS0FBSztZQUtHLFFBQVE7a0JBQWhCLEtBQUs7WUFLRyxNQUFNO2tCQUFkLEtBQUs7WUFLaUMsVUFBVTtrQkFBaEQsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7WUFLRSxJQUFJO2tCQUExQyxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtZQUtFLFFBQVE7a0JBQTlDLEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO1lBS3hCLFVBQVU7a0JBQXRCLEtBQUs7WUF1QkksV0FBVztrQkFBcEIsTUFBTTtZQU1HLGFBQWE7a0JBQXRCLE1BQU07WUFFb0Msa0JBQWtCO2tCQUE1RCxTQUFTO21CQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUE2Q1QsVUFBVTtrQkFBekMsZUFBZTttQkFBQyxhQUFhOztrRkFuSXJCLFFBQVE7QUF3ZnJCLE1BQU0sT0FBTyxjQUFjO3dHQUFkLGNBQWM7NERBQWQsY0FBYztnRUFIYixRQUFRLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFDWixZQUFZOztpRkFFdEMsY0FBYztjQUoxQixRQUFRO2VBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUM7Z0JBQ2hELE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDO2FBQ25EOzt3RkFDWSxjQUFjLGNBeGZkLFFBQVEsRUFyRFIsYUFBYSxFQTBpQmEsWUFBWSxhQXJmdEMsUUFBUSxFQXJEUixhQUFhLEVBMmlCYSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgY29udGVudENoaWxkLCBjb250ZW50Q2hpbGRyZW4sIENvbnRlbnRDaGlsZHJlbiwgZWZmZWN0LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE5nTW9kdWxlLCBudW1iZXJBdHRyaWJ1dGUsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhZGRDbGFzcywgZ2V0SGVpZ2h0LCBnZXRPdXRlckhlaWdodCwgZ2V0T3V0ZXJXaWR0aCwgZ2V0V2lkdGgsIGhhc0NsYXNzLCBpc1JUTCwgcmVtb3ZlQ2xhc3MgfSBmcm9tICdAcHJpbWV1aXgvdXRpbHMnO1xuaW1wb3J0IHsgUHJpbWVUZW1wbGF0ZSwgU2hhcmVkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdWxsYWJsZSwgVm9pZExpc3RlbmVyIH0gZnJvbSAncHJpbWVuZy90cy1oZWxwZXJzJztcbmltcG9ydCB7IFNwbGl0dGVyUmVzaXplRW5kRXZlbnQsIFNwbGl0dGVyUmVzaXplU3RhcnRFdmVudCB9IGZyb20gJy4vc3BsaXR0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNwbGl0dGVyU3R5bGUgfSBmcm9tICcuL3N0eWxlL3NwbGl0dGVyc3R5bGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Atc3BsaXR0ZXItcGFuZWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAncC1zcGxpdHRlci1wYW5lbCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFNwbGl0dGVyUGFuZWwgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBzcGxpdHRlciA9IGNvbnRlbnRDaGlsZChTcGxpdHRlcik7XG5cbiAgICBuZXN0ZWRTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3BsaXR0ZXIoKSk7XG59XG5cbi8qKlxuICogU3BsaXR0ZXIgaXMgdXRpbGl6ZWQgdG8gc2VwYXJhdGUgYW5kIHJlc2l6ZSBwYW5lbHMuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Atc3BsaXR0ZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2hhcmVkTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2ICNjb250YWluZXIgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3MoKVwiIFtjbGFzc109XCJzdHlsZUNsYXNzXCIgW25nU3R5bGVdPVwic3R5bGVcIiBbYXR0ci5kYXRhLXBjLW5hbWVdPVwiJ3NwbGl0dGVyJ1wiIFthdHRyLmRhdGEtcC1ndXR0ZXItcmVzaXppbmddPVwiZmFsc2VcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3Jvb3QnXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LXBhbmVsIFtuZ0Zvck9mXT1cInBhbmVsc1wiIGxldC1pPVwiaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInBhbmVsQ29udGFpbmVyQ2xhc3MoKVwiIFtjbGFzc109XCJwYW5lbFN0eWxlQ2xhc3NcIiBbbmdTdHlsZV09XCJwYW5lbFN0eWxlXCIgdGFiaW5kZXg9XCItMVwiIFthdHRyLmRhdGEtcGMtbmFtZV09XCInc3BsaXR0ZXInXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidyb290J1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFuZWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaSAhPT0gcGFuZWxzLmxlbmd0aCAtIDFcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtc3BsaXR0ZXItZ3V0dGVyXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cInNlcGFyYXRvclwiXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uR3V0dGVyTW91c2VEb3duKCRldmVudCwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAodG91Y2hzdGFydCk9XCJvbkd1dHRlclRvdWNoU3RhcnQoJGV2ZW50LCBpKVwiXG4gICAgICAgICAgICAgICAgICAgICh0b3VjaG1vdmUpPVwib25HdXR0ZXJUb3VjaE1vdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICh0b3VjaGVuZCk9XCJvbkd1dHRlclRvdWNoRW5kKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXAtZ3V0dGVyLXJlc2l6aW5nXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidndXR0ZXInXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1zcGxpdHRlci1ndXR0ZXItaGFuZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJndXR0ZXJTdHlsZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtb3JpZW50YXRpb25dPVwibGF5b3V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtdmFsdWVub3ddPVwicHJldlNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidndXR0ZXJoYW5kbGUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvbkd1dHRlcktleVVwKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25HdXR0ZXJLZXlEb3duKCRldmVudCwgaSlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnAtc3BsaXR0ZXItcGFuZWwtbmVzdGVkXSc6ICduZXN0ZWQnXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtTcGxpdHRlclN0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBTcGxpdHRlciBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBwYW5lbC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwYW5lbFN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIHBhbmVsLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHBhbmVsU3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB3aGVyZSBhIHN0YXRlZnVsIHNwbGl0dGVyIGtlZXBzIGl0cyBzdGF0ZSwgdmFsaWQgdmFsdWVzIGFyZSAnc2Vzc2lvbicgZm9yIHNlc3Npb25TdG9yYWdlIGFuZCAnbG9jYWwnIGZvciBsb2NhbFN0b3JhZ2UuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3RhdGVTdG9yYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnc2Vzc2lvbic7XG4gICAgLyoqXG4gICAgICogU3RvcmFnZSBpZGVudGlmaWVyIG9mIGEgc3RhdGVmdWwgU3BsaXR0ZXIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3RhdGVLZXk6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIE9yaWVudGF0aW9uIG9mIHRoZSBwYW5lbHMuIFZhbGlkIHZhbHVlcyBhcmUgJ2hvcml6b250YWwnIGFuZCAndmVydGljYWwnLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGxheW91dDogc3RyaW5nIHwgdW5kZWZpbmVkID0gJ2hvcml6b250YWwnO1xuICAgIC8qKlxuICAgICAqIFNpemUgb2YgdGhlIGRpdmlkZXIgaW4gcGl4ZWxzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIGd1dHRlclNpemU6IG51bWJlciA9IDQ7XG4gICAgLyoqXG4gICAgICogU3RlcCBmYWN0b3IgdG8gaW5jcmVtZW50L2RlY3JlbWVudCB0aGUgc2l6ZSBvZiB0aGUgcGFuZWxzIHdoaWxlIHByZXNzaW5nIHRoZSBhcnJvdyBrZXlzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHN0ZXA6IG51bWJlciA9IDU7XG4gICAgLyoqXG4gICAgICogTWluaW11bSBzaXplIG9mIHRoZSBlbGVtZW50cyByZWxhdGl2ZSB0byAxMDAlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIG1pblNpemVzOiBudW1iZXJbXSA9IFtdO1xuICAgIC8qKlxuICAgICAqIFNpemUgb2YgdGhlIGVsZW1lbnRzIHJlbGF0aXZlIHRvIDEwMCUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZ2V0IHBhbmVsU2l6ZXMoKTogbnVtYmVyW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFuZWxTaXplcztcbiAgICB9XG4gICAgc2V0IHBhbmVsU2l6ZXModmFsOiBudW1iZXJbXSkge1xuICAgICAgICB0aGlzLl9wYW5lbFNpemVzID0gdmFsO1xuXG4gICAgICAgIGlmICh0aGlzLmVsICYmIHRoaXMuZWwubmF0aXZlRWxlbWVudCAmJiB0aGlzLnBhbmVscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBbLi4udGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNoaWxkcmVuXS5maWx0ZXIoKGNoaWxkKSA9PiBoYXNDbGFzcyhjaGlsZCwgJ3Atc3BsaXR0ZXItcGFuZWwnKSk7XG4gICAgICAgICAgICBsZXQgX3BhbmVsU2l6ZXMgPSBbXTtcblxuICAgICAgICAgICAgdGhpcy5wYW5lbHMubWFwKChwYW5lbCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBwYW5lbEluaXRpYWxTaXplID0gdGhpcy5wYW5lbFNpemVzLmxlbmd0aCAtIDEgPj0gaSA/IHRoaXMucGFuZWxTaXplc1tpXSA6IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IHBhbmVsU2l6ZSA9IHBhbmVsSW5pdGlhbFNpemUgfHwgMTAwIC8gdGhpcy5wYW5lbHMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIF9wYW5lbFNpemVzW2ldID0gcGFuZWxTaXplO1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuW2ldLnN0eWxlLmZsZXhCYXNpcyA9ICdjYWxjKCcgKyBwYW5lbFNpemUgKyAnJSAtICcgKyAodGhpcy5wYW5lbHMubGVuZ3RoIC0gMSkgKiB0aGlzLmd1dHRlclNpemUgKyAncHgpJztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIHJlc2l6ZSBlbmRzLlxuICAgICAqIEBwYXJhbSB7U3BsaXR0ZXJSZXNpemVFbmRFdmVudH0gZXZlbnQgLSBDdXN0b20gcGFuZWwgcmVzaXplIGVuZCBldmVudFxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblJlc2l6ZUVuZDogRXZlbnRFbWl0dGVyPFNwbGl0dGVyUmVzaXplRW5kRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTcGxpdHRlclJlc2l6ZUVuZEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIHJlc2l6ZSBzdGFydHMuXG4gICAgICogQHBhcmFtIHtTcGxpdHRlclJlc2l6ZVN0YXJ0RXZlbnR9IGV2ZW50IC0gQ3VzdG9tIHBhbmVsIHJlc2l6ZSBzdGFydCBldmVudFxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblJlc2l6ZVN0YXJ0OiBFdmVudEVtaXR0ZXI8U3BsaXR0ZXJSZXNpemVTdGFydEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3BsaXR0ZXJSZXNpemVTdGFydEV2ZW50PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNvbnRhaW5lclZpZXdDaGlsZDogTnVsbGFibGU8RWxlbWVudFJlZj47XG5cbiAgICBuZXN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHBhbmVsczogYW55W10gPSBbXTtcblxuICAgIGRyYWdnaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBtb3VzZU1vdmVMaXN0ZW5lcjogVm9pZExpc3RlbmVyO1xuXG4gICAgbW91c2VVcExpc3RlbmVyOiBWb2lkTGlzdGVuZXI7XG5cbiAgICB0b3VjaE1vdmVMaXN0ZW5lcjogVm9pZExpc3RlbmVyO1xuXG4gICAgdG91Y2hFbmRMaXN0ZW5lcjogVm9pZExpc3RlbmVyO1xuXG4gICAgc2l6ZTogTnVsbGFibGU8bnVtYmVyPjtcblxuICAgIGd1dHRlckVsZW1lbnQ6IE51bGxhYmxlPEVsZW1lbnRSZWYgfCBIVE1MRWxlbWVudD47XG5cbiAgICBzdGFydFBvczogTnVsbGFibGU8bnVtYmVyPjtcblxuICAgIHByZXZQYW5lbEVsZW1lbnQ6IE51bGxhYmxlPEVsZW1lbnRSZWYgfCBIVE1MRWxlbWVudD47XG5cbiAgICBuZXh0UGFuZWxFbGVtZW50OiBOdWxsYWJsZTxFbGVtZW50UmVmIHwgSFRNTEVsZW1lbnQ+O1xuXG4gICAgbmV4dFBhbmVsU2l6ZTogTnVsbGFibGU8bnVtYmVyPjtcblxuICAgIHByZXZQYW5lbFNpemU6IE51bGxhYmxlPG51bWJlcj47XG5cbiAgICBfcGFuZWxTaXplczogbnVtYmVyW10gPSBbXTtcblxuICAgIHByZXZQYW5lbEluZGV4OiBOdWxsYWJsZTxudW1iZXI+O1xuXG4gICAgdGltZXI6IGFueTtcblxuICAgIHByZXZTaXplOiBhbnk7XG5cbiAgICBfY29tcG9uZW50U3R5bGUgPSBpbmplY3QoU3BsaXR0ZXJTdHlsZSk7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5uZXN0ZWQgPSB0aGlzLmlzTmVzdGVkKCk7XG4gICAgfVxuXG4gICAgQENvbnRlbnRDaGlsZHJlbihQcmltZVRlbXBsYXRlKSBfdGVtcGxhdGVzITogUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+O1xuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLl90ZW1wbGF0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3BhbmVsJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbHMucHVzaChpdGVtLnRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbHMucHVzaChpdGVtLnRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wYW5lbHMgJiYgdGhpcy5wYW5lbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTdGF0ZWZ1bCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVkID0gdGhpcy5yZXN0b3JlU3RhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjaGlsZHJlbiA9IFsuLi50aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2hpbGRyZW5dLmZpbHRlcigoY2hpbGQpID0+IGhhc0NsYXNzKGNoaWxkLCAncC1zcGxpdHRlci1wYW5lbCcpKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IF9wYW5lbFNpemVzID0gW107XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbHMubWFwKChwYW5lbCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhbmVsSW5pdGlhbFNpemUgPSB0aGlzLnBhbmVsU2l6ZXMubGVuZ3RoIC0gMSA+PSBpID8gdGhpcy5wYW5lbFNpemVzW2ldIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYW5lbFNpemUgPSBwYW5lbEluaXRpYWxTaXplIHx8IDEwMCAvIHRoaXMucGFuZWxzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9wYW5lbFNpemVzW2ldID0gcGFuZWxTaXplO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5baV0uc3R5bGUuZmxleEJhc2lzID0gJ2NhbGMoJyArIHBhbmVsU2l6ZSArICclIC0gJyArICh0aGlzLnBhbmVscy5sZW5ndGggLSAxKSAqICh0aGlzLmd1dHRlclNpemUgYXMgbnVtYmVyKSArICdweCknO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYW5lbFNpemVzID0gX3BhbmVsU2l6ZXM7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2U2l6ZSA9IHBhcnNlRmxvYXQoX3BhbmVsU2l6ZXNbMF0pLnRvRml4ZWQoNCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVzaXplU3RhcnQoZXZlbnQ6IFRvdWNoRXZlbnQgfCBNb3VzZUV2ZW50LCBpbmRleDogbnVtYmVyLCBpc0tleURvd24/OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZ3V0dGVyRWxlbWVudCA9IChldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50KSB8fCAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50O1xuICAgICAgICB0aGlzLnNpemUgPSB0aGlzLmhvcml6b250YWwoKSA/IGdldFdpZHRoKCh0aGlzLmNvbnRhaW5lclZpZXdDaGlsZCBhcyBFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50KSA6IGdldEhlaWdodCgodGhpcy5jb250YWluZXJWaWV3Q2hpbGQgYXMgRWxlbWVudFJlZikubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgaWYgKCFpc0tleURvd24pIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zdGFydFBvcyA9IHRoaXMuaG9yaXpvbnRhbCgpID8gKGV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCA/IGV2ZW50LnBhZ2VYIDogZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVgpIDogZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50ID8gZXZlbnQucGFnZVkgOiBldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJldlBhbmVsRWxlbWVudCA9IHRoaXMuZ3V0dGVyRWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICB0aGlzLm5leHRQYW5lbEVsZW1lbnQgPSB0aGlzLmd1dHRlckVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIGlmIChpc0tleURvd24pIHtcbiAgICAgICAgICAgIHRoaXMucHJldlBhbmVsU2l6ZSA9IHRoaXMuaG9yaXpvbnRhbCgpID8gZ2V0T3V0ZXJXaWR0aCh0aGlzLnByZXZQYW5lbEVsZW1lbnQsIHRydWUpIDogZ2V0T3V0ZXJIZWlnaHQodGhpcy5wcmV2UGFuZWxFbGVtZW50LCB0cnVlKTtcbiAgICAgICAgICAgIHRoaXMubmV4dFBhbmVsU2l6ZSA9IHRoaXMuaG9yaXpvbnRhbCgpID8gZ2V0T3V0ZXJXaWR0aCh0aGlzLm5leHRQYW5lbEVsZW1lbnQsIHRydWUpIDogZ2V0T3V0ZXJIZWlnaHQodGhpcy5uZXh0UGFuZWxFbGVtZW50LCB0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJldlBhbmVsU2l6ZSA9ICgxMDAgKiAodGhpcy5ob3Jpem9udGFsKCkgPyBnZXRPdXRlcldpZHRoKHRoaXMucHJldlBhbmVsRWxlbWVudCwgdHJ1ZSkgOiBnZXRPdXRlckhlaWdodCh0aGlzLnByZXZQYW5lbEVsZW1lbnQsIHRydWUpKSkgLyB0aGlzLnNpemU7XG4gICAgICAgICAgICB0aGlzLm5leHRQYW5lbFNpemUgPSAoMTAwICogKHRoaXMuaG9yaXpvbnRhbCgpID8gZ2V0T3V0ZXJXaWR0aCh0aGlzLm5leHRQYW5lbEVsZW1lbnQsIHRydWUpIDogZ2V0T3V0ZXJIZWlnaHQodGhpcy5uZXh0UGFuZWxFbGVtZW50LCB0cnVlKSkpIC8gdGhpcy5zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcmV2UGFuZWxJbmRleCA9IGluZGV4O1xuICAgICAgICBhZGRDbGFzcyh0aGlzLmd1dHRlckVsZW1lbnQsICdwLXNwbGl0dGVyLWd1dHRlci1yZXNpemluZycpO1xuICAgICAgICB0aGlzLmd1dHRlckVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLXAtZ3V0dGVyLXJlc2l6aW5nJywgJ3RydWUnKTtcbiAgICAgICAgYWRkQ2xhc3MoKHRoaXMuY29udGFpbmVyVmlld0NoaWxkIGFzIEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQsICdwLXNwbGl0dGVyLXJlc2l6aW5nJyk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyVmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLXAtcmVzaXppbmcnLCAndHJ1ZScpO1xuICAgICAgICB0aGlzLm9uUmVzaXplU3RhcnQuZW1pdCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBzaXplczogdGhpcy5fcGFuZWxTaXplcyBhcyBudW1iZXJbXSB9KTtcbiAgICB9XG5cbiAgICBvblJlc2l6ZShldmVudDogTW91c2VFdmVudCwgc3RlcD86IG51bWJlciwgaXNLZXlEb3duPzogYm9vbGVhbikge1xuICAgICAgICBsZXQgbmV3UG9zLCBuZXdQcmV2UGFuZWxTaXplLCBuZXdOZXh0UGFuZWxTaXplO1xuXG4gICAgICAgIGlmIChpc0tleURvd24pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmhvcml6b250YWwoKSkge1xuICAgICAgICAgICAgICAgIG5ld1ByZXZQYW5lbFNpemUgPSAoMTAwICogKHRoaXMucHJldlBhbmVsU2l6ZSArIHN0ZXApKSAvIHRoaXMuc2l6ZTtcbiAgICAgICAgICAgICAgICBuZXdOZXh0UGFuZWxTaXplID0gKDEwMCAqICh0aGlzLm5leHRQYW5lbFNpemUgLSBzdGVwKSkgLyB0aGlzLnNpemU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld1ByZXZQYW5lbFNpemUgPSAoMTAwICogKHRoaXMucHJldlBhbmVsU2l6ZSAtIHN0ZXApKSAvIHRoaXMuc2l6ZTtcbiAgICAgICAgICAgICAgICBuZXdOZXh0UGFuZWxTaXplID0gKDEwMCAqICh0aGlzLm5leHRQYW5lbFNpemUgKyBzdGVwKSkgLyB0aGlzLnNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5ob3Jpem9udGFsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUlRMKHRoaXMuZWwubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3UG9zID0gKCh0aGlzLnN0YXJ0UG9zIC0gZXZlbnQucGFnZVgpICogMTAwKSAvIHRoaXMuc2l6ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuZXdQb3MgPSAoKGV2ZW50LnBhZ2VYIC0gdGhpcy5zdGFydFBvcykgKiAxMDApIC8gdGhpcy5zaXplO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3UG9zID0gKChldmVudC5wYWdlWSAtIHRoaXMuc3RhcnRQb3MpICogMTAwKSAvIHRoaXMuc2l6ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbmV3UHJldlBhbmVsU2l6ZSA9ICh0aGlzLnByZXZQYW5lbFNpemUgYXMgbnVtYmVyKSArIG5ld1BvcztcbiAgICAgICAgICAgIG5ld05leHRQYW5lbFNpemUgPSAodGhpcy5uZXh0UGFuZWxTaXplIGFzIG51bWJlcikgLSBuZXdQb3M7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByZXZTaXplID0gcGFyc2VGbG9hdChuZXdQcmV2UGFuZWxTaXplKS50b0ZpeGVkKDQpO1xuXG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRlUmVzaXplKG5ld1ByZXZQYW5lbFNpemUsIG5ld05leHRQYW5lbFNpemUpKSB7XG4gICAgICAgICAgICAodGhpcy5wcmV2UGFuZWxFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS5mbGV4QmFzaXMgPSAnY2FsYygnICsgbmV3UHJldlBhbmVsU2l6ZSArICclIC0gJyArICh0aGlzLnBhbmVscy5sZW5ndGggLSAxKSAqIHRoaXMuZ3V0dGVyU2l6ZSArICdweCknO1xuICAgICAgICAgICAgKHRoaXMubmV4dFBhbmVsRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZmxleEJhc2lzID0gJ2NhbGMoJyArIG5ld05leHRQYW5lbFNpemUgKyAnJSAtICcgKyAodGhpcy5wYW5lbHMubGVuZ3RoIC0gMSkgKiB0aGlzLmd1dHRlclNpemUgKyAncHgpJztcbiAgICAgICAgICAgIHRoaXMuX3BhbmVsU2l6ZXNbdGhpcy5wcmV2UGFuZWxJbmRleCBhcyBudW1iZXJdID0gbmV3UHJldlBhbmVsU2l6ZTtcbiAgICAgICAgICAgIHRoaXMuX3BhbmVsU2l6ZXNbKHRoaXMucHJldlBhbmVsSW5kZXggYXMgbnVtYmVyKSArIDFdID0gbmV3TmV4dFBhbmVsU2l6ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlc2l6ZUVuZChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdGF0ZWZ1bCgpKSB7XG4gICAgICAgICAgICB0aGlzLnNhdmVTdGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vblJlc2l6ZUVuZC5lbWl0KHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIHNpemVzOiB0aGlzLl9wYW5lbFNpemVzIH0pO1xuICAgICAgICByZW1vdmVDbGFzcyh0aGlzLmd1dHRlckVsZW1lbnQgYXMgYW55LCAncC1zcGxpdHRlci1ndXR0ZXItcmVzaXppbmcnKTtcbiAgICAgICAgcmVtb3ZlQ2xhc3MoKHRoaXMuY29udGFpbmVyVmlld0NoaWxkIGFzIEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQsICdwLXNwbGl0dGVyLXJlc2l6aW5nJyk7XG4gICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICB9XG5cbiAgICBvbkd1dHRlck1vdXNlRG93bihldmVudDogTW91c2VFdmVudCwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnJlc2l6ZVN0YXJ0KGV2ZW50LCBpbmRleCk7XG4gICAgICAgIHRoaXMuYmluZE1vdXNlTGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgb25HdXR0ZXJUb3VjaFN0YXJ0KGV2ZW50OiBUb3VjaEV2ZW50LCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmIChldmVudC5jYW5jZWxhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZVN0YXJ0KGV2ZW50LCBpbmRleCk7XG4gICAgICAgICAgICB0aGlzLmJpbmRUb3VjaExpc3RlbmVycygpO1xuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25HdXR0ZXJUb3VjaE1vdmUoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5vblJlc2l6ZShldmVudCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25HdXR0ZXJUb3VjaEVuZChldmVudDogVG91Y2hFdmVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUVuZChldmVudCk7XG4gICAgICAgIHRoaXMudW5iaW5kVG91Y2hMaXN0ZW5lcnMoKTtcblxuICAgICAgICBpZiAoZXZlbnQuY2FuY2VsYWJsZSkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICByZXBlYXQoZXZlbnQsIGluZGV4LCBzdGVwKSB7XG4gICAgICAgIHRoaXMucmVzaXplU3RhcnQoZXZlbnQsIGluZGV4LCB0cnVlKTtcbiAgICAgICAgdGhpcy5vblJlc2l6ZShldmVudCwgc3RlcCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgc2V0VGltZXIoZXZlbnQsIGluZGV4LCBzdGVwKSB7XG4gICAgICAgIHRoaXMuY2xlYXJUaW1lcigpO1xuICAgICAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlcGVhdChldmVudCwgaW5kZXgsIHN0ZXApO1xuICAgICAgICB9LCA0MCk7XG4gICAgfVxuXG4gICAgY2xlYXJUaW1lcigpIHtcbiAgICAgICAgaWYgKHRoaXMudGltZXIpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uR3V0dGVyS2V5VXAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5jbGVhclRpbWVyKCk7XG4gICAgICAgIHRoaXMucmVzaXplRW5kKGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkd1dHRlcktleURvd24oZXZlbnQsIGluZGV4KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0Jzoge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxheW91dCA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VGltZXIoZXZlbnQsIGluZGV4LCB0aGlzLnN0ZXAgKiAtMSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXlvdXQgPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFRpbWVyKGV2ZW50LCBpbmRleCwgdGhpcy5zdGVwKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0ID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VGltZXIoZXZlbnQsIGluZGV4LCB0aGlzLnN0ZXAgKiAtMSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXlvdXQgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRUaW1lcihldmVudCwgaW5kZXgsIHRoaXMuc3RlcCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAvL25vIG9wXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YWxpZGF0ZVJlc2l6ZShuZXdQcmV2UGFuZWxTaXplOiBudW1iZXIsIG5ld05leHRQYW5lbFNpemU6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5taW5TaXplcy5sZW5ndGggPj0gMSAmJiB0aGlzLm1pblNpemVzWzBdICYmIHRoaXMubWluU2l6ZXNbMF0gPiBuZXdQcmV2UGFuZWxTaXplKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5taW5TaXplcy5sZW5ndGggPiAxICYmIHRoaXMubWluU2l6ZXNbMV0gJiYgdGhpcy5taW5TaXplc1sxXSA+IG5ld05leHRQYW5lbFNpemUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGJpbmRNb3VzZUxpc3RlbmVycygpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1vdXNlTW92ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm1vdXNlTW92ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ21vdXNlbW92ZScsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25SZXNpemUoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMubW91c2VVcExpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm1vdXNlVXBMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZG9jdW1lbnQsICdtb3VzZXVwJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNpemVFbmQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMudW5iaW5kTW91c2VMaXN0ZW5lcnMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYmluZFRvdWNoTGlzdGVuZXJzKCkge1xuICAgICAgICBpZiAoIXRoaXMudG91Y2hNb3ZlTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMudG91Y2hNb3ZlTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmRvY3VtZW50LCAndG91Y2htb3ZlJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblJlc2l6ZShldmVudC5jaGFuZ2VkVG91Y2hlc1swXSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy50b3VjaEVuZExpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnRvdWNoRW5kTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmRvY3VtZW50LCAndG91Y2hlbmQnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZUVuZChldmVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy51bmJpbmRUb3VjaExpc3RlbmVycygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJpbmRNb3VzZUxpc3RlbmVycygpIHtcbiAgICAgICAgaWYgKHRoaXMubW91c2VNb3ZlTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMubW91c2VNb3ZlTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHRoaXMubW91c2VNb3ZlTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW91c2VVcExpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm1vdXNlVXBMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy5tb3VzZVVwTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5iaW5kVG91Y2hMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGlmICh0aGlzLnRvdWNoTW92ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnRvdWNoTW92ZUxpc3RlbmVyKCk7XG4gICAgICAgICAgICB0aGlzLnRvdWNoTW92ZUxpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRvdWNoRW5kTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMudG91Y2hFbmRMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy50b3VjaEVuZExpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFyKCkge1xuICAgICAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2l6ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuc3RhcnRQb3MgPSBudWxsO1xuICAgICAgICB0aGlzLnByZXZQYW5lbEVsZW1lbnQgPSBudWxsO1xuICAgICAgICB0aGlzLm5leHRQYW5lbEVsZW1lbnQgPSBudWxsO1xuICAgICAgICB0aGlzLnByZXZQYW5lbFNpemUgPSBudWxsO1xuICAgICAgICB0aGlzLm5leHRQYW5lbFNpemUgPSBudWxsO1xuICAgICAgICB0aGlzLmd1dHRlckVsZW1lbnQgPSBudWxsO1xuICAgICAgICB0aGlzLnByZXZQYW5lbEluZGV4ID0gbnVsbDtcbiAgICB9XG5cbiAgICBpc05lc3RlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgbGV0IHBhcmVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgd2hpbGUgKHBhcmVudCAmJiAhaGFzQ2xhc3MocGFyZW50LCAncC1zcGxpdHRlcicpKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQgIT09IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1N0YXRlZnVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZUtleSAhPSBudWxsO1xuICAgIH1cblxuICAgIGdldFN0b3JhZ2UoKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuc3RhdGVTdG9yYWdlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnbG9jYWwnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5kZWZhdWx0Vmlldy5sb2NhbFN0b3JhZ2U7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdzZXNzaW9uJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcuc2Vzc2lvblN0b3JhZ2U7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5zdGF0ZVN0b3JhZ2UgKyAnIGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB0aGUgc3RhdGUgc3RvcmFnZSwgc3VwcG9ydGVkIHZhbHVlcyBhcmUgXCJsb2NhbFwiIGFuZCBcInNlc3Npb25cIi4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU3RvcmFnZSBpcyBub3QgYSBhdmFpbGFibGUgYnkgZGVmYXVsdCBvbiB0aGUgc2VydmVyLicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2F2ZVN0YXRlKCkge1xuICAgICAgICB0aGlzLmdldFN0b3JhZ2UoKS5zZXRJdGVtKHRoaXMuc3RhdGVLZXkgYXMgc3RyaW5nLCBKU09OLnN0cmluZ2lmeSh0aGlzLl9wYW5lbFNpemVzKSk7XG4gICAgfVxuXG4gICAgcmVzdG9yZVN0YXRlKCkge1xuICAgICAgICBjb25zdCBzdG9yYWdlID0gdGhpcy5nZXRTdG9yYWdlKCk7XG4gICAgICAgIGNvbnN0IHN0YXRlU3RyaW5nID0gc3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhdGVLZXkgYXMgc3RyaW5nKTtcblxuICAgICAgICBpZiAoc3RhdGVTdHJpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhbmVsU2l6ZXMgPSBKU09OLnBhcnNlKHN0YXRlU3RyaW5nKTtcbiAgICAgICAgICAgIGxldCBjaGlsZHJlbiA9IFsuLi4odGhpcy5jb250YWluZXJWaWV3Q2hpbGQgYXMgRWxlbWVudFJlZikubmF0aXZlRWxlbWVudC5jaGlsZHJlbl0uZmlsdGVyKChjaGlsZCkgPT4gaGFzQ2xhc3MoY2hpbGQsICdwLXNwbGl0dGVyLXBhbmVsJykpO1xuICAgICAgICAgICAgY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQsIGkpID0+IHtcbiAgICAgICAgICAgICAgICBjaGlsZC5zdHlsZS5mbGV4QmFzaXMgPSAnY2FsYygnICsgdGhpcy5fcGFuZWxTaXplc1tpXSArICclIC0gJyArICh0aGlzLnBhbmVscy5sZW5ndGggLSAxKSAqIHRoaXMuZ3V0dGVyU2l6ZSArICdweCknO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnRhaW5lckNsYXNzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ3Atc3BsaXR0ZXIgcC1jb21wb25lbnQnOiB0cnVlLFxuICAgICAgICAgICAgJ3Atc3BsaXR0ZXItaG9yaXpvbnRhbCc6IHRoaXMubGF5b3V0ID09PSAnaG9yaXpvbnRhbCcsXG4gICAgICAgICAgICAncC1zcGxpdHRlci12ZXJ0aWNhbCc6IHRoaXMubGF5b3V0ID09PSAndmVydGljYWwnXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcGFuZWxDb250YWluZXJDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdwLXNwbGl0dGVyLXBhbmVsJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLXNwbGl0dGVyLXBhbmVsLW5lc3RlZCc6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBndXR0ZXJTdHlsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaG9yaXpvbnRhbCgpKSByZXR1cm4geyB3aWR0aDogdGhpcy5ndXR0ZXJTaXplICsgJ3B4JyB9O1xuICAgICAgICBlbHNlIHJldHVybiB7IGhlaWdodDogdGhpcy5ndXR0ZXJTaXplICsgJ3B4JyB9O1xuICAgIH1cblxuICAgIGhvcml6b250YWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dCA9PT0gJ2hvcml6b250YWwnO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbU3BsaXR0ZXIsIFNwbGl0dGVyUGFuZWwsIFNoYXJlZE1vZHVsZV0sXG4gICAgZXhwb3J0czogW1NwbGl0dGVyLCBTcGxpdHRlclBhbmVsLCBTaGFyZWRNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFNwbGl0dGVyTW9kdWxlIHt9XG4iXX0=