@bildvitta/quasar-ui-asteroid 3.17.0-beta.24 → 3.17.0-beta.25
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
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div ref="expansionItem" class="full-width qas-expansion-item" :class="classes" v-bind="expansionProps.parent">
|
|
3
|
-
<
|
|
3
|
+
<qas-box class="qas-expansion-item__box" v-bind="boxProps">
|
|
4
4
|
<q-expansion-item v-model="modelValue" v-bind="expansionProps.item" header-class="text-bold q-mt-sm q-pa-none qas-expansion-item__header" @show="setShowContent">
|
|
5
5
|
<template #header>
|
|
6
6
|
<div class="full-width justify-between no-wrap row">
|
|
@@ -28,17 +28,13 @@
|
|
|
28
28
|
</div>
|
|
29
29
|
</template>
|
|
30
30
|
|
|
31
|
-
<q-separator v-if="hasHeaderSeparator" class="q-my-md" />
|
|
32
|
-
|
|
33
31
|
<div :class="contentClasses">
|
|
34
32
|
<slot v-if="showContent" name="content">
|
|
35
33
|
<qas-grid-generator v-if="hasGridGenerator" use-inline v-bind="gridGeneratorProps" />
|
|
36
34
|
</slot>
|
|
37
35
|
</div>
|
|
38
|
-
|
|
39
|
-
<q-separator v-if="hasBottomSeparator" class="q-mt-md" />
|
|
40
36
|
</q-expansion-item>
|
|
41
|
-
</
|
|
37
|
+
</qas-box>
|
|
42
38
|
|
|
43
39
|
<div v-if="hasError" class="q-pt-sm qas-expansion-item__error-message text-caption text-negative">
|
|
44
40
|
{{ props.errorMessage }}
|
|
@@ -49,7 +45,7 @@
|
|
|
49
45
|
<script setup>
|
|
50
46
|
import QasBox from '../box/QasBox.vue'
|
|
51
47
|
|
|
52
|
-
import { computed, provide, inject,
|
|
48
|
+
import { computed, provide, inject, ref, useAttrs } from 'vue'
|
|
53
49
|
|
|
54
50
|
defineOptions({
|
|
55
51
|
name: 'QasExpansionItem',
|
|
@@ -97,11 +93,6 @@ const props = defineProps({
|
|
|
97
93
|
maxContentHeight: {
|
|
98
94
|
type: String,
|
|
99
95
|
default: ''
|
|
100
|
-
},
|
|
101
|
-
|
|
102
|
-
useHeaderSeparator: {
|
|
103
|
-
type: Boolean,
|
|
104
|
-
default: undefined
|
|
105
96
|
}
|
|
106
97
|
})
|
|
107
98
|
|
|
@@ -116,37 +107,18 @@ const slots = defineSlots()
|
|
|
116
107
|
|
|
117
108
|
// refs
|
|
118
109
|
const expansionItem = ref(null)
|
|
119
|
-
const hasNextSibling = ref(false)
|
|
120
110
|
const showContent = ref(false)
|
|
121
111
|
|
|
122
|
-
onMounted(setHasNextSibling)
|
|
123
|
-
|
|
124
112
|
// constants
|
|
125
113
|
const isNestedExpansionItem = inject('isExpansionItem', false)
|
|
126
114
|
const isNestedBox = inject('isBox', false)
|
|
127
115
|
|
|
128
|
-
const component = {
|
|
129
|
-
is: isNestedExpansionItem ? 'div' : QasBox
|
|
130
|
-
}
|
|
131
|
-
|
|
132
116
|
// computed
|
|
133
117
|
const hasBadges = computed(() => !!props.badges.length)
|
|
134
118
|
const hasError = computed(() => props.error || !!props.errorMessage)
|
|
135
119
|
const hasGridGenerator = computed(() => !!Object.keys(props.gridGeneratorProps).length)
|
|
136
|
-
const hasBottomSeparator = computed(() => isNestedExpansionItem && hasNextSibling.value)
|
|
137
120
|
const hasHeaderBottom = computed(() => !!slots['header-bottom'])
|
|
138
121
|
|
|
139
|
-
/**
|
|
140
|
-
* Verifica se o componente deve adicionar um separador no header.
|
|
141
|
-
*
|
|
142
|
-
* - Se a propriedade useHeaderSeparator for true, retorna separador.
|
|
143
|
-
* - Se a propriedade useHeaderSeparator for undefined, retorna separador apenas se não for um componente aninhado.
|
|
144
|
-
* - Se a propriedade useHeaderSeparator for false, não retorna separador.
|
|
145
|
-
*/
|
|
146
|
-
const hasHeaderSeparator = computed(() => {
|
|
147
|
-
return typeof props.useHeaderSeparator === 'undefined' ? !isNestedExpansionItem : props.useHeaderSeparator
|
|
148
|
-
})
|
|
149
|
-
|
|
150
122
|
const classes = computed(() => {
|
|
151
123
|
return {
|
|
152
124
|
'qas-expansion-item--error': hasError.value,
|
|
@@ -157,8 +129,7 @@ const classes = computed(() => {
|
|
|
157
129
|
|
|
158
130
|
const contentClasses = computed(() => {
|
|
159
131
|
return {
|
|
160
|
-
'q-mt-
|
|
161
|
-
'q-mt-md': !isNestedExpansionItem && !props.useHeaderSeparator,
|
|
132
|
+
'q-mt-md': true,
|
|
162
133
|
'qas-expansion-item__content overflow-auto': !!props.maxContentHeight
|
|
163
134
|
}
|
|
164
135
|
})
|
|
@@ -196,10 +167,10 @@ const expansionProps = computed(() => {
|
|
|
196
167
|
|
|
197
168
|
const boxProps = computed(() => {
|
|
198
169
|
/**
|
|
199
|
-
* Caso o QasExpansionItem estiver dentro de um QasBox
|
|
170
|
+
* Caso o QasExpansionItem estiver dentro de um QasBox ou for um QasExpansionItem
|
|
200
171
|
* dentro de outro QasExpansionItem, o componente terá uma borda.
|
|
201
172
|
*/
|
|
202
|
-
const isBoxed = isNestedBox
|
|
173
|
+
const isBoxed = isNestedBox || isNestedExpansionItem
|
|
203
174
|
|
|
204
175
|
if (!isBoxed) return {}
|
|
205
176
|
|
|
@@ -212,20 +183,6 @@ const boxProps = computed(() => {
|
|
|
212
183
|
const isDisabled = computed(() => props.disable || props.disableButton)
|
|
213
184
|
|
|
214
185
|
// functions
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Caso o componente esteja dentro de um QasExpansionItem, verifica se existe um próximo irmão
|
|
218
|
-
* para adicionar um separador.
|
|
219
|
-
*/
|
|
220
|
-
function setHasNextSibling () {
|
|
221
|
-
if (!isNestedExpansionItem) return
|
|
222
|
-
|
|
223
|
-
const hasTextContentSibling = !!expansionItem.value.nextSibling?.textContent?.trim?.()
|
|
224
|
-
const hasElementSibling = !!expansionItem.value.nextElementSibling
|
|
225
|
-
|
|
226
|
-
hasNextSibling.value = hasElementSibling || hasTextContentSibling
|
|
227
|
-
}
|
|
228
|
-
|
|
229
186
|
function setShowContent () {
|
|
230
187
|
showContent.value = true
|
|
231
188
|
}
|
|
@@ -49,11 +49,6 @@ props:
|
|
|
49
49
|
desc: Propriedades que serão repassadas para o QasGridGenerator.
|
|
50
50
|
type: Object
|
|
51
51
|
|
|
52
|
-
use-header-separator:
|
|
53
|
-
desc: Propriedade para forçar o QSeparator no header.
|
|
54
|
-
type: Boolean
|
|
55
|
-
default: undefined
|
|
56
|
-
|
|
57
52
|
slots:
|
|
58
53
|
header:
|
|
59
54
|
desc: Slot para substituir o conteúdo do header (não inclui o botão dropdown).
|