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
@@ -1,518 +1,518 @@
1
- import {
2
- h,
3
- } from "vue";
4
- import {
5
- AIcon,
6
- APlacements,
7
- ASpinner,
8
- ATranslation,
9
- } from "../index";
10
-
11
- import AriaLabelAPI from "../ATranslation/compositionAPI/AriaLabelAPI";
12
- import AttributesAPI from "./compositionAPI/AttributesAPI";
13
- import ClickAPI from "./compositionAPI/ClickAPI";
14
- import ComponentLocalAPI from "./compositionAPI/ComponentLocalAPI";
15
- import DisabledAPI from "./compositionAPI/DisabledAPI";
16
- import HtmlTitleAPI from "./compositionAPI/HtmlTitleAPI";
17
- import KeydownAPI from "./compositionAPI/KeydownAPI";
18
- import LoadingAPI from "./compositionAPI/LoadingAPI";
19
- import RouterLinkAPI from "./compositionAPI/RouterLinkAPI";
20
- import SwitchAPI from "./compositionAPI/SwitchAPI";
21
- import TagAPI from "./compositionAPI/TagAPI";
22
- import TextAPI from "./compositionAPI/TextAPI";
23
- import TitleAPI from "./compositionAPI/TitleAPI";
24
- import UIExcludeRenderAttributesAPI from "../ui/compositionApi/UIExcludeRenderAttributesAPI";
25
-
26
- import {
27
- isInteger,
28
- isString,
29
- uniqueId,
30
- } from "lodash-es";
31
-
32
- export default {
33
- name: "AElement",
34
- inheritAttrs: false,
35
- props: {
36
- alwaysTranslate: {
37
- type: Boolean,
38
- required: false,
39
- },
40
- ariaDisabled: {
41
- type: Boolean,
42
- required: false,
43
- default: undefined,
44
- },
45
- ariaLabel: {
46
- type: [String, Number, Object],
47
- required: false,
48
- default: undefined,
49
- },
50
- attributes: {
51
- type: Object,
52
- required: false,
53
- default: () => ({}),
54
- },
55
- class: {
56
- type: [String, Object],
57
- required: false,
58
- default: undefined,
59
- },
60
- classDefault: {
61
- type: String,
62
- required: false,
63
- default: "aloha_element",
64
- },
65
- classDefaultHidden: {
66
- type: String,
67
- required: false,
68
- default: "aloha_element__hidden",
69
- },
70
- classDisabled: {
71
- type: String,
72
- required: false,
73
- default: "disabled",
74
- },
75
- disabled: {
76
- type: Boolean,
77
- required: false,
78
- default: undefined,
79
- },
80
- excludeRenderAttributes: {
81
- type: Array,
82
- required: false,
83
- default: () => [],
84
- },
85
- extra: {
86
- type: Object,
87
- required: false,
88
- default: undefined,
89
- },
90
- extraData: {
91
- type: [String, Number, Boolean, Array, Object, Date, Function, Symbol, null, undefined],
92
- required: false,
93
- default: undefined,
94
- },
95
- href: {
96
- type: String,
97
- required: false,
98
- default: undefined,
99
- },
100
- html: {
101
- type: [String, Number, Object, Array],
102
- required: false,
103
- default: undefined,
104
- },
105
- htmlScreenReader: {
106
- type: [String, Number, Object, Array],
107
- required: false,
108
- default: undefined,
109
- },
110
- iconAttributes: {
111
- type: Object,
112
- required: false,
113
- default: () => ({}),
114
- },
115
- iconClass: {
116
- type: [String, Object],
117
- required: false,
118
- default: undefined,
119
- },
120
- iconLeft: {
121
- type: [String, Object],
122
- required: false,
123
- default: undefined,
124
- },
125
- iconRight: {
126
- type: [String, Object],
127
- required: false,
128
- default: undefined,
129
- },
130
- iconTag: {
131
- type: String,
132
- required: false,
133
- default: undefined,
134
- },
135
- id: {
136
- type: String,
137
- required: false,
138
- default: () => uniqueId("a_element_"),
139
- },
140
- isSwitch: {
141
- type: Boolean,
142
- required: false,
143
- default: undefined,
144
- },
145
- isTitleHtml: {
146
- type: Boolean,
147
- required: false,
148
- default: undefined,
149
- },
150
- loading: {
151
- type: Boolean,
152
- required: false,
153
- default: false,
154
- },
155
- loadingAlign: {
156
- type: String,
157
- required: false,
158
- default: "right",
159
- validator: value => ["right", "left"].indexOf(value) !== -1,
160
- },
161
- loadingClass: {
162
- type: [String, Object],
163
- required: false,
164
- default: "a_spinner_small",
165
- },
166
- modelSwitch: {
167
- type: Boolean,
168
- required: false,
169
- default: undefined,
170
- },
171
- prevent: {
172
- type: Boolean,
173
- required: false,
174
- default: undefined,
175
- },
176
- preventKeyboardRepeat: {
177
- type: Boolean,
178
- required: false,
179
- default: false,
180
- },
181
- safeHtml: {
182
- type: [String, Number, Object, Array],
183
- required: false,
184
- default: undefined,
185
- },
186
- safeHtmlScreenReader: {
187
- type: [String, Number, Object, Array],
188
- required: false,
189
- default: undefined,
190
- },
191
- stop: {
192
- type: Boolean,
193
- required: false,
194
- default: undefined,
195
- },
196
- tabindex: {
197
- type: [Number, String],
198
- required: false,
199
- default: undefined,
200
- },
201
- tag: {
202
- type: String,
203
- required: false,
204
- default: undefined,
205
- },
206
- target: {
207
- type: String,
208
- required: false,
209
- default: undefined,
210
- },
211
- text: {
212
- type: [String, Number, Object, Array],
213
- required: false,
214
- default: undefined,
215
- },
216
- textAfter: {
217
- type: [String, Number, Object],
218
- required: false,
219
- default: undefined,
220
- },
221
- textAriaHidden: {
222
- type: Boolean,
223
- required: false,
224
- default: undefined,
225
- },
226
- textBefore: {
227
- type: [String, Number, Object],
228
- required: false,
229
- default: undefined,
230
- },
231
- textClass: {
232
- type: String,
233
- required: false,
234
- default: undefined,
235
- },
236
- textScreenReader: {
237
- type: [String, Number, Object, Array],
238
- required: false,
239
- default: undefined,
240
- },
241
- textTag: {
242
- type: String,
243
- required: false,
244
- default: "span",
245
- },
246
- title: {
247
- type: [String, Number, Object, Array],
248
- required: false,
249
- default: undefined,
250
- },
251
- titleAttributes: {
252
- type: Object,
253
- required: false,
254
- default: () => ({}),
255
- },
256
- titlePlacement: {
257
- type: String,
258
- required: false,
259
- default: "top",
260
- validator: placement => APlacements.indexOf(placement) !== -1,
261
- },
262
- titleZIndex: {
263
- type: [Number, String],
264
- required: false,
265
- default: "auto",
266
- validator: value => {
267
- if (isString(value)) {
268
- return value === "auto";
269
- }
270
- return isInteger(value);
271
- },
272
- },
273
- to: {
274
- type: [Object, String],
275
- required: false,
276
- default: undefined,
277
- },
278
- type: {
279
- type: String,
280
- required: true,
281
- default: "text",
282
- validator: value => ["button", "submit", "reset", "link", "text"].indexOf(value) !== -1,
283
- },
284
- },
285
- emits: [
286
- "click",
287
- ],
288
- setup(props, context) {
289
- const {
290
- attributesToExcludeFromRender,
291
- } = UIExcludeRenderAttributesAPI(props);
292
-
293
- const {
294
- isRouterLink,
295
- } = RouterLinkAPI(props);
296
-
297
- const {
298
- disabledLocal,
299
- } = DisabledAPI(props);
300
-
301
- const {
302
- tagLocal,
303
- } = TagAPI(props, {
304
- isRouterLink,
305
- });
306
-
307
- const {
308
- toHrefAttributes,
309
- typeAttribut,
310
- } = AttributesAPI(props, {
311
- isRouterLink,
312
- tagLocal,
313
- });
314
-
315
- const {
316
- isTitleVisible,
317
- } = TitleAPI(props);
318
-
319
- const {
320
- isLoadingLeft,
321
- isLoadingRight,
322
- } = LoadingAPI(props);
323
-
324
- const {
325
- isTextOrHtmlVisible,
326
- isTextOrHtmlScreenReaderVisible,
327
- } = TextAPI(props);
328
-
329
- const {
330
- onClick,
331
- } = ClickAPI(props, context);
332
-
333
- const {
334
- componentLocal,
335
- } = ComponentLocalAPI(props, {
336
- tagLocal,
337
- });
338
-
339
- const {
340
- elementRef,
341
- htmlTitleAttributes,
342
- } = HtmlTitleAPI(props, {
343
- tagLocal,
344
- });
345
-
346
- const {
347
- ariaLabelAttributes,
348
- } = AriaLabelAPI(props);
349
-
350
- const {
351
- isSwitchActive,
352
- switchClass,
353
- } = SwitchAPI(props);
354
-
355
- const {
356
- onKeydown,
357
- } = KeydownAPI(props, context);
358
-
359
-
360
- return {
361
- ariaLabelAttributes,
362
- attributesToExcludeFromRender,
363
- componentLocal,
364
- disabledLocal,
365
- elementRef,
366
- htmlTitleAttributes,
367
- isLoadingLeft,
368
- isLoadingRight,
369
- isSwitchActive,
370
- isTextOrHtmlScreenReaderVisible,
371
- isTextOrHtmlVisible,
372
- isTitleVisible,
373
- onClick,
374
- onKeydown,
375
- switchClass,
376
- tagLocal,
377
- toHrefAttributes,
378
- typeAttribut,
379
- };
380
- },
381
- render() {
382
- return h(this.componentLocal, {
383
- ...this.$attrs,
384
- ...this.htmlTitleAttributes,
385
- ...this.ariaLabelAttributes,
386
- ...this.toHrefAttributes,
387
- ref: "elementRef",
388
- id: this.id,
389
- class: [
390
- this.classDefault,
391
- this.switchClass,
392
- this.class,
393
- {
394
- [this.classDisabled]: this.ariaDisabled,
395
- },
396
- ],
397
- type: this.typeAttribut,
398
- tabindex: this.tabindex,
399
- disabled: this.disabledLocal,
400
- ariaDisabled: this.ariaDisabled,
401
- "aria-pressed": this.isSwitchActive,
402
- isAllRowsSelected: undefined, // TODO: ATable
403
- onClick: this.onClick,
404
- onKeydown: this.onKeydown,
405
- ...this.attributes,
406
- ...this.attributesToExcludeFromRender,
407
- }, {
408
- default: () => [
409
- (!this.isTitleHtml && this.isTitleVisible) ?
410
- h(ATranslation, {
411
- tag: "span",
412
- alwaysTranslate: this.alwaysTranslate,
413
- ariaHidden: true,
414
- class: [
415
- "a_position_absolute_all",
416
- this.classDefaultHidden,
417
- ],
418
- title: this.title,
419
- extra: this.extra,
420
- style: {
421
- zIndex: this.titleZIndex,
422
- },
423
- ...this.titleAttributes,
424
- }) :
425
- "",
426
- this.isTextOrHtmlScreenReaderVisible ?
427
- h(ATranslation, {
428
- alwaysTranslate: this.alwaysTranslate,
429
- class: [
430
- "a_sr_only",
431
- this.classDefaultHidden,
432
- ],
433
- tag: "span",
434
- text: this.textScreenReader,
435
- html: this.htmlScreenReader,
436
- safeHtml: this.safeHtmlScreenReader,
437
- extra: this.extra,
438
- }) :
439
- "",
440
- this.$slots.buttonPrepend ?
441
- this.$slots.buttonPrepend({ extraData: this.extraData }) :
442
- "",
443
- this.isLoadingLeft ?
444
- h(ASpinner, {
445
- class: [
446
- "aloha_btn__spinner_left",
447
- this.loadingClass,
448
- ],
449
- }) :
450
- "",
451
- h(AIcon, {
452
- icon: this.iconLeft,
453
- iconTag: this.iconTag,
454
- class: [
455
- "aloha_btn__icon_left",
456
- this.iconClass,
457
- ],
458
- ...this.iconAttributes,
459
- }),
460
- this.$slots.default ?
461
- this.$slots.default({ extraData: this.extraData }) :
462
- "",
463
- this.isTextOrHtmlVisible ?
464
- h(ATranslation, {
465
- alwaysTranslate: this.alwaysTranslate,
466
- ariaHidden: this.textAriaHidden,
467
- class: this.textClass,
468
- extra: this.extra,
469
- html: this.html,
470
- safeHtml: this.safeHtml,
471
- tag: this.textTag,
472
- text: this.text,
473
- textAfter: this.textAfter,
474
- textBefore: this.textBefore,
475
- }) :
476
- "",
477
- h(AIcon, {
478
- icon: this.iconRight,
479
- iconTag: this.iconTag,
480
- class: [
481
- "aloha_btn__icon_right",
482
- this.iconClass,
483
- ],
484
- ...this.iconAttributes,
485
- }),
486
- this.isLoadingRight ?
487
- h(ASpinner, {
488
- class: [
489
- "aloha_btn__spinner_right",
490
- this.loadingClass,
491
- ],
492
- }) :
493
- "",
494
- this.$slots.buttonAppend ?
495
- this.$slots.buttonAppend({ extraData: this.extraData }) :
496
- "",
497
- ],
498
- title: !this.isTitleHtml ||
499
- (!this.title && !this.$slots.buttonTitle) ?
500
- () => "" :
501
- () => {
502
- return [
503
- this.isTitleVisible ?
504
- h(ATranslation, {
505
- alwaysTranslate: this.alwaysTranslate,
506
- html: this.title,
507
- tag: "span",
508
- extra: this.extra,
509
- }) :
510
- "",
511
- this.$slots.buttonTitle ?
512
- this.$slots.buttonTitle({ extraData: this.extraData }) :
513
- "",
514
- ];
515
- },
516
- });
517
- },
518
- };
1
+ import {
2
+ h,
3
+ } from "vue";
4
+ import {
5
+ AIcon,
6
+ APlacements,
7
+ ASpinner,
8
+ ATranslation,
9
+ } from "../index";
10
+
11
+ import AriaLabelAPI from "../ATranslation/compositionAPI/AriaLabelAPI";
12
+ import AttributesAPI from "./compositionAPI/AttributesAPI";
13
+ import ClickAPI from "./compositionAPI/ClickAPI";
14
+ import ComponentLocalAPI from "./compositionAPI/ComponentLocalAPI";
15
+ import DisabledAPI from "./compositionAPI/DisabledAPI";
16
+ import HtmlTitleAPI from "./compositionAPI/HtmlTitleAPI";
17
+ import KeydownAPI from "./compositionAPI/KeydownAPI";
18
+ import LoadingAPI from "./compositionAPI/LoadingAPI";
19
+ import RouterLinkAPI from "./compositionAPI/RouterLinkAPI";
20
+ import SwitchAPI from "./compositionAPI/SwitchAPI";
21
+ import TagAPI from "./compositionAPI/TagAPI";
22
+ import TextAPI from "./compositionAPI/TextAPI";
23
+ import TitleAPI from "./compositionAPI/TitleAPI";
24
+ import UIExcludeRenderAttributesAPI from "../ui/compositionApi/UIExcludeRenderAttributesAPI";
25
+
26
+ import {
27
+ isInteger,
28
+ isString,
29
+ uniqueId,
30
+ } from "lodash-es";
31
+
32
+ export default {
33
+ name: "AElement",
34
+ inheritAttrs: false,
35
+ props: {
36
+ alwaysTranslate: {
37
+ type: Boolean,
38
+ required: false,
39
+ },
40
+ ariaDisabled: {
41
+ type: Boolean,
42
+ required: false,
43
+ default: undefined,
44
+ },
45
+ ariaLabel: {
46
+ type: [String, Number, Object],
47
+ required: false,
48
+ default: undefined,
49
+ },
50
+ attributes: {
51
+ type: Object,
52
+ required: false,
53
+ default: () => ({}),
54
+ },
55
+ class: {
56
+ type: [String, Object],
57
+ required: false,
58
+ default: undefined,
59
+ },
60
+ classDefault: {
61
+ type: String,
62
+ required: false,
63
+ default: "aloha_element",
64
+ },
65
+ classDefaultHidden: {
66
+ type: String,
67
+ required: false,
68
+ default: "aloha_element__hidden",
69
+ },
70
+ classDisabled: {
71
+ type: String,
72
+ required: false,
73
+ default: "disabled",
74
+ },
75
+ disabled: {
76
+ type: Boolean,
77
+ required: false,
78
+ default: undefined,
79
+ },
80
+ excludeRenderAttributes: {
81
+ type: Array,
82
+ required: false,
83
+ default: () => [],
84
+ },
85
+ extra: {
86
+ type: Object,
87
+ required: false,
88
+ default: undefined,
89
+ },
90
+ extraData: {
91
+ type: [String, Number, Boolean, Array, Object, Date, Function, Symbol, null, undefined],
92
+ required: false,
93
+ default: undefined,
94
+ },
95
+ href: {
96
+ type: String,
97
+ required: false,
98
+ default: undefined,
99
+ },
100
+ html: {
101
+ type: [String, Number, Object, Array],
102
+ required: false,
103
+ default: undefined,
104
+ },
105
+ htmlScreenReader: {
106
+ type: [String, Number, Object, Array],
107
+ required: false,
108
+ default: undefined,
109
+ },
110
+ iconAttributes: {
111
+ type: Object,
112
+ required: false,
113
+ default: () => ({}),
114
+ },
115
+ iconClass: {
116
+ type: [String, Object],
117
+ required: false,
118
+ default: undefined,
119
+ },
120
+ iconLeft: {
121
+ type: [String, Object],
122
+ required: false,
123
+ default: undefined,
124
+ },
125
+ iconRight: {
126
+ type: [String, Object],
127
+ required: false,
128
+ default: undefined,
129
+ },
130
+ iconTag: {
131
+ type: String,
132
+ required: false,
133
+ default: undefined,
134
+ },
135
+ id: {
136
+ type: String,
137
+ required: false,
138
+ default: () => uniqueId("a_element_"),
139
+ },
140
+ isSwitch: {
141
+ type: Boolean,
142
+ required: false,
143
+ default: undefined,
144
+ },
145
+ isTitleHtml: {
146
+ type: Boolean,
147
+ required: false,
148
+ default: undefined,
149
+ },
150
+ loading: {
151
+ type: Boolean,
152
+ required: false,
153
+ default: false,
154
+ },
155
+ loadingAlign: {
156
+ type: String,
157
+ required: false,
158
+ default: "right",
159
+ validator: value => ["right", "left"].indexOf(value) !== -1,
160
+ },
161
+ loadingClass: {
162
+ type: [String, Object],
163
+ required: false,
164
+ default: "a_spinner_small",
165
+ },
166
+ modelSwitch: {
167
+ type: Boolean,
168
+ required: false,
169
+ default: undefined,
170
+ },
171
+ prevent: {
172
+ type: Boolean,
173
+ required: false,
174
+ default: undefined,
175
+ },
176
+ preventKeyboardRepeat: {
177
+ type: Boolean,
178
+ required: false,
179
+ default: false,
180
+ },
181
+ safeHtml: {
182
+ type: [String, Number, Object, Array],
183
+ required: false,
184
+ default: undefined,
185
+ },
186
+ safeHtmlScreenReader: {
187
+ type: [String, Number, Object, Array],
188
+ required: false,
189
+ default: undefined,
190
+ },
191
+ stop: {
192
+ type: Boolean,
193
+ required: false,
194
+ default: undefined,
195
+ },
196
+ tabindex: {
197
+ type: [Number, String],
198
+ required: false,
199
+ default: undefined,
200
+ },
201
+ tag: {
202
+ type: String,
203
+ required: false,
204
+ default: undefined,
205
+ },
206
+ target: {
207
+ type: String,
208
+ required: false,
209
+ default: undefined,
210
+ },
211
+ text: {
212
+ type: [String, Number, Object, Array],
213
+ required: false,
214
+ default: undefined,
215
+ },
216
+ textAfter: {
217
+ type: [String, Number, Object],
218
+ required: false,
219
+ default: undefined,
220
+ },
221
+ textAriaHidden: {
222
+ type: Boolean,
223
+ required: false,
224
+ default: undefined,
225
+ },
226
+ textBefore: {
227
+ type: [String, Number, Object],
228
+ required: false,
229
+ default: undefined,
230
+ },
231
+ textClass: {
232
+ type: String,
233
+ required: false,
234
+ default: undefined,
235
+ },
236
+ textScreenReader: {
237
+ type: [String, Number, Object, Array],
238
+ required: false,
239
+ default: undefined,
240
+ },
241
+ textTag: {
242
+ type: String,
243
+ required: false,
244
+ default: "span",
245
+ },
246
+ title: {
247
+ type: [String, Number, Object, Array],
248
+ required: false,
249
+ default: undefined,
250
+ },
251
+ titleAttributes: {
252
+ type: Object,
253
+ required: false,
254
+ default: () => ({}),
255
+ },
256
+ titlePlacement: {
257
+ type: String,
258
+ required: false,
259
+ default: "top",
260
+ validator: placement => APlacements.indexOf(placement) !== -1,
261
+ },
262
+ titleZIndex: {
263
+ type: [Number, String],
264
+ required: false,
265
+ default: "auto",
266
+ validator: value => {
267
+ if (isString(value)) {
268
+ return value === "auto";
269
+ }
270
+ return isInteger(value);
271
+ },
272
+ },
273
+ to: {
274
+ type: [Object, String],
275
+ required: false,
276
+ default: undefined,
277
+ },
278
+ type: {
279
+ type: String,
280
+ required: true,
281
+ default: "text",
282
+ validator: value => ["button", "submit", "reset", "link", "text"].indexOf(value) !== -1,
283
+ },
284
+ },
285
+ emits: [
286
+ "click",
287
+ ],
288
+ setup(props, context) {
289
+ const {
290
+ attributesToExcludeFromRender,
291
+ } = UIExcludeRenderAttributesAPI(props);
292
+
293
+ const {
294
+ isRouterLink,
295
+ } = RouterLinkAPI(props);
296
+
297
+ const {
298
+ disabledLocal,
299
+ } = DisabledAPI(props);
300
+
301
+ const {
302
+ tagLocal,
303
+ } = TagAPI(props, {
304
+ isRouterLink,
305
+ });
306
+
307
+ const {
308
+ toHrefAttributes,
309
+ typeAttribut,
310
+ } = AttributesAPI(props, {
311
+ isRouterLink,
312
+ tagLocal,
313
+ });
314
+
315
+ const {
316
+ isTitleVisible,
317
+ } = TitleAPI(props);
318
+
319
+ const {
320
+ isLoadingLeft,
321
+ isLoadingRight,
322
+ } = LoadingAPI(props);
323
+
324
+ const {
325
+ isTextOrHtmlVisible,
326
+ isTextOrHtmlScreenReaderVisible,
327
+ } = TextAPI(props);
328
+
329
+ const {
330
+ onClick,
331
+ } = ClickAPI(props, context);
332
+
333
+ const {
334
+ componentLocal,
335
+ } = ComponentLocalAPI(props, {
336
+ tagLocal,
337
+ });
338
+
339
+ const {
340
+ elementRef,
341
+ htmlTitleAttributes,
342
+ } = HtmlTitleAPI(props, {
343
+ tagLocal,
344
+ });
345
+
346
+ const {
347
+ ariaLabelAttributes,
348
+ } = AriaLabelAPI(props);
349
+
350
+ const {
351
+ isSwitchActive,
352
+ switchClass,
353
+ } = SwitchAPI(props);
354
+
355
+ const {
356
+ onKeydown,
357
+ } = KeydownAPI(props, context);
358
+
359
+
360
+ return {
361
+ ariaLabelAttributes,
362
+ attributesToExcludeFromRender,
363
+ componentLocal,
364
+ disabledLocal,
365
+ elementRef,
366
+ htmlTitleAttributes,
367
+ isLoadingLeft,
368
+ isLoadingRight,
369
+ isSwitchActive,
370
+ isTextOrHtmlScreenReaderVisible,
371
+ isTextOrHtmlVisible,
372
+ isTitleVisible,
373
+ onClick,
374
+ onKeydown,
375
+ switchClass,
376
+ tagLocal,
377
+ toHrefAttributes,
378
+ typeAttribut,
379
+ };
380
+ },
381
+ render() {
382
+ return h(this.componentLocal, {
383
+ ...this.$attrs,
384
+ ...this.htmlTitleAttributes,
385
+ ...this.ariaLabelAttributes,
386
+ ...this.toHrefAttributes,
387
+ ref: "elementRef",
388
+ id: this.id,
389
+ class: [
390
+ this.classDefault,
391
+ this.switchClass,
392
+ this.class,
393
+ {
394
+ [this.classDisabled]: this.ariaDisabled,
395
+ },
396
+ ],
397
+ type: this.typeAttribut,
398
+ tabindex: this.tabindex,
399
+ disabled: this.disabledLocal,
400
+ ariaDisabled: this.ariaDisabled,
401
+ "aria-pressed": this.isSwitchActive,
402
+ isAllRowsSelected: undefined, // TODO: ATable
403
+ onClick: this.onClick,
404
+ onKeydown: this.onKeydown,
405
+ ...this.attributes,
406
+ ...this.attributesToExcludeFromRender,
407
+ }, {
408
+ default: () => [
409
+ (!this.isTitleHtml && this.isTitleVisible) ?
410
+ h(ATranslation, {
411
+ tag: "span",
412
+ alwaysTranslate: this.alwaysTranslate,
413
+ ariaHidden: true,
414
+ class: [
415
+ "a_position_absolute_all",
416
+ this.classDefaultHidden,
417
+ ],
418
+ title: this.title,
419
+ extra: this.extra,
420
+ style: {
421
+ zIndex: this.titleZIndex,
422
+ },
423
+ ...this.titleAttributes,
424
+ }) :
425
+ "",
426
+ this.isTextOrHtmlScreenReaderVisible ?
427
+ h(ATranslation, {
428
+ alwaysTranslate: this.alwaysTranslate,
429
+ class: [
430
+ "a_sr_only",
431
+ this.classDefaultHidden,
432
+ ],
433
+ tag: "span",
434
+ text: this.textScreenReader,
435
+ html: this.htmlScreenReader,
436
+ safeHtml: this.safeHtmlScreenReader,
437
+ extra: this.extra,
438
+ }) :
439
+ "",
440
+ this.$slots.buttonPrepend ?
441
+ this.$slots.buttonPrepend({ extraData: this.extraData }) :
442
+ "",
443
+ this.isLoadingLeft ?
444
+ h(ASpinner, {
445
+ class: [
446
+ "aloha_btn__spinner_left",
447
+ this.loadingClass,
448
+ ],
449
+ }) :
450
+ "",
451
+ h(AIcon, {
452
+ icon: this.iconLeft,
453
+ iconTag: this.iconTag,
454
+ class: [
455
+ "aloha_btn__icon_left",
456
+ this.iconClass,
457
+ ],
458
+ ...this.iconAttributes,
459
+ }),
460
+ this.$slots.default ?
461
+ this.$slots.default({ extraData: this.extraData }) :
462
+ "",
463
+ this.isTextOrHtmlVisible ?
464
+ h(ATranslation, {
465
+ alwaysTranslate: this.alwaysTranslate,
466
+ ariaHidden: this.textAriaHidden,
467
+ class: this.textClass,
468
+ extra: this.extra,
469
+ html: this.html,
470
+ safeHtml: this.safeHtml,
471
+ tag: this.textTag,
472
+ text: this.text,
473
+ textAfter: this.textAfter,
474
+ textBefore: this.textBefore,
475
+ }) :
476
+ "",
477
+ h(AIcon, {
478
+ icon: this.iconRight,
479
+ iconTag: this.iconTag,
480
+ class: [
481
+ "aloha_btn__icon_right",
482
+ this.iconClass,
483
+ ],
484
+ ...this.iconAttributes,
485
+ }),
486
+ this.isLoadingRight ?
487
+ h(ASpinner, {
488
+ class: [
489
+ "aloha_btn__spinner_right",
490
+ this.loadingClass,
491
+ ],
492
+ }) :
493
+ "",
494
+ this.$slots.buttonAppend ?
495
+ this.$slots.buttonAppend({ extraData: this.extraData }) :
496
+ "",
497
+ ],
498
+ title: !this.isTitleHtml ||
499
+ (!this.title && !this.$slots.buttonTitle) ?
500
+ () => "" :
501
+ () => {
502
+ return [
503
+ this.isTitleVisible ?
504
+ h(ATranslation, {
505
+ alwaysTranslate: this.alwaysTranslate,
506
+ html: this.title,
507
+ tag: "span",
508
+ extra: this.extra,
509
+ }) :
510
+ "",
511
+ this.$slots.buttonTitle ?
512
+ this.$slots.buttonTitle({ extraData: this.extraData }) :
513
+ "",
514
+ ];
515
+ },
516
+ });
517
+ },
518
+ };