primeng 22.1.0 → 22.1.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 (460) hide show
  1. package/fesm2022/primeng-accordion.mjs +69 -53
  2. package/fesm2022/primeng-accordion.mjs.map +1 -1
  3. package/fesm2022/primeng-animateonscroll.mjs +19 -10
  4. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  5. package/fesm2022/primeng-api.mjs +60 -59
  6. package/fesm2022/primeng-api.mjs.map +1 -1
  7. package/fesm2022/primeng-autocomplete.mjs +72 -33
  8. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  9. package/fesm2022/primeng-autofocus.mjs +7 -7
  10. package/fesm2022/primeng-autofocus.mjs.map +1 -1
  11. package/fesm2022/primeng-avatar.mjs +13 -13
  12. package/fesm2022/primeng-avatar.mjs.map +1 -1
  13. package/fesm2022/primeng-avatargroup.mjs +13 -13
  14. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  15. package/fesm2022/primeng-badge.mjs +13 -13
  16. package/fesm2022/primeng-badge.mjs.map +1 -1
  17. package/fesm2022/primeng-base.mjs +12 -30
  18. package/fesm2022/primeng-base.mjs.map +1 -1
  19. package/fesm2022/primeng-basecomponent.mjs +12 -23
  20. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  21. package/fesm2022/primeng-baseeditableholder.mjs +8 -3
  22. package/fesm2022/primeng-baseeditableholder.mjs.map +1 -1
  23. package/fesm2022/primeng-baseinput.mjs +3 -3
  24. package/fesm2022/primeng-baseinput.mjs.map +1 -1
  25. package/fesm2022/primeng-basemodelholder.mjs +3 -3
  26. package/fesm2022/primeng-basemodelholder.mjs.map +1 -1
  27. package/fesm2022/primeng-bind.mjs +9 -8
  28. package/fesm2022/primeng-bind.mjs.map +1 -1
  29. package/fesm2022/primeng-blockui.mjs +10 -13
  30. package/fesm2022/primeng-blockui.mjs.map +1 -1
  31. package/fesm2022/primeng-breadcrumb.mjs +10 -10
  32. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  33. package/fesm2022/primeng-button.mjs +45 -38
  34. package/fesm2022/primeng-button.mjs.map +1 -1
  35. package/fesm2022/primeng-buttongroup.mjs +10 -10
  36. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  37. package/fesm2022/primeng-card.mjs +10 -10
  38. package/fesm2022/primeng-card.mjs.map +1 -1
  39. package/fesm2022/primeng-carousel.mjs +44 -45
  40. package/fesm2022/primeng-carousel.mjs.map +1 -1
  41. package/fesm2022/primeng-cascadeselect.mjs +111 -76
  42. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  43. package/fesm2022/primeng-chart.mjs +13 -13
  44. package/fesm2022/primeng-chart.mjs.map +1 -1
  45. package/fesm2022/primeng-checkbox.mjs +17 -19
  46. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  47. package/fesm2022/primeng-chip.mjs +13 -13
  48. package/fesm2022/primeng-chip.mjs.map +1 -1
  49. package/fesm2022/primeng-classnames.mjs +7 -7
  50. package/fesm2022/primeng-classnames.mjs.map +1 -1
  51. package/fesm2022/primeng-colorpicker.mjs +20 -20
  52. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  53. package/fesm2022/primeng-commandmenu.mjs +14 -16
  54. package/fesm2022/primeng-commandmenu.mjs.map +1 -1
  55. package/fesm2022/primeng-compare.mjs +20 -19
  56. package/fesm2022/primeng-compare.mjs.map +1 -1
  57. package/fesm2022/primeng-config.mjs +10 -10
  58. package/fesm2022/primeng-config.mjs.map +1 -1
  59. package/fesm2022/primeng-confirmdialog.mjs +23 -27
  60. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  61. package/fesm2022/primeng-confirmpopup.mjs +34 -47
  62. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  63. package/fesm2022/primeng-contextmenu.mjs +70 -39
  64. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  65. package/fesm2022/primeng-dataview.mjs +15 -14
  66. package/fesm2022/primeng-dataview.mjs.map +1 -1
  67. package/fesm2022/primeng-datepicker.mjs +100 -98
  68. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  69. package/fesm2022/primeng-dialog.mjs +47 -40
  70. package/fesm2022/primeng-dialog.mjs.map +1 -1
  71. package/fesm2022/primeng-divider.mjs +15 -17
  72. package/fesm2022/primeng-divider.mjs.map +1 -1
  73. package/fesm2022/primeng-dock.mjs +20 -14
  74. package/fesm2022/primeng-dock.mjs.map +1 -1
  75. package/fesm2022/primeng-dom.mjs +14 -8
  76. package/fesm2022/primeng-dom.mjs.map +1 -1
  77. package/fesm2022/primeng-dragdrop.mjs +11 -10
  78. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  79. package/fesm2022/primeng-drawer.mjs +26 -24
  80. package/fesm2022/primeng-drawer.mjs.map +1 -1
  81. package/fesm2022/primeng-dynamicdialog.mjs +82 -93
  82. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  83. package/fesm2022/primeng-editor.mjs +16 -15
  84. package/fesm2022/primeng-editor.mjs.map +1 -1
  85. package/fesm2022/primeng-fieldset.mjs +14 -17
  86. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  87. package/fesm2022/primeng-fileupload.mjs +26 -19
  88. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  89. package/fesm2022/primeng-floatlabel.mjs +13 -13
  90. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  91. package/fesm2022/primeng-fluid.mjs +11 -11
  92. package/fesm2022/primeng-fluid.mjs.map +1 -1
  93. package/fesm2022/primeng-focustrap.mjs +19 -19
  94. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  95. package/fesm2022/primeng-galleria.mjs +55 -51
  96. package/fesm2022/primeng-galleria.mjs.map +1 -1
  97. package/fesm2022/primeng-gallery.mjs +103 -105
  98. package/fesm2022/primeng-gallery.mjs.map +1 -1
  99. package/fesm2022/primeng-iconfield.mjs +13 -13
  100. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  101. package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
  102. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
  103. package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
  104. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
  105. package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
  106. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
  107. package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
  108. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
  109. package/fesm2022/primeng-icons-angledown.mjs +3 -3
  110. package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
  111. package/fesm2022/primeng-icons-angleleft.mjs +3 -3
  112. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
  113. package/fesm2022/primeng-icons-angleright.mjs +3 -3
  114. package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
  115. package/fesm2022/primeng-icons-angleup.mjs +3 -3
  116. package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
  117. package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
  118. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
  119. package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
  120. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
  121. package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
  122. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
  123. package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
  124. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
  125. package/fesm2022/primeng-icons-arrowright.mjs +3 -3
  126. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
  127. package/fesm2022/primeng-icons-arrowup.mjs +3 -3
  128. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
  129. package/fesm2022/primeng-icons-ban.mjs +3 -3
  130. package/fesm2022/primeng-icons-ban.mjs.map +1 -1
  131. package/fesm2022/primeng-icons-bars.mjs +3 -3
  132. package/fesm2022/primeng-icons-bars.mjs.map +1 -1
  133. package/fesm2022/primeng-icons-baseicon.mjs +6 -6
  134. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
  135. package/fesm2022/primeng-icons-blank.mjs +3 -3
  136. package/fesm2022/primeng-icons-blank.mjs.map +1 -1
  137. package/fesm2022/primeng-icons-calendar.mjs +3 -3
  138. package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
  139. package/fesm2022/primeng-icons-caretleft.mjs +3 -3
  140. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
  141. package/fesm2022/primeng-icons-caretright.mjs +3 -3
  142. package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
  143. package/fesm2022/primeng-icons-check.mjs +3 -3
  144. package/fesm2022/primeng-icons-check.mjs.map +1 -1
  145. package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
  146. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
  147. package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
  148. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
  149. package/fesm2022/primeng-icons-chevronright.mjs +3 -3
  150. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
  151. package/fesm2022/primeng-icons-chevronup.mjs +3 -3
  152. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
  153. package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
  154. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
  155. package/fesm2022/primeng-icons-eye.mjs +3 -3
  156. package/fesm2022/primeng-icons-eye.mjs.map +1 -1
  157. package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
  158. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
  159. package/fesm2022/primeng-icons-filter.mjs +3 -3
  160. package/fesm2022/primeng-icons-filter.mjs.map +1 -1
  161. package/fesm2022/primeng-icons-filterfill.mjs +3 -3
  162. package/fesm2022/primeng-icons-filterfill.mjs.map +1 -1
  163. package/fesm2022/primeng-icons-filterslash.mjs +3 -3
  164. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
  165. package/fesm2022/primeng-icons-home.mjs +3 -3
  166. package/fesm2022/primeng-icons-home.mjs.map +1 -1
  167. package/fesm2022/primeng-icons-infocircle.mjs +3 -3
  168. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
  169. package/fesm2022/primeng-icons-minus.mjs +3 -3
  170. package/fesm2022/primeng-icons-minus.mjs.map +1 -1
  171. package/fesm2022/primeng-icons-pencil.mjs +3 -3
  172. package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
  173. package/fesm2022/primeng-icons-plus.mjs +3 -3
  174. package/fesm2022/primeng-icons-plus.mjs.map +1 -1
  175. package/fesm2022/primeng-icons-refresh.mjs +3 -3
  176. package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
  177. package/fesm2022/primeng-icons-search.mjs +3 -3
  178. package/fesm2022/primeng-icons-search.mjs.map +1 -1
  179. package/fesm2022/primeng-icons-searchminus.mjs +3 -3
  180. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
  181. package/fesm2022/primeng-icons-searchplus.mjs +3 -3
  182. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
  183. package/fesm2022/primeng-icons-sortalt.mjs +3 -3
  184. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
  185. package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
  186. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
  187. package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
  188. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
  189. package/fesm2022/primeng-icons-spinner.mjs +3 -3
  190. package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
  191. package/fesm2022/primeng-icons-star.mjs +3 -3
  192. package/fesm2022/primeng-icons-star.mjs.map +1 -1
  193. package/fesm2022/primeng-icons-starfill.mjs +3 -3
  194. package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
  195. package/fesm2022/primeng-icons-thlarge.mjs +3 -3
  196. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
  197. package/fesm2022/primeng-icons-times.mjs +3 -3
  198. package/fesm2022/primeng-icons-times.mjs.map +1 -1
  199. package/fesm2022/primeng-icons-timescircle.mjs +3 -3
  200. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
  201. package/fesm2022/primeng-icons-trash.mjs +3 -3
  202. package/fesm2022/primeng-icons-trash.mjs.map +1 -1
  203. package/fesm2022/primeng-icons-undo.mjs +3 -3
  204. package/fesm2022/primeng-icons-undo.mjs.map +1 -1
  205. package/fesm2022/primeng-icons-upload.mjs +3 -3
  206. package/fesm2022/primeng-icons-upload.mjs.map +1 -1
  207. package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
  208. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
  209. package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
  210. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
  211. package/fesm2022/primeng-iftalabel.mjs +10 -10
  212. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  213. package/fesm2022/primeng-image.mjs +21 -23
  214. package/fesm2022/primeng-image.mjs.map +1 -1
  215. package/fesm2022/primeng-imagecompare.mjs +10 -10
  216. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  217. package/fesm2022/primeng-inplace.mjs +16 -16
  218. package/fesm2022/primeng-inplace.mjs.map +1 -1
  219. package/fesm2022/primeng-inputcolor.mjs +55 -46
  220. package/fesm2022/primeng-inputcolor.mjs.map +1 -1
  221. package/fesm2022/primeng-inputgroup.mjs +10 -10
  222. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  223. package/fesm2022/primeng-inputgroupaddon.mjs +10 -10
  224. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  225. package/fesm2022/primeng-inputicon.mjs +10 -10
  226. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  227. package/fesm2022/primeng-inputmask.mjs +27 -19
  228. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  229. package/fesm2022/primeng-inputnumber.mjs +21 -21
  230. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  231. package/fesm2022/primeng-inputotp.mjs +15 -14
  232. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  233. package/fesm2022/primeng-inputpassword.mjs +13 -15
  234. package/fesm2022/primeng-inputpassword.mjs.map +1 -1
  235. package/fesm2022/primeng-inputtags.mjs +10 -10
  236. package/fesm2022/primeng-inputtags.mjs.map +1 -1
  237. package/fesm2022/primeng-inputtext.mjs +18 -13
  238. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  239. package/fesm2022/primeng-keyfilter.mjs +13 -12
  240. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  241. package/fesm2022/primeng-knob.mjs +15 -13
  242. package/fesm2022/primeng-knob.mjs.map +1 -1
  243. package/fesm2022/primeng-label.mjs +10 -10
  244. package/fesm2022/primeng-label.mjs.map +1 -1
  245. package/fesm2022/primeng-license.mjs.map +1 -1
  246. package/fesm2022/primeng-listbox.mjs +67 -52
  247. package/fesm2022/primeng-listbox.mjs.map +1 -1
  248. package/fesm2022/primeng-megamenu.mjs +51 -31
  249. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  250. package/fesm2022/primeng-menu.mjs +48 -45
  251. package/fesm2022/primeng-menu.mjs.map +1 -1
  252. package/fesm2022/primeng-menubar.mjs +60 -38
  253. package/fesm2022/primeng-menubar.mjs.map +1 -1
  254. package/fesm2022/primeng-message.mjs +25 -29
  255. package/fesm2022/primeng-message.mjs.map +1 -1
  256. package/fesm2022/primeng-metergroup.mjs +16 -16
  257. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  258. package/fesm2022/primeng-motion.mjs +18 -18
  259. package/fesm2022/primeng-motion.mjs.map +1 -1
  260. package/fesm2022/primeng-multiselect.mjs +184 -150
  261. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  262. package/fesm2022/primeng-orderlist.mjs +14 -28
  263. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  264. package/fesm2022/primeng-organizationchart.mjs +16 -18
  265. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  266. package/fesm2022/primeng-overlay.mjs +48 -34
  267. package/fesm2022/primeng-overlay.mjs.map +1 -1
  268. package/fesm2022/primeng-overlaybadge.mjs +10 -10
  269. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  270. package/fesm2022/primeng-paginator.mjs +16 -16
  271. package/fesm2022/primeng-paginator.mjs.map +1 -1
  272. package/fesm2022/primeng-panel.mjs +20 -24
  273. package/fesm2022/primeng-panel.mjs.map +1 -1
  274. package/fesm2022/primeng-panelmenu.mjs +62 -30
  275. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  276. package/fesm2022/primeng-passthrough.mjs +5 -7
  277. package/fesm2022/primeng-passthrough.mjs.map +1 -1
  278. package/fesm2022/primeng-password.mjs +39 -31
  279. package/fesm2022/primeng-password.mjs.map +1 -1
  280. package/fesm2022/primeng-picklist.mjs +23 -20
  281. package/fesm2022/primeng-picklist.mjs.map +1 -1
  282. package/fesm2022/primeng-popover.mjs +23 -21
  283. package/fesm2022/primeng-popover.mjs.map +1 -1
  284. package/fesm2022/primeng-progressbar.mjs +13 -13
  285. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  286. package/fesm2022/primeng-progressspinner.mjs +10 -10
  287. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  288. package/fesm2022/primeng-radiobutton.mjs +17 -19
  289. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  290. package/fesm2022/primeng-rating.mjs +13 -13
  291. package/fesm2022/primeng-rating.mjs.map +1 -1
  292. package/fesm2022/primeng-ripple.mjs +31 -17
  293. package/fesm2022/primeng-ripple.mjs.map +1 -1
  294. package/fesm2022/primeng-scrollarea.mjs +25 -25
  295. package/fesm2022/primeng-scrollarea.mjs.map +1 -1
  296. package/fesm2022/primeng-scroller.mjs +65 -29
  297. package/fesm2022/primeng-scroller.mjs.map +1 -1
  298. package/fesm2022/primeng-scrollpanel.mjs +52 -26
  299. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  300. package/fesm2022/primeng-scrolltop.mjs +18 -19
  301. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  302. package/fesm2022/primeng-select.mjs +102 -51
  303. package/fesm2022/primeng-select.mjs.map +1 -1
  304. package/fesm2022/primeng-selectbutton.mjs +10 -10
  305. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  306. package/fesm2022/primeng-sidebar.mjs +143 -140
  307. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  308. package/fesm2022/primeng-skeleton.mjs +10 -10
  309. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  310. package/fesm2022/primeng-slider.mjs +22 -22
  311. package/fesm2022/primeng-slider.mjs.map +1 -1
  312. package/fesm2022/primeng-speeddial.mjs +30 -17
  313. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  314. package/fesm2022/primeng-splitbutton.mjs +18 -19
  315. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  316. package/fesm2022/primeng-splitter.mjs +20 -23
  317. package/fesm2022/primeng-splitter.mjs.map +1 -1
  318. package/fesm2022/primeng-stepper.mjs +64 -68
  319. package/fesm2022/primeng-stepper.mjs.map +1 -1
  320. package/fesm2022/primeng-steps.mjs +150 -127
  321. package/fesm2022/primeng-steps.mjs.map +1 -1
  322. package/fesm2022/primeng-styleclass.mjs +13 -9
  323. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  324. package/fesm2022/primeng-table.mjs +213 -190
  325. package/fesm2022/primeng-table.mjs.map +1 -1
  326. package/fesm2022/primeng-tabs.mjs +66 -50
  327. package/fesm2022/primeng-tabs.mjs.map +1 -1
  328. package/fesm2022/primeng-tag.mjs +10 -10
  329. package/fesm2022/primeng-tag.mjs.map +1 -1
  330. package/fesm2022/primeng-terminal.mjs +13 -13
  331. package/fesm2022/primeng-terminal.mjs.map +1 -1
  332. package/fesm2022/primeng-textarea.mjs +16 -12
  333. package/fesm2022/primeng-textarea.mjs.map +1 -1
  334. package/fesm2022/primeng-tieredmenu.mjs +65 -34
  335. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  336. package/fesm2022/primeng-timeline.mjs +13 -13
  337. package/fesm2022/primeng-timeline.mjs.map +1 -1
  338. package/fesm2022/primeng-toast.mjs +115 -121
  339. package/fesm2022/primeng-toast.mjs.map +1 -1
  340. package/fesm2022/primeng-togglebutton.mjs +10 -10
  341. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  342. package/fesm2022/primeng-toggleswitch.mjs +10 -10
  343. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  344. package/fesm2022/primeng-toolbar.mjs +16 -16
  345. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  346. package/fesm2022/primeng-tooltip.mjs +27 -14
  347. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  348. package/fesm2022/primeng-tree.mjs +55 -66
  349. package/fesm2022/primeng-tree.mjs.map +1 -1
  350. package/fesm2022/primeng-treeselect.mjs +28 -16
  351. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  352. package/fesm2022/primeng-treetable.mjs +139 -127
  353. package/fesm2022/primeng-treetable.mjs.map +1 -1
  354. package/fesm2022/primeng-usestyle.mjs +10 -6
  355. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  356. package/fesm2022/primeng-utils.mjs +13 -22
  357. package/fesm2022/primeng-utils.mjs.map +1 -1
  358. package/package.json +2 -2
  359. package/types/primeng-accordion.d.ts +27 -29
  360. package/types/primeng-api.d.ts +7 -1
  361. package/types/primeng-autocomplete.d.ts +64 -66
  362. package/types/primeng-avatar.d.ts +19 -21
  363. package/types/primeng-avatargroup.d.ts +9 -11
  364. package/types/primeng-badge.d.ts +15 -17
  365. package/types/primeng-basecomponent.d.ts +1 -1
  366. package/types/primeng-button.d.ts +34 -36
  367. package/types/primeng-buttongroup.d.ts +9 -11
  368. package/types/primeng-card.d.ts +16 -18
  369. package/types/primeng-carousel.d.ts +67 -69
  370. package/types/primeng-cascadeselect.d.ts +69 -71
  371. package/types/primeng-chart.d.ts +15 -17
  372. package/types/primeng-checkbox.d.ts +22 -24
  373. package/types/primeng-chip.d.ts +25 -27
  374. package/types/primeng-colorpicker.d.ts +31 -33
  375. package/types/primeng-commandmenu.d.ts +1 -1
  376. package/types/primeng-compare.d.ts +17 -19
  377. package/types/primeng-config.d.ts +1 -1
  378. package/types/primeng-confirmdialog.d.ts +14 -16
  379. package/types/primeng-confirmpopup.d.ts +23 -29
  380. package/types/primeng-contextmenu.d.ts +36 -38
  381. package/types/primeng-dataview.d.ts +25 -27
  382. package/types/primeng-datepicker.d.ts +107 -109
  383. package/types/primeng-dialog.d.ts +39 -41
  384. package/types/primeng-divider.d.ts +18 -20
  385. package/types/primeng-dock.d.ts +26 -28
  386. package/types/primeng-drawer.d.ts +30 -32
  387. package/types/primeng-dynamicdialog.d.ts +52 -56
  388. package/types/primeng-editor.d.ts +17 -19
  389. package/types/primeng-fieldset.d.ts +20 -22
  390. package/types/primeng-fileupload.d.ts +27 -29
  391. package/types/primeng-floatlabel.d.ts +15 -17
  392. package/types/primeng-fluid.d.ts +9 -11
  393. package/types/primeng-galleria.d.ts +69 -71
  394. package/types/primeng-gallery.d.ts +6 -6
  395. package/types/primeng-iconfield.d.ts +10 -12
  396. package/types/primeng-icons-baseicon.d.ts +6 -8
  397. package/types/primeng-iftalabel.d.ts +9 -11
  398. package/types/primeng-image.d.ts +31 -33
  399. package/types/primeng-imagecompare.d.ts +10 -12
  400. package/types/primeng-inplace.d.ts +15 -17
  401. package/types/primeng-inputcolor.d.ts +27 -29
  402. package/types/primeng-inputgroup.d.ts +13 -15
  403. package/types/primeng-inputmask.d.ts +15 -17
  404. package/types/primeng-inputnumber.d.ts +35 -37
  405. package/types/primeng-inputotp.d.ts +11 -13
  406. package/types/primeng-inputpassword.d.ts +9 -12
  407. package/types/primeng-inputtags.d.ts +13 -15
  408. package/types/primeng-inputtext.d.ts +14 -16
  409. package/types/primeng-knob.d.ts +17 -19
  410. package/types/primeng-label.d.ts +9 -11
  411. package/types/primeng-listbox.d.ts +4 -4
  412. package/types/primeng-megamenu.d.ts +52 -54
  413. package/types/primeng-menu.d.ts +40 -42
  414. package/types/primeng-menubar.d.ts +1 -1
  415. package/types/primeng-message.d.ts +20 -22
  416. package/types/primeng-metergroup.d.ts +27 -29
  417. package/types/primeng-motion.d.ts +1 -3
  418. package/types/primeng-multiselect.d.ts +104 -106
  419. package/types/primeng-orderlist.d.ts +16 -18
  420. package/types/primeng-organizationchart.d.ts +21 -23
  421. package/types/primeng-overlay.d.ts +1 -1
  422. package/types/primeng-paginator.d.ts +48 -52
  423. package/types/primeng-panelmenu.d.ts +45 -47
  424. package/types/primeng-password.d.ts +47 -49
  425. package/types/primeng-picklist.d.ts +16 -18
  426. package/types/primeng-popover.d.ts +3 -3
  427. package/types/primeng-progressbar.d.ts +17 -19
  428. package/types/primeng-progressspinner.d.ts +13 -15
  429. package/types/primeng-radiobutton.d.ts +22 -24
  430. package/types/primeng-rating.d.ts +26 -28
  431. package/types/primeng-ripple.d.ts +9 -11
  432. package/types/primeng-scrollarea.d.ts +34 -36
  433. package/types/primeng-scroller.d.ts +28 -30
  434. package/types/primeng-scrollpanel.d.ts +15 -17
  435. package/types/primeng-scrolltop.d.ts +17 -19
  436. package/types/primeng-select.d.ts +56 -58
  437. package/types/primeng-selectbutton.d.ts +14 -16
  438. package/types/primeng-sidebar.d.ts +33 -35
  439. package/types/primeng-skeleton.d.ts +14 -16
  440. package/types/primeng-slider.d.ts +34 -36
  441. package/types/primeng-speeddial.d.ts +39 -41
  442. package/types/primeng-splitbutton.d.ts +20 -22
  443. package/types/primeng-splitter.d.ts +15 -17
  444. package/types/primeng-stepper.d.ts +19 -31
  445. package/types/primeng-steps.d.ts +25 -27
  446. package/types/primeng-table.d.ts +17 -18
  447. package/types/primeng-tabs.d.ts +13 -23
  448. package/types/primeng-tag.d.ts +21 -23
  449. package/types/primeng-terminal.d.ts +17 -19
  450. package/types/primeng-textarea.d.ts +14 -16
  451. package/types/primeng-tieredmenu.d.ts +43 -45
  452. package/types/primeng-timeline.d.ts +18 -20
  453. package/types/primeng-toast.d.ts +48 -50
  454. package/types/primeng-togglebutton.d.ts +23 -25
  455. package/types/primeng-toggleswitch.d.ts +22 -24
  456. package/types/primeng-toolbar.d.ts +14 -16
  457. package/types/primeng-tooltip.d.ts +23 -25
  458. package/types/primeng-tree.d.ts +52 -54
  459. package/types/primeng-treeselect.d.ts +52 -48
  460. package/types/primeng-treetable.d.ts +109 -111
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-scroller.mjs","sources":["../../src/scroller/style/scrollerstyle.ts","../../src/scroller/scroller.ts","../../src/scroller/primeng-scroller.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst css = /*css*/ `\n.p-virtualscroller {\n position: relative;\n overflow: auto;\n contain: strict;\n transform: translateZ(0);\n will-change: scroll-position;\n outline: 0 none;\n}\n\n.p-virtualscroller-content {\n position: absolute;\n top: 0;\n left: 0;\n min-height: 100%;\n min-width: 100%;\n will-change: transform;\n}\n\n.p-virtualscroller-spacer {\n position: absolute;\n top: 0;\n left: 0;\n height: 1px;\n width: 1px;\n transform-origin: 0 0;\n pointer-events: none;\n}\n\n.p-virtualscroller-loader {\n position: sticky;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: dt('virtualscroller.loader.mask.background');\n color: dt('virtualscroller.loader.mask.color');\n}\n\n.p-virtualscroller-loader-mask {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.p-virtualscroller-loading-icon {\n font-size: dt('virtualscroller.loader.icon.size');\n width: dt('virtualscroller.loader.icon.size');\n height: dt('virtualscroller.loader.icon.size');\n}\n\n.p-virtualscroller-horizontal > .p-virtualscroller-content {\n display: flex;\n}\n\n.p-virtualscroller-inline .p-virtualscroller-content {\n position: static;\n}\n`;\n\nconst classes = {\n root: ({ instance }) => [\n 'p-virtualscroller',\n {\n 'p-virtualscroller-inline': instance.inline(),\n 'p-virtualscroller-both p-both-scroll': instance.both(),\n 'p-virtualscroller-horizontal p-horizontal-scroll': instance.horizontal()\n }\n ],\n content: 'p-virtualscroller-content',\n spacer: 'p-virtualscroller-spacer',\n loader: ({ instance }) => [\n 'p-virtualscroller-loader',\n {\n 'p-virtualscroller-loader-mask': !instance.loaderTemplate()\n }\n ],\n loadingIcon: 'p-virtualscroller-loading-icon'\n};\n\n@Injectable()\nexport class ScrollerStyle extends BaseStyle {\n name = 'virtualscroller';\n\n css = css;\n\n classes = classes;\n}\n\n/**\n *\n * VirtualScroller is a performant approach to handle huge data efficiently.\n *\n * [Live Demo](https://www.primeng.org/scroller/)\n *\n * @module scrollerstyle\n *\n */\nexport enum ScrollerClasses {\n /**\n * Class name of the root element\n */\n root = 'p-virtualscroller',\n /**\n * Class name of the content element\n */\n content = 'p-virtualscroller-content',\n /**\n * Class name of the spacer element\n */\n spacer = 'p-virtualscroller-spacer',\n /**\n * Class name of the loader element\n */\n loader = 'p-virtualscroller-loader',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'p-virtualscroller-loading-icon'\n}\n\nexport interface ScrollerStyle extends BaseStyle {}\n","import { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, contentChild, effect, ElementRef, inject, InjectionToken, input, NgModule, output, signal, TemplateRef, untracked, viewChild, ViewEncapsulation } from '@angular/core';\nimport { findSingle, getHeight, getWidth, isTouchDevice, isVisible } from '@primeuix/utils';\nimport { ScrollerOptions } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Spinner as SpinnerIcon } from '@primeicons/angular/spinner';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport {\n ScrollerContentTemplateContext,\n ScrollerItemTemplateContext,\n ScrollerLazyLoadEvent,\n ScrollerLoaderIconTemplateContext,\n ScrollerLoaderTemplateContext,\n ScrollerScrollEvent,\n ScrollerScrollIndexChangeEvent,\n ScrollerToType,\n VirtualScrollerPassThrough\n} from 'primeng/types/scroller';\nimport { ScrollerStyle } from './style/scrollerstyle';\nimport { CSSProperties } from 'primeng/types/shared';\n\nconst SCROLLER_INSTANCE = new InjectionToken<Scroller>('SCROLLER_INSTANCE');\n\n/**\n * Scroller is a performance-approach to handle huge data efficiently.\n * @group Components\n */\n@Component({\n selector: 'p-scroller, p-virtualscroller, p-virtual-scroller',\n imports: [NgTemplateOutlet, SpinnerIcon, Bind],\n standalone: true,\n template: `\n @if (!_disabled()) {\n <div #element [attr.id]=\"_id()\" [attr.tabindex]=\"_tabindex()\" [style]=\"_style()\" [class]=\"cn(cx('root'), _styleClass())\" (scroll)=\"onContainerScroll($event)\" [pBind]=\"ptm('root')\">\n @if (contentTemplate()) {\n <ng-container *ngTemplateOutlet=\"contentTemplate(); context: getContentTemplateContext()\"></ng-container>\n } @else {\n <div #content [class]=\"cn(cx('content'), contentStyleClass())\" [style]=\"contentStyle\" [pBind]=\"ptm('content')\">\n @for (item of loadedItems; track _trackBy() ? _trackBy()!($index, item) : $index; let index = $index) {\n <ng-container *ngTemplateOutlet=\"itemTemplate(); context: getItemTemplateContext(item, index)\"></ng-container>\n }\n </div>\n }\n @if (_showSpacer()) {\n <div [class]=\"cx('spacer')\" [style]=\"spacerStyle\" [pBind]=\"ptm('spacer')\"></div>\n }\n @if (!_loaderDisabled() && _showLoader() && d_loading) {\n <div [class]=\"cx('loader')\" [pBind]=\"ptm('loader')\">\n @if (loaderTemplate()) {\n @for (item of loaderArr; track $index; let index = $index) {\n <ng-container *ngTemplateOutlet=\"loaderTemplate(); context: getLoaderTemplateContext(index)\"></ng-container>\n }\n } @else {\n @if (loaderIconTemplate()) {\n <ng-container *ngTemplateOutlet=\"loaderIconTemplate(); context: loaderIconContext\"></ng-container>\n } @else {\n <svg data-p-icon=\"spinner\" [class]=\"cx('loadingIcon')\" [spin]=\"true\" [pBind]=\"ptm('loadingIcon')\" />\n }\n }\n </div>\n }\n </div>\n } @else {\n <ng-content />\n @if (contentTemplate()) {\n <ng-container *ngTemplateOutlet=\"contentTemplate(); context: getDisabledContentTemplateContext()\"></ng-container>\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n providers: [ScrollerStyle, { provide: SCROLLER_INSTANCE, useExisting: Scroller }, { provide: PARENT_INSTANCE, useExisting: Scroller }],\n hostDirectives: [Bind],\n host: {\n '[style.height]': 'hostHeight()'\n }\n})\nexport class Scroller extends BaseComponent<VirtualScrollerPassThrough> {\n componentName = 'VirtualScroller';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n $pcScroller: Scroller | undefined = inject(SCROLLER_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n hostName = input('');\n /**\n * Unique identifier of the element.\n * @group Props\n */\n id = input<string | undefined>();\n /**\n * Inline style of the component.\n * @group Props\n */\n style = input<any>();\n /**\n * Style class of the element.\n * @group Props\n */\n styleClass = input<string | undefined>();\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex = input(0);\n /**\n * An array of objects to display.\n * @group Props\n */\n items = input<any[] | undefined | null>();\n /**\n * The height/width of item according to orientation.\n * @group Props\n */\n itemSize = input<number | number[] | undefined>(0);\n /**\n * Height of the scroll viewport.\n * @group Props\n */\n scrollHeight = input<string | undefined>();\n /**\n * Width of the scroll viewport.\n * @group Props\n */\n scrollWidth = input<string | undefined>();\n /**\n * The orientation of scrollbar.\n * @group Props\n */\n orientation = input<'vertical' | 'horizontal' | 'both'>('vertical');\n /**\n * Used to specify how many items to load in each load method in lazy mode.\n * @group Props\n */\n step = input(0);\n /**\n * Delay in scroll before new data is loaded.\n * @group Props\n */\n delay = input(0);\n /**\n * Delay after window's resize finishes.\n * @group Props\n */\n resizeDelay = input(10);\n /**\n * Used to append each loaded item to top without removing any items from the DOM. Using very large data may cause the browser to crash.\n * @group Props\n */\n appendOnly = input(false);\n /**\n * Specifies whether the scroller should be displayed inline or not.\n * @group Props\n */\n inline = input(false);\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n lazy = input(false);\n /**\n * If disabled, the scroller feature is eliminated and the content is displayed directly.\n * @group Props\n */\n disabled = input(false);\n /**\n * Used to implement a custom loader instead of using the loader feature in the scroller.\n * @group Props\n */\n loaderDisabled = input(false);\n /**\n * Columns to display.\n * @group Props\n */\n columns = input<any[] | undefined | null>();\n /**\n * Used to implement a custom spacer instead of using the spacer feature in the scroller.\n * @group Props\n */\n showSpacer = input(true);\n /**\n * Defines whether to show loader.\n * @group Props\n */\n showLoader = input(false);\n /**\n * Determines how many additional elements to add to the DOM outside of the view. According to the scrolls made up and down, extra items are added in a certain algorithm in the form of multiples of this number. Default value is half the number of items shown in the view.\n * @group Props\n */\n numToleratedItems = input<any>();\n /**\n * Defines whether the data is loaded.\n * @group Props\n */\n loading = input<boolean | undefined>();\n /**\n * Defines whether to dynamically change the height or width of scrollable container.\n * @group Props\n */\n autoSize = input(false);\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algoritm checks for object identity.\n * @group Props\n */\n trackBy = input<Function>();\n /**\n * Defines whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n options = input<ScrollerOptions | undefined>();\n\n // Computed: Options merge with individual inputs\n _id = computed(() => this.options()?.id ?? this.id());\n _style = computed(() => this.options()?.style ?? this.style());\n _styleClass = computed(() => this.options()?.styleClass ?? this.styleClass());\n _tabindex = computed(() => this.options()?.tabindex ?? this.tabindex());\n _items = computed(() => this.options()?.items ?? this.items());\n _itemSize = computed(() => this.options()?.itemSize ?? this.itemSize());\n _scrollHeight = computed(() => this.options()?.scrollHeight ?? this.scrollHeight());\n _scrollWidth = computed(() => this.options()?.scrollWidth ?? this.scrollWidth());\n _orientation = computed(() => this.options()?.orientation ?? this.orientation());\n _step = computed(() => this.options()?.step ?? this.step());\n _delay = computed(() => this.options()?.delay ?? this.delay());\n _resizeDelay = computed(() => this.options()?.resizeDelay ?? this.resizeDelay());\n _appendOnly = computed(() => this.options()?.appendOnly ?? this.appendOnly());\n _inline = computed(() => this.options()?.inline ?? this.inline());\n _lazy = computed(() => this.options()?.lazy ?? this.lazy());\n _disabled = computed(() => this.options()?.disabled ?? this.disabled());\n _loaderDisabled = computed(() => this.options()?.loaderDisabled ?? this.loaderDisabled());\n _columns = computed(() => this.options()?.columns ?? this.columns());\n _showSpacer = computed(() => this.options()?.showSpacer ?? this.showSpacer());\n _showLoader = computed(() => this.options()?.showLoader ?? this.showLoader());\n _numToleratedItems = computed(() => this.options()?.numToleratedItems ?? this.numToleratedItems());\n _loading = computed(() => this.options()?.loading ?? this.loading());\n _autoSize = computed(() => this.options()?.autoSize ?? this.autoSize());\n _trackBy = computed(() => this.options()?.trackBy ?? this.trackBy());\n\n contentStyleClass = computed(() => this.options()?.contentStyleClass);\n\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {ScrollerLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n onLazyLoad = output<ScrollerLazyLoadEvent>();\n /**\n * Callback to invoke when scroll position changes.\n * @param {ScrollerScrollEvent} event - Custom scroll event.\n * @group Emits\n */\n onScroll = output<ScrollerScrollEvent>();\n /**\n * Callback to invoke when scroll position and item's range in view changes.\n * @param {ScrollerScrollEvent} event - Custom scroll index change event.\n * @group Emits\n */\n onScrollIndexChange = output<ScrollerScrollIndexChangeEvent>();\n\n elementViewChild = viewChild<ElementRef>('element');\n\n contentViewChild = viewChild<ElementRef>('content');\n\n hostHeight = signal<string | undefined>(undefined);\n\n /**\n * Content template of the component.\n * @param {ScrollerContentTemplateContext} context - content context.\n * @see {@link ScrollerContentTemplateContext}\n * @group Templates\n */\n contentTemplate = contentChild<TemplateRef<ScrollerContentTemplateContext>>('content', { descendants: false });\n\n /**\n * Item template of the component.\n * @param {ScrollerItemTemplateContext} context - item context.\n * @see {@link ScrollerItemTemplateContext}\n * @group Templates\n */\n itemTemplate = contentChild<TemplateRef<ScrollerItemTemplateContext>>('item', { descendants: false });\n\n /**\n * Loader template of the component.\n * @param {ScrollerLoaderTemplateContext} context - loader context.\n * @see {@link ScrollerLoaderTemplateContext}\n * @group Templates\n */\n loaderTemplate = contentChild<TemplateRef<ScrollerLoaderTemplateContext>>('loader', { descendants: false });\n\n /**\n * Loader icon template of the component.\n * @param {ScrollerLoaderIconTemplateContext} context - loader icon context.\n * @see {@link ScrollerLoaderIconTemplateContext}\n * @group Templates\n */\n loaderIconTemplate = contentChild<TemplateRef<ScrollerLoaderIconTemplateContext>>('loadericon', { descendants: false });\n\n d_loading: boolean = false;\n\n d_numToleratedItems: any;\n\n contentEl: any;\n\n vertical = computed(() => this._orientation() === 'vertical');\n\n horizontal = computed(() => this._orientation() === 'horizontal');\n\n both = computed(() => this._orientation() === 'both');\n\n get loadedItems() {\n const items = this._items();\n if (items && !this.d_loading) {\n if (this.both()) {\n return items.slice(this._appendOnly() ? 0 : this.first.rows, this.last.rows).map((item) => {\n if (this._columns()) {\n return item;\n } else if (Array.isArray(item)) {\n return item.slice(this._appendOnly() ? 0 : this.first.cols, this.last.cols);\n } else {\n return item;\n }\n });\n } else if (this.horizontal() && this._columns()) return items;\n else return items.slice(this._appendOnly() ? 0 : this.first, this.last);\n }\n\n return [];\n }\n\n get loadedRows() {\n return this.d_loading ? (this._loaderDisabled() ? this.loaderArr : []) : this.loadedItems;\n }\n\n get loadedColumns() {\n const columns = this._columns();\n if (columns && (this.both() || this.horizontal())) {\n return this.d_loading && this._loaderDisabled() ? (this.both() ? this.loaderArr[0] : this.loaderArr) : columns.slice(this.both() ? this.first.cols : this.first, this.both() ? this.last.cols : this.last);\n }\n\n return columns;\n }\n\n first: any = 0;\n\n last: any = 0;\n\n page: number = 0;\n\n isRangeChanged: boolean = false;\n\n numItemsInViewport: any = 0;\n\n lastScrollPos: any = 0;\n\n lazyLoadState: any = {};\n\n loaderArr: any[] = [];\n\n spacerStyle: CSSProperties;\n\n contentStyle: CSSProperties;\n\n scrollTimeout: any;\n\n resizeTimeout: any;\n\n private _destroyed = false;\n\n initialized: boolean = false;\n\n windowResizeListener: VoidListener;\n\n defaultWidth: number | undefined;\n\n defaultHeight: number | undefined;\n\n defaultContentWidth: number | undefined;\n\n defaultContentHeight: number | undefined;\n\n _componentStyle = inject(ScrollerStyle);\n\n constructor() {\n super();\n\n // hostHeight\n effect(() => {\n if (this._scrollHeight() === '100%') {\n this.hostHeight.set('100%');\n }\n });\n\n // loading sync\n effect(() => {\n const loading = this._loading();\n untracked(() => {\n if (this._lazy() && loading !== undefined && loading !== this.d_loading) {\n this.d_loading = loading;\n }\n });\n });\n\n // orientation reset\n effect(() => {\n this._orientation();\n untracked(() => {\n this.lastScrollPos = this.both() ? { top: 0, left: 0 } : 0;\n });\n });\n\n // numToleratedItems sync\n effect(() => {\n const numT = this._numToleratedItems();\n untracked(() => {\n if (numT !== undefined && numT !== this.d_numToleratedItems) {\n this.d_numToleratedItems = numT;\n }\n });\n });\n\n // reinit on size/scroll changes\n effect(() => {\n this._itemSize();\n this._scrollHeight();\n this._scrollWidth();\n untracked(() => {\n if (this.initialized) {\n this.init();\n this.calculateAutoSize();\n }\n });\n });\n\n // items change\n effect(() => {\n this._items();\n untracked(() => {\n if (this.initialized && !this._lazy()) {\n this.init();\n }\n });\n });\n\n // contentStyle sync from options\n effect(() => {\n const opts = this.options();\n untracked(() => {\n if (opts?.contentStyle !== undefined) {\n this.contentStyle = opts.contentStyle;\n }\n });\n });\n }\n\n onInit() {\n this.setInitialState();\n }\n\n onAfterViewInit() {\n Promise.resolve().then(() => {\n this.viewInit();\n });\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptm('host'));\n if (!this.initialized) {\n this.viewInit();\n }\n }\n\n onDestroy() {\n this._destroyed = true;\n this.unbindResizeListener();\n\n // Cancel pending scroll/resize debounce timers so handleEvents can't emit after destroy.\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n\n this.contentEl = null;\n this.initialized = false;\n }\n\n viewInit() {\n if (isPlatformBrowser(this.platformId) && !this.initialized) {\n if (isVisible(this.elementViewChild()?.nativeElement)) {\n this.setInitialState();\n this.setContentEl(this.contentEl);\n this.init();\n\n this.defaultWidth = getWidth(this.elementViewChild()?.nativeElement);\n this.defaultHeight = getHeight(this.elementViewChild()?.nativeElement);\n this.defaultContentWidth = getWidth(this.contentEl);\n this.defaultContentHeight = getHeight(this.contentEl);\n this.initialized = true;\n }\n }\n }\n\n init() {\n if (!this._disabled()) {\n this.bindResizeListener();\n\n // wait for the next tick\n setTimeout(() => {\n this.setSpacerSize();\n this.setSize();\n this.calculateOptions();\n this.calculateAutoSize();\n this.cd.detectChanges();\n }, 1);\n }\n }\n\n setContentEl(el?: HTMLElement) {\n this.contentEl = el || this.contentViewChild()?.nativeElement || findSingle(this.elementViewChild()?.nativeElement, '.p-virtualscroller-content');\n }\n setInitialState() {\n this.first = this.both() ? { rows: 0, cols: 0 } : 0;\n this.last = this.both() ? { rows: 0, cols: 0 } : 0;\n this.numItemsInViewport = this.both() ? { rows: 0, cols: 0 } : 0;\n this.lastScrollPos = this.both() ? { top: 0, left: 0 } : 0;\n if (this.d_loading === undefined || this.d_loading === false) {\n this.d_loading = this._loading() || false;\n }\n this.d_numToleratedItems = this._numToleratedItems();\n this.loaderArr = this.loaderArr.length > 0 ? this.loaderArr : [];\n }\n\n getElementRef() {\n return this.elementViewChild();\n }\n\n getPageByFirst(first?: any) {\n return Math.floor(((first ?? this.first) + this.d_numToleratedItems * 4) / (this._step() || 1));\n }\n\n isPageChanged(first?: any) {\n return this._step() ? this.page !== this.getPageByFirst(first ?? this.first) : true;\n }\n\n scrollTo(options: ScrollToOptions) {\n this.elementViewChild()?.nativeElement?.scrollTo(options);\n }\n\n scrollToIndex(index: number | number[], behavior: ScrollBehavior = 'auto') {\n const valid = this.both() ? (index as number[]).every((i) => i > -1) : (index as number) > -1;\n\n if (valid) {\n const first = this.first;\n const { scrollTop = 0, scrollLeft = 0 } = this.elementViewChild()?.nativeElement;\n const { numToleratedItems } = this.calculateNumItems();\n const contentPos = this.getContentPosition();\n const itemSize = this._itemSize();\n const calculateFirst = (_index = 0, _numT: number) => (_index <= _numT ? 0 : _index);\n const calculateCoord = (_first: number, _size: number, _cpos: number) => _first * _size + _cpos;\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n let newFirst = this.both() ? { rows: 0, cols: 0 } : 0;\n let isRangeChanged = false,\n isScrollChanged = false;\n\n if (this.both()) {\n newFirst = {\n rows: calculateFirst(index[0], numToleratedItems[0]),\n cols: calculateFirst(index[1], numToleratedItems[1])\n };\n scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPos.left), calculateCoord(newFirst.rows, itemSize[0], contentPos.top));\n isScrollChanged = this.lastScrollPos.top !== scrollTop || this.lastScrollPos.left !== scrollLeft;\n isRangeChanged = newFirst.rows !== first.rows || newFirst.cols !== first.cols;\n } else {\n newFirst = calculateFirst(index as number, numToleratedItems);\n this.horizontal() ? scrollTo(calculateCoord(newFirst, itemSize, contentPos.left), scrollTop) : scrollTo(scrollLeft, calculateCoord(newFirst, itemSize, contentPos.top));\n isScrollChanged = this.lastScrollPos !== (this.horizontal() ? scrollLeft : scrollTop);\n isRangeChanged = newFirst !== first;\n }\n\n this.isRangeChanged = isRangeChanged;\n isScrollChanged && (this.first = newFirst);\n }\n }\n\n scrollInView(index: number, to: ScrollerToType, behavior: ScrollBehavior = 'auto') {\n if (to) {\n const { first, viewport } = this.getRenderedRange();\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n const isToStart = to === 'to-start';\n const isToEnd = to === 'to-end';\n\n if (isToStart) {\n if (this.both()) {\n if (viewport.first.rows - first.rows > (<any>index)[0]) {\n scrollTo(viewport.first.cols * (<number[]>this._itemSize())[1], (viewport.first.rows - 1) * (<number[]>this._itemSize())[0]);\n } else if (viewport.first.cols - first.cols > (<any>index)[1]) {\n scrollTo((viewport.first.cols - 1) * (<number[]>this._itemSize())[1], viewport.first.rows * (<number[]>this._itemSize())[0]);\n }\n } else {\n if (viewport.first - first > index) {\n const pos = (viewport.first - 1) * <number>this._itemSize();\n this.horizontal() ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n } else if (isToEnd) {\n if (this.both()) {\n if (viewport.last.rows - first.rows <= (<any>index)[0] + 1) {\n scrollTo(viewport.first.cols * (<number[]>this._itemSize())[1], (viewport.first.rows + 1) * (<number[]>this._itemSize())[0]);\n } else if (viewport.last.cols - first.cols <= (<any>index)[1] + 1) {\n scrollTo((viewport.first.cols + 1) * (<number[]>this._itemSize())[1], viewport.first.rows * (<number[]>this._itemSize())[0]);\n }\n } else {\n if (viewport.last - first <= index + 1) {\n const pos = (viewport.first + 1) * <number>this._itemSize();\n this.horizontal() ? scrollTo(pos, 0) : scrollTo(0, pos);\n }\n }\n }\n } else {\n this.scrollToIndex(index, behavior);\n }\n }\n\n getRenderedRange() {\n const calculateFirstInViewport = (_pos: number, _size: number) => (_size || _pos ? Math.floor(_pos / (_size || _pos)) : 0);\n\n let firstInViewport = this.first;\n let lastInViewport: any = 0;\n const el = this.elementViewChild()?.nativeElement;\n\n if (el) {\n const { scrollTop, scrollLeft } = el;\n\n if (this.both()) {\n firstInViewport = {\n rows: calculateFirstInViewport(scrollTop, (<number[]>this._itemSize())[0]),\n cols: calculateFirstInViewport(scrollLeft, (<number[]>this._itemSize())[1])\n };\n lastInViewport = {\n rows: firstInViewport.rows + this.numItemsInViewport.rows,\n cols: firstInViewport.cols + this.numItemsInViewport.cols\n };\n } else {\n const scrollPos = this.horizontal() ? scrollLeft : scrollTop;\n firstInViewport = calculateFirstInViewport(scrollPos, <number>this._itemSize());\n lastInViewport = firstInViewport + this.numItemsInViewport;\n }\n }\n\n return {\n first: this.first,\n last: this.last,\n viewport: {\n first: firstInViewport,\n last: lastInViewport\n }\n };\n }\n\n calculateNumItems() {\n const contentPos = this.getContentPosition();\n const el = this.elementViewChild()?.nativeElement;\n const contentWidth = (el ? el.offsetWidth - contentPos.left : 0) || 0;\n const contentHeight = (el ? el.offsetHeight - contentPos.top : 0) || 0;\n const calculateNumItemsInViewport = (_contentSize: number, _itemSize: number) => (_itemSize || _contentSize ? Math.ceil(_contentSize / (_itemSize || _contentSize)) : 0);\n const calculateNumToleratedItems = (_numItems: number) => Math.ceil(_numItems / 2);\n const numItemsInViewport: any = this.both()\n ? {\n rows: calculateNumItemsInViewport(contentHeight, (<number[]>this._itemSize())[0]),\n cols: calculateNumItemsInViewport(contentWidth, (<number[]>this._itemSize())[1])\n }\n : calculateNumItemsInViewport(this.horizontal() ? contentWidth : contentHeight, <number>this._itemSize());\n\n const numToleratedItems = this.d_numToleratedItems || (this.both() ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));\n\n return { numItemsInViewport, numToleratedItems };\n }\n\n calculateOptions() {\n const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();\n const calculateLast = (_first: number, _num: number, _numT: number, _isCols: boolean = false) => this.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n const first = this.first;\n const last = this.both()\n ? {\n rows: calculateLast(this.first.rows, numItemsInViewport.rows, numToleratedItems[0]),\n cols: calculateLast(this.first.cols, numItemsInViewport.cols, numToleratedItems[1], true)\n }\n : calculateLast(this.first, numItemsInViewport, numToleratedItems);\n\n this.last = last;\n this.numItemsInViewport = numItemsInViewport;\n this.d_numToleratedItems = numToleratedItems;\n\n if (this._showLoader()) {\n this.loaderArr = this.both() ? Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) : Array.from({ length: numItemsInViewport });\n }\n\n if (this._lazy()) {\n Promise.resolve().then(() => {\n this.lazyLoadState = {\n first: this._step() ? (this.both() ? { rows: 0, cols: first.cols } : 0) : first,\n last: Math.min(this._step() ? this._step() : this.last, (<any[]>this._items()).length)\n };\n\n this.handleEvents('onLazyLoad', this.lazyLoadState);\n });\n }\n }\n\n calculateAutoSize() {\n if (this._autoSize() && !this.d_loading) {\n Promise.resolve().then(() => {\n if (this.contentEl) {\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = 'auto';\n this.contentEl.style.position = 'relative';\n (<ElementRef>this.elementViewChild()).nativeElement.style.contain = 'none';\n\n const [contentWidth, contentHeight] = [getWidth(this.contentEl), getHeight(this.contentEl)];\n contentWidth !== this.defaultContentWidth && ((<ElementRef>this.elementViewChild()).nativeElement.style.width = '');\n contentHeight !== this.defaultContentHeight && ((<ElementRef>this.elementViewChild()).nativeElement.style.height = '');\n\n const [width, height] = [getWidth((<ElementRef>this.elementViewChild()).nativeElement), getHeight((<ElementRef>this.elementViewChild()).nativeElement)];\n (this.both() || this.horizontal()) && ((<ElementRef>this.elementViewChild()).nativeElement.style.width = width < <number>this.defaultWidth ? width + 'px' : this._scrollWidth() || this.defaultWidth + 'px');\n (this.both() || this.vertical()) && ((<ElementRef>this.elementViewChild()).nativeElement.style.height = height < <number>this.defaultHeight ? height + 'px' : this._scrollHeight() || this.defaultHeight + 'px');\n\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = '';\n this.contentEl.style.position = '';\n (<ElementRef>this.elementViewChild()).nativeElement.style.contain = '';\n }\n });\n }\n }\n\n getLast(last = 0, isCols = false) {\n const items = this._items();\n const columns = this._columns();\n return items ? Math.min(isCols ? (columns || items[0]).length : items.length, last) : 0;\n }\n\n getContentPosition() {\n if (this.contentEl) {\n const style = getComputedStyle(this.contentEl);\n const left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);\n const right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);\n const top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);\n const bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);\n\n return { left, right, top, bottom, x: left + right, y: top + bottom };\n }\n\n return { left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };\n }\n\n setSize() {\n const nativeElement = this.elementViewChild()?.nativeElement;\n if (nativeElement) {\n const parentElement = nativeElement.parentElement?.parentElement;\n\n const elementWidth = nativeElement.offsetWidth;\n const parentWidth = parentElement?.offsetWidth || 0;\n const width = this._scrollWidth() || `${elementWidth || parentWidth}px`;\n\n const elementHeight = nativeElement.offsetHeight;\n const parentHeight = parentElement?.offsetHeight || 0;\n const height = this._scrollHeight() || `${elementHeight || parentHeight}px`;\n\n const setProp = (_name: string, _value: any) => (nativeElement.style[_name] = _value);\n\n if (this.both() || this.horizontal()) {\n setProp('height', height);\n setProp('width', width);\n } else {\n setProp('height', height);\n }\n }\n }\n\n setSpacerSize() {\n const items = this._items();\n if (items) {\n const contentPos = this.getContentPosition();\n const setProp = (_name: string, _value: any, _size: number, _cpos: number = 0) =>\n (this.spacerStyle = {\n ...this.spacerStyle,\n ...{ [`${_name}`]: (_value || []).length * _size + _cpos + 'px' }\n });\n\n if (this.both()) {\n setProp('height', items, (<number[]>this._itemSize())[0], contentPos.y);\n setProp('width', this._columns() || items[1], (<number[]>this._itemSize())[1], contentPos.x);\n } else {\n this.horizontal() ? setProp('width', this._columns() || items, <number>this._itemSize(), contentPos.x) : setProp('height', items, <number>this._itemSize(), contentPos.y);\n }\n }\n }\n\n setContentPosition(pos: any) {\n if (this.contentEl && !this._appendOnly()) {\n const first = pos ? pos.first : this.first;\n const calculateTranslateVal = (_first: number, _size: number) => _first * _size;\n const setTransform = (_x = 0, _y = 0) => (this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } });\n\n if (this.both()) {\n setTransform(calculateTranslateVal(first.cols, (<number[]>this._itemSize())[1]), calculateTranslateVal(first.rows, (<number[]>this._itemSize())[0]));\n } else {\n const translateVal = calculateTranslateVal(first, <number>this._itemSize());\n this.horizontal() ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n }\n }\n }\n\n onScrollPositionChange(event: Event) {\n const target = event.target;\n if (!target) {\n throw new Error('Event target is null');\n }\n const contentPos = this.getContentPosition();\n const calculateScrollPos = (_pos: number, _cpos: number) => (_pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0);\n const calculateCurrentIndex = (_pos: number, _size: number) => (_size || _pos ? Math.floor(_pos / (_size || _pos)) : 0);\n const calculateTriggerIndex = (_currentIndex: number, _first: number, _last: number, _num: number, _numT: number, _isScrollDownOrRight: any) => {\n return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n };\n const calculateFirst = (_currentIndex: number, _triggerIndex: number, _first: number, _last: number, _num: number, _numT: number, _isScrollDownOrRight: any) => {\n if (_currentIndex <= _numT) return 0;\n else return Math.max(0, _isScrollDownOrRight ? (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);\n };\n const calculateLast = (_currentIndex: number, _first: number, _last: number, _num: number, _numT: number, _isCols = false) => {\n let lastValue = _first + _num + 2 * _numT;\n\n if (_currentIndex >= _numT) {\n lastValue += _numT + 1;\n }\n\n return this.getLast(lastValue, _isCols);\n };\n\n const scrollTop = calculateScrollPos((<HTMLElement>target).scrollTop, contentPos.top);\n const scrollLeft = calculateScrollPos((<HTMLElement>target).scrollLeft, contentPos.left);\n\n let newFirst = this.both() ? { rows: 0, cols: 0 } : 0;\n let newLast = this.last;\n let isRangeChanged = false;\n let newScrollPos = this.lastScrollPos;\n\n if (this.both()) {\n const isScrollDown = this.lastScrollPos.top <= scrollTop;\n const isScrollRight = this.lastScrollPos.left <= scrollLeft;\n\n if (!this._appendOnly() || (this._appendOnly() && (isScrollDown || isScrollRight))) {\n const currentIndex = {\n rows: calculateCurrentIndex(scrollTop, (<number[]>this._itemSize())[0]),\n cols: calculateCurrentIndex(scrollLeft, (<number[]>this._itemSize())[1])\n };\n const triggerIndex = {\n rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n\n newFirst = {\n rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newLast = {\n rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),\n cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)\n };\n\n isRangeChanged = newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows || newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols || this.isRangeChanged;\n newScrollPos = { top: scrollTop, left: scrollLeft };\n }\n } else {\n const scrollPos = this.horizontal() ? scrollLeft : scrollTop;\n const isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n\n if (!this._appendOnly() || (this._appendOnly() && isScrollDownOrRight)) {\n const currentIndex = calculateCurrentIndex(scrollPos, <number>this._itemSize());\n const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n\n newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);\n isRangeChanged = newFirst !== this.first || newLast !== this.last || this.isRangeChanged;\n newScrollPos = scrollPos;\n }\n }\n\n return {\n first: newFirst,\n last: newLast,\n isRangeChanged,\n scrollPos: newScrollPos\n };\n }\n\n onScrollChange(event: Event) {\n const { first, last, isRangeChanged, scrollPos } = this.onScrollPositionChange(event);\n\n if (isRangeChanged) {\n const newState = { first, last };\n\n this.setContentPosition(newState);\n\n this.first = first;\n this.last = last;\n this.lastScrollPos = scrollPos;\n\n this.handleEvents('onScrollIndexChange', newState);\n\n if (this._lazy() && this.isPageChanged(first)) {\n const lazyLoadState = {\n first: this._step() ? Math.min(this.getPageByFirst(first) * this._step(), (<any[]>this._items()).length - this._step()) : first,\n last: Math.min(this._step() ? (this.getPageByFirst(first) + 1) * this._step() : last, (<any[]>this._items()).length)\n };\n const isLazyStateChanged = this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;\n\n isLazyStateChanged && this.handleEvents('onLazyLoad', lazyLoadState);\n this.lazyLoadState = lazyLoadState;\n }\n }\n }\n\n onContainerScroll(event: Event) {\n this.handleEvents('onScroll', { originalEvent: event });\n\n if (this._delay()) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n\n if (!this.d_loading && this._showLoader()) {\n const { isRangeChanged } = this.onScrollPositionChange(event);\n const changed = isRangeChanged || (this._step() ? this.isPageChanged() : false);\n\n if (changed) {\n this.d_loading = true;\n\n this.cd.detectChanges();\n }\n }\n\n this.scrollTimeout = setTimeout(() => {\n this.onScrollChange(event);\n\n if (this.d_loading && this._showLoader() && (!this._lazy() || this._loading() === undefined)) {\n this.d_loading = false;\n this.page = this.getPageByFirst();\n }\n this.cd.detectChanges();\n }, this._delay());\n } else {\n !this.d_loading && this.onScrollChange(event);\n }\n }\n\n bindResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.windowResizeListener) {\n const window = this.document.defaultView as Window;\n const event = isTouchDevice() ? 'orientationchange' : 'resize';\n this.windowResizeListener = this.renderer.listen(window, event, this.onWindowResize.bind(this));\n }\n }\n }\n\n unbindResizeListener() {\n if (this.windowResizeListener) {\n this.windowResizeListener();\n this.windowResizeListener = null;\n }\n }\n\n onWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n\n this.resizeTimeout = setTimeout(() => {\n if (isVisible(this.elementViewChild()?.nativeElement)) {\n const [width, height] = [getWidth(this.elementViewChild()?.nativeElement), getHeight(this.elementViewChild()?.nativeElement)];\n const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];\n const reinit = this.both() ? isDiffWidth || isDiffHeight : this.horizontal() ? isDiffWidth : this.vertical() ? isDiffHeight : false;\n\n if (reinit) {\n this.d_numToleratedItems = this._numToleratedItems();\n this.defaultWidth = width;\n this.defaultHeight = height;\n this.defaultContentWidth = getWidth(this.contentEl);\n this.defaultContentHeight = getHeight(this.contentEl);\n\n this.init();\n }\n }\n }, this._resizeDelay());\n }\n\n handleEvents(name: string, params: any) {\n // Pending timers / promise microtasks (e.g. the lazy-load Promise.resolve callback) can\n // reach this after destroy; bail so we don't emit on a destroyed OutputRef.\n if (this._destroyed) return;\n const opts = this.options();\n return opts && (opts as any)[name] ? (opts as any)[name](params) : this[name].emit(params);\n }\n\n readonly loaderIconContext = { options: { styleClass: 'p-virtualscroller-loading-icon' } };\n\n getContentTemplateContext(): ScrollerContentTemplateContext {\n return {\n $implicit: this.loadedItems,\n options: this.getContentOptions()\n };\n }\n\n getItemTemplateContext(item: any, index: number): ScrollerItemTemplateContext {\n return {\n $implicit: item,\n options: this.getOptions(index)\n };\n }\n\n getLoaderTemplateContext(index: number) {\n return {\n options: this.getLoaderOptions(index, this.both() && { numCols: this.numItemsInViewport.cols })\n };\n }\n\n getDisabledContentTemplateContext(): ScrollerContentTemplateContext {\n return {\n $implicit: this.items(),\n options: { rows: this._items() ?? undefined, columns: this.loadedColumns }\n };\n }\n\n getContentOptions() {\n return {\n contentStyleClass: `p-virtualscroller-content ${this.d_loading ? 'p-virtualscroller-loading' : ''}`,\n items: this.loadedItems,\n getItemOptions: (index: number) => this.getOptions(index),\n loading: this.d_loading,\n getLoaderOptions: (index: number, options?: any) => this.getLoaderOptions(index, options),\n itemSize: this._itemSize(),\n rows: this.loadedRows,\n columns: this.loadedColumns,\n spacerStyle: this.spacerStyle,\n contentStyle: this.contentStyle,\n vertical: this.vertical(),\n horizontal: this.horizontal(),\n both: this.both(),\n scrollTo: this.scrollTo.bind(this),\n scrollToIndex: this.scrollToIndex.bind(this),\n orientation: this._orientation(),\n scrollableElement: this.elementViewChild()?.nativeElement\n };\n }\n\n getOptions(renderedIndex: number) {\n const count = (this._items() || []).length;\n const index = this.both() ? this.first.rows + renderedIndex : this.first + renderedIndex;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0\n };\n }\n\n getLoaderOptions(index: number, extOptions: any) {\n const count = this.loaderArr.length;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0,\n loading: this.d_loading,\n ...extOptions\n };\n }\n}\n\n@NgModule({\n imports: [Scroller],\n exports: [Scroller]\n})\nexport class ScrollerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["SpinnerIcon"],"mappings":";;;;;;;;;;;AAGA,MAAM,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DnB;AAED,MAAM,OAAO,GAAG;AACZ,IAAA,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK;QACpB,mBAAmB;AACnB,QAAA;AACI,YAAA,0BAA0B,EAAE,QAAQ,CAAC,MAAM,EAAE;AAC7C,YAAA,sCAAsC,EAAE,QAAQ,CAAC,IAAI,EAAE;AACvD,YAAA,kDAAkD,EAAE,QAAQ,CAAC,UAAU;AAC1E;AACJ,KAAA;AACD,IAAA,OAAO,EAAE,2BAA2B;AACpC,IAAA,MAAM,EAAE,0BAA0B;AAClC,IAAA,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK;QACtB,0BAA0B;AAC1B,QAAA;AACI,YAAA,+BAA+B,EAAE,CAAC,QAAQ,CAAC,cAAc;AAC5D;AACJ,KAAA;AACD,IAAA,WAAW,EAAE;CAChB;AAGK,MAAO,aAAc,SAAQ,SAAS,CAAA;IACxC,IAAI,GAAG,iBAAiB;IAExB,GAAG,GAAG,GAAG;IAET,OAAO,GAAG,OAAO;uGALR,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAb,aAAa,EAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;AASD;;;;;;;;AAQG;IACS;AAAZ,CAAA,UAAY,eAAe,EAAA;AACvB;;AAEG;AACH,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,mBAA0B;AAC1B;;AAEG;AACH,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,2BAAqC;AACrC;;AAEG;AACH,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,0BAAmC;AACnC;;AAEG;AACH,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,0BAAmC;AACnC;;AAEG;AACH,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,gCAA8C;AAClD,CAAC,EArBW,eAAe,KAAf,eAAe,GAAA,EAAA,CAAA,CAAA;;AC/E3B,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAW,mBAAmB,CAAC;AAE3E;;;AAGG;AAmDG,MAAO,QAAS,SAAQ,aAAyC,CAAA;IACnE,aAAa,GAAG,iBAAiB;IAEjC,qBAAqB,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAEpD,IAAA,WAAW,GAAyB,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS;IAE9G,QAAQ,GAAG,KAAK,CAAC,EAAE;iFAAC;AACpB;;;AAGG;AACH,IAAA,EAAE,GAAG,KAAK;sFAAsB;AAChC;;;AAGG;AACH,IAAA,KAAK,GAAG,KAAK;yFAAO;AACpB;;;AAGG;AACH,IAAA,UAAU,GAAG,KAAK;8FAAsB;AACxC;;;AAGG;IACH,QAAQ,GAAG,KAAK,CAAC,CAAC;iFAAC;AACnB;;;AAGG;AACH,IAAA,KAAK,GAAG,KAAK;yFAA4B;AACzC;;;AAGG;IACH,QAAQ,GAAG,KAAK,CAAgC,CAAC;iFAAC;AAClD;;;AAGG;AACH,IAAA,YAAY,GAAG,KAAK;gGAAsB;AAC1C;;;AAGG;AACH,IAAA,WAAW,GAAG,KAAK;+FAAsB;AACzC;;;AAGG;IACH,WAAW,GAAG,KAAK,CAAqC,UAAU;oFAAC;AACnE;;;AAGG;IACH,IAAI,GAAG,KAAK,CAAC,CAAC;6EAAC;AACf;;;AAGG;IACH,KAAK,GAAG,KAAK,CAAC,CAAC;8EAAC;AAChB;;;AAGG;IACH,WAAW,GAAG,KAAK,CAAC,EAAE;oFAAC;AACvB;;;AAGG;IACH,UAAU,GAAG,KAAK,CAAC,KAAK;mFAAC;AACzB;;;AAGG;IACH,MAAM,GAAG,KAAK,CAAC,KAAK;+EAAC;AACrB;;;AAGG;IACH,IAAI,GAAG,KAAK,CAAC,KAAK;6EAAC;AACnB;;;AAGG;IACH,QAAQ,GAAG,KAAK,CAAC,KAAK;iFAAC;AACvB;;;AAGG;IACH,cAAc,GAAG,KAAK,CAAC,KAAK;uFAAC;AAC7B;;;AAGG;AACH,IAAA,OAAO,GAAG,KAAK;2FAA4B;AAC3C;;;AAGG;IACH,UAAU,GAAG,KAAK,CAAC,IAAI;mFAAC;AACxB;;;AAGG;IACH,UAAU,GAAG,KAAK,CAAC,KAAK;mFAAC;AACzB;;;AAGG;AACH,IAAA,iBAAiB,GAAG,KAAK;qGAAO;AAChC;;;AAGG;AACH,IAAA,OAAO,GAAG,KAAK;2FAAuB;AACtC;;;AAGG;IACH,QAAQ,GAAG,KAAK,CAAC,KAAK;iFAAC;AACvB;;;AAGG;AACH,IAAA,OAAO,GAAG,KAAK;2FAAY;AAC3B;;;AAGG;AACH,IAAA,OAAO,GAAG,KAAK;2FAA+B;;AAG9C,IAAA,GAAG,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE;4EAAC;AACrD,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;+EAAC;AAC9D,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;oFAAC;AAC7E,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;kFAAC;AACvE,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;+EAAC;AAC9D,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;kFAAC;AACvE,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;sFAAC;AACnF,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE;qFAAC;AAChF,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE;qFAAC;AAChF,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;8EAAC;AAC3D,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;+EAAC;AAC9D,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE;qFAAC;AAChF,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;oFAAC;AAC7E,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;gFAAC;AACjE,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;8EAAC;AAC3D,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;kFAAC;AACvE,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE;wFAAC;AACzF,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;iFAAC;AACpE,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;oFAAC;AAC7E,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;oFAAC;AAC7E,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,EAAE;2FAAC;AAClG,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;iFAAC;AACpE,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;kFAAC;AACvE,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;iFAAC;IAEpE,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,iBAAiB;0FAAC;AAErE;;;;AAIG;IACH,UAAU,GAAG,MAAM,EAAyB;AAC5C;;;;AAIG;IACH,QAAQ,GAAG,MAAM,EAAuB;AACxC;;;;AAIG;IACH,mBAAmB,GAAG,MAAM,EAAkC;IAE9D,gBAAgB,GAAG,SAAS,CAAa,SAAS;yFAAC;IAEnD,gBAAgB,GAAG,SAAS,CAAa,SAAS;yFAAC;IAEnD,UAAU,GAAG,MAAM,CAAqB,SAAS;mFAAC;AAElD;;;;;AAKG;IACH,eAAe,GAAG,YAAY,CAA8C,SAAS,uFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAE9G;;;;;AAKG;IACH,YAAY,GAAG,YAAY,CAA2C,MAAM,oFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAErG;;;;;AAKG;IACH,cAAc,GAAG,YAAY,CAA6C,QAAQ,sFAAI,WAAW,EAAE,KAAK,EAAA,CAAG;AAE3G;;;;;AAKG;IACH,kBAAkB,GAAG,YAAY,CAAiD,YAAY,0FAAI,WAAW,EAAE,KAAK,EAAA,CAAG;IAEvH,SAAS,GAAY,KAAK;AAE1B,IAAA,mBAAmB;AAEnB,IAAA,SAAS;IAET,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,KAAK,UAAU;iFAAC;IAE7D,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,KAAK,YAAY;mFAAC;IAEjE,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,KAAK,MAAM;6EAAC;AAErD,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AAC3B,QAAA,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC1B,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACb,gBAAA,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACtF,oBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACjB,wBAAA,OAAO,IAAI;oBACf;AAAO,yBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC/E;yBAAO;AACH,wBAAA,OAAO,IAAI;oBACf;AACJ,gBAAA,CAAC,CAAC;YACN;iBAAO,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,gBAAA,OAAO,KAAK;;gBACxD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;QAC3E;AAEA,QAAA,OAAO,EAAE;IACb;AAEA,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,IAAI,CAAC,WAAW;IAC7F;AAEA,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC/B,QAAA,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;AAC/C,YAAA,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9M;AAEA,QAAA,OAAO,OAAO;IAClB;IAEA,KAAK,GAAQ,CAAC;IAEd,IAAI,GAAQ,CAAC;IAEb,IAAI,GAAW,CAAC;IAEhB,cAAc,GAAY,KAAK;IAE/B,kBAAkB,GAAQ,CAAC;IAE3B,aAAa,GAAQ,CAAC;IAEtB,aAAa,GAAQ,EAAE;IAEvB,SAAS,GAAU,EAAE;AAErB,IAAA,WAAW;AAEX,IAAA,YAAY;AAEZ,IAAA,aAAa;AAEb,IAAA,aAAa;IAEL,UAAU,GAAG,KAAK;IAE1B,WAAW,GAAY,KAAK;AAE5B,IAAA,oBAAoB;AAEpB,IAAA,YAAY;AAEZ,IAAA,aAAa;AAEb,IAAA,mBAAmB;AAEnB,IAAA,oBAAoB;AAEpB,IAAA,eAAe,GAAG,MAAM,CAAC,aAAa,CAAC;AAEvC,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;;QAGP,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM,EAAE;AACjC,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;YAC/B;AACJ,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC/B,SAAS,CAAC,MAAK;AACX,gBAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC,SAAS,EAAE;AACrE,oBAAA,IAAI,CAAC,SAAS,GAAG,OAAO;gBAC5B;AACJ,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,YAAY,EAAE;YACnB,SAAS,CAAC,MAAK;gBACX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;AAC9D,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE;YACtC,SAAS,CAAC,MAAK;gBACX,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,mBAAmB,EAAE;AACzD,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;gBACnC;AACJ,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,YAAY,EAAE;YACnB,SAAS,CAAC,MAAK;AACX,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE;oBAClB,IAAI,CAAC,IAAI,EAAE;oBACX,IAAI,CAAC,iBAAiB,EAAE;gBAC5B;AACJ,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,MAAM,EAAE;YACb,SAAS,CAAC,MAAK;gBACX,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;oBACnC,IAAI,CAAC,IAAI,EAAE;gBACf;AACJ,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;YAC3B,SAAS,CAAC,MAAK;AACX,gBAAA,IAAI,IAAI,EAAE,YAAY,KAAK,SAAS,EAAE;AAClC,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;gBACzC;AACJ,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACN;IAEA,MAAM,GAAA;QACF,IAAI,CAAC,eAAe,EAAE;IAC1B;IAEA,eAAe,GAAA;AACX,QAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;YACxB,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAA,CAAC,CAAC;IACN;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,QAAQ,EAAE;QACnB;IACJ;IAEA,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACtB,IAAI,CAAC,oBAAoB,EAAE;;AAG3B,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;QACpC;AACA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;QACpC;AAEA,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC5B;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACzD,IAAI,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa,CAAC,EAAE;gBACnD,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;gBACjC,IAAI,CAAC,IAAI,EAAE;AAEX,gBAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa,CAAC;AACpE,gBAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa,CAAC;gBACtE,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;gBACnD,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AACrD,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI;YAC3B;QACJ;IACJ;IAEA,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;YACnB,IAAI,CAAC,kBAAkB,EAAE;;YAGzB,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAI,CAAC,iBAAiB,EAAE;AACxB,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YAC3B,CAAC,EAAE,CAAC,CAAC;QACT;IACJ;AAEA,IAAA,YAAY,CAAC,EAAgB,EAAA;QACzB,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa,IAAI,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa,EAAE,4BAA4B,CAAC;IACrJ;IACA,eAAe,GAAA;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;QAClD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;QAChE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;AAC1D,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;YAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK;QAC7C;AACA,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,EAAE;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE;IACpE;IAEA,aAAa,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE;IAClC;AAEA,IAAA,cAAc,CAAC,KAAW,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACnG;AAEA,IAAA,aAAa,CAAC,KAAW,EAAA;QACrB,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;IACvF;AAEA,IAAA,QAAQ,CAAC,OAAwB,EAAA;QAC7B,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC7D;AAEA,IAAA,aAAa,CAAC,KAAwB,EAAE,QAAA,GAA2B,MAAM,EAAA;AACrE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,GAAI,KAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAI,KAAgB,GAAG,CAAC,CAAC;QAE7F,IAAI,KAAK,EAAE;AACP,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AACxB,YAAA,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa;YAChF,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACtD,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC5C,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE;YACjC,MAAM,cAAc,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,KAAa,MAAM,MAAM,IAAI,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;AACpF,YAAA,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,KAAa,EAAE,KAAa,KAAK,MAAM,GAAG,KAAK,GAAG,KAAK;YAC/F,MAAM,QAAQ,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;YAC9E,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;AACrD,YAAA,IAAI,cAAc,GAAG,KAAK,EACtB,eAAe,GAAG,KAAK;AAE3B,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACb,gBAAA,QAAQ,GAAG;AACP,oBAAA,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACpD,oBAAA,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC;iBACtD;AACD,gBAAA,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AACjI,gBAAA,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,UAAU;AAChG,gBAAA,cAAc,GAAG,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YACjF;iBAAO;AACH,gBAAA,QAAQ,GAAG,cAAc,CAAC,KAAe,EAAE,iBAAiB,CAAC;AAC7D,gBAAA,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AACvK,gBAAA,eAAe,GAAG,IAAI,CAAC,aAAa,MAAM,IAAI,CAAC,UAAU,EAAE,GAAG,UAAU,GAAG,SAAS,CAAC;AACrF,gBAAA,cAAc,GAAG,QAAQ,KAAK,KAAK;YACvC;AAEA,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc;YACpC,eAAe,KAAK,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QAC9C;IACJ;AAEA,IAAA,YAAY,CAAC,KAAa,EAAE,EAAkB,EAAE,WAA2B,MAAM,EAAA;QAC7E,IAAI,EAAE,EAAE;YACJ,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE;YACnD,MAAM,QAAQ,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC9E,YAAA,MAAM,SAAS,GAAG,EAAE,KAAK,UAAU;AACnC,YAAA,MAAM,OAAO,GAAG,EAAE,KAAK,QAAQ;YAE/B,IAAI,SAAS,EAAE;AACX,gBAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACb,oBAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAS,KAAM,CAAC,CAAC,CAAC,EAAE;AACpD,wBAAA,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAc,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAe,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC,CAAC;oBAChI;AAAO,yBAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAS,KAAM,CAAC,CAAC,CAAC,EAAE;AAC3D,wBAAA,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAe,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAc,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC,CAAC;oBAChI;gBACJ;qBAAO;oBACH,IAAI,QAAQ,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE;AAChC,wBAAA,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAY,IAAI,CAAC,SAAS,EAAE;wBAC3D,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;oBAC3D;gBACJ;YACJ;iBAAO,IAAI,OAAO,EAAE;AAChB,gBAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACb,oBAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAU,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACxD,wBAAA,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAc,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAe,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC,CAAC;oBAChI;AAAO,yBAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAU,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC/D,wBAAA,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAe,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAc,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC,CAAC;oBAChI;gBACJ;qBAAO;oBACH,IAAI,QAAQ,CAAC,IAAI,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE;AACpC,wBAAA,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAY,IAAI,CAAC,SAAS,EAAE;wBAC3D,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;oBAC3D;gBACJ;YACJ;QACJ;aAAO;AACH,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC;QACvC;IACJ;IAEA,gBAAgB,GAAA;AACZ,QAAA,MAAM,wBAAwB,GAAG,CAAC,IAAY,EAAE,KAAa,MAAM,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAE1H,QAAA,IAAI,eAAe,GAAG,IAAI,CAAC,KAAK;QAChC,IAAI,cAAc,GAAQ,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa;QAEjD,IAAI,EAAE,EAAE;AACJ,YAAA,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE;AAEpC,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACb,gBAAA,eAAe,GAAG;AACd,oBAAA,IAAI,EAAE,wBAAwB,CAAC,SAAS,EAAa,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC,CAAC;AAC1E,oBAAA,IAAI,EAAE,wBAAwB,CAAC,UAAU,EAAa,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC;iBAC7E;AACD,gBAAA,cAAc,GAAG;oBACb,IAAI,EAAE,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI;oBACzD,IAAI,EAAE,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC;iBACxD;YACL;iBAAO;AACH,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,UAAU,GAAG,SAAS;gBAC5D,eAAe,GAAG,wBAAwB,CAAC,SAAS,EAAU,IAAI,CAAC,SAAS,EAAE,CAAC;AAC/E,gBAAA,cAAc,GAAG,eAAe,GAAG,IAAI,CAAC,kBAAkB;YAC9D;QACJ;QAEA,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,QAAQ,EAAE;AACN,gBAAA,KAAK,EAAE,eAAe;AACtB,gBAAA,IAAI,EAAE;AACT;SACJ;IACL;IAEA,iBAAiB,GAAA;AACb,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa;QACjD,MAAM,YAAY,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC;QACrE,MAAM,aAAa,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;AACtE,QAAA,MAAM,2BAA2B,GAAG,CAAC,YAAoB,EAAE,SAAiB,MAAM,SAAS,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,SAAS,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AACxK,QAAA,MAAM,0BAA0B,GAAG,CAAC,SAAiB,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AAClF,QAAA,MAAM,kBAAkB,GAAQ,IAAI,CAAC,IAAI;AACrC,cAAE;AACI,gBAAA,IAAI,EAAE,2BAA2B,CAAC,aAAa,EAAa,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC,CAAC;AACjF,gBAAA,IAAI,EAAE,2BAA2B,CAAC,YAAY,EAAa,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC;AAClF;cACD,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,YAAY,GAAG,aAAa,EAAU,IAAI,CAAC,SAAS,EAAE,CAAC;AAE7G,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,0BAA0B,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,0BAA0B,CAAC,kBAAkB,CAAC,CAAC;AAEjO,QAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE;IACpD;IAEA,gBAAgB,GAAA;QACZ,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC1E,QAAA,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,IAAY,EAAE,KAAa,EAAE,OAAA,GAAmB,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,OAAO,CAAC;AACxK,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AACxB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;AAClB,cAAE;AACI,gBAAA,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACnF,gBAAA,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI;AAC3F;cACD,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;AAEtE,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;AAC5C,QAAA,IAAI,CAAC,mBAAmB,GAAG,iBAAiB;AAE5C,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QAC1L;AAEA,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AACd,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;gBACxB,IAAI,CAAC,aAAa,GAAG;AACjB,oBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK;AAC/E,oBAAA,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAU,IAAI,CAAC,MAAM,EAAG,CAAC,MAAM;iBACxF;gBAED,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC;AACvD,YAAA,CAAC,CAAC;QACN;IACJ;IAEA,iBAAiB,GAAA;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACrC,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,oBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM;oBACvE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;oBAC7B,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;oBAE1E,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3F,oBAAA,YAAY,KAAK,IAAI,CAAC,mBAAmB,KAAkB,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;AACnH,oBAAA,aAAa,KAAK,IAAI,CAAC,oBAAoB,KAAkB,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;oBAEtH,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAc,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,EAAE,SAAS,CAAc,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,CAAC;oBACvJ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,MAAmB,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,GAAW,IAAI,CAAC,YAAY,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC5M,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAmB,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAW,IAAI,CAAC,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAEhN,oBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;oBACnE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;oBACrB,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE;gBAC1E;AACJ,YAAA,CAAC,CAAC;QACN;IACJ;AAEA,IAAA,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAA;AAC5B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AAC3B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC/B,QAAA,OAAO,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC;IAC3F;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxF,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClF,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE3F,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE;QACzE;QAEA,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IAC/D;IAEA,OAAO,GAAA;QACH,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa;QAC5D,IAAI,aAAa,EAAE;AACf,YAAA,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,EAAE,aAAa;AAEhE,YAAA,MAAM,YAAY,GAAG,aAAa,CAAC,WAAW;AAC9C,YAAA,MAAM,WAAW,GAAG,aAAa,EAAE,WAAW,IAAI,CAAC;AACnD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAA,EAAG,YAAY,IAAI,WAAW,CAAA,EAAA,CAAI;AAEvE,YAAA,MAAM,aAAa,GAAG,aAAa,CAAC,YAAY;AAChD,YAAA,MAAM,YAAY,GAAG,aAAa,EAAE,YAAY,IAAI,CAAC;AACrD,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAA,EAAG,aAAa,IAAI,YAAY,CAAA,EAAA,CAAI;AAE3E,YAAA,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,MAAW,MAAM,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;YAErF,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AAClC,gBAAA,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;AACzB,gBAAA,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;YAC3B;iBAAO;AACH,gBAAA,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC7B;QACJ;IACJ;IAEA,aAAa,GAAA;AACT,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;QAC3B,IAAI,KAAK,EAAE;AACP,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC5C,YAAA,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,MAAW,EAAE,KAAa,EAAE,KAAA,GAAgB,CAAC,MACxE,IAAI,CAAC,WAAW,GAAG;gBAChB,GAAG,IAAI,CAAC,WAAW;gBACnB,GAAG,EAAE,CAAC,CAAA,EAAG,KAAK,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI;AAClE,aAAA,CAAC;AAEN,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACb,gBAAA,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAa,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;gBACvE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,EAAa,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;YAChG;iBAAO;gBACH,IAAI,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,EAAU,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAU,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;YAC7K;QACJ;IACJ;AAEA,IAAA,kBAAkB,CAAC,GAAQ,EAAA;QACvB,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;AACvC,YAAA,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC1C,YAAA,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,KAAa,KAAK,MAAM,GAAG,KAAK;AAC/E,YAAA,MAAM,YAAY,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,CAAA,YAAA,EAAe,EAAE,OAAO,EAAE,CAAA,MAAA,CAAQ,EAAE,EAAE,CAAC;AAE7I,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACb,gBAAA,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAa,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAa,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACxJ;iBAAO;gBACH,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,EAAU,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC3E,IAAI,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC;YACrF;QACJ;IACJ;AAEA,IAAA,sBAAsB,CAAC,KAAY,EAAA;AAC/B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;QAC3B,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;QAC3C;AACA,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC5C,QAAA,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,KAAa,MAAM,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC;AAC7G,QAAA,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,KAAa,MAAM,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACvH,QAAA,MAAM,qBAAqB,GAAG,CAAC,aAAqB,EAAE,MAAc,EAAE,KAAa,EAAE,IAAY,EAAE,KAAa,EAAE,oBAAyB,KAAI;YAC3I,OAAO,aAAa,IAAI,KAAK,GAAG,KAAK,GAAG,oBAAoB,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,CAAC;AAC5G,QAAA,CAAC;AACD,QAAA,MAAM,cAAc,GAAG,CAAC,aAAqB,EAAE,aAAqB,EAAE,MAAc,EAAE,KAAa,EAAE,IAAY,EAAE,KAAa,EAAE,oBAAyB,KAAI;YAC3J,IAAI,aAAa,IAAI,KAAK;AAAE,gBAAA,OAAO,CAAC;;gBAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,IAAI,aAAa,GAAG,aAAa,GAAG,MAAM,GAAG,aAAa,GAAG,KAAK,IAAI,aAAa,GAAG,aAAa,GAAG,MAAM,GAAG,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC;AACzL,QAAA,CAAC;AACD,QAAA,MAAM,aAAa,GAAG,CAAC,aAAqB,EAAE,MAAc,EAAE,KAAa,EAAE,IAAY,EAAE,KAAa,EAAE,OAAO,GAAG,KAAK,KAAI;YACzH,IAAI,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK;AAEzC,YAAA,IAAI,aAAa,IAAI,KAAK,EAAE;AACxB,gBAAA,SAAS,IAAI,KAAK,GAAG,CAAC;YAC1B;YAEA,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;AAC3C,QAAA,CAAC;AAED,QAAA,MAAM,SAAS,GAAG,kBAAkB,CAAe,MAAO,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC;AACrF,QAAA,MAAM,UAAU,GAAG,kBAAkB,CAAe,MAAO,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC;QAExF,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;AACrD,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI;QACvB,IAAI,cAAc,GAAG,KAAK;AAC1B,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa;AAErC,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;YACb,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,SAAS;YACxD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,UAAU;AAE3D,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,IAAI,aAAa,CAAC,CAAC,EAAE;AAChF,gBAAA,MAAM,YAAY,GAAG;AACjB,oBAAA,IAAI,EAAE,qBAAqB,CAAC,SAAS,EAAa,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC,CAAC;AACvE,oBAAA,IAAI,EAAE,qBAAqB,CAAC,UAAU,EAAa,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,CAAC;iBAC1E;AACD,gBAAA,MAAM,YAAY,GAAG;AACjB,oBAAA,IAAI,EAAE,qBAAqB,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;AACxJ,oBAAA,IAAI,EAAE,qBAAqB,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,aAAa;iBAC3J;AAED,gBAAA,QAAQ,GAAG;AACP,oBAAA,IAAI,EAAE,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;AACpK,oBAAA,IAAI,EAAE,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,aAAa;iBACvK;AACD,gBAAA,OAAO,GAAG;AACN,oBAAA,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAChI,oBAAA,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,IAAI;iBACxI;gBAED,cAAc,GAAG,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc;gBACpL,YAAY,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;YACvD;QACJ;aAAO;AACH,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,UAAU,GAAG,SAAS;AAC5D,YAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,IAAI,SAAS;AAE3D,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,mBAAmB,CAAC,EAAE;gBACpE,MAAM,YAAY,GAAG,qBAAqB,CAAC,SAAS,EAAU,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC/E,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;gBAEvJ,QAAQ,GAAG,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;AACpJ,gBAAA,OAAO,GAAG,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,mBAAmB,CAAC;AAC7G,gBAAA,cAAc,GAAG,QAAQ,KAAK,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc;gBACxF,YAAY,GAAG,SAAS;YAC5B;QACJ;QAEA,OAAO;AACH,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,IAAI,EAAE,OAAO;YACb,cAAc;AACd,YAAA,SAAS,EAAE;SACd;IACL;AAEA,IAAA,cAAc,CAAC,KAAY,EAAA;AACvB,QAAA,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAErF,IAAI,cAAc,EAAE;AAChB,YAAA,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;AAEhC,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;AAEjC,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS;AAE9B,YAAA,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAElD,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;AAC3C,gBAAA,MAAM,aAAa,GAAG;AAClB,oBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAU,IAAI,CAAC,MAAM,EAAG,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK;AAC/H,oBAAA,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,EAAU,IAAI,CAAC,MAAM,EAAG,CAAC,MAAM;iBACtH;gBACD,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI;gBAE7H,kBAAkB,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC;AACpE,gBAAA,IAAI,CAAC,aAAa,GAAG,aAAa;YACtC;QACJ;IACJ;AAEA,IAAA,iBAAiB,CAAC,KAAY,EAAA;QAC1B,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAEvD,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACf,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,gBAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;YACpC;YAEA,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACvC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;gBAC7D,MAAM,OAAO,GAAG,cAAc,KAAK,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC;gBAE/E,IAAI,OAAO,EAAE;AACT,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AAErB,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;gBAC3B;YACJ;AAEA,YAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;AACjC,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAE1B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,EAAE;AAC1F,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,oBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE;gBACrC;AACA,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AAC3B,YAAA,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QACrB;aAAO;YACH,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QACjD;IACJ;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC5B,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAqB;AAClD,gBAAA,MAAM,KAAK,GAAG,aAAa,EAAE,GAAG,mBAAmB,GAAG,QAAQ;gBAC9D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnG;QACJ;IACJ;IAEA,oBAAoB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,oBAAoB,EAAE;AAC3B,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;QACpC;IACJ;IAEA,cAAc,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;QACpC;AAEA,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;YACjC,IAAI,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa,CAAC,EAAE;gBACnD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa,CAAC,CAAC;AAC7H,gBAAA,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC;AAChG,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,WAAW,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,YAAY,GAAG,KAAK;gBAEnI,IAAI,MAAM,EAAE;AACR,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACpD,oBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,oBAAA,IAAI,CAAC,aAAa,GAAG,MAAM;oBAC3B,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;oBACnD,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;oBAErD,IAAI,CAAC,IAAI,EAAE;gBACf;YACJ;AACJ,QAAA,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;IAC3B;IAEA,YAAY,CAAC,IAAY,EAAE,MAAW,EAAA;;;QAGlC,IAAI,IAAI,CAAC,UAAU;YAAE;AACrB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAA,OAAO,IAAI,IAAK,IAAY,CAAC,IAAI,CAAC,GAAI,IAAY,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAC9F;IAES,iBAAiB,GAAG,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,gCAAgC,EAAE,EAAE;IAE1F,yBAAyB,GAAA;QACrB,OAAO;YACH,SAAS,EAAE,IAAI,CAAC,WAAW;AAC3B,YAAA,OAAO,EAAE,IAAI,CAAC,iBAAiB;SAClC;IACL;IAEA,sBAAsB,CAAC,IAAS,EAAE,KAAa,EAAA;QAC3C,OAAO;AACH,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;SACjC;IACL;AAEA,IAAA,wBAAwB,CAAC,KAAa,EAAA;QAClC,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;SACjG;IACL;IAEA,iCAAiC,GAAA;QAC7B,OAAO;AACH,YAAA,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE;AACvB,YAAA,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa;SAC3E;IACL;IAEA,iBAAiB,GAAA;QACb,OAAO;AACH,YAAA,iBAAiB,EAAE,CAAA,0BAAA,EAA6B,IAAI,CAAC,SAAS,GAAG,2BAA2B,GAAG,EAAE,CAAA,CAAE;YACnG,KAAK,EAAE,IAAI,CAAC,WAAW;YACvB,cAAc,EAAE,CAAC,KAAa,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YACzD,OAAO,EAAE,IAAI,CAAC,SAAS;AACvB,YAAA,gBAAgB,EAAE,CAAC,KAAa,EAAE,OAAa,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;AACzF,YAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE;YAC1B,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,OAAO,EAAE,IAAI,CAAC,aAAa;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;AAC/B,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAClC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,YAAA,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE;AAChC,YAAA,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE;SAC/C;IACL;AAEA,IAAA,UAAU,CAAC,aAAqB,EAAA;AAC5B,QAAA,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,GAAG,IAAI,CAAC,KAAK,GAAG,aAAa;QAExF,OAAO;YACH,KAAK;YACL,KAAK;YACL,KAAK,EAAE,KAAK,KAAK,CAAC;AAClB,YAAA,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC;AACzB,YAAA,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC;AACrB,YAAA,GAAG,EAAE,KAAK,GAAG,CAAC,KAAK;SACtB;IACL;IAEA,gBAAgB,CAAC,KAAa,EAAE,UAAe,EAAA;AAC3C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM;QAEnC,OAAO;YACH,KAAK;YACL,KAAK;YACL,KAAK,EAAE,KAAK,KAAK,CAAC;AAClB,YAAA,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC;AACzB,YAAA,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC;AACrB,YAAA,GAAG,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,IAAI,CAAC,SAAS;AACvB,YAAA,GAAG;SACN;IACL;uGA3+BS,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,EAAA,SAAA,EANN,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAxC5H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAvCS,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAEA,OAAW,EAAA,QAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,IAAI,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAgDpC,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAlDpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mDAAmD;AAC7D,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAEA,OAAW,EAAE,IAAI,CAAC;AAC9C,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCT,IAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,OAAO;oBAChD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,SAAS,EAAE,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAA,QAAU,EAAE,CAAC;oBACtI,cAAc,EAAE,CAAC,IAAI,CAAC;AACtB,oBAAA,IAAI,EAAE;AACF,wBAAA,gBAAgB,EAAE;AACrB;AACJ,iBAAA;AAsL4C,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,IAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAET,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAU0B,SAAS,OAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAQvC,MAAM,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAQ1B,QAAQ,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAQxB,YAAY,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;MAyxB7G,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAd,cAAc,EAAA,OAAA,EAAA,CAl/Bd,QAAQ,CAAA,EAAA,OAAA,EAAA,CAAR,QAAQ,CAAA,EAAA,CAAA;AAk/BR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAHb,QAAQ,CAAA,EAAA,CAAA;;2FAGT,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,QAAQ,CAAC;oBACnB,OAAO,EAAE,CAAC,QAAQ;AACrB,iBAAA;;;AC/jCD;;AAEG;;;;"}
1
+ {"version":3,"file":"primeng-scroller.mjs","sources":["../../src/scroller/style/scrollerstyle.ts","../../src/scroller/scroller.ts","../../src/scroller/primeng-scroller.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst css = /*css*/ `\n.p-virtualscroller {\n position: relative;\n overflow: auto;\n contain: strict;\n transform: translateZ(0);\n will-change: scroll-position;\n outline: 0 none;\n}\n\n.p-virtualscroller-content {\n position: absolute;\n top: 0;\n left: 0;\n min-height: 100%;\n min-width: 100%;\n will-change: transform;\n}\n\n.p-virtualscroller-spacer {\n position: absolute;\n top: 0;\n left: 0;\n height: 1px;\n width: 1px;\n transform-origin: 0 0;\n pointer-events: none;\n}\n\n.p-virtualscroller-loader {\n position: sticky;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: dt('virtualscroller.loader.mask.background');\n color: dt('virtualscroller.loader.mask.color');\n}\n\n.p-virtualscroller-loader-mask {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.p-virtualscroller-loading-icon {\n font-size: dt('virtualscroller.loader.icon.size');\n width: dt('virtualscroller.loader.icon.size');\n height: dt('virtualscroller.loader.icon.size');\n}\n\n.p-virtualscroller-horizontal > .p-virtualscroller-content {\n display: flex;\n}\n\n.p-virtualscroller-inline .p-virtualscroller-content {\n position: static;\n}\n`;\n\nconst classes = {\n root: ({ instance }) => [\n 'p-virtualscroller',\n {\n 'p-virtualscroller-inline': instance.inline(),\n 'p-virtualscroller-both p-both-scroll': instance.both(),\n 'p-virtualscroller-horizontal p-horizontal-scroll': instance.horizontal()\n }\n ],\n content: 'p-virtualscroller-content',\n spacer: 'p-virtualscroller-spacer',\n loader: ({ instance }) => [\n 'p-virtualscroller-loader',\n {\n 'p-virtualscroller-loader-mask': !instance.loaderTemplate()\n }\n ],\n loadingIcon: 'p-virtualscroller-loading-icon'\n};\n\n@Injectable()\nexport class ScrollerStyle extends BaseStyle {\n name = 'virtualscroller';\n\n css = css;\n\n classes = classes;\n}\n\n/**\n *\n * VirtualScroller is a performant approach to handle huge data efficiently.\n *\n * [Live Demo](https://www.primeng.org/scroller/)\n *\n * @module scrollerstyle\n *\n */\nexport enum ScrollerClasses {\n /**\n * Class name of the root element\n */\n root = 'p-virtualscroller',\n /**\n * Class name of the content element\n */\n content = 'p-virtualscroller-content',\n /**\n * Class name of the spacer element\n */\n spacer = 'p-virtualscroller-spacer',\n /**\n * Class name of the loader element\n */\n loader = 'p-virtualscroller-loader',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'p-virtualscroller-loading-icon'\n}\n","import { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, contentChild, effect, ElementRef, inject, InjectionToken, input, NgModule, output, signal, TemplateRef, untracked, viewChild, ViewEncapsulation } from '@angular/core';\nimport { findSingle, getHeight, getWidth, isTouchDevice, isVisible } from '@primeuix/utils';\nimport { ScrollerOptions } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Spinner as SpinnerIcon } from '@primeicons/angular/spinner';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport {\n ScrollerContentTemplateContext,\n ScrollerItemTemplateContext,\n ScrollerLazyLoadEvent,\n ScrollerLoaderIconTemplateContext,\n ScrollerLoaderTemplateContext,\n ScrollerScrollEvent,\n ScrollerScrollIndexChangeEvent,\n ScrollerToType,\n VirtualScrollerPassThrough\n} from 'primeng/types/scroller';\nimport { ScrollerStyle } from './style/scrollerstyle';\nimport { CSSProperties } from 'primeng/types/shared';\n\nconst SCROLLER_INSTANCE = new InjectionToken<Scroller>('SCROLLER_INSTANCE');\n\n/**\n * Scroller is a performance-approach to handle huge data efficiently.\n * @group Components\n */\n@Component({\n selector: 'p-scroller, p-virtualscroller, p-virtual-scroller',\n imports: [NgTemplateOutlet, SpinnerIcon, Bind],\n standalone: true,\n template: `\n @if (!_disabled()) {\n <div #element [attr.id]=\"_id()\" [attr.tabindex]=\"_tabindex()\" [style]=\"_style()\" [class]=\"cn(cx('root'), _styleClass())\" (scroll)=\"onContainerScroll($event)\" [pBind]=\"ptm('root')\">\n @if (contentTemplate()) {\n <ng-container *ngTemplateOutlet=\"contentTemplate(); context: getContentTemplateContext()\"></ng-container>\n } @else {\n <div #content [class]=\"cn(cx('content'), contentStyleClass())\" [style]=\"contentStyle\" [pBind]=\"ptm('content')\">\n @for (item of loadedItems; track _trackBy() ? _trackBy()!($index, item) : $index; let index = $index) {\n <ng-container *ngTemplateOutlet=\"itemTemplate(); context: getItemTemplateContext(item, index)\"></ng-container>\n }\n </div>\n }\n @if (_showSpacer()) {\n <div [class]=\"cx('spacer')\" [style]=\"spacerStyle\" [pBind]=\"ptm('spacer')\"></div>\n }\n @if (!_loaderDisabled() && _showLoader() && d_loading) {\n <div [class]=\"cx('loader')\" [pBind]=\"ptm('loader')\">\n @if (loaderTemplate()) {\n @for (item of loaderArr; track $index; let index = $index) {\n <ng-container *ngTemplateOutlet=\"loaderTemplate(); context: getLoaderTemplateContext(index)\"></ng-container>\n }\n } @else {\n @if (loaderIconTemplate()) {\n <ng-container *ngTemplateOutlet=\"loaderIconTemplate(); context: loaderIconContext\"></ng-container>\n } @else {\n <svg data-p-icon=\"spinner\" [class]=\"cx('loadingIcon')\" [spin]=\"true\" [pBind]=\"ptm('loadingIcon')\" />\n }\n }\n </div>\n }\n </div>\n } @else {\n <ng-content />\n @if (contentTemplate()) {\n <ng-container *ngTemplateOutlet=\"contentTemplate(); context: getDisabledContentTemplateContext()\"></ng-container>\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n providers: [ScrollerStyle, { provide: SCROLLER_INSTANCE, useExisting: Scroller }, { provide: PARENT_INSTANCE, useExisting: Scroller }],\n hostDirectives: [Bind],\n host: {\n '[style.height]': 'hostHeight()'\n }\n})\nexport class Scroller extends BaseComponent<VirtualScrollerPassThrough> {\n componentName = 'VirtualScroller';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n $pcScroller: Scroller | undefined = inject(SCROLLER_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n hostName = input('');\n /**\n * Unique identifier of the element.\n * @group Props\n */\n id = input<string | undefined>();\n /**\n * Inline style of the component.\n * @group Props\n */\n style = input<any>();\n /**\n * Style class of the element.\n * @group Props\n */\n styleClass = input<string | undefined>();\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex = input(0);\n /**\n * An array of objects to display.\n * @group Props\n */\n items = input<any[] | undefined | null>();\n /**\n * The height/width of item according to orientation.\n * @group Props\n */\n itemSize = input<number | number[] | undefined>(0);\n /**\n * Height of the scroll viewport.\n * @group Props\n */\n scrollHeight = input<string | undefined>();\n /**\n * Width of the scroll viewport.\n * @group Props\n */\n scrollWidth = input<string | undefined>();\n /**\n * The orientation of scrollbar.\n * @group Props\n */\n orientation = input<'vertical' | 'horizontal' | 'both'>('vertical');\n /**\n * Used to specify how many items to load in each load method in lazy mode.\n * @group Props\n */\n step = input(0);\n /**\n * Delay in scroll before new data is loaded.\n * @group Props\n */\n delay = input(0);\n /**\n * Delay after window's resize finishes.\n * @group Props\n */\n resizeDelay = input(10);\n /**\n * Used to append each loaded item to top without removing any items from the DOM. Using very large data may cause the browser to crash.\n * @group Props\n */\n appendOnly = input(false);\n /**\n * Specifies whether the scroller should be displayed inline or not.\n * @group Props\n */\n inline = input(false);\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n lazy = input(false);\n /**\n * If disabled, the scroller feature is eliminated and the content is displayed directly.\n * @group Props\n */\n disabled = input(false);\n /**\n * Used to implement a custom loader instead of using the loader feature in the scroller.\n * @group Props\n */\n loaderDisabled = input(false);\n /**\n * Columns to display.\n * @group Props\n */\n columns = input<any[] | undefined | null>();\n /**\n * Used to implement a custom spacer instead of using the spacer feature in the scroller.\n * @group Props\n */\n showSpacer = input(true);\n /**\n * Defines whether to show loader.\n * @group Props\n */\n showLoader = input(false);\n /**\n * Determines how many additional elements to add to the DOM outside of the view. According to the scrolls made up and down, extra items are added in a certain algorithm in the form of multiples of this number. Default value is half the number of items shown in the view.\n * @group Props\n */\n numToleratedItems = input<any>();\n /**\n * Defines whether the data is loaded.\n * @group Props\n */\n loading = input<boolean | undefined>();\n /**\n * Defines whether to dynamically change the height or width of scrollable container.\n * @group Props\n */\n autoSize = input(false);\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algoritm checks for object identity.\n * @group Props\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n trackBy = input<Function>();\n /**\n * Defines whether to use the scroller feature. The properties of scroller component can be used like an object in it.\n * @group Props\n */\n options = input<ScrollerOptions | undefined>();\n\n // Computed: Options merge with individual inputs\n _id = computed(() => this.options()?.id ?? this.id());\n _style = computed(() => this.options()?.style ?? this.style());\n _styleClass = computed(() => this.options()?.styleClass ?? this.styleClass());\n _tabindex = computed(() => this.options()?.tabindex ?? this.tabindex());\n _items = computed(() => this.options()?.items ?? this.items());\n _itemSize = computed(() => this.options()?.itemSize ?? this.itemSize());\n _scrollHeight = computed(() => this.options()?.scrollHeight ?? this.scrollHeight());\n _scrollWidth = computed(() => this.options()?.scrollWidth ?? this.scrollWidth());\n _orientation = computed(() => this.options()?.orientation ?? this.orientation());\n _step = computed(() => this.options()?.step ?? this.step());\n _delay = computed(() => this.options()?.delay ?? this.delay());\n _resizeDelay = computed(() => this.options()?.resizeDelay ?? this.resizeDelay());\n _appendOnly = computed(() => this.options()?.appendOnly ?? this.appendOnly());\n _inline = computed(() => this.options()?.inline ?? this.inline());\n _lazy = computed(() => this.options()?.lazy ?? this.lazy());\n _disabled = computed(() => this.options()?.disabled ?? this.disabled());\n _loaderDisabled = computed(() => this.options()?.loaderDisabled ?? this.loaderDisabled());\n _columns = computed(() => this.options()?.columns ?? this.columns());\n _showSpacer = computed(() => this.options()?.showSpacer ?? this.showSpacer());\n _showLoader = computed(() => this.options()?.showLoader ?? this.showLoader());\n _numToleratedItems = computed(() => this.options()?.numToleratedItems ?? this.numToleratedItems());\n _loading = computed(() => this.options()?.loading ?? this.loading());\n _autoSize = computed(() => this.options()?.autoSize ?? this.autoSize());\n _trackBy = computed(() => this.options()?.trackBy ?? this.trackBy());\n\n contentStyleClass = computed(() => this.options()?.contentStyleClass);\n\n /**\n * Callback to invoke in lazy mode to load new data.\n * @param {ScrollerLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n onLazyLoad = output<ScrollerLazyLoadEvent>();\n /**\n * Callback to invoke when scroll position changes.\n * @param {ScrollerScrollEvent} event - Custom scroll event.\n * @group Emits\n */\n onScroll = output<ScrollerScrollEvent>();\n /**\n * Callback to invoke when scroll position and item's range in view changes.\n * @param {ScrollerScrollEvent} event - Custom scroll index change event.\n * @group Emits\n */\n onScrollIndexChange = output<ScrollerScrollIndexChangeEvent>();\n\n elementViewChild = viewChild<ElementRef>('element');\n\n contentViewChild = viewChild<ElementRef>('content');\n\n hostHeight = signal<string | undefined>(undefined);\n\n /**\n * Content template of the component.\n * @param {ScrollerContentTemplateContext} context - content context.\n * @see {@link ScrollerContentTemplateContext}\n * @group Templates\n */\n contentTemplate = contentChild<TemplateRef<ScrollerContentTemplateContext>>('content', { descendants: false });\n\n /**\n * Item template of the component.\n * @param {ScrollerItemTemplateContext} context - item context.\n * @see {@link ScrollerItemTemplateContext}\n * @group Templates\n */\n itemTemplate = contentChild<TemplateRef<ScrollerItemTemplateContext>>('item', { descendants: false });\n\n /**\n * Loader template of the component.\n * @param {ScrollerLoaderTemplateContext} context - loader context.\n * @see {@link ScrollerLoaderTemplateContext}\n * @group Templates\n */\n loaderTemplate = contentChild<TemplateRef<ScrollerLoaderTemplateContext>>('loader', { descendants: false });\n\n /**\n * Loader icon template of the component.\n * @param {ScrollerLoaderIconTemplateContext} context - loader icon context.\n * @see {@link ScrollerLoaderIconTemplateContext}\n * @group Templates\n */\n loaderIconTemplate = contentChild<TemplateRef<ScrollerLoaderIconTemplateContext>>('loadericon', { descendants: false });\n\n d_loading: boolean = false;\n\n d_numToleratedItems: any;\n\n contentEl: any;\n\n vertical = computed(() => this._orientation() === 'vertical');\n\n horizontal = computed(() => this._orientation() === 'horizontal');\n\n both = computed(() => this._orientation() === 'both');\n\n get loadedItems() {\n const items = this._items();\n\n if (items && !this.d_loading) {\n if (this.both()) {\n return items.slice(this._appendOnly() ? 0 : this.first.rows, this.last.rows).map((item) => {\n if (this._columns()) {\n return item;\n } else if (Array.isArray(item)) {\n return item.slice(this._appendOnly() ? 0 : this.first.cols, this.last.cols);\n } else {\n return item;\n }\n });\n } else if (this.horizontal() && this._columns()) return items;\n else return items.slice(this._appendOnly() ? 0 : this.first, this.last);\n }\n\n return [];\n }\n\n get loadedRows() {\n return this.d_loading ? (this._loaderDisabled() ? this.loaderArr : []) : this.loadedItems;\n }\n\n get loadedColumns() {\n const columns = this._columns();\n\n if (columns && (this.both() || this.horizontal())) {\n return this.d_loading && this._loaderDisabled() ? (this.both() ? this.loaderArr[0] : this.loaderArr) : columns.slice(this.both() ? this.first.cols : this.first, this.both() ? this.last.cols : this.last);\n }\n\n return columns;\n }\n\n first: any = 0;\n\n last: any = 0;\n\n page: number = 0;\n\n isRangeChanged: boolean = false;\n\n numItemsInViewport: any = 0;\n\n lastScrollPos: any = 0;\n\n lazyLoadState: any = {};\n\n loaderArr: any[] = [];\n\n spacerStyle: CSSProperties;\n\n contentStyle: CSSProperties;\n\n scrollTimeout: any;\n\n resizeTimeout: any;\n\n private _destroyed = false;\n\n initialized: boolean = false;\n\n windowResizeListener: VoidListener;\n\n defaultWidth: number | undefined;\n\n defaultHeight: number | undefined;\n\n defaultContentWidth: number | undefined;\n\n defaultContentHeight: number | undefined;\n\n _componentStyle = inject(ScrollerStyle);\n\n constructor() {\n super();\n\n // hostHeight\n effect(() => {\n if (this._scrollHeight() === '100%') {\n this.hostHeight.set('100%');\n }\n });\n\n // loading sync\n effect(() => {\n const loading = this._loading();\n\n untracked(() => {\n if (this._lazy() && loading !== undefined && loading !== this.d_loading) {\n this.d_loading = loading;\n }\n });\n });\n\n // orientation reset\n effect(() => {\n this._orientation();\n untracked(() => {\n this.lastScrollPos = this.both() ? { top: 0, left: 0 } : 0;\n });\n });\n\n // numToleratedItems sync\n effect(() => {\n const numT = this._numToleratedItems();\n\n untracked(() => {\n if (numT !== undefined && numT !== this.d_numToleratedItems) {\n this.d_numToleratedItems = numT;\n }\n });\n });\n\n // reinit on size/scroll changes\n effect(() => {\n this._itemSize();\n this._scrollHeight();\n this._scrollWidth();\n untracked(() => {\n if (this.initialized) {\n this.init();\n this.calculateAutoSize();\n }\n });\n });\n\n // items change\n effect(() => {\n this._items();\n untracked(() => {\n if (this.initialized && !this._lazy()) {\n this.init();\n }\n });\n });\n\n // contentStyle sync from options\n effect(() => {\n const opts = this.options();\n\n untracked(() => {\n if (opts?.contentStyle !== undefined) {\n this.contentStyle = opts.contentStyle;\n }\n });\n });\n }\n\n readonly loaderIconContext = { options: { styleClass: 'p-virtualscroller-loading-icon' } };\n\n onInit() {\n this.setInitialState();\n }\n\n onAfterViewInit() {\n Promise.resolve().then(() => {\n this.viewInit();\n });\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptm('host'));\n\n if (!this.initialized) {\n this.viewInit();\n }\n }\n\n onDestroy() {\n this._destroyed = true;\n this.unbindResizeListener();\n\n // Cancel pending scroll/resize debounce timers so handleEvents can't emit after destroy.\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n\n this.contentEl = null;\n this.initialized = false;\n }\n\n viewInit() {\n if (isPlatformBrowser(this.platformId) && !this.initialized) {\n if (isVisible(this.elementViewChild()?.nativeElement)) {\n this.setInitialState();\n this.setContentEl(this.contentEl);\n this.init();\n\n this.defaultWidth = getWidth(this.elementViewChild()?.nativeElement);\n this.defaultHeight = getHeight(this.elementViewChild()?.nativeElement);\n this.defaultContentWidth = getWidth(this.contentEl);\n this.defaultContentHeight = getHeight(this.contentEl);\n this.initialized = true;\n }\n }\n }\n\n init() {\n if (!this._disabled()) {\n this.bindResizeListener();\n\n // wait for the next tick\n setTimeout(() => {\n this.setSpacerSize();\n this.setSize();\n this.calculateOptions();\n this.calculateAutoSize();\n this.cd.detectChanges();\n }, 1);\n }\n }\n setContentEl(el?: HTMLElement) {\n this.contentEl = el || this.contentViewChild()?.nativeElement || findSingle(this.elementViewChild()?.nativeElement, '.p-virtualscroller-content');\n }\n\n setInitialState() {\n this.first = this.both() ? { rows: 0, cols: 0 } : 0;\n this.last = this.both() ? { rows: 0, cols: 0 } : 0;\n this.numItemsInViewport = this.both() ? { rows: 0, cols: 0 } : 0;\n this.lastScrollPos = this.both() ? { top: 0, left: 0 } : 0;\n\n if (this.d_loading === undefined || this.d_loading === false) {\n this.d_loading = this._loading() || false;\n }\n\n this.d_numToleratedItems = this._numToleratedItems();\n this.loaderArr = this.loaderArr.length > 0 ? this.loaderArr : [];\n }\n\n getElementRef() {\n return this.elementViewChild();\n }\n\n getPageByFirst(first?: any) {\n return Math.floor(((first ?? this.first) + this.d_numToleratedItems * 4) / (this._step() || 1));\n }\n\n isPageChanged(first?: any) {\n return this._step() ? this.page !== this.getPageByFirst(first ?? this.first) : true;\n }\n\n scrollTo(options: ScrollToOptions) {\n this.elementViewChild()?.nativeElement?.scrollTo(options);\n }\n\n scrollToIndex(index: number | number[], behavior: ScrollBehavior = 'auto') {\n const valid = this.both() ? (index as number[]).every((i) => i > -1) : (index as number) > -1;\n\n if (valid) {\n const first = this.first;\n const { scrollTop = 0, scrollLeft = 0 } = this.elementViewChild()?.nativeElement ?? {};\n const { numToleratedItems } = this.calculateNumItems();\n const contentPos = this.getContentPosition();\n const itemSize = this._itemSize();\n const calculateFirst = (_index = 0, _numT: number) => (_index <= _numT ? 0 : _index);\n const calculateCoord = (_first: number, _size: number, _cpos: number) => _first * _size + _cpos;\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n let newFirst = this.both() ? { rows: 0, cols: 0 } : 0;\n let isRangeChanged = false,\n isScrollChanged = false;\n\n if (this.both()) {\n newFirst = {\n rows: calculateFirst(index[0], numToleratedItems[0]),\n cols: calculateFirst(index[1], numToleratedItems[1])\n };\n scrollTo(calculateCoord(newFirst.cols, itemSize[1], contentPos.left), calculateCoord(newFirst.rows, itemSize[0], contentPos.top));\n isScrollChanged = this.lastScrollPos.top !== scrollTop || this.lastScrollPos.left !== scrollLeft;\n isRangeChanged = newFirst.rows !== first.rows || newFirst.cols !== first.cols;\n } else {\n newFirst = calculateFirst(index as number, numToleratedItems);\n\n if (this.horizontal()) {\n scrollTo(calculateCoord(newFirst, itemSize, contentPos.left), scrollTop);\n } else {\n scrollTo(scrollLeft, calculateCoord(newFirst, itemSize, contentPos.top));\n }\n\n isScrollChanged = this.lastScrollPos !== (this.horizontal() ? scrollLeft : scrollTop);\n isRangeChanged = newFirst !== first;\n }\n\n this.isRangeChanged = isRangeChanged;\n\n if (isScrollChanged) {\n this.first = newFirst;\n }\n }\n }\n\n scrollInView(index: number, to: ScrollerToType, behavior: ScrollBehavior = 'auto') {\n if (to) {\n const { first, viewport } = this.getRenderedRange();\n const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });\n const isToStart = to === 'to-start';\n const isToEnd = to === 'to-end';\n\n if (isToStart) {\n if (this.both()) {\n if (viewport.first.rows - first.rows > (<any>index)[0]) {\n scrollTo(viewport.first.cols * (<number[]>this._itemSize())[1], (viewport.first.rows - 1) * (<number[]>this._itemSize())[0]);\n } else if (viewport.first.cols - first.cols > (<any>index)[1]) {\n scrollTo((viewport.first.cols - 1) * (<number[]>this._itemSize())[1], viewport.first.rows * (<number[]>this._itemSize())[0]);\n }\n } else {\n if (viewport.first - first > index) {\n const pos = (viewport.first - 1) * <number>this._itemSize();\n\n if (this.horizontal()) {\n scrollTo(pos, 0);\n } else {\n scrollTo(0, pos);\n }\n }\n }\n } else if (isToEnd) {\n if (this.both()) {\n if (viewport.last.rows - first.rows <= (<any>index)[0] + 1) {\n scrollTo(viewport.first.cols * (<number[]>this._itemSize())[1], (viewport.first.rows + 1) * (<number[]>this._itemSize())[0]);\n } else if (viewport.last.cols - first.cols <= (<any>index)[1] + 1) {\n scrollTo((viewport.first.cols + 1) * (<number[]>this._itemSize())[1], viewport.first.rows * (<number[]>this._itemSize())[0]);\n }\n } else {\n if (viewport.last - first <= index + 1) {\n const pos = (viewport.first + 1) * <number>this._itemSize();\n\n if (this.horizontal()) {\n scrollTo(pos, 0);\n } else {\n scrollTo(0, pos);\n }\n }\n }\n }\n } else {\n this.scrollToIndex(index, behavior);\n }\n }\n\n getRenderedRange() {\n const calculateFirstInViewport = (_pos: number, _size: number) => (_size || _pos ? Math.floor(_pos / (_size || _pos)) : 0);\n\n let firstInViewport = this.first;\n let lastInViewport: any = 0;\n const el = this.elementViewChild()?.nativeElement;\n\n if (el) {\n const { scrollTop, scrollLeft } = el;\n\n if (this.both()) {\n firstInViewport = {\n rows: calculateFirstInViewport(scrollTop, (<number[]>this._itemSize())[0]),\n cols: calculateFirstInViewport(scrollLeft, (<number[]>this._itemSize())[1])\n };\n lastInViewport = {\n rows: firstInViewport.rows + this.numItemsInViewport.rows,\n cols: firstInViewport.cols + this.numItemsInViewport.cols\n };\n } else {\n const scrollPos = this.horizontal() ? scrollLeft : scrollTop;\n\n firstInViewport = calculateFirstInViewport(scrollPos, <number>this._itemSize());\n lastInViewport = firstInViewport + this.numItemsInViewport;\n }\n }\n\n return {\n first: this.first,\n last: this.last,\n viewport: {\n first: firstInViewport,\n last: lastInViewport\n }\n };\n }\n\n calculateNumItems() {\n const contentPos = this.getContentPosition();\n const el = this.elementViewChild()?.nativeElement;\n const contentWidth = (el ? el.offsetWidth - contentPos.left : 0) || 0;\n const contentHeight = (el ? el.offsetHeight - contentPos.top : 0) || 0;\n const calculateNumItemsInViewport = (_contentSize: number, _itemSize: number) => (_itemSize || _contentSize ? Math.ceil(_contentSize / (_itemSize || _contentSize)) : 0);\n const calculateNumToleratedItems = (_numItems: number) => Math.ceil(_numItems / 2);\n const numItemsInViewport: any = this.both()\n ? {\n rows: calculateNumItemsInViewport(contentHeight, (<number[]>this._itemSize())[0]),\n cols: calculateNumItemsInViewport(contentWidth, (<number[]>this._itemSize())[1])\n }\n : calculateNumItemsInViewport(this.horizontal() ? contentWidth : contentHeight, <number>this._itemSize());\n\n const numToleratedItems = this.d_numToleratedItems || (this.both() ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));\n\n return { numItemsInViewport, numToleratedItems };\n }\n\n calculateOptions() {\n const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();\n const calculateLast = (_first: number, _num: number, _numT: number, _isCols: boolean = false) => this.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n const first = this.first;\n const last = this.both()\n ? {\n rows: calculateLast(this.first.rows, numItemsInViewport.rows, numToleratedItems[0]),\n cols: calculateLast(this.first.cols, numItemsInViewport.cols, numToleratedItems[1], true)\n }\n : calculateLast(this.first, numItemsInViewport, numToleratedItems);\n\n this.last = last;\n this.numItemsInViewport = numItemsInViewport;\n this.d_numToleratedItems = numToleratedItems;\n\n if (this._showLoader()) {\n this.loaderArr = this.both() ? Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) : Array.from({ length: numItemsInViewport });\n }\n\n if (this._lazy()) {\n Promise.resolve().then(() => {\n this.lazyLoadState = {\n first: this._step() ? (this.both() ? { rows: 0, cols: first.cols } : 0) : first,\n last: Math.min(this._step() ? this._step() : this.last, (<any[]>this._items()).length)\n };\n\n this.handleEvents('onLazyLoad', this.lazyLoadState);\n });\n }\n }\n\n calculateAutoSize() {\n if (this._autoSize() && !this.d_loading) {\n Promise.resolve().then(() => {\n if (this.contentEl) {\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = 'auto';\n this.contentEl.style.position = 'relative';\n (<ElementRef>this.elementViewChild()).nativeElement.style.contain = 'none';\n\n const [contentWidth, contentHeight] = [getWidth(this.contentEl), getHeight(this.contentEl)];\n\n if (contentWidth !== this.defaultContentWidth) {\n (<ElementRef>this.elementViewChild()).nativeElement.style.width = '';\n }\n\n if (contentHeight !== this.defaultContentHeight) {\n (<ElementRef>this.elementViewChild()).nativeElement.style.height = '';\n }\n\n const [width, height] = [getWidth((<ElementRef>this.elementViewChild()).nativeElement), getHeight((<ElementRef>this.elementViewChild()).nativeElement)];\n\n if (this.both() || this.horizontal()) {\n (<ElementRef>this.elementViewChild()).nativeElement.style.width = width < <number>this.defaultWidth ? width + 'px' : this._scrollWidth() || this.defaultWidth + 'px';\n }\n\n if (this.both() || this.vertical()) {\n (<ElementRef>this.elementViewChild()).nativeElement.style.height = height < <number>this.defaultHeight ? height + 'px' : this._scrollHeight() || this.defaultHeight + 'px';\n }\n\n this.contentEl.style.minHeight = this.contentEl.style.minWidth = '';\n this.contentEl.style.position = '';\n (<ElementRef>this.elementViewChild()).nativeElement.style.contain = '';\n }\n });\n }\n }\n\n getLast(last = 0, isCols = false) {\n const items = this._items();\n const columns = this._columns();\n\n return items ? Math.min(isCols ? (columns || items[0]).length : items.length, last) : 0;\n }\n\n getContentPosition() {\n if (this.contentEl) {\n const style = getComputedStyle(this.contentEl);\n const left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);\n const right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);\n const top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);\n const bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);\n\n return { left, right, top, bottom, x: left + right, y: top + bottom };\n }\n\n return { left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };\n }\n\n setSize() {\n const nativeElement = this.elementViewChild()?.nativeElement;\n\n if (nativeElement) {\n const parentElement = nativeElement.parentElement?.parentElement;\n\n const elementWidth = nativeElement.offsetWidth;\n const parentWidth = parentElement?.offsetWidth || 0;\n const width = this._scrollWidth() || `${elementWidth || parentWidth}px`;\n\n const elementHeight = nativeElement.offsetHeight;\n const parentHeight = parentElement?.offsetHeight || 0;\n const height = this._scrollHeight() || `${elementHeight || parentHeight}px`;\n\n const setProp = (_name: string, _value: any) => (nativeElement.style[_name] = _value);\n\n if (this.both() || this.horizontal()) {\n setProp('height', height);\n setProp('width', width);\n } else {\n setProp('height', height);\n }\n }\n }\n\n setSpacerSize() {\n const items = this._items();\n\n if (items) {\n const contentPos = this.getContentPosition();\n const setProp = (_name: string, _value: any, _size: number, _cpos: number = 0) =>\n (this.spacerStyle = {\n ...this.spacerStyle,\n ...{ [`${_name}`]: (_value || []).length * _size + _cpos + 'px' }\n });\n\n if (this.both()) {\n setProp('height', items, (<number[]>this._itemSize())[0], contentPos.y);\n setProp('width', this._columns() || items[1], (<number[]>this._itemSize())[1], contentPos.x);\n } else {\n if (this.horizontal()) {\n setProp('width', this._columns() || items, <number>this._itemSize(), contentPos.x);\n } else {\n setProp('height', items, <number>this._itemSize(), contentPos.y);\n }\n }\n }\n }\n\n setContentPosition(pos: any) {\n if (this.contentEl && !this._appendOnly()) {\n const first = pos ? pos.first : this.first;\n const calculateTranslateVal = (_first: number, _size: number) => _first * _size;\n const setTransform = (_x = 0, _y = 0) => (this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } });\n\n if (this.both()) {\n setTransform(calculateTranslateVal(first.cols, (<number[]>this._itemSize())[1]), calculateTranslateVal(first.rows, (<number[]>this._itemSize())[0]));\n } else {\n const translateVal = calculateTranslateVal(first, <number>this._itemSize());\n\n if (this.horizontal()) {\n setTransform(translateVal, 0);\n } else {\n setTransform(0, translateVal);\n }\n }\n }\n }\n\n onScrollPositionChange(event: Event) {\n const target = event.target;\n\n if (!target) {\n throw new Error('Event target is null');\n }\n\n const contentPos = this.getContentPosition();\n const calculateScrollPos = (_pos: number, _cpos: number) => (_pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0);\n const calculateCurrentIndex = (_pos: number, _size: number) => (_size || _pos ? Math.floor(_pos / (_size || _pos)) : 0);\n\n const calculateTriggerIndex = (_currentIndex: number, _first: number, _last: number, _num: number, _numT: number, _isScrollDownOrRight: any) =>\n _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n\n const calculateFirst = (_currentIndex: number, _triggerIndex: number, _first: number, _last: number, _num: number, _numT: number, _isScrollDownOrRight: any) => {\n if (_currentIndex <= _numT) return 0;\n else return Math.max(0, _isScrollDownOrRight ? (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);\n };\n\n const calculateLast = (_currentIndex: number, _first: number, _last: number, _num: number, _numT: number, _isCols = false) => {\n let lastValue = _first + _num + 2 * _numT;\n\n if (_currentIndex >= _numT) {\n lastValue += _numT + 1;\n }\n\n return this.getLast(lastValue, _isCols);\n };\n\n const scrollTop = calculateScrollPos((<HTMLElement>target).scrollTop, contentPos.top);\n const scrollLeft = calculateScrollPos((<HTMLElement>target).scrollLeft, contentPos.left);\n\n let newFirst = this.both() ? { rows: 0, cols: 0 } : 0;\n let newLast = this.last;\n let isRangeChanged = false;\n let newScrollPos = this.lastScrollPos;\n\n if (this.both()) {\n const isScrollDown = this.lastScrollPos.top <= scrollTop;\n const isScrollRight = this.lastScrollPos.left <= scrollLeft;\n\n if (!this._appendOnly() || (this._appendOnly() && (isScrollDown || isScrollRight))) {\n const currentIndex = {\n rows: calculateCurrentIndex(scrollTop, (<number[]>this._itemSize())[0]),\n cols: calculateCurrentIndex(scrollLeft, (<number[]>this._itemSize())[1])\n };\n const triggerIndex = {\n rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n\n newFirst = {\n rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),\n cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)\n };\n newLast = {\n rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),\n cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)\n };\n\n isRangeChanged = newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows || newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols || this.isRangeChanged;\n newScrollPos = { top: scrollTop, left: scrollLeft };\n }\n } else {\n const scrollPos = this.horizontal() ? scrollLeft : scrollTop;\n const isScrollDownOrRight = this.lastScrollPos <= scrollPos;\n\n if (!this._appendOnly() || (this._appendOnly() && isScrollDownOrRight)) {\n const currentIndex = calculateCurrentIndex(scrollPos, <number>this._itemSize());\n const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n\n newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);\n newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);\n isRangeChanged = newFirst !== this.first || newLast !== this.last || this.isRangeChanged;\n newScrollPos = scrollPos;\n }\n }\n\n return {\n first: newFirst,\n last: newLast,\n isRangeChanged,\n scrollPos: newScrollPos\n };\n }\n\n onScrollChange(event: Event) {\n const { first, last, isRangeChanged, scrollPos } = this.onScrollPositionChange(event);\n\n if (isRangeChanged) {\n const newState = { first, last };\n\n this.setContentPosition(newState);\n\n this.first = first;\n this.last = last;\n this.lastScrollPos = scrollPos;\n\n this.handleEvents('onScrollIndexChange', newState);\n\n if (this._lazy() && this.isPageChanged(first)) {\n const lazyLoadState = {\n first: this._step() ? Math.min(this.getPageByFirst(first) * this._step(), (<any[]>this._items()).length - this._step()) : first,\n last: Math.min(this._step() ? (this.getPageByFirst(first) + 1) * this._step() : last, (<any[]>this._items()).length)\n };\n const isLazyStateChanged = this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;\n\n if (isLazyStateChanged) {\n this.handleEvents('onLazyLoad', lazyLoadState);\n }\n\n this.lazyLoadState = lazyLoadState;\n }\n }\n }\n\n onContainerScroll(event: Event) {\n this.handleEvents('onScroll', { originalEvent: event });\n\n if (this._delay()) {\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n }\n\n if (!this.d_loading && this._showLoader()) {\n const { isRangeChanged } = this.onScrollPositionChange(event);\n const changed = isRangeChanged || (this._step() ? this.isPageChanged() : false);\n\n if (changed) {\n this.d_loading = true;\n\n this.cd.detectChanges();\n }\n }\n\n this.scrollTimeout = setTimeout(() => {\n this.onScrollChange(event);\n\n if (this.d_loading && this._showLoader() && (!this._lazy() || this._loading() === undefined)) {\n this.d_loading = false;\n this.page = this.getPageByFirst();\n }\n\n this.cd.detectChanges();\n }, this._delay());\n } else {\n if (!this.d_loading) {\n this.onScrollChange(event);\n }\n }\n }\n\n bindResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.windowResizeListener) {\n const window = this.document.defaultView as Window;\n const event = isTouchDevice() ? 'orientationchange' : 'resize';\n\n this.windowResizeListener = this.renderer.listen(window, event, this.onWindowResize.bind(this));\n }\n }\n }\n\n unbindResizeListener() {\n if (this.windowResizeListener) {\n this.windowResizeListener();\n this.windowResizeListener = null;\n }\n }\n\n onWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n\n this.resizeTimeout = setTimeout(() => {\n if (isVisible(this.elementViewChild()?.nativeElement)) {\n const [width, height] = [getWidth(this.elementViewChild()?.nativeElement), getHeight(this.elementViewChild()?.nativeElement)];\n const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];\n const reinit = this.both() ? isDiffWidth || isDiffHeight : this.horizontal() ? isDiffWidth : this.vertical() ? isDiffHeight : false;\n\n if (reinit) {\n this.d_numToleratedItems = this._numToleratedItems();\n this.defaultWidth = width;\n this.defaultHeight = height;\n this.defaultContentWidth = getWidth(this.contentEl);\n this.defaultContentHeight = getHeight(this.contentEl);\n\n this.init();\n }\n }\n }, this._resizeDelay());\n }\n\n handleEvents(name: string, params: any) {\n if (this._destroyed) return;\n\n const opts = this.options();\n\n return opts && (opts as any)[name] ? (opts as any)[name](params) : this[name].emit(params);\n }\n\n getContentTemplateContext(): ScrollerContentTemplateContext {\n return {\n $implicit: this.loadedItems,\n options: this.getContentOptions()\n };\n }\n\n getItemTemplateContext(item: any, index: number): ScrollerItemTemplateContext {\n return {\n $implicit: item,\n options: this.getOptions(index)\n };\n }\n\n getLoaderTemplateContext(index: number) {\n return {\n options: this.getLoaderOptions(index, this.both() && { numCols: this.numItemsInViewport.cols })\n };\n }\n\n getDisabledContentTemplateContext(): ScrollerContentTemplateContext {\n return {\n $implicit: this.items(),\n options: { rows: this._items() ?? undefined, columns: this.loadedColumns }\n };\n }\n\n getContentOptions() {\n return {\n contentStyleClass: `p-virtualscroller-content ${this.d_loading ? 'p-virtualscroller-loading' : ''}`,\n items: this.loadedItems,\n getItemOptions: (index: number) => this.getOptions(index),\n loading: this.d_loading,\n getLoaderOptions: (index: number, options?: any) => this.getLoaderOptions(index, options),\n itemSize: this._itemSize(),\n rows: this.loadedRows,\n columns: this.loadedColumns,\n spacerStyle: this.spacerStyle,\n contentStyle: this.contentStyle,\n vertical: this.vertical(),\n horizontal: this.horizontal(),\n both: this.both(),\n scrollTo: this.scrollTo.bind(this),\n scrollToIndex: this.scrollToIndex.bind(this),\n orientation: this._orientation(),\n scrollableElement: this.elementViewChild()?.nativeElement\n };\n }\n\n getOptions(renderedIndex: number) {\n const count = (this._items() || []).length;\n const index = this.both() ? this.first.rows + renderedIndex : this.first + renderedIndex;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0\n };\n }\n\n getLoaderOptions(index: number, extOptions: any) {\n const count = this.loaderArr.length;\n\n return {\n index,\n count,\n first: index === 0,\n last: index === count - 1,\n even: index % 2 === 0,\n odd: index % 2 !== 0,\n loading: this.d_loading,\n ...extOptions\n };\n }\n}\n\n@NgModule({\n imports: [Scroller],\n exports: [Scroller]\n})\nexport class ScrollerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["SpinnerIcon"],"mappings":"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"}