primevue 3.15.0 → 3.16.2

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 (387) hide show
  1. package/autocomplete/AutoComplete.d.ts +182 -38
  2. package/autocomplete/AutoComplete.vue +636 -342
  3. package/autocomplete/autocomplete.cjs.js +745 -416
  4. package/autocomplete/autocomplete.cjs.min.js +1 -1
  5. package/autocomplete/autocomplete.esm.js +747 -418
  6. package/autocomplete/autocomplete.esm.min.js +1 -1
  7. package/autocomplete/autocomplete.js +745 -416
  8. package/autocomplete/autocomplete.min.js +1 -1
  9. package/button/Button.vue +4 -1
  10. package/button/button.cjs.js +5 -1
  11. package/button/button.cjs.min.js +1 -1
  12. package/button/button.esm.js +5 -1
  13. package/button/button.esm.min.js +1 -1
  14. package/button/button.js +5 -1
  15. package/button/button.min.js +1 -1
  16. package/calendar/Calendar.d.ts +51 -12
  17. package/calendar/Calendar.vue +259 -114
  18. package/calendar/calendar.cjs.js +414 -220
  19. package/calendar/calendar.cjs.min.js +1 -1
  20. package/calendar/calendar.esm.js +415 -221
  21. package/calendar/calendar.esm.min.js +1 -1
  22. package/calendar/calendar.js +414 -220
  23. package/calendar/calendar.min.js +1 -1
  24. package/carousel/Carousel.vue +25 -0
  25. package/carousel/carousel.cjs.js +25 -0
  26. package/carousel/carousel.cjs.min.js +1 -1
  27. package/carousel/carousel.esm.js +25 -0
  28. package/carousel/carousel.esm.min.js +1 -1
  29. package/carousel/carousel.js +25 -0
  30. package/carousel/carousel.min.js +1 -1
  31. package/cascadeselect/CascadeSelect.d.ts +97 -17
  32. package/cascadeselect/CascadeSelect.vue +560 -135
  33. package/cascadeselect/CascadeSelectSub.vue +48 -129
  34. package/cascadeselect/cascadeselect.cjs.js +670 -306
  35. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  36. package/cascadeselect/cascadeselect.esm.js +672 -308
  37. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  38. package/cascadeselect/cascadeselect.js +670 -306
  39. package/cascadeselect/cascadeselect.min.js +1 -1
  40. package/checkbox/Checkbox.d.ts +40 -4
  41. package/checkbox/Checkbox.vue +50 -13
  42. package/checkbox/checkbox.cjs.js +64 -23
  43. package/checkbox/checkbox.cjs.min.js +1 -1
  44. package/checkbox/checkbox.esm.js +65 -24
  45. package/checkbox/checkbox.esm.min.js +1 -1
  46. package/checkbox/checkbox.js +64 -23
  47. package/checkbox/checkbox.min.js +1 -1
  48. package/chips/Chips.d.ts +36 -12
  49. package/chips/Chips.vue +116 -22
  50. package/chips/chips.cjs.js +149 -37
  51. package/chips/chips.cjs.min.js +1 -1
  52. package/chips/chips.esm.js +150 -38
  53. package/chips/chips.esm.min.js +1 -1
  54. package/chips/chips.js +150 -39
  55. package/chips/chips.min.js +1 -1
  56. package/colorpicker/ColorPicker.d.ts +3 -6
  57. package/colorpicker/ColorPicker.vue +1 -5
  58. package/colorpicker/colorpicker.cjs.js +2 -7
  59. package/colorpicker/colorpicker.cjs.min.js +1 -1
  60. package/colorpicker/colorpicker.esm.js +2 -7
  61. package/colorpicker/colorpicker.esm.min.js +1 -1
  62. package/colorpicker/colorpicker.js +2 -7
  63. package/colorpicker/colorpicker.min.js +1 -1
  64. package/column/Column.d.ts +4 -0
  65. package/column/Column.vue +4 -0
  66. package/column/column.cjs.js +4 -0
  67. package/column/column.cjs.min.js +1 -1
  68. package/column/column.esm.js +4 -0
  69. package/column/column.esm.min.js +1 -1
  70. package/column/column.js +4 -0
  71. package/column/column.min.js +1 -1
  72. package/config/PrimeVue.d.ts +42 -0
  73. package/config/config.cjs.js +35 -4
  74. package/config/config.cjs.min.js +1 -1
  75. package/config/config.esm.js +35 -4
  76. package/config/config.esm.min.js +1 -1
  77. package/config/config.js +35 -4
  78. package/config/config.min.js +1 -1
  79. package/confirmdialog/ConfirmDialog.vue +4 -1
  80. package/confirmdialog/confirmdialog.cjs.js +6 -2
  81. package/confirmdialog/confirmdialog.cjs.min.js +1 -1
  82. package/confirmdialog/confirmdialog.esm.js +6 -2
  83. package/confirmdialog/confirmdialog.esm.min.js +1 -1
  84. package/confirmdialog/confirmdialog.js +6 -2
  85. package/confirmdialog/confirmdialog.min.js +1 -1
  86. package/contextmenu/ContextMenu.d.ts +1 -1
  87. package/contextmenu/ContextMenuSub.vue +3 -3
  88. package/contextmenu/contextmenu.cjs.js +14 -8
  89. package/contextmenu/contextmenu.cjs.min.js +1 -1
  90. package/contextmenu/contextmenu.esm.js +15 -9
  91. package/contextmenu/contextmenu.esm.min.js +1 -1
  92. package/contextmenu/contextmenu.js +14 -8
  93. package/contextmenu/contextmenu.min.js +1 -1
  94. package/core/core.js +1128 -772
  95. package/core/core.min.js +12 -12
  96. package/datatable/BodyCell.vue +11 -2
  97. package/datatable/DataTable.vue +23 -2
  98. package/datatable/datatable.cjs.js +34 -4
  99. package/datatable/datatable.cjs.min.js +1 -1
  100. package/datatable/datatable.esm.js +34 -4
  101. package/datatable/datatable.esm.min.js +1 -1
  102. package/datatable/datatable.js +34 -4
  103. package/datatable/datatable.min.js +1 -1
  104. package/dialog/Dialog.d.ts +5 -1
  105. package/dropdown/Dropdown.d.ts +92 -38
  106. package/dropdown/Dropdown.vue +538 -399
  107. package/dropdown/dropdown.cjs.js +657 -486
  108. package/dropdown/dropdown.cjs.min.js +1 -1
  109. package/dropdown/dropdown.esm.js +659 -488
  110. package/dropdown/dropdown.esm.min.js +1 -1
  111. package/dropdown/dropdown.js +657 -486
  112. package/dropdown/dropdown.min.js +1 -1
  113. package/editor/Editor.d.ts +32 -0
  114. package/editor/Editor.vue +15 -1
  115. package/editor/editor.cjs.js +15 -1
  116. package/editor/editor.cjs.min.js +1 -1
  117. package/editor/editor.esm.js +15 -1
  118. package/editor/editor.esm.min.js +1 -1
  119. package/editor/editor.js +15 -1
  120. package/editor/editor.min.js +1 -1
  121. package/inputmask/InputMask.vue +9 -6
  122. package/inputmask/inputmask.cjs.js +14 -6
  123. package/inputmask/inputmask.cjs.min.js +1 -1
  124. package/inputmask/inputmask.esm.js +15 -7
  125. package/inputmask/inputmask.esm.min.js +1 -1
  126. package/inputmask/inputmask.js +14 -6
  127. package/inputmask/inputmask.min.js +1 -1
  128. package/inputnumber/InputNumber.d.ts +31 -7
  129. package/inputnumber/InputNumber.vue +53 -20
  130. package/inputnumber/inputnumber.cjs.js +75 -29
  131. package/inputnumber/inputnumber.cjs.min.js +1 -1
  132. package/inputnumber/inputnumber.esm.js +76 -30
  133. package/inputnumber/inputnumber.esm.min.js +1 -1
  134. package/inputnumber/inputnumber.js +75 -29
  135. package/inputnumber/inputnumber.min.js +1 -1
  136. package/inputswitch/InputSwitch.d.ts +24 -8
  137. package/inputswitch/InputSwitch.vue +27 -12
  138. package/inputswitch/inputswitch.cjs.js +38 -20
  139. package/inputswitch/inputswitch.cjs.min.js +1 -1
  140. package/inputswitch/inputswitch.esm.js +39 -21
  141. package/inputswitch/inputswitch.esm.min.js +1 -1
  142. package/inputswitch/inputswitch.js +38 -20
  143. package/inputswitch/inputswitch.min.js +1 -1
  144. package/inputtext/InputText.vue +1 -2
  145. package/inputtext/inputtext.cjs.js +3 -4
  146. package/inputtext/inputtext.cjs.min.js +1 -1
  147. package/inputtext/inputtext.esm.js +4 -5
  148. package/inputtext/inputtext.esm.min.js +1 -1
  149. package/inputtext/inputtext.js +3 -4
  150. package/inputtext/inputtext.min.js +1 -1
  151. package/knob/Knob.d.ts +12 -0
  152. package/knob/Knob.vue +62 -2
  153. package/knob/knob.cjs.js +73 -5
  154. package/knob/knob.cjs.min.js +1 -1
  155. package/knob/knob.esm.js +73 -5
  156. package/knob/knob.esm.min.js +1 -1
  157. package/knob/knob.js +73 -5
  158. package/knob/knob.min.js +1 -1
  159. package/listbox/Listbox.d.ts +53 -7
  160. package/listbox/Listbox.vue +500 -135
  161. package/listbox/listbox.cjs.js +597 -193
  162. package/listbox/listbox.cjs.min.js +1 -1
  163. package/listbox/listbox.esm.js +599 -195
  164. package/listbox/listbox.esm.min.js +1 -1
  165. package/listbox/listbox.js +597 -193
  166. package/listbox/listbox.min.js +1 -1
  167. package/menu/Menu.d.ts +1 -1
  168. package/menu/Menuitem.vue +2 -2
  169. package/menu/menu.cjs.js +12 -6
  170. package/menu/menu.cjs.min.js +1 -1
  171. package/menu/menu.esm.js +13 -7
  172. package/menu/menu.esm.min.js +1 -1
  173. package/menu/menu.js +12 -6
  174. package/menu/menu.min.js +1 -1
  175. package/menubar/MenubarSub.vue +3 -3
  176. package/menubar/menubar.cjs.js +14 -8
  177. package/menubar/menubar.cjs.min.js +1 -1
  178. package/menubar/menubar.esm.js +15 -9
  179. package/menubar/menubar.esm.min.js +1 -1
  180. package/menubar/menubar.js +14 -8
  181. package/menubar/menubar.min.js +1 -1
  182. package/menuitem/MenuItem.d.ts +1 -1
  183. package/multiselect/MultiSelect.d.ts +111 -51
  184. package/multiselect/MultiSelect.vue +629 -338
  185. package/multiselect/multiselect.cjs.js +748 -428
  186. package/multiselect/multiselect.cjs.min.js +1 -1
  187. package/multiselect/multiselect.esm.js +750 -430
  188. package/multiselect/multiselect.esm.min.js +1 -1
  189. package/multiselect/multiselect.js +748 -428
  190. package/multiselect/multiselect.min.js +1 -1
  191. package/overlaypanel/OverlayPanel.d.ts +1 -1
  192. package/overlaypanel/OverlayPanel.vue +14 -2
  193. package/overlaypanel/overlaypanel.cjs.js +14 -2
  194. package/overlaypanel/overlaypanel.cjs.min.js +1 -1
  195. package/overlaypanel/overlaypanel.esm.js +14 -2
  196. package/overlaypanel/overlaypanel.esm.min.js +1 -1
  197. package/overlaypanel/overlaypanel.js +14 -2
  198. package/overlaypanel/overlaypanel.min.js +1 -1
  199. package/package.json +2 -2
  200. package/paginator/Paginator.d.ts +2 -2
  201. package/password/Password.d.ts +36 -8
  202. package/password/Password.vue +50 -14
  203. package/password/password.cjs.js +69 -24
  204. package/password/password.cjs.min.js +1 -1
  205. package/password/password.esm.js +71 -26
  206. package/password/password.esm.min.js +1 -1
  207. package/password/password.js +69 -24
  208. package/password/password.min.js +1 -1
  209. package/picklist/PickList.d.ts +8 -0
  210. package/picklist/PickList.vue +10 -2
  211. package/picklist/picklist.cjs.js +68 -50
  212. package/picklist/picklist.cjs.min.js +1 -1
  213. package/picklist/picklist.esm.js +69 -51
  214. package/picklist/picklist.esm.min.js +1 -1
  215. package/picklist/picklist.js +68 -50
  216. package/picklist/picklist.min.js +1 -1
  217. package/portal/Portal.d.ts +1 -1
  218. package/radiobutton/RadioButton.d.ts +28 -4
  219. package/radiobutton/RadioButton.vue +36 -11
  220. package/radiobutton/radiobutton.cjs.js +49 -23
  221. package/radiobutton/radiobutton.cjs.min.js +1 -1
  222. package/radiobutton/radiobutton.esm.js +50 -24
  223. package/radiobutton/radiobutton.esm.min.js +1 -1
  224. package/radiobutton/radiobutton.js +49 -23
  225. package/radiobutton/radiobutton.min.js +1 -1
  226. package/rating/Rating.d.ts +4 -0
  227. package/rating/Rating.vue +61 -7
  228. package/rating/rating.cjs.js +90 -16
  229. package/rating/rating.cjs.min.js +1 -1
  230. package/rating/rating.esm.js +91 -17
  231. package/rating/rating.esm.min.js +1 -1
  232. package/rating/rating.js +90 -16
  233. package/rating/rating.min.js +1 -1
  234. package/resources/primevue.css +8 -0
  235. package/resources/primevue.min.css +1 -1
  236. package/resources/themes/arya-blue/theme.css +82 -40
  237. package/resources/themes/arya-green/theme.css +82 -40
  238. package/resources/themes/arya-orange/theme.css +82 -40
  239. package/resources/themes/arya-purple/theme.css +82 -40
  240. package/resources/themes/bootstrap4-dark-blue/theme.css +82 -40
  241. package/resources/themes/bootstrap4-dark-purple/theme.css +82 -40
  242. package/resources/themes/bootstrap4-light-blue/theme.css +82 -40
  243. package/resources/themes/bootstrap4-light-purple/theme.css +82 -40
  244. package/resources/themes/fluent-light/theme.css +82 -40
  245. package/resources/themes/lara-dark-blue/theme.css +82 -40
  246. package/resources/themes/lara-dark-indigo/theme.css +82 -40
  247. package/resources/themes/lara-dark-purple/theme.css +82 -40
  248. package/resources/themes/lara-dark-teal/theme.css +82 -40
  249. package/resources/themes/lara-light-blue/theme.css +82 -40
  250. package/resources/themes/lara-light-indigo/theme.css +82 -40
  251. package/resources/themes/lara-light-purple/theme.css +82 -40
  252. package/resources/themes/lara-light-teal/theme.css +82 -40
  253. package/resources/themes/luna-amber/theme.css +82 -40
  254. package/resources/themes/luna-blue/theme.css +82 -40
  255. package/resources/themes/luna-green/theme.css +82 -40
  256. package/resources/themes/luna-pink/theme.css +82 -40
  257. package/resources/themes/md-dark-deeppurple/theme.css +82 -40
  258. package/resources/themes/md-dark-indigo/theme.css +82 -40
  259. package/resources/themes/md-light-deeppurple/theme.css +82 -40
  260. package/resources/themes/md-light-indigo/theme.css +82 -40
  261. package/resources/themes/mdc-dark-deeppurple/theme.css +82 -40
  262. package/resources/themes/mdc-dark-indigo/theme.css +82 -40
  263. package/resources/themes/mdc-light-deeppurple/theme.css +82 -40
  264. package/resources/themes/mdc-light-indigo/theme.css +82 -40
  265. package/resources/themes/nova/theme.css +82 -40
  266. package/resources/themes/nova-accent/theme.css +82 -40
  267. package/resources/themes/nova-alt/theme.css +82 -40
  268. package/resources/themes/nova-vue/theme.css +82 -40
  269. package/resources/themes/rhea/theme.css +82 -40
  270. package/resources/themes/saga-blue/theme.css +82 -40
  271. package/resources/themes/saga-green/theme.css +82 -40
  272. package/resources/themes/saga-orange/theme.css +82 -40
  273. package/resources/themes/saga-purple/theme.css +82 -40
  274. package/resources/themes/tailwind-light/theme.css +82 -40
  275. package/resources/themes/vela-blue/theme.css +82 -40
  276. package/resources/themes/vela-green/theme.css +82 -40
  277. package/resources/themes/vela-orange/theme.css +82 -40
  278. package/resources/themes/vela-purple/theme.css +82 -40
  279. package/ripple/ripple.cjs.js +1 -0
  280. package/ripple/ripple.cjs.min.js +1 -1
  281. package/ripple/ripple.esm.js +1 -0
  282. package/ripple/ripple.esm.min.js +1 -1
  283. package/ripple/ripple.js +1 -0
  284. package/ripple/ripple.min.js +1 -1
  285. package/selectbutton/SelectButton.d.ts +6 -2
  286. package/selectbutton/SelectButton.vue +89 -12
  287. package/selectbutton/selectbutton.cjs.js +97 -22
  288. package/selectbutton/selectbutton.cjs.min.js +1 -1
  289. package/selectbutton/selectbutton.esm.js +99 -24
  290. package/selectbutton/selectbutton.esm.min.js +1 -1
  291. package/selectbutton/selectbutton.js +97 -22
  292. package/selectbutton/selectbutton.min.js +1 -1
  293. package/slider/Slider.d.ts +9 -1
  294. package/slider/Slider.vue +50 -34
  295. package/slider/slider.cjs.js +59 -38
  296. package/slider/slider.cjs.min.js +1 -1
  297. package/slider/slider.esm.js +59 -38
  298. package/slider/slider.esm.min.js +1 -1
  299. package/slider/slider.js +59 -38
  300. package/slider/slider.min.js +1 -1
  301. package/splitbutton/SplitButton.d.ts +1 -1
  302. package/splitter/Splitter.vue +30 -1
  303. package/splitter/splitter.cjs.js +30 -1
  304. package/splitter/splitter.cjs.min.js +1 -1
  305. package/splitter/splitter.esm.js +30 -1
  306. package/splitter/splitter.esm.min.js +1 -1
  307. package/splitter/splitter.js +30 -1
  308. package/splitter/splitter.min.js +1 -1
  309. package/textarea/Textarea.vue +1 -2
  310. package/textarea/textarea.cjs.js +3 -5
  311. package/textarea/textarea.cjs.min.js +1 -1
  312. package/textarea/textarea.esm.js +4 -6
  313. package/textarea/textarea.esm.min.js +1 -1
  314. package/textarea/textarea.js +3 -5
  315. package/textarea/textarea.min.js +1 -1
  316. package/tieredmenu/TieredMenu.d.ts +1 -1
  317. package/tieredmenu/TieredMenuSub.vue +3 -3
  318. package/tieredmenu/tieredmenu.cjs.js +14 -8
  319. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  320. package/tieredmenu/tieredmenu.esm.js +15 -9
  321. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  322. package/tieredmenu/tieredmenu.js +14 -8
  323. package/tieredmenu/tieredmenu.min.js +1 -1
  324. package/timeline/Timeline.d.ts +10 -1
  325. package/timeline/Timeline.vue +1 -1
  326. package/timeline/timeline.cjs.js +5 -1
  327. package/timeline/timeline.cjs.min.js +1 -1
  328. package/timeline/timeline.esm.js +5 -1
  329. package/timeline/timeline.esm.min.js +1 -1
  330. package/timeline/timeline.js +5 -1
  331. package/timeline/timeline.min.js +1 -1
  332. package/togglebutton/ToggleButton.d.ts +42 -0
  333. package/togglebutton/ToggleButton.vue +44 -7
  334. package/togglebutton/togglebutton.cjs.js +59 -13
  335. package/togglebutton/togglebutton.cjs.min.js +1 -1
  336. package/togglebutton/togglebutton.esm.js +60 -14
  337. package/togglebutton/togglebutton.esm.min.js +1 -1
  338. package/togglebutton/togglebutton.js +59 -13
  339. package/togglebutton/togglebutton.min.js +1 -1
  340. package/tooltip/tooltip.cjs.js +20 -11
  341. package/tooltip/tooltip.cjs.min.js +1 -1
  342. package/tooltip/tooltip.esm.js +21 -12
  343. package/tooltip/tooltip.esm.min.js +1 -1
  344. package/tooltip/tooltip.js +20 -11
  345. package/tooltip/tooltip.min.js +1 -1
  346. package/tree/Tree.vue +5 -1
  347. package/tree/TreeNode.vue +20 -19
  348. package/tree/tree.cjs.js +47 -32
  349. package/tree/tree.cjs.min.js +1 -1
  350. package/tree/tree.esm.js +47 -32
  351. package/tree/tree.esm.min.js +1 -1
  352. package/tree/tree.js +47 -32
  353. package/tree/tree.min.js +1 -1
  354. package/treeselect/TreeSelect.d.ts +26 -10
  355. package/treeselect/TreeSelect.vue +52 -29
  356. package/treeselect/treeselect.cjs.js +74 -41
  357. package/treeselect/treeselect.cjs.min.js +1 -1
  358. package/treeselect/treeselect.esm.js +76 -43
  359. package/treeselect/treeselect.esm.min.js +1 -1
  360. package/treeselect/treeselect.js +74 -41
  361. package/treeselect/treeselect.min.js +1 -1
  362. package/tristatecheckbox/TriStateCheckbox.d.ts +20 -4
  363. package/tristatecheckbox/TriStateCheckbox.vue +52 -15
  364. package/tristatecheckbox/tristatecheckbox.cjs.js +67 -26
  365. package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
  366. package/tristatecheckbox/tristatecheckbox.esm.js +68 -27
  367. package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
  368. package/tristatecheckbox/tristatecheckbox.js +67 -26
  369. package/tristatecheckbox/tristatecheckbox.min.js +1 -1
  370. package/utils/Utils.d.ts +3 -2
  371. package/utils/utils.cjs.js +239 -173
  372. package/utils/utils.cjs.min.js +1 -1
  373. package/utils/utils.esm.js +239 -173
  374. package/utils/utils.esm.min.js +1 -1
  375. package/utils/utils.js +239 -173
  376. package/utils/utils.min.js +1 -1
  377. package/vetur-attributes.json +612 -136
  378. package/vetur-tags.json +180 -59
  379. package/virtualscroller/VirtualScroller.d.ts +10 -0
  380. package/virtualscroller/VirtualScroller.vue +18 -17
  381. package/virtualscroller/virtualscroller.cjs.js +22 -20
  382. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  383. package/virtualscroller/virtualscroller.esm.js +22 -20
  384. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  385. package/virtualscroller/virtualscroller.js +22 -20
  386. package/virtualscroller/virtualscroller.min.js +1 -1
  387. package/web-types.json +1745 -338
package/slider/slider.js CHANGED
@@ -31,9 +31,17 @@ this.primevue.slider = (function (utils, vue) {
31
31
  type: Boolean,
32
32
  default: false
33
33
  },
34
- ariaLabelledBy: {
34
+ tabindex: {
35
+ type: Number,
36
+ default: 0
37
+ },
38
+ 'aria-labelledby': {
35
39
  type: String,
36
40
  default: null
41
+ },
42
+ 'aria-label': {
43
+ type: String,
44
+ default: null
37
45
  }
38
46
  },
39
47
  dragging: false,
@@ -164,38 +172,41 @@ this.primevue.slider = (function (utils, vue) {
164
172
  },
165
173
  onKeyDown(event, index) {
166
174
  this.handleIndex = index;
167
- switch (event.which) {
168
- //down
169
- case 40:
170
- if (this.vertical) {
171
- this.decrementValue(event, index);
172
- event.preventDefault();
173
- }
175
+ switch (event.code) {
176
+ case 'ArrowDown':
177
+ case 'ArrowLeft':
178
+ this.decrementValue(event, index);
179
+ event.preventDefault();
180
+ break;
181
+
182
+ case 'ArrowUp':
183
+ case 'ArrowRight':
184
+ this.incrementValue(event, index);
185
+ event.preventDefault();
174
186
  break;
175
- //up
176
- case 38:
177
- if (this.vertical) {
178
- this.incrementValue(event, index);
179
- event.preventDefault();
180
- }
187
+
188
+ case 'PageDown':
189
+ this.decrementValue(event, index, true);
190
+ event.preventDefault();
181
191
  break;
182
- //left
183
- case 37:
184
- if (this.horizontal) {
185
- this.decrementValue(event, index);
186
- event.preventDefault();
187
- }
192
+
193
+ case 'PageUp':
194
+ this.incrementValue(event, index, true);
195
+ event.preventDefault();
188
196
  break;
189
- //right
190
- case 39:
191
- if (this.horizontal) {
192
- this.incrementValue(event, index);
193
- event.preventDefault();
194
- }
197
+
198
+ case 'Home':
199
+ this.updateModel(event, this.min);
200
+ event.preventDefault();
201
+ break;
202
+
203
+ case 'End':
204
+ this.updateModel(event, this.max);
205
+ event.preventDefault();
195
206
  break;
196
207
  }
197
208
  },
198
- decrementValue(event, index) {
209
+ decrementValue(event, index, pageKey = false) {
199
210
  let newValue;
200
211
  if (this.range) {
201
212
  if (this.step)
@@ -206,13 +217,15 @@ this.primevue.slider = (function (utils, vue) {
206
217
  else {
207
218
  if (this.step)
208
219
  newValue = this.modelValue - this.step;
220
+ else if (!this.step && pageKey)
221
+ newValue = this.modelValue - 10;
209
222
  else
210
223
  newValue = this.modelValue - 1;
211
224
  }
212
225
  this.updateModel(event, newValue);
213
226
  event.preventDefault();
214
227
  },
215
- incrementValue(event, index) {
228
+ incrementValue(event, index, pageKey = false) {
216
229
  let newValue;
217
230
  if (this.range) {
218
231
  if (this.step)
@@ -223,6 +236,8 @@ this.primevue.slider = (function (utils, vue) {
223
236
  else {
224
237
  if (this.step)
225
238
  newValue = this.modelValue + this.step;
239
+ else if (!this.step && pageKey)
240
+ newValue = this.modelValue + 10;
226
241
  else
227
242
  newValue = this.modelValue + 1;
228
243
  }
@@ -319,9 +334,9 @@ this.primevue.slider = (function (utils, vue) {
319
334
  }
320
335
  };
321
336
 
322
- const _hoisted_1 = ["aria-valuemin", "aria-valuenow", "aria-valuemax", "aria-labelledby"];
323
- const _hoisted_2 = ["aria-valuemin", "aria-valuenow", "aria-valuemax", "aria-labelledby"];
324
- const _hoisted_3 = ["aria-valuemin", "aria-valuenow", "aria-valuemax", "aria-labelledby"];
337
+ const _hoisted_1 = ["tabindex", "aria-valuemin", "aria-valuenow", "aria-valuemax", "aria-labelledby", "aria-label", "aria-orientation"];
338
+ const _hoisted_2 = ["tabindex", "aria-valuemin", "aria-valuenow", "aria-valuemax", "aria-labelledby", "aria-label", "aria-orientation"];
339
+ const _hoisted_3 = ["tabindex", "aria-valuemin", "aria-valuenow", "aria-valuemax", "aria-labelledby", "aria-label", "aria-orientation"];
325
340
 
326
341
  function render(_ctx, _cache, $props, $setup, $data, $options) {
327
342
  return (vue.openBlock(), vue.createElementBlock("div", {
@@ -342,12 +357,14 @@ this.primevue.slider = (function (utils, vue) {
342
357
  onTouchend: _cache[2] || (_cache[2] = $event => ($options.onDragEnd($event))),
343
358
  onMousedown: _cache[3] || (_cache[3] = $event => ($options.onMouseDown($event))),
344
359
  onKeydown: _cache[4] || (_cache[4] = $event => ($options.onKeyDown($event))),
345
- tabindex: "0",
360
+ tabindex: $props.tabindex,
346
361
  role: "slider",
347
362
  "aria-valuemin": $props.min,
348
363
  "aria-valuenow": $props.modelValue,
349
364
  "aria-valuemax": $props.max,
350
- "aria-labelledby": $props.ariaLabelledBy
365
+ "aria-labelledby": _ctx.ariaLabelledby,
366
+ "aria-label": _ctx.ariaLabel,
367
+ "aria-orientation": $props.orientation
351
368
  }, null, 44, _hoisted_1))
352
369
  : vue.createCommentVNode("", true),
353
370
  ($props.range)
@@ -359,13 +376,15 @@ this.primevue.slider = (function (utils, vue) {
359
376
  onTouchmove: _cache[6] || (_cache[6] = $event => ($options.onDrag($event))),
360
377
  onTouchend: _cache[7] || (_cache[7] = $event => ($options.onDragEnd($event))),
361
378
  onMousedown: _cache[8] || (_cache[8] = $event => ($options.onMouseDown($event, 0))),
362
- onKeydown: _cache[9] || (_cache[9] = $event => ($options.onKeyDown($event))),
363
- tabindex: "0",
379
+ onKeydown: _cache[9] || (_cache[9] = $event => ($options.onKeyDown($event, 0))),
380
+ tabindex: $props.tabindex,
364
381
  role: "slider",
365
382
  "aria-valuemin": $props.min,
366
383
  "aria-valuenow": $props.modelValue ? $props.modelValue[0] : null,
367
384
  "aria-valuemax": $props.max,
368
- "aria-labelledby": $props.ariaLabelledBy
385
+ "aria-labelledby": _ctx.ariaLabelledby,
386
+ "aria-label": _ctx.ariaLabel,
387
+ "aria-orientation": $props.orientation
369
388
  }, null, 44, _hoisted_2))
370
389
  : vue.createCommentVNode("", true),
371
390
  ($props.range)
@@ -378,12 +397,14 @@ this.primevue.slider = (function (utils, vue) {
378
397
  onTouchend: _cache[12] || (_cache[12] = $event => ($options.onDragEnd($event))),
379
398
  onMousedown: _cache[13] || (_cache[13] = $event => ($options.onMouseDown($event, 1))),
380
399
  onKeydown: _cache[14] || (_cache[14] = $event => ($options.onKeyDown($event, 1))),
381
- tabindex: "0",
400
+ tabindex: $props.tabindex,
382
401
  role: "slider",
383
402
  "aria-valuemin": $props.min,
384
403
  "aria-valuenow": $props.modelValue ? $props.modelValue[1] : null,
385
404
  "aria-valuemax": $props.max,
386
- "aria-labelledby": $props.ariaLabelledBy
405
+ "aria-labelledby": _ctx.ariaLabelledby,
406
+ "aria-label": _ctx.ariaLabel,
407
+ "aria-orientation": $props.orientation
387
408
  }, null, 44, _hoisted_3))
388
409
  : vue.createCommentVNode("", true)
389
410
  ], 2))
@@ -1 +1 @@
1
- this.primevue=this.primevue||{},this.primevue.slider=function(e,t){"use strict";var i={name:"Slider",emits:["update:modelValue","change","slideend"],props:{modelValue:[Number,Array],min:{type:Number,default:0},max:{type:Number,default:100},orientation:{type:String,default:"horizontal"},step:{type:Number,default:null},range:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},ariaLabelledBy:{type:String,default:null}},dragging:!1,handleIndex:null,initX:null,initY:null,barWidth:null,barHeight:null,dragListener:null,dragEndListener:null,beforeUnmount(){this.unbindDragListeners()},methods:{updateDomData(){let t=this.$el.getBoundingClientRect();this.initX=t.left+e.DomHandler.getWindowScrollLeft(),this.initY=t.top+e.DomHandler.getWindowScrollTop(),this.barWidth=this.$el.offsetWidth,this.barHeight=this.$el.offsetHeight},setValue(e){let t,i=e.touches?e.touches[0].pageX:e.pageX,n=e.touches?e.touches[0].pageY:e.pageY;t="horizontal"===this.orientation?100*(i-this.initX)/this.barWidth:100*(this.initY+this.barHeight-n)/this.barHeight;let a=(this.max-this.min)*(t/100)+this.min;if(this.step){const e=this.range?this.modelValue[this.handleIndex]:this.modelValue,t=a-e;t<0?a=e+Math.ceil(a/this.step-e/this.step)*this.step:t>0&&(a=e+Math.floor(a/this.step-e/this.step)*this.step)}else a=Math.floor(a);this.updateModel(e,a)},updateModel(e,t){let i,n=parseFloat(t.toFixed(10));if(this.range)if(i=this.modelValue?[...this.modelValue]:[],0==this.handleIndex){let e=this.modelValue?this.modelValue[1]:this.max;n<this.min?n=this.min:n>=e&&(n=e),i[0]=n,i[1]=i[1]||this.max}else{let e=this.modelValue?this.modelValue[0]:this.min;n>this.max?n=this.max:n<=e&&(n=e),i[0]=i[0]||this.min,i[1]=n}else n<this.min?n=this.min:n>this.max&&(n=this.max),i=n;this.$emit("update:modelValue",i),this.$emit("change",i)},onDragStart(t,i){this.disabled||(e.DomHandler.addClass(this.$el,"p-slider-sliding"),this.dragging=!0,this.updateDomData(),this.range&&this.modelValue[0]===this.max?this.handleIndex=0:this.handleIndex=i,t.preventDefault())},onDrag(e){this.dragging&&(this.setValue(e),e.preventDefault())},onDragEnd(t){this.dragging&&(this.dragging=!1,e.DomHandler.removeClass(this.$el,"p-slider-sliding"),this.$emit("slideend",{originalEvent:t,value:this.modelValue}))},onBarClick(t){this.disabled||e.DomHandler.hasClass(t.target,"p-slider-handle")||(this.updateDomData(),this.setValue(t))},onMouseDown(e,t){this.bindDragListeners(),this.onDragStart(e,t)},onKeyDown(e,t){switch(this.handleIndex=t,e.which){case 40:this.vertical&&(this.decrementValue(e,t),e.preventDefault());break;case 38:this.vertical&&(this.incrementValue(e,t),e.preventDefault());break;case 37:this.horizontal&&(this.decrementValue(e,t),e.preventDefault());break;case 39:this.horizontal&&(this.incrementValue(e,t),e.preventDefault())}},decrementValue(e,t){let i;i=this.range?this.step?this.modelValue[t]-this.step:this.modelValue[t]-1:this.step?this.modelValue-this.step:this.modelValue-1,this.updateModel(e,i),e.preventDefault()},incrementValue(e,t){let i;i=this.range?this.step?this.modelValue[t]+this.step:this.modelValue[t]+1:this.step?this.modelValue+this.step:this.modelValue+1,this.updateModel(e,i),e.preventDefault()},bindDragListeners(){this.dragListener||(this.dragListener=this.onDrag.bind(this),document.addEventListener("mousemove",this.dragListener)),this.dragEndListener||(this.dragEndListener=this.onDragEnd.bind(this),document.addEventListener("mouseup",this.dragEndListener))},unbindDragListeners(){this.dragListener&&(document.removeEventListener("mousemove",this.dragListener),this.dragListener=null),this.dragEndListener&&(document.removeEventListener("mouseup",this.dragEndListener),this.dragEndListener=null)}},computed:{containerClass(){return["p-slider p-component",{"p-disabled":this.disabled,"p-slider-horizontal":"horizontal"===this.orientation,"p-slider-vertical":"vertical"===this.orientation}]},horizontal(){return"horizontal"===this.orientation},vertical(){return"vertical"===this.orientation},rangeStyle(){return this.range?this.horizontal?{left:this.rangeStartPosition+"%",width:this.rangeEndPosition-this.rangeStartPosition+"%"}:{bottom:this.rangeStartPosition+"%",height:this.rangeEndPosition-this.rangeStartHandlePosition+"%"}:this.horizontal?{width:this.handlePosition+"%"}:{height:this.handlePosition+"%"}},handleStyle(){return this.horizontal?{left:this.handlePosition+"%"}:{bottom:this.handlePosition+"%"}},handlePosition(){return this.modelValue<this.min?0:this.modelValue>this.max?100:100*(this.modelValue-this.min)/(this.max-this.min)},rangeStartPosition(){return this.modelValue&&this.modelValue[0]?100*(this.modelValue[0]<this.min?0:this.modelValue[0]-this.min)/(this.max-this.min):0},rangeEndPosition(){return this.modelValue&&2===this.modelValue.length?100*(this.modelValue[1]>this.max?100:this.modelValue[1]-this.min)/(this.max-this.min):100},rangeStartHandleStyle(){return this.horizontal?{left:this.rangeStartPosition+"%"}:{bottom:this.rangeStartPosition+"%"}},rangeEndHandleStyle(){return this.horizontal?{left:this.rangeEndPosition+"%"}:{bottom:this.rangeEndPosition+"%"}}}};const n=["aria-valuemin","aria-valuenow","aria-valuemax","aria-labelledby"],a=["aria-valuemin","aria-valuenow","aria-valuemax","aria-labelledby"],l=["aria-valuemin","aria-valuenow","aria-valuemax","aria-labelledby"];return function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===i&&n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}("\n.p-slider {\n\tposition: relative;\n}\n.p-slider .p-slider-handle {\n\tposition: absolute;\n\tcursor: -webkit-grab;\n\tcursor: grab;\n -ms-touch-action: none;\n touch-action: none;\n display: block;\n}\n.p-slider-range {\n\tposition: absolute;\n display: block;\n}\n.p-slider-horizontal .p-slider-range {\n top: 0;\n left: 0;\n\theight: 100%;\n}\n.p-slider-horizontal .p-slider-handle {\n top: 50%;\n}\n.p-slider-vertical {\n\theight: 100px;\n}\n.p-slider-vertical .p-slider-handle {\n left: 50%;\n}\n.p-slider-vertical .p-slider-range {\n bottom: 0;\n left: 0;\n width: 100%;\n}\n"),i.render=function(e,i,s,o,r,h){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(h.containerClass),onClick:i[15]||(i[15]=(...e)=>h.onBarClick&&h.onBarClick(...e))},[t.createElementVNode("span",{class:"p-slider-range",style:t.normalizeStyle(h.rangeStyle)},null,4),s.range?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",{key:0,class:"p-slider-handle",style:t.normalizeStyle(h.handleStyle),onTouchstart:i[0]||(i[0]=e=>h.onDragStart(e)),onTouchmove:i[1]||(i[1]=e=>h.onDrag(e)),onTouchend:i[2]||(i[2]=e=>h.onDragEnd(e)),onMousedown:i[3]||(i[3]=e=>h.onMouseDown(e)),onKeydown:i[4]||(i[4]=e=>h.onKeyDown(e)),tabindex:"0",role:"slider","aria-valuemin":s.min,"aria-valuenow":s.modelValue,"aria-valuemax":s.max,"aria-labelledby":s.ariaLabelledBy},null,44,n)),s.range?(t.openBlock(),t.createElementBlock("span",{key:1,class:"p-slider-handle",style:t.normalizeStyle(h.rangeStartHandleStyle),onTouchstart:i[5]||(i[5]=e=>h.onDragStart(e,0)),onTouchmove:i[6]||(i[6]=e=>h.onDrag(e)),onTouchend:i[7]||(i[7]=e=>h.onDragEnd(e)),onMousedown:i[8]||(i[8]=e=>h.onMouseDown(e,0)),onKeydown:i[9]||(i[9]=e=>h.onKeyDown(e)),tabindex:"0",role:"slider","aria-valuemin":s.min,"aria-valuenow":s.modelValue?s.modelValue[0]:null,"aria-valuemax":s.max,"aria-labelledby":s.ariaLabelledBy},null,44,a)):t.createCommentVNode("",!0),s.range?(t.openBlock(),t.createElementBlock("span",{key:2,class:"p-slider-handle",style:t.normalizeStyle(h.rangeEndHandleStyle),onTouchstart:i[10]||(i[10]=e=>h.onDragStart(e,1)),onTouchmove:i[11]||(i[11]=e=>h.onDrag(e)),onTouchend:i[12]||(i[12]=e=>h.onDragEnd(e)),onMousedown:i[13]||(i[13]=e=>h.onMouseDown(e,1)),onKeydown:i[14]||(i[14]=e=>h.onKeyDown(e,1)),tabindex:"0",role:"slider","aria-valuemin":s.min,"aria-valuenow":s.modelValue?s.modelValue[1]:null,"aria-valuemax":s.max,"aria-labelledby":s.ariaLabelledBy},null,44,l)):t.createCommentVNode("",!0)],2)},i}(primevue.utils,Vue);
1
+ this.primevue=this.primevue||{},this.primevue.slider=function(e,t){"use strict";var i={name:"Slider",emits:["update:modelValue","change","slideend"],props:{modelValue:[Number,Array],min:{type:Number,default:0},max:{type:Number,default:100},orientation:{type:String,default:"horizontal"},step:{type:Number,default:null},range:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},tabindex:{type:Number,default:0},"aria-labelledby":{type:String,default:null},"aria-label":{type:String,default:null}},dragging:!1,handleIndex:null,initX:null,initY:null,barWidth:null,barHeight:null,dragListener:null,dragEndListener:null,beforeUnmount(){this.unbindDragListeners()},methods:{updateDomData(){let t=this.$el.getBoundingClientRect();this.initX=t.left+e.DomHandler.getWindowScrollLeft(),this.initY=t.top+e.DomHandler.getWindowScrollTop(),this.barWidth=this.$el.offsetWidth,this.barHeight=this.$el.offsetHeight},setValue(e){let t,i=e.touches?e.touches[0].pageX:e.pageX,a=e.touches?e.touches[0].pageY:e.pageY;t="horizontal"===this.orientation?100*(i-this.initX)/this.barWidth:100*(this.initY+this.barHeight-a)/this.barHeight;let n=(this.max-this.min)*(t/100)+this.min;if(this.step){const e=this.range?this.modelValue[this.handleIndex]:this.modelValue,t=n-e;t<0?n=e+Math.ceil(n/this.step-e/this.step)*this.step:t>0&&(n=e+Math.floor(n/this.step-e/this.step)*this.step)}else n=Math.floor(n);this.updateModel(e,n)},updateModel(e,t){let i,a=parseFloat(t.toFixed(10));if(this.range)if(i=this.modelValue?[...this.modelValue]:[],0==this.handleIndex){let e=this.modelValue?this.modelValue[1]:this.max;a<this.min?a=this.min:a>=e&&(a=e),i[0]=a,i[1]=i[1]||this.max}else{let e=this.modelValue?this.modelValue[0]:this.min;a>this.max?a=this.max:a<=e&&(a=e),i[0]=i[0]||this.min,i[1]=a}else a<this.min?a=this.min:a>this.max&&(a=this.max),i=a;this.$emit("update:modelValue",i),this.$emit("change",i)},onDragStart(t,i){this.disabled||(e.DomHandler.addClass(this.$el,"p-slider-sliding"),this.dragging=!0,this.updateDomData(),this.range&&this.modelValue[0]===this.max?this.handleIndex=0:this.handleIndex=i,t.preventDefault())},onDrag(e){this.dragging&&(this.setValue(e),e.preventDefault())},onDragEnd(t){this.dragging&&(this.dragging=!1,e.DomHandler.removeClass(this.$el,"p-slider-sliding"),this.$emit("slideend",{originalEvent:t,value:this.modelValue}))},onBarClick(t){this.disabled||e.DomHandler.hasClass(t.target,"p-slider-handle")||(this.updateDomData(),this.setValue(t))},onMouseDown(e,t){this.bindDragListeners(),this.onDragStart(e,t)},onKeyDown(e,t){switch(this.handleIndex=t,e.code){case"ArrowDown":case"ArrowLeft":this.decrementValue(e,t),e.preventDefault();break;case"ArrowUp":case"ArrowRight":this.incrementValue(e,t),e.preventDefault();break;case"PageDown":this.decrementValue(e,t,!0),e.preventDefault();break;case"PageUp":this.incrementValue(e,t,!0),e.preventDefault();break;case"Home":this.updateModel(e,this.min),e.preventDefault();break;case"End":this.updateModel(e,this.max),e.preventDefault()}},decrementValue(e,t,i=!1){let a;a=this.range?this.step?this.modelValue[t]-this.step:this.modelValue[t]-1:this.step?this.modelValue-this.step:!this.step&&i?this.modelValue-10:this.modelValue-1,this.updateModel(e,a),e.preventDefault()},incrementValue(e,t,i=!1){let a;a=this.range?this.step?this.modelValue[t]+this.step:this.modelValue[t]+1:this.step?this.modelValue+this.step:!this.step&&i?this.modelValue+10:this.modelValue+1,this.updateModel(e,a),e.preventDefault()},bindDragListeners(){this.dragListener||(this.dragListener=this.onDrag.bind(this),document.addEventListener("mousemove",this.dragListener)),this.dragEndListener||(this.dragEndListener=this.onDragEnd.bind(this),document.addEventListener("mouseup",this.dragEndListener))},unbindDragListeners(){this.dragListener&&(document.removeEventListener("mousemove",this.dragListener),this.dragListener=null),this.dragEndListener&&(document.removeEventListener("mouseup",this.dragEndListener),this.dragEndListener=null)}},computed:{containerClass(){return["p-slider p-component",{"p-disabled":this.disabled,"p-slider-horizontal":"horizontal"===this.orientation,"p-slider-vertical":"vertical"===this.orientation}]},horizontal(){return"horizontal"===this.orientation},vertical(){return"vertical"===this.orientation},rangeStyle(){return this.range?this.horizontal?{left:this.rangeStartPosition+"%",width:this.rangeEndPosition-this.rangeStartPosition+"%"}:{bottom:this.rangeStartPosition+"%",height:this.rangeEndPosition-this.rangeStartHandlePosition+"%"}:this.horizontal?{width:this.handlePosition+"%"}:{height:this.handlePosition+"%"}},handleStyle(){return this.horizontal?{left:this.handlePosition+"%"}:{bottom:this.handlePosition+"%"}},handlePosition(){return this.modelValue<this.min?0:this.modelValue>this.max?100:100*(this.modelValue-this.min)/(this.max-this.min)},rangeStartPosition(){return this.modelValue&&this.modelValue[0]?100*(this.modelValue[0]<this.min?0:this.modelValue[0]-this.min)/(this.max-this.min):0},rangeEndPosition(){return this.modelValue&&2===this.modelValue.length?100*(this.modelValue[1]>this.max?100:this.modelValue[1]-this.min)/(this.max-this.min):100},rangeStartHandleStyle(){return this.horizontal?{left:this.rangeStartPosition+"%"}:{bottom:this.rangeStartPosition+"%"}},rangeEndHandleStyle(){return this.horizontal?{left:this.rangeEndPosition+"%"}:{bottom:this.rangeEndPosition+"%"}}}};const a=["tabindex","aria-valuemin","aria-valuenow","aria-valuemax","aria-labelledby","aria-label","aria-orientation"],n=["tabindex","aria-valuemin","aria-valuenow","aria-valuemax","aria-labelledby","aria-label","aria-orientation"],l=["tabindex","aria-valuemin","aria-valuenow","aria-valuemax","aria-labelledby","aria-label","aria-orientation"];return function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var a=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===i&&a.firstChild?a.insertBefore(n,a.firstChild):a.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}("\n.p-slider {\n\tposition: relative;\n}\n.p-slider .p-slider-handle {\n\tposition: absolute;\n\tcursor: -webkit-grab;\n\tcursor: grab;\n -ms-touch-action: none;\n touch-action: none;\n display: block;\n}\n.p-slider-range {\n\tposition: absolute;\n display: block;\n}\n.p-slider-horizontal .p-slider-range {\n top: 0;\n left: 0;\n\theight: 100%;\n}\n.p-slider-horizontal .p-slider-handle {\n top: 50%;\n}\n.p-slider-vertical {\n\theight: 100px;\n}\n.p-slider-vertical .p-slider-handle {\n left: 50%;\n}\n.p-slider-vertical .p-slider-range {\n bottom: 0;\n left: 0;\n width: 100%;\n}\n"),i.render=function(e,i,s,o,r,d){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(d.containerClass),onClick:i[15]||(i[15]=(...e)=>d.onBarClick&&d.onBarClick(...e))},[t.createElementVNode("span",{class:"p-slider-range",style:t.normalizeStyle(d.rangeStyle)},null,4),s.range?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",{key:0,class:"p-slider-handle",style:t.normalizeStyle(d.handleStyle),onTouchstart:i[0]||(i[0]=e=>d.onDragStart(e)),onTouchmove:i[1]||(i[1]=e=>d.onDrag(e)),onTouchend:i[2]||(i[2]=e=>d.onDragEnd(e)),onMousedown:i[3]||(i[3]=e=>d.onMouseDown(e)),onKeydown:i[4]||(i[4]=e=>d.onKeyDown(e)),tabindex:s.tabindex,role:"slider","aria-valuemin":s.min,"aria-valuenow":s.modelValue,"aria-valuemax":s.max,"aria-labelledby":e.ariaLabelledby,"aria-label":e.ariaLabel,"aria-orientation":s.orientation},null,44,a)),s.range?(t.openBlock(),t.createElementBlock("span",{key:1,class:"p-slider-handle",style:t.normalizeStyle(d.rangeStartHandleStyle),onTouchstart:i[5]||(i[5]=e=>d.onDragStart(e,0)),onTouchmove:i[6]||(i[6]=e=>d.onDrag(e)),onTouchend:i[7]||(i[7]=e=>d.onDragEnd(e)),onMousedown:i[8]||(i[8]=e=>d.onMouseDown(e,0)),onKeydown:i[9]||(i[9]=e=>d.onKeyDown(e,0)),tabindex:s.tabindex,role:"slider","aria-valuemin":s.min,"aria-valuenow":s.modelValue?s.modelValue[0]:null,"aria-valuemax":s.max,"aria-labelledby":e.ariaLabelledby,"aria-label":e.ariaLabel,"aria-orientation":s.orientation},null,44,n)):t.createCommentVNode("",!0),s.range?(t.openBlock(),t.createElementBlock("span",{key:2,class:"p-slider-handle",style:t.normalizeStyle(d.rangeEndHandleStyle),onTouchstart:i[10]||(i[10]=e=>d.onDragStart(e,1)),onTouchmove:i[11]||(i[11]=e=>d.onDrag(e)),onTouchend:i[12]||(i[12]=e=>d.onDragEnd(e)),onMousedown:i[13]||(i[13]=e=>d.onMouseDown(e,1)),onKeydown:i[14]||(i[14]=e=>d.onKeyDown(e,1)),tabindex:s.tabindex,role:"slider","aria-valuemin":s.min,"aria-valuenow":s.modelValue?s.modelValue[1]:null,"aria-valuemax":s.max,"aria-labelledby":e.ariaLabelledby,"aria-label":e.ariaLabel,"aria-orientation":s.orientation},null,44,l)):t.createCommentVNode("",!0)],2)},i}(primevue.utils,Vue);
@@ -2,7 +2,7 @@ import { VNode } from 'vue';
2
2
  import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
3
3
  import { MenuItem } from '../menuitem';
4
4
 
5
- type SplitButtonAppendToType = 'body' | 'self' | string | undefined;
5
+ type SplitButtonAppendToType = 'body' | 'self' | string | undefined | HTMLElement;
6
6
 
7
7
  export interface SplitButtonProps {
8
8
  /**
@@ -40,6 +40,8 @@ export default {
40
40
  dragging: false,
41
41
  mouseMoveListener: null,
42
42
  mouseUpListener: null,
43
+ touchMoveListener: null,
44
+ touchEndListener: null,
43
45
  size: null,
44
46
  gutterElement: null,
45
47
  startPos: null,
@@ -83,7 +85,7 @@ export default {
83
85
  this.gutterElement = event.currentTarget;
84
86
  this.size = this.horizontal ? DomHandler.getWidth(this.$el) : DomHandler.getHeight(this.$el);
85
87
  this.dragging = true;
86
- this.startPos = this.layout === 'horizontal' ? event.pageX : event.pageY;
88
+ this.startPos = this.layout === 'horizontal' ? (event.pageX || event.changedTouches[0].pageX) : (event.pageY || event.changedTouches[0].pageY);
87
89
  this.prevPanelElement = this.gutterElement.previousElementSibling;
88
90
  this.nextPanelElement = this.gutterElement.nextElementSibling;
89
91
  this.prevPanelSize = 100 * (this.horizontal ? DomHandler.getOuterWidth(this.prevPanelElement, true): DomHandler.getOuterHeight(this.prevPanelElement, true)) / this.size;
@@ -125,6 +127,7 @@ export default {
125
127
  },
126
128
  onGutterTouchStart(event, index) {
127
129
  this.onResizeStart(event, index);
130
+ this.bindTouchListeners();
128
131
  event.preventDefault();
129
132
  },
130
133
  onGutterTouchMove(event) {
@@ -133,6 +136,7 @@ export default {
133
136
  },
134
137
  onGutterTouchEnd(event) {
135
138
  this.onResizeEnd(event);
139
+ this.unbindTouchListeners();
136
140
  event.preventDefault();
137
141
  },
138
142
  bindMouseListeners() {
@@ -149,6 +153,20 @@ export default {
149
153
  document.addEventListener('mouseup', this.mouseUpListener);
150
154
  }
151
155
  },
156
+ bindTouchListeners() {
157
+ if (!this.touchMoveListener) {
158
+ this.touchMoveListener = event => this.onResize(event.changedTouches[0])
159
+ document.addEventListener('touchmove', this.touchMoveListener);
160
+ }
161
+
162
+ if (!this.touchEndListener) {
163
+ this.touchEndListener = event => {
164
+ this.resizeEnd(event);
165
+ this.unbindTouchListeners();
166
+ }
167
+ document.addEventListener('touchend', this.touchEndListener);
168
+ }
169
+ },
152
170
  validateResize(newPrevPanelSize, newNextPanelSize) {
153
171
  let prevPanelMinSize = ObjectUtils.getVNodeProp(this.panels[0], 'minSize');
154
172
  if (this.panels[0].props && prevPanelMinSize && prevPanelMinSize > newPrevPanelSize) {
@@ -173,6 +191,17 @@ export default {
173
191
  this.mouseUpListener = null;
174
192
  }
175
193
  },
194
+ unbindTouchListeners() {
195
+ if (this.touchMoveListener) {
196
+ document.removeEventListener('touchmove', this.touchMoveListener);
197
+ this.touchMoveListener = null;
198
+ }
199
+
200
+ if (this.touchEndListener) {
201
+ document.removeEventListener('touchend', this.touchEndListener);
202
+ this.touchEndListener = null;
203
+ }
204
+ },
176
205
  clear() {
177
206
  this.dragging = false;
178
207
  this.size = null;
@@ -27,6 +27,8 @@ var script = {
27
27
  dragging: false,
28
28
  mouseMoveListener: null,
29
29
  mouseUpListener: null,
30
+ touchMoveListener: null,
31
+ touchEndListener: null,
30
32
  size: null,
31
33
  gutterElement: null,
32
34
  startPos: null,
@@ -70,7 +72,7 @@ var script = {
70
72
  this.gutterElement = event.currentTarget;
71
73
  this.size = this.horizontal ? utils.DomHandler.getWidth(this.$el) : utils.DomHandler.getHeight(this.$el);
72
74
  this.dragging = true;
73
- this.startPos = this.layout === 'horizontal' ? event.pageX : event.pageY;
75
+ this.startPos = this.layout === 'horizontal' ? (event.pageX || event.changedTouches[0].pageX) : (event.pageY || event.changedTouches[0].pageY);
74
76
  this.prevPanelElement = this.gutterElement.previousElementSibling;
75
77
  this.nextPanelElement = this.gutterElement.nextElementSibling;
76
78
  this.prevPanelSize = 100 * (this.horizontal ? utils.DomHandler.getOuterWidth(this.prevPanelElement, true): utils.DomHandler.getOuterHeight(this.prevPanelElement, true)) / this.size;
@@ -112,6 +114,7 @@ var script = {
112
114
  },
113
115
  onGutterTouchStart(event, index) {
114
116
  this.onResizeStart(event, index);
117
+ this.bindTouchListeners();
115
118
  event.preventDefault();
116
119
  },
117
120
  onGutterTouchMove(event) {
@@ -120,6 +123,7 @@ var script = {
120
123
  },
121
124
  onGutterTouchEnd(event) {
122
125
  this.onResizeEnd(event);
126
+ this.unbindTouchListeners();
123
127
  event.preventDefault();
124
128
  },
125
129
  bindMouseListeners() {
@@ -136,6 +140,20 @@ var script = {
136
140
  document.addEventListener('mouseup', this.mouseUpListener);
137
141
  }
138
142
  },
143
+ bindTouchListeners() {
144
+ if (!this.touchMoveListener) {
145
+ this.touchMoveListener = event => this.onResize(event.changedTouches[0]);
146
+ document.addEventListener('touchmove', this.touchMoveListener);
147
+ }
148
+
149
+ if (!this.touchEndListener) {
150
+ this.touchEndListener = event => {
151
+ this.resizeEnd(event);
152
+ this.unbindTouchListeners();
153
+ };
154
+ document.addEventListener('touchend', this.touchEndListener);
155
+ }
156
+ },
139
157
  validateResize(newPrevPanelSize, newNextPanelSize) {
140
158
  let prevPanelMinSize = utils.ObjectUtils.getVNodeProp(this.panels[0], 'minSize');
141
159
  if (this.panels[0].props && prevPanelMinSize && prevPanelMinSize > newPrevPanelSize) {
@@ -160,6 +178,17 @@ var script = {
160
178
  this.mouseUpListener = null;
161
179
  }
162
180
  },
181
+ unbindTouchListeners() {
182
+ if (this.touchMoveListener) {
183
+ document.removeEventListener('touchmove', this.touchMoveListener);
184
+ this.touchMoveListener = null;
185
+ }
186
+
187
+ if (this.touchEndListener) {
188
+ document.removeEventListener('touchend', this.touchEndListener);
189
+ this.touchEndListener = null;
190
+ }
191
+ },
163
192
  clear() {
164
193
  this.dragging = false;
165
194
  this.size = null;
@@ -1 +1 @@
1
- "use strict";var e=require("primevue/utils"),t=require("vue"),n={name:"Splitter",emits:["resizeend"],props:{layout:{type:String,default:"horizontal"},gutterSize:{type:Number,default:4},stateKey:{type:String,default:null},stateStorage:{type:String,default:"session"}},dragging:!1,mouseMoveListener:null,mouseUpListener:null,size:null,gutterElement:null,startPos:null,prevPanelElement:null,nextPanelElement:null,nextPanelSize:null,prevPanelSize:null,panelSizes:null,prevPanelIndex:null,mounted(){if(this.panels&&this.panels.length){let t=!1;if(this.isStateful()&&(t=this.restoreState()),!t){let t=[...this.$el.children].filter((t=>e.DomHandler.hasClass(t,"p-splitter-panel"))),n=[];this.panels.map(((e,s)=>{let i=(e.props&&e.props.size?e.props.size:null)||100/this.panels.length;n[s]=i,t[s].style.flexBasis="calc("+i+"% - "+(this.panels.length-1)*this.gutterSize+"px)"})),this.panelSizes=n}}},beforeUnmount(){this.clear(),this.unbindMouseListeners()},methods:{isSplitterPanel:e=>"SplitterPanel"===e.type.name,onResizeStart(t,n){this.gutterElement=t.currentTarget,this.size=this.horizontal?e.DomHandler.getWidth(this.$el):e.DomHandler.getHeight(this.$el),this.dragging=!0,this.startPos="horizontal"===this.layout?t.pageX:t.pageY,this.prevPanelElement=this.gutterElement.previousElementSibling,this.nextPanelElement=this.gutterElement.nextElementSibling,this.prevPanelSize=100*(this.horizontal?e.DomHandler.getOuterWidth(this.prevPanelElement,!0):e.DomHandler.getOuterHeight(this.prevPanelElement,!0))/this.size,this.nextPanelSize=100*(this.horizontal?e.DomHandler.getOuterWidth(this.nextPanelElement,!0):e.DomHandler.getOuterHeight(this.nextPanelElement,!0))/this.size,this.prevPanelIndex=n,e.DomHandler.addClass(this.gutterElement,"p-splitter-gutter-resizing"),e.DomHandler.addClass(this.$el,"p-splitter-resizing")},onResize(e){let t;t=this.horizontal?100*e.pageX/this.size-100*this.startPos/this.size:100*e.pageY/this.size-100*this.startPos/this.size;let n=this.prevPanelSize+t,s=this.nextPanelSize-t;this.validateResize(n,s)&&(this.prevPanelElement.style.flexBasis="calc("+n+"% - "+(this.panels.length-1)*this.gutterSize+"px)",this.nextPanelElement.style.flexBasis="calc("+s+"% - "+(this.panels.length-1)*this.gutterSize+"px)",this.panelSizes[this.prevPanelIndex]=n,this.panelSizes[this.prevPanelIndex+1]=s)},onResizeEnd(t){this.isStateful()&&this.saveState(),this.$emit("resizeend",{originalEvent:t,sizes:this.panelSizes}),e.DomHandler.removeClass(this.gutterElement,"p-splitter-gutter-resizing"),e.DomHandler.removeClass(this.$el,"p-splitter-resizing"),this.clear()},onGutterMouseDown(e,t){this.onResizeStart(e,t),this.bindMouseListeners()},onGutterTouchStart(e,t){this.onResizeStart(e,t),e.preventDefault()},onGutterTouchMove(e){this.onResize(e),e.preventDefault()},onGutterTouchEnd(e){this.onResizeEnd(e),e.preventDefault()},bindMouseListeners(){this.mouseMoveListener||(this.mouseMoveListener=e=>this.onResize(e),document.addEventListener("mousemove",this.mouseMoveListener)),this.mouseUpListener||(this.mouseUpListener=e=>{this.onResizeEnd(e),this.unbindMouseListeners()},document.addEventListener("mouseup",this.mouseUpListener))},validateResize(t,n){let s=e.ObjectUtils.getVNodeProp(this.panels[0],"minSize");if(this.panels[0].props&&s&&s>t)return!1;let i=e.ObjectUtils.getVNodeProp(this.panels[1],"minSize");return!(this.panels[1].props&&i&&i>n)},unbindMouseListeners(){this.mouseMoveListener&&(document.removeEventListener("mousemove",this.mouseMoveListener),this.mouseMoveListener=null),this.mouseUpListener&&(document.removeEventListener("mouseup",this.mouseUpListener),this.mouseUpListener=null)},clear(){this.dragging=!1,this.size=null,this.startPos=null,this.prevPanelElement=null,this.nextPanelElement=null,this.prevPanelSize=null,this.nextPanelSize=null,this.gutterElement=null,this.prevPanelIndex=null},isStateful(){return null!=this.stateKey},getStorage(){switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}},saveState(){this.getStorage().setItem(this.stateKey,JSON.stringify(this.panelSizes))},restoreState(){const t=this.getStorage().getItem(this.stateKey);if(t){return this.panelSizes=JSON.parse(t),[...this.$el.children].filter((t=>e.DomHandler.hasClass(t,"p-splitter-panel"))).forEach(((e,t)=>{e.style.flexBasis="calc("+this.panelSizes[t]+"% - "+(this.panels.length-1)*this.gutterSize+"px)"})),!0}return!1}},computed:{containerClass(){return["p-splitter p-component","p-splitter-"+this.layout]},panels(){const e=[];return this.$slots.default().forEach((t=>{this.isSplitterPanel(t)?e.push(t):t.children instanceof Array&&t.children.forEach((t=>{this.isSplitterPanel(t)&&e.push(t)}))})),e},gutterStyle(){return this.horizontal?{width:this.gutterSize+"px"}:{height:this.gutterSize+"px"}},horizontal(){return"horizontal"===this.layout}}};const s=["onMousedown","onTouchstart","onTouchmove","onTouchend"],i=[t.createElementVNode("div",{class:"p-splitter-gutter-handle"},null,-1)];!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var s=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===n&&s.firstChild?s.insertBefore(i,s.firstChild):s.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}("\n.p-splitter {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n.p-splitter-vertical {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.p-splitter-panel {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.p-splitter-panel-nested {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.p-splitter-panel .p-splitter {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n border: 0 none;\n}\n.p-splitter-gutter {\n -webkit-box-flex: 0;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n cursor: col-resize;\n}\n.p-splitter-horizontal.p-splitter-resizing {\n cursor: col-resize;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.p-splitter-horizontal > .p-splitter-gutter > .p-splitter-gutter-handle {\n height: 24px;\n width: 100%;\n}\n.p-splitter-horizontal > .p-splitter-gutter {\n cursor: col-resize;\n}\n.p-splitter-vertical.p-splitter-resizing {\n cursor: row-resize;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.p-splitter-vertical > .p-splitter-gutter {\n cursor: row-resize;\n}\n.p-splitter-vertical > .p-splitter-gutter > .p-splitter-gutter-handle {\n width: 24px;\n height: 100%;\n}\n"),n.render=function(e,n,l,r,o,a){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(a.containerClass)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.panels,((e,n)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:n},[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e))),n!==a.panels.length-1?(t.openBlock(),t.createElementBlock("div",{key:0,class:"p-splitter-gutter",style:t.normalizeStyle(a.gutterStyle),onMousedown:e=>a.onGutterMouseDown(e,n),onTouchstart:e=>a.onGutterTouchStart(e,n),onTouchmove:e=>a.onGutterTouchMove(e,n),onTouchend:e=>a.onGutterTouchEnd(e,n)},i,44,s)):t.createCommentVNode("",!0)],64)))),128))],2)},module.exports=n;
1
+ "use strict";var e=require("primevue/utils"),t=require("vue"),n={name:"Splitter",emits:["resizeend"],props:{layout:{type:String,default:"horizontal"},gutterSize:{type:Number,default:4},stateKey:{type:String,default:null},stateStorage:{type:String,default:"session"}},dragging:!1,mouseMoveListener:null,mouseUpListener:null,touchMoveListener:null,touchEndListener:null,size:null,gutterElement:null,startPos:null,prevPanelElement:null,nextPanelElement:null,nextPanelSize:null,prevPanelSize:null,panelSizes:null,prevPanelIndex:null,mounted(){if(this.panels&&this.panels.length){let t=!1;if(this.isStateful()&&(t=this.restoreState()),!t){let t=[...this.$el.children].filter((t=>e.DomHandler.hasClass(t,"p-splitter-panel"))),n=[];this.panels.map(((e,s)=>{let i=(e.props&&e.props.size?e.props.size:null)||100/this.panels.length;n[s]=i,t[s].style.flexBasis="calc("+i+"% - "+(this.panels.length-1)*this.gutterSize+"px)"})),this.panelSizes=n}}},beforeUnmount(){this.clear(),this.unbindMouseListeners()},methods:{isSplitterPanel:e=>"SplitterPanel"===e.type.name,onResizeStart(t,n){this.gutterElement=t.currentTarget,this.size=this.horizontal?e.DomHandler.getWidth(this.$el):e.DomHandler.getHeight(this.$el),this.dragging=!0,this.startPos="horizontal"===this.layout?t.pageX||t.changedTouches[0].pageX:t.pageY||t.changedTouches[0].pageY,this.prevPanelElement=this.gutterElement.previousElementSibling,this.nextPanelElement=this.gutterElement.nextElementSibling,this.prevPanelSize=100*(this.horizontal?e.DomHandler.getOuterWidth(this.prevPanelElement,!0):e.DomHandler.getOuterHeight(this.prevPanelElement,!0))/this.size,this.nextPanelSize=100*(this.horizontal?e.DomHandler.getOuterWidth(this.nextPanelElement,!0):e.DomHandler.getOuterHeight(this.nextPanelElement,!0))/this.size,this.prevPanelIndex=n,e.DomHandler.addClass(this.gutterElement,"p-splitter-gutter-resizing"),e.DomHandler.addClass(this.$el,"p-splitter-resizing")},onResize(e){let t;t=this.horizontal?100*e.pageX/this.size-100*this.startPos/this.size:100*e.pageY/this.size-100*this.startPos/this.size;let n=this.prevPanelSize+t,s=this.nextPanelSize-t;this.validateResize(n,s)&&(this.prevPanelElement.style.flexBasis="calc("+n+"% - "+(this.panels.length-1)*this.gutterSize+"px)",this.nextPanelElement.style.flexBasis="calc("+s+"% - "+(this.panels.length-1)*this.gutterSize+"px)",this.panelSizes[this.prevPanelIndex]=n,this.panelSizes[this.prevPanelIndex+1]=s)},onResizeEnd(t){this.isStateful()&&this.saveState(),this.$emit("resizeend",{originalEvent:t,sizes:this.panelSizes}),e.DomHandler.removeClass(this.gutterElement,"p-splitter-gutter-resizing"),e.DomHandler.removeClass(this.$el,"p-splitter-resizing"),this.clear()},onGutterMouseDown(e,t){this.onResizeStart(e,t),this.bindMouseListeners()},onGutterTouchStart(e,t){this.onResizeStart(e,t),this.bindTouchListeners(),e.preventDefault()},onGutterTouchMove(e){this.onResize(e),e.preventDefault()},onGutterTouchEnd(e){this.onResizeEnd(e),this.unbindTouchListeners(),e.preventDefault()},bindMouseListeners(){this.mouseMoveListener||(this.mouseMoveListener=e=>this.onResize(e),document.addEventListener("mousemove",this.mouseMoveListener)),this.mouseUpListener||(this.mouseUpListener=e=>{this.onResizeEnd(e),this.unbindMouseListeners()},document.addEventListener("mouseup",this.mouseUpListener))},bindTouchListeners(){this.touchMoveListener||(this.touchMoveListener=e=>this.onResize(e.changedTouches[0]),document.addEventListener("touchmove",this.touchMoveListener)),this.touchEndListener||(this.touchEndListener=e=>{this.resizeEnd(e),this.unbindTouchListeners()},document.addEventListener("touchend",this.touchEndListener))},validateResize(t,n){let s=e.ObjectUtils.getVNodeProp(this.panels[0],"minSize");if(this.panels[0].props&&s&&s>t)return!1;let i=e.ObjectUtils.getVNodeProp(this.panels[1],"minSize");return!(this.panels[1].props&&i&&i>n)},unbindMouseListeners(){this.mouseMoveListener&&(document.removeEventListener("mousemove",this.mouseMoveListener),this.mouseMoveListener=null),this.mouseUpListener&&(document.removeEventListener("mouseup",this.mouseUpListener),this.mouseUpListener=null)},unbindTouchListeners(){this.touchMoveListener&&(document.removeEventListener("touchmove",this.touchMoveListener),this.touchMoveListener=null),this.touchEndListener&&(document.removeEventListener("touchend",this.touchEndListener),this.touchEndListener=null)},clear(){this.dragging=!1,this.size=null,this.startPos=null,this.prevPanelElement=null,this.nextPanelElement=null,this.prevPanelSize=null,this.nextPanelSize=null,this.gutterElement=null,this.prevPanelIndex=null},isStateful(){return null!=this.stateKey},getStorage(){switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}},saveState(){this.getStorage().setItem(this.stateKey,JSON.stringify(this.panelSizes))},restoreState(){const t=this.getStorage().getItem(this.stateKey);if(t){return this.panelSizes=JSON.parse(t),[...this.$el.children].filter((t=>e.DomHandler.hasClass(t,"p-splitter-panel"))).forEach(((e,t)=>{e.style.flexBasis="calc("+this.panelSizes[t]+"% - "+(this.panels.length-1)*this.gutterSize+"px)"})),!0}return!1}},computed:{containerClass(){return["p-splitter p-component","p-splitter-"+this.layout]},panels(){const e=[];return this.$slots.default().forEach((t=>{this.isSplitterPanel(t)?e.push(t):t.children instanceof Array&&t.children.forEach((t=>{this.isSplitterPanel(t)&&e.push(t)}))})),e},gutterStyle(){return this.horizontal?{width:this.gutterSize+"px"}:{height:this.gutterSize+"px"}},horizontal(){return"horizontal"===this.layout}}};const s=["onMousedown","onTouchstart","onTouchmove","onTouchend"],i=[t.createElementVNode("div",{class:"p-splitter-gutter-handle"},null,-1)];!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var s=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===n&&s.firstChild?s.insertBefore(i,s.firstChild):s.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}("\n.p-splitter {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n.p-splitter-vertical {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.p-splitter-panel {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.p-splitter-panel-nested {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.p-splitter-panel .p-splitter {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n border: 0 none;\n}\n.p-splitter-gutter {\n -webkit-box-flex: 0;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n cursor: col-resize;\n}\n.p-splitter-horizontal.p-splitter-resizing {\n cursor: col-resize;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.p-splitter-horizontal > .p-splitter-gutter > .p-splitter-gutter-handle {\n height: 24px;\n width: 100%;\n}\n.p-splitter-horizontal > .p-splitter-gutter {\n cursor: col-resize;\n}\n.p-splitter-vertical.p-splitter-resizing {\n cursor: row-resize;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.p-splitter-vertical > .p-splitter-gutter {\n cursor: row-resize;\n}\n.p-splitter-vertical > .p-splitter-gutter > .p-splitter-gutter-handle {\n width: 24px;\n height: 100%;\n}\n"),n.render=function(e,n,l,r,o,a){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(a.containerClass)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.panels,((e,n)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:n},[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e))),n!==a.panels.length-1?(t.openBlock(),t.createElementBlock("div",{key:0,class:"p-splitter-gutter",style:t.normalizeStyle(a.gutterStyle),onMousedown:e=>a.onGutterMouseDown(e,n),onTouchstart:e=>a.onGutterTouchStart(e,n),onTouchmove:e=>a.onGutterTouchMove(e,n),onTouchend:e=>a.onGutterTouchEnd(e,n)},i,44,s)):t.createCommentVNode("",!0)],64)))),128))],2)},module.exports=n;
@@ -25,6 +25,8 @@ var script = {
25
25
  dragging: false,
26
26
  mouseMoveListener: null,
27
27
  mouseUpListener: null,
28
+ touchMoveListener: null,
29
+ touchEndListener: null,
28
30
  size: null,
29
31
  gutterElement: null,
30
32
  startPos: null,
@@ -68,7 +70,7 @@ var script = {
68
70
  this.gutterElement = event.currentTarget;
69
71
  this.size = this.horizontal ? DomHandler.getWidth(this.$el) : DomHandler.getHeight(this.$el);
70
72
  this.dragging = true;
71
- this.startPos = this.layout === 'horizontal' ? event.pageX : event.pageY;
73
+ this.startPos = this.layout === 'horizontal' ? (event.pageX || event.changedTouches[0].pageX) : (event.pageY || event.changedTouches[0].pageY);
72
74
  this.prevPanelElement = this.gutterElement.previousElementSibling;
73
75
  this.nextPanelElement = this.gutterElement.nextElementSibling;
74
76
  this.prevPanelSize = 100 * (this.horizontal ? DomHandler.getOuterWidth(this.prevPanelElement, true): DomHandler.getOuterHeight(this.prevPanelElement, true)) / this.size;
@@ -110,6 +112,7 @@ var script = {
110
112
  },
111
113
  onGutterTouchStart(event, index) {
112
114
  this.onResizeStart(event, index);
115
+ this.bindTouchListeners();
113
116
  event.preventDefault();
114
117
  },
115
118
  onGutterTouchMove(event) {
@@ -118,6 +121,7 @@ var script = {
118
121
  },
119
122
  onGutterTouchEnd(event) {
120
123
  this.onResizeEnd(event);
124
+ this.unbindTouchListeners();
121
125
  event.preventDefault();
122
126
  },
123
127
  bindMouseListeners() {
@@ -134,6 +138,20 @@ var script = {
134
138
  document.addEventListener('mouseup', this.mouseUpListener);
135
139
  }
136
140
  },
141
+ bindTouchListeners() {
142
+ if (!this.touchMoveListener) {
143
+ this.touchMoveListener = event => this.onResize(event.changedTouches[0]);
144
+ document.addEventListener('touchmove', this.touchMoveListener);
145
+ }
146
+
147
+ if (!this.touchEndListener) {
148
+ this.touchEndListener = event => {
149
+ this.resizeEnd(event);
150
+ this.unbindTouchListeners();
151
+ };
152
+ document.addEventListener('touchend', this.touchEndListener);
153
+ }
154
+ },
137
155
  validateResize(newPrevPanelSize, newNextPanelSize) {
138
156
  let prevPanelMinSize = ObjectUtils.getVNodeProp(this.panels[0], 'minSize');
139
157
  if (this.panels[0].props && prevPanelMinSize && prevPanelMinSize > newPrevPanelSize) {
@@ -158,6 +176,17 @@ var script = {
158
176
  this.mouseUpListener = null;
159
177
  }
160
178
  },
179
+ unbindTouchListeners() {
180
+ if (this.touchMoveListener) {
181
+ document.removeEventListener('touchmove', this.touchMoveListener);
182
+ this.touchMoveListener = null;
183
+ }
184
+
185
+ if (this.touchEndListener) {
186
+ document.removeEventListener('touchend', this.touchEndListener);
187
+ this.touchEndListener = null;
188
+ }
189
+ },
161
190
  clear() {
162
191
  this.dragging = false;
163
192
  this.size = null;
@@ -1 +1 @@
1
- import{DomHandler as e,ObjectUtils as t}from"primevue/utils";import{openBlock as s,createElementBlock as n,normalizeClass as i,Fragment as l,renderList as r,createBlock as o,resolveDynamicComponent as a,normalizeStyle as p,createCommentVNode as h,createElementVNode as u}from"vue";var d={name:"Splitter",emits:["resizeend"],props:{layout:{type:String,default:"horizontal"},gutterSize:{type:Number,default:4},stateKey:{type:String,default:null},stateStorage:{type:String,default:"session"}},dragging:!1,mouseMoveListener:null,mouseUpListener:null,size:null,gutterElement:null,startPos:null,prevPanelElement:null,nextPanelElement:null,nextPanelSize:null,prevPanelSize:null,panelSizes:null,prevPanelIndex:null,mounted(){if(this.panels&&this.panels.length){let t=!1;if(this.isStateful()&&(t=this.restoreState()),!t){let t=[...this.$el.children].filter((t=>e.hasClass(t,"p-splitter-panel"))),s=[];this.panels.map(((e,n)=>{let i=(e.props&&e.props.size?e.props.size:null)||100/this.panels.length;s[n]=i,t[n].style.flexBasis="calc("+i+"% - "+(this.panels.length-1)*this.gutterSize+"px)"})),this.panelSizes=s}}},beforeUnmount(){this.clear(),this.unbindMouseListeners()},methods:{isSplitterPanel:e=>"SplitterPanel"===e.type.name,onResizeStart(t,s){this.gutterElement=t.currentTarget,this.size=this.horizontal?e.getWidth(this.$el):e.getHeight(this.$el),this.dragging=!0,this.startPos="horizontal"===this.layout?t.pageX:t.pageY,this.prevPanelElement=this.gutterElement.previousElementSibling,this.nextPanelElement=this.gutterElement.nextElementSibling,this.prevPanelSize=100*(this.horizontal?e.getOuterWidth(this.prevPanelElement,!0):e.getOuterHeight(this.prevPanelElement,!0))/this.size,this.nextPanelSize=100*(this.horizontal?e.getOuterWidth(this.nextPanelElement,!0):e.getOuterHeight(this.nextPanelElement,!0))/this.size,this.prevPanelIndex=s,e.addClass(this.gutterElement,"p-splitter-gutter-resizing"),e.addClass(this.$el,"p-splitter-resizing")},onResize(e){let t;t=this.horizontal?100*e.pageX/this.size-100*this.startPos/this.size:100*e.pageY/this.size-100*this.startPos/this.size;let s=this.prevPanelSize+t,n=this.nextPanelSize-t;this.validateResize(s,n)&&(this.prevPanelElement.style.flexBasis="calc("+s+"% - "+(this.panels.length-1)*this.gutterSize+"px)",this.nextPanelElement.style.flexBasis="calc("+n+"% - "+(this.panels.length-1)*this.gutterSize+"px)",this.panelSizes[this.prevPanelIndex]=s,this.panelSizes[this.prevPanelIndex+1]=n)},onResizeEnd(t){this.isStateful()&&this.saveState(),this.$emit("resizeend",{originalEvent:t,sizes:this.panelSizes}),e.removeClass(this.gutterElement,"p-splitter-gutter-resizing"),e.removeClass(this.$el,"p-splitter-resizing"),this.clear()},onGutterMouseDown(e,t){this.onResizeStart(e,t),this.bindMouseListeners()},onGutterTouchStart(e,t){this.onResizeStart(e,t),e.preventDefault()},onGutterTouchMove(e){this.onResize(e),e.preventDefault()},onGutterTouchEnd(e){this.onResizeEnd(e),e.preventDefault()},bindMouseListeners(){this.mouseMoveListener||(this.mouseMoveListener=e=>this.onResize(e),document.addEventListener("mousemove",this.mouseMoveListener)),this.mouseUpListener||(this.mouseUpListener=e=>{this.onResizeEnd(e),this.unbindMouseListeners()},document.addEventListener("mouseup",this.mouseUpListener))},validateResize(e,s){let n=t.getVNodeProp(this.panels[0],"minSize");if(this.panels[0].props&&n&&n>e)return!1;let i=t.getVNodeProp(this.panels[1],"minSize");return!(this.panels[1].props&&i&&i>s)},unbindMouseListeners(){this.mouseMoveListener&&(document.removeEventListener("mousemove",this.mouseMoveListener),this.mouseMoveListener=null),this.mouseUpListener&&(document.removeEventListener("mouseup",this.mouseUpListener),this.mouseUpListener=null)},clear(){this.dragging=!1,this.size=null,this.startPos=null,this.prevPanelElement=null,this.nextPanelElement=null,this.prevPanelSize=null,this.nextPanelSize=null,this.gutterElement=null,this.prevPanelIndex=null},isStateful(){return null!=this.stateKey},getStorage(){switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}},saveState(){this.getStorage().setItem(this.stateKey,JSON.stringify(this.panelSizes))},restoreState(){const t=this.getStorage().getItem(this.stateKey);if(t){return this.panelSizes=JSON.parse(t),[...this.$el.children].filter((t=>e.hasClass(t,"p-splitter-panel"))).forEach(((e,t)=>{e.style.flexBasis="calc("+this.panelSizes[t]+"% - "+(this.panels.length-1)*this.gutterSize+"px)"})),!0}return!1}},computed:{containerClass(){return["p-splitter p-component","p-splitter-"+this.layout]},panels(){const e=[];return this.$slots.default().forEach((t=>{this.isSplitterPanel(t)?e.push(t):t.children instanceof Array&&t.children.forEach((t=>{this.isSplitterPanel(t)&&e.push(t)}))})),e},gutterStyle(){return this.horizontal?{width:this.gutterSize+"px"}:{height:this.gutterSize+"px"}},horizontal(){return"horizontal"===this.layout}}};const c=["onMousedown","onTouchstart","onTouchmove","onTouchend"],m=[u("div",{class:"p-splitter-gutter-handle"},null,-1)];!function(e,t){void 0===t&&(t={});var s=t.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===s&&n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}("\n.p-splitter {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n.p-splitter-vertical {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.p-splitter-panel {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.p-splitter-panel-nested {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.p-splitter-panel .p-splitter {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n border: 0 none;\n}\n.p-splitter-gutter {\n -webkit-box-flex: 0;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n cursor: col-resize;\n}\n.p-splitter-horizontal.p-splitter-resizing {\n cursor: col-resize;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.p-splitter-horizontal > .p-splitter-gutter > .p-splitter-gutter-handle {\n height: 24px;\n width: 100%;\n}\n.p-splitter-horizontal > .p-splitter-gutter {\n cursor: col-resize;\n}\n.p-splitter-vertical.p-splitter-resizing {\n cursor: row-resize;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.p-splitter-vertical > .p-splitter-gutter {\n cursor: row-resize;\n}\n.p-splitter-vertical > .p-splitter-gutter > .p-splitter-gutter-handle {\n width: 24px;\n height: 100%;\n}\n"),d.render=function(e,t,u,d,g,z){return s(),n("div",{class:i(z.containerClass)},[(s(!0),n(l,null,r(z.panels,((e,t)=>(s(),n(l,{key:t},[(s(),o(a(e))),t!==z.panels.length-1?(s(),n("div",{key:0,class:"p-splitter-gutter",style:p(z.gutterStyle),onMousedown:e=>z.onGutterMouseDown(e,t),onTouchstart:e=>z.onGutterTouchStart(e,t),onTouchmove:e=>z.onGutterTouchMove(e,t),onTouchend:e=>z.onGutterTouchEnd(e,t)},m,44,c)):h("",!0)],64)))),128))],2)};export{d as default};
1
+ import{DomHandler as e,ObjectUtils as t}from"primevue/utils";import{openBlock as s,createElementBlock as n,normalizeClass as i,Fragment as l,renderList as r,createBlock as o,resolveDynamicComponent as h,normalizeStyle as a,createCommentVNode as u,createElementVNode as p}from"vue";var c={name:"Splitter",emits:["resizeend"],props:{layout:{type:String,default:"horizontal"},gutterSize:{type:Number,default:4},stateKey:{type:String,default:null},stateStorage:{type:String,default:"session"}},dragging:!1,mouseMoveListener:null,mouseUpListener:null,touchMoveListener:null,touchEndListener:null,size:null,gutterElement:null,startPos:null,prevPanelElement:null,nextPanelElement:null,nextPanelSize:null,prevPanelSize:null,panelSizes:null,prevPanelIndex:null,mounted(){if(this.panels&&this.panels.length){let t=!1;if(this.isStateful()&&(t=this.restoreState()),!t){let t=[...this.$el.children].filter((t=>e.hasClass(t,"p-splitter-panel"))),s=[];this.panels.map(((e,n)=>{let i=(e.props&&e.props.size?e.props.size:null)||100/this.panels.length;s[n]=i,t[n].style.flexBasis="calc("+i+"% - "+(this.panels.length-1)*this.gutterSize+"px)"})),this.panelSizes=s}}},beforeUnmount(){this.clear(),this.unbindMouseListeners()},methods:{isSplitterPanel:e=>"SplitterPanel"===e.type.name,onResizeStart(t,s){this.gutterElement=t.currentTarget,this.size=this.horizontal?e.getWidth(this.$el):e.getHeight(this.$el),this.dragging=!0,this.startPos="horizontal"===this.layout?t.pageX||t.changedTouches[0].pageX:t.pageY||t.changedTouches[0].pageY,this.prevPanelElement=this.gutterElement.previousElementSibling,this.nextPanelElement=this.gutterElement.nextElementSibling,this.prevPanelSize=100*(this.horizontal?e.getOuterWidth(this.prevPanelElement,!0):e.getOuterHeight(this.prevPanelElement,!0))/this.size,this.nextPanelSize=100*(this.horizontal?e.getOuterWidth(this.nextPanelElement,!0):e.getOuterHeight(this.nextPanelElement,!0))/this.size,this.prevPanelIndex=s,e.addClass(this.gutterElement,"p-splitter-gutter-resizing"),e.addClass(this.$el,"p-splitter-resizing")},onResize(e){let t;t=this.horizontal?100*e.pageX/this.size-100*this.startPos/this.size:100*e.pageY/this.size-100*this.startPos/this.size;let s=this.prevPanelSize+t,n=this.nextPanelSize-t;this.validateResize(s,n)&&(this.prevPanelElement.style.flexBasis="calc("+s+"% - "+(this.panels.length-1)*this.gutterSize+"px)",this.nextPanelElement.style.flexBasis="calc("+n+"% - "+(this.panels.length-1)*this.gutterSize+"px)",this.panelSizes[this.prevPanelIndex]=s,this.panelSizes[this.prevPanelIndex+1]=n)},onResizeEnd(t){this.isStateful()&&this.saveState(),this.$emit("resizeend",{originalEvent:t,sizes:this.panelSizes}),e.removeClass(this.gutterElement,"p-splitter-gutter-resizing"),e.removeClass(this.$el,"p-splitter-resizing"),this.clear()},onGutterMouseDown(e,t){this.onResizeStart(e,t),this.bindMouseListeners()},onGutterTouchStart(e,t){this.onResizeStart(e,t),this.bindTouchListeners(),e.preventDefault()},onGutterTouchMove(e){this.onResize(e),e.preventDefault()},onGutterTouchEnd(e){this.onResizeEnd(e),this.unbindTouchListeners(),e.preventDefault()},bindMouseListeners(){this.mouseMoveListener||(this.mouseMoveListener=e=>this.onResize(e),document.addEventListener("mousemove",this.mouseMoveListener)),this.mouseUpListener||(this.mouseUpListener=e=>{this.onResizeEnd(e),this.unbindMouseListeners()},document.addEventListener("mouseup",this.mouseUpListener))},bindTouchListeners(){this.touchMoveListener||(this.touchMoveListener=e=>this.onResize(e.changedTouches[0]),document.addEventListener("touchmove",this.touchMoveListener)),this.touchEndListener||(this.touchEndListener=e=>{this.resizeEnd(e),this.unbindTouchListeners()},document.addEventListener("touchend",this.touchEndListener))},validateResize(e,s){let n=t.getVNodeProp(this.panels[0],"minSize");if(this.panels[0].props&&n&&n>e)return!1;let i=t.getVNodeProp(this.panels[1],"minSize");return!(this.panels[1].props&&i&&i>s)},unbindMouseListeners(){this.mouseMoveListener&&(document.removeEventListener("mousemove",this.mouseMoveListener),this.mouseMoveListener=null),this.mouseUpListener&&(document.removeEventListener("mouseup",this.mouseUpListener),this.mouseUpListener=null)},unbindTouchListeners(){this.touchMoveListener&&(document.removeEventListener("touchmove",this.touchMoveListener),this.touchMoveListener=null),this.touchEndListener&&(document.removeEventListener("touchend",this.touchEndListener),this.touchEndListener=null)},clear(){this.dragging=!1,this.size=null,this.startPos=null,this.prevPanelElement=null,this.nextPanelElement=null,this.prevPanelSize=null,this.nextPanelSize=null,this.gutterElement=null,this.prevPanelIndex=null},isStateful(){return null!=this.stateKey},getStorage(){switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}},saveState(){this.getStorage().setItem(this.stateKey,JSON.stringify(this.panelSizes))},restoreState(){const t=this.getStorage().getItem(this.stateKey);if(t){return this.panelSizes=JSON.parse(t),[...this.$el.children].filter((t=>e.hasClass(t,"p-splitter-panel"))).forEach(((e,t)=>{e.style.flexBasis="calc("+this.panelSizes[t]+"% - "+(this.panels.length-1)*this.gutterSize+"px)"})),!0}return!1}},computed:{containerClass(){return["p-splitter p-component","p-splitter-"+this.layout]},panels(){const e=[];return this.$slots.default().forEach((t=>{this.isSplitterPanel(t)?e.push(t):t.children instanceof Array&&t.children.forEach((t=>{this.isSplitterPanel(t)&&e.push(t)}))})),e},gutterStyle(){return this.horizontal?{width:this.gutterSize+"px"}:{height:this.gutterSize+"px"}},horizontal(){return"horizontal"===this.layout}}};const d=["onMousedown","onTouchstart","onTouchmove","onTouchend"],m=[p("div",{class:"p-splitter-gutter-handle"},null,-1)];!function(e,t){void 0===t&&(t={});var s=t.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===s&&n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}("\n.p-splitter {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n.p-splitter-vertical {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.p-splitter-panel {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.p-splitter-panel-nested {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.p-splitter-panel .p-splitter {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n border: 0 none;\n}\n.p-splitter-gutter {\n -webkit-box-flex: 0;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n cursor: col-resize;\n}\n.p-splitter-horizontal.p-splitter-resizing {\n cursor: col-resize;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.p-splitter-horizontal > .p-splitter-gutter > .p-splitter-gutter-handle {\n height: 24px;\n width: 100%;\n}\n.p-splitter-horizontal > .p-splitter-gutter {\n cursor: col-resize;\n}\n.p-splitter-vertical.p-splitter-resizing {\n cursor: row-resize;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.p-splitter-vertical > .p-splitter-gutter {\n cursor: row-resize;\n}\n.p-splitter-vertical > .p-splitter-gutter > .p-splitter-gutter-handle {\n width: 24px;\n height: 100%;\n}\n"),c.render=function(e,t,p,c,g,v){return s(),n("div",{class:i(v.containerClass)},[(s(!0),n(l,null,r(v.panels,((e,t)=>(s(),n(l,{key:t},[(s(),o(h(e))),t!==v.panels.length-1?(s(),n("div",{key:0,class:"p-splitter-gutter",style:a(v.gutterStyle),onMousedown:e=>v.onGutterMouseDown(e,t),onTouchstart:e=>v.onGutterTouchStart(e,t),onTouchmove:e=>v.onGutterTouchMove(e,t),onTouchend:e=>v.onGutterTouchEnd(e,t)},m,44,d)):u("",!0)],64)))),128))],2)};export{c as default};
@@ -26,6 +26,8 @@ this.primevue.splitter = (function (utils, vue) {
26
26
  dragging: false,
27
27
  mouseMoveListener: null,
28
28
  mouseUpListener: null,
29
+ touchMoveListener: null,
30
+ touchEndListener: null,
29
31
  size: null,
30
32
  gutterElement: null,
31
33
  startPos: null,
@@ -69,7 +71,7 @@ this.primevue.splitter = (function (utils, vue) {
69
71
  this.gutterElement = event.currentTarget;
70
72
  this.size = this.horizontal ? utils.DomHandler.getWidth(this.$el) : utils.DomHandler.getHeight(this.$el);
71
73
  this.dragging = true;
72
- this.startPos = this.layout === 'horizontal' ? event.pageX : event.pageY;
74
+ this.startPos = this.layout === 'horizontal' ? (event.pageX || event.changedTouches[0].pageX) : (event.pageY || event.changedTouches[0].pageY);
73
75
  this.prevPanelElement = this.gutterElement.previousElementSibling;
74
76
  this.nextPanelElement = this.gutterElement.nextElementSibling;
75
77
  this.prevPanelSize = 100 * (this.horizontal ? utils.DomHandler.getOuterWidth(this.prevPanelElement, true): utils.DomHandler.getOuterHeight(this.prevPanelElement, true)) / this.size;
@@ -111,6 +113,7 @@ this.primevue.splitter = (function (utils, vue) {
111
113
  },
112
114
  onGutterTouchStart(event, index) {
113
115
  this.onResizeStart(event, index);
116
+ this.bindTouchListeners();
114
117
  event.preventDefault();
115
118
  },
116
119
  onGutterTouchMove(event) {
@@ -119,6 +122,7 @@ this.primevue.splitter = (function (utils, vue) {
119
122
  },
120
123
  onGutterTouchEnd(event) {
121
124
  this.onResizeEnd(event);
125
+ this.unbindTouchListeners();
122
126
  event.preventDefault();
123
127
  },
124
128
  bindMouseListeners() {
@@ -135,6 +139,20 @@ this.primevue.splitter = (function (utils, vue) {
135
139
  document.addEventListener('mouseup', this.mouseUpListener);
136
140
  }
137
141
  },
142
+ bindTouchListeners() {
143
+ if (!this.touchMoveListener) {
144
+ this.touchMoveListener = event => this.onResize(event.changedTouches[0]);
145
+ document.addEventListener('touchmove', this.touchMoveListener);
146
+ }
147
+
148
+ if (!this.touchEndListener) {
149
+ this.touchEndListener = event => {
150
+ this.resizeEnd(event);
151
+ this.unbindTouchListeners();
152
+ };
153
+ document.addEventListener('touchend', this.touchEndListener);
154
+ }
155
+ },
138
156
  validateResize(newPrevPanelSize, newNextPanelSize) {
139
157
  let prevPanelMinSize = utils.ObjectUtils.getVNodeProp(this.panels[0], 'minSize');
140
158
  if (this.panels[0].props && prevPanelMinSize && prevPanelMinSize > newPrevPanelSize) {
@@ -159,6 +177,17 @@ this.primevue.splitter = (function (utils, vue) {
159
177
  this.mouseUpListener = null;
160
178
  }
161
179
  },
180
+ unbindTouchListeners() {
181
+ if (this.touchMoveListener) {
182
+ document.removeEventListener('touchmove', this.touchMoveListener);
183
+ this.touchMoveListener = null;
184
+ }
185
+
186
+ if (this.touchEndListener) {
187
+ document.removeEventListener('touchend', this.touchEndListener);
188
+ this.touchEndListener = null;
189
+ }
190
+ },
162
191
  clear() {
163
192
  this.dragging = false;
164
193
  this.size = null;