@bildvitta/quasar-ui-asteroid 3.20.0-beta.2 → 3.20.0-beta.21
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.
- package/package.json +3 -3
- package/src/asteroid.js +8 -1
- package/src/components/actions/QasActions.vue +12 -2
- package/src/components/actions-menu/QasActionsMenu.vue +18 -5
- package/src/components/alert/QasAlert.vue +89 -64
- package/src/components/app-user/QasAppUser.vue +2 -1
- package/src/components/board-generator/QasBoardGenerator.vue +883 -162
- package/src/components/board-generator/QasBoardGenerator.yml +83 -2
- package/src/components/board-generator/private/PvBoardGeneratorCardsContainer.vue +25 -0
- package/src/components/box/QasBox.vue +16 -3
- package/src/components/box/QasBox.yml +10 -0
- package/src/components/btn/QasBtn.vue +27 -5
- package/src/components/btn/QasBtn.yml +10 -1
- package/src/components/btn-dropdown/QasBtnDropdown.vue +13 -1
- package/src/components/card/QasCard.vue +97 -25
- package/src/components/card/QasCard.yml +10 -0
- package/src/components/card-image/QasCardImage.vue +10 -1
- package/src/components/card-image/QasCardImage.yml +5 -0
- package/src/components/chart-view/QasChartView.vue +4 -3
- package/src/components/chart-view/QasChartView.yml +5 -0
- package/src/components/checkbox/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/src/components/copy/QasCopy.vue +6 -1
- package/src/components/copy/QasCopy.yml +5 -0
- package/src/components/date-time-input/QasDateTimeInput.vue +30 -6
- package/src/components/dialog/QasDialog.vue +308 -91
- package/src/components/dialog/QasDialog.yml +51 -23
- package/src/components/dialog/composables/use-cancel.js +1 -1
- package/src/components/dialog/composables/use-dynamic-components.js +2 -2
- package/src/components/dialog/composables/use-ok.js +1 -0
- package/src/components/dialog-router/QasDialogRouter.vue +1 -1
- package/src/components/drawer/QasDrawer.vue +76 -26
- package/src/components/drawer/QasDrawer.yml +10 -0
- package/src/components/expansion-item/QasExpansionItem.yml +5 -0
- package/src/components/filters/QasFilters.vue +2 -1
- package/src/components/filters/private/PvFiltersActions.vue +79 -13
- package/src/components/form-generator/QasFormGenerator.vue +8 -1
- package/src/components/form-generator/QasFormGenerator.yml +10 -0
- package/src/components/form-view/QasFormView.vue +20 -11
- package/src/components/form-view/QasFormView.yml +6 -0
- package/src/components/gallery/composables/use-delete.js +2 -3
- package/src/components/gallery/private/PvGalleryCarouselDialog.vue +8 -7
- package/src/components/grid-item/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/src/components/header/QasHeader.vue +66 -11
- package/src/components/header/QasHeader.yml +16 -1
- package/src/components/infinite-scroll/QasInfiniteScroll.vue +1 -1
- package/src/components/label/QasLabel.vue +3 -1
- package/src/components/layout/QasLayout.vue +16 -1
- package/src/components/layout/private/PvLayoutNotificationsDrawer.vue +2 -1
- package/src/components/layout/private/PvLayoutOverlayDrawer.vue +4 -2
- package/src/components/lazy-loading-components/QasLazyLoadingComponents.vue +262 -0
- package/src/components/lazy-loading-components/QasLazyLoadingComponents.yml +49 -0
- package/src/components/list-view/QasListView.vue +12 -4
- package/src/components/list-view/QasListView.yml +12 -0
- package/src/components/page-header/QasPageHeader.vue +49 -3
- package/src/components/page-header/QasPageHeader.yml +5 -0
- package/src/components/router-link/QasRouterLink.vue +72 -0
- package/src/components/router-link/QasRouterLink.yml +24 -0
- package/src/components/search-box/QasSearchBox.vue +1 -1
- package/src/components/select/QasSelect.vue +8 -1
- package/src/components/select-list-dialog/QasSelectListDialog.vue +40 -20
- package/src/components/select-list-dialog/QasSelectListDialog.yml +14 -2
- package/src/components/signature-uploader/QasSignatureUploader.vue +5 -18
- package/src/components/single-view/QasSingleView.vue +2 -2
- package/src/components/skeleton/QasSkeleton.vue +139 -0
- package/src/components/skeleton/QasSkeleton.yml +48 -0
- package/src/components/sortable/QasSortable.vue +1 -1
- package/src/components/stepper/QasStepper.vue +24 -2
- package/src/components/table-generator/QasTableGenerator.vue +186 -35
- package/src/components/table-generator/QasTableGenerator.yml +6 -1
- package/src/components/tabs-generator/QasTabsGenerator.vue +14 -3
- package/src/components/tabs-generator/QasTabsGenerator.yml +5 -1
- package/src/components/text-truncate/QasTextTruncate.vue +61 -12
- package/src/components/text-truncate/QasTextTruncate.yml +5 -0
- package/src/components/toggle-visibility/QasToggleVisibility.vue +2 -1
- package/src/components/tooltip/QasTooltip.vue +6 -1
- package/src/components/tree-generator/QasTreeGenerator.vue +4 -6
- package/src/components/uploader/QasUploader.vue +12 -2
- package/src/composables/private/use-view.js +1 -1
- package/src/composables/use-overlay-navigation.js +116 -10
- package/src/composables/use-screen.js +17 -1
- package/src/css/components/button.scss +82 -3
- package/src/css/components/item.scss +6 -0
- package/src/css/utils/background.scss +5 -0
- package/src/css/utils/border.scss +6 -0
- package/src/css/utils/container.scss +4 -3
- package/src/css/utils/text.scss +9 -0
- package/src/helpers/copy-to-clipboard.js +2 -1
- package/src/helpers/filters.js +1 -1
- package/src/helpers/promise-handler.js +2 -1
- package/src/helpers/set-scroll-gradient.js +31 -8
- package/src/helpers/set-scroll-on-grab.js +10 -3
- package/src/index.scss +1 -0
- package/src/mixins/search-filter.js +7 -1
- package/src/plugins/delete/Delete.js +7 -9
- package/src/plugins/delete/Delete.yml +1 -1
- package/src/plugins/dialog/Dialog.yml +1 -1
- package/src/plugins/notify-error/NotifyError.yml +1 -1
- package/src/plugins/notify-success/NotifySuccess.yml +1 -1
- package/src/plugins/screen/Screen.js +17 -1
- package/src/plugins/screen/Screen.yml +5 -1
- package/src/vue-plugin.js +5 -7
- package/src/plugins/index.js +0 -5
|
@@ -1,28 +1,32 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="app-select-list-dialog full-width">
|
|
3
|
-
<
|
|
3
|
+
<slot name="container-header" :toggle-dialog>
|
|
4
|
+
<qas-header v-bind="headerProps" />
|
|
5
|
+
</slot>
|
|
4
6
|
|
|
5
7
|
<component
|
|
6
8
|
:is="containerListComponent"
|
|
7
9
|
v-if="canShowContainerList"
|
|
8
10
|
class="q-mt-md relative-position"
|
|
9
11
|
>
|
|
10
|
-
<span class="text-grey-10 text-subtitle1">
|
|
11
|
-
{{ props.listLabel }}
|
|
12
|
-
</span>
|
|
13
|
-
|
|
14
12
|
<slot name="selected-content">
|
|
15
|
-
<
|
|
16
|
-
<
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
<q-item-
|
|
22
|
-
<
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
13
|
+
<qas-search-box v-model:results="searchedResults" v-bind="searchSelectedItemsBoxProps" class="q-mt-md">
|
|
14
|
+
<span class="text-grey-10 text-subtitle1">
|
|
15
|
+
{{ props.listLabel }}
|
|
16
|
+
</span>
|
|
17
|
+
|
|
18
|
+
<q-virtual-scroll #default="{ item, index }" class="app-select-list-dialog__list" :items="searchedResults" separator>
|
|
19
|
+
<q-item class="q-px-none text-body1 text-grey-8">
|
|
20
|
+
<q-item-section>
|
|
21
|
+
{{ item.label }}
|
|
22
|
+
</q-item-section>
|
|
23
|
+
|
|
24
|
+
<q-item-section avatar>
|
|
25
|
+
<qas-btn v-bind="getRemoveButtonProps({ index, option: item })" />
|
|
26
|
+
</q-item-section>
|
|
27
|
+
</q-item>
|
|
28
|
+
</q-virtual-scroll>
|
|
29
|
+
</qas-search-box>
|
|
26
30
|
</slot>
|
|
27
31
|
|
|
28
32
|
<q-inner-loading :showing="props.loading">
|
|
@@ -50,7 +54,7 @@
|
|
|
50
54
|
|
|
51
55
|
<template #description>
|
|
52
56
|
<slot name="dialog-description">
|
|
53
|
-
<div v-if="dialogDescription" class="q-mb-
|
|
57
|
+
<div v-if="dialogDescription" class="q-mb-md">
|
|
54
58
|
{{ dialogDescription }}
|
|
55
59
|
</div>
|
|
56
60
|
|
|
@@ -69,6 +73,7 @@ import QasHeader from '../header/QasHeader.vue'
|
|
|
69
73
|
import QasBtn from '../btn/QasBtn.vue'
|
|
70
74
|
import QasDialog from '../dialog/QasDialog.vue'
|
|
71
75
|
import QasSelectList from '../select-list/QasSelectList.vue'
|
|
76
|
+
import QasSearchBox from '../search-box/QasSearchBox.vue'
|
|
72
77
|
|
|
73
78
|
import { computed, ref, watch, useSlots, inject } from 'vue'
|
|
74
79
|
|
|
@@ -130,6 +135,11 @@ const props = defineProps({
|
|
|
130
135
|
|
|
131
136
|
useLazyLoading: {
|
|
132
137
|
type: Boolean
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
searchPlaceholder: {
|
|
141
|
+
default: 'Pesquisar...',
|
|
142
|
+
type: String
|
|
133
143
|
}
|
|
134
144
|
})
|
|
135
145
|
|
|
@@ -172,6 +182,7 @@ defineExpose({ add, removeAll, remove, toggleDialog })
|
|
|
172
182
|
|
|
173
183
|
// refs
|
|
174
184
|
const model = ref([...props.modelValue])
|
|
185
|
+
const searchedResults = ref([])
|
|
175
186
|
|
|
176
187
|
// computeds
|
|
177
188
|
const hasError = computed(() => Array.isArray(props.error) ? !!props.error.length : !!props.error)
|
|
@@ -208,6 +219,15 @@ const hasLazyLoading = computed(() => {
|
|
|
208
219
|
return props.useLazyLoading || !!props.selectListProps?.searchBoxProps?.useLazyLoading
|
|
209
220
|
})
|
|
210
221
|
|
|
222
|
+
const searchSelectedItemsBoxProps = computed(() => {
|
|
223
|
+
return {
|
|
224
|
+
fuseOptions: { keys: ['label'] },
|
|
225
|
+
list: selectedOptions.value,
|
|
226
|
+
useEmptyResults: false,
|
|
227
|
+
placeholder: props.searchPlaceholder
|
|
228
|
+
}
|
|
229
|
+
})
|
|
230
|
+
|
|
211
231
|
watch(() => props.modelValue, newValue => {
|
|
212
232
|
model.value = [...newValue]
|
|
213
233
|
})
|
|
@@ -227,7 +247,7 @@ function getDialogSlot (name) {
|
|
|
227
247
|
|
|
228
248
|
// ------------------------- composable functions ------------------------------
|
|
229
249
|
function useList () {
|
|
230
|
-
const filteredOptions = ref(props.options)
|
|
250
|
+
const filteredOptions = ref([...props.options])
|
|
231
251
|
|
|
232
252
|
const selectedOptions = computed(() => {
|
|
233
253
|
const options = []
|
|
@@ -323,8 +343,8 @@ function useSelectDialog () {
|
|
|
323
343
|
|
|
324
344
|
const defaultDialogProps = computed(() => {
|
|
325
345
|
return {
|
|
326
|
-
|
|
327
|
-
|
|
346
|
+
size: 'md',
|
|
347
|
+
title: 'Adicionar itens',
|
|
328
348
|
...props.dialogProps,
|
|
329
349
|
|
|
330
350
|
onBeforeShow: event => {
|
|
@@ -55,6 +55,11 @@ props:
|
|
|
55
55
|
type: Array
|
|
56
56
|
model: true
|
|
57
57
|
|
|
58
|
+
search-placeholder:
|
|
59
|
+
desc: Placeholder do campo de busca.
|
|
60
|
+
default: Pesquisar...
|
|
61
|
+
type: String
|
|
62
|
+
|
|
58
63
|
select-list-model:
|
|
59
64
|
desc: Model dos itens selecionados dentro do dialog.
|
|
60
65
|
type: Array
|
|
@@ -64,8 +69,8 @@ props:
|
|
|
64
69
|
|
|
65
70
|
select-list-props:
|
|
66
71
|
desc: Propriedades repassadas para o componente QasSelectList.
|
|
67
|
-
default:
|
|
68
|
-
type:
|
|
72
|
+
default: {}
|
|
73
|
+
type: Object
|
|
69
74
|
|
|
70
75
|
use-lazy-loading:
|
|
71
76
|
desc: O componente precisa saber se o lazy-loading esta habilitado para este componente, e caso esteja usando customização pelos slots do "dialog-description", é necessário informar por esta prop.
|
|
@@ -82,6 +87,13 @@ slots:
|
|
|
82
87
|
dialog-header:
|
|
83
88
|
desc: Slot para substituir cabeçalho do dialog.
|
|
84
89
|
|
|
90
|
+
container-header:
|
|
91
|
+
desc: Slot para personalizar o header do componente dentro do box.
|
|
92
|
+
scope:
|
|
93
|
+
toggle-dialog:
|
|
94
|
+
desc: Função para abertura/fechamento do dialog do select list.
|
|
95
|
+
type: Function
|
|
96
|
+
|
|
85
97
|
selected-content:
|
|
86
98
|
desc: Slot para personalizar o conteúdo dos itens adicionados.
|
|
87
99
|
|
|
@@ -3,12 +3,8 @@
|
|
|
3
3
|
<qas-uploader ref="uploader" v-model="model" :add-button-fn="openDialog" :use-resize="false" v-bind="defaultUploaderProps" />
|
|
4
4
|
|
|
5
5
|
<qas-dialog v-model="isOpenedDialog" v-bind="defaultDialogProps">
|
|
6
|
-
<template #header>
|
|
7
|
-
<div class="text-bold text-center">Insira sua assinatura digital no campo abaixo</div>
|
|
8
|
-
</template>
|
|
9
|
-
|
|
10
6
|
<template #description>
|
|
11
|
-
<div
|
|
7
|
+
<div>
|
|
12
8
|
<qas-signature-pad ref="signaturePadModal" v-model:empty="isEmpty" :height="signaturePadHeight" />
|
|
13
9
|
</div>
|
|
14
10
|
</template>
|
|
@@ -22,7 +18,7 @@ import QasUploader from '../uploader/QasUploader.vue'
|
|
|
22
18
|
import QasSignaturePad from '../signature-pad/QasSignaturePad.vue'
|
|
23
19
|
|
|
24
20
|
import { base64ToBlob } from '../../helpers'
|
|
25
|
-
import
|
|
21
|
+
import NotifyError from '../../plugins/notify-error/NotifyError.js'
|
|
26
22
|
|
|
27
23
|
export default {
|
|
28
24
|
name: 'QasSignatureUploader',
|
|
@@ -82,10 +78,11 @@ export default {
|
|
|
82
78
|
|
|
83
79
|
defaultDialogProps () {
|
|
84
80
|
return {
|
|
85
|
-
|
|
81
|
+
title: 'Assinatura digital',
|
|
82
|
+
size: 'md',
|
|
86
83
|
...this.dialogProps,
|
|
87
84
|
ok: {
|
|
88
|
-
label: '
|
|
85
|
+
label: 'Assinar',
|
|
89
86
|
onClick: () => this.getSignatureData()
|
|
90
87
|
}
|
|
91
88
|
}
|
|
@@ -111,16 +108,6 @@ export default {
|
|
|
111
108
|
return sizes.true
|
|
112
109
|
},
|
|
113
110
|
|
|
114
|
-
signaturePadWidth () {
|
|
115
|
-
const sizes = {
|
|
116
|
-
[this.$qas.screen.isSmall]: { width: '100%' },
|
|
117
|
-
[this.$qas.screen.isMedium]: { width: '570px' },
|
|
118
|
-
[this.$qas.screen.isLarge]: { width: '350px' }
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
return sizes.true
|
|
122
|
-
},
|
|
123
|
-
|
|
124
111
|
uploaderScope () {
|
|
125
112
|
return this.$refs?.uploader?.uploader
|
|
126
113
|
}
|
|
@@ -71,7 +71,7 @@ const qas = inject('qas')
|
|
|
71
71
|
// composables
|
|
72
72
|
const route = useRoute()
|
|
73
73
|
|
|
74
|
-
const { isBackgroundOverlay } = useOverlayNavigation()
|
|
74
|
+
const { isBackgroundOverlay, route: overlayRoute } = useOverlayNavigation()
|
|
75
75
|
|
|
76
76
|
const {
|
|
77
77
|
// state
|
|
@@ -96,7 +96,7 @@ const {
|
|
|
96
96
|
defineExpose({ fetchSingle, fetchHandler })
|
|
97
97
|
|
|
98
98
|
// computed
|
|
99
|
-
const id = computed(() => props.customId ||
|
|
99
|
+
const id = computed(() => props.customId || overlayRoute.value.params.id)
|
|
100
100
|
|
|
101
101
|
const resultModel = computed(() => {
|
|
102
102
|
if (props.useStore) return qas.getGetter({ entity: props.entity, key: 'byId' })(id.value) || {}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<q-skeleton class="qas-skeleton" v-bind="skeletonProps" />
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script setup>
|
|
6
|
+
import { computed, useAttrs } from 'vue'
|
|
7
|
+
|
|
8
|
+
defineOptions({ name: 'QasSkeleton', inheritAttrs: false })
|
|
9
|
+
|
|
10
|
+
const props = defineProps({
|
|
11
|
+
gutter: {
|
|
12
|
+
type: String,
|
|
13
|
+
default: undefined
|
|
14
|
+
},
|
|
15
|
+
|
|
16
|
+
width: {
|
|
17
|
+
type: String,
|
|
18
|
+
default: undefined
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
height: {
|
|
22
|
+
type: String,
|
|
23
|
+
default: undefined
|
|
24
|
+
},
|
|
25
|
+
|
|
26
|
+
minHeight: {
|
|
27
|
+
type: String,
|
|
28
|
+
default: undefined
|
|
29
|
+
},
|
|
30
|
+
|
|
31
|
+
maxWidth: {
|
|
32
|
+
type: String,
|
|
33
|
+
default: undefined
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
size: {
|
|
37
|
+
type: String,
|
|
38
|
+
default: undefined
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
type: {
|
|
42
|
+
type: String,
|
|
43
|
+
default: undefined
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
useContrast: {
|
|
47
|
+
type: Boolean
|
|
48
|
+
},
|
|
49
|
+
|
|
50
|
+
useOverlay: {
|
|
51
|
+
type: Boolean
|
|
52
|
+
}
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
// composables
|
|
56
|
+
const attrs = useAttrs()
|
|
57
|
+
|
|
58
|
+
// computeds
|
|
59
|
+
const skeletonProps = computed(() => {
|
|
60
|
+
const defaultCustomProps = {
|
|
61
|
+
QasBadge: {
|
|
62
|
+
width: props.width || '60px',
|
|
63
|
+
height: props.height || '24px'
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
QasActionsMenu: {
|
|
67
|
+
width: props.width || '80px',
|
|
68
|
+
height: props.height || '24px'
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
QasCheckbox: {
|
|
72
|
+
size: '18px'
|
|
73
|
+
},
|
|
74
|
+
|
|
75
|
+
QasBtn: {
|
|
76
|
+
width: props.width || '130px',
|
|
77
|
+
height: '24px'
|
|
78
|
+
},
|
|
79
|
+
|
|
80
|
+
QasToggleVisibility: {
|
|
81
|
+
width: props.width || '140px'
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
QasTextTruncate: {
|
|
85
|
+
width: props.width || '200px'
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
QasStatus: {
|
|
89
|
+
size: '16px',
|
|
90
|
+
type: 'circle'
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const actionTypes = [
|
|
95
|
+
'QasCheckbox',
|
|
96
|
+
'QasBtn',
|
|
97
|
+
'QasToggleVisibility',
|
|
98
|
+
'QasActionsMenu'
|
|
99
|
+
]
|
|
100
|
+
|
|
101
|
+
const classes = {
|
|
102
|
+
[`qas-skeleton--${props.gutter}`]: !!props.gutter,
|
|
103
|
+
'bg-blue-grey-4': props.useContrast || actionTypes.includes(props.type),
|
|
104
|
+
'qas-skeleton--overlay': props.useOverlay
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Se o tipo for um dos tipos customizados, usa as propriedades definidas, não podemos passar por
|
|
109
|
+
* exemplo "QasBtn" na prop "type" para o QSkeleton, caso seja passado uma prop type que não seja
|
|
110
|
+
* custom, passa o valor normalmente.
|
|
111
|
+
*/
|
|
112
|
+
const type = defaultCustomProps[props.type] ? defaultCustomProps[props.type].type : props.type
|
|
113
|
+
|
|
114
|
+
return {
|
|
115
|
+
animation: 'blink',
|
|
116
|
+
size: props.size,
|
|
117
|
+
type,
|
|
118
|
+
class: [classes, attrs.class],
|
|
119
|
+
width: props.width,
|
|
120
|
+
height: props.height,
|
|
121
|
+
...defaultCustomProps[props.type],
|
|
122
|
+
style: {
|
|
123
|
+
...(props.maxWidth && { maxWidth: props.maxWidth }),
|
|
124
|
+
...(props.minHeight && { minHeight: props.minHeight })
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
})
|
|
128
|
+
</script>
|
|
129
|
+
|
|
130
|
+
<style lang="scss">
|
|
131
|
+
.qas-skeleton {
|
|
132
|
+
&--overlay {
|
|
133
|
+
top: 0 !important;
|
|
134
|
+
width: 100%;
|
|
135
|
+
bottom: 0 !important;
|
|
136
|
+
position: absolute;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
</style>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
type: component
|
|
2
|
+
|
|
3
|
+
meta:
|
|
4
|
+
desc: Componente wrapper do "QSkeleton" que facilita a criação de skeletons com padrões pré-definidos para componentes do Asteroid.
|
|
5
|
+
|
|
6
|
+
props:
|
|
7
|
+
gutter:
|
|
8
|
+
desc: Adiciona espaçamento (padding) no skeleton quando usado como overlay.
|
|
9
|
+
type: String
|
|
10
|
+
examples: ['sm', 'md', 'lg', 'xl']
|
|
11
|
+
|
|
12
|
+
height:
|
|
13
|
+
desc: Altura do skeleton.
|
|
14
|
+
type: String
|
|
15
|
+
examples: ['50px']
|
|
16
|
+
|
|
17
|
+
max-width:
|
|
18
|
+
desc: Largura máxima do skeleton.
|
|
19
|
+
type: String
|
|
20
|
+
examples: ['300px']
|
|
21
|
+
|
|
22
|
+
min-height:
|
|
23
|
+
desc: Altura mínima do skeleton.
|
|
24
|
+
type: String
|
|
25
|
+
examples: ['200px']
|
|
26
|
+
|
|
27
|
+
size:
|
|
28
|
+
desc: Tamanho do skeleton (usado para tipos circulares ou quadrados).
|
|
29
|
+
type: String
|
|
30
|
+
examples: ['50px']
|
|
31
|
+
|
|
32
|
+
type:
|
|
33
|
+
desc: Tipo do skeleton. Pode ser um tipo padrão do Quasar ou um dos tipos personalizados do Asteroid ("QasBadge", "QasActionsMenu", "QasCheckbox", "QasBtn", "QasToggleVisibility", "QasTextTruncate", "QasStatus").
|
|
34
|
+
type: String
|
|
35
|
+
examples: ['text', 'QasBtn', 'rect']
|
|
36
|
+
|
|
37
|
+
use-overlay:
|
|
38
|
+
desc: Define se o skeleton deve se comportar como um overlay (posicionamento absoluto cobrindo o pai).
|
|
39
|
+
type: Boolean
|
|
40
|
+
|
|
41
|
+
use-contrast:
|
|
42
|
+
desc: Define se o skeleton deve ter a cor de fundo mais escura ("bg-blue-grey-4"), geralmente usado para títulos ou botões.
|
|
43
|
+
type: Boolean
|
|
44
|
+
|
|
45
|
+
width:
|
|
46
|
+
desc: Largura do skeleton.
|
|
47
|
+
type: String
|
|
48
|
+
examples: ['100px', '100%']
|
|
@@ -9,7 +9,7 @@ import { Loading, extend } from 'quasar'
|
|
|
9
9
|
import Sortable from 'sortablejs'
|
|
10
10
|
import { getAction } from '@bildvitta/store-adapter'
|
|
11
11
|
|
|
12
|
-
import
|
|
12
|
+
import NotifyError from '../../plugins/notify-error/NotifyError.js'
|
|
13
13
|
|
|
14
14
|
export default {
|
|
15
15
|
name: 'QasSortable',
|
|
@@ -206,6 +206,27 @@ function previous () {
|
|
|
206
206
|
border-radius: var(--qas-generic-border-radius);
|
|
207
207
|
}
|
|
208
208
|
|
|
209
|
+
.q-stepper__tab {
|
|
210
|
+
/*
|
|
211
|
+
* Por padrão o quasar sempre deixa as demais linhas com o mesmo tamanho, exceto a primeira e a última, que são
|
|
212
|
+
* maiores devido terem alinhamento inicial e final respectivamente, enquanto as demais possuem alinhamento
|
|
213
|
+
* central. Para equalizar visualmente os tamanhos, é necessário setar uma proporção de flex diferente para a
|
|
214
|
+
* primeira/última tab e para as tabs do meio.
|
|
215
|
+
*
|
|
216
|
+
* Proporção 2:3 para equalizar visualmente os tamanhos:
|
|
217
|
+
* - Primeira/última tab: flex 2 (possuem apenas meia linha)
|
|
218
|
+
* - Tabs do meio: flex 3 (possuem linha completa dos dois lados)
|
|
219
|
+
*/
|
|
220
|
+
&:first-child,
|
|
221
|
+
&:last-child {
|
|
222
|
+
flex: 2;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
&:not(:first-child):not(:last-child) {
|
|
226
|
+
flex: 3;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
209
230
|
.q-stepper {
|
|
210
231
|
&__tab {
|
|
211
232
|
&--done {
|
|
@@ -223,9 +244,10 @@ function previous () {
|
|
|
223
244
|
}
|
|
224
245
|
}
|
|
225
246
|
|
|
226
|
-
// Seta a cor do after da linha quando a step está finalizada, é a primeira step ou a próxima é ativa.
|
|
247
|
+
// Seta a cor do after da linha quando a step está finalizada, é a primeira step ou a próxima é ativa ou finalizada.
|
|
227
248
|
&:first-child,
|
|
228
|
-
&:has(+ .q-stepper__tab.q-stepper__tab--active)
|
|
249
|
+
&:has(+ .q-stepper__tab.q-stepper__tab--active),
|
|
250
|
+
&:has(+ .q-stepper__tab.q-stepper__tab--done) {
|
|
229
251
|
.q-stepper__line::after {
|
|
230
252
|
background-color: var(--q-primary);
|
|
231
253
|
}
|