@g1cloud/page-builder-editor 1.0.0-alpha.9 → 1.0.0-alpha.90

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 (119) hide show
  1. package/css/page-builder-editor.css +390 -0
  2. package/css/page-builder-viewer.css +196 -0
  3. package/dist/PageBuilderEditor.vue.d.ts +22 -11
  4. package/dist/PbHtmlEditorModal-C0MLYY66.js +193 -0
  5. package/dist/PbPropertyEditorBoolean-c5CNiTpt.js +38 -0
  6. package/dist/{PbPropertyEditorColor-BKtQDQKF.js → PbPropertyEditorColor-CV7Eyx43.js} +8 -9
  7. package/dist/{PbPropertyEditorText-BWOKvwD9.js → PbPropertyEditorCssLength-CjIRghZ9.js} +10 -9
  8. package/dist/PbPropertyEditorHtml-DEvzZBKw.js +62 -0
  9. package/dist/PbPropertyEditorImage-DP66HfAu.js +106 -0
  10. package/dist/{PbPropertyEditorMultilineText-DT15P558.js → PbPropertyEditorMultilineText-TsmjwWC-.js} +28 -27
  11. package/dist/PbPropertyEditorNumber-B76ArSb5.js +47 -0
  12. package/dist/{PbPropertyEditorReadonlyText-Dgp_AVOD.js → PbPropertyEditorReadonlyText-BJ5qx69O.js} +6 -6
  13. package/dist/{PbPropertyEditorSelect-CWedbXJI.js → PbPropertyEditorSelect-B5sfulvx.js} +5 -6
  14. package/dist/PbPropertyEditorText-CRoHgErz.js +50 -0
  15. package/dist/PbPropertyEditorYoutube-ChoPIEtL.js +40 -0
  16. package/dist/PbScreenSelectModal-57LXAzjs.js +69 -0
  17. package/dist/PbWidgetAddModal-C8KdBf8L.js +79 -0
  18. package/dist/PbYoutubeModal-CU8sClMD.js +73 -0
  19. package/dist/components/canvas/PbCanvas.vue.d.ts +1 -1
  20. package/dist/components/depart/PbLoginDepart.vue.d.ts +3 -3
  21. package/dist/components/menu/PbMenu.vue.d.ts +16 -1
  22. package/dist/components/menu/PbToolbar.vue.d.ts +16 -1
  23. package/dist/components/menu/PbToolbarButton.vue.d.ts +3 -3
  24. package/dist/components/menu/PbToolbarButtonGroup.vue.d.ts +3 -3
  25. package/dist/components/modal/PbHtmlEditorModal.vue.d.ts +28 -0
  26. package/dist/components/modal/PbPartAddModal.vue.d.ts +4 -4
  27. package/dist/components/modal/PbScreenSelectModal.vue.d.ts +6 -0
  28. package/dist/components/modal/PbWidgetAddModal.vue.d.ts +4 -4
  29. package/dist/components/modal/PbYoutubeModal.vue.d.ts +19 -0
  30. package/dist/components/navigator/PbNavigator.vue.d.ts +1 -1
  31. package/dist/components/part/PbAddWidgetButton.vue.d.ts +1 -1
  32. package/dist/components/part/PbBlock.vue.d.ts +7 -3
  33. package/dist/components/part/PbPage.vue.d.ts +5 -5
  34. package/dist/components/part/PbPageFrame.vue.d.ts +19 -0
  35. package/dist/components/part/PbSection.vue.d.ts +7 -3
  36. package/dist/components/part/PbWidget.vue.d.ts +5 -3
  37. package/dist/components/sidebar/PbSidebar.vue.d.ts +1 -1
  38. package/dist/components/sidebar/PbSidebarProperties.vue.d.ts +1 -1
  39. package/dist/components/sidebar/PbSidebarPropertyEditor.vue.d.ts +3 -3
  40. package/dist/components/sidebar/PbSidebarPropertyGroupEditor.vue.d.ts +3 -3
  41. package/dist/components/sidebar/property/{PbPropertyEditorProduct.vue.d.ts → PbPropertyEditorBoolean.vue.d.ts} +4 -4
  42. package/dist/components/sidebar/property/PbPropertyEditorColor.vue.d.ts +4 -4
  43. package/dist/components/sidebar/property/PbPropertyEditorCssLength.vue.d.ts +23 -0
  44. package/dist/components/sidebar/property/PbPropertyEditorHtml.vue.d.ts +4 -4
  45. package/dist/components/sidebar/property/PbPropertyEditorImage.vue.d.ts +5 -9
  46. package/dist/components/sidebar/property/PbPropertyEditorMultilineText.vue.d.ts +7 -6
  47. package/dist/components/sidebar/property/PbPropertyEditorNumber.vue.d.ts +23 -0
  48. package/dist/components/sidebar/property/PbPropertyEditorReadonlyText.vue.d.ts +3 -3
  49. package/dist/components/sidebar/property/PbPropertyEditorSelect.vue.d.ts +4 -4
  50. package/dist/components/sidebar/property/PbPropertyEditorText.vue.d.ts +9 -8
  51. package/dist/components/sidebar/property/{PbPropertyLocalMarketingPart.vue.d.ts → PbPropertyEditorYoutube.vue.d.ts} +9 -9
  52. package/dist/components/sidebar/property/PbPropertyGroupEditorBackground.vue.d.ts +3 -3
  53. package/dist/components/sidebar/property/PbPropertyGroupEditorBorder.vue.d.ts +3 -3
  54. package/dist/components/sidebar/property/PbPropertyGroupEditorMargin.vue.d.ts +3 -3
  55. package/dist/components/sidebar/property/PbPropertyGroupEditorMedia.vue.d.ts +20 -0
  56. package/dist/components/sidebar/property/PbPropertyGroupEditorPadding.vue.d.ts +3 -3
  57. package/dist/components/sidebar/property/PbPropertyGroupEditorPosition.vue.d.ts +3 -3
  58. package/dist/components/sidebar/property/PbPropertyGroupEditorSize.vue.d.ts +3 -3
  59. package/dist/components/ui/PbColorPicker.vue.d.ts +16 -7
  60. package/dist/directives/vPartHandler.d.ts +1 -0
  61. package/dist/{index-DQ22qk5v.js → index-BIJmWULZ.js} +5197 -2141
  62. package/dist/index.d.ts +6 -0
  63. package/dist/model/command.d.ts +47 -34
  64. package/dist/model/context.d.ts +19 -19
  65. package/dist/model/default-part-property-group.d.ts +8 -2
  66. package/dist/model/event.d.ts +0 -56
  67. package/dist/model/model.d.ts +6 -2
  68. package/dist/model/page-builder-editor.d.ts +39 -10
  69. package/dist/model/page-builder-util.d.ts +2 -0
  70. package/dist/model/part-definintion.d.ts +2 -2
  71. package/dist/model/part-manager.d.ts +2 -1
  72. package/dist/model/part-property.d.ts +4 -3
  73. package/dist/model/plugin.d.ts +23 -0
  74. package/dist/page-builder-editor.js +20 -17
  75. package/dist/page-builder-editor.umd.cjs +5957 -2512
  76. package/dist/style.css +382 -1
  77. package/dist/text/text.d.ts +1 -0
  78. package/dist/utils/common.d.ts +1 -0
  79. package/package.json +13 -8
  80. package/scss/canvas.scss +29 -0
  81. package/{css/canvas-block.scss → scss/page-block.scss} +15 -3
  82. package/scss/page-builder-editor.scss +326 -0
  83. package/scss/page-builder-viewer.scss +1 -0
  84. package/{css/canvas-page.scss → scss/page-page.scss} +25 -16
  85. package/{css/canvas-section.scss → scss/page-section.scss} +15 -4
  86. package/scss/page-widget.scss +66 -0
  87. package/scss/page.scss +73 -0
  88. package/{css → scss}/property-editor-html.scss +4 -3
  89. package/scss/property-editor-image.scss +17 -0
  90. package/{css → scss}/property-editor-product.scss +4 -3
  91. package/scss/property-editor-text.scss +10 -0
  92. package/{css/property-editor-image.scss → scss/property-editor-youtube.scss} +4 -4
  93. package/{css → scss}/property-group-editor-background.scss +4 -3
  94. package/scss/property-group-editor-media.scss +22 -0
  95. package/{css → scss}/property-localpart.scss +2 -2
  96. package/css/bluesea.scss +0 -8244
  97. package/css/canvas-widget.scss +0 -41
  98. package/css/canvas.scss +0 -147
  99. package/css/page-builder-editor.scss +0 -265
  100. package/css/page-builder-viewer.scss +0 -1
  101. package/css/variable.scss +0 -1
  102. package/dist/HtmlEditorModal-DDoVYM6n.js +0 -94
  103. package/dist/PbPartAddModal-DuLpnV4E.js +0 -50
  104. package/dist/PbPropertyEditorHtml-Co4dM1CR.js +0 -64
  105. package/dist/PbPropertyEditorImage-DRDbq11U.js +0 -42
  106. package/dist/PbPropertyEditorProduct-Xh2k14LD.js +0 -49
  107. package/dist/PbWidgetAddModal-CQvFYzfU.js +0 -55
  108. package/dist/components/canvas/PbCanvasFrame.vue.d.ts +0 -2
  109. package/dist/components/modal/HtmlEditorModal.vue.d.ts +0 -23
  110. /package/{css → scss}/property-editor-color.scss +0 -0
  111. /package/{css → scss}/property-editor-multiline-text.scss +0 -0
  112. /package/{css/property-editor-text.scss → scss/property-editor-number.scss} +0 -0
  113. /package/{css → scss}/property-editor-readonly-text.scss +0 -0
  114. /package/{css → scss}/property-editor-select.scss +0 -0
  115. /package/{css → scss}/property-group-editor-border.scss +0 -0
  116. /package/{css → scss}/property-group-editor-margin.scss +0 -0
  117. /package/{css → scss}/property-group-editor-padding.scss +0 -0
  118. /package/{css → scss}/property-group-editor-position.scss +0 -0
  119. /package/{css → scss}/property-group-editor-size.scss +0 -0
@@ -1,41 +0,0 @@
1
- .pb-widget {
2
- position: relative;
3
- outline: 1px dashed #ccc;
4
- background-position: 50% 50%;
5
- background-repeat: no-repeat;
6
- background-size: cover;
7
-
8
- &.selected {
9
- outline: 2px solid #27ae60;
10
- outline-offset: 1px;
11
- z-index: 999;
12
- }
13
-
14
- .children {
15
- position: absolute;
16
- width: 100%;
17
- height: 100%;
18
- }
19
-
20
- .pan-handle {
21
- position: absolute;
22
- left: -6px;
23
- top: -6px;
24
- width: 12px;
25
- height: 12px;
26
- background-color: #27ae60;
27
- cursor: move;
28
- }
29
-
30
- .resize-handle {
31
- position: absolute;
32
- right: -6px;
33
- bottom: -6px;
34
- width: 12px;
35
- height: 12px;
36
- background-color: #27ae60;
37
- cursor: nwse-resize;
38
- }
39
- }
40
-
41
- @import "@g1cloud/page-builder-viewer/css/widget";
package/css/canvas.scss DELETED
@@ -1,147 +0,0 @@
1
- @import 'variable';
2
- @import 'canvas-page';
3
- @import 'canvas-section';
4
- @import 'canvas-block';
5
- @import 'canvas-widget';
6
-
7
- .font-icon {
8
- font-family: Material Symbols Outlined, monospace;
9
- font-size: 1rem;
10
- max-width: 1em;
11
- }
12
-
13
- html, body {
14
- font-family: Noto Sans, Noto Sans KR, Noto Sans JP, Arial, sans-serif;
15
- font-size: 12px;
16
- }
17
-
18
- body {
19
- background-color: white;
20
- height: 100%;
21
- margin: 0;
22
- }
23
-
24
- .pb-canvas-wrapper {
25
- padding: 32px 40px 56px 40px;
26
- height: 100%;
27
- background-color: $color-canvas-frame-bg;
28
- overflow: auto;
29
-
30
- .pb-canvas {
31
- // background-color: white;
32
- display: flex;
33
- flex-direction: row;
34
- transform-origin: top left;
35
-
36
- width: fit-content;
37
- min-width: 40px;
38
- min-height: 40px;
39
- // box-shadow: 4px 4px 8px $color-gray;
40
- margin: 0 auto;
41
- // margin-bottom: 100px;
42
- }
43
- }
44
-
45
- .pb-position-mark {
46
- background-color: #ff3333;
47
- opacity: 0.5;
48
- border-radius: 2px;
49
- // z-index: 999;
50
- }
51
-
52
- .pb-add-section-handle {
53
- position: relative;
54
- // width: 33.33%;
55
- // background: rgba(230, 126, 34, 0.5);
56
- // position: relative;
57
- text-align: center;
58
- cursor: pointer;
59
- z-index: 5;
60
- height: 0;
61
- // opacity: 0;
62
- // margin: 0;
63
-
64
- &.top::before,
65
- &.bottom::before,
66
- &.middle::before {
67
- content: '';
68
- position: absolute;
69
- left: 0;
70
- right: 0;
71
- top: 0;
72
- // height: 2px;
73
- // background: rgba(0, 0, 0, 0.5);
74
- opacity: 0;
75
- pointer-events: none;
76
- }
77
-
78
- &.top {
79
- // top: 0;
80
- // left: 50%;
81
- // transform: translate(-50%, -50%);
82
- // margin-top: 24px;
83
- // margin-bottom: 24px;
84
- }
85
-
86
- &.middle {
87
- // top: 0;
88
- // left: 50%;
89
- // transform: translate(-50%, -50%);
90
- // margin-top: 24px;
91
- // margin-bottom: 24px;
92
- }
93
-
94
- &.bottom {
95
- // bottom: 0;
96
- left: 50%;
97
- bottom: -32px;
98
- // transform: translate(-50%, 50%);
99
- // margin-top: 24px;
100
- }
101
-
102
- &:hover {
103
- // opacity: 1;
104
-
105
- &.top::before,
106
- &.bottom::before,
107
- &.middle::before,
108
- > i {
109
- opacity: 1;
110
- }
111
- }
112
-
113
- > i {
114
- vertical-align: middle;
115
- position: absolute;
116
- top: 50%;
117
- // left: 50%;
118
- left: -20px;
119
- font-size: 2rem;
120
- transform: translate(-50%, -50%);
121
- opacity: 0.2;
122
- }
123
- }
124
-
125
- .pb-button {
126
- background: none;
127
- border: none;
128
- cursor: pointer;
129
- vertical-align: middle;
130
- }
131
-
132
- .pb-guideline {
133
- position: absolute;
134
- top: 0;
135
- left: 0;
136
- width: 100%;
137
- height: 100%;
138
- pointer-events: none;
139
-
140
- &.selected {
141
- z-index: 3;
142
- }
143
-
144
- &.preselect {
145
- z-index: 4;
146
- }
147
- }
@@ -1,265 +0,0 @@
1
- @import 'variable';
2
-
3
- .pb-canvas-frame {
4
- background-color: $color-canvas-frame-bg;
5
-
6
- iframe.canvas-frame {
7
- width: 100%;
8
- height: 100%;
9
- border: 0;
10
- }
11
- }
12
-
13
- .pb-menu {
14
- width: 100%;
15
-
16
- .pb-toolbar {
17
- margin: 0 -8px;
18
-
19
- .pb-tool-button-group {
20
- &::after {
21
- content: '';
22
- margin: 0 8px;
23
- height: 80%;
24
- border-right: 1px solid $color-border-light;
25
- align-self: center;
26
- }
27
-
28
- .pb-tool-button {
29
- padding: 2px;
30
- margin: 0 2px;
31
-
32
- .tool-button {
33
- width: 28px;
34
- height: 28px;
35
- display: flex;
36
- align-items: center;
37
- justify-content: center;
38
- }
39
- }
40
- }
41
- }
42
- }
43
-
44
- .editor-wrapper {
45
- height: 100%;
46
- }
47
-
48
- .pb-editor {
49
- height: 100%;
50
- }
51
-
52
- .pb-editor-body {
53
- padding: 8px 0 0;
54
- gap: 8px;
55
- height: 1px;
56
-
57
- .bs-tab-sheet {
58
- .tab-bar {
59
- .tabs {
60
- padding-top: 0;
61
- }
62
- }
63
- }
64
- }
65
-
66
- .pb-navigator {
67
- width: 200px;
68
- height: 1px;
69
- overflow-y: auto;
70
- padding: 8px 0;
71
- flex-grow: 1;
72
- }
73
-
74
- .pb-sidebar {
75
- width: 300px;
76
- overflow: auto;
77
- border: 1px solid $color-border-light;
78
-
79
- .pb-sidebar-properties {
80
- padding: 0;
81
-
82
- .pb-sidebar-property-group {
83
- &:not(:empty) {
84
- padding: 16px 16px;
85
- border-bottom: 1px solid #eaeaea;
86
-
87
- }
88
-
89
- .group-title {
90
- > label {
91
- padding: 4px 0;
92
- font-size: 90%;
93
- font-weight: 600;
94
- }
95
- }
96
-
97
- .group-editor {
98
- padding: 4px 0;
99
- font-size: 0.9em;
100
-
101
- .title {
102
- padding: 0 0 8px 0;
103
-
104
- label {
105
- min-width: 6em;
106
- max-width: 6em;
107
- padding-right: 0.5em;
108
- font-weight: bold;
109
- }
110
- }
111
-
112
- .sub-title {
113
- label {
114
- min-width: 6em;
115
- max-width: 6em;
116
- padding-right: 0.5em;
117
- font-weight: 400;
118
- }
119
- }
120
- }
121
-
122
- .property-editor {
123
- padding: 4px 0;
124
- font-size: 0.9em;
125
-
126
- > .title {
127
- padding: 0 0 8px 0;
128
-
129
- > label {
130
- min-width: 6em;
131
- max-width: 6em;
132
- padding-right: 0.5em;
133
- font-weight: 600;
134
- }
135
- }
136
- }
137
-
138
- .property-editor:nth-child(n+2) {
139
- margin-top: 4px
140
- }
141
-
142
- @import "./property-editor-color";
143
- @import "./property-editor-image";
144
- @import "./property-editor-multiline-text";
145
- @import "./property-editor-product";
146
- @import "./property-editor-readonly-text";
147
- @import "./property-editor-select";
148
- @import "./property-editor-text";
149
- @import "./property-editor-html";
150
-
151
- @import "./property-group-editor-background";
152
- @import "./property-group-editor-border";
153
- @import "./property-group-editor-position";
154
- @import "./property-group-editor-size";
155
-
156
- @import "./property-localpart";
157
- }
158
- }
159
- }
160
-
161
- .pb-color-picker {
162
- display: inline-flex;
163
- position: relative;
164
-
165
- .buttons {
166
- display: flex;
167
- padding: 0;
168
-
169
- button {
170
- width: 24px;
171
- height: 24px;
172
- display: flex;
173
- justify-content: center;
174
- align-items: center;
175
-
176
- &.none {
177
- position: relative;
178
- overflow: hidden;
179
-
180
- &::after {
181
- content: "\00A0";
182
- display: inline-block;
183
- width: 100px;
184
- height: 1px;
185
- background: red;
186
- position: absolute;
187
- top: 50%;
188
- left: 50%;
189
- transform: translate(-50%, -50%) rotate(45deg);
190
- }
191
- }
192
-
193
- &.picker-button {
194
- border: 1px solid #cccccc;
195
- }
196
-
197
- i {
198
- font-size: 1.4rem;
199
- }
200
- }
201
- }
202
-
203
- .sketch-wrap {
204
- width: 220px;
205
- position: absolute;
206
- z-index: 10;
207
- left: -12px;
208
- top: 24px;
209
- white-space: break-spaces;
210
- text-align: left;
211
- }
212
- }
213
-
214
- .pb-part-add-modal {
215
- .group {
216
-
217
- .part {
218
- @extend .bs-clickable;
219
- border: 1px solid $color-border-light;
220
- border-radius: 4px;
221
- padding: 8px 16px;
222
- }
223
- }
224
- }
225
-
226
- .pb-html-editor-modal {
227
- .preview {
228
- width: 50%;
229
-
230
- .content {
231
- border: solid 1px #ccc;
232
- overflow-y: auto;
233
- }
234
- }
235
-
236
- .editor {
237
- width: 50%;
238
-
239
- .tags {
240
- height: 60%;
241
- }
242
-
243
- .style {
244
- height: 40%;
245
- }
246
-
247
- .bs-code-editor {
248
- height: 100%;
249
- }
250
- }
251
-
252
- .buttons {
253
- text-align: center;
254
-
255
- button {
256
- color: #fff;
257
- border: none;
258
- padding: 4px 12px;
259
- cursor: pointer;
260
- line-height: 1;
261
- height: 28px;
262
- background-color: #1f8fff;
263
- }
264
- }
265
- }
@@ -1 +0,0 @@
1
- @import '@g1cloud/page-builder-viewer/css/page-builder-viewer';
package/css/variable.scss DELETED
@@ -1 +0,0 @@
1
- $color-canvas-frame-bg: #aaa;
@@ -1,94 +0,0 @@
1
- import { defineComponent, ref, computed, onMounted, openBlock, createBlock, unref, withCtx, createElementVNode, createVNode } from "vue";
2
- import { useModalHandle, BSModalFrame, BSCodeEditor } from "@g1cloud/bluesea";
3
- const _hoisted_1 = { class: "bs-layout-vertical pb-html-editor-modal flex-grow-1 h-full" };
4
- const _hoisted_2 = { class: "bs-layout-horizontal flex-grow-1" };
5
- const _hoisted_3 = { class: "preview flex-grow-1" };
6
- const _hoisted_4 = { class: "bs-layout-vertical w-full h-full" };
7
- const _hoisted_5 = /* @__PURE__ */ createElementVNode("div", { class: "title pb-4" }, "Preview", -1);
8
- const _hoisted_6 = ["innerHTML"];
9
- const _hoisted_7 = { class: "editor bs-layout-vertical pl-8" };
10
- const _hoisted_8 = { class: "tags bs-layout-vertical w-full" };
11
- const _hoisted_9 = /* @__PURE__ */ createElementVNode("div", { class: "title pb-4" }, "HTML", -1);
12
- const _hoisted_10 = { class: "content flex-grow-1" };
13
- const _hoisted_11 = { class: "style bs-layout-vertical w-full pt-8" };
14
- const _hoisted_12 = /* @__PURE__ */ createElementVNode("div", { class: "title pb-4" }, "Style", -1);
15
- const _hoisted_13 = { class: "content flex-grow-1" };
16
- const _sfc_main = /* @__PURE__ */ defineComponent({
17
- __name: "HtmlEditorModal",
18
- props: {
19
- html: {}
20
- },
21
- emits: ["updateHtml"],
22
- setup(__props, { emit: __emit }) {
23
- var _a, _b;
24
- const props = __props;
25
- const emit = __emit;
26
- const modalHandle = useModalHandle();
27
- const tags = ref(((_a = props.html) == null ? void 0 : _a.tags) || "");
28
- const style = ref(((_b = props.html) == null ? void 0 : _b.style) || "");
29
- const html = computed(() => `${tags.value || ""}
30
- <style>${style.value || ""}</style>`);
31
- onMounted(async () => {
32
- });
33
- const ok = () => {
34
- emit("updateHtml", {
35
- tags: tags.value || "",
36
- style: style.value || ""
37
- });
38
- modalHandle.close();
39
- };
40
- return (_ctx, _cache) => {
41
- return openBlock(), createBlock(unref(BSModalFrame), { title: "HTML Editor" }, {
42
- default: withCtx(() => [
43
- createElementVNode("div", _hoisted_1, [
44
- createElementVNode("div", _hoisted_2, [
45
- createElementVNode("div", _hoisted_3, [
46
- createElementVNode("div", _hoisted_4, [
47
- _hoisted_5,
48
- createElementVNode("div", {
49
- class: "content flex-grow-1",
50
- innerHTML: html.value
51
- }, null, 8, _hoisted_6)
52
- ])
53
- ]),
54
- createElementVNode("div", _hoisted_7, [
55
- createElementVNode("div", _hoisted_8, [
56
- _hoisted_9,
57
- createElementVNode("div", _hoisted_10, [
58
- createVNode(unref(BSCodeEditor), {
59
- modelValue: tags.value,
60
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => tags.value = $event),
61
- "editor-height": "100%",
62
- lang: "html"
63
- }, null, 8, ["modelValue"])
64
- ])
65
- ]),
66
- createElementVNode("div", _hoisted_11, [
67
- _hoisted_12,
68
- createElementVNode("div", _hoisted_13, [
69
- createVNode(unref(BSCodeEditor), {
70
- modelValue: style.value,
71
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => style.value = $event),
72
- "editor-height": "100%",
73
- lang: "css"
74
- }, null, 8, ["modelValue"])
75
- ])
76
- ])
77
- ])
78
- ]),
79
- createElementVNode("div", { class: "buttons pt-24" }, [
80
- createElementVNode("button", {
81
- class: "mr-4",
82
- onClick: ok
83
- }, "OK")
84
- ])
85
- ])
86
- ]),
87
- _: 1
88
- });
89
- };
90
- }
91
- });
92
- export {
93
- _sfc_main as default
94
- };
@@ -1,50 +0,0 @@
1
- import { defineComponent, openBlock, createBlock, unref, withCtx, createElementVNode, createElementBlock, Fragment, renderList, toDisplayString } from "vue";
2
- import { useModalHandle, BSModalFrame } from "@g1cloud/bluesea";
3
- const _hoisted_1 = { class: "bs-layout-vertical pb-part-add-modal" };
4
- const _hoisted_2 = { class: "bs-layout-horizontal-wrap ml-16 mb-8 gap-8" };
5
- const _hoisted_3 = ["onClick", "textContent"];
6
- const _sfc_main = /* @__PURE__ */ defineComponent({
7
- __name: "PbPartAddModal",
8
- props: {
9
- pageBuilder: {},
10
- partDefinitionGroups: {}
11
- },
12
- emits: ["selectHandler"],
13
- setup(__props, { emit: __emit }) {
14
- const emit = __emit;
15
- const modalHandle = useModalHandle();
16
- const select = (partDefinition) => {
17
- emit("selectHandler", partDefinition);
18
- modalHandle.close();
19
- };
20
- return (_ctx, _cache) => {
21
- return openBlock(), createBlock(unref(BSModalFrame), { title: "Add Design Part" }, {
22
- default: withCtx(() => [
23
- createElementVNode("div", _hoisted_1, [
24
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.partDefinitionGroups, (group) => {
25
- return openBlock(), createElementBlock("div", {
26
- key: group.groupName,
27
- class: "group mb-16"
28
- }, [
29
- createElementVNode("div", _hoisted_2, [
30
- (openBlock(true), createElementBlock(Fragment, null, renderList(group.partDefinitions, (part) => {
31
- return openBlock(), createElementBlock("div", {
32
- key: part.partName,
33
- class: "part",
34
- onClick: ($event) => select(part),
35
- textContent: toDisplayString(part.caption)
36
- }, null, 8, _hoisted_3);
37
- }), 128))
38
- ])
39
- ]);
40
- }), 128))
41
- ])
42
- ]),
43
- _: 1
44
- });
45
- };
46
- }
47
- });
48
- export {
49
- _sfc_main as default
50
- };
@@ -1,64 +0,0 @@
1
- import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, defineAsyncComponent } from "vue";
2
- import { useModal } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor } from "./index-DQ22qk5v.js";
4
- const _hoisted_1 = { class: "property-editor property-editor-image flex-align-center" };
5
- const _hoisted_2 = { class: "title" };
6
- const _hoisted_3 = ["textContent"];
7
- const _sfc_main = /* @__PURE__ */ defineComponent({
8
- __name: "PbPropertyEditorHtml",
9
- props: {
10
- property: {},
11
- value: {}
12
- },
13
- emits: ["update-property-value"],
14
- setup(__props, { emit: __emit }) {
15
- const props = __props;
16
- const modal = useModal();
17
- const pageBuilder = usePageBuilderEditor();
18
- const emit = __emit;
19
- const editHtml = () => {
20
- const language = pageBuilder.getLanguage();
21
- let html;
22
- if (props.value && typeof props.value === "object") {
23
- html = props.value[language];
24
- }
25
- modal.openModal({
26
- component: defineAsyncComponent(() => import("./HtmlEditorModal-DDoVYM6n.js")),
27
- style: {
28
- width: "80%",
29
- height: "80%",
30
- minWidth: "500px",
31
- minHeight: "400px"
32
- },
33
- bind: {
34
- html
35
- },
36
- on: {
37
- updateHtml: (html2) => {
38
- const language2 = pageBuilder.getLanguage();
39
- const value = {
40
- ...props.value || {},
41
- [language2]: html2
42
- };
43
- emit("update-property-value", { html: value });
44
- }
45
- }
46
- });
47
- };
48
- return (_ctx, _cache) => {
49
- return openBlock(), createElementBlock("div", _hoisted_1, [
50
- createElementVNode("div", _hoisted_2, [
51
- createElementVNode("label", {
52
- textContent: toDisplayString(_ctx.property.caption)
53
- }, null, 8, _hoisted_3)
54
- ]),
55
- createElementVNode("div", null, [
56
- createElementVNode("button", { onClick: editHtml }, "Edit HTML")
57
- ])
58
- ]);
59
- };
60
- }
61
- });
62
- export {
63
- _sfc_main as default
64
- };
@@ -1,42 +0,0 @@
1
- import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString } from "vue";
2
- import { useModal } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor, a as PageBuilderEditorEvent } from "./index-DQ22qk5v.js";
4
- const _hoisted_1 = { class: "property-editor property-editor-image flex-align-center" };
5
- const _hoisted_2 = { class: "title" };
6
- const _hoisted_3 = ["textContent"];
7
- const _sfc_main = /* @__PURE__ */ defineComponent({
8
- __name: "PbPropertyEditorImage",
9
- props: {
10
- property: {},
11
- value: {}
12
- },
13
- emits: ["update-property-value"],
14
- setup(__props, { emit: __emit }) {
15
- useModal();
16
- const pageBuilder = usePageBuilderEditor();
17
- const emit = __emit;
18
- const selectImage = () => {
19
- PageBuilderEditorEvent.emit.requestImage({
20
- pageBuilderId: pageBuilder.instanceId,
21
- callback: (url) => {
22
- emit("update-property-value", { image: url });
23
- }
24
- });
25
- };
26
- return (_ctx, _cache) => {
27
- return openBlock(), createElementBlock("div", _hoisted_1, [
28
- createElementVNode("div", _hoisted_2, [
29
- createElementVNode("label", {
30
- textContent: toDisplayString(_ctx.property.caption)
31
- }, null, 8, _hoisted_3)
32
- ]),
33
- createElementVNode("div", null, [
34
- createElementVNode("button", { onClick: selectImage }, "Select Image")
35
- ])
36
- ]);
37
- };
38
- }
39
- });
40
- export {
41
- _sfc_main as default
42
- };