@bildvitta/quasar-ui-asteroid 3.17.0-beta.21 → 3.17.0-beta.22

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 (314) hide show
  1. package/package.json +1 -1
  2. package/src/asteroid.js +4 -4
  3. package/src/components/actions/QasActions.vue +81 -81
  4. package/src/components/actions/QasActions.yml +34 -34
  5. package/src/components/actions-menu/QasActionsMenu.vue +251 -251
  6. package/src/components/actions-menu/QasActionsMenu.yml +89 -89
  7. package/src/components/actions-menu/composables/use-delete.js +30 -30
  8. package/src/components/actions-menu/composables/use-double-split-actions.js +42 -42
  9. package/src/components/actions-menu/composables/use-options-actions.js +27 -27
  10. package/src/components/actions-menu/composables/use-single-action.js +17 -17
  11. package/src/components/actions-menu/composables/use-single-split-actions.js +35 -35
  12. package/src/components/actions-menu/composables/use-tooltips.js +43 -43
  13. package/src/components/actions-menu/utils/get-label.js +3 -3
  14. package/src/components/actions-menu/utils/set-click-handler.js +6 -6
  15. package/src/components/alert/QasAlert.test.js +43 -43
  16. package/src/components/alert/QasAlert.vue +110 -110
  17. package/src/components/alert/QasAlert.yml +39 -39
  18. package/src/components/app-bar/QasAppBar.vue +119 -119
  19. package/src/components/app-bar/QasAppBar.yml +44 -44
  20. package/src/components/app-menu/QasAppMenu.vue +392 -392
  21. package/src/components/app-menu/QasAppMenu.yml +73 -73
  22. package/src/components/app-menu/composables/use-app-menu-dropdown.js +71 -71
  23. package/src/components/app-menu/composables/use-app-user.js +49 -49
  24. package/src/components/app-menu/composables/use-development-badge.js +23 -23
  25. package/src/components/app-menu/private/PvAppMenuDropdown.vue +71 -71
  26. package/src/components/app-menu/private/PvAppMenuHelpChat.vue +222 -222
  27. package/src/components/app-user/QasAppUser.vue +281 -281
  28. package/src/components/app-user/QasAppUser.yml +56 -56
  29. package/src/components/avatar/QasAvatar.vue +95 -95
  30. package/src/components/avatar/QasAvatar.yml +38 -38
  31. package/src/components/avatar/enums/AvatarColors.js +10 -10
  32. package/src/components/badge/QasBadge.vue +87 -87
  33. package/src/components/badge/QasBadge.yml +55 -55
  34. package/src/components/board-generator/QasBoardGenerator.vue +712 -712
  35. package/src/components/board-generator/QasBoardGenerator.yml +167 -167
  36. package/src/components/box/QasBox.vue +51 -51
  37. package/src/components/box/QasBox.yml +29 -29
  38. package/src/components/breakline/QasBreakline.vue +38 -38
  39. package/src/components/breakline/QasBreakline.yml +25 -25
  40. package/src/components/btn/QasBtn.vue +148 -148
  41. package/src/components/btn/QasBtn.yml +48 -48
  42. package/src/components/btn-dropdown/QasBtnDropdown.vue +146 -146
  43. package/src/components/btn-dropdown/QasBtnDropdown.yml +59 -59
  44. package/src/components/card/QasCard.vue +132 -132
  45. package/src/components/card/QasCard.yml +44 -44
  46. package/src/components/card-image/QasCardImage.vue +95 -95
  47. package/src/components/card-image/QasCardImage.yml +48 -48
  48. package/src/components/chart-view/QasChartView.vue +441 -441
  49. package/src/components/chart-view/QasChartView.yml +109 -109
  50. package/src/components/chart-view/config/charts/bar.js +45 -45
  51. package/src/components/chart-view/config/charts/doughnut.js +43 -43
  52. package/src/components/chart-view/config/charts/index.js +9 -9
  53. package/src/components/chart-view/config/charts/line.js +57 -57
  54. package/src/components/chart-view/config/defaults/colors.js +19 -19
  55. package/src/components/chart-view/config/defaults/font.js +5 -5
  56. package/src/components/chart-view/config/defaults/index.js +2 -2
  57. package/src/components/chart-view/config/index.js +3 -3
  58. package/src/components/chart-view/config/plugins/index.js +3 -3
  59. package/src/components/chart-view/config/plugins/legend.js +9 -9
  60. package/src/components/chart-view/config/plugins/tooltip.js +15 -15
  61. package/src/components/chart-view/config/plugins/zoom.js +31 -31
  62. package/src/components/checkbox/QasCheckbox.vue +150 -150
  63. package/src/components/checkbox/QasCheckbox.yml +36 -36
  64. package/src/components/copy/QasCopy.vue +46 -46
  65. package/src/components/copy/QasCopy.yml +23 -23
  66. package/src/components/date/QasDate.vue +600 -600
  67. package/src/components/date/QasDate.yml +69 -69
  68. package/src/components/date/enums/DateMaskOptions.js +6 -6
  69. package/src/components/date-time-input/QasDateTimeInput.vue +269 -269
  70. package/src/components/date-time-input/QasDateTimeInput.yml +64 -64
  71. package/src/components/debugger/QasDebugger.vue +31 -31
  72. package/src/components/debugger/QasDebugger.yml +10 -10
  73. package/src/components/delete/QasDelete.vue +100 -100
  74. package/src/components/delete/QasDelete.yml +60 -60
  75. package/src/components/dialog/QasDialog.vue +217 -217
  76. package/src/components/dialog/QasDialog.yml +117 -117
  77. package/src/components/dialog/composables/use-cancel.js +40 -40
  78. package/src/components/dialog/composables/use-dynamic-components.js +86 -86
  79. package/src/components/dialog/composables/use-ok.js +45 -45
  80. package/src/components/dialog-router/QasDialogRouter.vue +86 -86
  81. package/src/components/dialog-router/QasDialogRouter.yml +23 -23
  82. package/src/components/drawer/QasDrawer.vue +118 -118
  83. package/src/components/drawer/QasDrawer.yml +58 -58
  84. package/src/components/empty-result-text/QasEmptyResultText.vue +18 -18
  85. package/src/components/empty-result-text/QasEmptyResultText.yml +14 -14
  86. package/src/components/expansion-item/QasExpansionItem.vue +291 -291
  87. package/src/components/expansion-item/QasExpansionItem.yml +76 -76
  88. package/src/components/field/QasField.vue +220 -220
  89. package/src/components/field/QasField.yml +36 -36
  90. package/src/components/filters/QasFilters.vue +472 -472
  91. package/src/components/filters/QasFilters.yml +171 -171
  92. package/src/components/filters/private/PvFiltersButton.vue +101 -101
  93. package/src/components/form-generator/QasFormGenerator.vue +274 -274
  94. package/src/components/form-generator/QasFormGenerator.yml +109 -109
  95. package/src/components/form-view/QasFormView.vue +484 -484
  96. package/src/components/form-view/QasFormView.yml +253 -253
  97. package/src/components/gallery/QasGallery.vue +243 -243
  98. package/src/components/gallery/QasGallery.yml +188 -188
  99. package/src/components/gallery/composables/use-delete.js +54 -54
  100. package/src/components/gallery/private/PvGalleryCarouselDialog.vue +92 -92
  101. package/src/components/gallery/private/PvGalleryDeleteDialog.vue +54 -54
  102. package/src/components/gallery-card/QasGalleryCard.vue +153 -153
  103. package/src/components/gallery-card/QasGalleryCard.yml +61 -61
  104. package/src/components/grabbable/QasGrabbable.vue +185 -185
  105. package/src/components/grabbable/QasGrabbable.yml +26 -26
  106. package/src/components/grid-generator/QasGridGenerator.vue +210 -210
  107. package/src/components/grid-generator/QasGridGenerator.yml +127 -127
  108. package/src/components/grid-item/QasGridItem.vue +89 -89
  109. package/src/components/grid-item/QasGridItem.yml +22 -22
  110. package/src/components/header/QasHeader.vue +152 -152
  111. package/src/components/header/QasHeader.yml +50 -50
  112. package/src/components/infinite-scroll/QasInfiniteScroll.vue +168 -168
  113. package/src/components/infinite-scroll/QasInfiniteScroll.yml +78 -78
  114. package/src/components/info/QasInfo.vue +155 -155
  115. package/src/components/info/QasInfo.yml +34 -34
  116. package/src/components/input/QasInput.vue +252 -252
  117. package/src/components/input/QasInput.yml +65 -65
  118. package/src/components/label/QasLabel.vue +61 -61
  119. package/src/components/label/QasLabel.yml +44 -44
  120. package/src/components/layout/QasLayout.vue +101 -101
  121. package/src/components/layout/QasLayout.yml +46 -46
  122. package/src/components/layout/private/PvLayoutNotificationCard.vue +86 -86
  123. package/src/components/layout/private/PvLayoutNotificationsDrawer.vue +140 -140
  124. package/src/components/list-items/QasListItems.vue +125 -125
  125. package/src/components/list-items/QasListItems.yml +71 -71
  126. package/src/components/list-view/QasListView.vue +302 -302
  127. package/src/components/list-view/QasListView.yml +169 -169
  128. package/src/components/map/QasMap.vue +75 -75
  129. package/src/components/map/QasMap.yml +33 -33
  130. package/src/components/nested-fields/QasNestedFields.vue +584 -584
  131. package/src/components/nested-fields/QasNestedFields.yml +296 -296
  132. package/src/components/numeric-input/QasNumericInput.vue +206 -206
  133. package/src/components/numeric-input/QasNumericInput.yml +85 -85
  134. package/src/components/option-group/QasOptionGroup.vue +54 -54
  135. package/src/components/option-group/QasOptionGroup.yml +30 -30
  136. package/src/components/page-header/QasPageHeader.vue +143 -143
  137. package/src/components/page-header/QasPageHeader.yml +42 -42
  138. package/src/components/pagination/QasPagination.vue +71 -71
  139. package/src/components/pagination/QasPagination.yml +4 -4
  140. package/src/components/password-input/QasPasswordInput.vue +110 -110
  141. package/src/components/password-input/QasPasswordInput.yml +111 -111
  142. package/src/components/password-strength-checker/QasPasswordStrengthChecker.vue +71 -71
  143. package/src/components/password-strength-checker/QasPasswordStrengthChecker.yml +103 -103
  144. package/src/components/profile/QasProfile.vue +98 -98
  145. package/src/components/profile/QasProfile.yml +60 -60
  146. package/src/components/radio/QasRadio.vue +62 -62
  147. package/src/components/radio/QasRadio.yml +11 -11
  148. package/src/components/resizer/QasResizer.vue +90 -90
  149. package/src/components/resizer/QasResizer.yml +24 -24
  150. package/src/components/search-box/QasSearchBox.vue +294 -294
  151. package/src/components/search-box/QasSearchBox.yml +154 -154
  152. package/src/components/search-input/QasSearchInput.vue +106 -106
  153. package/src/components/search-input/QasSearchInput.yml +48 -48
  154. package/src/components/select/QasSelect.vue +514 -514
  155. package/src/components/select/QasSelect.yml +157 -157
  156. package/src/components/select-list/QasSelectList.vue +238 -238
  157. package/src/components/select-list/QasSelectList.yml +108 -108
  158. package/src/components/select-list/private/PvSelectListCheckbox.vue +31 -31
  159. package/src/components/select-list-dialog/QasSelectListDialog.vue +395 -395
  160. package/src/components/select-list-dialog/QasSelectListDialog.yml +108 -108
  161. package/src/components/signature-pad/QasSignaturePad.vue +122 -122
  162. package/src/components/signature-pad/QasSignaturePad.yml +53 -53
  163. package/src/components/signature-uploader/QasSignatureUploader.vue +164 -164
  164. package/src/components/signature-uploader/QasSignatureUploader.yml +37 -37
  165. package/src/components/single-view/QasSingleView.vue +175 -175
  166. package/src/components/single-view/QasSingleView.yml +131 -131
  167. package/src/components/sortable/QasSortable.vue +151 -151
  168. package/src/components/sortable/QasSortable.yml +65 -65
  169. package/src/components/status/QasStatus.test.js +11 -11
  170. package/src/components/status/QasStatus.vue +29 -29
  171. package/src/components/status/QasStatus.yml +10 -10
  172. package/src/components/stepper/QasStepper.vue +199 -152
  173. package/src/components/stepper/QasStepper.yml +35 -35
  174. package/src/components/stepper-form-view/QasStepperFormView.vue +86 -84
  175. package/src/components/stepper-form-view/QasStepperFormView.yml +58 -58
  176. package/src/components/table-generator/QasTableGenerator.vue +416 -416
  177. package/src/components/table-generator/QasTableGenerator.yml +94 -94
  178. package/src/components/tabs-generator/QasTabsGenerator.vue +196 -196
  179. package/src/components/tabs-generator/QasTabsGenerator.yml +53 -53
  180. package/src/components/text-truncate/QasTextTruncate.vue +274 -274
  181. package/src/components/text-truncate/QasTextTruncate.yml +60 -60
  182. package/src/components/timeline/QasTimeline.vue +140 -140
  183. package/src/components/timeline/QasTimeline.yml +36 -36
  184. package/src/components/toggle/QasToggle.vue +14 -14
  185. package/src/components/toggle/QasToggle.yml +5 -5
  186. package/src/components/toggle-visibility/QasToggleVisibility.vue +79 -79
  187. package/src/components/toggle-visibility/QasToggleVisibility.yml +30 -30
  188. package/src/components/transfer/QasTransfer.vue +239 -239
  189. package/src/components/transfer/QasTransfer.yml +60 -60
  190. package/src/components/tree-generator/QasTreeForm.vue +62 -62
  191. package/src/components/tree-generator/QasTreeGenerator.vue +488 -488
  192. package/src/components/tree-generator/QasTreeGenerator.yml +81 -81
  193. package/src/components/uploader/QasUploader.vue +691 -645
  194. package/src/components/uploader/QasUploader.yml +206 -192
  195. package/src/components/uploader/private/PvUploaderGalleryCard.vue +357 -357
  196. package/src/components/welcome/QasWelcome.vue +125 -125
  197. package/src/components/welcome/QasWelcome.yml +23 -23
  198. package/src/components/welcome/private/PvWelcomeShortcutCard.vue +58 -58
  199. package/src/components/whatsapp-link/QasWhatsappLink.vue +34 -34
  200. package/src/components/whatsapp-link/QasWhatsappLink.yml +18 -18
  201. package/src/composables/index.js +8 -8
  202. package/src/composables/private/index.js +3 -3
  203. package/src/composables/private/use-generator.js +174 -174
  204. package/src/composables/private/use-toggle-visibility.js +48 -48
  205. package/src/composables/private/use-view.js +186 -186
  206. package/src/composables/use-context.js +15 -15
  207. package/src/composables/use-form.js +32 -32
  208. package/src/composables/use-history.js +46 -46
  209. package/src/composables/use-notifications.js +128 -128
  210. package/src/composables/use-query-cache.js +60 -60
  211. package/src/composables/use-screen.js +42 -42
  212. package/src/css/base/font-face.scss +28 -28
  213. package/src/css/base/index.scss +1 -1
  214. package/src/css/components/base.scss +12 -12
  215. package/src/css/components/button.scss +116 -116
  216. package/src/css/components/checkbox.scss +14 -14
  217. package/src/css/components/editor.scss +7 -7
  218. package/src/css/components/field.scss +88 -88
  219. package/src/css/components/index.scss +10 -10
  220. package/src/css/components/item.scss +52 -52
  221. package/src/css/components/radio.scss +18 -18
  222. package/src/css/components/scrollbar.scss +20 -20
  223. package/src/css/components/tabs.scss +3 -3
  224. package/src/css/components/toggle.scss +13 -13
  225. package/src/css/mixins/index.scss +3 -3
  226. package/src/css/mixins/set-brand.scss +15 -15
  227. package/src/css/mixins/set-button.scss +26 -26
  228. package/src/css/mixins/set-typography.scss +8 -8
  229. package/src/css/plugins/index.scss +2 -2
  230. package/src/css/plugins/loading.scss +5 -5
  231. package/src/css/plugins/notify.scss +100 -100
  232. package/src/css/utils/background.scss +34 -34
  233. package/src/css/utils/border-radius.scss +29 -29
  234. package/src/css/utils/border.scss +42 -42
  235. package/src/css/utils/container.scss +36 -36
  236. package/src/css/utils/fonts.scss +5 -5
  237. package/src/css/utils/index.scss +10 -10
  238. package/src/css/utils/line-height.scss +19 -19
  239. package/src/css/utils/opacity.scss +5 -5
  240. package/src/css/utils/scroll.scss +21 -21
  241. package/src/css/utils/text.scss +15 -15
  242. package/src/css/utils/unset.scss +8 -8
  243. package/src/css/variables/button.scss +4 -4
  244. package/src/css/variables/index.scss +6 -6
  245. package/src/css/variables/scrollbar.scss +11 -11
  246. package/src/css/variables/separator.scss +2 -2
  247. package/src/css/variables/shadow.scss +3 -3
  248. package/src/css/variables/spacing.scss +98 -98
  249. package/src/css/variables/typography.scss +149 -149
  250. package/src/directives/Test.js +13 -13
  251. package/src/enums/Align.js +7 -7
  252. package/src/enums/Spacing.js +98 -98
  253. package/src/enums/Status.js +33 -33
  254. package/src/helpers/add-counter-suffix.js +3 -3
  255. package/src/helpers/base-64-to-blob.js +21 -21
  256. package/src/helpers/camelize-fields-name.js +15 -15
  257. package/src/helpers/construct-object.js +29 -29
  258. package/src/helpers/copy-to-clipboard.js +15 -15
  259. package/src/helpers/destroy-nested-children-by-key.js +33 -33
  260. package/src/helpers/download-file.js +21 -21
  261. package/src/helpers/filter-list-by-handle.js +31 -31
  262. package/src/helpers/filter-object-to-array.js +29 -29
  263. package/src/helpers/filter-object.js +34 -34
  264. package/src/helpers/filters.js +163 -163
  265. package/src/helpers/find-children-by-key.js +14 -14
  266. package/src/helpers/get-greatest-common-divisor.js +16 -16
  267. package/src/helpers/get-normalized-options.js +20 -20
  268. package/src/helpers/get-placeholder.js +19 -19
  269. package/src/helpers/get-required-label.js +3 -3
  270. package/src/helpers/get-slot-children-text.js +15 -15
  271. package/src/helpers/handle-process.js +13 -13
  272. package/src/helpers/images.js +28 -28
  273. package/src/helpers/index.js +25 -25
  274. package/src/helpers/is-empty.js +3 -3
  275. package/src/helpers/is-local-development.js +3 -3
  276. package/src/helpers/private/gutter-validator.js +15 -15
  277. package/src/helpers/private/has-parent-by-class-name.js +15 -15
  278. package/src/helpers/promise-handler.js +40 -40
  279. package/src/helpers/rules.js +7 -7
  280. package/src/helpers/set-scroll-on-grab.js +128 -128
  281. package/src/index.cjs.js +1 -1
  282. package/src/index.esm.js +4 -4
  283. package/src/index.scss +38 -38
  284. package/src/index.umd.js +2 -2
  285. package/src/mixins/context.js +8 -8
  286. package/src/mixins/delete.js +48 -48
  287. package/src/mixins/dialog-router.js +17 -17
  288. package/src/mixins/form.js +11 -11
  289. package/src/mixins/generator.js +94 -94
  290. package/src/mixins/index.js +17 -17
  291. package/src/mixins/password.js +86 -86
  292. package/src/mixins/search-filter.js +354 -354
  293. package/src/mixins/view.js +156 -156
  294. package/src/pages/ErrorComponent.vue +74 -74
  295. package/src/pages/Forbidden.vue +29 -29
  296. package/src/pages/NotFound.vue +29 -29
  297. package/src/pages/ServerError.vue +29 -29
  298. package/src/pages/Unauthorized.vue +29 -29
  299. package/src/plugins/delete/Delete.js +107 -107
  300. package/src/plugins/delete/Delete.yml +75 -75
  301. package/src/plugins/dialog/Dialog.js +14 -14
  302. package/src/plugins/dialog/Dialog.yml +10 -10
  303. package/src/plugins/index.js +13 -13
  304. package/src/plugins/notify-error/NotifyError.js +13 -13
  305. package/src/plugins/notify-error/NotifyError.yml +11 -11
  306. package/src/plugins/notify-success/NotifySuccess.js +13 -13
  307. package/src/plugins/notify-success/NotifySuccess.yml +11 -11
  308. package/src/plugins/screen/Screen.js +35 -35
  309. package/src/plugins/screen/Screen.yml +16 -16
  310. package/src/shared/date-config.js +26 -26
  311. package/src/shared/fuse-config.js +4 -4
  312. package/src/shared/notify-config.js +7 -7
  313. package/src/vue-plugin/third-party-component-handler.js +29 -29
  314. package/src/vue-plugin.js +282 -282
@@ -1,152 +1,199 @@
1
- <template>
2
- <div class="qas-stepper" :class="classes">
3
- <q-stepper ref="stepper" v-model="model" active-color="primary" active-icon="none" animated :contracted="screen.untilLarge" done-color="primary" done-icon="none" flat :header-class="headerClass" inactive-color="grey-6" keep-alive>
4
- <template v-for="(_, name) in $slots" #[name]="context">
5
- <slot :name="name" v-bind="getContext(context)" />
6
- </template>
7
- </q-stepper>
8
- </div>
9
- </template>
10
-
11
- <script setup>
12
- import { computed, ref } from 'vue'
13
- import { Spacing } from '../../enums/Spacing'
14
- import { gutterValidator } from '../../helpers/private/gutter-validator'
15
- import useScreen from '../../composables/use-screen'
16
-
17
- defineOptions({ name: 'QasStepper' })
18
-
19
- const props = defineProps({
20
- disable: {
21
- type: Boolean
22
- },
23
-
24
- modelValue: {
25
- type: [String, Number],
26
- default: 0
27
- },
28
-
29
- spacing: {
30
- default: Spacing.Lg,
31
- type: [String, Boolean],
32
- validator: gutterValidator
33
- }
34
- })
35
-
36
- const stepper = ref(null)
37
-
38
- const screen = useScreen()
39
-
40
- const emit = defineEmits(['update:modelValue'])
41
-
42
- defineExpose({ next, previous, goTo })
43
-
44
- const model = computed({
45
- get () {
46
- return props.modelValue
47
- },
48
-
49
- set (modelValue) {
50
- return emit('update:modelValue', modelValue)
51
- }
52
- })
53
-
54
- const classes = computed(() => ({ 'qas-stepper--disable': props.disable }))
55
-
56
- const headerClass = computed(() => `text-subtitle1 q-pb-${props.spacing}`)
57
-
58
- function getContext (context) {
59
- return {
60
- ...context,
61
- next,
62
- previous
63
- }
64
- }
65
-
66
- function goTo (step) {
67
- stepper.value.goTo(step)
68
- }
69
-
70
- function next () {
71
- if (props.disable) return
72
-
73
- stepper.value.next()
74
- }
75
-
76
- function previous () {
77
- if (props.disable) return
78
-
79
- stepper.value.previous()
80
- }
81
- </script>
82
-
83
- <style lang="scss">
84
- .qas-stepper {
85
- .q-stepper {
86
- background-color: transparent;
87
-
88
- &__tab {
89
- padding: 0;
90
- }
91
-
92
- &__caption {
93
- @include set-typography($caption);
94
- color: $grey-6;
95
- }
96
- }
97
-
98
- &--disable {
99
- .q-stepper {
100
- &__title {
101
- color: $grey-6;
102
- }
103
-
104
- &__line::after,
105
- &__line::before,
106
- &__dot {
107
- background-color: $grey-6 !important;
108
- }
109
- }
110
- }
111
-
112
- .q-stepper--horizontal .q-stepper__line::before,
113
- .q-stepper--horizontal .q-stepper__line::after {
114
- height: 4px;
115
- border-radius: var(--qas-generic-border-radius);
116
- }
117
-
118
- .q-stepper__header--standard-labels .q-stepper__tab {
119
- min-height: auto;
120
- }
121
-
122
- .q-stepper__tab:nth-child(1),
123
- .q-stepper__tab--done {
124
-
125
- .q-stepper__line::after,
126
- .q-stepper__line::before {
127
- background-color: var(--q-primary);
128
- }
129
- }
130
-
131
- .q-stepper__tab:nth-child(2),
132
- .q-stepper__tab--active {
133
- .q-stepper__line::before {
134
- background-color: var(--q-primary);
135
- }
136
- }
137
-
138
- .q-stepper__nav,
139
- .q-stepper__step-inner {
140
- padding: 0;
141
- }
142
-
143
- .q-stepper__header--contracted .q-stepper__tab:first-child .q-stepper__dot,
144
- .q-stepper__header--contracted .q-stepper__tab:last-child .q-stepper__dot {
145
- transform: translateX(0);
146
- }
147
-
148
- .q-focus-helper {
149
- display: none;
150
- }
151
- }
152
- </style>
1
+ <template>
2
+ <div class="qas-stepper" :class="classes">
3
+ <q-stepper ref="stepper" v-model="model" v-bind="stepperProps">
4
+ <template v-for="(_, name) in $slots" #[name]="context">
5
+ <slot :name="name" v-bind="getContext(context)" />
6
+ </template>
7
+ </q-stepper>
8
+ </div>
9
+ </template>
10
+
11
+ <script setup>
12
+ import { computed, ref, useAttrs } from 'vue'
13
+ import { Spacing } from '../../enums/Spacing'
14
+ import { gutterValidator } from '../../helpers/private/gutter-validator'
15
+ import useScreen from '../../composables/use-screen'
16
+
17
+ defineOptions({ name: 'QasStepper' })
18
+
19
+ const props = defineProps({
20
+ disable: {
21
+ type: Boolean
22
+ },
23
+
24
+ modelValue: {
25
+ type: [String, Number],
26
+ default: 0
27
+ },
28
+
29
+ spacing: {
30
+ default: Spacing.Lg,
31
+ type: [String, Boolean],
32
+ validator: gutterValidator
33
+ }
34
+ })
35
+
36
+ const stepper = ref(null)
37
+
38
+ const attrs = useAttrs()
39
+
40
+ const screen = useScreen()
41
+
42
+ const emit = defineEmits(['update:modelValue'])
43
+
44
+ defineExpose({ next, previous, goTo })
45
+
46
+ const model = computed({
47
+ get () {
48
+ return props.modelValue
49
+ },
50
+
51
+ set (modelValue) {
52
+ return emit('update:modelValue', modelValue)
53
+ }
54
+ })
55
+
56
+ const classes = computed(() => ({ 'qas-stepper--disable': props.disable }))
57
+
58
+ const stepperProps = computed(() => {
59
+ const defaultProps = {
60
+ contracted: screen.untilLarge,
61
+ doneColor: 'primary',
62
+ flat: true,
63
+ animated: true,
64
+ activeColor: 'primary',
65
+ errorIcon: 'sym_r_close',
66
+ errorColor: 'white',
67
+ headerClass: `text-subtitle1 q-pb-${props.spacing}`,
68
+ inactiveColor: attrs['header-nav'] || attrs.headerNav ? 'grey-10' : 'grey-6'
69
+ }
70
+
71
+ return {
72
+ activeIcon: 'none',
73
+ doneIcon: 'none',
74
+ keepAlive: true,
75
+ ...attrs,
76
+ ...defaultProps
77
+ }
78
+ })
79
+
80
+ function getContext (context) {
81
+ return {
82
+ ...context,
83
+ next,
84
+ previous
85
+ }
86
+ }
87
+
88
+ function goTo (step) {
89
+ stepper.value.goTo(step)
90
+ }
91
+
92
+ function next () {
93
+ if (props.disable) return
94
+
95
+ stepper.value.next()
96
+ }
97
+
98
+ function previous () {
99
+ if (props.disable) return
100
+
101
+ stepper.value.previous()
102
+ }
103
+ </script>
104
+
105
+ <style lang="scss">
106
+ .qas-stepper {
107
+ .q-stepper {
108
+ background-color: transparent;
109
+
110
+ &__tab {
111
+ padding: 0;
112
+
113
+ &--active {
114
+ .q-icon {
115
+ font-size: 14px;
116
+ color: white;
117
+ }
118
+
119
+ .q-stepper__dot {
120
+ background-color: var(--q-primary) !important;
121
+ }
122
+ }
123
+
124
+ &:not(.q-stepper__tab--active).q-stepper__tab--error-with-icon {
125
+ .q-stepper__title {
126
+ color: $grey-10;
127
+ }
128
+
129
+ .q-stepper__dot {
130
+ background-color: $negative !important;
131
+ }
132
+
133
+ .q-icon {
134
+ font-size: 14px;
135
+ }
136
+ }
137
+ }
138
+
139
+ &__caption {
140
+ @include set-typography($caption);
141
+ color: $grey-6;
142
+ }
143
+ }
144
+
145
+ &--disable {
146
+ .q-stepper {
147
+ &__title {
148
+ color: $grey-6;
149
+ }
150
+
151
+ &__line::after,
152
+ &__line::before,
153
+ &__dot {
154
+ background-color: $grey-6 !important;
155
+ }
156
+ }
157
+ }
158
+
159
+ .q-stepper--horizontal .q-stepper__line::before,
160
+ .q-stepper--horizontal .q-stepper__line::after {
161
+ height: 4px;
162
+ border-radius: var(--qas-generic-border-radius);
163
+ }
164
+
165
+ .q-stepper__header--standard-labels .q-stepper__tab {
166
+ min-height: auto;
167
+ }
168
+
169
+ .q-stepper__tab:nth-child(1),
170
+ .q-stepper__tab--done {
171
+
172
+ .q-stepper__line::after,
173
+ .q-stepper__line::before {
174
+ background-color: var(--q-primary);
175
+ }
176
+ }
177
+
178
+ .q-stepper__tab:nth-child(2),
179
+ .q-stepper__tab--active {
180
+ .q-stepper__line::before {
181
+ background-color: var(--q-primary);
182
+ }
183
+ }
184
+
185
+ .q-stepper__nav,
186
+ .q-stepper__step-inner {
187
+ padding: 0;
188
+ }
189
+
190
+ .q-stepper__header--contracted .q-stepper__tab:first-child .q-stepper__dot,
191
+ .q-stepper__header--contracted .q-stepper__tab:last-child .q-stepper__dot {
192
+ transform: translateX(0);
193
+ }
194
+
195
+ .q-focus-helper {
196
+ display: none;
197
+ }
198
+ }
199
+ </style>
@@ -1,36 +1,36 @@
1
- type: component
2
-
3
- meta:
4
- desc: Componente de stepper.
5
-
6
- props:
7
- disable:
8
- desc: Deixa o componente desabilitado.
9
- default: false
10
- type: Boolean
11
-
12
- spacing:
13
- desc: Espaçamento entre o stepper e o conteúdo da página.
14
- default: lg
15
- type: [String, Boolean]
16
- examples: [xs, sm, md, lg, xl, '2xl', '3xl', '4xl', '5xl', false]
17
-
18
- model-value:
19
- desc: Model do componente, responsável por controlar em qual step deverá ser exibido.
20
- model: true
21
- type: [Number, String]
22
-
23
- events:
24
- '@update:model-value -> function(value)':
25
- desc: Dispara quando o model-value altera, também usado para v-model.
26
- params:
27
- value:
28
- desc: Valor do mode-value.
29
- type: [Number, String]
30
-
31
- methods:
32
- 'next: () => void':
33
- desc: Avança o stepper para o prõximo step.
34
-
35
- 'previous: () => void':
1
+ type: component
2
+
3
+ meta:
4
+ desc: Componente de stepper.
5
+
6
+ props:
7
+ disable:
8
+ desc: Deixa o componente desabilitado.
9
+ default: false
10
+ type: Boolean
11
+
12
+ spacing:
13
+ desc: Espaçamento entre o stepper e o conteúdo da página.
14
+ default: lg
15
+ type: [String, Boolean]
16
+ examples: [xs, sm, md, lg, xl, '2xl', '3xl', '4xl', '5xl', false]
17
+
18
+ model-value:
19
+ desc: Model do componente, responsável por controlar em qual step deverá ser exibido.
20
+ model: true
21
+ type: [Number, String]
22
+
23
+ events:
24
+ '@update:model-value -> function(value)':
25
+ desc: Dispara quando o model-value altera, também usado para v-model.
26
+ params:
27
+ value:
28
+ desc: Valor do mode-value.
29
+ type: [Number, String]
30
+
31
+ methods:
32
+ 'next: () => void':
33
+ desc: Avança o stepper para o prõximo step.
34
+
35
+ 'previous: () => void':
36
36
  desc: Volta o stepper para o step anterior.
@@ -1,84 +1,86 @@
1
- <template>
2
- <qas-stepper ref="stepper" v-model="model" v-bind="stepperProps">
3
- <template #default>
4
- <q-step v-for="(step, stepIndex) in props.steps" :key="stepIndex" :done="isDone(stepIndex)" :name="getStepName(stepIndex)" v-bind="stepPropsList[stepIndex]">
5
- <component :is="step.component" />
6
- </q-step>
7
- </template>
8
- </qas-stepper>
9
- </template>
10
-
11
- <script setup>
12
- import { ref, provide, computed } from 'vue'
13
-
14
- defineOptions({ name: 'QasStepperFormView' })
15
-
16
- const props = defineProps({
17
- steps: {
18
- type: Array,
19
- required: true
20
- },
21
-
22
- formViewProps: {
23
- type: Object,
24
- default: () => ({})
25
- },
26
-
27
- stepperProps: {
28
- type: Object,
29
- default: () => ({})
30
- }
31
- })
32
-
33
- const model = defineModel({ type: Number, default: 1 })
34
-
35
- const values = ref({})
36
- const stepPropsList = ref([])
37
- const stepper = ref(null)
38
-
39
- setStepProps({ payload: [...props.steps.map(({ stepProps }) => stepProps)] })
40
-
41
- const defaultFormViewProps = computed(() => {
42
- return {
43
- useBoundary: false,
44
- useNotifySuccess: false,
45
- ...props.formViewProps
46
- }
47
- })
48
-
49
- function setStepProps ({ step, payload }) {
50
- if (step) {
51
- stepPropsList.value[step - 1] = payload
52
- } else {
53
- stepPropsList.value = payload
54
- }
55
- }
56
-
57
- /*
58
- * - Merge do payload com objetivo de enviar o payload completo de todos steps no stepper final
59
- * - É possível ir para um step especifico ou somente ir para o próximo.
60
- */
61
- function nextStep ({ payload = {} }) {
62
- Object.assign(values.value, payload)
63
-
64
- stepper.value.next()
65
- }
66
-
67
- function isDone (stepIndex) {
68
- return model.value > stepIndex + 1
69
- }
70
-
71
- function getStepName (stepIndex) {
72
- return stepIndex + 1
73
- }
74
-
75
- provide('stepper', {
76
- stepperModel: model,
77
- formViewProps: defaultFormViewProps,
78
- goTo: step => stepper.value.goTo(step),
79
- next: nextStep,
80
- previous: () => stepper.value.previous(),
81
- setStepProps,
82
- stepsValues: values
83
- })
84
- </script>
1
+ <template>
2
+ <qas-stepper ref="stepper" v-model="model" v-bind="stepperProps">
3
+ <template #default>
4
+ <q-step v-for="(step, stepIndex) in props.steps" :key="stepIndex" :done="isDone(stepIndex)" :name="getStepName({ step, stepIndex })" v-bind="stepPropsList[stepIndex]">
5
+ <component :is="step.component" />
6
+ </q-step>
7
+ </template>
8
+ </qas-stepper>
9
+ </template>
10
+
11
+ <script setup>
12
+ import { ref, provide, computed } from 'vue'
13
+
14
+ defineOptions({ name: 'QasStepperFormView' })
15
+
16
+ const props = defineProps({
17
+ steps: {
18
+ type: Array,
19
+ required: true
20
+ },
21
+
22
+ formViewProps: {
23
+ type: Object,
24
+ default: () => ({})
25
+ },
26
+
27
+ stepperProps: {
28
+ type: Object,
29
+ default: () => ({})
30
+ }
31
+ })
32
+
33
+ defineExpose({ setStepProps })
34
+
35
+ const model = defineModel({ type: [Number, String], default: 1 })
36
+
37
+ const values = ref({})
38
+ const stepPropsList = ref([])
39
+ const stepper = ref(null)
40
+
41
+ setStepProps({ payload: [...props.steps.map(({ stepProps }) => stepProps)] })
42
+
43
+ const defaultFormViewProps = computed(() => {
44
+ return {
45
+ useBoundary: false,
46
+ useNotifySuccess: false,
47
+ ...props.formViewProps
48
+ }
49
+ })
50
+
51
+ function setStepProps ({ step, payload }) {
52
+ if (step) {
53
+ stepPropsList.value[step - 1] = payload
54
+ } else {
55
+ stepPropsList.value = payload
56
+ }
57
+ }
58
+
59
+ /*
60
+ * - Merge do payload com objetivo de enviar o payload completo de todos steps no stepper final
61
+ * - É possível ir para um step especifico ou somente ir para o próximo.
62
+ */
63
+ function nextStep ({ payload = {} }) {
64
+ Object.assign(values.value, payload)
65
+
66
+ stepper.value.next()
67
+ }
68
+
69
+ function isDone (stepIndex) {
70
+ return model.value > stepIndex + 1
71
+ }
72
+
73
+ function getStepName ({ step, stepIndex }) {
74
+ return step.name || stepIndex + 1
75
+ }
76
+
77
+ provide('stepper', {
78
+ stepperModel: model,
79
+ formViewProps: defaultFormViewProps,
80
+ goTo: step => stepper.value.goTo(step),
81
+ next: nextStep,
82
+ previous: () => stepper.value.previous(),
83
+ setStepProps,
84
+ stepsValues: values
85
+ })
86
+ </script>