@myissue/vue-website-page-builder 3.2.94 → 3.2.96

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
  {
2
2
  "name": "@myissue/vue-website-page-builder",
3
- "version": "v3.2.94",
3
+ "version": "v3.2.96",
4
4
  "description": "Vue 3 page builder component with drag & drop functionality.",
5
5
  "type": "module",
6
6
  "main": "./dist/vue-website-page-builder.umd.cjs",
@@ -188,12 +188,7 @@ const openHTMLSettings = function () {
188
188
 
189
189
  <!-- Delete Layout Start -->
190
190
  <button
191
- @click="
192
- () => {
193
- pageBuilderService.clearHtmlSelection()
194
- deleteAllComponents()
195
- }
196
- "
191
+ @click="deleteAllComponents"
197
192
  class="pbx-cursor-pointer lg:pbx-flex pbx-myPrimaryTag pbx-font-normal pbx-w-max pbx-border-none pbx-m-0 pbx-bg-myPrimaryErrorColor pbx-text-white"
198
193
  type="button"
199
194
  >
@@ -102,10 +102,6 @@ const handleAddComponent = async function () {
102
102
  // end modal
103
103
  }
104
104
 
105
- const getHasLocalDraftForUpdate = computed(() => {
106
- return pageBuilderStateStore.getHasLocalDraftForUpdate
107
- })
108
-
109
105
  const getElement = computed(() => {
110
106
  return pageBuilderStateStore.getElement
111
107
  })
@@ -114,6 +110,10 @@ const getComponents = computed(() => {
114
110
  return pageBuilderStateStore.getComponents
115
111
  })
116
112
 
113
+ const getHasLocalDraftForUpdate = computed(() => {
114
+ return pageBuilderStateStore.getHasLocalDraftForUpdate
115
+ })
116
+
117
117
  watch(getHasLocalDraftForUpdate, (newVal) => {
118
118
  if (newVal) {
119
119
  handlerRumeEditingForUpdate()
@@ -168,11 +168,11 @@ const getIsSaving = computed(() => {
168
168
  return pageBuilderStateStore.getIsSaving
169
169
  })
170
170
 
171
- const getIsResumeEditing = computed(() => {
172
- if (pageBuilderStateStore.getIsResumeEditing) {
171
+ const getIsLoadingResumeEditing = computed(() => {
172
+ if (pageBuilderStateStore.getIsLoadingResumeEditing) {
173
173
  handlerRumeEditingForUpdate()
174
174
  }
175
- return pageBuilderStateStore.getIsResumeEditing
175
+ return pageBuilderStateStore.getIsLoadingResumeEditing
176
176
  })
177
177
  const getIsRestoring = computed(() => {
178
178
  return pageBuilderStateStore.getIsRestoring
@@ -340,7 +340,7 @@ onMounted(async () => {
340
340
 
341
341
  <DynamicModalBuilder
342
342
  :showDynamicModalBuilder="showModalResumeEditing"
343
- :isLoading="getIsResumeEditing"
343
+ :isLoading="getIsLoadingResumeEditing"
344
344
  :type="typeModal"
345
345
  :gridColumnAmount="gridColumnModalResumeEditing"
346
346
  :title="titleModalResumeEditing"
@@ -203,7 +203,6 @@ export class PageBuilderService {
203
203
  this.pageBuilderStateStore.setIsLoadingGlobal(true)
204
204
 
205
205
  // Wait briefly to ensure UI updates and async processes settle
206
- await this.delay(300)
207
206
 
208
207
  // Store the provided config in the builder's state store
209
208
  this.pageBuilderStateStore.setPageBuilderConfig(config)
@@ -214,24 +213,27 @@ export class PageBuilderService {
214
213
  // Update the localStorage key name based on the config/resource
215
214
  this.#updateLocalStorageItemName()
216
215
 
217
- // If there is a local draft for this resource, mark it in the state
218
- if (await this.#hasLocalDraftForUpdate()) {
219
- this.pageBuilderStateStore.setHasLocalDraftForUpdate(true)
220
- }
216
+ this.#completeBuilderInitialization()
217
+ }
221
218
 
222
- // Clean up any old localStorage items related to previous builder sessions
223
- this.deleteOldPageBuilderLocalStorage()
219
+ async #completeBuilderInitialization() {
220
+ this.pageBuilderStateStore.setIsLoadingGlobal(true)
224
221
 
225
- // Deselect any selected or hovered elements in the builder UI
226
- await this.clearHtmlSelection()
227
- // Wait for Vue to finish DOM updates before attaching event listeners. This ensure elements exist in the DOM.
228
- await nextTick()
229
- // Attach event listeners to all editable elements in the Builder
230
- await this.#addListenersToEditableElements()
222
+ const pagebuilder = document.querySelector('#pagebuilder')
223
+ if (!pagebuilder) return
224
+
225
+ await this.delay(300)
231
226
 
232
227
  // Hide the global loading indicator and mark the builder as started
233
228
  this.pageBuilderStateStore.setIsLoadingGlobal(false)
234
229
  this.pageBuilderStateStore.setBuilderStarted(true)
230
+
231
+ // If there is a local draft for this resource, mark it in the state
232
+ if (await this.hasLocalDraftForUpdate()) {
233
+ this.pageBuilderStateStore.setHasLocalDraftForUpdate(true)
234
+ }
235
+ // Clean up any old localStorage items related to previous builder sessions
236
+ this.deleteOldPageBuilderLocalStorage()
235
237
  }
236
238
 
237
239
  #applyElementClassChanges(
@@ -1270,7 +1272,12 @@ export class PageBuilderService {
1270
1272
  }
1271
1273
  }
1272
1274
 
1273
- async #hasLocalDraftForUpdate(): Promise<boolean> {
1275
+ async hasLocalDraftForUpdate(): Promise<boolean> {
1276
+ const pagebuilder = document.querySelector('#pagebuilder')
1277
+ if (!pagebuilder) {
1278
+ return true
1279
+ }
1280
+
1274
1281
  if (this.hasStartedEditing) return false
1275
1282
 
1276
1283
  if (
@@ -1284,12 +1291,9 @@ export class PageBuilderService {
1284
1291
  const draft = localStorage.getItem(key)
1285
1292
  if (draft) {
1286
1293
  try {
1287
- await this.delay(500)
1294
+ await this.delay(1000)
1288
1295
 
1289
1296
  return true
1290
- // const dbComponents = this.getComponents.value
1291
- // const draftParsed = JSON.parse(draft)
1292
- // return JSON.stringify(draftParsed.components) !== JSON.stringify(dbComponents)
1293
1297
  } catch (err) {
1294
1298
  console.error('Unable to mount components to DOM.', err)
1295
1299
  return false
@@ -1319,10 +1323,10 @@ export class PageBuilderService {
1319
1323
  const updateDraftFromLocalStorage = localStorage.getItem(key)
1320
1324
 
1321
1325
  if (typeof updateDraftFromLocalStorage === 'string') {
1322
- this.pageBuilderStateStore.setIsResumeEditing(true)
1326
+ this.pageBuilderStateStore.setIsLoadingResumeEditing(true)
1323
1327
  await delay(500)
1324
1328
  this.mountComponentsToDOM(updateDraftFromLocalStorage)
1325
- this.pageBuilderStateStore.setIsResumeEditing(false)
1329
+ this.pageBuilderStateStore.setIsLoadingResumeEditing(false)
1326
1330
  }
1327
1331
  }
1328
1332
  }
@@ -1858,6 +1862,7 @@ export class PageBuilderService {
1858
1862
  if (this.pendingMountData && document.querySelector('#pagebuilder')) {
1859
1863
  await this.mountComponentsToDOM(this.pendingMountData)
1860
1864
  this.pendingMountData = null
1865
+ this.#completeBuilderInitialization()
1861
1866
  }
1862
1867
  }
1863
1868
 
@@ -277,7 +277,7 @@ export const usePageBuilderStateStore = defineStore('pageBuilderState', {
277
277
  getIsLoadingGlobal: (state: PageBuilderState): boolean => state.isLoadingGlobal,
278
278
  getIsSaving: (state: PageBuilderState): boolean => state.isSaving,
279
279
  getHasLocalDraftForUpdate: (state: PageBuilderState): boolean => state.hasLocalDraftForUpdate,
280
- getIsResumeEditing: (state: PageBuilderState): boolean => state.isResumeEditing,
280
+ getIsLoadingResumeEditing: (state: PageBuilderState): boolean => state.isResumeEditing,
281
281
  getIsRestoring: (state: PageBuilderState): boolean => state.isRestoring,
282
282
  },
283
283
  actions: {
@@ -475,7 +475,7 @@ export const usePageBuilderStateStore = defineStore('pageBuilderState', {
475
475
  setHasLocalDraftForUpdate(payload: boolean): void {
476
476
  this.hasLocalDraftForUpdate = payload
477
477
  },
478
- setIsResumeEditing(payload: boolean): void {
478
+ setIsLoadingResumeEditing(payload: boolean): void {
479
479
  this.isResumeEditing = payload
480
480
  },
481
481
  setIsRestoring(payload: boolean): void {
@@ -1,4 +1,4 @@
1
- import type PageBuilderService from '../composables/PageBuilderService.ts'
1
+ import type { PageBuilderService } from '../composables/PageBuilderService.ts'
2
2
 
3
3
  export interface PageBuilderState {
4
4
  // ...other state properties...