@myissue/vue-website-page-builder 3.3.63 → 3.3.65
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 +147 -126
- package/dist/logo/mybuilder_new_lowercase.svg +17558 -0
- package/dist/vue-website-page-builder.css +1 -1
- package/dist/vue-website-page-builder.js +7326 -6943
- package/dist/vue-website-page-builder.umd.cjs +54 -51
- package/package.json +2 -2
- package/src/Components/DemoUnsplash.vue +1 -4
- package/src/Components/PageBuilder/EditorMenu/Editables/BackgroundColorEditor.vue +2 -1
- package/src/Components/PageBuilder/EditorMenu/Editables/BorderRadius.vue +18 -5
- package/src/Components/PageBuilder/EditorMenu/Editables/Borders.vue +6 -4
- package/src/Components/PageBuilder/EditorMenu/Editables/ClassEditor.vue +2 -1
- package/src/Components/PageBuilder/EditorMenu/Editables/EditGetElement.vue +5 -5
- package/src/Components/PageBuilder/EditorMenu/Editables/ManageBackgroundOpacity.vue +7 -8
- package/src/Components/PageBuilder/EditorMenu/Editables/ManageOpacity.vue +2 -2
- package/src/Components/PageBuilder/EditorMenu/Editables/Margin.vue +4 -2
- package/src/Components/PageBuilder/EditorMenu/Editables/Padding.vue +4 -2
- package/src/Components/PageBuilder/EditorMenu/Editables/StyleEditor.vue +115 -0
- package/src/Components/PageBuilder/EditorMenu/Editables/TextColorEditor.vue +2 -1
- package/src/Components/PageBuilder/EditorMenu/Editables/Typography.vue +14 -7
- package/src/Components/PageBuilder/EditorMenu/RightSidebarEditor.vue +56 -64
- package/src/Components/PageBuilder/ToolbarOption/ToolbarOption.vue +10 -7
- package/src/PageBuilder/PageBuilder.vue +89 -63
- package/src/PageBuilder/Preview.vue +25 -9
- package/src/composables/extractCleanHTMLFromPageBuilder.ts +4 -3
- package/src/css/app.css +10 -70
- package/src/services/LocalStorageManager.ts +1 -162
- package/src/services/PageBuilderService.ts +586 -265
- package/src/stores/page-builder-state.ts +8 -0
- package/src/tests/PageBuilderTest.vue +20 -19
- package/src/tests/componentsArray.test.json +3 -3
- package/src/types/index.ts +10 -2
- package/src/utils/html-elements/component.ts +10 -10
package/src/css/app.css
CHANGED
|
@@ -384,33 +384,10 @@
|
|
|
384
384
|
margin-left: 1em; /* Adjust this value as needed */
|
|
385
385
|
}
|
|
386
386
|
|
|
387
|
-
#
|
|
388
|
-
border-radius: 9999px;
|
|
389
|
-
position: absolute;
|
|
390
|
-
opacity: 0;
|
|
391
|
-
pointer-events: none;
|
|
392
|
-
transform: translateY(1rem);
|
|
393
|
-
transition:
|
|
394
|
-
opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
|
|
395
|
-
transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
396
|
-
box-shadow:
|
|
397
|
-
0 8px 24px rgba(0, 0, 0, 0.08),
|
|
398
|
-
0 1.5px 4px rgba(0, 0, 0, 0.06);
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
[selected]:hover #settingsPanel,
|
|
402
|
-
[selected]:focus-within #settingsPanel {
|
|
403
|
-
opacity: 1;
|
|
404
|
-
pointer-events: auto;
|
|
405
|
-
transform: translateY(0);
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
#editToolbar {
|
|
387
|
+
#pbxEditToolbar {
|
|
409
388
|
opacity: 0;
|
|
410
389
|
pointer-events: none;
|
|
411
390
|
transform: translateY(0.1rem) scale(0.1);
|
|
412
|
-
|
|
413
|
-
border-radius: 9999px;
|
|
414
391
|
transition:
|
|
415
392
|
left 0.3s cubic-bezier(0.4, 0, 0.2, 1),
|
|
416
393
|
top 0.3s cubic-bezier(0.4, 0, 0.2, 1),
|
|
@@ -422,28 +399,23 @@
|
|
|
422
399
|
border-radius 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
423
400
|
}
|
|
424
401
|
|
|
425
|
-
#
|
|
402
|
+
#pbxEditToolbar.is-visible {
|
|
426
403
|
opacity: 1;
|
|
427
404
|
pointer-events: auto;
|
|
428
405
|
transform: translateY(0) scale(1);
|
|
429
|
-
min-width:
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
#contains-pagebuilder {
|
|
436
|
-
position: relative; /* make this the positioning context for absolute children */
|
|
437
|
-
overflow-y: auto;
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
.smooth-transition {
|
|
441
|
-
transition: opacity 0.3s ease-in-out;
|
|
406
|
+
min-width: 4rem;
|
|
407
|
+
padding-right: 1rem;
|
|
408
|
+
padding-left: 1rem;
|
|
409
|
+
height: 2.2rem;
|
|
442
410
|
}
|
|
443
411
|
|
|
444
412
|
/* Manage P, Link, H1, H2 # end */
|
|
445
413
|
|
|
446
414
|
/* CSS for content inside page builder # start */
|
|
415
|
+
#pagebuilder {
|
|
416
|
+
position: relative;
|
|
417
|
+
overflow-y: auto;
|
|
418
|
+
}
|
|
447
419
|
#pagebuilder a {
|
|
448
420
|
pointer-events: none;
|
|
449
421
|
}
|
|
@@ -519,38 +491,6 @@
|
|
|
519
491
|
padding: 0rem;
|
|
520
492
|
}
|
|
521
493
|
|
|
522
|
-
/* Add overflow-x property to enable horizontal scrollbar */
|
|
523
|
-
.scrollable {
|
|
524
|
-
overflow-x: auto;
|
|
525
|
-
overflow-y: auto;
|
|
526
|
-
/* Add any other desired styles for the scrollable element */
|
|
527
|
-
}
|
|
528
|
-
/* Scrollbar Styles - end */
|
|
529
|
-
|
|
530
|
-
/* Scrollbar Styles - start */
|
|
531
|
-
/* Firefox */
|
|
532
|
-
* {
|
|
533
|
-
scrollbar-width: thin;
|
|
534
|
-
scrollbar-color: black transparent;
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
*::-webkit-scrollbar-track {
|
|
538
|
-
background: transparent;
|
|
539
|
-
border-radius: 25px;
|
|
540
|
-
}
|
|
541
|
-
|
|
542
|
-
/* Chrome, Edge, and Safari */
|
|
543
|
-
*::-webkit-scrollbar {
|
|
544
|
-
width: 6px;
|
|
545
|
-
height: 6px; /* Add height for horizontal scrollbar */
|
|
546
|
-
}
|
|
547
|
-
|
|
548
|
-
*::-webkit-scrollbar-thumb {
|
|
549
|
-
background-color: black;
|
|
550
|
-
border-radius: 25px;
|
|
551
|
-
border: none;
|
|
552
|
-
}
|
|
553
|
-
|
|
554
494
|
#pagebuilder[data-global-selected] {
|
|
555
495
|
outline: 4px dashed #b91010 !important;
|
|
556
496
|
outline-offset: -2px !important;
|
|
@@ -1,162 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export class LocalStorageManager {
|
|
4
|
-
private pageBuilderStateStore: ReturnType<typeof usePageBuilderStateStore>
|
|
5
|
-
private sanitizeForLocalStorage: (input: string) => string
|
|
6
|
-
|
|
7
|
-
constructor(
|
|
8
|
-
pageBuilderStateStore: ReturnType<typeof usePageBuilderStateStore>,
|
|
9
|
-
sanitizeForLocalStorage: (input: string) => string,
|
|
10
|
-
) {
|
|
11
|
-
this.pageBuilderStateStore = pageBuilderStateStore
|
|
12
|
-
this.sanitizeForLocalStorage = sanitizeForLocalStorage
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
public updateLocalStorageItemName(): void {
|
|
16
|
-
const formtype =
|
|
17
|
-
this.pageBuilderStateStore.getPageBuilderConfig &&
|
|
18
|
-
this.pageBuilderStateStore.getPageBuilderConfig.updateOrCreate &&
|
|
19
|
-
this.pageBuilderStateStore.getPageBuilderConfig.updateOrCreate.formType
|
|
20
|
-
|
|
21
|
-
const formname =
|
|
22
|
-
this.pageBuilderStateStore.getPageBuilderConfig &&
|
|
23
|
-
this.pageBuilderStateStore.getPageBuilderConfig.updateOrCreate &&
|
|
24
|
-
this.pageBuilderStateStore.getPageBuilderConfig.updateOrCreate.formName
|
|
25
|
-
|
|
26
|
-
const resourceData =
|
|
27
|
-
this.pageBuilderStateStore.getPageBuilderConfig &&
|
|
28
|
-
this.pageBuilderStateStore.getPageBuilderConfig.resourceData
|
|
29
|
-
|
|
30
|
-
// Logic for create resource
|
|
31
|
-
if (formtype === 'create') {
|
|
32
|
-
if (formname && formname.length > 0) {
|
|
33
|
-
this.pageBuilderStateStore.setLocalStorageItemName(
|
|
34
|
-
`page-builder-create-resource-${this.sanitizeForLocalStorage(formname)}`,
|
|
35
|
-
)
|
|
36
|
-
return
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
this.pageBuilderStateStore.setLocalStorageItemName(`page-builder-create-resource`)
|
|
40
|
-
return
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// Logic for create
|
|
44
|
-
// Logic for update and with resource form name
|
|
45
|
-
if (formtype === 'update') {
|
|
46
|
-
if (typeof formname === 'string' && formname.length > 0) {
|
|
47
|
-
//
|
|
48
|
-
//
|
|
49
|
-
if (resourceData && resourceData != null && !resourceData.title) {
|
|
50
|
-
// Check if id is missing, null, undefined, or an empty string (after trimming)
|
|
51
|
-
if (!resourceData.id || typeof resourceData.id === 'string') {
|
|
52
|
-
this.pageBuilderStateStore.setLocalStorageItemName(
|
|
53
|
-
`page-builder-update-resource-${this.sanitizeForLocalStorage(formname)}`,
|
|
54
|
-
)
|
|
55
|
-
return
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Runs when resourceData has title but no ID
|
|
60
|
-
if (resourceData && resourceData != null) {
|
|
61
|
-
if (
|
|
62
|
-
resourceData.title &&
|
|
63
|
-
typeof resourceData.title === 'string' &&
|
|
64
|
-
resourceData.title.length > 0
|
|
65
|
-
) {
|
|
66
|
-
if (!resourceData.id || typeof resourceData.id === 'string') {
|
|
67
|
-
this.pageBuilderStateStore.setLocalStorageItemName(
|
|
68
|
-
`page-builder-update-resource-${this.sanitizeForLocalStorage(formname)}-${this.sanitizeForLocalStorage(resourceData.title)}`,
|
|
69
|
-
)
|
|
70
|
-
return
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// Runs when resourceData has ID but no title
|
|
76
|
-
if (resourceData && resourceData != null) {
|
|
77
|
-
if (!resourceData.title && typeof resourceData.title !== 'string') {
|
|
78
|
-
if (resourceData.id || typeof resourceData.id === 'number') {
|
|
79
|
-
this.pageBuilderStateStore.setLocalStorageItemName(
|
|
80
|
-
`page-builder-update-resource-${this.sanitizeForLocalStorage(formname)}-${this.sanitizeForLocalStorage(String(resourceData.id))}`,
|
|
81
|
-
)
|
|
82
|
-
return
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// Runs when resourceData has both title and ID
|
|
88
|
-
if (resourceData && resourceData != null) {
|
|
89
|
-
if (
|
|
90
|
-
resourceData.title &&
|
|
91
|
-
typeof resourceData.title === 'string' &&
|
|
92
|
-
resourceData.title.length > 0
|
|
93
|
-
) {
|
|
94
|
-
if (resourceData.id || typeof resourceData.id === 'number') {
|
|
95
|
-
this.pageBuilderStateStore.setLocalStorageItemName(
|
|
96
|
-
`page-builder-update-resource-${this.sanitizeForLocalStorage(formname)}-${this.sanitizeForLocalStorage(resourceData.title)}-${this.sanitizeForLocalStorage(String(resourceData.id))}`,
|
|
97
|
-
)
|
|
98
|
-
return
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// Logic for update without without formname
|
|
105
|
-
if (!formname || (typeof formname === 'string' && formname.length === 0)) {
|
|
106
|
-
//
|
|
107
|
-
//
|
|
108
|
-
if (resourceData && resourceData != null && !resourceData.title) {
|
|
109
|
-
// Check if id is missing, null, undefined, or an empty string (after trimming)
|
|
110
|
-
if (!resourceData.id || typeof resourceData.id === 'string') {
|
|
111
|
-
this.pageBuilderStateStore.setLocalStorageItemName(`page-builder-update-resource`)
|
|
112
|
-
return
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// Runs when resourceData has title but no ID
|
|
117
|
-
if (resourceData && resourceData != null) {
|
|
118
|
-
if (
|
|
119
|
-
resourceData.title &&
|
|
120
|
-
typeof resourceData.title === 'string' &&
|
|
121
|
-
resourceData.title.length > 0
|
|
122
|
-
) {
|
|
123
|
-
if (!resourceData.id || typeof resourceData.id === 'string') {
|
|
124
|
-
this.pageBuilderStateStore.setLocalStorageItemName(
|
|
125
|
-
`page-builder-update-resource-${this.sanitizeForLocalStorage(resourceData.title)}`,
|
|
126
|
-
)
|
|
127
|
-
return
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// Runs when resourceData has ID but no title
|
|
133
|
-
if (resourceData && resourceData != null) {
|
|
134
|
-
if (!resourceData.title && typeof resourceData.title !== 'string') {
|
|
135
|
-
if (resourceData.id || typeof resourceData.id === 'number') {
|
|
136
|
-
this.pageBuilderStateStore.setLocalStorageItemName(
|
|
137
|
-
`page-builder-update-resource-${this.sanitizeForLocalStorage(String(resourceData.id))}`,
|
|
138
|
-
)
|
|
139
|
-
return
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
// Runs when resourceData has both title and ID
|
|
145
|
-
if (resourceData && resourceData != null) {
|
|
146
|
-
if (
|
|
147
|
-
resourceData.title &&
|
|
148
|
-
typeof resourceData.title === 'string' &&
|
|
149
|
-
resourceData.title.length > 0
|
|
150
|
-
) {
|
|
151
|
-
if (resourceData.id || typeof resourceData.id === 'number') {
|
|
152
|
-
this.pageBuilderStateStore.setLocalStorageItemName(
|
|
153
|
-
`page-builder-update-resource-${this.sanitizeForLocalStorage(resourceData.title)}-${this.sanitizeForLocalStorage(String(resourceData.id))}`,
|
|
154
|
-
)
|
|
155
|
-
return
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
1
|
+
export class LocalStorageManager {}
|