@bildvitta/quasar-ui-asteroid 3.5.0-beta.11 → 3.5.0-beta.12
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 +1 -1
- package/src/components/actions-menu/QasActionsMenu.vue +2 -3
- package/src/components/actions-menu/QasActionsMenu.yml +4 -4
- package/src/components/alert/QasAlert.vue +1 -1
- package/src/components/app-bar/QasAppBar.vue +1 -1
- package/src/components/app-user/QasAppUser.vue +3 -3
- package/src/components/avatar/QasAvatar.vue +1 -1
- package/src/components/avatar/QasAvatar.yml +1 -1
- package/src/components/card/QasCard.vue +2 -2
- package/src/components/copy/QasCopy.vue +1 -1
- package/src/components/copy/QasCopy.yml +1 -1
- package/src/components/date-time-input/QasDateTimeInput.vue +67 -6
- package/src/components/dialog/QasDialog.vue +1 -1
- package/src/components/filters/QasFilters.vue +7 -7
- package/src/components/gallery/QasGallery.vue +3 -3
- package/src/components/gallery/private/PvGalleryCarouselDialog.vue +3 -3
- package/src/components/header-actions/QasHeaderActions.vue +62 -0
- package/src/components/header-actions/QasHeaderActions.yml +26 -0
- package/src/components/list-items/QasListItems.vue +1 -1
- package/src/components/list-items/QasListItems.yml +1 -1
- package/src/components/nested-fields/QasNestedFields.vue +4 -4
- package/src/components/nested-fields/QasNestedFields.yml +2 -2
- package/src/components/page-header/QasPageHeader.vue +92 -17
- package/src/components/page-header/QasPageHeader.yml +19 -1
- package/src/components/pagination/QasPagination.vue +12 -1
- package/src/components/password-input/QasPasswordInput.vue +1 -1
- package/src/components/search-box/QasSearchBox.vue +3 -3
- package/src/components/select/QasSelect.vue +6 -5
- package/src/components/select-list/QasSelectList.vue +1 -1
- package/src/components/signature-pad/QasSignaturePad.vue +1 -1
- package/src/components/signature-uploader/QasSignatureUploader.vue +1 -1
- package/src/components/single-view/QasSingleView.vue +1 -1
- package/src/components/table-generator/QasTableGenerator.vue +29 -4
- package/src/components/tabs-generator/QasTabsGenerator.vue +140 -37
- package/src/components/tabs-generator/QasTabsGenerator.yml +4 -24
- package/src/components/tabs-generator/private/PvTabsGeneratorStatus.vue +32 -0
- package/src/components/transfer/QasTransfer.vue +2 -2
- package/src/components/tree-generator/QasTreeGenerator.vue +4 -4
- package/src/components/uploader/QasUploader.vue +8 -8
- package/src/css/components/base.scss +8 -0
- package/src/css/mixins/index.scss +1 -0
- package/src/css/mixins/set-typography.scss +8 -0
- package/src/css/variables/typography.scss +1 -1
- package/src/plugins/notify-error/NotifyError.js +1 -1
- package/src/plugins/notify-success/NotifySuccess.js +1 -1
- package/src/vue-plugin.js +3 -0
package/package.json
CHANGED
|
@@ -34,7 +34,7 @@ export default {
|
|
|
34
34
|
|
|
35
35
|
props: {
|
|
36
36
|
icon: {
|
|
37
|
-
default: '
|
|
37
|
+
default: 'sym_r_more_vert',
|
|
38
38
|
type: String
|
|
39
39
|
},
|
|
40
40
|
|
|
@@ -55,7 +55,7 @@ export default {
|
|
|
55
55
|
|
|
56
56
|
deleteIcon: {
|
|
57
57
|
type: String,
|
|
58
|
-
default: '
|
|
58
|
+
default: 'sym_r_delete'
|
|
59
59
|
},
|
|
60
60
|
|
|
61
61
|
deleteProps: {
|
|
@@ -64,7 +64,6 @@ export default {
|
|
|
64
64
|
},
|
|
65
65
|
|
|
66
66
|
useLabelOnSmallScreen: {
|
|
67
|
-
default: true,
|
|
68
67
|
type: Boolean
|
|
69
68
|
}
|
|
70
69
|
},
|
|
@@ -6,7 +6,7 @@ meta:
|
|
|
6
6
|
props:
|
|
7
7
|
delete-icon:
|
|
8
8
|
desc: Ícone do botão de deletar.
|
|
9
|
-
default:
|
|
9
|
+
default: sym_r_delete
|
|
10
10
|
type: String
|
|
11
11
|
|
|
12
12
|
delete-label:
|
|
@@ -21,7 +21,7 @@ props:
|
|
|
21
21
|
|
|
22
22
|
icon:
|
|
23
23
|
desc: Ícone do botão.
|
|
24
|
-
default:
|
|
24
|
+
default: sym_r_more_vert
|
|
25
25
|
type: String
|
|
26
26
|
examples: [start, end, between, around, center]
|
|
27
27
|
|
|
@@ -32,7 +32,7 @@ props:
|
|
|
32
32
|
examples: [
|
|
33
33
|
"{
|
|
34
34
|
delete: {
|
|
35
|
-
icon: '
|
|
35
|
+
icon: 'sym_r_visibility',
|
|
36
36
|
label: 'Visualizar',
|
|
37
37
|
handler: () => alert('handler ativado')
|
|
38
38
|
}
|
|
@@ -56,7 +56,7 @@ slots:
|
|
|
56
56
|
examples: [
|
|
57
57
|
"
|
|
58
58
|
{
|
|
59
|
-
icon: '
|
|
59
|
+
icon: 'sym_r_delete',
|
|
60
60
|
label: 'Delete',
|
|
61
61
|
}
|
|
62
62
|
"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div v-if="model" class="bg-white q-pa-lg qas-alert relative-position rounded-borders" :class="classes">
|
|
3
|
-
<qas-btn class="absolute-top-right q-mr-md q-mt-sm" :color="color" dense flat icon="
|
|
3
|
+
<qas-btn class="absolute-top-right q-mr-md q-mt-sm" :color="color" dense flat icon="sym_r_close" rounded @click="close" />
|
|
4
4
|
|
|
5
5
|
<div class="q-gutter-md q-mr-lg">
|
|
6
6
|
<slot name="header">
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<q-header class="qas-app-bar shadow-2" height-hint="56">
|
|
3
3
|
<q-toolbar class="bg-white qas-app-bar__toolbar text-grey-9">
|
|
4
|
-
<qas-btn color="grey-7" dense flat icon="
|
|
4
|
+
<qas-btn color="grey-7" dense flat icon="sym_r_menu" round @click="toggleMenuDrawer" />
|
|
5
5
|
|
|
6
6
|
<q-toolbar-title>
|
|
7
7
|
<router-link class="flex items-center no-wrap text-no-decoration" :to="rootRoute">
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<q-list class="q-mt-sm">
|
|
21
21
|
<q-item v-close-popup :active="false" class="qas-app-user__menu-item" clickable :to="user.to">
|
|
22
22
|
<q-item-section avatar>
|
|
23
|
-
<q-icon name="
|
|
23
|
+
<q-icon name="sym_r_person" size="20px" />
|
|
24
24
|
</q-item-section>
|
|
25
25
|
|
|
26
26
|
<q-item-section>Editar</q-item-section>
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
<q-item v-if="hasNotifications" v-close-popup class="qas-app-user__menu-item" clickable>
|
|
30
30
|
<q-item-section avatar>
|
|
31
|
-
<q-icon name="
|
|
31
|
+
<q-icon name="sym_r_notifications" size="20px" />
|
|
32
32
|
</q-item-section>
|
|
33
33
|
|
|
34
34
|
<q-item-section>Notificações</q-item-section>
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
|
|
41
41
|
<q-item v-close-popup class="qas-app-user__menu-item" clickable @click="signOut">
|
|
42
42
|
<q-item-section avatar>
|
|
43
|
-
<q-icon name="
|
|
43
|
+
<q-icon name="sym_r_logout" size="20px" />
|
|
44
44
|
</q-item-section>
|
|
45
45
|
|
|
46
46
|
<q-item-section>Sair</q-item-section>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<q-card class="border-radius-lg column full-height overflow-hidden" :class="cardClasses">
|
|
4
4
|
<header v-if="useHeader" class="overflow-hidden relative-position w-full">
|
|
5
5
|
<slot name="header">
|
|
6
|
-
<q-carousel v-model="slideImage" animated class="cursor-pointer" height="205px" infinite :navigation="hasImages" navigation-icon="
|
|
6
|
+
<q-carousel v-model="slideImage" animated class="cursor-pointer" height="205px" infinite :navigation="hasImages" navigation-icon="sym_r_fiber_manual_record" swipeable>
|
|
7
7
|
<template #navigation-icon="{ active, btnProps, onClick }">
|
|
8
8
|
<qas-btn color="white" dense flat :icon="getNavigationIcon(active, btnProps)" round size="sm" @click="onClick" />
|
|
9
9
|
</template>
|
|
@@ -106,7 +106,7 @@ export default {
|
|
|
106
106
|
|
|
107
107
|
methods: {
|
|
108
108
|
getNavigationIcon (active, { icon }) {
|
|
109
|
-
return active ? '
|
|
109
|
+
return active ? 'sym_r_radio_button_checked' : icon
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<qas-input ref="input" v-bind="attributes" v-model="currentValue" :unmasked-value="false" @update:model-value="updateModelValue">
|
|
2
|
+
<qas-input ref="input" v-bind="attributes" v-model="currentValue" :unmasked-value="false" @blur="validateDateTimeOnBlur" @focus="resetError" @update:model-value="updateModelValue">
|
|
3
3
|
<template #append>
|
|
4
|
-
<q-icon v-if="!useTimeOnly" class="cursor-pointer" name="
|
|
4
|
+
<q-icon v-if="!useTimeOnly" class="cursor-pointer" name="sym_r_event">
|
|
5
5
|
<q-popup-proxy ref="dateProxy" transition-hide="scale" transition-show="scale">
|
|
6
6
|
<q-date v-model="currentValue" v-bind="dateProps" :mask="maskDate" @update:model-value="updateModelValue" />
|
|
7
7
|
</q-popup-proxy>
|
|
8
8
|
</q-icon>
|
|
9
9
|
|
|
10
|
-
<q-icon v-if="!useDateOnly" class="cursor-pointer q-ml-md" name="
|
|
10
|
+
<q-icon v-if="!useDateOnly" class="cursor-pointer q-ml-md" name="sym_r_access_time">
|
|
11
11
|
<q-popup-proxy ref="timeProxy" transition-hide="scale" transition-show="scale">
|
|
12
12
|
<q-time v-model="currentValue" v-bind="timeProps" format24h :mask="maskDate" @update:model-value="updateModelValue" />
|
|
13
13
|
</q-popup-proxy>
|
|
@@ -69,6 +69,9 @@ export default {
|
|
|
69
69
|
data () {
|
|
70
70
|
return {
|
|
71
71
|
currentValue: '',
|
|
72
|
+
error: false,
|
|
73
|
+
errorMessage: '',
|
|
74
|
+
hasInvalidDate: false,
|
|
72
75
|
lastValue: ''
|
|
73
76
|
}
|
|
74
77
|
},
|
|
@@ -78,6 +81,8 @@ export default {
|
|
|
78
81
|
const { modelValue, ...attributes } = this.$attrs
|
|
79
82
|
|
|
80
83
|
return {
|
|
84
|
+
error: this.error,
|
|
85
|
+
errorMessage: this.errorMessage,
|
|
81
86
|
...attributes,
|
|
82
87
|
mask: this.mask
|
|
83
88
|
}
|
|
@@ -131,6 +136,16 @@ export default {
|
|
|
131
136
|
this.currentValue = value
|
|
132
137
|
const valueLength = value?.replace?.(/_/g, '')?.length
|
|
133
138
|
|
|
139
|
+
this.error = this.validateDateAndTime(value)
|
|
140
|
+
|
|
141
|
+
if (this.error) {
|
|
142
|
+
this.hasInvalidDate = true
|
|
143
|
+
this.errorMessage = 'Data inválida.'
|
|
144
|
+
return
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
this.hasInvalidDate = false
|
|
148
|
+
|
|
134
149
|
if (value === '' || valueLength === this.mask.length) {
|
|
135
150
|
this.lastValue = this.useTimeOnly ? value : this.toISOString(value)
|
|
136
151
|
this.$emit('update:modelValue', this.lastValue)
|
|
@@ -146,9 +161,7 @@ export default {
|
|
|
146
161
|
},
|
|
147
162
|
|
|
148
163
|
toISOString (value) {
|
|
149
|
-
if (!value)
|
|
150
|
-
return ''
|
|
151
|
-
}
|
|
164
|
+
if (!value) return ''
|
|
152
165
|
|
|
153
166
|
if (this.useDateOnly && !this.useIso) {
|
|
154
167
|
return dateFn(date.extractDate(value, this.maskDate), 'yyyy-MM-dd')
|
|
@@ -172,6 +185,54 @@ export default {
|
|
|
172
185
|
this.useDateOnly ? newDate.slice(0, 23) : newDate,
|
|
173
186
|
this.maskDate
|
|
174
187
|
)
|
|
188
|
+
},
|
|
189
|
+
|
|
190
|
+
validateDateTimeOnBlur () {
|
|
191
|
+
const valueLength = this.currentValue?.replace?.(/_/g, '')?.length
|
|
192
|
+
|
|
193
|
+
// valida se o tamanho digitado é o tamanho que a mascara espera receber
|
|
194
|
+
this.error = !!((valueLength < this.mask.length || this.error) && valueLength)
|
|
195
|
+
|
|
196
|
+
if (this.error && !this.hasInvalidDate) {
|
|
197
|
+
this.errorMessage = 'Data incompleta.'
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if (this.hasInvalidDate) {
|
|
201
|
+
this.currentValue = ''
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
if (this.error || this.hasInvalidDate) {
|
|
205
|
+
this.$emit('update:modelValue', '')
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
|
|
209
|
+
validateDateAndTime (value) {
|
|
210
|
+
if (!value) return false
|
|
211
|
+
|
|
212
|
+
if (this.useDateOnly) return this.validateDateOnly(value)
|
|
213
|
+
if (this.useTimeOnly) return this.validateTimeOnly(value)
|
|
214
|
+
|
|
215
|
+
const [date, time] = value?.split(' ')
|
|
216
|
+
|
|
217
|
+
return this.validateDateOnly(date) || this.validateTimeOnly(time)
|
|
218
|
+
},
|
|
219
|
+
|
|
220
|
+
validateDateOnly (value = '') {
|
|
221
|
+
const [day, month] = value.split('/')
|
|
222
|
+
|
|
223
|
+
return day > 31 || month > 12
|
|
224
|
+
},
|
|
225
|
+
|
|
226
|
+
validateTimeOnly (value = '') {
|
|
227
|
+
const [hour, minute] = value.split(':')
|
|
228
|
+
|
|
229
|
+
return hour > 23 || minute > 59
|
|
230
|
+
},
|
|
231
|
+
|
|
232
|
+
resetError () {
|
|
233
|
+
if (!this.currentValue) {
|
|
234
|
+
this.error = false
|
|
235
|
+
}
|
|
175
236
|
}
|
|
176
237
|
}
|
|
177
238
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<slot name="header">
|
|
6
6
|
<div class="justify-between row">
|
|
7
7
|
<div class="text-bold text-h6">{{ card.title }}</div>
|
|
8
|
-
<qas-btn v-if="useCloseButton" v-close-popup dense flat icon="
|
|
8
|
+
<qas-btn v-if="useCloseButton" v-close-popup dense flat icon="sym_r_close" rounded />
|
|
9
9
|
</div>
|
|
10
10
|
</slot>
|
|
11
11
|
</q-card-section>
|
|
@@ -6,21 +6,21 @@
|
|
|
6
6
|
<q-form v-if="useSearch" @submit.prevent="filter()">
|
|
7
7
|
<qas-input v-model="search" class="bg-white q-px-sm qas-filters__input rounded-borders-sm shadow-2" data-cy="filters-search-input" :debounce="debounce" dense hide-bottom-space input-class="ellipsis text-grey-8" :outlined="false" :placeholder="searchPlaceholder" type="search">
|
|
8
8
|
<template #prepend>
|
|
9
|
-
<q-icon v-if="useSearchOnType" color="grey-8" name="
|
|
10
|
-
<qas-btn v-else color="grey-9" flat icon="
|
|
9
|
+
<q-icon v-if="useSearchOnType" color="grey-8" name="sym_r_search" />
|
|
10
|
+
<qas-btn v-else color="grey-9" flat icon="sym_r_search" padding="0" @click="filter()" />
|
|
11
11
|
</template>
|
|
12
12
|
|
|
13
13
|
<template #append>
|
|
14
|
-
<qas-btn v-if="hasSearch" class="q-mr-sm" color="grey-9" flat icon="
|
|
14
|
+
<qas-btn v-if="hasSearch" class="q-mr-sm" color="grey-9" flat icon="sym_r_clear" padding="0" size="sm" @click="clearSearch" />
|
|
15
15
|
|
|
16
|
-
<qas-btn v-if="useFilterButton" :color="filterButtonColor" data-cy="filters-btn" flat icon="
|
|
16
|
+
<qas-btn v-if="useFilterButton" :color="filterButtonColor" data-cy="filters-btn" flat icon="sym_r_tune" padding="0">
|
|
17
17
|
<q-menu anchor="center right" class="full-width" max-width="270px" self="top right">
|
|
18
18
|
<div v-if="isFetching" class="q-pa-xl text-center">
|
|
19
19
|
<q-spinner color="grey" size="2em" />
|
|
20
20
|
</div>
|
|
21
21
|
|
|
22
22
|
<div v-else-if="hasFetchError" class="q-pa-xl text-center">
|
|
23
|
-
<q-icon color="negative" name="
|
|
23
|
+
<q-icon color="negative" name="sym_r_warning" size="2em" />
|
|
24
24
|
</div>
|
|
25
25
|
|
|
26
26
|
<q-form v-else class="q-gutter-y-md q-pa-md" @submit.prevent="filter()">
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
|
|
54
54
|
<div v-if="hasChip" class="q-mt-md">
|
|
55
55
|
<!-- TODO rever com novo estilo -->
|
|
56
|
-
<q-chip v-for="(filterItem, key) in activeFilters" :key="key" color="white" :data-cy="`filters-${filterItem.value}-chip`" dense icon-remove="
|
|
56
|
+
<q-chip v-for="(filterItem, key) in activeFilters" :key="key" color="white" :data-cy="`filters-${filterItem.value}-chip`" dense icon-remove="sym_r_close" removable size="md" text-color="grey-8" @remove="removeFilter(filterItem)">{{ getChipValue(filterItem.value) }}</q-chip>
|
|
57
57
|
</div>
|
|
58
58
|
|
|
59
59
|
<slot :context="mx_context" :filter="filter" :filters="activeFilters" :remove-filter="removeFilter" />
|
|
@@ -162,7 +162,7 @@ export default {
|
|
|
162
162
|
},
|
|
163
163
|
|
|
164
164
|
debounce () {
|
|
165
|
-
return this.useSearchOnType ? '
|
|
165
|
+
return this.useSearchOnType ? '1200' : ''
|
|
166
166
|
},
|
|
167
167
|
|
|
168
168
|
fields () {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<div v-if="useDestroy">
|
|
15
15
|
<slot :destroy="onDestroy" :image="image" :index="index" name="destroy">
|
|
16
16
|
<qas-btn color="grey-9" dense :disabled="isDestroyDisabled(image)" flat round size="sm" @click="onDestroy(image, index)">
|
|
17
|
-
<q-icon name="
|
|
17
|
+
<q-icon name="sym_r_delete" size="xs" />
|
|
18
18
|
</qas-btn>
|
|
19
19
|
</slot>
|
|
20
20
|
</div>
|
|
@@ -58,12 +58,12 @@ export default {
|
|
|
58
58
|
props: {
|
|
59
59
|
carouselNextIcon: {
|
|
60
60
|
type: String,
|
|
61
|
-
default: '
|
|
61
|
+
default: 'sym_r_chevron_right'
|
|
62
62
|
},
|
|
63
63
|
|
|
64
64
|
carouselPreviousIcon: {
|
|
65
65
|
type: String,
|
|
66
|
-
default: '
|
|
66
|
+
default: 'sym_r_chevron_left'
|
|
67
67
|
},
|
|
68
68
|
|
|
69
69
|
initialSize: {
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
<qas-dialog v-model="model" :cancel="false" class="q-pa-xl" max-width="1100px" :ok="false" :persistent="false" use-full-max-width>
|
|
3
3
|
<template #header>
|
|
4
4
|
<div class="text-right">
|
|
5
|
-
<qas-btn v-close-popup dense flat icon="
|
|
5
|
+
<qas-btn v-close-popup dense flat icon="sym_r_close" rounded @click="close" />
|
|
6
6
|
</div>
|
|
7
7
|
</template>
|
|
8
8
|
|
|
9
9
|
<template #description>
|
|
10
|
-
<q-carousel v-model="imageIndexModel" animated :arrows="!$qas.screen.isSmall" control-text-color="primary" data-cy="gallery-carousel" :fullscreen="$qas.screen.isSmall" :height="carouselImageHeight" next-icon="
|
|
10
|
+
<q-carousel v-model="imageIndexModel" animated :arrows="!$qas.screen.isSmall" control-text-color="primary" data-cy="gallery-carousel" :fullscreen="$qas.screen.isSmall" :height="carouselImageHeight" next-icon="sym_r_chevron_right" prev-icon="sym_r_chevron_left" swipeable :thumbnails="!isSingleImage">
|
|
11
11
|
<q-carousel-slide v-for="(image, index) in images" :key="index" class="bg-no-repeat bg-size-contain" :data-cy="`gallery-carousel-slide-${index}`" :img-src="image.url" :name="index">
|
|
12
12
|
<div v-if="$qas.screen.isSmall" class="full-width justify-end row">
|
|
13
|
-
<qas-btn dense flat icon="
|
|
13
|
+
<qas-btn dense flat icon="sym_r_close" @click="close" />
|
|
14
14
|
</div>
|
|
15
15
|
</q-carousel-slide>
|
|
16
16
|
</q-carousel>
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="items-center justify-between no-wrap q-col-gutter-x-md q-mb-xl row text-body1 text-grey-8">
|
|
3
|
+
<div :class="leftClass">
|
|
4
|
+
<slot name="left">
|
|
5
|
+
{{ text }}
|
|
6
|
+
</slot>
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<div v-if="hasRightSide" class="col-3 col-md-3 col-sm-4 justify-end row">
|
|
10
|
+
<slot name="right">
|
|
11
|
+
<qas-actions-menu v-if="hasDefaultActionsMenu" v-bind="actionsMenuProps" />
|
|
12
|
+
|
|
13
|
+
<qas-btn v-if="hasDefaultButton" :use-label-on-small-screen="false" v-bind="buttonProps" />
|
|
14
|
+
</slot>
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
</template>
|
|
18
|
+
|
|
19
|
+
<script>
|
|
20
|
+
export default {
|
|
21
|
+
name: 'QasHeaderActions',
|
|
22
|
+
|
|
23
|
+
props: {
|
|
24
|
+
actionsMenuProps: {
|
|
25
|
+
type: Object,
|
|
26
|
+
default: () => ({})
|
|
27
|
+
},
|
|
28
|
+
|
|
29
|
+
buttonProps: {
|
|
30
|
+
default: () => ({}),
|
|
31
|
+
type: Object
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
text: {
|
|
35
|
+
type: String,
|
|
36
|
+
default: ''
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
computed: {
|
|
41
|
+
hasDefaultButton () {
|
|
42
|
+
return !!Object.keys(this.buttonProps).length
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
hasDefaultActionsMenu () {
|
|
46
|
+
return !!Object.keys(this.actionsMenuProps).length
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
hasRightSlot () {
|
|
50
|
+
return !!this.$slots.right
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
hasRightSide () {
|
|
54
|
+
return this.hasRightSlot || this.hasDefaultActionsMenu || this.hasDefaultButton
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
leftClass () {
|
|
58
|
+
return this.hasRightSide ? 'col-9 col-md-9 col-sm-8' : 'col-12'
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
</script>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
type: component
|
|
2
|
+
|
|
3
|
+
meta:
|
|
4
|
+
desc: Componente para cabeçalho usado com alguma descrição e ação.
|
|
5
|
+
|
|
6
|
+
props:
|
|
7
|
+
actions-menu-props:
|
|
8
|
+
desc: Propriedades do QasActionsMenu.
|
|
9
|
+
default: {}
|
|
10
|
+
type: Object
|
|
11
|
+
|
|
12
|
+
button-props:
|
|
13
|
+
desc: Propriedades do QasBtn.
|
|
14
|
+
default: {}
|
|
15
|
+
type: Object
|
|
16
|
+
|
|
17
|
+
text:
|
|
18
|
+
desc: Descrição da seção a esquerda.
|
|
19
|
+
type: String
|
|
20
|
+
|
|
21
|
+
slots:
|
|
22
|
+
left:
|
|
23
|
+
desc: slot para acessar seção da esquerda (descrição).
|
|
24
|
+
|
|
25
|
+
right:
|
|
26
|
+
desc: slot para acessar seção da direita (ação).
|
|
@@ -48,12 +48,12 @@
|
|
|
48
48
|
</div>
|
|
49
49
|
|
|
50
50
|
<div class="col-auto">
|
|
51
|
-
<qas-btn color="dark" flat icon="
|
|
51
|
+
<qas-btn color="dark" flat icon="sym_r_add_circle_outline" round />
|
|
52
52
|
</div>
|
|
53
53
|
</div>
|
|
54
54
|
|
|
55
55
|
<div v-else class="text-left">
|
|
56
|
-
<qas-btn class="q-px-sm" color="dark" flat icon="
|
|
56
|
+
<qas-btn class="q-px-sm" color="dark" flat icon="sym_r_add" @click="add()">{{ addInputLabel }}</qas-btn>
|
|
57
57
|
</div>
|
|
58
58
|
</slot>
|
|
59
59
|
</div>
|
|
@@ -107,7 +107,7 @@ export default {
|
|
|
107
107
|
default: () => {
|
|
108
108
|
return {
|
|
109
109
|
label: 'Excluir',
|
|
110
|
-
icon: '
|
|
110
|
+
icon: 'sym_r_delete',
|
|
111
111
|
flat: true,
|
|
112
112
|
dense: true
|
|
113
113
|
}
|
|
@@ -119,7 +119,7 @@ export default {
|
|
|
119
119
|
default: () => {
|
|
120
120
|
return {
|
|
121
121
|
label: 'Duplicar',
|
|
122
|
-
icon: '
|
|
122
|
+
icon: 'sym_r_content_copy',
|
|
123
123
|
flat: true,
|
|
124
124
|
useLabelOnSmallScreen: false,
|
|
125
125
|
dense: true
|
|
@@ -21,13 +21,13 @@ props:
|
|
|
21
21
|
|
|
22
22
|
button-destroy-props:
|
|
23
23
|
desc: Props do botão de excluir linha contendo os campos.
|
|
24
|
-
default: "{ label: 'Excluir', icon: '
|
|
24
|
+
default: "{ label: 'Excluir', icon: 'sym_r_delete', flat: true, dense: true }"
|
|
25
25
|
debugger: true
|
|
26
26
|
type: Object
|
|
27
27
|
|
|
28
28
|
button-duplicate-props:
|
|
29
29
|
desc: Props do botão de duplicar linha contendo os campos.
|
|
30
|
-
default: "{ label: 'Duplicar',
|
|
30
|
+
default: "{ label: 'Duplicar', sym_r_content_copy, flat: true, dense: true, useLabelOnSmallScreen: false }"
|
|
31
31
|
debugger: true
|
|
32
32
|
type: Object
|
|
33
33
|
|