@webiny/app 5.43.3 → 6.0.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 (177) hide show
  1. package/App.d.ts +5 -12
  2. package/App.js +70 -84
  3. package/App.js.map +1 -1
  4. package/AppContainer.d.ts +23 -0
  5. package/AppContainer.js +9 -0
  6. package/AppContainer.js.map +1 -0
  7. package/apollo-client/InMemoryCache.d.ts +3 -2
  8. package/apollo-client/InMemoryCache.js +16 -47
  9. package/apollo-client/InMemoryCache.js.map +1 -1
  10. package/apollo-client/IntrospectionFragmentMatcher.d.ts +2 -2
  11. package/apollo-client/IntrospectionFragmentMatcher.js +33 -50
  12. package/apollo-client/IntrospectionFragmentMatcher.js.map +1 -1
  13. package/components/Image.d.ts +1 -1
  14. package/components/Image.js +11 -19
  15. package/components/Image.js.map +1 -1
  16. package/components/Routes.js +13 -23
  17. package/components/Routes.js.map +1 -1
  18. package/components/View.js +14 -26
  19. package/components/View.js.map +1 -1
  20. package/components/index.js +2 -19
  21. package/components/index.js.map +1 -1
  22. package/config/RouterConfig/Route.d.ts +30 -0
  23. package/config/RouterConfig/Route.js +42 -0
  24. package/config/RouterConfig/Route.js.map +1 -0
  25. package/config/RouterConfig.d.ts +32 -0
  26. package/config/RouterConfig.js +18 -0
  27. package/config/RouterConfig.js.map +1 -0
  28. package/config.js +9 -15
  29. package/config.js.map +1 -1
  30. package/contexts/Ui/index.js +28 -52
  31. package/contexts/Ui/index.js.map +1 -1
  32. package/core/DebounceRender.js +13 -24
  33. package/core/DebounceRender.js.map +1 -1
  34. package/core/Plugin.d.ts +1 -1
  35. package/core/Plugin.js +11 -19
  36. package/core/Plugin.js.map +1 -1
  37. package/core/Plugins.js +18 -24
  38. package/core/Plugins.js.map +1 -1
  39. package/core/Provider.d.ts +1 -1
  40. package/core/Provider.js +9 -13
  41. package/core/Provider.js.map +1 -1
  42. package/core/Routes.js +14 -23
  43. package/core/Routes.js.map +1 -1
  44. package/core/createProvider.d.ts +2 -2
  45. package/core/createProvider.js +1 -7
  46. package/core/createProvider.js.map +1 -1
  47. package/core/createProviderPlugin.d.ts +1 -1
  48. package/core/createProviderPlugin.js +4 -10
  49. package/core/createProviderPlugin.js.map +1 -1
  50. package/hooks/useAutocomplete/index.js +1 -12
  51. package/hooks/useAutocomplete/index.js.map +1 -1
  52. package/hooks/useAutocomplete/useAutocomplete.d.ts +1 -1
  53. package/hooks/useAutocomplete/useAutocomplete.js +9 -16
  54. package/hooks/useAutocomplete/useAutocomplete.js.map +1 -1
  55. package/hooks/useDataList/functions/getData.js +2 -11
  56. package/hooks/useDataList/functions/getData.js.map +1 -1
  57. package/hooks/useDataList/functions/getError.js +2 -11
  58. package/hooks/useDataList/functions/getError.js.map +1 -1
  59. package/hooks/useDataList/functions/getMeta.js +2 -11
  60. package/hooks/useDataList/functions/getMeta.js.map +1 -1
  61. package/hooks/useDataList/functions/index.js +3 -27
  62. package/hooks/useDataList/functions/index.js.map +1 -1
  63. package/hooks/useDataList/functions/searchDataByKey.js +4 -10
  64. package/hooks/useDataList/functions/searchDataByKey.js.map +1 -1
  65. package/hooks/useDataList/index.js +1 -12
  66. package/hooks/useDataList/index.js.map +1 -1
  67. package/hooks/useDataList/useDataList.d.ts +2 -2
  68. package/hooks/useDataList/useDataList.js +78 -78
  69. package/hooks/useDataList/useDataList.js.map +1 -1
  70. package/hooks/useDataList/utils/index.js +2 -20
  71. package/hooks/useDataList/utils/index.js.map +1 -1
  72. package/hooks/useDataList/utils/prepareLoadListParams.js +9 -15
  73. package/hooks/useDataList/utils/prepareLoadListParams.js.map +1 -1
  74. package/hooks/useDataList/utils/redirectToRouteWithQueryParams.js +10 -14
  75. package/hooks/useDataList/utils/redirectToRouteWithQueryParams.js.map +1 -1
  76. package/hooks/useDataList/utils/types.js +1 -5
  77. package/hooks/useHandler.js +7 -12
  78. package/hooks/useHandler.js.map +1 -1
  79. package/hooks/useHandlers.js +11 -17
  80. package/hooks/useHandlers.js.map +1 -1
  81. package/hooks/useRegisterLegacyPlugin.js +5 -11
  82. package/hooks/useRegisterLegacyPlugin.js.map +1 -1
  83. package/hooks/useUi.d.ts +1 -1
  84. package/hooks/useUi.js +4 -10
  85. package/hooks/useUi.js.map +1 -1
  86. package/i18n/i18n.js +5 -13
  87. package/i18n/i18n.js.map +1 -1
  88. package/i18n/index.js +1 -13
  89. package/i18n/index.js.map +1 -1
  90. package/index.d.ts +2 -2
  91. package/index.js +17 -177
  92. package/index.js.map +1 -1
  93. package/package.json +10 -9
  94. package/plugins/AddQuerySelectionPlugin.d.ts +1 -1
  95. package/plugins/AddQuerySelectionPlugin.js +61 -107
  96. package/plugins/AddQuerySelectionPlugin.js.map +1 -1
  97. package/plugins/ApolloCacheObjectIdPlugin.js +12 -31
  98. package/plugins/ApolloCacheObjectIdPlugin.js.map +1 -1
  99. package/plugins/ApolloDynamicLink.d.ts +3 -2
  100. package/plugins/ApolloDynamicLink.js +19 -46
  101. package/plugins/ApolloDynamicLink.js.map +1 -1
  102. package/plugins/ApolloLinkPlugin.d.ts +1 -1
  103. package/plugins/ApolloLinkPlugin.js +18 -37
  104. package/plugins/ApolloLinkPlugin.js.map +1 -1
  105. package/plugins/ConsoleLinkPlugin.js +20 -41
  106. package/plugins/ConsoleLinkPlugin.js.map +1 -1
  107. package/plugins/LocaleHeaderLinkPlugin.d.ts +1 -1
  108. package/plugins/LocaleHeaderLinkPlugin.js +23 -40
  109. package/plugins/LocaleHeaderLinkPlugin.js.map +1 -1
  110. package/plugins/NetworkErrorLinkPlugin/ErrorOverlay.js +39 -51
  111. package/plugins/NetworkErrorLinkPlugin/ErrorOverlay.js.map +1 -1
  112. package/plugins/NetworkErrorLinkPlugin/StyledComponents.js +68 -12
  113. package/plugins/NetworkErrorLinkPlugin/StyledComponents.js.map +1 -1
  114. package/plugins/NetworkErrorLinkPlugin/createErrorOverlay.d.ts +1 -1
  115. package/plugins/NetworkErrorLinkPlugin/createErrorOverlay.js +12 -18
  116. package/plugins/NetworkErrorLinkPlugin/createErrorOverlay.js.map +1 -1
  117. package/plugins/NetworkErrorLinkPlugin.js +23 -40
  118. package/plugins/NetworkErrorLinkPlugin.js.map +1 -1
  119. package/plugins/OmitTypenameLinkPlugin.js +11 -30
  120. package/plugins/OmitTypenameLinkPlugin.js.map +1 -1
  121. package/plugins/RoutePlugin.d.ts +1 -1
  122. package/plugins/RoutePlugin.js +12 -31
  123. package/plugins/RoutePlugin.js.map +1 -1
  124. package/plugins/TenantHeaderLinkPlugin.d.ts +1 -1
  125. package/plugins/TenantHeaderLinkPlugin.js +30 -47
  126. package/plugins/TenantHeaderLinkPlugin.js.map +1 -1
  127. package/plugins/ViewPlugin.d.ts +1 -1
  128. package/plugins/ViewPlugin.js +15 -36
  129. package/plugins/ViewPlugin.js.map +1 -1
  130. package/plugins/image.d.ts +1 -1
  131. package/plugins/image.js +46 -53
  132. package/plugins/image.js.map +1 -1
  133. package/plugins/index.d.ts +2 -2
  134. package/plugins/index.js +31 -53
  135. package/plugins/index.js.map +1 -1
  136. package/react-butterfiles/Files.js +208 -235
  137. package/react-butterfiles/Files.js.map +1 -1
  138. package/react-butterfiles/index.js +2 -8
  139. package/react-butterfiles/index.js.map +1 -1
  140. package/react-butterfiles/utils/generateId.js +1 -7
  141. package/react-butterfiles/utils/generateId.js.map +1 -1
  142. package/react-butterfiles/utils/readFileContent.js +4 -10
  143. package/react-butterfiles/utils/readFileContent.js.map +1 -1
  144. package/renderApp.d.ts +1 -1
  145. package/renderApp.js +4 -11
  146. package/renderApp.js.map +1 -1
  147. package/types.d.ts +3 -3
  148. package/types.js +11 -11
  149. package/types.js.map +1 -1
  150. package/utils/createGenericContext.js +13 -22
  151. package/utils/createGenericContext.js.map +1 -1
  152. package/utils/createHashing.js +9 -15
  153. package/utils/createHashing.js.map +1 -1
  154. package/utils/getApiUrl.js +1 -8
  155. package/utils/getApiUrl.js.map +1 -1
  156. package/utils/getGqlApiUrl.js +3 -9
  157. package/utils/getGqlApiUrl.js.map +1 -1
  158. package/utils/getHeadlessCmsGqlApiUrl.js +7 -13
  159. package/utils/getHeadlessCmsGqlApiUrl.js.map +1 -1
  160. package/utils/getLocaleCode.js +6 -16
  161. package/utils/getLocaleCode.js.map +1 -1
  162. package/utils/getPrerenderId.js +1 -7
  163. package/utils/getPrerenderId.js.map +1 -1
  164. package/utils/getTenantId.js +7 -13
  165. package/utils/getTenantId.js.map +1 -1
  166. package/utils/index.js +10 -115
  167. package/utils/index.js.map +1 -1
  168. package/utils/isLocalhost.js +4 -12
  169. package/utils/isLocalhost.js.map +1 -1
  170. package/utils/isPrerendering.js +1 -7
  171. package/utils/isPrerendering.js.map +1 -1
  172. package/utils/legacyPluginToReactComponent.d.ts +1 -1
  173. package/utils/legacyPluginToReactComponent.js +5 -11
  174. package/utils/legacyPluginToReactComponent.js.map +1 -1
  175. package/core/AddRoute.d.ts +0 -21
  176. package/core/AddRoute.js +0 -21
  177. package/core/AddRoute.js.map +0 -1
package/plugins/image.js CHANGED
@@ -1,24 +1,14 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
- var _react = _interopRequireDefault(require("react"));
11
- var _Image = require("@webiny/ui/Image");
12
- var _excluded = ["transform", "srcSet"];
13
- var SUPPORTED_IMAGE_RESIZE_WIDTHS = [100, 300, 500, 750, 1000, 1500, 2500];
1
+ import React from "react";
2
+ import { Image } from "@webiny/ui/Image";
3
+ const SUPPORTED_IMAGE_RESIZE_WIDTHS = [100, 300, 500, 750, 1000, 1500, 2500];
14
4
 
15
5
  /**
16
6
  * Width of the image should not be just any random number. For optimization reasons,
17
7
  * we only allow the ones listed in SUPPORTED_IMAGE_RESIZE_WIDTHS list (Webiny Cloud supports only these).
18
8
  */
19
- var getSupportedImageResizeWidth = function getSupportedImageResizeWidth(width) {
20
- var output = SUPPORTED_IMAGE_RESIZE_WIDTHS[0];
21
- var i = SUPPORTED_IMAGE_RESIZE_WIDTHS.length;
9
+ const getSupportedImageResizeWidth = width => {
10
+ let output = SUPPORTED_IMAGE_RESIZE_WIDTHS[0];
11
+ let i = SUPPORTED_IMAGE_RESIZE_WIDTHS.length;
22
12
  while (i >= 0) {
23
13
  if (width === SUPPORTED_IMAGE_RESIZE_WIDTHS[i]) {
24
14
  output = SUPPORTED_IMAGE_RESIZE_WIDTHS[i];
@@ -40,37 +30,37 @@ var getSupportedImageResizeWidth = function getSupportedImageResizeWidth(width)
40
30
  * Currently we only allow "width" as a transform option.
41
31
  * @param args
42
32
  */
43
- var sanitizeTransformArgs = function sanitizeTransformArgs(args) {
44
- var output = {};
33
+ const sanitizeTransformArgs = args => {
34
+ const output = {};
45
35
  if (!args || args.width === undefined || args.width === null) {
46
36
  return output;
47
37
  }
48
- var width = parseInt(args.width);
38
+ const width = parseInt(args.width);
49
39
  if (width > 0) {
50
40
  output.width = getSupportedImageResizeWidth(width);
51
41
  }
52
42
  return output;
53
43
  };
54
- var getSizes = function getSizes(width) {
44
+ const getSizes = width => {
55
45
  if (typeof width !== "string") {
56
46
  return undefined;
57
47
  }
58
48
  // Check if width was set as percentage, with "%" in the value.
59
49
  if (width.endsWith("%")) {
60
- return "".concat(parseInt(width), "vw");
50
+ return `${parseInt(width)}vw`;
61
51
  }
62
52
  // Check if width was set as viewport width, with "vw" in the value.
63
53
  if (width.endsWith("vw")) {
64
- return "".concat(parseInt(width), "vw");
54
+ return `${parseInt(width)}vw`;
65
55
  }
66
56
 
67
57
  // Check if width was set as relative, with "em" in the value.
68
58
  if (width.endsWith("em")) {
69
- return "".concat(parseInt(width), "em");
59
+ return `${parseInt(width)}em`;
70
60
  }
71
61
  return undefined;
72
62
  };
73
- var isFixedImageWidth = function isFixedImageWidth(width) {
63
+ const isFixedImageWidth = width => {
74
64
  if (Number.isFinite(width)) {
75
65
  return true;
76
66
  }
@@ -79,20 +69,18 @@ var isFixedImageWidth = function isFixedImageWidth(width) {
79
69
  }
80
70
  return false;
81
71
  };
82
- var getSrcSetAutoSizes = function getSrcSetAutoSizes(max) {
72
+ const getSrcSetAutoSizes = max => {
83
73
  max = isFixedImageWidth(max) ? parseInt("" + max) : 2500;
84
- var maxWidth = getSupportedImageResizeWidth(max);
85
- return SUPPORTED_IMAGE_RESIZE_WIDTHS.filter(function (supportedWidth) {
74
+ const maxWidth = getSupportedImageResizeWidth(max);
75
+ return SUPPORTED_IMAGE_RESIZE_WIDTHS.filter(supportedWidth => {
86
76
  return supportedWidth <= maxWidth;
87
77
  });
88
78
  };
89
- var convertTransformToQueryParams = function convertTransformToQueryParams(transform) {
90
- return Object.keys(transform).map(function (key) {
91
- return "".concat(key, "=").concat(transform[key]);
92
- }).join("&");
79
+ const convertTransformToQueryParams = transform => {
80
+ return Object.keys(transform).map(key => `${key}=${transform[key]}`).join("&");
93
81
  };
94
- var _default = exports.default = function _default() {
95
- var imagePlugin = {
82
+ export default () => {
83
+ const imagePlugin = {
96
84
  name: "image-component",
97
85
  type: "image-component",
98
86
  presets: {
@@ -100,46 +88,51 @@ var _default = exports.default = function _default() {
100
88
  width: 300
101
89
  }
102
90
  },
103
- getImageSrc: function getImageSrc(props) {
91
+ getImageSrc: props => {
104
92
  if (!props) {
105
93
  return "";
106
94
  }
107
- var src = props.src,
108
- transform = props.transform;
95
+ const {
96
+ src,
97
+ transform
98
+ } = props;
109
99
  if (!transform) {
110
100
  return src;
111
101
  }
112
102
  if (!src || src.startsWith("data:") || src.endsWith("svg")) {
113
103
  return src;
114
104
  }
115
- var sanitizedParams = sanitizeTransformArgs(transform);
116
- var params = convertTransformToQueryParams(sanitizedParams);
105
+ const sanitizedParams = sanitizeTransformArgs(transform);
106
+ const params = convertTransformToQueryParams(sanitizedParams);
117
107
  return src + "?" + params;
118
108
  },
119
- render: function render(props) {
120
- var transform = props.transform,
121
- srcSetInitial = props.srcSet,
122
- imageProps = (0, _objectWithoutProperties2.default)(props, _excluded);
123
- var srcSet = srcSetInitial;
124
- var sizes;
125
- var src = imageProps.src;
109
+ render(props) {
110
+ const {
111
+ transform,
112
+ srcSet: srcSetInitial,
113
+ ...imageProps
114
+ } = props;
115
+ let srcSet = srcSetInitial;
116
+ let sizes;
117
+ const src = imageProps.src;
126
118
  if (srcSet && srcSet === "auto") {
127
119
  srcSet = {};
128
120
 
129
121
  // Check if image width was forced, and additionally if width was set as pixels, with "px" in the value.
130
- var forcedWidth = props.width || props.style && props.style.width;
131
- var srcSetAutoWidths = getSrcSetAutoSizes(forcedWidth);
132
- srcSetAutoWidths.forEach(function (width) {
122
+ const forcedWidth = props.width || props.style && props.style.width;
123
+ const srcSetAutoWidths = getSrcSetAutoSizes(forcedWidth);
124
+ srcSetAutoWidths.forEach(width => {
133
125
  srcSet[width + "w"] = imagePlugin.getImageSrc({
134
- src: src,
135
- transform: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, transform), {}, {
136
- width: width
137
- })
126
+ src,
127
+ transform: {
128
+ ...transform,
129
+ width
130
+ }
138
131
  });
139
132
  });
140
133
  sizes = getSizes(forcedWidth);
141
134
  }
142
- return /*#__PURE__*/_react.default.createElement(_Image.Image, Object.assign({}, imageProps, {
135
+ return /*#__PURE__*/React.createElement(Image, Object.assign({}, imageProps, {
143
136
  srcSet: srcSet,
144
137
  src: src,
145
138
  sizes: sizes
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_Image","_excluded","SUPPORTED_IMAGE_RESIZE_WIDTHS","getSupportedImageResizeWidth","width","output","i","length","sanitizeTransformArgs","args","undefined","parseInt","getSizes","endsWith","concat","isFixedImageWidth","Number","isFinite","getSrcSetAutoSizes","max","maxWidth","filter","supportedWidth","convertTransformToQueryParams","transform","Object","keys","map","key","join","_default","exports","default","imagePlugin","name","type","presets","avatar","getImageSrc","props","src","startsWith","sanitizedParams","params","render","srcSetInitial","srcSet","imageProps","_objectWithoutProperties2","sizes","forcedWidth","style","srcSetAutoWidths","forEach","_objectSpread2","createElement","Image","assign"],"sources":["image.tsx"],"sourcesContent":["import React from \"react\";\nimport { Image } from \"@webiny/ui/Image\";\nimport { ImageComponentPlugin } from \"~/types\";\n\nconst SUPPORTED_IMAGE_RESIZE_WIDTHS = [100, 300, 500, 750, 1000, 1500, 2500];\n\n/**\n * Width of the image should not be just any random number. For optimization reasons,\n * we only allow the ones listed in SUPPORTED_IMAGE_RESIZE_WIDTHS list (Webiny Cloud supports only these).\n */\nconst getSupportedImageResizeWidth = (width: number) => {\n let output = SUPPORTED_IMAGE_RESIZE_WIDTHS[0];\n let i = SUPPORTED_IMAGE_RESIZE_WIDTHS.length;\n while (i >= 0) {\n if (width === SUPPORTED_IMAGE_RESIZE_WIDTHS[i]) {\n output = SUPPORTED_IMAGE_RESIZE_WIDTHS[i];\n break;\n }\n\n if (width > SUPPORTED_IMAGE_RESIZE_WIDTHS[i]) {\n // Use next larger width. If there isn't any, use current.\n output = SUPPORTED_IMAGE_RESIZE_WIDTHS[i + 1];\n if (!output) {\n output = SUPPORTED_IMAGE_RESIZE_WIDTHS[i];\n }\n break;\n }\n\n i--;\n }\n\n return output;\n};\n\ninterface SanitizeTransformArgsParams {\n width?: string;\n}\ninterface SanitizeTransformArgsResult {\n width?: number;\n}\n/**\n * Currently we only allow \"width\" as a transform option.\n * @param args\n */\nconst sanitizeTransformArgs = (args?: SanitizeTransformArgsParams): SanitizeTransformArgsResult => {\n const output: SanitizeTransformArgsResult = {};\n if (!args || args.width === undefined || args.width === null) {\n return output;\n }\n const width = parseInt(args.width);\n if (width > 0) {\n output.width = getSupportedImageResizeWidth(width);\n }\n\n return output;\n};\n\nconst getSizes = (width?: string | number): string | undefined => {\n if (typeof width !== \"string\") {\n return undefined;\n }\n // Check if width was set as percentage, with \"%\" in the value.\n if (width.endsWith(\"%\")) {\n return `${parseInt(width)}vw`;\n }\n // Check if width was set as viewport width, with \"vw\" in the value.\n if (width.endsWith(\"vw\")) {\n return `${parseInt(width)}vw`;\n }\n\n // Check if width was set as relative, with \"em\" in the value.\n if (width.endsWith(\"em\")) {\n return `${parseInt(width)}em`;\n }\n\n return undefined;\n};\n\nconst isFixedImageWidth = (width?: number | string) => {\n if (Number.isFinite(width)) {\n return true;\n }\n\n if (typeof width === \"string\" && width.endsWith(\"px\")) {\n return true;\n }\n return false;\n};\n\nconst getSrcSetAutoSizes = (max?: string | number) => {\n max = isFixedImageWidth(max) ? parseInt(\"\" + max) : 2500;\n const maxWidth = getSupportedImageResizeWidth(max);\n return SUPPORTED_IMAGE_RESIZE_WIDTHS.filter((supportedWidth: number) => {\n return supportedWidth <= maxWidth;\n });\n};\n\nconst convertTransformToQueryParams = (transform: Record<string, any>): string => {\n return Object.keys(transform)\n .map(key => `${key}=${transform[key]}`)\n .join(\"&\");\n};\n\nexport default () => {\n const imagePlugin: ImageComponentPlugin = {\n name: \"image-component\",\n type: \"image-component\",\n presets: {\n avatar: { width: 300 }\n },\n getImageSrc: (props?: Record<string, any>) => {\n if (!props) {\n return \"\";\n }\n\n const { src, transform } = props;\n if (!transform) {\n return src;\n }\n\n if (!src || src.startsWith(\"data:\") || src.endsWith(\"svg\")) {\n return src;\n }\n\n const sanitizedParams = sanitizeTransformArgs(transform);\n const params = convertTransformToQueryParams(sanitizedParams);\n return src + \"?\" + params;\n },\n render(props) {\n const { transform, srcSet: srcSetInitial, ...imageProps } = props;\n let srcSet: any = srcSetInitial;\n let sizes: string | undefined;\n const src = imageProps.src;\n if (srcSet && srcSet === \"auto\") {\n srcSet = {};\n\n // Check if image width was forced, and additionally if width was set as pixels, with \"px\" in the value.\n const forcedWidth = props.width || (props.style && props.style.width);\n const srcSetAutoWidths = getSrcSetAutoSizes(forcedWidth);\n srcSetAutoWidths.forEach(width => {\n srcSet[width + \"w\"] = imagePlugin.getImageSrc({\n src,\n transform: { ...transform, width }\n });\n });\n sizes = getSizes(forcedWidth);\n }\n\n return <Image {...imageProps} srcSet={srcSet} src={src} sizes={sizes} />;\n }\n };\n\n return imagePlugin;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Image","SUPPORTED_IMAGE_RESIZE_WIDTHS","getSupportedImageResizeWidth","width","output","i","length","sanitizeTransformArgs","args","undefined","parseInt","getSizes","endsWith","isFixedImageWidth","Number","isFinite","getSrcSetAutoSizes","max","maxWidth","filter","supportedWidth","convertTransformToQueryParams","transform","Object","keys","map","key","join","imagePlugin","name","type","presets","avatar","getImageSrc","props","src","startsWith","sanitizedParams","params","render","srcSet","srcSetInitial","imageProps","sizes","forcedWidth","style","srcSetAutoWidths","forEach","createElement","assign"],"sources":["image.tsx"],"sourcesContent":["import React from \"react\";\nimport { Image } from \"@webiny/ui/Image\";\nimport type { ImageComponentPlugin } from \"~/types\";\n\nconst SUPPORTED_IMAGE_RESIZE_WIDTHS = [100, 300, 500, 750, 1000, 1500, 2500];\n\n/**\n * Width of the image should not be just any random number. For optimization reasons,\n * we only allow the ones listed in SUPPORTED_IMAGE_RESIZE_WIDTHS list (Webiny Cloud supports only these).\n */\nconst getSupportedImageResizeWidth = (width: number) => {\n let output = SUPPORTED_IMAGE_RESIZE_WIDTHS[0];\n let i = SUPPORTED_IMAGE_RESIZE_WIDTHS.length;\n while (i >= 0) {\n if (width === SUPPORTED_IMAGE_RESIZE_WIDTHS[i]) {\n output = SUPPORTED_IMAGE_RESIZE_WIDTHS[i];\n break;\n }\n\n if (width > SUPPORTED_IMAGE_RESIZE_WIDTHS[i]) {\n // Use next larger width. If there isn't any, use current.\n output = SUPPORTED_IMAGE_RESIZE_WIDTHS[i + 1];\n if (!output) {\n output = SUPPORTED_IMAGE_RESIZE_WIDTHS[i];\n }\n break;\n }\n\n i--;\n }\n\n return output;\n};\n\ninterface SanitizeTransformArgsParams {\n width?: string;\n}\ninterface SanitizeTransformArgsResult {\n width?: number;\n}\n/**\n * Currently we only allow \"width\" as a transform option.\n * @param args\n */\nconst sanitizeTransformArgs = (args?: SanitizeTransformArgsParams): SanitizeTransformArgsResult => {\n const output: SanitizeTransformArgsResult = {};\n if (!args || args.width === undefined || args.width === null) {\n return output;\n }\n const width = parseInt(args.width);\n if (width > 0) {\n output.width = getSupportedImageResizeWidth(width);\n }\n\n return output;\n};\n\nconst getSizes = (width?: string | number): string | undefined => {\n if (typeof width !== \"string\") {\n return undefined;\n }\n // Check if width was set as percentage, with \"%\" in the value.\n if (width.endsWith(\"%\")) {\n return `${parseInt(width)}vw`;\n }\n // Check if width was set as viewport width, with \"vw\" in the value.\n if (width.endsWith(\"vw\")) {\n return `${parseInt(width)}vw`;\n }\n\n // Check if width was set as relative, with \"em\" in the value.\n if (width.endsWith(\"em\")) {\n return `${parseInt(width)}em`;\n }\n\n return undefined;\n};\n\nconst isFixedImageWidth = (width?: number | string) => {\n if (Number.isFinite(width)) {\n return true;\n }\n\n if (typeof width === \"string\" && width.endsWith(\"px\")) {\n return true;\n }\n return false;\n};\n\nconst getSrcSetAutoSizes = (max?: string | number) => {\n max = isFixedImageWidth(max) ? parseInt(\"\" + max) : 2500;\n const maxWidth = getSupportedImageResizeWidth(max);\n return SUPPORTED_IMAGE_RESIZE_WIDTHS.filter((supportedWidth: number) => {\n return supportedWidth <= maxWidth;\n });\n};\n\nconst convertTransformToQueryParams = (transform: Record<string, any>): string => {\n return Object.keys(transform)\n .map(key => `${key}=${transform[key]}`)\n .join(\"&\");\n};\n\nexport default () => {\n const imagePlugin: ImageComponentPlugin = {\n name: \"image-component\",\n type: \"image-component\",\n presets: {\n avatar: { width: 300 }\n },\n getImageSrc: (props?: Record<string, any>) => {\n if (!props) {\n return \"\";\n }\n\n const { src, transform } = props;\n if (!transform) {\n return src;\n }\n\n if (!src || src.startsWith(\"data:\") || src.endsWith(\"svg\")) {\n return src;\n }\n\n const sanitizedParams = sanitizeTransformArgs(transform);\n const params = convertTransformToQueryParams(sanitizedParams);\n return src + \"?\" + params;\n },\n render(props) {\n const { transform, srcSet: srcSetInitial, ...imageProps } = props;\n let srcSet: any = srcSetInitial;\n let sizes: string | undefined;\n const src = imageProps.src;\n if (srcSet && srcSet === \"auto\") {\n srcSet = {};\n\n // Check if image width was forced, and additionally if width was set as pixels, with \"px\" in the value.\n const forcedWidth = props.width || (props.style && props.style.width);\n const srcSetAutoWidths = getSrcSetAutoSizes(forcedWidth);\n srcSetAutoWidths.forEach(width => {\n srcSet[width + \"w\"] = imagePlugin.getImageSrc({\n src,\n transform: { ...transform, width }\n });\n });\n sizes = getSizes(forcedWidth);\n }\n\n return <Image {...imageProps} srcSet={srcSet} src={src} sizes={sizes} />;\n }\n };\n\n return imagePlugin;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { ReactNode } from "react";
2
- import { Plugin } from "@webiny/plugins/types";
1
+ import type { ReactNode } from "react";
2
+ import type { Plugin } from "@webiny/plugins/types";
3
3
  import imagePlugin from "./image";
4
4
  export { imagePlugin };
5
5
  type RenderPluginOptions<T> = {
package/plugins/index.js CHANGED
@@ -1,65 +1,45 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- Object.defineProperty(exports, "imagePlugin", {
9
- enumerable: true,
10
- get: function get() {
11
- return _image.default;
12
- }
13
- });
14
- exports.renderPlugins = exports.renderPlugin = void 0;
15
- var _react = _interopRequireDefault(require("react"));
16
- var _warning = _interopRequireDefault(require("warning"));
17
- var _plugins = require("@webiny/plugins");
18
- var _image = _interopRequireDefault(require("./image"));
19
- var PluginComponent = function PluginComponent(props) {
1
+ import React from "react";
2
+ import warning from "warning";
3
+ import { plugins } from "@webiny/plugins";
4
+ import imagePlugin from "./image";
5
+ export { imagePlugin };
6
+ const PluginComponent = props => {
20
7
  return props.children;
21
8
  };
22
- var PluginsComponent = function PluginsComponent(props) {
9
+ const PluginsComponent = props => {
23
10
  return props.children;
24
11
  };
25
- var renderPlugin = exports.renderPlugin = function renderPlugin(name) {
26
- var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
27
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
28
- var _options$wrapper = options.wrapper,
29
- wrapper = _options$wrapper === void 0 ? true : _options$wrapper,
30
- _options$fn = options.fn,
31
- fn = _options$fn === void 0 ? "render" : _options$fn;
32
- var plugin = _plugins.plugins.byName(name);
33
- (0, _warning.default)(plugin, "No such plugin \"".concat(name, "\""));
12
+ export const renderPlugin = (name, params = {}, options = {}) => {
13
+ const {
14
+ wrapper = true,
15
+ fn = "render"
16
+ } = options;
17
+ const plugin = plugins.byName(name);
18
+ warning(plugin, `No such plugin "${name}"`);
34
19
  if (!plugin) {
35
20
  return null;
36
21
  }
37
- var content = plugin[fn](params);
22
+ const content = plugin[fn](params);
38
23
  if (content) {
39
- return wrapper ? /*#__PURE__*/_react.default.createElement(PluginComponent, {
24
+ return wrapper ? /*#__PURE__*/React.createElement(PluginComponent, {
40
25
  key: plugin.name,
41
26
  name: name,
42
27
  params: params,
43
28
  fn: fn
44
- }, content) : (/*#__PURE__*/_react.default.cloneElement(content, {
29
+ }, content) : (/*#__PURE__*/React.cloneElement(content, {
45
30
  key: plugin.name
46
31
  }));
47
32
  }
48
33
  return null;
49
34
  };
50
- var renderPlugins = exports.renderPlugins = function renderPlugins(type) {
51
- var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
52
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
53
- var _options$wrapper2 = options.wrapper,
54
- wrapper = _options$wrapper2 === void 0 ? true : _options$wrapper2,
55
- _options$fn2 = options.fn,
56
- fn = _options$fn2 === void 0 ? "render" : _options$fn2,
57
- _options$filter = options.filter,
58
- filter = _options$filter === void 0 ? function (v) {
59
- return v;
60
- } : _options$filter,
61
- reverse = options.reverse;
62
- var content = _plugins.plugins.byType(type).filter(function (pl) {
35
+ export const renderPlugins = (type, params = {}, options = {}) => {
36
+ const {
37
+ wrapper = true,
38
+ fn = "render",
39
+ filter = v => v,
40
+ reverse
41
+ } = options;
42
+ const content = plugins.byType(type).filter(pl => {
63
43
  /**
64
44
  * TODO @ts-refactor Problem with possibility of a different subtype.
65
45
  */
@@ -68,21 +48,19 @@ var renderPlugins = exports.renderPlugins = function renderPlugins(type) {
68
48
  })
69
49
  /**
70
50
  * We cast as string because renderPlugin checks for the plugin.name
71
- */.map(function (plugin) {
72
- return renderPlugin(plugin.name, params, {
73
- wrapper: wrapper,
74
- fn: fn
75
- });
76
- }).filter(Boolean);
51
+ */.map(plugin => renderPlugin(plugin.name, params, {
52
+ wrapper,
53
+ fn
54
+ })).filter(Boolean);
77
55
  if (reverse) {
78
56
  content.reverse();
79
57
  }
80
- return wrapper ? /*#__PURE__*/_react.default.createElement(PluginsComponent, {
58
+ return wrapper ? /*#__PURE__*/React.createElement(PluginsComponent, {
81
59
  type: type,
82
60
  params: params,
83
61
  fn: fn
84
62
  }, content) : content;
85
63
  };
86
- var _default = exports.default = [_image.default];
64
+ export default [imagePlugin];
87
65
 
88
66
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_warning","_plugins","_image","PluginComponent","props","children","PluginsComponent","renderPlugin","exports","name","params","arguments","length","undefined","options","_options$wrapper","wrapper","_options$fn","fn","plugin","plugins","byName","warning","concat","content","default","createElement","key","React","cloneElement","renderPlugins","type","_options$wrapper2","_options$fn2","_options$filter","filter","v","reverse","byType","pl","map","Boolean","_default","imagePlugin"],"sources":["index.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\nimport warning from \"warning\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Plugin } from \"@webiny/plugins/types\";\nimport imagePlugin from \"./image\";\n\nexport { imagePlugin };\n\ntype RenderPluginOptions<T> = {\n wrapper?: boolean;\n fn?: string;\n filter?: (value: T, index: number, array: T[]) => boolean;\n reverse?: boolean;\n};\n\ninterface RenderPlugin {\n <T extends Plugin = Plugin>(name: string, params?: any, options?: RenderPluginOptions<T>):\n | ReactNode\n | ReactNode[];\n}\n\ninterface RenderPlugins {\n <T extends Plugin = Plugin>(type: string, params?: any, options?: RenderPluginOptions<T>):\n | ReactNode\n | ReactNode[];\n}\n\ninterface PluginComponentProps {\n name: string;\n params: Record<string, any>;\n fn: string;\n children: React.ReactNode;\n}\nconst PluginComponent = (props: PluginComponentProps) => {\n return props.children as React.ReactElement;\n};\ninterface PluginsComponentProps {\n type: string;\n params: Record<string, any>;\n fn: string;\n children: React.ReactNode;\n}\nconst PluginsComponent = (props: PluginsComponentProps) => {\n return props.children as React.ReactElement;\n};\n\nexport const renderPlugin: RenderPlugin = (name, params = {}, options = {}) => {\n const { wrapper = true, fn = \"render\" } = options;\n\n const plugin = plugins.byName(name);\n warning(plugin, `No such plugin \"${name}\"`);\n\n if (!plugin) {\n return null;\n }\n\n const content = plugin[fn](params);\n if (content) {\n return wrapper ? (\n <PluginComponent key={plugin.name} name={name} params={params} fn={fn}>\n {content}\n </PluginComponent>\n ) : (\n React.cloneElement(content, { key: plugin.name })\n );\n }\n return null;\n};\n\nexport const renderPlugins: RenderPlugins = (type, params = {}, options = {}) => {\n const { wrapper = true, fn = \"render\", filter = v => v, reverse } = options;\n\n const content = plugins\n .byType(type)\n .filter(pl => {\n /**\n * TODO @ts-refactor Problem with possibility of a different subtype.\n */\n // @ts-expect-error\n return filter(pl);\n })\n /**\n * We cast as string because renderPlugin checks for the plugin.name\n */\n .map(plugin => renderPlugin(plugin.name as string, params, { wrapper, fn }))\n .filter(Boolean);\n\n if (reverse) {\n content.reverse();\n }\n\n return wrapper ? (\n <PluginsComponent type={type} params={params} fn={fn}>\n {content}\n </PluginsComponent>\n ) : (\n content\n );\n};\n\nexport default [imagePlugin];\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","warning","plugins","imagePlugin","PluginComponent","props","children","PluginsComponent","renderPlugin","name","params","options","wrapper","fn","plugin","byName","content","createElement","key","cloneElement","renderPlugins","type","filter","v","reverse","byType","pl","map","Boolean"],"sources":["index.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport React from \"react\";\nimport warning from \"warning\";\nimport { plugins } from \"@webiny/plugins\";\nimport type { Plugin } from \"@webiny/plugins/types\";\nimport imagePlugin from \"./image\";\n\nexport { imagePlugin };\n\ntype RenderPluginOptions<T> = {\n wrapper?: boolean;\n fn?: string;\n filter?: (value: T, index: number, array: T[]) => boolean;\n reverse?: boolean;\n};\n\ninterface RenderPlugin {\n <T extends Plugin = Plugin>(name: string, params?: any, options?: RenderPluginOptions<T>):\n | ReactNode\n | ReactNode[];\n}\n\ninterface RenderPlugins {\n <T extends Plugin = Plugin>(type: string, params?: any, options?: RenderPluginOptions<T>):\n | ReactNode\n | ReactNode[];\n}\n\ninterface PluginComponentProps {\n name: string;\n params: Record<string, any>;\n fn: string;\n children: React.ReactNode;\n}\nconst PluginComponent = (props: PluginComponentProps) => {\n return props.children as React.ReactElement;\n};\ninterface PluginsComponentProps {\n type: string;\n params: Record<string, any>;\n fn: string;\n children: React.ReactNode;\n}\nconst PluginsComponent = (props: PluginsComponentProps) => {\n return props.children as React.ReactElement;\n};\n\nexport const renderPlugin: RenderPlugin = (name, params = {}, options = {}) => {\n const { wrapper = true, fn = \"render\" } = options;\n\n const plugin = plugins.byName(name);\n warning(plugin, `No such plugin \"${name}\"`);\n\n if (!plugin) {\n return null;\n }\n\n const content = plugin[fn](params);\n if (content) {\n return wrapper ? (\n <PluginComponent key={plugin.name} name={name} params={params} fn={fn}>\n {content}\n </PluginComponent>\n ) : (\n React.cloneElement(content, { key: plugin.name })\n );\n }\n return null;\n};\n\nexport const renderPlugins: RenderPlugins = (type, params = {}, options = {}) => {\n const { wrapper = true, fn = \"render\", filter = v => v, reverse } = options;\n\n const content = plugins\n .byType(type)\n .filter(pl => {\n /**\n * TODO @ts-refactor Problem with possibility of a different subtype.\n */\n // @ts-expect-error\n return filter(pl);\n })\n /**\n * We cast as string because renderPlugin checks for the plugin.name\n */\n .map(plugin => renderPlugin(plugin.name as string, params, { wrapper, fn }))\n .filter(Boolean);\n\n if (reverse) {\n content.reverse();\n }\n\n return wrapper ? (\n <PluginsComponent type={type} params={params} fn={fn}>\n {content}\n </PluginsComponent>\n ) : (\n content\n );\n};\n\nexport default [imagePlugin];\n"],"mappings":"AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,OAAO,MAAM,SAAS;AAC7B,SAASC,OAAO,QAAQ,iBAAiB;AAEzC,OAAOC,WAAW;AAElB,SAASA,WAAW;AA2BpB,MAAMC,eAAe,GAAIC,KAA2B,IAAK;EACrD,OAAOA,KAAK,CAACC,QAAQ;AACzB,CAAC;AAOD,MAAMC,gBAAgB,GAAIF,KAA4B,IAAK;EACvD,OAAOA,KAAK,CAACC,QAAQ;AACzB,CAAC;AAED,OAAO,MAAME,YAA0B,GAAGA,CAACC,IAAI,EAAEC,MAAM,GAAG,CAAC,CAAC,EAAEC,OAAO,GAAG,CAAC,CAAC,KAAK;EAC3E,MAAM;IAAEC,OAAO,GAAG,IAAI;IAAEC,EAAE,GAAG;EAAS,CAAC,GAAGF,OAAO;EAEjD,MAAMG,MAAM,GAAGZ,OAAO,CAACa,MAAM,CAACN,IAAI,CAAC;EACnCR,OAAO,CAACa,MAAM,EAAE,mBAAmBL,IAAI,GAAG,CAAC;EAE3C,IAAI,CAACK,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EAEA,MAAME,OAAO,GAAGF,MAAM,CAACD,EAAE,CAAC,CAACH,MAAM,CAAC;EAClC,IAAIM,OAAO,EAAE;IACT,OAAOJ,OAAO,gBACVZ,KAAA,CAAAiB,aAAA,CAACb,eAAe;MAACc,GAAG,EAAEJ,MAAM,CAACL,IAAK;MAACA,IAAI,EAAEA,IAAK;MAACC,MAAM,EAAEA,MAAO;MAACG,EAAE,EAAEA;IAAG,GACjEG,OACY,CAAC,iBAElBhB,KAAK,CAACmB,YAAY,CAACH,OAAO,EAAE;MAAEE,GAAG,EAAEJ,MAAM,CAACL;IAAK,CAAC,CAAC,CACpD;EACL;EACA,OAAO,IAAI;AACf,CAAC;AAED,OAAO,MAAMW,aAA4B,GAAGA,CAACC,IAAI,EAAEX,MAAM,GAAG,CAAC,CAAC,EAAEC,OAAO,GAAG,CAAC,CAAC,KAAK;EAC7E,MAAM;IAAEC,OAAO,GAAG,IAAI;IAAEC,EAAE,GAAG,QAAQ;IAAES,MAAM,GAAGC,CAAC,IAAIA,CAAC;IAAEC;EAAQ,CAAC,GAAGb,OAAO;EAE3E,MAAMK,OAAO,GAAGd,OAAO,CAClBuB,MAAM,CAACJ,IAAI,CAAC,CACZC,MAAM,CAACI,EAAE,IAAI;IACV;AACZ;AACA;IACY;IACA,OAAOJ,MAAM,CAACI,EAAE,CAAC;EACrB,CAAC;EACD;AACR;AACA,KAFQ,CAGCC,GAAG,CAACb,MAAM,IAAIN,YAAY,CAACM,MAAM,CAACL,IAAI,EAAYC,MAAM,EAAE;IAAEE,OAAO;IAAEC;EAAG,CAAC,CAAC,CAAC,CAC3ES,MAAM,CAACM,OAAO,CAAC;EAEpB,IAAIJ,OAAO,EAAE;IACTR,OAAO,CAACQ,OAAO,CAAC,CAAC;EACrB;EAEA,OAAOZ,OAAO,gBACVZ,KAAA,CAAAiB,aAAA,CAACV,gBAAgB;IAACc,IAAI,EAAEA,IAAK;IAACX,MAAM,EAAEA,MAAO;IAACG,EAAE,EAAEA;EAAG,GAChDG,OACa,CAAC,GAEnBA,OACH;AACL,CAAC;AAED,eAAe,CAACb,WAAW,CAAC","ignoreList":[]}