@webiny/app-website-builder 6.6.0-alpha.0 → 6.6.0-alpha.1

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 (234) hide show
  1. package/BaseEditor/commandHandlers/CloneElement.d.ts +1 -0
  2. package/BaseEditor/commandHandlers/CloneElement.js +17 -0
  3. package/BaseEditor/commandHandlers/CloneElement.js.map +1 -0
  4. package/BaseEditor/commandHandlers/index.js +2 -1
  5. package/BaseEditor/commandHandlers/index.js.map +1 -1
  6. package/BaseEditor/commands.d.ts +3 -0
  7. package/BaseEditor/commands.js +2 -0
  8. package/BaseEditor/commands.js.map +1 -1
  9. package/BaseEditor/defaultConfig/Content/AddressBar/usePreviewLink.js +4 -1
  10. package/BaseEditor/defaultConfig/Content/AddressBar/usePreviewLink.js.map +1 -1
  11. package/BaseEditor/defaultConfig/Content/Preview/DropZoneManager.js.map +1 -1
  12. package/BaseEditor/defaultConfig/Content/Preview/Iframe.d.ts +2 -2
  13. package/BaseEditor/defaultConfig/Content/Preview/Overlays/ElementOverlays.d.ts +2 -2
  14. package/BaseEditor/defaultConfig/DefaultEditorConfig.js +9 -0
  15. package/BaseEditor/defaultConfig/DefaultEditorConfig.js.map +1 -1
  16. package/BaseEditor/defaultConfig/DocumentStateEditor/DocumentStateEditor.d.ts +2 -2
  17. package/BaseEditor/defaultConfig/ElementInputRenderers.js +4 -0
  18. package/BaseEditor/defaultConfig/ElementInputRenderers.js.map +1 -1
  19. package/BaseEditor/defaultConfig/Sidebar/ElementActions/CloneElementAction.d.ts +2 -0
  20. package/BaseEditor/defaultConfig/Sidebar/ElementActions/CloneElementAction.js +25 -0
  21. package/BaseEditor/defaultConfig/Sidebar/ElementActions/CloneElementAction.js.map +1 -0
  22. package/BaseEditor/defaultConfig/Sidebar/ElementActions/DeleteElementAction.d.ts +2 -0
  23. package/BaseEditor/defaultConfig/Sidebar/ElementActions/DeleteElementAction.js +26 -0
  24. package/BaseEditor/defaultConfig/Sidebar/ElementActions/DeleteElementAction.js.map +1 -0
  25. package/BaseEditor/defaultConfig/Sidebar/ElementPreview.js +12 -2
  26. package/BaseEditor/defaultConfig/Sidebar/ElementPreview.js.map +1 -1
  27. package/BaseEditor/defaultConfig/Sidebar/ElementSettings/ElementInputs.js +1 -6
  28. package/BaseEditor/defaultConfig/Sidebar/ElementSettings/ElementInputs.js.map +1 -1
  29. package/BaseEditor/defaultConfig/Sidebar/ElementSettings/ElementSettings.js +11 -2
  30. package/BaseEditor/defaultConfig/Sidebar/ElementSettings/ElementSettings.js.map +1 -1
  31. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Background/BackgroundColor.d.ts +6 -2
  32. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Background/BackgroundImage.d.ts +6 -2
  33. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Background/BackgroundPosition.d.ts +6 -2
  34. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Background/BackgroundScaling.d.ts +6 -2
  35. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderColor.d.ts +2 -2
  36. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderRadius.d.ts +2 -2
  37. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderStyle.d.ts +2 -2
  38. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderWidth.d.ts +2 -2
  39. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Layout/Alignment.d.ts +6 -2
  40. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Layout/LengthWithUnitInput.d.ts +2 -2
  41. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/MarginPadding/Margin.d.ts +2 -2
  42. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/MarginPadding/Padding.d.ts +2 -2
  43. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Visibility/Visibility.d.ts +2 -2
  44. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/StyleProperties.js +7 -7
  45. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/StyleProperties.js.map +1 -1
  46. package/BaseEditor/defaultConfig/Toolbar/Navigator/Navigator.d.ts +2 -2
  47. package/DocumentEditor/DocumentEditor.d.ts +14 -5
  48. package/DocumentEditor/DocumentEditor.js +10 -6
  49. package/DocumentEditor/DocumentEditor.js.map +1 -1
  50. package/DocumentEditor/StateInspector.d.ts +4 -2
  51. package/Extension.js +7 -1
  52. package/Extension.js.map +1 -1
  53. package/ecommerce/components/ResourcePage.d.ts +6 -2
  54. package/ecommerce/components/ResourcesList.d.ts +4 -4
  55. package/ecommerce/components/ResourcesPicker.d.ts +9 -4
  56. package/editorSdk/CommandBus.js.map +1 -1
  57. package/editorSdk/utils/$cloneElement.d.ts +2 -0
  58. package/editorSdk/utils/$cloneElement.js +112 -0
  59. package/editorSdk/utils/$cloneElement.js.map +1 -0
  60. package/editorSdk/utils/index.d.ts +1 -0
  61. package/editorSdk/utils/index.js +1 -0
  62. package/features/experiments/ExperimentsGateway.d.ts +30 -0
  63. package/features/experiments/ExperimentsGateway.js +326 -0
  64. package/features/experiments/ExperimentsGateway.js.map +1 -0
  65. package/features/experiments/abstractions.d.ts +25 -0
  66. package/features/experiments/abstractions.js +5 -0
  67. package/features/experiments/abstractions.js.map +1 -0
  68. package/features/experiments/feature.d.ts +3 -0
  69. package/features/experiments/feature.js +17 -0
  70. package/features/experiments/feature.js.map +1 -0
  71. package/features/experiments/index.d.ts +3 -0
  72. package/features/experiments/index.js +2 -0
  73. package/features/experiments/types.d.ts +61 -0
  74. package/features/experiments/types.js +0 -0
  75. package/inputRenderers/ColorPickerInput.d.ts +3 -0
  76. package/inputRenderers/ColorPickerInput.js +29 -0
  77. package/inputRenderers/ColorPickerInput.js.map +1 -0
  78. package/inputRenderers/FileInput.js +93 -8
  79. package/inputRenderers/FileInput.js.map +1 -1
  80. package/inputRenderers/LexicalInput/LexicalEditor.js +15 -8
  81. package/inputRenderers/LexicalInput/LexicalEditor.js.map +1 -1
  82. package/inputRenderers/LexicalInput/TypographyDropDown.js +3 -2
  83. package/inputRenderers/LexicalInput/TypographyDropDown.js.map +1 -1
  84. package/inputRenderers/LexicalInput/wbStaticToolbar.css +72 -103
  85. package/modules/AbTesting.d.ts +2 -0
  86. package/modules/AbTesting.js +19 -0
  87. package/modules/AbTesting.js.map +1 -0
  88. package/package.json +28 -28
  89. package/presentation/components/LanguageCodeTag.js +5 -4
  90. package/presentation/components/LanguageCodeTag.js.map +1 -1
  91. package/presentation/experiments/ExperimentForm/ExperimentFormPresenter.d.ts +30 -0
  92. package/presentation/experiments/ExperimentForm/ExperimentFormPresenter.js +202 -0
  93. package/presentation/experiments/ExperimentForm/ExperimentFormPresenter.js.map +1 -0
  94. package/presentation/experiments/ExperimentForm/abstractions/ExperimentFormPresenter.d.ts +65 -0
  95. package/presentation/experiments/ExperimentForm/abstractions/ExperimentFormPresenter.js +5 -0
  96. package/presentation/experiments/ExperimentForm/abstractions/ExperimentFormPresenter.js.map +1 -0
  97. package/presentation/experiments/ExperimentForm/components/ExperimentFormView.d.ts +12 -0
  98. package/presentation/experiments/ExperimentForm/components/ExperimentFormView.js +149 -0
  99. package/presentation/experiments/ExperimentForm/components/ExperimentFormView.js.map +1 -0
  100. package/presentation/experiments/ExperimentForm/components/VariantSplitRow.d.ts +17 -0
  101. package/presentation/experiments/ExperimentForm/components/VariantSplitRow.js +122 -0
  102. package/presentation/experiments/ExperimentForm/components/VariantSplitRow.js.map +1 -0
  103. package/presentation/experiments/ExperimentForm/feature.d.ts +3 -0
  104. package/presentation/experiments/ExperimentForm/feature.js +17 -0
  105. package/presentation/experiments/ExperimentForm/feature.js.map +1 -0
  106. package/presentation/experiments/ExperimentForm/index.d.ts +3 -0
  107. package/presentation/experiments/ExperimentForm/index.js +3 -0
  108. package/presentation/experiments/ExperimentsEditor/ExperimentsEditorDataSource.d.ts +18 -0
  109. package/presentation/experiments/ExperimentsEditor/ExperimentsEditorDataSource.js +25 -0
  110. package/presentation/experiments/ExperimentsEditor/ExperimentsEditorDataSource.js.map +1 -0
  111. package/presentation/experiments/ExperimentsEditor/ExperimentsEditorPresenter.d.ts +67 -0
  112. package/presentation/experiments/ExperimentsEditor/ExperimentsEditorPresenter.js +224 -0
  113. package/presentation/experiments/ExperimentsEditor/ExperimentsEditorPresenter.js.map +1 -0
  114. package/presentation/experiments/ExperimentsEditor/abstractions/ExperimentsEditorDataSource.d.ts +10 -0
  115. package/presentation/experiments/ExperimentsEditor/abstractions/ExperimentsEditorDataSource.js +5 -0
  116. package/presentation/experiments/ExperimentsEditor/abstractions/ExperimentsEditorDataSource.js.map +1 -0
  117. package/presentation/experiments/ExperimentsEditor/abstractions/ExperimentsEditorPresenter.d.ts +58 -0
  118. package/presentation/experiments/ExperimentsEditor/abstractions/ExperimentsEditorPresenter.js +5 -0
  119. package/presentation/experiments/ExperimentsEditor/abstractions/ExperimentsEditorPresenter.js.map +1 -0
  120. package/presentation/experiments/ExperimentsEditor/components/ExperimentIndicator.d.ts +15 -0
  121. package/presentation/experiments/ExperimentsEditor/components/ExperimentIndicator.js +110 -0
  122. package/presentation/experiments/ExperimentsEditor/components/ExperimentIndicator.js.map +1 -0
  123. package/presentation/experiments/ExperimentsEditor/components/ExperimentPreviewToolbar.d.ts +9 -0
  124. package/presentation/experiments/ExperimentsEditor/components/ExperimentPreviewToolbar.js +178 -0
  125. package/presentation/experiments/ExperimentsEditor/components/ExperimentPreviewToolbar.js.map +1 -0
  126. package/presentation/experiments/ExperimentsEditor/components/ExperimentsButton.d.ts +11 -0
  127. package/presentation/experiments/ExperimentsEditor/components/ExperimentsButton.js +51 -0
  128. package/presentation/experiments/ExperimentsEditor/components/ExperimentsButton.js.map +1 -0
  129. package/presentation/experiments/ExperimentsEditor/components/ExperimentsSwitcher.d.ts +14 -0
  130. package/presentation/experiments/ExperimentsEditor/components/ExperimentsSwitcher.js +147 -0
  131. package/presentation/experiments/ExperimentsEditor/components/ExperimentsSwitcher.js.map +1 -0
  132. package/presentation/experiments/ExperimentsEditor/feature.d.ts +3 -0
  133. package/presentation/experiments/ExperimentsEditor/feature.js +21 -0
  134. package/presentation/experiments/ExperimentsEditor/feature.js.map +1 -0
  135. package/presentation/experiments/ExperimentsEditor/index.d.ts +4 -0
  136. package/presentation/experiments/ExperimentsEditor/index.js +3 -0
  137. package/presentation/experiments/ExperimentsManager/ExperimentsManagerPresenter.d.ts +39 -0
  138. package/presentation/experiments/ExperimentsManager/ExperimentsManagerPresenter.js +219 -0
  139. package/presentation/experiments/ExperimentsManager/ExperimentsManagerPresenter.js.map +1 -0
  140. package/presentation/experiments/ExperimentsManager/abstractions/ExperimentsManagerPresenter.d.ts +52 -0
  141. package/presentation/experiments/ExperimentsManager/abstractions/ExperimentsManagerPresenter.js +5 -0
  142. package/presentation/experiments/ExperimentsManager/abstractions/ExperimentsManagerPresenter.js.map +1 -0
  143. package/presentation/experiments/ExperimentsManager/components/ExperimentCard.d.ts +10 -0
  144. package/presentation/experiments/ExperimentsManager/components/ExperimentCard.js +296 -0
  145. package/presentation/experiments/ExperimentsManager/components/ExperimentCard.js.map +1 -0
  146. package/presentation/experiments/ExperimentsManager/components/ExperimentsDrawerView.d.ts +2 -0
  147. package/presentation/experiments/ExperimentsManager/components/ExperimentsDrawerView.js +92 -0
  148. package/presentation/experiments/ExperimentsManager/components/ExperimentsDrawerView.js.map +1 -0
  149. package/presentation/experiments/ExperimentsManager/components/ExperimentsEmptyState.d.ts +6 -0
  150. package/presentation/experiments/ExperimentsManager/components/ExperimentsEmptyState.js +103 -0
  151. package/presentation/experiments/ExperimentsManager/components/ExperimentsEmptyState.js.map +1 -0
  152. package/presentation/experiments/ExperimentsManager/components/ExperimentsListView.d.ts +9 -0
  153. package/presentation/experiments/ExperimentsManager/components/ExperimentsListView.js +58 -0
  154. package/presentation/experiments/ExperimentsManager/components/ExperimentsListView.js.map +1 -0
  155. package/presentation/experiments/ExperimentsManager/feature.d.ts +3 -0
  156. package/presentation/experiments/ExperimentsManager/feature.js +17 -0
  157. package/presentation/experiments/ExperimentsManager/feature.js.map +1 -0
  158. package/presentation/experiments/ExperimentsManager/index.d.ts +4 -0
  159. package/presentation/experiments/ExperimentsManager/index.js +3 -0
  160. package/presentation/experiments/VariantPageEditorConfig.d.ts +7 -0
  161. package/presentation/experiments/VariantPageEditorConfig.js +26 -0
  162. package/presentation/experiments/VariantPageEditorConfig.js.map +1 -0
  163. package/presentation/experiments/config/ExperimentsEditorConfig.d.ts +8 -0
  164. package/presentation/experiments/config/ExperimentsEditorConfig.js +21 -0
  165. package/presentation/experiments/config/ExperimentsEditorConfig.js.map +1 -0
  166. package/presentation/experiments/config/VariantAutoSave.d.ts +5 -0
  167. package/presentation/experiments/config/VariantAutoSave.js +41 -0
  168. package/presentation/experiments/config/VariantAutoSave.js.map +1 -0
  169. package/presentation/experiments/shared/variantColors.d.ts +11 -0
  170. package/presentation/experiments/shared/variantColors.js +13 -0
  171. package/presentation/experiments/shared/variantColors.js.map +1 -0
  172. package/presentation/experiments/shared/variantDocument.d.ts +16 -0
  173. package/presentation/experiments/shared/variantDocument.js +31 -0
  174. package/presentation/experiments/shared/variantDocument.js.map +1 -0
  175. package/presentation/navigation/Extension.js +9 -5
  176. package/presentation/navigation/Extension.js.map +1 -1
  177. package/presentation/navigation/NextjsConfig/NextjsConfigDialog.d.ts +2 -2
  178. package/presentation/navigation/StarterKitConfigDialog.js +1 -1
  179. package/presentation/navigation/StarterKitConfigDialog.js.map +1 -1
  180. package/presentation/pages/CreatePage/CreatePageDialog.d.ts +2 -2
  181. package/presentation/pages/CreatePage/CreatePagePresenter.js +1 -1
  182. package/presentation/pages/CreatePage/CreatePagePresenter.js.map +1 -1
  183. package/presentation/pages/CreatePage/WithLanguageSelector.js +3 -3
  184. package/presentation/pages/CreatePage/WithLanguageSelector.js.map +1 -1
  185. package/presentation/pages/CreatePage/feature.js +3 -3
  186. package/presentation/pages/CreatePage/feature.js.map +1 -1
  187. package/presentation/pages/PageEditor/PageEditor.experiments.d.ts +2 -0
  188. package/presentation/pages/PageEditor/PageEditor.experiments.js +54 -0
  189. package/presentation/pages/PageEditor/PageEditor.experiments.js.map +1 -0
  190. package/presentation/pages/PageEditor/PageEditorSurface.d.ts +15 -0
  191. package/presentation/pages/PageEditor/PageEditorSurface.js +63 -0
  192. package/presentation/pages/PageEditor/PageEditorSurface.js.map +1 -0
  193. package/presentation/pages/PageEditor/TopBar/PageSettingsDrawer.d.ts +2 -2
  194. package/presentation/pages/PageEditor/pageDocument.d.ts +4 -0
  195. package/presentation/pages/PageEditor/pageDocument.js +15 -0
  196. package/presentation/pages/PageEditor/pageDocument.js.map +1 -0
  197. package/presentation/pages/PageList/components/BulkActions/BulkActionDelete.d.ts +2 -2
  198. package/presentation/pages/PageList/components/BulkActions/BulkActionDuplicate.d.ts +2 -2
  199. package/presentation/pages/PageList/components/BulkActions/BulkActionMovePage.d.ts +2 -2
  200. package/presentation/pages/PageList/components/BulkActions/BulkActionPublish.d.ts +2 -2
  201. package/presentation/pages/PageList/components/BulkActions/BulkActionUnpublish.d.ts +2 -2
  202. package/presentation/pages/PageList/components/DocumentList.d.ts +2 -2
  203. package/presentation/pages/PageList/components/PagesList.js +2 -1
  204. package/presentation/pages/PageList/components/PagesList.js.map +1 -1
  205. package/presentation/pages/PageList/components/Table/Table.d.ts +2 -2
  206. package/presentation/pages/PageList/components/WbPagesBreadcrumbs.d.ts +9 -0
  207. package/presentation/pages/PageList/components/WbPagesBreadcrumbs.js +40 -0
  208. package/presentation/pages/PageList/components/WbPagesBreadcrumbs.js.map +1 -0
  209. package/presentation/pages/TranslatePage/TranslatePageConfig.d.ts +1 -1
  210. package/presentation/pages/TranslatePage/TranslatePageConfig.js +6 -2
  211. package/presentation/pages/TranslatePage/TranslatePageConfig.js.map +1 -1
  212. package/presentation/pages/TranslatePage/TranslatePageDialog.js +22 -10
  213. package/presentation/pages/TranslatePage/TranslatePageDialog.js.map +1 -1
  214. package/presentation/pages/TranslatePage/translatePageSchema.d.ts +1 -1
  215. package/presentation/pages/TranslatePage/translatePageSchema.js +1 -1
  216. package/presentation/pages/TranslatePage/translatePageSchema.js.map +1 -1
  217. package/presentation/pages/TrashBin/WbTrashBin.d.ts +2 -2
  218. package/presentation/redirects/RedirectList/components/BulkActionDelete.d.ts +2 -2
  219. package/presentation/redirects/RedirectList/components/BulkActionMove.d.ts +2 -2
  220. package/presentation/redirects/RedirectList/components/CreateRedirectDialog.d.ts +2 -2
  221. package/presentation/redirects/RedirectList/components/DocumentList.d.ts +2 -2
  222. package/presentation/redirects/RedirectList/components/EditRedirectDialog.d.ts +2 -2
  223. package/presentation/redirects/RedirectList/components/Table/Table.d.ts +2 -2
  224. package/shared/fileManagerItemToValue.d.ts +8 -9
  225. package/shared/fileManagerItemToValue.js +22 -7
  226. package/shared/fileManagerItemToValue.js.map +1 -1
  227. package/inputRenderers/LexicalInput/icons/list-ol.js +0 -20
  228. package/inputRenderers/LexicalInput/icons/list-ol.js.map +0 -1
  229. package/inputRenderers/LexicalInput/icons/list-ol.svg +0 -1
  230. package/inputRenderers/LexicalInput/icons/list-ul.js +0 -18
  231. package/inputRenderers/LexicalInput/icons/list-ul.js.map +0 -1
  232. package/inputRenderers/LexicalInput/icons/list-ul.svg +0 -1
  233. package/static/svg/list-ol.d64946f3.svg +0 -1
  234. package/static/svg/list-ul.1d54da3f.svg +0 -1
@@ -2,7 +2,7 @@ import React from "react";
2
2
  interface BorderStyleProps {
3
3
  elementId: string;
4
4
  }
5
- export declare const BorderStyle: (({ elementId }: BorderStyleProps) => React.JSX.Element) & {
6
- displayName: string;
5
+ export declare const BorderStyle: (({ elementId }: BorderStyleProps) => React.JSX.Element) & React.NamedExoticComponent<BorderStyleProps> & {
6
+ readonly type: ({ elementId }: BorderStyleProps) => React.JSX.Element;
7
7
  };
8
8
  export {};
@@ -2,7 +2,7 @@ import React from "react";
2
2
  interface BorderWidthProps {
3
3
  elementId: string;
4
4
  }
5
- export declare const BorderWidth: (({ elementId }: BorderWidthProps) => React.JSX.Element) & {
6
- displayName: string;
5
+ export declare const BorderWidth: (({ elementId }: BorderWidthProps) => React.JSX.Element) & React.NamedExoticComponent<BorderWidthProps> & {
6
+ readonly type: ({ elementId }: BorderWidthProps) => React.JSX.Element;
7
7
  };
8
8
  export {};
@@ -13,6 +13,10 @@ import React from "react";
13
13
  */
14
14
  export declare const Alignment: (({ elementId }: {
15
15
  elementId: string;
16
- }) => React.JSX.Element) & {
17
- displayName: string;
16
+ }) => React.JSX.Element) & React.NamedExoticComponent<{
17
+ elementId: string;
18
+ }> & {
19
+ readonly type: ({ elementId }: {
20
+ elementId: string;
21
+ }) => React.JSX.Element;
18
22
  };
@@ -7,7 +7,7 @@ interface LengthWithUnitInputProps {
7
7
  unitOptions: UnitOption[];
8
8
  defaultValue?: string;
9
9
  }
10
- export declare const LengthWithUnitInput: (({ elementId, label, propertyName, defaultValue, unitOptions }: LengthWithUnitInputProps) => React.JSX.Element) & {
11
- displayName: string;
10
+ export declare const LengthWithUnitInput: (({ elementId, label, propertyName, defaultValue, unitOptions }: LengthWithUnitInputProps) => React.JSX.Element) & React.NamedExoticComponent<LengthWithUnitInputProps> & {
11
+ readonly type: ({ elementId, label, propertyName, defaultValue, unitOptions }: LengthWithUnitInputProps) => React.JSX.Element;
12
12
  };
13
13
  export {};
@@ -3,7 +3,7 @@ interface MarginProps {
3
3
  elementId: string;
4
4
  children: React.ReactNode;
5
5
  }
6
- export declare const Margin: (({ elementId, children }: MarginProps) => React.JSX.Element) & {
7
- displayName: string;
6
+ export declare const Margin: (({ elementId, children }: MarginProps) => React.JSX.Element) & React.NamedExoticComponent<MarginProps> & {
7
+ readonly type: ({ elementId, children }: MarginProps) => React.JSX.Element;
8
8
  };
9
9
  export {};
@@ -2,7 +2,7 @@ import React from "react";
2
2
  interface PaddingProps {
3
3
  elementId: string;
4
4
  }
5
- export declare const Padding: (({ elementId }: PaddingProps) => React.JSX.Element) & {
6
- displayName: string;
5
+ export declare const Padding: (({ elementId }: PaddingProps) => React.JSX.Element) & React.NamedExoticComponent<PaddingProps> & {
6
+ readonly type: ({ elementId }: PaddingProps) => React.JSX.Element;
7
7
  };
8
8
  export {};
@@ -2,6 +2,6 @@ import React from "react";
2
2
  export interface VisibilityProps {
3
3
  elementId: string;
4
4
  }
5
- export declare const Visibility: (({ elementId }: VisibilityProps) => React.JSX.Element) & {
6
- displayName: string;
5
+ export declare const Visibility: (({ elementId }: VisibilityProps) => React.JSX.Element) & React.NamedExoticComponent<VisibilityProps> & {
6
+ readonly type: ({ elementId }: VisibilityProps) => React.JSX.Element;
7
7
  };
@@ -12,9 +12,13 @@ import { Layout } from "./Groups/Layout.js";
12
12
  const StyleProperties = ()=>{
13
13
  const [element] = useActiveElement();
14
14
  if (!element) return null;
15
- return /*#__PURE__*/ react.createElement(ElementStyleProperties, {
15
+ return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement("div", {
16
+ className: "pt-md mb-md px-sm"
17
+ }, /*#__PURE__*/ react.createElement(ElementPreview, {
18
+ element: element
19
+ })), /*#__PURE__*/ react.createElement(ElementStyleProperties, {
16
20
  element: element
17
- });
21
+ }));
18
22
  };
19
23
  const defaultHidden = [];
20
24
  const ElementStyleProperties = ({ element })=>{
@@ -23,11 +27,7 @@ const ElementStyleProperties = ({ element })=>{
23
27
  const isHidden = useCallback((name)=>hideStyles.includes(name), [
24
28
  hideStyles
25
29
  ]);
26
- return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement("div", {
27
- className: "pt-md mb-md px-sm"
28
- }, /*#__PURE__*/ react.createElement(ElementPreview, {
29
- element: element
30
- })), /*#__PURE__*/ react.createElement(StyleAccordion, null, isHidden(StyleSettings.Layout) ? null : /*#__PURE__*/ react.createElement(Layout, {
30
+ return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(StyleAccordion, null, isHidden(StyleSettings.Layout) ? null : /*#__PURE__*/ react.createElement(Layout, {
31
31
  elementId: element.id
32
32
  }), isHidden(StyleSettings.MarginPadding) ? null : /*#__PURE__*/ react.createElement(MarginPadding, {
33
33
  elementId: element.id
@@ -1 +1 @@
1
- {"version":3,"file":"BaseEditor/defaultConfig/Sidebar/StyleSettings/StyleProperties.js","sources":["../../../../../src/BaseEditor/defaultConfig/Sidebar/StyleSettings/StyleProperties.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { StyleAccordion } from \"./StyleAccordion.js\";\nimport { useActiveElement } from \"~/BaseEditor/hooks/useActiveElement.js\";\nimport type { DocumentElement } from \"@webiny/website-builder-sdk\";\nimport { ElementPreview } from \"~/BaseEditor/defaultConfig/Sidebar/ElementPreview.js\";\nimport { Background } from \"./Groups/Background.js\";\nimport { Border } from \"./Groups/Border.js\";\nimport { MarginPadding } from \"./Groups/MarginPadding.js\";\nimport { VisibilityGroup } from \"./Groups/VisibilityGroup.js\";\nimport { useElementComponentManifest } from \"~/BaseEditor/defaultConfig/Content/Preview/useElementComponentManifest.js\";\nimport { StyleSettings } from \"@webiny/website-builder-sdk\";\nimport { Layout } from \"./Groups/Layout.js\";\n\nexport const StyleProperties = () => {\n const [element] = useActiveElement();\n if (!element) {\n return null;\n }\n\n return <ElementStyleProperties element={element} />;\n};\n\nconst defaultHidden: string[] = [];\n\nconst ElementStyleProperties = ({ element }: { element: DocumentElement }) => {\n const componentManifest = useElementComponentManifest(element.id);\n const hideStyles = componentManifest?.hideStyleSettings ?? defaultHidden;\n\n const isHidden = useCallback(\n (name: string) => {\n return hideStyles.includes(name);\n },\n [hideStyles]\n );\n\n return (\n <>\n <div className={\"pt-md mb-md px-sm\"}>\n <ElementPreview element={element} />\n </div>\n <StyleAccordion>\n {isHidden(StyleSettings.Layout) ? null : <Layout elementId={element.id} />}\n {isHidden(StyleSettings.MarginPadding) ? null : (\n <MarginPadding elementId={element.id} />\n )}\n {isHidden(StyleSettings.Border) ? null : <Border elementId={element.id} />}\n {isHidden(StyleSettings.Background) ? null : <Background elementId={element.id} />}\n {isHidden(StyleSettings.Visibility) ? null : (\n <VisibilityGroup elementId={element.id} />\n )}\n </StyleAccordion>\n </>\n );\n};\n"],"names":["StyleProperties","element","useActiveElement","ElementStyleProperties","defaultHidden","componentManifest","useElementComponentManifest","hideStyles","isHidden","useCallback","name","ElementPreview","StyleAccordion","StyleSettings","Layout","MarginPadding","Border","Background","VisibilityGroup"],"mappings":";;;;;;;;;;;AAaO,MAAMA,kBAAkB;IAC3B,MAAM,CAACC,QAAQ,GAAGC;IAClB,IAAI,CAACD,SACD,OAAO;IAGX,OAAO,WAAP,GAAO,oBAACE,wBAAsBA;QAAC,SAASF;;AAC5C;AAEA,MAAMG,gBAA0B,EAAE;AAElC,MAAMD,yBAAyB,CAAC,EAAEF,OAAO,EAAgC;IACrE,MAAMI,oBAAoBC,4BAA4BL,QAAQ,EAAE;IAChE,MAAMM,aAAaF,mBAAmB,qBAAqBD;IAE3D,MAAMI,WAAWC,YACb,CAACC,OACUH,WAAW,QAAQ,CAACG,OAE/B;QAACH;KAAW;IAGhB,OAAO,WAAP,GACI,wDACI,oBAAC;QAAI,WAAW;qBACZ,oBAACI,gBAAcA;QAAC,SAASV;uBAE7B,oBAACW,gBAAcA,MACVJ,SAASK,cAAc,MAAM,IAAI,OAAO,WAAP,GAAO,oBAACC,QAAMA;QAAC,WAAWb,QAAQ,EAAE;QACrEO,SAASK,cAAc,aAAa,IAAI,OAAO,WAAP,GACrC,oBAACE,eAAaA;QAAC,WAAWd,QAAQ,EAAE;QAEvCO,SAASK,cAAc,MAAM,IAAI,OAAO,WAAP,GAAO,oBAACG,QAAMA;QAAC,WAAWf,QAAQ,EAAE;QACrEO,SAASK,cAAc,UAAU,IAAI,OAAO,WAAP,GAAO,oBAACI,YAAUA;QAAC,WAAWhB,QAAQ,EAAE;QAC7EO,SAASK,cAAc,UAAU,IAAI,OAAO,WAAP,GAClC,oBAACK,iBAAeA;QAAC,WAAWjB,QAAQ,EAAE;;AAK1D"}
1
+ {"version":3,"file":"BaseEditor/defaultConfig/Sidebar/StyleSettings/StyleProperties.js","sources":["../../../../../src/BaseEditor/defaultConfig/Sidebar/StyleSettings/StyleProperties.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { StyleAccordion } from \"./StyleAccordion.js\";\nimport { useActiveElement } from \"~/BaseEditor/hooks/useActiveElement.js\";\nimport type { DocumentElement } from \"@webiny/website-builder-sdk\";\nimport { ElementPreview } from \"~/BaseEditor/defaultConfig/Sidebar/ElementPreview.js\";\nimport { Background } from \"./Groups/Background.js\";\nimport { Border } from \"./Groups/Border.js\";\nimport { MarginPadding } from \"./Groups/MarginPadding.js\";\nimport { VisibilityGroup } from \"./Groups/VisibilityGroup.js\";\nimport { useElementComponentManifest } from \"~/BaseEditor/defaultConfig/Content/Preview/useElementComponentManifest.js\";\nimport { StyleSettings } from \"@webiny/website-builder-sdk\";\nimport { Layout } from \"./Groups/Layout.js\";\n\nexport const StyleProperties = () => {\n const [element] = useActiveElement();\n if (!element) {\n return null;\n }\n\n return (\n <>\n <div className={\"pt-md mb-md px-sm\"}>\n <ElementPreview element={element} />\n </div>\n <ElementStyleProperties element={element} />\n </>\n );\n};\n\nconst defaultHidden: string[] = [];\n\nconst ElementStyleProperties = ({ element }: { element: DocumentElement }) => {\n const componentManifest = useElementComponentManifest(element.id);\n const hideStyles = componentManifest?.hideStyleSettings ?? defaultHidden;\n\n const isHidden = useCallback(\n (name: string) => {\n return hideStyles.includes(name);\n },\n [hideStyles]\n );\n\n return (\n <>\n <StyleAccordion>\n {isHidden(StyleSettings.Layout) ? null : <Layout elementId={element.id} />}\n {isHidden(StyleSettings.MarginPadding) ? null : (\n <MarginPadding elementId={element.id} />\n )}\n {isHidden(StyleSettings.Border) ? null : <Border elementId={element.id} />}\n {isHidden(StyleSettings.Background) ? null : <Background elementId={element.id} />}\n {isHidden(StyleSettings.Visibility) ? null : (\n <VisibilityGroup elementId={element.id} />\n )}\n </StyleAccordion>\n </>\n );\n};\n"],"names":["StyleProperties","element","useActiveElement","ElementPreview","ElementStyleProperties","defaultHidden","componentManifest","useElementComponentManifest","hideStyles","isHidden","useCallback","name","StyleAccordion","StyleSettings","Layout","MarginPadding","Border","Background","VisibilityGroup"],"mappings":";;;;;;;;;;;AAaO,MAAMA,kBAAkB;IAC3B,MAAM,CAACC,QAAQ,GAAGC;IAClB,IAAI,CAACD,SACD,OAAO;IAGX,OAAO,WAAP,GACI,wDACI,oBAAC;QAAI,WAAW;qBACZ,oBAACE,gBAAcA;QAAC,SAASF;uBAE7B,oBAACG,wBAAsBA;QAAC,SAASH;;AAG7C;AAEA,MAAMI,gBAA0B,EAAE;AAElC,MAAMD,yBAAyB,CAAC,EAAEH,OAAO,EAAgC;IACrE,MAAMK,oBAAoBC,4BAA4BN,QAAQ,EAAE;IAChE,MAAMO,aAAaF,mBAAmB,qBAAqBD;IAE3D,MAAMI,WAAWC,YACb,CAACC,OACUH,WAAW,QAAQ,CAACG,OAE/B;QAACH;KAAW;IAGhB,OAAO,WAAP,GACI,wDACI,oBAACI,gBAAcA,MACVH,SAASI,cAAc,MAAM,IAAI,OAAO,WAAP,GAAO,oBAACC,QAAMA;QAAC,WAAWb,QAAQ,EAAE;QACrEQ,SAASI,cAAc,aAAa,IAAI,OAAO,WAAP,GACrC,oBAACE,eAAaA;QAAC,WAAWd,QAAQ,EAAE;QAEvCQ,SAASI,cAAc,MAAM,IAAI,OAAO,WAAP,GAAO,oBAACG,QAAMA;QAAC,WAAWf,QAAQ,EAAE;QACrEQ,SAASI,cAAc,UAAU,IAAI,OAAO,WAAP,GAAO,oBAACI,YAAUA;QAAC,WAAWhB,QAAQ,EAAE;QAC7EQ,SAASI,cAAc,UAAU,IAAI,OAAO,WAAP,GAClC,oBAACK,iBAAeA;QAAC,WAAWjB,QAAQ,EAAE;;AAK1D"}
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- export declare const Navigator: (() => React.JSX.Element) & {
3
- displayName: string;
2
+ export declare const Navigator: (() => React.JSX.Element) & React.NamedExoticComponent<unknown> & {
3
+ readonly type: () => React.JSX.Element;
4
4
  };
@@ -3,14 +3,23 @@ import type { EditorDocument } from "@webiny/website-builder-sdk";
3
3
  import { Editor } from "../editorSdk/Editor.js";
4
4
  export declare const DocumentEditorContext: React.Context<Editor<any> | undefined>;
5
5
  export declare function useDocumentEditor<TDocument extends EditorDocument>(): Editor<TDocument>;
6
- interface DocumentEditorProps<TDocument> {
7
- document: TDocument;
6
+ interface DocumentEditorBaseProps {
8
7
  name: string;
9
8
  children?: React.ReactNode;
9
+ }
10
+ interface DocumentEditorWithDocument<TDocument> extends DocumentEditorBaseProps {
11
+ document: TDocument;
10
12
  readOnly: boolean;
13
+ editor?: never;
14
+ }
15
+ interface DocumentEditorWithEditor extends DocumentEditorBaseProps {
16
+ editor: Editor<any>;
17
+ document?: never;
18
+ readOnly?: never;
11
19
  }
12
- declare function BaseDocumentEditor<TDocument extends EditorDocument>({ document, name, children, readOnly }: DocumentEditorProps<TDocument>): React.JSX.Element;
13
- export declare const DocumentEditor: typeof BaseDocumentEditor & {
14
- displayName: string;
20
+ type DocumentEditorProps<TDocument = any> = DocumentEditorWithDocument<TDocument> | DocumentEditorWithEditor;
21
+ declare function BaseDocumentEditor<TDocument extends EditorDocument>({ name, children, ...props }: DocumentEditorProps<TDocument>): React.JSX.Element;
22
+ export declare const DocumentEditor: typeof BaseDocumentEditor & React.NamedExoticComponent<DocumentEditorProps<import("@webiny/website-builder-sdk").Document>> & {
23
+ readonly type: typeof BaseDocumentEditor;
15
24
  };
16
25
  export {};
@@ -13,13 +13,17 @@ function useDocumentEditor() {
13
13
  if (!context) throw new Error("useDocumentEditor must be used within a <DocumentEditor /> context!");
14
14
  return context;
15
15
  }
16
- function BaseDocumentEditor({ document, name, children, readOnly }) {
17
- const editor = useMemo(()=>new Editor_js_Editor(document, {
18
- isReadOnly: readOnly
19
- }), [
20
- document,
21
- readOnly
16
+ function BaseDocumentEditor({ name, children, ...props }) {
17
+ const internalEditor = useMemo(()=>{
18
+ if ("editor" in props && props.editor) return null;
19
+ return new Editor_js_Editor(props.document, {
20
+ isReadOnly: props.readOnly
21
+ });
22
+ }, [
23
+ "editor" in props ? props.editor : props.document,
24
+ "editor" in props ? null : props.readOnly
22
25
  ]);
26
+ const editor = "editor" in props && props.editor ? props.editor : internalEditor;
23
27
  return /*#__PURE__*/ react.createElement(DndProvider, {
24
28
  backend: HTML5Backend
25
29
  }, /*#__PURE__*/ react.createElement(StateInspector, {
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentEditor/DocumentEditor.js","sources":["../../src/DocumentEditor/DocumentEditor.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { EditorDocument } from \"@webiny/website-builder-sdk\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { DndProvider } from \"react-dnd\";\nimport { Editor as EditorComponent } from \"~/BaseEditor/components/index.js\";\nimport { Editor } from \"~/editorSdk/Editor.js\";\nimport { observer } from \"mobx-react-lite\";\nimport { StateInspector } from \"./StateInspector.js\";\nimport { CompositionScope } from \"@webiny/react-composition\";\nimport { DialogsProvider } from \"@webiny/app-admin\";\n\nexport const DocumentEditorContext = React.createContext<Editor<any> | undefined>(undefined);\n\nexport function useDocumentEditor<TDocument extends EditorDocument>() {\n const context = React.useContext(DocumentEditorContext);\n if (!context) {\n throw new Error(\"useDocumentEditor must be used within a <DocumentEditor /> context!\");\n }\n return context as Editor<TDocument>;\n}\n\ninterface DocumentEditorProps<TDocument> {\n document: TDocument;\n name: string;\n children?: React.ReactNode;\n // Required for now. When use case with possibly not read-only arises, put it to optional.\n readOnly: boolean;\n}\n\nfunction BaseDocumentEditor<TDocument extends EditorDocument>({\n document,\n name,\n children,\n readOnly\n}: DocumentEditorProps<TDocument>) {\n const editor = useMemo(() => {\n return new Editor<TDocument>(document, {\n isReadOnly: readOnly\n });\n }, [document, readOnly]);\n\n return (\n <DndProvider backend={HTML5Backend}>\n <StateInspector editor={editor} />\n <DocumentEditorContext.Provider value={editor as Editor<TDocument>}>\n <DialogsProvider>\n {children ? <>{children}</> : null}\n <CompositionScope name={name}>\n <EditorComponent />\n </CompositionScope>\n </DialogsProvider>\n </DocumentEditorContext.Provider>\n </DndProvider>\n );\n}\n\nconst WithObserver = observer(BaseDocumentEditor);\n\nexport const DocumentEditor = WithObserver;\n"],"names":["DocumentEditorContext","React","undefined","useDocumentEditor","context","Error","BaseDocumentEditor","document","name","children","readOnly","editor","useMemo","Editor","DndProvider","HTML5Backend","StateInspector","DialogsProvider","CompositionScope","EditorComponent","WithObserver","observer","DocumentEditor"],"mappings":";;;;;;;;;AAWO,MAAMA,wBAAwB,WAAHA,GAAGC,MAAAA,aAAmB,CAA0BC;AAE3E,SAASC;IACZ,MAAMC,UAAUH,MAAAA,UAAgB,CAACD;IACjC,IAAI,CAACI,SACD,MAAM,IAAIC,MAAM;IAEpB,OAAOD;AACX;AAUA,SAASE,mBAAqD,EAC1DC,QAAQ,EACRC,IAAI,EACJC,QAAQ,EACRC,QAAQ,EACqB;IAC7B,MAAMC,SAASC,QAAQ,IACZ,IAAIC,iBAAkBN,UAAU;YACnC,YAAYG;QAChB,IACD;QAACH;QAAUG;KAAS;IAEvB,OAAO,WAAP,GACI,oBAACI,aAAWA;QAAC,SAASC;qBAClB,oBAACC,gBAAcA;QAAC,QAAQL;sBACxB,oBAACX,sBAAsB,QAAQ;QAAC,OAAOW;qBACnC,oBAACM,iBAAeA,MACXR,WAAW,WAAXA,GAAW,0CAAGA,YAAe,oBAC9B,oBAACS,kBAAgBA;QAAC,MAAMV;qBACpB,oBAACW,QAAeA;AAMxC;AAEA,MAAMC,eAAeC,SAASf;AAEvB,MAAMgB,iBAAiBF"}
1
+ {"version":3,"file":"DocumentEditor/DocumentEditor.js","sources":["../../src/DocumentEditor/DocumentEditor.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { EditorDocument } from \"@webiny/website-builder-sdk\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { DndProvider } from \"react-dnd\";\nimport { Editor as EditorComponent } from \"~/BaseEditor/components/index.js\";\nimport { Editor } from \"~/editorSdk/Editor.js\";\nimport { observer } from \"mobx-react-lite\";\nimport { StateInspector } from \"./StateInspector.js\";\nimport { CompositionScope } from \"@webiny/react-composition\";\nimport { DialogsProvider } from \"@webiny/app-admin\";\n\nexport const DocumentEditorContext = React.createContext<Editor<any> | undefined>(undefined);\n\nexport function useDocumentEditor<TDocument extends EditorDocument>() {\n const context = React.useContext(DocumentEditorContext);\n if (!context) {\n throw new Error(\"useDocumentEditor must be used within a <DocumentEditor /> context!\");\n }\n return context as Editor<TDocument>;\n}\n\ninterface DocumentEditorBaseProps {\n name: string;\n children?: React.ReactNode;\n}\n\ninterface DocumentEditorWithDocument<TDocument> extends DocumentEditorBaseProps {\n document: TDocument;\n readOnly: boolean;\n editor?: never;\n}\n\ninterface DocumentEditorWithEditor extends DocumentEditorBaseProps {\n editor: Editor<any>;\n document?: never;\n readOnly?: never;\n}\n\ntype DocumentEditorProps<TDocument = any> =\n | DocumentEditorWithDocument<TDocument>\n | DocumentEditorWithEditor;\n\nfunction BaseDocumentEditor<TDocument extends EditorDocument>({\n name,\n children,\n ...props\n}: DocumentEditorProps<TDocument>) {\n const internalEditor = useMemo(() => {\n if (\"editor\" in props && props.editor) {\n return null;\n }\n return new Editor<TDocument>(props.document!, {\n isReadOnly: props.readOnly!\n });\n }, [\n \"editor\" in props ? props.editor : props.document,\n \"editor\" in props ? null : props.readOnly\n ]);\n\n const editor = \"editor\" in props && props.editor ? props.editor : internalEditor!;\n\n return (\n <DndProvider backend={HTML5Backend}>\n <StateInspector editor={editor} />\n <DocumentEditorContext.Provider value={editor as Editor<TDocument>}>\n <DialogsProvider>\n {children ? <>{children}</> : null}\n <CompositionScope name={name}>\n <EditorComponent />\n </CompositionScope>\n </DialogsProvider>\n </DocumentEditorContext.Provider>\n </DndProvider>\n );\n}\n\nconst WithObserver = observer(BaseDocumentEditor);\n\nexport const DocumentEditor = WithObserver;\n"],"names":["DocumentEditorContext","React","undefined","useDocumentEditor","context","Error","BaseDocumentEditor","name","children","props","internalEditor","useMemo","Editor","editor","DndProvider","HTML5Backend","StateInspector","DialogsProvider","CompositionScope","EditorComponent","WithObserver","observer","DocumentEditor"],"mappings":";;;;;;;;;AAWO,MAAMA,wBAAwB,WAAHA,GAAGC,MAAAA,aAAmB,CAA0BC;AAE3E,SAASC;IACZ,MAAMC,UAAUH,MAAAA,UAAgB,CAACD;IACjC,IAAI,CAACI,SACD,MAAM,IAAIC,MAAM;IAEpB,OAAOD;AACX;AAuBA,SAASE,mBAAqD,EAC1DC,IAAI,EACJC,QAAQ,EACR,GAAGC,OAC0B;IAC7B,MAAMC,iBAAiBC,QAAQ;QAC3B,IAAI,YAAYF,SAASA,MAAM,MAAM,EACjC,OAAO;QAEX,OAAO,IAAIG,iBAAkBH,MAAM,QAAQ,EAAG;YAC1C,YAAYA,MAAM,QAAQ;QAC9B;IACJ,GAAG;QACC,YAAYA,QAAQA,MAAM,MAAM,GAAGA,MAAM,QAAQ;QACjD,YAAYA,QAAQ,OAAOA,MAAM,QAAQ;KAC5C;IAED,MAAMI,SAAS,YAAYJ,SAASA,MAAM,MAAM,GAAGA,MAAM,MAAM,GAAGC;IAElE,OAAO,WAAP,GACI,oBAACI,aAAWA;QAAC,SAASC;qBAClB,oBAACC,gBAAcA;QAAC,QAAQH;sBACxB,oBAACb,sBAAsB,QAAQ;QAAC,OAAOa;qBACnC,oBAACI,iBAAeA,MACXT,WAAW,WAAXA,GAAW,0CAAGA,YAAe,oBAC9B,oBAACU,kBAAgBA;QAAC,MAAMX;qBACpB,oBAACY,QAAeA;AAMxC;AAEA,MAAMC,eAAeC,SAASf;AAEvB,MAAMgB,iBAAiBF"}
@@ -4,7 +4,9 @@ import type { Editor } from "../editorSdk/Editor.js";
4
4
  declare function BaseStateInspector<TDocument extends EditorDocument>({ editor }: {
5
5
  editor: Editor<TDocument>;
6
6
  }): React.JSX.Element;
7
- export declare const StateInspector: typeof BaseStateInspector & {
8
- displayName: string;
7
+ export declare const StateInspector: typeof BaseStateInspector & React.NamedExoticComponent<{
8
+ editor: Editor<import("@webiny/website-builder-sdk").Document>;
9
+ }> & {
10
+ readonly type: typeof BaseStateInspector;
9
11
  };
10
12
  export {};
package/Extension.js CHANGED
@@ -131,7 +131,13 @@ const Extension_Extension = ()=>{
131
131
  entity: "redirect"
132
132
  }, /*#__PURE__*/ react.createElement(Route, {
133
133
  route: Routes.Redirects.List,
134
- element: /*#__PURE__*/ react.createElement(RedirectsList, null)
134
+ element: /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(AdminConfig.Breadcrumb, {
135
+ name: "wb",
136
+ label: "Website Builder"
137
+ }), /*#__PURE__*/ react.createElement(AdminConfig.Breadcrumb, {
138
+ name: "wb.redirects",
139
+ label: "Redirects"
140
+ }), /*#__PURE__*/ react.createElement(RedirectsList, null))
135
141
  }), /*#__PURE__*/ react.createElement(Menu, {
136
142
  name: "wb.redirects",
137
143
  parent: "wb",
package/Extension.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Extension.js","sources":["../src/Extension.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig, RegisterFeature, useRouter } from \"@webiny/app-admin\";\nimport {\n ReactComponent as PagesIcon,\n ReactComponent as PermissionsIcon\n} from \"@webiny/icons/table_chart.svg\";\nimport { PageEditor } from \"~/presentation/pages/PageEditor/PageEditor.js\";\nimport { PagesList } from \"~/presentation/pages/PageList/components/PagesList.js\";\nimport { useSettingsDialog } from \"~/modules/settings/useSettingsDialog.js\";\nimport { useIntegrationsDialog } from \"./modules/integrations/useIntegrationsDialog.js\";\nimport { PagesListConfig } from \"~/presentation/pages/PageList/components/PagesListConfig.js\";\nimport { RedirectsList } from \"~/presentation/redirects/RedirectList/components/RedirectsList.js\";\nimport { RedirectsListConfig } from \"~/presentation/redirects/RedirectList/components/RedirectsListConfig.js\";\nimport { Routes } from \"~/routes.js\";\nimport { PagesWidget } from \"~/modules/widgets/PagesWidget.js\";\nimport { Extension as NavigationExtension } from \"./presentation/navigation/Extension.js\";\nimport { NextjsConfigFeature } from \"~/presentation/navigation/NextjsConfig/feature.js\";\nimport { NuxtConfigFeature } from \"~/presentation/navigation/NuxtConfig/feature.js\";\nimport { WB_PERMISSIONS_SCHEMA } from \"~/constants.js\";\nimport { WbPermissionsFeature } from \"~/features/permissions/feature.js\";\nimport { HasPermission } from \"~/presentation/security/HasPermission.js\";\nimport { TranslatePageFeature } from \"~/features/pages/translatePage/index.js\";\nimport { DeletePageFeature } from \"~/features/pages/deletePage/index.js\";\nimport { MovePageFeature } from \"~/features/pages/movePage/index.js\";\nimport { PublishPageFeature } from \"~/features/pages/publishPage/index.js\";\nimport { UnpublishPageFeature } from \"~/features/pages/unpublishPage/index.js\";\nimport { DuplicatePageFeature } from \"~/features/pages/duplicatePage/index.js\";\nimport { CreatePageRevisionFromFeature } from \"~/features/pages/createPageRevisionFrom/index.js\";\nimport { UpdatePageFeature } from \"~/features/pages/updatePage/index.js\";\nimport { UpdatePageRevisionDescriptionFeature } from \"~/features/pages/updatePageRevisionDescription/index.js\";\nimport { CreatePageFeature as CreatePageHeadlessFeature } from \"~/features/pages/createPage/index.js\";\nimport { GetPageFeature } from \"~/features/pages/getPage/index.js\";\nimport { GetPageRevisionsFeature } from \"~/features/pages/getPageRevisions/index.js\";\nimport { SharedPageInfrastructureFeature } from \"~/features/pages/shared/feature.js\";\nimport { CreatePageConfig } from \"./presentation/pages/CreatePage/CreatePageConfig.js\";\nimport { TranslatePageConfig } from \"./presentation/pages/TranslatePage/TranslatePageConfig.js\";\nimport { CreatePageFeature } from \"~/presentation/pages/CreatePage/feature.js\";\nimport { PageSettingsFeature } from \"~/presentation/pages/PageEditor/PageSettings/feature.js\";\nimport { DeletePageRevisionFeature } from \"~/features/pages/deletePageRevision/index.js\";\nimport { UpdateSettingsFeature } from \"~/features/settings/updateSettings/index.js\";\nimport { GetSettingsFeature } from \"~/features/settings/getSettings/index.js\";\nimport { GetEcommerceSettingsFeature } from \"~/features/ecommerce/settings/getSettings/index.js\";\nimport { UpdateEcommerceSettingsFeature } from \"~/features/ecommerce/settings/updateSettings/index.js\";\n\nconst { Security, Menu, Route, Dashboard } = AdminConfig;\n\nexport const Extension = () => {\n const router = useRouter();\n\n return (\n <>\n <RegisterFeature feature={SharedPageInfrastructureFeature} />\n <RegisterFeature feature={NextjsConfigFeature} />\n <RegisterFeature feature={NuxtConfigFeature} />\n <RegisterFeature feature={WbPermissionsFeature} />\n <RegisterFeature feature={TranslatePageFeature} />\n <RegisterFeature feature={DeletePageFeature} />\n <RegisterFeature feature={DeletePageRevisionFeature} />\n <RegisterFeature feature={MovePageFeature} />\n <RegisterFeature feature={PublishPageFeature} />\n <RegisterFeature feature={UnpublishPageFeature} />\n <RegisterFeature feature={DuplicatePageFeature} />\n <RegisterFeature feature={CreatePageRevisionFromFeature} />\n <RegisterFeature feature={UpdatePageFeature} />\n <RegisterFeature feature={UpdatePageRevisionDescriptionFeature} />\n <RegisterFeature feature={CreatePageHeadlessFeature} />\n <RegisterFeature feature={GetPageFeature} />\n <RegisterFeature feature={GetPageRevisionsFeature} />\n <RegisterFeature feature={CreatePageFeature} />\n <RegisterFeature feature={PageSettingsFeature} />\n <RegisterFeature feature={GetSettingsFeature} />\n <RegisterFeature feature={GetEcommerceSettingsFeature} />\n <RegisterFeature feature={UpdateSettingsFeature} />\n <RegisterFeature feature={UpdateEcommerceSettingsFeature} />\n <AdminConfig>\n <Security.Permissions\n name=\"website-builder\"\n title=\"Website Builder\"\n description=\"Manage Website Builder permissions.\"\n icon={<PermissionsIcon />}\n schema={WB_PERMISSIONS_SCHEMA}\n />\n <HasPermission any={[\"page\", \"redirect\"]}>\n <Menu\n name=\"wb\"\n element={\n <Menu.Item\n text={\"Website Builder\"}\n icon={\n <Menu.Link.Icon\n label={\"Website Builder\"}\n element={<PagesIcon />}\n />\n }\n />\n }\n />\n </HasPermission>\n\n <HasPermission entity={\"page\"}>\n <Route route={Routes.Pages.List} element={<PagesList />} />\n <Route route={Routes.Pages.Editor} element={<PageEditor />} />\n <Menu\n name=\"wb.pages\"\n parent={\"wb\"}\n element={\n <Menu.Link\n text={\"Pages\"}\n to={router.getLink(Routes.Pages.List)}\n pinnable={true}\n />\n }\n />\n <Dashboard.Widget name=\"wb.pages\" column={\"left\"} element={<PagesWidget />} />\n <NavigationExtension />\n </HasPermission>\n\n <HasPermission entity={\"redirect\"}>\n <Route route={Routes.Redirects.List} element={<RedirectsList />} />\n <Menu\n name=\"wb.redirects\"\n parent={\"wb\"}\n element={\n <Menu.Link\n text={\"Redirects\"}\n to={router.getLink(Routes.Redirects.List)}\n pinnable={true}\n />\n }\n />\n </HasPermission>\n <HasPermission entity={\"settings\"}>\n <Menu name=\"wb.settings\" parent=\"wb\" element={<SettingsMenuItem />} />\n </HasPermission>\n <HasPermission entity={\"integrations\"}>\n <Menu name=\"wb.integrations\" parent=\"wb\" element={<IntegrationsMenuItem />} />\n </HasPermission>\n </AdminConfig>\n <PagesListConfig />\n <RedirectsListConfig />\n <CreatePageConfig />\n <TranslatePageConfig />\n </>\n );\n};\n\nExtension.displayName = \"WbExtension\";\n\nconst SettingsMenuItem = () => {\n const { showSettingsDialog } = useSettingsDialog();\n return <Menu.Item text={\"Settings\"} onClick={showSettingsDialog} pinnable={true} />;\n};\n\nconst IntegrationsMenuItem = () => {\n const { showIntegrationsDialog } = useIntegrationsDialog();\n return <Menu.Item text={\"Integrations\"} onClick={showIntegrationsDialog} pinnable={true} />;\n};\n"],"names":["Security","Menu","Route","Dashboard","AdminConfig","Extension","router","useRouter","RegisterFeature","SharedPageInfrastructureFeature","NextjsConfigFeature","NuxtConfigFeature","WbPermissionsFeature","TranslatePageFeature","DeletePageFeature","DeletePageRevisionFeature","MovePageFeature","PublishPageFeature","UnpublishPageFeature","DuplicatePageFeature","CreatePageRevisionFromFeature","UpdatePageFeature","UpdatePageRevisionDescriptionFeature","CreatePageHeadlessFeature","GetPageFeature","GetPageRevisionsFeature","CreatePageFeature","PageSettingsFeature","GetSettingsFeature","GetEcommerceSettingsFeature","UpdateSettingsFeature","UpdateEcommerceSettingsFeature","PermissionsIcon","WB_PERMISSIONS_SCHEMA","HasPermission","PagesIcon","Routes","PagesList","PageEditor","PagesWidget","NavigationExtension","RedirectsList","SettingsMenuItem","IntegrationsMenuItem","PagesListConfig","RedirectsListConfig","CreatePageConfig","TranslatePageConfig","showSettingsDialog","useSettingsDialog","showIntegrationsDialog","useIntegrationsDialog"],"mappings":"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"}
1
+ {"version":3,"file":"Extension.js","sources":["../src/Extension.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig, RegisterFeature, useRouter } from \"@webiny/app-admin\";\nimport {\n ReactComponent as PagesIcon,\n ReactComponent as PermissionsIcon\n} from \"@webiny/icons/table_chart.svg\";\nimport { PageEditor } from \"~/presentation/pages/PageEditor/PageEditor.js\";\nimport { PagesList } from \"~/presentation/pages/PageList/components/PagesList.js\";\nimport { useSettingsDialog } from \"~/modules/settings/useSettingsDialog.js\";\nimport { useIntegrationsDialog } from \"./modules/integrations/useIntegrationsDialog.js\";\nimport { PagesListConfig } from \"~/presentation/pages/PageList/components/PagesListConfig.js\";\nimport { RedirectsList } from \"~/presentation/redirects/RedirectList/components/RedirectsList.js\";\nimport { RedirectsListConfig } from \"~/presentation/redirects/RedirectList/components/RedirectsListConfig.js\";\nimport { Routes } from \"~/routes.js\";\nimport { PagesWidget } from \"~/modules/widgets/PagesWidget.js\";\nimport { Extension as NavigationExtension } from \"./presentation/navigation/Extension.js\";\nimport { NextjsConfigFeature } from \"~/presentation/navigation/NextjsConfig/feature.js\";\nimport { NuxtConfigFeature } from \"~/presentation/navigation/NuxtConfig/feature.js\";\nimport { WB_PERMISSIONS_SCHEMA } from \"~/constants.js\";\nimport { WbPermissionsFeature } from \"~/features/permissions/feature.js\";\nimport { HasPermission } from \"~/presentation/security/HasPermission.js\";\nimport { TranslatePageFeature } from \"~/features/pages/translatePage/index.js\";\nimport { DeletePageFeature } from \"~/features/pages/deletePage/index.js\";\nimport { MovePageFeature } from \"~/features/pages/movePage/index.js\";\nimport { PublishPageFeature } from \"~/features/pages/publishPage/index.js\";\nimport { UnpublishPageFeature } from \"~/features/pages/unpublishPage/index.js\";\nimport { DuplicatePageFeature } from \"~/features/pages/duplicatePage/index.js\";\nimport { CreatePageRevisionFromFeature } from \"~/features/pages/createPageRevisionFrom/index.js\";\nimport { UpdatePageFeature } from \"~/features/pages/updatePage/index.js\";\nimport { UpdatePageRevisionDescriptionFeature } from \"~/features/pages/updatePageRevisionDescription/index.js\";\nimport { CreatePageFeature as CreatePageHeadlessFeature } from \"~/features/pages/createPage/index.js\";\nimport { GetPageFeature } from \"~/features/pages/getPage/index.js\";\nimport { GetPageRevisionsFeature } from \"~/features/pages/getPageRevisions/index.js\";\nimport { SharedPageInfrastructureFeature } from \"~/features/pages/shared/feature.js\";\nimport { CreatePageConfig } from \"./presentation/pages/CreatePage/CreatePageConfig.js\";\nimport { TranslatePageConfig } from \"./presentation/pages/TranslatePage/TranslatePageConfig.js\";\nimport { CreatePageFeature } from \"~/presentation/pages/CreatePage/feature.js\";\nimport { PageSettingsFeature } from \"~/presentation/pages/PageEditor/PageSettings/feature.js\";\nimport { DeletePageRevisionFeature } from \"~/features/pages/deletePageRevision/index.js\";\nimport { UpdateSettingsFeature } from \"~/features/settings/updateSettings/index.js\";\nimport { GetSettingsFeature } from \"~/features/settings/getSettings/index.js\";\nimport { GetEcommerceSettingsFeature } from \"~/features/ecommerce/settings/getSettings/index.js\";\nimport { UpdateEcommerceSettingsFeature } from \"~/features/ecommerce/settings/updateSettings/index.js\";\n\nconst { Security, Menu, Route, Dashboard } = AdminConfig;\n\nexport const Extension = () => {\n const router = useRouter();\n\n return (\n <>\n <RegisterFeature feature={SharedPageInfrastructureFeature} />\n <RegisterFeature feature={NextjsConfigFeature} />\n <RegisterFeature feature={NuxtConfigFeature} />\n <RegisterFeature feature={WbPermissionsFeature} />\n <RegisterFeature feature={TranslatePageFeature} />\n <RegisterFeature feature={DeletePageFeature} />\n <RegisterFeature feature={DeletePageRevisionFeature} />\n <RegisterFeature feature={MovePageFeature} />\n <RegisterFeature feature={PublishPageFeature} />\n {/*<AbTesting />*/}\n <RegisterFeature feature={UnpublishPageFeature} />\n <RegisterFeature feature={DuplicatePageFeature} />\n <RegisterFeature feature={CreatePageRevisionFromFeature} />\n <RegisterFeature feature={UpdatePageFeature} />\n <RegisterFeature feature={UpdatePageRevisionDescriptionFeature} />\n <RegisterFeature feature={CreatePageHeadlessFeature} />\n <RegisterFeature feature={GetPageFeature} />\n <RegisterFeature feature={GetPageRevisionsFeature} />\n <RegisterFeature feature={CreatePageFeature} />\n <RegisterFeature feature={PageSettingsFeature} />\n <RegisterFeature feature={GetSettingsFeature} />\n <RegisterFeature feature={GetEcommerceSettingsFeature} />\n <RegisterFeature feature={UpdateSettingsFeature} />\n <RegisterFeature feature={UpdateEcommerceSettingsFeature} />\n <AdminConfig>\n <Security.Permissions\n name=\"website-builder\"\n title=\"Website Builder\"\n description=\"Manage Website Builder permissions.\"\n icon={<PermissionsIcon />}\n schema={WB_PERMISSIONS_SCHEMA}\n />\n <HasPermission any={[\"page\", \"redirect\"]}>\n <Menu\n name=\"wb\"\n element={\n <Menu.Item\n text={\"Website Builder\"}\n icon={\n <Menu.Link.Icon\n label={\"Website Builder\"}\n element={<PagesIcon />}\n />\n }\n />\n }\n />\n </HasPermission>\n\n <HasPermission entity={\"page\"}>\n {/* Breadcrumbs (Website Builder › Pages › folder path) are emitted\n dynamically from within PagesList. */}\n <Route route={Routes.Pages.List} element={<PagesList />} />\n <Route route={Routes.Pages.Editor} element={<PageEditor />} />\n <Menu\n name=\"wb.pages\"\n parent={\"wb\"}\n element={\n <Menu.Link\n text={\"Pages\"}\n to={router.getLink(Routes.Pages.List)}\n pinnable={true}\n />\n }\n />\n <Dashboard.Widget name=\"wb.pages\" column={\"left\"} element={<PagesWidget />} />\n <NavigationExtension />\n </HasPermission>\n\n <HasPermission entity={\"redirect\"}>\n <Route\n route={Routes.Redirects.List}\n element={\n <>\n <AdminConfig.Breadcrumb name={\"wb\"} label={\"Website Builder\"} />\n <AdminConfig.Breadcrumb name={\"wb.redirects\"} label={\"Redirects\"} />\n <RedirectsList />\n </>\n }\n />\n <Menu\n name=\"wb.redirects\"\n parent={\"wb\"}\n element={\n <Menu.Link\n text={\"Redirects\"}\n to={router.getLink(Routes.Redirects.List)}\n pinnable={true}\n />\n }\n />\n </HasPermission>\n <HasPermission entity={\"settings\"}>\n <Menu name=\"wb.settings\" parent=\"wb\" element={<SettingsMenuItem />} />\n </HasPermission>\n <HasPermission entity={\"integrations\"}>\n <Menu name=\"wb.integrations\" parent=\"wb\" element={<IntegrationsMenuItem />} />\n </HasPermission>\n </AdminConfig>\n <PagesListConfig />\n <RedirectsListConfig />\n <CreatePageConfig />\n <TranslatePageConfig />\n </>\n );\n};\n\nExtension.displayName = \"WbExtension\";\n\nconst SettingsMenuItem = () => {\n const { showSettingsDialog } = useSettingsDialog();\n return <Menu.Item text={\"Settings\"} onClick={showSettingsDialog} pinnable={true} />;\n};\n\nconst IntegrationsMenuItem = () => {\n const { showIntegrationsDialog } = useIntegrationsDialog();\n return <Menu.Item text={\"Integrations\"} onClick={showIntegrationsDialog} pinnable={true} />;\n};\n"],"names":["Security","Menu","Route","Dashboard","AdminConfig","Extension","router","useRouter","RegisterFeature","SharedPageInfrastructureFeature","NextjsConfigFeature","NuxtConfigFeature","WbPermissionsFeature","TranslatePageFeature","DeletePageFeature","DeletePageRevisionFeature","MovePageFeature","PublishPageFeature","UnpublishPageFeature","DuplicatePageFeature","CreatePageRevisionFromFeature","UpdatePageFeature","UpdatePageRevisionDescriptionFeature","CreatePageHeadlessFeature","GetPageFeature","GetPageRevisionsFeature","CreatePageFeature","PageSettingsFeature","GetSettingsFeature","GetEcommerceSettingsFeature","UpdateSettingsFeature","UpdateEcommerceSettingsFeature","PermissionsIcon","WB_PERMISSIONS_SCHEMA","HasPermission","PagesIcon","Routes","PagesList","PageEditor","PagesWidget","NavigationExtension","RedirectsList","SettingsMenuItem","IntegrationsMenuItem","PagesListConfig","RedirectsListConfig","CreatePageConfig","TranslatePageConfig","showSettingsDialog","useSettingsDialog","showIntegrationsDialog","useIntegrationsDialog"],"mappings":"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"}
@@ -20,8 +20,12 @@ interface ResourcePickerRendererConfig {
20
20
  }
21
21
  export declare function createResourcePickerRenderer(config: ResourcePickerRendererConfig): (({ field }: {
22
22
  field: IFieldVM;
23
- }) => React.JSX.Element) & {
24
- displayName: string;
23
+ }) => React.JSX.Element) & React.NamedExoticComponent<{
24
+ field: IFieldVM;
25
+ }> & {
26
+ readonly type: ({ field }: {
27
+ field: IFieldVM;
28
+ }) => React.JSX.Element;
25
29
  };
26
30
  export interface EcommerceResourcePageTypeConfig {
27
31
  name: string;
@@ -9,9 +9,9 @@ export type PickResourceListProps = {
9
9
  resourceName: string;
10
10
  pluginName: string;
11
11
  };
12
- export declare const PickResourceList: ((props: PickResourceListProps) => React.JSX.Element) & {
13
- displayName: string;
12
+ export declare const PickResourceList: ((props: PickResourceListProps) => React.JSX.Element) & React.NamedExoticComponent<PickResourceListProps> & {
13
+ readonly type: (props: PickResourceListProps) => React.JSX.Element;
14
14
  };
15
- export declare const PickResourcesListButton: ((props: Omit<PickResourceListProps, "onDone">) => React.JSX.Element) & {
16
- displayName: string;
15
+ export declare const PickResourcesListButton: ((props: Omit<PickResourceListProps, "onDone">) => React.JSX.Element) & React.NamedExoticComponent<Omit<PickResourceListProps, "onDone">> & {
16
+ readonly type: (props: Omit<PickResourceListProps, "onDone">) => React.JSX.Element;
17
17
  };
@@ -24,8 +24,8 @@ export interface ResourcePreviewCellProps {
24
24
  onClick?: () => void;
25
25
  style?: Partial<CSSStyleDeclaration>;
26
26
  }
27
- export declare const ResourcePreviewCell: ((props: ResourcePreviewCellProps) => React.JSX.Element) & {
28
- displayName: string;
27
+ export declare const ResourcePreviewCell: ((props: ResourcePreviewCellProps) => React.JSX.Element) & React.NamedExoticComponent<ResourcePreviewCellProps> & {
28
+ readonly type: (props: ResourcePreviewCellProps) => React.JSX.Element;
29
29
  };
30
30
  export type ResourcePickerProps = CustomResourcePickerProps<Resource> & {
31
31
  api: CommerceAPIOperations;
@@ -33,7 +33,12 @@ export type ResourcePickerProps = CustomResourcePickerProps<Resource> & {
33
33
  omitIds?: string[];
34
34
  title?: string;
35
35
  };
36
- export declare const ResourcePicker: ((props: ResourcePickerProps) => React.JSX.Element) & {
37
- displayName: string;
36
+ export declare const ResourcePicker: ((props: ResourcePickerProps) => React.JSX.Element) & React.NamedExoticComponent<CustomResourcePickerProps<Resource> & {
37
+ api: CommerceAPIOperations;
38
+ resourceName: string;
39
+ omitIds?: string[];
40
+ title?: string;
41
+ }> & {
42
+ readonly type: (props: ResourcePickerProps) => React.JSX.Element;
38
43
  };
39
44
  export declare const ResourcesPickerButton: React.FC<ResourcesPickerButtonProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"editorSdk/CommandBus.js","sources":["../../src/editorSdk/CommandBus.ts"],"sourcesContent":["import type { Command } from \"./createCommand.js\";\nexport * from \"./createCommand.js\";\n\nconst INTERNAL_STOP = Symbol(\"INTERNAL_STOP\");\n\nexport type CommandHandler<T> = (\n payload: T,\n control: CommandHandlerControl\n) => void | typeof INTERNAL_STOP | Promise<void | typeof INTERNAL_STOP>;\n\nexport type CommandHandlerControl = {\n stop: () => typeof INTERNAL_STOP;\n};\n\nexport enum CommandPriority {\n LOW = -100,\n NORMAL = 0,\n HIGH = 100,\n CRITICAL = 1000\n}\n\nexport class CommandBus {\n private handlers = new Map<\n string,\n { priority: number; handler: (payload: any, control: CommandHandlerControl) => any }[]\n >();\n\n private middleware: ((\n type: string,\n payload: any,\n next: (payload: any) => Promise<void>\n ) => Promise<void>)[] = [];\n\n register<T>(\n command: Command<T>,\n handler: CommandHandler<T>,\n priority: CommandPriority = CommandPriority.NORMAL\n ): () => void {\n const list = this.handlers.get(command.type) ?? [];\n\n const entry = { handler, priority };\n list.push(entry);\n list.sort((a, b) => b.priority - a.priority);\n this.handlers.set(command.type, list);\n\n // Return an unregister function\n return () => {\n const current = this.handlers.get(command.type);\n if (!current) {\n return;\n }\n\n const index = current.indexOf(entry);\n\n if (index !== -1) {\n current.splice(index, 1);\n }\n\n if (current.length === 0) {\n this.handlers.delete(command.type);\n }\n };\n }\n\n use(mw: (type: string, payload: any, next: (payload: any) => Promise<void>) => Promise<void>) {\n this.middleware.push(mw);\n }\n\n async execute<T>(command: Command<T>, payload?: T) {\n const list = this.handlers.get(command.type) ?? [];\n\n const runHandlers = async (p?: T) => {\n const control: CommandHandlerControl = {\n stop: () => INTERNAL_STOP\n };\n\n for (const entry of list) {\n const result = await entry.handler(p, control);\n if (result === INTERNAL_STOP) {\n break;\n }\n }\n };\n\n const composed = this.middleware.reduceRight(\n (next, mw) => async (p?: T) => mw(command.type, p, next),\n runHandlers\n );\n\n // console.log(\"[Execute Command]\", command.type, payload);\n await composed(payload);\n }\n}\n"],"names":["INTERNAL_STOP","Symbol","CommandPriority","CommandBus","command","handler","priority","list","entry","a","b","current","index","mw","payload","runHandlers","p","control","result","composed","next","Map"],"mappings":";AAGA,MAAMA,gBAAgBC,OAAO;AAWtB,IAAKC,6BAAeA,WAAAA,GAAAA,SAAfA,eAAe;;;;;WAAfA;;AAOL,MAAMC;IAYT,SACIC,OAAmB,EACnBC,OAA0B,EAC1BC,WAAAA,CAAkD,EACxC;QACV,MAAMC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACH,QAAQ,IAAI,KAAK,EAAE;QAElD,MAAMI,QAAQ;YAAEH;YAASC;QAAS;QAClCC,KAAK,IAAI,CAACC;QACVD,KAAK,IAAI,CAAC,CAACE,GAAGC,IAAMA,EAAE,QAAQ,GAAGD,EAAE,QAAQ;QAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACL,QAAQ,IAAI,EAAEG;QAGhC,OAAO;YACH,MAAMI,UAAU,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACP,QAAQ,IAAI;YAC9C,IAAI,CAACO,SACD;YAGJ,MAAMC,QAAQD,QAAQ,OAAO,CAACH;YAE9B,IAAII,AAAU,OAAVA,OACAD,QAAQ,MAAM,CAACC,OAAO;YAG1B,IAAID,AAAmB,MAAnBA,QAAQ,MAAM,EACd,IAAI,CAAC,QAAQ,CAAC,MAAM,CAACP,QAAQ,IAAI;QAEzC;IACJ;IAEA,IAAIS,EAAwF,EAAE;QAC1F,IAAI,CAAC,UAAU,CAAC,IAAI,CAACA;IACzB;IAEA,MAAM,QAAWT,OAAmB,EAAEU,OAAW,EAAE;QAC/C,MAAMP,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACH,QAAQ,IAAI,KAAK,EAAE;QAElD,MAAMW,cAAc,OAAOC;YACvB,MAAMC,UAAiC;gBACnC,MAAM,IAAMjB;YAChB;YAEA,KAAK,MAAMQ,SAASD,KAAM;gBACtB,MAAMW,SAAS,MAAMV,MAAM,OAAO,CAACQ,GAAGC;gBACtC,IAAIC,WAAWlB,eACX;YAER;QACJ;QAEA,MAAMmB,WAAW,IAAI,CAAC,UAAU,CAAC,WAAW,CACxC,CAACC,MAAMP,KAAO,OAAOG,IAAUH,GAAGT,QAAQ,IAAI,EAAEY,GAAGI,OACnDL;QAIJ,MAAMI,SAASL;IACnB;;aArEQ,QAAQ,GAAG,IAAIO;aAKf,UAAU,GAIM,EAAE;;AA6D9B"}
1
+ {"version":3,"file":"editorSdk/CommandBus.js","sources":["../../src/editorSdk/CommandBus.ts"],"sourcesContent":["import type { Command } from \"./createCommand.js\";\nexport * from \"./createCommand.js\";\n\nconst INTERNAL_STOP = Symbol(\"INTERNAL_STOP\");\n\nexport type CommandHandler<T> = (\n payload: T,\n control: CommandHandlerControl\n) => void | typeof INTERNAL_STOP | Promise<void | typeof INTERNAL_STOP>;\n\nexport type CommandHandlerControl = {\n stop: () => typeof INTERNAL_STOP;\n};\n\nexport enum CommandPriority {\n LOW = -100,\n NORMAL = 0,\n HIGH = 100,\n CRITICAL = 1000\n}\n\nexport class CommandBus {\n private handlers = new Map<\n string,\n { priority: number; handler: (payload: any, control: CommandHandlerControl) => any }[]\n >();\n\n private middleware: ((\n type: string,\n payload: any,\n next: (payload: any) => Promise<void>\n ) => Promise<void>)[] = [];\n\n register<T>(\n command: Command<T>,\n handler: CommandHandler<T>,\n priority: CommandPriority = CommandPriority.NORMAL\n ): () => void {\n const list = this.handlers.get(command.type) ?? [];\n\n const entry = { handler, priority };\n list.push(entry);\n list.sort((a, b) => b.priority - a.priority);\n this.handlers.set(command.type, list);\n\n // Return an unregister function\n return () => {\n const current = this.handlers.get(command.type);\n if (!current) {\n return;\n }\n\n const index = current.indexOf(entry);\n\n if (index !== -1) {\n current.splice(index, 1);\n }\n\n if (current.length === 0) {\n this.handlers.delete(command.type);\n }\n };\n }\n\n use(mw: (type: string, payload: any, next: (payload: any) => Promise<void>) => Promise<void>) {\n this.middleware.push(mw);\n }\n\n async execute<T>(command: Command<T>, payload?: T) {\n const list = this.handlers.get(command.type) ?? [];\n\n const runHandlers = async (p?: T) => {\n const control: CommandHandlerControl = {\n stop: () => INTERNAL_STOP\n };\n\n for (const entry of list) {\n const result = await entry.handler(p, control);\n if (result === INTERNAL_STOP) {\n break;\n }\n }\n };\n\n const composed = this.middleware.reduceRight(\n (next, mw) => async (p?: T) => mw(command.type, p, next),\n runHandlers\n );\n\n // console.log(\"[Execute Command]\", command.type, payload);\n await composed(payload);\n }\n}\n"],"names":["INTERNAL_STOP","Symbol","CommandPriority","CommandBus","command","handler","priority","list","entry","a","b","current","index","mw","payload","runHandlers","p","control","result","composed","next","Map"],"mappings":";AAGA,MAAMA,gBAAgBC,OAAO;AAWtB,IAAKC,6BAAeA,WAAAA,GAAAA,SAAfA,eAAe;;gDAEd;8CACF;kDACI;WAJHA;;AAOL,MAAMC;IAYT,SACIC,OAAmB,EACnBC,OAA0B,EAC1BC,WApBK,CAoB6C,EACxC;QACV,MAAMC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACH,QAAQ,IAAI,KAAK,EAAE;QAElD,MAAMI,QAAQ;YAAEH;YAASC;QAAS;QAClCC,KAAK,IAAI,CAACC;QACVD,KAAK,IAAI,CAAC,CAACE,GAAGC,IAAMA,EAAE,QAAQ,GAAGD,EAAE,QAAQ;QAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACL,QAAQ,IAAI,EAAEG;QAGhC,OAAO;YACH,MAAMI,UAAU,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACP,QAAQ,IAAI;YAC9C,IAAI,CAACO,SACD;YAGJ,MAAMC,QAAQD,QAAQ,OAAO,CAACH;YAE9B,IAAII,AAAU,OAAVA,OACAD,QAAQ,MAAM,CAACC,OAAO;YAG1B,IAAID,AAAmB,MAAnBA,QAAQ,MAAM,EACd,IAAI,CAAC,QAAQ,CAAC,MAAM,CAACP,QAAQ,IAAI;QAEzC;IACJ;IAEA,IAAIS,EAAwF,EAAE;QAC1F,IAAI,CAAC,UAAU,CAAC,IAAI,CAACA;IACzB;IAEA,MAAM,QAAWT,OAAmB,EAAEU,OAAW,EAAE;QAC/C,MAAMP,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACH,QAAQ,IAAI,KAAK,EAAE;QAElD,MAAMW,cAAc,OAAOC;YACvB,MAAMC,UAAiC;gBACnC,MAAM,IAAMjB;YAChB;YAEA,KAAK,MAAMQ,SAASD,KAAM;gBACtB,MAAMW,SAAS,MAAMV,MAAM,OAAO,CAACQ,GAAGC;gBACtC,IAAIC,WAAWlB,eACX;YAER;QACJ;QAEA,MAAMmB,WAAW,IAAI,CAAC,UAAU,CAAC,WAAW,CACxC,CAACC,MAAMP,KAAO,OAAOG,IAAUH,GAAGT,QAAQ,IAAI,EAAEY,GAAGI,OACnDL;QAIJ,MAAMI,SAASL;IACnB;;aArEQ,QAAQ,GAAG,IAAIO;aAKf,UAAU,GAIM,EAAE;;AA6D9B"}
@@ -0,0 +1,2 @@
1
+ import type { Editor } from "../Editor.js";
2
+ export declare function $cloneElement(editor: Editor, id: string): string | undefined;
@@ -0,0 +1,112 @@
1
+ import { ElementFactory, generateElementId } from "@webiny/website-builder-sdk";
2
+ import { $getElementById } from "./$getElementById.js";
3
+ import { $addElementReferenceToParent } from "./$addElementReferenceToParent.js";
4
+ import { applyAncestorUpdates, executeOnChange } from "./executeOnChange.js";
5
+ function collectDescendants(document, elementId) {
6
+ const ids = [];
7
+ const bindings = document.bindings[elementId];
8
+ if (!bindings?.inputs) return ids;
9
+ for (const binding of Object.values(bindings.inputs)){
10
+ if ("slot" !== binding.type) continue;
11
+ const children = binding.list ? binding.static ?? [] : binding.static ? [
12
+ binding.static
13
+ ] : [];
14
+ for (const childId of children){
15
+ ids.push(childId);
16
+ ids.push(...collectDescendants(document, childId));
17
+ }
18
+ }
19
+ return ids;
20
+ }
21
+ function remapBindings(bindings, idMap) {
22
+ const cloned = structuredClone(bindings);
23
+ if (cloned.inputs) {
24
+ for (const [key, binding] of Object.entries(cloned.inputs))if ("slot" === binding.type) {
25
+ if (binding.list && Array.isArray(binding.static)) cloned.inputs[key] = {
26
+ ...binding,
27
+ static: binding.static.map((id)=>idMap.get(id) ?? id)
28
+ };
29
+ else if ("string" == typeof binding.static) {
30
+ const newId = idMap.get(binding.static);
31
+ if (newId) cloned.inputs[key] = {
32
+ ...binding,
33
+ static: newId
34
+ };
35
+ }
36
+ }
37
+ }
38
+ return cloned;
39
+ }
40
+ function getSlotIndex(document, element) {
41
+ const parent = element.parent;
42
+ if (!parent) return -1;
43
+ const parentBindings = document.bindings[parent.id];
44
+ if (!parentBindings?.inputs) return -1;
45
+ const slotBinding = parentBindings.inputs[parent.slot];
46
+ if (!slotBinding) return -1;
47
+ if (slotBinding.list && Array.isArray(slotBinding.static)) return slotBinding.static.indexOf(element.id);
48
+ return -1;
49
+ }
50
+ function $cloneElement(editor, id) {
51
+ const document = editor.getDocumentState().read();
52
+ const element = $getElementById(document, id);
53
+ if (!element || !element.parent) return;
54
+ const allIds = [
55
+ id,
56
+ ...collectDescendants(document, id)
57
+ ];
58
+ const idMap = new Map();
59
+ for (const oldId of allIds)idMap.set(oldId, generateElementId());
60
+ const originalIndex = getSlotIndex(document, element);
61
+ editor.updateDocument((doc)=>{
62
+ for (const oldId of allIds){
63
+ const original = doc.elements[oldId];
64
+ const newId = idMap.get(oldId);
65
+ const clonedElement = {
66
+ ...structuredClone(original),
67
+ id: newId
68
+ };
69
+ if (clonedElement.parent) {
70
+ const newParentId = idMap.get(clonedElement.parent.id);
71
+ if (newParentId) clonedElement.parent = {
72
+ ...clonedElement.parent,
73
+ id: newParentId
74
+ };
75
+ }
76
+ doc.elements[newId] = clonedElement;
77
+ const originalBindings = doc.bindings[oldId];
78
+ if (originalBindings) doc.bindings[newId] = remapBindings(originalBindings, idMap);
79
+ }
80
+ const rootNewId = idMap.get(id);
81
+ const insertIndex = originalIndex >= 0 ? originalIndex + 1 : originalIndex;
82
+ $addElementReferenceToParent(doc, {
83
+ elementId: rootNewId,
84
+ parentId: element.parent.id,
85
+ slot: element.parent.slot,
86
+ index: insertIndex
87
+ });
88
+ });
89
+ const componentsManifest = editor.getEditorState().read().components;
90
+ const editorState = editor.getEditorState().read();
91
+ const breakpointNames = editorState.viewport.breakpoints.map((bp)=>bp.name);
92
+ const baseBreakpoint = breakpointNames[0];
93
+ const elementFactory = new ElementFactory(componentsManifest);
94
+ for (const oldId of allIds){
95
+ const newId = idMap.get(oldId);
96
+ const ancestorUpdates = executeOnChange({
97
+ editor,
98
+ elementId: newId,
99
+ action: "create",
100
+ breakpointNames,
101
+ baseBreakpoint,
102
+ elementFactory
103
+ });
104
+ if (ancestorUpdates.length > 0) editor.updateDocument((doc)=>{
105
+ applyAncestorUpdates(doc, ancestorUpdates, breakpointNames, baseBreakpoint, elementFactory);
106
+ });
107
+ }
108
+ return idMap.get(id);
109
+ }
110
+ export { $cloneElement };
111
+
112
+ //# sourceMappingURL=$cloneElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editorSdk/utils/$cloneElement.js","sources":["../../../src/editorSdk/utils/$cloneElement.ts"],"sourcesContent":["import { generateElementId } from \"@webiny/website-builder-sdk\";\nimport type {\n Document,\n DocumentElement,\n DocumentElementBindings\n} from \"@webiny/website-builder-sdk\";\nimport { ElementFactory } from \"@webiny/website-builder-sdk\";\nimport type { Editor } from \"../Editor.js\";\nimport { $getElementById } from \"./$getElementById.js\";\nimport { $addElementReferenceToParent } from \"./$addElementReferenceToParent.js\";\nimport { executeOnChange, applyAncestorUpdates } from \"./executeOnChange.js\";\n\nfunction collectDescendants(document: Document, elementId: string): string[] {\n const ids: string[] = [];\n const bindings = document.bindings[elementId];\n if (!bindings?.inputs) {\n return ids;\n }\n\n for (const binding of Object.values(bindings.inputs)) {\n if (binding.type !== \"slot\") {\n continue;\n }\n\n const children = binding.list\n ? ((binding.static as string[] | undefined) ?? [])\n : binding.static\n ? [binding.static as string]\n : [];\n\n for (const childId of children) {\n ids.push(childId);\n ids.push(...collectDescendants(document, childId));\n }\n }\n\n return ids;\n}\n\nfunction remapBindings(\n bindings: DocumentElementBindings,\n idMap: Map<string, string>\n): DocumentElementBindings {\n const cloned = structuredClone(bindings);\n\n if (cloned.inputs) {\n for (const [key, binding] of Object.entries(cloned.inputs)) {\n if (binding.type !== \"slot\") {\n continue;\n }\n\n if (binding.list && Array.isArray(binding.static)) {\n cloned.inputs[key] = {\n ...binding,\n static: binding.static.map((id: string) => idMap.get(id) ?? id)\n };\n } else if (typeof binding.static === \"string\") {\n const newId = idMap.get(binding.static);\n if (newId) {\n cloned.inputs[key] = { ...binding, static: newId };\n }\n }\n }\n }\n\n return cloned;\n}\n\nfunction getSlotIndex(document: Document, element: DocumentElement): number {\n const parent = element.parent;\n if (!parent) {\n return -1;\n }\n\n const parentBindings = document.bindings[parent.id];\n if (!parentBindings?.inputs) {\n return -1;\n }\n\n const slotBinding = parentBindings.inputs[parent.slot];\n if (!slotBinding) {\n return -1;\n }\n\n if (slotBinding.list && Array.isArray(slotBinding.static)) {\n return slotBinding.static.indexOf(element.id);\n }\n\n return -1;\n}\n\nexport function $cloneElement(editor: Editor, id: string): string | undefined {\n const document = editor.getDocumentState().read();\n const element = $getElementById(document, id);\n\n if (!element || !element.parent) {\n return undefined;\n }\n\n const allIds = [id, ...collectDescendants(document, id)];\n const idMap = new Map<string, string>();\n for (const oldId of allIds) {\n idMap.set(oldId, generateElementId());\n }\n\n const originalIndex = getSlotIndex(document, element);\n\n editor.updateDocument(doc => {\n for (const oldId of allIds) {\n const original = doc.elements[oldId];\n const newId = idMap.get(oldId)!;\n\n const clonedElement: DocumentElement = {\n ...structuredClone(original),\n id: newId\n };\n\n if (clonedElement.parent) {\n const newParentId = idMap.get(clonedElement.parent.id);\n if (newParentId) {\n clonedElement.parent = {\n ...clonedElement.parent,\n id: newParentId\n };\n }\n }\n\n doc.elements[newId] = clonedElement;\n\n const originalBindings = doc.bindings[oldId];\n if (originalBindings) {\n doc.bindings[newId] = remapBindings(originalBindings, idMap);\n }\n }\n\n const rootNewId = idMap.get(id)!;\n const insertIndex = originalIndex >= 0 ? originalIndex + 1 : originalIndex;\n\n $addElementReferenceToParent(doc, {\n elementId: rootNewId,\n parentId: element.parent!.id,\n slot: element.parent!.slot,\n index: insertIndex\n });\n });\n\n const componentsManifest = editor.getEditorState().read().components;\n const editorState = editor.getEditorState().read();\n const breakpointNames = editorState.viewport.breakpoints.map(bp => bp.name);\n const baseBreakpoint = breakpointNames[0];\n const elementFactory = new ElementFactory(componentsManifest);\n\n for (const oldId of allIds) {\n const newId = idMap.get(oldId)!;\n const ancestorUpdates = executeOnChange({\n editor,\n elementId: newId,\n action: \"create\",\n breakpointNames,\n baseBreakpoint,\n elementFactory\n });\n\n if (ancestorUpdates.length > 0) {\n editor.updateDocument(doc => {\n applyAncestorUpdates(\n doc,\n ancestorUpdates,\n breakpointNames,\n baseBreakpoint,\n elementFactory\n );\n });\n }\n }\n\n return idMap.get(id);\n}\n"],"names":["collectDescendants","document","elementId","ids","bindings","binding","Object","children","childId","remapBindings","idMap","cloned","structuredClone","key","Array","id","newId","getSlotIndex","element","parent","parentBindings","slotBinding","$cloneElement","editor","$getElementById","allIds","Map","oldId","generateElementId","originalIndex","doc","original","clonedElement","newParentId","originalBindings","rootNewId","insertIndex","$addElementReferenceToParent","componentsManifest","editorState","breakpointNames","bp","baseBreakpoint","elementFactory","ElementFactory","ancestorUpdates","executeOnChange","applyAncestorUpdates"],"mappings":"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"}
@@ -14,4 +14,5 @@ export * from "./$getFirstElementOfType.js";
14
14
  export * from "./$getElementInputValues.js";
15
15
  export * from "./$updateElementInputs.js";
16
16
  export * from "./$previewElementInputs.js";
17
+ export * from "./$cloneElement.js";
17
18
  export * from "./executeOnChange.js";
@@ -14,4 +14,5 @@ export * from "./$getFirstElementOfType.js";
14
14
  export * from "./$getElementInputValues.js";
15
15
  export * from "./$updateElementInputs.js";
16
16
  export * from "./$previewElementInputs.js";
17
+ export * from "./$cloneElement.js";
17
18
  export * from "./executeOnChange.js";
@@ -0,0 +1,30 @@
1
+ import { ExperimentsGateway as GatewayAbstraction } from "./abstractions.js";
2
+ import type { CreateExperimentInput, ExperimentDto, UpdateExperimentInput, UpdateVariantInput, VariantContentDto, VariantDto } from "./types.js";
3
+ import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient";
4
+ declare class ExperimentsGatewayImpl implements GatewayAbstraction.Interface {
5
+ private client;
6
+ constructor(client: MainGraphQLClient.Interface);
7
+ private unwrap;
8
+ listExperiments(pageEntryId: string): Promise<ExperimentDto[]>;
9
+ getExperiment(id: string): Promise<ExperimentDto | null>;
10
+ listVariants(experimentId: string): Promise<VariantDto[]>;
11
+ getVariant(id: string): Promise<VariantContentDto | null>;
12
+ createExperiment(input: CreateExperimentInput): Promise<ExperimentDto>;
13
+ updateExperiment(id: string, input: UpdateExperimentInput): Promise<ExperimentDto>;
14
+ startExperiment(id: string): Promise<ExperimentDto>;
15
+ stopExperiment(id: string): Promise<ExperimentDto>;
16
+ deleteExperiment(id: string): Promise<boolean>;
17
+ pauseExperiment(experimentEntryId: string): Promise<boolean>;
18
+ resumeExperiment(experimentEntryId: string): Promise<boolean>;
19
+ getExperimentPaused(experimentEntryId: string): Promise<boolean>;
20
+ createVariant(input: {
21
+ experimentId: string;
22
+ name: string;
23
+ }): Promise<VariantDto>;
24
+ updateVariant(id: string, input: UpdateVariantInput): Promise<VariantDto>;
25
+ deleteVariant(id: string): Promise<boolean>;
26
+ }
27
+ export declare const ExperimentsGateway: typeof ExperimentsGatewayImpl & {
28
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IExperimentsGateway>;
29
+ };
30
+ export {};