@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
package/dist/index.d.ts CHANGED
@@ -1,3 +1,8 @@
1
+ import { PartDefinition, PartDefinitionGroup } from './model/part-definintion.ts';
2
+ import { PartProperty } from './model/part-property.ts';
3
+
1
4
  export { default as PageBuilderEditor } from './PageBuilderEditor.vue';
5
+ export type { PartProperty, PartDefinitionGroup, PartDefinition };
2
6
  export * from './model/event';
7
+ export * from './model/plugin';
3
8
  export * from '@g1cloud/page-builder-viewer';
@@ -26,14 +26,6 @@ export declare class CommandRegistryImpl implements CommandRegistry {
26
26
  getCommand(commandId: string): Command | undefined;
27
27
  executeCommand(commandId: string, args?: any): boolean;
28
28
  }
29
- export declare class OpenAddPartModalCommand implements Command {
30
- private modal;
31
- static readonly COMMAND_ID = "OpenAddPartModal";
32
- readonly commandId = "OpenAddPartModal";
33
- readonly caption = "Add Part";
34
- constructor(modal: BSModal);
35
- execute(pageBuilder: PageBuilderEditor, args?: any): void;
36
- }
37
29
  export declare class OpenAddWidgetModalCommand implements Command {
38
30
  private modal;
39
31
  static readonly COMMAND_ID = "OpenAddWidgetModal";
@@ -53,114 +45,134 @@ export declare class AddPartCommand implements Command {
53
45
  constructor(modal: BSModal);
54
46
  execute(pageBuilder: PageBuilderEditor, args?: any): void;
55
47
  }
48
+ export declare class AddSectionCommand implements Command {
49
+ private modal;
50
+ static readonly COMMAND_ID = "AddSection";
51
+ readonly commandId = "AddSection";
52
+ readonly caption = "Add Section";
53
+ constructor(modal: BSModal);
54
+ execute(pageBuilder: PageBuilderEditor, args?: any): void;
55
+ }
56
+ export declare class AddBlockCommand implements Command {
57
+ private modal;
58
+ static readonly COMMAND_ID = "AddBlock";
59
+ readonly commandId = "AddBlock";
60
+ readonly caption = "Add Block";
61
+ constructor(modal: BSModal);
62
+ execute(pageBuilder: PageBuilderEditor, args?: any): void;
63
+ }
56
64
  export declare class AddSectionAboveCommand implements Command {
57
65
  private modal;
58
66
  static readonly COMMAND_ID = "AddSectionAbove";
59
- static readonly CAPTION = "Add Part Above";
67
+ static readonly CAPTION = "pb.menu.addSectionAbove";
60
68
  readonly commandId = "AddSectionAbove";
61
- readonly caption = "Add Part Above";
69
+ readonly caption = "pb.menu.addSectionAbove";
62
70
  constructor(modal: BSModal);
63
71
  execute(pageBuilder: PageBuilderEditor, args?: any): void;
64
72
  }
65
73
  export declare class AddSectionBelowCommand implements Command {
66
74
  private modal;
67
75
  static readonly COMMAND_ID = "AddSectionBelow";
68
- static readonly CAPTION = "Add Part Below";
76
+ static readonly CAPTION = "pb.menu.addSectionBelow";
69
77
  readonly commandId = "AddSectionBelow";
70
- readonly caption = "Add Part Below";
78
+ readonly caption = "pb.menu.addSectionBelow";
71
79
  constructor(modal: BSModal);
72
80
  execute(pageBuilder: PageBuilderEditor, args?: any): void;
73
81
  }
74
82
  export declare class AddBlockLeftCommand implements Command {
75
83
  static readonly COMMAND_ID = "AddBlockLeft";
76
- static readonly CAPTION = "Add Block Left";
84
+ static readonly CAPTION = "pb.menu.addBlockLeft";
77
85
  readonly commandId = "AddBlockLeft";
78
- readonly caption = "Add Block Left";
86
+ readonly caption = "pb.menu.addBlockLeft";
79
87
  constructor();
80
88
  execute(pageBuilder: PageBuilderEditor, args?: any): void;
81
89
  }
82
90
  export declare class AddBlockRightCommand implements Command {
83
91
  static readonly COMMAND_ID = "AddBlockRight";
84
- static readonly CAPTION = "Add Block Right";
92
+ static readonly CAPTION = "pb.menu.addBlockRight";
85
93
  readonly commandId = "AddBlockRight";
86
- readonly caption = "Add Block Right";
94
+ readonly caption = "pb.menu.addBlockRight";
87
95
  constructor();
88
96
  execute(pageBuilder: PageBuilderEditor, args?: any): void;
89
97
  }
90
98
  export declare class AddBlockAboveCommand implements Command {
91
99
  static readonly COMMAND_ID = "AddBlockAbove";
92
- static readonly CAPTION = "Add Block Above";
100
+ static readonly CAPTION = "pb.menu.addBlockAbove";
93
101
  readonly commandId = "AddBlockAbove";
94
- readonly caption = "Add Block Above";
102
+ readonly caption = "pb.menu.addBlockAbove";
95
103
  constructor();
96
104
  execute(pageBuilder: PageBuilderEditor, args?: any): void;
97
105
  }
98
106
  export declare class AddBlockBelowCommand implements Command {
99
107
  static readonly COMMAND_ID = "AddBlockBelow";
100
- static readonly CAPTION = "Add Block Below";
108
+ static readonly CAPTION = "pb.menu.addBlockBelow";
101
109
  readonly commandId = "AddBlockBelow";
102
- readonly caption = "Add Block Below";
110
+ readonly caption = "pb.menu.addBlockBelow";
103
111
  constructor();
104
112
  execute(pageBuilder: PageBuilderEditor, args?: any): void;
105
113
  }
106
114
  export declare class AddWidgetLeftCommand implements Command {
107
115
  private modal;
108
116
  static readonly COMMAND_ID = "AddWidgetLeft";
109
- static readonly CAPTION = "Add Widget Left";
117
+ static readonly CAPTION = "pb.menu.addWidgetLeft";
110
118
  readonly commandId = "AddWidgetLeft";
111
- readonly caption = "Add Widget Left";
119
+ readonly caption = "pb.menu.addWidgetLeft";
112
120
  constructor(modal: BSModal);
113
121
  execute(pageBuilder: PageBuilderEditor, args?: any): void;
114
122
  }
115
123
  export declare class AddWidgetRightCommand implements Command {
116
124
  private modal;
117
125
  static readonly COMMAND_ID = "AddWidgetRight";
118
- static readonly CAPTION = "Add Widget Right";
126
+ static readonly CAPTION = "pb.menu.addWidgetRight";
119
127
  readonly commandId = "AddWidgetRight";
120
- readonly caption = "Add Widget Right";
128
+ readonly caption = "pb.menu.addWidgetRight";
121
129
  constructor(modal: BSModal);
122
130
  execute(pageBuilder: PageBuilderEditor, args?: any): void;
123
131
  }
124
132
  export declare class AddWidgetAboveCommand implements Command {
125
133
  private modal;
126
134
  static readonly COMMAND_ID = "AddWidgetAbove";
127
- static readonly CAPTION = "Add Widget Above";
135
+ static readonly CAPTION = "pb.menu.addWidgetAbove";
128
136
  readonly commandId = "AddWidgetAbove";
129
- readonly caption = "Add Widget Above";
137
+ readonly caption = "pb.menu.addWidgetAbove";
130
138
  constructor(modal: BSModal);
131
139
  execute(pageBuilder: PageBuilderEditor, args?: any): void;
132
140
  }
133
141
  export declare class AddWidgetBelowCommand implements Command {
134
142
  private modal;
135
143
  static readonly COMMAND_ID = "AddWidgetBelow";
136
- static readonly CAPTION = "Add Widget Below";
144
+ static readonly CAPTION = "pb.menu.addWidgetBelow";
137
145
  readonly commandId = "AddWidgetBelow";
138
- readonly caption = "Add Widget Below";
146
+ readonly caption = "pb.menu.addWidgetBelow";
139
147
  constructor(modal: BSModal);
140
148
  execute(pageBuilder: PageBuilderEditor, args?: any): void;
141
149
  }
142
150
  export declare class AddWidgetInsideCommand implements Command {
143
151
  private modal;
144
152
  static readonly COMMAND_ID = "AddWidgetInside";
145
- static readonly CAPTION = "Add Widget Inside";
153
+ static readonly CAPTION = "pb.menu.addWidgetInside";
146
154
  readonly commandId = "AddWidgetInside";
147
- readonly caption = "Add Widget Inside";
155
+ readonly caption = "pb.menu.addWidgetInside";
148
156
  constructor(modal: BSModal);
149
157
  execute(pageBuilder: PageBuilderEditor, args?: any): void;
150
158
  }
151
159
  export declare class ChangePropertyCommand implements Command {
152
160
  static readonly COMMAND_ID = "ChangeProperty";
153
161
  readonly commandId = "ChangeProperty";
154
- readonly caption = "Change Property";
155
162
  execute(pageBuilder: PageBuilderEditor, args?: any): void;
156
163
  }
157
164
  export declare class DeletePartCommand implements Command {
158
165
  static readonly COMMAND_ID = "DeletePart";
159
- static readonly CAPTION = "Delete";
166
+ static readonly CAPTION = "pb.menu.deletePart";
160
167
  readonly commandId = "DeletePart";
161
- readonly caption = "Delete";
168
+ readonly caption = "pb.menu.deletePart";
162
169
  execute(pageBuilder: PageBuilderEditor): void;
163
170
  }
171
+ export declare class CopyAllCommand implements Command {
172
+ static readonly COMMAND_ID = "CopyAll";
173
+ readonly commandId = "CopyAll";
174
+ execute(pageBuilder: PageBuilderEditor): Promise<void>;
175
+ }
164
176
  export declare class CopyPartCommand implements Command {
165
177
  static readonly COMMAND_ID = "CopyPart";
166
178
  readonly commandId = "CopyPart";
@@ -181,7 +193,7 @@ export declare class SelectAllPartsCommand implements Command {
181
193
  readonly commandId = "SelectAllParts";
182
194
  execute(pageBuilder: PageBuilderEditor): void;
183
195
  }
184
- export declare const createDefaultCommands: (modal: BSModal) => (OpenAddPartModalCommand | OpenAddWidgetModalCommand | AddPartCommand | AddSectionAboveCommand | AddSectionBelowCommand | AddBlockLeftCommand | AddBlockRightCommand | AddBlockAboveCommand | AddBlockBelowCommand | AddWidgetLeftCommand | AddWidgetRightCommand | AddWidgetAboveCommand | AddWidgetBelowCommand | AddWidgetInsideCommand | ChangePropertyCommand | DeletePartCommand | CopyPartCommand | CutPartCommand | PastePartCommand | SelectAllPartsCommand)[];
196
+ export declare const createDefaultCommands: (modal: BSModal) => (OpenAddWidgetModalCommand | AddPartCommand | AddSectionCommand | AddBlockCommand | AddSectionAboveCommand | AddSectionBelowCommand | AddBlockLeftCommand | AddBlockRightCommand | AddBlockAboveCommand | AddBlockBelowCommand | AddWidgetLeftCommand | AddWidgetRightCommand | AddWidgetAboveCommand | AddWidgetBelowCommand | AddWidgetInsideCommand | ChangePropertyCommand | DeletePartCommand | CopyAllCommand | CopyPartCommand | CutPartCommand | PastePartCommand | SelectAllPartsCommand)[];
185
197
  export declare const menuItemForCommand: (pageBuilder: PageBuilderEditor, commandId: string, caption?: string) => MenuItem;
186
198
  export declare const createDefaultContextMenus: () => ContextMenu[];
187
199
  export declare const createDefaultKeyHandlers: () => KeyHandler[];
@@ -35,7 +35,7 @@ export declare class PageBuilderContextImpl implements PageBuilderContext {
35
35
  partType: string;
36
36
  partName: string;
37
37
  partId: string;
38
- properties?: Record<string, import('@g1cloud/page-builder-viewer').MultiLangText> | undefined;
38
+ properties?: Record<string, unknown> | undefined;
39
39
  children?: any[] | undefined;
40
40
  parent?: any | undefined;
41
41
  isRoot: () => boolean;
@@ -44,21 +44,20 @@ export declare class PageBuilderContextImpl implements PageBuilderContext {
44
44
  isBlock: () => boolean;
45
45
  isWidget: () => boolean;
46
46
  isNestedWidget: () => boolean;
47
+ isParentOf: (part: IPart | undefined) => boolean;
48
+ isChildOf: (part: IPart | undefined) => boolean;
47
49
  getName: () => string | undefined;
48
50
  getProperty: (propertyName: string) => import('@g1cloud/page-builder-viewer').MultiLangText | undefined;
49
51
  getClassNames: () => string;
50
- getStyles: () => Record<string, string>;
51
- getPageBuilderId: () => string | undefined;
52
- getLanguage: () => string | undefined;
53
- isGlobalDesignPart: () => boolean;
54
- isLocalDesignPart: () => boolean;
55
- isLocalMarketingPart: () => boolean;
52
+ getStyles: (isMobilePage?: boolean | undefined) => Record<string, string>;
53
+ getInlineStyles: () => Record<string, string>;
54
+ getStyleTag: () => string;
56
55
  } | undefined;
57
56
  getSingleSelectedBlock(): {
58
57
  partType: string;
59
58
  partName: string;
60
59
  partId: string;
61
- properties?: Record<string, import('@g1cloud/page-builder-viewer').MultiLangText> | undefined;
60
+ properties?: Record<string, unknown> | undefined;
62
61
  children?: any[] | undefined;
63
62
  parent?: any | undefined;
64
63
  isRoot: () => boolean;
@@ -67,21 +66,20 @@ export declare class PageBuilderContextImpl implements PageBuilderContext {
67
66
  isBlock: () => boolean;
68
67
  isWidget: () => boolean;
69
68
  isNestedWidget: () => boolean;
69
+ isParentOf: (part: IPart | undefined) => boolean;
70
+ isChildOf: (part: IPart | undefined) => boolean;
70
71
  getName: () => string | undefined;
71
72
  getProperty: (propertyName: string) => import('@g1cloud/page-builder-viewer').MultiLangText | undefined;
72
73
  getClassNames: () => string;
73
- getStyles: () => Record<string, string>;
74
- getPageBuilderId: () => string | undefined;
75
- getLanguage: () => string | undefined;
76
- isGlobalDesignPart: () => boolean;
77
- isLocalDesignPart: () => boolean;
78
- isLocalMarketingPart: () => boolean;
74
+ getStyles: (isMobilePage?: boolean | undefined) => Record<string, string>;
75
+ getInlineStyles: () => Record<string, string>;
76
+ getStyleTag: () => string;
79
77
  } | undefined;
80
78
  getSingleSelectedSection(): {
81
79
  partType: string;
82
80
  partName: string;
83
81
  partId: string;
84
- properties?: Record<string, import('@g1cloud/page-builder-viewer').MultiLangText> | undefined;
82
+ properties?: Record<string, unknown> | undefined;
85
83
  children?: any[] | undefined;
86
84
  parent?: any | undefined;
87
85
  isRoot: () => boolean;
@@ -90,15 +88,14 @@ export declare class PageBuilderContextImpl implements PageBuilderContext {
90
88
  isBlock: () => boolean;
91
89
  isWidget: () => boolean;
92
90
  isNestedWidget: () => boolean;
91
+ isParentOf: (part: IPart | undefined) => boolean;
92
+ isChildOf: (part: IPart | undefined) => boolean;
93
93
  getName: () => string | undefined;
94
94
  getProperty: (propertyName: string) => import('@g1cloud/page-builder-viewer').MultiLangText | undefined;
95
95
  getClassNames: () => string;
96
- getStyles: () => Record<string, string>;
97
- getPageBuilderId: () => string | undefined;
98
- getLanguage: () => string | undefined;
99
- isGlobalDesignPart: () => boolean;
100
- isLocalDesignPart: () => boolean;
101
- isLocalMarketingPart: () => boolean;
96
+ getStyles: (isMobilePage?: boolean | undefined) => Record<string, string>;
97
+ getInlineStyles: () => Record<string, string>;
98
+ getStyleTag: () => string;
102
99
  } | undefined;
103
100
  }
104
101
  export type ContextMenu = {
@@ -124,8 +121,8 @@ export interface KeyHandlers {
124
121
  appendKeyHandler(handler: KeyHandler): void;
125
122
  removeKeyHandler(handler: KeyHandler): void;
126
123
  handleKeyDownEvent(event: KeyboardEvent): void;
127
- addDocumentKeyEventListener(document: Document): void;
128
- removeDocumentKeyEventListener(document: Document): void;
124
+ addDocumentKeyEventListener(element: HTMLElement): void;
125
+ removeDocumentKeyEventListener(element: HTMLElement): void;
129
126
  }
130
127
  export declare class ContextMenuRegistryImpl implements ContextMenuRegistry {
131
128
  readonly groups: ContextMenuGroup[];
@@ -143,6 +140,6 @@ export declare class KeyHandlersImpl implements KeyHandlers {
143
140
  appendKeyHandler(handler: KeyHandler): void;
144
141
  removeKeyHandler(handler: KeyHandler): void;
145
142
  handleKeyDownEvent(event: KeyboardEvent): void;
146
- addDocumentKeyEventListener(document: Document): void;
147
- removeDocumentKeyEventListener(document: Document): void;
143
+ addDocumentKeyEventListener(element: HTMLElement): void;
144
+ removeDocumentKeyEventListener(element: HTMLElement): void;
148
145
  }
@@ -6,6 +6,9 @@ export declare const marginGroup: () => PartPropertyGroup;
6
6
  export declare const paddingGroup: () => PartPropertyGroup;
7
7
  export declare const commonGroup: () => PartPropertyGroup;
8
8
  export declare const layoutGroup: () => PartPropertyGroup;
9
+ export declare const alignGroup: () => PartPropertyGroup;
10
+ export declare const alignItemsGroup: () => PartPropertyGroup;
11
+ export declare const alignSelfGroup: () => PartPropertyGroup;
9
12
  export declare const backgroundGroup: () => PartPropertyGroup;
10
13
  export declare const borderGroup: () => PartPropertyGroup;
11
14
  export declare const defaultPropertyGroups: () => PartPropertyGroup[];
@@ -3,74 +3,18 @@ import { ModelUpdateResult } from './model';
3
3
  export type PageBuilderEditorEventType = {
4
4
  modelUpdatedByUI: ModelUpdateResult;
5
5
  modelUpdated: ModelUpdateResult;
6
- requestImage: {
7
- pageBuilderId?: string;
8
- callback: (url: string) => void;
9
- };
10
- requestProducts: {
11
- pageBuilderId?: string;
12
- itemCodes: string;
13
- callback: (products: any[]) => void;
14
- };
15
- requestLocalMarketingPartSchedule: {
16
- pageBuilderId?: string;
17
- partId: string;
18
- callback: (schedule: any) => void;
19
- };
20
6
  };
21
7
  export declare const PageBuilderEditorEvent: {
22
8
  on: {
23
9
  modelUpdated: (listener: (changes: ModelUpdateResult) => void) => void;
24
10
  modelUpdatedByUI: (listener: (changes: ModelUpdateResult) => void) => void;
25
- requestImage: (listener: (param: {
26
- pageBuilderId?: string;
27
- callback: (url: string) => void;
28
- }) => void) => void;
29
- requestProducts: (listener: (param: {
30
- pageBuilderId?: string;
31
- itemCodes: string;
32
- callback: (products: any[]) => void;
33
- }) => void) => void;
34
- requestLocalMarketingPartSchedule: (listener: (param: {
35
- pageBuilderId?: string;
36
- partId: string;
37
- callback: (schedule: any) => void;
38
- }) => void) => void;
39
11
  };
40
12
  off: {
41
13
  modelUpdated: (listener: (changes: ModelUpdateResult) => void) => void;
42
14
  modelUpdatedByUI: (listener: (changes: ModelUpdateResult) => void) => void;
43
- requestImage: (listener: (param: {
44
- pageBuilderId?: string;
45
- callback: (url: string) => void;
46
- }) => void) => void;
47
- requestProducts: (listener: (param: {
48
- pageBuilderId?: string;
49
- itemCodes: string;
50
- callback: (products: any[]) => void;
51
- }) => void) => void;
52
- requestLocalMarketingPartSchedule: (listener: (param: {
53
- pageBuilderId?: string;
54
- partId: string;
55
- callback: (schedule: any) => void;
56
- }) => void) => void;
57
15
  };
58
16
  emit: {
59
17
  modelUpdated: (changes: ModelUpdateResult) => void;
60
18
  modelUpdatedByUI: (changes: ModelUpdateResult) => void;
61
- requestImage: (param: {
62
- pageBuilderId?: string;
63
- callback: (url: string) => void;
64
- }) => void;
65
- requestProducts: (param: {
66
- pageBuilderId?: string;
67
- itemCodes: string;
68
- callback: (products: any[]) => void;
69
- }) => void;
70
- requestLocalMarketingPartSchedule: (param: {
71
- pageBuilderId?: string;
72
- partId: string;
73
- callback: (schedule: any) => void;
74
- }) => void;
75
19
  };
76
20
  };
@@ -1,10 +1,11 @@
1
- import { IPart, MultiLangText } from '@g1cloud/page-builder-viewer';
1
+ import { IPart } from '@g1cloud/page-builder-viewer';
2
2
  import * as Y from 'yjs';
3
3
  export declare const ROOT_TYPE = "Root";
4
4
  export declare const PAGE_TYPE = "Page";
5
5
  export declare const SECTION_TYPE = "Section";
6
6
  export declare const BLOCK_TYPE = "Block";
7
7
  export declare const WIDGET_TYPE = "Widget";
8
+ type MediaExtractor = (part: IPart) => string[];
8
9
  export declare const getNewPartId: () => string;
9
10
  export declare const partsToJsonString: (parts: IPart[]) => string;
10
11
  export declare const partFromJsonObject: (object: any, keepPartId?: boolean) => IPart | undefined;
@@ -19,9 +20,11 @@ export declare class Model {
19
20
  updateModel(param: ModelUpdateParam): ModelUpdateResult;
20
21
  findPartById(partId?: string): IPart | undefined;
21
22
  findPartsByIds(partIds: string[]): IPart[];
22
- serializePageModel: (partIds: string[]) => string;
23
- parsePageModel(json: string, keepPartId?: boolean): IPart[] | undefined;
24
- moveElements(partId: string, destPartId: string, destIndex: number, update?: PartUpdateParam[]): void;
23
+ serializeModel(mediaExtractor?: MediaExtractor): string;
24
+ parseModel(json: string, keepPartId?: boolean): IPart;
25
+ serializeParts(partIds: string[]): string;
26
+ parseParts(json: string, keepPartId?: boolean): IPart[] | undefined;
27
+ moveElements(partId: string, destPartId: string, destIndex: number, update?: PartUpdateParam[], doNotChangeIndex?: boolean): void;
25
28
  isMobilePart(part: IPart): boolean;
26
29
  isPcPart(part: IPart): boolean;
27
30
  private insertParts;
@@ -49,7 +52,7 @@ export type PartInsertResult = {
49
52
  };
50
53
  export type PartUpdateResult = {
51
54
  element: Y.XmlElement;
52
- properties: Record<string, MultiLangText>;
55
+ properties: Record<string, unknown>;
53
56
  removeOtherProperties?: boolean;
54
57
  };
55
58
  export type PartDeleteResult = {
@@ -66,3 +69,4 @@ export type ModelUpdateResult = {
66
69
  updated?: PartUpdateResult[];
67
70
  deleted?: PartDeleteResult[];
68
71
  };
72
+ export {};
@@ -1,16 +1,19 @@
1
+ import { PartDefinitionGroup } from './part-definintion.ts';
1
2
  import { ContextMenuRegistry, ContextMenuRegistryImpl, KeyHandlers, PageBuilderContext, PageBuilderContextImpl } from './context.ts';
2
3
  import { ToolButtonRegistry } from './toolbar.ts';
3
4
  import { PageBuilderPlugin } from './plugin.ts';
5
+ import { IPart, PageBuilder } from '@g1cloud/page-builder-viewer';
4
6
  import { CommandRegistry, CommandRegistryImpl } from './command';
5
7
  import { PartManager } from './part-manager';
6
8
  import { Model } from './model';
7
- import { Ref } from 'vue';
9
+ import { Component, Ref } from 'vue';
8
10
 
9
- export type PageBuilderEditMode = 'template' | 'global' | 'local' | 'free';
10
11
  export declare const createPageBuilderEditor: () => PageBuilderEditor;
12
+ export declare const providePageBuilder: (pageBuilder: PageBuilder) => void;
11
13
  export declare const providePageBuilderEditor: (pageBuilderEditor: PageBuilderEditor) => void;
14
+ export declare const usePageBuilder: () => PageBuilder;
12
15
  export declare const usePageBuilderEditor: () => PageBuilderEditor;
13
- export interface PageBuilderEditor {
16
+ export interface PageBuilderEditor extends PageBuilder {
14
17
  instanceId?: string;
15
18
  partManager: PartManager;
16
19
  model: Model;
@@ -20,17 +23,23 @@ export interface PageBuilderEditor {
20
23
  keyHandlers: KeyHandlers;
21
24
  toolButtonRegistry: ToolButtonRegistry;
22
25
  title?: string;
23
- editMode: PageBuilderEditMode;
24
26
  scale: Ref<number>;
27
+ locale: Ref<string>;
25
28
  locales: Ref<string[]>;
26
- language: Ref<string>;
29
+ onModelUpdated?: (modified: boolean) => void;
27
30
  registerPlugin(plugin: PageBuilderPlugin): void;
28
- initData(content?: any): void;
31
+ registerCustomPlugin(plugin: any): void;
32
+ initData(data?: string): void;
29
33
  undo(): void;
30
34
  redo(): void;
31
35
  zoom(scale: number): void;
32
- setLocales(locales: string[]): void;
33
- setLanguage(language: string): void;
36
+ getLocales(): string[];
37
+ setLocales(locales?: string[]): void;
38
+ makeSingleScreen(screenToKeep: number): void;
39
+ makeMultipleScreen(): void;
40
+ getCustomWidgets(): PartDefinitionGroup[];
41
+ getProvider(name: string): (args?: any, callback?: (result?: any) => void) => unknown;
42
+ extractMedia(part: IPart): string[];
34
43
  }
35
44
  export declare class PageBuilderEditorImpl implements PageBuilderEditor {
36
45
  instanceId?: string;
@@ -42,18 +51,35 @@ export declare class PageBuilderEditorImpl implements PageBuilderEditor {
42
51
  keyHandlers: KeyHandlers;
43
52
  toolButtonRegistry: ToolButtonRegistry;
44
53
  title?: string;
45
- editMode: PageBuilderEditMode;
46
54
  scale: Ref<number>;
55
+ locale: Ref<string>;
47
56
  locales: Ref<string[]>;
48
- language: Ref<string>;
57
+ customWidgets: PartDefinitionGroup[];
58
+ providers: Record<string, unknown>;
59
+ externalCssLinks: string[];
60
+ externalCssContent: string;
61
+ initialized: boolean;
62
+ onModelUpdated?: (modified: boolean) => void;
49
63
  constructor();
64
+ getLocale(): string;
65
+ setLocale(locale?: string): void;
66
+ getLocales(): string[];
67
+ setLocales(locales?: string[]): void;
68
+ getCustomWidgetComponent(part: IPart): Component | undefined;
69
+ getProvider(name: string): (args?: any, callback?: (result?: any) => void) => unknown;
50
70
  registerPlugin(plugin: PageBuilderPlugin): void;
51
- initData(content?: any[]): void;
71
+ registerCustomPlugin(plugin: any): void;
72
+ initData(data?: string): void;
52
73
  undo(): void;
53
74
  redo(): void;
54
75
  zoom(scale: number): void;
55
- setLocales(locales: string[]): void;
56
- setLanguage(language: string): void;
76
+ makeSingleScreen(screenToKeep: number): void;
77
+ makeMultipleScreen(): void;
78
+ getCustomWidgets(): PartDefinitionGroup[];
79
+ extractMedia(part: IPart): string[];
80
+ getExternalCss(): string;
81
+ private extractMediaFromPart;
82
+ private extractMediaFromHtml;
57
83
  private getEmptyPageContent;
58
84
  private initPlugins;
59
85
  }
@@ -1,5 +1,7 @@
1
+ import { BSModal } from '@g1cloud/bluesea';
1
2
  import { IPart, MultiLangText } from '@g1cloud/page-builder-viewer';
2
3
 
3
4
  export declare const getPropertyValueOfParts: (parts: IPart[], propertyName: string) => MultiLangText | undefined;
4
5
  export declare const isCursorInElement: (event: MouseEvent, element: Element) => boolean;
5
6
  export declare const extractCommonStylesFromProperties: (properties: Record<string, string>) => Record<string, unknown>;
7
+ export declare const selectYoutubeVideo: (modal: BSModal, url?: string, callback?: (url?: string) => void) => void;
@@ -7,11 +7,13 @@ export type PartDefinition = {
7
7
  partType: string;
8
8
  partName: string;
9
9
  caption: string;
10
+ icon: string;
11
+ className: string;
10
12
  propertyGroups: PartPropertyGroup[];
11
13
  initialProperties: Record<string, string>;
12
- localized: boolean;
13
14
  allowsChild: (partOrName?: IPart | string | undefined) => boolean;
14
15
  creator: PartCreator;
16
+ component?: Component;
15
17
  };
16
18
  export type PartDefinitionGroup = {
17
19
  groupName: string;
@@ -20,7 +22,6 @@ export type PartDefinitionGroup = {
20
22
  };
21
23
  declare const partDefinitions: Record<string, PartDefinition>;
22
24
  export { partDefinitions };
23
- export declare const designPartDefinitions: PartDefinitionGroup[];
24
25
  export declare const layoutPartDefinitions: PartDefinitionGroup[];
25
26
  export declare const widgetPartDefinitions: PartDefinitionGroup[];
26
27
  export declare const blockWidgetPartDefinitions: PartDefinitionGroup[];
@@ -15,9 +15,10 @@ export declare class PartManager {
15
15
  registerPartDefinitions(partDefinitions: Record<string, PartDefinition>): void;
16
16
  getPartDefinition(partName: string): PartDefinition | undefined;
17
17
  getPropertyDefinition(partName: string, propertyName: string): PartProperty | undefined;
18
- getLocalDesignPartPropertyDefinitions(partName: string): PartProperty[] | undefined;
19
18
  createPartComponent(part?: IPart): Component | undefined;
20
19
  createPartComponents(parts?: IPart[]): PartComponent[];
20
+ getPartClassName(part?: IPart): string | undefined;
21
+ isChildAllowed(part?: IPart): boolean;
21
22
  registerPartPropertyGroupEditors(editors: Record<string, PartPropertyGroupEditor>): void;
22
23
  getPartPropertyGroupEditor(groupName: string): PartPropertyGroupEditor | undefined;
23
24
  registerPartPropertyEditors(editors: Record<PartPropertyType, PartPropertyEditor>): void;
@@ -1,7 +1,7 @@
1
1
  import { IPart } from '@g1cloud/page-builder-viewer';
2
2
  import { Component } from 'vue';
3
3
 
4
- export type PartPropertyType = 'readonly-text' | 'text' | 'number' | 'multiline-text' | 'select' | string;
4
+ export type PartPropertyType = 'readonly-text' | 'text' | 'number' | 'boolean' | 'multiline-text' | 'select' | string;
5
5
  export type PartPropertyEditor = (property: PartProperty, parts: IPart[]) => Component | undefined;
6
6
  export type PartProperty = {
7
7
  propertyName: string;
@@ -9,7 +9,8 @@ export type PartProperty = {
9
9
  caption: string;
10
10
  params?: any;
11
11
  propertyEditor?: PartPropertyEditor;
12
- localized?: boolean;
12
+ readonly?: boolean;
13
+ multiLang?: boolean;
13
14
  };
14
15
  export type PartPropertyGroupEditor = (group: PartPropertyGroup, parts: IPart[]) => Component | undefined;
15
16
  export type PartPropertyGroup = {
@@ -18,5 +19,4 @@ export type PartPropertyGroup = {
18
19
  caption: string;
19
20
  showGroupName?: boolean;
20
21
  propertyGroupEditor?: PartPropertyGroupEditor;
21
- localized?: boolean;
22
22
  };
@@ -1,3 +1,5 @@
1
+ import { BSModal } from '@g1cloud/bluesea';
2
+ import { Component } from 'vue';
1
3
  import { PartPropertyEditor, PartPropertyGroupEditor, PartPropertyType } from './part-property.ts';
2
4
  import { PartDefinition } from './part-definintion.ts';
3
5
  import { ToolButtonGroup } from './toolbar.ts';
@@ -13,3 +15,16 @@ export type PageBuilderPlugin = {
13
15
  keyHandlers?: KeyHandler[];
14
16
  toolButtonGroups?: ToolButtonGroup[];
15
17
  };
18
+ export type PageBuilderToolbarPlugin = {
19
+ component: Component;
20
+ bind?: {
21
+ [key: string]: any;
22
+ };
23
+ on?: {
24
+ [key: string]: Function | Function[];
25
+ };
26
+ };
27
+ export type ImageProviderArg = {
28
+ modal: BSModal;
29
+ mediaTypes: string[];
30
+ };