@webiny/app 0.0.0-unstable.fcdad0bc61 → 0.0.0-unstable.fdd9228b5d

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 (203) hide show
  1. package/App.d.ts +26 -0
  2. package/App.js +95 -0
  3. package/App.js.map +1 -0
  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 +17 -76
  9. package/apollo-client/InMemoryCache.js.map +1 -1
  10. package/apollo-client/IntrospectionFragmentMatcher.d.ts +11 -0
  11. package/apollo-client/IntrospectionFragmentMatcher.js +45 -0
  12. package/apollo-client/IntrospectionFragmentMatcher.js.map +1 -0
  13. package/components/Image.d.ts +3 -3
  14. package/components/Image.js +12 -32
  15. package/components/Image.js.map +1 -1
  16. package/components/Routes.d.ts +2 -2
  17. package/components/Routes.js +21 -34
  18. package/components/Routes.js.map +1 -1
  19. package/components/View.d.ts +1 -1
  20. package/components/View.js +15 -37
  21. package/components/View.js.map +1 -1
  22. package/components/index.js +3 -20
  23. package/components/index.js.map +1 -1
  24. package/config/RouterConfig/Route.d.ts +30 -0
  25. package/config/RouterConfig/Route.js +42 -0
  26. package/config/RouterConfig/Route.js.map +1 -0
  27. package/config/RouterConfig.d.ts +32 -0
  28. package/config/RouterConfig.js +18 -0
  29. package/config/RouterConfig.js.map +1 -0
  30. package/config.d.ts +1 -1
  31. package/config.js +8 -16
  32. package/config.js.map +1 -1
  33. package/contexts/Ui/index.d.ts +4 -8
  34. package/contexts/Ui/index.js +29 -89
  35. package/contexts/Ui/index.js.map +1 -1
  36. package/core/DebounceRender.d.ts +12 -0
  37. package/core/DebounceRender.js +31 -0
  38. package/core/DebounceRender.js.map +1 -0
  39. package/core/Plugin.d.ts +8 -0
  40. package/core/Plugin.js +14 -0
  41. package/core/Plugin.js.map +1 -0
  42. package/core/Plugins.d.ts +15 -0
  43. package/core/Plugins.js +39 -0
  44. package/core/Plugins.js.map +1 -0
  45. package/core/Provider.d.ts +8 -0
  46. package/core/Provider.js +18 -0
  47. package/core/Provider.js.map +1 -0
  48. package/core/Routes.d.ts +6 -0
  49. package/core/Routes.js +34 -0
  50. package/core/Routes.js.map +1 -0
  51. package/core/createProvider.d.ts +10 -0
  52. package/core/createProvider.js +9 -0
  53. package/core/createProvider.js.map +1 -0
  54. package/core/createProviderPlugin.d.ts +8 -0
  55. package/core/createProviderPlugin.js +17 -0
  56. package/core/createProviderPlugin.js.map +1 -0
  57. package/hooks/useAutocomplete/index.js +2 -12
  58. package/hooks/useAutocomplete/index.js.map +1 -1
  59. package/hooks/useAutocomplete/useAutocomplete.d.ts +1 -1
  60. package/hooks/useAutocomplete/useAutocomplete.js +10 -25
  61. package/hooks/useAutocomplete/useAutocomplete.js.map +1 -1
  62. package/hooks/useDataList/functions/getData.js +3 -15
  63. package/hooks/useDataList/functions/getData.js.map +1 -1
  64. package/hooks/useDataList/functions/getError.js +3 -15
  65. package/hooks/useDataList/functions/getError.js.map +1 -1
  66. package/hooks/useDataList/functions/getMeta.js +3 -15
  67. package/hooks/useDataList/functions/getMeta.js.map +1 -1
  68. package/hooks/useDataList/functions/index.js +4 -30
  69. package/hooks/useDataList/functions/index.js.map +1 -1
  70. package/hooks/useDataList/functions/searchDataByKey.js +5 -16
  71. package/hooks/useDataList/functions/searchDataByKey.js.map +1 -1
  72. package/hooks/useDataList/index.js +2 -12
  73. package/hooks/useDataList/index.js.map +1 -1
  74. package/hooks/useDataList/useDataList.d.ts +2 -2
  75. package/hooks/useDataList/useDataList.js +82 -107
  76. package/hooks/useDataList/useDataList.js.map +1 -1
  77. package/hooks/useDataList/utils/index.js +3 -22
  78. package/hooks/useDataList/utils/index.js.map +1 -1
  79. package/hooks/useDataList/utils/prepareLoadListParams.d.ts +1 -2
  80. package/hooks/useDataList/utils/prepareLoadListParams.js +33 -43
  81. package/hooks/useDataList/utils/prepareLoadListParams.js.map +1 -1
  82. package/hooks/useDataList/utils/redirectToRouteWithQueryParams.js +11 -16
  83. package/hooks/useDataList/utils/redirectToRouteWithQueryParams.js.map +1 -1
  84. package/hooks/useDataList/utils/types.d.ts +21 -15
  85. package/hooks/useDataList/utils/types.js +2 -4
  86. package/hooks/useDataList/utils/types.js.map +1 -1
  87. package/hooks/useHandler.js +13 -14
  88. package/hooks/useHandler.js.map +1 -1
  89. package/hooks/useHandlers.d.ts +3 -3
  90. package/hooks/useHandlers.js +14 -21
  91. package/hooks/useHandlers.js.map +1 -1
  92. package/hooks/useRegisterLegacyPlugin.d.ts +2 -0
  93. package/hooks/useRegisterLegacyPlugin.js +11 -0
  94. package/hooks/useRegisterLegacyPlugin.js.map +1 -0
  95. package/hooks/useUi.d.ts +1 -1
  96. package/hooks/useUi.js +5 -14
  97. package/hooks/useUi.js.map +1 -1
  98. package/i18n/i18n.js +6 -20
  99. package/i18n/i18n.js.map +1 -1
  100. package/i18n/index.js +2 -14
  101. package/i18n/index.js.map +1 -1
  102. package/index.d.ts +14 -1
  103. package/index.js +18 -35
  104. package/index.js.map +1 -1
  105. package/package.json +25 -30
  106. package/plugins/AddQuerySelectionPlugin.d.ts +9 -2
  107. package/plugins/AddQuerySelectionPlugin.js +64 -124
  108. package/plugins/AddQuerySelectionPlugin.js.map +1 -1
  109. package/plugins/ApolloCacheObjectIdPlugin.js +13 -50
  110. package/plugins/ApolloCacheObjectIdPlugin.js.map +1 -1
  111. package/plugins/ApolloDynamicLink.d.ts +3 -2
  112. package/plugins/ApolloDynamicLink.js +20 -72
  113. package/plugins/ApolloDynamicLink.js.map +1 -1
  114. package/plugins/ApolloLinkPlugin.d.ts +1 -1
  115. package/plugins/ApolloLinkPlugin.js +19 -60
  116. package/plugins/ApolloLinkPlugin.js.map +1 -1
  117. package/plugins/ConsoleLinkPlugin.js +21 -58
  118. package/plugins/ConsoleLinkPlugin.js.map +1 -1
  119. package/plugins/LocaleHeaderLinkPlugin.d.ts +1 -6
  120. package/plugins/LocaleHeaderLinkPlugin.js +24 -69
  121. package/plugins/LocaleHeaderLinkPlugin.js.map +1 -1
  122. package/plugins/NetworkErrorLinkPlugin/ErrorOverlay.d.ts +1 -1
  123. package/plugins/NetworkErrorLinkPlugin/ErrorOverlay.js +41 -72
  124. package/plugins/NetworkErrorLinkPlugin/ErrorOverlay.js.map +1 -1
  125. package/plugins/NetworkErrorLinkPlugin/StyledComponents.d.ts +8 -4
  126. package/plugins/NetworkErrorLinkPlugin/StyledComponents.js +76 -19
  127. package/plugins/NetworkErrorLinkPlugin/StyledComponents.js.map +1 -1
  128. package/plugins/NetworkErrorLinkPlugin/createErrorOverlay.d.ts +1 -1
  129. package/plugins/NetworkErrorLinkPlugin/createErrorOverlay.js +24 -31
  130. package/plugins/NetworkErrorLinkPlugin/createErrorOverlay.js.map +1 -1
  131. package/plugins/NetworkErrorLinkPlugin.js +24 -59
  132. package/plugins/NetworkErrorLinkPlugin.js.map +1 -1
  133. package/plugins/OmitTypenameLinkPlugin.js +13 -47
  134. package/plugins/OmitTypenameLinkPlugin.js.map +1 -1
  135. package/plugins/RoutePlugin.d.ts +1 -1
  136. package/plugins/RoutePlugin.js +13 -50
  137. package/plugins/RoutePlugin.js.map +1 -1
  138. package/plugins/TenantHeaderLinkPlugin.d.ts +1 -6
  139. package/plugins/TenantHeaderLinkPlugin.js +31 -77
  140. package/plugins/TenantHeaderLinkPlugin.js.map +1 -1
  141. package/plugins/ViewPlugin.d.ts +1 -1
  142. package/plugins/ViewPlugin.js +16 -55
  143. package/plugins/ViewPlugin.js.map +1 -1
  144. package/plugins/image.d.ts +1 -1
  145. package/plugins/image.js +55 -94
  146. package/plugins/image.js.map +1 -1
  147. package/plugins/index.d.ts +3 -3
  148. package/plugins/index.js +34 -78
  149. package/plugins/index.js.map +1 -1
  150. package/react-butterfiles/Files.d.ts +69 -0
  151. package/react-butterfiles/Files.js +227 -0
  152. package/react-butterfiles/Files.js.map +1 -0
  153. package/react-butterfiles/index.d.ts +2 -0
  154. package/react-butterfiles/index.js +4 -0
  155. package/react-butterfiles/index.js.map +1 -0
  156. package/react-butterfiles/utils/generateId.d.ts +1 -0
  157. package/react-butterfiles/utils/generateId.js +5 -0
  158. package/react-butterfiles/utils/generateId.js.map +1 -0
  159. package/react-butterfiles/utils/readFileContent.d.ts +1 -0
  160. package/react-butterfiles/utils/readFileContent.js +15 -0
  161. package/react-butterfiles/utils/readFileContent.js.map +1 -0
  162. package/renderApp.d.ts +2 -0
  163. package/renderApp.js +9 -0
  164. package/renderApp.js.map +1 -0
  165. package/types.d.ts +24 -27
  166. package/types.js +12 -11
  167. package/types.js.map +1 -1
  168. package/utils/createGenericContext.d.ts +13 -0
  169. package/utils/createGenericContext.js +25 -0
  170. package/utils/createGenericContext.js.map +1 -0
  171. package/utils/createHashing.d.ts +2 -0
  172. package/utils/createHashing.js +18 -0
  173. package/utils/createHashing.js.map +1 -0
  174. package/utils/getApiUrl.d.ts +1 -0
  175. package/utils/getApiUrl.js +5 -0
  176. package/utils/getApiUrl.js.map +1 -0
  177. package/utils/getGqlApiUrl.d.ts +1 -0
  178. package/utils/getGqlApiUrl.js +6 -0
  179. package/utils/getGqlApiUrl.js.map +1 -0
  180. package/utils/getHeadlessCmsGqlApiUrl.d.ts +5 -0
  181. package/utils/getHeadlessCmsGqlApiUrl.js +12 -0
  182. package/utils/getHeadlessCmsGqlApiUrl.js.map +1 -0
  183. package/utils/getLocaleCode.d.ts +6 -0
  184. package/utils/getLocaleCode.js +33 -0
  185. package/utils/getLocaleCode.js.map +1 -0
  186. package/utils/getPrerenderId.d.ts +6 -0
  187. package/utils/getPrerenderId.js +5 -0
  188. package/utils/getPrerenderId.js.map +1 -0
  189. package/utils/getTenantId.d.ts +6 -0
  190. package/utils/getTenantId.js +45 -0
  191. package/utils/getTenantId.js.map +1 -0
  192. package/utils/index.d.ts +10 -0
  193. package/utils/index.js +12 -0
  194. package/utils/index.js.map +1 -0
  195. package/utils/isLocalhost.d.ts +1 -0
  196. package/utils/isLocalhost.js +7 -0
  197. package/utils/isLocalhost.js.map +1 -0
  198. package/utils/isPrerendering.d.ts +1 -0
  199. package/utils/isPrerendering.js +5 -0
  200. package/utils/isPrerendering.js.map +1 -0
  201. package/utils/legacyPluginToReactComponent.d.ts +7 -0
  202. package/utils/legacyPluginToReactComponent.js +14 -0
  203. package/utils/legacyPluginToReactComponent.js.map +1 -0
@@ -1,53 +1,16 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.RoutePlugin = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
19
-
20
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
-
22
- var _plugins = require("@webiny/plugins");
23
-
24
- var RoutePlugin = /*#__PURE__*/function (_Plugin) {
25
- (0, _inherits2.default)(RoutePlugin, _Plugin);
26
-
27
- var _super = (0, _createSuper2.default)(RoutePlugin);
28
-
29
- function RoutePlugin(config) {
30
- var _this;
31
-
32
- (0, _classCallCheck2.default)(this, RoutePlugin);
33
- _this = _super.call(this);
34
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_config", void 0);
35
- _this._config = config || {};
36
- return _this;
1
+ import { Plugin } from "@webiny/plugins";
2
+ export class RoutePlugin extends Plugin {
3
+ static type = "route";
4
+ constructor(config) {
5
+ super();
6
+ this._config = config || {};
37
7
  }
38
-
39
- (0, _createClass2.default)(RoutePlugin, [{
40
- key: "route",
41
- get: function get() {
42
- if (!this._config.route) {
43
- return null;
44
- }
45
-
46
- return this._config.route;
8
+ get route() {
9
+ if (!this._config.route) {
10
+ return null;
47
11
  }
48
- }]);
49
- return RoutePlugin;
50
- }(_plugins.Plugin);
12
+ return this._config.route;
13
+ }
14
+ }
51
15
 
52
- exports.RoutePlugin = RoutePlugin;
53
- (0, _defineProperty2.default)(RoutePlugin, "type", "route");
16
+ //# sourceMappingURL=RoutePlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RoutePlugin","config","_config","route","Plugin"],"sources":["RoutePlugin.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Plugin } from \"@webiny/plugins\";\n\ninterface Config {\n route: React.ReactElement | null;\n}\n\nexport class RoutePlugin extends Plugin {\n public static override readonly type: string = \"route\";\n private _config: Partial<Config>;\n\n constructor(config?: Config) {\n super();\n this._config = config || {};\n }\n\n get route(): Config[\"route\"] {\n if (!this._config.route) {\n return null;\n }\n return this._config.route;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;IAMaA,W;;;;;EAIT,qBAAYC,MAAZ,EAA6B;IAAA;;IAAA;IACzB;IADyB;IAEzB,MAAKC,OAAL,GAAeD,MAAM,IAAI,EAAzB;IAFyB;EAG5B;;;;SAED,eAA6B;MACzB,IAAI,CAAC,KAAKC,OAAL,CAAaC,KAAlB,EAAyB;QACrB,OAAO,IAAP;MACH;;MACD,OAAO,KAAKD,OAAL,CAAaC,KAApB;IACH;;;EAd4BC,e;;;8BAApBJ,W,UACsC,O"}
1
+ {"version":3,"names":["Plugin","RoutePlugin","type","constructor","config","_config","route"],"sources":["RoutePlugin.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { Plugin } from \"@webiny/plugins\";\n\ninterface Config {\n route: React.ReactElement | null;\n}\n\nexport class RoutePlugin extends Plugin {\n public static override readonly type: string = \"route\";\n private _config: Partial<Config>;\n\n constructor(config?: Config) {\n super();\n this._config = config || {};\n }\n\n get route(): Config[\"route\"] {\n if (!this._config.route) {\n return null;\n }\n return this._config.route;\n }\n}\n"],"mappings":"AACA,SAASA,MAAM,QAAQ,iBAAiB;AAMxC,OAAO,MAAMC,WAAW,SAASD,MAAM,CAAC;EACpC,OAAgCE,IAAI,GAAW,OAAO;EAGtDC,WAAWA,CAACC,MAAe,EAAE;IACzB,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,OAAO,GAAGD,MAAM,IAAI,CAAC,CAAC;EAC/B;EAEA,IAAIE,KAAKA,CAAA,EAAoB;IACzB,IAAI,CAAC,IAAI,CAACD,OAAO,CAACC,KAAK,EAAE;MACrB,OAAO,IAAI;IACf;IACA,OAAO,IAAI,CAACD,OAAO,CAACC,KAAK;EAC7B;AACJ","ignoreList":[]}
@@ -1,10 +1,5 @@
1
1
  import { ApolloLinkPlugin } from "./ApolloLinkPlugin";
2
- import { ApolloLink } from "apollo-link";
3
- declare global {
4
- interface Window {
5
- __PS_RENDER_TENANT__: string;
6
- }
7
- }
2
+ import type { ApolloLink } from "apollo-link";
8
3
  /**
9
4
  * Append `x-tenant` header from URL query (necessary for prerendering service).
10
5
  */
@@ -1,85 +1,39 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.TenantHeaderLinkPlugin = void 0;
9
-
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
21
-
22
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
- var _apolloLinkContext = require("apollo-link-context");
25
-
26
- var _ApolloLinkPlugin2 = require("./ApolloLinkPlugin");
1
+ import { setContext } from "apollo-link-context";
2
+ import { ApolloLinkPlugin } from "./ApolloLinkPlugin";
3
+ import { getTenantId } from "../utils";
27
4
 
28
5
  /**
29
6
  * Append `x-tenant` header from URL query (necessary for prerendering service).
30
7
  */
31
- var TenantHeaderLinkPlugin = /*#__PURE__*/function (_ApolloLinkPlugin) {
32
- (0, _inherits2.default)(TenantHeaderLinkPlugin, _ApolloLinkPlugin);
33
-
34
- var _super = (0, _createSuper2.default)(TenantHeaderLinkPlugin);
35
-
36
- function TenantHeaderLinkPlugin(tenant) {
37
- var _this;
38
-
39
- (0, _classCallCheck2.default)(this, TenantHeaderLinkPlugin);
40
- _this = _super.call(this);
41
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "tenant", void 0);
42
- _this.name = "tenant-header-link";
43
-
44
- if (!tenant) {
45
- var query = new URLSearchParams(location.search);
46
- tenant = query.get("__tenant") || window.__PS_RENDER_TENANT__;
47
- }
48
-
49
- _this.tenant = tenant;
50
- return _this;
8
+ export class TenantHeaderLinkPlugin extends ApolloLinkPlugin {
9
+ constructor(tenant) {
10
+ super();
11
+ this.name = "tenant-header-link";
12
+ this.tenant = tenant || getTenantId();
51
13
  }
52
-
53
- (0, _createClass2.default)(TenantHeaderLinkPlugin, [{
54
- key: "createLink",
55
- value: function createLink() {
56
- var _this2 = this;
57
-
58
- return (0, _apolloLinkContext.setContext)(function (_, _ref) {
59
- var headers = _ref.headers;
60
-
61
- // If tenant header is already set, do not overwrite it.
62
- if (headers && "x-tenant" in headers) {
63
- return {
64
- headers: headers
65
- };
66
- }
67
-
68
- if (_this2.tenant) {
69
- return {
70
- headers: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, headers), {}, {
71
- "x-tenant": _this2.tenant
72
- })
73
- };
74
- }
75
-
14
+ createLink() {
15
+ return setContext((_, {
16
+ headers
17
+ }) => {
18
+ // If tenant header is already set, do not overwrite it.
19
+ if (headers && "x-tenant" in headers) {
76
20
  return {
77
- headers: headers
21
+ headers
78
22
  };
79
- });
80
- }
81
- }]);
82
- return TenantHeaderLinkPlugin;
83
- }(_ApolloLinkPlugin2.ApolloLinkPlugin);
23
+ }
24
+ if (this.tenant) {
25
+ return {
26
+ headers: {
27
+ ...headers,
28
+ "x-tenant": this.tenant
29
+ }
30
+ };
31
+ }
32
+ return {
33
+ headers
34
+ };
35
+ });
36
+ }
37
+ }
84
38
 
85
- exports.TenantHeaderLinkPlugin = TenantHeaderLinkPlugin;
39
+ //# sourceMappingURL=TenantHeaderLinkPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TenantHeaderLinkPlugin","tenant","name","query","URLSearchParams","location","search","get","window","__PS_RENDER_TENANT__","setContext","_","headers","ApolloLinkPlugin"],"sources":["TenantHeaderLinkPlugin.ts"],"sourcesContent":["import { setContext } from \"apollo-link-context\";\nimport { ApolloLinkPlugin } from \"./ApolloLinkPlugin\";\nimport { ApolloLink } from \"apollo-link\";\n\ndeclare global {\n interface Window {\n __PS_RENDER_TENANT__: string;\n }\n}\n\n/**\n * Append `x-tenant` header from URL query (necessary for prerendering service).\n */\nexport class TenantHeaderLinkPlugin extends ApolloLinkPlugin {\n private readonly tenant: string;\n\n public constructor(tenant?: string) {\n super();\n this.name = \"tenant-header-link\";\n\n if (!tenant) {\n const query = new URLSearchParams(location.search);\n tenant = query.get(\"__tenant\") || window.__PS_RENDER_TENANT__;\n }\n\n this.tenant = tenant;\n }\n\n public override createLink(): ApolloLink {\n return setContext((_, { headers }) => {\n // If tenant header is already set, do not overwrite it.\n if (headers && \"x-tenant\" in headers) {\n return { headers };\n }\n\n if (this.tenant) {\n return {\n headers: {\n ...headers,\n \"x-tenant\": this.tenant\n }\n };\n }\n\n return { headers };\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AASA;AACA;AACA;IACaA,sB;;;;;EAGT,gCAAmBC,MAAnB,EAAoC;IAAA;;IAAA;IAChC;IADgC;IAEhC,MAAKC,IAAL,GAAY,oBAAZ;;IAEA,IAAI,CAACD,MAAL,EAAa;MACT,IAAME,KAAK,GAAG,IAAIC,eAAJ,CAAoBC,QAAQ,CAACC,MAA7B,CAAd;MACAL,MAAM,GAAGE,KAAK,CAACI,GAAN,CAAU,UAAV,KAAyBC,MAAM,CAACC,oBAAzC;IACH;;IAED,MAAKR,MAAL,GAAcA,MAAd;IATgC;EAUnC;;;;WAED,sBAAyC;MAAA;;MACrC,OAAO,IAAAS,6BAAA,EAAW,UAACC,CAAD,QAAoB;QAAA,IAAdC,OAAc,QAAdA,OAAc;;QAClC;QACA,IAAIA,OAAO,IAAI,cAAcA,OAA7B,EAAsC;UAClC,OAAO;YAAEA,OAAO,EAAPA;UAAF,CAAP;QACH;;QAED,IAAI,MAAI,CAACX,MAAT,EAAiB;UACb,OAAO;YACHW,OAAO,8DACAA,OADA;cAEH,YAAY,MAAI,CAACX;YAFd;UADJ,CAAP;QAMH;;QAED,OAAO;UAAEW,OAAO,EAAPA;QAAF,CAAP;MACH,CAhBM,CAAP;IAiBH;;;EAjCuCC,mC"}
1
+ {"version":3,"names":["setContext","ApolloLinkPlugin","getTenantId","TenantHeaderLinkPlugin","constructor","tenant","name","createLink","_","headers"],"sources":["TenantHeaderLinkPlugin.ts"],"sourcesContent":["import { setContext } from \"apollo-link-context\";\nimport { ApolloLinkPlugin } from \"./ApolloLinkPlugin\";\nimport type { ApolloLink } from \"apollo-link\";\nimport { getTenantId } from \"~/utils\";\n\n/**\n * Append `x-tenant` header from URL query (necessary for prerendering service).\n */\nexport class TenantHeaderLinkPlugin extends ApolloLinkPlugin {\n private readonly tenant: string;\n\n public constructor(tenant?: string) {\n super();\n this.name = \"tenant-header-link\";\n\n this.tenant = tenant || (getTenantId() as string);\n }\n\n public override createLink(): ApolloLink {\n return setContext((_, { headers }) => {\n // If tenant header is already set, do not overwrite it.\n if (headers && \"x-tenant\" in headers) {\n return { headers };\n }\n\n if (this.tenant) {\n return {\n headers: {\n ...headers,\n \"x-tenant\": this.tenant\n }\n };\n }\n\n return { headers };\n });\n }\n}\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,qBAAqB;AAChD,SAASC,gBAAgB;AAEzB,SAASC,WAAW;;AAEpB;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,SAASF,gBAAgB,CAAC;EAGlDG,WAAWA,CAACC,MAAe,EAAE;IAChC,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,IAAI,GAAG,oBAAoB;IAEhC,IAAI,CAACD,MAAM,GAAGA,MAAM,IAAKH,WAAW,CAAC,CAAY;EACrD;EAEgBK,UAAUA,CAAA,EAAe;IACrC,OAAOP,UAAU,CAAC,CAACQ,CAAC,EAAE;MAAEC;IAAQ,CAAC,KAAK;MAClC;MACA,IAAIA,OAAO,IAAI,UAAU,IAAIA,OAAO,EAAE;QAClC,OAAO;UAAEA;QAAQ,CAAC;MACtB;MAEA,IAAI,IAAI,CAACJ,MAAM,EAAE;QACb,OAAO;UACHI,OAAO,EAAE;YACL,GAAGA,OAAO;YACV,UAAU,EAAE,IAAI,CAACJ;UACrB;QACJ,CAAC;MACL;MAEA,OAAO;QAAEI;MAAQ,CAAC;IACtB,CAAC,CAAC;EACN;AACJ","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import * as React from "react";
1
+ import type * as React from "react";
2
2
  import { Plugin } from "@webiny/plugins";
3
3
  interface Config<Props> {
4
4
  name: string;
@@ -1,58 +1,19 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.ViewPlugin = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
19
-
20
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
-
22
- var _plugins = require("@webiny/plugins");
23
-
24
- var ViewPlugin = /*#__PURE__*/function (_Plugin) {
25
- (0, _inherits2.default)(ViewPlugin, _Plugin);
26
-
27
- var _super = (0, _createSuper2.default)(ViewPlugin);
28
-
29
- function ViewPlugin(config) {
30
- var _this;
31
-
32
- (0, _classCallCheck2.default)(this, ViewPlugin);
33
- _this = _super.call(this);
34
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_config", void 0);
35
- _this._config = config || {};
36
- return _this;
1
+ import { Plugin } from "@webiny/plugins";
2
+ export class ViewPlugin extends Plugin {
3
+ static type = "view";
4
+ constructor(config) {
5
+ super();
6
+ this._config = config || {};
37
7
  }
38
-
39
- (0, _createClass2.default)(ViewPlugin, [{
40
- key: "key",
41
- get: function get() {
42
- return this._config.name;
43
- }
44
- }, {
45
- key: "render",
46
- value: function render(props) {
47
- if (!this._config.render) {
48
- return null;
49
- }
50
-
51
- return this._config.render(props);
8
+ get key() {
9
+ return this._config.name;
10
+ }
11
+ render(props) {
12
+ if (!this._config.render) {
13
+ return null;
52
14
  }
53
- }]);
54
- return ViewPlugin;
55
- }(_plugins.Plugin);
15
+ return this._config.render(props);
16
+ }
17
+ }
56
18
 
57
- exports.ViewPlugin = ViewPlugin;
58
- (0, _defineProperty2.default)(ViewPlugin, "type", "view");
19
+ //# sourceMappingURL=ViewPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ViewPlugin","config","_config","name","props","render","Plugin"],"sources":["ViewPlugin.ts"],"sourcesContent":["import * as React from \"react\";\nimport { Plugin } from \"@webiny/plugins\";\n\ninterface Config<Props> {\n name: string;\n render(props: Props): React.ReactElement | null;\n}\n\nexport class ViewPlugin<Props = any> extends Plugin {\n public static override readonly type: string = \"view\";\n private readonly _config: Partial<Config<Props>>;\n\n public constructor(config?: Config<Props>) {\n super();\n this._config = config || {};\n }\n\n get key() {\n return this._config.name;\n }\n\n public render(props: Props) {\n if (!this._config.render) {\n return null;\n }\n return this._config.render(props);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;IAOaA,U;;;;;EAIT,oBAAmBC,MAAnB,EAA2C;IAAA;;IAAA;IACvC;IADuC;IAEvC,MAAKC,OAAL,GAAeD,MAAM,IAAI,EAAzB;IAFuC;EAG1C;;;;SAED,eAAU;MACN,OAAO,KAAKC,OAAL,CAAaC,IAApB;IACH;;;WAED,gBAAcC,KAAd,EAA4B;MACxB,IAAI,CAAC,KAAKF,OAAL,CAAaG,MAAlB,EAA0B;QACtB,OAAO,IAAP;MACH;;MACD,OAAO,KAAKH,OAAL,CAAaG,MAAb,CAAoBD,KAApB,CAAP;IACH;;;EAlBwCE,e;;;8BAAhCN,U,UACsC,M"}
1
+ {"version":3,"names":["Plugin","ViewPlugin","type","constructor","config","_config","key","name","render","props"],"sources":["ViewPlugin.ts"],"sourcesContent":["import type * as React from \"react\";\nimport { Plugin } from \"@webiny/plugins\";\n\ninterface Config<Props> {\n name: string;\n render(props: Props): React.ReactElement | null;\n}\n\nexport class ViewPlugin<Props = any> extends Plugin {\n public static override readonly type: string = \"view\";\n private readonly _config: Partial<Config<Props>>;\n\n public constructor(config?: Config<Props>) {\n super();\n this._config = config || {};\n }\n\n get key() {\n return this._config.name;\n }\n\n public render(props: Props) {\n if (!this._config.render) {\n return null;\n }\n return this._config.render(props);\n }\n}\n"],"mappings":"AACA,SAASA,MAAM,QAAQ,iBAAiB;AAOxC,OAAO,MAAMC,UAAU,SAAsBD,MAAM,CAAC;EAChD,OAAgCE,IAAI,GAAW,MAAM;EAG9CC,WAAWA,CAACC,MAAsB,EAAE;IACvC,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,OAAO,GAAGD,MAAM,IAAI,CAAC,CAAC;EAC/B;EAEA,IAAIE,GAAGA,CAAA,EAAG;IACN,OAAO,IAAI,CAACD,OAAO,CAACE,IAAI;EAC5B;EAEOC,MAAMA,CAACC,KAAY,EAAE;IACxB,IAAI,CAAC,IAAI,CAACJ,OAAO,CAACG,MAAM,EAAE;MACtB,OAAO,IAAI;IACf;IACA,OAAO,IAAI,CAACH,OAAO,CAACG,MAAM,CAACC,KAAK,CAAC;EACrC;AACJ","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- import { ImageComponentPlugin } from "../types";
1
+ import type { ImageComponentPlugin } from "../types";
2
2
  declare const _default: () => ImageComponentPlugin;
3
3
  export default _default;
package/plugins/image.js CHANGED
@@ -1,125 +1,86 @@
1
- "use strict";
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];
2
4
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
- var _react = _interopRequireDefault(require("react"));
15
-
16
- var _Image = require("@webiny/ui/Image");
17
-
18
- var _excluded = ["transform", "srcSet"];
19
- var SUPPORTED_IMAGE_RESIZE_WIDTHS = [100, 300, 500, 750, 1000, 1500, 2500];
20
5
  /**
21
6
  * Width of the image should not be just any random number. For optimization reasons,
22
7
  * we only allow the ones listed in SUPPORTED_IMAGE_RESIZE_WIDTHS list (Webiny Cloud supports only these).
23
8
  */
24
-
25
- var getSupportedImageResizeWidth = function getSupportedImageResizeWidth(width) {
26
- var output = SUPPORTED_IMAGE_RESIZE_WIDTHS[0];
27
- var i = SUPPORTED_IMAGE_RESIZE_WIDTHS.length;
28
-
9
+ const getSupportedImageResizeWidth = width => {
10
+ let output = SUPPORTED_IMAGE_RESIZE_WIDTHS[0];
11
+ let i = SUPPORTED_IMAGE_RESIZE_WIDTHS.length;
29
12
  while (i >= 0) {
30
13
  if (width === SUPPORTED_IMAGE_RESIZE_WIDTHS[i]) {
31
14
  output = SUPPORTED_IMAGE_RESIZE_WIDTHS[i];
32
15
  break;
33
16
  }
34
-
35
17
  if (width > SUPPORTED_IMAGE_RESIZE_WIDTHS[i]) {
36
18
  // Use next larger width. If there isn't any, use current.
37
19
  output = SUPPORTED_IMAGE_RESIZE_WIDTHS[i + 1];
38
-
39
20
  if (!output) {
40
21
  output = SUPPORTED_IMAGE_RESIZE_WIDTHS[i];
41
22
  }
42
-
43
23
  break;
44
24
  }
45
-
46
25
  i--;
47
26
  }
48
-
49
27
  return output;
50
28
  };
51
-
52
29
  /**
53
30
  * Currently we only allow "width" as a transform option.
54
31
  * @param args
55
32
  */
56
- var sanitizeTransformArgs = function sanitizeTransformArgs(args) {
57
- var output = {};
58
-
33
+ const sanitizeTransformArgs = args => {
34
+ const output = {};
59
35
  if (!args || args.width === undefined || args.width === null) {
60
36
  return output;
61
37
  }
62
-
63
- var width = parseInt(args.width);
64
-
38
+ const width = parseInt(args.width);
65
39
  if (width > 0) {
66
40
  output.width = getSupportedImageResizeWidth(width);
67
41
  }
68
-
69
42
  return output;
70
43
  };
71
-
72
- var getSizes = function getSizes(width) {
44
+ const getSizes = width => {
73
45
  if (typeof width !== "string") {
74
46
  return undefined;
75
- } // Check if width was set as percentage, with "%" in the value.
76
-
77
-
47
+ }
48
+ // Check if width was set as percentage, with "%" in the value.
78
49
  if (width.endsWith("%")) {
79
- return "".concat(parseInt(width), "vw");
80
- } // Check if width was set as viewport width, with "vw" in the value.
81
-
82
-
50
+ return `${parseInt(width)}vw`;
51
+ }
52
+ // Check if width was set as viewport width, with "vw" in the value.
83
53
  if (width.endsWith("vw")) {
84
- return "".concat(parseInt(width), "vw");
85
- } // Check if width was set as relative, with "em" in the value.
86
-
54
+ return `${parseInt(width)}vw`;
55
+ }
87
56
 
57
+ // Check if width was set as relative, with "em" in the value.
88
58
  if (width.endsWith("em")) {
89
- return "".concat(parseInt(width), "em");
59
+ return `${parseInt(width)}em`;
90
60
  }
91
-
92
61
  return undefined;
93
62
  };
94
-
95
- var isFixedImageWidth = function isFixedImageWidth(width) {
63
+ const isFixedImageWidth = width => {
96
64
  if (Number.isFinite(width)) {
97
65
  return true;
98
66
  }
99
-
100
67
  if (typeof width === "string" && width.endsWith("px")) {
101
68
  return true;
102
69
  }
103
-
104
70
  return false;
105
71
  };
106
-
107
- var getSrcSetAutoSizes = function getSrcSetAutoSizes(max) {
72
+ const getSrcSetAutoSizes = max => {
108
73
  max = isFixedImageWidth(max) ? parseInt("" + max) : 2500;
109
- var maxWidth = getSupportedImageResizeWidth(max);
110
- return SUPPORTED_IMAGE_RESIZE_WIDTHS.filter(function (supportedWidth) {
74
+ const maxWidth = getSupportedImageResizeWidth(max);
75
+ return SUPPORTED_IMAGE_RESIZE_WIDTHS.filter(supportedWidth => {
111
76
  return supportedWidth <= maxWidth;
112
77
  });
113
78
  };
114
-
115
- var convertTransformToQueryParams = function convertTransformToQueryParams(transform) {
116
- return Object.keys(transform).map(function (key) {
117
- return "".concat(key, "=").concat(transform[key]);
118
- }).join("&");
79
+ const convertTransformToQueryParams = transform => {
80
+ return Object.keys(transform).map(key => `${key}=${transform[key]}`).join("&");
119
81
  };
120
-
121
- var _default = function _default() {
122
- var imagePlugin = {
82
+ export default () => {
83
+ const imagePlugin = {
123
84
  name: "image-component",
124
85
  type: "image-component",
125
86
  presets: {
@@ -127,51 +88,51 @@ var _default = function _default() {
127
88
  width: 300
128
89
  }
129
90
  },
130
- getImageSrc: function getImageSrc(props) {
91
+ getImageSrc: props => {
131
92
  if (!props) {
132
93
  return "";
133
94
  }
134
-
135
- var src = props.src,
136
- transform = props.transform;
137
-
95
+ const {
96
+ src,
97
+ transform
98
+ } = props;
138
99
  if (!transform) {
139
100
  return src;
140
101
  }
141
-
142
102
  if (!src || src.startsWith("data:") || src.endsWith("svg")) {
143
103
  return src;
144
104
  }
145
-
146
- var sanitizedParams = sanitizeTransformArgs(transform);
147
- var params = convertTransformToQueryParams(sanitizedParams);
105
+ const sanitizedParams = sanitizeTransformArgs(transform);
106
+ const params = convertTransformToQueryParams(sanitizedParams);
148
107
  return src + "?" + params;
149
108
  },
150
- render: function render(props) {
151
- var transform = props.transform,
152
- srcSetInitial = props.srcSet,
153
- imageProps = (0, _objectWithoutProperties2.default)(props, _excluded);
154
- var srcSet = srcSetInitial;
155
- var sizes;
156
- var src = imageProps.src;
157
-
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;
158
118
  if (srcSet && srcSet === "auto") {
159
- srcSet = {}; // Check if image width was forced, and additionally if width was set as pixels, with "px" in the value.
119
+ srcSet = {};
160
120
 
161
- var forcedWidth = props.width || props.style && props.style.width;
162
- var srcSetAutoWidths = getSrcSetAutoSizes(forcedWidth);
163
- srcSetAutoWidths.forEach(function (width) {
121
+ // Check if image width was forced, and additionally if width was set as pixels, with "px" in the value.
122
+ const forcedWidth = props.width || props.style && props.style.width;
123
+ const srcSetAutoWidths = getSrcSetAutoSizes(forcedWidth);
124
+ srcSetAutoWidths.forEach(width => {
164
125
  srcSet[width + "w"] = imagePlugin.getImageSrc({
165
- src: src,
166
- transform: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, transform), {}, {
167
- width: width
168
- })
126
+ src,
127
+ transform: {
128
+ ...transform,
129
+ width
130
+ }
169
131
  });
170
132
  });
171
133
  sizes = getSizes(forcedWidth);
172
134
  }
173
-
174
- return /*#__PURE__*/_react.default.createElement(_Image.Image, Object.assign({}, imageProps, {
135
+ return /*#__PURE__*/React.createElement(Image, Object.assign({}, imageProps, {
175
136
  srcSet: srcSet,
176
137
  src: src,
177
138
  sizes: sizes
@@ -181,4 +142,4 @@ var _default = function _default() {
181
142
  return imagePlugin;
182
143
  };
183
144
 
184
- exports.default = _default;
145
+ //# sourceMappingURL=image.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["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","srcSetInitial","srcSet","imageProps","sizes","forcedWidth","style","srcSetAutoWidths","forEach"],"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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"}
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,8 +1,8 @@
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
- declare type RenderPluginOptions<T> = {
5
+ type RenderPluginOptions<T> = {
6
6
  wrapper?: boolean;
7
7
  fn?: string;
8
8
  filter?: (value: T, index: number, array: T[]) => boolean;