@g1cloud/page-builder-editor 1.0.0-alpha.5 → 1.0.0-alpha.50

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 (100) hide show
  1. package/css/canvas.scss +16 -137
  2. package/css/{canvas-block.scss → page-block.scss} +15 -3
  3. package/css/page-builder-editor.scss +108 -22
  4. package/css/{canvas-page.scss → page-page.scss} +24 -16
  5. package/css/{canvas-section.scss → page-section.scss} +17 -3
  6. package/css/{canvas-widget.scss → page-widget.scss} +23 -3
  7. package/css/page.scss +74 -0
  8. package/css/property-editor-color.scss +5 -0
  9. package/css/property-editor-html.scss +16 -0
  10. package/css/property-editor-image.scss +1 -1
  11. package/css/property-editor-number.scss +10 -0
  12. package/css/property-editor-youtube.scss +16 -0
  13. package/css/property-group-editor-background.scss +1 -13
  14. package/css/property-group-editor-border.scss +6 -12
  15. package/css/property-group-editor-margin.scss +0 -11
  16. package/css/property-group-editor-media.scss +16 -0
  17. package/css/property-group-editor-padding.scss +0 -11
  18. package/css/property-group-editor-position.scss +0 -11
  19. package/css/property-group-editor-size.scss +0 -11
  20. package/css/property-localpart.scss +2 -2
  21. package/dist/PageBuilderEditor.vue.d.ts +19 -11
  22. package/dist/PbHtmlEditorModal-C0MLYY66.js +193 -0
  23. package/dist/PbPropertyEditorBoolean-c5CNiTpt.js +38 -0
  24. package/dist/PbPropertyEditorColor-hFvMuUZC.js +56 -0
  25. package/dist/PbPropertyEditorHtml-gzh9Nb2Q.js +62 -0
  26. package/dist/PbPropertyEditorImage-D4wJ9fgi.js +43 -0
  27. package/dist/{PbPropertyEditorMultilineText-CfRbKELF.js → PbPropertyEditorMultilineText-Bq1QUweO.js} +29 -28
  28. package/dist/PbPropertyEditorNumber-B76ArSb5.js +47 -0
  29. package/dist/{PbPropertyEditorReadonlyText-Bk0WJxA0.js → PbPropertyEditorReadonlyText-BJ5qx69O.js} +7 -7
  30. package/dist/{PbPropertyEditorSelect-BJovN1su.js → PbPropertyEditorSelect-B5sfulvx.js} +6 -7
  31. package/dist/PbPropertyEditorText-BGIyzz1q.js +50 -0
  32. package/dist/PbPropertyEditorYoutube-uRftqvVU.js +40 -0
  33. package/dist/PbScreenSelectModal-57LXAzjs.js +69 -0
  34. package/dist/PbWidgetAddModal-DF7MRQUS.js +80 -0
  35. package/dist/PbYoutubeModal-CU8sClMD.js +73 -0
  36. package/dist/components/canvas/PbCanvas.vue.d.ts +1 -1
  37. package/dist/components/depart/PbLoginDepart.vue.d.ts +3 -3
  38. package/dist/components/menu/PbMenu.vue.d.ts +16 -1
  39. package/dist/components/menu/PbToolbar.vue.d.ts +16 -1
  40. package/dist/components/menu/PbToolbarButton.vue.d.ts +3 -3
  41. package/dist/components/menu/PbToolbarButtonGroup.vue.d.ts +3 -3
  42. package/dist/components/modal/PbHtmlEditorModal.vue.d.ts +28 -0
  43. package/dist/components/modal/PbPartAddModal.vue.d.ts +4 -4
  44. package/dist/components/modal/PbScreenSelectModal.vue.d.ts +6 -0
  45. package/dist/components/modal/PbWidgetAddModal.vue.d.ts +4 -4
  46. package/dist/components/modal/PbYoutubeModal.vue.d.ts +19 -0
  47. package/dist/components/navigator/PbNavigator.vue.d.ts +1 -1
  48. package/dist/components/part/PbAddWidgetButton.vue.d.ts +1 -1
  49. package/dist/components/part/PbBlock.vue.d.ts +7 -3
  50. package/dist/components/part/PbContainerWidget.vue.d.ts +19 -0
  51. package/dist/components/part/PbPage.vue.d.ts +5 -5
  52. package/dist/components/part/PbPageFrame.vue.d.ts +19 -0
  53. package/dist/components/part/PbSection.vue.d.ts +7 -3
  54. package/dist/components/part/PbWidget.vue.d.ts +5 -3
  55. package/dist/components/sidebar/PbSidebar.vue.d.ts +1 -1
  56. package/dist/components/sidebar/PbSidebarProperties.vue.d.ts +1 -1
  57. package/dist/components/sidebar/PbSidebarPropertyEditor.vue.d.ts +3 -3
  58. package/dist/components/sidebar/PbSidebarPropertyGroupEditor.vue.d.ts +3 -3
  59. package/dist/components/sidebar/property/{PbPropertyEditorProduct.vue.d.ts → PbPropertyEditorBoolean.vue.d.ts} +4 -4
  60. package/dist/components/sidebar/property/{PbPropertyLocalMarketingPart.vue.d.ts → PbPropertyEditorColor.vue.d.ts} +9 -9
  61. package/dist/components/sidebar/property/PbPropertyEditorHtml.vue.d.ts +23 -0
  62. package/dist/components/sidebar/property/PbPropertyEditorImage.vue.d.ts +6 -6
  63. package/dist/components/sidebar/property/PbPropertyEditorMultilineText.vue.d.ts +7 -6
  64. package/dist/components/sidebar/property/PbPropertyEditorNumber.vue.d.ts +23 -0
  65. package/dist/components/sidebar/property/PbPropertyEditorReadonlyText.vue.d.ts +3 -3
  66. package/dist/components/sidebar/property/PbPropertyEditorSelect.vue.d.ts +4 -4
  67. package/dist/components/sidebar/property/PbPropertyEditorText.vue.d.ts +9 -8
  68. package/dist/components/sidebar/property/PbPropertyEditorYoutube.vue.d.ts +23 -0
  69. package/dist/components/sidebar/property/PbPropertyGroupEditorBackground.vue.d.ts +3 -3
  70. package/dist/components/sidebar/property/PbPropertyGroupEditorBorder.vue.d.ts +3 -3
  71. package/dist/components/sidebar/property/PbPropertyGroupEditorMargin.vue.d.ts +3 -3
  72. package/dist/components/sidebar/property/PbPropertyGroupEditorMedia.vue.d.ts +20 -0
  73. package/dist/components/sidebar/property/PbPropertyGroupEditorPadding.vue.d.ts +3 -3
  74. package/dist/components/sidebar/property/PbPropertyGroupEditorPosition.vue.d.ts +3 -3
  75. package/dist/components/sidebar/property/PbPropertyGroupEditorSize.vue.d.ts +3 -3
  76. package/dist/components/ui/PbColorPicker.vue.d.ts +21 -8
  77. package/dist/directives/vPartHandler.d.ts +1 -0
  78. package/dist/{index-Mob7K7vK.js → index-B-YMeKky.js} +4552 -2140
  79. package/dist/index.d.ts +5 -0
  80. package/dist/model/command.d.ts +46 -34
  81. package/dist/model/context.d.ts +22 -25
  82. package/dist/model/default-part-property-group.d.ts +3 -0
  83. package/dist/model/event.d.ts +0 -56
  84. package/dist/model/model.d.ts +9 -5
  85. package/dist/model/page-builder-editor.d.ts +39 -13
  86. package/dist/model/page-builder-util.d.ts +2 -0
  87. package/dist/model/part-definintion.d.ts +3 -2
  88. package/dist/model/part-manager.d.ts +2 -1
  89. package/dist/model/part-property.d.ts +3 -3
  90. package/dist/model/plugin.d.ts +15 -0
  91. package/dist/page-builder-editor.js +27 -19
  92. package/dist/page-builder-editor.umd.cjs +5228 -2318
  93. package/dist/text/text.d.ts +1 -0
  94. package/package.json +9 -6
  95. package/dist/PbPartAddModal-DuLpnV4E.js +0 -50
  96. package/dist/PbPropertyEditorImage-EuqsavTF.js +0 -42
  97. package/dist/PbPropertyEditorProduct-COnCyYJl.js +0 -49
  98. package/dist/PbPropertyEditorText-DNdXl-Tr.js +0 -41
  99. package/dist/PbWidgetAddModal-CQvFYzfU.js +0 -55
  100. package/dist/components/canvas/PbCanvasFrame.vue.d.ts +0 -2
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@g1cloud/page-builder-editor",
3
3
  "private": false,
4
- "version": "1.0.0-alpha.5",
4
+ "version": "1.0.0-alpha.50",
5
5
  "engins": {
6
6
  "node": ">= 20.0.0"
7
7
  },
@@ -16,18 +16,21 @@
16
16
  "author": "zag@g1project.net",
17
17
  "license": "LicenseRef-LICENSE",
18
18
  "peerDependencies": {
19
- "@g1cloud/bluesea": "5.0.0-alpha.50"
19
+ "@g1cloud/bluesea": "5.0.0-alpha.91",
20
+ "vue3-youtube": "^0.1.9"
20
21
  },
21
22
  "dependencies": {
22
23
  "@ckpack/vue-color": "^1.5.0",
24
+ "@ctrl/tinycolor": "^3.6.1",
23
25
  "dayjs": "^1.11.11",
24
26
  "mitt": "^3.0.1",
25
27
  "short-unique-id": "^5.0.3",
26
- "vue": "^3.4.26",
27
- "vue-router": "^4.3.2",
28
+ "vite-svg-loader": "^5.1.0",
29
+ "vue": "^3.5.3",
30
+ "vue-router": "^4.4.3",
28
31
  "vue3-click-away": "^1.2.4",
29
32
  "yjs": "^13.6.14",
30
- "@g1cloud/page-builder-viewer": "1.0.0-alpha.5"
33
+ "@g1cloud/page-builder-viewer": "1.0.0-alpha.50"
31
34
  },
32
35
  "devDependencies": {
33
36
  "@types/node": "^20.12.7",
@@ -35,7 +38,7 @@
35
38
  "jsdom": "^24.0.0",
36
39
  "sass": "^1.75.0",
37
40
  "typescript": "^5.4.5",
38
- "vite": "^5.2.11",
41
+ "vite": "^5.4.3",
39
42
  "vite-plugin-dts": "^3.9.0",
40
43
  "vitest": "^1.5.0",
41
44
  "vitest-canvas-mock": "^0.3.3",
@@ -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,42 +0,0 @@
1
- import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString } from "vue";
2
- import { useModal } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor, P as PageBuilderEditorEvent } from "./index-Mob7K7vK.js";
4
- const _hoisted_1 = { class: "property-editor property-editor-image flex-align-center" };
5
- const _hoisted_2 = { class: "label" };
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
- };
@@ -1,49 +0,0 @@
1
- import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString } from "vue";
2
- import { useModal } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor, P as PageBuilderEditorEvent } from "./index-Mob7K7vK.js";
4
- const _hoisted_1 = { class: "property-editor property-editor-product flex-align-center" };
5
- const _hoisted_2 = { class: "label" };
6
- const _hoisted_3 = ["textContent"];
7
- const _sfc_main = /* @__PURE__ */ defineComponent({
8
- __name: "PbPropertyEditorProduct",
9
- props: {
10
- property: {},
11
- value: {}
12
- },
13
- emits: ["update-property-value"],
14
- setup(__props, { emit: __emit }) {
15
- const pageBuilder = usePageBuilderEditor();
16
- useModal();
17
- const emit = __emit;
18
- const selectProducts = () => {
19
- var _a;
20
- let itemCodes = "";
21
- const selectedParts = pageBuilder.context.getSelectedParts();
22
- if (selectedParts && selectedParts.length === 1) {
23
- itemCodes = ((_a = selectedParts[0].properties) == null ? void 0 : _a.products) || "";
24
- }
25
- PageBuilderEditorEvent.emit.requestProducts({
26
- pageBuilderId: pageBuilder.instanceId,
27
- itemCodes,
28
- callback: (products) => {
29
- emit("update-property-value", { products: products.map((v) => v.itemCode).join(",") });
30
- }
31
- });
32
- };
33
- return (_ctx, _cache) => {
34
- return openBlock(), createElementBlock("div", _hoisted_1, [
35
- createElementVNode("div", _hoisted_2, [
36
- createElementVNode("label", {
37
- textContent: toDisplayString(_ctx.property.caption)
38
- }, null, 8, _hoisted_3)
39
- ]),
40
- createElementVNode("div", null, [
41
- createElementVNode("button", { onClick: selectProducts }, "Select Product")
42
- ])
43
- ]);
44
- };
45
- }
46
- });
47
- export {
48
- _sfc_main as default
49
- };
@@ -1,41 +0,0 @@
1
- import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, createVNode, unref } from "vue";
2
- import { BSTextInput } from "@g1cloud/bluesea";
3
- const _hoisted_1 = { class: "property-editor property-editor-text flex-align-center" };
4
- const _hoisted_2 = { class: "label" };
5
- const _hoisted_3 = ["textContent"];
6
- const _sfc_main = /* @__PURE__ */ defineComponent({
7
- __name: "PbPropertyEditorText",
8
- props: {
9
- property: {},
10
- value: {}
11
- },
12
- emits: ["update-property-value"],
13
- setup(__props, { emit: __emit }) {
14
- const props = __props;
15
- const emit = __emit;
16
- const emitUpdatePropertyValue = (value) => {
17
- const properties = {};
18
- properties[props.property.propertyName] = value;
19
- emit("update-property-value", properties);
20
- };
21
- return (_ctx, _cache) => {
22
- return openBlock(), createElementBlock("div", _hoisted_1, [
23
- createElementVNode("div", _hoisted_2, [
24
- createElementVNode("label", {
25
- textContent: toDisplayString(_ctx.property.caption)
26
- }, null, 8, _hoisted_3)
27
- ]),
28
- createElementVNode("div", null, [
29
- createVNode(unref(BSTextInput), {
30
- "model-value": _ctx.value,
31
- width: "100%",
32
- "onUpdate:modelValue": emitUpdatePropertyValue
33
- }, null, 8, ["model-value"])
34
- ])
35
- ]);
36
- };
37
- }
38
- });
39
- export {
40
- _sfc_main as default
41
- };
@@ -1,55 +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 = ["textContent"];
5
- const _hoisted_3 = { class: "bs-layout-horizontal-wrap ml-16 mb-8 gap-8" };
6
- const _hoisted_4 = ["onClick", "textContent"];
7
- const _sfc_main = /* @__PURE__ */ defineComponent({
8
- __name: "PbWidgetAddModal",
9
- props: {
10
- pageBuilder: {},
11
- partDefinitionGroups: {}
12
- },
13
- emits: ["selectHandler"],
14
- setup(__props, { emit: __emit }) {
15
- const emit = __emit;
16
- const modalHandle = useModalHandle();
17
- const select = (partDefinition) => {
18
- emit("selectHandler", partDefinition);
19
- modalHandle.close();
20
- };
21
- return (_ctx, _cache) => {
22
- return openBlock(), createBlock(unref(BSModalFrame), { title: "Add Block/Widget" }, {
23
- default: withCtx(() => [
24
- createElementVNode("div", _hoisted_1, [
25
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.partDefinitionGroups, (group) => {
26
- return openBlock(), createElementBlock("div", {
27
- key: group.groupName,
28
- class: "group mb-16"
29
- }, [
30
- createElementVNode("div", {
31
- class: "mb-8",
32
- textContent: toDisplayString(group.caption)
33
- }, null, 8, _hoisted_2),
34
- createElementVNode("div", _hoisted_3, [
35
- (openBlock(true), createElementBlock(Fragment, null, renderList(group.partDefinitions, (part) => {
36
- return openBlock(), createElementBlock("div", {
37
- key: part.partName,
38
- class: "part",
39
- onClick: ($event) => select(part),
40
- textContent: toDisplayString(part.caption)
41
- }, null, 8, _hoisted_4);
42
- }), 128))
43
- ])
44
- ]);
45
- }), 128))
46
- ])
47
- ]),
48
- _: 1
49
- });
50
- };
51
- }
52
- });
53
- export {
54
- _sfc_main as default
55
- };
@@ -1,2 +0,0 @@
1
- declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{}>>, {}, {}>;
2
- export default _default;