@kizmann/nano-ui 1.1.0 → 1.1.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 (583) hide show
  1. package/dist/nano-ui.css +1 -1
  2. package/dist/nano-ui.js +1 -1
  3. package/dist/nano-ui.js.map +1 -1
  4. package/dist/themes/default.css +1 -0
  5. package/dist/themes/webservy.css +1 -0
  6. package/package.json +6 -2
  7. package/src/alert/index.js +13 -2
  8. package/src/alert/index.scss +1 -1
  9. package/src/alert/src/alert/alert-handler.mjs +143 -0
  10. package/src/alert/src/alert/alert.scss +35 -43
  11. package/src/button/index.scss +2 -2
  12. package/src/button/src/button/button.jsx +12 -0
  13. package/src/button/src/button/button.scss +29 -33
  14. package/src/button/src/button-group/button-group.scss +9 -19
  15. package/src/cascader/index.scss +2 -2
  16. package/src/cascader/src/cascader/cascader.jsx +22 -4
  17. package/src/cascader/src/cascader/cascader.scss +26 -78
  18. package/src/cascader/src/cascader-panel/cascader-panel.scss +2 -16
  19. package/src/chart/index.js +9 -0
  20. package/src/chart/index.scss +3 -0
  21. package/src/chart/src/chart-bar/chart-bar.jsx +344 -0
  22. package/src/chart/src/chart-bar/chart-bar.scss +143 -0
  23. package/src/chart/src/chart-donut/chart-donut.jsx +404 -0
  24. package/src/chart/src/chart-donut/chart-donut.scss +123 -0
  25. package/src/chart/src/chart-item/chart-item.jsx +110 -0
  26. package/src/chart/src/chart-item/chart-item.scss +30 -0
  27. package/src/checkbox/index.scss +2 -2
  28. package/src/checkbox/src/checkbox/checkbox.scss +11 -30
  29. package/src/checkbox/src/checkbox-group/checkbox-group.scss +19 -29
  30. package/src/collapse/index.scss +2 -2
  31. package/src/collapse/src/collapse/collapse.jsx +27 -4
  32. package/src/collapse/src/collapse/collapse.scss +14 -22
  33. package/src/collapse/src/collapse-item/collapse-item.jsx +42 -8
  34. package/src/collapse/src/collapse-item/collapse-item.scss +31 -29
  35. package/src/config/index.scss +3 -3
  36. package/src/config/src/builder/builder.scss +1 -1
  37. package/src/config/src/reference-panel/reference-panel.scss +1 -1
  38. package/src/confirm/index.js +23 -1
  39. package/src/confirm/index.scss +1 -1
  40. package/src/confirm/src/confirm/confirm-handler.mjs +226 -0
  41. package/src/confirm/src/confirm/confirm.jsx +109 -123
  42. package/src/confirm/src/confirm/confirm.scss +57 -49
  43. package/src/datepicker/index.scss +2 -2
  44. package/src/datepicker/src/datepicker/datepicker.jsx +23 -4
  45. package/src/datepicker/src/datepicker/datepicker.scss +20 -51
  46. package/src/datepicker/src/datepicker-panel/datepicker-panel.jsx +4 -2
  47. package/src/datepicker/src/datepicker-panel/datepicker-panel.scss +79 -53
  48. package/src/datetimepicker/index.scss +1 -1
  49. package/src/datetimepicker/src/datetimepicker/datetimepicker.jsx +3 -3
  50. package/src/datetimepicker/src/datetimepicker/datetimepicker.scss +23 -61
  51. package/src/draggable/index.scss +6 -6
  52. package/src/draggable/src/draggrid/draggrid.jsx +4 -4
  53. package/src/draggable/src/draggrid/draggrid.scss +2 -19
  54. package/src/draggable/src/draggrid-item/draggrid-item.scss +12 -34
  55. package/src/draggable/src/draghandler/draghandler.scss +1 -1
  56. package/src/draggable/src/draglist/draglist.jsx +3 -3
  57. package/src/draggable/src/draglist/draglist.scss +3 -20
  58. package/src/draggable/src/draglist-item/draglist-item.scss +15 -36
  59. package/src/draggable/src/dropzone/dropzone.scss +6 -19
  60. package/src/drawer/index.scss +1 -1
  61. package/src/drawer/src/drawer/drawer.jsx +6 -3
  62. package/src/drawer/src/drawer/drawer.scss +27 -31
  63. package/src/durationpicker/index.scss +1 -1
  64. package/src/durationpicker/src/durationpicker/durationpicker.jsx +3 -3
  65. package/src/durationpicker/src/durationpicker/durationpicker.scss +18 -55
  66. package/src/empty/index.scss +1 -1
  67. package/src/empty/src/empty-icon/empty-icon.jsx +1 -1
  68. package/src/empty/src/empty-icon/empty-icon.scss +13 -26
  69. package/src/file/index.scss +1 -1
  70. package/src/file/src/file/file.jsx +9 -0
  71. package/src/file/src/file/file.scss +2 -2
  72. package/src/form/index.js +2 -0
  73. package/src/form/index.scss +5 -4
  74. package/src/form/src/form/form-rules.mjs +182 -0
  75. package/src/form/src/form/form.jsx +108 -4
  76. package/src/form/src/form/form.scss +33 -1
  77. package/src/form/src/form-bag/form-bag.jsx +90 -0
  78. package/src/form/src/form-bag/form-bag.scss +59 -0
  79. package/src/form/src/form-frame/form-frame.jsx +17 -9
  80. package/src/form/src/form-frame/form-frame.scss +25 -38
  81. package/src/form/src/form-group/form-group.jsx +24 -6
  82. package/src/form/src/form-group/form-group.scss +85 -66
  83. package/src/form/src/form-item/form-item.jsx +79 -68
  84. package/src/form/src/form-item/form-item.scss +23 -32
  85. package/src/grid/index.scss +1 -0
  86. package/src/grid/src/grid/grid.scss +146 -0
  87. package/src/index.js +4 -1
  88. package/src/index.scss +45 -39
  89. package/src/info/index.scss +3 -3
  90. package/src/info/src/info/info.scss +7 -26
  91. package/src/info/src/info-column/info-column.scss +2 -16
  92. package/src/info/src/info-field/info-field.scss +1 -1
  93. package/src/input/index.scss +1 -1
  94. package/src/input/src/input/input.jsx +1 -1
  95. package/src/input/src/input/input.scss +15 -40
  96. package/src/input-number/index.scss +1 -1
  97. package/src/input-number/src/input-number/input-number.jsx +39 -23
  98. package/src/input-number/src/input-number/input-number.scss +14 -59
  99. package/src/loader/index.scss +1 -1
  100. package/src/loader/src/loader/loader.scss +16 -29
  101. package/src/map/index.scss +1 -1
  102. package/src/map/src/map/map.scss +1 -2
  103. package/src/modal/index.scss +1 -1
  104. package/src/modal/src/modal/modal.jsx +6 -3
  105. package/src/modal/src/modal/modal.scss +25 -38
  106. package/src/notification/index.js +23 -3
  107. package/src/notification/index.scss +1 -1
  108. package/src/notification/src/notification/notification-element.mjs +74 -0
  109. package/src/notification/src/notification/notification-handler.mjs +75 -0
  110. package/src/notification/src/notification/notification.scss +13 -25
  111. package/src/paginator/index.scss +1 -1
  112. package/src/paginator/src/paginator/paginator.scss +39 -44
  113. package/src/popover/index.js +20 -3
  114. package/src/popover/index.scss +1 -1
  115. package/src/popover/src/popover/popover-element.mjs +578 -0
  116. package/src/popover/src/popover/popover-handler.mjs +116 -0
  117. package/src/popover/src/popover/popover-helper.mjs +75 -0
  118. package/src/popover/src/popover/popover.jsx +78 -550
  119. package/src/popover/src/popover/popover.scss +186 -78
  120. package/src/preview/index.js +45 -5
  121. package/src/preview/index.scss +5 -5
  122. package/src/preview/src/{_tools/preview-handler.js → preview/preview-handler.mjs} +46 -34
  123. package/src/preview/src/{_tools/preview-helper.js → preview/preview-helper.mjs} +24 -40
  124. package/src/preview/src/preview/preview.jsx +62 -25
  125. package/src/preview/src/preview/preview.scss +27 -1
  126. package/src/preview/src/preview-image/preview-image.scss +1 -3
  127. package/src/preview/src/preview-modal/preview-modal.jsx +18 -48
  128. package/src/preview/src/preview-modal/preview-modal.scss +24 -11
  129. package/src/preview/src/preview-plain/preview-plain.jsx +32 -20
  130. package/src/preview/src/preview-plain/preview-plain.scss +5 -3
  131. package/src/preview/src/preview-video/preview-video.jsx +3 -4
  132. package/src/preview/src/preview-video/preview-video.scss +1 -2
  133. package/src/radio/index.scss +2 -2
  134. package/src/radio/src/radio/radio.scss +13 -32
  135. package/src/radio/src/radio-group/radio-group.scss +18 -28
  136. package/src/rating/index.scss +1 -1
  137. package/src/rating/src/rating/rating.scss +15 -33
  138. package/src/resizer/index.scss +1 -1
  139. package/src/resizer/src/resizer/resizer-next.jsx +40 -20
  140. package/src/resizer/src/resizer/resizer.scss +1 -1
  141. package/src/root/helpers.scss +41 -0
  142. package/src/root/image/angle-down-shadow.svg +3 -0
  143. package/src/root/image/angle-down.svg +3 -0
  144. package/src/root/image/angle-left-shadow.svg +3 -0
  145. package/src/root/image/angle-left.svg +3 -0
  146. package/src/root/image/angle-right-shadow.svg +3 -0
  147. package/src/root/image/angle-right.svg +3 -0
  148. package/src/root/image/angle-up-shadow.svg +3 -0
  149. package/src/root/image/angle-up.svg +3 -0
  150. package/src/root/image/empty-ufo.svg +8 -0
  151. package/src/root/image/empty.svg +10 -0
  152. package/src/root/image/star.svg +5 -0
  153. package/src/root/vars.scss +5 -3
  154. package/src/scrollbar/index.js +1 -3
  155. package/src/scrollbar/index.scss +1 -2
  156. package/src/scrollbar/src/scrollbar/scrollbar.jsx +213 -376
  157. package/src/scrollbar/src/scrollbar/scrollbar.scss +9 -11
  158. package/src/select/index.scss +2 -2
  159. package/src/select/src/select/select.jsx +22 -14
  160. package/src/select/src/select/select.scss +49 -104
  161. package/src/select/src/select-option/select-option.scss +1 -1
  162. package/src/slider/index.scss +1 -1
  163. package/src/slider/src/slider/slider.jsx +5 -3
  164. package/src/slider/src/slider/slider.scss +37 -46
  165. package/src/switch/index.scss +1 -1
  166. package/src/switch/src/switch/switch.scss +17 -44
  167. package/src/table/index.scss +4 -4
  168. package/src/table/src/table/table.jsx +5 -2
  169. package/src/table/src/table/table.scss +11 -18
  170. package/src/table/src/table-cell/table-cell.scss +7 -18
  171. package/src/table/src/table-column/table-column.jsx +5 -1
  172. package/src/table/src/table-column/table-column.scss +14 -13
  173. package/src/table/src/table-filter/table-filter.jsx +4 -4
  174. package/src/table/src/table-filter/table-filter.scss +10 -4
  175. package/src/tabs/index.scss +2 -2
  176. package/src/tabs/src/tabs/tabs.scss +20 -29
  177. package/src/tabs/src/tabs-item/tabs-item.jsx +14 -6
  178. package/src/tabs/src/tabs-item/tabs-item.scss +17 -25
  179. package/src/tags/index.scss +2 -2
  180. package/src/tags/src/tags/tags.jsx +1 -0
  181. package/src/tags/src/tags/tags.scss +6 -2
  182. package/src/tags/src/tags-item/tags-item.jsx +7 -7
  183. package/src/tags/src/tags-item/tags-item.scss +10 -31
  184. package/src/textarea/index.scss +1 -1
  185. package/src/textarea/src/textarea/textarea.jsx +2 -0
  186. package/src/textarea/src/textarea/textarea.scss +6 -23
  187. package/src/timepicker/index.scss +2 -2
  188. package/src/timepicker/src/timepicker/timepicker.jsx +6 -3
  189. package/src/timepicker/src/timepicker/timepicker.scss +21 -53
  190. package/src/timepicker/src/timepicker-panel/timepicker-panel.scss +33 -41
  191. package/src/tooltip/index.scss +1 -0
  192. package/src/tooltip/src/tooltip/tooltip.scss +116 -0
  193. package/src/transfer/index.scss +1 -1
  194. package/src/transfer/src/transfer/transfer.jsx +2 -2
  195. package/src/transfer/src/transfer/transfer.scss +33 -53
  196. package/src/virtualscroller/index.scss +1 -1
  197. package/src/virtualscroller/src/virtualscroller/virtualscroller.jsx +28 -34
  198. package/src/virtualscroller/src/virtualscroller/virtualscroller.scss +3 -2
  199. package/themes/default/alert/index.scss +1 -0
  200. package/themes/default/alert/src/alert/alert.scss +29 -0
  201. package/themes/default/button/index.scss +2 -0
  202. package/themes/default/button/src/button/button.scss +87 -0
  203. package/themes/default/button/src/button-group/button-group.scss +1 -0
  204. package/themes/default/cascader/index.scss +2 -0
  205. package/themes/default/cascader/src/cascader/cascader.scss +31 -0
  206. package/themes/default/cascader/src/cascader-panel/cascader-panel.scss +21 -0
  207. package/themes/default/chart/index.scss +2 -0
  208. package/themes/default/chart/src/chart-donut/chart-donut.scss +22 -0
  209. package/themes/default/chart/src/chart-item/chart-item.scss +11 -0
  210. package/themes/default/checkbox/index.scss +2 -0
  211. package/themes/default/checkbox/src/checkbox/checkbox.scss +26 -0
  212. package/themes/default/checkbox/src/checkbox-group/checkbox-group.scss +1 -0
  213. package/themes/default/collapse/index.scss +2 -0
  214. package/themes/default/collapse/src/collapse/collapse.scss +14 -0
  215. package/themes/default/collapse/src/collapse-item/collapse-item.scss +14 -0
  216. package/themes/default/confirm/index.scss +1 -0
  217. package/themes/default/confirm/src/confirm/confirm.scss +35 -0
  218. package/themes/default/datepicker/index.scss +2 -0
  219. package/themes/default/datepicker/src/datepicker/datepicker.scss +44 -0
  220. package/themes/default/datepicker/src/datepicker-panel/datepicker-panel.scss +44 -0
  221. package/themes/default/datetimepicker/index.scss +1 -0
  222. package/themes/default/datetimepicker/src/datetimepicker/datetimepicker.scss +51 -0
  223. package/themes/default/demo/index.scss +1 -0
  224. package/themes/default/demo/src/demo/demo.scss +34 -0
  225. package/themes/default/draggable/index.scss +9 -0
  226. package/themes/default/draggable/src/draggrid/draggrid.scss +5 -0
  227. package/themes/default/draggable/src/draggrid-item/draggrid-item.scss +52 -0
  228. package/themes/default/draggable/src/draghandler/draghandler.scss +15 -0
  229. package/themes/default/draggable/src/draglist/draglist.scss +5 -0
  230. package/themes/default/draggable/src/draglist-item/draglist-item.scss +56 -0
  231. package/themes/default/draggable/src/dropzone/dropzone.scss +5 -0
  232. package/themes/default/drawer/index.scss +1 -0
  233. package/themes/default/drawer/src/drawer/drawer.scss +25 -0
  234. package/themes/default/durationpicker/index.scss +1 -0
  235. package/themes/default/durationpicker/src/durationpicker/durationpicker.scss +39 -0
  236. package/themes/default/empty/index.scss +1 -0
  237. package/themes/default/empty/src/empty-icon/empty-icon.scss +17 -0
  238. package/themes/default/example.scss +29 -0
  239. package/themes/default/file/index.scss +1 -0
  240. package/themes/default/file/src/file/file.scss +1 -0
  241. package/themes/default/form/index.scss +4 -0
  242. package/themes/default/form/src/form/form.scss +17 -0
  243. package/themes/default/form/src/form-frame/form-frame.scss +25 -0
  244. package/themes/default/form/src/form-group/form-group.scss +42 -0
  245. package/themes/default/form/src/form-item/form-item.scss +25 -0
  246. package/themes/default/index.scss +43 -0
  247. package/themes/default/info/index.scss +3 -0
  248. package/themes/default/info/src/info/info.scss +5 -0
  249. package/themes/default/info/src/info-column/info-column.scss +5 -0
  250. package/themes/default/info/src/info-field/info-field.scss +5 -0
  251. package/themes/default/input/index.scss +1 -0
  252. package/themes/default/input/src/input/input.scss +27 -0
  253. package/themes/default/input-number/index.scss +1 -0
  254. package/themes/default/input-number/src/input-number/input-number.scss +30 -0
  255. package/themes/default/loader/index.scss +1 -0
  256. package/themes/default/loader/src/loader/loader.scss +10 -0
  257. package/themes/default/map/index.scss +1 -0
  258. package/themes/default/map/src/map/map.scss +1 -0
  259. package/themes/default/modal/index.scss +1 -0
  260. package/themes/default/modal/src/modal/modal.scss +25 -0
  261. package/themes/default/notification/index.scss +1 -0
  262. package/themes/default/notification/src/notification/notification.scss +11 -0
  263. package/themes/default/paginator/index.scss +1 -0
  264. package/themes/default/paginator/src/paginator/paginator.scss +5 -0
  265. package/themes/default/popover/index.scss +1 -0
  266. package/themes/default/popover/src/popover/popover.scss +131 -0
  267. package/themes/default/preview/index.scss +4 -0
  268. package/themes/default/preview/src/preview-image/preview-image.scss +5 -0
  269. package/themes/default/preview/src/preview-modal/preview-modal.scss +39 -0
  270. package/themes/default/preview/src/preview-plain/preview-plain.scss +9 -0
  271. package/themes/default/preview/src/preview-video/preview-video.scss +5 -0
  272. package/themes/default/radio/index.scss +2 -0
  273. package/themes/default/radio/src/radio/radio.scss +32 -0
  274. package/themes/default/radio/src/radio-group/radio-group.scss +1 -0
  275. package/themes/default/rating/index.scss +1 -0
  276. package/themes/default/rating/src/rating/rating.scss +14 -0
  277. package/themes/default/resizer/index.scss +1 -0
  278. package/themes/default/resizer/src/resizer/resizer.scss +5 -0
  279. package/themes/default/root/helpers.scss +41 -0
  280. package/themes/default/root/image/angle-down-shadow.svg +3 -0
  281. package/themes/default/root/image/angle-down.svg +3 -0
  282. package/themes/default/root/image/angle-left-shadow.svg +3 -0
  283. package/themes/default/root/image/angle-left.svg +3 -0
  284. package/themes/default/root/image/angle-right-shadow.svg +3 -0
  285. package/themes/default/root/image/angle-right.svg +3 -0
  286. package/themes/default/root/image/angle-up-shadow.svg +3 -0
  287. package/themes/default/root/image/angle-up.svg +3 -0
  288. package/themes/default/root/image/empty-ufo.svg +8 -0
  289. package/themes/default/root/image/empty.svg +10 -0
  290. package/themes/default/root/image/star.svg +5 -0
  291. package/themes/default/root/vars/colors-dark-bluish.scss +457 -0
  292. package/themes/default/root/vars/colors-dark.scss +457 -0
  293. package/themes/default/root/vars/colors-light-bluish.scss +479 -0
  294. package/themes/default/root/vars/colors-light.scss +479 -0
  295. package/themes/default/root/vars/sizes-default.scss +101 -0
  296. package/themes/default/scrollbar/index.scss +1 -0
  297. package/themes/default/scrollbar/src/scrollbar/scrollbar.scss +7 -0
  298. package/themes/default/select/index.scss +2 -0
  299. package/themes/default/select/src/select/select.scss +32 -0
  300. package/themes/default/select/src/select-option/select-option.scss +1 -0
  301. package/themes/default/slider/index.scss +1 -0
  302. package/themes/default/slider/src/slider/slider.scss +30 -0
  303. package/themes/default/switch/index.scss +1 -0
  304. package/themes/default/switch/src/switch/switch.scss +19 -0
  305. package/themes/default/table/index.scss +4 -0
  306. package/themes/default/table/src/table/table.scss +14 -0
  307. package/themes/default/table/src/table-cell/table-cell.scss +34 -0
  308. package/themes/{macos → default}/table/src/table-column/table-column.scss +9 -10
  309. package/themes/default/table/src/table-filter/table-filter.scss +1 -0
  310. package/themes/default/tabs/index.scss +2 -0
  311. package/themes/default/tabs/src/tabs/tabs.scss +9 -0
  312. package/themes/default/tabs/src/tabs-item/tabs-item.scss +23 -0
  313. package/themes/default/tags/index.scss +2 -0
  314. package/themes/default/tags/src/tags/tags.scss +1 -0
  315. package/themes/default/tags/src/tags-item/tags-item.scss +17 -0
  316. package/themes/default/textarea/index.scss +1 -0
  317. package/themes/default/textarea/src/textarea/textarea.scss +18 -0
  318. package/themes/default/timepicker/index.scss +2 -0
  319. package/themes/default/timepicker/src/timepicker/timepicker.scss +44 -0
  320. package/themes/default/timepicker/src/timepicker-panel/timepicker-panel.scss +26 -0
  321. package/themes/default/transfer/index.scss +1 -0
  322. package/themes/default/transfer/src/transfer/transfer.scss +20 -0
  323. package/themes/default/virtualscroller/index.scss +1 -0
  324. package/themes/default/virtualscroller/src/virtualscroller/virtualscroller.scss +1 -0
  325. package/themes/webservy/alert/index.scss +1 -0
  326. package/themes/webservy/alert/src/alert/alert.scss +29 -0
  327. package/themes/webservy/button/index.scss +2 -0
  328. package/themes/webservy/button/src/button/button.scss +87 -0
  329. package/themes/webservy/button/src/button-group/button-group.scss +1 -0
  330. package/themes/webservy/cascader/index.scss +2 -0
  331. package/themes/webservy/cascader/src/cascader/cascader.scss +27 -0
  332. package/themes/webservy/cascader/src/cascader-panel/cascader-panel.scss +21 -0
  333. package/themes/webservy/chart/index.scss +2 -0
  334. package/themes/webservy/chart/src/chart-donut/chart-donut.scss +22 -0
  335. package/themes/webservy/chart/src/chart-item/chart-item.scss +11 -0
  336. package/themes/webservy/checkbox/index.scss +2 -0
  337. package/themes/webservy/checkbox/src/checkbox/checkbox.scss +25 -0
  338. package/themes/webservy/checkbox/src/checkbox-group/checkbox-group.scss +1 -0
  339. package/themes/webservy/collapse/index.scss +2 -0
  340. package/themes/webservy/collapse/src/collapse/collapse.scss +14 -0
  341. package/themes/webservy/collapse/src/collapse-item/collapse-item.scss +14 -0
  342. package/themes/webservy/confirm/index.scss +1 -0
  343. package/themes/webservy/confirm/src/confirm/confirm.scss +35 -0
  344. package/themes/webservy/datepicker/index.scss +2 -0
  345. package/themes/webservy/datepicker/src/datepicker/datepicker.scss +40 -0
  346. package/themes/webservy/datepicker/src/datepicker-panel/datepicker-panel.scss +44 -0
  347. package/themes/webservy/datetimepicker/index.scss +1 -0
  348. package/themes/webservy/datetimepicker/src/datetimepicker/datetimepicker.scss +47 -0
  349. package/themes/webservy/demo/index.scss +1 -0
  350. package/themes/webservy/demo/src/demo/demo.scss +34 -0
  351. package/themes/webservy/draggable/index.scss +9 -0
  352. package/themes/webservy/draggable/src/draggrid/draggrid.scss +5 -0
  353. package/themes/webservy/draggable/src/draggrid-item/draggrid-item.scss +51 -0
  354. package/themes/webservy/draggable/src/draghandler/draghandler.scss +15 -0
  355. package/themes/webservy/draggable/src/draglist/draglist.scss +5 -0
  356. package/themes/webservy/draggable/src/draglist-item/draglist-item.scss +55 -0
  357. package/themes/webservy/draggable/src/dropzone/dropzone.scss +5 -0
  358. package/themes/webservy/drawer/index.scss +1 -0
  359. package/themes/webservy/drawer/src/drawer/drawer.scss +23 -0
  360. package/themes/webservy/durationpicker/index.scss +1 -0
  361. package/themes/webservy/durationpicker/src/durationpicker/durationpicker.scss +35 -0
  362. package/themes/webservy/empty/index.scss +1 -0
  363. package/themes/webservy/empty/src/empty-icon/empty-icon.scss +17 -0
  364. package/themes/webservy/example.scss +29 -0
  365. package/themes/webservy/file/index.scss +1 -0
  366. package/themes/webservy/file/src/file/file.scss +1 -0
  367. package/themes/webservy/form/index.scss +4 -0
  368. package/themes/webservy/form/src/form/form.scss +17 -0
  369. package/themes/webservy/form/src/form-frame/form-frame.scss +25 -0
  370. package/themes/webservy/form/src/form-group/form-group.scss +42 -0
  371. package/themes/webservy/form/src/form-item/form-item.scss +25 -0
  372. package/themes/webservy/index.scss +43 -0
  373. package/themes/webservy/info/index.scss +3 -0
  374. package/themes/webservy/info/src/info/info.scss +5 -0
  375. package/themes/webservy/info/src/info-column/info-column.scss +5 -0
  376. package/themes/webservy/info/src/info-field/info-field.scss +5 -0
  377. package/themes/webservy/input/index.scss +1 -0
  378. package/themes/webservy/input/src/input/input.scss +23 -0
  379. package/themes/webservy/input-number/index.scss +1 -0
  380. package/themes/webservy/input-number/src/input-number/input-number.scss +27 -0
  381. package/themes/webservy/loader/index.scss +1 -0
  382. package/themes/webservy/loader/src/loader/loader.scss +10 -0
  383. package/themes/webservy/map/index.scss +1 -0
  384. package/themes/webservy/map/src/map/map.scss +1 -0
  385. package/themes/webservy/modal/index.scss +1 -0
  386. package/themes/webservy/modal/src/modal/modal.scss +23 -0
  387. package/themes/webservy/notification/index.scss +1 -0
  388. package/themes/webservy/notification/src/notification/notification.scss +11 -0
  389. package/themes/webservy/paginator/index.scss +1 -0
  390. package/themes/webservy/paginator/src/paginator/paginator.scss +5 -0
  391. package/themes/webservy/popover/index.scss +1 -0
  392. package/themes/webservy/popover/src/popover/popover.scss +131 -0
  393. package/themes/webservy/preview/index.scss +4 -0
  394. package/themes/webservy/preview/src/preview-image/preview-image.scss +5 -0
  395. package/themes/webservy/preview/src/preview-modal/preview-modal.scss +39 -0
  396. package/themes/webservy/preview/src/preview-plain/preview-plain.scss +9 -0
  397. package/themes/webservy/preview/src/preview-video/preview-video.scss +5 -0
  398. package/themes/webservy/radio/index.scss +2 -0
  399. package/themes/webservy/radio/src/radio/radio.scss +31 -0
  400. package/themes/webservy/radio/src/radio-group/radio-group.scss +1 -0
  401. package/themes/webservy/rating/index.scss +1 -0
  402. package/themes/webservy/rating/src/rating/rating.scss +14 -0
  403. package/themes/webservy/resizer/index.scss +1 -0
  404. package/themes/webservy/resizer/src/resizer/resizer.scss +5 -0
  405. package/themes/webservy/root/helpers.scss +41 -0
  406. package/themes/webservy/root/image/angle-down-shadow.svg +3 -0
  407. package/themes/webservy/root/image/angle-down.svg +3 -0
  408. package/themes/webservy/root/image/angle-left-shadow.svg +3 -0
  409. package/themes/webservy/root/image/angle-left.svg +3 -0
  410. package/themes/webservy/root/image/angle-right-shadow.svg +3 -0
  411. package/themes/webservy/root/image/angle-right.svg +3 -0
  412. package/themes/webservy/root/image/angle-up-shadow.svg +3 -0
  413. package/themes/webservy/root/image/angle-up.svg +3 -0
  414. package/themes/webservy/root/image/empty-ufo.svg +8 -0
  415. package/themes/webservy/root/image/empty.svg +10 -0
  416. package/themes/webservy/root/image/star.svg +5 -0
  417. package/themes/webservy/root/vars/colors-dark-bluish.scss +461 -0
  418. package/themes/webservy/root/vars/colors-dark.scss +461 -0
  419. package/themes/webservy/root/vars/colors-light-bluish.scss +483 -0
  420. package/themes/webservy/root/vars/colors-light.scss +483 -0
  421. package/themes/webservy/root/vars/sizes-default.scss +101 -0
  422. package/themes/webservy/scrollbar/index.scss +1 -0
  423. package/themes/webservy/scrollbar/src/scrollbar/scrollbar.scss +7 -0
  424. package/themes/webservy/select/index.scss +2 -0
  425. package/themes/webservy/select/src/select/select.scss +28 -0
  426. package/themes/webservy/select/src/select-option/select-option.scss +1 -0
  427. package/themes/webservy/slider/index.scss +1 -0
  428. package/themes/webservy/slider/src/slider/slider.scss +30 -0
  429. package/themes/webservy/switch/index.scss +1 -0
  430. package/themes/webservy/switch/src/switch/switch.scss +19 -0
  431. package/themes/webservy/table/index.scss +4 -0
  432. package/themes/webservy/table/src/table/table.scss +14 -0
  433. package/themes/webservy/table/src/table-cell/table-cell.scss +34 -0
  434. package/themes/webservy/table/src/table-column/table-column.scss +31 -0
  435. package/themes/webservy/table/src/table-filter/table-filter.scss +1 -0
  436. package/themes/webservy/tabs/index.scss +2 -0
  437. package/themes/webservy/tabs/src/tabs/tabs.scss +9 -0
  438. package/themes/webservy/tabs/src/tabs-item/tabs-item.scss +23 -0
  439. package/themes/webservy/tags/index.scss +2 -0
  440. package/themes/webservy/tags/src/tags/tags.scss +1 -0
  441. package/themes/webservy/tags/src/tags-item/tags-item.scss +17 -0
  442. package/themes/webservy/textarea/index.scss +1 -0
  443. package/themes/webservy/textarea/src/textarea/textarea.scss +14 -0
  444. package/themes/webservy/timepicker/index.scss +2 -0
  445. package/themes/webservy/timepicker/src/timepicker/timepicker.scss +40 -0
  446. package/themes/webservy/timepicker/src/timepicker-panel/timepicker-panel.scss +26 -0
  447. package/themes/webservy/transfer/index.scss +1 -0
  448. package/themes/webservy/transfer/src/transfer/transfer.scss +24 -0
  449. package/themes/webservy/virtualscroller/index.scss +1 -0
  450. package/themes/webservy/virtualscroller/src/virtualscroller/virtualscroller.scss +1 -0
  451. package/dist/themes/dark.css +0 -1
  452. package/dist/themes/glossy.dark.css +0 -1
  453. package/dist/themes/glossy.light.css +0 -1
  454. package/dist/themes/light.css +0 -1
  455. package/src/alert/src/alert/alert.js +0 -133
  456. package/src/notification/src/notification/notification.js +0 -165
  457. package/src/root/image/empty-default.svg +0 -30
  458. package/src/root/image/empty-space.svg +0 -34
  459. package/src/root/image/star-default.svg +0 -10
  460. package/src/scrollbar/src/scrollbar-next/scrollbar-next.jsx +0 -640
  461. package/src/scrollbar/src/scrollbar-next/scrollbar-next.scss +0 -148
  462. package/themes/glossy/button/index.scss +0 -2
  463. package/themes/glossy/button/src/button/button.scss +0 -116
  464. package/themes/glossy/button/src/button-group/button-group.scss +0 -1
  465. package/themes/glossy/index-dark.scss +0 -3
  466. package/themes/glossy/index-light.scss +0 -3
  467. package/themes/glossy/index.scss +0 -43
  468. package/themes/glossy/root/image/empty-default.svg +0 -30
  469. package/themes/glossy/root/image/empty-space.svg +0 -34
  470. package/themes/glossy/root/image/star-default.svg +0 -10
  471. package/themes/glossy/root/image/test.svg +0 -1
  472. package/themes/glossy/root/vars-dark.scss +0 -234
  473. package/themes/glossy/root/vars-light.scss +0 -234
  474. package/themes/glossy/root/vars.scss +0 -233
  475. package/themes/macos/alert/index.scss +0 -1
  476. package/themes/macos/alert/src/alert/alert.scss +0 -27
  477. package/themes/macos/button/index.scss +0 -2
  478. package/themes/macos/button/src/button/button.scss +0 -98
  479. package/themes/macos/button/src/button-group/button-group.scss +0 -1
  480. package/themes/macos/cascader/index.scss +0 -2
  481. package/themes/macos/cascader/src/cascader/cascader.scss +0 -47
  482. package/themes/macos/cascader/src/cascader-panel/cascader-panel.scss +0 -14
  483. package/themes/macos/checkbox/index.scss +0 -2
  484. package/themes/macos/checkbox/src/checkbox/checkbox.scss +0 -45
  485. package/themes/macos/checkbox/src/checkbox-group/checkbox-group.scss +0 -1
  486. package/themes/macos/collapse/index.scss +0 -2
  487. package/themes/macos/collapse/src/collapse/collapse.scss +0 -22
  488. package/themes/macos/collapse/src/collapse-item/collapse-item.scss +0 -22
  489. package/themes/macos/confirm/index.scss +0 -1
  490. package/themes/macos/confirm/src/confirm/confirm.scss +0 -14
  491. package/themes/macos/datepicker/index.scss +0 -2
  492. package/themes/macos/datepicker/src/datepicker/datepicker.scss +0 -51
  493. package/themes/macos/datepicker/src/datepicker-panel/datepicker-panel.scss +0 -45
  494. package/themes/macos/datetimepicker/index.scss +0 -1
  495. package/themes/macos/datetimepicker/src/datetimepicker/datetimepicker.scss +0 -69
  496. package/themes/macos/demo/index.scss +0 -1
  497. package/themes/macos/demo/src/demo/demo.scss +0 -22
  498. package/themes/macos/draggable/index.scss +0 -9
  499. package/themes/macos/draggable/src/draggrid/draggrid.scss +0 -14
  500. package/themes/macos/draggable/src/draggrid-item/draggrid-item.scss +0 -66
  501. package/themes/macos/draggable/src/draghandler/draghandler.scss +0 -15
  502. package/themes/macos/draggable/src/draglist/draglist.scss +0 -14
  503. package/themes/macos/draggable/src/draglist-item/draglist-item.scss +0 -73
  504. package/themes/macos/draggable/src/dropzone/dropzone.scss +0 -14
  505. package/themes/macos/drawer/index.scss +0 -1
  506. package/themes/macos/drawer/src/drawer/drawer.scss +0 -35
  507. package/themes/macos/durationpicker/index.scss +0 -1
  508. package/themes/macos/durationpicker/src/durationpicker/durationpicker.scss +0 -53
  509. package/themes/macos/empty/index.scss +0 -1
  510. package/themes/macos/empty/src/empty-icon/empty-icon.scss +0 -13
  511. package/themes/macos/file/index.scss +0 -1
  512. package/themes/macos/file/src/file/file.scss +0 -39
  513. package/themes/macos/form/index.scss +0 -4
  514. package/themes/macos/form/src/form/form.scss +0 -1
  515. package/themes/macos/form/src/form-frame/form-frame.scss +0 -34
  516. package/themes/macos/form/src/form-group/form-group.scss +0 -43
  517. package/themes/macos/form/src/form-item/form-item.scss +0 -29
  518. package/themes/macos/index-dark.scss +0 -3
  519. package/themes/macos/index-light.scss +0 -3
  520. package/themes/macos/index.scss +0 -41
  521. package/themes/macos/info/index.scss +0 -3
  522. package/themes/macos/info/src/info/info.scss +0 -5
  523. package/themes/macos/info/src/info-column/info-column.scss +0 -5
  524. package/themes/macos/info/src/info-field/info-field.scss +0 -5
  525. package/themes/macos/input/index.scss +0 -1
  526. package/themes/macos/input/src/input/input.scss +0 -39
  527. package/themes/macos/input-number/index.scss +0 -1
  528. package/themes/macos/input-number/src/input-number/input-number.scss +0 -48
  529. package/themes/macos/loader/index.scss +0 -1
  530. package/themes/macos/loader/src/loader/loader.scss +0 -22
  531. package/themes/macos/map/index.scss +0 -1
  532. package/themes/macos/map/src/map/map.scss +0 -1
  533. package/themes/macos/modal/index.scss +0 -1
  534. package/themes/macos/modal/src/modal/modal.scss +0 -35
  535. package/themes/macos/notification/index.scss +0 -1
  536. package/themes/macos/notification/src/notification/notification.scss +0 -25
  537. package/themes/macos/paginator/index.scss +0 -1
  538. package/themes/macos/paginator/src/paginator/paginator.scss +0 -5
  539. package/themes/macos/popover/index.scss +0 -1
  540. package/themes/macos/popover/src/popover/popover.scss +0 -84
  541. package/themes/macos/preview/index.scss +0 -1
  542. package/themes/macos/preview/src/preview-modal/preview-modal.scss +0 -28
  543. package/themes/macos/radio/index.scss +0 -2
  544. package/themes/macos/radio/src/radio/radio.scss +0 -46
  545. package/themes/macos/radio/src/radio-group/radio-group.scss +0 -1
  546. package/themes/macos/rating/index.scss +0 -1
  547. package/themes/macos/rating/src/rating/rating.scss +0 -19
  548. package/themes/macos/resizer/index.scss +0 -1
  549. package/themes/macos/resizer/src/resizer/resizer.scss +0 -5
  550. package/themes/macos/root/image/empty-default.svg +0 -30
  551. package/themes/macos/root/image/empty-space.svg +0 -34
  552. package/themes/macos/root/image/star-default.svg +0 -10
  553. package/themes/macos/root/vars-dark.scss +0 -234
  554. package/themes/macos/root/vars-light.scss +0 -234
  555. package/themes/macos/root/vars.scss +0 -233
  556. package/themes/macos/scrollbar/index.scss +0 -1
  557. package/themes/macos/scrollbar/src/scrollbar/scrollbar.scss +0 -7
  558. package/themes/macos/select/index.scss +0 -2
  559. package/themes/macos/select/src/select/select.scss +0 -49
  560. package/themes/macos/select/src/select-option/select-option.scss +0 -1
  561. package/themes/macos/slider/index.scss +0 -1
  562. package/themes/macos/slider/src/slider/slider.scss +0 -41
  563. package/themes/macos/switch/index.scss +0 -1
  564. package/themes/macos/switch/src/switch/switch.scss +0 -30
  565. package/themes/macos/table/index.scss +0 -4
  566. package/themes/macos/table/src/table/table.scss +0 -20
  567. package/themes/macos/table/src/table-cell/table-cell.scss +0 -51
  568. package/themes/macos/table/src/table-filter/table-filter.scss +0 -1
  569. package/themes/macos/tabs/index.scss +0 -2
  570. package/themes/macos/tabs/src/tabs/tabs.scss +0 -39
  571. package/themes/macos/tabs/src/tabs-item/tabs-item.scss +0 -19
  572. package/themes/macos/tags/index.scss +0 -2
  573. package/themes/macos/tags/src/tags/tags.scss +0 -1
  574. package/themes/macos/tags/src/tags-item/tags-item.scss +0 -32
  575. package/themes/macos/textarea/index.scss +0 -1
  576. package/themes/macos/textarea/src/textarea/textarea.scss +0 -31
  577. package/themes/macos/timepicker/index.scss +0 -2
  578. package/themes/macos/timepicker/src/timepicker/timepicker.scss +0 -51
  579. package/themes/macos/timepicker/src/timepicker-panel/timepicker-panel.scss +0 -28
  580. package/themes/macos/transfer/index.scss +0 -1
  581. package/themes/macos/transfer/src/transfer/transfer.scss +0 -18
  582. package/themes/macos/virtualscroller/index.scss +0 -1
  583. package/themes/macos/virtualscroller/src/virtualscroller/virtualscroller.scss +0 -1
@@ -1,9 +1,17 @@
1
- import { Arr, Obj, Dom, Any, Str, Event } from "@kizmann/pico-js";
1
+ import { Arr, Obj, Dom, Any, Str, Event, UUID } from "@kizmann/pico-js";
2
2
 
3
3
  export default {
4
4
 
5
5
  name: 'NScrollbar',
6
6
 
7
+ inject: {
8
+
9
+ NScrollbar: {
10
+ default: undefined
11
+ }
12
+
13
+ },
14
+
7
15
  provide()
8
16
  {
9
17
  return {
@@ -13,38 +21,6 @@ export default {
13
21
 
14
22
  props: {
15
23
 
16
- options: {
17
- default()
18
- {
19
- return {};
20
- },
21
- type: [Object]
22
- },
23
-
24
- relative: {
25
- default()
26
- {
27
- return false;
28
- },
29
- type: [Boolean]
30
- },
31
-
32
- fixture: {
33
- default()
34
- {
35
- return false;
36
- },
37
- type: [Boolean]
38
- },
39
-
40
- allowNative: {
41
- default()
42
- {
43
- return true;
44
- },
45
- type: [Boolean]
46
- },
47
-
48
24
  overflowY: {
49
25
  default()
50
26
  {
@@ -64,7 +40,7 @@ export default {
64
40
  offsetY: {
65
41
  default()
66
42
  {
67
- return 10;
43
+ return 0;
68
44
  },
69
45
  type: [Number]
70
46
  },
@@ -96,22 +72,26 @@ export default {
96
72
 
97
73
  computed: {
98
74
 
99
- touch() {
100
- return !! ('ontouchstart' in window ||
75
+ touch()
76
+ {
77
+ return !!('ontouchstart' in window ||
101
78
  navigator.msMaxTouchPoints);
102
79
  },
103
80
 
104
- mousedown() {
81
+ mousedown()
82
+ {
105
83
  return this.touch ? 'touchstart' :
106
84
  'mousedown';
107
85
  },
108
86
 
109
- mousemove() {
87
+ mousemove()
88
+ {
110
89
  return this.touch ? 'touchmove' :
111
90
  'mousemove';
112
91
  },
113
92
 
114
- mouseup() {
93
+ mouseup()
94
+ {
115
95
  return this.touch ? 'touchend' :
116
96
  'mouseup';
117
97
  }
@@ -121,61 +101,58 @@ export default {
121
101
  data()
122
102
  {
123
103
  return {
124
- native: false
104
+ uid: UUID(), init: false, native: false, height: 0, width: 0
125
105
  };
126
106
  },
127
107
 
128
108
  beforeMount()
129
109
  {
110
+ this.outer = {};
111
+ this.state = {};
112
+
113
+ this.hasHtrack = false;
114
+ this.hasVtrack = false;
115
+
130
116
  this.adaptScrollBehavior();
131
117
  },
132
118
 
133
119
  mounted()
134
120
  {
135
- this.bindAdaptHeight();
136
- this.bindAdaptWidth();
121
+ this.observer = new ResizeObserver(() => {
122
+ this.getWrapperSizeDebounced();
123
+ });
137
124
 
138
- let passive = {
139
- passive: true, uid: this._.uid
140
- };
125
+ this.observer.observe(this.$el);
141
126
 
142
- Event.bind('NScrollbar:resize',
143
- this.onResize, this._.uid);
127
+ if ( this.$refs.wrapper ) {
128
+ this.observer.observe(this.$refs.wrapper);
129
+ }
144
130
 
145
131
  Event.bind('NResizer:moved',
146
- this.onUpdate, this._.uid);
132
+ this.getWrapperSizeDebounced, this._.uid);
147
133
 
148
- Dom.find(window).on('resize',
149
- this.onResize, passive);
134
+ let passive = {
135
+ passive: true, uid: this._.uid
136
+ };
150
137
 
151
138
  Dom.find(this.$refs.content).on('scroll',
152
139
  this.onScroll, passive);
153
- },
154
140
 
155
- updated()
156
- {
157
- if ( this.passedHeight || this.passedWidth ) {
158
- Dom.find(this.$el).addClass('n-ready');
159
- }
141
+ this.getWrapperSize();
160
142
  },
161
143
 
162
144
  beforeUnmount()
163
145
  {
164
- this.unbindAdaptHeight();
165
- this.unbindAdaptWidth();
166
-
167
- let passive = {
168
- passive: true, uid: this._.uid
169
- };
170
-
171
- Event.unbind('NScrollbar:resize',
172
- this._.uid);
146
+ if ( this.observer ) {
147
+ this.observer.disconnect();
148
+ }
173
149
 
174
150
  Event.unbind('NResizer:moved',
175
151
  this._.uid);
176
152
 
177
- Dom.find(window).off('resize',
178
- null, passive);
153
+ let passive = {
154
+ passive: true, uid: this._.uid
155
+ };
179
156
 
180
157
  Dom.find(this.$el).off('scroll',
181
158
  null, passive);
@@ -183,17 +160,119 @@ export default {
183
160
 
184
161
  methods: {
185
162
 
163
+ getWrapperSizeDebounced()
164
+ {
165
+ if ( Dom.find(this.$el).inside('is-paused') ) {
166
+ return;
167
+ }
168
+
169
+ let rect = this.$refs.wrapper.getBoundingClientRect();
170
+
171
+ let now = {
172
+ width: Math.round(rect.width), height: Math.round(rect.height)
173
+ };
174
+
175
+ if ( Any.isEqual(this.state, now) ) {
176
+ return;
177
+ }
178
+
179
+ clearInterval(this.interval);
180
+
181
+ this.interval = setTimeout(() => {
182
+ this.getWrapperSize();
183
+ }, 5);
184
+ },
185
+
186
+ getWrapperSize()
187
+ {
188
+ if ( ! this.$refs.wrapper ) {
189
+ return;
190
+ }
191
+
192
+ let [width, height] = [0, 0];
193
+
194
+ Dom.find(this.$refs.spacer).actual(() => {
195
+
196
+ Dom.find(this.$el).addClass('is-paused');
197
+
198
+ [width, height] = [
199
+ Math.round(this.$refs.wrapper.getBoundingClientRect().width),
200
+ Math.round(this.$refs.wrapper.getBoundingClientRect().height)
201
+ ];
202
+
203
+ Dom.find(this.$el).removeClass('is-paused');
204
+ });
205
+
206
+ let outer = {
207
+ width: Math.round(this.$refs.content.clientWidth),
208
+ height: Math.round(this.$refs.content.clientHeight),
209
+ };
210
+
211
+ let rainbow = [
212
+ width === this.width, height === this.height
213
+ ]
214
+
215
+ if ( ! Arr.has(rainbow, true) && Any.isEqual(this.outer, outer) ) {
216
+ return;
217
+ }
218
+
219
+ this.outer = outer;
220
+
221
+ this.state = {
222
+ width, height
223
+ };
224
+
225
+ [this.width, this.height] = [
226
+ width, height
227
+ ];
228
+
229
+ if ( width === 0 || height === 0 ) {
230
+ return;
231
+ }
232
+
233
+ let styles = {
234
+ //
235
+ };
236
+
237
+ if ( this.width ) {
238
+ styles.width = this.width + 'px';
239
+ }
240
+
241
+ if ( this.height ) {
242
+ styles.height = this.height + 'px';
243
+ }
244
+
245
+ Dom.find(this.$refs.spacer).css(styles);
246
+
247
+ this.adaptScrollHeight();
248
+ this.adaptScrollWidth();
249
+
250
+ let [frameWidth, frameHeight] = [
251
+ Dom.find(this.$el).width(), Dom.find(this.$el).height()
252
+ ];
253
+
254
+ this.$emit('sizechange', frameWidth, frameHeight, this.$el);
255
+ },
256
+
186
257
  scrollTo(x = 0, y = 0, delay = 0)
187
258
  {
259
+ if ( Any.isEmpty(delay) ) {
260
+ return this.scrollTo(x, y);
261
+ }
262
+
188
263
  Any.delay(() => this.onScrollTo(x, y), delay);
189
264
  },
190
265
 
191
266
  onScrollTo(x = 0, y = 0)
192
267
  {
193
- if ( this.$refs.content ) {
268
+ if (this.$refs.content) {
194
269
  this.$refs.content.scrollTop = y;
195
270
  this.$refs.content.scrollLeft = x;
196
271
  }
272
+
273
+ // if ( this.$refs.content.scrollTop != y || this.$refs.content.scrollLeft != x ) {
274
+ // setTimeout(() => this.onScrollTo(x, y), 5);
275
+ // }
197
276
  },
198
277
 
199
278
  scrollIntoView(selector, delay = 0, padding = 0)
@@ -208,8 +287,7 @@ export default {
208
287
  let scrollTop = this.$refs.content
209
288
  .scrollTop;
210
289
 
211
- let outerHeight = this.$refs.content.
212
- clientHeight;
290
+ let outerHeight = this.$refs.content.clientHeight;
213
291
 
214
292
  let offsetTop = $el.offsetTop(this.$el);
215
293
 
@@ -224,8 +302,7 @@ export default {
224
302
  let scrollLeft = this.$refs.content
225
303
  .scrollLeft;
226
304
 
227
- let outerWidth = this.$refs.content.
228
- clientWidth;
305
+ let outerWidth = this.$refs.content.clientWidth;
229
306
 
230
307
  let offsetLeft = $el.offsetLeft(this.$el);
231
308
 
@@ -253,52 +330,20 @@ export default {
253
330
 
254
331
  adaptScrollHeight()
255
332
  {
256
- if ( this.native && this.allowNative ) {
333
+ if ( this.native ) {
257
334
  return;
258
335
  }
259
336
 
260
- // let offsetHeight = this.$refs.content.clientHeight -
261
- // this.$refs.content.offsetHeight;
262
- //
263
- // let offsetWidth = this.$refs.content.clientWidth -
264
- // this.$refs.content.offsetWidth;
337
+ let [innerHeight, outerHeight] = [
338
+ this.$refs.content.scrollHeight || 0, this.$el.clientHeight || 0
339
+ ];
265
340
 
266
- let outerHeight = this.$refs.content.
267
- clientHeight || 0;
268
-
269
- if ( this.native && ! this.allowNative ) {
270
- outerHeight -= 16;
271
- }
341
+ let compare = [
342
+ outerHeight === this.outerHeight,
343
+ innerHeight === this.innerHeight
344
+ ];
272
345
 
273
- // if ( offsetHeight === 0 && this.overflowX ) {
274
- // outerHeight -= 15;
275
- // }
276
-
277
- let innerHeight = this.$refs.content
278
- .scrollHeight || 0;
279
-
280
- let virtualHeight = 0;
281
-
282
- Dom.find(this.$refs.content).childs().each((el) => {
283
- virtualHeight += Dom.find(el).height() || 0;
284
- });
285
-
286
- if ( this.native && ! this.allowNative ) {
287
- innerHeight -= 16;
288
- }
289
-
290
- if ( virtualHeight > innerHeight ) {
291
- innerHeight = virtualHeight;
292
- }
293
-
294
- // if ( offsetHeight === 0 && this.overflowX ) {
295
- // innerHeight -= 15;
296
- // }
297
-
298
- let isSameOld = outerHeight === this.outerHeight &&
299
- innerHeight === this.innerHeight;
300
-
301
- if ( isSameOld ) {
346
+ if ( !Arr.has(compare, false) ) {
302
347
  return;
303
348
  }
304
349
 
@@ -320,81 +365,35 @@ export default {
320
365
  height: (this.barHeight = Math.ceil(barHeight)) + 'px'
321
366
  });
322
367
 
323
- // let hasNativeBar = offsetWidth !== 0 && this.overflowY;
324
- //
325
- // if ( hasNativeBar ) {
326
- // Dom.find(this.$el).addClass('has-native-vbar');
327
- // }
328
- //
329
- // if ( hasNativeBar && this.overflowX ) {
330
- // Dom.find(this.$el).addClass('has-native-hbar');
331
- // }
332
-
333
- let hasVtrack = outerHeight && outerHeight < innerHeight;
368
+ this.hasVtrack = outerHeight && outerHeight < innerHeight;
334
369
 
335
- if ( hasVtrack ) {
370
+ if ( this.hasVtrack ) {
336
371
  Dom.find(this.$el).addClass('has-vtrack');
337
372
  }
338
373
 
339
- if ( ! hasVtrack ) {
374
+ if ( !this.hasVtrack ) {
340
375
  Dom.find(this.$el).removeClass('has-vtrack');
341
376
  }
342
377
 
343
- // if ( hasVtrack && ! hasNativeBar ) {
344
- // Event.fire('NScrollbar:native');
345
- // }
346
-
347
378
  this.adaptScrollPosition();
348
379
  },
349
380
 
350
381
  adaptScrollWidth()
351
382
  {
352
- if ( this.native && this.allowNative ) {
383
+ if ( this.native ) {
353
384
  return;
354
385
  }
355
386
 
356
- // let offsetWidth = this.$refs.content.clientWidth -
357
- // this.$refs.content.offsetWidth;
358
- //
359
- // let offsetHeight = this.$refs.content.clientHeight -
360
- // this.$refs.content.offsetHeight;
361
-
362
- let outerWidth = this.$refs.content.
363
- clientWidth || 0;
364
-
365
- if ( this.native && ! this.allowNative ) {
366
- outerWidth -= 16;
367
- }
368
-
369
- // if ( offsetWidth === 0 && this.overflowY ) {
370
- // outerWidth -= 15;
371
- // }
372
-
373
- let innerWidth = this.$refs.content
374
- .scrollWidth || 0;
375
-
376
- let virtualWidth = 0;
377
-
378
- Dom.find(this.$refs.content).childs().each((el) => {
379
- virtualWidth += Dom.find(el).width() || 0;
380
- });
381
-
382
- if ( this.native && ! this.allowNative ) {
383
- innerWidth -= 16;
384
- }
385
-
386
- if ( virtualWidth > innerWidth ) {
387
- innerWidth = virtualWidth;
388
- }
389
-
390
- // if ( offsetWidth === 0 && this.overflowY ) {
391
- // innerWidth -= 15;
392
- // }
387
+ let [innerWidth, outerWidth] = [
388
+ this.$refs.content.scrollWidth || 0, this.$el.clientWidth || 0
389
+ ];
393
390
 
394
- let isSameOld = outerWidth === this.outerWidth &&
395
- innerWidth === this.innerWidth;
391
+ let compare = [
392
+ outerWidth === this.outerWidth,
393
+ innerWidth === this.innerWidth
394
+ ];
396
395
 
397
- if ( isSameOld ) {
396
+ if ( !Arr.has(compare, false) ) {
398
397
  return;
399
398
  }
400
399
 
@@ -416,51 +415,37 @@ export default {
416
415
  width: (this.barWidth = Math.ceil(barWidth)) + 'px'
417
416
  });
418
417
 
419
- // let hasNativeBar = offsetHeight && this.overflowX;
420
-
421
- // if ( hasNativeBar ) {
422
- // Dom.find(this.$el).addClass('has-native-hbar');
423
- // }
424
- //
425
- // if ( hasNativeBar && this.overflowY ) {
426
- // Dom.find(this.$el).addClass('has-native-vbar');
427
- // }
428
-
429
- let hasHtrack = outerWidth && outerWidth < innerWidth;
418
+ this.hasHtrack = outerWidth && outerWidth < innerWidth;
430
419
 
431
- if ( hasHtrack ) {
420
+ if ( this.hasHtrack ) {
432
421
  Dom.find(this.$el).addClass('has-htrack');
433
422
  }
434
423
 
435
- if ( ! hasHtrack ) {
424
+ if ( !this.hasHtrack ) {
436
425
  Dom.find(this.$el).removeClass('has-htrack');
437
426
  }
438
427
 
439
- // if ( hasHtrack && ! hasNativeBar ) {
440
- // Event.fire('NScrollbar:native');
441
- // }
442
-
443
428
  this.adaptScrollPosition();
444
429
  },
445
430
 
446
431
  adaptScrollPosition(scroll = {})
447
432
  {
448
- if ( this.native && this.allowNative ) {
433
+ if ( this.native ) {
449
434
  return;
450
435
  }
451
436
 
452
- if ( ! scroll.top ) {
437
+ if ( !scroll.top ) {
453
438
  scroll.top = this.$refs.content.scrollTop;
454
439
  }
455
440
 
456
- if ( ! scroll.left ) {
441
+ if ( !scroll.left ) {
457
442
  scroll.left = this.$refs.content.scrollLeft;
458
443
  }
459
444
 
460
445
  let vbarTop = Math.ceil((this.outerHeight / this.innerHeight) *
461
446
  scroll.top * this.heightRatio) || 0;
462
447
 
463
- if ( ! this.vbarTop || vbarTop !== this.vbarTop ) {
448
+ if ( !this.vbarTop || vbarTop !== this.vbarTop ) {
464
449
 
465
450
  Dom.find(this.$refs.vbar).css({
466
451
  transform: `translateY(${vbarTop}px) translateZ(0)`
@@ -469,10 +454,10 @@ export default {
469
454
  this.vbarTop = vbarTop;
470
455
  }
471
456
 
472
- let hbarLeft = Math.ceil((this.outerWidth / this.innerWidth) *
457
+ let hbarLeft = Math.ceil((this.outerWidth / this.innerWidth) *
473
458
  scroll.left * this.widthRatio) || 0;
474
459
 
475
- if ( ! this.hbarLeft || hbarLeft !== this.hbarLeft ) {
460
+ if ( !this.hbarLeft || hbarLeft !== this.hbarLeft ) {
476
461
 
477
462
  Dom.find(this.$refs.hbar).css({
478
463
  transform: `translateX(${hbarLeft}px) translateZ(0)`
@@ -482,187 +467,23 @@ export default {
482
467
  }
483
468
  },
484
469
 
485
- adaptHeight()
486
- {
487
- if ( ! this.cacheChildEl ) {
488
- this.cacheChildEl = Dom.find(this.$refs.content).child();
489
- }
490
-
491
- let height = this.cacheChildEl
492
- .height();
493
-
494
- if ( ! this.cacheWindwoEl ) {
495
- this.cacheWindwoEl = Dom.find(this.$el);
496
- }
497
-
498
- let window = this.cacheWindwoEl
499
- .innerHeight();
500
-
501
- if ( height === this.passedHeight && window === this.windowCache ) {
502
- return;
503
- }
504
-
505
- this.windowCache = window;
506
-
507
- if ( this.overflowY ) {
508
- this.adaptScrollHeight();
509
- }
510
-
511
- if ( window ) {
512
- this.passedHeight = height;
513
- }
514
-
515
- let style = {
516
- height: (height + 1) + 'px'
517
- };
518
-
519
- if ( ! this.relative ) {
520
- return Any.delay(this.onSizechange, 100);
521
- }
522
-
523
- Dom.find(this.$refs.spacer).child().css(style);
524
- },
525
-
526
- bindAdaptHeight()
527
- {
528
- this.refreshHeight = setInterval(this.adaptHeight,
529
- 1000 / this.framerate);
530
- },
531
-
532
- unbindAdaptHeight()
533
- {
534
- clearInterval(this.refreshHeight);
535
- },
536
-
537
- adaptWidth()
538
- {
539
- if ( this.resizeTimer ) {
540
- return;
541
- }
542
-
543
- let width = Dom.find(this.$refs.content)
544
- .child().width();
545
-
546
- let window = Dom.find(this.$el)
547
- .innerWidth();
548
-
549
- if ( width === this.passedWidth ) {
550
- return;
551
- }
552
-
553
- if ( this.overflowX ) {
554
- this.adaptScrollWidth();
555
- }
556
-
557
- if ( window ) {
558
- this.passedWidth = width;
559
- }
560
-
561
- let style = {
562
- width: width + 'px'
563
- };
564
-
565
- if ( this.fixture ) {
566
- this.onUpdate();
567
- }
568
-
569
- if ( ! this.relative ) {
570
- return Any.delay(this.onSizechange, 100);
571
- }
572
-
573
- Dom.find(this.$refs.spacer).child().css(style);
574
- },
575
-
576
- bindAdaptWidth()
577
- {
578
- this.refreshWidth = setInterval(this.adaptWidth,
579
- 1000 / this.framerate);
580
- },
581
-
582
- unbindAdaptWidth()
583
- {
584
- clearInterval(this.refreshWidth);
585
- },
586
-
587
- onScroll(event)
470
+ onScroll()
588
471
  {
589
472
  let scroll = {
590
473
  top: this.$refs.content.scrollTop,
591
474
  left: this.$refs.content.scrollLeft
592
475
  };
593
476
 
594
- let scrollUpdate = () => {
477
+ this.$nextTick().then(() => {
595
478
  this.$emit('scrollupdate', scroll.top, scroll.left);
596
- }
597
-
598
- this.$nextTick(scrollUpdate);
599
- this.adaptScrollPosition(scroll);
600
- },
601
-
602
- onSizechange(event)
603
- {
604
- let height = Dom.find(this.$el).height();
605
- let width = Dom.find(this.$el).width();
606
-
607
- if ( ! height || ! width ) {
608
- return;
609
- }
610
-
611
- if ( this.passedHeight || this.passedWidth ) {
612
- Dom.find(this.$el).addClass('is-ready');
613
- }
614
-
615
- this.$emit('sizechange', height, width, this.$el);
616
- },
617
-
618
- onResize()
619
- {
620
- if ( ! this.fixture ) {
621
- return;
622
- }
623
-
624
- Dom.find(this.$refs.content)
625
- .child().css(null);
626
-
627
- clearTimeout(this.resizeTimer);
628
-
629
- this.resizeTimer = setTimeout(
630
- this.onUpdate, 500);
631
-
632
- Dom.find(this.$el).fire('resized');
633
- },
634
-
635
- onUpdate()
636
- {
637
- if ( ! this.fixture || ! this.$refs.content ) {
638
- return;
639
- }
640
-
641
- let $inner = Dom.find(this.$refs.content)
642
- .child();
643
-
644
- let height = $inner.actual(() => {
645
- return $inner.scrollHeight();
646
- });
647
-
648
- if ( height !== this.passedHeight ) {
649
- $inner.css({ height: height + 'px' });
650
- }
651
-
652
- let width = $inner.actual(() => {
653
- return $inner.scrollWidth() - 1;
654
479
  });
655
480
 
656
- if ( width !== this.passedWidth ) {
657
- $inner.css({ width: width + 'px' });
658
- }
659
-
660
- delete this.resizeTimer;
481
+ this.adaptScrollPosition(scroll);
661
482
  },
662
483
 
663
484
  getTouchEvent(event)
664
485
  {
665
- if ( ! this.touch ) {
486
+ if ( !this.touch ) {
666
487
  return event;
667
488
  }
668
489
 
@@ -671,11 +492,12 @@ export default {
671
492
 
672
493
  onVbarMousedown(event)
673
494
  {
674
- if ( ! Arr.has([0, 1], event.which) ) {
495
+ if ( !Arr.has([0, 1], event.which) ) {
675
496
  return;
676
497
  }
677
498
 
678
499
  event.stopPropagation();
500
+ event.preventDefault();
679
501
 
680
502
  Dom.find(document).on(this.mousemove,
681
503
  this.onVbarMousemove, this._.uid);
@@ -688,6 +510,8 @@ export default {
688
510
 
689
511
  this.clientY = this.getTouchEvent(event)
690
512
  .clientY;
513
+
514
+ Dom.find(this.$refs.vbar).addClass('is-active');
691
515
  },
692
516
 
693
517
  onVbarMousemove(event)
@@ -714,15 +538,18 @@ export default {
714
538
 
715
539
  Dom.find(document).off(this.mouseup,
716
540
  null, this._.uid);
541
+
542
+ Dom.find(this.$refs.vbar).removeClass('is-active');
717
543
  },
718
544
 
719
545
  onHbarMousedown(event)
720
546
  {
721
- if ( ! Arr.has([0, 1], event.which) ) {
547
+ if ( !Arr.has([0, 1], event.which) ) {
722
548
  return;
723
549
  }
724
550
 
725
551
  event.stopPropagation();
552
+ event.preventDefault();
726
553
 
727
554
  Dom.find(document).on(this.mousemove,
728
555
  this.onHbarMousemove, this._.uid);
@@ -733,15 +560,21 @@ export default {
733
560
  this.scrollLeft = this.$refs.content
734
561
  .scrollLeft;
735
562
 
736
- this.clientX = event.clientX;
563
+ this.clientX = this.getTouchEvent(event)
564
+ .clientX;
565
+
566
+ Dom.find(this.$refs.hbar).addClass('is-active');
737
567
  },
738
568
 
739
569
  onHbarMousemove(event)
740
570
  {
741
- let top = (this.outerWidth / this.innerWidth) *
571
+ let clientX = this.getTouchEvent(event)
572
+ .clientX;
573
+
574
+ let left = (this.outerWidth / this.innerWidth) *
742
575
  this.scrollLeft * this.widthRatio;
743
576
 
744
- let offset = (event.clientX - this.clientX) + top;
577
+ let offset = (clientX - this.clientX) + left;
745
578
 
746
579
  let width = (this.outerWidth -
747
580
  this.barWidth - this.offsetX);
@@ -757,6 +590,8 @@ export default {
757
590
 
758
591
  Dom.find(document).off(this.mouseup,
759
592
  null, this._.uid);
593
+
594
+ Dom.find(this.$refs.hbar).removeClass('is-active');
760
595
  },
761
596
 
762
597
  },
@@ -771,10 +606,6 @@ export default {
771
606
  classList.push('n-scrollbar--native');
772
607
  }
773
608
 
774
- if ( ! this.allowNative ) {
775
- classList.push('n-scrollbar--forced');
776
- }
777
-
778
609
  if ( this.touch ) {
779
610
  classList.push('n-scrollbar--touch');
780
611
  }
@@ -791,6 +622,14 @@ export default {
791
622
  classList.push('n-overflow-x');
792
623
  }
793
624
 
625
+ if ( this.hasHtrack ) {
626
+ classList.push('has-htrack');
627
+ }
628
+
629
+ if ( this.hasVtrack ) {
630
+ classList.push('has-vtrack');
631
+ }
632
+
794
633
  let vbarProps = {
795
634
  ['on' + Str.ucfirst(this.mousedown)]: this.onVbarMousedown
796
635
  };
@@ -802,14 +641,12 @@ export default {
802
641
  return (
803
642
  <div class={classList} {...Obj.except(this.$attrs, ['class'])}>
804
643
  <div class="n-scrollbar-content" ref="content">
805
- <div class={this.wrapClass}>
806
- { this.$slots.default && this.$slots.default() }
644
+ <div ref="wrapper" class={this.wrapClass}>
645
+ {this.$slots.default && this.$slots.default()}
807
646
  </div>
808
647
  </div>
809
648
  <div class="n-scrollbar-spacer" ref="spacer">
810
- <div class={this.wrapClass}>
811
- { /* Adapt inner height */ }
812
- </div>
649
+ { /* Adapt inner height */}
813
650
  </div>
814
651
  <div ref="hbar" class="n-scrollbar-h" {...hbarProps}></div>
815
652
  <div ref="vbar" class="n-scrollbar-v" {...vbarProps}></div>