eco-vue-js 0.10.2 → 0.10.4

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 (288) hide show
  1. package/dist/assets/icons/default/IconAdd.svg.js +1 -1
  2. package/dist/assets/icons/default/IconArrow.svg.js +1 -1
  3. package/dist/assets/icons/default/IconAvatar.svg.js +1 -1
  4. package/dist/assets/icons/default/IconBack.svg.js +1 -1
  5. package/dist/assets/icons/default/IconCancel.svg.js +1 -1
  6. package/dist/assets/icons/default/IconCheck.svg.js +1 -1
  7. package/dist/assets/icons/default/IconDanger.svg.js +1 -1
  8. package/dist/assets/icons/default/IconDojo.svg.js +1 -1
  9. package/dist/assets/icons/default/IconEdit.svg.js +1 -1
  10. package/dist/assets/icons/default/IconFalsePositive.svg.js +1 -1
  11. package/dist/assets/icons/default/IconFeedback.svg.js +1 -1
  12. package/dist/assets/icons/default/IconFilter.svg.js +1 -1
  13. package/dist/assets/icons/default/IconInProgress.svg.js +1 -1
  14. package/dist/assets/icons/default/IconJira.svg.js +1 -1
  15. package/dist/assets/icons/default/IconLogout.svg.js +1 -1
  16. package/dist/assets/icons/default/IconMore.svg.js +1 -1
  17. package/dist/assets/icons/default/IconNotification.svg.js +1 -1
  18. package/dist/assets/icons/default/IconProfile.svg.js +1 -1
  19. package/dist/assets/icons/default/IconSearch.svg.js +1 -1
  20. package/dist/assets/icons/default/IconSettings.svg.js +1 -1
  21. package/dist/assets/icons/default/IconSort.svg.js +1 -1
  22. package/dist/assets/icons/default/IconStar.svg.js +1 -1
  23. package/dist/assets/icons/default/IconSuccess.svg.js +1 -1
  24. package/dist/assets/icons/default/IconTask.svg.js +1 -1
  25. package/dist/assets/icons/default/IconTime.svg.js +1 -1
  26. package/dist/assets/icons/default/IconWarn.svg.js +1 -1
  27. package/dist/assets/icons/sax/IconAdd.svg.js +1 -1
  28. package/dist/assets/icons/sax/IconAddCircle.svg.js +1 -1
  29. package/dist/assets/icons/sax/IconAddSquare.svg.js +1 -1
  30. package/dist/assets/icons/sax/IconAlarm.svg.js +1 -1
  31. package/dist/assets/icons/sax/IconArchiveBook.svg.js +1 -1
  32. package/dist/assets/icons/sax/IconCandle.svg.js +1 -1
  33. package/dist/assets/icons/sax/IconCelery.svg.js +1 -1
  34. package/dist/assets/icons/sax/IconChart.svg.js +1 -1
  35. package/dist/assets/icons/sax/IconCheckCircle.svg.js +1 -1
  36. package/dist/assets/icons/sax/IconClose.svg.js +1 -1
  37. package/dist/assets/icons/sax/IconCloseCircle.svg.js +1 -1
  38. package/dist/assets/icons/sax/IconCopy.svg.js +1 -1
  39. package/dist/assets/icons/sax/IconCopySuccess.svg.js +1 -1
  40. package/dist/assets/icons/sax/IconCopyright.svg.js +1 -1
  41. package/dist/assets/icons/sax/IconDedupe.svg.js +1 -1
  42. package/dist/assets/icons/sax/IconDojo.svg.js +1 -1
  43. package/dist/assets/icons/sax/IconDrag.svg.js +1 -1
  44. package/dist/assets/icons/sax/IconEdit.svg.js +1 -1
  45. package/dist/assets/icons/sax/IconEditCircle.svg.js +1 -1
  46. package/dist/assets/icons/sax/IconElement.svg.js +1 -1
  47. package/dist/assets/icons/sax/IconExport.svg.js +1 -1
  48. package/dist/assets/icons/sax/IconEye.svg.js +1 -1
  49. package/dist/assets/icons/sax/IconEyeSlash.svg.js +1 -1
  50. package/dist/assets/icons/sax/IconFilter.svg.js +1 -1
  51. package/dist/assets/icons/sax/IconFilterRemove.svg.js +1 -1
  52. package/dist/assets/icons/sax/IconFinding.svg.js +1 -1
  53. package/dist/assets/icons/sax/IconFolder.svg.js +1 -1
  54. package/dist/assets/icons/sax/IconFolderCross.svg.js +1 -1
  55. package/dist/assets/icons/sax/IconGrid.svg.js +24 -0
  56. package/dist/assets/icons/sax/IconJira.svg.js +1 -1
  57. package/dist/assets/icons/sax/IconKey.svg.js +1 -1
  58. package/dist/assets/icons/sax/IconKeySquare.svg.js +1 -1
  59. package/dist/assets/icons/sax/IconLayer.svg.js +1 -1
  60. package/dist/assets/icons/sax/IconLink.svg.js +1 -1
  61. package/dist/assets/icons/sax/IconLinkBold.svg.js +1 -1
  62. package/dist/assets/icons/sax/IconLinkOutline.svg.js +1 -1
  63. package/dist/assets/icons/sax/IconLogout.svg.js +1 -1
  64. package/dist/assets/icons/sax/IconMenu.svg.js +1 -1
  65. package/dist/assets/icons/sax/IconMinusCircle.svg.js +1 -1
  66. package/dist/assets/icons/sax/IconNegate.svg.js +1 -1
  67. package/dist/assets/icons/sax/IconNegativeInfo.svg.js +1 -1
  68. package/dist/assets/icons/sax/IconNote.svg.js +1 -1
  69. package/dist/assets/icons/sax/IconOutlineCheckCircle.svg.js +1 -1
  70. package/dist/assets/icons/sax/IconOutlineCloseCircle.svg.js +1 -1
  71. package/dist/assets/icons/sax/IconOutlineEdit.svg.js +1 -1
  72. package/dist/assets/icons/sax/IconOutlineFolderAdd.svg.js +1 -1
  73. package/dist/assets/icons/sax/IconOutlineRefresh.svg.js +1 -1
  74. package/dist/assets/icons/sax/IconOutlineStar.svg.js +1 -1
  75. package/dist/assets/icons/sax/IconPaste.svg.js +1 -1
  76. package/dist/assets/icons/sax/IconProfile.svg.js +1 -1
  77. package/dist/assets/icons/sax/IconRadar.svg.js +1 -1
  78. package/dist/assets/icons/sax/IconRefresh.svg.js +1 -1
  79. package/dist/assets/icons/sax/IconSearch.svg.js +1 -1
  80. package/dist/assets/icons/sax/IconSettings.svg.js +1 -1
  81. package/dist/assets/icons/sax/IconSlash.svg.js +1 -1
  82. package/dist/assets/icons/sax/IconStar.svg.js +1 -1
  83. package/dist/assets/icons/sax/IconSummary.svg.js +1 -1
  84. package/dist/assets/icons/sax/IconTable.svg.js +24 -0
  85. package/dist/assets/icons/sax/IconTableSettings.svg.js +1 -1
  86. package/dist/assets/icons/sax/IconTag.svg.js +1 -1
  87. package/dist/assets/icons/sax/IconTask.svg.js +1 -1
  88. package/dist/assets/icons/sax/IconTime.svg.js +1 -1
  89. package/dist/assets/icons/sax/IconTrash.svg.js +1 -1
  90. package/dist/assets/icons/sax/IconUser.svg.js +1 -1
  91. package/dist/assets/icons/sax/IconVersionControl.svg.js +1 -1
  92. package/dist/assets/icons/sax/IconWeight.svg.js +1 -1
  93. package/dist/components/ActionsBar/WActionsBar.vue.js +1 -1
  94. package/dist/components/BottomSheet/WBottomSheet.vue.js +1 -1
  95. package/dist/components/Button/WButton.vue.d.ts.map +1 -1
  96. package/dist/components/Button/WButton.vue.js +3 -3
  97. package/dist/components/Button/WButtonAction.vue.js +1 -1
  98. package/dist/components/Button/WButtonCopy.vue.js +1 -1
  99. package/dist/components/Button/WButtonDropdown.vue.js +8 -6
  100. package/dist/components/Button/WButtonGroup.vue.d.ts.map +1 -1
  101. package/dist/components/Button/WButtonGroup.vue.js +11 -6
  102. package/dist/components/Button/WButtonMore.vue.js +1 -1
  103. package/dist/components/Button/WButtonMoreItem.vue.js +1 -1
  104. package/dist/components/Button/WButtonSelection.vue.d.ts +1 -0
  105. package/dist/components/Button/WButtonSelection.vue.d.ts.map +1 -1
  106. package/dist/components/Button/WButtonSelection.vue.js +18 -28
  107. package/dist/components/Button/WButtonSelectionAction.vue.d.ts +4 -2
  108. package/dist/components/Button/WButtonSelectionAction.vue.d.ts.map +1 -1
  109. package/dist/components/Button/WButtonSelectionAction.vue.js +8 -4
  110. package/dist/components/Button/types.d.ts +1 -1
  111. package/dist/components/Button/types.d.ts.map +1 -1
  112. package/dist/components/Checkbox/WCheckbox.vue.js +1 -1
  113. package/dist/components/Chip/WChip.vue.js +1 -1
  114. package/dist/components/ClickOutside/WClickOutside.vue.js +1 -1
  115. package/dist/components/Counter/WCounter.vue.js +1 -1
  116. package/dist/components/DatePicker/WDatePicker.vue.js +2 -2
  117. package/dist/components/DatePicker/WDatePickerSingle.vue.js +2 -2
  118. package/dist/components/DatePicker/components/CalendarDay.vue.js +1 -1
  119. package/dist/components/DatePicker/components/CalendarMonth.vue.js +1 -1
  120. package/dist/components/DatePicker/components/CalendarToggle.vue.js +1 -1
  121. package/dist/components/DatePicker/components/CalendarValue.vue.js +1 -1
  122. package/dist/components/DatePicker/components/CalendarWeek.vue.js +1 -1
  123. package/dist/components/Dropdown/WDropdown.vue.js +1 -1
  124. package/dist/components/DropdownMenu/WDropdownMenu.vue.js +1 -1
  125. package/dist/components/Expansion/WExpansion.vue.js +1 -1
  126. package/dist/components/Expansion/WExpansionItem.vue.js +1 -1
  127. package/dist/components/FieldWrapper/WFieldWrapper.vue.js +4 -2
  128. package/dist/components/FieldWrapper/components/FilterButton.vue.js +1 -1
  129. package/dist/components/FilePicker/WFilePicker.vue.js +1 -1
  130. package/dist/components/FilePicker/components/FilePickerItem.vue.js +1 -1
  131. package/dist/components/FilePicker/components/FilePickerSvg.vue.js +1 -1
  132. package/dist/components/FilterWrapper/WFilterWrapper.vue.js +1 -1
  133. package/dist/components/Form/WForm.vue.js +2 -2
  134. package/dist/components/Form/WFormValidator.vue.js +3 -1
  135. package/dist/components/Form/models/utils.js +2 -0
  136. package/dist/components/FormAsync/WFormAsyncButtonGroup.vue.d.ts +4 -2
  137. package/dist/components/FormAsync/WFormAsyncButtonGroup.vue.d.ts.map +1 -1
  138. package/dist/components/FormAsync/WFormAsyncButtonGroup.vue.js +18 -49
  139. package/dist/components/FormAsync/WFormAsyncInput.vue.d.ts.map +1 -1
  140. package/dist/components/FormAsync/WFormAsyncInput.vue.js +15 -50
  141. package/dist/components/FormAsync/WFormAsyncSelect.vue.d.ts +1 -1
  142. package/dist/components/FormAsync/WFormAsyncSelect.vue.d.ts.map +1 -1
  143. package/dist/components/FormAsync/WFormAsyncSelect.vue.js +21 -53
  144. package/dist/components/FormAsync/WFormAsyncSelectInfiniteSingle.vue.d.ts.map +1 -1
  145. package/dist/components/FormAsync/WFormAsyncSelectInfiniteSingle.vue.js +14 -49
  146. package/dist/components/FormAsync/WFormAsyncSelectSingle.vue.d.ts.map +1 -1
  147. package/dist/components/FormAsync/WFormAsyncSelectSingle.vue.js +14 -49
  148. package/dist/components/FormAsync/WFormAsyncSelectStringified.vue.d.ts.map +1 -1
  149. package/dist/components/FormAsync/WFormAsyncSelectStringified.vue.js +14 -49
  150. package/dist/components/FormAsync/WFormAsyncToggle.vue.d.ts.map +1 -1
  151. package/dist/components/FormAsync/WFormAsyncToggle.vue.js +17 -63
  152. package/dist/components/FormAsync/types.d.ts +16 -119
  153. package/dist/components/FormAsync/types.d.ts.map +1 -1
  154. package/dist/components/FormAsync/use/useFormAsync.d.ts +9 -0
  155. package/dist/components/FormAsync/use/useFormAsync.d.ts.map +1 -0
  156. package/dist/components/FormAsync/use/useFormAsync.js +63 -0
  157. package/dist/components/HeaderBar/WHeaderBar.vue.d.ts +0 -3
  158. package/dist/components/HeaderBar/WHeaderBar.vue.d.ts.map +1 -1
  159. package/dist/components/HeaderBar/WHeaderBar.vue.js +6 -5
  160. package/dist/components/HeaderBar/use/useHeaderPadding.d.ts +5 -0
  161. package/dist/components/HeaderBar/use/useHeaderPadding.d.ts.map +1 -0
  162. package/dist/components/HeaderBar/use/useHeaderPadding.js +14 -0
  163. package/dist/components/ImageViewer/WImageViewer.vue.js +1 -1
  164. package/dist/components/ImageViewer/components/ImageModal.vue2.js +1 -1
  165. package/dist/components/InfiniteList/WInfiniteList.vue.d.ts +1 -5
  166. package/dist/components/InfiniteList/WInfiniteList.vue.d.ts.map +1 -1
  167. package/dist/components/InfiniteList/WInfiniteList.vue.js +7 -16
  168. package/dist/components/InfiniteList/WInfiniteListWrapper.vue.d.ts +2 -11
  169. package/dist/components/InfiniteList/WInfiniteListWrapper.vue.d.ts.map +1 -1
  170. package/dist/components/InfiniteList/WInfiniteListWrapper.vue.js +8 -11
  171. package/dist/components/InfiniteList/components/InfiniteListButton.vue.js +1 -1
  172. package/dist/components/InfiniteList/components/InfiniteListPage.vue.d.ts +0 -1
  173. package/dist/components/InfiniteList/components/InfiniteListPage.vue.d.ts.map +1 -1
  174. package/dist/components/InfiniteList/components/InfiniteListPage.vue.js +6 -10
  175. package/dist/components/InfiniteList/components/InfiniteListPageSelection.vue.js +1 -1
  176. package/dist/components/InfiniteList/components/InfiniteListPageTitle.vue.js +1 -1
  177. package/dist/components/InfiniteList/components/InfiniteListPages.vue.d.ts +0 -1
  178. package/dist/components/InfiniteList/components/InfiniteListPages.vue.d.ts.map +1 -1
  179. package/dist/components/InfiniteList/components/InfiniteListPages.vue.js +2 -4
  180. package/dist/components/InfiniteList/components/InfiniteListScroll.vue.js +1 -1
  181. package/dist/components/InfiniteList/use/useInfiniteListHeader.d.ts +1 -0
  182. package/dist/components/InfiniteList/use/useInfiniteListHeader.d.ts.map +1 -1
  183. package/dist/components/InfiniteList/use/useInfiniteListHeader.js +11 -6
  184. package/dist/components/InfoCard/WInfoCard.vue.js +1 -1
  185. package/dist/components/InfoCard/WInfoCardNegative.vue.js +1 -1
  186. package/dist/components/Input/WInput.vue.js +1 -1
  187. package/dist/components/Input/WInputAsync.vue.d.ts.map +1 -1
  188. package/dist/components/Input/WInputAsync.vue.js +5 -2
  189. package/dist/components/Input/WInputDate.vue.js +1 -1
  190. package/dist/components/Input/WInputOptions.vue.js +1 -1
  191. package/dist/components/Input/WInputSuggest.vue.js +1 -1
  192. package/dist/components/Input/components/InputActions.vue.d.ts.map +1 -1
  193. package/dist/components/Input/components/InputActions.vue.js +6 -3
  194. package/dist/components/Input/components/InputActionsButton.vue.js +4 -4
  195. package/dist/components/Link/WLink.vue.d.ts +0 -1
  196. package/dist/components/Link/WLink.vue.d.ts.map +1 -1
  197. package/dist/components/Link/WLink.vue.js +3 -12
  198. package/dist/components/Link/WLinkArrow.vue.js +1 -1
  199. package/dist/components/List/WList.vue.d.ts +9 -10
  200. package/dist/components/List/WList.vue.d.ts.map +1 -1
  201. package/dist/components/List/WList.vue.js +96 -55
  202. package/dist/components/List/WListCard.vue.d.ts +24 -22
  203. package/dist/components/List/WListCard.vue.d.ts.map +1 -1
  204. package/dist/components/List/WListCard.vue.js +76 -48
  205. package/dist/components/List/WListCardField.vue.d.ts.map +1 -1
  206. package/dist/components/List/WListCardField.vue.js +3 -4
  207. package/dist/components/List/WListHeader.vue.js +1 -1
  208. package/dist/components/List/WListHeaderItem.vue.d.ts.map +1 -1
  209. package/dist/components/List/WListHeaderItem.vue.js +21 -37
  210. package/dist/components/List/components/HeaderFieldNested.vue.js +2 -2
  211. package/dist/components/List/components/HeaderItemResizer.vue.js +1 -1
  212. package/dist/components/List/components/HeaderSettings.vue.d.ts +5 -1
  213. package/dist/components/List/components/HeaderSettings.vue.d.ts.map +1 -1
  214. package/dist/components/List/components/HeaderSettings.vue.js +94 -40
  215. package/dist/components/List/components/HeaderSettingsItem.vue.js +1 -1
  216. package/dist/components/List/components/HeaderSettingsModeButton.vue.d.ts +9 -0
  217. package/dist/components/List/components/HeaderSettingsModeButton.vue.d.ts.map +1 -0
  218. package/dist/components/List/components/HeaderSettingsModeButton.vue.js +23 -0
  219. package/dist/components/List/components/HeaderSettingsModeButton.vue2.js +5 -0
  220. package/dist/components/List/components/HeaderSort.vue.d.ts +32 -0
  221. package/dist/components/List/components/HeaderSort.vue.d.ts.map +1 -0
  222. package/dist/components/List/components/HeaderSort.vue.js +84 -0
  223. package/dist/components/List/components/HeaderSort.vue2.js +5 -0
  224. package/dist/components/List/components/HeaderSortItem.vue.d.ts +22 -0
  225. package/dist/components/List/components/HeaderSortItem.vue.d.ts.map +1 -0
  226. package/dist/components/List/components/HeaderSortItem.vue.js +67 -0
  227. package/dist/components/List/components/HeaderSortItem.vue2.js +5 -0
  228. package/dist/components/List/components/ListCardFieldNested.vue.d.ts +1 -1
  229. package/dist/components/List/components/ListCardFieldNested.vue.d.ts.map +1 -1
  230. package/dist/components/List/components/ListCardFieldNested.vue.js +9 -9
  231. package/dist/components/List/components/ListCardFieldNestedItem.vue.js +1 -1
  232. package/dist/components/List/types.d.ts +10 -3
  233. package/dist/components/List/types.d.ts.map +1 -1
  234. package/dist/components/List/types.js +4 -0
  235. package/dist/components/List/use/useListConfig.d.ts +24 -0
  236. package/dist/components/List/use/useListConfig.d.ts.map +1 -0
  237. package/dist/components/List/use/{useFieldConfigMap.js → useListConfig.js} +54 -13
  238. package/dist/components/List/use/useOrdering.d.ts +7 -0
  239. package/dist/components/List/use/useOrdering.d.ts.map +1 -0
  240. package/dist/components/List/use/useOrdering.js +36 -0
  241. package/dist/components/MenuItem/WMenuItem.vue.js +1 -1
  242. package/dist/components/Modal/WModal.vue.js +1 -1
  243. package/dist/components/Modal/WModalStepper.vue.js +5 -5
  244. package/dist/components/Modal/WModalWrapper.vue.js +1 -1
  245. package/dist/components/Modal/components/ModalCloseButton.vue.js +1 -1
  246. package/dist/components/Modal/modals/Confirm/ConfirmModal.vue2.js +1 -1
  247. package/dist/components/Nav/WNavBar.vue.js +1 -1
  248. package/dist/components/Nav/WNavItem.vue.js +1 -1
  249. package/dist/components/Nav/WNavItemExpand.vue.js +3 -1
  250. package/dist/components/Nav/WNavItemTransition.vue.js +1 -1
  251. package/dist/components/Notify/WNotify.vue.js +1 -1
  252. package/dist/components/Notify/components/NotifyCard.vue.js +1 -1
  253. package/dist/components/NumberFormatter/WNumberFormatter.vue.js +1 -1
  254. package/dist/components/Page/WPage.vue.js +1 -1
  255. package/dist/components/Page/WPageNumerator.vue.js +1 -1
  256. package/dist/components/Page/WPageTitle.vue.js +1 -1
  257. package/dist/components/Progress/WProgress.vue.js +1 -1
  258. package/dist/components/Select/WSelect.vue.js +6 -6
  259. package/dist/components/Select/WSelectAsync.vue.js +5 -5
  260. package/dist/components/Select/WSelectAsyncList.vue.js +1 -1
  261. package/dist/components/Select/WSelectAsyncSingle.vue.js +1 -1
  262. package/dist/components/Select/WSelectSingle.vue.js +1 -1
  263. package/dist/components/Select/WSelectStringified.vue.js +2 -2
  264. package/dist/components/Select/components/SelectAsyncList.vue.js +1 -1
  265. package/dist/components/Select/components/SelectAsyncPrefix.vue.js +1 -1
  266. package/dist/components/Select/components/SelectAsyncPrefixPage.vue.js +1 -1
  267. package/dist/components/Select/components/SelectOption.vue.js +1 -1
  268. package/dist/components/Select/components/SelectOptionPrefix.vue.js +1 -1
  269. package/dist/components/Skeleton/WSkeleton.vue.js +1 -1
  270. package/dist/components/Spinner/WSpinner.vue.js +1 -1
  271. package/dist/components/Tabs/WTabs.vue.js +4 -2
  272. package/dist/components/Tabs/WTabsColumns.vue.js +1 -1
  273. package/dist/components/Tabs/components/TabItem.vue.js +1 -1
  274. package/dist/components/Tabs/components/TabTitleButton.vue.js +1 -1
  275. package/dist/components/Toggle/WToggle.vue.d.ts.map +1 -1
  276. package/dist/components/Toggle/WToggle.vue.js +34 -12
  277. package/dist/components/Toggle/types.d.ts +2 -0
  278. package/dist/components/Toggle/types.d.ts.map +1 -1
  279. package/dist/components/Tooltip/WTooltip.vue.js +1 -1
  280. package/dist/components/Tooltip/WTooltipContainer.vue.js +1 -1
  281. package/dist/components/Tooltip/components/TooltipContainer.vue.js +1 -1
  282. package/dist/types/global.d.ts +8 -0
  283. package/package.json +2 -2
  284. package/tailwind-base/index.ts +2 -0
  285. package/tailwind-base/plugins/container-queries.ts +92 -0
  286. package/tailwind-base/plugins/default.ts +23 -5
  287. package/dist/components/List/use/useFieldConfigMap.d.ts +0 -10
  288. package/dist/components/List/use/useFieldConfigMap.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- import { defineComponent, useId, ref, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, unref, Fragment, renderSlot, createTextVNode, toDisplayString, createVNode, Transition, withCtx, createCommentVNode, createBlock, normalizeProps, guardReactiveProps } from 'vue';
1
+ import { defineComponent, useId, ref, computed, createElementBlock, openBlock, normalizeClass, createElementVNode, createCommentVNode, createBlock, unref, renderSlot, Fragment, createVNode, createTextVNode, toDisplayString, Transition, withCtx, normalizeProps, guardReactiveProps } from 'vue';
2
2
  import _sfc_main$2 from '../Button/WButtonCopy.vue.js';
3
3
  import WSkeleton from '../Skeleton/WSkeleton.vue.js';
4
4
  import _sfc_main$3 from '../Tooltip/WTooltip.vue.js';
@@ -11,11 +11,13 @@ import '../../utils/supportsPassive.js';
11
11
  import '../Dropdown/utils/DropdownStyle.js';
12
12
  import 'vue-router';
13
13
  import '../../utils/Modal.js';
14
- import { encodeQueryParam } from '../../utils/api.js';
15
14
  import '../Input/WInputSuggest.vue.js';
15
+ import { encodeQueryParam } from '../../utils/api.js';
16
+ import '../HeaderBar/use/useHeaderPadding.js';
16
17
  import '../Input/WInputDate.vue.js';
17
18
  import '../Link/WLink.vue.js';
18
19
  import '@tanstack/vue-query';
20
+ import '../List/use/useListConfig.js';
19
21
 
20
22
  const _hoisted_1 = ["for"];
21
23
  const _hoisted_2 = {
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createElementBlock, normalizeClass, createVNode, unref } from 'vue';
1
+ import { defineComponent, createElementBlock, openBlock, normalizeClass, createVNode, unref } from 'vue';
2
2
  import IconFilter from '../../../assets/icons/sax/IconFilter.svg.js';
3
3
 
4
4
  const _hoisted_1 = {
@@ -1,4 +1,4 @@
1
- import { defineComponent, useTemplateRef, ref, onMounted, onUnmounted, openBlock, createElementBlock, Fragment, renderSlot, createTextVNode, toDisplayString, createCommentVNode, createBlock, createElementVNode, withModifiers, createVNode, withCtx, unref, renderList, Transition } from 'vue';
1
+ import { defineComponent, useTemplateRef, ref, onMounted, onUnmounted, createElementBlock, openBlock, createCommentVNode, createElementVNode, createVNode, createBlock, Fragment, renderSlot, createTextVNode, toDisplayString, withModifiers, withCtx, unref, renderList, Transition } from 'vue';
2
2
  import _sfc_main$3 from '../Button/WButton.vue.js';
3
3
  import WSkeleton from '../Skeleton/WSkeleton.vue.js';
4
4
  import { SemanticType } from '../../utils/SemanticType.js';
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createElementBlock, renderSlot, createVNode, unref, createElementVNode, toDisplayString, withModifiers } from 'vue';
1
+ import { defineComponent, createElementBlock, openBlock, createElementVNode, renderSlot, createVNode, unref, toDisplayString, withModifiers } from 'vue';
2
2
  import IconCancel from '../../../assets/icons/default/IconCancel.svg.js';
3
3
  import IconCheckCircle from '../../../assets/icons/sax/IconCheckCircle.svg.js';
4
4
  import IconCloseCircle from '../../../assets/icons/sax/IconCloseCircle.svg.js';
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, useTemplateRef, computed, watch, toRef, onBeforeMount, openBlock, createElementBlock, normalizeClass, createElementVNode, normalizeStyle } from 'vue';
1
+ import { defineComponent, ref, useTemplateRef, computed, watch, toRef, onBeforeMount, createElementBlock, openBlock, normalizeClass, createElementVNode, normalizeStyle } from 'vue';
2
2
 
3
3
  const _hoisted_1 = ["width", "height"];
4
4
  const _hoisted_2 = ["x", "y", "width", "height", "rx", "ry", "stroke-width", "stroke-dasharray", "stroke-dashoffset"];
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, computed, watch, onUnmounted, openBlock, createElementBlock, createElementVNode, Fragment, renderList, createBlock, resolveDynamicComponent, unref, renderSlot, createVNode, withCtx, createTextVNode } from 'vue';
1
+ import { defineComponent, ref, computed, watch, onUnmounted, createElementBlock, openBlock, createElementVNode, Fragment, renderList, createBlock, resolveDynamicComponent, unref, renderSlot, createVNode, withCtx, createTextVNode } from 'vue';
2
2
  import { useRoute, useRouter } from 'vue-router';
3
3
  import _sfc_main$1 from '../Button/WButton.vue.js';
4
4
  import IconFilterRemove from '../../assets/icons/sax/IconFilterRemove.svg.js';
@@ -1,6 +1,6 @@
1
- import { defineComponent, toRef, computed, provide, inject, watch, onBeforeUnmount, openBlock, createBlock, resolveDynamicComponent, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, toRef, computed, provide, inject, watch, onBeforeUnmount, createBlock, openBlock, resolveDynamicComponent, withCtx, renderSlot } from 'vue';
2
2
  import _sfc_main$1 from '../EmptyComponent/WEmptyComponent.vue.js';
3
- import { wFormTitleUpdater, wFormUnlistener, wFormErrorMessageUpdater, wFormHasChangesUpdater, wFormHasValueUpdater, wFormValidateUpdater, wFormInvalidateUpdater, wFormInitModelUpdater } from './models/injection.js';
3
+ import { wFormTitleUpdater, wFormUnlistener, wFormErrorMessageUpdater, wFormHasChangesUpdater, wFormHasValueUpdater, wFormInitModelUpdater, wFormInvalidateUpdater, wFormValidateUpdater } from './models/injection.js';
4
4
  import { compileMessage } from './models/utils.js';
5
5
  import { useFormValueMap } from './use/useFormValueMap.js';
6
6
 
@@ -1,4 +1,4 @@
1
- import { defineComponent, inject, useSlots, computed, useTemplateRef, ref, watch, onBeforeMount, onBeforeUnmount, openBlock, createBlock, resolveDynamicComponent } from 'vue';
1
+ import { defineComponent, inject, useSlots, computed, useTemplateRef, ref, watch, onBeforeMount, onBeforeUnmount, createBlock, openBlock, resolveDynamicComponent } from 'vue';
2
2
  import { useIsInsideTab } from '../Tabs/use/useIsInsideTab.js';
3
3
  import { useTabActiveListener } from '../Tabs/use/useTabActiveListener.js';
4
4
  import '../Button/WButtonAction.vue.js';
@@ -13,9 +13,11 @@ import { wFormTitleUpdater, wFormErrorMessageUpdater, wFormHasChangesUpdater, wF
13
13
  import { scrollToValidator } from './models/utils.js';
14
14
  import { validateRequired } from '../../utils/validate.js';
15
15
  import '../Input/WInputSuggest.vue.js';
16
+ import '../HeaderBar/use/useHeaderPadding.js';
16
17
  import '../Input/WInputDate.vue.js';
17
18
  import '../Link/WLink.vue.js';
18
19
  import '@tanstack/vue-query';
20
+ import '../List/use/useListConfig.js';
19
21
 
20
22
  const _sfc_main = /* @__PURE__ */ defineComponent({
21
23
  __name: "WFormValidator",
@@ -8,9 +8,11 @@ import '../../Dropdown/utils/DropdownStyle.js';
8
8
  import 'vue-router';
9
9
  import '../../../utils/Modal.js';
10
10
  import '../../Input/WInputSuggest.vue.js';
11
+ import '../../HeaderBar/use/useHeaderPadding.js';
11
12
  import '../../Input/WInputDate.vue.js';
12
13
  import '../../Link/WLink.vue.js';
13
14
  import '@tanstack/vue-query';
15
+ import '../../List/use/useListConfig.js';
14
16
 
15
17
  const fieldMessageStart = " - ";
16
18
  const subformMessageStart = " ";
@@ -2,7 +2,9 @@ import { FormAsyncButtonGroupProps } from './types';
2
2
  declare const _default: <Model, FieldType extends string | number | boolean | null, QueryParams, Entity extends Record<string, unknown>, ValueGetter extends {
3
3
  fn(value: Entity): FieldType;
4
4
  }["fn"] | undefined = undefined>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
5
- props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, never> & FormAsyncButtonGroupProps<Model, FieldType, QueryParams, Entity, ValueGetter>> & import('vue').PublicProps;
5
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
6
+ readonly onSuccess?: ((value: Model) => any) | undefined;
7
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onSuccess"> & FormAsyncButtonGroupProps<Model, FieldType, QueryParams, Entity, ValueGetter>> & import('vue').PublicProps;
6
8
  expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
7
9
  attrs: any;
8
10
  slots: {
@@ -11,7 +13,7 @@ declare const _default: <Model, FieldType extends string | number | boolean | nu
11
13
  selected: boolean;
12
14
  }): any;
13
15
  };
14
- emit: {};
16
+ emit: (e: "success", value: Model) => void;
15
17
  }>) => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
16
18
  [key: string]: any;
17
19
  }> & {
@@ -1 +1 @@
1
- {"version":3,"file":"WFormAsyncButtonGroup.vue.d.ts","sourceRoot":"","sources":["../../../src/components/FormAsync/WFormAsyncButtonGroup.vue"],"names":[],"mappings":"AAAA,OA6FO,KAAK,EAAC,yBAAyB,EAAC,MAAM,SAAS,CAAA;yBAarC,KAAK,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,SAAS;IAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,2BACvL,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WAsKxD,mBAAmB,CAAC,gOAAyD,CAAC,4BAA2B;oBAChG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;;;;YA9Be,GAAG;;UAgCtB,EAAE;;;;YAGiC,OAAO,CAAC,OAAO,WAAW,CAAC;;AAhLvE,wBAgL4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"WFormAsyncButtonGroup.vue.d.ts","sourceRoot":"","sources":["../../../src/components/FormAsync/WFormAsyncButtonGroup.vue"],"names":[],"mappings":"AAAA,OA2CO,KAAK,EAAC,yBAAyB,EAAC,MAAM,SAAS,CAAA;yBAQrC,KAAK,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,SAAS;IAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,2BACvL,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WA+HxD,mBAAmB,CAAC;;iNAAyD,CAAC,4BAA2B;oBAChG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;;;;YAjCe,GAAG;;cAzFzB,SAAS,SAAS,KAAK,KAAG,IAAI;;;;YA+HQ,OAAO,CAAC,OAAO,WAAW,CAAC;;AAzIvE,wBAyI4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -1,23 +1,14 @@
1
- import { defineComponent, toRef, ref, computed, onBeforeUnmount, openBlock, createBlock, mergeProps, unref, createSlots, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, mergeProps, unref, createSlots, withCtx, renderSlot } from 'vue';
2
2
  import _sfc_main$1 from '../Button/WButtonGroup.vue.js';
3
- import { Modal } from '../../utils/Modal.js';
4
- import { Notify } from '../../utils/Notify.js';
5
- import { handleApiError } from '../../utils/api.js';
6
- import { get, set } from '../../utils/utils.js';
3
+ import { useFormAsync } from './use/useFormAsync.js';
7
4
 
8
5
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
6
  __name: "WFormAsyncButtonGroup",
10
7
  props: {
11
- useQueryFn: {},
12
- noParams: { type: Boolean },
13
- queryParams: {},
14
- queryEnabled: { type: Boolean, default: void 0 },
15
- field: {},
16
- apiMethod: {},
17
- confimGetter: {},
18
8
  list: {},
19
9
  valueGetter: {},
20
10
  optionComponent: {},
11
+ loading: { type: Boolean },
21
12
  minimize: { type: Boolean },
22
13
  wrap: { type: Boolean },
23
14
  col: { type: Boolean },
@@ -41,53 +32,31 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
41
32
  emptyValue: {},
42
33
  leftError: { type: Boolean },
43
34
  filterField: {},
44
- filterValue: {}
35
+ filterValue: {},
36
+ useQueryFn: {},
37
+ noParams: { type: Boolean },
38
+ queryParams: {},
39
+ queryEnabled: { type: Boolean, default: void 0 },
40
+ field: {},
41
+ apiMethod: {},
42
+ confimGetter: {}
45
43
  },
46
- setup(__props) {
44
+ emits: ["success"],
45
+ setup(__props, { emit: __emit }) {
47
46
  const props = __props;
48
- const { data, setData, isLoadingError } = props.noParams === true ? props.useQueryFn({ enabled: toRef(props, "queryEnabled") }) : props.useQueryFn(toRef(props, "queryParams"), { enabled: toRef(props, "queryEnabled") });
49
- const submittingItem = ref();
50
- const modelValue = computed(() => get(data.value ?? {}, props.field) ?? null);
51
- const save = (value) => {
52
- if (submittingItem.value !== void 0) return;
53
- submittingItem.value = value;
54
- return props.apiMethod(set({}, props.field, value)).then((response) => {
55
- setData(response.data);
56
- Notify.success({ title: "Saved" });
57
- }).catch((error) => handleApiError(error, void 0, props.field)).finally(() => {
58
- submittingItem.value = void 0;
59
- });
60
- };
61
- let closeModal = null;
62
- const showModal = (value) => {
63
- closeModal?.();
64
- const confirmProps = props.confimGetter?.(value);
65
- if (!confirmProps) {
66
- save(value);
67
- return;
68
- }
69
- closeModal = Modal.addConfirm({
70
- ...confirmProps,
71
- onAccept: () => {
72
- return save(value);
73
- }
74
- }, () => closeModal = null);
75
- };
76
- onBeforeUnmount(() => {
77
- closeModal?.();
78
- closeModal = null;
79
- });
47
+ const emit = __emit;
48
+ const { isLoadingError, data, modelValue, submitting, showModal } = useFormAsync(props, (value) => emit("success", value));
80
49
  return (_ctx, _cache) => {
81
50
  return openBlock(), createBlock(_sfc_main$1, mergeProps({
82
51
  ...props,
83
- modelValue: modelValue.value,
52
+ modelValue: unref(modelValue),
84
53
  list: _ctx.list,
85
54
  optionComponent: _ctx.optionComponent,
86
- loading: submittingItem.value,
55
+ loading: _ctx.loading || unref(submitting),
87
56
  disabled: _ctx.disabled || unref(isLoadingError),
88
57
  skeleton: _ctx.skeleton || !unref(data)
89
58
  }, {
90
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => showModal($event))
59
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => unref(showModal)($event))
91
60
  }), createSlots({ _: 2 }, [
92
61
  _ctx.$slots.option ? {
93
62
  name: "option",
@@ -1 +1 @@
1
- {"version":3,"file":"WFormAsyncInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/FormAsync/WFormAsyncInput.vue"],"names":[],"mappings":"AAAA,OA0HO,KAAK,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAA;yBAa/B,KAAK,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,WAAW,eACxD,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WAgNxD,mBAAmB,CAAC;;sLAAyD,CAAC,4BAA2B;oBAChG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;uBApCc,GAAG;0BACA,GAAG;uBACN,GAAG;;cAvKxB,SAAS,SAAS,KAAK,KAAG,IAAI;;;;YA8MQ,OAAO,CAAC,OAAO,WAAW,CAAC;;AA1NvE,wBA0N4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"WFormAsyncInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/FormAsync/WFormAsyncInput.vue"],"names":[],"mappings":"AAAA,OAqEO,KAAK,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAA;yBAW/B,KAAK,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,WAAW,eACxD,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WA6JxD,mBAAmB,CAAC;;sLAAyD,CAAC,4BAA2B;oBAChG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;uBApCc,GAAG;0BACA,GAAG;uBACN,GAAG;;cAtHxB,SAAS,SAAS,KAAK,KAAG,IAAI;;;;YA6JQ,OAAO,CAAC,OAAO,WAAW,CAAC;;AAvKvE,wBAuK4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -1,21 +1,11 @@
1
- import { defineComponent, toRef, ref, computed, onBeforeUnmount, openBlock, createBlock, mergeProps, unref, createSlots, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, computed, createBlock, openBlock, mergeProps, unref, createSlots, withCtx, renderSlot } from 'vue';
2
2
  import _sfc_main$1 from '../Input/WInputAsync.vue.js';
3
- import { Modal } from '../../utils/Modal.js';
4
- import { Notify } from '../../utils/Notify.js';
5
- import { handleApiError } from '../../utils/api.js';
6
- import { get, set } from '../../utils/utils.js';
7
3
  import { validateRequired } from '../../utils/validate.js';
4
+ import { useFormAsync } from './use/useFormAsync.js';
8
5
 
9
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
10
7
  __name: "WFormAsyncInput",
11
8
  props: {
12
- useQueryFn: {},
13
- noParams: { type: Boolean },
14
- queryParams: {},
15
- queryEnabled: { type: Boolean, default: void 0 },
16
- field: {},
17
- apiMethod: {},
18
- confimGetter: {},
19
9
  validate: {},
20
10
  debounce: {},
21
11
  hideButton: { type: Boolean },
@@ -57,61 +47,36 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
57
47
  emptyValue: {},
58
48
  leftError: { type: Boolean },
59
49
  filterField: {},
60
- filterValue: {}
50
+ filterValue: {},
51
+ useQueryFn: {},
52
+ noParams: { type: Boolean },
53
+ queryParams: {},
54
+ queryEnabled: { type: Boolean, default: void 0 },
55
+ field: {},
56
+ apiMethod: {},
57
+ confimGetter: {}
61
58
  },
62
59
  emits: ["success"],
63
60
  setup(__props, { emit: __emit }) {
64
61
  const props = __props;
65
62
  const emit = __emit;
66
- const { data, setData, isLoadingError } = props.noParams === true ? props.useQueryFn({ enabled: toRef(props, "queryEnabled") }) : props.useQueryFn(toRef(props, "queryParams"), { enabled: toRef(props, "queryEnabled") });
67
- const submitting = ref(false);
68
- const modelValue = computed(() => get(data.value ?? {}, props.field));
63
+ const { isLoadingError, data, modelValue, submitting, showModal } = useFormAsync(props, (value) => emit("success", value));
69
64
  const validateFn = computed(() => {
70
65
  const result = Array.isArray(props.validate) ? props.validate.slice() : props.validate ? [props.validate] : [];
71
66
  if (props.required && !props.textSecure) result.push(validateRequired);
72
67
  return result;
73
68
  });
74
- const save = (value) => {
75
- if (submitting.value) return;
76
- submitting.value = true;
77
- return props.apiMethod(set({}, props.field, value)).then((response) => {
78
- setData(response.data);
79
- Notify.success({ title: "Saved" });
80
- emit("success", response.data);
81
- }).catch((error) => handleApiError(error, void 0, props.field)).finally(() => {
82
- submitting.value = false;
83
- });
84
- };
85
- let closeModal = null;
86
- const showModal = (value) => {
87
- closeModal?.();
88
- const confirmProps = props.confimGetter?.(value);
89
- if (!confirmProps) {
90
- save(value);
91
- return;
92
- }
93
- closeModal = Modal.addConfirm({
94
- ...confirmProps,
95
- onAccept: () => {
96
- return save(value);
97
- }
98
- }, () => closeModal = null);
99
- };
100
- onBeforeUnmount(() => {
101
- closeModal?.();
102
- closeModal = null;
103
- });
104
69
  return (_ctx, _cache) => {
105
70
  return openBlock(), createBlock(_sfc_main$1, mergeProps({
106
71
  ...props,
107
- modelValue: _ctx.textSecure ? void 0 : modelValue.value,
72
+ modelValue: _ctx.textSecure ? void 0 : unref(modelValue),
108
73
  skeleton: _ctx.skeleton || !unref(data),
109
74
  disabled: _ctx.disabled || unref(isLoadingError),
110
- loading: _ctx.loading || submitting.value,
75
+ loading: _ctx.loading || unref(submitting),
111
76
  validate: validateFn.value,
112
- placeholderSecure: _ctx.textSecure ? !!modelValue.value : void 0
77
+ placeholderSecure: _ctx.textSecure ? !!unref(modelValue) : void 0
113
78
  }, {
114
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => showModal($event))
79
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => unref(showModal)($event))
115
80
  }), createSlots({ _: 2 }, [
116
81
  _ctx.$slots.title ? {
117
82
  name: "title",
@@ -1,6 +1,6 @@
1
1
  import { FormAsyncSelectProps } from './types';
2
2
  import { SelectOptionComponent } from '../Select/types';
3
- declare const _default: <Model, FieldType extends string | number, QueryParamsOptions, QueryParams, Data extends DefaultData, OptionComponent extends SelectOptionComponent<Data>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
+ declare const _default: <Model, FieldType extends string[] | number[], QueryParamsOptions, QueryParams, Data extends DefaultData, OptionComponent extends SelectOptionComponent<Data>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
4
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
5
5
  readonly onSuccess?: ((value: Model) => any) | undefined;
6
6
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onSuccess"> & FormAsyncSelectProps<Model, FieldType, QueryParamsOptions, QueryParams, Data, OptionComponent>> & import('vue').PublicProps;
@@ -1 +1 @@
1
- {"version":3,"file":"WFormAsyncSelect.vue.d.ts","sourceRoot":"","sources":["../../../src/components/FormAsync/WFormAsyncSelect.vue"],"names":[],"mappings":"AAAA,OAgHO,KAAK,EAAC,oBAAoB,EAAC,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAA;yBAYnD,KAAK,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,SAAS,WAAW,EAAE,eAAe,SAAS,qBAAqB,CAAC,IAAI,CAAC,eAC3J,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WA2MxD,mBAAmB,CAAC;;kOAAyD,CAAC,4BAA2B;oBAChG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;uBAnCc,GAAG;0BACA,GAAG;uBACL,GAAG;;cAnKzB,SAAS,SAAS,KAAK,KAAG,IAAI;;;;YAyMQ,OAAO,CAAC,OAAO,WAAW,CAAC;;AArNvE,wBAqN4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"WFormAsyncSelect.vue.d.ts","sourceRoot":"","sources":["../../../src/components/FormAsync/WFormAsyncSelect.vue"],"names":[],"mappings":"AAAA,OA8DO,KAAK,EAAC,oBAAoB,EAAC,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAA;yBAOnD,KAAK,EAAE,SAAS,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,SAAS,WAAW,EAAE,eAAe,SAAS,qBAAqB,CAAC,IAAI,CAAC,eAC/J,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WA+JxD,mBAAmB,CAAC;;kOAAyD,CAAC,4BAA2B;oBAChG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;uBApCc,GAAG;0BACA,GAAG;uBACL,GAAG;;cAxHzB,SAAS,SAAS,KAAK,KAAG,IAAI;;;;YA+JQ,OAAO,CAAC,OAAO,WAAW,CAAC;;AAzKvE,wBAyK4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -1,20 +1,10 @@
1
- import { defineComponent, toRef, ref, computed, onBeforeUnmount, openBlock, createBlock, mergeProps, unref, createSlots, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, mergeProps, unref, createSlots, withCtx, renderSlot } from 'vue';
2
2
  import _sfc_main$1 from '../Select/WSelect.vue.js';
3
- import { Modal } from '../../utils/Modal.js';
4
- import { Notify } from '../../utils/Notify.js';
5
- import { handleApiError } from '../../utils/api.js';
6
- import { get, set } from '../../utils/utils.js';
3
+ import { useFormAsync } from './use/useFormAsync.js';
7
4
 
8
5
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
6
  __name: "WFormAsyncSelect",
10
7
  props: {
11
- useQueryFn: {},
12
- noParams: { type: Boolean },
13
- queryParams: {},
14
- queryEnabled: { type: Boolean, default: void 0 },
15
- field: {},
16
- apiMethod: {},
17
- confimGetter: {},
18
8
  valueGetter: {},
19
9
  searchFn: {},
20
10
  useQueryFnDefault: {},
@@ -75,59 +65,37 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
75
65
  optionComponentProps: {},
76
66
  useQueryFnOptions: {},
77
67
  queryParamsOptions: {},
78
- options: {}
68
+ options: {},
69
+ useQueryFn: {},
70
+ noParams: { type: Boolean },
71
+ queryParams: {},
72
+ queryEnabled: { type: Boolean, default: void 0 },
73
+ field: {},
74
+ apiMethod: {},
75
+ confimGetter: {}
79
76
  },
80
77
  emits: ["success"],
81
78
  setup(__props, { emit: __emit }) {
82
79
  const props = __props;
83
80
  const emit = __emit;
84
- const { data, setData, isLoadingError } = props.noParams === true ? props.useQueryFn({ enabled: toRef(props, "queryEnabled") }) : props.useQueryFn(toRef(props, "queryParams"), { enabled: toRef(props, "queryEnabled") });
85
- const submitting = ref(false);
86
- const modelValue = computed(() => get(data.value ?? {}, props.field) ?? []);
87
- const save = (value, isSelect) => {
88
- if (submitting.value) return;
89
- submitting.value = true;
90
- return props.apiMethod(set(
91
- {},
92
- props.field,
93
- isSelect ? [...modelValue.value, value] : modelValue.value.filter((item) => item !== value)
94
- )).then((response) => {
95
- setData(response.data);
96
- Notify.success({ title: "Saved" });
97
- emit("success", response.data);
98
- }).catch((error) => handleApiError(error, void 0, props.field)).finally(() => {
99
- submitting.value = false;
100
- });
101
- };
102
- let closeModal = null;
103
- const showModal = (value, isSelect) => {
104
- closeModal?.();
105
- const confirmProps = props.confimGetter?.(value, isSelect);
106
- if (!confirmProps) {
107
- save(value, isSelect);
108
- return;
109
- }
110
- closeModal = Modal.addConfirm({
111
- ...confirmProps,
112
- onAccept: () => {
113
- return save(value, isSelect);
114
- }
115
- }, () => closeModal = null);
81
+ const { isLoadingError, data, modelValue, submitting, showModal } = useFormAsync(props, (value) => emit("success", value));
82
+ const getNewValue = (value) => {
83
+ const newValue = modelValue.value?.slice() ?? [];
84
+ const index = newValue.indexOf(value);
85
+ if (index === -1) newValue.push(value);
86
+ else newValue.splice(index, 1);
87
+ return newValue;
116
88
  };
117
- onBeforeUnmount(() => {
118
- closeModal?.();
119
- closeModal = null;
120
- });
121
89
  return (_ctx, _cache) => {
122
90
  return openBlock(), createBlock(_sfc_main$1, mergeProps({
123
91
  ...props,
124
- modelValue: modelValue.value,
92
+ modelValue: unref(modelValue) ?? [],
125
93
  skeleton: _ctx.skeleton || !unref(data),
126
94
  disabled: _ctx.disabled || unref(isLoadingError),
127
- loading: _ctx.loading || submitting.value
95
+ loading: _ctx.loading || unref(submitting)
128
96
  }, {
129
- onSelect: _cache[0] || (_cache[0] = ($event) => showModal($event, true)),
130
- onUnselect: _cache[1] || (_cache[1] = ($event) => showModal($event, false))
97
+ onSelect: _cache[0] || (_cache[0] = ($event) => unref(showModal)(getNewValue($event))),
98
+ onUnselect: _cache[1] || (_cache[1] = ($event) => unref(showModal)(getNewValue($event)))
131
99
  }), createSlots({ _: 2 }, [
132
100
  _ctx.$slots.title ? {
133
101
  name: "title",
@@ -1 +1 @@
1
- {"version":3,"file":"WFormAsyncSelectInfiniteSingle.vue.d.ts","sourceRoot":"","sources":["../../../src/components/FormAsync/WFormAsyncSelectInfiniteSingle.vue"],"names":[],"mappings":"AAAA,OA2GO,KAAK,EAAC,kCAAkC,EAAC,MAAM,SAAS,CAAA;AAC/D,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAA;yBAYnD,KAAK,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,SAAS,WAAW,EAAE,eAAe,SAAS,qBAAqB,CAAC,IAAI,CAAC,EAAE,UAAU,SAAS,OAAO,uBACvL,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WA+LxD,mBAAmB,CAAC;;4PAAyD,CAAC,4BAA2B;oBAChG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;uBAnCc,GAAG;0BACA,GAAG;uBACN,GAAG;;cAvJxB,SAAS,SAAS,KAAK,KAAG,IAAI;;;;YA6LQ,OAAO,CAAC,OAAO,WAAW,CAAC;;AAzMvE,wBAyM4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"WFormAsyncSelectInfiniteSingle.vue.d.ts","sourceRoot":"","sources":["../../../src/components/FormAsync/WFormAsyncSelectInfiniteSingle.vue"],"names":[],"mappings":"AAAA,OAmDO,KAAK,EAAC,kCAAkC,EAAC,MAAM,SAAS,CAAA;AAC/D,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAA;yBAOnD,KAAK,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,SAAS,WAAW,EAAE,eAAe,SAAS,qBAAqB,CAAC,IAAI,CAAC,EAAE,UAAU,SAAS,OAAO,uBACvL,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WA4IxD,mBAAmB,CAAC;;4PAAyD,CAAC,4BAA2B;oBAChG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;uBAnCc,GAAG;0BACA,GAAG;uBACN,GAAG;;cAtGxB,SAAS,SAAS,KAAK,KAAG,IAAI;;;;YA4IQ,OAAO,CAAC,OAAO,WAAW,CAAC;;AAtJvE,wBAsJ4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -1,20 +1,10 @@
1
- import { defineComponent, toRef, ref, computed, onBeforeUnmount, openBlock, createBlock, mergeProps, unref, createSlots, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, mergeProps, unref, createSlots, withCtx, renderSlot } from 'vue';
2
2
  import _sfc_main$1 from '../Select/WSelectAsyncSingle.vue.js';
3
- import { Modal } from '../../utils/Modal.js';
4
- import { Notify } from '../../utils/Notify.js';
5
- import { handleApiError } from '../../utils/api.js';
6
- import { get, set } from '../../utils/utils.js';
3
+ import { useFormAsync } from './use/useFormAsync.js';
7
4
 
8
5
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
6
  __name: "WFormAsyncSelectInfiniteSingle",
10
7
  props: {
11
- useQueryFn: {},
12
- noParams: { type: Boolean },
13
- queryParams: {},
14
- queryEnabled: { type: Boolean, default: void 0 },
15
- field: {},
16
- apiMethod: {},
17
- confimGetter: {},
18
8
  allowClear: { type: Boolean },
19
9
  searchModel: { type: Boolean },
20
10
  previewData: {},
@@ -77,54 +67,29 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
77
67
  maxWidth: {},
78
68
  horizontalAlign: {},
79
69
  optionComponent: {},
80
- optionComponentProps: {}
70
+ optionComponentProps: {},
71
+ useQueryFn: {},
72
+ noParams: { type: Boolean },
73
+ queryParams: {},
74
+ queryEnabled: { type: Boolean, default: void 0 },
75
+ field: {},
76
+ apiMethod: {},
77
+ confimGetter: {}
81
78
  },
82
79
  emits: ["success"],
83
80
  setup(__props, { emit: __emit }) {
84
81
  const props = __props;
85
82
  const emit = __emit;
86
- const { data, setData, isLoadingError } = props.noParams === true ? props.useQueryFn({ enabled: toRef(props, "queryEnabled") }) : props.useQueryFn(toRef(props, "queryParams"), { enabled: toRef(props, "queryEnabled") });
87
- const submitting = ref(false);
88
- const modelValue = computed(() => get(data.value ?? {}, props.field) ?? null);
89
- const save = (value) => {
90
- if (submitting.value) return;
91
- submitting.value = true;
92
- return props.apiMethod(set({}, props.field, value)).then((response) => {
93
- setData(response.data);
94
- Notify.success({ title: "Saved" });
95
- emit("success", response.data);
96
- }).catch((error) => handleApiError(error, void 0, props.field)).finally(() => {
97
- submitting.value = false;
98
- });
99
- };
100
- let closeModal = null;
101
- const showModal = (value) => {
102
- closeModal?.();
103
- const confirmProps = props.confimGetter?.(value);
104
- if (!confirmProps) {
105
- save(value);
106
- return;
107
- }
108
- closeModal = Modal.addConfirm({
109
- ...confirmProps,
110
- onAccept: () => {
111
- return save(value);
112
- }
113
- }, () => closeModal = null);
114
- };
115
- onBeforeUnmount(() => {
116
- closeModal?.();
117
- closeModal = null;
118
- });
83
+ const { isLoadingError, data, modelValue, submitting, showModal } = useFormAsync(props, (value) => emit("success", value));
119
84
  return (_ctx, _cache) => {
120
85
  return openBlock(), createBlock(_sfc_main$1, mergeProps({
121
86
  ...props,
122
- modelValue: modelValue.value,
87
+ modelValue: unref(modelValue),
123
88
  skeleton: _ctx.skeleton || !unref(data),
124
89
  disabled: _ctx.disabled || unref(isLoadingError),
125
- loading: _ctx.loading || submitting.value
90
+ loading: _ctx.loading || unref(submitting)
126
91
  }, {
127
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => showModal($event ?? null))
92
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => unref(showModal)($event ?? null))
128
93
  }), createSlots({ _: 2 }, [
129
94
  _ctx.$slots.title ? {
130
95
  name: "title",
@@ -1 +1 @@
1
- {"version":3,"file":"WFormAsyncSelectSingle.vue.d.ts","sourceRoot":"","sources":["../../../src/components/FormAsync/WFormAsyncSelectSingle.vue"],"names":[],"mappings":"AAAA,OA2GO,KAAK,EAAC,0BAA0B,EAAC,MAAM,SAAS,CAAA;AACvD,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAA;yBAYnD,KAAK,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,SAAS,WAAW,EAAE,eAAe,SAAS,qBAAqB,CAAC,IAAI,CAAC,EAAE,UAAU,SAAS,OAAO,uBACvL,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WA+LxD,mBAAmB,CAAC;;oPAAyD,CAAC,4BAA2B;oBAChG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;uBAnCc,GAAG;0BACA,GAAG;uBACN,GAAG;;cAvJxB,SAAS,SAAS,KAAK,KAAG,IAAI;;;;YA6LQ,OAAO,CAAC,OAAO,WAAW,CAAC;;AAzMvE,wBAyM4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"WFormAsyncSelectSingle.vue.d.ts","sourceRoot":"","sources":["../../../src/components/FormAsync/WFormAsyncSelectSingle.vue"],"names":[],"mappings":"AAAA,OAmDO,KAAK,EAAC,0BAA0B,EAAC,MAAM,SAAS,CAAA;AACvD,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAA;yBAOnD,KAAK,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,SAAS,WAAW,EAAE,eAAe,SAAS,qBAAqB,CAAC,IAAI,CAAC,EAAE,UAAU,SAAS,OAAO,uBACvL,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WA4IxD,mBAAmB,CAAC;;oPAAyD,CAAC,4BAA2B;oBAChG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;uBAnCc,GAAG;0BACA,GAAG;uBACN,GAAG;;cAtGxB,SAAS,SAAS,KAAK,KAAG,IAAI;;;;YA4IQ,OAAO,CAAC,OAAO,WAAW,CAAC;;AAtJvE,wBAsJ4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}