@qius.solutions/parallel-ui-angular 1.0.0

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 (1830) hide show
  1. package/LICENSE +88 -0
  2. package/README.md +254 -0
  3. package/accordion/accordion.d.ts +77 -0
  4. package/accordion/index.d.ts +5 -0
  5. package/accordion/public_api.d.ts +1 -0
  6. package/animate/animate.d.ts +27 -0
  7. package/animate/index.d.ts +5 -0
  8. package/animate/public_api.d.ts +1 -0
  9. package/api/blockableui.d.ts +3 -0
  10. package/api/confirmaeventtype.d.ts +5 -0
  11. package/api/confirmation.d.ts +24 -0
  12. package/api/confirmationservice.d.ts +13 -0
  13. package/api/contextmenuservice.d.ts +10 -0
  14. package/api/filtermatchmode.d.ts +22 -0
  15. package/api/filtermetadata.d.ts +5 -0
  16. package/api/filteroperator.d.ts +4 -0
  17. package/api/filterservice.d.ts +29 -0
  18. package/api/index.d.ts +5 -0
  19. package/api/lazyloadevent.d.ts +15 -0
  20. package/api/megamenuitem.d.ts +36 -0
  21. package/api/menuitem.d.ts +55 -0
  22. package/api/message.d.ts +15 -0
  23. package/api/messageservice.d.ts +13 -0
  24. package/api/overlayoptions.d.ts +50 -0
  25. package/api/overlayservice.d.ts +9 -0
  26. package/api/parallel-ui-angular-config.d.ts +20 -0
  27. package/api/parallel-ui-icons.d.ts +260 -0
  28. package/api/public_api.d.ts +29 -0
  29. package/api/selectitem.d.ts +8 -0
  30. package/api/selectitemgroup.d.ts +6 -0
  31. package/api/shared.d.ts +25 -0
  32. package/api/sortevent.d.ts +8 -0
  33. package/api/sortmeta.d.ts +4 -0
  34. package/api/tablestate.d.ts +20 -0
  35. package/api/translation.d.ts +47 -0
  36. package/api/translationkeys.d.ts +42 -0
  37. package/api/treedragdropservice.d.ts +12 -0
  38. package/api/treenode.d.ts +19 -0
  39. package/api/treenodedragevent.d.ts +8 -0
  40. package/autocomplete/autocomplete.d.ts +183 -0
  41. package/autocomplete/index.d.ts +5 -0
  42. package/autocomplete/public_api.d.ts +1 -0
  43. package/autofocus/autofocus.d.ts +17 -0
  44. package/autofocus/index.d.ts +5 -0
  45. package/autofocus/public_api.d.ts +1 -0
  46. package/avatar/avatar.d.ts +28 -0
  47. package/avatar/index.d.ts +5 -0
  48. package/avatar/public_api.d.ts +1 -0
  49. package/avatargroup/avatargroup.d.ts +13 -0
  50. package/avatargroup/index.d.ts +5 -0
  51. package/avatargroup/public_api.d.ts +1 -0
  52. package/badge/badge.d.ts +56 -0
  53. package/badge/index.d.ts +5 -0
  54. package/badge/public_api.d.ts +1 -0
  55. package/baseicon/baseicon.d.ts +14 -0
  56. package/baseicon/index.d.ts +5 -0
  57. package/baseicon/public_api.d.ts +1 -0
  58. package/blockui/blockui.d.ts +37 -0
  59. package/blockui/index.d.ts +5 -0
  60. package/blockui/public_api.d.ts +1 -0
  61. package/breadcrumb/breadcrumb.d.ts +29 -0
  62. package/breadcrumb/index.d.ts +5 -0
  63. package/breadcrumb/public_api.d.ts +1 -0
  64. package/button/button.d.ts +87 -0
  65. package/button/index.d.ts +5 -0
  66. package/button/public_api.d.ts +1 -0
  67. package/calendar/calendar.d.ts +353 -0
  68. package/calendar/index.d.ts +5 -0
  69. package/calendar/public_api.d.ts +1 -0
  70. package/card/card.d.ts +30 -0
  71. package/card/index.d.ts +5 -0
  72. package/card/public_api.d.ts +1 -0
  73. package/carousel/carousel.d.ts +112 -0
  74. package/carousel/index.d.ts +5 -0
  75. package/carousel/public_api.d.ts +1 -0
  76. package/cascadeselect/cascadeselect.d.ts +156 -0
  77. package/cascadeselect/index.d.ts +5 -0
  78. package/cascadeselect/public_api.d.ts +1 -0
  79. package/chart/chart.d.ts +39 -0
  80. package/chart/index.d.ts +5 -0
  81. package/chart/public_api.d.ts +1 -0
  82. package/checkbox/checkbox.d.ts +56 -0
  83. package/checkbox/index.d.ts +5 -0
  84. package/checkbox/public_api.d.ts +1 -0
  85. package/chip/chip.d.ts +33 -0
  86. package/chip/index.d.ts +5 -0
  87. package/chip/public_api.d.ts +1 -0
  88. package/chips/chips.d.ts +73 -0
  89. package/chips/index.d.ts +5 -0
  90. package/chips/public_api.d.ts +1 -0
  91. package/colorpicker/colorpicker.d.ts +141 -0
  92. package/colorpicker/index.d.ts +5 -0
  93. package/colorpicker/public_api.d.ts +1 -0
  94. package/confirmdialog/confirmdialog.d.ts +116 -0
  95. package/confirmdialog/index.d.ts +5 -0
  96. package/confirmdialog/public_api.d.ts +1 -0
  97. package/confirmpopup/confirmpopup.d.ts +71 -0
  98. package/confirmpopup/index.d.ts +5 -0
  99. package/confirmpopup/public_api.d.ts +1 -0
  100. package/contextmenu/contextmenu.d.ts +92 -0
  101. package/contextmenu/index.d.ts +5 -0
  102. package/contextmenu/public_api.d.ts +1 -0
  103. package/dataview/dataview.d.ts +104 -0
  104. package/dataview/index.d.ts +5 -0
  105. package/dataview/public_api.d.ts +1 -0
  106. package/defer/defer.d.ts +29 -0
  107. package/defer/index.d.ts +5 -0
  108. package/defer/public_api.d.ts +1 -0
  109. package/dialog/dialog.d.ts +155 -0
  110. package/dialog/index.d.ts +5 -0
  111. package/dialog/public_api.d.ts +1 -0
  112. package/divider/divider.d.ts +29 -0
  113. package/divider/index.d.ts +5 -0
  114. package/divider/public_api.d.ts +1 -0
  115. package/dock/dock.d.ts +43 -0
  116. package/dock/index.d.ts +5 -0
  117. package/dock/public_api.d.ts +1 -0
  118. package/dom/connectedoverlayscrollhandler.d.ts +9 -0
  119. package/dom/domhandler.d.ts +82 -0
  120. package/dom/index.d.ts +5 -0
  121. package/dom/public_api.d.ts +2 -0
  122. package/dragdrop/dragdrop.d.ts +65 -0
  123. package/dragdrop/index.d.ts +5 -0
  124. package/dragdrop/public_api.d.ts +1 -0
  125. package/dropdown/dropdown.d.ts +225 -0
  126. package/dropdown/index.d.ts +5 -0
  127. package/dropdown/public_api.d.ts +1 -0
  128. package/dynamicdialog/dialogservice.d.ts +18 -0
  129. package/dynamicdialog/dynamicdialog-config.d.ts +29 -0
  130. package/dynamicdialog/dynamicdialog-injector.d.ts +8 -0
  131. package/dynamicdialog/dynamicdialog-ref.d.ts +25 -0
  132. package/dynamicdialog/dynamicdialog.d.ts +101 -0
  133. package/dynamicdialog/dynamicdialogcontent.d.ts +8 -0
  134. package/dynamicdialog/index.d.ts +5 -0
  135. package/dynamicdialog/public_api.d.ts +6 -0
  136. package/editor/editor.d.ts +50 -0
  137. package/editor/index.d.ts +5 -0
  138. package/editor/public_api.d.ts +1 -0
  139. package/esm2020/accordion/accordion.mjs +396 -0
  140. package/esm2020/accordion/public_api.mjs +2 -0
  141. package/esm2020/accordion/qius.solutions-parallel-ui-angular-accordion.mjs +5 -0
  142. package/esm2020/animate/animate.mjs +79 -0
  143. package/esm2020/animate/public_api.mjs +2 -0
  144. package/esm2020/animate/qius.solutions-parallel-ui-angular-animate.mjs +5 -0
  145. package/esm2020/api/blockableui.mjs +2 -0
  146. package/esm2020/api/confirmaeventtype.mjs +7 -0
  147. package/esm2020/api/confirmation.mjs +2 -0
  148. package/esm2020/api/confirmationservice.mjs +28 -0
  149. package/esm2020/api/contextmenuservice.mjs +23 -0
  150. package/esm2020/api/filtermatchmode.mjs +23 -0
  151. package/esm2020/api/filtermetadata.mjs +2 -0
  152. package/esm2020/api/filteroperator.mjs +5 -0
  153. package/esm2020/api/filterservice.mjs +221 -0
  154. package/esm2020/api/lazyloadevent.mjs +2 -0
  155. package/esm2020/api/megamenuitem.mjs +2 -0
  156. package/esm2020/api/menuitem.mjs +2 -0
  157. package/esm2020/api/message.mjs +2 -0
  158. package/esm2020/api/messageservice.mjs +30 -0
  159. package/esm2020/api/overlayoptions.mjs +2 -0
  160. package/esm2020/api/overlayservice.mjs +21 -0
  161. package/esm2020/api/parallel-ui-angular-config.mjs +84 -0
  162. package/esm2020/api/parallel-ui-icons.mjs +261 -0
  163. package/esm2020/api/public_api.mjs +30 -0
  164. package/esm2020/api/qius.solutions-parallel-ui-angular-api.mjs +5 -0
  165. package/esm2020/api/selectitem.mjs +2 -0
  166. package/esm2020/api/selectitemgroup.mjs +2 -0
  167. package/esm2020/api/shared.mjs +62 -0
  168. package/esm2020/api/sortevent.mjs +2 -0
  169. package/esm2020/api/sortmeta.mjs +2 -0
  170. package/esm2020/api/tablestate.mjs +2 -0
  171. package/esm2020/api/translation.mjs +2 -0
  172. package/esm2020/api/translationkeys.mjs +43 -0
  173. package/esm2020/api/treedragdropservice.mjs +23 -0
  174. package/esm2020/api/treenode.mjs +2 -0
  175. package/esm2020/api/treenodedragevent.mjs +2 -0
  176. package/esm2020/autocomplete/autocomplete.mjs +1144 -0
  177. package/esm2020/autocomplete/public_api.mjs +2 -0
  178. package/esm2020/autocomplete/qius.solutions-parallel-ui-angular-autocomplete.mjs +5 -0
  179. package/esm2020/autofocus/autofocus.mjs +51 -0
  180. package/esm2020/autofocus/public_api.mjs +2 -0
  181. package/esm2020/autofocus/qius.solutions-parallel-ui-angular-autofocus.mjs +5 -0
  182. package/esm2020/avatar/avatar.mjs +75 -0
  183. package/esm2020/avatar/public_api.mjs +2 -0
  184. package/esm2020/avatar/qius.solutions-parallel-ui-angular-avatar.mjs +5 -0
  185. package/esm2020/avatargroup/avatargroup.mjs +40 -0
  186. package/esm2020/avatargroup/public_api.mjs +2 -0
  187. package/esm2020/avatargroup/qius.solutions-parallel-ui-angular-avatargroup.mjs +5 -0
  188. package/esm2020/badge/badge.mjs +182 -0
  189. package/esm2020/badge/public_api.mjs +2 -0
  190. package/esm2020/badge/qius.solutions-parallel-ui-angular-badge.mjs +5 -0
  191. package/esm2020/baseicon/baseicon.mjs +41 -0
  192. package/esm2020/baseicon/public_api.mjs +2 -0
  193. package/esm2020/baseicon/qius.solutions-parallel-ui-angular-baseicon.mjs +5 -0
  194. package/esm2020/blockui/blockui.mjs +140 -0
  195. package/esm2020/blockui/public_api.mjs +2 -0
  196. package/esm2020/blockui/qius.solutions-parallel-ui-angular-blockui.mjs +5 -0
  197. package/esm2020/breadcrumb/breadcrumb.mjs +296 -0
  198. package/esm2020/breadcrumb/public_api.mjs +2 -0
  199. package/esm2020/breadcrumb/qius.solutions-parallel-ui-angular-breadcrumb.mjs +5 -0
  200. package/esm2020/button/button.mjs +362 -0
  201. package/esm2020/button/public_api.mjs +2 -0
  202. package/esm2020/button/qius.solutions-parallel-ui-angular-button.mjs +5 -0
  203. package/esm2020/calendar/calendar.mjs +3123 -0
  204. package/esm2020/calendar/public_api.mjs +2 -0
  205. package/esm2020/calendar/qius.solutions-parallel-ui-angular-calendar.mjs +5 -0
  206. package/esm2020/card/card.mjs +126 -0
  207. package/esm2020/card/public_api.mjs +2 -0
  208. package/esm2020/card/qius.solutions-parallel-ui-angular-card.mjs +5 -0
  209. package/esm2020/carousel/carousel.mjs +696 -0
  210. package/esm2020/carousel/public_api.mjs +2 -0
  211. package/esm2020/carousel/qius.solutions-parallel-ui-angular-carousel.mjs +5 -0
  212. package/esm2020/cascadeselect/cascadeselect.mjs +766 -0
  213. package/esm2020/cascadeselect/public_api.mjs +2 -0
  214. package/esm2020/cascadeselect/qius.solutions-parallel-ui-angular-cascadeselect.mjs +5 -0
  215. package/esm2020/chart/chart.mjs +142 -0
  216. package/esm2020/chart/public_api.mjs +2 -0
  217. package/esm2020/chart/qius.solutions-parallel-ui-angular-chart.mjs +5 -0
  218. package/esm2020/checkbox/checkbox.mjs +247 -0
  219. package/esm2020/checkbox/public_api.mjs +2 -0
  220. package/esm2020/checkbox/qius.solutions-parallel-ui-angular-checkbox.mjs +5 -0
  221. package/esm2020/chip/chip.mjs +113 -0
  222. package/esm2020/chip/public_api.mjs +2 -0
  223. package/esm2020/chip/qius.solutions-parallel-ui-angular-chip.mjs +5 -0
  224. package/esm2020/chips/chips.mjs +375 -0
  225. package/esm2020/chips/public_api.mjs +2 -0
  226. package/esm2020/chips/qius.solutions-parallel-ui-angular-chips.mjs +5 -0
  227. package/esm2020/colorpicker/colorpicker.mjs +685 -0
  228. package/esm2020/colorpicker/public_api.mjs +2 -0
  229. package/esm2020/colorpicker/qius.solutions-parallel-ui-angular-colorpicker.mjs +5 -0
  230. package/esm2020/confirmdialog/confirmdialog.mjs +606 -0
  231. package/esm2020/confirmdialog/public_api.mjs +2 -0
  232. package/esm2020/confirmdialog/qius.solutions-parallel-ui-angular-confirmdialog.mjs +5 -0
  233. package/esm2020/confirmpopup/confirmpopup.mjs +394 -0
  234. package/esm2020/confirmpopup/public_api.mjs +2 -0
  235. package/esm2020/confirmpopup/qius.solutions-parallel-ui-angular-confirmpopup.mjs +5 -0
  236. package/esm2020/contextmenu/contextmenu.mjs +691 -0
  237. package/esm2020/contextmenu/public_api.mjs +2 -0
  238. package/esm2020/contextmenu/qius.solutions-parallel-ui-angular-contextmenu.mjs +5 -0
  239. package/esm2020/dataview/dataview.mjs +512 -0
  240. package/esm2020/dataview/public_api.mjs +2 -0
  241. package/esm2020/dataview/qius.solutions-parallel-ui-angular-dataview.mjs +5 -0
  242. package/esm2020/defer/defer.mjs +92 -0
  243. package/esm2020/defer/public_api.mjs +2 -0
  244. package/esm2020/defer/qius.solutions-parallel-ui-angular-defer.mjs +5 -0
  245. package/esm2020/dialog/dialog.mjs +833 -0
  246. package/esm2020/dialog/public_api.mjs +2 -0
  247. package/esm2020/dialog/qius.solutions-parallel-ui-angular-dialog.mjs +5 -0
  248. package/esm2020/divider/divider.mjs +69 -0
  249. package/esm2020/divider/public_api.mjs +2 -0
  250. package/esm2020/divider/qius.solutions-parallel-ui-angular-divider.mjs +5 -0
  251. package/esm2020/dock/dock.mjs +210 -0
  252. package/esm2020/dock/public_api.mjs +2 -0
  253. package/esm2020/dock/qius.solutions-parallel-ui-angular-dock.mjs +5 -0
  254. package/esm2020/dom/connectedoverlayscrollhandler.mjs +27 -0
  255. package/esm2020/dom/domhandler.mjs +600 -0
  256. package/esm2020/dom/public_api.mjs +3 -0
  257. package/esm2020/dom/qius.solutions-parallel-ui-angular-dom.mjs +5 -0
  258. package/esm2020/dragdrop/dragdrop.mjs +251 -0
  259. package/esm2020/dragdrop/public_api.mjs +2 -0
  260. package/esm2020/dragdrop/qius.solutions-parallel-ui-angular-dragdrop.mjs +5 -0
  261. package/esm2020/dropdown/dropdown.mjs +1372 -0
  262. package/esm2020/dropdown/public_api.mjs +2 -0
  263. package/esm2020/dropdown/qius.solutions-parallel-ui-angular-dropdown.mjs +5 -0
  264. package/esm2020/dynamicdialog/dialogservice.mjs +60 -0
  265. package/esm2020/dynamicdialog/dynamicdialog-config.mjs +3 -0
  266. package/esm2020/dynamicdialog/dynamicdialog-injector.mjs +13 -0
  267. package/esm2020/dynamicdialog/dynamicdialog-ref.mjs +41 -0
  268. package/esm2020/dynamicdialog/dynamicdialog.mjs +562 -0
  269. package/esm2020/dynamicdialog/dynamicdialogcontent.mjs +19 -0
  270. package/esm2020/dynamicdialog/public_api.mjs +7 -0
  271. package/esm2020/dynamicdialog/qius.solutions-parallel-ui-angular-dynamicdialog.mjs +5 -0
  272. package/esm2020/editor/editor.mjs +309 -0
  273. package/esm2020/editor/public_api.mjs +2 -0
  274. package/esm2020/editor/qius.solutions-parallel-ui-angular-editor.mjs +5 -0
  275. package/esm2020/fieldset/fieldset.mjs +214 -0
  276. package/esm2020/fieldset/public_api.mjs +2 -0
  277. package/esm2020/fieldset/qius.solutions-parallel-ui-angular-fieldset.mjs +5 -0
  278. package/esm2020/fileupload/fileupload.mjs +754 -0
  279. package/esm2020/fileupload/public_api.mjs +2 -0
  280. package/esm2020/fileupload/qius.solutions-parallel-ui-angular-fileupload.mjs +5 -0
  281. package/esm2020/focustrap/focustrap.mjs +52 -0
  282. package/esm2020/focustrap/public_api.mjs +2 -0
  283. package/esm2020/focustrap/qius.solutions-parallel-ui-angular-focustrap.mjs +5 -0
  284. package/esm2020/galleria/galleria.mjs +1187 -0
  285. package/esm2020/galleria/public_api.mjs +2 -0
  286. package/esm2020/galleria/qius.solutions-parallel-ui-angular-galleria.mjs +5 -0
  287. package/esm2020/icons/angledoubledown/angledoubledown.mjs +35 -0
  288. package/esm2020/icons/angledoubledown/public_api.mjs +2 -0
  289. package/esm2020/icons/angledoubledown/qius.solutions-parallel-ui-angular-icons-angledoubledown.mjs +5 -0
  290. package/esm2020/icons/angledoubleleft/angledoubleleft.mjs +35 -0
  291. package/esm2020/icons/angledoubleleft/public_api.mjs +2 -0
  292. package/esm2020/icons/angledoubleleft/qius.solutions-parallel-ui-angular-icons-angledoubleleft.mjs +5 -0
  293. package/esm2020/icons/angledoubleright/angledoubleright.mjs +35 -0
  294. package/esm2020/icons/angledoubleright/public_api.mjs +2 -0
  295. package/esm2020/icons/angledoubleright/qius.solutions-parallel-ui-angular-icons-angledoubleright.mjs +5 -0
  296. package/esm2020/icons/angledoubleup/angledoubleup.mjs +35 -0
  297. package/esm2020/icons/angledoubleup/public_api.mjs +2 -0
  298. package/esm2020/icons/angledoubleup/qius.solutions-parallel-ui-angular-icons-angledoubleup.mjs +5 -0
  299. package/esm2020/icons/angledown/angledown.mjs +31 -0
  300. package/esm2020/icons/angledown/public_api.mjs +2 -0
  301. package/esm2020/icons/angledown/qius.solutions-parallel-ui-angular-icons-angledown.mjs +5 -0
  302. package/esm2020/icons/angleleft/angleleft.mjs +31 -0
  303. package/esm2020/icons/angleleft/public_api.mjs +2 -0
  304. package/esm2020/icons/angleleft/qius.solutions-parallel-ui-angular-icons-angleleft.mjs +5 -0
  305. package/esm2020/icons/angleright/angleright.mjs +31 -0
  306. package/esm2020/icons/angleright/public_api.mjs +2 -0
  307. package/esm2020/icons/angleright/qius.solutions-parallel-ui-angular-icons-angleright.mjs +5 -0
  308. package/esm2020/icons/angleup/angleup.mjs +31 -0
  309. package/esm2020/icons/angleup/public_api.mjs +2 -0
  310. package/esm2020/icons/angleup/qius.solutions-parallel-ui-angular-icons-angleup.mjs +5 -0
  311. package/esm2020/icons/arrowdown/arrowdown.mjs +49 -0
  312. package/esm2020/icons/arrowdown/public_api.mjs +2 -0
  313. package/esm2020/icons/arrowdown/qius.solutions-parallel-ui-angular-icons-arrowdown.mjs +5 -0
  314. package/esm2020/icons/arrowdownleft/arrowdownleft.mjs +31 -0
  315. package/esm2020/icons/arrowdownleft/public_api.mjs +2 -0
  316. package/esm2020/icons/arrowdownleft/qius.solutions-parallel-ui-angular-icons-arrowdownleft.mjs +5 -0
  317. package/esm2020/icons/arrowdownright/arrowdownright.mjs +31 -0
  318. package/esm2020/icons/arrowdownright/public_api.mjs +2 -0
  319. package/esm2020/icons/arrowdownright/qius.solutions-parallel-ui-angular-icons-arrowdownright.mjs +5 -0
  320. package/esm2020/icons/arrowleft/arrowleft.mjs +49 -0
  321. package/esm2020/icons/arrowleft/public_api.mjs +2 -0
  322. package/esm2020/icons/arrowleft/qius.solutions-parallel-ui-angular-icons-arrowleft.mjs +5 -0
  323. package/esm2020/icons/arrowright/arrowright.mjs +35 -0
  324. package/esm2020/icons/arrowright/public_api.mjs +2 -0
  325. package/esm2020/icons/arrowright/qius.solutions-parallel-ui-angular-icons-arrowright.mjs +5 -0
  326. package/esm2020/icons/arrowup/arrowup.mjs +49 -0
  327. package/esm2020/icons/arrowup/public_api.mjs +2 -0
  328. package/esm2020/icons/arrowup/qius.solutions-parallel-ui-angular-icons-arrowup.mjs +5 -0
  329. package/esm2020/icons/ban/ban.mjs +45 -0
  330. package/esm2020/icons/ban/public_api.mjs +2 -0
  331. package/esm2020/icons/ban/qius.solutions-parallel-ui-angular-icons-ban.mjs +5 -0
  332. package/esm2020/icons/bars/bars.mjs +35 -0
  333. package/esm2020/icons/bars/public_api.mjs +2 -0
  334. package/esm2020/icons/bars/qius.solutions-parallel-ui-angular-icons-bars.mjs +5 -0
  335. package/esm2020/icons/calendar/calendar.mjs +31 -0
  336. package/esm2020/icons/calendar/public_api.mjs +2 -0
  337. package/esm2020/icons/calendar/qius.solutions-parallel-ui-angular-icons-calendar.mjs +5 -0
  338. package/esm2020/icons/caretleft/caretleft.mjs +31 -0
  339. package/esm2020/icons/caretleft/public_api.mjs +2 -0
  340. package/esm2020/icons/caretleft/qius.solutions-parallel-ui-angular-icons-caretleft.mjs +5 -0
  341. package/esm2020/icons/caretright/caretright.mjs +31 -0
  342. package/esm2020/icons/caretright/public_api.mjs +2 -0
  343. package/esm2020/icons/caretright/qius.solutions-parallel-ui-angular-icons-caretright.mjs +5 -0
  344. package/esm2020/icons/check/check.mjs +31 -0
  345. package/esm2020/icons/check/public_api.mjs +2 -0
  346. package/esm2020/icons/check/qius.solutions-parallel-ui-angular-icons-check.mjs +5 -0
  347. package/esm2020/icons/chevrondown/chevrondown.mjs +31 -0
  348. package/esm2020/icons/chevrondown/public_api.mjs +2 -0
  349. package/esm2020/icons/chevrondown/qius.solutions-parallel-ui-angular-icons-chevrondown.mjs +5 -0
  350. package/esm2020/icons/chevronleft/chevronleft.mjs +31 -0
  351. package/esm2020/icons/chevronleft/public_api.mjs +2 -0
  352. package/esm2020/icons/chevronleft/qius.solutions-parallel-ui-angular-icons-chevronleft.mjs +5 -0
  353. package/esm2020/icons/chevronright/chevronright.mjs +31 -0
  354. package/esm2020/icons/chevronright/public_api.mjs +2 -0
  355. package/esm2020/icons/chevronright/qius.solutions-parallel-ui-angular-icons-chevronright.mjs +5 -0
  356. package/esm2020/icons/chevronup/chevronup.mjs +31 -0
  357. package/esm2020/icons/chevronup/public_api.mjs +2 -0
  358. package/esm2020/icons/chevronup/qius.solutions-parallel-ui-angular-icons-chevronup.mjs +5 -0
  359. package/esm2020/icons/exclamationtriangle/exclamationtriangle.mjs +61 -0
  360. package/esm2020/icons/exclamationtriangle/public_api.mjs +2 -0
  361. package/esm2020/icons/exclamationtriangle/qius.solutions-parallel-ui-angular-icons-exclamationtriangle.mjs +5 -0
  362. package/esm2020/icons/eye/eye.mjs +35 -0
  363. package/esm2020/icons/eye/public_api.mjs +2 -0
  364. package/esm2020/icons/eye/qius.solutions-parallel-ui-angular-icons-eye.mjs +5 -0
  365. package/esm2020/icons/eyeslash/eyeslash.mjs +49 -0
  366. package/esm2020/icons/eyeslash/public_api.mjs +2 -0
  367. package/esm2020/icons/eyeslash/qius.solutions-parallel-ui-angular-icons-eyeslash.mjs +5 -0
  368. package/esm2020/icons/filter/filter.mjs +45 -0
  369. package/esm2020/icons/filter/public_api.mjs +2 -0
  370. package/esm2020/icons/filter/qius.solutions-parallel-ui-angular-icons-filter.mjs +5 -0
  371. package/esm2020/icons/filterslash/filterslash.mjs +49 -0
  372. package/esm2020/icons/filterslash/public_api.mjs +2 -0
  373. package/esm2020/icons/filterslash/qius.solutions-parallel-ui-angular-icons-filterslash.mjs +5 -0
  374. package/esm2020/icons/home/home.mjs +49 -0
  375. package/esm2020/icons/home/public_api.mjs +2 -0
  376. package/esm2020/icons/home/qius.solutions-parallel-ui-angular-icons-home.mjs +5 -0
  377. package/esm2020/icons/infocircle/infocircle.mjs +49 -0
  378. package/esm2020/icons/infocircle/public_api.mjs +2 -0
  379. package/esm2020/icons/infocircle/qius.solutions-parallel-ui-angular-icons-infocircle.mjs +5 -0
  380. package/esm2020/icons/minus/minus.mjs +32 -0
  381. package/esm2020/icons/minus/public_api.mjs +2 -0
  382. package/esm2020/icons/minus/qius.solutions-parallel-ui-angular-icons-minus.mjs +5 -0
  383. package/esm2020/icons/pencil/pencil.mjs +45 -0
  384. package/esm2020/icons/pencil/public_api.mjs +2 -0
  385. package/esm2020/icons/pencil/qius.solutions-parallel-ui-angular-icons-pencil.mjs +5 -0
  386. package/esm2020/icons/plus/plus.mjs +45 -0
  387. package/esm2020/icons/plus/public_api.mjs +2 -0
  388. package/esm2020/icons/plus/qius.solutions-parallel-ui-angular-icons-plus.mjs +5 -0
  389. package/esm2020/icons/refresh/public_api.mjs +2 -0
  390. package/esm2020/icons/refresh/qius.solutions-parallel-ui-angular-icons-refresh.mjs +5 -0
  391. package/esm2020/icons/refresh/refresh.mjs +49 -0
  392. package/esm2020/icons/search/public_api.mjs +2 -0
  393. package/esm2020/icons/search/qius.solutions-parallel-ui-angular-icons-search.mjs +5 -0
  394. package/esm2020/icons/search/search.mjs +49 -0
  395. package/esm2020/icons/searchminus/public_api.mjs +2 -0
  396. package/esm2020/icons/searchminus/qius.solutions-parallel-ui-angular-icons-searchminus.mjs +5 -0
  397. package/esm2020/icons/searchminus/searchminus.mjs +49 -0
  398. package/esm2020/icons/searchplus/public_api.mjs +2 -0
  399. package/esm2020/icons/searchplus/qius.solutions-parallel-ui-angular-icons-searchplus.mjs +5 -0
  400. package/esm2020/icons/searchplus/searchplus.mjs +49 -0
  401. package/esm2020/icons/sortalt/public_api.mjs +2 -0
  402. package/esm2020/icons/sortalt/qius.solutions-parallel-ui-angular-icons-sortalt.mjs +5 -0
  403. package/esm2020/icons/sortalt/sortalt.mjs +57 -0
  404. package/esm2020/icons/sortamountdown/public_api.mjs +2 -0
  405. package/esm2020/icons/sortamountdown/qius.solutions-parallel-ui-angular-icons-sortamountdown.mjs +5 -0
  406. package/esm2020/icons/sortamountdown/sortamountdown.mjs +85 -0
  407. package/esm2020/icons/sortamountupalt/public_api.mjs +2 -0
  408. package/esm2020/icons/sortamountupalt/qius.solutions-parallel-ui-angular-icons-sortamountupalt.mjs +5 -0
  409. package/esm2020/icons/sortamountupalt/sortamountupalt.mjs +85 -0
  410. package/esm2020/icons/spinner/public_api.mjs +2 -0
  411. package/esm2020/icons/spinner/qius.solutions-parallel-ui-angular-icons-spinner.mjs +5 -0
  412. package/esm2020/icons/spinner/spinner.mjs +45 -0
  413. package/esm2020/icons/star/public_api.mjs +2 -0
  414. package/esm2020/icons/star/qius.solutions-parallel-ui-angular-icons-star.mjs +5 -0
  415. package/esm2020/icons/star/star.mjs +45 -0
  416. package/esm2020/icons/starfill/public_api.mjs +2 -0
  417. package/esm2020/icons/starfill/qius.solutions-parallel-ui-angular-icons-starfill.mjs +5 -0
  418. package/esm2020/icons/starfill/starfill.mjs +45 -0
  419. package/esm2020/icons/thlarge/public_api.mjs +2 -0
  420. package/esm2020/icons/thlarge/qius.solutions-parallel-ui-angular-icons-thlarge.mjs +5 -0
  421. package/esm2020/icons/thlarge/thlarge.mjs +49 -0
  422. package/esm2020/icons/times/public_api.mjs +2 -0
  423. package/esm2020/icons/times/qius.solutions-parallel-ui-angular-icons-times.mjs +5 -0
  424. package/esm2020/icons/times/times.mjs +31 -0
  425. package/esm2020/icons/timescircle/public_api.mjs +2 -0
  426. package/esm2020/icons/timescircle/qius.solutions-parallel-ui-angular-icons-timescircle.mjs +5 -0
  427. package/esm2020/icons/timescircle/timescircle.mjs +49 -0
  428. package/esm2020/icons/trash/public_api.mjs +2 -0
  429. package/esm2020/icons/trash/qius.solutions-parallel-ui-angular-icons-trash.mjs +5 -0
  430. package/esm2020/icons/trash/trash.mjs +49 -0
  431. package/esm2020/icons/undo/public_api.mjs +2 -0
  432. package/esm2020/icons/undo/qius.solutions-parallel-ui-angular-icons-undo.mjs +5 -0
  433. package/esm2020/icons/undo/undo.mjs +49 -0
  434. package/esm2020/icons/upload/public_api.mjs +2 -0
  435. package/esm2020/icons/upload/qius.solutions-parallel-ui-angular-icons-upload.mjs +5 -0
  436. package/esm2020/icons/upload/upload.mjs +49 -0
  437. package/esm2020/icons/windowmaximize/public_api.mjs +2 -0
  438. package/esm2020/icons/windowmaximize/qius.solutions-parallel-ui-angular-icons-windowmaximize.mjs +5 -0
  439. package/esm2020/icons/windowmaximize/windowmaximize.mjs +49 -0
  440. package/esm2020/icons/windowminimize/public_api.mjs +2 -0
  441. package/esm2020/icons/windowminimize/qius.solutions-parallel-ui-angular-icons-windowminimize.mjs +5 -0
  442. package/esm2020/icons/windowminimize/windowminimize.mjs +49 -0
  443. package/esm2020/image/image.mjs +321 -0
  444. package/esm2020/image/public_api.mjs +2 -0
  445. package/esm2020/image/qius.solutions-parallel-ui-angular-image.mjs +5 -0
  446. package/esm2020/inplace/inplace.mjs +168 -0
  447. package/esm2020/inplace/public_api.mjs +2 -0
  448. package/esm2020/inplace/qius.solutions-parallel-ui-angular-inplace.mjs +5 -0
  449. package/esm2020/inputmask/inputmask.mjs +697 -0
  450. package/esm2020/inputmask/public_api.mjs +2 -0
  451. package/esm2020/inputmask/qius.solutions-parallel-ui-angular-inputmask.mjs +5 -0
  452. package/esm2020/inputnumber/inputnumber.mjs +1189 -0
  453. package/esm2020/inputnumber/public_api.mjs +2 -0
  454. package/esm2020/inputnumber/qius.solutions-parallel-ui-angular-inputnumber.mjs +5 -0
  455. package/esm2020/inputswitch/inputswitch.mjs +160 -0
  456. package/esm2020/inputswitch/public_api.mjs +2 -0
  457. package/esm2020/inputswitch/qius.solutions-parallel-ui-angular-inputswitch.mjs +5 -0
  458. package/esm2020/inputtext/inputtext.mjs +55 -0
  459. package/esm2020/inputtext/public_api.mjs +2 -0
  460. package/esm2020/inputtext/qius.solutions-parallel-ui-angular-inputtext.mjs +5 -0
  461. package/esm2020/inputtextarea/inputtextarea.mjs +117 -0
  462. package/esm2020/inputtextarea/public_api.mjs +2 -0
  463. package/esm2020/inputtextarea/qius.solutions-parallel-ui-angular-inputtextarea.mjs +5 -0
  464. package/esm2020/keyfilter/keyfilter.mjs +214 -0
  465. package/esm2020/keyfilter/public_api.mjs +2 -0
  466. package/esm2020/keyfilter/qius.solutions-parallel-ui-angular-keyfilter.mjs +5 -0
  467. package/esm2020/knob/knob.mjs +283 -0
  468. package/esm2020/knob/public_api.mjs +2 -0
  469. package/esm2020/knob/qius.solutions-parallel-ui-angular-knob.mjs +5 -0
  470. package/esm2020/listbox/listbox.mjs +800 -0
  471. package/esm2020/listbox/public_api.mjs +2 -0
  472. package/esm2020/listbox/qius.solutions-parallel-ui-angular-listbox.mjs +5 -0
  473. package/esm2020/megamenu/megamenu.mjs +464 -0
  474. package/esm2020/megamenu/public_api.mjs +2 -0
  475. package/esm2020/megamenu/qius.solutions-parallel-ui-angular-megamenu.mjs +5 -0
  476. package/esm2020/menu/menu.mjs +548 -0
  477. package/esm2020/menu/public_api.mjs +2 -0
  478. package/esm2020/menu/qius.solutions-parallel-ui-angular-menu.mjs +5 -0
  479. package/esm2020/menubar/menubar.mjs +515 -0
  480. package/esm2020/menubar/public_api.mjs +2 -0
  481. package/esm2020/menubar/qius.solutions-parallel-ui-angular-menubar.mjs +5 -0
  482. package/esm2020/message/message.mjs +103 -0
  483. package/esm2020/message/public_api.mjs +2 -0
  484. package/esm2020/message/qius.solutions-parallel-ui-angular-message.mjs +5 -0
  485. package/esm2020/messages/messages.mjs +272 -0
  486. package/esm2020/messages/public_api.mjs +2 -0
  487. package/esm2020/messages/qius.solutions-parallel-ui-angular-messages.mjs +5 -0
  488. package/esm2020/multiselect/multiselect.mjs +1411 -0
  489. package/esm2020/multiselect/public_api.mjs +2 -0
  490. package/esm2020/multiselect/qius.solutions-parallel-ui-angular-multiselect.mjs +5 -0
  491. package/esm2020/orderlist/orderlist.mjs +621 -0
  492. package/esm2020/orderlist/public_api.mjs +2 -0
  493. package/esm2020/orderlist/qius.solutions-parallel-ui-angular-orderlist.mjs +5 -0
  494. package/esm2020/organizationchart/organizationchart.mjs +319 -0
  495. package/esm2020/organizationchart/public_api.mjs +2 -0
  496. package/esm2020/organizationchart/qius.solutions-parallel-ui-angular-organizationchart.mjs +5 -0
  497. package/esm2020/overlay/overlay.mjs +520 -0
  498. package/esm2020/overlay/public_api.mjs +2 -0
  499. package/esm2020/overlay/qius.solutions-parallel-ui-angular-overlay.mjs +5 -0
  500. package/esm2020/overlaypanel/overlaypanel.mjs +410 -0
  501. package/esm2020/overlaypanel/public_api.mjs +2 -0
  502. package/esm2020/overlaypanel/qius.solutions-parallel-ui-angular-overlaypanel.mjs +5 -0
  503. package/esm2020/paginator/paginator.mjs +405 -0
  504. package/esm2020/paginator/public_api.mjs +2 -0
  505. package/esm2020/paginator/qius.solutions-parallel-ui-angular-paginator.mjs +5 -0
  506. package/esm2020/panel/panel.mjs +296 -0
  507. package/esm2020/panel/public_api.mjs +2 -0
  508. package/esm2020/panel/qius.solutions-parallel-ui-angular-panel.mjs +5 -0
  509. package/esm2020/panelmenu/panelmenu.mjs +518 -0
  510. package/esm2020/panelmenu/public_api.mjs +2 -0
  511. package/esm2020/panelmenu/qius.solutions-parallel-ui-angular-panelmenu.mjs +5 -0
  512. package/esm2020/password/password.mjs +782 -0
  513. package/esm2020/password/public_api.mjs +2 -0
  514. package/esm2020/password/qius.solutions-parallel-ui-angular-password.mjs +5 -0
  515. package/esm2020/picklist/picklist.mjs +1268 -0
  516. package/esm2020/picklist/public_api.mjs +2 -0
  517. package/esm2020/picklist/qius.solutions-parallel-ui-angular-picklist.mjs +5 -0
  518. package/esm2020/progressbar/progressbar.mjs +81 -0
  519. package/esm2020/progressbar/public_api.mjs +2 -0
  520. package/esm2020/progressbar/qius.solutions-parallel-ui-angular-progressbar.mjs +5 -0
  521. package/esm2020/progressspinner/progressspinner.mjs +55 -0
  522. package/esm2020/progressspinner/public_api.mjs +2 -0
  523. package/esm2020/progressspinner/qius.solutions-parallel-ui-angular-progressspinner.mjs +5 -0
  524. package/esm2020/public_api.mjs +2 -0
  525. package/esm2020/qius.solutions-parallel-ui-angular.mjs +5 -0
  526. package/esm2020/radiobutton/public_api.mjs +2 -0
  527. package/esm2020/radiobutton/qius.solutions-parallel-ui-angular-radiobutton.mjs +5 -0
  528. package/esm2020/radiobutton/radiobutton.mjs +254 -0
  529. package/esm2020/rating/public_api.mjs +2 -0
  530. package/esm2020/rating/qius.solutions-parallel-ui-angular-rating.mjs +5 -0
  531. package/esm2020/rating/rating.mjs +199 -0
  532. package/esm2020/ripple/public_api.mjs +2 -0
  533. package/esm2020/ripple/qius.solutions-parallel-ui-angular-ripple.mjs +5 -0
  534. package/esm2020/ripple/ripple.mjs +126 -0
  535. package/esm2020/scroller/public_api.mjs +2 -0
  536. package/esm2020/scroller/qius.solutions-parallel-ui-angular-scroller.mjs +5 -0
  537. package/esm2020/scroller/scroller.mjs +928 -0
  538. package/esm2020/scrollpanel/public_api.mjs +2 -0
  539. package/esm2020/scrollpanel/qius.solutions-parallel-ui-angular-scrollpanel.mjs +5 -0
  540. package/esm2020/scrollpanel/scrollpanel.mjs +272 -0
  541. package/esm2020/scrolltop/public_api.mjs +2 -0
  542. package/esm2020/scrolltop/qius.solutions-parallel-ui-angular-scrolltop.mjs +5 -0
  543. package/esm2020/scrolltop/scrolltop.mjs +221 -0
  544. package/esm2020/selectbutton/public_api.mjs +2 -0
  545. package/esm2020/selectbutton/qius.solutions-parallel-ui-angular-selectbutton.mjs +5 -0
  546. package/esm2020/selectbutton/selectbutton.mjs +209 -0
  547. package/esm2020/sidebar/public_api.mjs +2 -0
  548. package/esm2020/sidebar/qius.solutions-parallel-ui-angular-sidebar.mjs +5 -0
  549. package/esm2020/sidebar/sidebar.mjs +369 -0
  550. package/esm2020/skeleton/public_api.mjs +2 -0
  551. package/esm2020/skeleton/qius.solutions-parallel-ui-angular-skeleton.mjs +5 -0
  552. package/esm2020/skeleton/skeleton.mjs +65 -0
  553. package/esm2020/slidemenu/public_api.mjs +2 -0
  554. package/esm2020/slidemenu/qius.solutions-parallel-ui-angular-slidemenu.mjs +5 -0
  555. package/esm2020/slidemenu/slidemenu.mjs +616 -0
  556. package/esm2020/slider/public_api.mjs +2 -0
  557. package/esm2020/slider/qius.solutions-parallel-ui-angular-slider.mjs +5 -0
  558. package/esm2020/slider/slider.mjs +588 -0
  559. package/esm2020/speeddial/public_api.mjs +2 -0
  560. package/esm2020/speeddial/qius.solutions-parallel-ui-angular-speeddial.mjs +5 -0
  561. package/esm2020/speeddial/speeddial.mjs +402 -0
  562. package/esm2020/spinner/public_api.mjs +2 -0
  563. package/esm2020/spinner/qius.solutions-parallel-ui-angular-spinner.mjs +5 -0
  564. package/esm2020/spinner/spinner.mjs +407 -0
  565. package/esm2020/splitbutton/public_api.mjs +2 -0
  566. package/esm2020/splitbutton/qius.solutions-parallel-ui-angular-splitbutton.mjs +5 -0
  567. package/esm2020/splitbutton/splitbutton.mjs +141 -0
  568. package/esm2020/splitter/public_api.mjs +2 -0
  569. package/esm2020/splitter/qius.solutions-parallel-ui-angular-splitter.mjs +5 -0
  570. package/esm2020/splitter/splitter.mjs +355 -0
  571. package/esm2020/steps/public_api.mjs +2 -0
  572. package/esm2020/steps/qius.solutions-parallel-ui-angular-steps.mjs +5 -0
  573. package/esm2020/steps/steps.mjs +205 -0
  574. package/esm2020/styleclass/public_api.mjs +2 -0
  575. package/esm2020/styleclass/qius.solutions-parallel-ui-angular-styleclass.mjs +5 -0
  576. package/esm2020/styleclass/styleclass.mjs +220 -0
  577. package/esm2020/table/public_api.mjs +2 -0
  578. package/esm2020/table/qius.solutions-parallel-ui-angular-table.mjs +5 -0
  579. package/esm2020/table/table.mjs +5314 -0
  580. package/esm2020/tabmenu/public_api.mjs +2 -0
  581. package/esm2020/tabmenu/qius.solutions-parallel-ui-angular-tabmenu.mjs +5 -0
  582. package/esm2020/tabmenu/tabmenu.mjs +374 -0
  583. package/esm2020/tabview/public_api.mjs +2 -0
  584. package/esm2020/tabview/qius.solutions-parallel-ui-angular-tabview.mjs +5 -0
  585. package/esm2020/tabview/tabview.mjs +527 -0
  586. package/esm2020/tag/public_api.mjs +2 -0
  587. package/esm2020/tag/qius.solutions-parallel-ui-angular-tag.mjs +5 -0
  588. package/esm2020/tag/tag.mjs +86 -0
  589. package/esm2020/terminal/public_api.mjs +3 -0
  590. package/esm2020/terminal/qius.solutions-parallel-ui-angular-terminal.mjs +5 -0
  591. package/esm2020/terminal/terminal.mjs +112 -0
  592. package/esm2020/terminal/terminalservice.mjs +27 -0
  593. package/esm2020/tieredmenu/public_api.mjs +2 -0
  594. package/esm2020/tieredmenu/qius.solutions-parallel-ui-angular-tieredmenu.mjs +5 -0
  595. package/esm2020/tieredmenu/tieredmenu.mjs +663 -0
  596. package/esm2020/timeline/public_api.mjs +2 -0
  597. package/esm2020/timeline/qius.solutions-parallel-ui-angular-timeline.mjs +5 -0
  598. package/esm2020/timeline/timeline.mjs +131 -0
  599. package/esm2020/toast/public_api.mjs +2 -0
  600. package/esm2020/toast/qius.solutions-parallel-ui-angular-toast.mjs +5 -0
  601. package/esm2020/toast/toast.mjs +443 -0
  602. package/esm2020/togglebutton/public_api.mjs +2 -0
  603. package/esm2020/togglebutton/qius.solutions-parallel-ui-angular-togglebutton.mjs +5 -0
  604. package/esm2020/togglebutton/togglebutton.mjs +133 -0
  605. package/esm2020/toolbar/public_api.mjs +2 -0
  606. package/esm2020/toolbar/qius.solutions-parallel-ui-angular-toolbar.mjs +5 -0
  607. package/esm2020/toolbar/toolbar.mjs +83 -0
  608. package/esm2020/tooltip/public_api.mjs +2 -0
  609. package/esm2020/tooltip/qius.solutions-parallel-ui-angular-tooltip.mjs +5 -0
  610. package/esm2020/tooltip/tooltip.mjs +546 -0
  611. package/esm2020/tree/public_api.mjs +2 -0
  612. package/esm2020/tree/qius.solutions-parallel-ui-angular-tree.mjs +5 -0
  613. package/esm2020/tree/tree.mjs +1584 -0
  614. package/esm2020/treeselect/public_api.mjs +2 -0
  615. package/esm2020/treeselect/qius.solutions-parallel-ui-angular-treeselect.mjs +5 -0
  616. package/esm2020/treeselect/treeselect.mjs +778 -0
  617. package/esm2020/treetable/public_api.mjs +2 -0
  618. package/esm2020/treetable/qius.solutions-parallel-ui-angular-treetable.mjs +5 -0
  619. package/esm2020/treetable/treetable.mjs +3217 -0
  620. package/esm2020/tristatecheckbox/public_api.mjs +2 -0
  621. package/esm2020/tristatecheckbox/qius.solutions-parallel-ui-angular-tristatecheckbox.mjs +5 -0
  622. package/esm2020/tristatecheckbox/tristatecheckbox.mjs +223 -0
  623. package/esm2020/utils/objectutils.mjs +198 -0
  624. package/esm2020/utils/public_api.mjs +5 -0
  625. package/esm2020/utils/qius.solutions-parallel-ui-angular-utils.mjs +5 -0
  626. package/esm2020/utils/uniquecomponentid.mjs +7 -0
  627. package/esm2020/utils/zindexutils.mjs +35 -0
  628. package/esm2020/virtualscroller/public_api.mjs +2 -0
  629. package/esm2020/virtualscroller/qius.solutions-parallel-ui-angular-virtualscroller.mjs +5 -0
  630. package/esm2020/virtualscroller/virtualscroller.mjs +153 -0
  631. package/fesm2015/qius.solutions-parallel-ui-angular-accordion.mjs +405 -0
  632. package/fesm2015/qius.solutions-parallel-ui-angular-accordion.mjs.map +1 -0
  633. package/fesm2015/qius.solutions-parallel-ui-angular-animate.mjs +86 -0
  634. package/fesm2015/qius.solutions-parallel-ui-angular-animate.mjs.map +1 -0
  635. package/fesm2015/qius.solutions-parallel-ui-angular-api.mjs +817 -0
  636. package/fesm2015/qius.solutions-parallel-ui-angular-api.mjs.map +1 -0
  637. package/fesm2015/qius.solutions-parallel-ui-angular-autocomplete.mjs +1154 -0
  638. package/fesm2015/qius.solutions-parallel-ui-angular-autocomplete.mjs.map +1 -0
  639. package/fesm2015/qius.solutions-parallel-ui-angular-autofocus.mjs +58 -0
  640. package/fesm2015/qius.solutions-parallel-ui-angular-autofocus.mjs.map +1 -0
  641. package/fesm2015/qius.solutions-parallel-ui-angular-avatar.mjs +82 -0
  642. package/fesm2015/qius.solutions-parallel-ui-angular-avatar.mjs.map +1 -0
  643. package/fesm2015/qius.solutions-parallel-ui-angular-avatargroup.mjs +47 -0
  644. package/fesm2015/qius.solutions-parallel-ui-angular-avatargroup.mjs.map +1 -0
  645. package/fesm2015/qius.solutions-parallel-ui-angular-badge.mjs +191 -0
  646. package/fesm2015/qius.solutions-parallel-ui-angular-badge.mjs.map +1 -0
  647. package/fesm2015/qius.solutions-parallel-ui-angular-baseicon.mjs +48 -0
  648. package/fesm2015/qius.solutions-parallel-ui-angular-baseicon.mjs.map +1 -0
  649. package/fesm2015/qius.solutions-parallel-ui-angular-blockui.mjs +149 -0
  650. package/fesm2015/qius.solutions-parallel-ui-angular-blockui.mjs.map +1 -0
  651. package/fesm2015/qius.solutions-parallel-ui-angular-breadcrumb.mjs +303 -0
  652. package/fesm2015/qius.solutions-parallel-ui-angular-breadcrumb.mjs.map +1 -0
  653. package/fesm2015/qius.solutions-parallel-ui-angular-button.mjs +371 -0
  654. package/fesm2015/qius.solutions-parallel-ui-angular-button.mjs.map +1 -0
  655. package/fesm2015/qius.solutions-parallel-ui-angular-calendar.mjs +3133 -0
  656. package/fesm2015/qius.solutions-parallel-ui-angular-calendar.mjs.map +1 -0
  657. package/fesm2015/qius.solutions-parallel-ui-angular-card.mjs +133 -0
  658. package/fesm2015/qius.solutions-parallel-ui-angular-card.mjs.map +1 -0
  659. package/fesm2015/qius.solutions-parallel-ui-angular-carousel.mjs +706 -0
  660. package/fesm2015/qius.solutions-parallel-ui-angular-carousel.mjs.map +1 -0
  661. package/fesm2015/qius.solutions-parallel-ui-angular-cascadeselect.mjs +776 -0
  662. package/fesm2015/qius.solutions-parallel-ui-angular-cascadeselect.mjs.map +1 -0
  663. package/fesm2015/qius.solutions-parallel-ui-angular-chart.mjs +151 -0
  664. package/fesm2015/qius.solutions-parallel-ui-angular-chart.mjs.map +1 -0
  665. package/fesm2015/qius.solutions-parallel-ui-angular-checkbox.mjs +254 -0
  666. package/fesm2015/qius.solutions-parallel-ui-angular-checkbox.mjs.map +1 -0
  667. package/fesm2015/qius.solutions-parallel-ui-angular-chip.mjs +120 -0
  668. package/fesm2015/qius.solutions-parallel-ui-angular-chip.mjs.map +1 -0
  669. package/fesm2015/qius.solutions-parallel-ui-angular-chips.mjs +384 -0
  670. package/fesm2015/qius.solutions-parallel-ui-angular-chips.mjs.map +1 -0
  671. package/fesm2015/qius.solutions-parallel-ui-angular-colorpicker.mjs +694 -0
  672. package/fesm2015/qius.solutions-parallel-ui-angular-colorpicker.mjs.map +1 -0
  673. package/fesm2015/qius.solutions-parallel-ui-angular-confirmdialog.mjs +615 -0
  674. package/fesm2015/qius.solutions-parallel-ui-angular-confirmdialog.mjs.map +1 -0
  675. package/fesm2015/qius.solutions-parallel-ui-angular-confirmpopup.mjs +403 -0
  676. package/fesm2015/qius.solutions-parallel-ui-angular-confirmpopup.mjs.map +1 -0
  677. package/fesm2015/qius.solutions-parallel-ui-angular-contextmenu.mjs +702 -0
  678. package/fesm2015/qius.solutions-parallel-ui-angular-contextmenu.mjs.map +1 -0
  679. package/fesm2015/qius.solutions-parallel-ui-angular-dataview.mjs +519 -0
  680. package/fesm2015/qius.solutions-parallel-ui-angular-dataview.mjs.map +1 -0
  681. package/fesm2015/qius.solutions-parallel-ui-angular-defer.mjs +101 -0
  682. package/fesm2015/qius.solutions-parallel-ui-angular-defer.mjs.map +1 -0
  683. package/fesm2015/qius.solutions-parallel-ui-angular-dialog.mjs +842 -0
  684. package/fesm2015/qius.solutions-parallel-ui-angular-dialog.mjs.map +1 -0
  685. package/fesm2015/qius.solutions-parallel-ui-angular-divider.mjs +76 -0
  686. package/fesm2015/qius.solutions-parallel-ui-angular-divider.mjs.map +1 -0
  687. package/fesm2015/qius.solutions-parallel-ui-angular-dock.mjs +217 -0
  688. package/fesm2015/qius.solutions-parallel-ui-angular-dock.mjs.map +1 -0
  689. package/fesm2015/qius.solutions-parallel-ui-angular-dom.mjs +632 -0
  690. package/fesm2015/qius.solutions-parallel-ui-angular-dom.mjs.map +1 -0
  691. package/fesm2015/qius.solutions-parallel-ui-angular-dragdrop.mjs +258 -0
  692. package/fesm2015/qius.solutions-parallel-ui-angular-dragdrop.mjs.map +1 -0
  693. package/fesm2015/qius.solutions-parallel-ui-angular-dropdown.mjs +1379 -0
  694. package/fesm2015/qius.solutions-parallel-ui-angular-dropdown.mjs.map +1 -0
  695. package/fesm2015/qius.solutions-parallel-ui-angular-dynamicdialog.mjs +698 -0
  696. package/fesm2015/qius.solutions-parallel-ui-angular-dynamicdialog.mjs.map +1 -0
  697. package/fesm2015/qius.solutions-parallel-ui-angular-editor.mjs +317 -0
  698. package/fesm2015/qius.solutions-parallel-ui-angular-editor.mjs.map +1 -0
  699. package/fesm2015/qius.solutions-parallel-ui-angular-fieldset.mjs +221 -0
  700. package/fesm2015/qius.solutions-parallel-ui-angular-fieldset.mjs.map +1 -0
  701. package/fesm2015/qius.solutions-parallel-ui-angular-fileupload.mjs +764 -0
  702. package/fesm2015/qius.solutions-parallel-ui-angular-fileupload.mjs.map +1 -0
  703. package/fesm2015/qius.solutions-parallel-ui-angular-focustrap.mjs +60 -0
  704. package/fesm2015/qius.solutions-parallel-ui-angular-focustrap.mjs.map +1 -0
  705. package/fesm2015/qius.solutions-parallel-ui-angular-galleria.mjs +1199 -0
  706. package/fesm2015/qius.solutions-parallel-ui-angular-galleria.mjs.map +1 -0
  707. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubledown.mjs +42 -0
  708. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubledown.mjs.map +1 -0
  709. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubleleft.mjs +42 -0
  710. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubleleft.mjs.map +1 -0
  711. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubleright.mjs +42 -0
  712. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubleright.mjs.map +1 -0
  713. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubleup.mjs +42 -0
  714. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubleup.mjs.map +1 -0
  715. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledown.mjs +38 -0
  716. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledown.mjs.map +1 -0
  717. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angleleft.mjs +38 -0
  718. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angleleft.mjs.map +1 -0
  719. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angleright.mjs +38 -0
  720. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angleright.mjs.map +1 -0
  721. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angleup.mjs +38 -0
  722. package/fesm2015/qius.solutions-parallel-ui-angular-icons-angleup.mjs.map +1 -0
  723. package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowdown.mjs +56 -0
  724. package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowdown.mjs.map +1 -0
  725. package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowdownleft.mjs +38 -0
  726. package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowdownleft.mjs.map +1 -0
  727. package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowdownright.mjs +38 -0
  728. package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowdownright.mjs.map +1 -0
  729. package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowleft.mjs +56 -0
  730. package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowleft.mjs.map +1 -0
  731. package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowright.mjs +42 -0
  732. package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowright.mjs.map +1 -0
  733. package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowup.mjs +56 -0
  734. package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowup.mjs.map +1 -0
  735. package/fesm2015/qius.solutions-parallel-ui-angular-icons-ban.mjs +52 -0
  736. package/fesm2015/qius.solutions-parallel-ui-angular-icons-ban.mjs.map +1 -0
  737. package/fesm2015/qius.solutions-parallel-ui-angular-icons-bars.mjs +42 -0
  738. package/fesm2015/qius.solutions-parallel-ui-angular-icons-bars.mjs.map +1 -0
  739. package/fesm2015/qius.solutions-parallel-ui-angular-icons-calendar.mjs +38 -0
  740. package/fesm2015/qius.solutions-parallel-ui-angular-icons-calendar.mjs.map +1 -0
  741. package/fesm2015/qius.solutions-parallel-ui-angular-icons-caretleft.mjs +38 -0
  742. package/fesm2015/qius.solutions-parallel-ui-angular-icons-caretleft.mjs.map +1 -0
  743. package/fesm2015/qius.solutions-parallel-ui-angular-icons-caretright.mjs +38 -0
  744. package/fesm2015/qius.solutions-parallel-ui-angular-icons-caretright.mjs.map +1 -0
  745. package/fesm2015/qius.solutions-parallel-ui-angular-icons-check.mjs +38 -0
  746. package/fesm2015/qius.solutions-parallel-ui-angular-icons-check.mjs.map +1 -0
  747. package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevrondown.mjs +38 -0
  748. package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevrondown.mjs.map +1 -0
  749. package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevronleft.mjs +38 -0
  750. package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevronleft.mjs.map +1 -0
  751. package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevronright.mjs +38 -0
  752. package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevronright.mjs.map +1 -0
  753. package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevronup.mjs +38 -0
  754. package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevronup.mjs.map +1 -0
  755. package/fesm2015/qius.solutions-parallel-ui-angular-icons-exclamationtriangle.mjs +68 -0
  756. package/fesm2015/qius.solutions-parallel-ui-angular-icons-exclamationtriangle.mjs.map +1 -0
  757. package/fesm2015/qius.solutions-parallel-ui-angular-icons-eye.mjs +42 -0
  758. package/fesm2015/qius.solutions-parallel-ui-angular-icons-eye.mjs.map +1 -0
  759. package/fesm2015/qius.solutions-parallel-ui-angular-icons-eyeslash.mjs +56 -0
  760. package/fesm2015/qius.solutions-parallel-ui-angular-icons-eyeslash.mjs.map +1 -0
  761. package/fesm2015/qius.solutions-parallel-ui-angular-icons-filter.mjs +52 -0
  762. package/fesm2015/qius.solutions-parallel-ui-angular-icons-filter.mjs.map +1 -0
  763. package/fesm2015/qius.solutions-parallel-ui-angular-icons-filterslash.mjs +56 -0
  764. package/fesm2015/qius.solutions-parallel-ui-angular-icons-filterslash.mjs.map +1 -0
  765. package/fesm2015/qius.solutions-parallel-ui-angular-icons-home.mjs +56 -0
  766. package/fesm2015/qius.solutions-parallel-ui-angular-icons-home.mjs.map +1 -0
  767. package/fesm2015/qius.solutions-parallel-ui-angular-icons-infocircle.mjs +56 -0
  768. package/fesm2015/qius.solutions-parallel-ui-angular-icons-infocircle.mjs.map +1 -0
  769. package/fesm2015/qius.solutions-parallel-ui-angular-icons-minus.mjs +39 -0
  770. package/fesm2015/qius.solutions-parallel-ui-angular-icons-minus.mjs.map +1 -0
  771. package/fesm2015/qius.solutions-parallel-ui-angular-icons-pencil.mjs +52 -0
  772. package/fesm2015/qius.solutions-parallel-ui-angular-icons-pencil.mjs.map +1 -0
  773. package/fesm2015/qius.solutions-parallel-ui-angular-icons-plus.mjs +52 -0
  774. package/fesm2015/qius.solutions-parallel-ui-angular-icons-plus.mjs.map +1 -0
  775. package/fesm2015/qius.solutions-parallel-ui-angular-icons-refresh.mjs +56 -0
  776. package/fesm2015/qius.solutions-parallel-ui-angular-icons-refresh.mjs.map +1 -0
  777. package/fesm2015/qius.solutions-parallel-ui-angular-icons-search.mjs +56 -0
  778. package/fesm2015/qius.solutions-parallel-ui-angular-icons-search.mjs.map +1 -0
  779. package/fesm2015/qius.solutions-parallel-ui-angular-icons-searchminus.mjs +56 -0
  780. package/fesm2015/qius.solutions-parallel-ui-angular-icons-searchminus.mjs.map +1 -0
  781. package/fesm2015/qius.solutions-parallel-ui-angular-icons-searchplus.mjs +56 -0
  782. package/fesm2015/qius.solutions-parallel-ui-angular-icons-searchplus.mjs.map +1 -0
  783. package/fesm2015/qius.solutions-parallel-ui-angular-icons-sortalt.mjs +64 -0
  784. package/fesm2015/qius.solutions-parallel-ui-angular-icons-sortalt.mjs.map +1 -0
  785. package/fesm2015/qius.solutions-parallel-ui-angular-icons-sortamountdown.mjs +92 -0
  786. package/fesm2015/qius.solutions-parallel-ui-angular-icons-sortamountdown.mjs.map +1 -0
  787. package/fesm2015/qius.solutions-parallel-ui-angular-icons-sortamountupalt.mjs +92 -0
  788. package/fesm2015/qius.solutions-parallel-ui-angular-icons-sortamountupalt.mjs.map +1 -0
  789. package/fesm2015/qius.solutions-parallel-ui-angular-icons-spinner.mjs +52 -0
  790. package/fesm2015/qius.solutions-parallel-ui-angular-icons-spinner.mjs.map +1 -0
  791. package/fesm2015/qius.solutions-parallel-ui-angular-icons-star.mjs +52 -0
  792. package/fesm2015/qius.solutions-parallel-ui-angular-icons-star.mjs.map +1 -0
  793. package/fesm2015/qius.solutions-parallel-ui-angular-icons-starfill.mjs +52 -0
  794. package/fesm2015/qius.solutions-parallel-ui-angular-icons-starfill.mjs.map +1 -0
  795. package/fesm2015/qius.solutions-parallel-ui-angular-icons-thlarge.mjs +56 -0
  796. package/fesm2015/qius.solutions-parallel-ui-angular-icons-thlarge.mjs.map +1 -0
  797. package/fesm2015/qius.solutions-parallel-ui-angular-icons-times.mjs +38 -0
  798. package/fesm2015/qius.solutions-parallel-ui-angular-icons-times.mjs.map +1 -0
  799. package/fesm2015/qius.solutions-parallel-ui-angular-icons-timescircle.mjs +56 -0
  800. package/fesm2015/qius.solutions-parallel-ui-angular-icons-timescircle.mjs.map +1 -0
  801. package/fesm2015/qius.solutions-parallel-ui-angular-icons-trash.mjs +56 -0
  802. package/fesm2015/qius.solutions-parallel-ui-angular-icons-trash.mjs.map +1 -0
  803. package/fesm2015/qius.solutions-parallel-ui-angular-icons-undo.mjs +56 -0
  804. package/fesm2015/qius.solutions-parallel-ui-angular-icons-undo.mjs.map +1 -0
  805. package/fesm2015/qius.solutions-parallel-ui-angular-icons-upload.mjs +56 -0
  806. package/fesm2015/qius.solutions-parallel-ui-angular-icons-upload.mjs.map +1 -0
  807. package/fesm2015/qius.solutions-parallel-ui-angular-icons-windowmaximize.mjs +56 -0
  808. package/fesm2015/qius.solutions-parallel-ui-angular-icons-windowmaximize.mjs.map +1 -0
  809. package/fesm2015/qius.solutions-parallel-ui-angular-icons-windowminimize.mjs +56 -0
  810. package/fesm2015/qius.solutions-parallel-ui-angular-icons-windowminimize.mjs.map +1 -0
  811. package/fesm2015/qius.solutions-parallel-ui-angular-image.mjs +330 -0
  812. package/fesm2015/qius.solutions-parallel-ui-angular-image.mjs.map +1 -0
  813. package/fesm2015/qius.solutions-parallel-ui-angular-inplace.mjs +175 -0
  814. package/fesm2015/qius.solutions-parallel-ui-angular-inplace.mjs.map +1 -0
  815. package/fesm2015/qius.solutions-parallel-ui-angular-inputmask.mjs +706 -0
  816. package/fesm2015/qius.solutions-parallel-ui-angular-inputmask.mjs.map +1 -0
  817. package/fesm2015/qius.solutions-parallel-ui-angular-inputnumber.mjs +1198 -0
  818. package/fesm2015/qius.solutions-parallel-ui-angular-inputnumber.mjs.map +1 -0
  819. package/fesm2015/qius.solutions-parallel-ui-angular-inputswitch.mjs +167 -0
  820. package/fesm2015/qius.solutions-parallel-ui-angular-inputswitch.mjs.map +1 -0
  821. package/fesm2015/qius.solutions-parallel-ui-angular-inputtext.mjs +64 -0
  822. package/fesm2015/qius.solutions-parallel-ui-angular-inputtext.mjs.map +1 -0
  823. package/fesm2015/qius.solutions-parallel-ui-angular-inputtextarea.mjs +126 -0
  824. package/fesm2015/qius.solutions-parallel-ui-angular-inputtextarea.mjs.map +1 -0
  825. package/fesm2015/qius.solutions-parallel-ui-angular-keyfilter.mjs +223 -0
  826. package/fesm2015/qius.solutions-parallel-ui-angular-keyfilter.mjs.map +1 -0
  827. package/fesm2015/qius.solutions-parallel-ui-angular-knob.mjs +292 -0
  828. package/fesm2015/qius.solutions-parallel-ui-angular-knob.mjs.map +1 -0
  829. package/fesm2015/qius.solutions-parallel-ui-angular-listbox.mjs +807 -0
  830. package/fesm2015/qius.solutions-parallel-ui-angular-listbox.mjs.map +1 -0
  831. package/fesm2015/qius.solutions-parallel-ui-angular-megamenu.mjs +473 -0
  832. package/fesm2015/qius.solutions-parallel-ui-angular-megamenu.mjs.map +1 -0
  833. package/fesm2015/qius.solutions-parallel-ui-angular-menu.mjs +559 -0
  834. package/fesm2015/qius.solutions-parallel-ui-angular-menu.mjs.map +1 -0
  835. package/fesm2015/qius.solutions-parallel-ui-angular-menubar.mjs +526 -0
  836. package/fesm2015/qius.solutions-parallel-ui-angular-menubar.mjs.map +1 -0
  837. package/fesm2015/qius.solutions-parallel-ui-angular-message.mjs +110 -0
  838. package/fesm2015/qius.solutions-parallel-ui-angular-message.mjs.map +1 -0
  839. package/fesm2015/qius.solutions-parallel-ui-angular-messages.mjs +283 -0
  840. package/fesm2015/qius.solutions-parallel-ui-angular-messages.mjs.map +1 -0
  841. package/fesm2015/qius.solutions-parallel-ui-angular-multiselect.mjs +1421 -0
  842. package/fesm2015/qius.solutions-parallel-ui-angular-multiselect.mjs.map +1 -0
  843. package/fesm2015/qius.solutions-parallel-ui-angular-orderlist.mjs +630 -0
  844. package/fesm2015/qius.solutions-parallel-ui-angular-orderlist.mjs.map +1 -0
  845. package/fesm2015/qius.solutions-parallel-ui-angular-organizationchart.mjs +327 -0
  846. package/fesm2015/qius.solutions-parallel-ui-angular-organizationchart.mjs.map +1 -0
  847. package/fesm2015/qius.solutions-parallel-ui-angular-overlay.mjs +554 -0
  848. package/fesm2015/qius.solutions-parallel-ui-angular-overlay.mjs.map +1 -0
  849. package/fesm2015/qius.solutions-parallel-ui-angular-overlaypanel.mjs +419 -0
  850. package/fesm2015/qius.solutions-parallel-ui-angular-overlaypanel.mjs.map +1 -0
  851. package/fesm2015/qius.solutions-parallel-ui-angular-paginator.mjs +411 -0
  852. package/fesm2015/qius.solutions-parallel-ui-angular-paginator.mjs.map +1 -0
  853. package/fesm2015/qius.solutions-parallel-ui-angular-panel.mjs +303 -0
  854. package/fesm2015/qius.solutions-parallel-ui-angular-panel.mjs.map +1 -0
  855. package/fesm2015/qius.solutions-parallel-ui-angular-panelmenu.mjs +525 -0
  856. package/fesm2015/qius.solutions-parallel-ui-angular-panelmenu.mjs.map +1 -0
  857. package/fesm2015/qius.solutions-parallel-ui-angular-password.mjs +793 -0
  858. package/fesm2015/qius.solutions-parallel-ui-angular-password.mjs.map +1 -0
  859. package/fesm2015/qius.solutions-parallel-ui-angular-picklist.mjs +1277 -0
  860. package/fesm2015/qius.solutions-parallel-ui-angular-picklist.mjs.map +1 -0
  861. package/fesm2015/qius.solutions-parallel-ui-angular-progressbar.mjs +88 -0
  862. package/fesm2015/qius.solutions-parallel-ui-angular-progressbar.mjs.map +1 -0
  863. package/fesm2015/qius.solutions-parallel-ui-angular-progressspinner.mjs +62 -0
  864. package/fesm2015/qius.solutions-parallel-ui-angular-progressspinner.mjs.map +1 -0
  865. package/fesm2015/qius.solutions-parallel-ui-angular-radiobutton.mjs +261 -0
  866. package/fesm2015/qius.solutions-parallel-ui-angular-radiobutton.mjs.map +1 -0
  867. package/fesm2015/qius.solutions-parallel-ui-angular-rating.mjs +206 -0
  868. package/fesm2015/qius.solutions-parallel-ui-angular-rating.mjs.map +1 -0
  869. package/fesm2015/qius.solutions-parallel-ui-angular-ripple.mjs +135 -0
  870. package/fesm2015/qius.solutions-parallel-ui-angular-ripple.mjs.map +1 -0
  871. package/fesm2015/qius.solutions-parallel-ui-angular-scroller.mjs +938 -0
  872. package/fesm2015/qius.solutions-parallel-ui-angular-scroller.mjs.map +1 -0
  873. package/fesm2015/qius.solutions-parallel-ui-angular-scrollpanel.mjs +281 -0
  874. package/fesm2015/qius.solutions-parallel-ui-angular-scrollpanel.mjs.map +1 -0
  875. package/fesm2015/qius.solutions-parallel-ui-angular-scrolltop.mjs +230 -0
  876. package/fesm2015/qius.solutions-parallel-ui-angular-scrolltop.mjs.map +1 -0
  877. package/fesm2015/qius.solutions-parallel-ui-angular-selectbutton.mjs +216 -0
  878. package/fesm2015/qius.solutions-parallel-ui-angular-selectbutton.mjs.map +1 -0
  879. package/fesm2015/qius.solutions-parallel-ui-angular-sidebar.mjs +378 -0
  880. package/fesm2015/qius.solutions-parallel-ui-angular-sidebar.mjs.map +1 -0
  881. package/fesm2015/qius.solutions-parallel-ui-angular-skeleton.mjs +72 -0
  882. package/fesm2015/qius.solutions-parallel-ui-angular-skeleton.mjs.map +1 -0
  883. package/fesm2015/qius.solutions-parallel-ui-angular-slidemenu.mjs +627 -0
  884. package/fesm2015/qius.solutions-parallel-ui-angular-slidemenu.mjs.map +1 -0
  885. package/fesm2015/qius.solutions-parallel-ui-angular-slider.mjs +597 -0
  886. package/fesm2015/qius.solutions-parallel-ui-angular-slider.mjs.map +1 -0
  887. package/fesm2015/qius.solutions-parallel-ui-angular-speeddial.mjs +408 -0
  888. package/fesm2015/qius.solutions-parallel-ui-angular-speeddial.mjs.map +1 -0
  889. package/fesm2015/qius.solutions-parallel-ui-angular-spinner.mjs +414 -0
  890. package/fesm2015/qius.solutions-parallel-ui-angular-spinner.mjs.map +1 -0
  891. package/fesm2015/qius.solutions-parallel-ui-angular-splitbutton.mjs +148 -0
  892. package/fesm2015/qius.solutions-parallel-ui-angular-splitbutton.mjs.map +1 -0
  893. package/fesm2015/qius.solutions-parallel-ui-angular-splitter.mjs +364 -0
  894. package/fesm2015/qius.solutions-parallel-ui-angular-splitter.mjs.map +1 -0
  895. package/fesm2015/qius.solutions-parallel-ui-angular-steps.mjs +212 -0
  896. package/fesm2015/qius.solutions-parallel-ui-angular-steps.mjs.map +1 -0
  897. package/fesm2015/qius.solutions-parallel-ui-angular-styleclass.mjs +227 -0
  898. package/fesm2015/qius.solutions-parallel-ui-angular-styleclass.mjs.map +1 -0
  899. package/fesm2015/qius.solutions-parallel-ui-angular-table.mjs +5329 -0
  900. package/fesm2015/qius.solutions-parallel-ui-angular-table.mjs.map +1 -0
  901. package/fesm2015/qius.solutions-parallel-ui-angular-tabmenu.mjs +385 -0
  902. package/fesm2015/qius.solutions-parallel-ui-angular-tabmenu.mjs.map +1 -0
  903. package/fesm2015/qius.solutions-parallel-ui-angular-tabview.mjs +539 -0
  904. package/fesm2015/qius.solutions-parallel-ui-angular-tabview.mjs.map +1 -0
  905. package/fesm2015/qius.solutions-parallel-ui-angular-tag.mjs +92 -0
  906. package/fesm2015/qius.solutions-parallel-ui-angular-tag.mjs.map +1 -0
  907. package/fesm2015/qius.solutions-parallel-ui-angular-terminal.mjs +143 -0
  908. package/fesm2015/qius.solutions-parallel-ui-angular-terminal.mjs.map +1 -0
  909. package/fesm2015/qius.solutions-parallel-ui-angular-tieredmenu.mjs +674 -0
  910. package/fesm2015/qius.solutions-parallel-ui-angular-tieredmenu.mjs.map +1 -0
  911. package/fesm2015/qius.solutions-parallel-ui-angular-timeline.mjs +138 -0
  912. package/fesm2015/qius.solutions-parallel-ui-angular-timeline.mjs.map +1 -0
  913. package/fesm2015/qius.solutions-parallel-ui-angular-toast.mjs +451 -0
  914. package/fesm2015/qius.solutions-parallel-ui-angular-toast.mjs.map +1 -0
  915. package/fesm2015/qius.solutions-parallel-ui-angular-togglebutton.mjs +140 -0
  916. package/fesm2015/qius.solutions-parallel-ui-angular-togglebutton.mjs.map +1 -0
  917. package/fesm2015/qius.solutions-parallel-ui-angular-toolbar.mjs +90 -0
  918. package/fesm2015/qius.solutions-parallel-ui-angular-toolbar.mjs.map +1 -0
  919. package/fesm2015/qius.solutions-parallel-ui-angular-tooltip.mjs +556 -0
  920. package/fesm2015/qius.solutions-parallel-ui-angular-tooltip.mjs.map +1 -0
  921. package/fesm2015/qius.solutions-parallel-ui-angular-tree.mjs +1596 -0
  922. package/fesm2015/qius.solutions-parallel-ui-angular-tree.mjs.map +1 -0
  923. package/fesm2015/qius.solutions-parallel-ui-angular-treeselect.mjs +791 -0
  924. package/fesm2015/qius.solutions-parallel-ui-angular-treeselect.mjs.map +1 -0
  925. package/fesm2015/qius.solutions-parallel-ui-angular-treetable.mjs +3228 -0
  926. package/fesm2015/qius.solutions-parallel-ui-angular-treetable.mjs.map +1 -0
  927. package/fesm2015/qius.solutions-parallel-ui-angular-tristatecheckbox.mjs +230 -0
  928. package/fesm2015/qius.solutions-parallel-ui-angular-tristatecheckbox.mjs.map +1 -0
  929. package/fesm2015/qius.solutions-parallel-ui-angular-utils.mjs +246 -0
  930. package/fesm2015/qius.solutions-parallel-ui-angular-utils.mjs.map +1 -0
  931. package/fesm2015/qius.solutions-parallel-ui-angular-virtualscroller.mjs +157 -0
  932. package/fesm2015/qius.solutions-parallel-ui-angular-virtualscroller.mjs.map +1 -0
  933. package/fesm2015/qius.solutions-parallel-ui-angular.mjs +6 -0
  934. package/fesm2015/qius.solutions-parallel-ui-angular.mjs.map +1 -0
  935. package/fesm2020/qius.solutions-parallel-ui-angular-accordion.mjs +403 -0
  936. package/fesm2020/qius.solutions-parallel-ui-angular-accordion.mjs.map +1 -0
  937. package/fesm2020/qius.solutions-parallel-ui-angular-animate.mjs +86 -0
  938. package/fesm2020/qius.solutions-parallel-ui-angular-animate.mjs.map +1 -0
  939. package/fesm2020/qius.solutions-parallel-ui-angular-api.mjs +817 -0
  940. package/fesm2020/qius.solutions-parallel-ui-angular-api.mjs.map +1 -0
  941. package/fesm2020/qius.solutions-parallel-ui-angular-autocomplete.mjs +1151 -0
  942. package/fesm2020/qius.solutions-parallel-ui-angular-autocomplete.mjs.map +1 -0
  943. package/fesm2020/qius.solutions-parallel-ui-angular-autofocus.mjs +58 -0
  944. package/fesm2020/qius.solutions-parallel-ui-angular-autofocus.mjs.map +1 -0
  945. package/fesm2020/qius.solutions-parallel-ui-angular-avatar.mjs +82 -0
  946. package/fesm2020/qius.solutions-parallel-ui-angular-avatar.mjs.map +1 -0
  947. package/fesm2020/qius.solutions-parallel-ui-angular-avatargroup.mjs +47 -0
  948. package/fesm2020/qius.solutions-parallel-ui-angular-avatargroup.mjs.map +1 -0
  949. package/fesm2020/qius.solutions-parallel-ui-angular-badge.mjs +189 -0
  950. package/fesm2020/qius.solutions-parallel-ui-angular-badge.mjs.map +1 -0
  951. package/fesm2020/qius.solutions-parallel-ui-angular-baseicon.mjs +48 -0
  952. package/fesm2020/qius.solutions-parallel-ui-angular-baseicon.mjs.map +1 -0
  953. package/fesm2020/qius.solutions-parallel-ui-angular-blockui.mjs +147 -0
  954. package/fesm2020/qius.solutions-parallel-ui-angular-blockui.mjs.map +1 -0
  955. package/fesm2020/qius.solutions-parallel-ui-angular-breadcrumb.mjs +303 -0
  956. package/fesm2020/qius.solutions-parallel-ui-angular-breadcrumb.mjs.map +1 -0
  957. package/fesm2020/qius.solutions-parallel-ui-angular-button.mjs +369 -0
  958. package/fesm2020/qius.solutions-parallel-ui-angular-button.mjs.map +1 -0
  959. package/fesm2020/qius.solutions-parallel-ui-angular-calendar.mjs +3130 -0
  960. package/fesm2020/qius.solutions-parallel-ui-angular-calendar.mjs.map +1 -0
  961. package/fesm2020/qius.solutions-parallel-ui-angular-card.mjs +133 -0
  962. package/fesm2020/qius.solutions-parallel-ui-angular-card.mjs.map +1 -0
  963. package/fesm2020/qius.solutions-parallel-ui-angular-carousel.mjs +703 -0
  964. package/fesm2020/qius.solutions-parallel-ui-angular-carousel.mjs.map +1 -0
  965. package/fesm2020/qius.solutions-parallel-ui-angular-cascadeselect.mjs +773 -0
  966. package/fesm2020/qius.solutions-parallel-ui-angular-cascadeselect.mjs.map +1 -0
  967. package/fesm2020/qius.solutions-parallel-ui-angular-chart.mjs +149 -0
  968. package/fesm2020/qius.solutions-parallel-ui-angular-chart.mjs.map +1 -0
  969. package/fesm2020/qius.solutions-parallel-ui-angular-checkbox.mjs +254 -0
  970. package/fesm2020/qius.solutions-parallel-ui-angular-checkbox.mjs.map +1 -0
  971. package/fesm2020/qius.solutions-parallel-ui-angular-chip.mjs +120 -0
  972. package/fesm2020/qius.solutions-parallel-ui-angular-chip.mjs.map +1 -0
  973. package/fesm2020/qius.solutions-parallel-ui-angular-chips.mjs +382 -0
  974. package/fesm2020/qius.solutions-parallel-ui-angular-chips.mjs.map +1 -0
  975. package/fesm2020/qius.solutions-parallel-ui-angular-colorpicker.mjs +692 -0
  976. package/fesm2020/qius.solutions-parallel-ui-angular-colorpicker.mjs.map +1 -0
  977. package/fesm2020/qius.solutions-parallel-ui-angular-confirmdialog.mjs +613 -0
  978. package/fesm2020/qius.solutions-parallel-ui-angular-confirmdialog.mjs.map +1 -0
  979. package/fesm2020/qius.solutions-parallel-ui-angular-confirmpopup.mjs +401 -0
  980. package/fesm2020/qius.solutions-parallel-ui-angular-confirmpopup.mjs.map +1 -0
  981. package/fesm2020/qius.solutions-parallel-ui-angular-contextmenu.mjs +698 -0
  982. package/fesm2020/qius.solutions-parallel-ui-angular-contextmenu.mjs.map +1 -0
  983. package/fesm2020/qius.solutions-parallel-ui-angular-dataview.mjs +519 -0
  984. package/fesm2020/qius.solutions-parallel-ui-angular-dataview.mjs.map +1 -0
  985. package/fesm2020/qius.solutions-parallel-ui-angular-defer.mjs +99 -0
  986. package/fesm2020/qius.solutions-parallel-ui-angular-defer.mjs.map +1 -0
  987. package/fesm2020/qius.solutions-parallel-ui-angular-dialog.mjs +840 -0
  988. package/fesm2020/qius.solutions-parallel-ui-angular-dialog.mjs.map +1 -0
  989. package/fesm2020/qius.solutions-parallel-ui-angular-divider.mjs +76 -0
  990. package/fesm2020/qius.solutions-parallel-ui-angular-divider.mjs.map +1 -0
  991. package/fesm2020/qius.solutions-parallel-ui-angular-dock.mjs +217 -0
  992. package/fesm2020/qius.solutions-parallel-ui-angular-dock.mjs.map +1 -0
  993. package/fesm2020/qius.solutions-parallel-ui-angular-dom.mjs +632 -0
  994. package/fesm2020/qius.solutions-parallel-ui-angular-dom.mjs.map +1 -0
  995. package/fesm2020/qius.solutions-parallel-ui-angular-dragdrop.mjs +258 -0
  996. package/fesm2020/qius.solutions-parallel-ui-angular-dragdrop.mjs.map +1 -0
  997. package/fesm2020/qius.solutions-parallel-ui-angular-dropdown.mjs +1379 -0
  998. package/fesm2020/qius.solutions-parallel-ui-angular-dropdown.mjs.map +1 -0
  999. package/fesm2020/qius.solutions-parallel-ui-angular-dynamicdialog.mjs +693 -0
  1000. package/fesm2020/qius.solutions-parallel-ui-angular-dynamicdialog.mjs.map +1 -0
  1001. package/fesm2020/qius.solutions-parallel-ui-angular-editor.mjs +316 -0
  1002. package/fesm2020/qius.solutions-parallel-ui-angular-editor.mjs.map +1 -0
  1003. package/fesm2020/qius.solutions-parallel-ui-angular-fieldset.mjs +221 -0
  1004. package/fesm2020/qius.solutions-parallel-ui-angular-fieldset.mjs.map +1 -0
  1005. package/fesm2020/qius.solutions-parallel-ui-angular-fileupload.mjs +761 -0
  1006. package/fesm2020/qius.solutions-parallel-ui-angular-fileupload.mjs.map +1 -0
  1007. package/fesm2020/qius.solutions-parallel-ui-angular-focustrap.mjs +59 -0
  1008. package/fesm2020/qius.solutions-parallel-ui-angular-focustrap.mjs.map +1 -0
  1009. package/fesm2020/qius.solutions-parallel-ui-angular-galleria.mjs +1194 -0
  1010. package/fesm2020/qius.solutions-parallel-ui-angular-galleria.mjs.map +1 -0
  1011. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubledown.mjs +42 -0
  1012. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubledown.mjs.map +1 -0
  1013. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubleleft.mjs +42 -0
  1014. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubleleft.mjs.map +1 -0
  1015. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubleright.mjs +42 -0
  1016. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubleright.mjs.map +1 -0
  1017. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubleup.mjs +42 -0
  1018. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubleup.mjs.map +1 -0
  1019. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledown.mjs +38 -0
  1020. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledown.mjs.map +1 -0
  1021. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angleleft.mjs +38 -0
  1022. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angleleft.mjs.map +1 -0
  1023. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angleright.mjs +38 -0
  1024. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angleright.mjs.map +1 -0
  1025. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angleup.mjs +38 -0
  1026. package/fesm2020/qius.solutions-parallel-ui-angular-icons-angleup.mjs.map +1 -0
  1027. package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowdown.mjs +56 -0
  1028. package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowdown.mjs.map +1 -0
  1029. package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowdownleft.mjs +38 -0
  1030. package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowdownleft.mjs.map +1 -0
  1031. package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowdownright.mjs +38 -0
  1032. package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowdownright.mjs.map +1 -0
  1033. package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowleft.mjs +56 -0
  1034. package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowleft.mjs.map +1 -0
  1035. package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowright.mjs +42 -0
  1036. package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowright.mjs.map +1 -0
  1037. package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowup.mjs +56 -0
  1038. package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowup.mjs.map +1 -0
  1039. package/fesm2020/qius.solutions-parallel-ui-angular-icons-ban.mjs +52 -0
  1040. package/fesm2020/qius.solutions-parallel-ui-angular-icons-ban.mjs.map +1 -0
  1041. package/fesm2020/qius.solutions-parallel-ui-angular-icons-bars.mjs +42 -0
  1042. package/fesm2020/qius.solutions-parallel-ui-angular-icons-bars.mjs.map +1 -0
  1043. package/fesm2020/qius.solutions-parallel-ui-angular-icons-calendar.mjs +38 -0
  1044. package/fesm2020/qius.solutions-parallel-ui-angular-icons-calendar.mjs.map +1 -0
  1045. package/fesm2020/qius.solutions-parallel-ui-angular-icons-caretleft.mjs +38 -0
  1046. package/fesm2020/qius.solutions-parallel-ui-angular-icons-caretleft.mjs.map +1 -0
  1047. package/fesm2020/qius.solutions-parallel-ui-angular-icons-caretright.mjs +38 -0
  1048. package/fesm2020/qius.solutions-parallel-ui-angular-icons-caretright.mjs.map +1 -0
  1049. package/fesm2020/qius.solutions-parallel-ui-angular-icons-check.mjs +38 -0
  1050. package/fesm2020/qius.solutions-parallel-ui-angular-icons-check.mjs.map +1 -0
  1051. package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevrondown.mjs +38 -0
  1052. package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevrondown.mjs.map +1 -0
  1053. package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevronleft.mjs +38 -0
  1054. package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevronleft.mjs.map +1 -0
  1055. package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevronright.mjs +38 -0
  1056. package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevronright.mjs.map +1 -0
  1057. package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevronup.mjs +38 -0
  1058. package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevronup.mjs.map +1 -0
  1059. package/fesm2020/qius.solutions-parallel-ui-angular-icons-exclamationtriangle.mjs +68 -0
  1060. package/fesm2020/qius.solutions-parallel-ui-angular-icons-exclamationtriangle.mjs.map +1 -0
  1061. package/fesm2020/qius.solutions-parallel-ui-angular-icons-eye.mjs +42 -0
  1062. package/fesm2020/qius.solutions-parallel-ui-angular-icons-eye.mjs.map +1 -0
  1063. package/fesm2020/qius.solutions-parallel-ui-angular-icons-eyeslash.mjs +56 -0
  1064. package/fesm2020/qius.solutions-parallel-ui-angular-icons-eyeslash.mjs.map +1 -0
  1065. package/fesm2020/qius.solutions-parallel-ui-angular-icons-filter.mjs +52 -0
  1066. package/fesm2020/qius.solutions-parallel-ui-angular-icons-filter.mjs.map +1 -0
  1067. package/fesm2020/qius.solutions-parallel-ui-angular-icons-filterslash.mjs +56 -0
  1068. package/fesm2020/qius.solutions-parallel-ui-angular-icons-filterslash.mjs.map +1 -0
  1069. package/fesm2020/qius.solutions-parallel-ui-angular-icons-home.mjs +56 -0
  1070. package/fesm2020/qius.solutions-parallel-ui-angular-icons-home.mjs.map +1 -0
  1071. package/fesm2020/qius.solutions-parallel-ui-angular-icons-infocircle.mjs +56 -0
  1072. package/fesm2020/qius.solutions-parallel-ui-angular-icons-infocircle.mjs.map +1 -0
  1073. package/fesm2020/qius.solutions-parallel-ui-angular-icons-minus.mjs +39 -0
  1074. package/fesm2020/qius.solutions-parallel-ui-angular-icons-minus.mjs.map +1 -0
  1075. package/fesm2020/qius.solutions-parallel-ui-angular-icons-pencil.mjs +52 -0
  1076. package/fesm2020/qius.solutions-parallel-ui-angular-icons-pencil.mjs.map +1 -0
  1077. package/fesm2020/qius.solutions-parallel-ui-angular-icons-plus.mjs +52 -0
  1078. package/fesm2020/qius.solutions-parallel-ui-angular-icons-plus.mjs.map +1 -0
  1079. package/fesm2020/qius.solutions-parallel-ui-angular-icons-refresh.mjs +56 -0
  1080. package/fesm2020/qius.solutions-parallel-ui-angular-icons-refresh.mjs.map +1 -0
  1081. package/fesm2020/qius.solutions-parallel-ui-angular-icons-search.mjs +56 -0
  1082. package/fesm2020/qius.solutions-parallel-ui-angular-icons-search.mjs.map +1 -0
  1083. package/fesm2020/qius.solutions-parallel-ui-angular-icons-searchminus.mjs +56 -0
  1084. package/fesm2020/qius.solutions-parallel-ui-angular-icons-searchminus.mjs.map +1 -0
  1085. package/fesm2020/qius.solutions-parallel-ui-angular-icons-searchplus.mjs +56 -0
  1086. package/fesm2020/qius.solutions-parallel-ui-angular-icons-searchplus.mjs.map +1 -0
  1087. package/fesm2020/qius.solutions-parallel-ui-angular-icons-sortalt.mjs +64 -0
  1088. package/fesm2020/qius.solutions-parallel-ui-angular-icons-sortalt.mjs.map +1 -0
  1089. package/fesm2020/qius.solutions-parallel-ui-angular-icons-sortamountdown.mjs +92 -0
  1090. package/fesm2020/qius.solutions-parallel-ui-angular-icons-sortamountdown.mjs.map +1 -0
  1091. package/fesm2020/qius.solutions-parallel-ui-angular-icons-sortamountupalt.mjs +92 -0
  1092. package/fesm2020/qius.solutions-parallel-ui-angular-icons-sortamountupalt.mjs.map +1 -0
  1093. package/fesm2020/qius.solutions-parallel-ui-angular-icons-spinner.mjs +52 -0
  1094. package/fesm2020/qius.solutions-parallel-ui-angular-icons-spinner.mjs.map +1 -0
  1095. package/fesm2020/qius.solutions-parallel-ui-angular-icons-star.mjs +52 -0
  1096. package/fesm2020/qius.solutions-parallel-ui-angular-icons-star.mjs.map +1 -0
  1097. package/fesm2020/qius.solutions-parallel-ui-angular-icons-starfill.mjs +52 -0
  1098. package/fesm2020/qius.solutions-parallel-ui-angular-icons-starfill.mjs.map +1 -0
  1099. package/fesm2020/qius.solutions-parallel-ui-angular-icons-thlarge.mjs +56 -0
  1100. package/fesm2020/qius.solutions-parallel-ui-angular-icons-thlarge.mjs.map +1 -0
  1101. package/fesm2020/qius.solutions-parallel-ui-angular-icons-times.mjs +38 -0
  1102. package/fesm2020/qius.solutions-parallel-ui-angular-icons-times.mjs.map +1 -0
  1103. package/fesm2020/qius.solutions-parallel-ui-angular-icons-timescircle.mjs +56 -0
  1104. package/fesm2020/qius.solutions-parallel-ui-angular-icons-timescircle.mjs.map +1 -0
  1105. package/fesm2020/qius.solutions-parallel-ui-angular-icons-trash.mjs +56 -0
  1106. package/fesm2020/qius.solutions-parallel-ui-angular-icons-trash.mjs.map +1 -0
  1107. package/fesm2020/qius.solutions-parallel-ui-angular-icons-undo.mjs +56 -0
  1108. package/fesm2020/qius.solutions-parallel-ui-angular-icons-undo.mjs.map +1 -0
  1109. package/fesm2020/qius.solutions-parallel-ui-angular-icons-upload.mjs +56 -0
  1110. package/fesm2020/qius.solutions-parallel-ui-angular-icons-upload.mjs.map +1 -0
  1111. package/fesm2020/qius.solutions-parallel-ui-angular-icons-windowmaximize.mjs +56 -0
  1112. package/fesm2020/qius.solutions-parallel-ui-angular-icons-windowmaximize.mjs.map +1 -0
  1113. package/fesm2020/qius.solutions-parallel-ui-angular-icons-windowminimize.mjs +56 -0
  1114. package/fesm2020/qius.solutions-parallel-ui-angular-icons-windowminimize.mjs.map +1 -0
  1115. package/fesm2020/qius.solutions-parallel-ui-angular-image.mjs +328 -0
  1116. package/fesm2020/qius.solutions-parallel-ui-angular-image.mjs.map +1 -0
  1117. package/fesm2020/qius.solutions-parallel-ui-angular-inplace.mjs +175 -0
  1118. package/fesm2020/qius.solutions-parallel-ui-angular-inplace.mjs.map +1 -0
  1119. package/fesm2020/qius.solutions-parallel-ui-angular-inputmask.mjs +704 -0
  1120. package/fesm2020/qius.solutions-parallel-ui-angular-inputmask.mjs.map +1 -0
  1121. package/fesm2020/qius.solutions-parallel-ui-angular-inputnumber.mjs +1196 -0
  1122. package/fesm2020/qius.solutions-parallel-ui-angular-inputnumber.mjs.map +1 -0
  1123. package/fesm2020/qius.solutions-parallel-ui-angular-inputswitch.mjs +167 -0
  1124. package/fesm2020/qius.solutions-parallel-ui-angular-inputswitch.mjs.map +1 -0
  1125. package/fesm2020/qius.solutions-parallel-ui-angular-inputtext.mjs +62 -0
  1126. package/fesm2020/qius.solutions-parallel-ui-angular-inputtext.mjs.map +1 -0
  1127. package/fesm2020/qius.solutions-parallel-ui-angular-inputtextarea.mjs +124 -0
  1128. package/fesm2020/qius.solutions-parallel-ui-angular-inputtextarea.mjs.map +1 -0
  1129. package/fesm2020/qius.solutions-parallel-ui-angular-keyfilter.mjs +221 -0
  1130. package/fesm2020/qius.solutions-parallel-ui-angular-keyfilter.mjs.map +1 -0
  1131. package/fesm2020/qius.solutions-parallel-ui-angular-knob.mjs +290 -0
  1132. package/fesm2020/qius.solutions-parallel-ui-angular-knob.mjs.map +1 -0
  1133. package/fesm2020/qius.solutions-parallel-ui-angular-listbox.mjs +807 -0
  1134. package/fesm2020/qius.solutions-parallel-ui-angular-listbox.mjs.map +1 -0
  1135. package/fesm2020/qius.solutions-parallel-ui-angular-megamenu.mjs +471 -0
  1136. package/fesm2020/qius.solutions-parallel-ui-angular-megamenu.mjs.map +1 -0
  1137. package/fesm2020/qius.solutions-parallel-ui-angular-menu.mjs +555 -0
  1138. package/fesm2020/qius.solutions-parallel-ui-angular-menu.mjs.map +1 -0
  1139. package/fesm2020/qius.solutions-parallel-ui-angular-menubar.mjs +522 -0
  1140. package/fesm2020/qius.solutions-parallel-ui-angular-menubar.mjs.map +1 -0
  1141. package/fesm2020/qius.solutions-parallel-ui-angular-message.mjs +110 -0
  1142. package/fesm2020/qius.solutions-parallel-ui-angular-message.mjs.map +1 -0
  1143. package/fesm2020/qius.solutions-parallel-ui-angular-messages.mjs +279 -0
  1144. package/fesm2020/qius.solutions-parallel-ui-angular-messages.mjs.map +1 -0
  1145. package/fesm2020/qius.solutions-parallel-ui-angular-multiselect.mjs +1418 -0
  1146. package/fesm2020/qius.solutions-parallel-ui-angular-multiselect.mjs.map +1 -0
  1147. package/fesm2020/qius.solutions-parallel-ui-angular-orderlist.mjs +628 -0
  1148. package/fesm2020/qius.solutions-parallel-ui-angular-orderlist.mjs.map +1 -0
  1149. package/fesm2020/qius.solutions-parallel-ui-angular-organizationchart.mjs +325 -0
  1150. package/fesm2020/qius.solutions-parallel-ui-angular-organizationchart.mjs.map +1 -0
  1151. package/fesm2020/qius.solutions-parallel-ui-angular-overlay.mjs +527 -0
  1152. package/fesm2020/qius.solutions-parallel-ui-angular-overlay.mjs.map +1 -0
  1153. package/fesm2020/qius.solutions-parallel-ui-angular-overlaypanel.mjs +417 -0
  1154. package/fesm2020/qius.solutions-parallel-ui-angular-overlaypanel.mjs.map +1 -0
  1155. package/fesm2020/qius.solutions-parallel-ui-angular-paginator.mjs +411 -0
  1156. package/fesm2020/qius.solutions-parallel-ui-angular-paginator.mjs.map +1 -0
  1157. package/fesm2020/qius.solutions-parallel-ui-angular-panel.mjs +303 -0
  1158. package/fesm2020/qius.solutions-parallel-ui-angular-panel.mjs.map +1 -0
  1159. package/fesm2020/qius.solutions-parallel-ui-angular-panelmenu.mjs +525 -0
  1160. package/fesm2020/qius.solutions-parallel-ui-angular-panelmenu.mjs.map +1 -0
  1161. package/fesm2020/qius.solutions-parallel-ui-angular-password.mjs +789 -0
  1162. package/fesm2020/qius.solutions-parallel-ui-angular-password.mjs.map +1 -0
  1163. package/fesm2020/qius.solutions-parallel-ui-angular-picklist.mjs +1275 -0
  1164. package/fesm2020/qius.solutions-parallel-ui-angular-picklist.mjs.map +1 -0
  1165. package/fesm2020/qius.solutions-parallel-ui-angular-progressbar.mjs +88 -0
  1166. package/fesm2020/qius.solutions-parallel-ui-angular-progressbar.mjs.map +1 -0
  1167. package/fesm2020/qius.solutions-parallel-ui-angular-progressspinner.mjs +62 -0
  1168. package/fesm2020/qius.solutions-parallel-ui-angular-progressspinner.mjs.map +1 -0
  1169. package/fesm2020/qius.solutions-parallel-ui-angular-radiobutton.mjs +261 -0
  1170. package/fesm2020/qius.solutions-parallel-ui-angular-radiobutton.mjs.map +1 -0
  1171. package/fesm2020/qius.solutions-parallel-ui-angular-rating.mjs +206 -0
  1172. package/fesm2020/qius.solutions-parallel-ui-angular-rating.mjs.map +1 -0
  1173. package/fesm2020/qius.solutions-parallel-ui-angular-ripple.mjs +133 -0
  1174. package/fesm2020/qius.solutions-parallel-ui-angular-ripple.mjs.map +1 -0
  1175. package/fesm2020/qius.solutions-parallel-ui-angular-scroller.mjs +935 -0
  1176. package/fesm2020/qius.solutions-parallel-ui-angular-scroller.mjs.map +1 -0
  1177. package/fesm2020/qius.solutions-parallel-ui-angular-scrollpanel.mjs +279 -0
  1178. package/fesm2020/qius.solutions-parallel-ui-angular-scrollpanel.mjs.map +1 -0
  1179. package/fesm2020/qius.solutions-parallel-ui-angular-scrolltop.mjs +228 -0
  1180. package/fesm2020/qius.solutions-parallel-ui-angular-scrolltop.mjs.map +1 -0
  1181. package/fesm2020/qius.solutions-parallel-ui-angular-selectbutton.mjs +216 -0
  1182. package/fesm2020/qius.solutions-parallel-ui-angular-selectbutton.mjs.map +1 -0
  1183. package/fesm2020/qius.solutions-parallel-ui-angular-sidebar.mjs +376 -0
  1184. package/fesm2020/qius.solutions-parallel-ui-angular-sidebar.mjs.map +1 -0
  1185. package/fesm2020/qius.solutions-parallel-ui-angular-skeleton.mjs +72 -0
  1186. package/fesm2020/qius.solutions-parallel-ui-angular-skeleton.mjs.map +1 -0
  1187. package/fesm2020/qius.solutions-parallel-ui-angular-slidemenu.mjs +623 -0
  1188. package/fesm2020/qius.solutions-parallel-ui-angular-slidemenu.mjs.map +1 -0
  1189. package/fesm2020/qius.solutions-parallel-ui-angular-slider.mjs +595 -0
  1190. package/fesm2020/qius.solutions-parallel-ui-angular-slider.mjs.map +1 -0
  1191. package/fesm2020/qius.solutions-parallel-ui-angular-speeddial.mjs +409 -0
  1192. package/fesm2020/qius.solutions-parallel-ui-angular-speeddial.mjs.map +1 -0
  1193. package/fesm2020/qius.solutions-parallel-ui-angular-spinner.mjs +414 -0
  1194. package/fesm2020/qius.solutions-parallel-ui-angular-spinner.mjs.map +1 -0
  1195. package/fesm2020/qius.solutions-parallel-ui-angular-splitbutton.mjs +148 -0
  1196. package/fesm2020/qius.solutions-parallel-ui-angular-splitbutton.mjs.map +1 -0
  1197. package/fesm2020/qius.solutions-parallel-ui-angular-splitter.mjs +362 -0
  1198. package/fesm2020/qius.solutions-parallel-ui-angular-splitter.mjs.map +1 -0
  1199. package/fesm2020/qius.solutions-parallel-ui-angular-steps.mjs +212 -0
  1200. package/fesm2020/qius.solutions-parallel-ui-angular-steps.mjs.map +1 -0
  1201. package/fesm2020/qius.solutions-parallel-ui-angular-styleclass.mjs +227 -0
  1202. package/fesm2020/qius.solutions-parallel-ui-angular-styleclass.mjs.map +1 -0
  1203. package/fesm2020/qius.solutions-parallel-ui-angular-table.mjs +5321 -0
  1204. package/fesm2020/qius.solutions-parallel-ui-angular-table.mjs.map +1 -0
  1205. package/fesm2020/qius.solutions-parallel-ui-angular-tabmenu.mjs +381 -0
  1206. package/fesm2020/qius.solutions-parallel-ui-angular-tabmenu.mjs.map +1 -0
  1207. package/fesm2020/qius.solutions-parallel-ui-angular-tabview.mjs +534 -0
  1208. package/fesm2020/qius.solutions-parallel-ui-angular-tabview.mjs.map +1 -0
  1209. package/fesm2020/qius.solutions-parallel-ui-angular-tag.mjs +92 -0
  1210. package/fesm2020/qius.solutions-parallel-ui-angular-tag.mjs.map +1 -0
  1211. package/fesm2020/qius.solutions-parallel-ui-angular-terminal.mjs +143 -0
  1212. package/fesm2020/qius.solutions-parallel-ui-angular-terminal.mjs.map +1 -0
  1213. package/fesm2020/qius.solutions-parallel-ui-angular-tieredmenu.mjs +670 -0
  1214. package/fesm2020/qius.solutions-parallel-ui-angular-tieredmenu.mjs.map +1 -0
  1215. package/fesm2020/qius.solutions-parallel-ui-angular-timeline.mjs +138 -0
  1216. package/fesm2020/qius.solutions-parallel-ui-angular-timeline.mjs.map +1 -0
  1217. package/fesm2020/qius.solutions-parallel-ui-angular-toast.mjs +449 -0
  1218. package/fesm2020/qius.solutions-parallel-ui-angular-toast.mjs.map +1 -0
  1219. package/fesm2020/qius.solutions-parallel-ui-angular-togglebutton.mjs +140 -0
  1220. package/fesm2020/qius.solutions-parallel-ui-angular-togglebutton.mjs.map +1 -0
  1221. package/fesm2020/qius.solutions-parallel-ui-angular-toolbar.mjs +90 -0
  1222. package/fesm2020/qius.solutions-parallel-ui-angular-toolbar.mjs.map +1 -0
  1223. package/fesm2020/qius.solutions-parallel-ui-angular-tooltip.mjs +553 -0
  1224. package/fesm2020/qius.solutions-parallel-ui-angular-tooltip.mjs.map +1 -0
  1225. package/fesm2020/qius.solutions-parallel-ui-angular-tree.mjs +1591 -0
  1226. package/fesm2020/qius.solutions-parallel-ui-angular-tree.mjs.map +1 -0
  1227. package/fesm2020/qius.solutions-parallel-ui-angular-treeselect.mjs +785 -0
  1228. package/fesm2020/qius.solutions-parallel-ui-angular-treeselect.mjs.map +1 -0
  1229. package/fesm2020/qius.solutions-parallel-ui-angular-treetable.mjs +3224 -0
  1230. package/fesm2020/qius.solutions-parallel-ui-angular-treetable.mjs.map +1 -0
  1231. package/fesm2020/qius.solutions-parallel-ui-angular-tristatecheckbox.mjs +230 -0
  1232. package/fesm2020/qius.solutions-parallel-ui-angular-tristatecheckbox.mjs.map +1 -0
  1233. package/fesm2020/qius.solutions-parallel-ui-angular-utils.mjs +246 -0
  1234. package/fesm2020/qius.solutions-parallel-ui-angular-utils.mjs.map +1 -0
  1235. package/fesm2020/qius.solutions-parallel-ui-angular-virtualscroller.mjs +160 -0
  1236. package/fesm2020/qius.solutions-parallel-ui-angular-virtualscroller.mjs.map +1 -0
  1237. package/fesm2020/qius.solutions-parallel-ui-angular.mjs +6 -0
  1238. package/fesm2020/qius.solutions-parallel-ui-angular.mjs.map +1 -0
  1239. package/fieldset/fieldset.d.ts +41 -0
  1240. package/fieldset/index.d.ts +5 -0
  1241. package/fieldset/public_api.d.ts +1 -0
  1242. package/fileupload/fileupload.d.ts +139 -0
  1243. package/fileupload/index.d.ts +5 -0
  1244. package/fileupload/public_api.d.ts +1 -0
  1245. package/focustrap/focustrap.d.ts +16 -0
  1246. package/focustrap/index.d.ts +5 -0
  1247. package/focustrap/public_api.d.ts +1 -0
  1248. package/galleria/galleria.d.ts +218 -0
  1249. package/galleria/index.d.ts +5 -0
  1250. package/galleria/public_api.d.ts +1 -0
  1251. package/icons/angledoubledown/angledoubledown.d.ts +6 -0
  1252. package/icons/angledoubledown/index.d.ts +5 -0
  1253. package/icons/angledoubledown/public_api.d.ts +1 -0
  1254. package/icons/angledoubleleft/angledoubleleft.d.ts +6 -0
  1255. package/icons/angledoubleleft/index.d.ts +5 -0
  1256. package/icons/angledoubleleft/public_api.d.ts +1 -0
  1257. package/icons/angledoubleright/angledoubleright.d.ts +6 -0
  1258. package/icons/angledoubleright/index.d.ts +5 -0
  1259. package/icons/angledoubleright/public_api.d.ts +1 -0
  1260. package/icons/angledoubleup/angledoubleup.d.ts +6 -0
  1261. package/icons/angledoubleup/index.d.ts +5 -0
  1262. package/icons/angledoubleup/public_api.d.ts +1 -0
  1263. package/icons/angledown/angledown.d.ts +6 -0
  1264. package/icons/angledown/index.d.ts +5 -0
  1265. package/icons/angledown/public_api.d.ts +1 -0
  1266. package/icons/angleleft/angleleft.d.ts +6 -0
  1267. package/icons/angleleft/index.d.ts +5 -0
  1268. package/icons/angleleft/public_api.d.ts +1 -0
  1269. package/icons/angleright/angleright.d.ts +6 -0
  1270. package/icons/angleright/index.d.ts +5 -0
  1271. package/icons/angleright/public_api.d.ts +1 -0
  1272. package/icons/angleup/angleup.d.ts +6 -0
  1273. package/icons/angleup/index.d.ts +5 -0
  1274. package/icons/angleup/public_api.d.ts +1 -0
  1275. package/icons/arrowdown/arrowdown.d.ts +6 -0
  1276. package/icons/arrowdown/index.d.ts +5 -0
  1277. package/icons/arrowdown/public_api.d.ts +1 -0
  1278. package/icons/arrowdownleft/arrowdownleft.d.ts +6 -0
  1279. package/icons/arrowdownleft/index.d.ts +5 -0
  1280. package/icons/arrowdownleft/public_api.d.ts +1 -0
  1281. package/icons/arrowdownright/arrowdownright.d.ts +6 -0
  1282. package/icons/arrowdownright/index.d.ts +5 -0
  1283. package/icons/arrowdownright/public_api.d.ts +1 -0
  1284. package/icons/arrowleft/arrowleft.d.ts +6 -0
  1285. package/icons/arrowleft/index.d.ts +5 -0
  1286. package/icons/arrowleft/public_api.d.ts +1 -0
  1287. package/icons/arrowright/arrowright.d.ts +6 -0
  1288. package/icons/arrowright/index.d.ts +5 -0
  1289. package/icons/arrowright/public_api.d.ts +1 -0
  1290. package/icons/arrowup/arrowup.d.ts +6 -0
  1291. package/icons/arrowup/index.d.ts +5 -0
  1292. package/icons/arrowup/public_api.d.ts +1 -0
  1293. package/icons/ban/ban.d.ts +6 -0
  1294. package/icons/ban/index.d.ts +5 -0
  1295. package/icons/ban/public_api.d.ts +1 -0
  1296. package/icons/bars/bars.d.ts +6 -0
  1297. package/icons/bars/index.d.ts +5 -0
  1298. package/icons/bars/public_api.d.ts +1 -0
  1299. package/icons/calendar/calendar.d.ts +6 -0
  1300. package/icons/calendar/index.d.ts +5 -0
  1301. package/icons/calendar/public_api.d.ts +1 -0
  1302. package/icons/caretleft/caretleft.d.ts +6 -0
  1303. package/icons/caretleft/index.d.ts +5 -0
  1304. package/icons/caretleft/public_api.d.ts +1 -0
  1305. package/icons/caretright/caretright.d.ts +6 -0
  1306. package/icons/caretright/index.d.ts +5 -0
  1307. package/icons/caretright/public_api.d.ts +1 -0
  1308. package/icons/check/check.d.ts +6 -0
  1309. package/icons/check/index.d.ts +5 -0
  1310. package/icons/check/public_api.d.ts +1 -0
  1311. package/icons/chevrondown/chevrondown.d.ts +6 -0
  1312. package/icons/chevrondown/index.d.ts +5 -0
  1313. package/icons/chevrondown/public_api.d.ts +1 -0
  1314. package/icons/chevronleft/chevronleft.d.ts +6 -0
  1315. package/icons/chevronleft/index.d.ts +5 -0
  1316. package/icons/chevronleft/public_api.d.ts +1 -0
  1317. package/icons/chevronright/chevronright.d.ts +6 -0
  1318. package/icons/chevronright/index.d.ts +5 -0
  1319. package/icons/chevronright/public_api.d.ts +1 -0
  1320. package/icons/chevronup/chevronup.d.ts +6 -0
  1321. package/icons/chevronup/index.d.ts +5 -0
  1322. package/icons/chevronup/public_api.d.ts +1 -0
  1323. package/icons/exclamationtriangle/exclamationtriangle.d.ts +6 -0
  1324. package/icons/exclamationtriangle/index.d.ts +5 -0
  1325. package/icons/exclamationtriangle/public_api.d.ts +1 -0
  1326. package/icons/eye/eye.d.ts +6 -0
  1327. package/icons/eye/index.d.ts +5 -0
  1328. package/icons/eye/public_api.d.ts +1 -0
  1329. package/icons/eyeslash/eyeslash.d.ts +6 -0
  1330. package/icons/eyeslash/index.d.ts +5 -0
  1331. package/icons/eyeslash/public_api.d.ts +1 -0
  1332. package/icons/filter/filter.d.ts +6 -0
  1333. package/icons/filter/index.d.ts +5 -0
  1334. package/icons/filter/public_api.d.ts +1 -0
  1335. package/icons/filterslash/filterslash.d.ts +6 -0
  1336. package/icons/filterslash/index.d.ts +5 -0
  1337. package/icons/filterslash/public_api.d.ts +1 -0
  1338. package/icons/home/home.d.ts +6 -0
  1339. package/icons/home/index.d.ts +5 -0
  1340. package/icons/home/public_api.d.ts +1 -0
  1341. package/icons/infocircle/index.d.ts +5 -0
  1342. package/icons/infocircle/infocircle.d.ts +6 -0
  1343. package/icons/infocircle/public_api.d.ts +1 -0
  1344. package/icons/minus/index.d.ts +5 -0
  1345. package/icons/minus/minus.d.ts +6 -0
  1346. package/icons/minus/public_api.d.ts +1 -0
  1347. package/icons/pencil/index.d.ts +5 -0
  1348. package/icons/pencil/pencil.d.ts +6 -0
  1349. package/icons/pencil/public_api.d.ts +1 -0
  1350. package/icons/plus/index.d.ts +5 -0
  1351. package/icons/plus/plus.d.ts +6 -0
  1352. package/icons/plus/public_api.d.ts +1 -0
  1353. package/icons/refresh/index.d.ts +5 -0
  1354. package/icons/refresh/public_api.d.ts +1 -0
  1355. package/icons/refresh/refresh.d.ts +6 -0
  1356. package/icons/search/index.d.ts +5 -0
  1357. package/icons/search/public_api.d.ts +1 -0
  1358. package/icons/search/search.d.ts +6 -0
  1359. package/icons/searchminus/index.d.ts +5 -0
  1360. package/icons/searchminus/public_api.d.ts +1 -0
  1361. package/icons/searchminus/searchminus.d.ts +6 -0
  1362. package/icons/searchplus/index.d.ts +5 -0
  1363. package/icons/searchplus/public_api.d.ts +1 -0
  1364. package/icons/searchplus/searchplus.d.ts +6 -0
  1365. package/icons/sortalt/index.d.ts +5 -0
  1366. package/icons/sortalt/public_api.d.ts +1 -0
  1367. package/icons/sortalt/sortalt.d.ts +6 -0
  1368. package/icons/sortamountdown/index.d.ts +5 -0
  1369. package/icons/sortamountdown/public_api.d.ts +1 -0
  1370. package/icons/sortamountdown/sortamountdown.d.ts +6 -0
  1371. package/icons/sortamountupalt/index.d.ts +5 -0
  1372. package/icons/sortamountupalt/public_api.d.ts +1 -0
  1373. package/icons/sortamountupalt/sortamountupalt.d.ts +6 -0
  1374. package/icons/spinner/index.d.ts +5 -0
  1375. package/icons/spinner/public_api.d.ts +1 -0
  1376. package/icons/spinner/spinner.d.ts +6 -0
  1377. package/icons/star/index.d.ts +5 -0
  1378. package/icons/star/public_api.d.ts +1 -0
  1379. package/icons/star/star.d.ts +6 -0
  1380. package/icons/starfill/index.d.ts +5 -0
  1381. package/icons/starfill/public_api.d.ts +1 -0
  1382. package/icons/starfill/starfill.d.ts +6 -0
  1383. package/icons/thlarge/index.d.ts +5 -0
  1384. package/icons/thlarge/public_api.d.ts +1 -0
  1385. package/icons/thlarge/thlarge.d.ts +6 -0
  1386. package/icons/times/index.d.ts +5 -0
  1387. package/icons/times/public_api.d.ts +1 -0
  1388. package/icons/times/times.d.ts +6 -0
  1389. package/icons/timescircle/index.d.ts +5 -0
  1390. package/icons/timescircle/public_api.d.ts +1 -0
  1391. package/icons/timescircle/timescircle.d.ts +6 -0
  1392. package/icons/trash/index.d.ts +5 -0
  1393. package/icons/trash/public_api.d.ts +1 -0
  1394. package/icons/trash/trash.d.ts +6 -0
  1395. package/icons/undo/index.d.ts +5 -0
  1396. package/icons/undo/public_api.d.ts +1 -0
  1397. package/icons/undo/undo.d.ts +6 -0
  1398. package/icons/upload/index.d.ts +5 -0
  1399. package/icons/upload/public_api.d.ts +1 -0
  1400. package/icons/upload/upload.d.ts +6 -0
  1401. package/icons/windowmaximize/index.d.ts +5 -0
  1402. package/icons/windowmaximize/public_api.d.ts +1 -0
  1403. package/icons/windowmaximize/windowmaximize.d.ts +6 -0
  1404. package/icons/windowminimize/index.d.ts +5 -0
  1405. package/icons/windowminimize/public_api.d.ts +1 -0
  1406. package/icons/windowminimize/windowminimize.d.ts +6 -0
  1407. package/image/image.d.ts +81 -0
  1408. package/image/index.d.ts +5 -0
  1409. package/image/public_api.d.ts +1 -0
  1410. package/index.d.ts +5 -0
  1411. package/inplace/index.d.ts +5 -0
  1412. package/inplace/inplace.d.ts +45 -0
  1413. package/inplace/public_api.d.ts +1 -0
  1414. package/inputmask/index.d.ts +5 -0
  1415. package/inputmask/inputmask.d.ts +108 -0
  1416. package/inputmask/public_api.d.ts +1 -0
  1417. package/inputnumber/index.d.ts +5 -0
  1418. package/inputnumber/inputnumber.d.ts +177 -0
  1419. package/inputnumber/public_api.d.ts +1 -0
  1420. package/inputswitch/index.d.ts +5 -0
  1421. package/inputswitch/inputswitch.d.ts +47 -0
  1422. package/inputswitch/public_api.d.ts +1 -0
  1423. package/inputtext/index.d.ts +5 -0
  1424. package/inputtext/inputtext.d.ts +22 -0
  1425. package/inputtext/public_api.d.ts +1 -0
  1426. package/inputtextarea/index.d.ts +5 -0
  1427. package/inputtextarea/inputtextarea.d.ts +34 -0
  1428. package/inputtextarea/public_api.d.ts +1 -0
  1429. package/keyfilter/index.d.ts +5 -0
  1430. package/keyfilter/keyfilter.d.ts +39 -0
  1431. package/keyfilter/public_api.d.ts +1 -0
  1432. package/knob/index.d.ts +5 -0
  1433. package/knob/knob.d.ts +81 -0
  1434. package/knob/public_api.d.ts +1 -0
  1435. package/listbox/index.d.ts +5 -0
  1436. package/listbox/listbox.d.ts +125 -0
  1437. package/listbox/public_api.d.ts +1 -0
  1438. package/megamenu/index.d.ts +5 -0
  1439. package/megamenu/megamenu.d.ts +42 -0
  1440. package/megamenu/public_api.d.ts +1 -0
  1441. package/menu/index.d.ts +5 -0
  1442. package/menu/menu.d.ts +77 -0
  1443. package/menu/public_api.d.ts +1 -0
  1444. package/menubar/index.d.ts +5 -0
  1445. package/menubar/menubar.d.ts +97 -0
  1446. package/menubar/public_api.d.ts +1 -0
  1447. package/message/index.d.ts +5 -0
  1448. package/message/message.d.ts +21 -0
  1449. package/message/public_api.d.ts +1 -0
  1450. package/messages/index.d.ts +5 -0
  1451. package/messages/messages.d.ts +49 -0
  1452. package/messages/public_api.d.ts +1 -0
  1453. package/multiselect/index.d.ts +5 -0
  1454. package/multiselect/multiselect.d.ts +232 -0
  1455. package/multiselect/public_api.d.ts +1 -0
  1456. package/orderlist/index.d.ts +5 -0
  1457. package/orderlist/orderlist.d.ts +105 -0
  1458. package/orderlist/public_api.d.ts +1 -0
  1459. package/organizationchart/index.d.ts +5 -0
  1460. package/organizationchart/organizationchart.d.ts +63 -0
  1461. package/organizationchart/public_api.d.ts +1 -0
  1462. package/overlay/index.d.ts +5 -0
  1463. package/overlay/overlay.d.ts +118 -0
  1464. package/overlay/public_api.d.ts +1 -0
  1465. package/overlaypanel/index.d.ts +5 -0
  1466. package/overlaypanel/overlaypanel.d.ts +80 -0
  1467. package/overlaypanel/public_api.d.ts +1 -0
  1468. package/package.json +1267 -0
  1469. package/paginator/index.d.ts +5 -0
  1470. package/paginator/paginator.d.ts +79 -0
  1471. package/paginator/public_api.d.ts +1 -0
  1472. package/panel/index.d.ts +5 -0
  1473. package/panel/panel.d.ts +52 -0
  1474. package/panel/public_api.d.ts +1 -0
  1475. package/panelmenu/index.d.ts +5 -0
  1476. package/panelmenu/panelmenu.d.ts +66 -0
  1477. package/panelmenu/public_api.d.ts +1 -0
  1478. package/password/index.d.ts +5 -0
  1479. package/password/password.d.ts +168 -0
  1480. package/password/public_api.d.ts +1 -0
  1481. package/picklist/index.d.ts +5 -0
  1482. package/picklist/picklist.d.ts +183 -0
  1483. package/picklist/public_api.d.ts +1 -0
  1484. package/progressbar/index.d.ts +5 -0
  1485. package/progressbar/progressbar.d.ts +18 -0
  1486. package/progressbar/public_api.d.ts +1 -0
  1487. package/progressspinner/index.d.ts +5 -0
  1488. package/progressspinner/progressspinner.d.ts +16 -0
  1489. package/progressspinner/public_api.d.ts +1 -0
  1490. package/public_api.d.ts +2 -0
  1491. package/radiobutton/index.d.ts +5 -0
  1492. package/radiobutton/public_api.d.ts +1 -0
  1493. package/radiobutton/radiobutton.d.ts +62 -0
  1494. package/rating/index.d.ts +5 -0
  1495. package/rating/public_api.d.ts +1 -0
  1496. package/rating/rating.d.ts +52 -0
  1497. package/resources/components/accordion/accordion.css +33 -0
  1498. package/resources/components/autocomplete/autocomplete.css +100 -0
  1499. package/resources/components/avatar/avatar.css +26 -0
  1500. package/resources/components/avatargroup/avatargroup.css +8 -0
  1501. package/resources/components/badge/badge.css +32 -0
  1502. package/resources/components/blockui/blockui.css +24 -0
  1503. package/resources/components/breadcrumb/breadcrumb.css +25 -0
  1504. package/resources/components/button/button.css +69 -0
  1505. package/resources/components/calendar/calendar.css +171 -0
  1506. package/resources/components/card/card.css +3 -0
  1507. package/resources/components/carousel/carousel.css +69 -0
  1508. package/resources/components/cascadeselect/cascadeselect.css +96 -0
  1509. package/resources/components/checkbox/checkbox.css +28 -0
  1510. package/resources/components/chip/chip.css +24 -0
  1511. package/resources/components/chips/chips.css +66 -0
  1512. package/resources/components/colorpicker/colorpicker-images.css +7 -0
  1513. package/resources/components/colorpicker/colorpicker.css +81 -0
  1514. package/resources/components/colorpicker/images/color.png +0 -0
  1515. package/resources/components/colorpicker/images/hue.png +0 -0
  1516. package/resources/components/common/common.css +167 -0
  1517. package/resources/components/confirmpopup/confirmpopup.css +49 -0
  1518. package/resources/components/contextmenu/contextmenu.css +46 -0
  1519. package/resources/components/dataview/dataview.css +11 -0
  1520. package/resources/components/dialog/dialog.css +138 -0
  1521. package/resources/components/divider/divider.css +84 -0
  1522. package/resources/components/dock/dock.css +105 -0
  1523. package/resources/components/dropdown/dropdown.css +78 -0
  1524. package/resources/components/editor/editor.css +4 -0
  1525. package/resources/components/fieldset/fieldset.css +25 -0
  1526. package/resources/components/fileupload/fileupload.css +45 -0
  1527. package/resources/components/galleria/galleria.css +274 -0
  1528. package/resources/components/image/image.css +64 -0
  1529. package/resources/components/inplace/inplace.css +17 -0
  1530. package/resources/components/inputmask/inputmask.css +10 -0
  1531. package/resources/components/inputnumber/inputnumber.css +113 -0
  1532. package/resources/components/inputswitch/inputswitch.css +20 -0
  1533. package/resources/components/inputtext/inputtext.css +105 -0
  1534. package/resources/components/inputtextarea/inputtextarea.css +8 -0
  1535. package/resources/components/knob/knob.css +18 -0
  1536. package/resources/components/listbox/listbox.css +38 -0
  1537. package/resources/components/megamenu/megamenu.css +107 -0
  1538. package/resources/components/menu/menu.css +28 -0
  1539. package/resources/components/menubar/menubar.css +75 -0
  1540. package/resources/components/message/message.css +15 -0
  1541. package/resources/components/messages/messages.css +20 -0
  1542. package/resources/components/multiselect/multiselect.css +108 -0
  1543. package/resources/components/orderlist/orderlist.css +76 -0
  1544. package/resources/components/organizationchart/organizationchart.css +60 -0
  1545. package/resources/components/overlay/overlay.css +78 -0
  1546. package/resources/components/overlaypanel/overlaypanel.css +58 -0
  1547. package/resources/components/paginator/paginator.css +35 -0
  1548. package/resources/components/panel/panel.css +27 -0
  1549. package/resources/components/panelmenu/panelmenu.css +40 -0
  1550. package/resources/components/password/images/password-meter.png +0 -0
  1551. package/resources/components/password/password.css +44 -0
  1552. package/resources/components/picklist/picklist.css +58 -0
  1553. package/resources/components/progressbar/progressbar.css +96 -0
  1554. package/resources/components/progressspinner/progressspinner.css +72 -0
  1555. package/resources/components/radiobutton/radiobutton.css +36 -0
  1556. package/resources/components/rating/rating.css +11 -0
  1557. package/resources/components/ripple/ripple.css +27 -0
  1558. package/resources/components/scroller/scroller.css +56 -0
  1559. package/resources/components/scrollpanel/scrollpanel.css +48 -0
  1560. package/resources/components/scrolltop/scrolltop.css +16 -0
  1561. package/resources/components/sidebar/sidebar.css +104 -0
  1562. package/resources/components/skeleton/skeleton.css +33 -0
  1563. package/resources/components/slidemenu/slidemenu.css +99 -0
  1564. package/resources/components/slider/slider.css +39 -0
  1565. package/resources/components/speeddial/speeddial.css +110 -0
  1566. package/resources/components/spinner/spinner.css +61 -0
  1567. package/resources/components/splitbutton/splitbutton.css +31 -0
  1568. package/resources/components/splitter/splitter.css +62 -0
  1569. package/resources/components/steps/steps.css +47 -0
  1570. package/resources/components/table/table.css +242 -0
  1571. package/resources/components/tabmenu/tabmenu.css +78 -0
  1572. package/resources/components/tabview/tabview.css +73 -0
  1573. package/resources/components/tag/tag.css +15 -0
  1574. package/resources/components/terminal/terminal.css +22 -0
  1575. package/resources/components/tieredmenu/tieredmenu.css +49 -0
  1576. package/resources/components/timeline/timeline.css +110 -0
  1577. package/resources/components/toast/toast.css +68 -0
  1578. package/resources/components/toolbar/toolbar.css +17 -0
  1579. package/resources/components/tooltip/tooltip.css +61 -0
  1580. package/resources/components/tree/images/line.gif +0 -0
  1581. package/resources/components/tree/tree.css +156 -0
  1582. package/resources/components/treeselect/treeselect.css +95 -0
  1583. package/resources/components/treetable/treetable.css +203 -0
  1584. package/resources/images/color.png +0 -0
  1585. package/resources/images/hue.png +0 -0
  1586. package/resources/images/line.gif +0 -0
  1587. package/resources/images/password-meter.png +0 -0
  1588. package/resources/parallel-ui-angular.css +588 -0
  1589. package/resources/parallel-ui-angular.min.css +1 -0
  1590. package/resources/themes/arya-blue/theme.css +7757 -0
  1591. package/resources/themes/arya-green/theme.css +7757 -0
  1592. package/resources/themes/arya-orange/theme.css +7757 -0
  1593. package/resources/themes/arya-purple/theme.css +7757 -0
  1594. package/resources/themes/bootstrap4-dark-blue/theme.css +7763 -0
  1595. package/resources/themes/bootstrap4-dark-purple/theme.css +7763 -0
  1596. package/resources/themes/bootstrap4-light-blue/theme.css +7763 -0
  1597. package/resources/themes/bootstrap4-light-purple/theme.css +7763 -0
  1598. package/resources/themes/fluent-light/theme.css +7905 -0
  1599. package/resources/themes/lara-dark-blue/theme.css +7737 -0
  1600. package/resources/themes/lara-dark-indigo/theme.css +7737 -0
  1601. package/resources/themes/lara-dark-purple/theme.css +7737 -0
  1602. package/resources/themes/lara-dark-teal/theme.css +7737 -0
  1603. package/resources/themes/lara-light-blue/theme.css +7737 -0
  1604. package/resources/themes/lara-light-indigo/theme.css +7737 -0
  1605. package/resources/themes/lara-light-purple/theme.css +7737 -0
  1606. package/resources/themes/lara-light-teal/theme.css +7737 -0
  1607. package/resources/themes/luna-amber/theme.css +7686 -0
  1608. package/resources/themes/luna-blue/theme.css +7686 -0
  1609. package/resources/themes/luna-green/theme.css +7686 -0
  1610. package/resources/themes/luna-pink/theme.css +7686 -0
  1611. package/resources/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  1612. package/resources/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  1613. package/resources/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  1614. package/resources/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  1615. package/resources/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  1616. package/resources/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  1617. package/resources/themes/md-dark-deeppurple/theme.css +9765 -0
  1618. package/resources/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  1619. package/resources/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  1620. package/resources/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  1621. package/resources/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  1622. package/resources/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  1623. package/resources/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  1624. package/resources/themes/md-dark-indigo/theme.css +9765 -0
  1625. package/resources/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  1626. package/resources/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  1627. package/resources/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  1628. package/resources/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  1629. package/resources/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  1630. package/resources/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  1631. package/resources/themes/md-light-deeppurple/theme.css +9765 -0
  1632. package/resources/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  1633. package/resources/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  1634. package/resources/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  1635. package/resources/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  1636. package/resources/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  1637. package/resources/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  1638. package/resources/themes/md-light-indigo/theme.css +9765 -0
  1639. package/resources/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  1640. package/resources/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  1641. package/resources/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  1642. package/resources/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  1643. package/resources/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  1644. package/resources/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  1645. package/resources/themes/mdc-dark-deeppurple/theme.css +9765 -0
  1646. package/resources/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  1647. package/resources/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  1648. package/resources/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  1649. package/resources/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  1650. package/resources/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  1651. package/resources/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  1652. package/resources/themes/mdc-dark-indigo/theme.css +9765 -0
  1653. package/resources/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  1654. package/resources/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  1655. package/resources/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  1656. package/resources/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  1657. package/resources/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  1658. package/resources/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  1659. package/resources/themes/mdc-light-deeppurple/theme.css +9765 -0
  1660. package/resources/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
  1661. package/resources/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
  1662. package/resources/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
  1663. package/resources/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
  1664. package/resources/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
  1665. package/resources/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
  1666. package/resources/themes/mdc-light-indigo/theme.css +9765 -0
  1667. package/resources/themes/mira/fonts/Inter-Bold.woff +0 -0
  1668. package/resources/themes/mira/fonts/Inter-Bold.woff2 +0 -0
  1669. package/resources/themes/mira/fonts/Inter-Medium.woff +0 -0
  1670. package/resources/themes/mira/fonts/Inter-Medium.woff2 +0 -0
  1671. package/resources/themes/mira/fonts/Inter-Regular.woff +0 -0
  1672. package/resources/themes/mira/fonts/Inter-Regular.woff2 +0 -0
  1673. package/resources/themes/mira/fonts/Inter-SemiBold.woff +0 -0
  1674. package/resources/themes/mira/fonts/Inter-SemiBold.woff2 +0 -0
  1675. package/resources/themes/mira/theme.css +7990 -0
  1676. package/resources/themes/nano/theme.css +7736 -0
  1677. package/resources/themes/nova/theme.css +7702 -0
  1678. package/resources/themes/nova-accent/theme.css +7714 -0
  1679. package/resources/themes/nova-alt/theme.css +7714 -0
  1680. package/resources/themes/rhea/theme.css +7690 -0
  1681. package/resources/themes/saga-blue/theme.css +7753 -0
  1682. package/resources/themes/saga-green/theme.css +7753 -0
  1683. package/resources/themes/saga-orange/theme.css +7753 -0
  1684. package/resources/themes/saga-purple/theme.css +7753 -0
  1685. package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-300.woff +0 -0
  1686. package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-300.woff2 +0 -0
  1687. package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-700.woff +0 -0
  1688. package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-700.woff2 +0 -0
  1689. package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-regular.woff +0 -0
  1690. package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-regular.woff2 +0 -0
  1691. package/resources/themes/soho-dark/theme.css +7719 -0
  1692. package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-300.woff +0 -0
  1693. package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-300.woff2 +0 -0
  1694. package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-700.woff +0 -0
  1695. package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-700.woff2 +0 -0
  1696. package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-regular.woff +0 -0
  1697. package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-regular.woff2 +0 -0
  1698. package/resources/themes/soho-light/theme.css +7785 -0
  1699. package/resources/themes/tailwind-light/fonts/Inter-Bold.woff +0 -0
  1700. package/resources/themes/tailwind-light/fonts/Inter-Bold.woff2 +0 -0
  1701. package/resources/themes/tailwind-light/fonts/Inter-Light.woff +0 -0
  1702. package/resources/themes/tailwind-light/fonts/Inter-Light.woff2 +0 -0
  1703. package/resources/themes/tailwind-light/fonts/Inter-Medium.woff +0 -0
  1704. package/resources/themes/tailwind-light/fonts/Inter-Medium.woff2 +0 -0
  1705. package/resources/themes/tailwind-light/fonts/Inter-Regular.woff +0 -0
  1706. package/resources/themes/tailwind-light/fonts/Inter-Regular.woff2 +0 -0
  1707. package/resources/themes/tailwind-light/fonts/Inter-SemiBold.woff +0 -0
  1708. package/resources/themes/tailwind-light/fonts/Inter-SemiBold.woff2 +0 -0
  1709. package/resources/themes/tailwind-light/theme.css +7867 -0
  1710. package/resources/themes/vela-blue/theme.css +7757 -0
  1711. package/resources/themes/vela-green/theme.css +7757 -0
  1712. package/resources/themes/vela-orange/theme.css +7757 -0
  1713. package/resources/themes/vela-purple/theme.css +7757 -0
  1714. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-300.woff +0 -0
  1715. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-300.woff2 +0 -0
  1716. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-600.woff +0 -0
  1717. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-600.woff2 +0 -0
  1718. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-700.woff +0 -0
  1719. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-700.woff2 +0 -0
  1720. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-regular.woff +0 -0
  1721. package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-regular.woff2 +0 -0
  1722. package/resources/themes/viva-dark/theme.css +7910 -0
  1723. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-300.woff +0 -0
  1724. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-300.woff2 +0 -0
  1725. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-600.woff +0 -0
  1726. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-600.woff2 +0 -0
  1727. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-700.woff +0 -0
  1728. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-700.woff2 +0 -0
  1729. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-regular.woff +0 -0
  1730. package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-regular.woff2 +0 -0
  1731. package/resources/themes/viva-light/theme.css +7910 -0
  1732. package/ripple/index.d.ts +5 -0
  1733. package/ripple/public_api.d.ts +1 -0
  1734. package/ripple/ripple.d.ts +31 -0
  1735. package/scroller/index.d.ts +5 -0
  1736. package/scroller/public_api.d.ts +1 -0
  1737. package/scroller/scroller.d.ts +251 -0
  1738. package/scrollpanel/index.d.ts +5 -0
  1739. package/scrollpanel/public_api.d.ts +1 -0
  1740. package/scrollpanel/scrollpanel.d.ts +59 -0
  1741. package/scrolltop/index.d.ts +5 -0
  1742. package/scrolltop/public_api.d.ts +1 -0
  1743. package/scrolltop/scrolltop.d.ts +53 -0
  1744. package/selectbutton/index.d.ts +5 -0
  1745. package/selectbutton/public_api.d.ts +1 -0
  1746. package/selectbutton/selectbutton.d.ts +45 -0
  1747. package/sidebar/index.d.ts +5 -0
  1748. package/sidebar/public_api.d.ts +1 -0
  1749. package/sidebar/sidebar.d.ts +75 -0
  1750. package/skeleton/index.d.ts +5 -0
  1751. package/skeleton/public_api.d.ts +1 -0
  1752. package/skeleton/skeleton.d.ts +25 -0
  1753. package/slidemenu/index.d.ts +5 -0
  1754. package/slidemenu/public_api.d.ts +1 -0
  1755. package/slidemenu/slidemenu.d.ts +112 -0
  1756. package/slider/index.d.ts +5 -0
  1757. package/slider/public_api.d.ts +1 -0
  1758. package/slider/slider.d.ts +92 -0
  1759. package/speeddial/index.d.ts +5 -0
  1760. package/speeddial/public_api.d.ts +1 -0
  1761. package/speeddial/speeddial.d.ts +137 -0
  1762. package/spinner/index.d.ts +5 -0
  1763. package/spinner/public_api.d.ts +1 -0
  1764. package/spinner/spinner.d.ts +80 -0
  1765. package/splitbutton/index.d.ts +5 -0
  1766. package/splitbutton/public_api.d.ts +1 -0
  1767. package/splitbutton/splitbutton.d.ts +45 -0
  1768. package/splitter/index.d.ts +5 -0
  1769. package/splitter/public_api.d.ts +1 -0
  1770. package/splitter/splitter.d.ts +88 -0
  1771. package/steps/index.d.ts +5 -0
  1772. package/steps/public_api.d.ts +1 -0
  1773. package/steps/steps.d.ts +33 -0
  1774. package/styleclass/index.d.ts +5 -0
  1775. package/styleclass/public_api.d.ts +1 -0
  1776. package/styleclass/styleclass.d.ts +45 -0
  1777. package/table/index.d.ts +5 -0
  1778. package/table/public_api.d.ts +1 -0
  1779. package/table/table.d.ts +890 -0
  1780. package/tabmenu/index.d.ts +5 -0
  1781. package/tabmenu/public_api.d.ts +1 -0
  1782. package/tabmenu/tabmenu.d.ts +61 -0
  1783. package/tabview/index.d.ts +5 -0
  1784. package/tabview/public_api.d.ts +1 -0
  1785. package/tabview/tabview.d.ts +110 -0
  1786. package/tag/index.d.ts +5 -0
  1787. package/tag/public_api.d.ts +1 -0
  1788. package/tag/tag.d.ts +30 -0
  1789. package/terminal/index.d.ts +5 -0
  1790. package/terminal/public_api.d.ts +2 -0
  1791. package/terminal/terminal.d.ts +34 -0
  1792. package/terminal/terminalservice.d.ts +11 -0
  1793. package/tieredmenu/index.d.ts +5 -0
  1794. package/tieredmenu/public_api.d.ts +1 -0
  1795. package/tieredmenu/tieredmenu.d.ts +109 -0
  1796. package/timeline/index.d.ts +5 -0
  1797. package/timeline/public_api.d.ts +1 -0
  1798. package/timeline/timeline.d.ts +27 -0
  1799. package/toast/index.d.ts +5 -0
  1800. package/toast/public_api.d.ts +1 -0
  1801. package/toast/toast.d.ts +87 -0
  1802. package/togglebutton/index.d.ts +5 -0
  1803. package/togglebutton/public_api.d.ts +1 -0
  1804. package/togglebutton/togglebutton.d.ts +40 -0
  1805. package/toolbar/index.d.ts +5 -0
  1806. package/toolbar/public_api.d.ts +1 -0
  1807. package/toolbar/toolbar.d.ts +23 -0
  1808. package/tooltip/index.d.ts +5 -0
  1809. package/tooltip/public_api.d.ts +1 -0
  1810. package/tooltip/tooltip.d.ts +115 -0
  1811. package/tree/index.d.ts +5 -0
  1812. package/tree/public_api.d.ts +1 -0
  1813. package/tree/tree.d.ts +207 -0
  1814. package/treeselect/index.d.ts +5 -0
  1815. package/treeselect/public_api.d.ts +1 -0
  1816. package/treeselect/treeselect.d.ts +149 -0
  1817. package/treetable/index.d.ts +5 -0
  1818. package/treetable/public_api.d.ts +1 -0
  1819. package/treetable/treetable.d.ts +542 -0
  1820. package/tristatecheckbox/index.d.ts +5 -0
  1821. package/tristatecheckbox/public_api.d.ts +1 -0
  1822. package/tristatecheckbox/tristatecheckbox.d.ts +49 -0
  1823. package/utils/index.d.ts +5 -0
  1824. package/utils/objectutils.d.ts +17 -0
  1825. package/utils/public_api.d.ts +4 -0
  1826. package/utils/uniquecomponentid.d.ts +2 -0
  1827. package/utils/zindexutils.d.ts +7 -0
  1828. package/virtualscroller/index.d.ts +5 -0
  1829. package/virtualscroller/public_api.d.ts +1 -0
  1830. package/virtualscroller/virtualscroller.d.ts +41 -0
@@ -0,0 +1,928 @@
1
+ import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Inject, Input, NgModule, Output, PLATFORM_ID, ViewChild, ViewEncapsulation } from '@angular/core';
3
+ import { QiusTemplate, SharedModule } from '@qius.solutions/parallel-ui-angular/api';
4
+ import { DomHandler } from '@qius.solutions/parallel-ui-angular/dom';
5
+ import { SpinnerIcon } from '@qius.solutions/parallel-ui-angular/icons/spinner';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ export class Scroller {
9
+ constructor(document, platformId, renderer, cd, zone) {
10
+ this.document = document;
11
+ this.platformId = platformId;
12
+ this.renderer = renderer;
13
+ this.cd = cd;
14
+ this.zone = zone;
15
+ this.onLazyLoad = new EventEmitter();
16
+ this.onScroll = new EventEmitter();
17
+ this.onScrollIndexChange = new EventEmitter();
18
+ this._tabindex = 0;
19
+ this._itemSize = 0;
20
+ this._orientation = 'vertical';
21
+ this._step = 0;
22
+ this._delay = 0;
23
+ this._resizeDelay = 10;
24
+ this._appendOnly = false;
25
+ this._inline = false;
26
+ this._lazy = false;
27
+ this._disabled = false;
28
+ this._loaderDisabled = false;
29
+ this._showSpacer = true;
30
+ this._showLoader = false;
31
+ this._autoSize = false;
32
+ this.d_loading = false;
33
+ this.first = 0;
34
+ this.last = 0;
35
+ this.page = 0;
36
+ this.isRangeChanged = false;
37
+ this.numItemsInViewport = 0;
38
+ this.lastScrollPos = 0;
39
+ this.lazyLoadState = {};
40
+ this.loaderArr = [];
41
+ this.spacerStyle = {};
42
+ this.contentStyle = {};
43
+ this.initialized = false;
44
+ }
45
+ get id() {
46
+ return this._id;
47
+ }
48
+ set id(val) {
49
+ this._id = val;
50
+ }
51
+ get style() {
52
+ return this._style;
53
+ }
54
+ set style(val) {
55
+ this._style = val;
56
+ }
57
+ get styleClass() {
58
+ return this._styleClass;
59
+ }
60
+ set styleClass(val) {
61
+ this._styleClass = val;
62
+ }
63
+ get tabindex() {
64
+ return this._tabindex;
65
+ }
66
+ set tabindex(val) {
67
+ this._tabindex = val;
68
+ }
69
+ get items() {
70
+ return this._items;
71
+ }
72
+ set items(val) {
73
+ this._items = val;
74
+ }
75
+ get itemSize() {
76
+ return this._itemSize;
77
+ }
78
+ set itemSize(val) {
79
+ this._itemSize = val;
80
+ }
81
+ get scrollHeight() {
82
+ return this._scrollHeight;
83
+ }
84
+ set scrollHeight(val) {
85
+ this._scrollHeight = val;
86
+ }
87
+ get scrollWidth() {
88
+ return this._scrollWidth;
89
+ }
90
+ set scrollWidth(val) {
91
+ this._scrollWidth = val;
92
+ }
93
+ get orientation() {
94
+ return this._orientation;
95
+ }
96
+ set orientation(val) {
97
+ this._orientation = val;
98
+ }
99
+ get step() {
100
+ return this._step;
101
+ }
102
+ set step(val) {
103
+ this._step = val;
104
+ }
105
+ get delay() {
106
+ return this._delay;
107
+ }
108
+ set delay(val) {
109
+ this._delay = val;
110
+ }
111
+ get resizeDelay() {
112
+ return this._resizeDelay;
113
+ }
114
+ set resizeDelay(val) {
115
+ this._resizeDelay = val;
116
+ }
117
+ get appendOnly() {
118
+ return this._appendOnly;
119
+ }
120
+ set appendOnly(val) {
121
+ this._appendOnly = val;
122
+ }
123
+ get inline() {
124
+ return this._inline;
125
+ }
126
+ set inline(val) {
127
+ this._inline = val;
128
+ }
129
+ get lazy() {
130
+ return this._lazy;
131
+ }
132
+ set lazy(val) {
133
+ this._lazy = val;
134
+ }
135
+ get disabled() {
136
+ return this._disabled;
137
+ }
138
+ set disabled(val) {
139
+ this._disabled = val;
140
+ }
141
+ get loaderDisabled() {
142
+ return this._loaderDisabled;
143
+ }
144
+ set loaderDisabled(val) {
145
+ this._loaderDisabled = val;
146
+ }
147
+ get columns() {
148
+ return this._columns;
149
+ }
150
+ set columns(val) {
151
+ this._columns = val;
152
+ }
153
+ get showSpacer() {
154
+ return this._showSpacer;
155
+ }
156
+ set showSpacer(val) {
157
+ this._showSpacer = val;
158
+ }
159
+ get showLoader() {
160
+ return this._showLoader;
161
+ }
162
+ set showLoader(val) {
163
+ this._showLoader = val;
164
+ }
165
+ get numToleratedItems() {
166
+ return this._numToleratedItems;
167
+ }
168
+ set numToleratedItems(val) {
169
+ this._numToleratedItems = val;
170
+ }
171
+ get loading() {
172
+ return this._loading;
173
+ }
174
+ set loading(val) {
175
+ this._loading = val;
176
+ }
177
+ get autoSize() {
178
+ return this._autoSize;
179
+ }
180
+ set autoSize(val) {
181
+ this._autoSize = val;
182
+ }
183
+ get trackBy() {
184
+ return this._trackBy;
185
+ }
186
+ set trackBy(val) {
187
+ this._trackBy = val;
188
+ }
189
+ get options() {
190
+ return this._options;
191
+ }
192
+ set options(val) {
193
+ this._options = val;
194
+ if (val && typeof val === 'object') {
195
+ Object.entries(val).forEach(([k, v]) => this[`_${k}`] !== v && (this[`_${k}`] = v));
196
+ }
197
+ }
198
+ get vertical() {
199
+ return this._orientation === 'vertical';
200
+ }
201
+ get horizontal() {
202
+ return this._orientation === 'horizontal';
203
+ }
204
+ get both() {
205
+ return this._orientation === 'both';
206
+ }
207
+ get loadedItems() {
208
+ if (this._items && !this.d_loading) {
209
+ if (this.both)
210
+ return this._items.slice(this._appendOnly ? 0 : this.first.rows, this.last.rows).map((item) => (this._columns ? item : item.slice(this._appendOnly ? 0 : this.first.cols, this.last.cols)));
211
+ else if (this.horizontal && this._columns)
212
+ return this._items;
213
+ else
214
+ return this._items.slice(this._appendOnly ? 0 : this.first, this.last);
215
+ }
216
+ return [];
217
+ }
218
+ get loadedRows() {
219
+ return this.d_loading ? (this._loaderDisabled ? this.loaderArr : []) : this.loadedItems;
220
+ }
221
+ get loadedColumns() {
222
+ if (this._columns && (this.both || this.horizontal)) {
223
+ return this.d_loading && this._loaderDisabled ? (this.both ? this.loaderArr[0] : this.loaderArr) : this._columns.slice(this.both ? this.first.cols : this.first, this.both ? this.last.cols : this.last);
224
+ }
225
+ return this._columns;
226
+ }
227
+ get isPageChanged() {
228
+ return this._step ? this.page !== this.getPageByFirst() : true;
229
+ }
230
+ ngOnInit() {
231
+ this.setInitialState();
232
+ }
233
+ ngOnChanges(simpleChanges) {
234
+ let isLoadingChanged = false;
235
+ if (simpleChanges.loading) {
236
+ const { previousValue, currentValue } = simpleChanges.loading;
237
+ if (this.lazy && previousValue !== currentValue && currentValue !== this.d_loading) {
238
+ this.d_loading = currentValue;
239
+ isLoadingChanged = true;
240
+ }
241
+ }
242
+ if (simpleChanges.orientation) {
243
+ this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;
244
+ }
245
+ if (simpleChanges.numToleratedItems) {
246
+ const { previousValue, currentValue } = simpleChanges.numToleratedItems;
247
+ if (previousValue !== currentValue && currentValue !== this.d_numToleratedItems) {
248
+ this.d_numToleratedItems = currentValue;
249
+ }
250
+ }
251
+ if (simpleChanges.options) {
252
+ const { previousValue, currentValue } = simpleChanges.options;
253
+ if (this.lazy && previousValue?.loading !== currentValue?.loading && currentValue?.loading !== this.d_loading) {
254
+ this.d_loading = currentValue.loading;
255
+ isLoadingChanged = true;
256
+ }
257
+ if (previousValue?.numToleratedItems !== currentValue?.numToleratedItems && currentValue?.numToleratedItems !== this.d_numToleratedItems) {
258
+ this.d_numToleratedItems = currentValue.numToleratedItems;
259
+ }
260
+ }
261
+ if (this.initialized) {
262
+ const isChanged = !isLoadingChanged && (simpleChanges.items?.previousValue?.length !== simpleChanges.items?.currentValue?.length || simpleChanges.itemSize || simpleChanges.scrollHeight || simpleChanges.scrollWidth);
263
+ if (isChanged) {
264
+ this.init();
265
+ this.calculateAutoSize();
266
+ }
267
+ }
268
+ }
269
+ ngAfterContentInit() {
270
+ this.templates.forEach((item) => {
271
+ switch (item.getType()) {
272
+ case 'content':
273
+ this.contentTemplate = item.template;
274
+ break;
275
+ case 'item':
276
+ this.itemTemplate = item.template;
277
+ break;
278
+ case 'loader':
279
+ this.loaderTemplate = item.template;
280
+ break;
281
+ case 'loadericon':
282
+ this.loaderIconTemplate = item.template;
283
+ break;
284
+ default:
285
+ this.itemTemplate = item.template;
286
+ break;
287
+ }
288
+ });
289
+ }
290
+ ngAfterViewInit() {
291
+ Promise.resolve().then(() => {
292
+ this.viewInit();
293
+ });
294
+ }
295
+ ngAfterViewChecked() {
296
+ if (!this.initialized) {
297
+ this.viewInit();
298
+ }
299
+ }
300
+ ngOnDestroy() {
301
+ this.unbindResizeListener();
302
+ this.contentEl = null;
303
+ this.initialized = false;
304
+ }
305
+ viewInit() {
306
+ if (isPlatformBrowser(this.platformId)) {
307
+ if (DomHandler.isVisible(this.elementViewChild?.nativeElement)) {
308
+ this.setInitialState();
309
+ this.setContentEl(this.contentEl);
310
+ this.init();
311
+ this.defaultWidth = DomHandler.getWidth(this.elementViewChild.nativeElement);
312
+ this.defaultHeight = DomHandler.getHeight(this.elementViewChild.nativeElement);
313
+ this.defaultContentWidth = DomHandler.getWidth(this.contentEl);
314
+ this.defaultContentHeight = DomHandler.getHeight(this.contentEl);
315
+ this.initialized = true;
316
+ }
317
+ }
318
+ }
319
+ init() {
320
+ if (!this._disabled) {
321
+ this.setSize();
322
+ this.calculateOptions();
323
+ this.setSpacerSize();
324
+ this.bindResizeListener();
325
+ this.cd.detectChanges();
326
+ }
327
+ }
328
+ setContentEl(el) {
329
+ this.contentEl = el || this.contentViewChild?.nativeElement || DomHandler.findSingle(this.elementViewChild?.nativeElement, '.p-scroller-content');
330
+ }
331
+ setInitialState() {
332
+ this.first = this.both ? { rows: 0, cols: 0 } : 0;
333
+ this.last = this.both ? { rows: 0, cols: 0 } : 0;
334
+ this.numItemsInViewport = this.both ? { rows: 0, cols: 0 } : 0;
335
+ this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;
336
+ this.d_loading = this._loading || false;
337
+ this.d_numToleratedItems = this._numToleratedItems;
338
+ this.loaderArr = [];
339
+ this.spacerStyle = {};
340
+ this.contentStyle = {};
341
+ }
342
+ getElementRef() {
343
+ return this.elementViewChild;
344
+ }
345
+ getPageByFirst() {
346
+ return Math.floor((this.first + this.d_numToleratedItems * 4) / (this._step || 1));
347
+ }
348
+ scrollTo(options) {
349
+ this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;
350
+ this.elementViewChild?.nativeElement?.scrollTo(options);
351
+ }
352
+ scrollToIndex(index, behavior = 'auto') {
353
+ const { numToleratedItems } = this.calculateNumItems();
354
+ const contentPos = this.getContentPosition();
355
+ const calculateFirst = (_index = 0, _numT) => (_index <= _numT ? 0 : _index);
356
+ const calculateCoord = (_first, _size, _cpos) => _first * _size + _cpos;
357
+ const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
358
+ let newFirst = 0;
359
+ if (this.both) {
360
+ newFirst = { rows: calculateFirst(index[0], numToleratedItems[0]), cols: calculateFirst(index[1], numToleratedItems[1]) };
361
+ scrollTo(calculateCoord(newFirst.cols, this._itemSize[1], contentPos.left), calculateCoord(newFirst.rows, this._itemSize[0], contentPos.top));
362
+ }
363
+ else {
364
+ newFirst = calculateFirst(index, numToleratedItems);
365
+ this.horizontal ? scrollTo(calculateCoord(newFirst, this._itemSize, contentPos.left), 0) : scrollTo(0, calculateCoord(newFirst, this._itemSize, contentPos.top));
366
+ }
367
+ this.isRangeChanged = this.first !== newFirst;
368
+ this.first = newFirst;
369
+ }
370
+ scrollInView(index, to, behavior = 'auto') {
371
+ if (to) {
372
+ const { first, viewport } = this.getRenderedRange();
373
+ const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
374
+ const isToStart = to === 'to-start';
375
+ const isToEnd = to === 'to-end';
376
+ if (isToStart) {
377
+ if (this.both) {
378
+ if (viewport.first.rows - first.rows > index[0]) {
379
+ scrollTo(viewport.first.cols * this._itemSize[1], (viewport.first.rows - 1) * this._itemSize[0]);
380
+ }
381
+ else if (viewport.first.cols - first.cols > index[1]) {
382
+ scrollTo((viewport.first.cols - 1) * this._itemSize[1], viewport.first.rows * this._itemSize[0]);
383
+ }
384
+ }
385
+ else {
386
+ if (viewport.first - first > index) {
387
+ const pos = (viewport.first - 1) * this._itemSize;
388
+ this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
389
+ }
390
+ }
391
+ }
392
+ else if (isToEnd) {
393
+ if (this.both) {
394
+ if (viewport.last.rows - first.rows <= index[0] + 1) {
395
+ scrollTo(viewport.first.cols * this._itemSize[1], (viewport.first.rows + 1) * this._itemSize[0]);
396
+ }
397
+ else if (viewport.last.cols - first.cols <= index[1] + 1) {
398
+ scrollTo((viewport.first.cols + 1) * this._itemSize[1], viewport.first.rows * this._itemSize[0]);
399
+ }
400
+ }
401
+ else {
402
+ if (viewport.last - first <= index + 1) {
403
+ const pos = (viewport.first + 1) * this._itemSize;
404
+ this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
405
+ }
406
+ }
407
+ }
408
+ }
409
+ else {
410
+ this.scrollToIndex(index, behavior);
411
+ }
412
+ }
413
+ getRenderedRange() {
414
+ const calculateFirstInViewport = (_pos, _size) => Math.floor(_pos / (_size || _pos));
415
+ let firstInViewport = this.first;
416
+ let lastInViewport = 0;
417
+ if (this.elementViewChild?.nativeElement) {
418
+ const { scrollTop, scrollLeft } = this.elementViewChild.nativeElement;
419
+ if (this.both) {
420
+ firstInViewport = { rows: calculateFirstInViewport(scrollTop, this._itemSize[0]), cols: calculateFirstInViewport(scrollLeft, this._itemSize[1]) };
421
+ lastInViewport = { rows: firstInViewport.rows + this.numItemsInViewport.rows, cols: firstInViewport.cols + this.numItemsInViewport.cols };
422
+ }
423
+ else {
424
+ const scrollPos = this.horizontal ? scrollLeft : scrollTop;
425
+ firstInViewport = calculateFirstInViewport(scrollPos, this._itemSize);
426
+ lastInViewport = firstInViewport + this.numItemsInViewport;
427
+ }
428
+ }
429
+ return {
430
+ first: this.first,
431
+ last: this.last,
432
+ viewport: {
433
+ first: firstInViewport,
434
+ last: lastInViewport
435
+ }
436
+ };
437
+ }
438
+ calculateNumItems() {
439
+ const contentPos = this.getContentPosition();
440
+ const contentWidth = this.elementViewChild?.nativeElement ? this.elementViewChild.nativeElement.offsetWidth - contentPos.left : 0;
441
+ const contentHeight = this.elementViewChild?.nativeElement ? this.elementViewChild.nativeElement.offsetHeight - contentPos.top : 0;
442
+ const calculateNumItemsInViewport = (_contentSize, _itemSize) => Math.ceil(_contentSize / (_itemSize || _contentSize));
443
+ const calculateNumToleratedItems = (_numItems) => Math.ceil(_numItems / 2);
444
+ const numItemsInViewport = this.both
445
+ ? { rows: calculateNumItemsInViewport(contentHeight, this._itemSize[0]), cols: calculateNumItemsInViewport(contentWidth, this._itemSize[1]) }
446
+ : calculateNumItemsInViewport(this.horizontal ? contentWidth : contentHeight, this._itemSize);
447
+ const numToleratedItems = this.d_numToleratedItems || (this.both ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));
448
+ return { numItemsInViewport, numToleratedItems };
449
+ }
450
+ calculateOptions() {
451
+ const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();
452
+ const calculateLast = (_first, _num, _numT, _isCols = false) => this.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);
453
+ const first = this.first;
454
+ const last = this.both
455
+ ? { rows: calculateLast(this.first.rows, numItemsInViewport.rows, numToleratedItems[0]), cols: calculateLast(this.first.cols, numItemsInViewport.cols, numToleratedItems[1], true) }
456
+ : calculateLast(this.first, numItemsInViewport, numToleratedItems);
457
+ this.last = last;
458
+ this.numItemsInViewport = numItemsInViewport;
459
+ this.d_numToleratedItems = numToleratedItems;
460
+ if (this.showLoader) {
461
+ this.loaderArr = this.both ? Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) : Array.from({ length: numItemsInViewport });
462
+ }
463
+ if (this._lazy) {
464
+ Promise.resolve().then(() => {
465
+ this.lazyLoadState = {
466
+ first: this._step ? (this.both ? { rows: 0, cols: first.cols } : 0) : first,
467
+ last: Math.min(this._step ? this._step : this.last, this.items.length)
468
+ };
469
+ this.handleEvents('onLazyLoad', this.lazyLoadState);
470
+ });
471
+ }
472
+ }
473
+ calculateAutoSize() {
474
+ if (this._autoSize && !this.d_loading) {
475
+ Promise.resolve().then(() => {
476
+ if (this.contentEl) {
477
+ this.contentEl.style.minHeight = this.contentEl.style.minWidth = 'auto';
478
+ this.contentEl.style.position = 'relative';
479
+ this.elementViewChild.nativeElement.style.contain = 'none';
480
+ const [contentWidth, contentHeight] = [DomHandler.getWidth(this.contentEl), DomHandler.getHeight(this.contentEl)];
481
+ contentWidth !== this.defaultContentWidth && (this.elementViewChild.nativeElement.style.width = '');
482
+ contentHeight !== this.defaultContentHeight && (this.elementViewChild.nativeElement.style.height = '');
483
+ const [width, height] = [DomHandler.getWidth(this.elementViewChild.nativeElement), DomHandler.getHeight(this.elementViewChild.nativeElement)];
484
+ (this.both || this.horizontal) && (this.elementViewChild.nativeElement.style.width = width < this.defaultWidth ? width + 'px' : this._scrollWidth || this.defaultWidth + 'px');
485
+ (this.both || this.vertical) && (this.elementViewChild.nativeElement.style.height = height < this.defaultHeight ? height + 'px' : this._scrollHeight || this.defaultHeight + 'px');
486
+ this.contentEl.style.minHeight = this.contentEl.style.minWidth = '';
487
+ this.contentEl.style.position = '';
488
+ this.elementViewChild.nativeElement.style.contain = '';
489
+ }
490
+ });
491
+ }
492
+ }
493
+ getLast(last = 0, isCols = false) {
494
+ return this._items ? Math.min(isCols ? (this._columns || this._items[0]).length : this._items.length, last) : 0;
495
+ }
496
+ getContentPosition() {
497
+ if (this.contentEl) {
498
+ const style = getComputedStyle(this.contentEl);
499
+ const left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);
500
+ const right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);
501
+ const top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);
502
+ const bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);
503
+ return { left, right, top, bottom, x: left + right, y: top + bottom };
504
+ }
505
+ return { left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };
506
+ }
507
+ setSize() {
508
+ if (this.elementViewChild?.nativeElement) {
509
+ const parentElement = this.elementViewChild.nativeElement.parentElement.parentElement;
510
+ const width = this._scrollWidth || `${this.elementViewChild.nativeElement.offsetWidth || parentElement.offsetWidth}px`;
511
+ const height = this._scrollHeight || `${this.elementViewChild.nativeElement.offsetHeight || parentElement.offsetHeight}px`;
512
+ const setProp = (_name, _value) => (this.elementViewChild.nativeElement.style[_name] = _value);
513
+ if (this.both || this.horizontal) {
514
+ setProp('height', height);
515
+ setProp('width', width);
516
+ }
517
+ else {
518
+ setProp('height', height);
519
+ }
520
+ }
521
+ }
522
+ setSpacerSize() {
523
+ if (this._items) {
524
+ const contentPos = this.getContentPosition();
525
+ const setProp = (_name, _value, _size, _cpos = 0) => (this.spacerStyle = { ...this.spacerStyle, ...{ [`${_name}`]: (_value || []).length * _size + _cpos + 'px' } });
526
+ if (this.both) {
527
+ setProp('height', this._items, this._itemSize[0], contentPos.y);
528
+ setProp('width', this._columns || this._items[1], this._itemSize[1], contentPos.x);
529
+ }
530
+ else {
531
+ this.horizontal ? setProp('width', this._columns || this._items, this._itemSize, contentPos.x) : setProp('height', this._items, this._itemSize, contentPos.y);
532
+ }
533
+ }
534
+ }
535
+ setContentPosition(pos) {
536
+ if (this.contentEl && !this._appendOnly) {
537
+ const first = pos ? pos.first : this.first;
538
+ const calculateTranslateVal = (_first, _size) => _first * _size;
539
+ const setTransform = (_x = 0, _y = 0) => (this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } });
540
+ if (this.both) {
541
+ setTransform(calculateTranslateVal(first.cols, this._itemSize[1]), calculateTranslateVal(first.rows, this._itemSize[0]));
542
+ }
543
+ else {
544
+ const translateVal = calculateTranslateVal(first, this._itemSize);
545
+ this.horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);
546
+ }
547
+ }
548
+ }
549
+ onScrollPositionChange(event) {
550
+ const target = event.target;
551
+ const contentPos = this.getContentPosition();
552
+ const calculateScrollPos = (_pos, _cpos) => (_pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0);
553
+ const calculateCurrentIndex = (_pos, _size) => Math.floor(_pos / (_size || _pos));
554
+ const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {
555
+ return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;
556
+ };
557
+ const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {
558
+ if (_currentIndex <= _numT)
559
+ return 0;
560
+ else
561
+ return Math.max(0, _isScrollDownOrRight ? (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);
562
+ };
563
+ const calculateLast = (_currentIndex, _first, _last, _num, _numT, _isCols = false) => {
564
+ let lastValue = _first + _num + 2 * _numT;
565
+ if (_currentIndex >= _numT) {
566
+ lastValue += _numT + 1;
567
+ }
568
+ return this.getLast(lastValue, _isCols);
569
+ };
570
+ const scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);
571
+ const scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);
572
+ let newFirst = this.both ? { rows: 0, cols: 0 } : 0;
573
+ let newLast = this.last;
574
+ let isRangeChanged = false;
575
+ let newScrollPos = this.lastScrollPos;
576
+ if (this.both) {
577
+ const isScrollDown = this.lastScrollPos.top <= scrollTop;
578
+ const isScrollRight = this.lastScrollPos.left <= scrollLeft;
579
+ if (!this._appendOnly || (this._appendOnly && (isScrollDown || isScrollRight))) {
580
+ const currentIndex = { rows: calculateCurrentIndex(scrollTop, this._itemSize[0]), cols: calculateCurrentIndex(scrollLeft, this._itemSize[1]) };
581
+ const triggerIndex = {
582
+ rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),
583
+ cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)
584
+ };
585
+ newFirst = {
586
+ rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),
587
+ cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)
588
+ };
589
+ newLast = {
590
+ rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),
591
+ cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)
592
+ };
593
+ isRangeChanged = newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows || newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols || this.isRangeChanged;
594
+ newScrollPos = { top: scrollTop, left: scrollLeft };
595
+ }
596
+ }
597
+ else {
598
+ const scrollPos = this.horizontal ? scrollLeft : scrollTop;
599
+ const isScrollDownOrRight = this.lastScrollPos <= scrollPos;
600
+ if (!this._appendOnly || (this._appendOnly && isScrollDownOrRight)) {
601
+ const currentIndex = calculateCurrentIndex(scrollPos, this._itemSize);
602
+ const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);
603
+ newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);
604
+ newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);
605
+ isRangeChanged = newFirst !== this.first || newLast !== this.last || this.isRangeChanged;
606
+ newScrollPos = scrollPos;
607
+ }
608
+ }
609
+ return {
610
+ first: newFirst,
611
+ last: newLast,
612
+ isRangeChanged,
613
+ scrollPos: newScrollPos
614
+ };
615
+ }
616
+ onScrollChange(event) {
617
+ const { first, last, isRangeChanged, scrollPos } = this.onScrollPositionChange(event);
618
+ if (isRangeChanged) {
619
+ const newState = { first, last };
620
+ this.setContentPosition(newState);
621
+ this.first = first;
622
+ this.last = last;
623
+ this.lastScrollPos = scrollPos;
624
+ this.handleEvents('onScrollIndexChange', newState);
625
+ if (this._lazy && this.isPageChanged) {
626
+ const lazyLoadState = {
627
+ first: this._step ? Math.min(this.getPageByFirst() * this._step, this.items.length - this._step) : first,
628
+ last: Math.min(this._step ? (this.getPageByFirst() + 1) * this._step : last, this.items.length)
629
+ };
630
+ const isLazyStateChanged = this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;
631
+ isLazyStateChanged && this.handleEvents('onLazyLoad', lazyLoadState);
632
+ this.lazyLoadState = lazyLoadState;
633
+ }
634
+ }
635
+ }
636
+ onContainerScroll(event) {
637
+ this.handleEvents('onScroll', { originalEvent: event });
638
+ if (this._delay && this.isPageChanged) {
639
+ if (this.scrollTimeout) {
640
+ clearTimeout(this.scrollTimeout);
641
+ }
642
+ if (!this.d_loading && this.showLoader) {
643
+ const { isRangeChanged } = this.onScrollPositionChange(event);
644
+ const changed = isRangeChanged || (this._step ? this.isPageChanged : false);
645
+ if (changed) {
646
+ this.d_loading = true;
647
+ this.cd.detectChanges();
648
+ }
649
+ }
650
+ this.scrollTimeout = setTimeout(() => {
651
+ this.onScrollChange(event);
652
+ if (this.d_loading && this.showLoader && (!this._lazy || this._loading === undefined)) {
653
+ this.d_loading = false;
654
+ this.page = this.getPageByFirst();
655
+ this.cd.detectChanges();
656
+ }
657
+ }, this._delay);
658
+ }
659
+ else {
660
+ !this.d_loading && this.onScrollChange(event);
661
+ }
662
+ }
663
+ bindResizeListener() {
664
+ if (isPlatformBrowser(this.platformId)) {
665
+ if (!this.windowResizeListener) {
666
+ this.zone.runOutsideAngular(() => {
667
+ const window = this.document.defaultView;
668
+ const event = DomHandler.isTouchDevice() ? 'orientationchange' : 'resize';
669
+ this.windowResizeListener = this.renderer.listen(window, event, this.onWindowResize.bind(this));
670
+ });
671
+ }
672
+ }
673
+ }
674
+ unbindResizeListener() {
675
+ if (this.windowResizeListener) {
676
+ this.windowResizeListener();
677
+ this.windowResizeListener = null;
678
+ }
679
+ }
680
+ onWindowResize() {
681
+ if (this.resizeTimeout) {
682
+ clearTimeout(this.resizeTimeout);
683
+ }
684
+ this.resizeTimeout = setTimeout(() => {
685
+ if (DomHandler.isVisible(this.elementViewChild?.nativeElement)) {
686
+ const [width, height] = [DomHandler.getWidth(this.elementViewChild.nativeElement), DomHandler.getHeight(this.elementViewChild.nativeElement)];
687
+ const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];
688
+ const reinit = this.both ? isDiffWidth || isDiffHeight : this.horizontal ? isDiffWidth : this.vertical ? isDiffHeight : false;
689
+ reinit &&
690
+ this.zone.run(() => {
691
+ this.d_numToleratedItems = this._numToleratedItems;
692
+ this.defaultWidth = width;
693
+ this.defaultHeight = height;
694
+ this.defaultContentWidth = DomHandler.getWidth(this.contentEl);
695
+ this.defaultContentHeight = DomHandler.getHeight(this.contentEl);
696
+ this.init();
697
+ });
698
+ }
699
+ }, this._resizeDelay);
700
+ }
701
+ handleEvents(name, params) {
702
+ return this.options && this.options[name] ? this.options[name](params) : this[name].emit(params);
703
+ }
704
+ getContentOptions() {
705
+ return {
706
+ contentStyleClass: `p-scroller-content ${this.d_loading ? 'p-scroller-loading' : ''}`,
707
+ items: this.loadedItems,
708
+ getItemOptions: (index) => this.getOptions(index),
709
+ loading: this.d_loading,
710
+ getLoaderOptions: (index, options) => this.getLoaderOptions(index, options),
711
+ itemSize: this._itemSize,
712
+ rows: this.loadedRows,
713
+ columns: this.loadedColumns,
714
+ spacerStyle: this.spacerStyle,
715
+ contentStyle: this.contentStyle,
716
+ vertical: this.vertical,
717
+ horizontal: this.horizontal,
718
+ both: this.both
719
+ };
720
+ }
721
+ getOptions(renderedIndex) {
722
+ const count = (this._items || []).length;
723
+ const index = this.both ? this.first.rows + renderedIndex : this.first + renderedIndex;
724
+ return {
725
+ index,
726
+ count,
727
+ first: index === 0,
728
+ last: index === count - 1,
729
+ even: index % 2 === 0,
730
+ odd: index % 2 !== 0
731
+ };
732
+ }
733
+ getLoaderOptions(index, extOptions) {
734
+ const count = this.loaderArr.length;
735
+ return {
736
+ index,
737
+ count,
738
+ first: index === 0,
739
+ last: index === count - 1,
740
+ even: index % 2 === 0,
741
+ odd: index % 2 !== 0,
742
+ ...extOptions
743
+ };
744
+ }
745
+ }
746
+ Scroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Scroller, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
747
+ Scroller.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: Scroller, selector: "p-scroller", inputs: { id: "id", style: "style", styleClass: "styleClass", tabindex: "tabindex", items: "items", itemSize: "itemSize", scrollHeight: "scrollHeight", scrollWidth: "scrollWidth", orientation: "orientation", step: "step", delay: "delay", resizeDelay: "resizeDelay", appendOnly: "appendOnly", inline: "inline", lazy: "lazy", disabled: "disabled", loaderDisabled: "loaderDisabled", columns: "columns", showSpacer: "showSpacer", showLoader: "showLoader", numToleratedItems: "numToleratedItems", loading: "loading", autoSize: "autoSize", trackBy: "trackBy", options: "options" }, outputs: { onLazyLoad: "onLazyLoad", onScroll: "onScroll", onScrollIndexChange: "onScrollIndexChange" }, host: { classAttribute: "p-scroller-viewport p-element" }, queries: [{ propertyName: "templates", predicate: QiusTemplate }], viewQueries: [{ propertyName: "elementViewChild", first: true, predicate: ["element"], descendants: true }, { propertyName: "contentViewChild", first: true, predicate: ["content"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
748
+ <ng-container *ngIf="!_disabled; else disabledContainer">
749
+ <div
750
+ #element
751
+ [attr.id]="_id"
752
+ [attr.tabindex]="tabindex"
753
+ [ngStyle]="_style"
754
+ [class]="_styleClass"
755
+ [ngClass]="{ 'p-scroller': true, 'p-scroller-inline': inline, 'p-both-scroll': both, 'p-horizontal-scroll': horizontal }"
756
+ (scroll)="onContainerScroll($event)"
757
+ >
758
+ <ng-container *ngIf="contentTemplate; else buildInContent">
759
+ <ng-container *ngTemplateOutlet="contentTemplate; context: { $implicit: loadedItems, options: getContentOptions() }"></ng-container>
760
+ </ng-container>
761
+ <ng-template #buildInContent>
762
+ <div #content class="p-scroller-content" [ngClass]="{ 'p-scroller-loading': d_loading }" [ngStyle]="contentStyle">
763
+ <ng-container *ngFor="let item of loadedItems; let index = index; trackBy: _trackBy || index">
764
+ <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item, options: getOptions(index) }"></ng-container>
765
+ </ng-container>
766
+ </div>
767
+ </ng-template>
768
+ <div *ngIf="_showSpacer" class="p-scroller-spacer" [ngStyle]="spacerStyle"></div>
769
+ <div *ngIf="!loaderDisabled && _showLoader && d_loading" class="p-scroller-loader" [ngClass]="{ 'p-component-overlay': !loaderTemplate }">
770
+ <ng-container *ngIf="loaderTemplate; else buildInLoader">
771
+ <ng-container *ngFor="let item of loaderArr; let index = index">
772
+ <ng-container *ngTemplateOutlet="loaderTemplate; context: { options: getLoaderOptions(index, both && { numCols: _numItemsInViewport.cols }) }"></ng-container>
773
+ </ng-container>
774
+ </ng-container>
775
+ <ng-template #buildInLoader>
776
+ <ng-container *ngIf="loaderIconTemplate; else buildInLoaderIcon">
777
+ <ng-container *ngTemplateOutlet="loaderIconTemplate; context: { options: { styleClass: 'p-scroller-loading-icon' } }"></ng-container>
778
+ </ng-container>
779
+ <ng-template #buildInLoaderIcon>
780
+ <SpinnerIcon [styleClass]="'p-scroller-loading-icon'"/>
781
+ </ng-template>
782
+ </ng-template>
783
+ </div>
784
+ </div>
785
+ </ng-container>
786
+ <ng-template #disabledContainer>
787
+ <ng-content></ng-content>
788
+ <ng-container *ngIf="contentTemplate">
789
+ <ng-container *ngTemplateOutlet="contentTemplate; context: { $implicit: items, options: { rows: _items, columns: loadedColumns } }"></ng-container>
790
+ </ng-container>
791
+ </ng-template>
792
+ `, isInline: true, styles: ["p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{scale:2}.p-scroller-inline .p-scroller-content{position:static}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(function () { return SpinnerIcon; }), selector: "SpinnerIcon" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
793
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Scroller, decorators: [{
794
+ type: Component,
795
+ args: [{ selector: 'p-scroller', template: `
796
+ <ng-container *ngIf="!_disabled; else disabledContainer">
797
+ <div
798
+ #element
799
+ [attr.id]="_id"
800
+ [attr.tabindex]="tabindex"
801
+ [ngStyle]="_style"
802
+ [class]="_styleClass"
803
+ [ngClass]="{ 'p-scroller': true, 'p-scroller-inline': inline, 'p-both-scroll': both, 'p-horizontal-scroll': horizontal }"
804
+ (scroll)="onContainerScroll($event)"
805
+ >
806
+ <ng-container *ngIf="contentTemplate; else buildInContent">
807
+ <ng-container *ngTemplateOutlet="contentTemplate; context: { $implicit: loadedItems, options: getContentOptions() }"></ng-container>
808
+ </ng-container>
809
+ <ng-template #buildInContent>
810
+ <div #content class="p-scroller-content" [ngClass]="{ 'p-scroller-loading': d_loading }" [ngStyle]="contentStyle">
811
+ <ng-container *ngFor="let item of loadedItems; let index = index; trackBy: _trackBy || index">
812
+ <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item, options: getOptions(index) }"></ng-container>
813
+ </ng-container>
814
+ </div>
815
+ </ng-template>
816
+ <div *ngIf="_showSpacer" class="p-scroller-spacer" [ngStyle]="spacerStyle"></div>
817
+ <div *ngIf="!loaderDisabled && _showLoader && d_loading" class="p-scroller-loader" [ngClass]="{ 'p-component-overlay': !loaderTemplate }">
818
+ <ng-container *ngIf="loaderTemplate; else buildInLoader">
819
+ <ng-container *ngFor="let item of loaderArr; let index = index">
820
+ <ng-container *ngTemplateOutlet="loaderTemplate; context: { options: getLoaderOptions(index, both && { numCols: _numItemsInViewport.cols }) }"></ng-container>
821
+ </ng-container>
822
+ </ng-container>
823
+ <ng-template #buildInLoader>
824
+ <ng-container *ngIf="loaderIconTemplate; else buildInLoaderIcon">
825
+ <ng-container *ngTemplateOutlet="loaderIconTemplate; context: { options: { styleClass: 'p-scroller-loading-icon' } }"></ng-container>
826
+ </ng-container>
827
+ <ng-template #buildInLoaderIcon>
828
+ <SpinnerIcon [styleClass]="'p-scroller-loading-icon'"/>
829
+ </ng-template>
830
+ </ng-template>
831
+ </div>
832
+ </div>
833
+ </ng-container>
834
+ <ng-template #disabledContainer>
835
+ <ng-content></ng-content>
836
+ <ng-container *ngIf="contentTemplate">
837
+ <ng-container *ngTemplateOutlet="contentTemplate; context: { $implicit: items, options: { rows: _items, columns: loadedColumns } }"></ng-container>
838
+ </ng-container>
839
+ </ng-template>
840
+ `, changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, host: {
841
+ class: 'p-scroller-viewport p-element'
842
+ }, styles: ["p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{scale:2}.p-scroller-inline .p-scroller-content{position:static}\n"] }]
843
+ }], ctorParameters: function () { return [{ type: Document, decorators: [{
844
+ type: Inject,
845
+ args: [DOCUMENT]
846
+ }] }, { type: undefined, decorators: [{
847
+ type: Inject,
848
+ args: [PLATFORM_ID]
849
+ }] }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; }, propDecorators: { id: [{
850
+ type: Input
851
+ }], style: [{
852
+ type: Input
853
+ }], styleClass: [{
854
+ type: Input
855
+ }], tabindex: [{
856
+ type: Input
857
+ }], items: [{
858
+ type: Input
859
+ }], itemSize: [{
860
+ type: Input
861
+ }], scrollHeight: [{
862
+ type: Input
863
+ }], scrollWidth: [{
864
+ type: Input
865
+ }], orientation: [{
866
+ type: Input
867
+ }], step: [{
868
+ type: Input
869
+ }], delay: [{
870
+ type: Input
871
+ }], resizeDelay: [{
872
+ type: Input
873
+ }], appendOnly: [{
874
+ type: Input
875
+ }], inline: [{
876
+ type: Input
877
+ }], lazy: [{
878
+ type: Input
879
+ }], disabled: [{
880
+ type: Input
881
+ }], loaderDisabled: [{
882
+ type: Input
883
+ }], columns: [{
884
+ type: Input
885
+ }], showSpacer: [{
886
+ type: Input
887
+ }], showLoader: [{
888
+ type: Input
889
+ }], numToleratedItems: [{
890
+ type: Input
891
+ }], loading: [{
892
+ type: Input
893
+ }], autoSize: [{
894
+ type: Input
895
+ }], trackBy: [{
896
+ type: Input
897
+ }], options: [{
898
+ type: Input
899
+ }], elementViewChild: [{
900
+ type: ViewChild,
901
+ args: ['element']
902
+ }], contentViewChild: [{
903
+ type: ViewChild,
904
+ args: ['content']
905
+ }], templates: [{
906
+ type: ContentChildren,
907
+ args: [QiusTemplate]
908
+ }], onLazyLoad: [{
909
+ type: Output
910
+ }], onScroll: [{
911
+ type: Output
912
+ }], onScrollIndexChange: [{
913
+ type: Output
914
+ }] } });
915
+ export class ScrollerModule {
916
+ }
917
+ ScrollerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
918
+ ScrollerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ScrollerModule, declarations: [Scroller], imports: [CommonModule, SharedModule, SpinnerIcon], exports: [Scroller, SharedModule] });
919
+ ScrollerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollerModule, imports: [CommonModule, SharedModule, SpinnerIcon, SharedModule] });
920
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollerModule, decorators: [{
921
+ type: NgModule,
922
+ args: [{
923
+ imports: [CommonModule, SharedModule, SpinnerIcon],
924
+ exports: [Scroller, SharedModule],
925
+ declarations: [Scroller]
926
+ }]
927
+ }] });
928
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvc2Nyb2xsZXIvc2Nyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBR0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUlSLE1BQU0sRUFDTixXQUFXLEVBS1gsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbURBQW1ELENBQUM7OztBQTJGaEYsTUFBTSxPQUFPLFFBQVE7SUEwVWpCLFlBQXNDLFFBQWtCLEVBQStCLFVBQWUsRUFBVSxRQUFtQixFQUFVLEVBQXFCLEVBQVUsSUFBWTtRQUFsSixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQStCLGVBQVUsR0FBVixVQUFVLENBQUs7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBaEo5SyxlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbkQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWpELHdCQUFtQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBUXRFLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFJdEIsY0FBUyxHQUFRLENBQUMsQ0FBQztRQU1uQixpQkFBWSxHQUFXLFVBQVUsQ0FBQztRQUVsQyxV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UztnQkFFVyxTQUFTO3NCQUF2QyxlQUFlO3VCQUFDLFlBQVk7Z0JBRW5CLFVBQVU7c0JBQW5CLE1BQU07Z0JBRUcsUUFBUTtzQkFBakIsTUFBTTtnQkFFRyxtQkFBbUI7c0JBQTVCLE1BQU07O0FBNHVCWCxNQUFNLE9BQU8sY0FBYzs7NEdBQWQsY0FBYzs2R0FBZCxjQUFjLGlCQTE2QmQsUUFBUSxhQXM2QlAsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLGFBdDZCeEMsUUFBUSxFQXU2QkcsWUFBWTs2R0FHdkIsY0FBYyxZQUpiLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUM3QixZQUFZOzRGQUd2QixjQUFjO2tCQUwxQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDO29CQUNsRCxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO29CQUNqQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdNb2R1bGUsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBRaXVzVGVtcGxhdGUsIFNoYXJlZE1vZHVsZSB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL2FwaSc7XG5pbXBvcnQgeyBEb21IYW5kbGVyIH0gZnJvbSAnQHFpdXMuc29sdXRpb25zL3BhcmFsbGVsLXVpLWFuZ3VsYXIvZG9tJztcbmltcG9ydCB7IFNwaW5uZXJJY29uIH0gZnJvbSAnQHFpdXMuc29sdXRpb25zL3BhcmFsbGVsLXVpLWFuZ3VsYXIvaWNvbnMvc3Bpbm5lcic7XG5cbmV4cG9ydCB0eXBlIFNjcm9sbGVyVG9UeXBlID0gJ3RvLXN0YXJ0JyB8ICd0by1lbmQnIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBTY3JvbGxlck9yaWVudGF0aW9uVHlwZSA9ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgfCAnYm90aCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Nyb2xsZXJPcHRpb25zIHtcbiAgICBpZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBzdHlsZT86IGFueTtcbiAgICBzdHlsZUNsYXNzPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHRhYmluZGV4PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIGl0ZW1zPzogYW55W107XG4gICAgaXRlbVNpemU/OiBhbnk7XG4gICAgc2Nyb2xsSGVpZ2h0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHNjcm9sbFdpZHRoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIG9yaWVudGF0aW9uPzogU2Nyb2xsZXJPcmllbnRhdGlvblR5cGU7XG4gICAgc3RlcD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBkZWxheT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICByZXNpemVEZWxheT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBhcHBlbmRPbmx5PzogYm9vbGVhbjtcbiAgICBpbmxpbmU/OiBib29sZWFuO1xuICAgIGxhenk/OiBib29sZWFuO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBsb2FkZXJEaXNhYmxlZD86IGJvb2xlYW47XG4gICAgY29sdW1ucz86IGFueVtdIHwgdW5kZWZpbmVkO1xuICAgIHNob3dTcGFjZXI/OiBib29sZWFuO1xuICAgIHNob3dMb2FkZXI/OiBib29sZWFuO1xuICAgIG51bVRvbGVyYXRlZEl0ZW1zPzogYW55O1xuICAgIGxvYWRpbmc/OiBib29sZWFuO1xuICAgIGF1dG9TaXplPzogYm9vbGVhbjtcbiAgICB0cmFja0J5PzogYW55O1xuICAgIG9uTGF6eUxvYWQ/OiBGdW5jdGlvbiB8IHVuZGVmaW5lZDtcbiAgICBvblNjcm9sbD86IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuICAgIG9uU2Nyb2xsSW5kZXhDaGFuZ2U/OiBGdW5jdGlvbiB8IHVuZGVmaW5lZDtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXNjcm9sbGVyJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIV9kaXNhYmxlZDsgZWxzZSBkaXNhYmxlZENvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICNlbGVtZW50XG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiX2lkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiX3N0eWxlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiX3N0eWxlQ2xhc3NcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3Atc2Nyb2xsZXInOiB0cnVlLCAncC1zY3JvbGxlci1pbmxpbmUnOiBpbmxpbmUsICdwLWJvdGgtc2Nyb2xsJzogYm90aCwgJ3AtaG9yaXpvbnRhbC1zY3JvbGwnOiBob3Jpem9udGFsIH1cIlxuICAgICAgICAgICAgICAgIChzY3JvbGwpPVwib25Db250YWluZXJTY3JvbGwoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnRUZW1wbGF0ZTsgZWxzZSBidWlsZEluQ29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbG9hZGVkSXRlbXMsIG9wdGlvbnM6IGdldENvbnRlbnRPcHRpb25zKCkgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYnVpbGRJbkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgI2NvbnRlbnQgY2xhc3M9XCJwLXNjcm9sbGVyLWNvbnRlbnRcIiBbbmdDbGFzc109XCJ7ICdwLXNjcm9sbGVyLWxvYWRpbmcnOiBkX2xvYWRpbmcgfVwiIFtuZ1N0eWxlXT1cImNvbnRlbnRTdHlsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsb2FkZWRJdGVtczsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IF90cmFja0J5IHx8IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIG9wdGlvbnM6IGdldE9wdGlvbnMoaW5kZXgpIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJfc2hvd1NwYWNlclwiIGNsYXNzPVwicC1zY3JvbGxlci1zcGFjZXJcIiBbbmdTdHlsZV09XCJzcGFjZXJTdHlsZVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbG9hZGVyRGlzYWJsZWQgJiYgX3Nob3dMb2FkZXIgJiYgZF9sb2FkaW5nXCIgY2xhc3M9XCJwLXNjcm9sbGVyLWxvYWRlclwiIFtuZ0NsYXNzXT1cInsgJ3AtY29tcG9uZW50LW92ZXJsYXknOiAhbG9hZGVyVGVtcGxhdGUgfVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGVyVGVtcGxhdGU7IGVsc2UgYnVpbGRJbkxvYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsb2FkZXJBcnI7IGxldCBpbmRleCA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7IG9wdGlvbnM6IGdldExvYWRlck9wdGlvbnMoaW5kZXgsIGJvdGggJiYgeyBudW1Db2xzOiBfbnVtSXRlbXNJblZpZXdwb3J0LmNvbHMgfSkgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2J1aWxkSW5Mb2FkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGVySWNvblRlbXBsYXRlOyBlbHNlIGJ1aWxkSW5Mb2FkZXJJY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRlckljb25UZW1wbGF0ZTsgY29udGV4dDogeyBvcHRpb25zOiB7IHN0eWxlQ2xhc3M6ICdwLXNjcm9sbGVyLWxvYWRpbmctaWNvbicgfSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYnVpbGRJbkxvYWRlckljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNwaW5uZXJJY29uIFtzdHlsZUNsYXNzXT1cIidwLXNjcm9sbGVyLWxvYWRpbmctaWNvbidcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2Rpc2FibGVkQ29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnRUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtcywgb3B0aW9uczogeyByb3dzOiBfaXRlbXMsIGNvbHVtbnM6IGxvYWRlZENvbHVtbnMgfSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0eWxlVXJsczogWycuL3Njcm9sbGVyLmNzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdwLXNjcm9sbGVyLXZpZXdwb3J0IHAtZWxlbWVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFNjcm9sbGVyIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGdldCBpZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xuICAgIH1cbiAgICBzZXQgaWQodmFsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5faWQgPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IHN0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3R5bGU7XG4gICAgfVxuICAgIHNldCBzdHlsZSh2YWw6IGFueSkge1xuICAgICAgICB0aGlzLl9zdHlsZSA9IHZhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBnZXQgc3R5bGVDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlQ2xhc3M7XG4gICAgfVxuICAgIHNldCBzdHlsZUNsYXNzKHZhbDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3N0eWxlQ2xhc3MgPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IHRhYmluZGV4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFiaW5kZXg7XG4gICAgfVxuICAgIHNldCB0YWJpbmRleCh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl90YWJpbmRleCA9IHZhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBnZXQgaXRlbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtcztcbiAgICB9XG4gICAgc2V0IGl0ZW1zKHZhbDogYW55W10pIHtcbiAgICAgICAgdGhpcy5faXRlbXMgPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IGl0ZW1TaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbVNpemU7XG4gICAgfVxuICAgIHNldCBpdGVtU2l6ZSh2YWw6IGFueSkge1xuICAgICAgICB0aGlzLl9pdGVtU2l6ZSA9IHZhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBnZXQgc2Nyb2xsSGVpZ2h0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2Nyb2xsSGVpZ2h0O1xuICAgIH1cbiAgICBzZXQgc2Nyb2xsSGVpZ2h0KHZhbDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3Njcm9sbEhlaWdodCA9IHZhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBnZXQgc2Nyb2xsV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zY3JvbGxXaWR0aDtcbiAgICB9XG4gICAgc2V0IHNjcm9sbFdpZHRoKHZhbDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3Njcm9sbFdpZHRoID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBvcmllbnRhdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29yaWVudGF0aW9uO1xuICAgIH1cbiAgICBzZXQgb3JpZW50YXRpb24odmFsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fb3JpZW50YXRpb24gPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IHN0ZXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGVwO1xuICAgIH1cbiAgICBzZXQgc3RlcCh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9zdGVwID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBkZWxheSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGF5O1xuICAgIH1cbiAgICBzZXQgZGVsYXkodmFsOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fZGVsYXkgPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IHJlc2l6ZURlbGF5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzaXplRGVsYXk7XG4gICAgfVxuICAgIHNldCByZXNpemVEZWxheSh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9yZXNpemVEZWxheSA9IHZhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBnZXQgYXBwZW5kT25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGVuZE9ubHk7XG4gICAgfVxuICAgIHNldCBhcHBlbmRPbmx5KHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9hcHBlbmRPbmx5ID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBpbmxpbmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmU7XG4gICAgfVxuICAgIHNldCBpbmxpbmUodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lubGluZSA9IHZhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBnZXQgbGF6eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhenk7XG4gICAgfVxuICAgIHNldCBsYXp5KHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9sYXp5ID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBkaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cbiAgICBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBsb2FkZXJEaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRlckRpc2FibGVkO1xuICAgIH1cbiAgICBzZXQgbG9hZGVyRGlzYWJsZWQodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2xvYWRlckRpc2FibGVkID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBjb2x1bW5zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcbiAgICB9XG4gICAgc2V0IGNvbHVtbnModmFsOiBhbnlbXSkge1xuICAgICAgICB0aGlzLl9jb2x1bW5zID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBzaG93U3BhY2VyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hvd1NwYWNlcjtcbiAgICB9XG4gICAgc2V0IHNob3dTcGFjZXIodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Nob3dTcGFjZXIgPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IHNob3dMb2FkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93TG9hZGVyO1xuICAgIH1cbiAgICBzZXQgc2hvd0xvYWRlcih2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2hvd0xvYWRlciA9IHZhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBnZXQgbnVtVG9sZXJhdGVkSXRlbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9udW1Ub2xlcmF0ZWRJdGVtcztcbiAgICB9XG4gICAgc2V0IG51bVRvbGVyYXRlZEl0ZW1zKHZhbDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX251bVRvbGVyYXRlZEl0ZW1zID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBsb2FkaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgICB9XG4gICAgc2V0IGxvYWRpbmcodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2xvYWRpbmcgPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IGF1dG9TaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXV0b1NpemU7XG4gICAgfVxuICAgIHNldCBhdXRvU2l6ZSh2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fYXV0b1NpemUgPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IHRyYWNrQnkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90cmFja0J5O1xuICAgIH1cbiAgICBzZXQgdHJhY2tCeSh2YWw6IGFueSkge1xuICAgICAgICB0aGlzLl90cmFja0J5ID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBvcHRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgICB9XG4gICAgc2V0IG9wdGlvbnModmFsOiBTY3JvbGxlck9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbDtcblxuICAgICAgICBpZiAodmFsICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyh2YWwpLmZvckVhY2goKFtrLCB2XSkgPT4gdGhpc1tgXyR7a31gXSAhPT0gdiAmJiAodGhpc1tgXyR7a31gXSA9IHYpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBWaWV3Q2hpbGQoJ2VsZW1lbnQnKSBlbGVtZW50Vmlld0NoaWxkOiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcpIGNvbnRlbnRWaWV3Q2hpbGQ6IEVsZW1lbnRSZWY7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFFpdXNUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8YW55PjtcblxuICAgIEBPdXRwdXQoKSBvbkxhenlMb2FkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBvblNjcm9sbDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25TY3JvbGxJbmRleENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBfaWQ6IHN0cmluZztcblxuICAgIF9zdHlsZTogYW55O1xuXG4gICAgX3N0eWxlQ2xhc3M6IHN0cmluZztcblxuICAgIF90YWJpbmRleDogbnVtYmVyID0gMDtcblxuICAgIF9pdGVtczogYW55W107XG5cbiAgICBfaXRlbVNpemU6IGFueSA9IDA7XG5cbiAgICBfc2Nyb2xsSGVpZ2h0OiBzdHJpbmc7XG5cbiAgICBfc2Nyb2xsV2lkdGg6IHN0cmluZztcblxuICAgIF9vcmllbnRhdGlvbjogc3RyaW5nID0gJ3ZlcnRpY2FsJztcblxuICAgIF9zdGVwOiBudW1iZXIgPSAwO1xuXG4gICAgX2RlbGF5OiBudW1iZXIgPSAwO1xuXG4gICAgX3Jlc2l6ZURlbGF5OiBudW1iZXIgPSAxMDtcblxuICAgIF9hcHBlbmRPbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBfaW5saW5lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBfbGF6eTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBfbG9hZGVyRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIF9jb2x1bW5zOiBhbnlbXTtcblxuICAgIF9zaG93U3BhY2VyOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIF9zaG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBfbnVtVG9sZXJhdGVkSXRlbXM6IGFueTtcblxuICAgIF9sb2FkaW5nOiBib29sZWFuO1xuXG4gICAgX2F1dG9TaXplOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBfdHJhY2tCeTogYW55O1xuXG4gICAgX29wdGlvbnM6IFNjcm9sbGVyT3B0aW9ucztcblxuICAgIGRfbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZF9udW1Ub2xlcmF0ZWRJdGVtczogYW55O1xuXG4gICAgY29udGVudEVsOiBhbnk7XG5cbiAgICBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBsb2FkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGxvYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGZpcnN0OiBhbnkgPSAwO1xuXG4gICAgbGFzdDogYW55ID0gMDtcblxuICAgIHBhZ2U6IG51bWJlciA9IDA7XG5cbiAgICBpc1JhbmdlQ2hhbmdlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgbnVtSXRlbXNJblZpZXdwb3J0OiBhbnkgPSAwO1xuXG4gICAgbGFzdFNjcm9sbFBvczogYW55ID0gMDtcblxuICAgIGxhenlMb2FkU3RhdGU6IGFueSA9IHt9O1xuXG4gICAgbG9hZGVyQXJyOiBhbnlbXSA9IFtdO1xuXG4gICAgc3BhY2VyU3R5bGU6IGFueSA9IHt9O1xuXG4gICAgY29udGVudFN0eWxlOiBhbnkgPSB7fTtcblxuICAgIHNjcm9sbFRpbWVvdXQ6IGFueTtcblxuICAgIHJlc2l6ZVRpbWVvdXQ6IGFueTtcblxuICAgIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICB3aW5kb3dSZXNpemVMaXN0ZW5lcjogVm9pZEZ1bmN0aW9uIHwgbnVsbDtcblxuICAgIGRlZmF1bHRXaWR0aDogbnVtYmVyO1xuXG4gICAgZGVmYXVsdEhlaWdodDogbnVtYmVyO1xuXG4gICAgZGVmYXVsdENvbnRlbnRXaWR0aDogbnVtYmVyO1xuXG4gICAgZGVmYXVsdENvbnRlbnRIZWlnaHQ6IG51bWJlcjtcblxuICAgIGdldCB2ZXJ0aWNhbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29yaWVudGF0aW9uID09PSAndmVydGljYWwnO1xuICAgIH1cblxuICAgIGdldCBob3Jpem9udGFsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJztcbiAgICB9XG5cbiAgICBnZXQgYm90aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29yaWVudGF0aW9uID09PSAnYm90aCc7XG4gICAgfVxuXG4gICAgZ2V0IGxvYWRlZEl0ZW1zKCkge1xuICAgICAgICBpZiAodGhpcy5faXRlbXMgJiYgIXRoaXMuZF9sb2FkaW5nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5ib3RoKSByZXR1cm4gdGhpcy5faXRlbXMuc2xpY2UodGhpcy5fYXBwZW5kT25seSA/IDAgOiB0aGlzLmZpcnN0LnJvd3MsIHRoaXMubGFzdC5yb3dzKS5tYXAoKGl0ZW0pID0+ICh0aGlzLl9jb2x1bW5zID8gaXRlbSA6IGl0ZW0uc2xpY2UodGhpcy5fYXBwZW5kT25seSA/IDAgOiB0aGlzLmZpcnN0LmNvbHMsIHRoaXMubGFzdC5jb2xzKSkpO1xuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5ob3Jpem9udGFsICYmIHRoaXMuX2NvbHVtbnMpIHJldHVybiB0aGlzLl9pdGVtcztcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIHRoaXMuX2l0ZW1zLnNsaWNlKHRoaXMuX2FwcGVuZE9ubHkgPyAwIDogdGhpcy5maXJzdCwgdGhpcy5sYXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBnZXQgbG9hZGVkUm93cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZF9sb2FkaW5nID8gKHRoaXMuX2xvYWRlckRpc2FibGVkID8gdGhpcy5sb2FkZXJBcnIgOiBbXSkgOiB0aGlzLmxvYWRlZEl0ZW1zO1xuICAgIH1cblxuICAgIGdldCBsb2FkZWRDb2x1bW5zKCkge1xuICAgICAgICBpZiAodGhpcy5fY29sdW1ucyAmJiAodGhpcy5ib3RoIHx8IHRoaXMuaG9yaXpvbnRhbCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRfbG9hZGluZyAmJiB0aGlzLl9sb2FkZXJEaXNhYmxlZCA/ICh0aGlzLmJvdGggPyB0aGlzLmxvYWRlckFyclswXSA6IHRoaXMubG9hZGVyQXJyKSA6IHRoaXMuX2NvbHVtbnMuc2xpY2UodGhpcy5ib3RoID8gdGhpcy5maXJzdC5jb2xzIDogdGhpcy5maXJzdCwgdGhpcy5ib3RoID8gdGhpcy5sYXN0LmNvbHMgOiB0aGlzLmxhc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbnM7XG4gICAgfVxuXG4gICAgZ2V0IGlzUGFnZUNoYW5nZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGVwID8gdGhpcy5wYWdlICE9PSB0aGlzLmdldFBhZ2VCeUZpcnN0KCkgOiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LCBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXRJbml0aWFsU3RhdGUoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGxldCBpc0xvYWRpbmdDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXMubG9hZGluZykge1xuICAgICAgICAgICAgY29uc3QgeyBwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUgfSA9IHNpbXBsZUNoYW5nZXMubG9hZGluZztcblxuICAgICAgICAgICAgaWYgKHRoaXMubGF6eSAmJiBwcmV2aW91c1ZhbHVlICE9PSBjdXJyZW50VmFsdWUgJiYgY3VycmVudFZhbHVlICE9PSB0aGlzLmRfbG9hZGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuZF9sb2FkaW5nID0gY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgICAgIGlzTG9hZGluZ0NoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXMub3JpZW50YXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMubGFzdFNjcm9sbFBvcyA9IHRoaXMuYm90aCA/IHsgdG9wOiAwLCBsZWZ0OiAwIH0gOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXMubnVtVG9sZXJhdGVkSXRlbXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlIH0gPSBzaW1wbGVDaGFuZ2VzLm51bVRvbGVyYXRlZEl0ZW1zO1xuXG4gICAgICAgICAgICBpZiAocHJldmlvdXNWYWx1ZSAhPT0gY3VycmVudFZhbHVlICYmIGN1cnJlbnRWYWx1ZSAhPT0gdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zID0gY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXMub3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgeyBwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUgfSA9IHNpbXBsZUNoYW5nZXMub3B0aW9ucztcblxuICAgICAgICAgICAgaWYgKHRoaXMubGF6eSAmJiBwcmV2aW91c1ZhbHVlPy5sb2FkaW5nICE9PSBjdXJyZW50VmFsdWU/LmxvYWRpbmcgJiYgY3VycmVudFZhbHVlPy5sb2FkaW5nICE9PSB0aGlzLmRfbG9hZGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuZF9sb2FkaW5nID0gY3VycmVudFZhbHVlLmxvYWRpbmc7XG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwcmV2aW91c1ZhbHVlPy5udW1Ub2xlcmF0ZWRJdGVtcyAhPT0gY3VycmVudFZhbHVlPy5udW1Ub2xlcmF0ZWRJdGVtcyAmJiBjdXJyZW50VmFsdWU/Lm51bVRvbGVyYXRlZEl0ZW1zICE9PSB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXMgPSBjdXJyZW50VmFsdWUubnVtVG9sZXJhdGVkSXRlbXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgY29uc3QgaXNDaGFuZ2VkID0gIWlzTG9hZGluZ0NoYW5nZWQgJiYgKHNpbXBsZUNoYW5nZXMuaXRlbXM/LnByZXZpb3VzVmFsdWU/Lmxlbmd0aCAhPT0gc2ltcGxlQ2hhbmdlcy5pdGVtcz8uY3VycmVudFZhbHVlPy5sZW5ndGggfHwgc2ltcGxlQ2hhbmdlcy5pdGVtU2l6ZSB8fCBzaW1wbGVDaGFuZ2VzLnNjcm9sbEhlaWdodCB8fCBzaW1wbGVDaGFuZ2VzLnNjcm9sbFdpZHRoKTtcblxuICAgICAgICAgICAgaWYgKGlzQ2hhbmdlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQXV0b1NpemUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRlbnQnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnaXRlbSc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdsb2FkZXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRlclRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdsb2FkZXJpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkZXJJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZpZXdJbml0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdJbml0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51bmJpbmRSZXNpemVMaXN0ZW5lcigpO1xuXG4gICAgICAgIHRoaXMuY29udGVudEVsID0gbnVsbDtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHZpZXdJbml0KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgaWYgKERvbUhhbmRsZXIuaXNWaXNpYmxlKHRoaXMuZWxlbWVudFZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29udGVudEVsKHRoaXMuY29udGVudEVsKTtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXQoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdFdpZHRoID0gRG9tSGFuZGxlci5nZXRXaWR0aCh0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0SGVpZ2h0ID0gRG9tSGFuZGxlci5nZXRIZWlnaHQodGhpcy5lbGVtZW50Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvbnRlbnRXaWR0aCA9IERvbUhhbmRsZXIuZ2V0V2lkdGgodGhpcy5jb250ZW50RWwpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvbnRlbnRIZWlnaHQgPSBEb21IYW5kbGVyLmdldEhlaWdodCh0aGlzLmNvbnRlbnRFbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldFNpemUoKTtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlT3B0aW9ucygpO1xuICAgICAgICAgICAgdGhpcy5zZXRTcGFjZXJTaXplKCk7XG4gICAgICAgICAgICB0aGlzLmJpbmRSZXNpemVMaXN0ZW5lcigpO1xuXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldENvbnRlbnRFbChlbD86IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuY29udGVudEVsID0gZWwgfHwgdGhpcy5jb250ZW50Vmlld0NoaWxkPy5uYXRpdmVFbGVtZW50IHx8IERvbUhhbmRsZXIuZmluZFNpbmdsZSh0aGlzLmVsZW1lbnRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQsICcucC1zY3JvbGxlci1jb250ZW50Jyk7XG4gICAgfVxuXG4gICAgc2V0SW5pdGlhbFN0YXRlKCkge1xuICAgICAgICB0aGlzLmZpcnN0ID0gdGhpcy5ib3RoID8geyByb3dzOiAwLCBjb2xzOiAwIH0gOiAwO1xuICAgICAgICB0aGlzLmxhc3QgPSB0aGlzLmJvdGggPyB7IHJvd3M6IDAsIGNvbHM6IDAgfSA6IDA7XG4gICAgICAgIHRoaXMubnVtSXRlbXNJblZpZXdwb3J0ID0gdGhpcy5ib3RoID8geyByb3dzOiAwLCBjb2xzOiAwIH0gOiAwO1xuICAgICAgICB0aGlzLmxhc3RTY3JvbGxQb3MgPSB0aGlzLmJvdGggPyB7IHRvcDogMCwgbGVmdDogMCB9IDogMDtcbiAgICAgICAgdGhpcy5kX2xvYWRpbmcgPSB0aGlzLl9sb2FkaW5nIHx8IGZhbHNlO1xuICAgICAgICB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXMgPSB0aGlzLl9udW1Ub2xlcmF0ZWRJdGVtcztcbiAgICAgICAgdGhpcy5sb2FkZXJBcnIgPSBbXTtcbiAgICAgICAgdGhpcy5zcGFjZXJTdHlsZSA9IHt9O1xuICAgICAgICB0aGlzLmNvbnRlbnRTdHlsZSA9IHt9O1xuICAgIH1cblxuICAgIGdldEVsZW1lbnRSZWYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQ7XG4gICAgfVxuXG4gICAgZ2V0UGFnZUJ5Rmlyc3QoKSB7XG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKCh0aGlzLmZpcnN0ICsgdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zICogNCkgLyAodGhpcy5fc3RlcCB8fCAxKSk7XG4gICAgfVxuXG4gICAgc2Nyb2xsVG8ob3B0aW9uczogU2Nyb2xsVG9PcHRpb25zKSB7XG4gICAgICAgIHRoaXMubGFzdFNjcm9sbFBvcyA9IHRoaXMuYm90aCA/IHsgdG9wOiAwLCBsZWZ0OiAwIH0gOiAwO1xuICAgICAgICB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQ/LnNjcm9sbFRvKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHNjcm9sbFRvSW5kZXgoaW5kZXg6IG51bWJlciwgYmVoYXZpb3I6IFNjcm9sbEJlaGF2aW9yID0gJ2F1dG8nKSB7XG4gICAgICAgIGNvbnN0IHsgbnVtVG9sZXJhdGVkSXRlbXMgfSA9IHRoaXMuY2FsY3VsYXRlTnVtSXRlbXMoKTtcbiAgICAgICAgY29uc3QgY29udGVudFBvcyA9IHRoaXMuZ2V0Q29udGVudFBvc2l0aW9uKCk7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZUZpcnN0ID0gKF9pbmRleCA9IDAsIF9udW1UKSA9PiAoX2luZGV4IDw9IF9udW1UID8gMCA6IF9pbmRleCk7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZUNvb3JkID0gKF9maXJzdCwgX3NpemUsIF9jcG9zKSA9PiBfZmlyc3QgKiBfc2l6ZSArIF9jcG9zO1xuICAgICAgICBjb25zdCBzY3JvbGxUbyA9IChsZWZ0ID0gMCwgdG9wID0gMCkgPT4gdGhpcy5zY3JvbGxUbyh7IGxlZnQsIHRvcCwgYmVoYXZpb3IgfSk7XG4gICAgICAgIGxldCBuZXdGaXJzdDogYW55ID0gMDtcblxuICAgICAgICBpZiAodGhpcy5ib3RoKSB7XG4gICAgICAgICAgICBuZXdGaXJzdCA9IHsgcm93czogY2FsY3VsYXRlRmlyc3QoaW5kZXhbMF0sIG51bVRvbGVyYXRlZEl0ZW1zWzBdKSwgY29sczogY2FsY3VsYXRlRmlyc3QoaW5kZXhbMV0sIG51bVRvbGVyYXRlZEl0ZW1zWzFdKSB9O1xuICAgICAgICAgICAgc2Nyb2xsVG8oY2FsY3VsYXRlQ29vcmQobmV3Rmlyc3QuY29scywgdGhpcy5faXRlbVNpemVbMV0sIGNvbnRlbnRQb3MubGVmdCksIGNhbGN1bGF0ZUNvb3JkKG5ld0ZpcnN0LnJvd3MsIHRoaXMuX2l0ZW1TaXplWzBdLCBjb250ZW50UG9zLnRvcCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3Rmlyc3QgPSBjYWxjdWxhdGVGaXJzdChpbmRleCwgbnVtVG9sZXJhdGVkSXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5ob3Jpem9udGFsID8gc2Nyb2xsVG8oY2FsY3VsYXRlQ29vcmQobmV3Rmlyc3QsIHRoaXMuX2l0ZW1TaXplLCBjb250ZW50UG9zLmxlZnQpLCAwKSA6IHNjcm9sbFRvKDAsIGNhbGN1bGF0ZUNvb3JkKG5ld0ZpcnN0LCB0aGlzLl9pdGVtU2l6ZSwgY29udGVudFBvcy50b3ApKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNSYW5nZUNoYW5nZWQgPSB0aGlzLmZpcnN0ICE9PSBuZXdGaXJzdDtcbiAgICAgICAgdGhpcy5maXJzdCA9IG5ld0ZpcnN0O1xuICAgIH1cblxuICAgIHNjcm9sbEluVmlldyhpbmRleDogbnVtYmVyLCB0bzogU2Nyb2xsZXJUb1R5cGUsIGJlaGF2aW9yOiBTY3JvbGxCZWhhdmlvciA9ICdhdXRvJykge1xuICAgICAgICBpZiAodG8pIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZmlyc3QsIHZpZXdwb3J0IH0gPSB0aGlzLmdldFJlbmRlcmVkUmFuZ2UoKTtcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbFRvID0gKGxlZnQgPSAwLCB0b3AgPSAwKSA9PiB0aGlzLnNjcm9sbFRvKHsgbGVmdCwgdG9wLCBiZWhhdmlvciB9KTtcbiAgICAgICAgICAgIGNvbnN0IGlzVG9TdGFydCA9IHRvID09PSAndG8tc3RhcnQnO1xuICAgICAgICAgICAgY29uc3QgaXNUb0VuZCA9IHRvID09PSAndG8tZW5kJztcblxuICAgICAgICAgICAgaWYgKGlzVG9TdGFydCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJvdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZpZXdwb3J0LmZpcnN0LnJvd3MgLSBmaXJzdC5yb3dzID4gaW5kZXhbMF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvKHZpZXdwb3J0LmZpcnN0LmNvbHMgKiB0aGlzLl9pdGVtU2l6ZVsxXSwgKHZpZXdwb3J0LmZpcnN0LnJvd3MgLSAxKSAqIHRoaXMuX2l0ZW1TaXplWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2aWV3cG9ydC5maXJzdC5jb2xzIC0gZmlyc3QuY29scyA+IGluZGV4WzFdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbygodmlld3BvcnQuZmlyc3QuY29scyAtIDEpICogdGhpcy5faXRlbVNpemVbMV0sIHZpZXdwb3J0LmZpcnN0LnJvd3MgKiB0aGlzLl9pdGVtU2l6ZVswXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmlld3BvcnQuZmlyc3QgLSBmaXJzdCA+IGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3MgPSAodmlld3BvcnQuZmlyc3QgLSAxKSAqIHRoaXMuX2l0ZW1TaXplO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ob3Jpem9udGFsID8gc2Nyb2xsVG8ocG9zLCAwKSA6IHNjcm9sbFRvKDAsIHBvcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzVG9FbmQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5ib3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2aWV3cG9ydC5sYXN0LnJvd3MgLSBmaXJzdC5yb3dzIDw9IGluZGV4WzBdICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8odmlld3BvcnQuZmlyc3QuY29scyAqIHRoaXMuX2l0ZW1TaXplWzFdLCAodmlld3BvcnQuZmlyc3Qucm93cyArIDEpICogdGhpcy5faXRlbVNpemVbMF0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZpZXdwb3J0Lmxhc3QuY29scyAtIGZpcnN0LmNvbHMgPD0gaW5kZXhbMV0gKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbygodmlld3BvcnQuZmlyc3QuY29scyArIDEpICogdGhpcy5faXRlbVNpemVbMV0sIHZpZXdwb3J0LmZpcnN0LnJvd3MgKiB0aGlzLl9pdGVtU2l6ZVswXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmlld3BvcnQubGFzdCAtIGZpcnN0IDw9IGluZGV4ICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9zID0gKHZpZXdwb3J0LmZpcnN0ICsgMSkgKiB0aGlzLl9pdGVtU2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaG9yaXpvbnRhbCA/IHNjcm9sbFRvKHBvcywgMCkgOiBzY3JvbGxUbygwLCBwb3MpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0luZGV4KGluZGV4LCBiZWhhdmlvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRSZW5kZXJlZFJhbmdlKCkge1xuICAgICAgICBjb25zdCBjYWxjdWxhdGVGaXJzdEluVmlld3BvcnQgPSAoX3BvcywgX3NpemUpID0+IE1hdGguZmxvb3IoX3BvcyAvIChfc2l6ZSB8fCBfcG9zKSk7XG5cbiAgICAgICAgbGV0IGZpcnN0SW5WaWV3cG9ydCA9IHRoaXMuZmlyc3Q7XG4gICAgICAgIGxldCBsYXN0SW5WaWV3cG9ydDogYW55ID0gMDtcblxuICAgICAgICBpZiAodGhpcy5lbGVtZW50Vmlld0NoaWxkPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsTGVmdCB9ID0gdGhpcy5lbGVtZW50Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmJvdGgpIHtcbiAgICAgICAgICAgICAgICBmaXJzdEluVmlld3BvcnQgPSB7IHJvd3M6IGNhbGN1bGF0ZUZpcnN0SW5WaWV3cG9ydChzY3JvbGxUb3AsIHRoaXMuX2l0ZW1TaXplWzBdKSwgY29sczogY2FsY3VsYXRlRmlyc3RJblZpZXdwb3J0KHNjcm9sbExlZnQsIHRoaXMuX2l0ZW1TaXplWzFdKSB9O1xuICAgICAgICAgICAgICAgIGxhc3RJblZpZXdwb3J0ID0geyByb3dzOiBmaXJzdEluVmlld3BvcnQucm93cyArIHRoaXMubnVtSXRlbXNJblZpZXdwb3J0LnJvd3MsIGNvbHM6IGZpcnN0SW5WaWV3cG9ydC5jb2xzICsgdGhpcy5udW1JdGVtc0luVmlld3BvcnQuY29scyB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxQb3MgPSB0aGlzLmhvcml6b250YWwgPyBzY3JvbGxMZWZ0IDogc2Nyb2xsVG9wO1xuICAgICAgICAgICAgICAgIGZpcnN0SW5WaWV3cG9ydCA9IGNhbGN1bGF0ZUZpcnN0SW5WaWV3cG9ydChzY3JvbGxQb3MsIHRoaXMuX2l0ZW1TaXplKTtcbiAgICAgICAgICAgICAgICBsYXN0SW5WaWV3cG9ydCA9IGZpcnN0SW5WaWV3cG9ydCArIHRoaXMubnVtSXRlbXNJblZpZXdwb3J0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpcnN0OiB0aGlzLmZpcnN0LFxuICAgICAgICAgICAgbGFzdDogdGhpcy5sYXN0LFxuICAgICAgICAgICAgdmlld3BvcnQ6IHtcbiAgICAgICAgICAgICAgICBmaXJzdDogZmlyc3RJblZpZXdwb3J0LFxuICAgICAgICAgICAgICAgIGxhc3Q6IGxhc3RJblZpZXdwb3J0XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlTnVtSXRlbXMoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRQb3MgPSB0aGlzLmdldENvbnRlbnRQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCBjb250ZW50V2lkdGggPSB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQgPyB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIGNvbnRlbnRQb3MubGVmdCA6IDA7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQgPyB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgLSBjb250ZW50UG9zLnRvcCA6IDA7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZU51bUl0ZW1zSW5WaWV3cG9ydCA9IChfY29udGVudFNpemUsIF9pdGVtU2l6ZSkgPT4gTWF0aC5jZWlsKF9jb250ZW50U2l6ZSAvIChfaXRlbVNpemUgfHwgX2NvbnRlbnRTaXplKSk7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZU51bVRvbGVyYXRlZEl0ZW1zID0gKF9udW1JdGVtcykgPT4gTWF0aC5jZWlsKF9udW1JdGVtcyAvIDIpO1xuICAgICAgICBjb25zdCBudW1JdGVtc0luVmlld3BvcnQ6IGFueSA9IHRoaXMuYm90aFxuICAgICAgICAgICAgPyB7IHJvd3M6IGNhbGN1bGF0ZU51bUl0ZW1zSW5WaWV3cG9ydChjb250ZW50SGVpZ2h0LCB0aGlzLl9pdGVtU2l6ZVswXSksIGNvbHM6IGNhbGN1bGF0ZU51bUl0ZW1zSW5WaWV3cG9ydChjb250ZW50V2lkdGgsIHRoaXMuX2l0ZW1TaXplWzFdKSB9XG4gICAgICAgICAgICA6IGNhbGN1bGF0ZU51bUl0ZW1zSW5WaWV3cG9ydCh0aGlzLmhvcml6b250YWwgPyBjb250ZW50V2lkdGggOiBjb250ZW50SGVpZ2h0LCB0aGlzLl9pdGVtU2l6ZSk7XG5cbiAgICAgICAgY29uc3QgbnVtVG9sZXJhdGVkSXRlbXMgPSB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXMgfHwgKHRoaXMuYm90aCA/IFtjYWxjdWxhdGVOdW1Ub2xlcmF0ZWRJdGVtcyhudW1JdGVtc0luVmlld3BvcnQucm93cyksIGNhbGN1bGF0ZU51bVRvbGVyYXRlZEl0ZW1zKG51bUl0ZW1zSW5WaWV3cG9ydC5jb2xzKV0gOiBjYWxjdWxhdGVOdW1Ub2xlcmF0ZWRJdGVtcyhudW1JdGVtc0luVmlld3BvcnQpKTtcblxuICAgICAgICByZXR1cm4geyBudW1JdGVtc0luVmlld3BvcnQsIG51bVRvbGVyYXRlZEl0ZW1zIH07XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlT3B0aW9ucygpIHtcbiAgICAgICAgY29uc3QgeyBudW1JdGVtc0luVmlld3BvcnQsIG51bVRvbGVyYXRlZEl0ZW1zIH0gPSB0aGlzLmNhbGN1bGF0ZU51bUl0ZW1zKCk7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZUxhc3QgPSAoX2ZpcnN0LCBfbnVtLCBfbnVtVCwgX2lzQ29scyA9IGZhbHNlKSA9PiB0aGlzLmdldExhc3QoX2ZpcnN0ICsgX251bSArIChfZmlyc3QgPCBfbnVtVCA/IDIgOiAzKSAqIF9udW1ULCBfaXNDb2xzKTtcbiAgICAgICAgY29uc3QgZmlyc3QgPSB0aGlzLmZpcnN0O1xuICAgICAgICBjb25zdCBsYXN0ID0gdGhpcy5ib3RoXG4gICAgICAgICAgICA/IHsgcm93czogY2FsY3VsYXRlTGFzdCh0aGlzLmZpcnN0LnJvd3MsIG51bUl0ZW1zSW5WaWV3cG9ydC5yb3dzLCBudW1Ub2xlcmF0ZWRJdGVtc1swXSksIGNvbHM6IGNhbGN1bGF0ZUxhc3QodGhpcy5maXJzdC5jb2xzLCBudW1JdGVtc0luVmlld3BvcnQuY29scywgbnVtVG9sZXJhdGVkSXRlbXNbMV0sIHRydWUpIH1cbiAgICAgICAgICAgIDogY2FsY3VsYXRlTGFzdCh0aGlzLmZpcnN0LCBudW1JdGVtc0luVmlld3BvcnQsIG51bVRvbGVyYXRlZEl0ZW1zKTtcblxuICAgICAgICB0aGlzLmxhc3QgPSBsYXN0O1xuICAgICAgICB0aGlzLm51bUl0ZW1zSW5WaWV3cG9ydCA9IG51bUl0ZW1zSW5WaWV3cG9ydDtcbiAgICAgICAgdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zID0gbnVtVG9sZXJhdGVkSXRlbXM7XG5cbiAgICAgICAgaWYgKHRoaXMuc2hvd0xvYWRlcikge1xuICAgICAgICAgICAgdGhpcy5sb2FkZXJBcnIgPSB0aGlzLmJvdGggPyBBcnJheS5mcm9tKHsgbGVuZ3RoOiBudW1JdGVtc0luVmlld3BvcnQucm93cyB9KS5tYXAoKCkgPT4gQXJyYXkuZnJvbSh7IGxlbmd0aDogbnVtSXRlbXNJblZpZXdwb3J0LmNvbHMgfSkpIDogQXJyYXkuZnJvbSh7IGxlbmd0aDogbnVtSXRlbXNJblZpZXdwb3J0IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2xhenkpIHtcbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGF6eUxvYWRTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgZmlyc3Q6IHRoaXMuX3N0ZXAgPyAodGhpcy5ib3RoID8geyByb3dzOiAwLCBjb2xzOiBmaXJzdC5jb2xzIH0gOiAwKSA6IGZpcnN0LFxuICAgICAgICAgICAgICAgICAgICBsYXN0OiBNYXRoLm1pbih0aGlzLl9zdGVwID8gdGhpcy5fc3RlcCA6IHRoaXMubGFzdCwgdGhpcy5pdGVtcy5sZW5ndGgpXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXZlbnRzKCdvbkxhenlMb2FkJywgdGhpcy5sYXp5TG9hZFN0YXRlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlQXV0b1NpemUoKSB7XG4gICAgICAgIGlmICh0aGlzLl9hdXRvU2l6ZSAmJiAhdGhpcy5kX2xvYWRpbmcpIHtcbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRlbnRFbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRFbC5zdHlsZS5taW5IZWlnaHQgPSB0aGlzLmNvbnRlbnRFbC5zdHlsZS5taW5XaWR0aCA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50RWwuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5zdHlsZS5jb250YWluID0gJ25vbmUnO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtjb250ZW50V2lkdGgsIGNvbnRlbnRIZWlnaHRdID0gW0RvbUhhbmRsZXIuZ2V0V2lkdGgodGhpcy5jb250ZW50RWwpLCBEb21IYW5kbGVyLmdldEhlaWdodCh0aGlzLmNvbnRlbnRFbCldO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50V2lkdGggIT09IHRoaXMuZGVmYXVsdENvbnRlbnRXaWR0aCAmJiAodGhpcy5lbGVtZW50Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSAnJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRIZWlnaHQgIT09IHRoaXMuZGVmYXVsdENvbnRlbnRIZWlnaHQgJiYgKHRoaXMuZWxlbWVudFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9ICcnKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBbd2lkdGgsIGhlaWdodF0gPSBbRG9tSGFuZGxlci5nZXRXaWR0aCh0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCksIERvbUhhbmRsZXIuZ2V0SGVpZ2h0KHRoaXMuZWxlbWVudFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50KV07XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmJvdGggfHwgdGhpcy5ob3Jpem9udGFsKSAmJiAodGhpcy5lbGVtZW50Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aCA8IHRoaXMuZGVmYXVsdFdpZHRoID8gd2lkdGggKyAncHgnIDogdGhpcy5fc2Nyb2xsV2lkdGggfHwgdGhpcy5kZWZhdWx0V2lkdGggKyAncHgnKTtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuYm90aCB8fCB0aGlzLnZlcnRpY2FsKSAmJiAodGhpcy5lbGVtZW50Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0IDwgdGhpcy5kZWZhdWx0SGVpZ2h0ID8gaGVpZ2h0ICsgJ3B4JyA6IHRoaXMuX3Njcm9sbEhlaWdodCB8fCB0aGlzLmRlZmF1bHRIZWlnaHQgKyAncHgnKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRFbC5zdHlsZS5taW5IZWlnaHQgPSB0aGlzLmNvbnRlbnRFbC5zdHlsZS5taW5XaWR0aCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRFbC5zdHlsZS5wb3NpdGlvbiA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5zdHlsZS5jb250YWluID0gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRMYXN0KGxhc3QgPSAwLCBpc0NvbHMgPSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMgPyBNYXRoLm1pbihpc0NvbHMgPyAodGhpcy5fY29sdW1ucyB8fCB0aGlzLl9pdGVtc1swXSkubGVuZ3RoIDogdGhpcy5faXRlbXMubGVuZ3RoLCBsYXN0KSA6IDA7XG4gICAgfVxuXG4gICAgZ2V0Q29udGVudFBvc2l0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5jb250ZW50RWwpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmNvbnRlbnRFbCk7XG4gICAgICAgICAgICBjb25zdCBsZWZ0ID0gcGFyc2VGbG9hdChzdHlsZS5wYWRkaW5nTGVmdCkgKyBNYXRoLm1heChwYXJzZUZsb2F0KHN0eWxlLmxlZnQpIHx8IDAsIDApO1xuICAgICAgICAgICAgY29uc3QgcmlnaHQgPSBwYXJzZUZsb2F0KHN0eWxlLnBhZGRpbmdSaWdodCkgKyBNYXRoLm1heChwYXJzZUZsb2F0KHN0eWxlLnJpZ2h0KSB8fCAwLCAwKTtcbiAgICAgICAgICAgIGNvbnN0IHRvcCA9IHBhcnNlRmxvYXQoc3R5bGUucGFkZGluZ1RvcCkgKyBNYXRoLm1heChwYXJzZUZsb2F0KHN0eWxlLnRvcCkgfHwgMCwgMCk7XG4gICAgICAgICAgICBjb25zdCBib3R0b20gPSBwYXJzZUZsb2F0KHN0eWxlLnBhZGRpbmdCb3R0b20pICsgTWF0aC5tYXgocGFyc2VGbG9hdChzdHlsZS5ib3R0b20pIHx8IDAsIDApO1xuXG4gICAgICAgICAgICByZXR1cm4geyBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20sIHg6IGxlZnQgKyByaWdodCwgeTogdG9wICsgYm90dG9tIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyBsZWZ0OiAwLCByaWdodDogMCwgdG9wOiAwLCBib3R0b206IDAsIHg6IDAsIHk6IDAgfTtcbiAgICB9XG5cbiAgICBzZXRTaXplKCkge1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50Vmlld0NoaWxkPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5lbGVtZW50Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLl9zY3JvbGxXaWR0aCB8fCBgJHt0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCB8fCBwYXJlbnRFbGVtZW50Lm9mZnNldFdpZHRofXB4YDtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuX3Njcm9sbEhlaWdodCB8fCBgJHt0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgfHwgcGFyZW50RWxlbWVudC5vZmZzZXRIZWlnaHR9cHhgO1xuICAgICAgICAgICAgY29uc3Qgc2V0UHJvcCA9IChfbmFtZSwgX3ZhbHVlKSA9PiAodGhpcy5lbGVtZW50Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQuc3R5bGVbX25hbWVdID0gX3ZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuYm90aCB8fCB0aGlzLmhvcml6b250YWwpIHtcbiAgICAgICAgICAgICAgICBzZXRQcm9wKCdoZWlnaHQnLCBoZWlnaHQpO1xuICAgICAgICAgICAgICAgIHNldFByb3AoJ3dpZHRoJywgd2lkdGgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXRQcm9wKCdoZWlnaHQnLCBoZWlnaHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0U3BhY2VyU2l6ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2l0ZW1zKSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50UG9zID0gdGhpcy5nZXRDb250ZW50UG9zaXRpb24oKTtcbiAgICAgICAgICAgIGNvbnN0IHNldFByb3AgPSAoX25hbWUsIF92YWx1ZSwgX3NpemUsIF9jcG9zID0gMCkgPT4gKHRoaXMuc3BhY2VyU3R5bGUgPSB7IC4uLnRoaXMuc3BhY2VyU3R5bGUsIC4uLnsgW2Ake19uYW1lfWBdOiAoX3ZhbHVlIHx8IFtdKS5sZW5ndGggKiBfc2l6ZSArIF9jcG9zICsgJ3B4JyB9IH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5ib3RoKSB7XG4gICAgICAgICAgICAgICAgc2V0UHJvcCgnaGVpZ2h0JywgdGhpcy5faXRlbXMsIHRoaXMuX2l0ZW1TaXplWzBdLCBjb250ZW50UG9zLnkpO1xuICAgICAgICAgICAgICAgIHNldFByb3AoJ3dpZHRoJywgdGhpcy5fY29sdW1ucyB8fCB0aGlzLl9pdGVtc1sxXSwgdGhpcy5faXRlbVNpemVbMV0sIGNvbnRlbnRQb3MueCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaG9yaXpvbnRhbCA/IHNldFByb3AoJ3dpZHRoJywgdGhpcy5fY29sdW1ucyB8fCB0aGlzLl9pdGVtcywgdGhpcy5faXRlbVNpemUsIGNvbnRlbnRQb3MueCkgOiBzZXRQcm9wKCdoZWlnaHQnLCB0aGlzLl9pdGVtcywgdGhpcy5faXRlbVNpemUsIGNvbnRlbnRQb3MueSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRDb250ZW50UG9zaXRpb24ocG9zKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRFbCAmJiAhdGhpcy5fYXBwZW5kT25seSkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3QgPSBwb3MgPyBwb3MuZmlyc3QgOiB0aGlzLmZpcnN0O1xuICAgICAgICAgICAgY29uc3QgY2FsY3VsYXRlVHJhbnNsYXRlVmFsID0gKF9maXJzdCwgX3NpemUpID0+IF9maXJzdCAqIF9zaXplO1xuICAgICAgICAgICAgY29uc3Qgc2V0VHJhbnNmb3JtID0gKF94ID0gMCwgX3kgPSAwKSA9PiAodGhpcy5jb250ZW50U3R5bGUgPSB7IC4uLnRoaXMuY29udGVudFN0eWxlLCAuLi57IHRyYW5zZm9ybTogYHRyYW5zbGF0ZTNkKCR7X3h9cHgsICR7X3l9cHgsIDApYCB9IH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5ib3RoKSB7XG4gICAgICAgICAgICAgICAgc2V0VHJhbnNmb3JtKGNhbGN1bGF0ZVRyYW5zbGF0ZVZhbChmaXJzdC5jb2xzLCB0aGlzLl9pdGVtU2l6ZVsxXSksIGNhbGN1bGF0ZVRyYW5zbGF0ZVZhbChmaXJzdC5yb3dzLCB0aGlzLl9pdGVtU2l6ZVswXSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2xhdGVWYWwgPSBjYWxjdWxhdGVUcmFuc2xhdGVWYWwoZmlyc3QsIHRoaXMuX2l0ZW1TaXplKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhvcml6b250YWwgPyBzZXRUcmFuc2Zvcm0odHJhbnNsYXRlVmFsLCAwKSA6IHNldFRyYW5zZm9ybSgwLCB0cmFuc2xhdGVWYWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TY3JvbGxQb3NpdGlvbkNoYW5nZShldmVudCkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRQb3MgPSB0aGlzLmdldENvbnRlbnRQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCBjYWxjdWxhdGVTY3JvbGxQb3MgPSAoX3BvcywgX2Nwb3MpID0+IChfcG9zID8gKF9wb3MgPiBfY3BvcyA/IF9wb3MgLSBfY3BvcyA6IF9wb3MpIDogMCk7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZUN1cnJlbnRJbmRleCA9IChfcG9zLCBfc2l6ZSkgPT4gTWF0aC5mbG9vcihfcG9zIC8gKF9zaXplIHx8IF9wb3MpKTtcbiAgICAgICAgY29uc3QgY2FsY3VsYXRlVHJpZ2dlckluZGV4ID0gKF9jdXJyZW50SW5kZXgsIF9maXJzdCwgX2xhc3QsIF9udW0sIF9udW1ULCBfaXNTY3JvbGxEb3duT3JSaWdodCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIF9jdXJyZW50SW5kZXggPD0gX251bVQgPyBfbnVtVCA6IF9pc1Njcm9sbERvd25PclJpZ2h0ID8gX2xhc3QgLSBfbnVtIC0gX251bVQgOiBfZmlyc3QgKyBfbnVtVCAtIDE7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZUZpcnN0ID0gKF9jdXJyZW50SW5kZXgsIF90cmlnZ2VySW5kZXgsIF9maXJzdCwgX2xhc3QsIF9udW0sIF9udW1ULCBfaXNTY3JvbGxEb3duT3JSaWdodCkgPT4ge1xuICAgICAgICAgICAgaWYgKF9jdXJyZW50SW5kZXggPD0gX251bVQpIHJldHVybiAwO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gTWF0aC5tYXgoMCwgX2lzU2Nyb2xsRG93bk9yUmlnaHQgPyAoX2N1cnJlbnRJbmRleCA8IF90cmlnZ2VySW5kZXggPyBfZmlyc3QgOiBfY3VycmVudEluZGV4IC0gX251bVQpIDogX2N1cnJlbnRJbmRleCA+IF90cmlnZ2VySW5kZXggPyBfZmlyc3QgOiBfY3VycmVudEluZGV4IC0gMiAqIF9udW1UKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgY2FsY3VsYXRlTGFzdCA9IChfY3VycmVudEluZGV4LCBfZmlyc3QsIF9sYXN0LCBfbnVtLCBfbnVtVCwgX2lzQ29scyA9IGZhbHNlKSA9PiB7XG4gICAgICAgICAgICBsZXQgbGFzdFZhbHVlID0gX2ZpcnN0ICsgX251bSArIDIgKiBfbnVtVDtcblxuICAgICAgICAgICAgaWYgKF9jdXJyZW50SW5kZXggPj0gX251bVQpIHtcbiAgICAgICAgICAgICAgICBsYXN0VmFsdWUgKz0gX251bVQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRMYXN0KGxhc3RWYWx1ZSwgX2lzQ29scyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gY2FsY3VsYXRlU2Nyb2xsUG9zKHRhcmdldC5zY3JvbGxUb3AsIGNvbnRlbnRQb3MudG9wKTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsTGVmdCA9IGNhbGN1bGF0ZVNjcm9sbFBvcyh0YXJnZXQuc2Nyb2xsTGVmdCwgY29udGVudFBvcy5sZWZ0KTtcblxuICAgICAgICBsZXQgbmV3Rmlyc3QgPSB0aGlzLmJvdGggPyB7IHJvd3M6IDAsIGNvbHM6IDAgfSA6IDA7XG4gICAgICAgIGxldCBuZXdMYXN0ID0gdGhpcy5sYXN0O1xuICAgICAgICBsZXQgaXNSYW5nZUNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgbGV0IG5ld1Njcm9sbFBvcyA9IHRoaXMubGFzdFNjcm9sbFBvcztcblxuICAgICAgICBpZiAodGhpcy5ib3RoKSB7XG4gICAgICAgICAgICBjb25zdCBpc1Njcm9sbERvd24gPSB0aGlzLmxhc3RTY3JvbGxQb3MudG9wIDw9IHNjcm9sbFRvcDtcbiAgICAgICAgICAgIGNvbnN0IGlzU2Nyb2xsUmlnaHQgPSB0aGlzLmxhc3RTY3JvbGxQb3MubGVmdCA8PSBzY3JvbGxMZWZ0O1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2FwcGVuZE9ubHkgfHwgKHRoaXMuX2FwcGVuZE9ubHkgJiYgKGlzU2Nyb2xsRG93biB8fCBpc1Njcm9sbFJpZ2h0KSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB7IHJvd3M6IGNhbGN1bGF0ZUN1cnJlbnRJbmRleChzY3JvbGxUb3AsIHRoaXMuX2l0ZW1TaXplWzBdKSwgY29sczogY2FsY3VsYXRlQ3VycmVudEluZGV4KHNjcm9sbExlZnQsIHRoaXMuX2l0ZW1TaXplWzFdKSB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJJbmRleCA9IHtcbiAgICAgICAgICAgICAgICAgICAgcm93czogY2FsY3VsYXRlVHJpZ2dlckluZGV4KGN1cnJlbnRJbmRleC5yb3dzLCB0aGlzLmZpcnN0LnJvd3MsIHRoaXMubGFzdC5yb3dzLCB0aGlzLm51bUl0ZW1zSW5WaWV3cG9ydC5yb3dzLCB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXNbMF0sIGlzU2Nyb2xsRG93biksXG4gICAgICAgICAgICAgICAgICAgIGNvbHM6IGNhbGN1bGF0ZVRyaWdnZXJJbmRleChjdXJyZW50SW5kZXguY29scywgdGhpcy5maXJzdC5jb2xzLCB0aGlzLmxhc3QuY29scywgdGhpcy5udW1JdGVtc0luVmlld3BvcnQuY29scywgdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zWzFdLCBpc1Njcm9sbFJpZ2h0KVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBuZXdGaXJzdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgcm93czogY2FsY3VsYXRlRmlyc3QoY3VycmVudEluZGV4LnJvd3MsIHRyaWdnZXJJbmRleC5yb3dzLCB0aGlzLmZpcnN0LnJvd3MsIHRoaXMubGFzdC5yb3dzLCB0aGlzLm51bUl0ZW1zSW5WaWV3cG9ydC5yb3dzLCB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXNbMF0sIGlzU2Nyb2xsRG93biksXG4gICAgICAgICAgICAgICAgICAgIGNvbHM6IGNhbGN1bGF0ZUZpcnN0KGN1cnJlbnRJbmRleC5jb2xzLCB0cmlnZ2VySW5kZXguY29scywgdGhpcy5maXJzdC5jb2xzLCB0aGlzLmxhc3QuY29scywgdGhpcy5udW1JdGVtc0luVmlld3BvcnQuY29scywgdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zWzFdLCBpc1Njcm9sbFJpZ2h0KVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbmV3TGFzdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgcm93czogY2FsY3VsYXRlTGFzdChjdXJyZW50SW5kZXgucm93cywgbmV3Rmlyc3Qucm93cywgdGhpcy5sYXN0LnJvd3MsIHRoaXMubnVtSXRlbXNJblZpZXdwb3J0LnJvd3MsIHRoaXMuZF9udW1Ub2xlcmF0ZWRJdGVtc1swXSksXG4gICAgICAgICAgICAgICAgICAgIGNvbHM6IGNhbGN1bGF0ZUxhc3QoY3VycmVudEluZGV4LmNvbHMsIG5ld0ZpcnN0LmNvbHMsIHRoaXMubGFzdC5jb2xzLCB0aGlzLm51bUl0ZW1zSW5WaWV3cG9ydC5jb2xzLCB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXNbMV0sIHRydWUpXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGlzUmFuZ2VDaGFuZ2VkID0gbmV3Rmlyc3Qucm93cyAhPT0gdGhpcy5maXJzdC5yb3dzIHx8IG5ld0xhc3Qucm93cyAhPT0gdGhpcy5sYXN0LnJvd3MgfHwgbmV3Rmlyc3QuY29scyAhPT0gdGhpcy5maXJzdC5jb2xzIHx8IG5ld0xhc3QuY29scyAhPT0gdGhpcy5sYXN0LmNvbHMgfHwgdGhpcy5pc1JhbmdlQ2hhbmdlZDtcbiAgICAgICAgICAgICAgICBuZXdTY3JvbGxQb3MgPSB7IHRvcDogc2Nyb2xsVG9wLCBsZWZ0OiBzY3JvbGxMZWZ0IH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzY3JvbGxQb3MgPSB0aGlzLmhvcml6b250YWwgPyBzY3JvbGxMZWZ0IDogc2Nyb2xsVG9wO1xuICAgICAgICAgICAgY29uc3QgaXNTY3JvbGxEb3duT3JSaWdodCA9IHRoaXMubGFzdFNjcm9sbFBvcyA8PSBzY3JvbGxQb3M7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5fYXBwZW5kT25seSB8fCAodGhpcy5fYXBwZW5kT25seSAmJiBpc1Njcm9sbERvd25PclJpZ2h0KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGNhbGN1bGF0ZUN1cnJlbnRJbmRleChzY3JvbGxQb3MsIHRoaXMuX2l0ZW1TaXplKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VySW5kZXggPSBjYWxjdWxhdGVUcmlnZ2VySW5kZXgoY3VycmVudEluZGV4LCB0aGlzLmZpcnN0LCB0aGlzLmxhc3QsIHRoaXMubnVtSXRlbXNJblZpZXdwb3J0LCB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXMsIGlzU2Nyb2xsRG93bk9yUmlnaHQpO1xuXG4gICAgICAgICAgICAgICAgbmV3Rmlyc3QgPSBjYWxjdWxhdGVGaXJzdChjdXJyZW50SW5kZXgsIHRyaWdnZXJJbmRleCwgdGhpcy5maXJzdCwgdGhpcy5sYXN0LCB0aGlzLm51bUl0ZW1zSW5WaWV3cG9ydCwgdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zLCBpc1Njcm9sbERvd25PclJpZ2h0KTtcbiAgICAgICAgICAgICAgICBuZXdMYXN0ID0gY2FsY3VsYXRlTGFzdChjdXJyZW50SW5kZXgsIG5ld0ZpcnN0LCB0aGlzLmxhc3QsIHRoaXMubnVtSXRlbXNJblZpZXdwb3J0LCB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXMpO1xuICAgICAgICAgICAgICAgIGlzUmFuZ2VDaGFuZ2VkID0gbmV3Rmlyc3QgIT09IHRoaXMuZmlyc3QgfHwgbmV3TGFzdCAhPT0gdGhpcy5sYXN0IHx8IHRoaXMuaXNSYW5nZUNoYW5nZWQ7XG4gICAgICAgICAgICAgICAgbmV3U2Nyb2xsUG9zID0gc2Nyb2xsUG9zO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpcnN0OiBuZXdGaXJzdCxcbiAgICAgICAgICAgIGxhc3Q6IG5ld0xhc3QsXG4gICAgICAgICAgICBpc1JhbmdlQ2hhbmdlZCxcbiAgICAgICAgICAgIHNjcm9sbFBvczogbmV3U2Nyb2xsUG9zXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgb25TY3JvbGxDaGFuZ2UoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgeyBmaXJzdCwgbGFzdCwgaXNSYW5nZUNoYW5nZWQsIHNjcm9sbFBvcyB9ID0gdGhpcy5vblNjcm9sbFBvc2l0aW9uQ2hhbmdlKGV2ZW50KTtcblxuICAgICAgICBpZiAoaXNSYW5nZUNoYW5nZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1N0YXRlID0geyBmaXJzdCwgbGFzdCB9O1xuXG4gICAgICAgICAgICB0aGlzLnNldENvbnRlbnRQb3NpdGlvbihuZXdTdGF0ZSk7XG5cbiAgICAgICAgICAgIHRoaXMuZmlyc3QgPSBmaXJzdDtcbiAgICAgICAgICAgIHRoaXMubGFzdCA9IGxhc3Q7XG4gICAgICAgICAgICB0aGlzLmxhc3RTY3JvbGxQb3MgPSBzY3JvbGxQb3M7XG5cbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXZlbnRzKCdvblNjcm9sbEluZGV4Q2hhbmdlJywgbmV3U3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5fbGF6eSAmJiB0aGlzLmlzUGFnZUNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXp5TG9hZFN0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdDogdGhpcy5fc3RlcCA/IE1hdGgubWluKHRoaXMuZ2V0UGFnZUJ5Rmlyc3QoKSAqIHRoaXMuX3N0ZXAsIHRoaXMuaXRlbXMubGVuZ3RoIC0gdGhpcy5fc3RlcCkgOiBmaXJzdCxcbiAgICAgICAgICAgICAgICAgICAgbGFzdDogTWF0aC5taW4odGhpcy5fc3RlcCA/ICh0aGlzLmdldFBhZ2VCeUZpcnN0KCkgKyAxKSAqIHRoaXMuX3N0ZXAgOiBsYXN0LCB0aGlzLml0ZW1zLmxlbmd0aClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzTGF6eVN0YXRlQ2hhbmdlZCA9IHRoaXMubGF6eUxvYWRTdGF0ZS5maXJzdCAhPT0gbGF6eUxvYWRTdGF0ZS5maXJzdCB8fCB0aGlzLmxhenlMb2FkU3RhdGUubGFzdCAhPT0gbGF6eUxvYWRTdGF0ZS5sYXN0O1xuXG4gICAgICAgICAgICAgICAgaXNMYXp5U3RhdGVDaGFuZ2VkICYmIHRoaXMuaGFuZGxlRXZlbnRzKCdvbkxhenlMb2FkJywgbGF6eUxvYWRTdGF0ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXp5TG9hZFN0YXRlID0gbGF6eUxvYWRTdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ29udGFpbmVyU2Nyb2xsKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRXZlbnRzKCdvblNjcm9sbCcsIHsgb3JpZ2luYWxFdmVudDogZXZlbnQgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2RlbGF5ICYmIHRoaXMuaXNQYWdlQ2hhbmdlZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2Nyb2xsVGltZW91dCkge1xuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRpbWVvdXQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZF9sb2FkaW5nICYmIHRoaXMuc2hvd0xvYWRlcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaXNSYW5nZUNoYW5nZWQgfSA9IHRoaXMub25TY3JvbGxQb3NpdGlvbkNoYW5nZShldmVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hhbmdlZCA9IGlzUmFuZ2VDaGFuZ2VkIHx8ICh0aGlzLl9zdGVwID8gdGhpcy5pc1BhZ2VDaGFuZ2VkIDogZmFsc2UpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kX2xvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zY3JvbGxUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblNjcm9sbENoYW5nZShldmVudCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kX2xvYWRpbmcgJiYgdGhpcy5zaG93TG9hZGVyICYmICghdGhpcy5fbGF6eSB8fCB0aGlzLl9sb2FkaW5nID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZF9sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnZSA9IHRoaXMuZ2V0UGFnZUJ5Rmlyc3QoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgdGhpcy5fZGVsYXkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgIXRoaXMuZF9sb2FkaW5nICYmIHRoaXMub25TY3JvbGxDaGFuZ2UoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYmluZFJlc2l6ZUxpc3RlbmVyKCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLndpbmRvd1Jlc2l6ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2luZG93ID0gdGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldyBhcyBXaW5kb3c7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gRG9tSGFuZGxlci5pc1RvdWNoRGV2aWNlKCkgPyAnb3JpZW50YXRpb25jaGFuZ2UnIDogJ3Jlc2l6ZSc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2luZG93UmVzaXplTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih3aW5kb3csIGV2ZW50LCB0aGlzLm9uV2luZG93UmVzaXplLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5iaW5kUmVzaXplTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLndpbmRvd1Jlc2l6ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLndpbmRvd1Jlc2l6ZUxpc3RlbmVyKCk7XG4gICAgICAgICAgICB0aGlzLndpbmRvd1Jlc2l6ZUxpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uV2luZG93UmVzaXplKCkge1xuICAgICAgICBpZiAodGhpcy5yZXNpemVUaW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lb3V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVzaXplVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKERvbUhhbmRsZXIuaXNWaXNpYmxlKHRoaXMuZWxlbWVudFZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbd2lkdGgsIGhlaWdodF0gPSBbRG9tSGFuZGxlci5nZXRXaWR0aCh0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCksIERvbUhhbmRsZXIuZ2V0SGVpZ2h0KHRoaXMuZWxlbWVudFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50KV07XG4gICAgICAgICAgICAgICAgY29uc3QgW2lzRGlmZldpZHRoLCBpc0RpZmZIZWlnaHRdID0gW3dpZHRoICE9PSB0aGlzLmRlZmF1bHRXaWR0aCwgaGVpZ2h0ICE9PSB0aGlzLmRlZmF1bHRIZWlnaHRdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlaW5pdCA9IHRoaXMuYm90aCA/IGlzRGlmZldpZHRoIHx8IGlzRGlmZkhlaWdodCA6IHRoaXMuaG9yaXpvbnRhbCA/IGlzRGlmZldpZHRoIDogdGhpcy52ZXJ0aWNhbCA/IGlzRGlmZkhlaWdodCA6IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgcmVpbml0ICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zID0gdGhpcy5fbnVtVG9sZXJhdGVkSXRlbXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRXaWR0aCA9IHdpZHRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0SGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q29udGVudFdpZHRoID0gRG9tSGFuZGxlci5nZXRXaWR0aCh0aGlzLmNvbnRlbnRFbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb250ZW50SGVpZ2h0ID0gRG9tSGFuZGxlci5nZXRIZWlnaHQodGhpcy5jb250ZW50RWwpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHRoaXMuX3Jlc2l6ZURlbGF5KTtcbiAgICB9XG5cbiAgICBoYW5kbGVFdmVudHMobmFtZSwgcGFyYW1zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zW25hbWVdID8gdGhpcy5vcHRpb25zW25hbWVdKHBhcmFtcykgOiB0aGlzW25hbWVdLmVtaXQocGFyYW1zKTtcbiAgICB9XG5cbiAgICBnZXRDb250ZW50T3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbnRlbnRTdHlsZUNsYXNzOiBgcC1zY3JvbGxlci1jb250ZW50ICR7dGhpcy5kX2xvYWRpbmcgPyAncC1zY3JvbGxlci1sb2FkaW5nJyA6ICcnfWAsXG4gICAgICAgICAgICBpdGVtczogdGhpcy5sb2FkZWRJdGVtcyxcbiAgICAgICAgICAgIGdldEl0ZW1PcHRpb25zOiAoaW5kZXgpID0+IHRoaXMuZ2V0T3B0aW9ucyhpbmRleCksXG4gICAgICAgICAgICBsb2FkaW5nOiB0aGlzLmRfbG9hZGluZyxcbiAgICAgICAgICAgIGdldExvYWRlck9wdGlvbnM6IChpbmRleCwgb3B0aW9ucz8pID0+IHRoaXMuZ2V0TG9hZGVyT3B0aW9ucyhpbmRleCwgb3B0aW9ucyksXG4gICAgICAgICAgICBpdGVtU2l6ZTogdGhpcy5faXRlbVNpemUsXG4gICAgICAgICAgICByb3dzOiB0aGlzLmxvYWRlZFJvd3MsXG4gICAgICAgICAgICBjb2x1bW5zOiB0aGlzLmxvYWRlZENvbHVtbnMsXG4gICAgICAgICAgICBzcGFjZXJTdHlsZTogdGhpcy5zcGFjZXJTdHlsZSxcbiAgICAgICAgICAgIGNvbnRlbnRTdHlsZTogdGhpcy5jb250ZW50U3R5bGUsXG4gICAgICAgICAgICB2ZXJ0aWNhbDogdGhpcy52ZXJ0aWNhbCxcbiAgICAgICAgICAgIGhvcml6b250YWw6IHRoaXMuaG9yaXpvbnRhbCxcbiAgICAgICAgICAgIGJvdGg6IHRoaXMuYm90aFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldE9wdGlvbnMocmVuZGVyZWRJbmRleCkge1xuICAgICAgICBjb25zdCBjb3VudCA9ICh0aGlzLl9pdGVtcyB8fCBbXSkubGVuZ3RoO1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuYm90aCA/IHRoaXMuZmlyc3Qucm93cyArIHJlbmRlcmVkSW5kZXggOiB0aGlzLmZpcnN0ICsgcmVuZGVyZWRJbmRleDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICBjb3VudCxcbiAgICAgICAgICAgIGZpcnN0OiBpbmRleCA9PT0gMCxcbiAgICAgICAgICAgIGxhc3Q6IGluZGV4ID09PSBjb3VudCAtIDEsXG4gICAgICAgICAgICBldmVuOiBpbmRleCAlIDIgPT09IDAsXG4gICAgICAgICAgICBvZGQ6IGluZGV4ICUgMiAhPT0gMFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldExvYWRlck9wdGlvbnMoaW5kZXgsIGV4dE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgY291bnQgPSB0aGlzLmxvYWRlckFyci5sZW5ndGg7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgY291bnQsXG4gICAgICAgICAgICBmaXJzdDogaW5kZXggPT09IDAsXG4gICAgICAgICAgICBsYXN0OiBpbmRleCA9PT0gY291bnQgLSAxLFxuICAgICAgICAgICAgZXZlbjogaW5kZXggJSAyID09PSAwLFxuICAgICAgICAgICAgb2RkOiBpbmRleCAlIDIgIT09IDAsXG4gICAgICAgICAgICAuLi5leHRPcHRpb25zXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNoYXJlZE1vZHVsZSwgU3Bpbm5lckljb25dLFxuICAgIGV4cG9ydHM6IFtTY3JvbGxlciwgU2hhcmVkTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtTY3JvbGxlcl1cbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsZXJNb2R1bGUge31cbiJdfQ==