@myissue/vue-website-page-builder 3.1.13 → 3.1.15

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 (43) hide show
  1. package/dist/vue-website-page-builder.css +1 -1
  2. package/dist/vue-website-page-builder.js +5161 -5194
  3. package/dist/vue-website-page-builder.umd.cjs +38 -38
  4. package/package.json +1 -1
  5. package/src/App.vue +2 -2
  6. package/src/Components/Homepage/HomeSection.vue +18 -7
  7. package/src/Components/Modals/{DynamicModal.vue → DynamicModalBuilder.vue} +38 -31
  8. package/src/Components/Modals/MediaLibraryModal.vue +1 -1
  9. package/src/Components/Modals/{Modal.vue → ModalBuilder.vue} +9 -15
  10. package/src/Components/Modals/PageBuilderPreviewModal.vue +13 -6
  11. package/src/Components/PageBuilder/DemoContent/NoneCustomSearchComponent.vue +0 -17
  12. package/src/Components/PageBuilder/DropdownsPlusToggles/OptionsDropdown.vue +113 -87
  13. package/src/Components/PageBuilder/EditorMenu/Editables/BackgroundColorEditor.vue +2 -2
  14. package/src/Components/PageBuilder/EditorMenu/Editables/BorderRadius.vue +2 -2
  15. package/src/Components/PageBuilder/EditorMenu/Editables/Borders.vue +3 -3
  16. package/src/Components/PageBuilder/EditorMenu/Editables/ClassEditor.vue +1 -1
  17. package/src/Components/PageBuilder/EditorMenu/Editables/ComponentTopMenu.vue +13 -13
  18. package/src/Components/PageBuilder/EditorMenu/Editables/DeleteElement.vue +1 -1
  19. package/src/Components/PageBuilder/EditorMenu/Editables/EditGetElement.vue +25 -25
  20. package/src/Components/PageBuilder/EditorMenu/Editables/ElementEditor.vue +2 -2
  21. package/src/Components/PageBuilder/EditorMenu/Editables/ImageEditor.vue +3 -3
  22. package/src/Components/PageBuilder/EditorMenu/Editables/LinkEditor.vue +1 -1
  23. package/src/Components/PageBuilder/EditorMenu/Editables/ManageBackgroundOpacity.vue +2 -2
  24. package/src/Components/PageBuilder/EditorMenu/Editables/ManageOpacity.vue +2 -2
  25. package/src/Components/PageBuilder/EditorMenu/Editables/OpacityEditor.vue +3 -3
  26. package/src/Components/PageBuilder/EditorMenu/Editables/PaddingPlusMargin.vue +2 -2
  27. package/src/Components/PageBuilder/EditorMenu/Editables/TextColorEditor.vue +2 -2
  28. package/src/Components/PageBuilder/EditorMenu/Editables/Typography.vue +3 -3
  29. package/src/Components/PageBuilder/EditorMenu/RightSidebarEditor.vue +13 -13
  30. package/src/Components/PageBuilder/Settings/AdvancedPageBuilderSettings.vue +9 -1
  31. package/src/Components/PageBuilder/Settings/PageBuilderSettings.vue +306 -15
  32. package/src/Components/Search/SearchComponents.vue +14 -8
  33. package/src/Components/TipTap/TipTap.vue +1 -1
  34. package/src/Components/TipTap/TipTapInput.vue +15 -17
  35. package/src/PageBuilder/PageBuilder.vue +37 -131
  36. package/src/composables/PageBuilderClass.ts +90 -80
  37. package/src/stores/page-builder-state.ts +9 -192
  38. package/src/types/index.ts +13 -10
  39. package/src/utils/builder/html-doc-declaration-with-components.ts +1 -1
  40. package/src/utils/html-elements/componentHelpers.ts +3 -3
  41. package/src/composables/isObject.ts +0 -6
  42. package/src/composables/usePromise.ts +0 -10
  43. package/src/composables/vueFetch.ts +0 -278
@@ -1,18 +1,18 @@
1
1
  <script setup>
2
2
  import { computed, inject } from 'vue'
3
- import ClassEditor from '@/Components/PageBuilder/EditorMenu/Editables/ClassEditor.vue'
4
- import ImageEditor from '@/Components/PageBuilder/EditorMenu/Editables/ImageEditor.vue'
5
- import OpacityEditor from '@/Components/PageBuilder/EditorMenu/Editables/OpacityEditor.vue'
6
- import Typography from '@/Components/PageBuilder/EditorMenu/Editables/Typography.vue'
7
- import PaddingPlusMargin from '@/Components/PageBuilder/EditorMenu/Editables/PaddingPlusMargin.vue'
8
- import DeleteElement from '@/Components/PageBuilder/EditorMenu/Editables/DeleteElement.vue'
9
- import BorderRadius from '@/Components/PageBuilder/EditorMenu/Editables/BorderRadius.vue'
10
- import BackgroundColorEditor from '@/Components/PageBuilder/EditorMenu/Editables/BackgroundColorEditor.vue'
11
- import Borders from '@/Components/PageBuilder/EditorMenu/Editables/Borders.vue'
12
- import LinkEditor from '@/Components/PageBuilder/EditorMenu/Editables/LinkEditor.vue'
13
- import TipTap from '@/Components/TipTap/TipTap.vue'
14
- import EditGetElement from '@/Components/PageBuilder/EditorMenu/Editables/EditGetElement.vue'
15
- import ElementEditor from '@/Components/PageBuilder/EditorMenu/Editables/ElementEditor.vue'
3
+ import ClassEditor from './Editables/ClassEditor.vue'
4
+ import ImageEditor from './Editables/ImageEditor.vue'
5
+ import OpacityEditor from './Editables/OpacityEditor.vue'
6
+ import Typography from './Editables/Typography.vue'
7
+ import PaddingPlusMargin from './Editables/PaddingPlusMargin.vue'
8
+ import DeleteElement from './Editables/DeleteElement.vue'
9
+ import BorderRadius from './Editables/BorderRadius.vue'
10
+ import BackgroundColorEditor from './Editables/BackgroundColorEditor.vue'
11
+ import Borders from './Editables/Borders.vue'
12
+ import LinkEditor from './Editables/LinkEditor.vue'
13
+ import TipTap from '../../TipTap/TipTap.vue'
14
+ import EditGetElement from './Editables/EditGetElement.vue'
15
+ import ElementEditor from './Editables/ElementEditor.vue'
16
16
 
17
17
  // Get stores from parent PageBuilder component
18
18
  const pageBuilderStateStore = inject('pageBuilderStateStore')
@@ -145,7 +145,11 @@ const updateCurrentTab = function (tab) {
145
145
  {{ getComponent?.id }}
146
146
  </p>
147
147
  <p class="whitespace-pre-line leading-5 mt-4">
148
- Component HTML:<br />
148
+ Component Title:<br />
149
+ {{ getComponent?.title }}
150
+ </p>
151
+ <p class="whitespace-pre-line leading-5 mt-4">
152
+ Component HTML:
149
153
  {{ getComponent?.html_code }}
150
154
  </p>
151
155
  </div>
@@ -167,6 +171,10 @@ const updateCurrentTab = function (tab) {
167
171
  {{ component.id }}
168
172
  </p>
169
173
 
174
+ <p class="whitespace-pre-line leading-5 mt-4">
175
+ Component Title:
176
+ {{ getComponent?.title }}
177
+ </p>
170
178
  <p class="whitespace-pre-line leading-5 mt-4">
171
179
  Component HTML:<br />
172
180
  {{ component.html_code }}
@@ -1,8 +1,8 @@
1
1
  <script setup>
2
- import SlideOverRightParent from '@/Components/PageBuilder/Slidebars/SlideOverRightParent.vue'
3
- import AdvancedPageBuilderSettings from '@/Components/PageBuilder/Settings/AdvancedPageBuilderSettings.vue'
2
+ import SlideOverRightParent from '../Slidebars/SlideOverRightParent.vue'
3
+ import AdvancedPageBuilderSettings from './AdvancedPageBuilderSettings.vue'
4
4
  import { ref, computed, inject } from 'vue'
5
- import fullHTMLContent from '@/utils/builder/html-doc-declaration-with-components'
5
+ import fullHTMLContent from '../../../utils/builder/html-doc-declaration-with-components'
6
6
  const version = __APP_VERSION__
7
7
 
8
8
  // Get stores from parent PageBuilder component
@@ -12,6 +12,10 @@ const showAdvancedSettingsSlideOverRight = ref(false)
12
12
  const titleSettingsSlideOverRight = ref('')
13
13
  const downloadedComponents = ref(null)
14
14
 
15
+ const getConfigPageBuilder = computed(() => {
16
+ return pageBuilderStateStore.getConfigPageBuilder
17
+ })
18
+
15
19
  // handle slideover window
16
20
  const handleAdvancedSettingsSlideOver = function () {
17
21
  titleSettingsSlideOverRight.value = 'Advanced Settings'
@@ -64,23 +68,310 @@ const handleDownloadHTML = function () {
64
68
  <AdvancedPageBuilderSettings></AdvancedPageBuilderSettings>
65
69
  </SlideOverRightParent>
66
70
  <!-- Advanced Settings - start -->
67
- <div class="mt-4 mb-4 py-8 border-b border-myPrimbryLightGrayColor">
68
- <div class="flex items-left flex-col gap-1">
69
- <h3 class="myQuaternaryHeader">Advanced Settings</h3>
71
+ <div
72
+ class="mt-4 mb-4 py-8 border-b border-myPrimbryLightGrayColor flex gap-4 flex-col divide-y divide-gray-300"
73
+ >
74
+ <div class="flex items-left flex-col gap-2">
75
+ <h3 class="myQuaternaryHeader">Selections Overview</h3>
70
76
  <p class="myPrimaryParagraph text-xs">
71
77
  Manage advanced settings here. Like an overview of Selected Element, Component, and
72
78
  Components in real-time.
73
79
  </p>
74
- <p class="myPrimaryParagraph text-xs pt-4">Page Builder Version: {{ version }}</p>
80
+
81
+ <div class="my-4">
82
+ <button
83
+ @click="handleAdvancedSettingsSlideOver"
84
+ type="button"
85
+ class="myPrimaryButton text-xs"
86
+ >
87
+ Open Overview
88
+ </button>
89
+ </div>
75
90
  </div>
76
- <div class="mt-4">
77
- <button
78
- @click="handleAdvancedSettingsSlideOver"
79
- type="button"
80
- class="myPrimaryButton text-xs"
81
- >
82
- Advanced Settings
83
- </button>
91
+
92
+ <!-- Advanced Settings - start -->
93
+ <div class="mt-4 mb-4 py-8 border-b border-myPrimbryLightGrayColor">
94
+ <div class="flex items-left flex-col gap-1">
95
+ <h3 class="myQuaternaryHeader">Configuration Overview</h3>
96
+ <p class="myPrimaryParagraph text-xs">
97
+ A summary of current user preferences, application settings, and system metadata
98
+ including UI theme, language, saved components, and logo configuration.
99
+ </p>
100
+ </div>
101
+ <!-- User Settings Table - start -->
102
+ <div class="mt-4">
103
+ <h4 class="myQuaternaryHeader text-sm mb-2">User Settings</h4>
104
+ <div class="overflow-hidden shadow ring-1 ring-black ring-opacity-5 md:rounded-lg">
105
+ <div class="overflow-x-auto">
106
+ <table class="min-w-full divide-y divide-gray-300">
107
+ <thead class="bg-gray-50">
108
+ <tr>
109
+ <th
110
+ scope="col"
111
+ class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
112
+ >
113
+ Setting
114
+ </th>
115
+ <th
116
+ scope="col"
117
+ class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
118
+ >
119
+ Value
120
+ </th>
121
+ </tr>
122
+ </thead>
123
+ <tbody class="bg-white divide-y divide-gray-200">
124
+ <tr v-if="getConfigPageBuilder?.userSettings?.theme">
125
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">
126
+ Theme
127
+ </td>
128
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
129
+ {{ getConfigPageBuilder.userSettings.theme }}
130
+ </td>
131
+ </tr>
132
+ <tr v-if="getConfigPageBuilder?.userSettings?.language">
133
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">
134
+ Language
135
+ </td>
136
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
137
+ {{ getConfigPageBuilder.userSettings.language }}
138
+ </td>
139
+ </tr>
140
+ <tr v-if="getConfigPageBuilder?.userSettings?.autoSave !== undefined">
141
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">
142
+ Auto Save
143
+ </td>
144
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
145
+ <span
146
+ class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium"
147
+ :class="
148
+ getConfigPageBuilder.userSettings.autoSave
149
+ ? 'bg-green-100 text-green-800'
150
+ : 'bg-red-100 text-red-800'
151
+ "
152
+ >
153
+ {{ getConfigPageBuilder.userSettings.autoSave ? 'Enabled' : 'Disabled' }}
154
+ </span>
155
+ </td>
156
+ </tr>
157
+ <tr v-if="getConfigPageBuilder?.userSettings?.notifications !== undefined">
158
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">
159
+ Notifications
160
+ </td>
161
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
162
+ <span
163
+ class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium"
164
+ :class="
165
+ getConfigPageBuilder.userSettings.notifications
166
+ ? 'bg-green-100 text-green-800'
167
+ : 'bg-red-100 text-red-800'
168
+ "
169
+ >
170
+ {{
171
+ getConfigPageBuilder.userSettings.notifications ? 'Enabled' : 'Disabled'
172
+ }}
173
+ </span>
174
+ </td>
175
+ </tr>
176
+ </tbody>
177
+ </table>
178
+ </div>
179
+ </div>
180
+ </div>
181
+ <!-- User Settings Table - end -->
182
+
183
+ <!-- Version Information Table - start -->
184
+ <div class="mt-8">
185
+ <h4 class="myQuaternaryHeader text-sm mb-2">Version Information</h4>
186
+ <div class="overflow-hidden shadow ring-1 ring-black ring-opacity-5 md:rounded-lg">
187
+ <div class="overflow-x-auto">
188
+ <table class="min-w-full divide-y divide-gray-300">
189
+ <thead class="bg-gray-50">
190
+ <tr>
191
+ <th
192
+ scope="col"
193
+ class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
194
+ >
195
+ Component
196
+ </th>
197
+ <th
198
+ scope="col"
199
+ class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
200
+ >
201
+ Version
202
+ </th>
203
+ </tr>
204
+ </thead>
205
+ <tbody class="bg-white divide-y divide-gray-200">
206
+ <tr>
207
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">
208
+ Page Builder
209
+ </td>
210
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
211
+ <span
212
+ class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-blue-100 text-blue-800"
213
+ >
214
+ {{ version }}
215
+ </span>
216
+ </td>
217
+ </tr>
218
+ </tbody>
219
+ </table>
220
+ </div>
221
+ </div>
222
+ </div>
223
+ <!-- Version Information Table - end -->
224
+
225
+ <!-- User Information Table - start -->
226
+ <div class="mt-8" v-if="getConfigPageBuilder?.userForPageBuilder">
227
+ <h4 class="myQuaternaryHeader text-sm mb-2">User Information</h4>
228
+ <div class="overflow-hidden shadow ring-1 ring-black ring-opacity-5 md:rounded-lg">
229
+ <div class="overflow-x-auto">
230
+ <table class="min-w-full divide-y divide-gray-300">
231
+ <thead class="bg-gray-50">
232
+ <tr>
233
+ <th
234
+ scope="col"
235
+ class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
236
+ >
237
+ Property
238
+ </th>
239
+ <th
240
+ scope="col"
241
+ class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
242
+ >
243
+ Value
244
+ </th>
245
+ </tr>
246
+ </thead>
247
+ <tbody class="bg-white divide-y divide-gray-200">
248
+ <tr>
249
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">
250
+ User Name
251
+ </td>
252
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
253
+ {{ getConfigPageBuilder.userForPageBuilder.name }}
254
+ </td>
255
+ </tr>
256
+ </tbody>
257
+ </table>
258
+ </div>
259
+ </div>
260
+ </div>
261
+ <!-- User Information Table - end -->
262
+
263
+ <!-- Operation Mode Table - start -->
264
+ <div class="mt-8" v-if="getConfigPageBuilder?.updateOrCreate">
265
+ <h4 class="myQuaternaryHeader text-sm mb-2">Operation Mode</h4>
266
+ <div class="overflow-hidden shadow ring-1 ring-black ring-opacity-5 md:rounded-lg">
267
+ <div class="overflow-x-auto">
268
+ <table class="min-w-full divide-y divide-gray-300">
269
+ <thead class="bg-gray-50">
270
+ <tr>
271
+ <th
272
+ scope="col"
273
+ class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
274
+ >
275
+ Mode
276
+ </th>
277
+ <th
278
+ scope="col"
279
+ class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
280
+ >
281
+ Description
282
+ </th>
283
+ </tr>
284
+ </thead>
285
+ <tbody class="bg-white divide-y divide-gray-200">
286
+ <tr>
287
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">
288
+ Current Operation
289
+ </td>
290
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
291
+ <span
292
+ class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium"
293
+ :class="
294
+ getConfigPageBuilder.updateOrCreate === 'create'
295
+ ? 'bg-green-100 text-green-800'
296
+ : 'bg-blue-100 text-blue-800'
297
+ "
298
+ >
299
+ {{
300
+ getConfigPageBuilder.updateOrCreate === 'create'
301
+ ? 'Creating new Resource'
302
+ : 'Updating existing Resource'
303
+ }}
304
+ </span>
305
+ </td>
306
+ </tr>
307
+ </tbody>
308
+ </table>
309
+ </div>
310
+ </div>
311
+ </div>
312
+ <!-- Operation Mode Table - end -->
313
+
314
+ <!-- Page Builder Logo Table - start -->
315
+ <div class="mt-8" v-if="getConfigPageBuilder?.pageBuilderLogo">
316
+ <h4 class="myQuaternaryHeader text-sm mb-2">Logo Configuration</h4>
317
+ <div class="overflow-hidden shadow ring-1 ring-black ring-opacity-5 md:rounded-lg">
318
+ <div class="overflow-x-auto">
319
+ <table class="min-w-full divide-y divide-gray-300">
320
+ <thead class="bg-gray-50">
321
+ <tr>
322
+ <th
323
+ scope="col"
324
+ class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
325
+ >
326
+ Property
327
+ </th>
328
+ <th
329
+ scope="col"
330
+ class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
331
+ >
332
+ Value
333
+ </th>
334
+ </tr>
335
+ </thead>
336
+ <tbody class="bg-white divide-y divide-gray-200">
337
+ <tr>
338
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">
339
+ Logo
340
+ </td>
341
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
342
+ <div class="flex items-center space-x-3">
343
+ <div class="border-r border-gray-200 pr-6">
344
+ <img
345
+ class="h-3"
346
+ :src="getConfigPageBuilder.pageBuilderLogo.src"
347
+ alt="Logo"
348
+ />
349
+ </div>
350
+ </div>
351
+ </td>
352
+ </tr>
353
+ <tr>
354
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">
355
+ Logo URL
356
+ </td>
357
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
358
+ <div class="flex items-center space-x-3">
359
+ <div class="border-r border-gray-200 pr-6">
360
+ <div class="flex items-center space-x-3">
361
+ <span class="whitespace-nowrap">{{
362
+ getConfigPageBuilder.pageBuilderLogo.src
363
+ }}</span>
364
+ </div>
365
+ </div>
366
+ </div>
367
+ </td>
368
+ </tr>
369
+ </tbody>
370
+ </table>
371
+ </div>
372
+ </div>
373
+ </div>
374
+ <!-- Page Builder Logo Table - end -->
84
375
  </div>
85
376
  </div>
86
377
  <!-- Advanced Settings - end -->
@@ -1,8 +1,8 @@
1
1
  <script setup>
2
- import Modal from '@/Components/Modals/Modal.vue'
3
- import NoneCustomSearchComponent from '@/Components/PageBuilder/DemoContent/NoneCustomSearchComponent.vue'
2
+ import ModalBuilder from '../Modals/ModalBuilder.vue'
3
+ import NoneCustomSearchComponent from '../PageBuilder/DemoContent/NoneCustomSearchComponent.vue'
4
4
 
5
- const props = defineProps({
5
+ defineProps({
6
6
  firstButtonText: {
7
7
  required: true,
8
8
  },
@@ -22,13 +22,19 @@ const props = defineProps({
22
22
  const emit = defineEmits(['firstModalButtonSearchComponentsFunction'])
23
23
 
24
24
  // first button function
25
- const firstButton = function () {
25
+ const firstButtonBuilder = function () {
26
26
  emit('firstModalButtonSearchComponentsFunction')
27
27
  }
28
28
  </script>
29
29
 
30
30
  <template>
31
- <Modal maxWidth="5xl" :show="show" @close="firstButton" minHeight="" maxHeight="">
31
+ <ModalBuilder
32
+ maxWidth="5xl"
33
+ :showModalBuilder="show"
34
+ @closeMainModalBuilder="firstButtonBuilder"
35
+ minHeight=""
36
+ maxHeight=""
37
+ >
32
38
  <div
33
39
  class="font-sans w-full relative inline-block align-bottom text-left overflow-hidden transform transition-all sm:align-middle"
34
40
  >
@@ -40,7 +46,7 @@ const firstButton = function () {
40
46
  </div>
41
47
  <div
42
48
  class="h-10 w-10 flex-start cursor-pointer rounded-full flex items-center border-none justify-center bg-gray-50 aspect-square hover:bg-myPrimaryLinkColor hover:text-white hover:fill-white focus-visible:ring-0"
43
- @click="firstButton"
49
+ @click="firstButtonBuilder"
44
50
  >
45
51
  <span class="material-symbols-outlined"> close </span>
46
52
  </div>
@@ -61,11 +67,11 @@ const firstButton = function () {
61
67
  ref="firstButtonRef"
62
68
  class="mySecondaryButton"
63
69
  type="button"
64
- @click="firstButton"
70
+ @click="firstButtonBuilder"
65
71
  >
66
72
  {{ firstButtonText }}
67
73
  </button>
68
74
  </div>
69
75
  </div>
70
- </Modal>
76
+ </ModalBuilder>
71
77
  </template>
@@ -1,6 +1,6 @@
1
1
  <script setup>
2
2
  import { inject } from 'vue'
3
- import PageBuilderClass from '@/composables/PageBuilderClass.ts'
3
+ import PageBuilderClass from '../../composables/PageBuilderClass.ts'
4
4
 
5
5
  // Get stores from parent PageBuilder component
6
6
  const pageBuilderStateStore = inject('pageBuilderStateStore')
@@ -1,10 +1,10 @@
1
1
  <script setup>
2
- import { Editor, useEditor, EditorContent } from '@tiptap/vue-3'
2
+ import { useEditor, EditorContent } from '@tiptap/vue-3'
3
3
  import StarterKit from '@tiptap/starter-kit'
4
4
  import { computed, onBeforeMount, onMounted, ref, watch, inject } from 'vue'
5
- import PageBuilderClass from '@/composables/PageBuilderClass.ts'
5
+ import PageBuilderClass from '../../composables/PageBuilderClass.ts'
6
6
  import Link from '@tiptap/extension-link'
7
- import DynamicModal from '@/Components/Modals/DynamicModal.vue'
7
+ import DynamicModalBuilder from '../Modals/DynamicModalBuilder.vue'
8
8
 
9
9
  // Get stores from parent PageBuilder component
10
10
  const pageBuilderStateStore = inject('pageBuilderStateStore')
@@ -20,9 +20,9 @@ const firstButtonModal = ref('')
20
20
  const secondButtonModal = ref(null)
21
21
  const thirdButtonModal = ref(null)
22
22
  // set dynamic modal handle functions
23
- const firstModalButtonFunction = ref(null)
24
- const secondModalButtonFunction = ref(null)
25
- const thirdModalButtonFunction = ref(null)
23
+ const firstModalButtonFunctionDynamicModalBuilder = ref(null)
24
+ const secondModalButtonFunctionDynamicModalBuilder = ref(null)
25
+ const thirdModalButtonFunctionDynamicModalBuilder = ref(null)
26
26
 
27
27
  const pageBuilderClass = new PageBuilderClass(pageBuilderStateStore)
28
28
 
@@ -79,8 +79,6 @@ watch(textContent, (newValue) => {
79
79
  }
80
80
  })
81
81
 
82
- // pageBuilderClass.selectedElementIsValidText(newValue);
83
-
84
82
  const TipTapSetContent = function () {
85
83
  if (!pageBuilderClass.selectedElementIsValidText()) return
86
84
 
@@ -114,19 +112,19 @@ const handleURL = function () {
114
112
  thirdButtonModal.value = 'Save'
115
113
 
116
114
  // handle click
117
- firstModalButtonFunction.value = function () {
115
+ firstModalButtonFunctionDynamicModalBuilder.value = function () {
118
116
  showModalUrl.value = false
119
117
  urlError.value = null
120
118
  }
121
119
 
122
120
  // handle click
123
- secondModalButtonFunction.value = function () {
121
+ secondModalButtonFunctionDynamicModalBuilder.value = function () {
124
122
  editor.value.chain().focus().extendMarkRange('link').unsetLink().run()
125
123
  showModalUrl.value = false
126
124
  }
127
125
 
128
126
  // handle click
129
- thirdModalButtonFunction.value = function () {
127
+ thirdModalButtonFunctionDynamicModalBuilder.value = function () {
130
128
  const isNotValidated = validateURL()
131
129
  if (isNotValidated) {
132
130
  return
@@ -179,8 +177,8 @@ onMounted(() => {
179
177
  </script>
180
178
  <template>
181
179
  <div>
182
- <DynamicModal
183
- :showDynamicModal="showModalUrl"
180
+ <DynamicModalBuilder
181
+ :showDynamicModalBuilder="showModalUrl"
184
182
  :type="typeModal"
185
183
  :gridColumnAmount="gridColumnModal"
186
184
  :title="titleModal"
@@ -188,9 +186,9 @@ onMounted(() => {
188
186
  :firstButtonText="firstButtonModal"
189
187
  :secondButtonText="secondButtonModal"
190
188
  :thirdButtonText="thirdButtonModal"
191
- @firstModalButtonFunction="firstModalButtonFunction"
192
- @secondModalButtonFunction="secondModalButtonFunction"
193
- @thirdModalButtonFunction="thirdModalButtonFunction"
189
+ @firstModalButtonFunctionDynamicModalBuilder="firstModalButtonFunctionDynamicModalBuilder"
190
+ @secondModalButtonFunctionDynamicModalBuilder="secondModalButtonFunctionDynamicModalBuilder"
191
+ @thirdModalButtonFunctionDynamicModalBuilder="thirdModalButtonFunctionDynamicModalBuilder"
194
192
  >
195
193
  <header></header>
196
194
  <main>
@@ -204,7 +202,7 @@ onMounted(() => {
204
202
  </div>
205
203
  </div>
206
204
  </main>
207
- </DynamicModal>
205
+ </DynamicModalBuilder>
208
206
 
209
207
  <div class="blockease-linear duration-200 block ease-linear">
210
208
  <div v-if="pageBuilderClass.selectedElementIsValidText() && editor">