@g1cloud/page-builder-editor 1.0.0-alpha.29 → 1.0.0-alpha.30

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.
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, createVNode, unref } from "vue";
2
2
  import { BSTextInput } from "@g1cloud/bluesea";
3
- import { P as PbColorPicker } from "./index-D0CfudH-.js";
3
+ import { P as PbColorPicker } from "./index-jGbCiM-P.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-color" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = ["textContent"];
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, defineAsyncComponent } from "vue";
2
2
  import { useModal } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor } from "./index-D0CfudH-.js";
3
+ import { u as usePageBuilderEditor } from "./index-jGbCiM-P.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-image flex-align-center" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = ["textContent"];
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString } from "vue";
2
- import { u as usePageBuilderEditor } from "./index-D0CfudH-.js";
2
+ import { u as usePageBuilderEditor } from "./index-jGbCiM-P.js";
3
3
  import { useModal } from "@g1cloud/bluesea";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-image flex-align-center" };
5
5
  const _hoisted_2 = { class: "title" };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, openBlock, createElementBlock, createElementVNode, toDisplayString, createBlock, unref } from "vue";
2
2
  import { BSMultiLangTextArea, BSTextArea } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor } from "./index-D0CfudH-.js";
3
+ import { u as usePageBuilderEditor } from "./index-jGbCiM-P.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-multiline-text" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = ["textContent"];
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, openBlock, createElementBlock, createElementVNode, toDisplayString, createBlock, unref } from "vue";
2
2
  import { BSMultiLangTextInput, BSTextInput } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor } from "./index-D0CfudH-.js";
3
+ import { u as usePageBuilderEditor } from "./index-jGbCiM-P.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-text flex-align-center" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = ["textContent"];
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString } from "vue";
2
2
  import { useModal } from "@g1cloud/bluesea";
3
- import { s as selectYoutubeVideo } from "./index-D0CfudH-.js";
3
+ import { s as selectYoutubeVideo } from "./index-jGbCiM-P.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-image flex-align-center" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = ["textContent"];
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, openBlock, createBlock, unref, withCtx, createElementVNode, createElementBlock, Fragment, renderList, toDisplayString } from "vue";
2
2
  import { useModalHandle, BSModalFrame } from "@g1cloud/bluesea";
3
- import { w as widgetPartDefinitions } from "./index-D0CfudH-.js";
3
+ import { w as widgetPartDefinitions } from "./index-jGbCiM-P.js";
4
4
  const _hoisted_1 = { class: "bs-layout-vertical pb-part-add-modal" };
5
5
  const _hoisted_2 = { class: "bs-layout-horizontal-wrap ml-16 mb-8 gap-8" };
6
6
  const _hoisted_3 = ["onClick", "textContent"];
@@ -7288,20 +7288,6 @@ class PageBuilderViewerImpl {
7288
7288
  }
7289
7289
  }
7290
7290
  }
7291
- watchCustomWidgetData(part) {
7292
- const def = partDefinitions$1[part.partName];
7293
- if (!def || !def.dataWatcher) return false;
7294
- const watcher = this.watchers[def.dataWatcher];
7295
- if (!watcher) return false;
7296
- return watcher(part.properties);
7297
- }
7298
- provideCustomWidgetData(part) {
7299
- const def = partDefinitions$1[part.partName];
7300
- if (!def || !def.dataProvider) return Promise.resolve();
7301
- const provider = this.providers[def.dataProvider];
7302
- if (!provider) return Promise.resolve();
7303
- return provider(part.properties);
7304
- }
7305
7291
  render(data) {
7306
7292
  const _data = JSON.parse(data || "{}") || {};
7307
7293
  const rootPart = this.parsePartContent(_data);
@@ -7522,28 +7508,16 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
7522
7508
  __name: "PbCustomWidget",
7523
7509
  props: {
7524
7510
  part: {},
7525
- placeholder: { type: Boolean },
7526
- dataWatcher: { type: Function },
7527
- dataProvider: { type: Function }
7511
+ placeholder: { type: Boolean }
7528
7512
  },
7529
7513
  setup(__props) {
7530
7514
  const props = __props;
7531
7515
  const pageBuilder = usePageBuilder();
7532
7516
  const comp = computed(() => pageBuilder.getCustomWidgetComponent(props.part));
7533
- const data = ref({});
7534
7517
  const bind = computed(() => ({
7535
7518
  ...props.part.properties || {},
7536
- ...data.value || {},
7537
7519
  placeholder: props.placeholder
7538
7520
  }));
7539
- const updateData = async () => {
7540
- data.value = await pageBuilder.provideCustomWidgetData(props.part);
7541
- };
7542
- onMounted(updateData);
7543
- watch(
7544
- () => pageBuilder.watchCustomWidgetData(props.part),
7545
- () => updateData()
7546
- );
7547
7521
  return (_ctx, _cache) => {
7548
7522
  return comp.value ? (openBlock(), createBlock$1(resolveDynamicComponent(comp.value), normalizeProps(mergeProps({ key: 0 }, bind.value)), null, 16)) : createCommentVNode("", true);
7549
7523
  };
@@ -7810,14 +7784,11 @@ class Model2 {
7810
7784
  });
7811
7785
  return parts;
7812
7786
  }
7813
- serializeModel(mediaExtractor, providerExtractor) {
7787
+ serializeModel(mediaExtractor) {
7814
7788
  const root = partToJsonObject(this.rootPart);
7815
7789
  if (mediaExtractor) {
7816
7790
  root.media = mediaExtractor(this.rootPart);
7817
7791
  }
7818
- if (providerExtractor) {
7819
- providerExtractor(root);
7820
- }
7821
7792
  return JSON.stringify(root);
7822
7793
  }
7823
7794
  parseModel(json, keepPartId = false) {
@@ -8131,13 +8102,13 @@ class PartManager {
8131
8102
  const defaultPartPropertyEditors = () => {
8132
8103
  return {
8133
8104
  "readonly-text": () => defineAsyncComponent(() => import("./PbPropertyEditorReadonlyText-Dgp_AVOD.js")),
8134
- "text": () => defineAsyncComponent(() => import("./PbPropertyEditorText-C01cWJn3.js")),
8135
- "multiline-text": () => defineAsyncComponent(() => import("./PbPropertyEditorMultilineText-BgUqY40C.js")),
8105
+ "text": () => defineAsyncComponent(() => import("./PbPropertyEditorText-BV9QDXbJ.js")),
8106
+ "multiline-text": () => defineAsyncComponent(() => import("./PbPropertyEditorMultilineText-D4ONFS76.js")),
8136
8107
  "select": () => defineAsyncComponent(() => import("./PbPropertyEditorSelect-CWedbXJI.js")),
8137
- "color": () => defineAsyncComponent(() => import("./PbPropertyEditorColor-DD1lLnyZ.js")),
8138
- "image": () => defineAsyncComponent(() => import("./PbPropertyEditorImage-CyRHBdCX.js")),
8139
- "html": () => defineAsyncComponent(() => import("./PbPropertyEditorHtml-DOIdxTYF.js")),
8140
- "youtube": () => defineAsyncComponent(() => import("./PbPropertyEditorYoutube-ybr-RA1K.js"))
8108
+ "color": () => defineAsyncComponent(() => import("./PbPropertyEditorColor-DRZ3JPbE.js")),
8109
+ "image": () => defineAsyncComponent(() => import("./PbPropertyEditorImage-DO7YS7Xn.js")),
8110
+ "html": () => defineAsyncComponent(() => import("./PbPropertyEditorHtml-Cpy0eI4_.js")),
8111
+ "youtube": () => defineAsyncComponent(() => import("./PbPropertyEditorYoutube-C5Qzdu6N.js"))
8141
8112
  };
8142
8113
  };
8143
8114
  const getPropertyValueOfParts = (parts, propertyName) => {
@@ -12415,7 +12386,7 @@ __publicField(_OpenAddWidgetModalCommand, "COMMAND_ID", "OpenAddWidgetModal");
12415
12386
  let OpenAddWidgetModalCommand = _OpenAddWidgetModalCommand;
12416
12387
  const openWidgetAddModal = (modal, args, callback) => {
12417
12388
  modal.openModal({
12418
- component: defineAsyncComponent(() => import("./PbWidgetAddModal-axGuf3UA.js")),
12389
+ component: defineAsyncComponent(() => import("./PbWidgetAddModal-9vxg06Q_.js")),
12419
12390
  style: {
12420
12391
  width: "80%",
12421
12392
  height: "80%",
@@ -12930,10 +12901,7 @@ const _CopyAllCommand = class _CopyAllCommand {
12930
12901
  __publicField(this, "commandId", _CopyAllCommand.COMMAND_ID);
12931
12902
  }
12932
12903
  async execute(pageBuilder) {
12933
- const json = pageBuilder.model.serializeModel(
12934
- (part) => pageBuilder.extractMedia(part),
12935
- (partObject) => pageBuilder.extractProvider(partObject)
12936
- );
12904
+ const json = pageBuilder.model.serializeModel((part) => pageBuilder.extractMedia(part));
12937
12905
  await navigator.clipboard.writeText(json);
12938
12906
  }
12939
12907
  };
@@ -13553,20 +13521,6 @@ class PageBuilderEditorImpl {
13553
13521
  getProvider(name) {
13554
13522
  return this.providers[name];
13555
13523
  }
13556
- watchCustomWidgetData(part) {
13557
- const def = this.partManager.getPartDefinition(part.partName);
13558
- if (!def || !def.dataWatcher) return false;
13559
- const watcher = this.watchers[def.dataWatcher];
13560
- if (!watcher) return false;
13561
- return watcher(part.properties);
13562
- }
13563
- provideCustomWidgetData(part) {
13564
- const def = this.partManager.getPartDefinition(part.partName);
13565
- if (!def || !def.dataProvider) return Promise.resolve();
13566
- const provider = this.providers[def.dataProvider];
13567
- if (!provider) return Promise.resolve();
13568
- return provider(part.properties);
13569
- }
13570
13524
  registerPlugin(plugin) {
13571
13525
  if (plugin.partDefinitions) this.partManager.registerPartDefinitions(plugin.partDefinitions);
13572
13526
  if (plugin.partPropertyGroupEditors) this.partManager.registerPartPropertyGroupEditors(plugin.partPropertyGroupEditors);
@@ -13714,17 +13668,6 @@ class PageBuilderEditorImpl {
13714
13668
  this.extractMediaFromPart(part, urls);
13715
13669
  return Array.from(urls);
13716
13670
  }
13717
- extractProvider(part) {
13718
- const def = this.partManager.getPartDefinition(part.partName);
13719
- if (def && (def == null ? void 0 : def.dataProvider)) {
13720
- part.dataProvider = def.dataProvider;
13721
- }
13722
- if (part.children && part.children.length) {
13723
- for (const child of part.children) {
13724
- this.extractProvider(child);
13725
- }
13726
- }
13727
- }
13728
13671
  getExternalCss() {
13729
13672
  return `${this.externalCssLinks}
13730
13673
  <style>${this.externalCssContent}</style>`;
@@ -14556,10 +14499,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
14556
14499
  const colorHistory = ref([]);
14557
14500
  provide("colorHistory", colorHistory);
14558
14501
  const getPageContent = () => {
14559
- return pageBuilderEditor.model.serializeModel(
14560
- (part) => pageBuilderEditor.extractMedia(part),
14561
- (partObject) => pageBuilderEditor.extractProvider(partObject)
14562
- );
14502
+ return pageBuilderEditor.model.serializeModel((part) => pageBuilderEditor.extractMedia(part));
14563
14503
  };
14564
14504
  __expose({
14565
14505
  getPageContent
@@ -6,7 +6,6 @@ export declare const SECTION_TYPE = "Section";
6
6
  export declare const BLOCK_TYPE = "Block";
7
7
  export declare const WIDGET_TYPE = "Widget";
8
8
  type MediaExtractor = (part: IPart) => string[];
9
- type ProviderExtractor = (partObject: Record<string, unknown>) => void;
10
9
  export declare const getNewPartId: () => string;
11
10
  export declare const partsToJsonString: (parts: IPart[]) => string;
12
11
  export declare const partFromJsonObject: (object: any, keepPartId?: boolean) => IPart | undefined;
@@ -21,7 +20,7 @@ export declare class Model {
21
20
  updateModel(param: ModelUpdateParam): ModelUpdateResult;
22
21
  findPartById(partId?: string): IPart | undefined;
23
22
  findPartsByIds(partIds: string[]): IPart[];
24
- serializeModel(mediaExtractor?: MediaExtractor, providerExtractor?: ProviderExtractor): string;
23
+ serializeModel(mediaExtractor?: MediaExtractor): string;
25
24
  parseModel(json: string, keepPartId?: boolean): IPart;
26
25
  serializeParts(partIds: string[]): string;
27
26
  parseParts(json: string, keepPartId?: boolean): IPart[] | undefined;
@@ -39,7 +39,6 @@ export interface PageBuilderEditor extends PageBuilder {
39
39
  getCustomWidgets(): PartDefinition[];
40
40
  getProvider(name: string): (args?: any, callback?: (result?: any) => void) => unknown;
41
41
  extractMedia(part: IPart): string[];
42
- extractProvider(part: Record<string, unknown>): void;
43
42
  }
44
43
  export declare class PageBuilderEditorImpl implements PageBuilderEditor {
45
44
  instanceId?: string;
@@ -66,8 +65,6 @@ export declare class PageBuilderEditorImpl implements PageBuilderEditor {
66
65
  setLocales(locales?: string[]): void;
67
66
  getCustomWidgetComponent(part: IPart): Component | undefined;
68
67
  getProvider(name: string): (args?: any, callback?: (result?: any) => void) => unknown;
69
- watchCustomWidgetData(part: IPart): unknown;
70
- provideCustomWidgetData(part: IPart): Promise<unknown>;
71
68
  registerPlugin(plugin: PageBuilderPlugin): void;
72
69
  registerCustomPlugin(plugin: any): void;
73
70
  initData(data?: string): void;
@@ -78,7 +75,6 @@ export declare class PageBuilderEditorImpl implements PageBuilderEditor {
78
75
  makeMultipleScreen(): void;
79
76
  getCustomWidgets(): PartDefinition[];
80
77
  extractMedia(part: IPart): string[];
81
- extractProvider(part: Record<string, unknown>): void;
82
78
  getExternalCss(): string;
83
79
  private extractMediaFromPart;
84
80
  private extractMediaFromHtml;
@@ -14,8 +14,6 @@ export type PartDefinition = {
14
14
  allowsChild: (partOrName?: IPart | string | undefined) => boolean;
15
15
  creator: PartCreator;
16
16
  component?: Component;
17
- dataWatcher?: string;
18
- dataProvider?: string;
19
17
  };
20
18
  export type PartDefinitionGroup = {
21
19
  groupName: string;
@@ -1,4 +1,4 @@
1
- import { B, b, M, c, d, e, _, a, f, g, h, i, j, k, l, m, n, R, o, S, p, W, q, r, t, v, x, y, z, A, C } from "./index-D0CfudH-.js";
1
+ import { B, b, M, c, d, e, _, a, f, g, h, i, j, k, l, m, n, R, o, S, p, W, q, r, t, v, x, y, z, A, C } from "./index-jGbCiM-P.js";
2
2
  export {
3
3
  B as BLOCK_TYPE,
4
4
  b as Block,
@@ -7289,20 +7289,6 @@ ${_html.style}
7289
7289
  }
7290
7290
  }
7291
7291
  }
7292
- watchCustomWidgetData(part) {
7293
- const def = partDefinitions$1[part.partName];
7294
- if (!def || !def.dataWatcher) return false;
7295
- const watcher = this.watchers[def.dataWatcher];
7296
- if (!watcher) return false;
7297
- return watcher(part.properties);
7298
- }
7299
- provideCustomWidgetData(part) {
7300
- const def = partDefinitions$1[part.partName];
7301
- if (!def || !def.dataProvider) return Promise.resolve();
7302
- const provider = this.providers[def.dataProvider];
7303
- if (!provider) return Promise.resolve();
7304
- return provider(part.properties);
7305
- }
7306
7292
  render(data) {
7307
7293
  const _data = JSON.parse(data || "{}") || {};
7308
7294
  const rootPart = this.parsePartContent(_data);
@@ -7523,28 +7509,16 @@ ${_html.style}
7523
7509
  __name: "PbCustomWidget",
7524
7510
  props: {
7525
7511
  part: {},
7526
- placeholder: { type: Boolean },
7527
- dataWatcher: { type: Function },
7528
- dataProvider: { type: Function }
7512
+ placeholder: { type: Boolean }
7529
7513
  },
7530
7514
  setup(__props) {
7531
7515
  const props = __props;
7532
7516
  const pageBuilder = usePageBuilder();
7533
7517
  const comp = vue.computed(() => pageBuilder.getCustomWidgetComponent(props.part));
7534
- const data = vue.ref({});
7535
7518
  const bind = vue.computed(() => ({
7536
7519
  ...props.part.properties || {},
7537
- ...data.value || {},
7538
7520
  placeholder: props.placeholder
7539
7521
  }));
7540
- const updateData = async () => {
7541
- data.value = await pageBuilder.provideCustomWidgetData(props.part);
7542
- };
7543
- vue.onMounted(updateData);
7544
- vue.watch(
7545
- () => pageBuilder.watchCustomWidgetData(props.part),
7546
- () => updateData()
7547
- );
7548
7522
  return (_ctx, _cache) => {
7549
7523
  return comp.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(comp.value), vue.normalizeProps(vue.mergeProps({ key: 0 }, bind.value)), null, 16)) : vue.createCommentVNode("", true);
7550
7524
  };
@@ -7811,14 +7785,11 @@ ${_html.style}
7811
7785
  });
7812
7786
  return parts;
7813
7787
  }
7814
- serializeModel(mediaExtractor, providerExtractor) {
7788
+ serializeModel(mediaExtractor) {
7815
7789
  const root = partToJsonObject(this.rootPart);
7816
7790
  if (mediaExtractor) {
7817
7791
  root.media = mediaExtractor(this.rootPart);
7818
7792
  }
7819
- if (providerExtractor) {
7820
- providerExtractor(root);
7821
- }
7822
7793
  return JSON.stringify(root);
7823
7794
  }
7824
7795
  parseModel(json, keepPartId = false) {
@@ -12931,10 +12902,7 @@ ${_html.style}
12931
12902
  __publicField(this, "commandId", _CopyAllCommand.COMMAND_ID);
12932
12903
  }
12933
12904
  async execute(pageBuilder) {
12934
- const json = pageBuilder.model.serializeModel(
12935
- (part) => pageBuilder.extractMedia(part),
12936
- (partObject) => pageBuilder.extractProvider(partObject)
12937
- );
12905
+ const json = pageBuilder.model.serializeModel((part) => pageBuilder.extractMedia(part));
12938
12906
  await navigator.clipboard.writeText(json);
12939
12907
  }
12940
12908
  };
@@ -13554,20 +13522,6 @@ ${_html.style}
13554
13522
  getProvider(name) {
13555
13523
  return this.providers[name];
13556
13524
  }
13557
- watchCustomWidgetData(part) {
13558
- const def = this.partManager.getPartDefinition(part.partName);
13559
- if (!def || !def.dataWatcher) return false;
13560
- const watcher = this.watchers[def.dataWatcher];
13561
- if (!watcher) return false;
13562
- return watcher(part.properties);
13563
- }
13564
- provideCustomWidgetData(part) {
13565
- const def = this.partManager.getPartDefinition(part.partName);
13566
- if (!def || !def.dataProvider) return Promise.resolve();
13567
- const provider = this.providers[def.dataProvider];
13568
- if (!provider) return Promise.resolve();
13569
- return provider(part.properties);
13570
- }
13571
13525
  registerPlugin(plugin) {
13572
13526
  if (plugin.partDefinitions) this.partManager.registerPartDefinitions(plugin.partDefinitions);
13573
13527
  if (plugin.partPropertyGroupEditors) this.partManager.registerPartPropertyGroupEditors(plugin.partPropertyGroupEditors);
@@ -13715,17 +13669,6 @@ ${_html.style}
13715
13669
  this.extractMediaFromPart(part, urls);
13716
13670
  return Array.from(urls);
13717
13671
  }
13718
- extractProvider(part) {
13719
- const def = this.partManager.getPartDefinition(part.partName);
13720
- if (def && (def == null ? void 0 : def.dataProvider)) {
13721
- part.dataProvider = def.dataProvider;
13722
- }
13723
- if (part.children && part.children.length) {
13724
- for (const child of part.children) {
13725
- this.extractProvider(child);
13726
- }
13727
- }
13728
- }
13729
13672
  getExternalCss() {
13730
13673
  return `${this.externalCssLinks}
13731
13674
  <style>${this.externalCssContent}</style>`;
@@ -14557,10 +14500,7 @@ ${_html.style}
14557
14500
  const colorHistory = vue.ref([]);
14558
14501
  vue.provide("colorHistory", colorHistory);
14559
14502
  const getPageContent = () => {
14560
- return pageBuilderEditor.model.serializeModel(
14561
- (part) => pageBuilderEditor.extractMedia(part),
14562
- (partObject) => pageBuilderEditor.extractProvider(partObject)
14563
- );
14503
+ return pageBuilderEditor.model.serializeModel((part) => pageBuilderEditor.extractMedia(part));
14564
14504
  };
14565
14505
  __expose({
14566
14506
  getPageContent
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.29",
4
+ "version": "1.0.0-alpha.30",
5
5
  "engins": {
6
6
  "node": ">= 20.0.0"
7
7
  },
@@ -30,7 +30,7 @@
30
30
  "vue-router": "^4.4.3",
31
31
  "vue3-click-away": "^1.2.4",
32
32
  "yjs": "^13.6.14",
33
- "@g1cloud/page-builder-viewer": "1.0.0-alpha.29"
33
+ "@g1cloud/page-builder-viewer": "1.0.0-alpha.30"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/node": "^20.12.7",