@webiny/app-admin 5.34.8 → 5.35.0-beta.0

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 (255) hide show
  1. package/assets/icons/add-18px.svg +1 -1
  2. package/assets/icons/arrow_drop_down-24px.svg +1 -1
  3. package/assets/icons/filter-24px.svg +1 -1
  4. package/assets/icons/highlight-24px.svg +1 -1
  5. package/assets/icons/info.svg +1 -1
  6. package/assets/icons/insert_drive_file-24px.svg +1 -1
  7. package/assets/icons/insert_photo-24px.svg +1 -1
  8. package/assets/icons/label-24px.svg +1 -1
  9. package/assets/icons/round-account_circle-24px.svg +1 -1
  10. package/assets/icons/round-arrow_drop_down-24px.svg +1 -1
  11. package/assets/icons/round-help-24px.svg +1 -1
  12. package/assets/icons/round-settings-24px.svg +1 -1
  13. package/assets/icons/today-24px.svg +1 -1
  14. package/assets/icons/touch_app.svg +1 -1
  15. package/base/Admin.js +1 -15
  16. package/base/Admin.js.map +1 -1
  17. package/base/Base.js +6 -44
  18. package/base/Base.js.map +1 -1
  19. package/base/plugins/AddGraphQLQuerySelection.js +5 -9
  20. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
  21. package/base/providers/ApolloProvider.js +0 -5
  22. package/base/providers/ApolloProvider.js.map +1 -1
  23. package/base/providers/TelemetryProvider.js +1 -7
  24. package/base/providers/TelemetryProvider.js.map +1 -1
  25. package/base/providers/UiStateProvider.js +0 -5
  26. package/base/providers/UiStateProvider.js.map +1 -1
  27. package/base/providers/ViewCompositionProvider.js +3 -16
  28. package/base/providers/ViewCompositionProvider.js.map +1 -1
  29. package/base/ui/Brand.js +0 -4
  30. package/base/ui/Brand.js.map +1 -1
  31. package/base/ui/CenteredView.js +2 -7
  32. package/base/ui/CenteredView.js.map +1 -1
  33. package/base/ui/Dashboard.js +0 -4
  34. package/base/ui/Dashboard.js.map +1 -1
  35. package/base/ui/FileManager.d.ts +67 -0
  36. package/base/ui/FileManager.js +61 -0
  37. package/base/ui/FileManager.js.map +1 -0
  38. package/base/ui/Layout.js +1 -6
  39. package/base/ui/Layout.js.map +1 -1
  40. package/base/ui/LocaleSelector.js +0 -4
  41. package/base/ui/LocaleSelector.js.map +1 -1
  42. package/base/ui/LoginScreen.js +0 -6
  43. package/base/ui/LoginScreen.js.map +1 -1
  44. package/base/ui/Logo.js +0 -6
  45. package/base/ui/Logo.js.map +1 -1
  46. package/base/ui/Menu.js +2 -31
  47. package/base/ui/Menu.js.map +1 -1
  48. package/base/ui/Navigation.js +11 -44
  49. package/base/ui/Navigation.js.map +1 -1
  50. package/base/ui/NotFound.js +0 -4
  51. package/base/ui/NotFound.js.map +1 -1
  52. package/base/ui/Search.js +5 -23
  53. package/base/ui/Search.js.map +1 -1
  54. package/base/ui/Tags.js +1 -8
  55. package/base/ui/Tags.js.map +1 -1
  56. package/base/ui/UserMenu.js +5 -29
  57. package/base/ui/UserMenu.js.map +1 -1
  58. package/components/AdminLayout.js +1 -6
  59. package/components/AdminLayout.js.map +1 -1
  60. package/components/AppInstaller/AppInstaller.js +18 -84
  61. package/components/AppInstaller/AppInstaller.js.map +1 -1
  62. package/components/AppInstaller/Sidebar.js +11 -44
  63. package/components/AppInstaller/Sidebar.js.map +1 -1
  64. package/components/AppInstaller/index.js +0 -7
  65. package/components/AppInstaller/index.js.map +1 -1
  66. package/components/AppInstaller/styled.d.ts +17 -5
  67. package/components/AppInstaller/styled.js +0 -4
  68. package/components/AppInstaller/styled.js.map +1 -1
  69. package/components/AppInstaller/useInstaller.d.ts +1 -7
  70. package/components/AppInstaller/useInstaller.js +72 -183
  71. package/components/AppInstaller/useInstaller.js.map +1 -1
  72. package/components/EmptyView.js +4 -12
  73. package/components/EmptyView.js.map +1 -1
  74. package/components/FloatingActionButton.js +2 -8
  75. package/components/FloatingActionButton.js.map +1 -1
  76. package/components/MultiImageUpload.js +1 -10
  77. package/components/MultiImageUpload.js.map +1 -1
  78. package/components/OverlayLayout/OverlayLayout.js +9 -38
  79. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  80. package/components/OverlayLayout/index.js +0 -2
  81. package/components/OverlayLayout/index.js.map +1 -1
  82. package/components/Permissions/Permissions.d.ts +2 -0
  83. package/components/Permissions/Permissions.js +25 -27
  84. package/components/Permissions/Permissions.js.map +1 -1
  85. package/components/Permissions/StyledComponents.js +0 -7
  86. package/components/Permissions/StyledComponents.js.map +1 -1
  87. package/components/Permissions/index.js +0 -3
  88. package/components/Permissions/index.js.map +1 -1
  89. package/components/RichTextEditor/RichTextEditor.js +0 -7
  90. package/components/RichTextEditor/RichTextEditor.js.map +1 -1
  91. package/components/RichTextEditor/index.js +0 -2
  92. package/components/RichTextEditor/index.js.map +1 -1
  93. package/components/RichTextEditor/tools/header/index.js +62 -102
  94. package/components/RichTextEditor/tools/header/index.js.map +1 -1
  95. package/components/RichTextEditor/tools/image/index.js +15 -36
  96. package/components/RichTextEditor/tools/image/index.js.map +1 -1
  97. package/components/RichTextEditor/tools/image/svgs.js.map +1 -1
  98. package/components/RichTextEditor/tools/image/tunes.js +5 -22
  99. package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
  100. package/components/RichTextEditor/tools/image/ui.js +16 -39
  101. package/components/RichTextEditor/tools/image/ui.js.map +1 -1
  102. package/components/RichTextEditor/tools/paragraph/index.js +55 -81
  103. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
  104. package/components/RichTextEditor/tools/textColor/index.js +15 -41
  105. package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
  106. package/components/RichTextEditor/tools/utils.js +0 -2
  107. package/components/RichTextEditor/tools/utils.js.map +1 -1
  108. package/components/Routes.js +6 -13
  109. package/components/Routes.js.map +1 -1
  110. package/components/SearchUI.d.ts +1 -0
  111. package/components/SearchUI.js +14 -14
  112. package/components/SearchUI.js.map +1 -1
  113. package/components/SimpleForm/SimpleForm.js +3 -32
  114. package/components/SimpleForm/SimpleForm.js.map +1 -1
  115. package/components/SimpleForm/index.js +0 -1
  116. package/components/SimpleForm/index.js.map +1 -1
  117. package/components/SimpleUI/InputField.d.ts +2 -0
  118. package/components/SimpleUI/InputField.js +16 -30
  119. package/components/SimpleUI/InputField.js.map +1 -1
  120. package/components/SingleImageUpload.d.ts +1 -1
  121. package/components/SingleImageUpload.js +14 -30
  122. package/components/SingleImageUpload.js.map +1 -1
  123. package/components/SplitView/SplitView.js +1 -20
  124. package/components/SplitView/SplitView.js.map +1 -1
  125. package/components/SplitView/index.js +0 -1
  126. package/components/SplitView/index.js.map +1 -1
  127. package/components/index.d.ts +1 -1
  128. package/components/index.js +1 -2
  129. package/components/index.js.map +1 -1
  130. package/hooks/useConfirmationDialog.js +6 -18
  131. package/hooks/useConfirmationDialog.js.map +1 -1
  132. package/hooks/useDialog.js +0 -5
  133. package/hooks/useDialog.js.map +1 -1
  134. package/hooks/useSnackbar.js +0 -5
  135. package/hooks/useSnackbar.js.map +1 -1
  136. package/index.d.ts +2 -3
  137. package/index.js +1 -61
  138. package/index.js.map +1 -1
  139. package/package.json +22 -32
  140. package/plugins/MenuPlugin.js +0 -15
  141. package/plugins/MenuPlugin.js.map +1 -1
  142. package/plugins/PermissionRendererPlugin.js +0 -15
  143. package/plugins/PermissionRendererPlugin.js.map +1 -1
  144. package/plugins/globalSearch/SearchBar.js +5 -53
  145. package/plugins/globalSearch/SearchBar.js.map +1 -1
  146. package/plugins/globalSearch/SearchBarDropdown.js +15 -33
  147. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
  148. package/plugins/globalSearch/index.js.map +1 -1
  149. package/plugins/globalSearch/styled.d.ts +13 -4
  150. package/plugins/globalSearch/styled.js +1 -5
  151. package/plugins/globalSearch/styled.js.map +1 -1
  152. package/plugins/uiLayoutRenderer/index.js +2 -16
  153. package/plugins/uiLayoutRenderer/index.js.map +1 -1
  154. package/styles/theme.scss +31 -1
  155. package/types.d.ts +23 -27
  156. package/types.js.map +1 -1
  157. package/ui/UIElement.js +0 -1
  158. package/ui/UIElement.js.map +1 -1
  159. package/ui/UILayout.js +0 -1
  160. package/ui/UILayout.js.map +1 -1
  161. package/ui/UIRenderer.js +0 -1
  162. package/ui/UIRenderer.js.map +1 -1
  163. package/ui/UIView.js +0 -1
  164. package/ui/UIView.js.map +1 -1
  165. package/ui/elements/AccordionElement.js +2 -28
  166. package/ui/elements/AccordionElement.js.map +1 -1
  167. package/ui/elements/ButtonElement.js +0 -19
  168. package/ui/elements/ButtonElement.js.map +1 -1
  169. package/ui/elements/ButtonGroupElement.js +0 -19
  170. package/ui/elements/ButtonGroupElement.js.map +1 -1
  171. package/ui/elements/GenericElement.js +0 -2
  172. package/ui/elements/GenericElement.js.map +1 -1
  173. package/ui/elements/LabelElement.js +0 -14
  174. package/ui/elements/LabelElement.js.map +1 -1
  175. package/ui/elements/NavigationMenuElement.js +3 -36
  176. package/ui/elements/NavigationMenuElement.js.map +1 -1
  177. package/ui/elements/PanelElement.js +0 -11
  178. package/ui/elements/PanelElement.js.map +1 -1
  179. package/ui/elements/PlaceholderElement.js +0 -11
  180. package/ui/elements/PlaceholderElement.js.map +1 -1
  181. package/ui/elements/SmallButtonElement.js +0 -19
  182. package/ui/elements/SmallButtonElement.js.map +1 -1
  183. package/ui/elements/TypographyElement.js +0 -19
  184. package/ui/elements/TypographyElement.js.map +1 -1
  185. package/ui/elements/ViewElement.js +0 -2
  186. package/ui/elements/ViewElement.js.map +1 -1
  187. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +0 -16
  188. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
  189. package/ui/elements/form/DynamicFieldsetElement.js +11 -34
  190. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
  191. package/ui/elements/form/FileManagerElement/EmptyStateElement.js +0 -15
  192. package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -1
  193. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +5 -27
  194. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
  195. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +4 -23
  196. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
  197. package/ui/elements/form/FileManagerElement/styled.d.ts +23 -16
  198. package/ui/elements/form/FileManagerElement/styled.js +0 -5
  199. package/ui/elements/form/FileManagerElement/styled.js.map +1 -1
  200. package/ui/elements/form/FileManagerElement.js +0 -20
  201. package/ui/elements/form/FileManagerElement.js.map +1 -1
  202. package/ui/elements/form/FormElement.js +0 -21
  203. package/ui/elements/form/FormElement.js.map +1 -1
  204. package/ui/elements/form/FormFieldElement.js +0 -33
  205. package/ui/elements/form/FormFieldElement.js.map +1 -1
  206. package/ui/elements/form/HiddenElement.js +0 -17
  207. package/ui/elements/form/HiddenElement.js.map +1 -1
  208. package/ui/elements/form/InputElement.js +0 -18
  209. package/ui/elements/form/InputElement.js.map +1 -1
  210. package/ui/elements/form/PasswordElement.js +0 -15
  211. package/ui/elements/form/PasswordElement.js.map +1 -1
  212. package/ui/elements/form/SelectElement.js +1 -19
  213. package/ui/elements/form/SelectElement.js.map +1 -1
  214. package/ui/elements/form/TextareaElement.js +0 -17
  215. package/ui/elements/form/TextareaElement.js.map +1 -1
  216. package/ui/views/AdminView/ContentElement.js +1 -25
  217. package/ui/views/AdminView/ContentElement.js.map +1 -1
  218. package/ui/views/AdminView/HeaderElement.js +0 -40
  219. package/ui/views/AdminView/HeaderElement.js.map +1 -1
  220. package/ui/views/AdminView/HeaderSectionCenterElement.js +0 -20
  221. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
  222. package/ui/views/AdminView/HeaderSectionLeftElement.js +0 -20
  223. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
  224. package/ui/views/AdminView/HeaderSectionRightElement.js +0 -20
  225. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
  226. package/ui/views/AdminView/components/Dialog.js +10 -21
  227. package/ui/views/AdminView/components/Dialog.js.map +1 -1
  228. package/ui/views/AdminView/components/Hamburger.js +2 -10
  229. package/ui/views/AdminView/components/Hamburger.js.map +1 -1
  230. package/ui/views/AdminView/components/Snackbar.js +0 -9
  231. package/ui/views/AdminView/components/Snackbar.js.map +1 -1
  232. package/ui/views/FormView/FormContainerElement.js +0 -21
  233. package/ui/views/FormView/FormContainerElement.js.map +1 -1
  234. package/ui/views/FormView/FormContentElement.js +0 -11
  235. package/ui/views/FormView/FormContentElement.js.map +1 -1
  236. package/ui/views/FormView/FormFooterElement.js +0 -19
  237. package/ui/views/FormView/FormFooterElement.js.map +1 -1
  238. package/ui/views/FormView/FormHeaderElement.js +2 -24
  239. package/ui/views/FormView/FormHeaderElement.js.map +1 -1
  240. package/ui/views/FormView.js +0 -41
  241. package/ui/views/FormView.js.map +1 -1
  242. package/ui/views/OverlayView/ContentElement.js +0 -19
  243. package/ui/views/OverlayView/ContentElement.js.map +1 -1
  244. package/ui/views/OverlayView/HeaderElement.js +4 -26
  245. package/ui/views/OverlayView/HeaderElement.js.map +1 -1
  246. package/ui/views/OverlayView/HeaderTitleElement.js +0 -22
  247. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
  248. package/ui/views/OverlayView/useOverlayView.js +3 -13
  249. package/ui/views/OverlayView/useOverlayView.js.map +1 -1
  250. package/ui/views/OverlayView.js +4 -38
  251. package/ui/views/OverlayView.js.map +1 -1
  252. package/ui/views/SplitView/SplitViewPanelElement.js +2 -22
  253. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
  254. package/ui/views/SplitView.js +0 -40
  255. package/ui/views/SplitView.js.map +1 -1
@@ -1,16 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.DashboardRenderer = exports.Dashboard = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var _app = require("@webiny/app");
13
-
14
10
  var Dashboard = (0, _app.makeComposable)("Dashboard", function () {
15
11
  return /*#__PURE__*/_react.default.createElement(DashboardRenderer, null);
16
12
  });
@@ -1 +1 @@
1
- {"version":3,"names":["Dashboard","makeComposable","DashboardRenderer"],"sources":["Dashboard.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeComposable } from \"@webiny/app\";\n\nexport const Dashboard = makeComposable(\"Dashboard\", () => {\n return <DashboardRenderer />;\n});\n\nexport const DashboardRenderer = makeComposable(\"DashboardRenderer\");\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEO,IAAMA,SAAS,GAAG,IAAAC,mBAAA,EAAe,WAAf,EAA4B,YAAM;EACvD,oBAAO,6BAAC,iBAAD,OAAP;AACH,CAFwB,CAAlB;;AAIA,IAAMC,iBAAiB,GAAG,IAAAD,mBAAA,EAAe,mBAAf,CAA1B"}
1
+ {"version":3,"names":["Dashboard","makeComposable","DashboardRenderer"],"sources":["Dashboard.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeComposable } from \"@webiny/app\";\n\nexport const Dashboard = makeComposable(\"Dashboard\", () => {\n return <DashboardRenderer />;\n});\n\nexport const DashboardRenderer = makeComposable(\"DashboardRenderer\");\n"],"mappings":";;;;;;;AAAA;AACA;AAEO,IAAMA,SAAS,GAAG,IAAAC,mBAAc,EAAC,WAAW,EAAE,YAAM;EACvD,oBAAO,6BAAC,iBAAiB,OAAG;AAChC,CAAC,CAAC;AAAC;AAEI,IAAMC,iBAAiB,GAAG,IAAAD,mBAAc,EAAC,mBAAmB,CAAC;AAAC"}
@@ -0,0 +1,67 @@
1
+ import React from "react";
2
+ export interface FileManagerOnChange<T> {
3
+ (value: T): void;
4
+ }
5
+ /**
6
+ * Represents a file object managed by the File Manager.
7
+ */
8
+ export interface FileManagerFileItem {
9
+ id: string;
10
+ src: string;
11
+ meta?: Array<FileManagerFileItemMetaItem>;
12
+ }
13
+ /**
14
+ * With this we allow developers to add any value to file's meta via component composition, thus the `value: any`.
15
+ */
16
+ export interface FileManagerFileItemMetaItem {
17
+ key: string;
18
+ value: any;
19
+ }
20
+ export declare type DeprecatedFileManagerRenderPropParams = {
21
+ showFileManager: (onChange?: FileManagerOnChange<FileManagerFileItem | FileManagerFileItem[]>) => void;
22
+ };
23
+ export declare type FileManagerRenderPropParams<TValue> = {
24
+ showFileManager: (onChange?: FileManagerOnChange<TValue>) => void;
25
+ };
26
+ interface SingleFileRenderProp {
27
+ (params: FileManagerRenderPropParams<FileManagerFileItem>): React.ReactNode;
28
+ }
29
+ interface MultiFileRenderProp {
30
+ (params: FileManagerRenderPropParams<FileManagerFileItem[]>): React.ReactNode;
31
+ }
32
+ export declare type MultipleProps = {
33
+ multiple?: never;
34
+ multipleMaxCount?: never;
35
+ multipleMaxSize?: never;
36
+ onChange?: FileManagerOnChange<FileManagerFileItem>;
37
+ render?: SingleFileRenderProp;
38
+ } | {
39
+ multiple: true;
40
+ multipleMaxCount?: number;
41
+ multipleMaxSize?: number | string;
42
+ onChange?: FileManagerOnChange<FileManagerFileItem[]>;
43
+ render?: MultiFileRenderProp;
44
+ };
45
+ export declare type FileManagerProps = {
46
+ accept?: Array<string>;
47
+ images?: boolean;
48
+ maxSize?: number | string;
49
+ /**
50
+ * @deprecated This prop is no longer used. The file structure was reduced to a bare minimum so picking is no longer necessary.
51
+ */
52
+ onChangePick?: string[];
53
+ onClose?: Function;
54
+ onUploadCompletion?: (files: FileManagerFileItem[]) => void;
55
+ own?: boolean;
56
+ scope?: string;
57
+ tags?: Array<string>;
58
+ /**
59
+ * @deprecated This prop is no longer used. Use the `render` prop to get better TS autocomplete.
60
+ */
61
+ children?: (params: DeprecatedFileManagerRenderPropParams) => React.ReactNode;
62
+ } & MultipleProps;
63
+ declare type DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;
64
+ export declare type FileManagerRendererProps = DistributiveOmit<FileManagerProps, "render" | "children">;
65
+ export declare const FileManagerRenderer: import("@webiny/react-composition").ComposableFC<FileManagerRendererProps>;
66
+ export declare const FileManager: React.FC<FileManagerProps>;
67
+ export {};
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.FileManagerRenderer = exports.FileManager = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _reactDom = _interopRequireDefault(require("react-dom"));
13
+ var _reactComposition = require("@webiny/react-composition");
14
+ var _excluded = ["children", "render", "onChange"];
15
+ function getPortalTarget() {
16
+ var target = window.document.getElementById("file-manager-container");
17
+ if (!target) {
18
+ target = document.createElement("div");
19
+ target.setAttribute("id", "file-manager-container");
20
+ document.body && document.body.appendChild(target);
21
+ }
22
+ return target;
23
+ }
24
+
25
+ // This jewel was taken from https://davidgomes.com/pick-omit-over-union-types-in-typescript/. Massive thanks, David!
26
+
27
+ var FileManagerRenderer = (0, _reactComposition.makeComposable)("FileManagerRenderer");
28
+ exports.FileManagerRenderer = FileManagerRenderer;
29
+ var FileManager = function FileManager(_ref) {
30
+ var children = _ref.children,
31
+ render = _ref.render,
32
+ onChange = _ref.onChange,
33
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
34
+ var containerRef = (0, _react.useRef)(getPortalTarget());
35
+ var _useState = (0, _react.useState)(false),
36
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
37
+ show = _useState2[0],
38
+ setShow = _useState2[1];
39
+ var onChangeRef = (0, _react.useRef)(onChange);
40
+ (0, _react.useEffect)(function () {
41
+ onChangeRef.current = onChange;
42
+ }, [onChange]);
43
+ var showFileManager = (0, _react.useCallback)(function (onChange) {
44
+ if (typeof onChange === "function") {
45
+ onChangeRef.current = onChange;
46
+ }
47
+ setShow(true);
48
+ }, []);
49
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, show && /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/_react.default.createElement(FileManagerRenderer, Object.assign({
50
+ onClose: function onClose() {
51
+ return setShow(false);
52
+ },
53
+ onChange: /* TODO: figure out how to create a conditional type based on the value of `rest.multiple` */
54
+ onChangeRef.current
55
+ }, rest)), containerRef.current), children ? children({
56
+ showFileManager: showFileManager
57
+ }) : render ? render({
58
+ showFileManager: showFileManager
59
+ }) : null);
60
+ };
61
+ exports.FileManager = FileManager;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getPortalTarget","target","window","document","getElementById","createElement","setAttribute","body","appendChild","FileManagerRenderer","makeComposable","FileManager","children","render","onChange","rest","containerRef","useRef","useState","show","setShow","onChangeRef","useEffect","current","showFileManager","useCallback","ReactDOM","createPortal"],"sources":["FileManager.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { makeComposable } from \"@webiny/react-composition\";\n\nexport interface FileManagerOnChange<T> {\n (value: T): void;\n}\n\n/**\n * Represents a file object managed by the File Manager.\n */\nexport interface FileManagerFileItem {\n id: string;\n src: string;\n meta?: Array<FileManagerFileItemMetaItem>;\n}\n\n/**\n * With this we allow developers to add any value to file's meta via component composition, thus the `value: any`.\n */\nexport interface FileManagerFileItemMetaItem {\n key: string;\n value: any;\n}\n\nexport type DeprecatedFileManagerRenderPropParams = {\n showFileManager: (\n onChange?: FileManagerOnChange<FileManagerFileItem | FileManagerFileItem[]>\n ) => void;\n};\n\nexport type FileManagerRenderPropParams<TValue> = {\n showFileManager: (onChange?: FileManagerOnChange<TValue>) => void;\n};\n\ninterface SingleFileRenderProp {\n (params: FileManagerRenderPropParams<FileManagerFileItem>): React.ReactNode;\n}\n\ninterface MultiFileRenderProp {\n (params: FileManagerRenderPropParams<FileManagerFileItem[]>): React.ReactNode;\n}\n\nexport type MultipleProps =\n | {\n multiple?: never;\n multipleMaxCount?: never;\n multipleMaxSize?: never;\n onChange?: FileManagerOnChange<FileManagerFileItem>;\n render?: SingleFileRenderProp;\n }\n | {\n multiple: true;\n multipleMaxCount?: number;\n multipleMaxSize?: number | string;\n onChange?: FileManagerOnChange<FileManagerFileItem[]>;\n render?: MultiFileRenderProp;\n };\n\nexport type FileManagerProps = {\n accept?: Array<string>;\n images?: boolean;\n maxSize?: number | string;\n /**\n * @deprecated This prop is no longer used. The file structure was reduced to a bare minimum so picking is no longer necessary.\n */\n onChangePick?: string[];\n onClose?: Function;\n onUploadCompletion?: (files: FileManagerFileItem[]) => void;\n own?: boolean;\n scope?: string;\n tags?: Array<string>;\n /**\n * @deprecated This prop is no longer used. Use the `render` prop to get better TS autocomplete.\n */\n children?: (params: DeprecatedFileManagerRenderPropParams) => React.ReactNode;\n} & MultipleProps;\n\nfunction getPortalTarget() {\n let target = window.document.getElementById(\"file-manager-container\");\n if (!target) {\n target = document.createElement(\"div\");\n target.setAttribute(\"id\", \"file-manager-container\");\n document.body && document.body.appendChild(target);\n }\n return target;\n}\n\n// This jewel was taken from https://davidgomes.com/pick-omit-over-union-types-in-typescript/. Massive thanks, David!\ntype DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;\n\nexport type FileManagerRendererProps = DistributiveOmit<FileManagerProps, \"render\" | \"children\">;\n\nexport const FileManagerRenderer = makeComposable<FileManagerRendererProps>(\"FileManagerRenderer\");\n\nexport const FileManager: React.FC<FileManagerProps> = ({\n children,\n render,\n onChange,\n ...rest\n}) => {\n const containerRef = useRef<HTMLElement>(getPortalTarget());\n const [show, setShow] = useState(false);\n const onChangeRef = useRef(onChange);\n\n useEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n const showFileManager = useCallback(onChange => {\n if (typeof onChange === \"function\") {\n onChangeRef.current = onChange;\n }\n setShow(true);\n }, []);\n\n return (\n <>\n {show &&\n ReactDOM.createPortal(\n <FileManagerRenderer\n onClose={() => setShow(false)}\n onChange={\n /* TODO: figure out how to create a conditional type based on the value of `rest.multiple` */\n onChangeRef.current as any\n }\n {...rest}\n />,\n containerRef.current\n )}\n {children ? children({ showFileManager }) : render ? render({ showFileManager }) : null}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AAA2D;AA4E3D,SAASA,eAAe,GAAG;EACvB,IAAIC,MAAM,GAAGC,MAAM,CAACC,QAAQ,CAACC,cAAc,CAAC,wBAAwB,CAAC;EACrE,IAAI,CAACH,MAAM,EAAE;IACTA,MAAM,GAAGE,QAAQ,CAACE,aAAa,CAAC,KAAK,CAAC;IACtCJ,MAAM,CAACK,YAAY,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACnDH,QAAQ,CAACI,IAAI,IAAIJ,QAAQ,CAACI,IAAI,CAACC,WAAW,CAACP,MAAM,CAAC;EACtD;EACA,OAAOA,MAAM;AACjB;;AAEA;;AAKO,IAAMQ,mBAAmB,GAAG,IAAAC,gCAAc,EAA2B,qBAAqB,CAAC;AAAC;AAE5F,IAAMC,WAAuC,GAAG,SAA1CA,WAAuC,OAK9C;EAAA,IAJFC,QAAQ,QAARA,QAAQ;IACRC,MAAM,QAANA,MAAM;IACNC,QAAQ,QAARA,QAAQ;IACLC,IAAI;EAEP,IAAMC,YAAY,GAAG,IAAAC,aAAM,EAAcjB,eAAe,EAAE,CAAC;EAC3D,gBAAwB,IAAAkB,eAAQ,EAAC,KAAK,CAAC;IAAA;IAAhCC,IAAI;IAAEC,OAAO;EACpB,IAAMC,WAAW,GAAG,IAAAJ,aAAM,EAACH,QAAQ,CAAC;EAEpC,IAAAQ,gBAAS,EAAC,YAAM;IACZD,WAAW,CAACE,OAAO,GAAGT,QAAQ;EAClC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,IAAMU,eAAe,GAAG,IAAAC,kBAAW,EAAC,UAAAX,QAAQ,EAAI;IAC5C,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;MAChCO,WAAW,CAACE,OAAO,GAAGT,QAAQ;IAClC;IACAM,OAAO,CAAC,IAAI,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,oBACI,4DACKD,IAAI,iBACDO,iBAAQ,CAACC,YAAY,eACjB,6BAAC,mBAAmB;IAChB,OAAO,EAAE;MAAA,OAAMP,OAAO,CAAC,KAAK,CAAC;IAAA,CAAC;IAC9B,QAAQ,EACJ;IACAC,WAAW,CAACE;EACf,GACGR,IAAI,EACV,EACFC,YAAY,CAACO,OAAO,CACvB,EACJX,QAAQ,GAAGA,QAAQ,CAAC;IAAEY,eAAe,EAAfA;EAAgB,CAAC,CAAC,GAAGX,MAAM,GAAGA,MAAM,CAAC;IAAEW,eAAe,EAAfA;EAAgB,CAAC,CAAC,GAAG,IAAI,CACxF;AAEX,CAAC;AAAC"}
package/base/ui/Layout.js CHANGED
@@ -1,22 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.LayoutRenderer = exports.Layout = void 0;
9
-
10
8
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
-
12
9
  var _react = _interopRequireDefault(require("react"));
13
-
14
10
  var _app = require("@webiny/app");
15
-
16
11
  var _excluded = ["children"];
17
12
  var Layout = (0, _app.makeComposable)("Layout", function (_ref) {
18
13
  var children = _ref.children,
19
- props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
14
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
20
15
  return /*#__PURE__*/_react.default.createElement(LayoutRenderer, props, children);
21
16
  });
22
17
  exports.Layout = Layout;
@@ -1 +1 @@
1
- {"version":3,"names":["Layout","makeComposable","children","props","LayoutRenderer"],"sources":["Layout.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeComposable } from \"@webiny/app\";\n\nexport interface LayoutProps {\n title?: string;\n children: React.ReactNode;\n}\n\nexport const Layout = makeComposable<LayoutProps>(\"Layout\", ({ children, ...props }) => {\n return <LayoutRenderer {...props}>{children}</LayoutRenderer>;\n});\n\nexport const LayoutRenderer = makeComposable<LayoutProps>(\"LayoutRenderer\");\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;AAOO,IAAMA,MAAM,GAAG,IAAAC,mBAAA,EAA4B,QAA5B,EAAsC,gBAA4B;EAAA,IAAzBC,QAAyB,QAAzBA,QAAyB;EAAA,IAAZC,KAAY;EACpF,oBAAO,6BAAC,cAAD,EAAoBA,KAApB,EAA4BD,QAA5B,CAAP;AACH,CAFqB,CAAf;;AAIA,IAAME,cAAc,GAAG,IAAAH,mBAAA,EAA4B,gBAA5B,CAAvB"}
1
+ {"version":3,"names":["Layout","makeComposable","children","props","LayoutRenderer"],"sources":["Layout.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeComposable } from \"@webiny/app\";\n\nexport interface LayoutProps {\n title?: string;\n children: React.ReactNode;\n}\n\nexport const Layout = makeComposable<LayoutProps>(\"Layout\", ({ children, ...props }) => {\n return <LayoutRenderer {...props}>{children}</LayoutRenderer>;\n});\n\nexport const LayoutRenderer = makeComposable<LayoutProps>(\"LayoutRenderer\");\n"],"mappings":";;;;;;;;AAAA;AACA;AAA6C;AAOtC,IAAMA,MAAM,GAAG,IAAAC,mBAAc,EAAc,QAAQ,EAAE,gBAA4B;EAAA,IAAzBC,QAAQ,QAARA,QAAQ;IAAKC,KAAK;EAC7E,oBAAO,6BAAC,cAAc,EAAKA,KAAK,EAAGD,QAAQ,CAAkB;AACjE,CAAC,CAAC;AAAC;AAEI,IAAME,cAAc,GAAG,IAAAH,mBAAc,EAAc,gBAAgB,CAAC;AAAC"}
@@ -1,16 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.LocaleSelectorRenderer = exports.LocaleSelector = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var _app = require("@webiny/app");
13
-
14
10
  var LocaleSelector = (0, _app.makeComposable)("LocaleSelector", function () {
15
11
  return /*#__PURE__*/_react.default.createElement(LocaleSelectorRenderer, null);
16
12
  });
@@ -1 +1 @@
1
- {"version":3,"names":["LocaleSelector","makeComposable","LocaleSelectorRenderer"],"sources":["LocaleSelector.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeComposable } from \"@webiny/app\";\n\nexport const LocaleSelector = makeComposable(\"LocaleSelector\", () => {\n return <LocaleSelectorRenderer />;\n});\n\nexport const LocaleSelectorRenderer = makeComposable(\"LocaleSelectorRenderer\");\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEO,IAAMA,cAAc,GAAG,IAAAC,mBAAA,EAAe,gBAAf,EAAiC,YAAM;EACjE,oBAAO,6BAAC,sBAAD,OAAP;AACH,CAF6B,CAAvB;;AAIA,IAAMC,sBAAsB,GAAG,IAAAD,mBAAA,EAAe,wBAAf,CAA/B"}
1
+ {"version":3,"names":["LocaleSelector","makeComposable","LocaleSelectorRenderer"],"sources":["LocaleSelector.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeComposable } from \"@webiny/app\";\n\nexport const LocaleSelector = makeComposable(\"LocaleSelector\", () => {\n return <LocaleSelectorRenderer />;\n});\n\nexport const LocaleSelectorRenderer = makeComposable(\"LocaleSelectorRenderer\");\n"],"mappings":";;;;;;;AAAA;AACA;AAEO,IAAMA,cAAc,GAAG,IAAAC,mBAAc,EAAC,gBAAgB,EAAE,YAAM;EACjE,oBAAO,6BAAC,sBAAsB,OAAG;AACrC,CAAC,CAAC;AAAC;AAEI,IAAMC,sBAAsB,GAAG,IAAAD,mBAAc,EAAC,wBAAwB,CAAC;AAAC"}
@@ -1,18 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.LoginScreenRenderer = exports.LoginScreen = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var _app = require("@webiny/app");
13
-
14
10
  var _Tags = require("./Tags");
15
-
16
11
  var LoginScreen = function LoginScreen(_ref) {
17
12
  var children = _ref.children;
18
13
  return /*#__PURE__*/_react.default.createElement(_Tags.Tags, {
@@ -21,7 +16,6 @@ var LoginScreen = function LoginScreen(_ref) {
21
16
  }
22
17
  }, /*#__PURE__*/_react.default.createElement(LoginScreenRenderer, null, children));
23
18
  };
24
-
25
19
  exports.LoginScreen = LoginScreen;
26
20
  var LoginScreenRenderer = (0, _app.makeComposable)("LoginScreenRenderer");
27
21
  exports.LoginScreenRenderer = LoginScreenRenderer;
@@ -1 +1 @@
1
- {"version":3,"names":["LoginScreen","children","location","LoginScreenRenderer","makeComposable"],"sources":["LoginScreen.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeComposable } from \"@webiny/app\";\nimport { Tags } from \"./Tags\";\n\nexport interface LoginScreenProps {\n children: React.ReactNode;\n}\n\nexport const LoginScreen: React.FC<LoginScreenProps> = ({ children }) => {\n return (\n <Tags tags={{ location: \"loginScreen\" }}>\n <LoginScreenRenderer>{children}</LoginScreenRenderer>\n </Tags>\n );\n};\n\nexport const LoginScreenRenderer = makeComposable<LoginScreenProps>(\"LoginScreenRenderer\");\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAMO,IAAMA,WAAuC,GAAG,SAA1CA,WAA0C,OAAkB;EAAA,IAAfC,QAAe,QAAfA,QAAe;EACrE,oBACI,6BAAC,UAAD;IAAM,IAAI,EAAE;MAAEC,QAAQ,EAAE;IAAZ;EAAZ,gBACI,6BAAC,mBAAD,QAAsBD,QAAtB,CADJ,CADJ;AAKH,CANM;;;AAQA,IAAME,mBAAmB,GAAG,IAAAC,mBAAA,EAAiC,qBAAjC,CAA5B"}
1
+ {"version":3,"names":["LoginScreen","children","location","LoginScreenRenderer","makeComposable"],"sources":["LoginScreen.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeComposable } from \"@webiny/app\";\nimport { Tags } from \"./Tags\";\n\nexport interface LoginScreenProps {\n children: React.ReactNode;\n}\n\nexport const LoginScreen: React.FC<LoginScreenProps> = ({ children }) => {\n return (\n <Tags tags={{ location: \"loginScreen\" }}>\n <LoginScreenRenderer>{children}</LoginScreenRenderer>\n </Tags>\n );\n};\n\nexport const LoginScreenRenderer = makeComposable<LoginScreenProps>(\"LoginScreenRenderer\");\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAMO,IAAMA,WAAuC,GAAG,SAA1CA,WAAuC,OAAqB;EAAA,IAAfC,QAAQ,QAARA,QAAQ;EAC9D,oBACI,6BAAC,UAAI;IAAC,IAAI,EAAE;MAAEC,QAAQ,EAAE;IAAc;EAAE,gBACpC,6BAAC,mBAAmB,QAAED,QAAQ,CAAuB,CAClD;AAEf,CAAC;AAAC;AAEK,IAAME,mBAAmB,GAAG,IAAAC,mBAAc,EAAmB,qBAAqB,CAAC;AAAC"}
package/base/ui/Logo.js CHANGED
@@ -1,23 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.LogoRenderer = exports.Logo = exports.AddLogo = void 0;
9
-
10
8
  var _react = _interopRequireWildcard(require("react"));
11
-
12
9
  var _app = require("@webiny/app");
13
-
14
10
  var Logo = (0, _app.makeComposable)("Logo", function () {
15
11
  return /*#__PURE__*/_react.default.createElement(LogoRenderer, null);
16
12
  });
17
13
  exports.Logo = Logo;
18
14
  var LogoRenderer = (0, _app.makeComposable)("LogoRenderer");
19
15
  exports.LogoRenderer = LogoRenderer;
20
-
21
16
  var AddLogo = function AddLogo(_ref) {
22
17
  var logo = _ref.logo;
23
18
  var LogoHOC = (0, _react.useMemo)(function () {
@@ -32,5 +27,4 @@ var AddLogo = function AddLogo(_ref) {
32
27
  with: LogoHOC
33
28
  });
34
29
  };
35
-
36
30
  exports.AddLogo = AddLogo;
@@ -1 +1 @@
1
- {"version":3,"names":["Logo","makeComposable","LogoRenderer","AddLogo","logo","LogoHOC","useMemo"],"sources":["Logo.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { Compose, makeComposable } from \"@webiny/app\";\n\nexport const Logo = makeComposable(\"Logo\", () => {\n return <LogoRenderer />;\n});\n\nexport const LogoRenderer = makeComposable(\"LogoRenderer\");\n\ninterface AddLogoProps {\n logo: JSX.Element;\n}\n\nexport const AddLogo: React.FC<AddLogoProps> = ({ logo }) => {\n const LogoHOC = useMemo(() => {\n return () => {\n return function Logo() {\n return logo;\n };\n };\n }, []);\n\n return <Compose component={LogoRenderer} with={LogoHOC} />;\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEO,IAAMA,IAAI,GAAG,IAAAC,mBAAA,EAAe,MAAf,EAAuB,YAAM;EAC7C,oBAAO,6BAAC,YAAD,OAAP;AACH,CAFmB,CAAb;;AAIA,IAAMC,YAAY,GAAG,IAAAD,mBAAA,EAAe,cAAf,CAArB;;;AAMA,IAAME,OAA+B,GAAG,SAAlCA,OAAkC,OAAc;EAAA,IAAXC,IAAW,QAAXA,IAAW;EACzD,IAAMC,OAAO,GAAG,IAAAC,cAAA,EAAQ,YAAM;IAC1B,OAAO,YAAM;MACT,OAAO,SAASN,IAAT,GAAgB;QACnB,OAAOI,IAAP;MACH,CAFD;IAGH,CAJD;EAKH,CANe,EAMb,EANa,CAAhB;EAQA,oBAAO,6BAAC,YAAD;IAAS,SAAS,EAAEF,YAApB;IAAkC,IAAI,EAAEG;EAAxC,EAAP;AACH,CAVM"}
1
+ {"version":3,"names":["Logo","makeComposable","LogoRenderer","AddLogo","logo","LogoHOC","useMemo"],"sources":["Logo.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { Compose, makeComposable } from \"@webiny/app\";\n\nexport const Logo = makeComposable(\"Logo\", () => {\n return <LogoRenderer />;\n});\n\nexport const LogoRenderer = makeComposable(\"LogoRenderer\");\n\ninterface AddLogoProps {\n logo: JSX.Element;\n}\n\nexport const AddLogo: React.FC<AddLogoProps> = ({ logo }) => {\n const LogoHOC = useMemo(() => {\n return () => {\n return function Logo() {\n return logo;\n };\n };\n }, []);\n\n return <Compose component={LogoRenderer} with={LogoHOC} />;\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAEO,IAAMA,IAAI,GAAG,IAAAC,mBAAc,EAAC,MAAM,EAAE,YAAM;EAC7C,oBAAO,6BAAC,YAAY,OAAG;AAC3B,CAAC,CAAC;AAAC;AAEI,IAAMC,YAAY,GAAG,IAAAD,mBAAc,EAAC,cAAc,CAAC;AAAC;AAMpD,IAAME,OAA+B,GAAG,SAAlCA,OAA+B,OAAiB;EAAA,IAAXC,IAAI,QAAJA,IAAI;EAClD,IAAMC,OAAO,GAAG,IAAAC,cAAO,EAAC,YAAM;IAC1B,OAAO,YAAM;MACT,OAAO,SAASN,IAAI,GAAG;QACnB,OAAOI,IAAI;MACf,CAAC;IACL,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,oBAAO,6BAAC,YAAO;IAAC,SAAS,EAAEF,YAAa;IAAC,IAAI,EAAEG;EAAQ,EAAG;AAC9D,CAAC;AAAC"}
package/base/ui/Menu.js CHANGED
@@ -1,34 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.createEmptyMenu = exports.AddMenu = void 0;
11
-
12
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
-
16
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
12
  var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
19
-
20
13
  var _react = _interopRequireWildcard(require("react"));
21
-
22
14
  var _ = require("../..");
23
-
24
15
  var _excluded = ["children"];
25
16
  var MenuContext = /*#__PURE__*/(0, _react.createContext)(undefined);
26
17
  MenuContext.displayName = "MenuContext";
27
-
28
18
  var useMenu = function useMenu() {
29
19
  return (0, _react.useContext)(MenuContext);
30
20
  };
31
-
32
21
  var createEmptyMenu = function createEmptyMenu(name) {
33
22
  return {
34
23
  name: name,
@@ -36,39 +25,33 @@ var createEmptyMenu = function createEmptyMenu(name) {
36
25
  children: []
37
26
  };
38
27
  };
39
-
40
28
  exports.createEmptyMenu = createEmptyMenu;
41
29
  var keys = ["label", "path", "icon", "onClick", "testId", "tags", "target", "rel", "element", "pin"];
42
-
43
30
  var mergeMenuItems = function mergeMenuItems(item1, item2) {
44
31
  return (0, _objectSpread3.default)((0, _objectSpread3.default)((0, _objectSpread3.default)({}, item1), keys.reduce(function (map, key) {
45
32
  var _item2$key;
46
-
47
33
  return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, map), {}, (0, _defineProperty2.default)({}, key, (_item2$key = item2[key]) !== null && _item2$key !== void 0 ? _item2$key : item1[key]));
48
34
  }, {})), {}, {
49
35
  children: (item2.children || []).reduce(function (acc, menu) {
50
36
  var index = acc.findIndex(function (i) {
51
37
  return i.name === menu.name;
52
38
  });
53
-
54
39
  if (index > -1) {
55
40
  acc[index] = mergeMenuItems(acc[index], menu);
56
41
  } else {
57
42
  acc.push(menu);
58
43
  }
59
-
60
44
  return acc;
61
45
  }, (0, _toConsumableArray2.default)(item1.children))
62
46
  });
63
47
  };
48
+
64
49
  /**
65
50
  * Register a new menu item into the Admin app.
66
51
  */
67
-
68
-
69
52
  var AddMenu = function AddMenu(_ref) {
70
53
  var children = _ref.children,
71
- props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
54
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
72
55
  var menu = useMenu();
73
56
  var navigation = (0, _.useNavigation)();
74
57
  (0, _react.useEffect)(function () {
@@ -79,7 +62,6 @@ var AddMenu = function AddMenu(_ref) {
79
62
  children: []
80
63
  });
81
64
  }
82
-
83
65
  return mergeMenuItems(existing, props);
84
66
  });
85
67
  } else {
@@ -91,11 +73,9 @@ var AddMenu = function AddMenu(_ref) {
91
73
  if (!existing) {
92
74
  return props;
93
75
  }
94
-
95
76
  return mergeMenuItems(existing, props);
96
77
  });
97
78
  }
98
-
99
79
  return function () {
100
80
  if (menu) {
101
81
  menu.removeMenu(props.name);
@@ -113,17 +93,14 @@ var AddMenu = function AddMenu(_ref) {
113
93
  if (!existing) {
114
94
  return undefined;
115
95
  }
116
-
117
96
  var childIndex = existing.children.findIndex(function (ch) {
118
97
  return ch.name === name;
119
98
  });
120
-
121
99
  if (childIndex > -1) {
122
100
  return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, existing), {}, {
123
101
  children: [].concat((0, _toConsumableArray2.default)(existing.children.slice(0, childIndex)), (0, _toConsumableArray2.default)(existing.children.slice(childIndex + 1)))
124
102
  });
125
103
  }
126
-
127
104
  return existing;
128
105
  });
129
106
  },
@@ -132,34 +109,28 @@ var AddMenu = function AddMenu(_ref) {
132
109
  if (!existing) {
133
110
  existing = createEmptyMenu(props.name);
134
111
  }
135
-
136
112
  var subItems = existing.children;
137
113
  var childIndex = subItems.findIndex(function (ch) {
138
114
  return ch.name === name;
139
115
  });
140
-
141
116
  if (childIndex === -1) {
142
117
  return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, existing), {}, {
143
118
  children: [].concat((0, _toConsumableArray2.default)(subItems), [updater(null)]).filter(Boolean)
144
119
  });
145
120
  }
146
-
147
121
  return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, existing), {}, {
148
122
  children: [].concat((0, _toConsumableArray2.default)(subItems.slice(0, childIndex)), [updater(subItems[childIndex])], (0, _toConsumableArray2.default)(subItems.slice(childIndex + 1))).filter(Boolean)
149
123
  });
150
124
  });
151
125
  }
152
126
  };
153
-
154
127
  if (!children) {
155
128
  return null;
156
129
  }
157
-
158
130
  return /*#__PURE__*/_react.default.createElement(MenuContext.Provider, {
159
131
  value: context
160
132
  }, children);
161
133
  };
162
-
163
134
  exports.AddMenu = AddMenu;
164
135
  AddMenu.defaultProps = {
165
136
  tags: []
@@ -1 +1 @@
1
- {"version":3,"names":["MenuContext","createContext","undefined","displayName","useMenu","useContext","createEmptyMenu","name","tags","children","keys","mergeMenuItems","item1","item2","reduce","map","key","acc","menu","index","findIndex","i","push","AddMenu","props","navigation","useNavigation","useEffect","setMenu","existing","removeMenu","context","menuItem","childIndex","ch","slice","updater","subItems","filter","Boolean","defaultProps"],"sources":["Menu.tsx"],"sourcesContent":["import React, { createContext, useContext, useEffect } from \"react\";\nimport { useNavigation } from \"~/index\";\n\nexport interface MenuUpdater {\n (menuItem: MenuData | undefined | null): MenuData | undefined;\n}\n\nexport interface MenuContext {\n menuItem: MenuData | null;\n setMenu(id: string, updater: MenuUpdater): void;\n removeMenu(id: string): void;\n}\n\nconst MenuContext = createContext<MenuContext | undefined>(undefined);\nMenuContext.displayName = \"MenuContext\";\n\nconst useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport interface MenuProps {\n name: string;\n label?: string;\n path?: string;\n icon?: JSX.Element;\n onClick?: () => void;\n testId?: string;\n tags?: string[];\n target?: string;\n rel?: string;\n element?: JSX.Element;\n children?: React.ReactNode | React.ReactNode[];\n pin?: \"first\" | \"last\";\n}\n\nexport interface MenuData extends MenuProps {\n children: MenuData[];\n}\n\nexport const createEmptyMenu = (name: string): MenuData => {\n return {\n name,\n tags: [],\n children: []\n };\n};\n\nconst keys: (keyof MenuData)[] = [\n \"label\",\n \"path\",\n \"icon\",\n \"onClick\",\n \"testId\",\n \"tags\",\n \"target\",\n \"rel\",\n \"element\",\n \"pin\"\n];\n\nconst mergeMenuItems = (item1: MenuData, item2: MenuData): MenuData => {\n return {\n ...item1,\n ...keys.reduce((map, key) => ({ ...map, [key]: item2[key] ?? item1[key] }), {}),\n children: (item2.children || []).reduce(\n (acc, menu) => {\n const index = acc.findIndex(i => i.name === menu.name);\n if (index > -1) {\n acc[index] = mergeMenuItems(acc[index], menu);\n } else {\n acc.push(menu);\n }\n return acc;\n },\n [...item1.children]\n )\n };\n};\n\n/**\n * Register a new menu item into the Admin app.\n */\nexport const AddMenu: React.FC<MenuProps> = ({ children, ...props }) => {\n const menu = useMenu();\n const navigation = useNavigation();\n\n useEffect(() => {\n if (menu) {\n menu.setMenu(props.name, existing => {\n if (!existing) {\n return { ...props, children: [] } as MenuData;\n }\n\n return mergeMenuItems(existing, props as MenuData);\n });\n } else {\n navigation.setMenu(props.name, existing => {\n /**\n * We return props because this will break otherwise.\n * TODO @pavel check if this is correct\n */\n if (!existing) {\n return props as MenuData;\n }\n return mergeMenuItems(existing, props as MenuData);\n });\n }\n\n return () => {\n if (menu) {\n menu.removeMenu(props.name);\n } else {\n navigation.removeMenu(props.name);\n }\n };\n }, []);\n\n const context: MenuContext = {\n menuItem: { ...props, children: [] },\n removeMenu(name) {\n (menu || navigation).setMenu(props.name, existing => {\n if (!existing) {\n return undefined;\n }\n\n const childIndex = existing.children.findIndex(ch => ch.name === name);\n if (childIndex > -1) {\n return {\n ...existing,\n children: [\n ...existing.children.slice(0, childIndex),\n ...existing.children.slice(childIndex + 1)\n ]\n };\n }\n\n return existing;\n });\n },\n setMenu(name: string, updater: MenuUpdater) {\n (menu || navigation).setMenu(props.name, existing => {\n if (!existing) {\n existing = createEmptyMenu(props.name);\n }\n\n const subItems = existing.children;\n\n const childIndex = subItems.findIndex(ch => ch.name === name);\n if (childIndex === -1) {\n return {\n ...existing,\n children: [...subItems, updater(null)].filter(Boolean) as MenuData[]\n };\n }\n\n return {\n ...existing,\n children: [\n ...subItems.slice(0, childIndex),\n updater(subItems[childIndex]),\n ...subItems.slice(childIndex + 1)\n ].filter(Boolean) as MenuData[]\n };\n });\n }\n };\n\n if (!children) {\n return null;\n }\n\n return <MenuContext.Provider value={context}>{children}</MenuContext.Provider>;\n};\n\nAddMenu.defaultProps = { tags: [] };\n"],"mappings":"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"}
1
+ {"version":3,"names":["MenuContext","createContext","undefined","displayName","useMenu","useContext","createEmptyMenu","name","tags","children","keys","mergeMenuItems","item1","item2","reduce","map","key","acc","menu","index","findIndex","i","push","AddMenu","props","navigation","useNavigation","useEffect","setMenu","existing","removeMenu","context","menuItem","childIndex","ch","slice","updater","subItems","filter","Boolean","defaultProps"],"sources":["Menu.tsx"],"sourcesContent":["import React, { createContext, useContext, useEffect } from \"react\";\nimport { useNavigation } from \"~/index\";\n\nexport interface MenuUpdater {\n (menuItem: MenuData | undefined | null): MenuData | undefined;\n}\n\nexport interface MenuContext {\n menuItem: MenuData | null;\n setMenu(id: string, updater: MenuUpdater): void;\n removeMenu(id: string): void;\n}\n\nconst MenuContext = createContext<MenuContext | undefined>(undefined);\nMenuContext.displayName = \"MenuContext\";\n\nconst useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport interface MenuProps {\n name: string;\n label?: string;\n path?: string;\n icon?: JSX.Element;\n onClick?: () => void;\n testId?: string;\n tags?: string[];\n target?: string;\n rel?: string;\n element?: JSX.Element;\n children?: React.ReactNode | React.ReactNode[];\n pin?: \"first\" | \"last\";\n}\n\nexport interface MenuData extends MenuProps {\n children: MenuData[];\n}\n\nexport const createEmptyMenu = (name: string): MenuData => {\n return {\n name,\n tags: [],\n children: []\n };\n};\n\nconst keys: (keyof MenuData)[] = [\n \"label\",\n \"path\",\n \"icon\",\n \"onClick\",\n \"testId\",\n \"tags\",\n \"target\",\n \"rel\",\n \"element\",\n \"pin\"\n];\n\nconst mergeMenuItems = (item1: MenuData, item2: MenuData): MenuData => {\n return {\n ...item1,\n ...keys.reduce((map, key) => ({ ...map, [key]: item2[key] ?? item1[key] }), {}),\n children: (item2.children || []).reduce(\n (acc, menu) => {\n const index = acc.findIndex(i => i.name === menu.name);\n if (index > -1) {\n acc[index] = mergeMenuItems(acc[index], menu);\n } else {\n acc.push(menu);\n }\n return acc;\n },\n [...item1.children]\n )\n };\n};\n\n/**\n * Register a new menu item into the Admin app.\n */\nexport const AddMenu: React.FC<MenuProps> = ({ children, ...props }) => {\n const menu = useMenu();\n const navigation = useNavigation();\n\n useEffect(() => {\n if (menu) {\n menu.setMenu(props.name, existing => {\n if (!existing) {\n return { ...props, children: [] } as MenuData;\n }\n\n return mergeMenuItems(existing, props as MenuData);\n });\n } else {\n navigation.setMenu(props.name, existing => {\n /**\n * We return props because this will break otherwise.\n * TODO @pavel check if this is correct\n */\n if (!existing) {\n return props as MenuData;\n }\n return mergeMenuItems(existing, props as MenuData);\n });\n }\n\n return () => {\n if (menu) {\n menu.removeMenu(props.name);\n } else {\n navigation.removeMenu(props.name);\n }\n };\n }, []);\n\n const context: MenuContext = {\n menuItem: { ...props, children: [] },\n removeMenu(name) {\n (menu || navigation).setMenu(props.name, existing => {\n if (!existing) {\n return undefined;\n }\n\n const childIndex = existing.children.findIndex(ch => ch.name === name);\n if (childIndex > -1) {\n return {\n ...existing,\n children: [\n ...existing.children.slice(0, childIndex),\n ...existing.children.slice(childIndex + 1)\n ]\n };\n }\n\n return existing;\n });\n },\n setMenu(name: string, updater: MenuUpdater) {\n (menu || navigation).setMenu(props.name, existing => {\n if (!existing) {\n existing = createEmptyMenu(props.name);\n }\n\n const subItems = existing.children;\n\n const childIndex = subItems.findIndex(ch => ch.name === name);\n if (childIndex === -1) {\n return {\n ...existing,\n children: [...subItems, updater(null)].filter(Boolean) as MenuData[]\n };\n }\n\n return {\n ...existing,\n children: [\n ...subItems.slice(0, childIndex),\n updater(subItems[childIndex]),\n ...subItems.slice(childIndex + 1)\n ].filter(Boolean) as MenuData[]\n };\n });\n }\n };\n\n if (!children) {\n return null;\n }\n\n return <MenuContext.Provider value={context}>{children}</MenuContext.Provider>;\n};\n\nAddMenu.defaultProps = { tags: [] };\n"],"mappings":"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"}