aloha-vue 2.66.0 → 2.66.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (432) hide show
  1. package/CHANGELOG.md +1098 -1090
  2. package/dist/aloha-vue.es.js +15671 -15507
  3. package/dist/aloha-vue.umd.js +68 -68
  4. package/package.json +99 -99
  5. package/scss/_base.scss +62 -62
  6. package/scss/aloha-vue.scss +68 -68
  7. package/scss/components/AFilters.scss +304 -304
  8. package/scss/components/AFormElement/AValidatedJson.scss +6 -6
  9. package/scss/components/AMenu.scss +627 -627
  10. package/scss/components/AModal.scss +44 -44
  11. package/scss/components/APagination.scss +167 -167
  12. package/scss/components/ARate.scss +78 -78
  13. package/scss/components/AResizer.scss +63 -63
  14. package/scss/components/ATable.scss +819 -819
  15. package/scss/components/ATableForm.scss +307 -307
  16. package/scss/components/AVerticalScroll.scss +47 -47
  17. package/scss/components/AWizard.scss +669 -669
  18. package/scss/components/ui/ADatepicker.scss +342 -342
  19. package/scss/components/ui/ADatepickerRange.scss +45 -45
  20. package/scss/components/ui/AFieldset.scss +78 -78
  21. package/scss/components/ui/AInputNumber.scss +62 -62
  22. package/scss/components/ui/AInputNumberRange.scss +30 -30
  23. package/scss/components/ui/ASelect.scss +236 -236
  24. package/scss/components/ui/ASlider.scss +186 -186
  25. package/scss/components/ui/ASwitch.scss +148 -148
  26. package/scss/components/ui/ui.scss +254 -254
  27. package/scss/text/text_alignment.scss +39 -39
  28. package/scss/text/text_transform.scss +51 -51
  29. package/scss/text/text_wrapping.scss +40 -40
  30. package/scss/utils/badge.scss +45 -45
  31. package/scss/utils/checkbox_radio.scss +134 -134
  32. package/scss/utils/color.scss +46 -46
  33. package/scss/utils/dropdown.scss +185 -185
  34. package/scss/utils/list.scss +75 -75
  35. package/scss/utils/modal.scss +173 -173
  36. package/scss/utils/sizing.scss +137 -137
  37. package/scss/utils/spacing.scss +63 -63
  38. package/scss/utils/tooltip.scss +63 -63
  39. package/src/AAccordion/AAccordion.js +206 -206
  40. package/src/AAccordion/compositionAPI/IndexesForOpenAPI.js +63 -63
  41. package/src/AAccordion/compositionAPI/ToggleAPI.js +85 -85
  42. package/src/AAlert/AAlert.js +216 -216
  43. package/src/AAlert/compositionAPI/ClassAPI.js +21 -21
  44. package/src/AAlert/i18n/AAlertI18n.js +19 -19
  45. package/src/AAlert/i18n/ar.json +2 -2
  46. package/src/AAlert/i18n/de.json +2 -2
  47. package/src/AAlert/i18n/en.json +2 -2
  48. package/src/AAlert/i18n/es.json +2 -2
  49. package/src/AAlert/i18n/fr.json +2 -2
  50. package/src/AAlert/i18n/hr.json +2 -2
  51. package/src/AAlert/i18n/it.json +2 -2
  52. package/src/AAlert/i18n/ru.json +2 -2
  53. package/src/AButton/AButton.js +275 -275
  54. package/src/ACarousel/ACarousel.js +361 -361
  55. package/src/ACarousel/ACarouselBtn/ACarouselBtn.js +75 -75
  56. package/src/ACarousel/ACarouselBtn/compositionAPI/ClassAPI.js +16 -16
  57. package/src/ACarousel/ACarouselBtn/compositionAPI/TextAPI.js +25 -25
  58. package/src/ACarousel/ACarouselControls/ACarouselControls.js +114 -114
  59. package/src/ACarousel/ACarouselControls/ACarouselControlsIndicator/ACarouselControlsIndicator.js +146 -146
  60. package/src/ACarousel/ACarouselControls/ACarouselControlsIndicator/compositionAPI/ActiveAPI.js +33 -33
  61. package/src/ACarousel/ACarouselControls/ACarouselControlsIndicator/compositionAPI/AttributesAPI.js +40 -40
  62. package/src/ACarousel/ACarouselControls/ACarouselControlsIndicator/compositionAPI/EventsAPI.js +25 -25
  63. package/src/ACarousel/ACarouselControls/ACarouselControlsIndicator/compositionAPI/IconAPI.js +20 -20
  64. package/src/ACarousel/ACarouselControls/compositionAPI/AriaLabelAPI.js +20 -20
  65. package/src/ACarousel/ACarouselItem/ACarouselItem.js +83 -83
  66. package/src/ACarousel/ACarouselItem/compositionAPI/AttributesAPI.js +39 -39
  67. package/src/ACarousel/ACarouselItem/compositionAPI/IsActiveAPI.js +21 -21
  68. package/src/ACarousel/compositionAPI/ActiveAPI.js +111 -111
  69. package/src/ACarousel/compositionAPI/AriaLabelAPI.js +25 -25
  70. package/src/ACarousel/compositionAPI/ArrowsAPI.js +17 -17
  71. package/src/ACarousel/compositionAPI/ClassAPI.js +44 -44
  72. package/src/ACarousel/compositionAPI/DataAPI.js +41 -41
  73. package/src/ACarousel/compositionAPI/IndicatorsAPI.js +148 -148
  74. package/src/ACarousel/compositionAPI/TextsAPI.js +25 -25
  75. package/src/ACarousel/i18n/ACarouselI18n.js +19 -19
  76. package/src/ACarousel/i18n/ar.json +8 -8
  77. package/src/ACarousel/i18n/de.json +8 -8
  78. package/src/ACarousel/i18n/en.json +8 -8
  79. package/src/ACarousel/i18n/es.json +8 -8
  80. package/src/ACarousel/i18n/fr.json +8 -8
  81. package/src/ACarousel/i18n/hr.json +8 -8
  82. package/src/ACarousel/i18n/it.json +8 -8
  83. package/src/ACarousel/i18n/ru.json +8 -8
  84. package/src/ACollapse/ACollapse.js +103 -103
  85. package/src/ADropdown/ADropdown.js +544 -544
  86. package/src/ADropdown/ADropdownGroup.js +85 -85
  87. package/src/ADropdown/compositionAPI/ActionsAPI.js +147 -147
  88. package/src/ADropdown/compositionAPI/AttributesAPI.js +100 -100
  89. package/src/AElement/AElement.js +518 -518
  90. package/src/AElement/compositionAPI/AttributesAPI.js +51 -51
  91. package/src/AElement/compositionAPI/ClickAPI.js +30 -30
  92. package/src/AElement/compositionAPI/ComponentLocalAPI.js +23 -23
  93. package/src/AElement/compositionAPI/DisabledAPI.js +22 -22
  94. package/src/AElement/compositionAPI/HtmlTitleAPI.js +33 -33
  95. package/src/AElement/compositionAPI/KeydownAPI.js +35 -35
  96. package/src/AElement/compositionAPI/LoadingAPI.js +22 -22
  97. package/src/AElement/compositionAPI/RouterLinkAPI.js +20 -20
  98. package/src/AElement/compositionAPI/SwitchAPI.js +33 -33
  99. package/src/AElement/compositionAPI/TagAPI.js +34 -34
  100. package/src/AElement/compositionAPI/TextAPI.js +78 -78
  101. package/src/AElement/compositionAPI/TitleAPI.js +29 -29
  102. package/src/AFilters/AFilterCenter/AFilterCenter.js +154 -154
  103. package/src/AFilters/AFilterCenter/AFilterCenterItem/AFilterCenterItem.js +207 -207
  104. package/src/AFilters/AFilters/AFilters.js +282 -282
  105. package/src/AFilters/i18n/ar.json +30 -30
  106. package/src/AFilters/i18n/en.json +30 -30
  107. package/src/AFilters/i18n/es.json +30 -30
  108. package/src/AFilters/i18n/fr.json +30 -30
  109. package/src/AFilters/i18n/hr.json +30 -30
  110. package/src/AFilters/i18n/it.json +30 -30
  111. package/src/AFilters/i18n/ru.json +30 -30
  112. package/src/AGroupButtonDropdown/compositionAPI/ActionsAPI.js +143 -143
  113. package/src/ALink/ALink.js +253 -253
  114. package/src/AMenu/AMenu.js +578 -578
  115. package/src/AMenu/AMenuBreadcrumbs/compositionAPI/RenderTruncatedAPI.js +74 -74
  116. package/src/AMenu/AMenuButtonToggle/AMenuButtonToggle.js +94 -94
  117. package/src/AMenu/AMenuButtonToggle/compositionAPI/ToggleAPI.js +95 -95
  118. package/src/AMenu/AMenuPanelLink/AMenuPanelLink.js +250 -250
  119. package/src/AMenu/compositionAPI/BackdropAPI.js +42 -42
  120. package/src/AMenu/compositionAPI/KeydownAPI.js +197 -197
  121. package/src/AMenu/compositionAPI/LinkClickAPI.js +48 -48
  122. package/src/AMenu/compositionAPI/MenuAttributesAPI.js +51 -51
  123. package/src/AMenu/compositionAPI/PanelsAPI.js +78 -78
  124. package/src/AMenu/compositionAPI/ResizeAPI.js +74 -74
  125. package/src/AModal/AModal.js +530 -530
  126. package/src/AModalForm/AModalForm.js +383 -383
  127. package/src/AModalWizard/AModalWizard.js +563 -563
  128. package/src/ANotification/ANotification.js +60 -60
  129. package/src/APagination/APagination.js +111 -111
  130. package/src/APagination/APaginationCountPerPage/APaginationCountPerPage.js +209 -209
  131. package/src/APagination/APaginationCountPerPage/compositionAPI/MainAPI.js +40 -40
  132. package/src/APagination/APaginationCountPerPage/compositionAPI/TextsAPI.js +54 -54
  133. package/src/APagination/APaginationPages/APaginationPages.js +282 -282
  134. package/src/APagination/APaginationPages/compositionAPI/PaginationItemsAPI.js +102 -102
  135. package/src/APagination/APaginationPages/compositionAPI/TextsAPI.js +74 -74
  136. package/src/APagination/compositionAPI/ComponentsAPI.js +79 -79
  137. package/src/APagination/i18n/ar.json +12 -12
  138. package/src/APagination/i18n/es.json +12 -12
  139. package/src/APagination/i18n/fr.json +12 -12
  140. package/src/APagination/i18n/hr.json +12 -12
  141. package/src/APagination/i18n/it.json +12 -12
  142. package/src/APagination/i18n/ru.json +12 -12
  143. package/src/APopup/APopup.js +115 -115
  144. package/src/ATable/ATable.js +1159 -1157
  145. package/src/ATable/ATableHeaderThAction/ATableHeaderThAction.js +241 -241
  146. package/src/ATable/ATableSortingAdditional/__tests__/ATableSortingAdditional.ModelAPI.test.js +200 -200
  147. package/src/ATable/ATableSortingAdditional/compositionAPI/ModelAPI.js +152 -152
  148. package/src/ATable/ATableTd/ATableTd.js +145 -145
  149. package/src/ATable/ATableTdAction/ATableTdAction.js +223 -218
  150. package/src/ATable/ATableTopPanel/ATableTopPanel.js +433 -433
  151. package/src/ATable/ATableTr/ATableTr.js +8 -0
  152. package/src/ATable/ATableTr/compositionAPI/AttributesAPI.js +3 -1
  153. package/src/ATable/__tests__/ATable.RowIdsAPI.test.js +66 -0
  154. package/src/ATable/compositionAPI/ColumnActionAPI.js +105 -105
  155. package/src/ATable/compositionAPI/ColumnStylesAPI.js +50 -50
  156. package/src/ATable/compositionAPI/ColumnsGroupedAPI.js +187 -187
  157. package/src/ATable/compositionAPI/PaginationModesAPI.js +44 -44
  158. package/src/ATable/compositionAPI/PreviewAPI.js +201 -201
  159. package/src/ATable/compositionAPI/PreviewRightResizeAPI.js +135 -135
  160. package/src/ATable/compositionAPI/RowActionsAPI.js +3 -1
  161. package/src/ATable/compositionAPI/ScrollControlAPI.js +249 -249
  162. package/src/ATable/compositionAPI/SortAPI.js +86 -86
  163. package/src/ATable/compositionAPI/WidthAPI.js +73 -73
  164. package/src/ATableForm/ATableForm.js +595 -595
  165. package/src/ATableForm/ATableFormCell/ATableFormCell.js +204 -204
  166. package/src/ATableForm/ATableFormCell/compositionAPI/DisabledAPI.js +23 -23
  167. package/src/ATableForm/ATableFormCell/compositionAPI/ReadonlyAPI.js +31 -31
  168. package/src/ATableForm/ATableFormCellAction/ATableFormCellAction.js +282 -282
  169. package/src/ATableForm/ATableFormCellAction/compositionAPI/DeleteAPI.js +80 -80
  170. package/src/ATableForm/ATableFormCellAction/compositionAPI/DisabledAPI.js +60 -60
  171. package/src/ATableForm/ATableFormCellAction/compositionAPI/HiddenAPI.js +46 -46
  172. package/src/ATableForm/ATableFormCellAction/compositionAPI/IdsAPI.js +31 -31
  173. package/src/ATableForm/ATableFormCellAction/compositionAPI/StylesAPI.js +27 -27
  174. package/src/ATableForm/ATableFormCellAction/compositionAPI/TitleAPI.js +47 -47
  175. package/src/ATableForm/ATableFormCellDnd/compositionAPI/IdAPI.js +21 -21
  176. package/src/ATableForm/ATableFormCellList/ATableFormCellList.js +127 -127
  177. package/src/ATableForm/ATableFormCellList/compositionAPI/DataAPI.js +77 -77
  178. package/src/ATableForm/ATableFormRow/ATableFormRow.js +592 -592
  179. package/src/ATableForm/ATableFormRow/compositionAPI/ErrorsAPI.js +40 -40
  180. package/src/ATableForm/ATableFormRow/compositionAPI/FocusAPI.js +55 -55
  181. package/src/ATableForm/ATableFormRow/compositionAPI/IdAPI.js +19 -19
  182. package/src/ATableForm/__tests__/ATableForm.ListView.test.js +864 -864
  183. package/src/ATableForm/compositionAPI/ClassesAPI.js +23 -23
  184. package/src/ATableForm/compositionAPI/ColumnsGrowAPI.js +180 -180
  185. package/src/ATableForm/compositionAPI/DeleteAPI.js +9 -9
  186. package/src/ATableForm/compositionAPI/EditAPI.js +125 -125
  187. package/src/ATableForm/compositionAPI/RowsAPI.js +42 -42
  188. package/src/ATableForm/compositionAPI/StylesAPI.js +62 -62
  189. package/src/ATableForm/compositionAPI/WidthsAPI.js +20 -20
  190. package/src/ATableForm/i18n/ATableFormI18n.js +19 -19
  191. package/src/ATableForm/utils/getFormElement.js +32 -32
  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/AFiltersAPI.js +178 -178
  200. package/src/compositionAPI/AMobileAPI.js +32 -32
  201. package/src/compositionAPI/APageTabTitleAPI.js +84 -84
  202. package/src/compositionAPI/ARemPxAPI.js +47 -47
  203. package/src/compositionAPI/FocusByDestroyAPI.js +67 -67
  204. package/src/const/AKeys.js +9 -9
  205. package/src/directives/AOnHooks.js +0 -0
  206. package/src/filters/__tests__/filterValueByCondition.test.js +94 -94
  207. package/src/filters/filterValueByCondition.js +87 -87
  208. package/src/i18n/allLanguages.js +377 -377
  209. package/src/i18n/ar.json +4 -4
  210. package/src/i18n/de.json +4 -4
  211. package/src/i18n/en.json +4 -4
  212. package/src/i18n/es.json +4 -4
  213. package/src/i18n/fr.json +4 -4
  214. package/src/i18n/hr.json +4 -4
  215. package/src/i18n/it.json +4 -4
  216. package/src/i18n/ru.json +4 -4
  217. package/src/index.js +403 -403
  218. package/src/plugins/AAlertPlugin.js +53 -53
  219. package/src/plugins/ACarouselPlugin.js +34 -34
  220. package/src/plugins/ADatepickerPlugin.js +57 -57
  221. package/src/plugins/AFiltersPlugin.js +102 -102
  222. package/src/plugins/AInputCurrencyPlugin.js +31 -31
  223. package/src/plugins/AMobilePlugin.js +32 -32
  224. package/src/plugins/ARemPxPlugin.js +37 -37
  225. package/src/plugins/ASelectPlugin.js +51 -51
  226. package/src/plugins/ASelectStylesPlugin.js +2376 -2376
  227. package/src/temp/px_to_rem_mapping_1_to_800.md +802 -802
  228. package/src/ui/ACheckbox/ACheckbox.js +929 -929
  229. package/src/ui/ACheckbox/ACheckboxItem/ACheckboxItem.js +0 -0
  230. package/src/ui/ACheckboxRadioGroups/ACheckboxRadioGroups.js +0 -0
  231. package/src/ui/ADatepicker/ADatepicker.js +804 -803
  232. package/src/ui/ADatepicker/ADatepickerCalendarPanel/ADatepickerCalendarPanel.js +796 -796
  233. package/src/ui/ADatepicker/ADatepickerCalendarPanel/compositionAPI/CalendarAPI.js +51 -51
  234. package/src/ui/ADatepicker/compositionAPI/LanguagesAPI.js +92 -92
  235. package/src/ui/ADatepicker/compositionAPI/PlaceholderAPI.js +55 -55
  236. package/src/ui/ADatepicker/i18n/ADatepickerI18n.js +19 -19
  237. package/src/ui/ADatepicker/i18n/ar.json +47 -47
  238. package/src/ui/ADatepicker/i18n/de.json +48 -48
  239. package/src/ui/ADatepicker/i18n/en.json +48 -48
  240. package/src/ui/ADatepicker/i18n/es.json +47 -47
  241. package/src/ui/ADatepicker/i18n/fr.json +47 -47
  242. package/src/ui/ADatepicker/i18n/hr.json +47 -47
  243. package/src/ui/ADatepicker/i18n/it.json +47 -47
  244. package/src/ui/ADatepicker/i18n/ru.json +48 -48
  245. package/src/ui/ADatepicker/panel/APanelDate/APanelDate.js +196 -196
  246. package/src/ui/ADatepicker/panel/APanelDate/compositionAPI/DatesAPI.js +66 -66
  247. package/src/ui/ADatepicker/panel/APanelDate/compositionAPI/FocusAPI.js +96 -96
  248. package/src/ui/ADatepicker/panel/APanelDate/compositionAPI/FocusActiveAPI.js +27 -27
  249. package/src/ui/ADatepicker/panel/APanelDate/compositionAPI/SelectAPI.js +21 -21
  250. package/src/ui/ADatepicker/panel/APanelDate/compositionAPI/TableAPI.js +128 -128
  251. package/src/ui/ADatepicker/panel/APanelMonth/APanelMonth.js +129 -129
  252. package/src/ui/ADatepicker/panel/APanelMonth/compositionAPI/FocusAPI.js +94 -94
  253. package/src/ui/ADatepicker/panel/APanelMonth/compositionAPI/FocusActiveAPI.js +21 -21
  254. package/src/ui/ADatepicker/panel/APanelMonth/compositionAPI/MonthsAPI.js +51 -51
  255. package/src/ui/ADatepicker/panel/APanelMonth/compositionAPI/SelectAPI.js +29 -29
  256. package/src/ui/ADatepicker/panel/APanelYearItem/APanelYearItem.js +75 -75
  257. package/src/ui/ADatepicker/panel/APanelYearItem/compositionAPI/AttributesAPI.js +35 -35
  258. package/src/ui/ADatepicker/panel/APanelYearItem/compositionAPI/SelectAPI.js +35 -35
  259. package/src/ui/ADatepickerAlt/ADatepicker.js +1 -0
  260. package/src/ui/ADatepickerRange/ADatepickerRange.js +528 -525
  261. package/src/ui/AErrors/AErrors.js +149 -149
  262. package/src/ui/AErrors/AErrorsElement/AErrorsElement.js +0 -0
  263. package/src/ui/AErrors/i18n/AErrorsI18n.js +19 -19
  264. package/src/ui/AErrors/i18n/ar.json +3 -3
  265. package/src/ui/AErrors/i18n/de.json +2 -2
  266. package/src/ui/AErrors/i18n/en.json +3 -3
  267. package/src/ui/AErrors/i18n/es.json +3 -3
  268. package/src/ui/AErrors/i18n/fr.json +3 -3
  269. package/src/ui/AErrors/i18n/hr.json +3 -3
  270. package/src/ui/AErrors/i18n/it.json +3 -3
  271. package/src/ui/AErrors/i18n/ru.json +3 -3
  272. package/src/ui/AErrorsText/AErrorsText.js +62 -62
  273. package/src/ui/AFieldset/AFieldset.js +535 -535
  274. package/src/ui/AFieldset/compositionAPI/ModelAPI.js +54 -54
  275. package/src/ui/AForm/AForm.js +252 -252
  276. package/src/ui/AFormElement/AFormElement.js +160 -160
  277. package/src/ui/AFormElementBtnClear/AFormElementBtnClear.js +86 -86
  278. package/src/ui/AFormElementBtnClear/i18n/AFormElementBtnClearI18n.js +19 -19
  279. package/src/ui/AFormElementBtnClear/i18n/ar.json +2 -2
  280. package/src/ui/AFormElementBtnClear/i18n/de.json +2 -2
  281. package/src/ui/AFormElementBtnClear/i18n/en.json +2 -2
  282. package/src/ui/AFormElementBtnClear/i18n/es.json +2 -2
  283. package/src/ui/AFormElementBtnClear/i18n/fr.json +2 -2
  284. package/src/ui/AFormElementBtnClear/i18n/hr.json +2 -2
  285. package/src/ui/AFormElementBtnClear/i18n/it.json +2 -2
  286. package/src/ui/AFormElementBtnClear/i18n/ru.json +2 -2
  287. package/src/ui/AFormHelpText/AFormHelpText.js +37 -37
  288. package/src/ui/AFormLabelDescription/AFormLabelDescription.js +43 -43
  289. package/src/ui/AFormReadonly/AFormReadonly.js +193 -193
  290. package/src/ui/AGroup/AGroup.js +427 -427
  291. package/src/ui/AInput/AInput.js +516 -516
  292. package/src/ui/AInput/compositionAPI/ClassAPI.js +43 -43
  293. package/src/ui/AInputCurrency/AInputCurrency.js +620 -619
  294. package/src/ui/AInputCurrency/compositionAPI/IncreaseDecreaseAPI.js +76 -76
  295. package/src/ui/AInputCurrency/compositionAPI/InputEventsAPI.js +752 -752
  296. package/src/ui/AInputCurrency/compositionAPI/ModelAPI.js +88 -88
  297. package/src/ui/AInputCurrency/compositionAPI/UtilsAPI.js +67 -67
  298. package/src/ui/AInputFile/AInputFile.js +244 -243
  299. package/src/ui/AInputNumber/AInputNumber.js +491 -489
  300. package/src/ui/AInputNumber/compositionAPI/InputEventsAPI.js +196 -196
  301. package/src/ui/AInputNumber/compositionAPI/ModelAPI.js +72 -72
  302. package/src/ui/AInputNumberRange/AInputNumberRange.js +508 -505
  303. package/src/ui/AJson/AJson.js +434 -434
  304. package/src/ui/ALabel/ALabel.js +0 -0
  305. package/src/ui/AMultiselectOrdered/AMultiselectOrdered.js +935 -935
  306. package/src/ui/AOneCheckbox/AOneCheckbox.js +366 -366
  307. package/src/ui/ARadio/ARadio.js +924 -924
  308. package/src/ui/ARadio/ARadioItem/ARadioItem.js +0 -0
  309. package/src/ui/ARequired/ARequired.js +0 -0
  310. package/src/ui/ARouterLinkConfig/ARouterLinkConfig.js +391 -391
  311. package/src/ui/ARouterLinkConfig/compositionAPI/DataFormAPI.js +102 -102
  312. package/src/ui/ARouterLinkConfig/compositionAPI/ModelLocalAPI.js +96 -96
  313. package/src/ui/ARouterLinkConfig/compositionAPI/RouteAPI.js +51 -51
  314. package/src/ui/ASelect/ASelect.js +1210 -1209
  315. package/src/ui/ASelect/ASelectElement/ASelectElement.js +0 -0
  316. package/src/ui/ASelect/ASelectValueCloseable/compositionAPI/CloseAPI.js +28 -28
  317. package/src/ui/ASelect/compositionAPI/ToggleAPI.js +255 -255
  318. package/src/ui/ASelect/i18n/ar.json +6 -6
  319. package/src/ui/ASelect/i18n/de.json +7 -7
  320. package/src/ui/ASelect/i18n/en.json +6 -6
  321. package/src/ui/ASelect/i18n/es.json +6 -6
  322. package/src/ui/ASelect/i18n/fr.json +6 -6
  323. package/src/ui/ASelect/i18n/hr.json +6 -6
  324. package/src/ui/ASelect/i18n/it.json +6 -6
  325. package/src/ui/ASelect/i18n/ru.json +6 -6
  326. package/src/ui/ASelectIcon/ASelectIcon.js +386 -386
  327. package/src/ui/ASelectStyle/ASelectStyle.js +391 -391
  328. package/src/ui/ASelectStyle/compositionAPI/DataAPI.js +68 -68
  329. package/src/ui/ASelectStyle/compositionAPI/EventsAPI.js +24 -24
  330. package/src/ui/ASelectStyle/compositionAPI/KeyLabelCallbackAPI.js +15 -15
  331. package/src/ui/ASelectStyle/compositionAPI/TypeAPI.js +24 -24
  332. package/src/ui/ASelectStyle/i18n/ASelectStyleI18n.js +19 -19
  333. package/src/ui/ASelectStyle/i18n/ar.json +277 -277
  334. package/src/ui/ASelectStyle/i18n/de.json +277 -277
  335. package/src/ui/ASelectStyle/i18n/en.json +277 -277
  336. package/src/ui/ASelectStyle/i18n/es.json +277 -277
  337. package/src/ui/ASelectStyle/i18n/fr.json +277 -277
  338. package/src/ui/ASelectStyle/i18n/hr.json +277 -277
  339. package/src/ui/ASelectStyle/i18n/it.json +277 -277
  340. package/src/ui/ASelectStyle/i18n/ru.json +277 -277
  341. package/src/ui/ASlider/ASlider.js +672 -672
  342. package/src/ui/ASlider/compositionAPI/AriaAttributesAPI.js +121 -121
  343. package/src/ui/ASlider/compositionAPI/AttributesAPI.js +15 -15
  344. package/src/ui/ASlider/compositionAPI/DataAPI.js +115 -115
  345. package/src/ui/ASlider/compositionAPI/DragAndDropAPI.js +198 -198
  346. package/src/ui/ASlider/compositionAPI/LabelAPI.js +13 -13
  347. package/src/ui/ASlider/compositionAPI/MarksAPI.js +32 -32
  348. package/src/ui/ASlider/compositionAPI/SliderAPI.js +289 -289
  349. package/src/ui/ASlider/compositionAPI/StopsAPI.js +47 -47
  350. package/src/ui/ASlider/compositionAPI/StylesAPI.js +79 -79
  351. package/src/ui/ASlider/compositionAPI/TitleAPI.js +42 -42
  352. package/src/ui/ASlider/i18n/ASliderI18n.js +19 -19
  353. package/src/ui/ASlider/i18n/en.json +4 -4
  354. package/src/ui/ASwitch/ASwitch.js +439 -438
  355. package/src/ui/ATemplate/ATemplate.js +0 -0
  356. package/src/ui/ATextarea/ATextarea.js +437 -437
  357. package/src/ui/AUiComponents.js +59 -59
  358. package/src/ui/AUiContainerComponents.js +12 -12
  359. package/src/ui/AValidatedJson/AValidatedJson.js +594 -594
  360. package/src/ui/AValidatedJson/AValidatedJsonItem/compositionAPI/DeleteAPI.js +63 -63
  361. package/src/ui/AValidatedJson/AValidatedJsonItem/compositionAPI/DetailsAPI.js +59 -59
  362. package/src/ui/AValidatedJson/AValidatedJsonItem/compositionAPI/MoveAPI.js +50 -50
  363. package/src/ui/AValidatedJson/AValidatedJsonItem/compositionAPI/UpdateAPI.js +48 -48
  364. package/src/ui/AValidatedJson/AValidatedJsonModalCreateOrUpdate/composiitionAPI/DataFormAPI.js +69 -69
  365. package/src/ui/AValidatedJson/AValidatedJsonModalCreateOrUpdate/composiitionAPI/DisabledAPI.js +35 -35
  366. package/src/ui/AValidatedJson/AValidatedJsonModalCreateOrUpdate/composiitionAPI/ModelAPI.js +31 -31
  367. package/src/ui/AValidatedJson/AValidatedJsonModalCreateOrUpdate/composiitionAPI/SaveAPI.js +115 -115
  368. package/src/ui/AValidatedJson/AValidatedJsonModalCreateOrUpdate/composiitionAPI/TextAPI.js +25 -25
  369. package/src/ui/AValidatedJson/compositionAPI/AValidatedJsonErrorLabelsAPI.js +18 -18
  370. package/src/ui/AValidatedJson/compositionAPI/AttributesAPI.js +15 -15
  371. package/src/ui/AValidatedJson/compositionAPI/ChildrenAPI.js +70 -70
  372. package/src/ui/AValidatedJson/compositionAPI/EventsAPI.js +19 -19
  373. package/src/ui/AValidatedJson/compositionAPI/JsonModeAPI.js +119 -119
  374. package/src/ui/AValidatedJson/compositionAPI/ListModeAPI.js +144 -144
  375. package/src/ui/AValidatedJson/compositionAPI/ModelAPI.js +38 -38
  376. package/src/ui/AValidatedJson/compositionAPI/SingleModeAPI.js +112 -112
  377. package/src/ui/AValidatedJson/compositionAPI/TranslateAPI.js +22 -22
  378. package/src/ui/AValidatedJson/i18n/AValidatedJsonI18n.js +19 -19
  379. package/src/ui/AValidatedJson/i18n/ar.json +3 -3
  380. package/src/ui/AValidatedJson/i18n/de.json +22 -22
  381. package/src/ui/AValidatedJson/i18n/en.json +3 -3
  382. package/src/ui/AValidatedJson/i18n/es.json +3 -3
  383. package/src/ui/AValidatedJson/i18n/fr.json +3 -3
  384. package/src/ui/AValidatedJson/i18n/hr.json +3 -3
  385. package/src/ui/AValidatedJson/i18n/it.json +3 -3
  386. package/src/ui/AValidatedJson/i18n/ru.json +6 -6
  387. package/src/ui/compositionApi/UIDataGroupAPI.js +94 -94
  388. package/src/ui/compositionApi/UiAPI.js +185 -185
  389. package/src/ui/compositionApi/UiClearButtonAPI.js +19 -19
  390. package/src/ui/compositionApi/UiDataSortAPI.js +29 -29
  391. package/src/ui/compositionApi/UiDataWithKeyIdAndLabelAPI.js +155 -155
  392. package/src/ui/const/AUiTypes.js +69 -69
  393. package/src/ui/mixins/UiMixinProps.js +129 -129
  394. package/src/ui/utils/utils.js +79 -79
  395. package/src/utils/__tests__/utils.aOrderBy.test.js +237 -237
  396. package/src/utils/__tests__/utils.aSortBy.test.js +331 -331
  397. package/src/utils/__tests__/utilsArray.aFirst.test.js +54 -54
  398. package/src/utils/__tests__/utilsArray.aLast.test.js +54 -54
  399. package/src/utils/__tests__/utilsLang.isArguments.test.js +52 -52
  400. package/src/utils/__tests__/utilsLang.isArray.test.js +50 -50
  401. package/src/utils/__tests__/utilsLang.isArrayBuffer.test.js +48 -48
  402. package/src/utils/__tests__/utilsLang.isBoolean.test.js +56 -56
  403. package/src/utils/__tests__/utilsLang.isBuffer.test.js +47 -47
  404. package/src/utils/__tests__/utilsLang.isDate.test.js +54 -54
  405. package/src/utils/__tests__/utilsLang.isElement.test.js +53 -53
  406. package/src/utils/__tests__/utilsLang.isError.test.js +52 -52
  407. package/src/utils/__tests__/utilsLang.isFinite.test.js +57 -57
  408. package/src/utils/__tests__/utilsLang.isFunction.test.js +46 -46
  409. package/src/utils/__tests__/utilsLang.isInteger.test.js +58 -58
  410. package/src/utils/__tests__/utilsLang.isMap.test.js +50 -50
  411. package/src/utils/__tests__/utilsLang.isNaN.test.js +55 -55
  412. package/src/utils/__tests__/utilsLang.isNil.test.js +57 -57
  413. package/src/utils/__tests__/utilsLang.isNull.test.js +53 -53
  414. package/src/utils/__tests__/utilsLang.isNumber.test.js +54 -54
  415. package/src/utils/__tests__/utilsLang.isObject.test.js +49 -49
  416. package/src/utils/__tests__/utilsLang.isObjectLike.test.js +45 -45
  417. package/src/utils/__tests__/utilsLang.isPlainObject.test.js +60 -60
  418. package/src/utils/__tests__/utilsLang.isPromise.test.js +93 -93
  419. package/src/utils/__tests__/utilsLang.isRegExp.test.js +46 -46
  420. package/src/utils/__tests__/utilsLang.isSet.test.js +50 -50
  421. package/src/utils/__tests__/utilsLang.isString.test.js +50 -50
  422. package/src/utils/__tests__/utilsLang.isSymbol.test.js +45 -45
  423. package/src/utils/__tests__/utilsLang.isUndefined.test.js +57 -57
  424. package/src/utils/__tests__/utilsLang.isWeakMap.test.js +49 -49
  425. package/src/utils/__tests__/utilsLang.isWeakSet.test.js +49 -49
  426. package/src/utils/actions.js +67 -67
  427. package/src/utils/autosize.js +277 -277
  428. package/src/utils/isBrowser.js +12 -12
  429. package/src/utils/utils.js +253 -253
  430. package/src/utils/utilsArray.js +29 -29
  431. package/src/utils/utilsDOM.js +188 -188
  432. package/src/utils/utilsLang.js +346 -346
@@ -24,13 +24,15 @@ export default function RowActionsAPI(props) {
24
24
  const isFooter = toRef(props, "isFooter");
25
25
  const row = toRef(props, "row");
26
26
  const rowIndex = toRef(props, "rowIndex");
27
+ const rowIndexPath = toRef(props, "rowIndexPath");
27
28
 
28
29
  const columnActionsOnePlusDropdownOptions = inject("columnActionsOnePlusDropdownOptions");
29
30
  const rowActions = inject("rowActions");
30
31
  const tableId = inject("tableId");
31
32
 
32
33
  const buttonActionsId = computed(() => {
33
- return `${ tableId.value }_action_${ rowIndex.value }`;
34
+ const ROW_INDEX_PATH = rowIndexPath.value || rowIndex.value;
35
+ return `${ tableId.value }_action_${ ROW_INDEX_PATH }`;
34
36
  });
35
37
 
36
38
  const indexFirstDropdownActionLocal = computed(() => {
@@ -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
+ }