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,1384 +0,0 @@
1
- import { animate, animation, style, transition, trigger, useAnimation } from '@angular/animations';
2
- import { CommonModule, isPlatformBrowser } from '@angular/common';
3
- import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, EventEmitter, inject, Input, NgModule, NgZone, numberAttribute, Output, ViewChild, ViewEncapsulation } from '@angular/core';
4
- import { addClass, appendChild, blockBodyScroll, getOuterHeight, getOuterWidth, getViewport, hasClass, removeClass, setAttribute, unblockBodyScroll, uuid } from '@primeuix/utils';
5
- import { SharedModule, TranslationKeys } from 'primeng/api';
6
- import { BaseComponent } from 'primeng/basecomponent';
7
- import { Button } from 'primeng/button';
8
- import { DomHandler } from 'primeng/dom';
9
- import { FocusTrap } from 'primeng/focustrap';
10
- import { TimesIcon, WindowMaximizeIcon, WindowMinimizeIcon } from 'primeng/icons';
11
- import { Ripple } from 'primeng/ripple';
12
- import { ZIndexUtils } from 'primeng/utils';
13
- import { DialogStyle } from './style/dialogstyle';
14
- import * as i0 from "@angular/core";
15
- import * as i1 from "@angular/common";
16
- const _c0 = ["header"];
17
- const _c1 = ["content"];
18
- const _c2 = ["footer"];
19
- const _c3 = ["closeicon"];
20
- const _c4 = ["maximizeicon"];
21
- const _c5 = ["minimizeicon"];
22
- const _c6 = ["headless"];
23
- const _c7 = ["titlebar"];
24
- const _c8 = ["*", [["p-footer"]]];
25
- const _c9 = ["*", "p-footer"];
26
- const _c10 = (a0, a1, a2) => ({ position: "fixed", height: "100%", width: "100%", left: 0, top: 0, display: "flex", "justify-content": a0, "align-items": a1, "pointer-events": a2 });
27
- const _c11 = a0 => ({ "p-dialog p-component": true, "p-dialog-maximized": a0 });
28
- const _c12 = () => ({ display: "flex", "flex-direction": "column", "pointer-events": "auto" });
29
- const _c13 = (a0, a1) => ({ transform: a0, transition: a1 });
30
- const _c14 = a0 => ({ value: "visible", params: a0 });
31
- function Dialog_div_0_div_1_ng_container_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
32
- i0.ɵɵelementContainer(0);
33
- } }
34
- function Dialog_div_0_div_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
35
- i0.ɵɵelementContainerStart(0);
36
- i0.ɵɵtemplate(1, Dialog_div_0_div_1_ng_container_2_ng_container_1_Template, 1, 0, "ng-container", 11);
37
- i0.ɵɵelementContainerEnd();
38
- } if (rf & 2) {
39
- const ctx_r1 = i0.ɵɵnextContext(3);
40
- i0.ɵɵadvance();
41
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1._headlessTemplate);
42
- } }
43
- function Dialog_div_0_div_1_ng_template_3_div_0_Template(rf, ctx) { if (rf & 1) {
44
- const _r4 = i0.ɵɵgetCurrentView();
45
- i0.ɵɵelementStart(0, "div", 19);
46
- i0.ɵɵlistener("mousedown", function Dialog_div_0_div_1_ng_template_3_div_0_Template_div_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.initResize($event)); });
47
- i0.ɵɵelementEnd();
48
- } if (rf & 2) {
49
- const ctx_r1 = i0.ɵɵnextContext(4);
50
- i0.ɵɵproperty("ngClass", ctx_r1.cx("resizeHandle"));
51
- } }
52
- function Dialog_div_0_div_1_ng_template_3_span_3_Template(rf, ctx) { if (rf & 1) {
53
- i0.ɵɵelementStart(0, "span", 20);
54
- i0.ɵɵtext(1);
55
- i0.ɵɵelementEnd();
56
- } if (rf & 2) {
57
- const ctx_r1 = i0.ɵɵnextContext(4);
58
- i0.ɵɵproperty("id", ctx_r1.ariaLabelledBy)("ngClass", ctx_r1.cx("title"));
59
- i0.ɵɵadvance();
60
- i0.ɵɵtextInterpolate(ctx_r1.header);
61
- } }
62
- function Dialog_div_0_div_1_ng_template_3_ng_container_4_Template(rf, ctx) { if (rf & 1) {
63
- i0.ɵɵelementContainer(0);
64
- } }
65
- function Dialog_div_0_div_1_ng_template_3_p_button_6_span_1_Template(rf, ctx) { if (rf & 1) {
66
- i0.ɵɵelement(0, "span", 15);
67
- } if (rf & 2) {
68
- const ctx_r1 = i0.ɵɵnextContext(5);
69
- i0.ɵɵproperty("ngClass", ctx_r1.maximized ? ctx_r1.minimizeIcon : ctx_r1.maximizeIcon);
70
- } }
71
- function Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_2_WindowMaximizeIcon_1_Template(rf, ctx) { if (rf & 1) {
72
- i0.ɵɵelement(0, "WindowMaximizeIcon");
73
- } }
74
- function Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_2_WindowMinimizeIcon_2_Template(rf, ctx) { if (rf & 1) {
75
- i0.ɵɵelement(0, "WindowMinimizeIcon");
76
- } }
77
- function Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_2_Template(rf, ctx) { if (rf & 1) {
78
- i0.ɵɵelementContainerStart(0);
79
- i0.ɵɵtemplate(1, Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_2_WindowMaximizeIcon_1_Template, 1, 0, "WindowMaximizeIcon", 22)(2, Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_2_WindowMinimizeIcon_2_Template, 1, 0, "WindowMinimizeIcon", 22);
80
- i0.ɵɵelementContainerEnd();
81
- } if (rf & 2) {
82
- const ctx_r1 = i0.ɵɵnextContext(5);
83
- i0.ɵɵadvance();
84
- i0.ɵɵproperty("ngIf", !ctx_r1.maximized && !ctx_r1._maximizeiconTemplate);
85
- i0.ɵɵadvance();
86
- i0.ɵɵproperty("ngIf", ctx_r1.maximized && !ctx_r1._minimizeiconTemplate);
87
- } }
88
- function Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_3_1_ng_template_0_Template(rf, ctx) { }
89
- function Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_3_1_Template(rf, ctx) { if (rf & 1) {
90
- i0.ɵɵtemplate(0, Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_3_1_ng_template_0_Template, 0, 0, "ng-template");
91
- } }
92
- function Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_3_Template(rf, ctx) { if (rf & 1) {
93
- i0.ɵɵelementContainerStart(0);
94
- i0.ɵɵtemplate(1, Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_3_1_Template, 1, 0, null, 11);
95
- i0.ɵɵelementContainerEnd();
96
- } if (rf & 2) {
97
- const ctx_r1 = i0.ɵɵnextContext(5);
98
- i0.ɵɵadvance();
99
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1._maximizeiconTemplate);
100
- } }
101
- function Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_4_1_ng_template_0_Template(rf, ctx) { }
102
- function Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_4_1_Template(rf, ctx) { if (rf & 1) {
103
- i0.ɵɵtemplate(0, Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_4_1_ng_template_0_Template, 0, 0, "ng-template");
104
- } }
105
- function Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_4_Template(rf, ctx) { if (rf & 1) {
106
- i0.ɵɵelementContainerStart(0);
107
- i0.ɵɵtemplate(1, Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_4_1_Template, 1, 0, null, 11);
108
- i0.ɵɵelementContainerEnd();
109
- } if (rf & 2) {
110
- const ctx_r1 = i0.ɵɵnextContext(5);
111
- i0.ɵɵadvance();
112
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1._minimizeiconTemplate);
113
- } }
114
- function Dialog_div_0_div_1_ng_template_3_p_button_6_Template(rf, ctx) { if (rf & 1) {
115
- const _r5 = i0.ɵɵgetCurrentView();
116
- i0.ɵɵelementStart(0, "p-button", 21);
117
- i0.ɵɵlistener("onClick", function Dialog_div_0_div_1_ng_template_3_p_button_6_Template_p_button_onClick_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.maximize()); })("keydown.enter", function Dialog_div_0_div_1_ng_template_3_p_button_6_Template_p_button_keydown_enter_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.maximize()); });
118
- i0.ɵɵtemplate(1, Dialog_div_0_div_1_ng_template_3_p_button_6_span_1_Template, 1, 1, "span", 18)(2, Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_2_Template, 3, 2, "ng-container", 22)(3, Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_3_Template, 2, 1, "ng-container", 22)(4, Dialog_div_0_div_1_ng_template_3_p_button_6_ng_container_4_Template, 2, 1, "ng-container", 22);
119
- i0.ɵɵelementEnd();
120
- } if (rf & 2) {
121
- const ctx_r1 = i0.ɵɵnextContext(4);
122
- i0.ɵɵproperty("styleClass", ctx_r1.cx("pcMaximizeButton"))("tabindex", ctx_r1.maximizable ? "0" : "-1")("ariaLabel", ctx_r1.maximizeLabel)("buttonProps", ctx_r1.maximizeButtonProps);
123
- i0.ɵɵadvance();
124
- i0.ɵɵproperty("ngIf", ctx_r1.maximizeIcon && !ctx_r1._maximizeiconTemplate && !ctx_r1._minimizeiconTemplate);
125
- i0.ɵɵadvance();
126
- i0.ɵɵproperty("ngIf", !ctx_r1.maximizeIcon && !(ctx_r1.maximizeButtonProps == null ? null : ctx_r1.maximizeButtonProps.icon));
127
- i0.ɵɵadvance();
128
- i0.ɵɵproperty("ngIf", !ctx_r1.maximized);
129
- i0.ɵɵadvance();
130
- i0.ɵɵproperty("ngIf", ctx_r1.maximized);
131
- } }
132
- function Dialog_div_0_div_1_ng_template_3_p_button_7_ng_template_1_ng_container_0_span_1_Template(rf, ctx) { if (rf & 1) {
133
- i0.ɵɵelement(0, "span", 15);
134
- } if (rf & 2) {
135
- const ctx_r1 = i0.ɵɵnextContext(7);
136
- i0.ɵɵproperty("ngClass", ctx_r1.closeIcon);
137
- } }
138
- function Dialog_div_0_div_1_ng_template_3_p_button_7_ng_template_1_ng_container_0_TimesIcon_2_Template(rf, ctx) { if (rf & 1) {
139
- i0.ɵɵelement(0, "TimesIcon");
140
- } }
141
- function Dialog_div_0_div_1_ng_template_3_p_button_7_ng_template_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {
142
- i0.ɵɵelementContainerStart(0);
143
- i0.ɵɵtemplate(1, Dialog_div_0_div_1_ng_template_3_p_button_7_ng_template_1_ng_container_0_span_1_Template, 1, 1, "span", 18)(2, Dialog_div_0_div_1_ng_template_3_p_button_7_ng_template_1_ng_container_0_TimesIcon_2_Template, 1, 0, "TimesIcon", 22);
144
- i0.ɵɵelementContainerEnd();
145
- } if (rf & 2) {
146
- const ctx_r1 = i0.ɵɵnextContext(6);
147
- i0.ɵɵadvance();
148
- i0.ɵɵproperty("ngIf", ctx_r1.closeIcon);
149
- i0.ɵɵadvance();
150
- i0.ɵɵproperty("ngIf", !ctx_r1.closeIcon);
151
- } }
152
- function Dialog_div_0_div_1_ng_template_3_p_button_7_ng_template_1_span_1_1_ng_template_0_Template(rf, ctx) { }
153
- function Dialog_div_0_div_1_ng_template_3_p_button_7_ng_template_1_span_1_1_Template(rf, ctx) { if (rf & 1) {
154
- i0.ɵɵtemplate(0, Dialog_div_0_div_1_ng_template_3_p_button_7_ng_template_1_span_1_1_ng_template_0_Template, 0, 0, "ng-template");
155
- } }
156
- function Dialog_div_0_div_1_ng_template_3_p_button_7_ng_template_1_span_1_Template(rf, ctx) { if (rf & 1) {
157
- i0.ɵɵelementStart(0, "span");
158
- i0.ɵɵtemplate(1, Dialog_div_0_div_1_ng_template_3_p_button_7_ng_template_1_span_1_1_Template, 1, 0, null, 11);
159
- i0.ɵɵelementEnd();
160
- } if (rf & 2) {
161
- const ctx_r1 = i0.ɵɵnextContext(6);
162
- i0.ɵɵadvance();
163
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1._closeiconTemplate);
164
- } }
165
- function Dialog_div_0_div_1_ng_template_3_p_button_7_ng_template_1_Template(rf, ctx) { if (rf & 1) {
166
- i0.ɵɵtemplate(0, Dialog_div_0_div_1_ng_template_3_p_button_7_ng_template_1_ng_container_0_Template, 3, 2, "ng-container", 22)(1, Dialog_div_0_div_1_ng_template_3_p_button_7_ng_template_1_span_1_Template, 2, 1, "span", 22);
167
- } if (rf & 2) {
168
- const ctx_r1 = i0.ɵɵnextContext(5);
169
- i0.ɵɵproperty("ngIf", !ctx_r1._closeiconTemplate && !(ctx_r1.closeButtonProps == null ? null : ctx_r1.closeButtonProps.icon));
170
- i0.ɵɵadvance();
171
- i0.ɵɵproperty("ngIf", ctx_r1._closeiconTemplate);
172
- } }
173
- function Dialog_div_0_div_1_ng_template_3_p_button_7_Template(rf, ctx) { if (rf & 1) {
174
- const _r6 = i0.ɵɵgetCurrentView();
175
- i0.ɵɵelementStart(0, "p-button", 23);
176
- i0.ɵɵlistener("onClick", function Dialog_div_0_div_1_ng_template_3_p_button_7_Template_p_button_onClick_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.close($event)); })("keydown.enter", function Dialog_div_0_div_1_ng_template_3_p_button_7_Template_p_button_keydown_enter_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.close($event)); });
177
- i0.ɵɵtemplate(1, Dialog_div_0_div_1_ng_template_3_p_button_7_ng_template_1_Template, 2, 2, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
178
- i0.ɵɵelementEnd();
179
- } if (rf & 2) {
180
- const ctx_r1 = i0.ɵɵnextContext(4);
181
- i0.ɵɵproperty("styleClass", ctx_r1.cx("pcCloseButton"))("ariaLabel", ctx_r1.closeAriaLabel)("tabindex", ctx_r1.closeTabindex)("buttonProps", ctx_r1.closeButtonProps);
182
- } }
183
- function Dialog_div_0_div_1_ng_template_3_ng_container_11_Template(rf, ctx) { if (rf & 1) {
184
- i0.ɵɵelementContainer(0);
185
- } }
186
- function Dialog_div_0_div_1_ng_template_3_div_12_ng_container_3_Template(rf, ctx) { if (rf & 1) {
187
- i0.ɵɵelementContainer(0);
188
- } }
189
- function Dialog_div_0_div_1_ng_template_3_div_12_Template(rf, ctx) { if (rf & 1) {
190
- i0.ɵɵelementStart(0, "div", 15, 5);
191
- i0.ɵɵprojection(2, 1);
192
- i0.ɵɵtemplate(3, Dialog_div_0_div_1_ng_template_3_div_12_ng_container_3_Template, 1, 0, "ng-container", 11);
193
- i0.ɵɵelementEnd();
194
- } if (rf & 2) {
195
- const ctx_r1 = i0.ɵɵnextContext(4);
196
- i0.ɵɵproperty("ngClass", ctx_r1.cx("footer"));
197
- i0.ɵɵadvance(3);
198
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1._footerTemplate);
199
- } }
200
- function Dialog_div_0_div_1_ng_template_3_Template(rf, ctx) { if (rf & 1) {
201
- const _r3 = i0.ɵɵgetCurrentView();
202
- i0.ɵɵtemplate(0, Dialog_div_0_div_1_ng_template_3_div_0_Template, 1, 1, "div", 12);
203
- i0.ɵɵelementStart(1, "div", 13, 2);
204
- i0.ɵɵlistener("mousedown", function Dialog_div_0_div_1_ng_template_3_Template_div_mousedown_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.initDrag($event)); });
205
- i0.ɵɵtemplate(3, Dialog_div_0_div_1_ng_template_3_span_3_Template, 2, 3, "span", 14)(4, Dialog_div_0_div_1_ng_template_3_ng_container_4_Template, 1, 0, "ng-container", 11);
206
- i0.ɵɵelementStart(5, "div", 15);
207
- i0.ɵɵtemplate(6, Dialog_div_0_div_1_ng_template_3_p_button_6_Template, 5, 8, "p-button", 16)(7, Dialog_div_0_div_1_ng_template_3_p_button_7_Template, 3, 4, "p-button", 17);
208
- i0.ɵɵelementEnd()();
209
- i0.ɵɵelementStart(8, "div", 7, 3);
210
- i0.ɵɵprojection(10);
211
- i0.ɵɵtemplate(11, Dialog_div_0_div_1_ng_template_3_ng_container_11_Template, 1, 0, "ng-container", 11);
212
- i0.ɵɵelementEnd();
213
- i0.ɵɵtemplate(12, Dialog_div_0_div_1_ng_template_3_div_12_Template, 4, 2, "div", 18);
214
- } if (rf & 2) {
215
- const ctx_r1 = i0.ɵɵnextContext(3);
216
- i0.ɵɵproperty("ngIf", ctx_r1.resizable);
217
- i0.ɵɵadvance();
218
- i0.ɵɵproperty("ngClass", ctx_r1.cx("header"));
219
- i0.ɵɵadvance(2);
220
- i0.ɵɵproperty("ngIf", !ctx_r1._headerTemplate);
221
- i0.ɵɵadvance();
222
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1._headerTemplate);
223
- i0.ɵɵadvance();
224
- i0.ɵɵproperty("ngClass", ctx_r1.cx("headerActions"));
225
- i0.ɵɵadvance();
226
- i0.ɵɵproperty("ngIf", ctx_r1.maximizable);
227
- i0.ɵɵadvance();
228
- i0.ɵɵproperty("ngIf", ctx_r1.closable);
229
- i0.ɵɵadvance();
230
- i0.ɵɵclassMap(ctx_r1.contentStyleClass);
231
- i0.ɵɵproperty("ngClass", ctx_r1.cx("content"))("ngStyle", ctx_r1.contentStyle);
232
- i0.ɵɵattribute("data-pc-section", "content");
233
- i0.ɵɵadvance(3);
234
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1._contentTemplate);
235
- i0.ɵɵadvance();
236
- i0.ɵɵproperty("ngIf", ctx_r1._footerTemplate);
237
- } }
238
- function Dialog_div_0_div_1_Template(rf, ctx) { if (rf & 1) {
239
- const _r1 = i0.ɵɵgetCurrentView();
240
- i0.ɵɵelementStart(0, "div", 9, 0);
241
- i0.ɵɵlistener("@animation.start", function Dialog_div_0_div_1_Template_div_animation_animation_start_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onAnimationStart($event)); })("@animation.done", function Dialog_div_0_div_1_Template_div_animation_animation_done_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onAnimationEnd($event)); });
242
- i0.ɵɵtemplate(2, Dialog_div_0_div_1_ng_container_2_Template, 2, 1, "ng-container", 10)(3, Dialog_div_0_div_1_ng_template_3_Template, 13, 14, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
243
- i0.ɵɵelementEnd();
244
- } if (rf & 2) {
245
- const notHeadless_r7 = i0.ɵɵreference(4);
246
- const ctx_r1 = i0.ɵɵnextContext(2);
247
- i0.ɵɵstyleMap(ctx_r1.style);
248
- i0.ɵɵclassMap(ctx_r1.styleClass);
249
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(13, _c11, ctx_r1.maximizable && ctx_r1.maximized))("ngStyle", i0.ɵɵpureFunction0(15, _c12))("pFocusTrapDisabled", ctx_r1.focusTrap === false)("@animation", i0.ɵɵpureFunction1(19, _c14, i0.ɵɵpureFunction2(16, _c13, ctx_r1.transformOptions, ctx_r1.transitionOptions)));
250
- i0.ɵɵattribute("role", ctx_r1.role)("aria-labelledby", ctx_r1.ariaLabelledBy)("aria-modal", true);
251
- i0.ɵɵadvance(2);
252
- i0.ɵɵproperty("ngIf", ctx_r1._headlessTemplate)("ngIfElse", notHeadless_r7);
253
- } }
254
- function Dialog_div_0_Template(rf, ctx) { if (rf & 1) {
255
- i0.ɵɵelementStart(0, "div", 7);
256
- i0.ɵɵtemplate(1, Dialog_div_0_div_1_Template, 5, 21, "div", 8);
257
- i0.ɵɵelementEnd();
258
- } if (rf & 2) {
259
- const ctx_r1 = i0.ɵɵnextContext();
260
- i0.ɵɵstyleMap(ctx_r1.maskStyle);
261
- i0.ɵɵclassMap(ctx_r1.maskStyleClass);
262
- i0.ɵɵproperty("ngClass", ctx_r1.maskClass)("ngStyle", i0.ɵɵpureFunction3(7, _c10, ctx_r1.position === "left" || ctx_r1.position === "topleft" || ctx_r1.position === "bottomleft" ? "flex-start" : ctx_r1.position === "right" || ctx_r1.position === "topright" || ctx_r1.position === "bottomright" ? "flex-end" : "center", ctx_r1.position === "top" || ctx_r1.position === "topleft" || ctx_r1.position === "topright" ? "flex-start" : ctx_r1.position === "bottom" || ctx_r1.position === "bottomleft" || ctx_r1.position === "bottomright" ? "flex-end" : "center", ctx_r1.modal ? "auto" : "none"));
263
- i0.ɵɵadvance();
264
- i0.ɵɵproperty("ngIf", ctx_r1.visible);
265
- } }
266
- const showAnimation = animation([style({ transform: '{{transform}}', opacity: 0 }), animate('{{transition}}')]);
267
- const hideAnimation = animation([animate('{{transition}}', style({ transform: '{{transform}}', opacity: 0 }))]);
268
- /**
269
- * Dialog is a container to display content in an overlay window.
270
- * @group Components
271
- */
272
- export class Dialog extends BaseComponent {
273
- /**
274
- * Title text of the dialog.
275
- * @group Props
276
- */
277
- header;
278
- /**
279
- * Enables dragging to change the position using header.
280
- * @group Props
281
- */
282
- draggable = true;
283
- /**
284
- * Enables resizing of the content.
285
- * @group Props
286
- */
287
- resizable = true;
288
- /**
289
- * Defines the left offset of dialog.
290
- * @group Props
291
- * @deprecated positionLeft property is deprecated.
292
- */
293
- get positionLeft() {
294
- return 0;
295
- }
296
- set positionLeft(_positionLeft) {
297
- console.log('positionLeft property is deprecated.');
298
- }
299
- /**
300
- * Defines the top offset of dialog.
301
- * @group Props
302
- * @deprecated positionTop property is deprecated.
303
- */
304
- get positionTop() {
305
- return 0;
306
- }
307
- set positionTop(_positionTop) {
308
- console.log('positionTop property is deprecated.');
309
- }
310
- /**
311
- * Style of the content section.
312
- * @group Props
313
- */
314
- contentStyle;
315
- /**
316
- * Style class of the content.
317
- * @group Props
318
- */
319
- contentStyleClass;
320
- /**
321
- * Defines if background should be blocked when dialog is displayed.
322
- * @group Props
323
- */
324
- modal = false;
325
- /**
326
- * Specifies if pressing escape key should hide the dialog.
327
- * @group Props
328
- */
329
- closeOnEscape = true;
330
- /**
331
- * Specifies if clicking the modal background should hide the dialog.
332
- * @group Props
333
- */
334
- dismissableMask = false;
335
- /**
336
- * When enabled dialog is displayed in RTL direction.
337
- * @group Props
338
- */
339
- rtl = false;
340
- /**
341
- * Adds a close icon to the header to hide the dialog.
342
- * @group Props
343
- */
344
- closable = true;
345
- /**
346
- * Defines if the component is responsive.
347
- * @group Props
348
- * @deprecated Responsive property is deprecated.
349
- */
350
- get responsive() {
351
- return false;
352
- }
353
- set responsive(_responsive) {
354
- console.log('Responsive property is deprecated.');
355
- }
356
- /**
357
- * Target element to attach the dialog, valid values are "body" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]="mydiv" for a div element having #mydiv as variable name).
358
- * @group Props
359
- */
360
- appendTo;
361
- /**
362
- * Object literal to define widths per screen size.
363
- * @group Props
364
- */
365
- breakpoints;
366
- /**
367
- * Style class of the component.
368
- * @group Props
369
- */
370
- styleClass;
371
- /**
372
- * Style class of the mask.
373
- * @group Props
374
- */
375
- maskStyleClass;
376
- /**
377
- * Style of the mask.
378
- * @group Props
379
- */
380
- maskStyle;
381
- /**
382
- * Whether to show the header or not.
383
- * @group Props
384
- */
385
- showHeader = true;
386
- /**
387
- * Defines the breakpoint of the component responsive.
388
- * @group Props
389
- * @deprecated Breakpoint property is not utilized and deprecated. Use breakpoints or CSS media queries instead.
390
- */
391
- get breakpoint() {
392
- return 649;
393
- }
394
- set breakpoint(_breakpoint) {
395
- console.log('Breakpoint property is not utilized and deprecated, use breakpoints or CSS media queries instead.');
396
- }
397
- /**
398
- * Whether background scroll should be blocked when dialog is visible.
399
- * @group Props
400
- */
401
- blockScroll = false;
402
- /**
403
- * Whether to automatically manage layering.
404
- * @group Props
405
- */
406
- autoZIndex = true;
407
- /**
408
- * Base zIndex value to use in layering.
409
- * @group Props
410
- */
411
- baseZIndex = 0;
412
- /**
413
- * Minimum value for the left coordinate of dialog in dragging.
414
- * @group Props
415
- */
416
- minX = 0;
417
- /**
418
- * Minimum value for the top coordinate of dialog in dragging.
419
- * @group Props
420
- */
421
- minY = 0;
422
- /**
423
- * When enabled, first focusable element receives focus on show.
424
- * @group Props
425
- */
426
- focusOnShow = true;
427
- /**
428
- * Whether the dialog can be displayed full screen.
429
- * @group Props
430
- */
431
- maximizable = false;
432
- /**
433
- * Keeps dialog in the viewport.
434
- * @group Props
435
- */
436
- keepInViewport = true;
437
- /**
438
- * When enabled, can only focus on elements inside the dialog.
439
- * @group Props
440
- */
441
- focusTrap = true;
442
- /**
443
- * Transition options of the animation.
444
- * @group Props
445
- */
446
- transitionOptions = '150ms cubic-bezier(0, 0, 0.2, 1)';
447
- /**
448
- * Name of the close icon.
449
- * @group Props
450
- */
451
- closeIcon;
452
- /**
453
- * Defines a string that labels the close button for accessibility.
454
- * @group Props
455
- */
456
- closeAriaLabel;
457
- /**
458
- * Index of the close button in tabbing order.
459
- * @group Props
460
- */
461
- closeTabindex = '0';
462
- /**
463
- * Name of the minimize icon.
464
- * @group Props
465
- */
466
- minimizeIcon;
467
- /**
468
- * Name of the maximize icon.
469
- * @group Props
470
- */
471
- maximizeIcon;
472
- /**
473
- * Used to pass all properties of the ButtonProps to the Button component.
474
- * @group Props
475
- */
476
- closeButtonProps = {
477
- severity: 'secondary',
478
- text: true,
479
- rounded: true
480
- };
481
- /**
482
- * Used to pass all properties of the ButtonProps to the Button component.
483
- * @group Props
484
- */
485
- maximizeButtonProps = {
486
- severity: 'secondary',
487
- text: true,
488
- rounded: true
489
- };
490
- /**
491
- * Specifies the visibility of the dialog.
492
- * @group Props
493
- */
494
- get visible() {
495
- return this._visible;
496
- }
497
- set visible(value) {
498
- this._visible = value;
499
- if (this._visible && !this.maskVisible) {
500
- this.maskVisible = true;
501
- }
502
- }
503
- /**
504
- * Inline style of the component.
505
- * @group Props
506
- */
507
- get style() {
508
- return this._style;
509
- }
510
- set style(value) {
511
- if (value) {
512
- this._style = { ...value };
513
- this.originalStyle = value;
514
- }
515
- }
516
- /**
517
- * Position of the dialog.
518
- * @group Props
519
- */
520
- get position() {
521
- return this._position;
522
- }
523
- set position(value) {
524
- this._position = value;
525
- switch (value) {
526
- case 'topleft':
527
- case 'bottomleft':
528
- case 'left':
529
- this.transformOptions = 'translate3d(-100%, 0px, 0px)';
530
- break;
531
- case 'topright':
532
- case 'bottomright':
533
- case 'right':
534
- this.transformOptions = 'translate3d(100%, 0px, 0px)';
535
- break;
536
- case 'bottom':
537
- this.transformOptions = 'translate3d(0px, 100%, 0px)';
538
- break;
539
- case 'top':
540
- this.transformOptions = 'translate3d(0px, -100%, 0px)';
541
- break;
542
- default:
543
- this.transformOptions = 'scale(0.7)';
544
- break;
545
- }
546
- }
547
- /**
548
- * Role attribute of html element.
549
- * @group Emits
550
- */
551
- role = 'dialog';
552
- /**
553
- * Callback to invoke when dialog is shown.
554
- * @group Emits
555
- */
556
- onShow = new EventEmitter();
557
- /**
558
- * Callback to invoke when dialog is hidden.
559
- * @group Emits
560
- */
561
- onHide = new EventEmitter();
562
- /**
563
- * This EventEmitter is used to notify changes in the visibility state of a component.
564
- * @param {boolean} value - New value.
565
- * @group Emits
566
- */
567
- visibleChange = new EventEmitter();
568
- /**
569
- * Callback to invoke when dialog resizing is initiated.
570
- * @param {MouseEvent} event - Mouse event.
571
- * @group Emits
572
- */
573
- onResizeInit = new EventEmitter();
574
- /**
575
- * Callback to invoke when dialog resizing is completed.
576
- * @param {MouseEvent} event - Mouse event.
577
- * @group Emits
578
- */
579
- onResizeEnd = new EventEmitter();
580
- /**
581
- * Callback to invoke when dialog dragging is completed.
582
- * @param {DragEvent} event - Drag event.
583
- * @group Emits
584
- */
585
- onDragEnd = new EventEmitter();
586
- /**
587
- * Callback to invoke when dialog maximized or unmaximized.
588
- * @group Emits
589
- */
590
- onMaximize = new EventEmitter();
591
- headerViewChild;
592
- contentViewChild;
593
- footerViewChild;
594
- /**
595
- * Header template.
596
- * @group Props
597
- */
598
- headerTemplate;
599
- /**
600
- * Content template.
601
- * @group Props
602
- */
603
- contentTemplate;
604
- /**
605
- * Footer template.
606
- * @group Props
607
- */
608
- footerTemplate;
609
- /**
610
- * Close icon template.
611
- * @group Props
612
- */
613
- closeIconTemplate;
614
- /**
615
- * Maximize icon template.
616
- * @group Props
617
- */
618
- maximizeIconTemplate;
619
- /**
620
- * Minimize icon template.
621
- * @group Props
622
- */
623
- minimizeIconTemplate;
624
- /**
625
- * Headless template.
626
- * @group Props
627
- */
628
- headlessTemplate;
629
- _headerTemplate;
630
- _contentTemplate;
631
- _footerTemplate;
632
- _closeiconTemplate;
633
- _maximizeiconTemplate;
634
- _minimizeiconTemplate;
635
- _headlessTemplate;
636
- _visible = false;
637
- maskVisible;
638
- container;
639
- wrapper;
640
- dragging;
641
- ariaLabelledBy = this.getAriaLabelledBy();
642
- documentDragListener;
643
- documentDragEndListener;
644
- resizing;
645
- documentResizeListener;
646
- documentResizeEndListener;
647
- documentEscapeListener;
648
- maskClickListener;
649
- lastPageX;
650
- lastPageY;
651
- preventVisibleChangePropagation;
652
- maximized;
653
- preMaximizeContentHeight;
654
- preMaximizeContainerWidth;
655
- preMaximizeContainerHeight;
656
- preMaximizePageX;
657
- preMaximizePageY;
658
- id = uuid('pn_id_');
659
- _style = {};
660
- _position = 'center';
661
- originalStyle;
662
- transformOptions = 'scale(0.7)';
663
- styleElement;
664
- window;
665
- _componentStyle = inject(DialogStyle);
666
- get maximizeLabel() {
667
- return this.config.getTranslation(TranslationKeys.ARIA)['maximizeLabel'];
668
- }
669
- zone = inject(NgZone);
670
- get maskClass() {
671
- const positions = ['left', 'right', 'top', 'topleft', 'topright', 'bottom', 'bottomleft', 'bottomright'];
672
- const pos = positions.find((item) => item === this.position);
673
- return {
674
- 'p-dialog-mask': true,
675
- 'p-overlay-mask p-overlay-mask-enter': this.modal || this.dismissableMask,
676
- [`p-dialog-${pos}`]: pos
677
- };
678
- }
679
- ngOnInit() {
680
- super.ngOnInit();
681
- if (this.breakpoints) {
682
- this.createStyle();
683
- }
684
- }
685
- getAriaLabelledBy() {
686
- return this.header !== null ? uuid('pn_id_') + '_header' : null;
687
- }
688
- parseDurationToMilliseconds(durationString) {
689
- const transitionTimeRegex = /([\d\.]+)(ms|s)\b/g;
690
- let totalMilliseconds = 0;
691
- let match;
692
- while ((match = transitionTimeRegex.exec(durationString)) !== null) {
693
- const value = parseFloat(match[1]);
694
- const unit = match[2];
695
- if (unit === 'ms') {
696
- totalMilliseconds += value;
697
- }
698
- else if (unit === 's') {
699
- totalMilliseconds += value * 1000;
700
- }
701
- }
702
- if (totalMilliseconds === 0) {
703
- return undefined;
704
- }
705
- return totalMilliseconds;
706
- }
707
- focus(focusParentElement = this.contentViewChild.nativeElement) {
708
- const timeoutDuration = this.parseDurationToMilliseconds(this.transitionOptions);
709
- let focusable = DomHandler.getFocusableElement(focusParentElement, '[autofocus]');
710
- if (focusable) {
711
- this.zone.runOutsideAngular(() => {
712
- setTimeout(() => focusable.focus(), timeoutDuration || 5);
713
- });
714
- return;
715
- }
716
- const focusableElement = DomHandler.getFocusableElement(focusParentElement);
717
- if (focusableElement) {
718
- this.zone.runOutsideAngular(() => {
719
- setTimeout(() => focusableElement.focus(), timeoutDuration || 5);
720
- });
721
- }
722
- else if (this.footerViewChild) {
723
- // If the content section is empty try to focus on footer
724
- this.focus(this.footerViewChild.nativeElement);
725
- }
726
- }
727
- close(event) {
728
- this.visibleChange.emit(false);
729
- event.preventDefault();
730
- }
731
- enableModality() {
732
- if (this.closable && this.dismissableMask) {
733
- this.maskClickListener = this.renderer.listen(this.wrapper, 'mousedown', (event) => {
734
- if (this.wrapper && this.wrapper.isSameNode(event.target)) {
735
- this.close(event);
736
- }
737
- });
738
- }
739
- if (this.modal) {
740
- blockBodyScroll();
741
- }
742
- }
743
- disableModality() {
744
- if (this.wrapper) {
745
- if (this.dismissableMask) {
746
- this.unbindMaskClickListener();
747
- }
748
- // for nested dialogs w/modal
749
- const scrollBlockers = document.querySelectorAll('.p-dialog-mask-scrollblocker');
750
- if (this.modal && scrollBlockers && scrollBlockers.length == 1) {
751
- unblockBodyScroll();
752
- }
753
- if (!this.cd.destroyed) {
754
- this.cd.detectChanges();
755
- }
756
- }
757
- }
758
- maximize() {
759
- this.maximized = !this.maximized;
760
- if (!this.modal && !this.blockScroll) {
761
- if (this.maximized) {
762
- blockBodyScroll();
763
- }
764
- else {
765
- unblockBodyScroll();
766
- }
767
- }
768
- this.onMaximize.emit({ maximized: this.maximized });
769
- }
770
- unbindMaskClickListener() {
771
- if (this.maskClickListener) {
772
- this.maskClickListener();
773
- this.maskClickListener = null;
774
- }
775
- }
776
- moveOnTop() {
777
- if (this.autoZIndex) {
778
- ZIndexUtils.set('modal', this.container, this.baseZIndex + this.config.zIndex.modal);
779
- this.wrapper.style.zIndex = String(parseInt(this.container.style.zIndex, 10) - 1);
780
- }
781
- }
782
- createStyle() {
783
- if (isPlatformBrowser(this.platformId)) {
784
- if (!this.styleElement) {
785
- this.styleElement = this.renderer.createElement('style');
786
- this.styleElement.type = 'text/css';
787
- this.renderer.appendChild(this.document.head, this.styleElement);
788
- let innerHTML = '';
789
- for (let breakpoint in this.breakpoints) {
790
- innerHTML += `
791
- @media screen and (max-width: ${breakpoint}) {
792
- .p-dialog[${this.id}]:not(.p-dialog-maximized) {
793
- width: ${this.breakpoints[breakpoint]} !important;
794
- }
795
- }
796
- `;
797
- }
798
- this.renderer.setProperty(this.styleElement, 'innerHTML', innerHTML);
799
- setAttribute(this.styleElement, 'nonce', this.config?.csp()?.nonce);
800
- }
801
- }
802
- }
803
- initDrag(event) {
804
- if (hasClass(event.target, 'p-dialog-maximize-icon') || hasClass(event.target, 'p-dialog-header-close-icon') || hasClass(event.target.parentElement, 'p-dialog-header-icon')) {
805
- return;
806
- }
807
- if (this.draggable) {
808
- this.dragging = true;
809
- this.lastPageX = event.pageX;
810
- this.lastPageY = event.pageY;
811
- this.container.style.margin = '0';
812
- addClass(this.document.body, 'p-unselectable-text');
813
- }
814
- }
815
- onDrag(event) {
816
- if (this.dragging) {
817
- const containerWidth = getOuterWidth(this.container);
818
- const containerHeight = getOuterHeight(this.container);
819
- const deltaX = event.pageX - this.lastPageX;
820
- const deltaY = event.pageY - this.lastPageY;
821
- const offset = this.container.getBoundingClientRect();
822
- const containerComputedStyle = getComputedStyle(this.container);
823
- const leftMargin = parseFloat(containerComputedStyle.marginLeft);
824
- const topMargin = parseFloat(containerComputedStyle.marginTop);
825
- const leftPos = offset.left + deltaX - leftMargin;
826
- const topPos = offset.top + deltaY - topMargin;
827
- const viewport = getViewport();
828
- this.container.style.position = 'fixed';
829
- if (this.keepInViewport) {
830
- if (leftPos >= this.minX && leftPos + containerWidth < viewport.width) {
831
- this._style.left = `${leftPos}px`;
832
- this.lastPageX = event.pageX;
833
- this.container.style.left = `${leftPos}px`;
834
- }
835
- if (topPos >= this.minY && topPos + containerHeight < viewport.height) {
836
- this._style.top = `${topPos}px`;
837
- this.lastPageY = event.pageY;
838
- this.container.style.top = `${topPos}px`;
839
- }
840
- }
841
- else {
842
- this.lastPageX = event.pageX;
843
- this.container.style.left = `${leftPos}px`;
844
- this.lastPageY = event.pageY;
845
- this.container.style.top = `${topPos}px`;
846
- }
847
- }
848
- }
849
- endDrag(event) {
850
- if (this.dragging) {
851
- this.dragging = false;
852
- removeClass(this.document.body, 'p-unselectable-text');
853
- this.cd.detectChanges();
854
- this.onDragEnd.emit(event);
855
- }
856
- }
857
- resetPosition() {
858
- this.container.style.position = '';
859
- this.container.style.left = '';
860
- this.container.style.top = '';
861
- this.container.style.margin = '';
862
- }
863
- //backward compatibility
864
- center() {
865
- this.resetPosition();
866
- }
867
- initResize(event) {
868
- if (this.resizable) {
869
- this.resizing = true;
870
- this.lastPageX = event.pageX;
871
- this.lastPageY = event.pageY;
872
- addClass(this.document.body, 'p-unselectable-text');
873
- this.onResizeInit.emit(event);
874
- }
875
- }
876
- onResize(event) {
877
- if (this.resizing) {
878
- let deltaX = event.pageX - this.lastPageX;
879
- let deltaY = event.pageY - this.lastPageY;
880
- let containerWidth = getOuterWidth(this.container);
881
- let containerHeight = getOuterHeight(this.container);
882
- let contentHeight = getOuterHeight(this.contentViewChild?.nativeElement);
883
- let newWidth = containerWidth + deltaX;
884
- let newHeight = containerHeight + deltaY;
885
- let minWidth = this.container.style.minWidth;
886
- let minHeight = this.container.style.minHeight;
887
- let offset = this.container.getBoundingClientRect();
888
- let viewport = getViewport();
889
- let hasBeenDragged = !parseInt(this.container.style.top) || !parseInt(this.container.style.left);
890
- if (hasBeenDragged) {
891
- newWidth += deltaX;
892
- newHeight += deltaY;
893
- }
894
- if ((!minWidth || newWidth > parseInt(minWidth)) && offset.left + newWidth < viewport.width) {
895
- this._style.width = newWidth + 'px';
896
- this.container.style.width = this._style.width;
897
- }
898
- if ((!minHeight || newHeight > parseInt(minHeight)) && offset.top + newHeight < viewport.height) {
899
- this.contentViewChild.nativeElement.style.height = contentHeight + newHeight - containerHeight + 'px';
900
- if (this._style.height) {
901
- this._style.height = newHeight + 'px';
902
- this.container.style.height = this._style.height;
903
- }
904
- }
905
- this.lastPageX = event.pageX;
906
- this.lastPageY = event.pageY;
907
- }
908
- }
909
- resizeEnd(event) {
910
- if (this.resizing) {
911
- this.resizing = false;
912
- removeClass(this.document.body, 'p-unselectable-text');
913
- this.onResizeEnd.emit(event);
914
- }
915
- }
916
- bindGlobalListeners() {
917
- if (this.draggable) {
918
- this.bindDocumentDragListener();
919
- this.bindDocumentDragEndListener();
920
- }
921
- if (this.resizable) {
922
- this.bindDocumentResizeListeners();
923
- }
924
- if (this.closeOnEscape && this.closable) {
925
- this.bindDocumentEscapeListener();
926
- }
927
- }
928
- unbindGlobalListeners() {
929
- this.unbindDocumentDragListener();
930
- this.unbindDocumentDragEndListener();
931
- this.unbindDocumentResizeListeners();
932
- this.unbindDocumentEscapeListener();
933
- }
934
- bindDocumentDragListener() {
935
- if (!this.documentDragListener) {
936
- this.zone.runOutsideAngular(() => {
937
- this.documentDragListener = this.renderer.listen(this.document.defaultView, 'mousemove', this.onDrag.bind(this));
938
- });
939
- }
940
- }
941
- unbindDocumentDragListener() {
942
- if (this.documentDragListener) {
943
- this.documentDragListener();
944
- this.documentDragListener = null;
945
- }
946
- }
947
- bindDocumentDragEndListener() {
948
- if (!this.documentDragEndListener) {
949
- this.zone.runOutsideAngular(() => {
950
- this.documentDragEndListener = this.renderer.listen(this.document.defaultView, 'mouseup', this.endDrag.bind(this));
951
- });
952
- }
953
- }
954
- unbindDocumentDragEndListener() {
955
- if (this.documentDragEndListener) {
956
- this.documentDragEndListener();
957
- this.documentDragEndListener = null;
958
- }
959
- }
960
- bindDocumentResizeListeners() {
961
- if (!this.documentResizeListener && !this.documentResizeEndListener) {
962
- this.zone.runOutsideAngular(() => {
963
- this.documentResizeListener = this.renderer.listen(this.document.defaultView, 'mousemove', this.onResize.bind(this));
964
- this.documentResizeEndListener = this.renderer.listen(this.document.defaultView, 'mouseup', this.resizeEnd.bind(this));
965
- });
966
- }
967
- }
968
- unbindDocumentResizeListeners() {
969
- if (this.documentResizeListener && this.documentResizeEndListener) {
970
- this.documentResizeListener();
971
- this.documentResizeEndListener();
972
- this.documentResizeListener = null;
973
- this.documentResizeEndListener = null;
974
- }
975
- }
976
- bindDocumentEscapeListener() {
977
- const documentTarget = this.el ? this.el.nativeElement.ownerDocument : 'document';
978
- this.documentEscapeListener = this.renderer.listen(documentTarget, 'keydown', (event) => {
979
- if (event.key == 'Escape') {
980
- this.close(event);
981
- }
982
- });
983
- }
984
- unbindDocumentEscapeListener() {
985
- if (this.documentEscapeListener) {
986
- this.documentEscapeListener();
987
- this.documentEscapeListener = null;
988
- }
989
- }
990
- appendContainer() {
991
- if (this.appendTo) {
992
- if (this.appendTo === 'body')
993
- this.renderer.appendChild(this.document.body, this.wrapper);
994
- else
995
- appendChild(this.appendTo, this.wrapper);
996
- }
997
- }
998
- restoreAppend() {
999
- if (this.container && this.appendTo) {
1000
- this.renderer.appendChild(this.el.nativeElement, this.wrapper);
1001
- }
1002
- }
1003
- onAnimationStart(event) {
1004
- switch (event.toState) {
1005
- case 'visible':
1006
- this.container = event.element;
1007
- this.wrapper = this.container?.parentElement;
1008
- this.appendContainer();
1009
- this.moveOnTop();
1010
- this.bindGlobalListeners();
1011
- this.container?.setAttribute(this.id, '');
1012
- if (this.modal) {
1013
- this.enableModality();
1014
- }
1015
- // if (!this.modal && this.blockScroll) {
1016
- // addClass(this.document.body, 'p-overflow-hidden');
1017
- // }
1018
- if (this.focusOnShow) {
1019
- const el = this.contentViewChild?.nativeElement || this.container;
1020
- this.focus(el);
1021
- }
1022
- break;
1023
- case 'void':
1024
- if (this.wrapper && this.modal) {
1025
- addClass(this.wrapper, 'p-overlay-mask-leave');
1026
- }
1027
- break;
1028
- }
1029
- }
1030
- onAnimationEnd(event) {
1031
- switch (event.toState) {
1032
- case 'void':
1033
- this.onContainerDestroy();
1034
- this.onHide.emit({});
1035
- this.cd.markForCheck();
1036
- break;
1037
- case 'visible':
1038
- this.onShow.emit({});
1039
- break;
1040
- }
1041
- }
1042
- onContainerDestroy() {
1043
- this.unbindGlobalListeners();
1044
- this.dragging = false;
1045
- this.maskVisible = false;
1046
- if (this.maximized) {
1047
- // removeClass(this.document.body, 'p-overflow-hidden')
1048
- this.document.body.style.removeProperty('--scrollbar;-width');
1049
- this.maximized = false;
1050
- }
1051
- if (this.modal) {
1052
- this.disableModality();
1053
- }
1054
- // if (this.blockScroll) {
1055
- // removeClass(this.document.body, 'p-overflow-hidden');
1056
- // }
1057
- if (hasClass(this.document.body, 'p-overflow-hidden')) {
1058
- removeClass(this.document.body, 'p-overflow-hidden');
1059
- }
1060
- if (this.container && this.autoZIndex) {
1061
- ZIndexUtils.clear(this.container);
1062
- }
1063
- this.container = null;
1064
- this.wrapper = null;
1065
- this._style = this.originalStyle ? { ...this.originalStyle } : {};
1066
- }
1067
- destroyStyle() {
1068
- if (this.styleElement) {
1069
- this.renderer.removeChild(this.document.head, this.styleElement);
1070
- this.styleElement = null;
1071
- }
1072
- }
1073
- ngOnDestroy() {
1074
- if (this.container) {
1075
- this.restoreAppend();
1076
- this.onContainerDestroy();
1077
- }
1078
- this.destroyStyle();
1079
- super.ngOnDestroy();
1080
- }
1081
- static ɵfac = /*@__PURE__*/ (() => { let ɵDialog_BaseFactory; return function Dialog_Factory(__ngFactoryType__) { return (ɵDialog_BaseFactory || (ɵDialog_BaseFactory = i0.ɵɵgetInheritedFactory(Dialog)))(__ngFactoryType__ || Dialog); }; })();
1082
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Dialog, selectors: [["p-dialog"]], contentQueries: function Dialog_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
1083
- i0.ɵɵcontentQuery(dirIndex, _c0, 4);
1084
- i0.ɵɵcontentQuery(dirIndex, _c1, 4);
1085
- i0.ɵɵcontentQuery(dirIndex, _c2, 4);
1086
- i0.ɵɵcontentQuery(dirIndex, _c3, 4);
1087
- i0.ɵɵcontentQuery(dirIndex, _c4, 4);
1088
- i0.ɵɵcontentQuery(dirIndex, _c5, 4);
1089
- i0.ɵɵcontentQuery(dirIndex, _c6, 4);
1090
- } if (rf & 2) {
1091
- let _t;
1092
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._headerTemplate = _t.first);
1093
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._contentTemplate = _t.first);
1094
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._footerTemplate = _t.first);
1095
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._closeiconTemplate = _t.first);
1096
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._maximizeiconTemplate = _t.first);
1097
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._minimizeiconTemplate = _t.first);
1098
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._headlessTemplate = _t.first);
1099
- } }, viewQuery: function Dialog_Query(rf, ctx) { if (rf & 1) {
1100
- i0.ɵɵviewQuery(_c7, 5);
1101
- i0.ɵɵviewQuery(_c1, 5);
1102
- i0.ɵɵviewQuery(_c2, 5);
1103
- } if (rf & 2) {
1104
- let _t;
1105
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerViewChild = _t.first);
1106
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentViewChild = _t.first);
1107
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerViewChild = _t.first);
1108
- } }, inputs: { header: "header", draggable: [2, "draggable", "draggable", booleanAttribute], resizable: [2, "resizable", "resizable", booleanAttribute], positionLeft: "positionLeft", positionTop: "positionTop", contentStyle: "contentStyle", contentStyleClass: "contentStyleClass", modal: [2, "modal", "modal", booleanAttribute], closeOnEscape: [2, "closeOnEscape", "closeOnEscape", booleanAttribute], dismissableMask: [2, "dismissableMask", "dismissableMask", booleanAttribute], rtl: [2, "rtl", "rtl", booleanAttribute], closable: [2, "closable", "closable", booleanAttribute], responsive: "responsive", appendTo: "appendTo", breakpoints: "breakpoints", styleClass: "styleClass", maskStyleClass: "maskStyleClass", maskStyle: "maskStyle", showHeader: [2, "showHeader", "showHeader", booleanAttribute], breakpoint: "breakpoint", blockScroll: [2, "blockScroll", "blockScroll", booleanAttribute], autoZIndex: [2, "autoZIndex", "autoZIndex", booleanAttribute], baseZIndex: [2, "baseZIndex", "baseZIndex", numberAttribute], minX: [2, "minX", "minX", numberAttribute], minY: [2, "minY", "minY", numberAttribute], focusOnShow: [2, "focusOnShow", "focusOnShow", booleanAttribute], maximizable: [2, "maximizable", "maximizable", booleanAttribute], keepInViewport: [2, "keepInViewport", "keepInViewport", booleanAttribute], focusTrap: [2, "focusTrap", "focusTrap", booleanAttribute], transitionOptions: "transitionOptions", closeIcon: "closeIcon", closeAriaLabel: "closeAriaLabel", closeTabindex: "closeTabindex", minimizeIcon: "minimizeIcon", maximizeIcon: "maximizeIcon", closeButtonProps: "closeButtonProps", maximizeButtonProps: "maximizeButtonProps", visible: "visible", style: "style", position: "position", role: "role", headerTemplate: [0, "content", "headerTemplate"], contentTemplate: "contentTemplate", footerTemplate: "footerTemplate", closeIconTemplate: "closeIconTemplate", maximizeIconTemplate: "maximizeIconTemplate", minimizeIconTemplate: "minimizeIconTemplate", headlessTemplate: "headlessTemplate" }, outputs: { onShow: "onShow", onHide: "onHide", visibleChange: "visibleChange", onResizeInit: "onResizeInit", onResizeEnd: "onResizeEnd", onDragEnd: "onDragEnd", onMaximize: "onMaximize" }, standalone: true, features: [i0.ɵɵProvidersFeature([DialogStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c9, decls: 1, vars: 1, consts: [["container", ""], ["notHeadless", ""], ["titlebar", ""], ["content", ""], ["icon", ""], ["footer", ""], [3, "ngClass", "class", "ngStyle", "style", 4, "ngIf"], [3, "ngClass", "ngStyle"], ["pFocusTrap", "", 3, "class", "ngClass", "ngStyle", "style", "pFocusTrapDisabled", 4, "ngIf"], ["pFocusTrap", "", 3, "ngClass", "ngStyle", "pFocusTrapDisabled"], [4, "ngIf", "ngIfElse"], [4, "ngTemplateOutlet"], ["style", "z-index: 90;", 3, "ngClass", "mousedown", 4, "ngIf"], [3, "mousedown", "ngClass"], [3, "id", "ngClass", 4, "ngIf"], [3, "ngClass"], [3, "styleClass", "tabindex", "ariaLabel", "buttonProps", "onClick", "keydown.enter", 4, "ngIf"], [3, "styleClass", "ariaLabel", "tabindex", "buttonProps", "onClick", "keydown.enter", 4, "ngIf"], [3, "ngClass", 4, "ngIf"], [2, "z-index", "90", 3, "mousedown", "ngClass"], [3, "id", "ngClass"], [3, "onClick", "keydown.enter", "styleClass", "tabindex", "ariaLabel", "buttonProps"], [4, "ngIf"], [3, "onClick", "keydown.enter", "styleClass", "ariaLabel", "tabindex", "buttonProps"]], template: function Dialog_Template(rf, ctx) { if (rf & 1) {
1109
- i0.ɵɵprojectionDef(_c8);
1110
- i0.ɵɵtemplate(0, Dialog_div_0_Template, 2, 11, "div", 6);
1111
- } if (rf & 2) {
1112
- i0.ɵɵproperty("ngIf", ctx.maskVisible);
1113
- } }, dependencies: [CommonModule, i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, Button, FocusTrap, TimesIcon, WindowMaximizeIcon, WindowMinimizeIcon, SharedModule], encapsulation: 2, data: { animation: [trigger('animation', [transition('void => visible', [useAnimation(showAnimation)]), transition('visible => void', [useAnimation(hideAnimation)])])] }, changeDetection: 0 });
1114
- }
1115
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Dialog, [{
1116
- type: Component,
1117
- args: [{
1118
- selector: 'p-dialog',
1119
- standalone: true,
1120
- imports: [CommonModule, Button, Ripple, FocusTrap, TimesIcon, WindowMaximizeIcon, WindowMinimizeIcon, SharedModule],
1121
- template: `
1122
- <div
1123
- *ngIf="maskVisible"
1124
- [ngClass]="maskClass"
1125
- [class]="maskStyleClass"
1126
- [ngStyle]="{
1127
- position: 'fixed',
1128
- height: '100%',
1129
- width: '100%',
1130
- left: 0,
1131
- top: 0,
1132
- display: 'flex',
1133
- 'justify-content': position === 'left' || position === 'topleft' || position === 'bottomleft' ? 'flex-start' : position === 'right' || position === 'topright' || position === 'bottomright' ? 'flex-end' : 'center',
1134
- 'align-items': position === 'top' || position === 'topleft' || position === 'topright' ? 'flex-start' : position === 'bottom' || position === 'bottomleft' || position === 'bottomright' ? 'flex-end' : 'center',
1135
- 'pointer-events': modal ? 'auto' : 'none'
1136
- }"
1137
- [style]="maskStyle"
1138
- >
1139
- <div
1140
- *ngIf="visible"
1141
- #container
1142
- [class]="styleClass"
1143
- [ngClass]="{ 'p-dialog p-component': true, 'p-dialog-maximized': maximizable && maximized }"
1144
- [ngStyle]="{ display: 'flex', 'flex-direction': 'column', 'pointer-events': 'auto' }"
1145
- [style]="style"
1146
- pFocusTrap
1147
- [pFocusTrapDisabled]="focusTrap === false"
1148
- [@animation]="{
1149
- value: 'visible',
1150
- params: { transform: transformOptions, transition: transitionOptions }
1151
- }"
1152
- (@animation.start)="onAnimationStart($event)"
1153
- (@animation.done)="onAnimationEnd($event)"
1154
- [attr.role]="role"
1155
- [attr.aria-labelledby]="ariaLabelledBy"
1156
- [attr.aria-modal]="true"
1157
- >
1158
- <ng-container *ngIf="_headlessTemplate; else notHeadless">
1159
- <ng-container *ngTemplateOutlet="_headlessTemplate"></ng-container>
1160
- </ng-container>
1161
-
1162
- <ng-template #notHeadless>
1163
- <div *ngIf="resizable" [ngClass]="cx('resizeHandle')" style="z-index: 90;" (mousedown)="initResize($event)"></div>
1164
- <div #titlebar [ngClass]="cx('header')" (mousedown)="initDrag($event)">
1165
- <span [id]="ariaLabelledBy" [ngClass]="cx('title')" *ngIf="!_headerTemplate">{{ header }}</span>
1166
- <ng-container *ngTemplateOutlet="_headerTemplate"></ng-container>
1167
- <div [ngClass]="cx('headerActions')">
1168
- <p-button *ngIf="maximizable" [styleClass]="cx('pcMaximizeButton')" (onClick)="maximize()" (keydown.enter)="maximize()" [tabindex]="maximizable ? '0' : '-1'" [ariaLabel]="maximizeLabel" [buttonProps]="maximizeButtonProps">
1169
- <span *ngIf="maximizeIcon && !_maximizeiconTemplate && !_minimizeiconTemplate" [ngClass]="maximized ? minimizeIcon : maximizeIcon"></span>
1170
- <ng-container *ngIf="!maximizeIcon && !maximizeButtonProps?.icon">
1171
- <WindowMaximizeIcon *ngIf="!maximized && !_maximizeiconTemplate" />
1172
- <WindowMinimizeIcon *ngIf="maximized && !_minimizeiconTemplate" />
1173
- </ng-container>
1174
- <ng-container *ngIf="!maximized">
1175
- <ng-template *ngTemplateOutlet="_maximizeiconTemplate"></ng-template>
1176
- </ng-container>
1177
- <ng-container *ngIf="maximized">
1178
- <ng-template *ngTemplateOutlet="_minimizeiconTemplate"></ng-template>
1179
- </ng-container>
1180
- </p-button>
1181
- <p-button *ngIf="closable" [styleClass]="cx('pcCloseButton')" [ariaLabel]="closeAriaLabel" (onClick)="close($event)" (keydown.enter)="close($event)" [tabindex]="closeTabindex" [buttonProps]="closeButtonProps">
1182
- <ng-template #icon>
1183
- <ng-container *ngIf="!_closeiconTemplate && !closeButtonProps?.icon">
1184
- <span *ngIf="closeIcon" [ngClass]="closeIcon"></span>
1185
- <TimesIcon *ngIf="!closeIcon" />
1186
- </ng-container>
1187
- <span *ngIf="_closeiconTemplate">
1188
- <ng-template *ngTemplateOutlet="_closeiconTemplate"></ng-template>
1189
- </span>
1190
- </ng-template>
1191
- </p-button>
1192
- </div>
1193
- </div>
1194
- <div #content [ngClass]="cx('content')" [class]="contentStyleClass" [ngStyle]="contentStyle" [attr.data-pc-section]="'content'">
1195
- <ng-content></ng-content>
1196
- <ng-container *ngTemplateOutlet="_contentTemplate"></ng-container>
1197
- </div>
1198
- <div #footer [ngClass]="cx('footer')" *ngIf="_footerTemplate">
1199
- <ng-content select="p-footer"></ng-content>
1200
- <ng-container *ngTemplateOutlet="_footerTemplate"></ng-container>
1201
- </div>
1202
- </ng-template>
1203
- </div>
1204
- </div>
1205
- `,
1206
- animations: [trigger('animation', [transition('void => visible', [useAnimation(showAnimation)]), transition('visible => void', [useAnimation(hideAnimation)])])],
1207
- changeDetection: ChangeDetectionStrategy.OnPush,
1208
- encapsulation: ViewEncapsulation.None,
1209
- providers: [DialogStyle]
1210
- }]
1211
- }], null, { header: [{
1212
- type: Input
1213
- }], draggable: [{
1214
- type: Input,
1215
- args: [{ transform: booleanAttribute }]
1216
- }], resizable: [{
1217
- type: Input,
1218
- args: [{ transform: booleanAttribute }]
1219
- }], positionLeft: [{
1220
- type: Input
1221
- }], positionTop: [{
1222
- type: Input
1223
- }], contentStyle: [{
1224
- type: Input
1225
- }], contentStyleClass: [{
1226
- type: Input
1227
- }], modal: [{
1228
- type: Input,
1229
- args: [{ transform: booleanAttribute }]
1230
- }], closeOnEscape: [{
1231
- type: Input,
1232
- args: [{ transform: booleanAttribute }]
1233
- }], dismissableMask: [{
1234
- type: Input,
1235
- args: [{ transform: booleanAttribute }]
1236
- }], rtl: [{
1237
- type: Input,
1238
- args: [{ transform: booleanAttribute }]
1239
- }], closable: [{
1240
- type: Input,
1241
- args: [{ transform: booleanAttribute }]
1242
- }], responsive: [{
1243
- type: Input
1244
- }], appendTo: [{
1245
- type: Input
1246
- }], breakpoints: [{
1247
- type: Input
1248
- }], styleClass: [{
1249
- type: Input
1250
- }], maskStyleClass: [{
1251
- type: Input
1252
- }], maskStyle: [{
1253
- type: Input
1254
- }], showHeader: [{
1255
- type: Input,
1256
- args: [{ transform: booleanAttribute }]
1257
- }], breakpoint: [{
1258
- type: Input
1259
- }], blockScroll: [{
1260
- type: Input,
1261
- args: [{ transform: booleanAttribute }]
1262
- }], autoZIndex: [{
1263
- type: Input,
1264
- args: [{ transform: booleanAttribute }]
1265
- }], baseZIndex: [{
1266
- type: Input,
1267
- args: [{ transform: numberAttribute }]
1268
- }], minX: [{
1269
- type: Input,
1270
- args: [{ transform: numberAttribute }]
1271
- }], minY: [{
1272
- type: Input,
1273
- args: [{ transform: numberAttribute }]
1274
- }], focusOnShow: [{
1275
- type: Input,
1276
- args: [{ transform: booleanAttribute }]
1277
- }], maximizable: [{
1278
- type: Input,
1279
- args: [{ transform: booleanAttribute }]
1280
- }], keepInViewport: [{
1281
- type: Input,
1282
- args: [{ transform: booleanAttribute }]
1283
- }], focusTrap: [{
1284
- type: Input,
1285
- args: [{ transform: booleanAttribute }]
1286
- }], transitionOptions: [{
1287
- type: Input
1288
- }], closeIcon: [{
1289
- type: Input
1290
- }], closeAriaLabel: [{
1291
- type: Input
1292
- }], closeTabindex: [{
1293
- type: Input
1294
- }], minimizeIcon: [{
1295
- type: Input
1296
- }], maximizeIcon: [{
1297
- type: Input
1298
- }], closeButtonProps: [{
1299
- type: Input
1300
- }], maximizeButtonProps: [{
1301
- type: Input
1302
- }], visible: [{
1303
- type: Input
1304
- }], style: [{
1305
- type: Input
1306
- }], position: [{
1307
- type: Input
1308
- }], role: [{
1309
- type: Input
1310
- }], onShow: [{
1311
- type: Output
1312
- }], onHide: [{
1313
- type: Output
1314
- }], visibleChange: [{
1315
- type: Output
1316
- }], onResizeInit: [{
1317
- type: Output
1318
- }], onResizeEnd: [{
1319
- type: Output
1320
- }], onDragEnd: [{
1321
- type: Output
1322
- }], onMaximize: [{
1323
- type: Output
1324
- }], headerViewChild: [{
1325
- type: ViewChild,
1326
- args: ['titlebar']
1327
- }], contentViewChild: [{
1328
- type: ViewChild,
1329
- args: ['content']
1330
- }], footerViewChild: [{
1331
- type: ViewChild,
1332
- args: ['footer']
1333
- }], headerTemplate: [{
1334
- type: Input,
1335
- args: ['content']
1336
- }], contentTemplate: [{
1337
- type: Input
1338
- }], footerTemplate: [{
1339
- type: Input
1340
- }], closeIconTemplate: [{
1341
- type: Input
1342
- }], maximizeIconTemplate: [{
1343
- type: Input
1344
- }], minimizeIconTemplate: [{
1345
- type: Input
1346
- }], headlessTemplate: [{
1347
- type: Input
1348
- }], _headerTemplate: [{
1349
- type: ContentChild,
1350
- args: ['header', { descendants: false }]
1351
- }], _contentTemplate: [{
1352
- type: ContentChild,
1353
- args: ['content', { descendants: false }]
1354
- }], _footerTemplate: [{
1355
- type: ContentChild,
1356
- args: ['footer', { descendants: false }]
1357
- }], _closeiconTemplate: [{
1358
- type: ContentChild,
1359
- args: ['closeicon', { descendants: false }]
1360
- }], _maximizeiconTemplate: [{
1361
- type: ContentChild,
1362
- args: ['maximizeicon', { descendants: false }]
1363
- }], _minimizeiconTemplate: [{
1364
- type: ContentChild,
1365
- args: ['minimizeicon', { descendants: false }]
1366
- }], _headlessTemplate: [{
1367
- type: ContentChild,
1368
- args: ['headless', { descendants: false }]
1369
- }] }); })();
1370
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(Dialog, { className: "Dialog" }); })();
1371
- export class DialogModule {
1372
- static ɵfac = function DialogModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DialogModule)(); };
1373
- static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: DialogModule });
1374
- static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Dialog, SharedModule, SharedModule] });
1375
- }
1376
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DialogModule, [{
1377
- type: NgModule,
1378
- args: [{
1379
- imports: [Dialog, SharedModule],
1380
- exports: [Dialog, SharedModule]
1381
- }]
1382
- }], null, null); })();
1383
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DialogModule, { imports: [Dialog, SharedModule], exports: [Dialog, SharedModule] }); })();
1384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RpYWxvZy9kaWFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQWtCLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ILE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sZUFBZSxFQUdmLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBRXBCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuTCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFn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Y0FBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtZQUVGLGlCQUFpQjtrQkFBbEUsWUFBWTttQkFBQyxVQUFVLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFOztrRkF2WHZDLE1BQU07QUErNUJuQixNQUFNLE9BQU8sWUFBWTtzR0FBWixZQUFZOzREQUFaLFlBQVk7Z0VBSFgsTUFBTSxFQUFFLFlBQVksRUFDWixZQUFZOztpRkFFckIsWUFBWTtjQUp4QixRQUFRO2VBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQztnQkFDL0IsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQzthQUNsQzs7d0ZBQ1ksWUFBWSxjQS81QlosTUFBTSxFQTQ1QkcsWUFBWSxhQTU1QnJCLE1BQU0sRUE2NUJHLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBhbmltYXRpb24sIEFuaW1hdGlvbkV2ZW50LCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciwgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ01vZHVsZSxcbiAgICBOZ1pvbmUsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBWaWV3UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYWRkQ2xhc3MsIGFwcGVuZENoaWxkLCBibG9ja0JvZHlTY3JvbGwsIGdldE91dGVySGVpZ2h0LCBnZXRPdXRlcldpZHRoLCBnZXRWaWV3cG9ydCwgaGFzQ2xhc3MsIHJlbW92ZUNsYXNzLCBzZXRBdHRyaWJ1dGUsIHVuYmxvY2tCb2R5U2Nyb2xsLCB1dWlkIH0gZnJvbSAnQHByaW1ldWl4L3V0aWxzJztcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSwgVHJhbnNsYXRpb25LZXlzIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b24sIEJ1dHRvblByb3BzIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgRG9tSGFuZGxlciB9IGZyb20gJ3ByaW1lbmcvZG9tJztcbmltcG9ydCB7IEZvY3VzVHJhcCB9IGZyb20gJ3ByaW1lbmcvZm9jdXN0cmFwJztcbmltcG9ydCB7IFRpbWVzSWNvbiwgV2luZG93TWF4aW1pemVJY29uLCBXaW5kb3dNaW5pbWl6ZUljb24gfSBmcm9tICdwcmltZW5nL2ljb25zJztcbmltcG9ydCB7IFJpcHBsZSB9IGZyb20gJ3ByaW1lbmcvcmlwcGxlJztcbmltcG9ydCB7IE51bGxhYmxlLCBWb2lkTGlzdGVuZXIgfSBmcm9tICdwcmltZW5nL3RzLWhlbHBlcnMnO1xuaW1wb3J0IHsgWkluZGV4VXRpbHMgfSBmcm9tICdwcmltZW5nL3V0aWxzJztcbmltcG9ydCB7IERpYWxvZ1N0eWxlIH0gZnJvbSAnLi9zdHlsZS9kaWFsb2dzdHlsZSc7XG5cbmNvbnN0IHNob3dBbmltYXRpb24gPSBhbmltYXRpb24oW3N0eWxlKHsgdHJhbnNmb3JtOiAne3t0cmFuc2Zvcm19fScsIG9wYWNpdHk6IDAgfSksIGFuaW1hdGUoJ3t7dHJhbnNpdGlvbn19JyldKTtcblxuY29uc3QgaGlkZUFuaW1hdGlvbiA9IGFuaW1hdGlvbihbYW5pbWF0ZSgne3t0cmFuc2l0aW9ufX0nLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3t7dHJhbnNmb3JtfX0nLCBvcGFjaXR5OiAwIH0pKV0pO1xuLyoqXG4gKiBEaWFsb2cgaXMgYSBjb250YWluZXIgdG8gZGlzcGxheSBjb250ZW50IGluIGFuIG92ZXJsYXkgd2luZG93LlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLWRpYWxvZycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCdXR0b24sIFJpcHBsZSwgRm9jdXNUcmFwLCBUaW1lc0ljb24sIFdpbmRvd01heGltaXplSWNvbiwgV2luZG93TWluaW1pemVJY29uLCBTaGFyZWRNb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwibWFza1Zpc2libGVcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwibWFza0NsYXNzXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJtYXNrU3R5bGVDbGFzc1wiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgJ2p1c3RpZnktY29udGVudCc6IHBvc2l0aW9uID09PSAnbGVmdCcgfHwgcG9zaXRpb24gPT09ICd0b3BsZWZ0JyB8fCBwb3NpdGlvbiA9PT0gJ2JvdHRvbWxlZnQnID8gJ2ZsZXgtc3RhcnQnIDogcG9zaXRpb24gPT09ICdyaWdodCcgfHwgcG9zaXRpb24gPT09ICd0b3ByaWdodCcgfHwgcG9zaXRpb24gPT09ICdib3R0b21yaWdodCcgPyAnZmxleC1lbmQnIDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgJ2FsaWduLWl0ZW1zJzogcG9zaXRpb24gPT09ICd0b3AnIHx8IHBvc2l0aW9uID09PSAndG9wbGVmdCcgfHwgcG9zaXRpb24gPT09ICd0b3ByaWdodCcgPyAnZmxleC1zdGFydCcgOiBwb3NpdGlvbiA9PT0gJ2JvdHRvbScgfHwgcG9zaXRpb24gPT09ICdib3R0b21sZWZ0JyB8fCBwb3NpdGlvbiA9PT0gJ2JvdHRvbXJpZ2h0JyA/ICdmbGV4LWVuZCcgOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAncG9pbnRlci1ldmVudHMnOiBtb2RhbCA/ICdhdXRvJyA6ICdub25lJ1xuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBbc3R5bGVdPVwibWFza1N0eWxlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidmlzaWJsZVwiXG4gICAgICAgICAgICAgICAgI2NvbnRhaW5lclxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJzdHlsZUNsYXNzXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLWRpYWxvZyBwLWNvbXBvbmVudCc6IHRydWUsICdwLWRpYWxvZy1tYXhpbWl6ZWQnOiBtYXhpbWl6YWJsZSAmJiBtYXhpbWl6ZWQgfVwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBkaXNwbGF5OiAnZmxleCcsICdmbGV4LWRpcmVjdGlvbic6ICdjb2x1bW4nLCAncG9pbnRlci1ldmVudHMnOiAnYXV0bycgfVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlXT1cInN0eWxlXCJcbiAgICAgICAgICAgICAgICBwRm9jdXNUcmFwXG4gICAgICAgICAgICAgICAgW3BGb2N1c1RyYXBEaXNhYmxlZF09XCJmb2N1c1RyYXAgPT09IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbQGFuaW1hdGlvbl09XCJ7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAndmlzaWJsZScsXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyB0cmFuc2Zvcm06IHRyYW5zZm9ybU9wdGlvbnMsIHRyYW5zaXRpb246IHRyYW5zaXRpb25PcHRpb25zIH1cbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAoQGFuaW1hdGlvbi5zdGFydCk9XCJvbkFuaW1hdGlvblN0YXJ0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChAYW5pbWF0aW9uLmRvbmUpPVwib25BbmltYXRpb25FbmQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2F0dHIucm9sZV09XCJyb2xlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbW9kYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9oZWFkbGVzc1RlbXBsYXRlOyBlbHNlIG5vdEhlYWRsZXNzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJfaGVhZGxlc3NUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RIZWFkbGVzcz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJlc2l6YWJsZVwiIFtuZ0NsYXNzXT1cImN4KCdyZXNpemVIYW5kbGUnKVwiIHN0eWxlPVwiei1pbmRleDogOTA7XCIgKG1vdXNlZG93bik9XCJpbml0UmVzaXplKCRldmVudClcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAjdGl0bGViYXIgW25nQ2xhc3NdPVwiY3goJ2hlYWRlcicpXCIgKG1vdXNlZG93bik9XCJpbml0RHJhZygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaWRdPVwiYXJpYUxhYmVsbGVkQnlcIiBbbmdDbGFzc109XCJjeCgndGl0bGUnKVwiICpuZ0lmPVwiIV9oZWFkZXJUZW1wbGF0ZVwiPnt7IGhlYWRlciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJfaGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiY3goJ2hlYWRlckFjdGlvbnMnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWJ1dHRvbiAqbmdJZj1cIm1heGltaXphYmxlXCIgW3N0eWxlQ2xhc3NdPVwiY3goJ3BjTWF4aW1pemVCdXR0b24nKVwiIChvbkNsaWNrKT1cIm1heGltaXplKClcIiAoa2V5ZG93bi5lbnRlcik9XCJtYXhpbWl6ZSgpXCIgW3RhYmluZGV4XT1cIm1heGltaXphYmxlID8gJzAnIDogJy0xJ1wiIFthcmlhTGFiZWxdPVwibWF4aW1pemVMYWJlbFwiIFtidXR0b25Qcm9wc109XCJtYXhpbWl6ZUJ1dHRvblByb3BzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibWF4aW1pemVJY29uICYmICFfbWF4aW1pemVpY29uVGVtcGxhdGUgJiYgIV9taW5pbWl6ZWljb25UZW1wbGF0ZVwiIFtuZ0NsYXNzXT1cIm1heGltaXplZCA/IG1pbmltaXplSWNvbiA6IG1heGltaXplSWNvblwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtYXhpbWl6ZUljb24gJiYgIW1heGltaXplQnV0dG9uUHJvcHM/Lmljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxXaW5kb3dNYXhpbWl6ZUljb24gKm5nSWY9XCIhbWF4aW1pemVkICYmICFfbWF4aW1pemVpY29uVGVtcGxhdGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFdpbmRvd01pbmltaXplSWNvbiAqbmdJZj1cIm1heGltaXplZCAmJiAhX21pbmltaXplaWNvblRlbXBsYXRlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbWF4aW1pemVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJfbWF4aW1pemVpY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1heGltaXplZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiX21pbmltaXplaWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1idXR0b24gKm5nSWY9XCJjbG9zYWJsZVwiIFtzdHlsZUNsYXNzXT1cImN4KCdwY0Nsb3NlQnV0dG9uJylcIiBbYXJpYUxhYmVsXT1cImNsb3NlQXJpYUxhYmVsXCIgKG9uQ2xpY2spPVwiY2xvc2UoJGV2ZW50KVwiIChrZXlkb3duLmVudGVyKT1cImNsb3NlKCRldmVudClcIiBbdGFiaW5kZXhdPVwiY2xvc2VUYWJpbmRleFwiIFtidXR0b25Qcm9wc109XCJjbG9zZUJ1dHRvblByb3BzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhX2Nsb3NlaWNvblRlbXBsYXRlICYmICFjbG9zZUJ1dHRvblByb3BzPy5pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjbG9zZUljb25cIiBbbmdDbGFzc109XCJjbG9zZUljb25cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRpbWVzSWNvbiAqbmdJZj1cIiFjbG9zZUljb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIl9jbG9zZWljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIl9jbG9zZWljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAjY29udGVudCBbbmdDbGFzc109XCJjeCgnY29udGVudCcpXCIgW2NsYXNzXT1cImNvbnRlbnRTdHlsZUNsYXNzXCIgW25nU3R5bGVdPVwiY29udGVudFN0eWxlXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidjb250ZW50J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIl9jb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgI2Zvb3RlciBbbmdDbGFzc109XCJjeCgnZm9vdGVyJylcIiAqbmdJZj1cIl9mb290ZXJUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwicC1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiX2Zvb3RlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBhbmltYXRpb25zOiBbdHJpZ2dlcignYW5pbWF0aW9uJywgW3RyYW5zaXRpb24oJ3ZvaWQgPT4gdmlzaWJsZScsIFt1c2VBbmltYXRpb24oc2hvd0FuaW1hdGlvbildKSwgdHJhbnNpdGlvbigndmlzaWJsZSA9PiB2b2lkJywgW3VzZUFuaW1hdGlvbihoaWRlQW5pbWF0aW9uKV0pXSldLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbRGlhbG9nU3R5bGVdXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZyBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogVGl0bGUgdGV4dCBvZiB0aGUgZGlhbG9nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgZHJhZ2dpbmcgdG8gY2hhbmdlIHRoZSBwb3NpdGlvbiB1c2luZyBoZWFkZXIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRyYWdnYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gICAgLyoqXG4gICAgICogRW5hYmxlcyByZXNpemluZyBvZiB0aGUgY29udGVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcmVzaXphYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBsZWZ0IG9mZnNldCBvZiBkaWFsb2cuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICogQGRlcHJlY2F0ZWQgcG9zaXRpb25MZWZ0IHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQuXG4gICAgICovXG4gICAgQElucHV0KCkgZ2V0IHBvc2l0aW9uTGVmdCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgc2V0IHBvc2l0aW9uTGVmdChfcG9zaXRpb25MZWZ0OiBudW1iZXIpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ3Bvc2l0aW9uTGVmdCBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkLicpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSB0b3Agb2Zmc2V0IG9mIGRpYWxvZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKiBAZGVwcmVjYXRlZCBwb3NpdGlvblRvcCBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCBwb3NpdGlvblRvcCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgc2V0IHBvc2l0aW9uVG9wKF9wb3NpdGlvblRvcDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdwb3NpdGlvblRvcCBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkLicpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTdHlsZSBvZiB0aGUgY29udGVudCBzZWN0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGNvbnRlbnRTdHlsZTogYW55O1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBjb250ZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGNvbnRlbnRTdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBpZiBiYWNrZ3JvdW5kIHNob3VsZCBiZSBibG9ja2VkIHdoZW4gZGlhbG9nIGlzIGRpc3BsYXllZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgbW9kYWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgaWYgcHJlc3NpbmcgZXNjYXBlIGtleSBzaG91bGQgaGlkZSB0aGUgZGlhbG9nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjbG9zZU9uRXNjYXBlOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgaWYgY2xpY2tpbmcgdGhlIG1vZGFsIGJhY2tncm91bmQgc2hvdWxkIGhpZGUgdGhlIGRpYWxvZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzbWlzc2FibGVNYXNrOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogV2hlbiBlbmFibGVkIGRpYWxvZyBpcyBkaXNwbGF5ZWQgaW4gUlRMIGRpcmVjdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcnRsOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQWRkcyBhIGNsb3NlIGljb24gdG8gdGhlIGhlYWRlciB0byBoaWRlIHRoZSBkaWFsb2cuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNsb3NhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGlmIHRoZSBjb21wb25lbnQgaXMgcmVzcG9uc2l2ZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKiBAZGVwcmVjYXRlZCBSZXNwb25zaXZlIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQuXG4gICAgICovXG4gICAgQElucHV0KCkgZ2V0IHJlc3BvbnNpdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgc2V0IHJlc3BvbnNpdmUoX3Jlc3BvbnNpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1Jlc3BvbnNpdmUgcHJvcGVydHkgaXMgZGVwcmVjYXRlZC4nKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVGFyZ2V0IGVsZW1lbnQgdG8gYXR0YWNoIHRoZSBkaWFsb2csIHZhbGlkIHZhbHVlcyBhcmUgXCJib2R5XCIgb3IgYSBsb2NhbCBuZy10ZW1wbGF0ZSB2YXJpYWJsZSBvZiBhbm90aGVyIGVsZW1lbnQgKG5vdGU6IHVzZSBiaW5kaW5nIHdpdGggYnJhY2tldHMgZm9yIHRlbXBsYXRlIHZhcmlhYmxlcywgZS5nLiBbYXBwZW5kVG9dPVwibXlkaXZcIiBmb3IgYSBkaXYgZWxlbWVudCBoYXZpbmcgI215ZGl2IGFzIHZhcmlhYmxlIG5hbWUpLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFwcGVuZFRvOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCB8IGFueTtcbiAgICAvKipcbiAgICAgKiBPYmplY3QgbGl0ZXJhbCB0byBkZWZpbmUgd2lkdGhzIHBlciBzY3JlZW4gc2l6ZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBicmVha3BvaW50czogYW55O1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBtYXNrLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG1hc2tTdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3R5bGUgb2YgdGhlIG1hc2suXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbWFza1N0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gc2hvdyB0aGUgaGVhZGVyIG9yIG5vdC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0hlYWRlcjogYm9vbGVhbiA9IHRydWU7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgYnJlYWtwb2ludCBvZiB0aGUgY29tcG9uZW50IHJlc3BvbnNpdmUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICogQGRlcHJlY2F0ZWQgQnJlYWtwb2ludCBwcm9wZXJ0eSBpcyBub3QgdXRpbGl6ZWQgYW5kIGRlcHJlY2F0ZWQuIFVzZSBicmVha3BvaW50cyBvciBDU1MgbWVkaWEgcXVlcmllcyBpbnN0ZWFkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCBicmVha3BvaW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiA2NDk7XG4gICAgfVxuICAgIHNldCBicmVha3BvaW50KF9icmVha3BvaW50OiBudW1iZXIpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0JyZWFrcG9pbnQgcHJvcGVydHkgaXMgbm90IHV0aWxpemVkIGFuZCBkZXByZWNhdGVkLCB1c2UgYnJlYWtwb2ludHMgb3IgQ1NTIG1lZGlhIHF1ZXJpZXMgaW5zdGVhZC4nKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogV2hldGhlciBiYWNrZ3JvdW5kIHNjcm9sbCBzaG91bGQgYmUgYmxvY2tlZCB3aGVuIGRpYWxvZyBpcyB2aXNpYmxlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBibG9ja1Njcm9sbDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBtYW5hZ2UgbGF5ZXJpbmcuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGF1dG9aSW5kZXg6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIEJhc2UgekluZGV4IHZhbHVlIHRvIHVzZSBpbiBsYXllcmluZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBiYXNlWkluZGV4OiBudW1iZXIgPSAwO1xuICAgIC8qKlxuICAgICAqIE1pbmltdW0gdmFsdWUgZm9yIHRoZSBsZWZ0IGNvb3JkaW5hdGUgb2YgZGlhbG9nIGluIGRyYWdnaW5nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIG1pblg6IG51bWJlciA9IDA7XG4gICAgLyoqXG4gICAgICogTWluaW11bSB2YWx1ZSBmb3IgdGhlIHRvcCBjb29yZGluYXRlIG9mIGRpYWxvZyBpbiBkcmFnZ2luZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBtaW5ZOiBudW1iZXIgPSAwO1xuICAgIC8qKlxuICAgICAqIFdoZW4gZW5hYmxlZCwgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQgcmVjZWl2ZXMgZm9jdXMgb24gc2hvdy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZm9jdXNPblNob3c6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGRpYWxvZyBjYW4gYmUgZGlzcGxheWVkIGZ1bGwgc2NyZWVuLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBtYXhpbWl6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEtlZXBzIGRpYWxvZyBpbiB0aGUgdmlld3BvcnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGtlZXBJblZpZXdwb3J0OiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBXaGVuIGVuYWJsZWQsIGNhbiBvbmx5IGZvY3VzIG9uIGVsZW1lbnRzIGluc2lkZSB0aGUgZGlhbG9nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBmb2N1c1RyYXA6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIFRyYW5zaXRpb24gb3B0aW9ucyBvZiB0aGUgYW5pbWF0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRyYW5zaXRpb25PcHRpb25zOiBzdHJpbmcgPSAnMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknO1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGNsb3NlIGljb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgY2xvc2VJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIHN0cmluZyB0aGF0IGxhYmVscyB0aGUgY2xvc2UgYnV0dG9uIGZvciBhY2Nlc3NpYmlsaXR5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGNsb3NlQXJpYUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSW5kZXggb2YgdGhlIGNsb3NlIGJ1dHRvbiBpbiB0YWJiaW5nIG9yZGVyLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGNsb3NlVGFiaW5kZXg6IHN0cmluZyA9ICcwJztcbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBtaW5pbWl6ZSBpY29uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG1pbmltaXplSWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIG1heGltaXplIGljb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbWF4aW1pemVJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogVXNlZCB0byBwYXNzIGFsbCBwcm9wZXJ0aWVzIG9mIHRoZSBCdXR0b25Qcm9wcyB0byB0aGUgQnV0dG9uIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjbG9zZUJ1dHRvblByb3BzOiBCdXR0b25Qcm9wcyA9IHtcbiAgICAgICAgc2V2ZXJpdHk6ICdzZWNvbmRhcnknLFxuICAgICAgICB0ZXh0OiB0cnVlLFxuICAgICAgICByb3VuZGVkOiB0cnVlXG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIHBhc3MgYWxsIHByb3BlcnRpZXMgb2YgdGhlIEJ1dHRvblByb3BzIHRvIHRoZSBCdXR0b24gY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG1heGltaXplQnV0dG9uUHJvcHM6IEJ1dHRvblByb3BzID0ge1xuICAgICAgICBzZXZlcml0eTogJ3NlY29uZGFyeScsXG4gICAgICAgIHRleHQ6IHRydWUsXG4gICAgICAgIHJvdW5kZWQ6IHRydWVcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFNwZWNpZmllcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZGlhbG9nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgICB9XG4gICAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLl92aXNpYmxlICYmICF0aGlzLm1hc2tWaXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1hc2tWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgc3R5bGUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlO1xuICAgIH1cbiAgICBzZXQgc3R5bGUodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0eWxlID0geyAuLi52YWx1ZSB9O1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5hbFN0eWxlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIGRpYWxvZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgcG9zaXRpb24oKTogJ2NlbnRlcicgfCAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JyB8ICd0b3BsZWZ0JyB8ICd0b3ByaWdodCcgfCAnYm90dG9tbGVmdCcgfCAnYm90dG9tcmlnaHQnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICAgIH1cbiAgICBzZXQgcG9zaXRpb24odmFsdWU6ICdjZW50ZXInIHwgJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wbGVmdCcgfCAndG9wcmlnaHQnIHwgJ2JvdHRvbWxlZnQnIHwgJ2JvdHRvbXJpZ2h0Jykge1xuICAgICAgICB0aGlzLl9wb3NpdGlvbiA9IHZhbHVlO1xuXG4gICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3RvcGxlZnQnOlxuICAgICAgICAgICAgY2FzZSAnYm90dG9tbGVmdCc6XG4gICAgICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybU9wdGlvbnMgPSAndHJhbnNsYXRlM2QoLTEwMCUsIDBweCwgMHB4KSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0b3ByaWdodCc6XG4gICAgICAgICAgICBjYXNlICdib3R0b21yaWdodCc6XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1PcHRpb25zID0gJ3RyYW5zbGF0ZTNkKDEwMCUsIDBweCwgMHB4KSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtT3B0aW9ucyA9ICd0cmFuc2xhdGUzZCgwcHgsIDEwMCUsIDBweCknO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybU9wdGlvbnMgPSAndHJhbnNsYXRlM2QoMHB4LCAtMTAwJSwgMHB4KSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtT3B0aW9ucyA9ICdzY2FsZSgwLjcpJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSb2xlIGF0dHJpYnV0ZSBvZiBodG1sIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQElucHV0KCkgcm9sZTogc3RyaW5nID0gJ2RpYWxvZyc7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gZGlhbG9nIGlzIHNob3duLlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblNob3c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gZGlhbG9nIGlzIGhpZGRlbi5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25IaWRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIC8qKlxuICAgICAqIFRoaXMgRXZlbnRFbWl0dGVyIGlzIHVzZWQgdG8gbm90aWZ5IGNoYW5nZXMgaW4gdGhlIHZpc2liaWxpdHkgc3RhdGUgb2YgYSBjb21wb25lbnQuXG4gICAgICogQHBhcmFtIHtib29sZWFufSB2YWx1ZSAtIE5ldyB2YWx1ZS5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGRpYWxvZyByZXNpemluZyBpcyBpbml0aWF0ZWQuXG4gICAgICogQHBhcmFtIHtNb3VzZUV2ZW50fSBldmVudCAtIE1vdXNlIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblJlc2l6ZUluaXQ6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBkaWFsb2cgcmVzaXppbmcgaXMgY29tcGxldGVkLlxuICAgICAqIEBwYXJhbSB7TW91c2VFdmVudH0gZXZlbnQgLSBNb3VzZSBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25SZXNpemVFbmQ6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBkaWFsb2cgZHJhZ2dpbmcgaXMgY29tcGxldGVkLlxuICAgICAqIEBwYXJhbSB7RHJhZ0V2ZW50fSBldmVudCAtIERyYWcgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uRHJhZ0VuZDogRXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBkaWFsb2cgbWF4aW1pemVkIG9yIHVubWF4aW1pemVkLlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbk1heGltaXplOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQFZpZXdDaGlsZCgndGl0bGViYXInKSBoZWFkZXJWaWV3Q2hpbGQ6IE51bGxhYmxlPEVsZW1lbnRSZWY+O1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcpIGNvbnRlbnRWaWV3Q2hpbGQ6IE51bGxhYmxlPEVsZW1lbnRSZWY+O1xuXG4gICAgQFZpZXdDaGlsZCgnZm9vdGVyJykgZm9vdGVyVmlld0NoaWxkOiBOdWxsYWJsZTxFbGVtZW50UmVmPjtcbiAgICAvKipcbiAgICAgKiBIZWFkZXIgdGVtcGxhdGUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCdjb250ZW50JykgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQ29udGVudCB0ZW1wbGF0ZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRm9vdGVyIHRlbXBsYXRlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGZvb3RlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIENsb3NlIGljb24gdGVtcGxhdGUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgY2xvc2VJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogTWF4aW1pemUgaWNvbiB0ZW1wbGF0ZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBtYXhpbWl6ZUljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBNaW5pbWl6ZSBpY29uIHRlbXBsYXRlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG1pbmltaXplSWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEhlYWRsZXNzIHRlbXBsYXRlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGhlYWRsZXNzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBAQ29udGVudENoaWxkKCdoZWFkZXInLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBfaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBAQ29udGVudENoaWxkKCdjb250ZW50JywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgX2NvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBDb250ZW50Q2hpbGQoJ2Zvb3RlcicsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIF9mb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBDb250ZW50Q2hpbGQoJ2Nsb3NlaWNvbicsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIF9jbG9zZWljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBDb250ZW50Q2hpbGQoJ21heGltaXplaWNvbicsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIF9tYXhpbWl6ZWljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBDb250ZW50Q2hpbGQoJ21pbmltaXplaWNvbicsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIF9taW5pbWl6ZWljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRsZXNzJywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgX2hlYWRsZXNzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgbWFza1Zpc2libGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBjb250YWluZXI6IE51bGxhYmxlPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIHdyYXBwZXI6IE51bGxhYmxlPEhUTUxFbGVtZW50PjtcblxuICAgIGRyYWdnaW5nOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgYXJpYUxhYmVsbGVkQnk6IHN0cmluZyA9IHRoaXMuZ2V0QXJpYUxhYmVsbGVkQnkoKTtcblxuICAgIGRvY3VtZW50RHJhZ0xpc3RlbmVyOiBWb2lkTGlzdGVuZXI7XG5cbiAgICBkb2N1bWVudERyYWdFbmRMaXN0ZW5lcjogVm9pZExpc3RlbmVyO1xuXG4gICAgcmVzaXppbmc6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBkb2N1bWVudFJlc2l6ZUxpc3RlbmVyOiBWb2lkTGlzdGVuZXI7XG5cbiAgICBkb2N1bWVudFJlc2l6ZUVuZExpc3RlbmVyOiBWb2lkTGlzdGVuZXI7XG5cbiAgICBkb2N1bWVudEVzY2FwZUxpc3RlbmVyOiBWb2lkTGlzdGVuZXI7XG5cbiAgICBtYXNrQ2xpY2tMaXN0ZW5lcjogVm9pZExpc3RlbmVyO1xuXG4gICAgbGFzdFBhZ2VYOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBsYXN0UGFnZVk6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAgIHByZXZlbnRWaXNpYmxlQ2hhbmdlUHJvcGFnYXRpb246IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBtYXhpbWl6ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBwcmVNYXhpbWl6ZUNvbnRlbnRIZWlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAgIHByZU1heGltaXplQ29udGFpbmVyV2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAgIHByZU1heGltaXplQ29udGFpbmVySGVpZ2h0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBwcmVNYXhpbWl6ZVBhZ2VYOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBwcmVNYXhpbWl6ZVBhZ2VZOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBpZDogc3RyaW5nID0gdXVpZCgncG5faWRfJyk7XG5cbiAgICBfc3R5bGU6IGFueSA9IHt9O1xuXG4gICAgX3Bvc2l0aW9uOiAnY2VudGVyJyB8ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ3RvcGxlZnQnIHwgJ3RvcHJpZ2h0JyB8ICdib3R0b21sZWZ0JyB8ICdib3R0b21yaWdodCcgPSAnY2VudGVyJztcblxuICAgIG9yaWdpbmFsU3R5bGU6IGFueTtcblxuICAgIHRyYW5zZm9ybU9wdGlvbnM6IGFueSA9ICdzY2FsZSgwLjcpJztcblxuICAgIHN0eWxlRWxlbWVudDogYW55O1xuXG4gICAgcHJpdmF0ZSB3aW5kb3c6IFdpbmRvdztcblxuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChEaWFsb2dTdHlsZSk7XG5cbiAgICBnZXQgbWF4aW1pemVMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0VHJhbnNsYXRpb24oVHJhbnNsYXRpb25LZXlzLkFSSUEpWydtYXhpbWl6ZUxhYmVsJ107XG4gICAgfVxuICAgIHpvbmU6IE5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gICAgZ2V0IG1hc2tDbGFzcygpIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb25zID0gWydsZWZ0JywgJ3JpZ2h0JywgJ3RvcCcsICd0b3BsZWZ0JywgJ3RvcHJpZ2h0JywgJ2JvdHRvbScsICdib3R0b21sZWZ0JywgJ2JvdHRvbXJpZ2h0J107XG4gICAgICAgIGNvbnN0IHBvcyA9IHBvc2l0aW9ucy5maW5kKChpdGVtKSA9PiBpdGVtID09PSB0aGlzLnBvc2l0aW9uKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ3AtZGlhbG9nLW1hc2snOiB0cnVlLFxuICAgICAgICAgICAgJ3Atb3ZlcmxheS1tYXNrIHAtb3ZlcmxheS1tYXNrLWVudGVyJzogdGhpcy5tb2RhbCB8fCB0aGlzLmRpc21pc3NhYmxlTWFzayxcbiAgICAgICAgICAgIFtgcC1kaWFsb2ctJHtwb3N9YF06IHBvc1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBpZiAodGhpcy5icmVha3BvaW50cykge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVTdHlsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QXJpYUxhYmVsbGVkQnkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhlYWRlciAhPT0gbnVsbCA/IHV1aWQoJ3BuX2lkXycpICsgJ19oZWFkZXInIDogbnVsbDtcbiAgICB9XG5cbiAgICBwYXJzZUR1cmF0aW9uVG9NaWxsaXNlY29uZHMoZHVyYXRpb25TdHJpbmc6IHN0cmluZyk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IHRyYW5zaXRpb25UaW1lUmVnZXggPSAvKFtcXGRcXC5dKykobXN8cylcXGIvZztcbiAgICAgICAgbGV0IHRvdGFsTWlsbGlzZWNvbmRzID0gMDtcbiAgICAgICAgbGV0IG1hdGNoO1xuICAgICAgICB3aGlsZSAoKG1hdGNoID0gdHJhbnNpdGlvblRpbWVSZWdleC5leGVjKGR1cmF0aW9uU3RyaW5nKSkgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGFyc2VGbG9hdChtYXRjaFsxXSk7XG4gICAgICAgICAgICBjb25zdCB1bml0ID0gbWF0Y2hbMl07XG4gICAgICAgICAgICBpZiAodW5pdCA9PT0gJ21zJykge1xuICAgICAgICAgICAgICAgIHRvdGFsTWlsbGlzZWNvbmRzICs9IHZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh1bml0ID09PSAncycpIHtcbiAgICAgICAgICAgICAgICB0b3RhbE1pbGxpc2Vjb25kcyArPSB2YWx1ZSAqIDEwMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRvdGFsTWlsbGlzZWNvbmRzID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b3RhbE1pbGxpc2Vjb25kcztcbiAgICB9XG5cbiAgICBmb2N1cyhmb2N1c1BhcmVudEVsZW1lbnQgPSB0aGlzLmNvbnRlbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCkge1xuICAgICAgICBjb25zdCB0aW1lb3V0RHVyYXRpb24gPSB0aGlzLnBhcnNlRHVyYXRpb25Ub01pbGxpc2Vjb25kcyh0aGlzLnRyYW5zaXRpb25PcHRpb25zKTtcbiAgICAgICAgbGV0IGZvY3VzYWJsZSA9IERvbUhhbmRsZXIuZ2V0Rm9jdXNhYmxlRWxlbWVudChmb2N1c1BhcmVudEVsZW1lbnQsICdbYXV0b2ZvY3VzXScpO1xuXG4gICAgICAgIGlmIChmb2N1c2FibGUpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBmb2N1c2FibGUuZm9jdXMoKSwgdGltZW91dER1cmF0aW9uIHx8IDUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZm9jdXNhYmxlRWxlbWVudCA9IERvbUhhbmRsZXIuZ2V0Rm9jdXNhYmxlRWxlbWVudChmb2N1c1BhcmVudEVsZW1lbnQpO1xuICAgICAgICBpZiAoZm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKSwgdGltZW91dER1cmF0aW9uIHx8IDUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5mb290ZXJWaWV3Q2hpbGQpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgZW1wdHkgdHJ5IHRvIGZvY3VzIG9uIGZvb3RlclxuICAgICAgICAgICAgdGhpcy5mb2N1cyh0aGlzLmZvb3RlclZpZXdDaGlsZC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsb3NlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgZW5hYmxlTW9kYWxpdHkoKSB7XG4gICAgICAgIGlmICh0aGlzLmNsb3NhYmxlICYmIHRoaXMuZGlzbWlzc2FibGVNYXNrKSB7XG4gICAgICAgICAgICB0aGlzLm1hc2tDbGlja0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy53cmFwcGVyLCAnbW91c2Vkb3duJywgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy53cmFwcGVyICYmIHRoaXMud3JhcHBlci5pc1NhbWVOb2RlKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZShldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RhbCkge1xuICAgICAgICAgICAgYmxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkaXNhYmxlTW9kYWxpdHkoKSB7XG4gICAgICAgIGlmICh0aGlzLndyYXBwZXIpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRpc21pc3NhYmxlTWFzaykge1xuICAgICAgICAgICAgICAgIHRoaXMudW5iaW5kTWFza0NsaWNrTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gZm9yIG5lc3RlZCBkaWFsb2dzIHcvbW9kYWxcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbEJsb2NrZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnAtZGlhbG9nLW1hc2stc2Nyb2xsYmxvY2tlcicpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RhbCAmJiBzY3JvbGxCbG9ja2VycyAmJiBzY3JvbGxCbG9ja2Vycy5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgICAgIHVuYmxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghKHRoaXMuY2QgYXMgVmlld1JlZikuZGVzdHJveWVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBtYXhpbWl6ZSgpIHtcbiAgICAgICAgdGhpcy5tYXhpbWl6ZWQgPSAhdGhpcy5tYXhpbWl6ZWQ7XG5cbiAgICAgICAgaWYgKCF0aGlzLm1vZGFsICYmICF0aGlzLmJsb2NrU2Nyb2xsKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tYXhpbWl6ZWQpIHtcbiAgICAgICAgICAgICAgICBibG9ja0JvZHlTY3JvbGwoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdW5ibG9ja0JvZHlTY3JvbGwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25NYXhpbWl6ZS5lbWl0KHsgbWF4aW1pemVkOiB0aGlzLm1heGltaXplZCB9KTtcbiAgICB9XG5cbiAgICB1bmJpbmRNYXNrQ2xpY2tMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKHRoaXMubWFza0NsaWNrTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMubWFza0NsaWNrTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHRoaXMubWFza0NsaWNrTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbW92ZU9uVG9wKCkge1xuICAgICAgICBpZiAodGhpcy5hdXRvWkluZGV4KSB7XG4gICAgICAgICAgICBaSW5kZXhVdGlscy5zZXQoJ21vZGFsJywgdGhpcy5jb250YWluZXIsIHRoaXMuYmFzZVpJbmRleCArIHRoaXMuY29uZmlnLnpJbmRleC5tb2RhbCk7XG4gICAgICAgICAgICAodGhpcy53cmFwcGVyIGFzIEhUTUxFbGVtZW50KS5zdHlsZS56SW5kZXggPSBTdHJpbmcocGFyc2VJbnQoKHRoaXMuY29udGFpbmVyIGFzIEhUTUxEaXZFbGVtZW50KS5zdHlsZS56SW5kZXgsIDEwKSAtIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlU3R5bGUoKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuc3R5bGVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZUVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZUVsZW1lbnQudHlwZSA9ICd0ZXh0L2Nzcyc7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50LmhlYWQsIHRoaXMuc3R5bGVFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBsZXQgaW5uZXJIVE1MID0gJyc7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgYnJlYWtwb2ludCBpbiB0aGlzLmJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlubmVySFRNTCArPSBgXG4gICAgICAgICAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke2JyZWFrcG9pbnR9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnAtZGlhbG9nWyR7dGhpcy5pZH1dOm5vdCgucC1kaWFsb2ctbWF4aW1pemVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAke3RoaXMuYnJlYWtwb2ludHNbYnJlYWtwb2ludF19ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBgO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5zdHlsZUVsZW1lbnQsICdpbm5lckhUTUwnLCBpbm5lckhUTUwpO1xuICAgICAgICAgICAgICAgIHNldEF0dHJpYnV0ZSh0aGlzLnN0eWxlRWxlbWVudCwgJ25vbmNlJywgdGhpcy5jb25maWc/LmNzcCgpPy5ub25jZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0RHJhZyhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAoaGFzQ2xhc3MoZXZlbnQudGFyZ2V0IGFzIGFueSwgJ3AtZGlhbG9nLW1heGltaXplLWljb24nKSB8fCBoYXNDbGFzcyhldmVudC50YXJnZXQgYXMgYW55LCAncC1kaWFsb2ctaGVhZGVyLWNsb3NlLWljb24nKSB8fCBoYXNDbGFzcygoPEhUTUxFbGVtZW50PmV2ZW50LnRhcmdldCkucGFyZW50RWxlbWVudCwgJ3AtZGlhbG9nLWhlYWRlci1pY29uJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRyYWdnYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5kcmFnZ2luZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmxhc3RQYWdlWCA9IGV2ZW50LnBhZ2VYO1xuICAgICAgICAgICAgdGhpcy5sYXN0UGFnZVkgPSBldmVudC5wYWdlWTtcblxuICAgICAgICAgICAgKHRoaXMuY29udGFpbmVyIGFzIEhUTUxEaXZFbGVtZW50KS5zdHlsZS5tYXJnaW4gPSAnMCc7XG4gICAgICAgICAgICBhZGRDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdwLXVuc2VsZWN0YWJsZS10ZXh0Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkRyYWcoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ2dpbmcpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gZ2V0T3V0ZXJXaWR0aCh0aGlzLmNvbnRhaW5lcik7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJIZWlnaHQgPSBnZXRPdXRlckhlaWdodCh0aGlzLmNvbnRhaW5lcik7XG4gICAgICAgICAgICBjb25zdCBkZWx0YVggPSBldmVudC5wYWdlWCAtICh0aGlzLmxhc3RQYWdlWCBhcyBudW1iZXIpO1xuICAgICAgICAgICAgY29uc3QgZGVsdGFZID0gZXZlbnQucGFnZVkgLSAodGhpcy5sYXN0UGFnZVkgYXMgbnVtYmVyKTtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJDb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmNvbnRhaW5lcik7XG5cbiAgICAgICAgICAgIGNvbnN0IGxlZnRNYXJnaW4gPSBwYXJzZUZsb2F0KGNvbnRhaW5lckNvbXB1dGVkU3R5bGUubWFyZ2luTGVmdCk7XG4gICAgICAgICAgICBjb25zdCB0b3BNYXJnaW4gPSBwYXJzZUZsb2F0KGNvbnRhaW5lckNvbXB1dGVkU3R5bGUubWFyZ2luVG9wKTtcblxuICAgICAgICAgICAgY29uc3QgbGVmdFBvcyA9IG9mZnNldC5sZWZ0ICsgZGVsdGFYIC0gbGVmdE1hcmdpbjtcbiAgICAgICAgICAgIGNvbnN0IHRvcFBvcyA9IG9mZnNldC50b3AgKyBkZWx0YVkgLSB0b3BNYXJnaW47XG4gICAgICAgICAgICBjb25zdCB2aWV3cG9ydCA9IGdldFZpZXdwb3J0KCk7XG5cbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcblxuICAgICAgICAgICAgaWYgKHRoaXMua2VlcEluVmlld3BvcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAobGVmdFBvcyA+PSB0aGlzLm1pblggJiYgbGVmdFBvcyArIGNvbnRhaW5lcldpZHRoIDwgdmlld3BvcnQud2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3R5bGUubGVmdCA9IGAke2xlZnRQb3N9cHhgO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RQYWdlWCA9IGV2ZW50LnBhZ2VYO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5sZWZ0ID0gYCR7bGVmdFBvc31weGA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRvcFBvcyA+PSB0aGlzLm1pblkgJiYgdG9wUG9zICsgY29udGFpbmVySGVpZ2h0IDwgdmlld3BvcnQuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0eWxlLnRvcCA9IGAke3RvcFBvc31weGA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFzdFBhZ2VZID0gZXZlbnQucGFnZVk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnRvcCA9IGAke3RvcFBvc31weGA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RQYWdlWCA9IGV2ZW50LnBhZ2VYO1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLmxlZnQgPSBgJHtsZWZ0UG9zfXB4YDtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RQYWdlWSA9IGV2ZW50LnBhZ2VZO1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLnN0eWxlLnRvcCA9IGAke3RvcFBvc31weGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbmREcmFnKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ2dpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ3AtdW5zZWxlY3RhYmxlLXRleHQnKTtcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgdGhpcy5vbkRyYWdFbmQuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXNldFBvc2l0aW9uKCkge1xuICAgICAgICAodGhpcy5jb250YWluZXIgYXMgSFRNTERpdkVsZW1lbnQpLnN0eWxlLnBvc2l0aW9uID0gJyc7XG4gICAgICAgICh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUubGVmdCA9ICcnO1xuICAgICAgICAodGhpcy5jb250YWluZXIgYXMgSFRNTERpdkVsZW1lbnQpLnN0eWxlLnRvcCA9ICcnO1xuICAgICAgICAodGhpcy5jb250YWluZXIgYXMgSFRNTERpdkVsZW1lbnQpLnN0eWxlLm1hcmdpbiA9ICcnO1xuICAgIH1cblxuICAgIC8vYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgIGNlbnRlcigpIHtcbiAgICAgICAgdGhpcy5yZXNldFBvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgaW5pdFJlc2l6ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5yZXNpemFibGUpIHtcbiAgICAgICAgICAgIHRoaXMucmVzaXppbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5sYXN0UGFnZVggPSBldmVudC5wYWdlWDtcbiAgICAgICAgICAgIHRoaXMubGFzdFBhZ2VZID0gZXZlbnQucGFnZVk7XG4gICAgICAgICAgICBhZGRDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdwLXVuc2VsZWN0YWJsZS10ZXh0Jyk7XG4gICAgICAgICAgICB0aGlzLm9uUmVzaXplSW5pdC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUmVzaXplKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6aW5nKSB7XG4gICAgICAgICAgICBsZXQgZGVsdGFYID0gZXZlbnQucGFnZVggLSAodGhpcy5sYXN0UGFnZVggYXMgbnVtYmVyKTtcbiAgICAgICAgICAgIGxldCBkZWx0YVkgPSBldmVudC5wYWdlWSAtICh0aGlzLmxhc3RQYWdlWSBhcyBudW1iZXIpO1xuICAgICAgICAgICAgbGV0IGNvbnRhaW5lcldpZHRoID0gZ2V0T3V0ZXJXaWR0aCh0aGlzLmNvbnRhaW5lcik7XG4gICAgICAgICAgICBsZXQgY29udGFpbmVySGVpZ2h0ID0gZ2V0T3V0ZXJIZWlnaHQodGhpcy5jb250YWluZXIpO1xuICAgICAgICAgICAgbGV0IGNvbnRlbnRIZWlnaHQgPSBnZXRPdXRlckhlaWdodCh0aGlzLmNvbnRlbnRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgbGV0IG5ld1dpZHRoID0gY29udGFpbmVyV2lkdGggKyBkZWx0YVg7XG4gICAgICAgICAgICBsZXQgbmV3SGVpZ2h0ID0gY29udGFpbmVySGVpZ2h0ICsgZGVsdGFZO1xuICAgICAgICAgICAgbGV0IG1pbldpZHRoID0gKHRoaXMuY29udGFpbmVyIGFzIEhUTUxEaXZFbGVtZW50KS5zdHlsZS5taW5XaWR0aDtcbiAgICAgICAgICAgIGxldCBtaW5IZWlnaHQgPSAodGhpcy5jb250YWluZXIgYXMgSFRNTERpdkVsZW1lbnQpLnN0eWxlLm1pbkhlaWdodDtcbiAgICAgICAgICAgIGxldCBvZmZzZXQgPSAodGhpcy5jb250YWluZXIgYXMgSFRNTERpdkVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgbGV0IHZpZXdwb3J0ID0gZ2V0Vmlld3BvcnQoKTtcbiAgICAgICAgICAgIGxldCBoYXNCZWVuRHJhZ2dlZCA9ICFwYXJzZUludCgodGhpcy5jb250YWluZXIgYXMgSFRNTERpdkVsZW1lbnQpLnN0eWxlLnRvcCkgfHwgIXBhcnNlSW50KCh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUubGVmdCk7XG5cbiAgICAgICAgICAgIGlmIChoYXNCZWVuRHJhZ2dlZCkge1xuICAgICAgICAgICAgICAgIG5ld1dpZHRoICs9IGRlbHRhWDtcbiAgICAgICAgICAgICAgICBuZXdIZWlnaHQgKz0gZGVsdGFZO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoKCFtaW5XaWR0aCB8fCBuZXdXaWR0aCA+IHBhcnNlSW50KG1pbldpZHRoKSkgJiYgb2Zmc2V0LmxlZnQgKyBuZXdXaWR0aCA8IHZpZXdwb3J0LndpZHRoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3R5bGUud2lkdGggPSBuZXdXaWR0aCArICdweCc7XG4gICAgICAgICAgICAgICAgKHRoaXMuY29udGFpbmVyIGFzIEhUTUxEaXZFbGVtZW50KS5zdHlsZS53aWR0aCA9IHRoaXMuX3N0eWxlLndpZHRoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoKCFtaW5IZWlnaHQgfHwgbmV3SGVpZ2h0ID4gcGFyc2VJbnQobWluSGVpZ2h0KSkgJiYgb2Zmc2V0LnRvcCArIG5ld0hlaWdodCA8IHZpZXdwb3J0LmhlaWdodCkge1xuICAgICAgICAgICAgICAgICg8RWxlbWVudFJlZj50aGlzLmNvbnRlbnRWaWV3Q2hpbGQpLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gY29udGVudEhlaWdodCArIG5ld0hlaWdodCAtIGNvbnRhaW5lckhlaWdodCArICdweCc7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fc3R5bGUuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0eWxlLmhlaWdodCA9IG5ld0hlaWdodCArICdweCc7XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUuaGVpZ2h0ID0gdGhpcy5fc3R5bGUuaGVpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5sYXN0UGFnZVggPSBldmVudC5wYWdlWDtcbiAgICAgICAgICAgIHRoaXMubGFzdFBhZ2VZID0gZXZlbnQucGFnZVk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXNpemVFbmQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzaXppbmcpIHtcbiAgICAgICAgICAgIHRoaXMucmVzaXppbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ3AtdW5zZWxlY3RhYmxlLXRleHQnKTtcbiAgICAgICAgICAgIHRoaXMub25SZXNpemVFbmQuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiaW5kR2xvYmFsTGlzdGVuZXJzKCkge1xuICAgICAgICBpZiAodGhpcy5kcmFnZ2FibGUpIHtcbiAgICAgICAgICAgIHRoaXMuYmluZERvY3VtZW50RHJhZ0xpc3RlbmVyKCk7XG4gICAgICAgICAgICB0aGlzLmJpbmREb2N1bWVudERyYWdFbmRMaXN0ZW5lcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucmVzaXphYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmJpbmREb2N1bWVudFJlc2l6ZUxpc3RlbmVycygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY2xvc2VPbkVzY2FwZSAmJiB0aGlzLmNsb3NhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmJpbmREb2N1bWVudEVzY2FwZUxpc3RlbmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJpbmRHbG9iYWxMaXN0ZW5lcnMoKSB7XG4gICAgICAgIHRoaXMudW5iaW5kRG9jdW1lbnREcmFnTGlzdGVuZXIoKTtcbiAgICAgICAgdGhpcy51bmJpbmREb2N1bWVudERyYWdFbmRMaXN0ZW5lcigpO1xuICAgICAgICB0aGlzLnVuYmluZERvY3VtZW50UmVzaXplTGlzdGVuZXJzKCk7XG4gICAgICAgIHRoaXMudW5iaW5kRG9jdW1lbnRFc2NhcGVMaXN0ZW5lcigpO1xuICAgIH1cblxuICAgIGJpbmREb2N1bWVudERyYWdMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50RHJhZ0xpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnREcmFnTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3LCAnbW91c2Vtb3ZlJywgdGhpcy5vbkRyYWcuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVuYmluZERvY3VtZW50RHJhZ0xpc3RlbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5kb2N1bWVudERyYWdMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudERyYWdMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudERyYWdMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiaW5kRG9jdW1lbnREcmFnRW5kTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudERyYWdFbmRMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50RHJhZ0VuZExpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldywgJ21vdXNldXAnLCB0aGlzLmVuZERyYWcuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVuYmluZERvY3VtZW50RHJhZ0VuZExpc3RlbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5kb2N1bWVudERyYWdFbmRMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudERyYWdFbmRMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudERyYWdFbmRMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiaW5kRG9jdW1lbnRSZXNpemVMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudFJlc2l6ZUxpc3RlbmVyICYmICF0aGlzLmRvY3VtZW50UmVzaXplRW5kTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudFJlc2l6ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldywgJ21vdXNlbW92ZScsIHRoaXMub25SZXNpemUuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudFJlc2l6ZUVuZExpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldywgJ21vdXNldXAnLCB0aGlzLnJlc2l6ZUVuZC5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5iaW5kRG9jdW1lbnRSZXNpemVMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50UmVzaXplTGlzdGVuZXIgJiYgdGhpcy5kb2N1bWVudFJlc2l6ZUVuZExpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50UmVzaXplTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRSZXNpemVFbmRMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudFJlc2l6ZUxpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRSZXNpemVFbmRMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiaW5kRG9jdW1lbnRFc2NhcGVMaXN0ZW5lcigpIHtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRUYXJnZXQ6IGFueSA9IHRoaXMuZWwgPyB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub3duZXJEb2N1bWVudCA6ICdkb2N1bWVudCc7XG5cbiAgICAgICAgdGhpcy5kb2N1bWVudEVzY2FwZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oZG9jdW1lbnRUYXJnZXQsICdrZXlkb3duJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZShldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHVuYmluZERvY3VtZW50RXNjYXBlTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50RXNjYXBlTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRFc2NhcGVMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudEVzY2FwZUxpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFwcGVuZENvbnRhaW5lcigpIHtcbiAgICAgICAgaWYgKHRoaXMuYXBwZW5kVG8pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFwcGVuZFRvID09PSAnYm9keScpIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudC5ib2R5LCB0aGlzLndyYXBwZXIpO1xuICAgICAgICAgICAgZWxzZSBhcHBlbmRDaGlsZCh0aGlzLmFwcGVuZFRvLCB0aGlzLndyYXBwZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVzdG9yZUFwcGVuZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyICYmIHRoaXMuYXBwZW5kVG8pIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLndyYXBwZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BbmltYXRpb25TdGFydChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgc3dpdGNoIChldmVudC50b1N0YXRlKSB7XG4gICAgICAgICAgICBjYXNlICd2aXNpYmxlJzpcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGV2ZW50LmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy53cmFwcGVyID0gdGhpcy5jb250YWluZXI/LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRDb250YWluZXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1vdmVPblRvcCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmluZEdsb2JhbExpc3RlbmVycygpO1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyPy5zZXRBdHRyaWJ1dGUodGhpcy5pZCwgJycpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubW9kYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmFibGVNb2RhbGl0eSgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGlmICghdGhpcy5tb2RhbCAmJiB0aGlzLmJsb2NrU2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgLy8gICAgIGFkZENsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ3Atb3ZlcmZsb3ctaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgLy8gfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9jdXNPblNob3cpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWwgPSB0aGlzLmNvbnRlbnRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQgfHwgdGhpcy5jb250YWluZXI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXMoZWwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAndm9pZCc6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMud3JhcHBlciAmJiB0aGlzLm1vZGFsKSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMud3JhcHBlciwgJ3Atb3ZlcmxheS1tYXNrLWxlYXZlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQudG9TdGF0ZSkge1xuICAgICAgICAgICAgY2FzZSAndm9pZCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNvbnRhaW5lckRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uSGlkZS5lbWl0KHt9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndmlzaWJsZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5vblNob3cuZW1pdCh7fSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNvbnRhaW5lckRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5iaW5kR2xvYmFsTGlzdGVuZXJzKCk7XG4gICAgICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLm1hc2tWaXNpYmxlID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHRoaXMubWF4aW1pemVkKSB7XG4gICAgICAgICAgICAvLyByZW1vdmVDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdwLW92ZXJmbG93LWhpZGRlbicpXG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tc2Nyb2xsYmFyOy13aWR0aCcpO1xuICAgICAgICAgICAgdGhpcy5tYXhpbWl6ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGFsKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVNb2RhbGl0eSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaWYgKHRoaXMuYmxvY2tTY3JvbGwpIHtcbiAgICAgICAgLy8gICAgICByZW1vdmVDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdwLW92ZXJmbG93LWhpZGRlbicpO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgaWYgKGhhc0NsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ3Atb3ZlcmZsb3ctaGlkZGVuJykpIHtcbiAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ3Atb3ZlcmZsb3ctaGlkZGVuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgdGhpcy5hdXRvWkluZGV4KSB7XG4gICAgICAgICAgICBaSW5kZXhVdGlscy5jbGVhcih0aGlzLmNvbnRhaW5lcik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IG51bGw7XG4gICAgICAgIHRoaXMud3JhcHBlciA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5fc3R5bGUgPSB0aGlzLm9yaWdpbmFsU3R5bGUgPyB7IC4uLnRoaXMub3JpZ2luYWxTdHlsZSB9IDoge307XG4gICAgfVxuXG4gICAgZGVzdHJveVN0eWxlKCkge1xuICAgICAgICBpZiAodGhpcy5zdHlsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5kb2N1bWVudC5oZWFkLCB0aGlzLnN0eWxlRWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLnN0eWxlRWxlbWVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnJlc3RvcmVBcHBlbmQoKTtcbiAgICAgICAgICAgIHRoaXMub25Db250YWluZXJEZXN0cm95KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRlc3Ryb3lTdHlsZSgpO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbRGlhbG9nLCBTaGFyZWRNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtEaWFsb2csIFNoYXJlZE1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nTW9kdWxlIHt9XG4iXX0=