@eturnity/eturnity_reusable_components 8.7.4 → 8.7.5-EPDM-12618.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (392) hide show
  1. package/README.md +29 -29
  2. package/package.json +84 -84
  3. package/src/App.vue +30 -30
  4. package/src/Test.vue +128 -128
  5. package/src/assets/icons/arrow_down.svg +3 -3
  6. package/src/assets/icons/arrow_up_red.svg +3 -3
  7. package/src/assets/icons/black_spinner.svg +35 -35
  8. package/src/assets/icons/delete_icon.svg +11 -11
  9. package/src/assets/icons/delete_icon_gray.svg +11 -11
  10. package/src/assets/icons/drag_icon.svg +8 -8
  11. package/src/assets/icons/external_icon.svg +6 -6
  12. package/src/assets/icons/language_icon.svg +6 -6
  13. package/src/assets/icons/pdf_icon.svg +6 -6
  14. package/src/assets/icons/plus_button.svg +4 -4
  15. package/src/assets/icons/search_icon_black.svg +3 -3
  16. package/src/assets/icons/subposition_icon.svg +3 -3
  17. package/src/assets/icons/subposition_marker.svg +3 -3
  18. package/src/assets/icons/warning_icon.svg +3 -3
  19. package/src/assets/svgIcons/2d_active.svg +7 -7
  20. package/src/assets/svgIcons/2d_inactive.svg +8 -8
  21. package/src/assets/svgIcons/3d_active.svg +7 -7
  22. package/src/assets/svgIcons/3d_inactive.svg +8 -8
  23. package/src/assets/svgIcons/_readme.md +7 -7
  24. package/src/assets/svgIcons/accept.svg +5 -5
  25. package/src/assets/svgIcons/activate_panels_active.svg +22 -22
  26. package/src/assets/svgIcons/activate_panels_inactive.svg +20 -20
  27. package/src/assets/svgIcons/add_icon-1.svg +3 -3
  28. package/src/assets/svgIcons/add_icon.svg +4 -4
  29. package/src/assets/svgIcons/address_book.svg +3 -3
  30. package/src/assets/svgIcons/adjust_roof.svg +6 -6
  31. package/src/assets/svgIcons/after_sale_as_a_service.svg +6 -6
  32. package/src/assets/svgIcons/all_good.svg +3 -3
  33. package/src/assets/svgIcons/angle_active.svg +5 -5
  34. package/src/assets/svgIcons/angle_inactive.svg +4 -4
  35. package/src/assets/svgIcons/area_active.svg +11 -11
  36. package/src/assets/svgIcons/area_inactive.svg +26 -26
  37. package/src/assets/svgIcons/areas_tool.svg +14 -14
  38. package/src/assets/svgIcons/arrow_down.svg +3 -3
  39. package/src/assets/svgIcons/arrow_left.svg +4 -4
  40. package/src/assets/svgIcons/arrow_right.svg +4 -4
  41. package/src/assets/svgIcons/arrow_up.svg +3 -3
  42. package/src/assets/svgIcons/attachment.svg +3 -3
  43. package/src/assets/svgIcons/base_layer.svg +3 -3
  44. package/src/assets/svgIcons/battery.svg +3 -3
  45. package/src/assets/svgIcons/bell.svg +3 -3
  46. package/src/assets/svgIcons/bell_alt.svg +5 -5
  47. package/src/assets/svgIcons/bexio.svg +4 -4
  48. package/src/assets/svgIcons/bold.svg +3 -3
  49. package/src/assets/svgIcons/bom.svg +3 -3
  50. package/src/assets/svgIcons/bom_generation.svg +10 -10
  51. package/src/assets/svgIcons/bookmaker.svg +3 -3
  52. package/src/assets/svgIcons/bubble.svg +3 -3
  53. package/src/assets/svgIcons/bug.svg +5 -5
  54. package/src/assets/svgIcons/buildings.svg +55 -55
  55. package/src/assets/svgIcons/bullet_list.svg +8 -8
  56. package/src/assets/svgIcons/calendar.svg +7 -7
  57. package/src/assets/svgIcons/calendar_icon.svg +7 -7
  58. package/src/assets/svgIcons/call.svg +3 -3
  59. package/src/assets/svgIcons/camera.svg +3 -3
  60. package/src/assets/svgIcons/car.svg +3 -3
  61. package/src/assets/svgIcons/cart.svg +3 -3
  62. package/src/assets/svgIcons/charger_icon_white.svg +44 -44
  63. package/src/assets/svgIcons/checkbox.svg +3 -3
  64. package/src/assets/svgIcons/checkmark.svg +3 -3
  65. package/src/assets/svgIcons/clear_formatting.svg +7 -7
  66. package/src/assets/svgIcons/clickable_info.svg +4 -4
  67. package/src/assets/svgIcons/clip.svg +3 -3
  68. package/src/assets/svgIcons/clock.svg +17 -17
  69. package/src/assets/svgIcons/clock_full.svg +3 -3
  70. package/src/assets/svgIcons/close_for_modals,_tool_tips.svg +4 -4
  71. package/src/assets/svgIcons/co_branding.svg +5 -5
  72. package/src/assets/svgIcons/collapse.svg +4 -4
  73. package/src/assets/svgIcons/collapse_all.svg +3 -3
  74. package/src/assets/svgIcons/collections.svg +3 -3
  75. package/src/assets/svgIcons/component_library.svg +7 -7
  76. package/src/assets/svgIcons/consumption_tariffs.svg +43 -43
  77. package/src/assets/svgIcons/context_menu-1.svg +6 -6
  78. package/src/assets/svgIcons/context_menu-2.svg +5 -5
  79. package/src/assets/svgIcons/context_menu.svg +5 -5
  80. package/src/assets/svgIcons/context_menu_tabs.svg +5 -5
  81. package/src/assets/svgIcons/cross.svg +4 -4
  82. package/src/assets/svgIcons/current_variant.svg +4 -4
  83. package/src/assets/svgIcons/dashboard.svg +3 -3
  84. package/src/assets/svgIcons/data_transfer.svg +3 -3
  85. package/src/assets/svgIcons/deadline.svg +4 -4
  86. package/src/assets/svgIcons/deal_flow.svg +5 -5
  87. package/src/assets/svgIcons/delete.svg +4 -4
  88. package/src/assets/svgIcons/delete_area_active.svg +16 -16
  89. package/src/assets/svgIcons/delete_area_inactive.svg +15 -15
  90. package/src/assets/svgIcons/direction_active-1.svg +12 -12
  91. package/src/assets/svgIcons/direction_active.svg +5 -5
  92. package/src/assets/svgIcons/direction_arrow.svg +4 -4
  93. package/src/assets/svgIcons/direction_inactive.svg +4 -4
  94. package/src/assets/svgIcons/dislike.svg +3 -3
  95. package/src/assets/svgIcons/distance_tool.svg +8 -8
  96. package/src/assets/svgIcons/distances_active.svg +9 -9
  97. package/src/assets/svgIcons/distances_inactive.svg +8 -8
  98. package/src/assets/svgIcons/distort_tool.svg +10 -10
  99. package/src/assets/svgIcons/distort_tool2.svg +16 -16
  100. package/src/assets/svgIcons/document.svg +3 -3
  101. package/src/assets/svgIcons/documents.svg +4 -4
  102. package/src/assets/svgIcons/downarrow.svg +3 -3
  103. package/src/assets/svgIcons/download.svg +4 -4
  104. package/src/assets/svgIcons/drag_icon.svg +8 -8
  105. package/src/assets/svgIcons/draggable_corner.svg +5 -5
  106. package/src/assets/svgIcons/draw_tool.svg +3 -3
  107. package/src/assets/svgIcons/duplicate-1.svg +8 -8
  108. package/src/assets/svgIcons/duplicate-2.svg +5 -5
  109. package/src/assets/svgIcons/duplicate.svg +4 -4
  110. package/src/assets/svgIcons/e-mobility_configurator.svg +6 -6
  111. package/src/assets/svgIcons/e_signature.svg +5 -5
  112. package/src/assets/svgIcons/edit_button.svg +3 -3
  113. package/src/assets/svgIcons/electricity_tariff.svg +3 -3
  114. package/src/assets/svgIcons/email.svg +3 -3
  115. package/src/assets/svgIcons/ems-1.svg +3 -3
  116. package/src/assets/svgIcons/ems.svg +3 -3
  117. package/src/assets/svgIcons/end_of_the_list.svg +5 -5
  118. package/src/assets/svgIcons/erase.svg +4 -4
  119. package/src/assets/svgIcons/expand_all.svg +4 -4
  120. package/src/assets/svgIcons/export_document.svg +3 -3
  121. package/src/assets/svgIcons/external_icon.svg +5 -5
  122. package/src/assets/svgIcons/fav_icon.svg +4 -4
  123. package/src/assets/svgIcons/finance.svg +3 -3
  124. package/src/assets/svgIcons/financing_for_pv-1.svg +5 -5
  125. package/src/assets/svgIcons/financing_for_pv-2.svg +3 -3
  126. package/src/assets/svgIcons/financing_for_pv.svg +6 -6
  127. package/src/assets/svgIcons/finish-1.svg +4 -4
  128. package/src/assets/svgIcons/finish.svg +3 -3
  129. package/src/assets/svgIcons/flatten.svg +11 -11
  130. package/src/assets/svgIcons/flatten_roof.svg +20 -20
  131. package/src/assets/svgIcons/folder.svg +3 -3
  132. package/src/assets/svgIcons/free_technology.svg +5 -5
  133. package/src/assets/svgIcons/handle.svg +5 -5
  134. package/src/assets/svgIcons/heat_calc.svg +7 -7
  135. package/src/assets/svgIcons/height_equalize.svg +3 -3
  136. package/src/assets/svgIcons/height_snap.svg +3 -3
  137. package/src/assets/svgIcons/house.svg +3 -3
  138. package/src/assets/svgIcons/house_3d-1.svg +7 -7
  139. package/src/assets/svgIcons/house_3d.svg +7 -7
  140. package/src/assets/svgIcons/hybrid.svg +4 -4
  141. package/src/assets/svgIcons/inclination.svg +2 -2
  142. package/src/assets/svgIcons/info.svg +3 -3
  143. package/src/assets/svgIcons/initial_situation.svg +3 -3
  144. package/src/assets/svgIcons/integrations.svg +3 -3
  145. package/src/assets/svgIcons/intro-tour-1.svg +3 -3
  146. package/src/assets/svgIcons/intro-tour.svg +3 -3
  147. package/src/assets/svgIcons/inverter-1.svg +5 -5
  148. package/src/assets/svgIcons/inverter.svg +3 -3
  149. package/src/assets/svgIcons/italic.svg +3 -3
  150. package/src/assets/svgIcons/key.svg +3 -3
  151. package/src/assets/svgIcons/lake.svg +29 -29
  152. package/src/assets/svgIcons/layers_close.svg +4 -4
  153. package/src/assets/svgIcons/layers_open.svg +4 -4
  154. package/src/assets/svgIcons/lead_marketplace.svg +6 -6
  155. package/src/assets/svgIcons/lead_provider.svg +4 -4
  156. package/src/assets/svgIcons/length_2d.svg +2 -2
  157. package/src/assets/svgIcons/length_3d.svg +4 -4
  158. package/src/assets/svgIcons/length_calculator.svg +2 -2
  159. package/src/assets/svgIcons/length_in_2d_active.svg +12 -12
  160. package/src/assets/svgIcons/length_in_2d_inctive.svg +13 -13
  161. package/src/assets/svgIcons/light_bulb.svg +3 -3
  162. package/src/assets/svgIcons/like.svg +3 -3
  163. package/src/assets/svgIcons/line_graph.svg +3 -3
  164. package/src/assets/svgIcons/local_subsidies.svg +18 -18
  165. package/src/assets/svgIcons/location.svg +3 -3
  166. package/src/assets/svgIcons/lock.svg +3 -3
  167. package/src/assets/svgIcons/logout.svg +3 -3
  168. package/src/assets/svgIcons/loop.svg +3 -3
  169. package/src/assets/svgIcons/low-vegetation.svg +37 -37
  170. package/src/assets/svgIcons/lunch.svg +4 -4
  171. package/src/assets/svgIcons/magic_tool.svg +6 -6
  172. package/src/assets/svgIcons/map_icon.svg +5 -5
  173. package/src/assets/svgIcons/map_settings.svg +3 -3
  174. package/src/assets/svgIcons/margin_tool.svg +4 -4
  175. package/src/assets/svgIcons/meeting.svg +6 -6
  176. package/src/assets/svgIcons/module.svg +3 -3
  177. package/src/assets/svgIcons/move_copy.svg +4 -4
  178. package/src/assets/svgIcons/move_down.svg +3 -3
  179. package/src/assets/svgIcons/move_up.svg +3 -3
  180. package/src/assets/svgIcons/new_area_inactive.svg +11 -11
  181. package/src/assets/svgIcons/next.svg +4 -4
  182. package/src/assets/svgIcons/normal-tg.svg +30 -30
  183. package/src/assets/svgIcons/normal-vegetation.svg +53 -53
  184. package/src/assets/svgIcons/not_equal_to.svg +3 -3
  185. package/src/assets/svgIcons/numbered_list.svg +6 -6
  186. package/src/assets/svgIcons/obstacle_tool.svg +8 -8
  187. package/src/assets/svgIcons/obstacle_tool_origin.svg +3 -3
  188. package/src/assets/svgIcons/offset_tool.svg +8 -8
  189. package/src/assets/svgIcons/open-tg.svg +21 -21
  190. package/src/assets/svgIcons/optimizer.svg +6 -6
  191. package/src/assets/svgIcons/outline_tool.svg +11 -11
  192. package/src/assets/svgIcons/pan_tool.svg +12 -12
  193. package/src/assets/svgIcons/panels_tool.svg +8 -8
  194. package/src/assets/svgIcons/pen_tool.svg +4 -4
  195. package/src/assets/svgIcons/picker_tool.svg +4 -4
  196. package/src/assets/svgIcons/picture.svg +3 -3
  197. package/src/assets/svgIcons/pin.svg +5 -5
  198. package/src/assets/svgIcons/plus_button.svg +4 -0
  199. package/src/assets/svgIcons/presentation.svg +3 -3
  200. package/src/assets/svgIcons/previous.svg +4 -4
  201. package/src/assets/svgIcons/profile-1.svg +4 -4
  202. package/src/assets/svgIcons/profile.svg +4 -4
  203. package/src/assets/svgIcons/profitability.svg +3 -3
  204. package/src/assets/svgIcons/project_analysis.svg +4 -4
  205. package/src/assets/svgIcons/project_settings.svg +4 -4
  206. package/src/assets/svgIcons/protected-tg.svg +47 -47
  207. package/src/assets/svgIcons/pv.svg +3 -3
  208. package/src/assets/svgIcons/quotations.svg +6 -6
  209. package/src/assets/svgIcons/redo.svg +6 -6
  210. package/src/assets/svgIcons/resizer.svg +5 -5
  211. package/src/assets/svgIcons/roof_layer.svg +3 -3
  212. package/src/assets/svgIcons/rotate_tool.svg +3 -3
  213. package/src/assets/svgIcons/rotate_view.svg +5 -5
  214. package/src/assets/svgIcons/ruler_tool.svg +3 -3
  215. package/src/assets/svgIcons/run_simulation.svg +3 -3
  216. package/src/assets/svgIcons/save.svg +3 -3
  217. package/src/assets/svgIcons/scaling_tool.svg +8 -8
  218. package/src/assets/svgIcons/sea.svg +34 -34
  219. package/src/assets/svgIcons/search.svg +3 -3
  220. package/src/assets/svgIcons/security.svg +3 -3
  221. package/src/assets/svgIcons/settings.svg +3 -3
  222. package/src/assets/svgIcons/show_in_a_new_tab.svg +12 -12
  223. package/src/assets/svgIcons/smartphone.svg +4 -4
  224. package/src/assets/svgIcons/solar_calc.svg +13 -13
  225. package/src/assets/svgIcons/solarmarkt.svg +3 -3
  226. package/src/assets/svgIcons/sorting.svg +4 -4
  227. package/src/assets/svgIcons/split.svg +12 -12
  228. package/src/assets/svgIcons/star.svg +3 -0
  229. package/src/assets/svgIcons/start_of_the_list.svg +5 -5
  230. package/src/assets/svgIcons/strikethrough.svg +4 -4
  231. package/src/assets/svgIcons/string_design.svg +5 -5
  232. package/src/assets/svgIcons/string_directions.svg +10 -10
  233. package/src/assets/svgIcons/subscriptions.svg +3 -3
  234. package/src/assets/svgIcons/subsidies-1.svg +5 -5
  235. package/src/assets/svgIcons/subsidies-2.svg +3 -3
  236. package/src/assets/svgIcons/subsidies.svg +3 -3
  237. package/src/assets/svgIcons/subtract_icon.svg +3 -3
  238. package/src/assets/svgIcons/suitcase.svg +3 -3
  239. package/src/assets/svgIcons/summer.svg +3 -3
  240. package/src/assets/svgIcons/template_icon_not_clickable.svg +6 -6
  241. package/src/assets/svgIcons/transfer.svg +4 -4
  242. package/src/assets/svgIcons/trim_tool.svg +4 -4
  243. package/src/assets/svgIcons/truck.svg +3 -3
  244. package/src/assets/svgIcons/underlined.svg +3 -3
  245. package/src/assets/svgIcons/undo.svg +6 -6
  246. package/src/assets/svgIcons/uparrow.svg +3 -3
  247. package/src/assets/svgIcons/update.svg +3 -3
  248. package/src/assets/svgIcons/upload_avatar-1.svg +12 -12
  249. package/src/assets/svgIcons/upload_avatar.svg +5 -5
  250. package/src/assets/svgIcons/upload_image.svg +8 -8
  251. package/src/assets/svgIcons/upload_image_tool.svg +7 -7
  252. package/src/assets/svgIcons/variants.svg +6 -6
  253. package/src/assets/svgIcons/vertical_tool.svg +3 -3
  254. package/src/assets/svgIcons/virtual_storage.svg +4 -4
  255. package/src/assets/svgIcons/warning.svg +4 -4
  256. package/src/assets/svgIcons/way.svg +5 -5
  257. package/src/assets/svgIcons/wifi.svg +3 -3
  258. package/src/assets/svgIcons/winter.svg +3 -3
  259. package/src/assets/svgIcons/workflow_template.svg +11 -11
  260. package/src/assets/tests/__mocks__/iconCache.js +1 -1
  261. package/src/assets/tests/__mocks__/svgMock.js +1 -1
  262. package/src/assets/tests/helpers.js +12 -12
  263. package/src/assets/theme.js +46 -45
  264. package/src/components/addNewButton/AddNewButton.stories.js +17 -17
  265. package/src/components/addNewButton/addNewButton.spec.js +23 -23
  266. package/src/components/addNewButton/index.vue +66 -66
  267. package/src/components/banner/actionBanner/ActionBanner.stories.js +45 -45
  268. package/src/components/banner/actionBanner/actionBanner.spec.js +76 -76
  269. package/src/components/banner/actionBanner/index.vue +86 -86
  270. package/src/components/banner/banner/Banner.stories.js +64 -64
  271. package/src/components/banner/banner/banner.spec.js +149 -149
  272. package/src/components/banner/banner/index.vue +205 -205
  273. package/src/components/banner/infoBanner/InfoBanner.spec.js +70 -70
  274. package/src/components/banner/infoBanner/InfoBanner.stories.js +42 -42
  275. package/src/components/banner/infoBanner/index.vue +97 -97
  276. package/src/components/banner/notificationBanner/index.vue +131 -131
  277. package/src/components/buttons/buttonIcon/index.vue +147 -147
  278. package/src/components/buttons/closeButton/CloseButton.stories.js +25 -25
  279. package/src/components/buttons/closeButton/index.vue +62 -62
  280. package/src/components/buttons/mainButton/MainButton.stories.js +51 -51
  281. package/src/components/buttons/mainButton/index.vue +174 -174
  282. package/src/components/buttons/mainButton/mainButton.spec.js +35 -35
  283. package/src/components/card/Card.stories.js +79 -79
  284. package/src/components/card/card.spec.js +135 -135
  285. package/src/components/card/index.vue +116 -116
  286. package/src/components/collapsableInfoText/index.vue +127 -127
  287. package/src/components/deleteIcon/DeleteIcon.stories.js +29 -29
  288. package/src/components/deleteIcon/index.vue +78 -78
  289. package/src/components/draggableInputHandle/index.vue +46 -46
  290. package/src/components/dropdown/Dropdown.stories.js +53 -53
  291. package/src/components/dropdown/index.vue +138 -138
  292. package/src/components/errorMessage/index.vue +64 -64
  293. package/src/components/filter/filterSettings.vue +669 -669
  294. package/src/components/filter/index.vue +154 -154
  295. package/src/components/filter/parentDropdown.vue +91 -91
  296. package/src/components/icon/Icons.stories.js +31 -31
  297. package/src/components/icon/icon.spec.js +66 -66
  298. package/src/components/icon/iconCache.mjs +23 -23
  299. package/src/components/icon/iconCollection.vue +83 -83
  300. package/src/components/icon/index.vue +177 -177
  301. package/src/components/iconWrapper/index.vue +184 -184
  302. package/src/components/infoCard/InfoCard.stories.js +170 -170
  303. package/src/components/infoCard/defaultProps.js +7 -7
  304. package/src/components/infoCard/index.vue +152 -152
  305. package/src/components/infoCard/infoCard.spec.js +64 -64
  306. package/src/components/infoText/constants.js +4 -0
  307. package/src/components/infoText/index.vue +511 -488
  308. package/src/components/infoText/infoText.spec.js +62 -0
  309. package/src/components/infoText/infoText.stories.js +48 -0
  310. package/src/components/infoText/placeholder.vue +225 -225
  311. package/src/components/inputs/checkbox/Checkbox.stories.js +63 -63
  312. package/src/components/inputs/checkbox/checkbox.spec.js +109 -109
  313. package/src/components/inputs/checkbox/index.vue +241 -241
  314. package/src/components/inputs/inputNumber/InputNumber.stories.js +150 -150
  315. package/src/components/inputs/inputNumber/index.vue +985 -985
  316. package/src/components/inputs/inputNumberQuestion/index.vue +218 -218
  317. package/src/components/inputs/inputText/InputText.stories.js +70 -70
  318. package/src/components/inputs/inputText/index.vue +457 -457
  319. package/src/components/inputs/inputText/inputText.spec.js +588 -588
  320. package/src/components/inputs/radioButton/RadioButton.stories.js +77 -77
  321. package/src/components/inputs/radioButton/defaultProps.js +31 -31
  322. package/src/components/inputs/radioButton/index.vue +336 -336
  323. package/src/components/inputs/radioButton/radioButton.spec.js +306 -306
  324. package/src/components/inputs/searchInput/SearchInput.stories.js +66 -66
  325. package/src/components/inputs/searchInput/defaultProps.js +12 -12
  326. package/src/components/inputs/searchInput/index.vue +165 -165
  327. package/src/components/inputs/searchInput/searchInput.spec.js +64 -64
  328. package/src/components/inputs/select/index.vue +968 -968
  329. package/src/components/inputs/select/option/index.vue +164 -165
  330. package/src/components/inputs/select/select.stories.js +58 -58
  331. package/src/components/inputs/slider/index.vue +126 -126
  332. package/src/components/inputs/switchField/index.vue +254 -254
  333. package/src/components/inputs/textAreaInput/TextAreaInput.stories.js +127 -127
  334. package/src/components/inputs/textAreaInput/index.vue +204 -204
  335. package/src/components/inputs/toggle/Toggle.stories.js +77 -77
  336. package/src/components/inputs/toggle/index.vue +322 -322
  337. package/src/components/inputs/toggle/toggle.spec.js +102 -102
  338. package/src/components/label/index.vue +98 -98
  339. package/src/components/markerItem/index.vue +95 -95
  340. package/src/components/modals/actionModal/index.vue +64 -64
  341. package/src/components/modals/infoModal/index.vue +52 -52
  342. package/src/components/modals/modal/index.vue +185 -185
  343. package/src/components/modals/modal/modal.stories.js +31 -31
  344. package/src/components/navigationTabs/index.vue +114 -114
  345. package/src/components/pageSubtitle/PageSubtitle.stories.js +59 -59
  346. package/src/components/pageSubtitle/index.vue +78 -78
  347. package/src/components/pageSubtitle/pageSubtitle.spec.js +46 -46
  348. package/src/components/pageTitle/PageTitle.stories.js +95 -95
  349. package/src/components/pageTitle/index.vue +91 -91
  350. package/src/components/pageTitle/pageTitle.spec.js +46 -46
  351. package/src/components/pagination/index.vue +148 -148
  352. package/src/components/progressBar/index.vue +125 -125
  353. package/src/components/projectMarker/index.vue +300 -300
  354. package/src/components/rangeSlider/Slider.vue +578 -578
  355. package/src/components/rangeSlider/index.vue +517 -517
  356. package/src/components/rangeSlider/utils/dom.js +49 -49
  357. package/src/components/rangeSlider/utils/fns.js +26 -26
  358. package/src/components/roundTabs/index.vue +107 -107
  359. package/src/components/selectedOptions/index.vue +471 -471
  360. package/src/components/selectedOptions/selectedOptions.spec.js +176 -176
  361. package/src/components/selectedOptions/selectedOptions.stories.js +155 -155
  362. package/src/components/sideMenu/index.vue +281 -279
  363. package/src/components/spinner/Spinner.stories.js +34 -34
  364. package/src/components/spinner/index.vue +96 -96
  365. package/src/components/spinner/spinner.spec.js +69 -69
  366. package/src/components/spinnerGif/index.vue +98 -98
  367. package/src/components/stringDesign/DropdownMenu/index.vue +1009 -1009
  368. package/src/components/tableDropdown/index.vue +685 -669
  369. package/src/components/tables/mainTable/exampleNested.vue +328 -328
  370. package/src/components/tables/mainTable/index.vue +518 -518
  371. package/src/components/tables/viewTable/index.vue +195 -195
  372. package/src/components/tabsHeader/index.vue +83 -83
  373. package/src/components/threeDots/index.vue +413 -413
  374. package/src/components/videoThumbnail/index.vue +103 -103
  375. package/src/components/videoThumbnail/videoThumbnail.stories.js +33 -33
  376. package/src/helpers/currencyMapping.js +28 -28
  377. package/src/helpers/numberConverter.js +103 -103
  378. package/src/helpers/translateLang.js +128 -128
  379. package/src/main.js +7 -7
  380. package/src/mixins/inputValidations.js +97 -97
  381. package/src/router/dynamicRoutes.js +23 -23
  382. package/src/stories/Button.stories.js +48 -48
  383. package/src/stories/Button.vue +52 -52
  384. package/src/stories/Configure.mdx +364 -364
  385. package/src/stories/Header.stories.js +41 -41
  386. package/src/stories/Header.vue +59 -59
  387. package/src/stories/Page.stories.js +30 -30
  388. package/src/stories/Page.vue +83 -83
  389. package/src/stories/button.css +30 -30
  390. package/src/stories/header.css +32 -32
  391. package/src/stories/page.css +69 -69
  392. package/src/utils/index.js +12 -12
@@ -1,578 +1,578 @@
1
- <template>
2
- <div
3
- :class="className"
4
- :data-id="dataId"
5
- :data-qa-id="dataQaId"
6
- :style="style"
7
- @mousedown="elementMouseDown"
8
- @touchstart="elementTouchDown"
9
- >
10
- <div
11
- v-for="handle in actualHandles"
12
- :key="handle"
13
- :style="{ display: enabled ? 'block' : 'none' }"
14
- @mousedown.stop.prevent="handleDown(handle, $event)"
15
- @touchstart.stop.prevent="handleTouchDown(handle, $event)"
16
- >
17
- <slot :name="handle"></slot>
18
- </div>
19
- <slot></slot>
20
- </div>
21
- </template>
22
-
23
- <script>
24
- import {
25
- matchesSelectorToParentElements,
26
- addEvent,
27
- removeEvent,
28
- } from './utils/dom'
29
- import { computeWidth, restrictToBounds, snapToGrid } from './utils/fns'
30
-
31
- const events = {
32
- mouse: {
33
- start: 'mousedown',
34
- move: 'mousemove',
35
- stop: 'mouseup',
36
- },
37
- touch: {
38
- start: 'touchstart',
39
- move: 'touchmove',
40
- stop: 'touchend',
41
- },
42
- }
43
-
44
- const userSelectNone = {
45
- userSelect: 'none',
46
- MozUserSelect: 'none',
47
- WebkitUserSelect: 'none',
48
- MsUserSelect: 'none',
49
- }
50
-
51
- const userSelectAuto = {
52
- userSelect: 'auto',
53
- MozUserSelect: 'auto',
54
- WebkitUserSelect: 'auto',
55
- MsUserSelect: 'auto',
56
- }
57
-
58
- let eventsFor = events.mouse
59
-
60
- export default {
61
- replace: true,
62
- name: 'SliderComponent',
63
- props: {
64
- dataId: {
65
- type: String,
66
- default: '',
67
- },
68
- dataQaId: {
69
- type: String,
70
- default: '',
71
- },
72
- className: {
73
- type: String,
74
- default: 'vdr',
75
- },
76
- disableUserSelect: {
77
- type: Boolean,
78
- default: true,
79
- },
80
- preventDeactivation: {
81
- type: Boolean,
82
- default: false,
83
- },
84
- active: {
85
- type: Boolean,
86
- default: false,
87
- },
88
- draggable: {
89
- type: Boolean,
90
- default: true,
91
- },
92
- resizable: {
93
- type: Boolean,
94
- default: true,
95
- },
96
- minWidth: {
97
- type: Number,
98
- default: 1,
99
- validator: (val) => val >= 0,
100
- },
101
- step: {
102
- type: Number,
103
- default: 1,
104
- validator: (val) => val > 0,
105
- },
106
- stepCount: {
107
- type: Number,
108
- default: 0,
109
- validator: (val) => val > 0,
110
- },
111
- subStepCount: {
112
- type: Number,
113
- default: 0,
114
- validator: (val) => val >= 0,
115
- },
116
- h: {
117
- type: [Number, String],
118
- default: 'auto',
119
- validator: (val) => {
120
- if (typeof val === 'number') {
121
- return val > 0
122
- }
123
-
124
- return val === 'auto'
125
- },
126
- },
127
- z: {
128
- type: [String, Number],
129
- default: 'auto',
130
- validator: (val) =>
131
- typeof val === 'string' ? val === 'auto' : val >= 0,
132
- },
133
- min: {
134
- type: Number,
135
- default: 0,
136
- validator: (val) => val >= 0,
137
- },
138
- max: {
139
- type: Number,
140
- default: 0,
141
- validator: (val) => val >= 0,
142
- },
143
- dragHandle: {
144
- type: String,
145
- default: null,
146
- },
147
- dragCancel: {
148
- type: String,
149
- default: null,
150
- },
151
- onDrag: {
152
- type: Function,
153
- default: () => true,
154
- },
155
- onResize: {
156
- type: Function,
157
- default: () => true,
158
- },
159
- },
160
-
161
- data: function () {
162
- return {
163
- left: null,
164
- right: null,
165
- width: null,
166
- height: null,
167
- parentWidth: null,
168
- parentHeight: null,
169
- widthTouched: false,
170
- heightTouched: false,
171
-
172
- handle: null,
173
- resizing: false,
174
- dragging: false,
175
- dragEnable: false,
176
- resizeEnable: false,
177
- enabled: this.active,
178
-
179
- zIndex: this.z,
180
- handles: ['ml', 'mr'],
181
- }
182
- },
183
- computed: {
184
- style() {
185
- return {
186
- transform: `translate(${this.left}px, 0px)`,
187
- width: this.computedWidth,
188
- height: this.computedHeight,
189
- zIndex: this.zIndex,
190
- ...(this.dragging && this.disableUserSelect
191
- ? userSelectNone
192
- : userSelectAuto),
193
- }
194
- },
195
- actualHandles() {
196
- if (!this.resizable) return []
197
-
198
- return this.handles
199
- },
200
- pxPerStep() {
201
- return this.parentWidth / this.stepCount
202
- },
203
- minWidthByPx() {
204
- return this.minWidth * this.pxPerStep
205
- },
206
- computedWidth() {
207
- if (this.width === 'auto') {
208
- if (!this.widthTouched) {
209
- return 'auto'
210
- }
211
- }
212
-
213
- return this.width + 'px'
214
- },
215
- computedHeight() {
216
- if (this.height === 'auto') {
217
- if (!this.heightTouched) {
218
- return 'auto'
219
- }
220
- }
221
-
222
- return this.height + 'px'
223
- },
224
- },
225
-
226
- watch: {
227
- active(val) {
228
- this.enabled = val
229
-
230
- if (val) {
231
- this.$emit('activated')
232
- } else {
233
- this.$emit('deactivated')
234
- }
235
- },
236
- z(val) {
237
- if (val >= 0 || val === 'auto') {
238
- this.zIndex = val
239
- }
240
- },
241
- },
242
-
243
- created: function () {
244
- this.resetBoundsAndMouseState()
245
- },
246
- mounted: function () {
247
- const [parentWidth, parentHeight] = this.getParentSize()
248
-
249
- this.parentWidth = parentWidth
250
- this.parentHeight = parentHeight
251
-
252
- this.left = this.min * this.pxPerStep
253
- this.right = this.max * this.pxPerStep
254
- this.width = computeWidth(this.left, this.right)
255
- this.height = this.h !== 'auto' ? this.h : parentHeight
256
-
257
- if (this.active) {
258
- this.$emit('activated')
259
- }
260
-
261
- addEvent(document.documentElement, 'mousedown', this.deselect)
262
- addEvent(document.documentElement, 'touchend touchcancel', this.deselect)
263
-
264
- addEvent(window, 'resize', this.checkParentSize)
265
- },
266
- beforeUnmount: function () {
267
- removeEvent(document.documentElement, 'mousedown', this.deselect)
268
- removeEvent(document.documentElement, 'touchstart', this.handleUp)
269
- removeEvent(document.documentElement, 'mousemove', this.move)
270
- removeEvent(document.documentElement, 'touchmove', this.move)
271
- removeEvent(document.documentElement, 'mouseup', this.handleUp)
272
- removeEvent(
273
- document.documentElement,
274
- 'touchend touchcancel',
275
- this.deselect
276
- )
277
-
278
- removeEvent(window, 'resize', this.checkParentSize)
279
- },
280
-
281
- methods: {
282
- resetBoundsAndMouseState() {
283
- this.mouseClickPosition = {
284
- mouseX: 0,
285
- mouseY: 0,
286
- x: 0,
287
- y: 0,
288
- w: 0,
289
- h: 0,
290
- }
291
-
292
- this.bounds = {
293
- minLeft: null,
294
- maxLeft: null,
295
- minRight: null,
296
- maxRight: null,
297
- }
298
- },
299
- checkParentSize() {
300
- const [newParentWidth, newParentHeight] = this.getParentSize()
301
-
302
- this.parentWidth = newParentWidth
303
- this.parentHeight = newParentHeight
304
- },
305
- getParentSize() {
306
- const style = window.getComputedStyle(this.$el.parentNode, null)
307
-
308
- return [
309
- parseInt(style.getPropertyValue('width'), 10),
310
- parseInt(style.getPropertyValue('height'), 10),
311
- ]
312
- },
313
- elementTouchDown(e) {
314
- eventsFor = events.touch
315
-
316
- this.elementDown(e)
317
- },
318
- elementMouseDown(e) {
319
- eventsFor = events.mouse
320
-
321
- this.elementDown(e)
322
- },
323
- elementDown(e) {
324
- if (e instanceof MouseEvent && e.button !== 0) {
325
- return
326
- }
327
-
328
- const target = e.target || e.srcElement
329
-
330
- if (this.$el.contains(target)) {
331
- if (
332
- (this.dragHandle &&
333
- !matchesSelectorToParentElements(
334
- target,
335
- this.dragHandle,
336
- this.$el
337
- )) ||
338
- (this.dragCancel &&
339
- matchesSelectorToParentElements(
340
- target,
341
- this.dragCancel,
342
- this.$el
343
- ))
344
- ) {
345
- this.dragging = false
346
-
347
- return
348
- }
349
-
350
- if (!this.enabled) {
351
- this.enabled = true
352
-
353
- this.$emit('activated')
354
- this.$emit('update:active', true)
355
- }
356
-
357
- if (this.draggable) {
358
- this.dragEnable = true
359
- }
360
-
361
- const newPosition = {
362
- ...this.mouseClickPosition,
363
- mouseX: e.touches ? e.touches[0].pageX : e.pageX,
364
- left: this.left,
365
- right: this.right,
366
- }
367
-
368
- this.mouseClickPosition = newPosition
369
- this.bounds = this.calcDragLimits()
370
-
371
- addEvent(document.documentElement, eventsFor.move, this.move)
372
- addEvent(document.documentElement, eventsFor.stop, this.handleUp)
373
- }
374
- },
375
- calcDragLimits() {
376
- const limits = {
377
- minLeft: null,
378
- maxLeft: null,
379
- minRight: null,
380
- maxRight: null,
381
- }
382
-
383
- limits.minLeft = 0
384
- limits.maxLeft = this.parentWidth - this.width
385
- limits.minRight = this.width
386
- limits.maxRight = this.parentWidth
387
-
388
- return limits
389
- },
390
- deselect(e) {
391
- const target = e.target || e.srcElement
392
- const regex = new RegExp(this.className + '-([trmbl]{2})', '')
393
-
394
- if (!this.$el.contains(target) && !regex.test(target.className)) {
395
- if (this.enabled && !this.preventDeactivation) {
396
- this.enabled = false
397
-
398
- this.$emit('deactivated')
399
- this.$emit('update:active', false)
400
- }
401
-
402
- removeEvent(
403
- document.documentElement,
404
- eventsFor.move,
405
- this.handleResize
406
- )
407
- }
408
-
409
- this.resetBoundsAndMouseState()
410
- },
411
- handleTouchDown(handle, e) {
412
- eventsFor = events.touch
413
-
414
- this.handleDown(handle, e)
415
- },
416
- handleDown(handle, e) {
417
- if (e instanceof MouseEvent && e.which !== 1) {
418
- return
419
- }
420
-
421
- if (e.stopPropagation) e.stopPropagation()
422
-
423
- this.handle = handle
424
- this.resizeEnable = true
425
-
426
- const newPosition = {
427
- ...this.mouseClickPosition,
428
- mouseX: e.touches ? e.touches[0].pageX : e.pageX,
429
- left: this.left,
430
- right: this.right,
431
- }
432
-
433
- this.mouseClickPosition = newPosition
434
- this.bounds = this.calcResizeLimits()
435
-
436
- addEvent(document.documentElement, eventsFor.move, this.handleResize)
437
- addEvent(document.documentElement, eventsFor.stop, this.handleUp)
438
- },
439
- calcResizeLimits() {
440
- const limits = {
441
- minLeft: null,
442
- maxLeft: null,
443
- minRight: null,
444
- maxRight: null,
445
- }
446
-
447
- limits.minLeft = 0
448
- limits.maxLeft = this.right - this.minWidthByPx
449
- limits.minRight = this.left + this.minWidthByPx
450
- limits.maxRight = this.parentWidth
451
-
452
- return limits
453
- },
454
- move(e) {
455
- if (this.resizing) {
456
- this.handleResize(e)
457
- } else if (this.dragEnable) {
458
- this.handleDrag(e)
459
- }
460
- },
461
- handleDrag(e) {
462
- let left = this.left
463
- let right = this.right
464
- const bounds = this.bounds
465
- const mouseClickPosition = this.mouseClickPosition
466
-
467
- const tmpDeltaX =
468
- mouseClickPosition.mouseX - (e.touches ? e.touches[0].pageX : e.pageX)
469
-
470
- const deltaX = snapToGrid(
471
- this.parentWidth / this.subStepCount,
472
- tmpDeltaX
473
- )
474
-
475
- left = restrictToBounds(
476
- mouseClickPosition.left - deltaX,
477
- bounds.minLeft,
478
- bounds.maxLeft
479
- )
480
-
481
- right = restrictToBounds(
482
- mouseClickPosition.right - deltaX,
483
- bounds.minRight,
484
- bounds.maxRight
485
- )
486
-
487
- this.left = left
488
- this.right = right
489
-
490
- this.$emit('dragging', this.left, this.right)
491
- this.dragging = true
492
- },
493
- handleResize(e) {
494
- let left = this.left
495
- let right = this.right
496
- const bounds = this.bounds
497
- const mouseClickPosition = this.mouseClickPosition
498
-
499
- const tmpDeltaX =
500
- mouseClickPosition.mouseX - (e.touches ? e.touches[0].pageX : e.pageX)
501
-
502
- if (!this.widthTouched && tmpDeltaX) {
503
- this.widthTouched = true
504
- }
505
-
506
- const deltaX = snapToGrid(
507
- this.parentWidth / this.subStepCount,
508
- tmpDeltaX
509
- )
510
-
511
- if (this.handle.includes('r')) {
512
- right = restrictToBounds(
513
- mouseClickPosition.right - deltaX,
514
- bounds.minRight,
515
- bounds.maxRight
516
- )
517
- } else if (this.handle.includes('l')) {
518
- left = restrictToBounds(
519
- mouseClickPosition.left - deltaX,
520
- bounds.minLeft,
521
- bounds.maxLeft
522
- )
523
- }
524
-
525
- const width = computeWidth(left, right)
526
-
527
- if (this.onResize(this.handle, left, width, this.height) === false) {
528
- return
529
- }
530
-
531
- this.left = left
532
- this.right = right
533
- this.width = width
534
-
535
- this.$emit('resizing', this.left, this.right)
536
- this.resizing = true
537
- },
538
- handleUp() {
539
- this.handle = null
540
-
541
- this.dragEnable = false
542
- this.resizeEnable = false
543
-
544
- if (this.resizing) {
545
- this.resizing = false
546
- this.$emit('resizeStop', {
547
- min: this.roundToNearestStep(this.left),
548
- max: this.roundToNearestStep(this.right),
549
- })
550
- }
551
-
552
- if (this.dragging) {
553
- this.dragging = false
554
- this.$emit('dragStop', {
555
- min: this.roundToNearestStep(this.left),
556
- max: this.roundToNearestStep(this.right),
557
- })
558
- }
559
-
560
- removeEvent(document.documentElement, eventsFor.move, this.handleResize)
561
- },
562
- roundToNearestStep(value) {
563
- const val = value / this.pxPerStep
564
-
565
- const int = 1.0 / this.step
566
- return (Math.round(val * int) / int).toFixed(2)
567
- },
568
- },
569
- }
570
- </script>
571
- <style scoped>
572
- .vdr {
573
- touch-action: none;
574
- position: absolute;
575
- box-sizing: border-box;
576
- border: 1px dashed black;
577
- }
578
- </style>
1
+ <template>
2
+ <div
3
+ :class="className"
4
+ :data-id="dataId"
5
+ :data-qa-id="dataQaId"
6
+ :style="style"
7
+ @mousedown="elementMouseDown"
8
+ @touchstart="elementTouchDown"
9
+ >
10
+ <div
11
+ v-for="handle in actualHandles"
12
+ :key="handle"
13
+ :style="{ display: enabled ? 'block' : 'none' }"
14
+ @mousedown.stop.prevent="handleDown(handle, $event)"
15
+ @touchstart.stop.prevent="handleTouchDown(handle, $event)"
16
+ >
17
+ <slot :name="handle"></slot>
18
+ </div>
19
+ <slot></slot>
20
+ </div>
21
+ </template>
22
+
23
+ <script>
24
+ import {
25
+ matchesSelectorToParentElements,
26
+ addEvent,
27
+ removeEvent,
28
+ } from './utils/dom'
29
+ import { computeWidth, restrictToBounds, snapToGrid } from './utils/fns'
30
+
31
+ const events = {
32
+ mouse: {
33
+ start: 'mousedown',
34
+ move: 'mousemove',
35
+ stop: 'mouseup',
36
+ },
37
+ touch: {
38
+ start: 'touchstart',
39
+ move: 'touchmove',
40
+ stop: 'touchend',
41
+ },
42
+ }
43
+
44
+ const userSelectNone = {
45
+ userSelect: 'none',
46
+ MozUserSelect: 'none',
47
+ WebkitUserSelect: 'none',
48
+ MsUserSelect: 'none',
49
+ }
50
+
51
+ const userSelectAuto = {
52
+ userSelect: 'auto',
53
+ MozUserSelect: 'auto',
54
+ WebkitUserSelect: 'auto',
55
+ MsUserSelect: 'auto',
56
+ }
57
+
58
+ let eventsFor = events.mouse
59
+
60
+ export default {
61
+ replace: true,
62
+ name: 'SliderComponent',
63
+ props: {
64
+ dataId: {
65
+ type: String,
66
+ default: '',
67
+ },
68
+ dataQaId: {
69
+ type: String,
70
+ default: '',
71
+ },
72
+ className: {
73
+ type: String,
74
+ default: 'vdr',
75
+ },
76
+ disableUserSelect: {
77
+ type: Boolean,
78
+ default: true,
79
+ },
80
+ preventDeactivation: {
81
+ type: Boolean,
82
+ default: false,
83
+ },
84
+ active: {
85
+ type: Boolean,
86
+ default: false,
87
+ },
88
+ draggable: {
89
+ type: Boolean,
90
+ default: true,
91
+ },
92
+ resizable: {
93
+ type: Boolean,
94
+ default: true,
95
+ },
96
+ minWidth: {
97
+ type: Number,
98
+ default: 1,
99
+ validator: (val) => val >= 0,
100
+ },
101
+ step: {
102
+ type: Number,
103
+ default: 1,
104
+ validator: (val) => val > 0,
105
+ },
106
+ stepCount: {
107
+ type: Number,
108
+ default: 0,
109
+ validator: (val) => val > 0,
110
+ },
111
+ subStepCount: {
112
+ type: Number,
113
+ default: 0,
114
+ validator: (val) => val >= 0,
115
+ },
116
+ h: {
117
+ type: [Number, String],
118
+ default: 'auto',
119
+ validator: (val) => {
120
+ if (typeof val === 'number') {
121
+ return val > 0
122
+ }
123
+
124
+ return val === 'auto'
125
+ },
126
+ },
127
+ z: {
128
+ type: [String, Number],
129
+ default: 'auto',
130
+ validator: (val) =>
131
+ typeof val === 'string' ? val === 'auto' : val >= 0,
132
+ },
133
+ min: {
134
+ type: Number,
135
+ default: 0,
136
+ validator: (val) => val >= 0,
137
+ },
138
+ max: {
139
+ type: Number,
140
+ default: 0,
141
+ validator: (val) => val >= 0,
142
+ },
143
+ dragHandle: {
144
+ type: String,
145
+ default: null,
146
+ },
147
+ dragCancel: {
148
+ type: String,
149
+ default: null,
150
+ },
151
+ onDrag: {
152
+ type: Function,
153
+ default: () => true,
154
+ },
155
+ onResize: {
156
+ type: Function,
157
+ default: () => true,
158
+ },
159
+ },
160
+
161
+ data: function () {
162
+ return {
163
+ left: null,
164
+ right: null,
165
+ width: null,
166
+ height: null,
167
+ parentWidth: null,
168
+ parentHeight: null,
169
+ widthTouched: false,
170
+ heightTouched: false,
171
+
172
+ handle: null,
173
+ resizing: false,
174
+ dragging: false,
175
+ dragEnable: false,
176
+ resizeEnable: false,
177
+ enabled: this.active,
178
+
179
+ zIndex: this.z,
180
+ handles: ['ml', 'mr'],
181
+ }
182
+ },
183
+ computed: {
184
+ style() {
185
+ return {
186
+ transform: `translate(${this.left}px, 0px)`,
187
+ width: this.computedWidth,
188
+ height: this.computedHeight,
189
+ zIndex: this.zIndex,
190
+ ...(this.dragging && this.disableUserSelect
191
+ ? userSelectNone
192
+ : userSelectAuto),
193
+ }
194
+ },
195
+ actualHandles() {
196
+ if (!this.resizable) return []
197
+
198
+ return this.handles
199
+ },
200
+ pxPerStep() {
201
+ return this.parentWidth / this.stepCount
202
+ },
203
+ minWidthByPx() {
204
+ return this.minWidth * this.pxPerStep
205
+ },
206
+ computedWidth() {
207
+ if (this.width === 'auto') {
208
+ if (!this.widthTouched) {
209
+ return 'auto'
210
+ }
211
+ }
212
+
213
+ return this.width + 'px'
214
+ },
215
+ computedHeight() {
216
+ if (this.height === 'auto') {
217
+ if (!this.heightTouched) {
218
+ return 'auto'
219
+ }
220
+ }
221
+
222
+ return this.height + 'px'
223
+ },
224
+ },
225
+
226
+ watch: {
227
+ active(val) {
228
+ this.enabled = val
229
+
230
+ if (val) {
231
+ this.$emit('activated')
232
+ } else {
233
+ this.$emit('deactivated')
234
+ }
235
+ },
236
+ z(val) {
237
+ if (val >= 0 || val === 'auto') {
238
+ this.zIndex = val
239
+ }
240
+ },
241
+ },
242
+
243
+ created: function () {
244
+ this.resetBoundsAndMouseState()
245
+ },
246
+ mounted: function () {
247
+ const [parentWidth, parentHeight] = this.getParentSize()
248
+
249
+ this.parentWidth = parentWidth
250
+ this.parentHeight = parentHeight
251
+
252
+ this.left = this.min * this.pxPerStep
253
+ this.right = this.max * this.pxPerStep
254
+ this.width = computeWidth(this.left, this.right)
255
+ this.height = this.h !== 'auto' ? this.h : parentHeight
256
+
257
+ if (this.active) {
258
+ this.$emit('activated')
259
+ }
260
+
261
+ addEvent(document.documentElement, 'mousedown', this.deselect)
262
+ addEvent(document.documentElement, 'touchend touchcancel', this.deselect)
263
+
264
+ addEvent(window, 'resize', this.checkParentSize)
265
+ },
266
+ beforeUnmount: function () {
267
+ removeEvent(document.documentElement, 'mousedown', this.deselect)
268
+ removeEvent(document.documentElement, 'touchstart', this.handleUp)
269
+ removeEvent(document.documentElement, 'mousemove', this.move)
270
+ removeEvent(document.documentElement, 'touchmove', this.move)
271
+ removeEvent(document.documentElement, 'mouseup', this.handleUp)
272
+ removeEvent(
273
+ document.documentElement,
274
+ 'touchend touchcancel',
275
+ this.deselect
276
+ )
277
+
278
+ removeEvent(window, 'resize', this.checkParentSize)
279
+ },
280
+
281
+ methods: {
282
+ resetBoundsAndMouseState() {
283
+ this.mouseClickPosition = {
284
+ mouseX: 0,
285
+ mouseY: 0,
286
+ x: 0,
287
+ y: 0,
288
+ w: 0,
289
+ h: 0,
290
+ }
291
+
292
+ this.bounds = {
293
+ minLeft: null,
294
+ maxLeft: null,
295
+ minRight: null,
296
+ maxRight: null,
297
+ }
298
+ },
299
+ checkParentSize() {
300
+ const [newParentWidth, newParentHeight] = this.getParentSize()
301
+
302
+ this.parentWidth = newParentWidth
303
+ this.parentHeight = newParentHeight
304
+ },
305
+ getParentSize() {
306
+ const style = window.getComputedStyle(this.$el.parentNode, null)
307
+
308
+ return [
309
+ parseInt(style.getPropertyValue('width'), 10),
310
+ parseInt(style.getPropertyValue('height'), 10),
311
+ ]
312
+ },
313
+ elementTouchDown(e) {
314
+ eventsFor = events.touch
315
+
316
+ this.elementDown(e)
317
+ },
318
+ elementMouseDown(e) {
319
+ eventsFor = events.mouse
320
+
321
+ this.elementDown(e)
322
+ },
323
+ elementDown(e) {
324
+ if (e instanceof MouseEvent && e.button !== 0) {
325
+ return
326
+ }
327
+
328
+ const target = e.target || e.srcElement
329
+
330
+ if (this.$el.contains(target)) {
331
+ if (
332
+ (this.dragHandle &&
333
+ !matchesSelectorToParentElements(
334
+ target,
335
+ this.dragHandle,
336
+ this.$el
337
+ )) ||
338
+ (this.dragCancel &&
339
+ matchesSelectorToParentElements(
340
+ target,
341
+ this.dragCancel,
342
+ this.$el
343
+ ))
344
+ ) {
345
+ this.dragging = false
346
+
347
+ return
348
+ }
349
+
350
+ if (!this.enabled) {
351
+ this.enabled = true
352
+
353
+ this.$emit('activated')
354
+ this.$emit('update:active', true)
355
+ }
356
+
357
+ if (this.draggable) {
358
+ this.dragEnable = true
359
+ }
360
+
361
+ const newPosition = {
362
+ ...this.mouseClickPosition,
363
+ mouseX: e.touches ? e.touches[0].pageX : e.pageX,
364
+ left: this.left,
365
+ right: this.right,
366
+ }
367
+
368
+ this.mouseClickPosition = newPosition
369
+ this.bounds = this.calcDragLimits()
370
+
371
+ addEvent(document.documentElement, eventsFor.move, this.move)
372
+ addEvent(document.documentElement, eventsFor.stop, this.handleUp)
373
+ }
374
+ },
375
+ calcDragLimits() {
376
+ const limits = {
377
+ minLeft: null,
378
+ maxLeft: null,
379
+ minRight: null,
380
+ maxRight: null,
381
+ }
382
+
383
+ limits.minLeft = 0
384
+ limits.maxLeft = this.parentWidth - this.width
385
+ limits.minRight = this.width
386
+ limits.maxRight = this.parentWidth
387
+
388
+ return limits
389
+ },
390
+ deselect(e) {
391
+ const target = e.target || e.srcElement
392
+ const regex = new RegExp(this.className + '-([trmbl]{2})', '')
393
+
394
+ if (!this.$el.contains(target) && !regex.test(target.className)) {
395
+ if (this.enabled && !this.preventDeactivation) {
396
+ this.enabled = false
397
+
398
+ this.$emit('deactivated')
399
+ this.$emit('update:active', false)
400
+ }
401
+
402
+ removeEvent(
403
+ document.documentElement,
404
+ eventsFor.move,
405
+ this.handleResize
406
+ )
407
+ }
408
+
409
+ this.resetBoundsAndMouseState()
410
+ },
411
+ handleTouchDown(handle, e) {
412
+ eventsFor = events.touch
413
+
414
+ this.handleDown(handle, e)
415
+ },
416
+ handleDown(handle, e) {
417
+ if (e instanceof MouseEvent && e.which !== 1) {
418
+ return
419
+ }
420
+
421
+ if (e.stopPropagation) e.stopPropagation()
422
+
423
+ this.handle = handle
424
+ this.resizeEnable = true
425
+
426
+ const newPosition = {
427
+ ...this.mouseClickPosition,
428
+ mouseX: e.touches ? e.touches[0].pageX : e.pageX,
429
+ left: this.left,
430
+ right: this.right,
431
+ }
432
+
433
+ this.mouseClickPosition = newPosition
434
+ this.bounds = this.calcResizeLimits()
435
+
436
+ addEvent(document.documentElement, eventsFor.move, this.handleResize)
437
+ addEvent(document.documentElement, eventsFor.stop, this.handleUp)
438
+ },
439
+ calcResizeLimits() {
440
+ const limits = {
441
+ minLeft: null,
442
+ maxLeft: null,
443
+ minRight: null,
444
+ maxRight: null,
445
+ }
446
+
447
+ limits.minLeft = 0
448
+ limits.maxLeft = this.right - this.minWidthByPx
449
+ limits.minRight = this.left + this.minWidthByPx
450
+ limits.maxRight = this.parentWidth
451
+
452
+ return limits
453
+ },
454
+ move(e) {
455
+ if (this.resizing) {
456
+ this.handleResize(e)
457
+ } else if (this.dragEnable) {
458
+ this.handleDrag(e)
459
+ }
460
+ },
461
+ handleDrag(e) {
462
+ let left = this.left
463
+ let right = this.right
464
+ const bounds = this.bounds
465
+ const mouseClickPosition = this.mouseClickPosition
466
+
467
+ const tmpDeltaX =
468
+ mouseClickPosition.mouseX - (e.touches ? e.touches[0].pageX : e.pageX)
469
+
470
+ const deltaX = snapToGrid(
471
+ this.parentWidth / this.subStepCount,
472
+ tmpDeltaX
473
+ )
474
+
475
+ left = restrictToBounds(
476
+ mouseClickPosition.left - deltaX,
477
+ bounds.minLeft,
478
+ bounds.maxLeft
479
+ )
480
+
481
+ right = restrictToBounds(
482
+ mouseClickPosition.right - deltaX,
483
+ bounds.minRight,
484
+ bounds.maxRight
485
+ )
486
+
487
+ this.left = left
488
+ this.right = right
489
+
490
+ this.$emit('dragging', this.left, this.right)
491
+ this.dragging = true
492
+ },
493
+ handleResize(e) {
494
+ let left = this.left
495
+ let right = this.right
496
+ const bounds = this.bounds
497
+ const mouseClickPosition = this.mouseClickPosition
498
+
499
+ const tmpDeltaX =
500
+ mouseClickPosition.mouseX - (e.touches ? e.touches[0].pageX : e.pageX)
501
+
502
+ if (!this.widthTouched && tmpDeltaX) {
503
+ this.widthTouched = true
504
+ }
505
+
506
+ const deltaX = snapToGrid(
507
+ this.parentWidth / this.subStepCount,
508
+ tmpDeltaX
509
+ )
510
+
511
+ if (this.handle.includes('r')) {
512
+ right = restrictToBounds(
513
+ mouseClickPosition.right - deltaX,
514
+ bounds.minRight,
515
+ bounds.maxRight
516
+ )
517
+ } else if (this.handle.includes('l')) {
518
+ left = restrictToBounds(
519
+ mouseClickPosition.left - deltaX,
520
+ bounds.minLeft,
521
+ bounds.maxLeft
522
+ )
523
+ }
524
+
525
+ const width = computeWidth(left, right)
526
+
527
+ if (this.onResize(this.handle, left, width, this.height) === false) {
528
+ return
529
+ }
530
+
531
+ this.left = left
532
+ this.right = right
533
+ this.width = width
534
+
535
+ this.$emit('resizing', this.left, this.right)
536
+ this.resizing = true
537
+ },
538
+ handleUp() {
539
+ this.handle = null
540
+
541
+ this.dragEnable = false
542
+ this.resizeEnable = false
543
+
544
+ if (this.resizing) {
545
+ this.resizing = false
546
+ this.$emit('resizeStop', {
547
+ min: this.roundToNearestStep(this.left),
548
+ max: this.roundToNearestStep(this.right),
549
+ })
550
+ }
551
+
552
+ if (this.dragging) {
553
+ this.dragging = false
554
+ this.$emit('dragStop', {
555
+ min: this.roundToNearestStep(this.left),
556
+ max: this.roundToNearestStep(this.right),
557
+ })
558
+ }
559
+
560
+ removeEvent(document.documentElement, eventsFor.move, this.handleResize)
561
+ },
562
+ roundToNearestStep(value) {
563
+ const val = value / this.pxPerStep
564
+
565
+ const int = 1.0 / this.step
566
+ return (Math.round(val * int) / int).toFixed(2)
567
+ },
568
+ },
569
+ }
570
+ </script>
571
+ <style scoped>
572
+ .vdr {
573
+ touch-action: none;
574
+ position: absolute;
575
+ box-sizing: border-box;
576
+ border: 1px dashed black;
577
+ }
578
+ </style>