primeng 18.0.0 → 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 (1077) hide show
  1. package/base/style/basestyle.d.ts +11 -11
  2. package/fesm2022/primeng-accordion.mjs +12 -12
  3. package/fesm2022/primeng-accordion.mjs.map +1 -1
  4. package/fesm2022/primeng-animateonscroll.mjs +1 -1
  5. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  6. package/fesm2022/primeng-api.mjs +5 -5
  7. package/fesm2022/primeng-api.mjs.map +1 -1
  8. package/fesm2022/primeng-autocomplete.mjs +2 -2
  9. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  10. package/fesm2022/primeng-autofocus.mjs +1 -1
  11. package/fesm2022/primeng-autofocus.mjs.map +1 -1
  12. package/fesm2022/primeng-avatar.mjs +2 -2
  13. package/fesm2022/primeng-avatar.mjs.map +1 -1
  14. package/fesm2022/primeng-avatargroup.mjs +2 -2
  15. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  16. package/fesm2022/primeng-badge.mjs +3 -3
  17. package/fesm2022/primeng-badge.mjs.map +1 -1
  18. package/fesm2022/primeng-basecomponent.mjs +1 -1
  19. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  20. package/fesm2022/primeng-blockui.mjs +2 -2
  21. package/fesm2022/primeng-blockui.mjs.map +1 -1
  22. package/fesm2022/primeng-breadcrumb.mjs +2 -2
  23. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  24. package/fesm2022/primeng-button.mjs +5 -5
  25. package/fesm2022/primeng-button.mjs.map +1 -1
  26. package/fesm2022/primeng-buttongroup.mjs +2 -2
  27. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  28. package/fesm2022/primeng-calendar.mjs +2 -2
  29. package/fesm2022/primeng-calendar.mjs.map +1 -1
  30. package/fesm2022/primeng-card.mjs +2 -2
  31. package/fesm2022/primeng-card.mjs.map +1 -1
  32. package/fesm2022/primeng-carousel.mjs +2 -2
  33. package/fesm2022/primeng-carousel.mjs.map +1 -1
  34. package/fesm2022/primeng-cascadeselect.mjs +6 -6
  35. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  36. package/fesm2022/primeng-chart.mjs +2 -2
  37. package/fesm2022/primeng-chart.mjs.map +1 -1
  38. package/fesm2022/primeng-checkbox.mjs +3 -4
  39. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  40. package/fesm2022/primeng-chip.mjs +2 -2
  41. package/fesm2022/primeng-chip.mjs.map +1 -1
  42. package/fesm2022/primeng-colorpicker.mjs +2 -2
  43. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  44. package/fesm2022/primeng-config.mjs +1 -1
  45. package/fesm2022/primeng-config.mjs.map +1 -1
  46. package/fesm2022/primeng-confirmdialog.mjs +4 -6
  47. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  48. package/fesm2022/primeng-confirmpopup.mjs +2 -2
  49. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  50. package/fesm2022/primeng-contextmenu.mjs +5 -5
  51. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  52. package/fesm2022/primeng-dataview.mjs +2 -2
  53. package/fesm2022/primeng-dataview.mjs.map +1 -1
  54. package/fesm2022/primeng-datepicker.mjs +2 -2
  55. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  56. package/fesm2022/primeng-defer.mjs +1 -1
  57. package/fesm2022/primeng-dialog.mjs +3 -4
  58. package/fesm2022/primeng-dialog.mjs.map +1 -1
  59. package/fesm2022/primeng-divider.mjs +2 -2
  60. package/fesm2022/primeng-divider.mjs.map +1 -1
  61. package/fesm2022/primeng-dock.mjs +3 -4
  62. package/fesm2022/primeng-dock.mjs.map +1 -1
  63. package/fesm2022/primeng-dragdrop.mjs +2 -2
  64. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  65. package/fesm2022/primeng-drawer.mjs +2 -2
  66. package/fesm2022/primeng-drawer.mjs.map +1 -1
  67. package/fesm2022/primeng-dropdown.mjs +4 -4
  68. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  69. package/fesm2022/primeng-dynamicdialog.mjs +3 -3
  70. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  71. package/fesm2022/primeng-editor.mjs +2 -2
  72. package/fesm2022/primeng-editor.mjs.map +1 -1
  73. package/fesm2022/primeng-fieldset.mjs +2 -2
  74. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  75. package/fesm2022/primeng-fileupload.mjs +3 -4
  76. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  77. package/fesm2022/primeng-floatlabel.mjs +2 -2
  78. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  79. package/fesm2022/primeng-fluid.mjs +2 -2
  80. package/fesm2022/primeng-fluid.mjs.map +1 -1
  81. package/fesm2022/primeng-focustrap.mjs +1 -1
  82. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  83. package/fesm2022/primeng-galleria.mjs +10 -10
  84. package/fesm2022/primeng-galleria.mjs.map +1 -1
  85. package/fesm2022/primeng-iconfield.mjs +2 -2
  86. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  87. package/fesm2022/primeng-icons-angledoubledown.mjs +2 -2
  88. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
  89. package/fesm2022/primeng-icons-angledoubleleft.mjs +2 -2
  90. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
  91. package/fesm2022/primeng-icons-angledoubleright.mjs +2 -2
  92. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
  93. package/fesm2022/primeng-icons-angledoubleup.mjs +2 -2
  94. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
  95. package/fesm2022/primeng-icons-angledown.mjs +2 -2
  96. package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
  97. package/fesm2022/primeng-icons-angleleft.mjs +2 -2
  98. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
  99. package/fesm2022/primeng-icons-angleright.mjs +2 -2
  100. package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
  101. package/fesm2022/primeng-icons-angleup.mjs +2 -2
  102. package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
  103. package/fesm2022/primeng-icons-arrowdown.mjs +2 -2
  104. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
  105. package/fesm2022/primeng-icons-arrowdownleft.mjs +2 -2
  106. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
  107. package/fesm2022/primeng-icons-arrowdownright.mjs +2 -2
  108. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
  109. package/fesm2022/primeng-icons-arrowleft.mjs +2 -2
  110. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
  111. package/fesm2022/primeng-icons-arrowright.mjs +2 -2
  112. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
  113. package/fesm2022/primeng-icons-arrowup.mjs +2 -2
  114. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
  115. package/fesm2022/primeng-icons-ban.mjs +2 -2
  116. package/fesm2022/primeng-icons-ban.mjs.map +1 -1
  117. package/fesm2022/primeng-icons-bars.mjs +2 -2
  118. package/fesm2022/primeng-icons-bars.mjs.map +1 -1
  119. package/fesm2022/primeng-icons-baseicon.mjs +2 -2
  120. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
  121. package/fesm2022/primeng-icons-blank.mjs +2 -2
  122. package/fesm2022/primeng-icons-blank.mjs.map +1 -1
  123. package/fesm2022/primeng-icons-calendar.mjs +2 -2
  124. package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
  125. package/fesm2022/primeng-icons-caretleft.mjs +2 -2
  126. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
  127. package/fesm2022/primeng-icons-caretright.mjs +2 -2
  128. package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
  129. package/fesm2022/primeng-icons-check.mjs +2 -2
  130. package/fesm2022/primeng-icons-check.mjs.map +1 -1
  131. package/fesm2022/primeng-icons-chevrondown.mjs +2 -2
  132. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
  133. package/fesm2022/primeng-icons-chevronleft.mjs +2 -2
  134. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
  135. package/fesm2022/primeng-icons-chevronright.mjs +2 -2
  136. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
  137. package/fesm2022/primeng-icons-chevronup.mjs +2 -2
  138. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
  139. package/fesm2022/primeng-icons-exclamationtriangle.mjs +2 -2
  140. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
  141. package/fesm2022/primeng-icons-eye.mjs +2 -2
  142. package/fesm2022/primeng-icons-eye.mjs.map +1 -1
  143. package/fesm2022/primeng-icons-eyeslash.mjs +2 -2
  144. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
  145. package/fesm2022/primeng-icons-filter.mjs +2 -2
  146. package/fesm2022/primeng-icons-filter.mjs.map +1 -1
  147. package/fesm2022/primeng-icons-filterslash.mjs +2 -2
  148. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
  149. package/fesm2022/primeng-icons-home.mjs +2 -2
  150. package/fesm2022/primeng-icons-home.mjs.map +1 -1
  151. package/fesm2022/primeng-icons-infocircle.mjs +2 -2
  152. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
  153. package/fesm2022/primeng-icons-minus.mjs +2 -2
  154. package/fesm2022/primeng-icons-minus.mjs.map +1 -1
  155. package/fesm2022/primeng-icons-pencil.mjs +2 -2
  156. package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
  157. package/fesm2022/primeng-icons-plus.mjs +2 -2
  158. package/fesm2022/primeng-icons-plus.mjs.map +1 -1
  159. package/fesm2022/primeng-icons-refresh.mjs +2 -2
  160. package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
  161. package/fesm2022/primeng-icons-search.mjs +2 -2
  162. package/fesm2022/primeng-icons-search.mjs.map +1 -1
  163. package/fesm2022/primeng-icons-searchminus.mjs +2 -2
  164. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
  165. package/fesm2022/primeng-icons-searchplus.mjs +2 -2
  166. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
  167. package/fesm2022/primeng-icons-sortalt.mjs +2 -2
  168. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
  169. package/fesm2022/primeng-icons-sortamountdown.mjs +2 -2
  170. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
  171. package/fesm2022/primeng-icons-sortamountupalt.mjs +2 -2
  172. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
  173. package/fesm2022/primeng-icons-spinner.mjs +2 -2
  174. package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
  175. package/fesm2022/primeng-icons-star.mjs +2 -2
  176. package/fesm2022/primeng-icons-star.mjs.map +1 -1
  177. package/fesm2022/primeng-icons-starfill.mjs +2 -2
  178. package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
  179. package/fesm2022/primeng-icons-thlarge.mjs +2 -2
  180. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
  181. package/fesm2022/primeng-icons-times.mjs +2 -2
  182. package/fesm2022/primeng-icons-times.mjs.map +1 -1
  183. package/fesm2022/primeng-icons-timescircle.mjs +2 -2
  184. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
  185. package/fesm2022/primeng-icons-trash.mjs +2 -2
  186. package/fesm2022/primeng-icons-trash.mjs.map +1 -1
  187. package/fesm2022/primeng-icons-undo.mjs +2 -2
  188. package/fesm2022/primeng-icons-undo.mjs.map +1 -1
  189. package/fesm2022/primeng-icons-upload.mjs +2 -2
  190. package/fesm2022/primeng-icons-upload.mjs.map +1 -1
  191. package/fesm2022/primeng-icons-windowmaximize.mjs +2 -2
  192. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
  193. package/fesm2022/primeng-icons-windowminimize.mjs +2 -2
  194. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
  195. package/fesm2022/primeng-iftalabel.mjs +2 -2
  196. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  197. package/fesm2022/primeng-image.mjs +2 -2
  198. package/fesm2022/primeng-image.mjs.map +1 -1
  199. package/fesm2022/primeng-imagecompare.mjs +2 -2
  200. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  201. package/fesm2022/primeng-inplace.mjs +6 -6
  202. package/fesm2022/primeng-inplace.mjs.map +1 -1
  203. package/fesm2022/primeng-inputgroup.mjs +2 -2
  204. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  205. package/fesm2022/primeng-inputgroupaddon.mjs +2 -2
  206. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  207. package/fesm2022/primeng-inputicon.mjs +2 -2
  208. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  209. package/fesm2022/primeng-inputmask.mjs +2 -2
  210. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  211. package/fesm2022/primeng-inputnumber.mjs +3 -4
  212. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  213. package/fesm2022/primeng-inputotp.mjs +2 -2
  214. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  215. package/fesm2022/primeng-inputswitch.mjs +2 -2
  216. package/fesm2022/primeng-inputswitch.mjs.map +1 -1
  217. package/fesm2022/primeng-inputtext.mjs +1 -1
  218. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  219. package/fesm2022/primeng-inputtextarea.mjs +1 -1
  220. package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
  221. package/fesm2022/primeng-keyfilter.mjs +1 -1
  222. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  223. package/fesm2022/primeng-knob.mjs +2 -2
  224. package/fesm2022/primeng-knob.mjs.map +1 -1
  225. package/fesm2022/primeng-listbox.mjs +2 -2
  226. package/fesm2022/primeng-listbox.mjs.map +1 -1
  227. package/fesm2022/primeng-megamenu.mjs +5 -5
  228. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  229. package/fesm2022/primeng-menu.mjs +6 -6
  230. package/fesm2022/primeng-menu.mjs.map +1 -1
  231. package/fesm2022/primeng-menubar.mjs +6 -6
  232. package/fesm2022/primeng-menubar.mjs.map +1 -1
  233. package/fesm2022/primeng-message.mjs +2 -2
  234. package/fesm2022/primeng-message.mjs.map +1 -1
  235. package/fesm2022/primeng-messages.mjs +2 -2
  236. package/fesm2022/primeng-messages.mjs.map +1 -1
  237. package/fesm2022/primeng-metergroup.mjs +4 -4
  238. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  239. package/fesm2022/primeng-multiselect.mjs +6 -6
  240. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  241. package/fesm2022/primeng-orderlist.mjs +4 -4
  242. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  243. package/fesm2022/primeng-organizationchart.mjs +5 -5
  244. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  245. package/fesm2022/primeng-overlay.mjs +2 -2
  246. package/fesm2022/primeng-overlay.mjs.map +1 -1
  247. package/fesm2022/primeng-overlaybadge.mjs +2 -2
  248. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  249. package/fesm2022/primeng-overlaypanel.mjs +6 -3
  250. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  251. package/fesm2022/primeng-paginator.mjs +2 -2
  252. package/fesm2022/primeng-paginator.mjs.map +1 -1
  253. package/fesm2022/primeng-panel.mjs +3 -4
  254. package/fesm2022/primeng-panel.mjs.map +1 -1
  255. package/fesm2022/primeng-panelmenu.mjs +9 -9
  256. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  257. package/fesm2022/primeng-password.mjs +4 -4
  258. package/fesm2022/primeng-password.mjs.map +1 -1
  259. package/fesm2022/primeng-picklist.mjs +5 -33
  260. package/fesm2022/primeng-picklist.mjs.map +1 -1
  261. package/fesm2022/primeng-popover.mjs +8 -7
  262. package/fesm2022/primeng-popover.mjs.map +1 -1
  263. package/fesm2022/primeng-progressbar.mjs +2 -2
  264. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  265. package/fesm2022/primeng-progressspinner.mjs +2 -2
  266. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  267. package/fesm2022/primeng-radiobutton.mjs +2 -2
  268. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  269. package/fesm2022/primeng-rating.mjs +4 -4
  270. package/fesm2022/primeng-rating.mjs.map +1 -1
  271. package/fesm2022/primeng-ripple.mjs +1 -1
  272. package/fesm2022/primeng-ripple.mjs.map +1 -1
  273. package/fesm2022/primeng-scroller.mjs +2 -2
  274. package/fesm2022/primeng-scroller.mjs.map +1 -1
  275. package/fesm2022/primeng-scrollpanel.mjs +2 -2
  276. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  277. package/fesm2022/primeng-scrolltop.mjs +2 -2
  278. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  279. package/fesm2022/primeng-select.mjs +5 -5
  280. package/fesm2022/primeng-select.mjs.map +1 -1
  281. package/fesm2022/primeng-selectbutton.mjs +3 -4
  282. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  283. package/fesm2022/primeng-sidebar.mjs +3 -4
  284. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  285. package/fesm2022/primeng-skeleton.mjs +2 -2
  286. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  287. package/fesm2022/primeng-slider.mjs +2 -2
  288. package/fesm2022/primeng-slider.mjs.map +1 -1
  289. package/fesm2022/primeng-speeddial.mjs +2 -2
  290. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  291. package/fesm2022/primeng-splitbutton.mjs +2 -2
  292. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  293. package/fesm2022/primeng-splitter.mjs +4 -4
  294. package/fesm2022/primeng-splitter.mjs.map +1 -1
  295. package/fesm2022/primeng-stepper.mjs +16 -16
  296. package/fesm2022/primeng-stepper.mjs.map +1 -1
  297. package/fesm2022/primeng-steps.mjs +2 -2
  298. package/fesm2022/primeng-steps.mjs.map +1 -1
  299. package/fesm2022/primeng-styleclass.mjs +1 -1
  300. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  301. package/fesm2022/primeng-table.mjs +63 -38
  302. package/fesm2022/primeng-table.mjs.map +1 -1
  303. package/fesm2022/primeng-tabmenu.mjs +2 -2
  304. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  305. package/fesm2022/primeng-tabs.mjs +11 -11
  306. package/fesm2022/primeng-tabs.mjs.map +1 -1
  307. package/fesm2022/primeng-tabview.mjs +5 -5
  308. package/fesm2022/primeng-tabview.mjs.map +1 -1
  309. package/fesm2022/primeng-tag.mjs +2 -2
  310. package/fesm2022/primeng-tag.mjs.map +1 -1
  311. package/fesm2022/primeng-terminal.mjs +2 -2
  312. package/fesm2022/primeng-terminal.mjs.map +1 -1
  313. package/fesm2022/primeng-textarea.mjs +1 -1
  314. package/fesm2022/primeng-textarea.mjs.map +1 -1
  315. package/fesm2022/primeng-tieredmenu.mjs +5 -5
  316. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  317. package/fesm2022/primeng-timeline.mjs +2 -2
  318. package/fesm2022/primeng-timeline.mjs.map +1 -1
  319. package/fesm2022/primeng-toast.mjs +6 -7
  320. package/fesm2022/primeng-toast.mjs.map +1 -1
  321. package/fesm2022/primeng-togglebutton.mjs +3 -4
  322. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  323. package/fesm2022/primeng-toggleswitch.mjs +2 -2
  324. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  325. package/fesm2022/primeng-toolbar.mjs +2 -2
  326. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  327. package/fesm2022/primeng-tooltip.mjs +4 -2
  328. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  329. package/fesm2022/primeng-tree.mjs +7 -9
  330. package/fesm2022/primeng-tree.mjs.map +1 -1
  331. package/fesm2022/primeng-treeselect.mjs +4 -6
  332. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  333. package/fesm2022/primeng-treetable.mjs +31 -29
  334. package/fesm2022/primeng-treetable.mjs.map +1 -1
  335. package/package.json +174 -522
  336. package/popover/popover.d.ts +1 -1
  337. package/speeddial/speeddial.d.ts +2 -2
  338. package/treetable/treetable.d.ts +1 -1
  339. package/esm2022/accordion/accordion.mjs +0 -1266
  340. package/esm2022/accordion/primeng-accordion.mjs +0 -5
  341. package/esm2022/accordion/public_api.mjs +0 -3
  342. package/esm2022/accordion/style/accordionstyle.mjs +0 -163
  343. package/esm2022/animateonscroll/animateonscroll.mjs +0 -174
  344. package/esm2022/animateonscroll/primeng-animateonscroll.mjs +0 -5
  345. package/esm2022/animateonscroll/public_api.mjs +0 -2
  346. package/esm2022/api/blockableui.mjs +0 -2
  347. package/esm2022/api/confirmaeventtype.mjs +0 -10
  348. package/esm2022/api/confirmation.mjs +0 -2
  349. package/esm2022/api/confirmationservice.mjs +0 -43
  350. package/esm2022/api/contextmenuservice.mjs +0 -22
  351. package/esm2022/api/filtermatchmode.mjs +0 -23
  352. package/esm2022/api/filtermetadata.mjs +0 -2
  353. package/esm2022/api/filteroperator.mjs +0 -5
  354. package/esm2022/api/filterservice.mjs +0 -224
  355. package/esm2022/api/lazyloadevent.mjs +0 -2
  356. package/esm2022/api/lazyloadmeta.mjs +0 -2
  357. package/esm2022/api/megamenuitem.mjs +0 -2
  358. package/esm2022/api/menuitem.mjs +0 -2
  359. package/esm2022/api/messageservice.mjs +0 -47
  360. package/esm2022/api/overlayoptions.mjs +0 -2
  361. package/esm2022/api/overlayservice.mjs +0 -19
  362. package/esm2022/api/primeicons.mjs +0 -314
  363. package/esm2022/api/primeng-api.mjs +0 -5
  364. package/esm2022/api/public_api.mjs +0 -33
  365. package/esm2022/api/scrolleroptions.mjs +0 -2
  366. package/esm2022/api/selectitem.mjs +0 -2
  367. package/esm2022/api/selectitemgroup.mjs +0 -2
  368. package/esm2022/api/shared.mjs +0 -76
  369. package/esm2022/api/sortevent.mjs +0 -2
  370. package/esm2022/api/sortmeta.mjs +0 -2
  371. package/esm2022/api/tablestate.mjs +0 -2
  372. package/esm2022/api/toastmessage.mjs +0 -2
  373. package/esm2022/api/tooltipoptions.mjs +0 -2
  374. package/esm2022/api/translation.mjs +0 -2
  375. package/esm2022/api/translationkeys.mjs +0 -51
  376. package/esm2022/api/treedragdropservice.mjs +0 -21
  377. package/esm2022/api/treenode.mjs +0 -2
  378. package/esm2022/api/treenodedragevent.mjs +0 -2
  379. package/esm2022/api/treetablenode.mjs +0 -2
  380. package/esm2022/autocomplete/autocomplete.interface.mjs +0 -2
  381. package/esm2022/autocomplete/autocomplete.mjs +0 -2223
  382. package/esm2022/autocomplete/primeng-autocomplete.mjs +0 -5
  383. package/esm2022/autocomplete/public_api.mjs +0 -4
  384. package/esm2022/autocomplete/style/autocompletestyle.mjs +0 -409
  385. package/esm2022/autofocus/autofocus.mjs +0 -86
  386. package/esm2022/autofocus/primeng-autofocus.mjs +0 -5
  387. package/esm2022/autofocus/public_api.mjs +0 -2
  388. package/esm2022/avatar/avatar.mjs +0 -193
  389. package/esm2022/avatar/primeng-avatar.mjs +0 -5
  390. package/esm2022/avatar/public_api.mjs +0 -3
  391. package/esm2022/avatar/style/avatarstyle.mjs +0 -130
  392. package/esm2022/avatargroup/avatargroup.mjs +0 -80
  393. package/esm2022/avatargroup/primeng-avatargroup.mjs +0 -5
  394. package/esm2022/avatargroup/public_api.mjs +0 -3
  395. package/esm2022/avatargroup/style/avatargroupstyle.mjs +0 -29
  396. package/esm2022/badge/badge.mjs +0 -332
  397. package/esm2022/badge/primeng-badge.mjs +0 -5
  398. package/esm2022/badge/public_api.mjs +0 -3
  399. package/esm2022/badge/style/badgestyle.mjs +0 -143
  400. package/esm2022/base/base.mjs +0 -19
  401. package/esm2022/base/primeng-base.mjs +0 -5
  402. package/esm2022/base/public_api.mjs +0 -3
  403. package/esm2022/base/style/basestyle.mjs +0 -256
  404. package/esm2022/basecomponent/basecomponent.mjs +0 -183
  405. package/esm2022/basecomponent/primeng-basecomponent.mjs +0 -5
  406. package/esm2022/basecomponent/public_api.mjs +0 -3
  407. package/esm2022/basecomponent/style/basecomponentstyle.mjs +0 -13
  408. package/esm2022/blockui/blockui.interface.mjs +0 -2
  409. package/esm2022/blockui/blockui.mjs +0 -210
  410. package/esm2022/blockui/primeng-blockui.mjs +0 -5
  411. package/esm2022/blockui/public_api.mjs +0 -4
  412. package/esm2022/blockui/style/blockuistyle.mjs +0 -50
  413. package/esm2022/breadcrumb/breadcrumb.interface.mjs +0 -2
  414. package/esm2022/breadcrumb/breadcrumb.mjs +0 -583
  415. package/esm2022/breadcrumb/primeng-breadcrumb.mjs +0 -5
  416. package/esm2022/breadcrumb/public_api.mjs +0 -4
  417. package/esm2022/breadcrumb/style/breadcrumbstyle.mjs +0 -133
  418. package/esm2022/button/button.interface.mjs +0 -2
  419. package/esm2022/button/button.mjs +0 -896
  420. package/esm2022/button/primeng-button.mjs +0 -5
  421. package/esm2022/button/public_api.mjs +0 -4
  422. package/esm2022/button/style/buttonstyle.mjs +0 -707
  423. package/esm2022/buttongroup/buttongroup.mjs +0 -47
  424. package/esm2022/buttongroup/primeng-buttongroup.mjs +0 -5
  425. package/esm2022/buttongroup/public_api.mjs +0 -3
  426. package/esm2022/buttongroup/style/buttongroupstyle.mjs +0 -120
  427. package/esm2022/calendar/calendar.interface.mjs +0 -2
  428. package/esm2022/calendar/calendar.mjs +0 -4504
  429. package/esm2022/calendar/primeng-calendar.mjs +0 -5
  430. package/esm2022/calendar/public_api.mjs +0 -4
  431. package/esm2022/calendar/style/calendarstyle.mjs +0 -472
  432. package/esm2022/card/card.interface.mjs +0 -2
  433. package/esm2022/card/card.mjs +0 -243
  434. package/esm2022/card/primeng-card.mjs +0 -5
  435. package/esm2022/card/public_api.mjs +0 -4
  436. package/esm2022/card/style/cardstyle.mjs +0 -100
  437. package/esm2022/carousel/carousel.interface.mjs +0 -2
  438. package/esm2022/carousel/carousel.mjs +0 -1181
  439. package/esm2022/carousel/primeng-carousel.mjs +0 -5
  440. package/esm2022/carousel/public_api.mjs +0 -4
  441. package/esm2022/carousel/style/carouselstyle.mjs +0 -234
  442. package/esm2022/cascadeselect/cascadeselect.interface.mjs +0 -2
  443. package/esm2022/cascadeselect/cascadeselect.mjs +0 -1840
  444. package/esm2022/cascadeselect/primeng-cascadeselect.mjs +0 -5
  445. package/esm2022/cascadeselect/public_api.mjs +0 -4
  446. package/esm2022/cascadeselect/style/cascadeselectstyle.mjs +0 -379
  447. package/esm2022/chart/chart.mjs +0 -210
  448. package/esm2022/chart/primeng-chart.mjs +0 -5
  449. package/esm2022/chart/public_api.mjs +0 -3
  450. package/esm2022/chart/style/chartstyle.mjs +0 -36
  451. package/esm2022/checkbox/checkbox.interface.mjs +0 -2
  452. package/esm2022/checkbox/checkbox.mjs +0 -450
  453. package/esm2022/checkbox/primeng-checkbox.mjs +0 -5
  454. package/esm2022/checkbox/public_api.mjs +0 -4
  455. package/esm2022/checkbox/style/checkboxstyle.mjs +0 -191
  456. package/esm2022/chip/chip.interface.mjs +0 -2
  457. package/esm2022/chip/chip.mjs +0 -337
  458. package/esm2022/chip/primeng-chip.mjs +0 -5
  459. package/esm2022/chip/public_api.mjs +0 -4
  460. package/esm2022/chip/style/chipstyle.mjs +0 -104
  461. package/esm2022/colorpicker/colorpicker.interface.mjs +0 -2
  462. package/esm2022/colorpicker/colorpicker.mjs +0 -856
  463. package/esm2022/colorpicker/primeng-colorpicker.mjs +0 -5
  464. package/esm2022/colorpicker/public_api.mjs +0 -4
  465. package/esm2022/colorpicker/style/colorpickerstyle.mjs +0 -213
  466. package/esm2022/config/primeng-config.mjs +0 -5
  467. package/esm2022/config/primeng.mjs +0 -185
  468. package/esm2022/config/provideprimeng.mjs +0 -19
  469. package/esm2022/config/public_api.mjs +0 -4
  470. package/esm2022/config/themeprovider.mjs +0 -68
  471. package/esm2022/confirmdialog/confirmdialog.interface.mjs +0 -2
  472. package/esm2022/confirmdialog/confirmdialog.mjs +0 -815
  473. package/esm2022/confirmdialog/primeng-confirmdialog.mjs +0 -5
  474. package/esm2022/confirmdialog/public_api.mjs +0 -4
  475. package/esm2022/confirmdialog/style/confirmdialogstyle.mjs +0 -67
  476. package/esm2022/confirmpopup/confirmpopup.interface.mjs +0 -2
  477. package/esm2022/confirmpopup/confirmpopup.mjs +0 -619
  478. package/esm2022/confirmpopup/primeng-confirmpopup.mjs +0 -5
  479. package/esm2022/confirmpopup/public_api.mjs +0 -4
  480. package/esm2022/confirmpopup/style/confirmpopupstyle.mjs +0 -170
  481. package/esm2022/contextmenu/contextmenu.mjs +0 -1436
  482. package/esm2022/contextmenu/primeng-contextmenu.mjs +0 -5
  483. package/esm2022/contextmenu/public_api.mjs +0 -3
  484. package/esm2022/contextmenu/style/contextmenustyle.mjs +0 -244
  485. package/esm2022/dataview/dataview.interface.mjs +0 -2
  486. package/esm2022/dataview/dataview.mjs +0 -819
  487. package/esm2022/dataview/primeng-dataview.mjs +0 -5
  488. package/esm2022/dataview/public_api.mjs +0 -4
  489. package/esm2022/dataview/style/dataviewstyle.mjs +0 -115
  490. package/esm2022/datepicker/datepicker.interface.mjs +0 -2
  491. package/esm2022/datepicker/datepicker.mjs +0 -4539
  492. package/esm2022/datepicker/primeng-datepicker.mjs +0 -5
  493. package/esm2022/datepicker/public_api.mjs +0 -4
  494. package/esm2022/datepicker/style/datepickerstyle.mjs +0 -663
  495. package/esm2022/defer/defer.mjs +0 -100
  496. package/esm2022/defer/primeng-defer.mjs +0 -5
  497. package/esm2022/defer/public_api.mjs +0 -2
  498. package/esm2022/dialog/dialog.interface.mjs +0 -2
  499. package/esm2022/dialog/dialog.mjs +0 -1384
  500. package/esm2022/dialog/primeng-dialog.mjs +0 -5
  501. package/esm2022/dialog/public_api.mjs +0 -4
  502. package/esm2022/dialog/style/dialogstyle.mjs +0 -283
  503. package/esm2022/divider/divider.mjs +0 -119
  504. package/esm2022/divider/primeng-divider.mjs +0 -5
  505. package/esm2022/divider/public_api.mjs +0 -3
  506. package/esm2022/divider/style/dividerstyle.mjs +0 -138
  507. package/esm2022/dock/dock.interface.mjs +0 -2
  508. package/esm2022/dock/dock.mjs +0 -447
  509. package/esm2022/dock/primeng-dock.mjs +0 -5
  510. package/esm2022/dock/public_api.mjs +0 -4
  511. package/esm2022/dock/style/dockstyle.mjs +0 -210
  512. package/esm2022/dom/connectedoverlayscrollhandler.mjs +0 -30
  513. package/esm2022/dom/domhandler.mjs +0 -725
  514. package/esm2022/dom/primeng-dom.mjs +0 -5
  515. package/esm2022/dom/public_api.mjs +0 -3
  516. package/esm2022/dragdrop/dragdrop.mjs +0 -323
  517. package/esm2022/dragdrop/primeng-dragdrop.mjs +0 -5
  518. package/esm2022/dragdrop/public_api.mjs +0 -2
  519. package/esm2022/drawer/drawer.interface.mjs +0 -2
  520. package/esm2022/drawer/drawer.mjs +0 -663
  521. package/esm2022/drawer/primeng-drawer.mjs +0 -5
  522. package/esm2022/drawer/public_api.mjs +0 -4
  523. package/esm2022/drawer/style/drawerstyle.mjs +0 -283
  524. package/esm2022/dropdown/dropdown.interface.mjs +0 -2
  525. package/esm2022/dropdown/dropdown.mjs +0 -2498
  526. package/esm2022/dropdown/primeng-dropdown.mjs +0 -5
  527. package/esm2022/dropdown/public_api.mjs +0 -4
  528. package/esm2022/dropdown/style/dropdownstyle.mjs +0 -264
  529. package/esm2022/dynamicdialog/dialogservice.mjs +0 -105
  530. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +0 -182
  531. package/esm2022/dynamicdialog/dynamicdialog-injector.mjs +0 -15
  532. package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +0 -119
  533. package/esm2022/dynamicdialog/dynamicdialog.mjs +0 -875
  534. package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +0 -18
  535. package/esm2022/dynamicdialog/primeng-dynamicdialog.mjs +0 -5
  536. package/esm2022/dynamicdialog/public_api.mjs +0 -8
  537. package/esm2022/dynamicdialog/style/dynamicdialogstyle.mjs +0 -60
  538. package/esm2022/editor/editor.interface.mjs +0 -2
  539. package/esm2022/editor/editor.mjs +0 -427
  540. package/esm2022/editor/primeng-editor.mjs +0 -5
  541. package/esm2022/editor/public_api.mjs +0 -4
  542. package/esm2022/editor/style/editorstyle.mjs +0 -1008
  543. package/esm2022/fieldset/fieldset.interface.mjs +0 -2
  544. package/esm2022/fieldset/fieldset.mjs +0 -427
  545. package/esm2022/fieldset/primeng-fieldset.mjs +0 -5
  546. package/esm2022/fieldset/public_api.mjs +0 -4
  547. package/esm2022/fieldset/style/fieldsetstyle.mjs +0 -143
  548. package/esm2022/fileupload/fileupload.interface.mjs +0 -2
  549. package/esm2022/fileupload/fileupload.mjs +0 -1597
  550. package/esm2022/fileupload/primeng-fileupload.mjs +0 -5
  551. package/esm2022/fileupload/public_api.mjs +0 -4
  552. package/esm2022/fileupload/style/fileuploadstyle.mjs +0 -194
  553. package/esm2022/floatlabel/floatlabel.mjs +0 -61
  554. package/esm2022/floatlabel/primeng-floatlabel.mjs +0 -5
  555. package/esm2022/floatlabel/public_api.mjs +0 -3
  556. package/esm2022/floatlabel/style/floatlabelstyle.mjs +0 -133
  557. package/esm2022/fluid/fluid.mjs +0 -50
  558. package/esm2022/fluid/primeng-fluid.mjs +0 -5
  559. package/esm2022/fluid/public_api.mjs +0 -3
  560. package/esm2022/fluid/style/fluidstyle.mjs +0 -38
  561. package/esm2022/focustrap/focustrap.mjs +0 -104
  562. package/esm2022/focustrap/primeng-focustrap.mjs +0 -5
  563. package/esm2022/focustrap/public_api.mjs +0 -2
  564. package/esm2022/galleria/galleria.interface.mjs +0 -2
  565. package/esm2022/galleria/galleria.mjs +0 -1858
  566. package/esm2022/galleria/primeng-galleria.mjs +0 -5
  567. package/esm2022/galleria/public_api.mjs +0 -4
  568. package/esm2022/galleria/style/galleriastyle.mjs +0 -644
  569. package/esm2022/iconfield/iconfield.mjs +0 -73
  570. package/esm2022/iconfield/primeng-iconfield.mjs +0 -5
  571. package/esm2022/iconfield/public_api.mjs +0 -3
  572. package/esm2022/iconfield/style/iconfieldstyle.mjs +0 -77
  573. package/esm2022/icons/angledoubledown/angledoubledown.mjs +0 -34
  574. package/esm2022/icons/angledoubledown/primeng-icons-angledoubledown.mjs +0 -5
  575. package/esm2022/icons/angledoubledown/public_api.mjs +0 -2
  576. package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +0 -34
  577. package/esm2022/icons/angledoubleleft/primeng-icons-angledoubleleft.mjs +0 -5
  578. package/esm2022/icons/angledoubleleft/public_api.mjs +0 -2
  579. package/esm2022/icons/angledoubleright/angledoubleright.mjs +0 -34
  580. package/esm2022/icons/angledoubleright/primeng-icons-angledoubleright.mjs +0 -5
  581. package/esm2022/icons/angledoubleright/public_api.mjs +0 -2
  582. package/esm2022/icons/angledoubleup/angledoubleup.mjs +0 -34
  583. package/esm2022/icons/angledoubleup/primeng-icons-angledoubleup.mjs +0 -5
  584. package/esm2022/icons/angledoubleup/public_api.mjs +0 -2
  585. package/esm2022/icons/angledown/angledown.mjs +0 -32
  586. package/esm2022/icons/angledown/primeng-icons-angledown.mjs +0 -5
  587. package/esm2022/icons/angledown/public_api.mjs +0 -2
  588. package/esm2022/icons/angleleft/angleleft.mjs +0 -32
  589. package/esm2022/icons/angleleft/primeng-icons-angleleft.mjs +0 -5
  590. package/esm2022/icons/angleleft/public_api.mjs +0 -2
  591. package/esm2022/icons/angleright/angleright.mjs +0 -32
  592. package/esm2022/icons/angleright/primeng-icons-angleright.mjs +0 -5
  593. package/esm2022/icons/angleright/public_api.mjs +0 -2
  594. package/esm2022/icons/angleup/angleup.mjs +0 -32
  595. package/esm2022/icons/angleup/primeng-icons-angleup.mjs +0 -5
  596. package/esm2022/icons/angleup/public_api.mjs +0 -2
  597. package/esm2022/icons/arrowdown/arrowdown.mjs +0 -53
  598. package/esm2022/icons/arrowdown/primeng-icons-arrowdown.mjs +0 -5
  599. package/esm2022/icons/arrowdown/public_api.mjs +0 -2
  600. package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +0 -32
  601. package/esm2022/icons/arrowdownleft/primeng-icons-arrowdownleft.mjs +0 -5
  602. package/esm2022/icons/arrowdownleft/public_api.mjs +0 -2
  603. package/esm2022/icons/arrowdownright/arrowdownright.mjs +0 -32
  604. package/esm2022/icons/arrowdownright/primeng-icons-arrowdownright.mjs +0 -5
  605. package/esm2022/icons/arrowdownright/public_api.mjs +0 -2
  606. package/esm2022/icons/arrowleft/arrowleft.mjs +0 -53
  607. package/esm2022/icons/arrowleft/primeng-icons-arrowleft.mjs +0 -5
  608. package/esm2022/icons/arrowleft/public_api.mjs +0 -2
  609. package/esm2022/icons/arrowright/arrowright.mjs +0 -34
  610. package/esm2022/icons/arrowright/primeng-icons-arrowright.mjs +0 -5
  611. package/esm2022/icons/arrowright/public_api.mjs +0 -2
  612. package/esm2022/icons/arrowup/arrowup.mjs +0 -53
  613. package/esm2022/icons/arrowup/primeng-icons-arrowup.mjs +0 -5
  614. package/esm2022/icons/arrowup/public_api.mjs +0 -2
  615. package/esm2022/icons/ban/ban.mjs +0 -51
  616. package/esm2022/icons/ban/primeng-icons-ban.mjs +0 -5
  617. package/esm2022/icons/ban/public_api.mjs +0 -2
  618. package/esm2022/icons/bars/bars.mjs +0 -34
  619. package/esm2022/icons/bars/primeng-icons-bars.mjs +0 -5
  620. package/esm2022/icons/bars/public_api.mjs +0 -2
  621. package/esm2022/icons/baseicon/baseicon.mjs +0 -54
  622. package/esm2022/icons/baseicon/primeng-icons-baseicon.mjs +0 -5
  623. package/esm2022/icons/baseicon/public_api.mjs +0 -3
  624. package/esm2022/icons/baseicon/style/baseiconstyle.mjs +0 -57
  625. package/esm2022/icons/blank/blank.mjs +0 -26
  626. package/esm2022/icons/blank/primeng-icons-blank.mjs +0 -5
  627. package/esm2022/icons/blank/public_api.mjs +0 -2
  628. package/esm2022/icons/calendar/calendar.mjs +0 -32
  629. package/esm2022/icons/calendar/primeng-icons-calendar.mjs +0 -5
  630. package/esm2022/icons/calendar/public_api.mjs +0 -2
  631. package/esm2022/icons/caretleft/caretleft.mjs +0 -32
  632. package/esm2022/icons/caretleft/primeng-icons-caretleft.mjs +0 -5
  633. package/esm2022/icons/caretleft/public_api.mjs +0 -2
  634. package/esm2022/icons/caretright/caretright.mjs +0 -32
  635. package/esm2022/icons/caretright/primeng-icons-caretright.mjs +0 -5
  636. package/esm2022/icons/caretright/public_api.mjs +0 -2
  637. package/esm2022/icons/check/check.mjs +0 -32
  638. package/esm2022/icons/check/primeng-icons-check.mjs +0 -5
  639. package/esm2022/icons/check/public_api.mjs +0 -2
  640. package/esm2022/icons/chevrondown/chevrondown.mjs +0 -32
  641. package/esm2022/icons/chevrondown/primeng-icons-chevrondown.mjs +0 -5
  642. package/esm2022/icons/chevrondown/public_api.mjs +0 -2
  643. package/esm2022/icons/chevronleft/chevronleft.mjs +0 -32
  644. package/esm2022/icons/chevronleft/primeng-icons-chevronleft.mjs +0 -5
  645. package/esm2022/icons/chevronleft/public_api.mjs +0 -2
  646. package/esm2022/icons/chevronright/chevronright.mjs +0 -32
  647. package/esm2022/icons/chevronright/primeng-icons-chevronright.mjs +0 -5
  648. package/esm2022/icons/chevronright/public_api.mjs +0 -2
  649. package/esm2022/icons/chevronup/chevronup.mjs +0 -32
  650. package/esm2022/icons/chevronup/primeng-icons-chevronup.mjs +0 -5
  651. package/esm2022/icons/chevronup/public_api.mjs +0 -2
  652. package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +0 -59
  653. package/esm2022/icons/exclamationtriangle/primeng-icons-exclamationtriangle.mjs +0 -5
  654. package/esm2022/icons/exclamationtriangle/public_api.mjs +0 -2
  655. package/esm2022/icons/eye/eye.mjs +0 -34
  656. package/esm2022/icons/eye/primeng-icons-eye.mjs +0 -5
  657. package/esm2022/icons/eye/public_api.mjs +0 -2
  658. package/esm2022/icons/eyeslash/eyeslash.mjs +0 -53
  659. package/esm2022/icons/eyeslash/primeng-icons-eyeslash.mjs +0 -5
  660. package/esm2022/icons/eyeslash/public_api.mjs +0 -2
  661. package/esm2022/icons/filter/filter.mjs +0 -51
  662. package/esm2022/icons/filter/primeng-icons-filter.mjs +0 -5
  663. package/esm2022/icons/filter/public_api.mjs +0 -2
  664. package/esm2022/icons/filterslash/filterslash.mjs +0 -53
  665. package/esm2022/icons/filterslash/primeng-icons-filterslash.mjs +0 -5
  666. package/esm2022/icons/filterslash/public_api.mjs +0 -2
  667. package/esm2022/icons/home/home.mjs +0 -53
  668. package/esm2022/icons/home/primeng-icons-home.mjs +0 -5
  669. package/esm2022/icons/home/public_api.mjs +0 -2
  670. package/esm2022/icons/infocircle/infocircle.mjs +0 -53
  671. package/esm2022/icons/infocircle/primeng-icons-infocircle.mjs +0 -5
  672. package/esm2022/icons/infocircle/public_api.mjs +0 -2
  673. package/esm2022/icons/minus/minus.mjs +0 -32
  674. package/esm2022/icons/minus/primeng-icons-minus.mjs +0 -5
  675. package/esm2022/icons/minus/public_api.mjs +0 -2
  676. package/esm2022/icons/pencil/pencil.mjs +0 -51
  677. package/esm2022/icons/pencil/primeng-icons-pencil.mjs +0 -5
  678. package/esm2022/icons/pencil/public_api.mjs +0 -2
  679. package/esm2022/icons/plus/plus.mjs +0 -51
  680. package/esm2022/icons/plus/primeng-icons-plus.mjs +0 -5
  681. package/esm2022/icons/plus/public_api.mjs +0 -2
  682. package/esm2022/icons/primeng-icons.mjs +0 -5
  683. package/esm2022/icons/public_api.mjs +0 -58
  684. package/esm2022/icons/refresh/primeng-icons-refresh.mjs +0 -5
  685. package/esm2022/icons/refresh/public_api.mjs +0 -2
  686. package/esm2022/icons/refresh/refresh.mjs +0 -53
  687. package/esm2022/icons/search/primeng-icons-search.mjs +0 -5
  688. package/esm2022/icons/search/public_api.mjs +0 -2
  689. package/esm2022/icons/search/search.mjs +0 -53
  690. package/esm2022/icons/searchminus/primeng-icons-searchminus.mjs +0 -5
  691. package/esm2022/icons/searchminus/public_api.mjs +0 -2
  692. package/esm2022/icons/searchminus/searchminus.mjs +0 -53
  693. package/esm2022/icons/searchplus/primeng-icons-searchplus.mjs +0 -5
  694. package/esm2022/icons/searchplus/public_api.mjs +0 -2
  695. package/esm2022/icons/searchplus/searchplus.mjs +0 -53
  696. package/esm2022/icons/sortalt/primeng-icons-sortalt.mjs +0 -5
  697. package/esm2022/icons/sortalt/public_api.mjs +0 -2
  698. package/esm2022/icons/sortalt/sortalt.mjs +0 -57
  699. package/esm2022/icons/sortamountdown/primeng-icons-sortamountdown.mjs +0 -5
  700. package/esm2022/icons/sortamountdown/public_api.mjs +0 -2
  701. package/esm2022/icons/sortamountdown/sortamountdown.mjs +0 -51
  702. package/esm2022/icons/sortamountupalt/primeng-icons-sortamountupalt.mjs +0 -5
  703. package/esm2022/icons/sortamountupalt/public_api.mjs +0 -2
  704. package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +0 -51
  705. package/esm2022/icons/spinner/primeng-icons-spinner.mjs +0 -5
  706. package/esm2022/icons/spinner/public_api.mjs +0 -2
  707. package/esm2022/icons/spinner/spinner.mjs +0 -51
  708. package/esm2022/icons/star/primeng-icons-star.mjs +0 -5
  709. package/esm2022/icons/star/public_api.mjs +0 -2
  710. package/esm2022/icons/star/star.mjs +0 -51
  711. package/esm2022/icons/starfill/primeng-icons-starfill.mjs +0 -5
  712. package/esm2022/icons/starfill/public_api.mjs +0 -2
  713. package/esm2022/icons/starfill/starfill.mjs +0 -51
  714. package/esm2022/icons/thlarge/primeng-icons-thlarge.mjs +0 -5
  715. package/esm2022/icons/thlarge/public_api.mjs +0 -2
  716. package/esm2022/icons/thlarge/thlarge.mjs +0 -53
  717. package/esm2022/icons/times/primeng-icons-times.mjs +0 -5
  718. package/esm2022/icons/times/public_api.mjs +0 -2
  719. package/esm2022/icons/times/times.mjs +0 -32
  720. package/esm2022/icons/timescircle/primeng-icons-timescircle.mjs +0 -5
  721. package/esm2022/icons/timescircle/public_api.mjs +0 -2
  722. package/esm2022/icons/timescircle/timescircle.mjs +0 -53
  723. package/esm2022/icons/trash/primeng-icons-trash.mjs +0 -5
  724. package/esm2022/icons/trash/public_api.mjs +0 -2
  725. package/esm2022/icons/trash/trash.mjs +0 -53
  726. package/esm2022/icons/undo/primeng-icons-undo.mjs +0 -5
  727. package/esm2022/icons/undo/public_api.mjs +0 -2
  728. package/esm2022/icons/undo/undo.mjs +0 -53
  729. package/esm2022/icons/upload/primeng-icons-upload.mjs +0 -5
  730. package/esm2022/icons/upload/public_api.mjs +0 -2
  731. package/esm2022/icons/upload/upload.mjs +0 -53
  732. package/esm2022/icons/windowmaximize/primeng-icons-windowmaximize.mjs +0 -5
  733. package/esm2022/icons/windowmaximize/public_api.mjs +0 -2
  734. package/esm2022/icons/windowmaximize/windowmaximize.mjs +0 -53
  735. package/esm2022/icons/windowminimize/primeng-icons-windowminimize.mjs +0 -5
  736. package/esm2022/icons/windowminimize/public_api.mjs +0 -2
  737. package/esm2022/icons/windowminimize/windowminimize.mjs +0 -53
  738. package/esm2022/iftalabel/iftalabel.mjs +0 -49
  739. package/esm2022/iftalabel/primeng-iftalabel.mjs +0 -5
  740. package/esm2022/iftalabel/public_api.mjs +0 -3
  741. package/esm2022/iftalabel/style/iftalabelstyle.mjs +0 -96
  742. package/esm2022/image/image.interface.mjs +0 -2
  743. package/esm2022/image/image.mjs +0 -747
  744. package/esm2022/image/primeng-image.mjs +0 -5
  745. package/esm2022/image/public_api.mjs +0 -4
  746. package/esm2022/image/style/imagestyle.mjs +0 -219
  747. package/esm2022/imagecompare/imagecompare.mjs +0 -158
  748. package/esm2022/imagecompare/primeng-imagecompare.mjs +0 -5
  749. package/esm2022/imagecompare/public_api.mjs +0 -3
  750. package/esm2022/imagecompare/style/imagecomparestyle.mjs +0 -124
  751. package/esm2022/inplace/inplace.interface.mjs +0 -2
  752. package/esm2022/inplace/inplace.mjs +0 -344
  753. package/esm2022/inplace/primeng-inplace.mjs +0 -5
  754. package/esm2022/inplace/public_api.mjs +0 -4
  755. package/esm2022/inplace/style/inplacestyle.mjs +0 -69
  756. package/esm2022/inputgroup/inputgroup.mjs +0 -68
  757. package/esm2022/inputgroup/primeng-inputgroup.mjs +0 -5
  758. package/esm2022/inputgroup/public_api.mjs +0 -3
  759. package/esm2022/inputgroup/style/inputgroupstyle.mjs +0 -145
  760. package/esm2022/inputgroupaddon/inputgroupaddon.mjs +0 -74
  761. package/esm2022/inputgroupaddon/primeng-inputgroupaddon.mjs +0 -5
  762. package/esm2022/inputgroupaddon/public_api.mjs +0 -3
  763. package/esm2022/inputgroupaddon/style/inputgroupaddonstyle.mjs +0 -16
  764. package/esm2022/inputicon/inputicon.mjs +0 -66
  765. package/esm2022/inputicon/primeng-inputicon.mjs +0 -5
  766. package/esm2022/inputicon/public_api.mjs +0 -3
  767. package/esm2022/inputicon/style/inputiconstyle.mjs +0 -16
  768. package/esm2022/inputmask/inputmask.interface.mjs +0 -2
  769. package/esm2022/inputmask/inputmask.mjs +0 -911
  770. package/esm2022/inputmask/primeng-inputmask.mjs +0 -5
  771. package/esm2022/inputmask/public_api.mjs +0 -4
  772. package/esm2022/inputmask/style/inputmaskstyle.mjs +0 -62
  773. package/esm2022/inputnumber/inputnumber.interface.mjs +0 -2
  774. package/esm2022/inputnumber/inputnumber.mjs +0 -1745
  775. package/esm2022/inputnumber/primeng-inputnumber.mjs +0 -5
  776. package/esm2022/inputnumber/public_api.mjs +0 -4
  777. package/esm2022/inputnumber/style/inputnumberstyle.mjs +0 -240
  778. package/esm2022/inputotp/inputotp.mjs +0 -406
  779. package/esm2022/inputotp/primeng-inputotp.mjs +0 -5
  780. package/esm2022/inputotp/public_api.mjs +0 -3
  781. package/esm2022/inputotp/style/inputotpstyle.mjs +0 -60
  782. package/esm2022/inputswitch/inputswitch.interface.mjs +0 -2
  783. package/esm2022/inputswitch/inputswitch.mjs +0 -241
  784. package/esm2022/inputswitch/primeng-inputswitch.mjs +0 -5
  785. package/esm2022/inputswitch/public_api.mjs +0 -4
  786. package/esm2022/inputswitch/style/inputswitchstyle.mjs +0 -130
  787. package/esm2022/inputtext/inputtext.mjs +0 -104
  788. package/esm2022/inputtext/primeng-inputtext.mjs +0 -5
  789. package/esm2022/inputtext/public_api.mjs +0 -3
  790. package/esm2022/inputtext/style/inputtextstyle.mjs +0 -117
  791. package/esm2022/inputtextarea/inputtextarea.mjs +0 -156
  792. package/esm2022/inputtextarea/primeng-inputtextarea.mjs +0 -5
  793. package/esm2022/inputtextarea/public_api.mjs +0 -3
  794. package/esm2022/inputtextarea/style/textareastyle.mjs +0 -107
  795. package/esm2022/keyfilter/keyfilter.interface.mjs +0 -2
  796. package/esm2022/keyfilter/keyfilter.mjs +0 -263
  797. package/esm2022/keyfilter/primeng-keyfilter.mjs +0 -5
  798. package/esm2022/keyfilter/public_api.mjs +0 -3
  799. package/esm2022/knob/knob.mjs +0 -471
  800. package/esm2022/knob/primeng-knob.mjs +0 -5
  801. package/esm2022/knob/public_api.mjs +0 -3
  802. package/esm2022/knob/style/knobstyle.mjs +0 -83
  803. package/esm2022/listbox/listbox.interface.mjs +0 -2
  804. package/esm2022/listbox/listbox.mjs +0 -2044
  805. package/esm2022/listbox/primeng-listbox.mjs +0 -5
  806. package/esm2022/listbox/public_api.mjs +0 -4
  807. package/esm2022/listbox/style/listboxstyle.mjs +0 -206
  808. package/esm2022/megamenu/megamenu.interface.mjs +0 -2
  809. package/esm2022/megamenu/megamenu.mjs +0 -1607
  810. package/esm2022/megamenu/primeng-megamenu.mjs +0 -5
  811. package/esm2022/megamenu/public_api.mjs +0 -4
  812. package/esm2022/megamenu/style/megamenustyle.mjs +0 -487
  813. package/esm2022/menu/menu.mjs +0 -1193
  814. package/esm2022/menu/primeng-menu.mjs +0 -5
  815. package/esm2022/menu/public_api.mjs +0 -3
  816. package/esm2022/menu/style/menustyle.mjs +0 -179
  817. package/esm2022/menubar/menubar.interface.mjs +0 -2
  818. package/esm2022/menubar/menubar.mjs +0 -1484
  819. package/esm2022/menubar/primeng-menubar.mjs +0 -5
  820. package/esm2022/menubar/public_api.mjs +0 -4
  821. package/esm2022/menubar/style/menubarstyle.mjs +0 -375
  822. package/esm2022/message/message.mjs +0 -421
  823. package/esm2022/message/primeng-message.mjs +0 -5
  824. package/esm2022/message/public_api.mjs +0 -3
  825. package/esm2022/message/style/messagestyle.mjs +0 -357
  826. package/esm2022/messages/messages.interface.mjs +0 -2
  827. package/esm2022/messages/messages.mjs +0 -529
  828. package/esm2022/messages/primeng-messages.mjs +0 -5
  829. package/esm2022/messages/public_api.mjs +0 -4
  830. package/esm2022/messages/style/messagesstyle.mjs +0 -229
  831. package/esm2022/metergroup/metergroup.interface.mjs +0 -2
  832. package/esm2022/metergroup/metergroup.mjs +0 -423
  833. package/esm2022/metergroup/primeng-metergroup.mjs +0 -5
  834. package/esm2022/metergroup/public_api.mjs +0 -4
  835. package/esm2022/metergroup/style/metergroupstyle.mjs +0 -169
  836. package/esm2022/multiselect/multiselect.interface.mjs +0 -2
  837. package/esm2022/multiselect/multiselect.mjs +0 -2924
  838. package/esm2022/multiselect/primeng-multiselect.mjs +0 -5
  839. package/esm2022/multiselect/public_api.mjs +0 -4
  840. package/esm2022/multiselect/style/multiselectstyle.mjs +0 -373
  841. package/esm2022/orderlist/orderlist.interface.mjs +0 -2
  842. package/esm2022/orderlist/orderlist.mjs +0 -1121
  843. package/esm2022/orderlist/primeng-orderlist.mjs +0 -5
  844. package/esm2022/orderlist/public_api.mjs +0 -4
  845. package/esm2022/orderlist/style/orderliststyle.mjs +0 -51
  846. package/esm2022/organizationchart/organizationchart.interface.mjs +0 -2
  847. package/esm2022/organizationchart/organizationchart.mjs +0 -591
  848. package/esm2022/organizationchart/primeng-organizationchart.mjs +0 -5
  849. package/esm2022/organizationchart/public_api.mjs +0 -4
  850. package/esm2022/organizationchart/style/organizationchartstyle.mjs +0 -191
  851. package/esm2022/overlay/overlay.mjs +0 -668
  852. package/esm2022/overlay/primeng-overlay.mjs +0 -5
  853. package/esm2022/overlay/public_api.mjs +0 -3
  854. package/esm2022/overlay/style/overlaystyle.mjs +0 -93
  855. package/esm2022/overlaybadge/overlaybadge.mjs +0 -121
  856. package/esm2022/overlaybadge/primeng-overlaybadge.mjs +0 -5
  857. package/esm2022/overlaybadge/public_api.mjs +0 -3
  858. package/esm2022/overlaybadge/style/overlaybadgestyle.mjs +0 -34
  859. package/esm2022/overlaypanel/overlaypanel.mjs +0 -529
  860. package/esm2022/overlaypanel/primeng-overlaypanel.mjs +0 -5
  861. package/esm2022/overlaypanel/public_api.mjs +0 -3
  862. package/esm2022/overlaypanel/style/popoverstyle.mjs +0 -119
  863. package/esm2022/paginator/paginator.interface.mjs +0 -2
  864. package/esm2022/paginator/paginator.mjs +0 -893
  865. package/esm2022/paginator/primeng-paginator.mjs +0 -5
  866. package/esm2022/paginator/public_api.mjs +0 -4
  867. package/esm2022/paginator/style/paginatorstyle.mjs +0 -243
  868. package/esm2022/panel/panel.mjs +0 -585
  869. package/esm2022/panel/primeng-panel.mjs +0 -5
  870. package/esm2022/panel/public_api.mjs +0 -3
  871. package/esm2022/panel/style/panelstyle.mjs +0 -120
  872. package/esm2022/panelmenu/panelmenu.interface.mjs +0 -2
  873. package/esm2022/panelmenu/panelmenu.mjs +0 -1628
  874. package/esm2022/panelmenu/primeng-panelmenu.mjs +0 -5
  875. package/esm2022/panelmenu/public_api.mjs +0 -4
  876. package/esm2022/panelmenu/style/panelmenustyle.mjs +0 -291
  877. package/esm2022/password/password.mjs +0 -1201
  878. package/esm2022/password/primeng-password.mjs +0 -5
  879. package/esm2022/password/public_api.mjs +0 -3
  880. package/esm2022/password/style/passwordstyle.mjs +0 -182
  881. package/esm2022/picklist/picklist.interface.mjs +0 -2
  882. package/esm2022/picklist/picklist.mjs +0 -2322
  883. package/esm2022/picklist/primeng-picklist.mjs +0 -5
  884. package/esm2022/picklist/public_api.mjs +0 -4
  885. package/esm2022/picklist/style/pickliststyle.mjs +0 -79
  886. package/esm2022/popover/popover.mjs +0 -518
  887. package/esm2022/popover/primeng-popover.mjs +0 -5
  888. package/esm2022/popover/public_api.mjs +0 -3
  889. package/esm2022/popover/style/popoverstyle.mjs +0 -99
  890. package/esm2022/primeng.mjs +0 -5
  891. package/esm2022/progressbar/primeng-progressbar.mjs +0 -5
  892. package/esm2022/progressbar/progressbar.mjs +0 -197
  893. package/esm2022/progressbar/public_api.mjs +0 -3
  894. package/esm2022/progressbar/style/progressbarstyle.mjs +0 -165
  895. package/esm2022/progressspinner/primeng-progressspinner.mjs +0 -5
  896. package/esm2022/progressspinner/progressspinner.mjs +0 -105
  897. package/esm2022/progressspinner/public_api.mjs +0 -3
  898. package/esm2022/progressspinner/style/progressspinnerstyle.mjs +0 -115
  899. package/esm2022/public_api.mjs +0 -2
  900. package/esm2022/radiobutton/primeng-radiobutton.mjs +0 -5
  901. package/esm2022/radiobutton/public_api.mjs +0 -4
  902. package/esm2022/radiobutton/radiobutton.interface.mjs +0 -2
  903. package/esm2022/radiobutton/radiobutton.mjs +0 -356
  904. package/esm2022/radiobutton/style/radiobuttonstyle.mjs +0 -196
  905. package/esm2022/rating/primeng-rating.mjs +0 -5
  906. package/esm2022/rating/public_api.mjs +0 -4
  907. package/esm2022/rating/rating.interface.mjs +0 -2
  908. package/esm2022/rating/rating.mjs +0 -425
  909. package/esm2022/rating/style/ratingstyle.mjs +0 -103
  910. package/esm2022/ripple/primeng-ripple.mjs +0 -5
  911. package/esm2022/ripple/public_api.mjs +0 -3
  912. package/esm2022/ripple/ripple.mjs +0 -134
  913. package/esm2022/ripple/style/ripplestyle.mjs +0 -63
  914. package/esm2022/scroller/primeng-scroller.mjs +0 -5
  915. package/esm2022/scroller/public_api.mjs +0 -4
  916. package/esm2022/scroller/scroller.interface.mjs +0 -2
  917. package/esm2022/scroller/scroller.mjs +0 -1290
  918. package/esm2022/scroller/style/scrollerstyle.mjs +0 -104
  919. package/esm2022/scrollpanel/primeng-scrollpanel.mjs +0 -5
  920. package/esm2022/scrollpanel/public_api.mjs +0 -4
  921. package/esm2022/scrollpanel/scrollpanel.interface.mjs +0 -2
  922. package/esm2022/scrollpanel/scrollpanel.mjs +0 -506
  923. package/esm2022/scrollpanel/style/scrollpanelstyle.mjs +0 -120
  924. package/esm2022/scrolltop/primeng-scrolltop.mjs +0 -5
  925. package/esm2022/scrolltop/public_api.mjs +0 -4
  926. package/esm2022/scrolltop/scrolltop.interface.mjs +0 -2
  927. package/esm2022/scrolltop/scrolltop.mjs +0 -336
  928. package/esm2022/scrolltop/style/scrolltopstyle.mjs +0 -77
  929. package/esm2022/select/primeng-select.mjs +0 -5
  930. package/esm2022/select/public_api.mjs +0 -4
  931. package/esm2022/select/select.interface.mjs +0 -2
  932. package/esm2022/select/select.mjs +0 -2618
  933. package/esm2022/select/style/selectstyle.mjs +0 -365
  934. package/esm2022/selectbutton/primeng-selectbutton.mjs +0 -5
  935. package/esm2022/selectbutton/public_api.mjs +0 -4
  936. package/esm2022/selectbutton/selectbutton.interface.mjs +0 -2
  937. package/esm2022/selectbutton/selectbutton.mjs +0 -373
  938. package/esm2022/selectbutton/style/selectbuttonstyle.mjs +0 -73
  939. package/esm2022/sidebar/primeng-sidebar.mjs +0 -5
  940. package/esm2022/sidebar/public_api.mjs +0 -4
  941. package/esm2022/sidebar/sidebar.interface.mjs +0 -2
  942. package/esm2022/sidebar/sidebar.mjs +0 -578
  943. package/esm2022/sidebar/style/drawerstyle.mjs +0 -174
  944. package/esm2022/skeleton/primeng-skeleton.mjs +0 -5
  945. package/esm2022/skeleton/public_api.mjs +0 -3
  946. package/esm2022/skeleton/skeleton.mjs +0 -121
  947. package/esm2022/skeleton/style/skeletonstyle.mjs +0 -93
  948. package/esm2022/slider/primeng-slider.mjs +0 -5
  949. package/esm2022/slider/public_api.mjs +0 -4
  950. package/esm2022/slider/slider.interface.mjs +0 -2
  951. package/esm2022/slider/slider.mjs +0 -820
  952. package/esm2022/slider/style/sliderstyle.mjs +0 -141
  953. package/esm2022/speeddial/primeng-speeddial.mjs +0 -5
  954. package/esm2022/speeddial/public_api.mjs +0 -4
  955. package/esm2022/speeddial/speeddial.interface.mjs +0 -2
  956. package/esm2022/speeddial/speeddial.mjs +0 -866
  957. package/esm2022/speeddial/style/speeddialstyle.mjs +0 -167
  958. package/esm2022/splitbutton/primeng-splitbutton.mjs +0 -5
  959. package/esm2022/splitbutton/public_api.mjs +0 -4
  960. package/esm2022/splitbutton/splitbutton.interface.mjs +0 -2
  961. package/esm2022/splitbutton/splitbutton.mjs +0 -579
  962. package/esm2022/splitbutton/style/splitbuttonstyle.mjs +0 -100
  963. package/esm2022/splitter/primeng-splitter.mjs +0 -5
  964. package/esm2022/splitter/public_api.mjs +0 -4
  965. package/esm2022/splitter/splitter.interface.mjs +0 -2
  966. package/esm2022/splitter/splitter.mjs +0 -626
  967. package/esm2022/splitter/style/splitterstyle.mjs +0 -127
  968. package/esm2022/stepper/primeng-stepper.mjs +0 -5
  969. package/esm2022/stepper/public_api.mjs +0 -3
  970. package/esm2022/stepper/stepper.mjs +0 -521
  971. package/esm2022/stepper/style/stepperstyle.mjs +0 -228
  972. package/esm2022/steps/primeng-steps.mjs +0 -5
  973. package/esm2022/steps/public_api.mjs +0 -3
  974. package/esm2022/steps/steps.mjs +0 -405
  975. package/esm2022/steps/style/stepsstyle.mjs +0 -180
  976. package/esm2022/styleclass/primeng-styleclass.mjs +0 -5
  977. package/esm2022/styleclass/public_api.mjs +0 -2
  978. package/esm2022/styleclass/styleclass.mjs +0 -315
  979. package/esm2022/table/columnfilter.interface.mjs +0 -2
  980. package/esm2022/table/primeng-table.mjs +0 -5
  981. package/esm2022/table/public_api.mjs +0 -5
  982. package/esm2022/table/style/tablestyle.mjs +0 -906
  983. package/esm2022/table/table.interface.mjs +0 -2
  984. package/esm2022/table/table.mjs +0 -7829
  985. package/esm2022/tabmenu/primeng-tabmenu.mjs +0 -5
  986. package/esm2022/tabmenu/public_api.mjs +0 -4
  987. package/esm2022/tabmenu/style/tabmenustyle.mjs +0 -192
  988. package/esm2022/tabmenu/tabmenu.interface.mjs +0 -2
  989. package/esm2022/tabmenu/tabmenu.mjs +0 -730
  990. package/esm2022/tabs/primeng-tabs.mjs +0 -5
  991. package/esm2022/tabs/public_api.mjs +0 -7
  992. package/esm2022/tabs/style/tabsstyle.mjs +0 -211
  993. package/esm2022/tabs/tab.mjs +0 -175
  994. package/esm2022/tabs/tablist.mjs +0 -297
  995. package/esm2022/tabs/tabpanel.mjs +0 -60
  996. package/esm2022/tabs/tabpanels.mjs +0 -38
  997. package/esm2022/tabs/tabs.mjs +0 -105
  998. package/esm2022/tabview/primeng-tabview.mjs +0 -5
  999. package/esm2022/tabview/public_api.mjs +0 -4
  1000. package/esm2022/tabview/style/tabsstyle.mjs +0 -211
  1001. package/esm2022/tabview/tabview.interface.mjs +0 -2
  1002. package/esm2022/tabview/tabview.mjs +0 -1089
  1003. package/esm2022/tag/primeng-tag.mjs +0 -5
  1004. package/esm2022/tag/public_api.mjs +0 -4
  1005. package/esm2022/tag/style/tagstyle.mjs +0 -108
  1006. package/esm2022/tag/tag.interface.mjs +0 -2
  1007. package/esm2022/tag/tag.mjs +0 -168
  1008. package/esm2022/terminal/primeng-terminal.mjs +0 -5
  1009. package/esm2022/terminal/public_api.mjs +0 -4
  1010. package/esm2022/terminal/style/terminalstyle.mjs +0 -113
  1011. package/esm2022/terminal/terminal.mjs +0 -195
  1012. package/esm2022/terminal/terminalservice.mjs +0 -25
  1013. package/esm2022/textarea/primeng-textarea.mjs +0 -5
  1014. package/esm2022/textarea/public_api.mjs +0 -3
  1015. package/esm2022/textarea/style/textareastyle.mjs +0 -120
  1016. package/esm2022/textarea/textarea.mjs +0 -165
  1017. package/esm2022/tieredmenu/primeng-tieredmenu.mjs +0 -5
  1018. package/esm2022/tieredmenu/public_api.mjs +0 -4
  1019. package/esm2022/tieredmenu/style/tieredmenustyle.mjs +0 -276
  1020. package/esm2022/tieredmenu/tieredmenu.interface.mjs +0 -2
  1021. package/esm2022/tieredmenu/tieredmenu.mjs +0 -1444
  1022. package/esm2022/timeline/primeng-timeline.mjs +0 -5
  1023. package/esm2022/timeline/public_api.mjs +0 -4
  1024. package/esm2022/timeline/style/timelinestyle.mjs +0 -217
  1025. package/esm2022/timeline/timeline.interface.mjs +0 -2
  1026. package/esm2022/timeline/timeline.mjs +0 -223
  1027. package/esm2022/toast/primeng-toast.mjs +0 -5
  1028. package/esm2022/toast/public_api.mjs +0 -4
  1029. package/esm2022/toast/style/toaststyle.mjs +0 -351
  1030. package/esm2022/toast/toast.interface.mjs +0 -2
  1031. package/esm2022/toast/toast.mjs +0 -738
  1032. package/esm2022/togglebutton/primeng-togglebutton.mjs +0 -5
  1033. package/esm2022/togglebutton/public_api.mjs +0 -3
  1034. package/esm2022/togglebutton/style/togglebuttonstyle.mjs +0 -170
  1035. package/esm2022/togglebutton/togglebutton.interface.mjs +0 -2
  1036. package/esm2022/togglebutton/togglebutton.mjs +0 -353
  1037. package/esm2022/toggleswitch/primeng-toggleswitch.mjs +0 -5
  1038. package/esm2022/toggleswitch/public_api.mjs +0 -4
  1039. package/esm2022/toggleswitch/style/toggleswitchstyle.mjs +0 -165
  1040. package/esm2022/toggleswitch/toggleswitch.interface.mjs +0 -2
  1041. package/esm2022/toggleswitch/toggleswitch.mjs +0 -278
  1042. package/esm2022/toolbar/primeng-toolbar.mjs +0 -5
  1043. package/esm2022/toolbar/public_api.mjs +0 -4
  1044. package/esm2022/toolbar/style/toolbarstyle.mjs +0 -69
  1045. package/esm2022/toolbar/toolbar.interface.mjs +0 -2
  1046. package/esm2022/toolbar/toolbar.mjs +0 -172
  1047. package/esm2022/tooltip/primeng-tooltip.mjs +0 -5
  1048. package/esm2022/tooltip/public_api.mjs +0 -3
  1049. package/esm2022/tooltip/style/tooltipstyle.mjs +0 -113
  1050. package/esm2022/tooltip/tooltip.mjs +0 -715
  1051. package/esm2022/tree/primeng-tree.mjs +0 -5
  1052. package/esm2022/tree/public_api.mjs +0 -4
  1053. package/esm2022/tree/style/treestyle.mjs +0 -333
  1054. package/esm2022/tree/tree.interface.mjs +0 -2
  1055. package/esm2022/tree/tree.mjs +0 -2289
  1056. package/esm2022/treeselect/primeng-treeselect.mjs +0 -5
  1057. package/esm2022/treeselect/public_api.mjs +0 -4
  1058. package/esm2022/treeselect/style/treeselectstyle.mjs +0 -271
  1059. package/esm2022/treeselect/treeselect.interface.mjs +0 -2
  1060. package/esm2022/treeselect/treeselect.mjs +0 -1372
  1061. package/esm2022/treetable/primeng-treetable.mjs +0 -5
  1062. package/esm2022/treetable/public_api.mjs +0 -4
  1063. package/esm2022/treetable/style/treetablestyle.mjs +0 -621
  1064. package/esm2022/treetable/treetable.interface.mjs +0 -2
  1065. package/esm2022/treetable/treetable.mjs +0 -4642
  1066. package/esm2022/ts-helpers/primeng-ts-helpers.mjs +0 -5
  1067. package/esm2022/ts-helpers/public_api.mjs +0 -2
  1068. package/esm2022/ts-helpers/ts-helpers.mjs +0 -2
  1069. package/esm2022/usestyle/primeng-usestyle.mjs +0 -5
  1070. package/esm2022/usestyle/public_api.mjs +0 -2
  1071. package/esm2022/usestyle/usestyle.mjs +0 -44
  1072. package/esm2022/utils/inpututils.mjs +0 -7
  1073. package/esm2022/utils/objectutils.mjs +0 -276
  1074. package/esm2022/utils/primeng-utils.mjs +0 -5
  1075. package/esm2022/utils/public_api.mjs +0 -6
  1076. package/esm2022/utils/uniquecomponentid.mjs +0 -6
  1077. package/esm2022/utils/zindexutils.mjs +0 -35
@@ -1,715 +0,0 @@
1
- import { isPlatformBrowser } from '@angular/common';
2
- import { booleanAttribute, Directive, inject, Input, NgModule, numberAttribute, TemplateRef } from '@angular/core';
3
- import { appendChild, fadeIn, findSingle, getOuterHeight, getOuterWidth, getViewport, getWindowScrollLeft, getWindowScrollTop, hasClass, removeChild, uuid } from '@primeuix/utils';
4
- import { BaseComponent } from 'primeng/basecomponent';
5
- import { ConnectedOverlayScrollHandler } from 'primeng/dom';
6
- import { ZIndexUtils } from 'primeng/utils';
7
- import { TooltipStyle } from './style/tooltipstyle';
8
- import * as i0 from "@angular/core";
9
- /**
10
- * Tooltip directive provides advisory information for a component.
11
- * @group Components
12
- */
13
- export class Tooltip extends BaseComponent {
14
- zone;
15
- viewContainer;
16
- /**
17
- * Position of the tooltip.
18
- * @group Props
19
- */
20
- tooltipPosition;
21
- /**
22
- * Event to show the tooltip.
23
- * @group Props
24
- */
25
- tooltipEvent = 'hover';
26
- /**
27
- * Target element to attach the overlay, valid values are "body", "target" or a local ng-F variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]="mydiv" for a div element having #mydiv as variable name).
28
- * @group Props
29
- */
30
- appendTo;
31
- /**
32
- * Type of CSS position.
33
- * @group Props
34
- */
35
- positionStyle;
36
- /**
37
- * Style class of the tooltip.
38
- * @group Props
39
- */
40
- tooltipStyleClass;
41
- /**
42
- * Whether the z-index should be managed automatically to always go on top or have a fixed value.
43
- * @group Props
44
- */
45
- tooltipZIndex;
46
- /**
47
- * By default the tooltip contents are rendered as text. Set to false to support html tags in the content.
48
- * @group Props
49
- */
50
- escape = true;
51
- /**
52
- * Delay to show the tooltip in milliseconds.
53
- * @group Props
54
- */
55
- showDelay;
56
- /**
57
- * Delay to hide the tooltip in milliseconds.
58
- * @group Props
59
- */
60
- hideDelay;
61
- /**
62
- * Time to wait in milliseconds to hide the tooltip even it is active.
63
- * @group Props
64
- */
65
- life;
66
- /**
67
- * Specifies the additional vertical offset of the tooltip from its default position.
68
- * @group Props
69
- */
70
- positionTop;
71
- /**
72
- * Specifies the additional horizontal offset of the tooltip from its default position.
73
- * @group Props
74
- */
75
- positionLeft;
76
- /**
77
- * Whether to hide tooltip when hovering over tooltip content.
78
- * @group Props
79
- */
80
- autoHide = true;
81
- /**
82
- * Automatically adjusts the element position when there is not enough space on the selected position.
83
- * @group Props
84
- */
85
- fitContent = true;
86
- /**
87
- * Whether to hide tooltip on escape key press.
88
- * @group Props
89
- */
90
- hideOnEscape = true;
91
- /**
92
- * Content of the tooltip.
93
- * @group Props
94
- */
95
- content;
96
- /**
97
- * When present, it specifies that the component should be disabled.
98
- * @defaultValue false
99
- * @group Props
100
- */
101
- get disabled() {
102
- return this._disabled;
103
- }
104
- set disabled(val) {
105
- this._disabled = val;
106
- this.deactivate();
107
- }
108
- /**
109
- * Specifies the tooltip configuration options for the component.
110
- * @group Props
111
- */
112
- tooltipOptions;
113
- _tooltipOptions = {
114
- tooltipLabel: null,
115
- tooltipPosition: 'right',
116
- tooltipEvent: 'hover',
117
- appendTo: 'body',
118
- positionStyle: null,
119
- tooltipStyleClass: null,
120
- tooltipZIndex: 'auto',
121
- escape: true,
122
- disabled: null,
123
- showDelay: null,
124
- hideDelay: null,
125
- positionTop: null,
126
- positionLeft: null,
127
- life: null,
128
- autoHide: true,
129
- hideOnEscape: true,
130
- id: uuid('pn_id_') + '_tooltip'
131
- };
132
- _disabled;
133
- container;
134
- styleClass;
135
- tooltipText;
136
- showTimeout;
137
- hideTimeout;
138
- active;
139
- mouseEnterListener;
140
- mouseLeaveListener;
141
- containerMouseleaveListener;
142
- clickListener;
143
- focusListener;
144
- blurListener;
145
- documentEscapeListener;
146
- scrollHandler;
147
- resizeListener;
148
- _componentStyle = inject(TooltipStyle);
149
- interactionInProgress = false;
150
- constructor(zone, viewContainer) {
151
- super();
152
- this.zone = zone;
153
- this.viewContainer = viewContainer;
154
- }
155
- ngAfterViewInit() {
156
- super.ngAfterViewInit();
157
- if (isPlatformBrowser(this.platformId)) {
158
- this.zone.runOutsideAngular(() => {
159
- const tooltipEvent = this.getOption('tooltipEvent');
160
- if (tooltipEvent === 'hover' || tooltipEvent === 'both') {
161
- this.mouseEnterListener = this.onMouseEnter.bind(this);
162
- this.mouseLeaveListener = this.onMouseLeave.bind(this);
163
- this.clickListener = this.onInputClick.bind(this);
164
- this.el.nativeElement.addEventListener('mouseenter', this.mouseEnterListener);
165
- this.el.nativeElement.addEventListener('click', this.clickListener);
166
- this.el.nativeElement.addEventListener('mouseleave', this.mouseLeaveListener);
167
- }
168
- if (tooltipEvent === 'focus' || tooltipEvent === 'both') {
169
- this.focusListener = this.onFocus.bind(this);
170
- this.blurListener = this.onBlur.bind(this);
171
- let target = this.el.nativeElement.querySelector('.p-component');
172
- if (!target) {
173
- target = this.getTarget(this.el.nativeElement);
174
- }
175
- target.addEventListener('focus', this.focusListener);
176
- target.addEventListener('blur', this.blurListener);
177
- }
178
- });
179
- }
180
- }
181
- ngOnChanges(simpleChange) {
182
- super.ngOnChanges(simpleChange);
183
- if (simpleChange.tooltipPosition) {
184
- this.setOption({ tooltipPosition: simpleChange.tooltipPosition.currentValue });
185
- }
186
- if (simpleChange.tooltipEvent) {
187
- this.setOption({ tooltipEvent: simpleChange.tooltipEvent.currentValue });
188
- }
189
- if (simpleChange.appendTo) {
190
- this.setOption({ appendTo: simpleChange.appendTo.currentValue });
191
- }
192
- if (simpleChange.positionStyle) {
193
- this.setOption({ positionStyle: simpleChange.positionStyle.currentValue });
194
- }
195
- if (simpleChange.tooltipStyleClass) {
196
- this.setOption({ tooltipStyleClass: simpleChange.tooltipStyleClass.currentValue });
197
- }
198
- if (simpleChange.tooltipZIndex) {
199
- this.setOption({ tooltipZIndex: simpleChange.tooltipZIndex.currentValue });
200
- }
201
- if (simpleChange.escape) {
202
- this.setOption({ escape: simpleChange.escape.currentValue });
203
- }
204
- if (simpleChange.showDelay) {
205
- this.setOption({ showDelay: simpleChange.showDelay.currentValue });
206
- }
207
- if (simpleChange.hideDelay) {
208
- this.setOption({ hideDelay: simpleChange.hideDelay.currentValue });
209
- }
210
- if (simpleChange.life) {
211
- this.setOption({ life: simpleChange.life.currentValue });
212
- }
213
- if (simpleChange.positionTop) {
214
- this.setOption({ positionTop: simpleChange.positionTop.currentValue });
215
- }
216
- if (simpleChange.positionLeft) {
217
- this.setOption({ positionLeft: simpleChange.positionLeft.currentValue });
218
- }
219
- if (simpleChange.disabled) {
220
- this.setOption({ disabled: simpleChange.disabled.currentValue });
221
- }
222
- if (simpleChange.content) {
223
- this.setOption({ tooltipLabel: simpleChange.content.currentValue });
224
- if (this.active) {
225
- if (simpleChange.content.currentValue) {
226
- if (this.container && this.container.offsetParent) {
227
- this.updateText();
228
- this.align();
229
- }
230
- else {
231
- this.show();
232
- }
233
- }
234
- else {
235
- this.hide();
236
- }
237
- }
238
- }
239
- if (simpleChange.autoHide) {
240
- this.setOption({ autoHide: simpleChange.autoHide.currentValue });
241
- }
242
- if (simpleChange.id) {
243
- this.setOption({ id: simpleChange.id.currentValue });
244
- }
245
- if (simpleChange.tooltipOptions) {
246
- this._tooltipOptions = { ...this._tooltipOptions, ...simpleChange.tooltipOptions.currentValue };
247
- this.deactivate();
248
- if (this.active) {
249
- if (this.getOption('tooltipLabel')) {
250
- if (this.container && this.container.offsetParent) {
251
- this.updateText();
252
- this.align();
253
- }
254
- else {
255
- this.show();
256
- }
257
- }
258
- else {
259
- this.hide();
260
- }
261
- }
262
- }
263
- }
264
- isAutoHide() {
265
- return this.getOption('autoHide');
266
- }
267
- onMouseEnter(e) {
268
- if (!this.container && !this.showTimeout) {
269
- this.activate();
270
- }
271
- }
272
- onMouseLeave(e) {
273
- if (!this.isAutoHide()) {
274
- const valid = hasClass(e.relatedTarget, 'p-tooltip') || hasClass(e.relatedTarget, 'p-tooltip-text') || hasClass(e.relatedTarget, 'p-tooltip-arrow');
275
- !valid && this.deactivate();
276
- }
277
- else {
278
- this.deactivate();
279
- }
280
- }
281
- onFocus(e) {
282
- this.activate();
283
- }
284
- onBlur(e) {
285
- this.deactivate();
286
- }
287
- onInputClick(e) {
288
- this.deactivate();
289
- }
290
- activate() {
291
- if (!this.interactionInProgress) {
292
- this.active = true;
293
- this.clearHideTimeout();
294
- if (this.getOption('showDelay'))
295
- this.showTimeout = setTimeout(() => {
296
- this.show();
297
- }, this.getOption('showDelay'));
298
- else
299
- this.show();
300
- if (this.getOption('life')) {
301
- let duration = this.getOption('showDelay') ? this.getOption('life') + this.getOption('showDelay') : this.getOption('life');
302
- this.hideTimeout = setTimeout(() => {
303
- this.hide();
304
- }, duration);
305
- }
306
- if (this.getOption('hideOnEscape')) {
307
- this.documentEscapeListener = this.renderer.listen('document', 'keydown.escape', () => {
308
- this.deactivate();
309
- this.documentEscapeListener();
310
- });
311
- }
312
- this.interactionInProgress = true;
313
- }
314
- }
315
- deactivate() {
316
- this.interactionInProgress = false;
317
- this.active = false;
318
- this.clearShowTimeout();
319
- if (this.getOption('hideDelay')) {
320
- this.clearHideTimeout(); //life timeout
321
- this.hideTimeout = setTimeout(() => {
322
- this.hide();
323
- }, this.getOption('hideDelay'));
324
- }
325
- else {
326
- this.hide();
327
- }
328
- if (this.documentEscapeListener) {
329
- this.documentEscapeListener();
330
- }
331
- }
332
- create() {
333
- if (this.container) {
334
- this.clearHideTimeout();
335
- this.remove();
336
- }
337
- this.container = document.createElement('div');
338
- this.container.setAttribute('id', this.getOption('id'));
339
- this.container.setAttribute('role', 'tooltip');
340
- let tooltipArrow = document.createElement('div');
341
- tooltipArrow.className = 'p-tooltip-arrow';
342
- this.container.appendChild(tooltipArrow);
343
- this.tooltipText = document.createElement('div');
344
- this.tooltipText.className = 'p-tooltip-text';
345
- this.updateText();
346
- if (this.getOption('positionStyle')) {
347
- this.container.style.position = this.getOption('positionStyle');
348
- }
349
- this.container.appendChild(this.tooltipText);
350
- if (this.getOption('appendTo') === 'body')
351
- document.body.appendChild(this.container);
352
- else if (this.getOption('appendTo') === 'target')
353
- appendChild(this.container, this.el.nativeElement);
354
- else
355
- appendChild(this.getOption('appendTo'), this.container);
356
- this.container.style.display = 'inline-block';
357
- if (this.fitContent) {
358
- this.container.style.width = 'fit-content';
359
- }
360
- if (this.isAutoHide()) {
361
- this.container.style.pointerEvents = 'none';
362
- }
363
- else {
364
- this.container.style.pointerEvents = 'unset';
365
- this.bindContainerMouseleaveListener();
366
- }
367
- }
368
- bindContainerMouseleaveListener() {
369
- if (!this.containerMouseleaveListener) {
370
- const targetEl = this.container ?? this.container.nativeElement;
371
- this.containerMouseleaveListener = this.renderer.listen(targetEl, 'mouseleave', (e) => {
372
- this.deactivate();
373
- });
374
- }
375
- }
376
- unbindContainerMouseleaveListener() {
377
- if (this.containerMouseleaveListener) {
378
- this.bindContainerMouseleaveListener();
379
- this.containerMouseleaveListener = null;
380
- }
381
- }
382
- show() {
383
- if (!this.getOption('tooltipLabel') || this.getOption('disabled')) {
384
- return;
385
- }
386
- this.create();
387
- const nativeElement = this.el.nativeElement;
388
- const pDialogWrapper = nativeElement.closest('p-dialog');
389
- if (pDialogWrapper) {
390
- setTimeout(() => {
391
- this.container && this.align();
392
- }, 100);
393
- }
394
- else {
395
- this.align();
396
- }
397
- fadeIn(this.container, 250);
398
- if (this.getOption('tooltipZIndex') === 'auto')
399
- ZIndexUtils.set('tooltip', this.container, this.config.zIndex.tooltip);
400
- else
401
- this.container.style.zIndex = this.getOption('tooltipZIndex');
402
- this.bindDocumentResizeListener();
403
- this.bindScrollListener();
404
- }
405
- hide() {
406
- if (this.getOption('tooltipZIndex') === 'auto') {
407
- ZIndexUtils.clear(this.container);
408
- }
409
- this.remove();
410
- }
411
- updateText() {
412
- const content = this.getOption('tooltipLabel');
413
- if (content instanceof TemplateRef) {
414
- const embeddedViewRef = this.viewContainer.createEmbeddedView(content);
415
- embeddedViewRef.detectChanges();
416
- embeddedViewRef.rootNodes.forEach((node) => this.tooltipText.appendChild(node));
417
- }
418
- else if (this.getOption('escape')) {
419
- this.tooltipText.innerHTML = '';
420
- this.tooltipText.appendChild(document.createTextNode(content));
421
- }
422
- else {
423
- this.tooltipText.innerHTML = content;
424
- }
425
- }
426
- align() {
427
- let position = this.getOption('tooltipPosition');
428
- switch (position) {
429
- case 'top':
430
- this.alignTop();
431
- if (this.isOutOfBounds()) {
432
- this.alignBottom();
433
- if (this.isOutOfBounds()) {
434
- this.alignRight();
435
- if (this.isOutOfBounds()) {
436
- this.alignLeft();
437
- }
438
- }
439
- }
440
- break;
441
- case 'bottom':
442
- this.alignBottom();
443
- if (this.isOutOfBounds()) {
444
- this.alignTop();
445
- if (this.isOutOfBounds()) {
446
- this.alignRight();
447
- if (this.isOutOfBounds()) {
448
- this.alignLeft();
449
- }
450
- }
451
- }
452
- break;
453
- case 'left':
454
- this.alignLeft();
455
- if (this.isOutOfBounds()) {
456
- this.alignRight();
457
- if (this.isOutOfBounds()) {
458
- this.alignTop();
459
- if (this.isOutOfBounds()) {
460
- this.alignBottom();
461
- }
462
- }
463
- }
464
- break;
465
- case 'right':
466
- this.alignRight();
467
- if (this.isOutOfBounds()) {
468
- this.alignLeft();
469
- if (this.isOutOfBounds()) {
470
- this.alignTop();
471
- if (this.isOutOfBounds()) {
472
- this.alignBottom();
473
- }
474
- }
475
- }
476
- break;
477
- }
478
- }
479
- getHostOffset() {
480
- if (this.getOption('appendTo') === 'body' || this.getOption('appendTo') === 'target') {
481
- let offset = this.el.nativeElement.getBoundingClientRect();
482
- let targetLeft = offset.left + getWindowScrollLeft();
483
- let targetTop = offset.top + getWindowScrollTop();
484
- return { left: targetLeft, top: targetTop };
485
- }
486
- else {
487
- return { left: 0, top: 0 };
488
- }
489
- }
490
- alignRight() {
491
- this.preAlign('right');
492
- const el = this.activeElement;
493
- const hostOffset = this.getHostOffset();
494
- const left = hostOffset.left + getOuterWidth(el);
495
- const top = hostOffset.top + (getOuterHeight(el) - getOuterHeight(this.container)) / 2;
496
- this.container.style.left = left + this.getOption('positionLeft') + 'px';
497
- this.container.style.top = top + this.getOption('positionTop') + 'px';
498
- }
499
- get activeElement() {
500
- return this.el.nativeElement.nodeName.includes('P-') ? findSingle(this.el.nativeElement, '.p-component') : this.el.nativeElement;
501
- }
502
- alignLeft() {
503
- this.preAlign('left');
504
- let hostOffset = this.getHostOffset();
505
- let left = hostOffset.left - getOuterWidth(this.container);
506
- let top = hostOffset.top + (getOuterHeight(this.el.nativeElement) - getOuterHeight(this.container)) / 2;
507
- this.container.style.left = left + this.getOption('positionLeft') + 'px';
508
- this.container.style.top = top + this.getOption('positionTop') + 'px';
509
- }
510
- alignTop() {
511
- this.preAlign('top');
512
- let hostOffset = this.getHostOffset();
513
- let left = hostOffset.left + (getOuterWidth(this.el.nativeElement) - getOuterWidth(this.container)) / 2;
514
- let top = hostOffset.top - getOuterHeight(this.container);
515
- this.container.style.left = left + this.getOption('positionLeft') + 'px';
516
- this.container.style.top = top + this.getOption('positionTop') + 'px';
517
- }
518
- alignBottom() {
519
- this.preAlign('bottom');
520
- let hostOffset = this.getHostOffset();
521
- let left = hostOffset.left + (getOuterWidth(this.el.nativeElement) - getOuterWidth(this.container)) / 2;
522
- let top = hostOffset.top + getOuterHeight(this.el.nativeElement);
523
- this.container.style.left = left + this.getOption('positionLeft') + 'px';
524
- this.container.style.top = top + this.getOption('positionTop') + 'px';
525
- }
526
- setOption(option) {
527
- this._tooltipOptions = { ...this._tooltipOptions, ...option };
528
- }
529
- getOption(option) {
530
- return this._tooltipOptions[option];
531
- }
532
- getTarget(el) {
533
- return hasClass(el, 'p-inputwrapper') ? findSingle(el, 'input') : el;
534
- }
535
- preAlign(position) {
536
- this.container.style.left = -999 + 'px';
537
- this.container.style.top = -999 + 'px';
538
- let defaultClassName = 'p-tooltip p-component p-tooltip-' + position;
539
- this.container.className = this.getOption('tooltipStyleClass') ? defaultClassName + ' ' + this.getOption('tooltipStyleClass') : defaultClassName;
540
- }
541
- isOutOfBounds() {
542
- let offset = this.container.getBoundingClientRect();
543
- let targetTop = offset.top;
544
- let targetLeft = offset.left;
545
- let width = getOuterWidth(this.container);
546
- let height = getOuterHeight(this.container);
547
- let viewport = getViewport();
548
- return targetLeft + width > viewport.width || targetLeft < 0 || targetTop < 0 || targetTop + height > viewport.height;
549
- }
550
- onWindowResize(e) {
551
- this.hide();
552
- }
553
- bindDocumentResizeListener() {
554
- this.zone.runOutsideAngular(() => {
555
- this.resizeListener = this.onWindowResize.bind(this);
556
- window.addEventListener('resize', this.resizeListener);
557
- });
558
- }
559
- unbindDocumentResizeListener() {
560
- if (this.resizeListener) {
561
- window.removeEventListener('resize', this.resizeListener);
562
- this.resizeListener = null;
563
- }
564
- }
565
- bindScrollListener() {
566
- if (!this.scrollHandler) {
567
- this.scrollHandler = new ConnectedOverlayScrollHandler(this.el.nativeElement, () => {
568
- if (this.container) {
569
- this.hide();
570
- }
571
- });
572
- }
573
- this.scrollHandler.bindScrollListener();
574
- }
575
- unbindScrollListener() {
576
- if (this.scrollHandler) {
577
- this.scrollHandler.unbindScrollListener();
578
- }
579
- }
580
- unbindEvents() {
581
- const tooltipEvent = this.getOption('tooltipEvent');
582
- if (tooltipEvent === 'hover' || tooltipEvent === 'both') {
583
- this.el.nativeElement.removeEventListener('mouseenter', this.mouseEnterListener);
584
- this.el.nativeElement.removeEventListener('mouseleave', this.mouseLeaveListener);
585
- this.el.nativeElement.removeEventListener('click', this.clickListener);
586
- }
587
- if (tooltipEvent === 'focus' || tooltipEvent === 'both') {
588
- let target = this.el.nativeElement.querySelector('.p-component');
589
- if (!target) {
590
- target = this.getTarget(this.el.nativeElement);
591
- }
592
- target.removeEventListener('focus', this.focusListener);
593
- target.removeEventListener('blur', this.blurListener);
594
- }
595
- this.unbindDocumentResizeListener();
596
- }
597
- remove() {
598
- if (this.container && this.container.parentElement) {
599
- if (this.getOption('appendTo') === 'body')
600
- document.body.removeChild(this.container);
601
- else if (this.getOption('appendTo') === 'target')
602
- this.el.nativeElement.removeChild(this.container);
603
- else
604
- removeChild(this.container, this.getOption('appendTo'));
605
- }
606
- this.unbindDocumentResizeListener();
607
- this.unbindScrollListener();
608
- this.unbindContainerMouseleaveListener();
609
- this.clearTimeouts();
610
- this.container = null;
611
- this.scrollHandler = null;
612
- }
613
- clearShowTimeout() {
614
- if (this.showTimeout) {
615
- clearTimeout(this.showTimeout);
616
- this.showTimeout = null;
617
- }
618
- }
619
- clearHideTimeout() {
620
- if (this.hideTimeout) {
621
- clearTimeout(this.hideTimeout);
622
- this.hideTimeout = null;
623
- }
624
- }
625
- clearTimeouts() {
626
- this.clearShowTimeout();
627
- this.clearHideTimeout();
628
- }
629
- ngOnDestroy() {
630
- this.unbindEvents();
631
- super.ngOnDestroy();
632
- if (this.container) {
633
- ZIndexUtils.clear(this.container);
634
- }
635
- this.remove();
636
- if (this.scrollHandler) {
637
- this.scrollHandler.destroy();
638
- this.scrollHandler = null;
639
- }
640
- if (this.documentEscapeListener) {
641
- this.documentEscapeListener();
642
- }
643
- }
644
- static ɵfac = function Tooltip_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Tooltip)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
645
- static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: Tooltip, selectors: [["", "pTooltip", ""]], inputs: { tooltipPosition: "tooltipPosition", tooltipEvent: "tooltipEvent", appendTo: "appendTo", positionStyle: "positionStyle", tooltipStyleClass: "tooltipStyleClass", tooltipZIndex: "tooltipZIndex", escape: [2, "escape", "escape", booleanAttribute], showDelay: [2, "showDelay", "showDelay", numberAttribute], hideDelay: [2, "hideDelay", "hideDelay", numberAttribute], life: [2, "life", "life", numberAttribute], positionTop: [2, "positionTop", "positionTop", numberAttribute], positionLeft: [2, "positionLeft", "positionLeft", numberAttribute], autoHide: [2, "autoHide", "autoHide", booleanAttribute], fitContent: [2, "fitContent", "fitContent", booleanAttribute], hideOnEscape: [2, "hideOnEscape", "hideOnEscape", booleanAttribute], content: [0, "pTooltip", "content"], disabled: [0, "tooltipDisabled", "disabled"], tooltipOptions: "tooltipOptions" }, standalone: true, features: [i0.ɵɵProvidersFeature([TooltipStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature] });
646
- }
647
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Tooltip, [{
648
- type: Directive,
649
- args: [{
650
- selector: '[pTooltip]',
651
- standalone: true,
652
- providers: [TooltipStyle]
653
- }]
654
- }], () => [{ type: i0.NgZone }, { type: i0.ViewContainerRef }], { tooltipPosition: [{
655
- type: Input
656
- }], tooltipEvent: [{
657
- type: Input
658
- }], appendTo: [{
659
- type: Input
660
- }], positionStyle: [{
661
- type: Input
662
- }], tooltipStyleClass: [{
663
- type: Input
664
- }], tooltipZIndex: [{
665
- type: Input
666
- }], escape: [{
667
- type: Input,
668
- args: [{ transform: booleanAttribute }]
669
- }], showDelay: [{
670
- type: Input,
671
- args: [{ transform: numberAttribute }]
672
- }], hideDelay: [{
673
- type: Input,
674
- args: [{ transform: numberAttribute }]
675
- }], life: [{
676
- type: Input,
677
- args: [{ transform: numberAttribute }]
678
- }], positionTop: [{
679
- type: Input,
680
- args: [{ transform: numberAttribute }]
681
- }], positionLeft: [{
682
- type: Input,
683
- args: [{ transform: numberAttribute }]
684
- }], autoHide: [{
685
- type: Input,
686
- args: [{ transform: booleanAttribute }]
687
- }], fitContent: [{
688
- type: Input,
689
- args: [{ transform: booleanAttribute }]
690
- }], hideOnEscape: [{
691
- type: Input,
692
- args: [{ transform: booleanAttribute }]
693
- }], content: [{
694
- type: Input,
695
- args: ['pTooltip']
696
- }], disabled: [{
697
- type: Input,
698
- args: ['tooltipDisabled']
699
- }], tooltipOptions: [{
700
- type: Input
701
- }] }); })();
702
- export class TooltipModule {
703
- static ɵfac = function TooltipModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TooltipModule)(); };
704
- static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: TooltipModule });
705
- static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
706
- }
707
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TooltipModule, [{
708
- type: NgModule,
709
- args: [{
710
- imports: [Tooltip],
711
- exports: [Tooltip]
712
- }]
713
- }], null, null); })();
714
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(TooltipModule, { imports: [Tooltip], exports: [Tooltip] }); })();
715
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29sdGlwL3Rvb2x0aXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFpQixnQkFBZ0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQVUsZUFBZSxFQUE0QixXQUFXLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ2xNLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBMLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXBEOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxPQUFRLFNBQVEsYUFBYTtJQTRKM0I7SUFDQztJQTVKWjs7O09BR0c7SUFDTSxlQUFlLENBQTJEO0lBQ25GOzs7T0FHRztJQUNNLFlBQVksR0FBOEMsT0FBTyxDQUFDO0lBQzNFOzs7T0FHRztJQUNNLFFBQVEsQ0FBZ0Y7SUFDakc7OztPQUdHO0lBQ00sYUFBYSxDQUFxQjtJQUMzQzs7O09BR0c7SUFDTSxpQkFBaUIsQ0FBcUI7SUFDL0M7OztPQUdHO0lBQ00sYUFBYSxDQUFxQjtJQUMzQzs7O09BR0c7SUFDcUMsTUFBTSxHQUFZLElBQUksQ0FBQztJQUMvRDs7O09BR0c7SUFDb0MsU0FBUyxDQUFxQjtJQUNy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SUFBSSxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUVELElBQUksWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsSUFBSSxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUVELElBQUksWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQzdFLENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBRUQsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFlBQVksRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7WUFFcEUsSUFBSSxJQUFJLENBQUMsTUFBTSxF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RyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUMxRSxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RDLElBQUksSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hHLElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3pFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDMUUsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0QyxJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RyxJQUFJLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDekUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUMxRSxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQVc7UUFDakIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYztRQUNwQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBMEMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxTQUFTLENBQUMsRUFBVztRQUNqQixPQUFPLFFBQVEsQ0FBQyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFFRCxRQUFRLENBQUMsUUFBZ0I7UUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBRXZDLElBQUksZ0JBQWdCLEdBQUcsa0NBQWtDLEdBQUcsUUFBUSxDQUFDO1FBQ3JFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7SUFDckosQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDcEQsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUMzQixJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzdCLElBQUksS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsSUFBSSxNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QyxJQUFJLFFBQVEsR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUU3QixPQUFPLFVBQVUsR0FBRyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLFNBQVMsR0FBRyxDQUFDLElBQUksU0FBUyxHQUFHLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQzFILENBQUM7SUFFRCxjQUFjLENBQUMsQ0FBUTtRQUNuQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELDBCQUEwQjtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELDRCQUE0QjtRQUN4QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMvQixDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLDZCQUE2QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtnQkFDL0UsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ2pCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDaEIsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDUixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXBELElBQUksWUFBWSxLQUFLLE9BQU8sSUFBSSxZQUFZLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNqRixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFDRCxJQUFJLFlBQVksS0FBSyxPQUFPLElBQUksWUFBWSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3RELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUVqRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1YsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDeEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLE1BQU07Z0JBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUNoRixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssUUFBUTtnQkFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDOztnQkFDL0YsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFFRCxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELGdCQUFnQjtRQUNaLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVwQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQztpR0FodUJRLE9BQU87NkRBQVAsT0FBTywrUUFtQ0ksZ0JBQWdCLDRDQUtoQixlQUFlLDRDQUtmLGVBQWUsNkJBS2YsZUFBZSxrREFLZixlQUFlLHFEQUtmLGVBQWUseUNBS2YsZ0JBQWdCLCtDQUtoQixnQkFBZ0IscURBS2hCLGdCQUFnQiw2S0E3RXpCLENBQUMsWUFBWSxDQUFDOztpRkFFaEIsT0FBTztjQUxuQixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDNUI7c0VBTVksZUFBZTtrQkFBdkIsS0FBSztZQUtHLFlBQVk7a0JBQXBCLEtBQUs7WUFLRyxRQUFRO2tCQUFoQixLQUFLO1lBS0csYUFBYTtrQkFBckIsS0FBSztZQUtHLGlCQUFpQjtrQkFBekIsS0FBSztZQUtHLGFBQWE7a0JBQXJCLEtBQUs7WUFLa0MsTUFBTTtrQkFBN0MsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQUtDLFNBQVM7a0JBQS9DLEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO1lBS0UsU0FBUztrQkFBL0MsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7WUFLRSxJQUFJO2tCQUExQyxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtZQUtFLFdBQVc7a0JBQWpELEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO1lBS0UsWUFBWTtrQkFBbEQsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7WUFLRyxRQUFRO2tCQUEvQyxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBS0UsVUFBVTtrQkFBakQsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQUtFLFlBQVk7a0JBQW5ELEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFLbkIsT0FBTztrQkFBekIsS0FBSzttQkFBQyxVQUFVO1lBTWEsUUFBUTtrQkFBckMsS0FBSzttQkFBQyxpQkFBaUI7WUFXZixjQUFjO2tCQUF0QixLQUFLOztBQXNvQlYsTUFBTSxPQUFPLGFBQWE7dUdBQWIsYUFBYTs0REFBYixhQUFhOzs7aUZBQWIsYUFBYTtjQUp6QixRQUFRO2VBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO2dCQUNsQixPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7YUFDckI7O3dGQUNZLGFBQWEsY0F2dUJiLE9BQU8sYUFBUCxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0LCBOZ01vZHVsZSwgTmdab25lLCBudW1iZXJBdHRyaWJ1dGUsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFwcGVuZENoaWxkLCBmYWRlSW4sIGZpbmRTaW5nbGUsIGdldE91dGVySGVpZ2h0LCBnZXRPdXRlcldpZHRoLCBnZXRWaWV3cG9ydCwgZ2V0V2luZG93U2Nyb2xsTGVmdCwgZ2V0V2luZG93U2Nyb2xsVG9wLCBoYXNDbGFzcywgcmVtb3ZlQ2hpbGQsIHV1aWQgfSBmcm9tICdAcHJpbWV1aXgvdXRpbHMnO1xuaW1wb3J0IHsgVG9vbHRpcE9wdGlvbnMgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9iYXNlY29tcG9uZW50JztcbmltcG9ydCB7IENvbm5lY3RlZE92ZXJsYXlTY3JvbGxIYW5kbGVyIH0gZnJvbSAncHJpbWVuZy9kb20nO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdwcmltZW5nL3RzLWhlbHBlcnMnO1xuaW1wb3J0IHsgWkluZGV4VXRpbHMgfSBmcm9tICdwcmltZW5nL3V0aWxzJztcbmltcG9ydCB7IFRvb2x0aXBTdHlsZSB9IGZyb20gJy4vc3R5bGUvdG9vbHRpcHN0eWxlJztcblxuLyoqXG4gKiBUb29sdGlwIGRpcmVjdGl2ZSBwcm92aWRlcyBhZHZpc29yeSBpbmZvcm1hdGlvbiBmb3IgYSBjb21wb25lbnQuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1twVG9vbHRpcF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbVG9vbHRpcFN0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHRvb2x0aXAuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdG9vbHRpcFBvc2l0aW9uOiAncmlnaHQnIHwgJ2xlZnQnIHwgJ3RvcCcgfCAnYm90dG9tJyB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBFdmVudCB0byBzaG93IHRoZSB0b29sdGlwLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRvb2x0aXBFdmVudDogJ2hvdmVyJyB8ICdmb2N1cycgfCAnYm90aCcgfCBzdHJpbmcgfCBhbnkgPSAnaG92ZXInO1xuICAgIC8qKlxuICAgICAqICBUYXJnZXQgZWxlbWVudCB0byBhdHRhY2ggdGhlIG92ZXJsYXksIHZhbGlkIHZhbHVlcyBhcmUgXCJib2R5XCIsIFwidGFyZ2V0XCIgb3IgYSBsb2NhbCBuZy1GIHZhcmlhYmxlIG9mIGFub3RoZXIgZWxlbWVudCAobm90ZTogdXNlIGJpbmRpbmcgd2l0aCBicmFja2V0cyBmb3IgdGVtcGxhdGUgdmFyaWFibGVzLCBlLmcuIFthcHBlbmRUb109XCJteWRpdlwiIGZvciBhIGRpdiBlbGVtZW50IGhhdmluZyAjbXlkaXYgYXMgdmFyaWFibGUgbmFtZSkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgYXBwZW5kVG86IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZiB8IFRlbXBsYXRlUmVmPGFueT4gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkIHwgYW55O1xuICAgIC8qKlxuICAgICAqIFR5cGUgb2YgQ1NTIHBvc2l0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHBvc2l0aW9uU3R5bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTdHlsZSBjbGFzcyBvZiB0aGUgdG9vbHRpcC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0b29sdGlwU3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHotaW5kZXggc2hvdWxkIGJlIG1hbmFnZWQgYXV0b21hdGljYWxseSB0byBhbHdheXMgZ28gb24gdG9wIG9yIGhhdmUgYSBmaXhlZCB2YWx1ZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0b29sdGlwWkluZGV4OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQnkgZGVmYXVsdCB0aGUgdG9vbHRpcCBjb250ZW50cyBhcmUgcmVuZGVyZWQgYXMgdGV4dC4gU2V0IHRvIGZhbHNlIHRvIHN1cHBvcnQgaHRtbCB0YWdzIGluIHRoZSBjb250ZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBlc2NhcGU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIERlbGF5IHRvIHNob3cgdGhlIHRvb2x0aXAgaW4gbWlsbGlzZWNvbmRzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHNob3dEZWxheTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIERlbGF5IHRvIGhpZGUgdGhlIHRvb2x0aXAgaW4gbWlsbGlzZWNvbmRzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIGhpZGVEZWxheTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFRpbWUgdG8gd2FpdCBpbiBtaWxsaXNlY29uZHMgdG8gaGlkZSB0aGUgdG9vbHRpcCBldmVuIGl0IGlzIGFjdGl2ZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBsaWZlOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIHRoZSBhZGRpdGlvbmFsIHZlcnRpY2FsIG9mZnNldCBvZiB0aGUgdG9vbHRpcCBmcm9tIGl0cyBkZWZhdWx0IHBvc2l0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHBvc2l0aW9uVG9wOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIHRoZSBhZGRpdGlvbmFsIGhvcml6b250YWwgb2Zmc2V0IG9mIHRoZSB0b29sdGlwIGZyb20gaXRzIGRlZmF1bHQgcG9zaXRpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgcG9zaXRpb25MZWZ0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBoaWRlIHRvb2x0aXAgd2hlbiBob3ZlcmluZyBvdmVyIHRvb2x0aXAgY29udGVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYXV0b0hpZGU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIEF1dG9tYXRpY2FsbHkgYWRqdXN0cyB0aGUgZWxlbWVudCBwb3NpdGlvbiB3aGVuIHRoZXJlIGlzIG5vdCBlbm91Z2ggc3BhY2Ugb24gdGhlIHNlbGVjdGVkIHBvc2l0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBmaXRDb250ZW50OiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGhpZGUgdG9vbHRpcCBvbiBlc2NhcGUga2V5IHByZXNzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoaWRlT25Fc2NhcGU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIENvbnRlbnQgb2YgdGhlIHRvb2x0aXAuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCdwVG9vbHRpcCcpIGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGVuIHByZXNlbnQsIGl0IHNwZWNpZmllcyB0aGF0IHRoZSBjb21wb25lbnQgc2hvdWxkIGJlIGRpc2FibGVkLlxuICAgICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoJ3Rvb2x0aXBEaXNhYmxlZCcpIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkIGFzIGJvb2xlYW47XG4gICAgfVxuICAgIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSB2YWw7XG4gICAgICAgIHRoaXMuZGVhY3RpdmF0ZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHRvb2x0aXAgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRvb2x0aXBPcHRpb25zOiBUb29sdGlwT3B0aW9ucyB8IHVuZGVmaW5lZDtcblxuICAgIF90b29sdGlwT3B0aW9ucyA9IHtcbiAgICAgICAgdG9vbHRpcExhYmVsOiBudWxsLFxuICAgICAgICB0b29sdGlwUG9zaXRpb246ICdyaWdodCcsXG4gICAgICAgIHRvb2x0aXBFdmVudDogJ2hvdmVyJyxcbiAgICAgICAgYXBwZW5kVG86ICdib2R5JyxcbiAgICAgICAgcG9zaXRpb25TdHlsZTogbnVsbCxcbiAgICAgICAgdG9vbHRpcFN0eWxlQ2xhc3M6IG51bGwsXG4gICAgICAgIHRvb2x0aXBaSW5kZXg6ICdhdXRvJyxcbiAgICAgICAgZXNjYXBlOiB0cnVlLFxuICAgICAgICBkaXNhYmxlZDogbnVsbCxcbiAgICAgICAgc2hvd0RlbGF5OiBudWxsLFxuICAgICAgICBoaWRlRGVsYXk6IG51bGwsXG4gICAgICAgIHBvc2l0aW9uVG9wOiBudWxsLFxuICAgICAgICBwb3NpdGlvbkxlZnQ6IG51bGwsXG4gICAgICAgIGxpZmU6IG51bGwsXG4gICAgICAgIGF1dG9IaWRlOiB0cnVlLFxuICAgICAgICBoaWRlT25Fc2NhcGU6IHRydWUsXG4gICAgICAgIGlkOiB1dWlkKCdwbl9pZF8nKSArICdfdG9vbHRpcCdcbiAgICB9O1xuXG4gICAgX2Rpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgY29udGFpbmVyOiBhbnk7XG5cbiAgICBzdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICB0b29sdGlwVGV4dDogYW55O1xuXG4gICAgc2hvd1RpbWVvdXQ6IGFueTtcblxuICAgIGhpZGVUaW1lb3V0OiBhbnk7XG5cbiAgICBhY3RpdmU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBtb3VzZUVudGVyTGlzdGVuZXI6IE51bGxhYmxlPEZ1bmN0aW9uPjtcblxuICAgIG1vdXNlTGVhdmVMaXN0ZW5lcjogTnVsbGFibGU8RnVuY3Rpb24+O1xuXG4gICAgY29udGFpbmVyTW91c2VsZWF2ZUxpc3RlbmVyOiBOdWxsYWJsZTxGdW5jdGlvbj47XG5cbiAgICBjbGlja0xpc3RlbmVyOiBOdWxsYWJsZTxGdW5jdGlvbj47XG5cbiAgICBmb2N1c0xpc3RlbmVyOiBOdWxsYWJsZTxGdW5jdGlvbj47XG5cbiAgICBibHVyTGlzdGVuZXI6IE51bGxhYmxlPEZ1bmN0aW9uPjtcblxuICAgIGRvY3VtZW50RXNjYXBlTGlzdGVuZXI6IE51bGxhYmxlPEZ1bmN0aW9uPjtcblxuICAgIHNjcm9sbEhhbmRsZXI6IGFueTtcblxuICAgIHJlc2l6ZUxpc3RlbmVyOiBhbnk7XG5cbiAgICBfY29tcG9uZW50U3R5bGUgPSBpbmplY3QoVG9vbHRpcFN0eWxlKTtcblxuICAgIGludGVyYWN0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyB6b25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvb2x0aXBFdmVudCA9IHRoaXMuZ2V0T3B0aW9uKCd0b29sdGlwRXZlbnQnKTtcblxuICAgICAgICAgICAgICAgIGlmICh0b29sdGlwRXZlbnQgPT09ICdob3ZlcicgfHwgdG9vbHRpcEV2ZW50ID09PSAnYm90aCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3VzZUVudGVyTGlzdGVuZXIgPSB0aGlzLm9uTW91c2VFbnRlci5iaW5kKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdXNlTGVhdmVMaXN0ZW5lciA9IHRoaXMub25Nb3VzZUxlYXZlLmJpbmQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xpY2tMaXN0ZW5lciA9IHRoaXMub25JbnB1dENsaWNrLmJpbmQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5tb3VzZUVudGVyTGlzdGVuZXIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsaWNrTGlzdGVuZXIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMubW91c2VMZWF2ZUxpc3RlbmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRvb2x0aXBFdmVudCA9PT0gJ2ZvY3VzJyB8fCB0b29sdGlwRXZlbnQgPT09ICdib3RoJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzTGlzdGVuZXIgPSB0aGlzLm9uRm9jdXMuYmluZCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibHVyTGlzdGVuZXIgPSB0aGlzLm9uQmx1ci5iaW5kKHRoaXMpO1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnAtY29tcG9uZW50Jyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IHRoaXMuZ2V0VGFyZ2V0KHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCB0aGlzLmZvY3VzTGlzdGVuZXIpO1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuYmx1ckxpc3RlbmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZTogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2UpO1xuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlLnRvb2x0aXBQb3NpdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zZXRPcHRpb24oeyB0b29sdGlwUG9zaXRpb246IHNpbXBsZUNoYW5nZS50b29sdGlwUG9zaXRpb24uY3VycmVudFZhbHVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZS50b29sdGlwRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0T3B0aW9uKHsgdG9vbHRpcEV2ZW50OiBzaW1wbGVDaGFuZ2UudG9vbHRpcEV2ZW50LmN1cnJlbnRWYWx1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2UuYXBwZW5kVG8pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0T3B0aW9uKHsgYXBwZW5kVG86IHNpbXBsZUNoYW5nZS5hcHBlbmRUby5jdXJyZW50VmFsdWUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlLnBvc2l0aW9uU3R5bGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0T3B0aW9uKHsgcG9zaXRpb25TdHlsZTogc2ltcGxlQ2hhbmdlLnBvc2l0aW9uU3R5bGUuY3VycmVudFZhbHVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZS50b29sdGlwU3R5bGVDbGFzcykge1xuICAgICAgICAgICAgdGhpcy5zZXRPcHRpb24oeyB0b29sdGlwU3R5bGVDbGFzczogc2ltcGxlQ2hhbmdlLnRvb2x0aXBTdHlsZUNsYXNzLmN1cnJlbnRWYWx1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2UudG9vbHRpcFpJbmRleCkge1xuICAgICAgICAgICAgdGhpcy5zZXRPcHRpb24oeyB0b29sdGlwWkluZGV4OiBzaW1wbGVDaGFuZ2UudG9vbHRpcFpJbmRleC5jdXJyZW50VmFsdWUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlLmVzY2FwZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRPcHRpb24oeyBlc2NhcGU6IHNpbXBsZUNoYW5nZS5lc2NhcGUuY3VycmVudFZhbHVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZS5zaG93RGVsYXkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0T3B0aW9uKHsgc2hvd0RlbGF5OiBzaW1wbGVDaGFuZ2Uuc2hvd0RlbGF5LmN1cnJlbnRWYWx1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2UuaGlkZURlbGF5KSB7XG4gICAgICAgICAgICB0aGlzLnNldE9wdGlvbih7IGhpZGVEZWxheTogc2ltcGxlQ2hhbmdlLmhpZGVEZWxheS5jdXJyZW50VmFsdWUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlLmxpZmUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0T3B0aW9uKHsgbGlmZTogc2ltcGxlQ2hhbmdlLmxpZmUuY3VycmVudFZhbHVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZS5wb3NpdGlvblRvcCkge1xuICAgICAgICAgICAgdGhpcy5zZXRPcHRpb24oeyBwb3NpdGlvblRvcDogc2ltcGxlQ2hhbmdlLnBvc2l0aW9uVG9wLmN1cnJlbnRWYWx1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2UucG9zaXRpb25MZWZ0KSB7XG4gICAgICAgICAgICB0aGlzLnNldE9wdGlvbih7IHBvc2l0aW9uTGVmdDogc2ltcGxlQ2hhbmdlLnBvc2l0aW9uTGVmdC5jdXJyZW50VmFsdWUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldE9wdGlvbih7IGRpc2FibGVkOiBzaW1wbGVDaGFuZ2UuZGlzYWJsZWQuY3VycmVudFZhbHVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZS5jb250ZW50KSB7XG4gICAgICAgICAgICB0aGlzLnNldE9wdGlvbih7IHRvb2x0aXBMYWJlbDogc2ltcGxlQ2hhbmdlLmNvbnRlbnQuY3VycmVudFZhbHVlIH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlLmNvbnRlbnQuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRhaW5lciAmJiB0aGlzLmNvbnRhaW5lci5vZmZzZXRQYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGV4dCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnbigpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlLmF1dG9IaWRlKSB7XG4gICAgICAgICAgICB0aGlzLnNldE9wdGlvbih7IGF1dG9IaWRlOiBzaW1wbGVDaGFuZ2UuYXV0b0hpZGUuY3VycmVudFZhbHVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZS5pZCkge1xuICAgICAgICAgICAgdGhpcy5zZXRPcHRpb24oeyBpZDogc2ltcGxlQ2hhbmdlLmlkLmN1cnJlbnRWYWx1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2UudG9vbHRpcE9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuX3Rvb2x0aXBPcHRpb25zID0geyAuLi50aGlzLl90b29sdGlwT3B0aW9ucywgLi4uc2ltcGxlQ2hhbmdlLnRvb2x0aXBPcHRpb25zLmN1cnJlbnRWYWx1ZSB9O1xuICAgICAgICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmdldE9wdGlvbigndG9vbHRpcExhYmVsJykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyICYmIHRoaXMuY29udGFpbmVyLm9mZnNldFBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUZXh0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduKCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzQXV0b0hpZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldE9wdGlvbignYXV0b0hpZGUnKTtcbiAgICB9XG5cbiAgICBvbk1vdXNlRW50ZXIoZTogRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lciAmJiAhdGhpcy5zaG93VGltZW91dCkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb3VzZUxlYXZlKGU6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQXV0b0hpZGUoKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsaWQgPSBoYXNDbGFzcyhlLnJlbGF0ZWRUYXJnZXQgYXMgYW55LCAncC10b29sdGlwJykgfHwgaGFzQ2xhc3MoZS5yZWxhdGVkVGFyZ2V0IGFzIGFueSwgJ3AtdG9vbHRpcC10ZXh0JykgfHwgaGFzQ2xhc3MoZS5yZWxhdGVkVGFyZ2V0IGFzIGFueSwgJ3AtdG9vbHRpcC1hcnJvdycpO1xuICAgICAgICAgICAgIXZhbGlkICYmIHRoaXMuZGVhY3RpdmF0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkZvY3VzKGU6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB9XG5cbiAgICBvbkJsdXIoZTogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XG4gICAgfVxuXG4gICAgb25JbnB1dENsaWNrKGU6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuZGVhY3RpdmF0ZSgpO1xuICAgIH1cblxuICAgIGFjdGl2YXRlKCkge1xuICAgICAgICBpZiAoIXRoaXMuaW50ZXJhY3Rpb25JblByb2dyZXNzKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNsZWFySGlkZVRpbWVvdXQoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZ2V0T3B0aW9uKCdzaG93RGVsYXknKSlcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvdygpO1xuICAgICAgICAgICAgICAgIH0sIHRoaXMuZ2V0T3B0aW9uKCdzaG93RGVsYXknKSk7XG4gICAgICAgICAgICBlbHNlIHRoaXMuc2hvdygpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5nZXRPcHRpb24oJ2xpZmUnKSkge1xuICAgICAgICAgICAgICAgIGxldCBkdXJhdGlvbiA9IHRoaXMuZ2V0T3B0aW9uKCdzaG93RGVsYXknKSA/IHRoaXMuZ2V0T3B0aW9uKCdsaWZlJykgKyB0aGlzLmdldE9wdGlvbignc2hvd0RlbGF5JykgOiB0aGlzLmdldE9wdGlvbignbGlmZScpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfSwgZHVyYXRpb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5nZXRPcHRpb24oJ2hpZGVPbkVzY2FwZScpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudEVzY2FwZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2tleWRvd24uZXNjYXBlJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlYWN0aXZhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudEVzY2FwZUxpc3RlbmVyKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmludGVyYWN0aW9uSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZWFjdGl2YXRlKCkge1xuICAgICAgICB0aGlzLmludGVyYWN0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNsZWFyU2hvd1RpbWVvdXQoKTtcblxuICAgICAgICBpZiAodGhpcy5nZXRPcHRpb24oJ2hpZGVEZWxheScpKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFySGlkZVRpbWVvdXQoKTsgLy9saWZlIHRpbWVvdXRcbiAgICAgICAgICAgIHRoaXMuaGlkZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIHRoaXMuZ2V0T3B0aW9uKCdoaWRlRGVsYXknKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50RXNjYXBlTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRFc2NhcGVMaXN0ZW5lcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlKCkge1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJIaWRlVGltZW91dCgpO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCB0aGlzLmdldE9wdGlvbignaWQnKSk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLnNldEF0dHJpYnV0ZSgncm9sZScsICd0b29sdGlwJyk7XG5cbiAgICAgICAgbGV0IHRvb2x0aXBBcnJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0b29sdGlwQXJyb3cuY2xhc3NOYW1lID0gJ3AtdG9vbHRpcC1hcnJvdyc7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLmFwcGVuZENoaWxkKHRvb2x0aXBBcnJvdyk7XG5cbiAgICAgICAgdGhpcy50b29sdGlwVGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLnRvb2x0aXBUZXh0LmNsYXNzTmFtZSA9ICdwLXRvb2x0aXAtdGV4dCc7XG5cbiAgICAgICAgdGhpcy51cGRhdGVUZXh0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZ2V0T3B0aW9uKCdwb3NpdGlvblN0eWxlJykpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnBvc2l0aW9uID0gdGhpcy5nZXRPcHRpb24oJ3Bvc2l0aW9uU3R5bGUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMudG9vbHRpcFRleHQpO1xuXG4gICAgICAgIGlmICh0aGlzLmdldE9wdGlvbignYXBwZW5kVG8nKSA9PT0gJ2JvZHknKSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuY29udGFpbmVyKTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy5nZXRPcHRpb24oJ2FwcGVuZFRvJykgPT09ICd0YXJnZXQnKSBhcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lciwgdGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgZWxzZSBhcHBlbmRDaGlsZCh0aGlzLmdldE9wdGlvbignYXBwZW5kVG8nKSwgdGhpcy5jb250YWluZXIpO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJztcblxuICAgICAgICBpZiAodGhpcy5maXRDb250ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS53aWR0aCA9ICdmaXQtY29udGVudCc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0F1dG9IaWRlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ3Vuc2V0JztcbiAgICAgICAgICAgIHRoaXMuYmluZENvbnRhaW5lck1vdXNlbGVhdmVMaXN0ZW5lcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYmluZENvbnRhaW5lck1vdXNlbGVhdmVMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lck1vdXNlbGVhdmVMaXN0ZW5lcikge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0RWw6IGFueSA9IHRoaXMuY29udGFpbmVyID8/IHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyTW91c2VsZWF2ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGFyZ2V0RWwsICdtb3VzZWxlYXZlJywgKGUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlYWN0aXZhdGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5iaW5kQ29udGFpbmVyTW91c2VsZWF2ZUxpc3RlbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXJNb3VzZWxlYXZlTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuYmluZENvbnRhaW5lck1vdXNlbGVhdmVMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXJNb3VzZWxlYXZlTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvdygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmdldE9wdGlvbigndG9vbHRpcExhYmVsJykgfHwgdGhpcy5nZXRPcHRpb24oJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3JlYXRlKCk7XG5cbiAgICAgICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgcERpYWxvZ1dyYXBwZXIgPSBuYXRpdmVFbGVtZW50LmNsb3Nlc3QoJ3AtZGlhbG9nJyk7XG5cbiAgICAgICAgaWYgKHBEaWFsb2dXcmFwcGVyKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lciAmJiB0aGlzLmFsaWduKCk7XG4gICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hbGlnbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgZmFkZUluKHRoaXMuY29udGFpbmVyLCAyNTApO1xuXG4gICAgICAgIGlmICh0aGlzLmdldE9wdGlvbigndG9vbHRpcFpJbmRleCcpID09PSAnYXV0bycpIFpJbmRleFV0aWxzLnNldCgndG9vbHRpcCcsIHRoaXMuY29udGFpbmVyLCB0aGlzLmNvbmZpZy56SW5kZXgudG9vbHRpcCk7XG4gICAgICAgIGVsc2UgdGhpcy5jb250YWluZXIuc3R5bGUuekluZGV4ID0gdGhpcy5nZXRPcHRpb24oJ3Rvb2x0aXBaSW5kZXgnKTtcblxuICAgICAgICB0aGlzLmJpbmREb2N1bWVudFJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMuYmluZFNjcm9sbExpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgaGlkZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZ2V0T3B0aW9uKCd0b29sdGlwWkluZGV4JykgPT09ICdhdXRvJykge1xuICAgICAgICAgICAgWkluZGV4VXRpbHMuY2xlYXIodGhpcy5jb250YWluZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZW1vdmUoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVUZXh0KCkge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRPcHRpb24oJ3Rvb2x0aXBMYWJlbCcpO1xuICAgICAgICBpZiAoY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICBjb25zdCBlbWJlZGRlZFZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KGNvbnRlbnQpO1xuICAgICAgICAgICAgZW1iZWRkZWRWaWV3UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIGVtYmVkZGVkVmlld1JlZi5yb290Tm9kZXMuZm9yRWFjaCgobm9kZSkgPT4gdGhpcy50b29sdGlwVGV4dC5hcHBlbmRDaGlsZChub2RlKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5nZXRPcHRpb24oJ2VzY2FwZScpKSB7XG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBUZXh0LmlubmVySFRNTCA9ICcnO1xuICAgICAgICAgICAgdGhpcy50b29sdGlwVGV4dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb250ZW50KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBUZXh0LmlubmVySFRNTCA9IGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhbGlnbigpIHtcbiAgICAgICAgbGV0IHBvc2l0aW9uID0gdGhpcy5nZXRPcHRpb24oJ3Rvb2x0aXBQb3NpdGlvbicpO1xuXG4gICAgICAgIHN3aXRjaCAocG9zaXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnblRvcCgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduQm90dG9tKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnblJpZ2h0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25MZWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkJvdHRvbSgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduVG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnblJpZ2h0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25MZWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25MZWZ0KCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25SaWdodCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzT3V0T2ZCb3VuZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnblRvcCgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc091dE9mQm91bmRzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWduQm90dG9tKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduUmlnaHQoKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc091dE9mQm91bmRzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnbkxlZnQoKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc091dE9mQm91bmRzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25Ub3AoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPdXRPZkJvdW5kcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGlnbkJvdHRvbSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0SG9zdE9mZnNldCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZ2V0T3B0aW9uKCdhcHBlbmRUbycpID09PSAnYm9keScgfHwgdGhpcy5nZXRPcHRpb24oJ2FwcGVuZFRvJykgPT09ICd0YXJnZXQnKSB7XG4gICAgICAgICAgICBsZXQgb2Zmc2V0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgbGV0IHRhcmdldExlZnQgPSBvZmZzZXQubGVmdCArIGdldFdpbmRvd1Njcm9sbExlZnQoKTtcbiAgICAgICAgICAgIGxldCB0YXJnZXRUb3AgPSBvZmZzZXQudG9wICsgZ2V0V2luZG93U2Nyb2xsVG9wKCk7XG5cbiAgICAgICAgICAgIHJldHVybiB7IGxlZnQ6IHRhcmdldExlZnQsIHRvcDogdGFyZ2V0VG9wIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4geyBsZWZ0OiAwLCB0b3A6IDAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFsaWduUmlnaHQoKSB7XG4gICAgICAgIHRoaXMucHJlQWxpZ24oJ3JpZ2h0Jyk7XG4gICAgICAgIGNvbnN0IGVsID0gdGhpcy5hY3RpdmVFbGVtZW50O1xuXG4gICAgICAgIGNvbnN0IGhvc3RPZmZzZXQgPSB0aGlzLmdldEhvc3RPZmZzZXQoKTtcbiAgICAgICAgY29uc3QgbGVmdCA9IGhvc3RPZmZzZXQubGVmdCArIGdldE91dGVyV2lkdGgoZWwpO1xuICAgICAgICBjb25zdCB0b3AgPSBob3N0T2Zmc2V0LnRvcCArIChnZXRPdXRlckhlaWdodChlbCkgLSBnZXRPdXRlckhlaWdodCh0aGlzLmNvbnRhaW5lcikpIC8gMjtcbiAgICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUubGVmdCA9IGxlZnQgKyB0aGlzLmdldE9wdGlvbigncG9zaXRpb25MZWZ0JykgKyAncHgnO1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS50b3AgPSB0b3AgKyB0aGlzLmdldE9wdGlvbigncG9zaXRpb25Ub3AnKSArICdweCc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgYWN0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQubm9kZU5hbWUuaW5jbHVkZXMoJ1AtJykgPyBmaW5kU2luZ2xlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJy5wLWNvbXBvbmVudCcpIDogdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGFsaWduTGVmdCgpIHtcbiAgICAgICAgdGhpcy5wcmVBbGlnbignbGVmdCcpO1xuICAgICAgICBsZXQgaG9zdE9mZnNldCA9IHRoaXMuZ2V0SG9zdE9mZnNldCgpO1xuICAgICAgICBsZXQgbGVmdCA9IGhvc3RPZmZzZXQubGVmdCAtIGdldE91dGVyV2lkdGgodGhpcy5jb250YWluZXIpO1xuICAgICAgICBsZXQgdG9wID0gaG9zdE9mZnNldC50b3AgKyAoZ2V0T3V0ZXJIZWlnaHQodGhpcy5lbC5uYXRpdmVFbGVtZW50KSAtIGdldE91dGVySGVpZ2h0KHRoaXMuY29udGFpbmVyKSkgLyAyO1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5sZWZ0ID0gbGVmdCArIHRoaXMuZ2V0T3B0aW9uKCdwb3NpdGlvbkxlZnQnKSArICdweCc7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnRvcCA9IHRvcCArIHRoaXMuZ2V0T3B0aW9uKCdwb3NpdGlvblRvcCcpICsgJ3B4JztcbiAgICB9XG5cbiAgICBhbGlnblRvcCgpIHtcbiAgICAgICAgdGhpcy5wcmVBbGlnbigndG9wJyk7XG4gICAgICAgIGxldCBob3N0T2Zmc2V0ID0gdGhpcy5nZXRIb3N0T2Zmc2V0KCk7XG4gICAgICAgIGxldCBsZWZ0ID0gaG9zdE9mZnNldC5sZWZ0ICsgKGdldE91dGVyV2lkdGgodGhpcy5lbC5uYXRpdmVFbGVtZW50KSAtIGdldE91dGVyV2lkdGgodGhpcy5jb250YWluZXIpKSAvIDI7XG4gICAgICAgIGxldCB0b3AgPSBob3N0T2Zmc2V0LnRvcCAtIGdldE91dGVySGVpZ2h0KHRoaXMuY29udGFpbmVyKTtcbiAgICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUubGVmdCA9IGxlZnQgKyB0aGlzLmdldE9wdGlvbigncG9zaXRpb25MZWZ0JykgKyAncHgnO1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS50b3AgPSB0b3AgKyB0aGlzLmdldE9wdGlvbigncG9zaXRpb25Ub3AnKSArICdweCc7XG4gICAgfVxuXG4gICAgYWxpZ25Cb3R0b20oKSB7XG4gICAgICAgIHRoaXMucHJlQWxpZ24oJ2JvdHRvbScpO1xuICAgICAgICBsZXQgaG9zdE9mZnNldCA9IHRoaXMuZ2V0SG9zdE9mZnNldCgpO1xuICAgICAgICBsZXQgbGVmdCA9IGhvc3RPZmZzZXQubGVmdCArIChnZXRPdXRlcldpZHRoKHRoaXMuZWwubmF0aXZlRWxlbWVudCkgLSBnZXRPdXRlcldpZHRoKHRoaXMuY29udGFpbmVyKSkgLyAyO1xuICAgICAgICBsZXQgdG9wID0gaG9zdE9mZnNldC50b3AgKyBnZXRPdXRlckhlaWdodCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5sZWZ0ID0gbGVmdCArIHRoaXMuZ2V0T3B0aW9uKCdwb3NpdGlvbkxlZnQnKSArICdweCc7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnRvcCA9IHRvcCArIHRoaXMuZ2V0T3B0aW9uKCdwb3NpdGlvblRvcCcpICsgJ3B4JztcbiAgICB9XG5cbiAgICBzZXRPcHRpb24ob3B0aW9uOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fdG9vbHRpcE9wdGlvbnMgPSB7IC4uLnRoaXMuX3Rvb2x0aXBPcHRpb25zLCAuLi5vcHRpb24gfTtcbiAgICB9XG5cbiAgICBnZXRPcHRpb24ob3B0aW9uOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBPcHRpb25zW29wdGlvbiBhcyBrZXlvZiB0eXBlb2YgdGhpcy50b29sdGlwT3B0aW9uc107XG4gICAgfVxuXG4gICAgZ2V0VGFyZ2V0KGVsOiBFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBoYXNDbGFzcyhlbCwgJ3AtaW5wdXR3cmFwcGVyJykgPyBmaW5kU2luZ2xlKGVsLCAnaW5wdXQnKSA6IGVsO1xuICAgIH1cblxuICAgIHByZUFsaWduKHBvc2l0aW9uOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIuc3R5bGUubGVmdCA9IC05OTkgKyAncHgnO1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS50b3AgPSAtOTk5ICsgJ3B4JztcblxuICAgICAgICBsZXQgZGVmYXVsdENsYXNzTmFtZSA9ICdwLXRvb2x0aXAgcC1jb21wb25lbnQgcC10b29sdGlwLScgKyBwb3NpdGlvbjtcbiAgICAgICAgdGhpcy5jb250YWluZXIuY2xhc3NOYW1lID0gdGhpcy5nZXRPcHRpb24oJ3Rvb2x0aXBTdHlsZUNsYXNzJykgPyBkZWZhdWx0Q2xhc3NOYW1lICsgJyAnICsgdGhpcy5nZXRPcHRpb24oJ3Rvb2x0aXBTdHlsZUNsYXNzJykgOiBkZWZhdWx0Q2xhc3NOYW1lO1xuICAgIH1cblxuICAgIGlzT3V0T2ZCb3VuZHMoKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBvZmZzZXQgPSB0aGlzLmNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgbGV0IHRhcmdldFRvcCA9IG9mZnNldC50b3A7XG4gICAgICAgIGxldCB0YXJnZXRMZWZ0ID0gb2Zmc2V0LmxlZnQ7XG4gICAgICAgIGxldCB3aWR0aCA9IGdldE91dGVyV2lkdGgodGhpcy5jb250YWluZXIpO1xuICAgICAgICBsZXQgaGVpZ2h0ID0gZ2V0T3V0ZXJIZWlnaHQodGhpcy5jb250YWluZXIpO1xuICAgICAgICBsZXQgdmlld3BvcnQgPSBnZXRWaWV3cG9ydCgpO1xuXG4gICAgICAgIHJldHVybiB0YXJnZXRMZWZ0ICsgd2lkdGggPiB2aWV3cG9ydC53aWR0aCB8fCB0YXJnZXRMZWZ0IDwgMCB8fCB0YXJnZXRUb3AgPCAwIHx8IHRhcmdldFRvcCArIGhlaWdodCA+IHZpZXdwb3J0LmhlaWdodDtcbiAgICB9XG5cbiAgICBvbldpbmRvd1Jlc2l6ZShlOiBFdmVudCkge1xuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG5cbiAgICBiaW5kRG9jdW1lbnRSZXNpemVMaXN0ZW5lcigpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzaXplTGlzdGVuZXIgPSB0aGlzLm9uV2luZG93UmVzaXplLmJpbmQodGhpcyk7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVMaXN0ZW5lcik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHVuYmluZERvY3VtZW50UmVzaXplTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVMaXN0ZW5lcik7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUxpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJpbmRTY3JvbGxMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNjcm9sbEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlciA9IG5ldyBDb25uZWN0ZWRPdmVybGF5U2Nyb2xsSGFuZGxlcih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNjcm9sbEhhbmRsZXIuYmluZFNjcm9sbExpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgdW5iaW5kU2Nyb2xsTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnNjcm9sbEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlci51bmJpbmRTY3JvbGxMaXN0ZW5lcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5iaW5kRXZlbnRzKCkge1xuICAgICAgICBjb25zdCB0b29sdGlwRXZlbnQgPSB0aGlzLmdldE9wdGlvbigndG9vbHRpcEV2ZW50Jyk7XG5cbiAgICAgICAgaWYgKHRvb2x0aXBFdmVudCA9PT0gJ2hvdmVyJyB8fCB0b29sdGlwRXZlbnQgPT09ICdib3RoJykge1xuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLm1vdXNlRW50ZXJMaXN0ZW5lcik7XG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMubW91c2VMZWF2ZUxpc3RlbmVyKTtcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY2xpY2tMaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRvb2x0aXBFdmVudCA9PT0gJ2ZvY3VzJyB8fCB0b29sdGlwRXZlbnQgPT09ICdib3RoJykge1xuICAgICAgICAgICAgbGV0IHRhcmdldCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcucC1jb21wb25lbnQnKTtcblxuICAgICAgICAgICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSB0aGlzLmdldFRhcmdldCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCB0aGlzLmZvY3VzTGlzdGVuZXIpO1xuICAgICAgICAgICAgdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2JsdXInLCB0aGlzLmJsdXJMaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51bmJpbmREb2N1bWVudFJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlKCkge1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgdGhpcy5jb250YWluZXIucGFyZW50RWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZ2V0T3B0aW9uKCdhcHBlbmRUbycpID09PSAnYm9keScpIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXIpO1xuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5nZXRPcHRpb24oJ2FwcGVuZFRvJykgPT09ICd0YXJnZXQnKSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXIpO1xuICAgICAgICAgICAgZWxzZSByZW1vdmVDaGlsZCh0aGlzLmNvbnRhaW5lciwgdGhpcy5nZXRPcHRpb24oJ2FwcGVuZFRvJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51bmJpbmREb2N1bWVudFJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMudW5iaW5kU2Nyb2xsTGlzdGVuZXIoKTtcbiAgICAgICAgdGhpcy51bmJpbmRDb250YWluZXJNb3VzZWxlYXZlTGlzdGVuZXIoKTtcbiAgICAgICAgdGhpcy5jbGVhclRpbWVvdXRzKCk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5zY3JvbGxIYW5kbGVyID0gbnVsbDtcbiAgICB9XG5cbiAgICBjbGVhclNob3dUaW1lb3V0KCkge1xuICAgICAgICBpZiAodGhpcy5zaG93VGltZW91dCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2hvd1RpbWVvdXQpO1xuICAgICAgICAgICAgdGhpcy5zaG93VGltZW91dCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhckhpZGVUaW1lb3V0KCkge1xuICAgICAgICBpZiAodGhpcy5oaWRlVGltZW91dCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaGlkZVRpbWVvdXQpO1xuICAgICAgICAgICAgdGhpcy5oaWRlVGltZW91dCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhclRpbWVvdXRzKCkge1xuICAgICAgICB0aGlzLmNsZWFyU2hvd1RpbWVvdXQoKTtcbiAgICAgICAgdGhpcy5jbGVhckhpZGVUaW1lb3V0KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5iaW5kRXZlbnRzKCk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyKSB7XG4gICAgICAgICAgICBaSW5kZXhVdGlscy5jbGVhcih0aGlzLmNvbnRhaW5lcik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbW92ZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLnNjcm9sbEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlci5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbEhhbmRsZXIgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnRFc2NhcGVMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudEVzY2FwZUxpc3RlbmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1Rvb2x0aXBdLFxuICAgIGV4cG9ydHM6IFtUb29sdGlwXVxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwTW9kdWxlIHt9XG4iXX0=