@myissue/vue-website-page-builder 3.4.20 → 3.4.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/README.md +22 -24
- package/dist/vue-website-page-builder.js +1 -1
- package/dist/vue-website-page-builder.umd.cjs +1 -1
- package/package.json +2 -3
- package/src/App.vue +0 -28
- package/src/Components/Homepage/Footer.vue +0 -32
- package/src/Components/Homepage/Navbar.vue +0 -25
- package/src/Components/Layouts/FullWidthElement.vue +0 -34
- package/src/Components/Loaders/GlobalLoader.vue +0 -18
- package/src/Components/Modals/BuilderComponents.vue +0 -53
- package/src/Components/Modals/DynamicModalBuilder.vue +0 -209
- package/src/Components/Modals/MediaLibraryModal.vue +0 -61
- package/src/Components/Modals/ModalBuilder.vue +0 -117
- package/src/Components/PageBuilder/EditorMenu/Editables/BackgroundColorEditor.vue +0 -121
- package/src/Components/PageBuilder/EditorMenu/Editables/BorderRadius.vue +0 -188
- package/src/Components/PageBuilder/EditorMenu/Editables/Borders.vue +0 -176
- package/src/Components/PageBuilder/EditorMenu/Editables/ClassEditor.vue +0 -112
- package/src/Components/PageBuilder/EditorMenu/Editables/ComponentTopMenu.vue +0 -108
- package/src/Components/PageBuilder/EditorMenu/Editables/EditGetElement.vue +0 -541
- package/src/Components/PageBuilder/EditorMenu/Editables/HTMLEditor.vue +0 -203
- package/src/Components/PageBuilder/EditorMenu/Editables/ImageEditor.vue +0 -96
- package/src/Components/PageBuilder/EditorMenu/Editables/LinkEditor.vue +0 -315
- package/src/Components/PageBuilder/EditorMenu/Editables/ManageBackgroundOpacity.vue +0 -107
- package/src/Components/PageBuilder/EditorMenu/Editables/ManageOpacity.vue +0 -106
- package/src/Components/PageBuilder/EditorMenu/Editables/Margin.vue +0 -116
- package/src/Components/PageBuilder/EditorMenu/Editables/OpacityEditor.vue +0 -19
- package/src/Components/PageBuilder/EditorMenu/Editables/Padding.vue +0 -117
- package/src/Components/PageBuilder/EditorMenu/Editables/StyleEditor.vue +0 -123
- package/src/Components/PageBuilder/EditorMenu/Editables/TextColorEditor.vue +0 -123
- package/src/Components/PageBuilder/EditorMenu/Editables/Typography.vue +0 -237
- package/src/Components/PageBuilder/EditorMenu/EditorAccordion.vue +0 -46
- package/src/Components/PageBuilder/EditorMenu/RightSidebarEditor.vue +0 -368
- package/src/Components/PageBuilder/Settings/AdvancedPageBuilderSettings.vue +0 -476
- package/src/Components/PageBuilder/Settings/PageBuilderSettings.vue +0 -581
- package/src/Components/PageBuilder/ToolbarOption/ToolbarOption.vue +0 -248
- package/src/Components/PageBuilder/UndoRedo/UndoRedo.vue +0 -90
- package/src/Components/TipTap/TipTap.vue +0 -25
- package/src/Components/TipTap/TipTapInput.vue +0 -341
- package/src/PageBuilder/PageBuilder.vue +0 -1025
- package/src/PageBuilder/Preview.vue +0 -64
- package/src/composables/builderInstance.ts +0 -47
- package/src/composables/delay.ts +0 -5
- package/src/composables/extractCleanHTMLFromPageBuilder.ts +0 -59
- package/src/composables/preloadImage.ts +0 -8
- package/src/composables/useDebounce.ts +0 -8
- package/src/composables/usePageBuilderModal.ts +0 -25
- package/src/composables/useTranslations.ts +0 -28
- package/src/css/dev-global.css +0 -24
- package/src/css/style.css +0 -600
- package/src/helpers/isEmptyObject.ts +0 -5
- package/src/index.ts +0 -28
- package/src/locales/ar.json +0 -170
- package/src/locales/de.json +0 -171
- package/src/locales/en.json +0 -171
- package/src/locales/es.json +0 -171
- package/src/locales/fr.json +0 -171
- package/src/locales/hi.json +0 -172
- package/src/locales/ja.json +0 -171
- package/src/locales/pt.json +0 -171
- package/src/locales/ru.json +0 -171
- package/src/locales/zh-Hans.json +0 -171
- package/src/main.ts +0 -14
- package/src/plugin.ts +0 -16
- package/src/services/LocalStorageManager.ts +0 -25
- package/src/services/PageBuilderService.ts +0 -3191
- package/src/stores/page-builder-state.ts +0 -498
- package/src/stores/shared-store.ts +0 -13
- package/src/tailwind-safelist.html +0 -3
- package/src/tests/DefaultComponents/DefaultBuilderComponents.vue +0 -284
- package/src/tests/DefaultComponents/DefaultMediaLibraryComponent.vue +0 -10
- package/src/tests/PageBuilderTest.vue +0 -82
- package/src/tests/TestComponents/DemoBuilderComponentsTest.vue +0 -5
- package/src/tests/TestComponents/DemoMediaLibraryComponentTest.vue +0 -8
- package/src/tests/TestComponents/DemoUnsplash.vue +0 -389
- package/src/tests/componentsArray.test.json +0 -62
- package/src/tests/pageBuilderService.test.ts +0 -165
- package/src/types/global.d.ts +0 -11
- package/src/types/index.ts +0 -306
- package/src/utils/builder/html-doc-declaration-with-components.ts +0 -7
- package/src/utils/builder/tailwaind-colors.ts +0 -503
- package/src/utils/builder/tailwind-border-radius.ts +0 -67
- package/src/utils/builder/tailwind-border-style-width-color.ts +0 -272
- package/src/utils/builder/tailwind-font-sizes.ts +0 -75
- package/src/utils/builder/tailwind-font-styles.ts +0 -56
- package/src/utils/builder/tailwind-opacities.ts +0 -45
- package/src/utils/builder/tailwind-padding-margin.ts +0 -159
- package/src/utils/html-elements/component.ts +0 -485
- package/src/utils/html-elements/componentHelpers.ts +0 -98
- package/src/utils/html-elements/themes.ts +0 -85
|
@@ -1,341 +0,0 @@
|
|
|
1
|
-
<script setup>
|
|
2
|
-
import { useEditor } from '@tiptap/vue-3'
|
|
3
|
-
import StarterKit from '@tiptap/starter-kit'
|
|
4
|
-
import { computed, onBeforeMount, onMounted, ref, watch } from 'vue'
|
|
5
|
-
import Link from '@tiptap/extension-link'
|
|
6
|
-
import DynamicModalBuilder from '../Modals/DynamicModalBuilder.vue'
|
|
7
|
-
import { sharedPageBuilderStore } from '../../stores/shared-store'
|
|
8
|
-
import { getPageBuilder } from '../../composables/builderInstance'
|
|
9
|
-
import { useTranslations } from '../../composables/useTranslations'
|
|
10
|
-
const pageBuilderService = getPageBuilder()
|
|
11
|
-
|
|
12
|
-
const { translate } = useTranslations()
|
|
13
|
-
|
|
14
|
-
// Use shared store instance
|
|
15
|
-
const pageBuilderStateStore = sharedPageBuilderStore
|
|
16
|
-
|
|
17
|
-
const showModalUrl = ref(false)
|
|
18
|
-
|
|
19
|
-
// use dynamic model
|
|
20
|
-
const typeModal = ref('')
|
|
21
|
-
const gridColumnModal = ref(Number(1))
|
|
22
|
-
const titleModal = ref('')
|
|
23
|
-
const descriptionModal = ref('')
|
|
24
|
-
const firstButtonModal = ref('')
|
|
25
|
-
const secondButtonModal = ref(null)
|
|
26
|
-
const thirdButtonModal = ref(null)
|
|
27
|
-
// set dynamic modal handle functions
|
|
28
|
-
const firstModalButtonFunctionDynamicModalBuilder = ref(null)
|
|
29
|
-
const secondModalButtonFunctionDynamicModalBuilder = ref(null)
|
|
30
|
-
const thirdModalButtonFunctionDynamicModalBuilder = ref(null)
|
|
31
|
-
|
|
32
|
-
const getElement = computed(() => {
|
|
33
|
-
return pageBuilderStateStore.getElement
|
|
34
|
-
})
|
|
35
|
-
const textContentVueModel = ref('')
|
|
36
|
-
|
|
37
|
-
const textContent = computed(() => {
|
|
38
|
-
if (editor.value) {
|
|
39
|
-
return editor.value.getHTML()
|
|
40
|
-
}
|
|
41
|
-
return null
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
const getElementtextContentLength = ref(0)
|
|
45
|
-
|
|
46
|
-
watch(getElement, (newVal) => {
|
|
47
|
-
const tempContainer = document.createElement('div')
|
|
48
|
-
|
|
49
|
-
if (newVal) {
|
|
50
|
-
tempContainer.innerHTML = newVal
|
|
51
|
-
const textContent = tempContainer.textContent
|
|
52
|
-
getElementtextContentLength.value = textContent.length
|
|
53
|
-
}
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
// Check if any of the child elements have the tagName "IMG"
|
|
57
|
-
|
|
58
|
-
const editor = useEditor({
|
|
59
|
-
content: '',
|
|
60
|
-
extensions: [
|
|
61
|
-
StarterKit,
|
|
62
|
-
Link.configure({
|
|
63
|
-
openOnClick: false,
|
|
64
|
-
}),
|
|
65
|
-
],
|
|
66
|
-
editorProps: {
|
|
67
|
-
attributes: {
|
|
68
|
-
class: 'prose-sm sm:prose-sm lg:prose-sm focus:outline-none',
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
// watch for changes in textContent and update store and textContentVueModel
|
|
74
|
-
watch(textContent, async (newValue) => {
|
|
75
|
-
if (!pageBuilderService.isSelectedElementValidText()) return
|
|
76
|
-
|
|
77
|
-
if (getElement.value) {
|
|
78
|
-
pageBuilderStateStore.setTextAreaVueModel(newValue)
|
|
79
|
-
|
|
80
|
-
if (typeof newValue === 'string' && newValue !== textContentVueModel.value) {
|
|
81
|
-
await pageBuilderService.handleTextInput(newValue)
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
})
|
|
85
|
-
|
|
86
|
-
const TipTapSetContent = function () {
|
|
87
|
-
if (!pageBuilderService.isSelectedElementValidText()) return
|
|
88
|
-
|
|
89
|
-
if (editor.value) {
|
|
90
|
-
editor.value.commands.setContent(getElement.value.innerHTML)
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
watch(getElement, () => {
|
|
95
|
-
TipTapSetContent()
|
|
96
|
-
})
|
|
97
|
-
|
|
98
|
-
// Manage URL
|
|
99
|
-
const urlEnteret = ref('')
|
|
100
|
-
const newUpdatedExistingURL = ref('')
|
|
101
|
-
const urlError = ref(null)
|
|
102
|
-
|
|
103
|
-
watch(urlEnteret, (newVal) => {
|
|
104
|
-
newUpdatedExistingURL.value = newVal
|
|
105
|
-
})
|
|
106
|
-
const handleURL = function () {
|
|
107
|
-
urlEnteret.value = editor.value.getAttributes('link').href
|
|
108
|
-
|
|
109
|
-
showModalUrl.value = true
|
|
110
|
-
typeModal.value = 'success'
|
|
111
|
-
gridColumnModal.value = 2
|
|
112
|
-
titleModal.value = translate('Enter URL')
|
|
113
|
-
descriptionModal.value = translate(
|
|
114
|
-
'Add a valid URL to transform the selected text into a clickable hyperlink that directs users to the specified web address.',
|
|
115
|
-
)
|
|
116
|
-
firstButtonModal.value = translate('Close')
|
|
117
|
-
secondButtonModal.value = urlEnteret.value ? 'Remove url' : null
|
|
118
|
-
thirdButtonModal.value = translate('Save')
|
|
119
|
-
|
|
120
|
-
// handle click
|
|
121
|
-
firstModalButtonFunctionDynamicModalBuilder.value = function () {
|
|
122
|
-
showModalUrl.value = false
|
|
123
|
-
urlError.value = null
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// handle click
|
|
127
|
-
secondModalButtonFunctionDynamicModalBuilder.value = function () {
|
|
128
|
-
editor.value.chain().focus().extendMarkRange('link').unsetLink().run()
|
|
129
|
-
showModalUrl.value = false
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// handle click
|
|
133
|
-
thirdModalButtonFunctionDynamicModalBuilder.value = function () {
|
|
134
|
-
const isNotValidated = validateURL()
|
|
135
|
-
if (isNotValidated) {
|
|
136
|
-
return
|
|
137
|
-
}
|
|
138
|
-
if (!isNotValidated) {
|
|
139
|
-
setEnteretURL()
|
|
140
|
-
}
|
|
141
|
-
showModalUrl.value = false
|
|
142
|
-
}
|
|
143
|
-
// end modal
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
//
|
|
147
|
-
//
|
|
148
|
-
const validateURL = function () {
|
|
149
|
-
// initial value
|
|
150
|
-
urlError.value = null
|
|
151
|
-
|
|
152
|
-
// url validation
|
|
153
|
-
const urlRegex = /^https?:\/\//
|
|
154
|
-
const isValidURL = ref(true)
|
|
155
|
-
isValidURL.value = urlRegex.test(newUpdatedExistingURL.value)
|
|
156
|
-
|
|
157
|
-
// cancelled
|
|
158
|
-
if (isValidURL.value === false) {
|
|
159
|
-
urlError.value =
|
|
160
|
-
"The provided URL is invalid. Please ensure that it begins with 'https://' for proper formatting and security."
|
|
161
|
-
return true
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
return false
|
|
165
|
-
}
|
|
166
|
-
const setEnteretURL = function () {
|
|
167
|
-
// update link
|
|
168
|
-
editor.value
|
|
169
|
-
.chain()
|
|
170
|
-
.focus()
|
|
171
|
-
.extendMarkRange('link')
|
|
172
|
-
.setLink({ href: newUpdatedExistingURL.value })
|
|
173
|
-
.run()
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
onBeforeMount(() => {
|
|
177
|
-
editor.value?.destroy()
|
|
178
|
-
})
|
|
179
|
-
|
|
180
|
-
onMounted(() => {
|
|
181
|
-
TipTapSetContent()
|
|
182
|
-
})
|
|
183
|
-
</script>
|
|
184
|
-
<template>
|
|
185
|
-
<div>
|
|
186
|
-
<DynamicModalBuilder
|
|
187
|
-
maxWidth="4xl"
|
|
188
|
-
:showDynamicModalBuilder="showModalUrl"
|
|
189
|
-
:type="typeModal"
|
|
190
|
-
:gridColumnAmount="gridColumnModal"
|
|
191
|
-
:title="titleModal"
|
|
192
|
-
:description="descriptionModal"
|
|
193
|
-
:firstButtonText="firstButtonModal"
|
|
194
|
-
:secondButtonText="secondButtonModal"
|
|
195
|
-
:thirdButtonText="thirdButtonModal"
|
|
196
|
-
@firstModalButtonFunctionDynamicModalBuilder="firstModalButtonFunctionDynamicModalBuilder"
|
|
197
|
-
@secondModalButtonFunctionDynamicModalBuilder="secondModalButtonFunctionDynamicModalBuilder"
|
|
198
|
-
@thirdModalButtonFunctionDynamicModalBuilder="thirdModalButtonFunctionDynamicModalBuilder"
|
|
199
|
-
>
|
|
200
|
-
<header></header>
|
|
201
|
-
<main>
|
|
202
|
-
<div class="pbx-myInputGroup">
|
|
203
|
-
<label class="pbx-myPrimaryInputLabel" for="roles"
|
|
204
|
-
><span>{{ translate('Enter URL') }}</span></label
|
|
205
|
-
><input
|
|
206
|
-
v-model="urlEnteret"
|
|
207
|
-
class="pbx-myPrimaryInput pbx-mt-1 pbx-w-full"
|
|
208
|
-
type="url"
|
|
209
|
-
placeholder="url"
|
|
210
|
-
/>
|
|
211
|
-
<div
|
|
212
|
-
v-if="urlError"
|
|
213
|
-
class="pbx-min-h-[2.5rem] pbx-flex pbx-items-center pbx-justify-start"
|
|
214
|
-
>
|
|
215
|
-
<p class="pbx-myPrimaryInputError pbx-mt-2 pbx-mb-0 pbx-py-0 pbx-self-start">
|
|
216
|
-
{{ urlError }}
|
|
217
|
-
</p>
|
|
218
|
-
</div>
|
|
219
|
-
</div>
|
|
220
|
-
</main>
|
|
221
|
-
</DynamicModalBuilder>
|
|
222
|
-
|
|
223
|
-
<div class="pbx-blockease-linear pbx-duration-200 pbx-block pbx-ease-linear">
|
|
224
|
-
<div v-if="pageBuilderService.isSelectedElementValidText() && editor">
|
|
225
|
-
<div class="pbx-relative pbx-rounded-lg">
|
|
226
|
-
<div
|
|
227
|
-
class="pbx-flex pbx-justify-between pbx-myPrimaryGap pbx-items-center pbx-pb-2 pbx-mb-2 pbx-px-4 pbx-overflow-x-auto pbx-border-0 pbx-border-b pbx-border-solid pbx-border-gray-200"
|
|
228
|
-
>
|
|
229
|
-
<div>
|
|
230
|
-
<div>
|
|
231
|
-
<div
|
|
232
|
-
class="pbx-px-2 pbx-flex pbx-items-center pbx-justify-start pbx-gap-2 pbx-w-max pbx-p-1 pbx-rounded-full pbx-border-solid pbx-border pbx-border-gray-200 pbx-shadow-sm"
|
|
233
|
-
>
|
|
234
|
-
<button
|
|
235
|
-
@click="pageBuilderService.toggleTipTapModal(false)"
|
|
236
|
-
type="button"
|
|
237
|
-
class="pbx-myPrimaryTag pbx-cursor-pointer"
|
|
238
|
-
>
|
|
239
|
-
<span class="material-symbols-outlined"> save </span>
|
|
240
|
-
<span>{{ translate('Save') }}</span>
|
|
241
|
-
</button>
|
|
242
|
-
</div>
|
|
243
|
-
</div>
|
|
244
|
-
</div>
|
|
245
|
-
<div
|
|
246
|
-
class="pbx-flex pbx-items-center pbx-p-1 pbx-rounded-full pbx-border-solid pbx-border pbx-border-gray-200 pbx-shadow-sm"
|
|
247
|
-
>
|
|
248
|
-
<div class="pbx-px-2 pbx-flex pbx-items-center pbx-justify-start pbx-gap-2 pbx-w-max">
|
|
249
|
-
<button
|
|
250
|
-
@click="editor.chain().focus().setHardBreak().run()"
|
|
251
|
-
type="button"
|
|
252
|
-
class="pbx-myPrimaryTag pbx-cursor-pointer"
|
|
253
|
-
>
|
|
254
|
-
<span class="material-symbols-outlined"> keyboard_return </span>
|
|
255
|
-
<span>{{ translate('Line break') }}</span>
|
|
256
|
-
</button>
|
|
257
|
-
</div>
|
|
258
|
-
|
|
259
|
-
<div class="pbx-px-2 pbx-flex pbx-items-center pbx-justify-start pbx-gap-2 pbx-w-max">
|
|
260
|
-
<button
|
|
261
|
-
@click="editor.chain().focus().toggleBold().run()"
|
|
262
|
-
type="button"
|
|
263
|
-
class="pbx-myPrimaryTag pbx-cursor-pointer"
|
|
264
|
-
:class="{ 'pbx-bg-myPrimaryLinkColor pbx-text-white': editor.isActive('bold') }"
|
|
265
|
-
>
|
|
266
|
-
<span class="material-symbols-outlined"> format_bold </span>
|
|
267
|
-
<span>{{ translate('Bold') }}</span>
|
|
268
|
-
</button>
|
|
269
|
-
</div>
|
|
270
|
-
|
|
271
|
-
<div class="pbx-px-2 pbx-flex pbx-items-center pbx-justify-start pbx-gap-2 pbx-w-max">
|
|
272
|
-
<button
|
|
273
|
-
@click="handleURL"
|
|
274
|
-
type="button"
|
|
275
|
-
class="pbx-myPrimaryTag pbx-cursor-pointer"
|
|
276
|
-
:class="{ 'pbx-bg-myPrimaryLinkColor pbx-text-white': editor.isActive('link') }"
|
|
277
|
-
>
|
|
278
|
-
<span class="material-symbols-outlined"> link </span>
|
|
279
|
-
<span>{{ translate('Link') }}</span>
|
|
280
|
-
</button>
|
|
281
|
-
</div>
|
|
282
|
-
|
|
283
|
-
<div class="pbx-px-2 pbx-flex pbx-items-center pbx-justify-start pbx-gap-2 pbx-w-max">
|
|
284
|
-
<button
|
|
285
|
-
@click="editor.chain().focus().toggleHeading({ level: 2 }).run()"
|
|
286
|
-
type="button"
|
|
287
|
-
class="pbx-myPrimaryTag pbx-cursor-pointer"
|
|
288
|
-
:class="{
|
|
289
|
-
'pbx-bg-myPrimaryLinkColor pbx-text-white': editor.isActive('heading', {
|
|
290
|
-
level: 2,
|
|
291
|
-
}),
|
|
292
|
-
}"
|
|
293
|
-
>
|
|
294
|
-
<span class="material-symbols-outlined"> titlecase </span>
|
|
295
|
-
<span>{{ translate('Header 2') }}</span>
|
|
296
|
-
</button>
|
|
297
|
-
</div>
|
|
298
|
-
|
|
299
|
-
<div class="pbx-px-2 pbx-flex pbx-items-center pbx-justify-start pbx-gap-2 pbx-w-max">
|
|
300
|
-
<button
|
|
301
|
-
@click="editor.chain().focus().toggleHeading({ level: 3 }).run()"
|
|
302
|
-
type="button"
|
|
303
|
-
class="pbx-myPrimaryTag pbx-cursor-pointer"
|
|
304
|
-
:class="{
|
|
305
|
-
'pbx-bg-myPrimaryLinkColor pbx-text-white': editor.isActive('heading', {
|
|
306
|
-
level: 3,
|
|
307
|
-
}),
|
|
308
|
-
}"
|
|
309
|
-
>
|
|
310
|
-
<span class="material-symbols-outlined"> titlecase </span>
|
|
311
|
-
<span>{{ translate('Header 3') }}</span>
|
|
312
|
-
</button>
|
|
313
|
-
</div>
|
|
314
|
-
|
|
315
|
-
<div class="pbx-px-2 pbx-flex pbx-items-center pbx-justify-start pbx-gap-2 pbx-w-max">
|
|
316
|
-
<button
|
|
317
|
-
@click="editor.chain().focus().toggleBulletList().run()"
|
|
318
|
-
type="button"
|
|
319
|
-
class="pbx-myPrimaryTag pbx-cursor-pointer"
|
|
320
|
-
:class="{
|
|
321
|
-
'pbx-bg-myPrimaryLinkColor pbx-text-white': editor.isActive('bulletList'),
|
|
322
|
-
}"
|
|
323
|
-
>
|
|
324
|
-
<span class="material-symbols-outlined"> list </span>
|
|
325
|
-
<span>{{ translate('List') }}</span>
|
|
326
|
-
</button>
|
|
327
|
-
</div>
|
|
328
|
-
</div>
|
|
329
|
-
</div>
|
|
330
|
-
|
|
331
|
-
<editor-content
|
|
332
|
-
v-if="editor"
|
|
333
|
-
id="page-builder-editor"
|
|
334
|
-
:editor="editor"
|
|
335
|
-
class="pbx-p-2 pbx-prounded-lg lg:pbx-min-h-[20rem] lg:pbx-max-h-[30rem] md:pbx-min-h-[20rem] md:pbx-max-h-[20rem] pbx-min-h-[20rem] pbx-max-h-[20rem] pbx-overflow-y-auto"
|
|
336
|
-
/>
|
|
337
|
-
</div>
|
|
338
|
-
</div>
|
|
339
|
-
</div>
|
|
340
|
-
</div>
|
|
341
|
-
</template>
|