primeng 15.4.3-lts → 15.4.4-lts

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 (558) hide show
  1. package/accordion/accordion.d.ts +2 -3
  2. package/animate/animate.d.ts +1 -3
  3. package/api/licensemanager.d.ts +4 -13
  4. package/autocomplete/autocomplete.d.ts +2 -3
  5. package/autofocus/autofocus.d.ts +1 -3
  6. package/avatar/avatar.d.ts +0 -3
  7. package/badge/badge.d.ts +1 -3
  8. package/blockui/blockui.d.ts +2 -3
  9. package/breadcrumb/breadcrumb.d.ts +1 -3
  10. package/button/button.d.ts +3 -4
  11. package/calendar/calendar.d.ts +2 -3
  12. package/card/card.d.ts +2 -3
  13. package/carousel/carousel.d.ts +1 -3
  14. package/cascadeselect/cascadeselect.d.ts +2 -3
  15. package/chart/chart.d.ts +1 -3
  16. package/checkbox/checkbox.d.ts +1 -3
  17. package/chip/chip.d.ts +0 -3
  18. package/chips/chips.d.ts +1 -3
  19. package/colorpicker/colorpicker.d.ts +2 -3
  20. package/confirmdialog/confirmdialog.d.ts +2 -3
  21. package/confirmpopup/confirmpopup.d.ts +2 -3
  22. package/contextmenu/contextmenu.d.ts +2 -3
  23. package/dataview/dataview.d.ts +2 -3
  24. package/defer/defer.d.ts +1 -3
  25. package/dialog/dialog.d.ts +2 -3
  26. package/divider/divider.d.ts +0 -3
  27. package/dock/dock.d.ts +1 -3
  28. package/dragdrop/dragdrop.d.ts +2 -5
  29. package/dropdown/dropdown.d.ts +2 -3
  30. package/dynamicdialog/dynamicdialog.d.ts +3 -4
  31. package/editor/editor.d.ts +1 -3
  32. package/esm2020/accordion/accordion.mjs +6 -8
  33. package/esm2020/animate/animate.mjs +6 -7
  34. package/esm2020/api/licensemanager.mjs +58 -77
  35. package/esm2020/autocomplete/autocomplete.mjs +6 -7
  36. package/esm2020/autofocus/autofocus.mjs +6 -7
  37. package/esm2020/avatar/avatar.mjs +8 -9
  38. package/esm2020/badge/badge.mjs +8 -10
  39. package/esm2020/blockui/blockui.mjs +6 -7
  40. package/esm2020/breadcrumb/breadcrumb.mjs +10 -12
  41. package/esm2020/button/button.mjs +12 -11
  42. package/esm2020/calendar/calendar.mjs +6 -7
  43. package/esm2020/card/card.mjs +8 -10
  44. package/esm2020/carousel/carousel.mjs +9 -11
  45. package/esm2020/cascadeselect/cascadeselect.mjs +6 -7
  46. package/esm2020/chart/chart.mjs +6 -7
  47. package/esm2020/checkbox/checkbox.mjs +8 -10
  48. package/esm2020/chip/chip.mjs +8 -10
  49. package/esm2020/chips/chips.mjs +8 -10
  50. package/esm2020/colorpicker/colorpicker.mjs +6 -6
  51. package/esm2020/confirmdialog/confirmdialog.mjs +6 -7
  52. package/esm2020/confirmpopup/confirmpopup.mjs +6 -7
  53. package/esm2020/contextmenu/contextmenu.mjs +6 -7
  54. package/esm2020/dataview/dataview.mjs +6 -7
  55. package/esm2020/defer/defer.mjs +6 -7
  56. package/esm2020/dialog/dialog.mjs +6 -7
  57. package/esm2020/divider/divider.mjs +8 -9
  58. package/esm2020/dock/dock.mjs +11 -13
  59. package/esm2020/dom/domhandler.mjs +3 -3
  60. package/esm2020/dragdrop/dragdrop.mjs +10 -12
  61. package/esm2020/dropdown/dropdown.mjs +6 -7
  62. package/esm2020/dynamicdialog/dynamicdialog.mjs +6 -7
  63. package/esm2020/editor/editor.mjs +8 -10
  64. package/esm2020/fieldset/fieldset.mjs +9 -11
  65. package/esm2020/fileupload/fileupload.mjs +6 -7
  66. package/esm2020/focustrap/focustrap.mjs +6 -7
  67. package/esm2020/galleria/galleria.mjs +6 -7
  68. package/esm2020/image/image.mjs +6 -7
  69. package/esm2020/inplace/inplace.mjs +9 -11
  70. package/esm2020/inputmask/inputmask.mjs +10 -12
  71. package/esm2020/inputnumber/inputnumber.mjs +10 -12
  72. package/esm2020/inputswitch/inputswitch.mjs +8 -9
  73. package/esm2020/inputtext/inputtext.mjs +6 -7
  74. package/esm2020/inputtextarea/inputtextarea.mjs +6 -7
  75. package/esm2020/keyfilter/keyfilter.mjs +6 -7
  76. package/esm2020/knob/knob.mjs +8 -9
  77. package/esm2020/listbox/listbox.mjs +6 -7
  78. package/esm2020/megamenu/megamenu.mjs +11 -13
  79. package/esm2020/menu/menu.mjs +6 -6
  80. package/esm2020/menubar/menubar.mjs +6 -7
  81. package/esm2020/messages/messages.mjs +6 -7
  82. package/esm2020/multiselect/multiselect.mjs +6 -7
  83. package/esm2020/orderlist/orderlist.mjs +9 -10
  84. package/esm2020/organizationchart/organizationchart.mjs +6 -8
  85. package/esm2020/overlaypanel/overlaypanel.mjs +6 -7
  86. package/esm2020/paginator/paginator.mjs +10 -11
  87. package/esm2020/panel/panel.mjs +17 -19
  88. package/esm2020/panelmenu/panelmenu.mjs +8 -10
  89. package/esm2020/password/password.mjs +10 -12
  90. package/esm2020/picklist/picklist.mjs +9 -10
  91. package/esm2020/progressbar/progressbar.mjs +8 -9
  92. package/esm2020/progressspinner/progressspinner.mjs +8 -9
  93. package/esm2020/radiobutton/radiobutton.mjs +8 -9
  94. package/esm2020/rating/rating.mjs +8 -10
  95. package/esm2020/ripple/ripple.mjs +6 -6
  96. package/esm2020/scroller/scroller.mjs +8 -10
  97. package/esm2020/scrollpanel/scrollpanel.mjs +8 -10
  98. package/esm2020/scrolltop/scrolltop.mjs +6 -7
  99. package/esm2020/selectbutton/selectbutton.mjs +9 -10
  100. package/esm2020/sidebar/sidebar.mjs +6 -7
  101. package/esm2020/skeleton/skeleton.mjs +8 -9
  102. package/esm2020/slidemenu/slidemenu.mjs +6 -7
  103. package/esm2020/slider/slider.mjs +8 -9
  104. package/esm2020/speeddial/speeddial.mjs +12 -14
  105. package/esm2020/splitbutton/splitbutton.mjs +10 -12
  106. package/esm2020/splitter/splitter.mjs +8 -10
  107. package/esm2020/steps/steps.mjs +9 -10
  108. package/esm2020/styleclass/styleclass.mjs +6 -7
  109. package/esm2020/table/table.mjs +10 -11
  110. package/esm2020/tabmenu/tabmenu.mjs +10 -12
  111. package/esm2020/tabview/tabview.mjs +9 -11
  112. package/esm2020/tag/tag.mjs +7 -11
  113. package/esm2020/terminal/terminal.mjs +9 -10
  114. package/esm2020/tieredmenu/tieredmenu.mjs +6 -7
  115. package/esm2020/timeline/timeline.mjs +8 -10
  116. package/esm2020/toast/toast.mjs +6 -7
  117. package/esm2020/togglebutton/togglebutton.mjs +9 -10
  118. package/esm2020/toolbar/toolbar.mjs +8 -10
  119. package/esm2020/tooltip/tooltip.mjs +6 -6
  120. package/esm2020/tree/tree.mjs +6 -7
  121. package/esm2020/treeselect/treeselect.mjs +6 -7
  122. package/esm2020/treetable/treetable.mjs +6 -7
  123. package/esm2020/tristatecheckbox/tristatecheckbox.mjs +8 -10
  124. package/esm2020/virtualscroller/virtualscroller.mjs +9 -10
  125. package/fesm2015/primeng-accordion.mjs +5 -7
  126. package/fesm2015/primeng-accordion.mjs.map +1 -1
  127. package/fesm2015/primeng-animate.mjs +5 -6
  128. package/fesm2015/primeng-animate.mjs.map +1 -1
  129. package/fesm2015/primeng-api.mjs +76 -97
  130. package/fesm2015/primeng-api.mjs.map +1 -1
  131. package/fesm2015/primeng-autocomplete.mjs +5 -6
  132. package/fesm2015/primeng-autocomplete.mjs.map +1 -1
  133. package/fesm2015/primeng-autofocus.mjs +5 -6
  134. package/fesm2015/primeng-autofocus.mjs.map +1 -1
  135. package/fesm2015/primeng-avatar.mjs +7 -8
  136. package/fesm2015/primeng-avatar.mjs.map +1 -1
  137. package/fesm2015/primeng-badge.mjs +7 -9
  138. package/fesm2015/primeng-badge.mjs.map +1 -1
  139. package/fesm2015/primeng-blockui.mjs +5 -6
  140. package/fesm2015/primeng-blockui.mjs.map +1 -1
  141. package/fesm2015/primeng-breadcrumb.mjs +9 -11
  142. package/fesm2015/primeng-breadcrumb.mjs.map +1 -1
  143. package/fesm2015/primeng-button.mjs +11 -10
  144. package/fesm2015/primeng-button.mjs.map +1 -1
  145. package/fesm2015/primeng-calendar.mjs +5 -6
  146. package/fesm2015/primeng-calendar.mjs.map +1 -1
  147. package/fesm2015/primeng-card.mjs +7 -9
  148. package/fesm2015/primeng-card.mjs.map +1 -1
  149. package/fesm2015/primeng-carousel.mjs +8 -10
  150. package/fesm2015/primeng-carousel.mjs.map +1 -1
  151. package/fesm2015/primeng-cascadeselect.mjs +5 -6
  152. package/fesm2015/primeng-cascadeselect.mjs.map +1 -1
  153. package/fesm2015/primeng-chart.mjs +5 -6
  154. package/fesm2015/primeng-chart.mjs.map +1 -1
  155. package/fesm2015/primeng-checkbox.mjs +7 -9
  156. package/fesm2015/primeng-checkbox.mjs.map +1 -1
  157. package/fesm2015/primeng-chip.mjs +7 -9
  158. package/fesm2015/primeng-chip.mjs.map +1 -1
  159. package/fesm2015/primeng-chips.mjs +7 -9
  160. package/fesm2015/primeng-chips.mjs.map +1 -1
  161. package/fesm2015/primeng-colorpicker.mjs +6 -6
  162. package/fesm2015/primeng-colorpicker.mjs.map +1 -1
  163. package/fesm2015/primeng-confirmdialog.mjs +5 -6
  164. package/fesm2015/primeng-confirmdialog.mjs.map +1 -1
  165. package/fesm2015/primeng-confirmpopup.mjs +5 -6
  166. package/fesm2015/primeng-confirmpopup.mjs.map +1 -1
  167. package/fesm2015/primeng-contextmenu.mjs +5 -6
  168. package/fesm2015/primeng-contextmenu.mjs.map +1 -1
  169. package/fesm2015/primeng-dataview.mjs +5 -6
  170. package/fesm2015/primeng-dataview.mjs.map +1 -1
  171. package/fesm2015/primeng-defer.mjs +5 -6
  172. package/fesm2015/primeng-defer.mjs.map +1 -1
  173. package/fesm2015/primeng-dialog.mjs +5 -6
  174. package/fesm2015/primeng-dialog.mjs.map +1 -1
  175. package/fesm2015/primeng-divider.mjs +7 -8
  176. package/fesm2015/primeng-divider.mjs.map +1 -1
  177. package/fesm2015/primeng-dock.mjs +10 -12
  178. package/fesm2015/primeng-dock.mjs.map +1 -1
  179. package/fesm2015/primeng-dom.mjs +2 -2
  180. package/fesm2015/primeng-dom.mjs.map +1 -1
  181. package/fesm2015/primeng-dragdrop.mjs +9 -11
  182. package/fesm2015/primeng-dragdrop.mjs.map +1 -1
  183. package/fesm2015/primeng-dropdown.mjs +5 -6
  184. package/fesm2015/primeng-dropdown.mjs.map +1 -1
  185. package/fesm2015/primeng-dynamicdialog.mjs +5 -6
  186. package/fesm2015/primeng-dynamicdialog.mjs.map +1 -1
  187. package/fesm2015/primeng-editor.mjs +7 -9
  188. package/fesm2015/primeng-editor.mjs.map +1 -1
  189. package/fesm2015/primeng-fieldset.mjs +8 -10
  190. package/fesm2015/primeng-fieldset.mjs.map +1 -1
  191. package/fesm2015/primeng-fileupload.mjs +5 -6
  192. package/fesm2015/primeng-fileupload.mjs.map +1 -1
  193. package/fesm2015/primeng-focustrap.mjs +5 -6
  194. package/fesm2015/primeng-focustrap.mjs.map +1 -1
  195. package/fesm2015/primeng-galleria.mjs +5 -6
  196. package/fesm2015/primeng-galleria.mjs.map +1 -1
  197. package/fesm2015/primeng-image.mjs +5 -6
  198. package/fesm2015/primeng-image.mjs.map +1 -1
  199. package/fesm2015/primeng-inplace.mjs +8 -10
  200. package/fesm2015/primeng-inplace.mjs.map +1 -1
  201. package/fesm2015/primeng-inputmask.mjs +9 -11
  202. package/fesm2015/primeng-inputmask.mjs.map +1 -1
  203. package/fesm2015/primeng-inputnumber.mjs +9 -11
  204. package/fesm2015/primeng-inputnumber.mjs.map +1 -1
  205. package/fesm2015/primeng-inputswitch.mjs +7 -8
  206. package/fesm2015/primeng-inputswitch.mjs.map +1 -1
  207. package/fesm2015/primeng-inputtext.mjs +5 -6
  208. package/fesm2015/primeng-inputtext.mjs.map +1 -1
  209. package/fesm2015/primeng-inputtextarea.mjs +5 -6
  210. package/fesm2015/primeng-inputtextarea.mjs.map +1 -1
  211. package/fesm2015/primeng-keyfilter.mjs +5 -6
  212. package/fesm2015/primeng-keyfilter.mjs.map +1 -1
  213. package/fesm2015/primeng-knob.mjs +7 -8
  214. package/fesm2015/primeng-knob.mjs.map +1 -1
  215. package/fesm2015/primeng-listbox.mjs +5 -6
  216. package/fesm2015/primeng-listbox.mjs.map +1 -1
  217. package/fesm2015/primeng-megamenu.mjs +10 -12
  218. package/fesm2015/primeng-megamenu.mjs.map +1 -1
  219. package/fesm2015/primeng-menu.mjs +6 -6
  220. package/fesm2015/primeng-menu.mjs.map +1 -1
  221. package/fesm2015/primeng-menubar.mjs +5 -6
  222. package/fesm2015/primeng-menubar.mjs.map +1 -1
  223. package/fesm2015/primeng-messages.mjs +5 -6
  224. package/fesm2015/primeng-messages.mjs.map +1 -1
  225. package/fesm2015/primeng-multiselect.mjs +5 -6
  226. package/fesm2015/primeng-multiselect.mjs.map +1 -1
  227. package/fesm2015/primeng-orderlist.mjs +8 -9
  228. package/fesm2015/primeng-orderlist.mjs.map +1 -1
  229. package/fesm2015/primeng-organizationchart.mjs +5 -7
  230. package/fesm2015/primeng-organizationchart.mjs.map +1 -1
  231. package/fesm2015/primeng-overlaypanel.mjs +5 -6
  232. package/fesm2015/primeng-overlaypanel.mjs.map +1 -1
  233. package/fesm2015/primeng-paginator.mjs +9 -10
  234. package/fesm2015/primeng-paginator.mjs.map +1 -1
  235. package/fesm2015/primeng-panel.mjs +16 -18
  236. package/fesm2015/primeng-panel.mjs.map +1 -1
  237. package/fesm2015/primeng-panelmenu.mjs +7 -9
  238. package/fesm2015/primeng-panelmenu.mjs.map +1 -1
  239. package/fesm2015/primeng-password.mjs +9 -11
  240. package/fesm2015/primeng-password.mjs.map +1 -1
  241. package/fesm2015/primeng-picklist.mjs +8 -9
  242. package/fesm2015/primeng-picklist.mjs.map +1 -1
  243. package/fesm2015/primeng-progressbar.mjs +7 -8
  244. package/fesm2015/primeng-progressbar.mjs.map +1 -1
  245. package/fesm2015/primeng-progressspinner.mjs +7 -8
  246. package/fesm2015/primeng-progressspinner.mjs.map +1 -1
  247. package/fesm2015/primeng-radiobutton.mjs +7 -8
  248. package/fesm2015/primeng-radiobutton.mjs.map +1 -1
  249. package/fesm2015/primeng-rating.mjs +7 -9
  250. package/fesm2015/primeng-rating.mjs.map +1 -1
  251. package/fesm2015/primeng-ripple.mjs +6 -6
  252. package/fesm2015/primeng-ripple.mjs.map +1 -1
  253. package/fesm2015/primeng-scroller.mjs +7 -9
  254. package/fesm2015/primeng-scroller.mjs.map +1 -1
  255. package/fesm2015/primeng-scrollpanel.mjs +7 -9
  256. package/fesm2015/primeng-scrollpanel.mjs.map +1 -1
  257. package/fesm2015/primeng-scrolltop.mjs +5 -6
  258. package/fesm2015/primeng-scrolltop.mjs.map +1 -1
  259. package/fesm2015/primeng-selectbutton.mjs +8 -9
  260. package/fesm2015/primeng-selectbutton.mjs.map +1 -1
  261. package/fesm2015/primeng-sidebar.mjs +5 -6
  262. package/fesm2015/primeng-sidebar.mjs.map +1 -1
  263. package/fesm2015/primeng-skeleton.mjs +7 -8
  264. package/fesm2015/primeng-skeleton.mjs.map +1 -1
  265. package/fesm2015/primeng-slidemenu.mjs +5 -6
  266. package/fesm2015/primeng-slidemenu.mjs.map +1 -1
  267. package/fesm2015/primeng-slider.mjs +7 -8
  268. package/fesm2015/primeng-slider.mjs.map +1 -1
  269. package/fesm2015/primeng-speeddial.mjs +11 -13
  270. package/fesm2015/primeng-speeddial.mjs.map +1 -1
  271. package/fesm2015/primeng-splitbutton.mjs +9 -11
  272. package/fesm2015/primeng-splitbutton.mjs.map +1 -1
  273. package/fesm2015/primeng-splitter.mjs +7 -9
  274. package/fesm2015/primeng-splitter.mjs.map +1 -1
  275. package/fesm2015/primeng-steps.mjs +8 -9
  276. package/fesm2015/primeng-steps.mjs.map +1 -1
  277. package/fesm2015/primeng-styleclass.mjs +5 -6
  278. package/fesm2015/primeng-styleclass.mjs.map +1 -1
  279. package/fesm2015/primeng-table.mjs +9 -10
  280. package/fesm2015/primeng-table.mjs.map +1 -1
  281. package/fesm2015/primeng-tabmenu.mjs +9 -11
  282. package/fesm2015/primeng-tabmenu.mjs.map +1 -1
  283. package/fesm2015/primeng-tabview.mjs +8 -10
  284. package/fesm2015/primeng-tabview.mjs.map +1 -1
  285. package/fesm2015/primeng-tag.mjs +6 -10
  286. package/fesm2015/primeng-tag.mjs.map +1 -1
  287. package/fesm2015/primeng-terminal.mjs +8 -9
  288. package/fesm2015/primeng-terminal.mjs.map +1 -1
  289. package/fesm2015/primeng-tieredmenu.mjs +5 -6
  290. package/fesm2015/primeng-tieredmenu.mjs.map +1 -1
  291. package/fesm2015/primeng-timeline.mjs +7 -9
  292. package/fesm2015/primeng-timeline.mjs.map +1 -1
  293. package/fesm2015/primeng-toast.mjs +5 -6
  294. package/fesm2015/primeng-toast.mjs.map +1 -1
  295. package/fesm2015/primeng-togglebutton.mjs +8 -9
  296. package/fesm2015/primeng-togglebutton.mjs.map +1 -1
  297. package/fesm2015/primeng-toolbar.mjs +7 -9
  298. package/fesm2015/primeng-toolbar.mjs.map +1 -1
  299. package/fesm2015/primeng-tooltip.mjs +6 -6
  300. package/fesm2015/primeng-tooltip.mjs.map +1 -1
  301. package/fesm2015/primeng-tree.mjs +5 -6
  302. package/fesm2015/primeng-tree.mjs.map +1 -1
  303. package/fesm2015/primeng-treeselect.mjs +5 -6
  304. package/fesm2015/primeng-treeselect.mjs.map +1 -1
  305. package/fesm2015/primeng-treetable.mjs +5 -6
  306. package/fesm2015/primeng-treetable.mjs.map +1 -1
  307. package/fesm2015/primeng-tristatecheckbox.mjs +7 -9
  308. package/fesm2015/primeng-tristatecheckbox.mjs.map +1 -1
  309. package/fesm2015/primeng-virtualscroller.mjs +8 -9
  310. package/fesm2015/primeng-virtualscroller.mjs.map +1 -1
  311. package/fesm2020/primeng-accordion.mjs +5 -7
  312. package/fesm2020/primeng-accordion.mjs.map +1 -1
  313. package/fesm2020/primeng-animate.mjs +5 -6
  314. package/fesm2020/primeng-animate.mjs.map +1 -1
  315. package/fesm2020/primeng-api.mjs +59 -75
  316. package/fesm2020/primeng-api.mjs.map +1 -1
  317. package/fesm2020/primeng-autocomplete.mjs +5 -6
  318. package/fesm2020/primeng-autocomplete.mjs.map +1 -1
  319. package/fesm2020/primeng-autofocus.mjs +5 -6
  320. package/fesm2020/primeng-autofocus.mjs.map +1 -1
  321. package/fesm2020/primeng-avatar.mjs +7 -8
  322. package/fesm2020/primeng-avatar.mjs.map +1 -1
  323. package/fesm2020/primeng-badge.mjs +7 -9
  324. package/fesm2020/primeng-badge.mjs.map +1 -1
  325. package/fesm2020/primeng-blockui.mjs +5 -6
  326. package/fesm2020/primeng-blockui.mjs.map +1 -1
  327. package/fesm2020/primeng-breadcrumb.mjs +9 -11
  328. package/fesm2020/primeng-breadcrumb.mjs.map +1 -1
  329. package/fesm2020/primeng-button.mjs +11 -10
  330. package/fesm2020/primeng-button.mjs.map +1 -1
  331. package/fesm2020/primeng-calendar.mjs +5 -6
  332. package/fesm2020/primeng-calendar.mjs.map +1 -1
  333. package/fesm2020/primeng-card.mjs +7 -9
  334. package/fesm2020/primeng-card.mjs.map +1 -1
  335. package/fesm2020/primeng-carousel.mjs +8 -10
  336. package/fesm2020/primeng-carousel.mjs.map +1 -1
  337. package/fesm2020/primeng-cascadeselect.mjs +5 -6
  338. package/fesm2020/primeng-cascadeselect.mjs.map +1 -1
  339. package/fesm2020/primeng-chart.mjs +5 -6
  340. package/fesm2020/primeng-chart.mjs.map +1 -1
  341. package/fesm2020/primeng-checkbox.mjs +7 -9
  342. package/fesm2020/primeng-checkbox.mjs.map +1 -1
  343. package/fesm2020/primeng-chip.mjs +7 -9
  344. package/fesm2020/primeng-chip.mjs.map +1 -1
  345. package/fesm2020/primeng-chips.mjs +7 -9
  346. package/fesm2020/primeng-chips.mjs.map +1 -1
  347. package/fesm2020/primeng-colorpicker.mjs +6 -6
  348. package/fesm2020/primeng-colorpicker.mjs.map +1 -1
  349. package/fesm2020/primeng-confirmdialog.mjs +5 -6
  350. package/fesm2020/primeng-confirmdialog.mjs.map +1 -1
  351. package/fesm2020/primeng-confirmpopup.mjs +5 -6
  352. package/fesm2020/primeng-confirmpopup.mjs.map +1 -1
  353. package/fesm2020/primeng-contextmenu.mjs +5 -6
  354. package/fesm2020/primeng-contextmenu.mjs.map +1 -1
  355. package/fesm2020/primeng-dataview.mjs +5 -6
  356. package/fesm2020/primeng-dataview.mjs.map +1 -1
  357. package/fesm2020/primeng-defer.mjs +5 -6
  358. package/fesm2020/primeng-defer.mjs.map +1 -1
  359. package/fesm2020/primeng-dialog.mjs +5 -6
  360. package/fesm2020/primeng-dialog.mjs.map +1 -1
  361. package/fesm2020/primeng-divider.mjs +7 -8
  362. package/fesm2020/primeng-divider.mjs.map +1 -1
  363. package/fesm2020/primeng-dock.mjs +10 -12
  364. package/fesm2020/primeng-dock.mjs.map +1 -1
  365. package/fesm2020/primeng-dom.mjs +2 -2
  366. package/fesm2020/primeng-dom.mjs.map +1 -1
  367. package/fesm2020/primeng-dragdrop.mjs +9 -11
  368. package/fesm2020/primeng-dragdrop.mjs.map +1 -1
  369. package/fesm2020/primeng-dropdown.mjs +5 -6
  370. package/fesm2020/primeng-dropdown.mjs.map +1 -1
  371. package/fesm2020/primeng-dynamicdialog.mjs +5 -6
  372. package/fesm2020/primeng-dynamicdialog.mjs.map +1 -1
  373. package/fesm2020/primeng-editor.mjs +7 -9
  374. package/fesm2020/primeng-editor.mjs.map +1 -1
  375. package/fesm2020/primeng-fieldset.mjs +8 -10
  376. package/fesm2020/primeng-fieldset.mjs.map +1 -1
  377. package/fesm2020/primeng-fileupload.mjs +5 -6
  378. package/fesm2020/primeng-fileupload.mjs.map +1 -1
  379. package/fesm2020/primeng-focustrap.mjs +5 -6
  380. package/fesm2020/primeng-focustrap.mjs.map +1 -1
  381. package/fesm2020/primeng-galleria.mjs +5 -6
  382. package/fesm2020/primeng-galleria.mjs.map +1 -1
  383. package/fesm2020/primeng-image.mjs +5 -6
  384. package/fesm2020/primeng-image.mjs.map +1 -1
  385. package/fesm2020/primeng-inplace.mjs +8 -10
  386. package/fesm2020/primeng-inplace.mjs.map +1 -1
  387. package/fesm2020/primeng-inputmask.mjs +9 -11
  388. package/fesm2020/primeng-inputmask.mjs.map +1 -1
  389. package/fesm2020/primeng-inputnumber.mjs +9 -11
  390. package/fesm2020/primeng-inputnumber.mjs.map +1 -1
  391. package/fesm2020/primeng-inputswitch.mjs +7 -8
  392. package/fesm2020/primeng-inputswitch.mjs.map +1 -1
  393. package/fesm2020/primeng-inputtext.mjs +5 -6
  394. package/fesm2020/primeng-inputtext.mjs.map +1 -1
  395. package/fesm2020/primeng-inputtextarea.mjs +5 -6
  396. package/fesm2020/primeng-inputtextarea.mjs.map +1 -1
  397. package/fesm2020/primeng-keyfilter.mjs +5 -6
  398. package/fesm2020/primeng-keyfilter.mjs.map +1 -1
  399. package/fesm2020/primeng-knob.mjs +7 -8
  400. package/fesm2020/primeng-knob.mjs.map +1 -1
  401. package/fesm2020/primeng-listbox.mjs +5 -6
  402. package/fesm2020/primeng-listbox.mjs.map +1 -1
  403. package/fesm2020/primeng-megamenu.mjs +10 -12
  404. package/fesm2020/primeng-megamenu.mjs.map +1 -1
  405. package/fesm2020/primeng-menu.mjs +6 -6
  406. package/fesm2020/primeng-menu.mjs.map +1 -1
  407. package/fesm2020/primeng-menubar.mjs +5 -6
  408. package/fesm2020/primeng-menubar.mjs.map +1 -1
  409. package/fesm2020/primeng-messages.mjs +5 -6
  410. package/fesm2020/primeng-messages.mjs.map +1 -1
  411. package/fesm2020/primeng-multiselect.mjs +5 -6
  412. package/fesm2020/primeng-multiselect.mjs.map +1 -1
  413. package/fesm2020/primeng-orderlist.mjs +8 -9
  414. package/fesm2020/primeng-orderlist.mjs.map +1 -1
  415. package/fesm2020/primeng-organizationchart.mjs +5 -7
  416. package/fesm2020/primeng-organizationchart.mjs.map +1 -1
  417. package/fesm2020/primeng-overlaypanel.mjs +5 -6
  418. package/fesm2020/primeng-overlaypanel.mjs.map +1 -1
  419. package/fesm2020/primeng-paginator.mjs +9 -10
  420. package/fesm2020/primeng-paginator.mjs.map +1 -1
  421. package/fesm2020/primeng-panel.mjs +16 -18
  422. package/fesm2020/primeng-panel.mjs.map +1 -1
  423. package/fesm2020/primeng-panelmenu.mjs +7 -9
  424. package/fesm2020/primeng-panelmenu.mjs.map +1 -1
  425. package/fesm2020/primeng-password.mjs +9 -11
  426. package/fesm2020/primeng-password.mjs.map +1 -1
  427. package/fesm2020/primeng-picklist.mjs +8 -9
  428. package/fesm2020/primeng-picklist.mjs.map +1 -1
  429. package/fesm2020/primeng-progressbar.mjs +7 -8
  430. package/fesm2020/primeng-progressbar.mjs.map +1 -1
  431. package/fesm2020/primeng-progressspinner.mjs +7 -8
  432. package/fesm2020/primeng-progressspinner.mjs.map +1 -1
  433. package/fesm2020/primeng-radiobutton.mjs +7 -8
  434. package/fesm2020/primeng-radiobutton.mjs.map +1 -1
  435. package/fesm2020/primeng-rating.mjs +7 -9
  436. package/fesm2020/primeng-rating.mjs.map +1 -1
  437. package/fesm2020/primeng-ripple.mjs +6 -6
  438. package/fesm2020/primeng-ripple.mjs.map +1 -1
  439. package/fesm2020/primeng-scroller.mjs +7 -9
  440. package/fesm2020/primeng-scroller.mjs.map +1 -1
  441. package/fesm2020/primeng-scrollpanel.mjs +7 -9
  442. package/fesm2020/primeng-scrollpanel.mjs.map +1 -1
  443. package/fesm2020/primeng-scrolltop.mjs +5 -6
  444. package/fesm2020/primeng-scrolltop.mjs.map +1 -1
  445. package/fesm2020/primeng-selectbutton.mjs +8 -9
  446. package/fesm2020/primeng-selectbutton.mjs.map +1 -1
  447. package/fesm2020/primeng-sidebar.mjs +5 -6
  448. package/fesm2020/primeng-sidebar.mjs.map +1 -1
  449. package/fesm2020/primeng-skeleton.mjs +7 -8
  450. package/fesm2020/primeng-skeleton.mjs.map +1 -1
  451. package/fesm2020/primeng-slidemenu.mjs +5 -6
  452. package/fesm2020/primeng-slidemenu.mjs.map +1 -1
  453. package/fesm2020/primeng-slider.mjs +7 -8
  454. package/fesm2020/primeng-slider.mjs.map +1 -1
  455. package/fesm2020/primeng-speeddial.mjs +11 -13
  456. package/fesm2020/primeng-speeddial.mjs.map +1 -1
  457. package/fesm2020/primeng-splitbutton.mjs +9 -11
  458. package/fesm2020/primeng-splitbutton.mjs.map +1 -1
  459. package/fesm2020/primeng-splitter.mjs +7 -9
  460. package/fesm2020/primeng-splitter.mjs.map +1 -1
  461. package/fesm2020/primeng-steps.mjs +8 -9
  462. package/fesm2020/primeng-steps.mjs.map +1 -1
  463. package/fesm2020/primeng-styleclass.mjs +5 -6
  464. package/fesm2020/primeng-styleclass.mjs.map +1 -1
  465. package/fesm2020/primeng-table.mjs +9 -10
  466. package/fesm2020/primeng-table.mjs.map +1 -1
  467. package/fesm2020/primeng-tabmenu.mjs +9 -11
  468. package/fesm2020/primeng-tabmenu.mjs.map +1 -1
  469. package/fesm2020/primeng-tabview.mjs +8 -10
  470. package/fesm2020/primeng-tabview.mjs.map +1 -1
  471. package/fesm2020/primeng-tag.mjs +6 -10
  472. package/fesm2020/primeng-tag.mjs.map +1 -1
  473. package/fesm2020/primeng-terminal.mjs +8 -9
  474. package/fesm2020/primeng-terminal.mjs.map +1 -1
  475. package/fesm2020/primeng-tieredmenu.mjs +5 -6
  476. package/fesm2020/primeng-tieredmenu.mjs.map +1 -1
  477. package/fesm2020/primeng-timeline.mjs +7 -9
  478. package/fesm2020/primeng-timeline.mjs.map +1 -1
  479. package/fesm2020/primeng-toast.mjs +5 -6
  480. package/fesm2020/primeng-toast.mjs.map +1 -1
  481. package/fesm2020/primeng-togglebutton.mjs +8 -9
  482. package/fesm2020/primeng-togglebutton.mjs.map +1 -1
  483. package/fesm2020/primeng-toolbar.mjs +7 -9
  484. package/fesm2020/primeng-toolbar.mjs.map +1 -1
  485. package/fesm2020/primeng-tooltip.mjs +6 -6
  486. package/fesm2020/primeng-tooltip.mjs.map +1 -1
  487. package/fesm2020/primeng-tree.mjs +5 -6
  488. package/fesm2020/primeng-tree.mjs.map +1 -1
  489. package/fesm2020/primeng-treeselect.mjs +5 -6
  490. package/fesm2020/primeng-treeselect.mjs.map +1 -1
  491. package/fesm2020/primeng-treetable.mjs +5 -6
  492. package/fesm2020/primeng-treetable.mjs.map +1 -1
  493. package/fesm2020/primeng-tristatecheckbox.mjs +7 -9
  494. package/fesm2020/primeng-tristatecheckbox.mjs.map +1 -1
  495. package/fesm2020/primeng-virtualscroller.mjs +8 -9
  496. package/fesm2020/primeng-virtualscroller.mjs.map +1 -1
  497. package/fieldset/fieldset.d.ts +2 -3
  498. package/fileupload/fileupload.d.ts +2 -3
  499. package/focustrap/focustrap.d.ts +1 -3
  500. package/galleria/galleria.d.ts +2 -3
  501. package/image/image.d.ts +2 -3
  502. package/inplace/inplace.d.ts +1 -3
  503. package/inputmask/inputmask.d.ts +1 -3
  504. package/inputnumber/inputnumber.d.ts +1 -3
  505. package/inputswitch/inputswitch.d.ts +1 -3
  506. package/inputtext/inputtext.d.ts +2 -4
  507. package/inputtextarea/inputtextarea.d.ts +2 -4
  508. package/keyfilter/keyfilter.d.ts +1 -3
  509. package/knob/knob.d.ts +1 -3
  510. package/listbox/listbox.d.ts +2 -3
  511. package/megamenu/megamenu.d.ts +2 -3
  512. package/menu/menu.d.ts +2 -3
  513. package/menubar/menubar.d.ts +2 -3
  514. package/messages/messages.d.ts +3 -4
  515. package/multiselect/multiselect.d.ts +2 -3
  516. package/orderlist/orderlist.d.ts +2 -3
  517. package/organizationchart/organizationchart.d.ts +2 -3
  518. package/overlaypanel/overlaypanel.d.ts +2 -3
  519. package/package.json +1 -1
  520. package/paginator/paginator.d.ts +2 -3
  521. package/panel/panel.d.ts +2 -3
  522. package/panelmenu/panelmenu.d.ts +2 -3
  523. package/password/password.d.ts +3 -5
  524. package/picklist/picklist.d.ts +2 -3
  525. package/progressbar/progressbar.d.ts +0 -3
  526. package/progressspinner/progressspinner.d.ts +0 -3
  527. package/radiobutton/radiobutton.d.ts +1 -3
  528. package/rating/rating.d.ts +1 -3
  529. package/ripple/ripple.d.ts +3 -4
  530. package/scroller/scroller.d.ts +1 -3
  531. package/scrollpanel/scrollpanel.d.ts +1 -3
  532. package/scrolltop/scrolltop.d.ts +2 -3
  533. package/selectbutton/selectbutton.d.ts +1 -3
  534. package/sidebar/sidebar.d.ts +2 -3
  535. package/skeleton/skeleton.d.ts +0 -3
  536. package/slidemenu/slidemenu.d.ts +2 -3
  537. package/slider/slider.d.ts +1 -3
  538. package/speeddial/speeddial.d.ts +2 -3
  539. package/splitbutton/splitbutton.d.ts +1 -3
  540. package/splitter/splitter.d.ts +1 -3
  541. package/steps/steps.d.ts +2 -3
  542. package/styleclass/styleclass.d.ts +1 -3
  543. package/table/table.d.ts +2 -3
  544. package/tabmenu/tabmenu.d.ts +2 -3
  545. package/tabview/tabview.d.ts +2 -3
  546. package/tag/tag.d.ts +0 -3
  547. package/terminal/terminal.d.ts +1 -3
  548. package/tieredmenu/tieredmenu.d.ts +2 -3
  549. package/timeline/timeline.d.ts +2 -3
  550. package/toast/toast.d.ts +2 -3
  551. package/togglebutton/togglebutton.d.ts +1 -3
  552. package/toolbar/toolbar.d.ts +2 -3
  553. package/tooltip/tooltip.d.ts +2 -3
  554. package/tree/tree.d.ts +3 -4
  555. package/treeselect/treeselect.d.ts +2 -3
  556. package/treetable/treetable.d.ts +2 -3
  557. package/tristatecheckbox/tristatecheckbox.d.ts +1 -3
  558. package/virtualscroller/virtualscroller.d.ts +2 -3
@@ -1,14 +1,13 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { Directive, EventEmitter, HostListener, Input, NgModule, Output } from '@angular/core';
3
+ import { LicenseManager } from 'primeng/api';
3
4
  import { DomHandler } from 'primeng/dom';
4
5
  import * as i0 from "@angular/core";
5
- import * as i1 from "primeng/api";
6
6
  export class Draggable {
7
- constructor(el, zone, renderer, licenseManager) {
7
+ constructor(el, zone, renderer) {
8
8
  this.el = el;
9
9
  this.zone = zone;
10
10
  this.renderer = renderer;
11
- this.licenseManager = licenseManager;
12
11
  this.onDragStart = new EventEmitter();
13
12
  this.onDragEnd = new EventEmitter();
14
13
  this.onDrag = new EventEmitter();
@@ -31,7 +30,7 @@ export class Draggable {
31
30
  this.el.nativeElement.draggable = true;
32
31
  this.bindMouseListeners();
33
32
  }
34
- this.licenseManager['check']();
33
+ LicenseManager.check();
35
34
  }
36
35
  bindDragListener() {
37
36
  if (!this.dragListener) {
@@ -103,7 +102,7 @@ export class Draggable {
103
102
  this.unbindMouseListeners();
104
103
  }
105
104
  }
106
- Draggable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: Draggable, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.LicenseManager }], target: i0.ɵɵFactoryTarget.Directive });
105
+ Draggable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: Draggable, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
107
106
  Draggable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: Draggable, selector: "[pDraggable]", inputs: { scope: ["pDraggable", "scope"], dragEffect: "dragEffect", dragHandle: "dragHandle", pDraggableDisabled: "pDraggableDisabled" }, outputs: { onDragStart: "onDragStart", onDragEnd: "onDragEnd", onDrag: "onDrag" }, host: { listeners: { "dragstart": "dragStart($event)", "dragend": "dragEnd($event)" }, classAttribute: "p-element" }, ngImport: i0 });
108
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: Draggable, decorators: [{
109
108
  type: Directive,
@@ -113,7 +112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
113
112
  class: 'p-element'
114
113
  }
115
114
  }]
116
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.LicenseManager }]; }, propDecorators: { scope: [{
115
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { scope: [{
117
116
  type: Input,
118
117
  args: ['pDraggable']
119
118
  }], dragEffect: [{
@@ -136,11 +135,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
136
135
  args: ['dragend', ['$event']]
137
136
  }] } });
138
137
  export class Droppable {
139
- constructor(el, zone, renderer, licenseManager) {
138
+ constructor(el, zone, renderer) {
140
139
  this.el = el;
141
140
  this.zone = zone;
142
141
  this.renderer = renderer;
143
- this.licenseManager = licenseManager;
144
142
  this.onDragEnter = new EventEmitter();
145
143
  this.onDragLeave = new EventEmitter();
146
144
  this.onDrop = new EventEmitter();
@@ -149,7 +147,7 @@ export class Droppable {
149
147
  if (!this.pDroppableDisabled) {
150
148
  this.bindDragOverListener();
151
149
  }
152
- this.licenseManager['check']();
150
+ LicenseManager.check();
153
151
  }
154
152
  bindDragOverListener() {
155
153
  if (!this.dragOverListener) {
@@ -207,7 +205,7 @@ export class Droppable {
207
205
  this.unbindDragOverListener();
208
206
  }
209
207
  }
210
- Droppable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: Droppable, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.LicenseManager }], target: i0.ɵɵFactoryTarget.Directive });
208
+ Droppable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: Droppable, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
211
209
  Droppable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: Droppable, selector: "[pDroppable]", inputs: { scope: ["pDroppable", "scope"], pDroppableDisabled: "pDroppableDisabled", dropEffect: "dropEffect" }, outputs: { onDragEnter: "onDragEnter", onDragLeave: "onDragLeave", onDrop: "onDrop" }, host: { listeners: { "drop": "drop($event)", "dragenter": "dragEnter($event)", "dragleave": "dragLeave($event)" }, classAttribute: "p-element" }, ngImport: i0 });
212
210
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: Droppable, decorators: [{
213
211
  type: Directive,
@@ -217,7 +215,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
217
215
  class: 'p-element'
218
216
  }
219
217
  }]
220
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.LicenseManager }]; }, propDecorators: { scope: [{
218
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { scope: [{
221
219
  type: Input,
222
220
  args: ['pDroppable']
223
221
  }], pDroppableDisabled: [{
@@ -253,4 +251,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
253
251
  declarations: [Draggable, Droppable]
254
252
  }]
255
253
  }] });
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2Ryb3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZHJhZ2Ryb3AvZHJhZ2Ryb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBcUIsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXhKLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQVF6QyxNQUFNLE9BQU8sU0FBUztJQXVCbEIsWUFBbUIsRUFBYyxFQUFTLElBQVksRUFBVSxRQUFtQixFQUFVLGNBQThCO1FBQXhHLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQWhCakgsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVwRCxjQUFTLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbEQsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBWXFFLENBQUM7SUFFL0gsSUFBYSxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUNELElBQUksa0JBQWtCLENBQUMsbUJBQTRCO1FBQy9DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztRQUUvQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUMxQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUMvQjthQUFNO1lBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN2QyxJQUFJLENBQUMsa0JBQWtCLEVB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QUM7Z0JBYXJDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBZ0N6QyxNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQTNPZCxTQUFTLEVBd0lULFNBQVMsYUErRlIsWUFBWSxhQXZPYixTQUFTLEVBd0lULFNBQVM7NEdBbUdULGNBQWMsWUFKYixZQUFZOzJGQUliLGNBQWM7a0JBTDFCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO29CQUMvQixZQUFZLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO2lCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgTmdNb2R1bGUsIE5nWm9uZSwgT25EZXN0cm95LCBPdXRwdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGljZW5zZU1hbmFnZXIgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBEb21IYW5kbGVyIH0gZnJvbSAncHJpbWVuZy9kb20nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1twRHJhZ2dhYmxlXScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3AtZWxlbWVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIERyYWdnYWJsZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCdwRHJhZ2dhYmxlJykgc2NvcGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGRyYWdFZmZlY3Q6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGRyYWdIYW5kbGU6IHN0cmluZztcblxuICAgIEBPdXRwdXQoKSBvbkRyYWdTdGFydDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25EcmFnRW5kOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBvbkRyYWc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgaGFuZGxlOiBhbnk7XG5cbiAgICBkcmFnTGlzdGVuZXI6IFZvaWRGdW5jdGlvbiB8IG51bGw7XG5cbiAgICBtb3VzZURvd25MaXN0ZW5lcjogVm9pZEZ1bmN0aW9uIHwgbnVsbDtcblxuICAgIG1vdXNlVXBMaXN0ZW5lcjogVm9pZEZ1bmN0aW9uIHwgbnVsbDtcblxuICAgIF9wRHJhZ2dhYmxlRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYsIHB1YmxpYyB6b25lOiBOZ1pvbmUsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBsaWNlbnNlTWFuYWdlcjogTGljZW5zZU1hbmFnZXIpIHt9XG5cbiAgICBASW5wdXQoKSBnZXQgcERyYWdnYWJsZURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcERyYWdnYWJsZURpc2FibGVkO1xuICAgIH1cbiAgICBzZXQgcERyYWdnYWJsZURpc2FibGVkKF9wRHJhZ2dhYmxlRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fcERyYWdnYWJsZURpc2FibGVkID0gX3BEcmFnZ2FibGVEaXNhYmxlZDtcblxuICAgICAgICBpZiAodGhpcy5fcERyYWdnYWJsZURpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnVuYmluZE1vdXNlTGlzdGVuZXJzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZHJhZ2dhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYmluZE1vdXNlTGlzdGVuZXJzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5wRHJhZ2dhYmxlRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5kcmFnZ2FibGUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5iaW5kTW91c2VMaXN0ZW5lcnMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGljZW5zZU1hbmFnZXJbJ2NoZWNrJ10oKTtcbiAgICB9XG5cbiAgICBiaW5kRHJhZ0xpc3RlbmVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuZHJhZ0xpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZHJhZycsIHRoaXMuZHJhZy5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5iaW5kRHJhZ0xpc3RlbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5kcmFnTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnTGlzdGVuZXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJpbmRNb3VzZUxpc3RlbmVycygpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1vdXNlRG93bkxpc3RlbmVyICYmICF0aGlzLm1vdXNlVXBMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vdXNlRG93bkxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJywgdGhpcy5tb3VzZWRvd24uYmluZCh0aGlzKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3VzZVVwTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdtb3VzZXVwJywgdGhpcy5tb3VzZXVwLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJpbmRNb3VzZUxpc3RlbmVycygpIHtcbiAgICAgICAgaWYgKHRoaXMubW91c2VEb3duTGlzdGVuZXIgJiYgdGhpcy5tb3VzZVVwTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3VzZURvd25MaXN0ZW5lcigpO1xuICAgICAgICAgICAgICAgIHRoaXMubW91c2VVcExpc3RlbmVyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3VzZURvd25MaXN0ZW5lciA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3VzZVVwTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkcmFnKGV2ZW50KSB7XG4gICAgICAgIHRoaXMub25EcmFnLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdzdGFydCcsIFsnJGV2ZW50J10pXG4gICAgZHJhZ1N0YXJ0KGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmFsbG93RHJhZygpICYmICF0aGlzLnBEcmFnZ2FibGVEaXNhYmxlZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZHJhZ0VmZmVjdCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkID0gdGhpcy5kcmFnRWZmZWN0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQnLCB0aGlzLnNjb3BlKTtcblxuICAgICAgICAgICAgdGhpcy5vbkRyYWdTdGFydC5lbWl0KGV2ZW50KTtcblxuICAgICAgICAgICAgdGhpcy5iaW5kRHJhZ0xpc3RlbmVyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJhZ2VuZCcsIFsnJGV2ZW50J10pXG4gICAgZHJhZ0VuZChldmVudCkge1xuICAgICAgICB0aGlzLm9uRHJhZ0VuZC5lbWl0KGV2ZW50KTtcbiAgICAgICAgdGhpcy51bmJpbmREcmFnTGlzdGVuZXIoKTtcbiAgICB9XG5cbiAgICBtb3VzZWRvd24oZXZlbnQpIHtcbiAgICAgICAgdGhpcy5oYW5kbGUgPSBldmVudC50YXJnZXQ7XG4gICAgfVxuXG4gICAgbW91c2V1cChldmVudCkge1xuICAgICAgICB0aGlzLmhhbmRsZSA9IG51bGw7XG4gICAgfVxuXG4gICAgYWxsb3dEcmFnKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5kcmFnSGFuZGxlICYmIHRoaXMuaGFuZGxlKSByZXR1cm4gRG9tSGFuZGxlci5tYXRjaGVzKHRoaXMuaGFuZGxlLCB0aGlzLmRyYWdIYW5kbGUpO1xuICAgICAgICBlbHNlIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuYmluZERyYWdMaXN0ZW5lcigpO1xuICAgICAgICB0aGlzLnVuYmluZE1vdXNlTGlzdGVuZXJzKCk7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1twRHJvcHBhYmxlXScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3AtZWxlbWVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIERyb3BwYWJsZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCdwRHJvcHBhYmxlJykgc2NvcGU6IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gICAgQElucHV0KCkgcERyb3BwYWJsZURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgZHJvcEVmZmVjdDogc3RyaW5nO1xuXG4gICAgQE91dHB1dCgpIG9uRHJhZ0VudGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBvbkRyYWdMZWF2ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25Ecm9wOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZiwgcHVibGljIHpvbmU6IE5nWm9uZSwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGxpY2Vuc2VNYW5hZ2VyOiBMaWNlbnNlTWFuYWdlcikge31cblxuICAgIGRyYWdPdmVyTGlzdGVuZXI6IFZvaWRGdW5jdGlvbiB8IG51bGw7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5wRHJvcHBhYmxlRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYmluZERyYWdPdmVyTGlzdGVuZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGljZW5zZU1hbmFnZXJbJ2NoZWNrJ10oKTtcbiAgICB9XG5cbiAgICBiaW5kRHJhZ092ZXJMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRyYWdPdmVyTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnT3Zlckxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZHJhZ292ZXInLCB0aGlzLmRyYWdPdmVyLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJpbmREcmFnT3Zlckxpc3RlbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5kcmFnT3Zlckxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYWdPdmVyKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXG4gICAgZHJvcChldmVudCkge1xuICAgICAgICBpZiAodGhpcy5hbGxvd0Ryb3AoZXZlbnQpKSB7XG4gICAgICAgICAgICBEb21IYW5kbGVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3AtZHJhZ2dhYmxlLWVudGVyJyk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5vbkRyb3AuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnZW50ZXInLCBbJyRldmVudCddKVxuICAgIGRyYWdFbnRlcihldmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmRyb3BFZmZlY3QpIHtcbiAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gdGhpcy5kcm9wRWZmZWN0O1xuICAgICAgICB9XG5cbiAgICAgICAgRG9tSGFuZGxlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdwLWRyYWdnYWJsZS1lbnRlcicpO1xuICAgICAgICB0aGlzLm9uRHJhZ0VudGVyLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgZHJhZ0xlYXZlKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgRG9tSGFuZGxlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdwLWRyYWdnYWJsZS1lbnRlcicpO1xuICAgICAgICB0aGlzLm9uRHJhZ0xlYXZlLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIGFsbG93RHJvcChldmVudCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgZHJhZ1Njb3BlID0gZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoJ3RleHQnKTtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNjb3BlID09ICdzdHJpbmcnICYmIGRyYWdTY29wZSA9PSB0aGlzLnNjb3BlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMuc2NvcGUpKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuc2NvcGUubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoZHJhZ1Njb3BlID09IHRoaXMuc2NvcGVbal0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51bmJpbmREcmFnT3Zlckxpc3RlbmVyKCk7XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtEcmFnZ2FibGUsIERyb3BwYWJsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbRHJhZ2dhYmxlLCBEcm9wcGFibGVdXG59KVxuZXhwb3J0IGNsYXNzIERyYWdEcm9wTW9kdWxlIHt9XG4iXX0=
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2Ryb3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZHJhZ2Ryb3AvZHJhZ2Ryb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBcUIsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3hKLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFRekMsTUFBTSxPQUFPLFNBQVM7SUF1QmxCLFlBQW1CLEVBQWMsRUFBUyxJQUFZLEVBQVUsUUFBbUI7UUFBaEUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFTLFNBQUksR0FBSixJQUFJLENBQVE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBaEJ6RSxnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXBELGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVsRCxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFZNkIsQ0FBQztJQUV2RixJQUFhLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxrQkFBa0IsQ0FBQyxtQkFBNEI7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO1FBRS9DLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzFCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQy9CO2FBQU07WUFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxrQkFBa0Is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QUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQTNPZCxTQUFTLEVBd0lULFNBQVMsYUErRlIsWUFBWSxhQXZPYixTQUFTLEVBd0lULFNBQVM7NEdBbUdULGNBQWMsWUFKYixZQUFZOzJGQUliLGNBQWM7a0JBTDFCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO29CQUMvQixZQUFZLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO2lCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgTmdNb2R1bGUsIE5nWm9uZSwgT25EZXN0cm95LCBPdXRwdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGljZW5zZU1hbmFnZXIgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBEb21IYW5kbGVyIH0gZnJvbSAncHJpbWVuZy9kb20nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1twRHJhZ2dhYmxlXScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3AtZWxlbWVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIERyYWdnYWJsZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCdwRHJhZ2dhYmxlJykgc2NvcGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGRyYWdFZmZlY3Q6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGRyYWdIYW5kbGU6IHN0cmluZztcblxuICAgIEBPdXRwdXQoKSBvbkRyYWdTdGFydDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25EcmFnRW5kOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBvbkRyYWc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgaGFuZGxlOiBhbnk7XG5cbiAgICBkcmFnTGlzdGVuZXI6IFZvaWRGdW5jdGlvbiB8IG51bGw7XG5cbiAgICBtb3VzZURvd25MaXN0ZW5lcjogVm9pZEZ1bmN0aW9uIHwgbnVsbDtcblxuICAgIG1vdXNlVXBMaXN0ZW5lcjogVm9pZEZ1bmN0aW9uIHwgbnVsbDtcblxuICAgIF9wRHJhZ2dhYmxlRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYsIHB1YmxpYyB6b25lOiBOZ1pvbmUsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICAgIEBJbnB1dCgpIGdldCBwRHJhZ2dhYmxlRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wRHJhZ2dhYmxlRGlzYWJsZWQ7XG4gICAgfVxuICAgIHNldCBwRHJhZ2dhYmxlRGlzYWJsZWQoX3BEcmFnZ2FibGVEaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9wRHJhZ2dhYmxlRGlzYWJsZWQgPSBfcERyYWdnYWJsZURpc2FibGVkO1xuXG4gICAgICAgIGlmICh0aGlzLl9wRHJhZ2dhYmxlRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMudW5iaW5kTW91c2VMaXN0ZW5lcnMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5kcmFnZ2FibGUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5iaW5kTW91c2VMaXN0ZW5lcnMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnBEcmFnZ2FibGVEaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmRyYWdnYWJsZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmJpbmRNb3VzZUxpc3RlbmVycygpO1xuICAgICAgICB9XG5cbiAgICAgICAgTGljZW5zZU1hbmFnZXIuY2hlY2soKTtcbiAgICB9XG5cbiAgICBiaW5kRHJhZ0xpc3RlbmVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuZHJhZ0xpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZHJhZycsIHRoaXMuZHJhZy5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5iaW5kRHJhZ0xpc3RlbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5kcmFnTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnTGlzdGVuZXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJpbmRNb3VzZUxpc3RlbmVycygpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1vdXNlRG93bkxpc3RlbmVyICYmICF0aGlzLm1vdXNlVXBMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vdXNlRG93bkxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJywgdGhpcy5tb3VzZWRvd24uYmluZCh0aGlzKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3VzZVVwTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdtb3VzZXVwJywgdGhpcy5tb3VzZXVwLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJpbmRNb3VzZUxpc3RlbmVycygpIHtcbiAgICAgICAgaWYgKHRoaXMubW91c2VEb3duTGlzdGVuZXIgJiYgdGhpcy5tb3VzZVVwTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3VzZURvd25MaXN0ZW5lcigpO1xuICAgICAgICAgICAgICAgIHRoaXMubW91c2VVcExpc3RlbmVyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3VzZURvd25MaXN0ZW5lciA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3VzZVVwTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkcmFnKGV2ZW50KSB7XG4gICAgICAgIHRoaXMub25EcmFnLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdzdGFydCcsIFsnJGV2ZW50J10pXG4gICAgZHJhZ1N0YXJ0KGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmFsbG93RHJhZygpICYmICF0aGlzLnBEcmFnZ2FibGVEaXNhYmxlZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZHJhZ0VmZmVjdCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkID0gdGhpcy5kcmFnRWZmZWN0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQnLCB0aGlzLnNjb3BlKTtcblxuICAgICAgICAgICAgdGhpcy5vbkRyYWdTdGFydC5lbWl0KGV2ZW50KTtcblxuICAgICAgICAgICAgdGhpcy5iaW5kRHJhZ0xpc3RlbmVyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJhZ2VuZCcsIFsnJGV2ZW50J10pXG4gICAgZHJhZ0VuZChldmVudCkge1xuICAgICAgICB0aGlzLm9uRHJhZ0VuZC5lbWl0KGV2ZW50KTtcbiAgICAgICAgdGhpcy51bmJpbmREcmFnTGlzdGVuZXIoKTtcbiAgICB9XG5cbiAgICBtb3VzZWRvd24oZXZlbnQpIHtcbiAgICAgICAgdGhpcy5oYW5kbGUgPSBldmVudC50YXJnZXQ7XG4gICAgfVxuXG4gICAgbW91c2V1cChldmVudCkge1xuICAgICAgICB0aGlzLmhhbmRsZSA9IG51bGw7XG4gICAgfVxuXG4gICAgYWxsb3dEcmFnKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5kcmFnSGFuZGxlICYmIHRoaXMuaGFuZGxlKSByZXR1cm4gRG9tSGFuZGxlci5tYXRjaGVzKHRoaXMuaGFuZGxlLCB0aGlzLmRyYWdIYW5kbGUpO1xuICAgICAgICBlbHNlIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuYmluZERyYWdMaXN0ZW5lcigpO1xuICAgICAgICB0aGlzLnVuYmluZE1vdXNlTGlzdGVuZXJzKCk7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1twRHJvcHBhYmxlXScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3AtZWxlbWVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIERyb3BwYWJsZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCdwRHJvcHBhYmxlJykgc2NvcGU6IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gICAgQElucHV0KCkgcERyb3BwYWJsZURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgZHJvcEVmZmVjdDogc3RyaW5nO1xuXG4gICAgQE91dHB1dCgpIG9uRHJhZ0VudGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBvbkRyYWdMZWF2ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25Ecm9wOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZiwgcHVibGljIHpvbmU6IE5nWm9uZSwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gICAgZHJhZ092ZXJMaXN0ZW5lcjogVm9pZEZ1bmN0aW9uIHwgbnVsbDtcblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnBEcm9wcGFibGVEaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5iaW5kRHJhZ092ZXJMaXN0ZW5lcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgTGljZW5zZU1hbmFnZXIuY2hlY2soKTtcbiAgICB9XG5cbiAgICBiaW5kRHJhZ092ZXJMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRyYWdPdmVyTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnT3Zlckxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZHJhZ292ZXInLCB0aGlzLmRyYWdPdmVyLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJpbmREcmFnT3Zlckxpc3RlbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5kcmFnT3Zlckxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYWdPdmVyKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXG4gICAgZHJvcChldmVudCkge1xuICAgICAgICBpZiAodGhpcy5hbGxvd0Ryb3AoZXZlbnQpKSB7XG4gICAgICAgICAgICBEb21IYW5kbGVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3AtZHJhZ2dhYmxlLWVudGVyJyk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5vbkRyb3AuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnZW50ZXInLCBbJyRldmVudCddKVxuICAgIGRyYWdFbnRlcihldmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmRyb3BFZmZlY3QpIHtcbiAgICAgICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gdGhpcy5kcm9wRWZmZWN0O1xuICAgICAgICB9XG5cbiAgICAgICAgRG9tSGFuZGxlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdwLWRyYWdnYWJsZS1lbnRlcicpO1xuICAgICAgICB0aGlzLm9uRHJhZ0VudGVyLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgZHJhZ0xlYXZlKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgRG9tSGFuZGxlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdwLWRyYWdnYWJsZS1lbnRlcicpO1xuICAgICAgICB0aGlzLm9uRHJhZ0xlYXZlLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIGFsbG93RHJvcChldmVudCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgZHJhZ1Njb3BlID0gZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoJ3RleHQnKTtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNjb3BlID09ICdzdHJpbmcnICYmIGRyYWdTY29wZSA9PSB0aGlzLnNjb3BlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMuc2NvcGUpKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuc2NvcGUubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoZHJhZ1Njb3BlID09IHRoaXMuc2NvcGVbal0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51bmJpbmREcmFnT3Zlckxpc3RlbmVyKCk7XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtEcmFnZ2FibGUsIERyb3BwYWJsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbRHJhZ2dhYmxlLCBEcm9wcGFibGVdXG59KVxuZXhwb3J0IGNsYXNzIERyYWdEcm9wTW9kdWxlIHt9XG4iXX0=