aloha-vue 2.62.0 → 2.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/CHANGELOG.md +1070 -1061
  2. package/dist/aloha-vue.css +14 -6
  3. package/dist/aloha-vue.css.map +1 -1
  4. package/dist/aloha-vue.es.js +17124 -16970
  5. package/dist/aloha-vue.umd.js +69 -69
  6. package/package.json +99 -99
  7. package/scss/_base.scss +62 -62
  8. package/scss/aloha-vue.scss +68 -68
  9. package/scss/components/AFilters.scss +304 -304
  10. package/scss/components/AFormElement/AValidatedJson.scss +6 -6
  11. package/scss/components/AMenu.scss +627 -627
  12. package/scss/components/AModal.scss +44 -44
  13. package/scss/components/APagination.scss +167 -167
  14. package/scss/components/ARate.scss +78 -78
  15. package/scss/components/AResizer.scss +63 -63
  16. package/scss/components/ATable.scss +819 -819
  17. package/scss/components/ATableForm.scss +309 -288
  18. package/scss/components/AVerticalScroll.scss +47 -47
  19. package/scss/components/AWizard.scss +669 -669
  20. package/scss/components/ui/ADatepicker.scss +342 -342
  21. package/scss/components/ui/ADatepickerRange.scss +45 -45
  22. package/scss/components/ui/AFieldset.scss +78 -78
  23. package/scss/components/ui/AInputNumber.scss +62 -62
  24. package/scss/components/ui/AInputNumberRange.scss +30 -30
  25. package/scss/components/ui/ASelect.scss +236 -236
  26. package/scss/components/ui/ASlider.scss +186 -186
  27. package/scss/components/ui/ASwitch.scss +148 -148
  28. package/scss/components/ui/ui.scss +254 -254
  29. package/scss/text/text_alignment.scss +39 -39
  30. package/scss/text/text_transform.scss +51 -51
  31. package/scss/text/text_wrapping.scss +40 -40
  32. package/scss/utils/badge.scss +45 -45
  33. package/scss/utils/checkbox_radio.scss +134 -134
  34. package/scss/utils/color.scss +46 -46
  35. package/scss/utils/dropdown.scss +185 -185
  36. package/scss/utils/list.scss +75 -75
  37. package/scss/utils/modal.scss +173 -173
  38. package/scss/utils/sizing.scss +137 -137
  39. package/scss/utils/spacing.scss +63 -63
  40. package/scss/utils/tooltip.scss +63 -63
  41. package/src/AAccordion/AAccordion.js +206 -206
  42. package/src/AAccordion/compositionAPI/IndexesForOpenAPI.js +63 -63
  43. package/src/AAccordion/compositionAPI/ToggleAPI.js +85 -85
  44. package/src/AAlert/AAlert.js +216 -216
  45. package/src/AAlert/compositionAPI/ClassAPI.js +21 -21
  46. package/src/AAlert/i18n/AAlertI18n.js +19 -19
  47. package/src/AAlert/i18n/ar.json +2 -2
  48. package/src/AAlert/i18n/de.json +2 -2
  49. package/src/AAlert/i18n/en.json +2 -2
  50. package/src/AAlert/i18n/es.json +2 -2
  51. package/src/AAlert/i18n/fr.json +2 -2
  52. package/src/AAlert/i18n/hr.json +2 -2
  53. package/src/AAlert/i18n/it.json +2 -2
  54. package/src/AAlert/i18n/ru.json +2 -2
  55. package/src/AButton/AButton.js +275 -275
  56. package/src/ACarousel/ACarousel.js +361 -361
  57. package/src/ACarousel/ACarouselBtn/ACarouselBtn.js +75 -75
  58. package/src/ACarousel/ACarouselBtn/compositionAPI/ClassAPI.js +16 -16
  59. package/src/ACarousel/ACarouselBtn/compositionAPI/TextAPI.js +25 -25
  60. package/src/ACarousel/ACarouselControls/ACarouselControls.js +114 -114
  61. package/src/ACarousel/ACarouselControls/ACarouselControlsIndicator/ACarouselControlsIndicator.js +146 -146
  62. package/src/ACarousel/ACarouselControls/ACarouselControlsIndicator/compositionAPI/ActiveAPI.js +33 -33
  63. package/src/ACarousel/ACarouselControls/ACarouselControlsIndicator/compositionAPI/AttributesAPI.js +40 -40
  64. package/src/ACarousel/ACarouselControls/ACarouselControlsIndicator/compositionAPI/EventsAPI.js +25 -25
  65. package/src/ACarousel/ACarouselControls/ACarouselControlsIndicator/compositionAPI/IconAPI.js +20 -20
  66. package/src/ACarousel/ACarouselControls/compositionAPI/AriaLabelAPI.js +20 -20
  67. package/src/ACarousel/ACarouselItem/ACarouselItem.js +83 -83
  68. package/src/ACarousel/ACarouselItem/compositionAPI/AttributesAPI.js +39 -39
  69. package/src/ACarousel/ACarouselItem/compositionAPI/IsActiveAPI.js +21 -21
  70. package/src/ACarousel/compositionAPI/ActiveAPI.js +111 -111
  71. package/src/ACarousel/compositionAPI/AriaLabelAPI.js +25 -25
  72. package/src/ACarousel/compositionAPI/ArrowsAPI.js +17 -17
  73. package/src/ACarousel/compositionAPI/ClassAPI.js +44 -44
  74. package/src/ACarousel/compositionAPI/DataAPI.js +41 -41
  75. package/src/ACarousel/compositionAPI/IndicatorsAPI.js +148 -148
  76. package/src/ACarousel/compositionAPI/TextsAPI.js +25 -25
  77. package/src/ACarousel/i18n/ACarouselI18n.js +19 -19
  78. package/src/ACarousel/i18n/ar.json +8 -8
  79. package/src/ACarousel/i18n/de.json +8 -8
  80. package/src/ACarousel/i18n/en.json +8 -8
  81. package/src/ACarousel/i18n/es.json +8 -8
  82. package/src/ACarousel/i18n/fr.json +8 -8
  83. package/src/ACarousel/i18n/hr.json +8 -8
  84. package/src/ACarousel/i18n/it.json +8 -8
  85. package/src/ACarousel/i18n/ru.json +8 -8
  86. package/src/ACollapse/ACollapse.js +103 -103
  87. package/src/ADropdown/ADropdown.js +544 -544
  88. package/src/ADropdown/ADropdownGroup.js +85 -85
  89. package/src/ADropdown/compositionAPI/ActionsAPI.js +147 -147
  90. package/src/ADropdown/compositionAPI/AttributesAPI.js +100 -100
  91. package/src/AElement/AElement.js +518 -518
  92. package/src/AElement/compositionAPI/AttributesAPI.js +51 -51
  93. package/src/AElement/compositionAPI/ClickAPI.js +30 -30
  94. package/src/AElement/compositionAPI/ComponentLocalAPI.js +23 -23
  95. package/src/AElement/compositionAPI/DisabledAPI.js +22 -22
  96. package/src/AElement/compositionAPI/HtmlTitleAPI.js +33 -33
  97. package/src/AElement/compositionAPI/KeydownAPI.js +35 -35
  98. package/src/AElement/compositionAPI/LoadingAPI.js +22 -22
  99. package/src/AElement/compositionAPI/RouterLinkAPI.js +20 -20
  100. package/src/AElement/compositionAPI/SwitchAPI.js +33 -33
  101. package/src/AElement/compositionAPI/TagAPI.js +34 -34
  102. package/src/AElement/compositionAPI/TextAPI.js +78 -78
  103. package/src/AElement/compositionAPI/TitleAPI.js +29 -29
  104. package/src/AFilters/AFilterCenter/AFilterCenter.js +154 -154
  105. package/src/AFilters/AFilterCenter/AFilterCenterItem/AFilterCenterItem.js +207 -207
  106. package/src/AFilters/AFilters/AFilters.js +282 -282
  107. package/src/AFilters/i18n/ar.json +30 -30
  108. package/src/AFilters/i18n/en.json +30 -30
  109. package/src/AFilters/i18n/es.json +30 -30
  110. package/src/AFilters/i18n/fr.json +30 -30
  111. package/src/AFilters/i18n/hr.json +30 -30
  112. package/src/AFilters/i18n/it.json +30 -30
  113. package/src/AFilters/i18n/ru.json +30 -30
  114. package/src/AGroupButtonDropdown/compositionAPI/ActionsAPI.js +143 -143
  115. package/src/ALink/ALink.js +253 -253
  116. package/src/AMenu/AMenu.js +578 -578
  117. package/src/AMenu/AMenuBreadcrumbs/compositionAPI/RenderTruncatedAPI.js +74 -74
  118. package/src/AMenu/AMenuButtonToggle/AMenuButtonToggle.js +94 -94
  119. package/src/AMenu/AMenuButtonToggle/compositionAPI/ToggleAPI.js +95 -95
  120. package/src/AMenu/AMenuPanelLink/AMenuPanelLink.js +250 -250
  121. package/src/AMenu/compositionAPI/BackdropAPI.js +42 -42
  122. package/src/AMenu/compositionAPI/KeydownAPI.js +197 -197
  123. package/src/AMenu/compositionAPI/LinkClickAPI.js +48 -48
  124. package/src/AMenu/compositionAPI/MenuAttributesAPI.js +51 -51
  125. package/src/AMenu/compositionAPI/PanelsAPI.js +78 -78
  126. package/src/AMenu/compositionAPI/ResizeAPI.js +74 -74
  127. package/src/AModal/AModal.js +530 -530
  128. package/src/AModalForm/AModalForm.js +383 -383
  129. package/src/AModalWizard/AModalWizard.js +563 -563
  130. package/src/ANotification/ANotification.js +60 -60
  131. package/src/APagination/APagination.js +111 -111
  132. package/src/APagination/APaginationCountPerPage/APaginationCountPerPage.js +209 -209
  133. package/src/APagination/APaginationCountPerPage/compositionAPI/MainAPI.js +40 -40
  134. package/src/APagination/APaginationCountPerPage/compositionAPI/TextsAPI.js +54 -54
  135. package/src/APagination/APaginationPages/APaginationPages.js +282 -282
  136. package/src/APagination/APaginationPages/compositionAPI/PaginationItemsAPI.js +102 -102
  137. package/src/APagination/APaginationPages/compositionAPI/TextsAPI.js +74 -74
  138. package/src/APagination/compositionAPI/ComponentsAPI.js +79 -79
  139. package/src/APagination/i18n/ar.json +12 -12
  140. package/src/APagination/i18n/es.json +12 -12
  141. package/src/APagination/i18n/fr.json +12 -12
  142. package/src/APagination/i18n/hr.json +12 -12
  143. package/src/APagination/i18n/it.json +12 -12
  144. package/src/APagination/i18n/ru.json +12 -12
  145. package/src/APopup/APopup.js +115 -115
  146. package/src/ATable/ATable.js +1163 -1163
  147. package/src/ATable/ATableHeaderThAction/ATableHeaderThAction.js +241 -241
  148. package/src/ATable/ATableSortingAdditional/__tests__/ATableSortingAdditional.ModelAPI.test.js +200 -200
  149. package/src/ATable/ATableSortingAdditional/compositionAPI/ModelAPI.js +152 -152
  150. package/src/ATable/ATableTd/ATableTd.js +145 -145
  151. package/src/ATable/ATableTdAction/ATableTdAction.js +223 -223
  152. package/src/ATable/ATableTopPanel/ATableTopPanel.js +433 -433
  153. package/src/ATable/compositionAPI/ColumnActionAPI.js +105 -105
  154. package/src/ATable/compositionAPI/ColumnStylesAPI.js +50 -50
  155. package/src/ATable/compositionAPI/ColumnsGroupedAPI.js +187 -187
  156. package/src/ATable/compositionAPI/PaginationModesAPI.js +44 -44
  157. package/src/ATable/compositionAPI/PreviewAPI.js +201 -201
  158. package/src/ATable/compositionAPI/PreviewRightResizeAPI.js +135 -135
  159. package/src/ATable/compositionAPI/ScrollControlAPI.js +249 -249
  160. package/src/ATable/compositionAPI/SortAPI.js +86 -86
  161. package/src/ATable/compositionAPI/WidthAPI.js +73 -73
  162. package/src/ATableForm/ATableForm.js +610 -602
  163. package/src/ATableForm/ATableFormCell/ATableFormCell.js +183 -183
  164. package/src/ATableForm/ATableFormCell/compositionAPI/DisabledAPI.js +20 -20
  165. package/src/ATableForm/ATableFormCell/compositionAPI/ReadonlyAPI.js +28 -28
  166. package/src/ATableForm/ATableFormCellAction/ATableFormCellAction.js +282 -282
  167. package/src/ATableForm/ATableFormCellAction/compositionAPI/DeleteAPI.js +80 -80
  168. package/src/ATableForm/ATableFormCellAction/compositionAPI/DisabledAPI.js +60 -60
  169. package/src/ATableForm/ATableFormCellAction/compositionAPI/HiddenAPI.js +46 -46
  170. package/src/ATableForm/ATableFormCellAction/compositionAPI/IdsAPI.js +31 -31
  171. package/src/ATableForm/ATableFormCellAction/compositionAPI/StylesAPI.js +29 -28
  172. package/src/ATableForm/ATableFormCellAction/compositionAPI/TitleAPI.js +47 -47
  173. package/src/ATableForm/ATableFormCellDnd/ATableFormCellDnd.js +6 -1
  174. package/src/ATableForm/ATableFormCellDnd/compositionAPI/IdAPI.js +21 -21
  175. package/src/ATableForm/ATableFormCellList/compositionAPI/DataAPI.js +61 -61
  176. package/src/ATableForm/ATableFormRow/ATableFormRow.js +580 -574
  177. package/src/ATableForm/ATableFormRow/compositionAPI/ErrorsAPI.js +40 -40
  178. package/src/ATableForm/ATableFormRow/compositionAPI/FocusAPI.js +55 -55
  179. package/src/ATableForm/ATableFormRow/compositionAPI/IdAPI.js +19 -19
  180. package/src/ATableForm/__tests__/ATableForm.DragAndDropAPI.test.js +48 -0
  181. package/src/ATableForm/__tests__/ATableForm.ListView.test.js +672 -460
  182. package/src/ATableForm/compositionAPI/ClassesAPI.js +23 -23
  183. package/src/ATableForm/compositionAPI/ColumnsAPI.js +4 -2
  184. package/src/ATableForm/compositionAPI/ColumnsGrowAPI.js +191 -190
  185. package/src/ATableForm/compositionAPI/DeleteAPI.js +9 -9
  186. package/src/ATableForm/compositionAPI/DragAndDropAPI.js +6 -5
  187. package/src/ATableForm/compositionAPI/EditAPI.js +127 -128
  188. package/src/ATableForm/compositionAPI/RowsAPI.js +42 -42
  189. package/src/ATableForm/compositionAPI/StylesAPI.js +62 -62
  190. package/src/ATableForm/compositionAPI/WidthsAPI.js +21 -21
  191. package/src/ATableForm/i18n/ATableFormI18n.js +19 -19
  192. package/src/ATabs/ATabsContent/ATabsContent.js +102 -102
  193. package/src/ATabs/ATabsTab/ATabsTab.js +185 -185
  194. package/src/ATooltip/ATooltip.js +221 -221
  195. package/src/ATranslation/compositionAPI/UtilsAPI.js +187 -187
  196. package/src/AVerticalScroll/compositionAPI/ScrollAPI.js +55 -55
  197. package/src/AWizard/AWizard.js +467 -467
  198. package/src/compositionAPI/AEventOutsideAPI.js +46 -46
  199. package/src/compositionAPI/AMobileAPI.js +32 -32
  200. package/src/compositionAPI/APageTabTitleAPI.js +84 -84
  201. package/src/compositionAPI/ARemPxAPI.js +47 -47
  202. package/src/compositionAPI/FocusByDestroyAPI.js +67 -67
  203. package/src/const/AKeys.js +9 -9
  204. package/src/directives/AOnHooks.js +0 -0
  205. package/src/i18n/allLanguages.js +377 -377
  206. package/src/i18n/ar.json +4 -4
  207. package/src/i18n/de.json +4 -4
  208. package/src/i18n/en.json +4 -4
  209. package/src/i18n/es.json +4 -4
  210. package/src/i18n/fr.json +4 -4
  211. package/src/i18n/hr.json +4 -4
  212. package/src/i18n/it.json +4 -4
  213. package/src/i18n/ru.json +4 -4
  214. package/src/index.js +402 -402
  215. package/src/plugins/AAlertPlugin.js +53 -53
  216. package/src/plugins/ACarouselPlugin.js +34 -34
  217. package/src/plugins/ADatepickerPlugin.js +57 -57
  218. package/src/plugins/AFiltersPlugin.js +102 -102
  219. package/src/plugins/AInputCurrencyPlugin.js +31 -31
  220. package/src/plugins/AMobilePlugin.js +32 -32
  221. package/src/plugins/ARemPxPlugin.js +37 -37
  222. package/src/plugins/ASelectPlugin.js +54 -54
  223. package/src/plugins/ASelectStylesPlugin.js +2376 -2376
  224. package/src/temp/px_to_rem_mapping_1_to_800.md +802 -802
  225. package/src/ui/ACheckbox/ACheckbox.js +929 -929
  226. package/src/ui/ACheckbox/ACheckboxItem/ACheckboxItem.js +0 -0
  227. package/src/ui/ACheckboxRadioGroups/ACheckboxRadioGroups.js +0 -0
  228. package/src/ui/ADatepicker/ADatepicker.js +807 -807
  229. package/src/ui/ADatepicker/ADatepickerCalendarPanel/ADatepickerCalendarPanel.js +796 -796
  230. package/src/ui/ADatepicker/ADatepickerCalendarPanel/compositionAPI/CalendarAPI.js +51 -51
  231. package/src/ui/ADatepicker/compositionAPI/LanguagesAPI.js +92 -92
  232. package/src/ui/ADatepicker/compositionAPI/PlaceholderAPI.js +55 -55
  233. package/src/ui/ADatepicker/i18n/ADatepickerI18n.js +19 -19
  234. package/src/ui/ADatepicker/i18n/ar.json +47 -47
  235. package/src/ui/ADatepicker/i18n/de.json +48 -48
  236. package/src/ui/ADatepicker/i18n/en.json +48 -48
  237. package/src/ui/ADatepicker/i18n/es.json +47 -47
  238. package/src/ui/ADatepicker/i18n/fr.json +47 -47
  239. package/src/ui/ADatepicker/i18n/hr.json +47 -47
  240. package/src/ui/ADatepicker/i18n/it.json +47 -47
  241. package/src/ui/ADatepicker/i18n/ru.json +48 -48
  242. package/src/ui/ADatepicker/panel/APanelDate/APanelDate.js +196 -196
  243. package/src/ui/ADatepicker/panel/APanelDate/compositionAPI/DatesAPI.js +66 -66
  244. package/src/ui/ADatepicker/panel/APanelDate/compositionAPI/FocusAPI.js +96 -96
  245. package/src/ui/ADatepicker/panel/APanelDate/compositionAPI/FocusActiveAPI.js +27 -27
  246. package/src/ui/ADatepicker/panel/APanelDate/compositionAPI/SelectAPI.js +21 -21
  247. package/src/ui/ADatepicker/panel/APanelDate/compositionAPI/TableAPI.js +128 -128
  248. package/src/ui/ADatepicker/panel/APanelMonth/APanelMonth.js +129 -129
  249. package/src/ui/ADatepicker/panel/APanelMonth/compositionAPI/FocusAPI.js +94 -94
  250. package/src/ui/ADatepicker/panel/APanelMonth/compositionAPI/FocusActiveAPI.js +21 -21
  251. package/src/ui/ADatepicker/panel/APanelMonth/compositionAPI/MonthsAPI.js +51 -51
  252. package/src/ui/ADatepicker/panel/APanelMonth/compositionAPI/SelectAPI.js +29 -29
  253. package/src/ui/ADatepicker/panel/APanelYearItem/APanelYearItem.js +75 -75
  254. package/src/ui/ADatepicker/panel/APanelYearItem/compositionAPI/AttributesAPI.js +35 -35
  255. package/src/ui/ADatepicker/panel/APanelYearItem/compositionAPI/SelectAPI.js +35 -35
  256. package/src/ui/ADatepickerRange/ADatepickerRange.js +537 -537
  257. package/src/ui/AErrors/AErrors.js +149 -149
  258. package/src/ui/AErrors/AErrorsElement/AErrorsElement.js +0 -0
  259. package/src/ui/AErrors/i18n/AErrorsI18n.js +19 -19
  260. package/src/ui/AErrors/i18n/ar.json +3 -3
  261. package/src/ui/AErrors/i18n/de.json +2 -2
  262. package/src/ui/AErrors/i18n/en.json +3 -3
  263. package/src/ui/AErrors/i18n/es.json +3 -3
  264. package/src/ui/AErrors/i18n/fr.json +3 -3
  265. package/src/ui/AErrors/i18n/hr.json +3 -3
  266. package/src/ui/AErrors/i18n/it.json +3 -3
  267. package/src/ui/AErrors/i18n/ru.json +3 -3
  268. package/src/ui/AErrorsText/AErrorsText.js +62 -62
  269. package/src/ui/AFieldset/AFieldset.js +535 -535
  270. package/src/ui/AFieldset/compositionAPI/ModelAPI.js +54 -54
  271. package/src/ui/AForm/AForm.js +252 -252
  272. package/src/ui/AFormElement/AFormElement.js +160 -160
  273. package/src/ui/AFormElementBtnClear/AFormElementBtnClear.js +86 -86
  274. package/src/ui/AFormElementBtnClear/i18n/AFormElementBtnClearI18n.js +19 -19
  275. package/src/ui/AFormElementBtnClear/i18n/ar.json +2 -2
  276. package/src/ui/AFormElementBtnClear/i18n/de.json +2 -2
  277. package/src/ui/AFormElementBtnClear/i18n/en.json +2 -2
  278. package/src/ui/AFormElementBtnClear/i18n/es.json +2 -2
  279. package/src/ui/AFormElementBtnClear/i18n/fr.json +2 -2
  280. package/src/ui/AFormElementBtnClear/i18n/hr.json +2 -2
  281. package/src/ui/AFormElementBtnClear/i18n/it.json +2 -2
  282. package/src/ui/AFormElementBtnClear/i18n/ru.json +2 -2
  283. package/src/ui/AFormHelpText/AFormHelpText.js +37 -37
  284. package/src/ui/AFormLabelDescription/AFormLabelDescription.js +43 -43
  285. package/src/ui/AFormReadonly/AFormReadonly.js +193 -193
  286. package/src/ui/AGroup/AGroup.js +427 -427
  287. package/src/ui/AInput/AInput.js +516 -516
  288. package/src/ui/AInput/compositionAPI/ClassAPI.js +43 -43
  289. package/src/ui/AInputCurrency/AInputCurrency.js +620 -620
  290. package/src/ui/AInputCurrency/compositionAPI/IncreaseDecreaseAPI.js +76 -76
  291. package/src/ui/AInputCurrency/compositionAPI/InputEventsAPI.js +751 -751
  292. package/src/ui/AInputCurrency/compositionAPI/ModelAPI.js +88 -88
  293. package/src/ui/AInputCurrency/compositionAPI/UtilsAPI.js +54 -54
  294. package/src/ui/AInputFile/AInputFile.js +247 -247
  295. package/src/ui/AInputNumber/AInputNumber.js +497 -497
  296. package/src/ui/AInputNumber/compositionAPI/InputEventsAPI.js +196 -196
  297. package/src/ui/AInputNumber/compositionAPI/ModelAPI.js +72 -72
  298. package/src/ui/AInputNumberRange/AInputNumberRange.js +517 -517
  299. package/src/ui/AJson/AJson.js +434 -434
  300. package/src/ui/ALabel/ALabel.js +0 -0
  301. package/src/ui/AMultiselectOrdered/AMultiselectOrdered.js +935 -935
  302. package/src/ui/AOneCheckbox/AOneCheckbox.js +366 -366
  303. package/src/ui/ARadio/ARadio.js +924 -924
  304. package/src/ui/ARadio/ARadioItem/ARadioItem.js +0 -0
  305. package/src/ui/ARequired/ARequired.js +0 -0
  306. package/src/ui/ARouterLinkConfig/ARouterLinkConfig.js +391 -391
  307. package/src/ui/ARouterLinkConfig/compositionAPI/DataFormAPI.js +102 -102
  308. package/src/ui/ARouterLinkConfig/compositionAPI/ModelLocalAPI.js +96 -96
  309. package/src/ui/ARouterLinkConfig/compositionAPI/RouteAPI.js +51 -51
  310. package/src/ui/ASelect/ASelect.js +1339 -1339
  311. package/src/ui/ASelect/ASelectElement/ASelectElement.js +0 -0
  312. package/src/ui/ASelect/ASelectValueCloseable/ASelectValueCloseable.js +1 -1
  313. package/src/ui/ASelect/ASelectValueCloseable/compositionAPI/CloseAPI.js +28 -28
  314. package/src/ui/ASelect/compositionAPI/ToggleAPI.js +255 -255
  315. package/src/ui/ASelect/i18n/ar.json +6 -6
  316. package/src/ui/ASelect/i18n/de.json +7 -7
  317. package/src/ui/ASelect/i18n/en.json +6 -6
  318. package/src/ui/ASelect/i18n/es.json +6 -6
  319. package/src/ui/ASelect/i18n/fr.json +6 -6
  320. package/src/ui/ASelect/i18n/hr.json +6 -6
  321. package/src/ui/ASelect/i18n/it.json +6 -6
  322. package/src/ui/ASelect/i18n/ru.json +6 -6
  323. package/src/ui/ASelectIcon/ASelectIcon.js +386 -386
  324. package/src/ui/ASelectStyle/ASelectStyle.js +391 -391
  325. package/src/ui/ASelectStyle/compositionAPI/DataAPI.js +68 -68
  326. package/src/ui/ASelectStyle/compositionAPI/EventsAPI.js +24 -24
  327. package/src/ui/ASelectStyle/compositionAPI/KeyLabelCallbackAPI.js +15 -15
  328. package/src/ui/ASelectStyle/compositionAPI/TypeAPI.js +24 -24
  329. package/src/ui/ASelectStyle/i18n/ASelectStyleI18n.js +19 -19
  330. package/src/ui/ASelectStyle/i18n/ar.json +277 -277
  331. package/src/ui/ASelectStyle/i18n/de.json +277 -277
  332. package/src/ui/ASelectStyle/i18n/en.json +277 -277
  333. package/src/ui/ASelectStyle/i18n/es.json +277 -277
  334. package/src/ui/ASelectStyle/i18n/fr.json +277 -277
  335. package/src/ui/ASelectStyle/i18n/hr.json +277 -277
  336. package/src/ui/ASelectStyle/i18n/it.json +277 -277
  337. package/src/ui/ASelectStyle/i18n/ru.json +277 -277
  338. package/src/ui/ASlider/ASlider.js +672 -672
  339. package/src/ui/ASlider/compositionAPI/AriaAttributesAPI.js +121 -121
  340. package/src/ui/ASlider/compositionAPI/AttributesAPI.js +15 -15
  341. package/src/ui/ASlider/compositionAPI/DataAPI.js +115 -115
  342. package/src/ui/ASlider/compositionAPI/DragAndDropAPI.js +198 -198
  343. package/src/ui/ASlider/compositionAPI/LabelAPI.js +13 -13
  344. package/src/ui/ASlider/compositionAPI/MarksAPI.js +32 -32
  345. package/src/ui/ASlider/compositionAPI/SliderAPI.js +289 -289
  346. package/src/ui/ASlider/compositionAPI/StopsAPI.js +47 -47
  347. package/src/ui/ASlider/compositionAPI/StylesAPI.js +79 -79
  348. package/src/ui/ASlider/compositionAPI/TitleAPI.js +42 -42
  349. package/src/ui/ASlider/i18n/ASliderI18n.js +19 -19
  350. package/src/ui/ASlider/i18n/en.json +4 -4
  351. package/src/ui/ASwitch/ASwitch.js +442 -442
  352. package/src/ui/ATemplate/ATemplate.js +0 -0
  353. package/src/ui/ATextarea/ATextarea.js +437 -437
  354. package/src/ui/AUiComponents.js +59 -59
  355. package/src/ui/AUiContainerComponents.js +12 -12
  356. package/src/ui/AValidatedJson/AValidatedJson.js +594 -594
  357. package/src/ui/AValidatedJson/AValidatedJsonItem/compositionAPI/DeleteAPI.js +63 -63
  358. package/src/ui/AValidatedJson/AValidatedJsonItem/compositionAPI/DetailsAPI.js +59 -59
  359. package/src/ui/AValidatedJson/AValidatedJsonItem/compositionAPI/MoveAPI.js +50 -50
  360. package/src/ui/AValidatedJson/AValidatedJsonItem/compositionAPI/UpdateAPI.js +48 -48
  361. package/src/ui/AValidatedJson/AValidatedJsonModalCreateOrUpdate/composiitionAPI/DataFormAPI.js +69 -69
  362. package/src/ui/AValidatedJson/AValidatedJsonModalCreateOrUpdate/composiitionAPI/DisabledAPI.js +35 -35
  363. package/src/ui/AValidatedJson/AValidatedJsonModalCreateOrUpdate/composiitionAPI/ModelAPI.js +31 -31
  364. package/src/ui/AValidatedJson/AValidatedJsonModalCreateOrUpdate/composiitionAPI/SaveAPI.js +115 -115
  365. package/src/ui/AValidatedJson/AValidatedJsonModalCreateOrUpdate/composiitionAPI/TextAPI.js +25 -25
  366. package/src/ui/AValidatedJson/compositionAPI/AValidatedJsonErrorLabelsAPI.js +18 -18
  367. package/src/ui/AValidatedJson/compositionAPI/AttributesAPI.js +15 -15
  368. package/src/ui/AValidatedJson/compositionAPI/ChildrenAPI.js +70 -70
  369. package/src/ui/AValidatedJson/compositionAPI/EventsAPI.js +19 -19
  370. package/src/ui/AValidatedJson/compositionAPI/JsonModeAPI.js +119 -119
  371. package/src/ui/AValidatedJson/compositionAPI/ListModeAPI.js +144 -144
  372. package/src/ui/AValidatedJson/compositionAPI/ModelAPI.js +38 -38
  373. package/src/ui/AValidatedJson/compositionAPI/SingleModeAPI.js +112 -112
  374. package/src/ui/AValidatedJson/compositionAPI/TranslateAPI.js +22 -22
  375. package/src/ui/AValidatedJson/i18n/AValidatedJsonI18n.js +19 -19
  376. package/src/ui/AValidatedJson/i18n/ar.json +3 -3
  377. package/src/ui/AValidatedJson/i18n/de.json +22 -22
  378. package/src/ui/AValidatedJson/i18n/en.json +3 -3
  379. package/src/ui/AValidatedJson/i18n/es.json +3 -3
  380. package/src/ui/AValidatedJson/i18n/fr.json +3 -3
  381. package/src/ui/AValidatedJson/i18n/hr.json +3 -3
  382. package/src/ui/AValidatedJson/i18n/it.json +3 -3
  383. package/src/ui/AValidatedJson/i18n/ru.json +6 -6
  384. package/src/ui/compositionApi/UIDataGroupAPI.js +94 -94
  385. package/src/ui/compositionApi/UiAPI.js +185 -185
  386. package/src/ui/compositionApi/UiClearButtonAPI.js +19 -19
  387. package/src/ui/compositionApi/UiDataSortAPI.js +29 -29
  388. package/src/ui/compositionApi/UiDataWithKeyIdAndLabelAPI.js +155 -155
  389. package/src/ui/const/AUiTypes.js +69 -69
  390. package/src/ui/mixins/UiMixinProps.js +129 -129
  391. package/src/ui/utils/utils.js +79 -79
  392. package/src/utils/__tests__/utils.aOrderBy.test.js +237 -237
  393. package/src/utils/__tests__/utils.aSortBy.test.js +331 -331
  394. package/src/utils/__tests__/utilsArray.aFirst.test.js +54 -54
  395. package/src/utils/__tests__/utilsArray.aLast.test.js +54 -54
  396. package/src/utils/__tests__/utilsLang.isArguments.test.js +52 -52
  397. package/src/utils/__tests__/utilsLang.isArray.test.js +50 -50
  398. package/src/utils/__tests__/utilsLang.isArrayBuffer.test.js +48 -48
  399. package/src/utils/__tests__/utilsLang.isBoolean.test.js +56 -56
  400. package/src/utils/__tests__/utilsLang.isBuffer.test.js +47 -47
  401. package/src/utils/__tests__/utilsLang.isDate.test.js +54 -54
  402. package/src/utils/__tests__/utilsLang.isElement.test.js +53 -53
  403. package/src/utils/__tests__/utilsLang.isError.test.js +52 -52
  404. package/src/utils/__tests__/utilsLang.isFinite.test.js +57 -57
  405. package/src/utils/__tests__/utilsLang.isFunction.test.js +46 -46
  406. package/src/utils/__tests__/utilsLang.isInteger.test.js +58 -58
  407. package/src/utils/__tests__/utilsLang.isMap.test.js +50 -50
  408. package/src/utils/__tests__/utilsLang.isNaN.test.js +55 -55
  409. package/src/utils/__tests__/utilsLang.isNil.test.js +57 -57
  410. package/src/utils/__tests__/utilsLang.isNull.test.js +53 -53
  411. package/src/utils/__tests__/utilsLang.isNumber.test.js +54 -54
  412. package/src/utils/__tests__/utilsLang.isObject.test.js +49 -49
  413. package/src/utils/__tests__/utilsLang.isObjectLike.test.js +45 -45
  414. package/src/utils/__tests__/utilsLang.isPlainObject.test.js +60 -60
  415. package/src/utils/__tests__/utilsLang.isPromise.test.js +93 -93
  416. package/src/utils/__tests__/utilsLang.isRegExp.test.js +46 -46
  417. package/src/utils/__tests__/utilsLang.isSet.test.js +50 -50
  418. package/src/utils/__tests__/utilsLang.isString.test.js +50 -50
  419. package/src/utils/__tests__/utilsLang.isSymbol.test.js +45 -45
  420. package/src/utils/__tests__/utilsLang.isUndefined.test.js +57 -57
  421. package/src/utils/__tests__/utilsLang.isWeakMap.test.js +49 -49
  422. package/src/utils/__tests__/utilsLang.isWeakSet.test.js +49 -49
  423. package/src/utils/actions.js +67 -67
  424. package/src/utils/autosize.js +277 -277
  425. package/src/utils/isBrowser.js +12 -12
  426. package/src/utils/utils.js +253 -253
  427. package/src/utils/utilsArray.js +29 -29
  428. package/src/utils/utilsDOM.js +188 -188
  429. package/src/utils/utilsLang.js +346 -346
@@ -1,249 +1,249 @@
1
- import {
2
- computed,
3
- onBeforeUnmount,
4
- onMounted,
5
- ref,
6
- toRef,
7
- watch,
8
- } from "vue";
9
-
10
- import ARemPxAPI from "../../compositionAPI/ARemPxAPI";
11
-
12
- import {
13
- isColumnVisibleFromModel,
14
- } from "../utils/utils.js";
15
- import {
16
- cloneDeep,
17
- debounce,
18
- forEach,
19
- isNil,
20
- isUndefined,
21
- } from "lodash-es";
22
-
23
- export default function ScrollControlAPI(props, { emit }, {
24
- columnActionsWidthLocal = computed(() => 0),
25
- columnActionsWidthMinLocal = computed(() => 0),
26
- columnsOrdered = computed(() => []),
27
- columnsScrollInvisible = ref([]),
28
- columnWidthDefaultRemLocal = computed(() => 0),
29
- indexFirstScrollInvisibleColumn = ref(undefined),
30
- isMobile = ref(false),
31
- isMultipleActionsActive = ref(undefined),
32
- modelColumnsVisibleLocal = ref({}),
33
- modelIsTableWithoutScroll = ref(false),
34
- modelIsTableWithoutScrollComputed = computed(() => false),
35
- }) {
36
- const isActionColumnVisible = toRef(props, "isActionColumnVisible");
37
- const isSimpleTable = toRef(props, "isSimpleTable");
38
- const useRem = toRef(props, "useRem");
39
-
40
- const {
41
- scalePxWithRem,
42
- } = ARemPxAPI();
43
-
44
- const aTableRef = ref(undefined);
45
- const columnsVisibleAdditionalSpaceForOneGrow = ref(0);
46
- const tableWidth = ref(undefined);
47
- let changingTableWidth = false;
48
- const delta = 20; // approx scrollbar width + 2px for <tr> border
49
-
50
- const scaleWidthPxWithRemLocal = width => {
51
- if (useRem.value) {
52
- return scalePxWithRem(width);
53
- }
54
-
55
- return width;
56
- };
57
-
58
- const _columnActionsWidthMinLocal = computed(() => {
59
- if (isActionColumnVisible.value) {
60
- return columnActionsWidthMinLocal.value;
61
- }
62
-
63
- return 0;
64
- });
65
-
66
- const columnsSpecialWidth = computed(() => {
67
- const columnMultipleActionsWidth = isMultipleActionsActive.value ? columnActionsWidthMinLocal.value : 0;
68
- const scrollBarWidth = isSimpleTable.value ? 0 : delta; // delta for table resize when scrollbar appears
69
-
70
- return columnMultipleActionsWidth + scrollBarWidth;
71
- });
72
-
73
-
74
- const setAdditionalSpaceColumnsForOneGrow = ({
75
- sumGrows = 0,
76
- freeSpaceWidth = 0,
77
- }) => {
78
- if (sumGrows > 0) {
79
- columnsVisibleAdditionalSpaceForOneGrow.value = freeSpaceWidth / sumGrows;
80
- } else {
81
- columnsVisibleAdditionalSpaceForOneGrow.value = 0;
82
- }
83
- };
84
-
85
- const setColumnsScrollInvisible = () => {
86
- if (isNil(indexFirstScrollInvisibleColumn.value) ||
87
- columnsOrdered.value.length < indexFirstScrollInvisibleColumn.value) {
88
- columnsScrollInvisible.value = [];
89
- } else {
90
- const COLUMNS_SCROLL_VISIBLE = [];
91
- for (let i = indexFirstScrollInvisibleColumn.value; i < columnsOrdered.value.length; i++) {
92
- const COLUMN = columnsOrdered.value[i];
93
- if (isColumnVisibleFromModel({
94
- column: COLUMN,
95
- modelColumnsVisibleLocal: modelColumnsVisibleLocal.value,
96
- })) {
97
- COLUMNS_SCROLL_VISIBLE.push(cloneDeep(COLUMN));
98
- }
99
- }
100
- columnsScrollInvisible.value = COLUMNS_SCROLL_VISIBLE;
101
- }
102
- };
103
-
104
- const setAllDefaultForMobile = () => {
105
- columnsScrollInvisible.value = [];
106
- columnsVisibleAdditionalSpaceForOneGrow.value = 0;
107
- indexFirstScrollInvisibleColumn.value = 1000;
108
- tableWidth.value = 0;
109
- };
110
-
111
- const checkVisibleColumns = () => {
112
- if (isMobile.value ||
113
- tableWidth.value === 0) {
114
- setAllDefaultForMobile();
115
- return;
116
- }
117
-
118
- if (isUndefined(tableWidth.value)) {
119
- return;
120
- }
121
- const TABLE_WIDTH_WITHOUT_ACTIONS_MIN = tableWidth.value - columnsSpecialWidth.value - _columnActionsWidthMinLocal.value;
122
- const TABLE_WIDTH_WITHOUT_ACTIONS_MAX = tableWidth.value - columnsSpecialWidth.value - columnActionsWidthLocal.value;
123
-
124
- let columnsWidthInOrder = 0;
125
- let indexFirstScrollInvisibleColumnLocal = 0;
126
- let sumGrows = 0;
127
- let isMinOneColumnHide = false;
128
- forEach(columnsOrdered.value, column => {
129
- if (!isColumnVisibleFromModel({
130
- column,
131
- modelColumnsVisibleLocal: modelColumnsVisibleLocal.value,
132
- })) {
133
- indexFirstScrollInvisibleColumnLocal++;
134
- return;
135
- }
136
- const COLUMN_WIDTH = +scaleWidthPxWithRemLocal(column.width) || columnWidthDefaultRemLocal.value;
137
- if (columnsWidthInOrder + COLUMN_WIDTH > TABLE_WIDTH_WITHOUT_ACTIONS_MIN) {
138
- isMinOneColumnHide = true;
139
- return false;
140
- }
141
- columnsWidthInOrder += COLUMN_WIDTH;
142
- indexFirstScrollInvisibleColumnLocal++;
143
- sumGrows += isNil(column.grow) ? 1 : column.grow;
144
- });
145
- if (isMinOneColumnHide && columnsWidthInOrder > TABLE_WIDTH_WITHOUT_ACTIONS_MAX) {
146
- for (let i = indexFirstScrollInvisibleColumnLocal - 1; i >= 0; i--) {
147
- indexFirstScrollInvisibleColumnLocal--;
148
- const COLUMN = columnsOrdered.value[indexFirstScrollInvisibleColumnLocal];
149
- if (!isColumnVisibleFromModel({
150
- column: COLUMN,
151
- modelColumnsVisibleLocal: modelColumnsVisibleLocal.value,
152
- })) {
153
- continue;
154
- }
155
- const COLUMN_WIDTH = +scaleWidthPxWithRemLocal(COLUMN.width) || columnWidthDefaultRemLocal.value;
156
-
157
- columnsWidthInOrder -= COLUMN_WIDTH;
158
- sumGrows -= isNil(COLUMN.grow) ? 1 : COLUMN.grow;
159
-
160
- if (columnsWidthInOrder <= TABLE_WIDTH_WITHOUT_ACTIONS_MAX) {
161
- break;
162
- }
163
- }
164
- }
165
-
166
- let freeSpaceWidth = 0;
167
- const TABLE_WIDTH = isMinOneColumnHide ? TABLE_WIDTH_WITHOUT_ACTIONS_MAX : TABLE_WIDTH_WITHOUT_ACTIONS_MIN;
168
- if (modelIsTableWithoutScrollComputed.value) {
169
- freeSpaceWidth = TABLE_WIDTH - columnsWidthInOrder;
170
- } else if (indexFirstScrollInvisibleColumnLocal === columnsOrdered.value.length) {
171
- freeSpaceWidth = TABLE_WIDTH - columnsWidthInOrder;
172
- }
173
- indexFirstScrollInvisibleColumn.value = indexFirstScrollInvisibleColumnLocal;
174
-
175
- setAdditionalSpaceColumnsForOneGrow({
176
- sumGrows,
177
- freeSpaceWidth,
178
- });
179
- setColumnsScrollInvisible();
180
- };
181
-
182
- const adjustTableWidth = ({ entries, forceAdjust }) => {
183
- const RECT = entries[0].contentRect;
184
- const tableWidthMissingOrExceededDelta = forceAdjust ||
185
- tableWidth.value > RECT.width + delta ||
186
- tableWidth.value < RECT.width - delta;
187
- if (tableWidthMissingOrExceededDelta) {
188
- if (!changingTableWidth) {
189
- changingTableWidth = true;
190
- tableWidth.value = RECT.width;
191
- checkVisibleColumns();
192
- changingTableWidth = false;
193
- }
194
- }
195
- };
196
-
197
- const resizeOb = new ResizeObserver(
198
- debounce(entries => {
199
- // since we are observing only a single element, so we access the first element in entries array
200
- if (isUndefined(tableWidth.value)) {
201
- adjustTableWidth({ entries, forceAdjust: true });
202
- } else {
203
- adjustTableWidth({ entries });
204
- }
205
- }, 300),
206
- );
207
-
208
- const onWatchMobileScrollControl = newValue => {
209
- if (newValue) {
210
- resizeOb.unobserve(aTableRef.value);
211
- setAllDefaultForMobile();
212
- } else {
213
- resizeOb.observe(aTableRef.value);
214
- if (modelIsTableWithoutScroll.value) {
215
- checkVisibleColumns();
216
- }
217
- }
218
- };
219
-
220
- const changeModelIsTableWithoutScroll = model => {
221
- modelIsTableWithoutScroll.value = model;
222
- emit("updateModelIsTableWithoutScroll", model);
223
- if (modelIsTableWithoutScroll.value) {
224
- checkVisibleColumns();
225
- }
226
- };
227
-
228
- onMounted(() => {
229
- if (!isMobile.value) {
230
- resizeOb.observe(aTableRef.value);
231
- }
232
- });
233
- onBeforeUnmount(() => {
234
- resizeOb.unobserve(aTableRef.value);
235
- });
236
-
237
- watch(columnsOrdered, () => {
238
- checkVisibleColumns();
239
- });
240
-
241
-
242
- return {
243
- aTableRef,
244
- changeModelIsTableWithoutScroll,
245
- checkVisibleColumns,
246
- columnsVisibleAdditionalSpaceForOneGrow,
247
- onWatchMobileScrollControl,
248
- };
249
- }
1
+ import {
2
+ computed,
3
+ onBeforeUnmount,
4
+ onMounted,
5
+ ref,
6
+ toRef,
7
+ watch,
8
+ } from "vue";
9
+
10
+ import ARemPxAPI from "../../compositionAPI/ARemPxAPI";
11
+
12
+ import {
13
+ isColumnVisibleFromModel,
14
+ } from "../utils/utils.js";
15
+ import {
16
+ cloneDeep,
17
+ debounce,
18
+ forEach,
19
+ isNil,
20
+ isUndefined,
21
+ } from "lodash-es";
22
+
23
+ export default function ScrollControlAPI(props, { emit }, {
24
+ columnActionsWidthLocal = computed(() => 0),
25
+ columnActionsWidthMinLocal = computed(() => 0),
26
+ columnsOrdered = computed(() => []),
27
+ columnsScrollInvisible = ref([]),
28
+ columnWidthDefaultRemLocal = computed(() => 0),
29
+ indexFirstScrollInvisibleColumn = ref(undefined),
30
+ isMobile = ref(false),
31
+ isMultipleActionsActive = ref(undefined),
32
+ modelColumnsVisibleLocal = ref({}),
33
+ modelIsTableWithoutScroll = ref(false),
34
+ modelIsTableWithoutScrollComputed = computed(() => false),
35
+ }) {
36
+ const isActionColumnVisible = toRef(props, "isActionColumnVisible");
37
+ const isSimpleTable = toRef(props, "isSimpleTable");
38
+ const useRem = toRef(props, "useRem");
39
+
40
+ const {
41
+ scalePxWithRem,
42
+ } = ARemPxAPI();
43
+
44
+ const aTableRef = ref(undefined);
45
+ const columnsVisibleAdditionalSpaceForOneGrow = ref(0);
46
+ const tableWidth = ref(undefined);
47
+ let changingTableWidth = false;
48
+ const delta = 20; // approx scrollbar width + 2px for <tr> border
49
+
50
+ const scaleWidthPxWithRemLocal = width => {
51
+ if (useRem.value) {
52
+ return scalePxWithRem(width);
53
+ }
54
+
55
+ return width;
56
+ };
57
+
58
+ const _columnActionsWidthMinLocal = computed(() => {
59
+ if (isActionColumnVisible.value) {
60
+ return columnActionsWidthMinLocal.value;
61
+ }
62
+
63
+ return 0;
64
+ });
65
+
66
+ const columnsSpecialWidth = computed(() => {
67
+ const columnMultipleActionsWidth = isMultipleActionsActive.value ? columnActionsWidthMinLocal.value : 0;
68
+ const scrollBarWidth = isSimpleTable.value ? 0 : delta; // delta for table resize when scrollbar appears
69
+
70
+ return columnMultipleActionsWidth + scrollBarWidth;
71
+ });
72
+
73
+
74
+ const setAdditionalSpaceColumnsForOneGrow = ({
75
+ sumGrows = 0,
76
+ freeSpaceWidth = 0,
77
+ }) => {
78
+ if (sumGrows > 0) {
79
+ columnsVisibleAdditionalSpaceForOneGrow.value = freeSpaceWidth / sumGrows;
80
+ } else {
81
+ columnsVisibleAdditionalSpaceForOneGrow.value = 0;
82
+ }
83
+ };
84
+
85
+ const setColumnsScrollInvisible = () => {
86
+ if (isNil(indexFirstScrollInvisibleColumn.value) ||
87
+ columnsOrdered.value.length < indexFirstScrollInvisibleColumn.value) {
88
+ columnsScrollInvisible.value = [];
89
+ } else {
90
+ const COLUMNS_SCROLL_VISIBLE = [];
91
+ for (let i = indexFirstScrollInvisibleColumn.value; i < columnsOrdered.value.length; i++) {
92
+ const COLUMN = columnsOrdered.value[i];
93
+ if (isColumnVisibleFromModel({
94
+ column: COLUMN,
95
+ modelColumnsVisibleLocal: modelColumnsVisibleLocal.value,
96
+ })) {
97
+ COLUMNS_SCROLL_VISIBLE.push(cloneDeep(COLUMN));
98
+ }
99
+ }
100
+ columnsScrollInvisible.value = COLUMNS_SCROLL_VISIBLE;
101
+ }
102
+ };
103
+
104
+ const setAllDefaultForMobile = () => {
105
+ columnsScrollInvisible.value = [];
106
+ columnsVisibleAdditionalSpaceForOneGrow.value = 0;
107
+ indexFirstScrollInvisibleColumn.value = 1000;
108
+ tableWidth.value = 0;
109
+ };
110
+
111
+ const checkVisibleColumns = () => {
112
+ if (isMobile.value ||
113
+ tableWidth.value === 0) {
114
+ setAllDefaultForMobile();
115
+ return;
116
+ }
117
+
118
+ if (isUndefined(tableWidth.value)) {
119
+ return;
120
+ }
121
+ const TABLE_WIDTH_WITHOUT_ACTIONS_MIN = tableWidth.value - columnsSpecialWidth.value - _columnActionsWidthMinLocal.value;
122
+ const TABLE_WIDTH_WITHOUT_ACTIONS_MAX = tableWidth.value - columnsSpecialWidth.value - columnActionsWidthLocal.value;
123
+
124
+ let columnsWidthInOrder = 0;
125
+ let indexFirstScrollInvisibleColumnLocal = 0;
126
+ let sumGrows = 0;
127
+ let isMinOneColumnHide = false;
128
+ forEach(columnsOrdered.value, column => {
129
+ if (!isColumnVisibleFromModel({
130
+ column,
131
+ modelColumnsVisibleLocal: modelColumnsVisibleLocal.value,
132
+ })) {
133
+ indexFirstScrollInvisibleColumnLocal++;
134
+ return;
135
+ }
136
+ const COLUMN_WIDTH = +scaleWidthPxWithRemLocal(column.width) || columnWidthDefaultRemLocal.value;
137
+ if (columnsWidthInOrder + COLUMN_WIDTH > TABLE_WIDTH_WITHOUT_ACTIONS_MIN) {
138
+ isMinOneColumnHide = true;
139
+ return false;
140
+ }
141
+ columnsWidthInOrder += COLUMN_WIDTH;
142
+ indexFirstScrollInvisibleColumnLocal++;
143
+ sumGrows += isNil(column.grow) ? 1 : column.grow;
144
+ });
145
+ if (isMinOneColumnHide && columnsWidthInOrder > TABLE_WIDTH_WITHOUT_ACTIONS_MAX) {
146
+ for (let i = indexFirstScrollInvisibleColumnLocal - 1; i >= 0; i--) {
147
+ indexFirstScrollInvisibleColumnLocal--;
148
+ const COLUMN = columnsOrdered.value[indexFirstScrollInvisibleColumnLocal];
149
+ if (!isColumnVisibleFromModel({
150
+ column: COLUMN,
151
+ modelColumnsVisibleLocal: modelColumnsVisibleLocal.value,
152
+ })) {
153
+ continue;
154
+ }
155
+ const COLUMN_WIDTH = +scaleWidthPxWithRemLocal(COLUMN.width) || columnWidthDefaultRemLocal.value;
156
+
157
+ columnsWidthInOrder -= COLUMN_WIDTH;
158
+ sumGrows -= isNil(COLUMN.grow) ? 1 : COLUMN.grow;
159
+
160
+ if (columnsWidthInOrder <= TABLE_WIDTH_WITHOUT_ACTIONS_MAX) {
161
+ break;
162
+ }
163
+ }
164
+ }
165
+
166
+ let freeSpaceWidth = 0;
167
+ const TABLE_WIDTH = isMinOneColumnHide ? TABLE_WIDTH_WITHOUT_ACTIONS_MAX : TABLE_WIDTH_WITHOUT_ACTIONS_MIN;
168
+ if (modelIsTableWithoutScrollComputed.value) {
169
+ freeSpaceWidth = TABLE_WIDTH - columnsWidthInOrder;
170
+ } else if (indexFirstScrollInvisibleColumnLocal === columnsOrdered.value.length) {
171
+ freeSpaceWidth = TABLE_WIDTH - columnsWidthInOrder;
172
+ }
173
+ indexFirstScrollInvisibleColumn.value = indexFirstScrollInvisibleColumnLocal;
174
+
175
+ setAdditionalSpaceColumnsForOneGrow({
176
+ sumGrows,
177
+ freeSpaceWidth,
178
+ });
179
+ setColumnsScrollInvisible();
180
+ };
181
+
182
+ const adjustTableWidth = ({ entries, forceAdjust }) => {
183
+ const RECT = entries[0].contentRect;
184
+ const tableWidthMissingOrExceededDelta = forceAdjust ||
185
+ tableWidth.value > RECT.width + delta ||
186
+ tableWidth.value < RECT.width - delta;
187
+ if (tableWidthMissingOrExceededDelta) {
188
+ if (!changingTableWidth) {
189
+ changingTableWidth = true;
190
+ tableWidth.value = RECT.width;
191
+ checkVisibleColumns();
192
+ changingTableWidth = false;
193
+ }
194
+ }
195
+ };
196
+
197
+ const resizeOb = new ResizeObserver(
198
+ debounce(entries => {
199
+ // since we are observing only a single element, so we access the first element in entries array
200
+ if (isUndefined(tableWidth.value)) {
201
+ adjustTableWidth({ entries, forceAdjust: true });
202
+ } else {
203
+ adjustTableWidth({ entries });
204
+ }
205
+ }, 300),
206
+ );
207
+
208
+ const onWatchMobileScrollControl = newValue => {
209
+ if (newValue) {
210
+ resizeOb.unobserve(aTableRef.value);
211
+ setAllDefaultForMobile();
212
+ } else {
213
+ resizeOb.observe(aTableRef.value);
214
+ if (modelIsTableWithoutScroll.value) {
215
+ checkVisibleColumns();
216
+ }
217
+ }
218
+ };
219
+
220
+ const changeModelIsTableWithoutScroll = model => {
221
+ modelIsTableWithoutScroll.value = model;
222
+ emit("updateModelIsTableWithoutScroll", model);
223
+ if (modelIsTableWithoutScroll.value) {
224
+ checkVisibleColumns();
225
+ }
226
+ };
227
+
228
+ onMounted(() => {
229
+ if (!isMobile.value) {
230
+ resizeOb.observe(aTableRef.value);
231
+ }
232
+ });
233
+ onBeforeUnmount(() => {
234
+ resizeOb.unobserve(aTableRef.value);
235
+ });
236
+
237
+ watch(columnsOrdered, () => {
238
+ checkVisibleColumns();
239
+ });
240
+
241
+
242
+ return {
243
+ aTableRef,
244
+ changeModelIsTableWithoutScroll,
245
+ checkVisibleColumns,
246
+ columnsVisibleAdditionalSpaceForOneGrow,
247
+ onWatchMobileScrollControl,
248
+ };
249
+ }
@@ -1,86 +1,86 @@
1
- import {
2
- computed,
3
- ref,
4
- toRef,
5
- watch,
6
- } from "vue";
7
-
8
- import {
9
- aOrderBy,
10
- } from "../../utils/utils";
11
-
12
- import {
13
- cloneDeep,
14
- forEach,
15
- isArray,
16
- isString,
17
- startsWith,
18
- } from "lodash-es";
19
-
20
- export default function SortAPI(props, {
21
- viewCurrent = computed(() => ({})),
22
- }) {
23
- const data = toRef(props, "data");
24
- const isSortingOutside = toRef(props, "isSortingOutside");
25
- const modelSort = toRef(props, "modelSort");
26
- const useAdditionalSorting = toRef(props, "useAdditionalSorting");
27
-
28
- const modelSortLocal = ref([]);
29
-
30
- const useAdditionalSortingLocal = computed(() => {
31
- if (useAdditionalSorting.value) {
32
- if (viewCurrent.value) {
33
- return viewCurrent.value.useAdditionalSorting || false;
34
- }
35
- return true;
36
- }
37
- return false;
38
- });
39
-
40
- const initModelSort = () => {
41
- if (isString(modelSort.value)) {
42
- modelSortLocal.value = [modelSort.value];
43
- } else if (isArray(modelSort.value)) {
44
- modelSortLocal.value = cloneDeep(modelSort.value);
45
- }
46
- };
47
-
48
- const sortOptions = computed(() => {
49
- const OPTIONS = {
50
- models: [],
51
- directions: [],
52
- };
53
- if (modelSortLocal.value.length) {
54
- forEach(modelSortLocal.value, model => {
55
- let directionSort = "asc";
56
- let modelSortLocal = model;
57
- if (startsWith(model, "-")) {
58
- directionSort = "desc";
59
- modelSortLocal = model.slice(1);
60
- }
61
- OPTIONS.models.push(modelSortLocal);
62
- OPTIONS.directions.push(directionSort);
63
- });
64
- }
65
- return OPTIONS;
66
- });
67
-
68
- const dataSorted = computed(() => {
69
- if (modelSortLocal.value.length &&
70
- !isSortingOutside.value) {
71
- return aOrderBy(data.value || [], sortOptions.value.models, sortOptions.value.directions);
72
- }
73
- return data.value || [];
74
- });
75
-
76
- watch(modelSort, () => {
77
- initModelSort();
78
- });
79
-
80
- return {
81
- dataSorted,
82
- initModelSort,
83
- modelSortLocal,
84
- useAdditionalSortingLocal,
85
- };
86
- }
1
+ import {
2
+ computed,
3
+ ref,
4
+ toRef,
5
+ watch,
6
+ } from "vue";
7
+
8
+ import {
9
+ aOrderBy,
10
+ } from "../../utils/utils";
11
+
12
+ import {
13
+ cloneDeep,
14
+ forEach,
15
+ isArray,
16
+ isString,
17
+ startsWith,
18
+ } from "lodash-es";
19
+
20
+ export default function SortAPI(props, {
21
+ viewCurrent = computed(() => ({})),
22
+ }) {
23
+ const data = toRef(props, "data");
24
+ const isSortingOutside = toRef(props, "isSortingOutside");
25
+ const modelSort = toRef(props, "modelSort");
26
+ const useAdditionalSorting = toRef(props, "useAdditionalSorting");
27
+
28
+ const modelSortLocal = ref([]);
29
+
30
+ const useAdditionalSortingLocal = computed(() => {
31
+ if (useAdditionalSorting.value) {
32
+ if (viewCurrent.value) {
33
+ return viewCurrent.value.useAdditionalSorting || false;
34
+ }
35
+ return true;
36
+ }
37
+ return false;
38
+ });
39
+
40
+ const initModelSort = () => {
41
+ if (isString(modelSort.value)) {
42
+ modelSortLocal.value = [modelSort.value];
43
+ } else if (isArray(modelSort.value)) {
44
+ modelSortLocal.value = cloneDeep(modelSort.value);
45
+ }
46
+ };
47
+
48
+ const sortOptions = computed(() => {
49
+ const OPTIONS = {
50
+ models: [],
51
+ directions: [],
52
+ };
53
+ if (modelSortLocal.value.length) {
54
+ forEach(modelSortLocal.value, model => {
55
+ let directionSort = "asc";
56
+ let modelSortLocal = model;
57
+ if (startsWith(model, "-")) {
58
+ directionSort = "desc";
59
+ modelSortLocal = model.slice(1);
60
+ }
61
+ OPTIONS.models.push(modelSortLocal);
62
+ OPTIONS.directions.push(directionSort);
63
+ });
64
+ }
65
+ return OPTIONS;
66
+ });
67
+
68
+ const dataSorted = computed(() => {
69
+ if (modelSortLocal.value.length &&
70
+ !isSortingOutside.value) {
71
+ return aOrderBy(data.value || [], sortOptions.value.models, sortOptions.value.directions);
72
+ }
73
+ return data.value || [];
74
+ });
75
+
76
+ watch(modelSort, () => {
77
+ initModelSort();
78
+ });
79
+
80
+ return {
81
+ dataSorted,
82
+ initModelSort,
83
+ modelSortLocal,
84
+ useAdditionalSortingLocal,
85
+ };
86
+ }