@webiny/app 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.
- package/App.js +15 -37
- package/App.js.map +1 -1
- package/apollo-client/InMemoryCache.js +1 -24
- package/apollo-client/InMemoryCache.js.map +1 -1
- package/components/Image.js +1 -14
- package/components/Image.js.map +1 -1
- package/components/Routes.js +8 -14
- package/components/Routes.js.map +1 -1
- package/components/View.js +3 -14
- package/components/View.js.map +1 -1
- package/components/index.js +0 -2
- package/components/index.js.map +1 -1
- package/config.js +0 -3
- package/config.js.map +1 -1
- package/contexts/Ui/index.js +0 -22
- package/contexts/Ui/index.js.map +1 -1
- package/core/AddRoute.js +1 -8
- package/core/AddRoute.js.map +1 -1
- package/core/DebounceRender.js +5 -15
- package/core/DebounceRender.js.map +1 -1
- package/core/Plugin.d.ts +8 -0
- package/core/Plugin.js +21 -0
- package/core/Plugin.js.map +1 -0
- package/core/Plugins.d.ts +4 -0
- package/core/Plugins.js +6 -13
- package/core/Plugins.js.map +1 -1
- package/core/Provider.js +1 -7
- package/core/Provider.js.map +1 -1
- package/core/Routes.js +6 -13
- package/core/Routes.js.map +1 -1
- package/core/createProvider.d.ts +6 -0
- package/core/createProvider.js +13 -0
- package/core/createProvider.js.map +1 -0
- package/core/createProviderPlugin.d.ts +0 -1
- package/core/createProviderPlugin.js +1 -12
- package/core/createProviderPlugin.js.map +1 -1
- package/hooks/useAutocomplete/index.js +0 -1
- package/hooks/useAutocomplete/index.js.map +1 -1
- package/hooks/useAutocomplete/useAutocomplete.js +0 -9
- package/hooks/useAutocomplete/useAutocomplete.js.map +1 -1
- package/hooks/useDataList/functions/getData.js +0 -4
- package/hooks/useDataList/functions/getData.js.map +1 -1
- package/hooks/useDataList/functions/getError.js +0 -4
- package/hooks/useDataList/functions/getError.js.map +1 -1
- package/hooks/useDataList/functions/getMeta.js +0 -4
- package/hooks/useDataList/functions/getMeta.js.map +1 -1
- package/hooks/useDataList/functions/index.js +0 -4
- package/hooks/useDataList/functions/index.js.map +1 -1
- package/hooks/useDataList/functions/searchDataByKey.js +0 -6
- package/hooks/useDataList/functions/searchDataByKey.js.map +1 -1
- package/hooks/useDataList/index.js +0 -1
- package/hooks/useDataList/index.js.map +1 -1
- package/hooks/useDataList/useDataList.js +6 -32
- package/hooks/useDataList/useDataList.js.map +1 -1
- package/hooks/useDataList/utils/index.js +0 -3
- package/hooks/useDataList/utils/index.js.map +1 -1
- package/hooks/useDataList/utils/prepareLoadListParams.js +0 -10
- package/hooks/useDataList/utils/prepareLoadListParams.js.map +1 -1
- package/hooks/useDataList/utils/redirectToRouteWithQueryParams.js +1 -3
- package/hooks/useDataList/utils/redirectToRouteWithQueryParams.js.map +1 -1
- package/hooks/useHandler.js +0 -2
- package/hooks/useHandler.js.map +1 -1
- package/hooks/useHandlers.js +0 -3
- package/hooks/useHandlers.js.map +1 -1
- package/hooks/useUi.js +0 -4
- package/hooks/useUi.js.map +1 -1
- package/i18n/i18n.js +0 -7
- package/i18n/i18n.js.map +1 -1
- package/i18n/index.js +0 -2
- package/i18n/index.js.map +1 -1
- package/index.d.ts +2 -0
- package/index.js +24 -18
- package/index.js.map +1 -1
- package/package.json +12 -12
- package/plugins/AddQuerySelectionPlugin.d.ts +8 -1
- package/plugins/AddQuerySelectionPlugin.js +31 -41
- package/plugins/AddQuerySelectionPlugin.js.map +1 -1
- package/plugins/ApolloCacheObjectIdPlugin.js +0 -15
- package/plugins/ApolloCacheObjectIdPlugin.js.map +1 -1
- package/plugins/ApolloDynamicLink.js +0 -23
- package/plugins/ApolloDynamicLink.js.map +1 -1
- package/plugins/ApolloLinkPlugin.js +0 -17
- package/plugins/ApolloLinkPlugin.js.map +1 -1
- package/plugins/ConsoleLinkPlugin.js +0 -15
- package/plugins/ConsoleLinkPlugin.js.map +1 -1
- package/plugins/LocaleHeaderLinkPlugin.d.ts +0 -5
- package/plugins/LocaleHeaderLinkPlugin.js +2 -26
- package/plugins/LocaleHeaderLinkPlugin.js.map +1 -1
- package/plugins/NetworkErrorLinkPlugin/ErrorOverlay.js +5 -25
- package/plugins/NetworkErrorLinkPlugin/ErrorOverlay.js.map +1 -1
- package/plugins/NetworkErrorLinkPlugin/StyledComponents.d.ts +9 -3
- package/plugins/NetworkErrorLinkPlugin/StyledComponents.js +0 -3
- package/plugins/NetworkErrorLinkPlugin/StyledComponents.js.map +1 -1
- package/plugins/NetworkErrorLinkPlugin/createErrorOverlay.js +8 -15
- package/plugins/NetworkErrorLinkPlugin/createErrorOverlay.js.map +1 -1
- package/plugins/NetworkErrorLinkPlugin.js +3 -20
- package/plugins/NetworkErrorLinkPlugin.js.map +1 -1
- package/plugins/OmitTypenameLinkPlugin.js +1 -15
- package/plugins/OmitTypenameLinkPlugin.js.map +1 -1
- package/plugins/RoutePlugin.js +0 -15
- package/plugins/RoutePlugin.js.map +1 -1
- package/plugins/TenantHeaderLinkPlugin.d.ts +0 -5
- package/plugins/TenantHeaderLinkPlugin.js +2 -27
- package/plugins/TenantHeaderLinkPlugin.js.map +1 -1
- package/plugins/ViewPlugin.js +0 -15
- package/plugins/ViewPlugin.js.map +1 -1
- package/plugins/image.js +12 -45
- package/plugins/image.js.map +1 -1
- package/plugins/index.js +12 -33
- package/plugins/index.js.map +1 -1
- package/types.d.ts +4 -2
- package/types.js +0 -1
- package/types.js.map +1 -1
- package/utils/getApiUrl.d.ts +1 -0
- package/utils/getApiUrl.js +11 -0
- package/utils/getApiUrl.js.map +1 -0
- package/utils/getGqlApiUrl.d.ts +1 -0
- package/utils/getGqlApiUrl.js +11 -0
- package/utils/getGqlApiUrl.js.map +1 -0
- package/utils/getHeadlessCmsGqlApiUrl.d.ts +5 -0
- package/utils/getHeadlessCmsGqlApiUrl.js +17 -0
- package/utils/getHeadlessCmsGqlApiUrl.js.map +1 -0
- package/utils/getLocaleCode.d.ts +6 -0
- package/utils/getLocaleCode.js +42 -0
- package/utils/getLocaleCode.js.map +1 -0
- package/utils/getPrerenderId.d.ts +6 -0
- package/utils/getPrerenderId.js +10 -0
- package/utils/getPrerenderId.js.map +1 -0
- package/utils/getTenantId.d.ts +6 -0
- package/utils/getTenantId.js +34 -0
- package/utils/getTenantId.js.map +1 -0
- package/utils/index.d.ts +8 -0
- package/utils/index.js +93 -0
- package/utils/index.js.map +1 -0
- package/utils/isLocalhost.d.ts +1 -0
- package/utils/isLocalhost.js +14 -0
- package/utils/isLocalhost.js.map +1 -0
- package/utils/isPrerendering.d.ts +1 -0
- package/utils/isPrerendering.js +10 -0
- package/utils/isPrerendering.js.map +1 -0
package/plugins/image.js
CHANGED
|
@@ -1,109 +1,84 @@
|
|
|
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.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
-
|
|
12
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
-
|
|
14
10
|
var _react = _interopRequireDefault(require("react"));
|
|
15
|
-
|
|
16
11
|
var _Image = require("@webiny/ui/Image");
|
|
17
|
-
|
|
18
12
|
var _excluded = ["transform", "srcSet"];
|
|
19
13
|
var SUPPORTED_IMAGE_RESIZE_WIDTHS = [100, 300, 500, 750, 1000, 1500, 2500];
|
|
14
|
+
|
|
20
15
|
/**
|
|
21
16
|
* Width of the image should not be just any random number. For optimization reasons,
|
|
22
17
|
* we only allow the ones listed in SUPPORTED_IMAGE_RESIZE_WIDTHS list (Webiny Cloud supports only these).
|
|
23
18
|
*/
|
|
24
|
-
|
|
25
19
|
var getSupportedImageResizeWidth = function getSupportedImageResizeWidth(width) {
|
|
26
20
|
var output = SUPPORTED_IMAGE_RESIZE_WIDTHS[0];
|
|
27
21
|
var i = SUPPORTED_IMAGE_RESIZE_WIDTHS.length;
|
|
28
|
-
|
|
29
22
|
while (i >= 0) {
|
|
30
23
|
if (width === SUPPORTED_IMAGE_RESIZE_WIDTHS[i]) {
|
|
31
24
|
output = SUPPORTED_IMAGE_RESIZE_WIDTHS[i];
|
|
32
25
|
break;
|
|
33
26
|
}
|
|
34
|
-
|
|
35
27
|
if (width > SUPPORTED_IMAGE_RESIZE_WIDTHS[i]) {
|
|
36
28
|
// Use next larger width. If there isn't any, use current.
|
|
37
29
|
output = SUPPORTED_IMAGE_RESIZE_WIDTHS[i + 1];
|
|
38
|
-
|
|
39
30
|
if (!output) {
|
|
40
31
|
output = SUPPORTED_IMAGE_RESIZE_WIDTHS[i];
|
|
41
32
|
}
|
|
42
|
-
|
|
43
33
|
break;
|
|
44
34
|
}
|
|
45
|
-
|
|
46
35
|
i--;
|
|
47
36
|
}
|
|
48
|
-
|
|
49
37
|
return output;
|
|
50
38
|
};
|
|
51
|
-
|
|
52
39
|
/**
|
|
53
40
|
* Currently we only allow "width" as a transform option.
|
|
54
41
|
* @param args
|
|
55
42
|
*/
|
|
56
43
|
var sanitizeTransformArgs = function sanitizeTransformArgs(args) {
|
|
57
44
|
var output = {};
|
|
58
|
-
|
|
59
45
|
if (!args || args.width === undefined || args.width === null) {
|
|
60
46
|
return output;
|
|
61
47
|
}
|
|
62
|
-
|
|
63
48
|
var width = parseInt(args.width);
|
|
64
|
-
|
|
65
49
|
if (width > 0) {
|
|
66
50
|
output.width = getSupportedImageResizeWidth(width);
|
|
67
51
|
}
|
|
68
|
-
|
|
69
52
|
return output;
|
|
70
53
|
};
|
|
71
|
-
|
|
72
54
|
var getSizes = function getSizes(width) {
|
|
73
55
|
if (typeof width !== "string") {
|
|
74
56
|
return undefined;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
57
|
+
}
|
|
58
|
+
// Check if width was set as percentage, with "%" in the value.
|
|
78
59
|
if (width.endsWith("%")) {
|
|
79
60
|
return "".concat(parseInt(width), "vw");
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
|
|
61
|
+
}
|
|
62
|
+
// Check if width was set as viewport width, with "vw" in the value.
|
|
83
63
|
if (width.endsWith("vw")) {
|
|
84
64
|
return "".concat(parseInt(width), "vw");
|
|
85
|
-
}
|
|
86
|
-
|
|
65
|
+
}
|
|
87
66
|
|
|
67
|
+
// Check if width was set as relative, with "em" in the value.
|
|
88
68
|
if (width.endsWith("em")) {
|
|
89
69
|
return "".concat(parseInt(width), "em");
|
|
90
70
|
}
|
|
91
|
-
|
|
92
71
|
return undefined;
|
|
93
72
|
};
|
|
94
|
-
|
|
95
73
|
var isFixedImageWidth = function isFixedImageWidth(width) {
|
|
96
74
|
if (Number.isFinite(width)) {
|
|
97
75
|
return true;
|
|
98
76
|
}
|
|
99
|
-
|
|
100
77
|
if (typeof width === "string" && width.endsWith("px")) {
|
|
101
78
|
return true;
|
|
102
79
|
}
|
|
103
|
-
|
|
104
80
|
return false;
|
|
105
81
|
};
|
|
106
|
-
|
|
107
82
|
var getSrcSetAutoSizes = function getSrcSetAutoSizes(max) {
|
|
108
83
|
max = isFixedImageWidth(max) ? parseInt("" + max) : 2500;
|
|
109
84
|
var maxWidth = getSupportedImageResizeWidth(max);
|
|
@@ -111,13 +86,11 @@ var getSrcSetAutoSizes = function getSrcSetAutoSizes(max) {
|
|
|
111
86
|
return supportedWidth <= maxWidth;
|
|
112
87
|
});
|
|
113
88
|
};
|
|
114
|
-
|
|
115
89
|
var convertTransformToQueryParams = function convertTransformToQueryParams(transform) {
|
|
116
90
|
return Object.keys(transform).map(function (key) {
|
|
117
91
|
return "".concat(key, "=").concat(transform[key]);
|
|
118
92
|
}).join("&");
|
|
119
93
|
};
|
|
120
|
-
|
|
121
94
|
var _default = function _default() {
|
|
122
95
|
var imagePlugin = {
|
|
123
96
|
name: "image-component",
|
|
@@ -131,33 +104,29 @@ var _default = function _default() {
|
|
|
131
104
|
if (!props) {
|
|
132
105
|
return "";
|
|
133
106
|
}
|
|
134
|
-
|
|
135
107
|
var src = props.src,
|
|
136
|
-
|
|
137
|
-
|
|
108
|
+
transform = props.transform;
|
|
138
109
|
if (!transform) {
|
|
139
110
|
return src;
|
|
140
111
|
}
|
|
141
|
-
|
|
142
112
|
if (!src || src.startsWith("data:") || src.endsWith("svg")) {
|
|
143
113
|
return src;
|
|
144
114
|
}
|
|
145
|
-
|
|
146
115
|
var sanitizedParams = sanitizeTransformArgs(transform);
|
|
147
116
|
var params = convertTransformToQueryParams(sanitizedParams);
|
|
148
117
|
return src + "?" + params;
|
|
149
118
|
},
|
|
150
119
|
render: function render(props) {
|
|
151
120
|
var transform = props.transform,
|
|
152
|
-
|
|
153
|
-
|
|
121
|
+
srcSetInitial = props.srcSet,
|
|
122
|
+
imageProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
154
123
|
var srcSet = srcSetInitial;
|
|
155
124
|
var sizes;
|
|
156
125
|
var src = imageProps.src;
|
|
157
|
-
|
|
158
126
|
if (srcSet && srcSet === "auto") {
|
|
159
|
-
srcSet = {};
|
|
127
|
+
srcSet = {};
|
|
160
128
|
|
|
129
|
+
// Check if image width was forced, and additionally if width was set as pixels, with "px" in the value.
|
|
161
130
|
var forcedWidth = props.width || props.style && props.style.width;
|
|
162
131
|
var srcSetAutoWidths = getSrcSetAutoSizes(forcedWidth);
|
|
163
132
|
srcSetAutoWidths.forEach(function (width) {
|
|
@@ -170,7 +139,6 @@ var _default = function _default() {
|
|
|
170
139
|
});
|
|
171
140
|
sizes = getSizes(forcedWidth);
|
|
172
141
|
}
|
|
173
|
-
|
|
174
142
|
return /*#__PURE__*/_react.default.createElement(_Image.Image, Object.assign({}, imageProps, {
|
|
175
143
|
srcSet: srcSet,
|
|
176
144
|
src: src,
|
|
@@ -180,5 +148,4 @@ var _default = function _default() {
|
|
|
180
148
|
};
|
|
181
149
|
return imagePlugin;
|
|
182
150
|
};
|
|
183
|
-
|
|
184
151
|
exports.default = _default;
|
package/plugins/image.js.map
CHANGED
|
@@ -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":"
|
|
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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"}
|
package/plugins/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
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
|
});
|
|
@@ -13,41 +12,29 @@ Object.defineProperty(exports, "imagePlugin", {
|
|
|
13
12
|
}
|
|
14
13
|
});
|
|
15
14
|
exports.renderPlugins = exports.renderPlugin = void 0;
|
|
16
|
-
|
|
17
15
|
var _react = _interopRequireDefault(require("react"));
|
|
18
|
-
|
|
19
16
|
var _warning = _interopRequireDefault(require("warning"));
|
|
20
|
-
|
|
21
17
|
var _plugins = require("@webiny/plugins");
|
|
22
|
-
|
|
23
18
|
var _image = _interopRequireDefault(require("./image"));
|
|
24
|
-
|
|
25
19
|
var PluginComponent = function PluginComponent(props) {
|
|
26
20
|
return props.children;
|
|
27
21
|
};
|
|
28
|
-
|
|
29
22
|
var PluginsComponent = function PluginsComponent(props) {
|
|
30
23
|
return props.children;
|
|
31
24
|
};
|
|
32
|
-
|
|
33
25
|
var renderPlugin = function renderPlugin(name) {
|
|
34
26
|
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
35
27
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
36
28
|
var _options$wrapper = options.wrapper,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
29
|
+
wrapper = _options$wrapper === void 0 ? true : _options$wrapper,
|
|
30
|
+
_options$fn = options.fn,
|
|
31
|
+
fn = _options$fn === void 0 ? "render" : _options$fn;
|
|
41
32
|
var plugin = _plugins.plugins.byName(name);
|
|
42
|
-
|
|
43
33
|
(0, _warning.default)(plugin, "No such plugin \"".concat(name, "\""));
|
|
44
|
-
|
|
45
34
|
if (!plugin) {
|
|
46
35
|
return null;
|
|
47
36
|
}
|
|
48
|
-
|
|
49
37
|
var content = plugin[fn](params);
|
|
50
|
-
|
|
51
38
|
if (content) {
|
|
52
39
|
return wrapper ? /*#__PURE__*/_react.default.createElement(PluginComponent, {
|
|
53
40
|
key: plugin.name,
|
|
@@ -58,25 +45,21 @@ var renderPlugin = function renderPlugin(name) {
|
|
|
58
45
|
key: plugin.name
|
|
59
46
|
});
|
|
60
47
|
}
|
|
61
|
-
|
|
62
48
|
return null;
|
|
63
49
|
};
|
|
64
|
-
|
|
65
50
|
exports.renderPlugin = renderPlugin;
|
|
66
|
-
|
|
67
51
|
var renderPlugins = function renderPlugins(type) {
|
|
68
52
|
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
69
53
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
70
54
|
var _options$wrapper2 = options.wrapper,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
55
|
+
wrapper = _options$wrapper2 === void 0 ? true : _options$wrapper2,
|
|
56
|
+
_options$fn2 = options.fn,
|
|
57
|
+
fn = _options$fn2 === void 0 ? "render" : _options$fn2,
|
|
58
|
+
_options$filter = options.filter,
|
|
59
|
+
filter = _options$filter === void 0 ? function (v) {
|
|
60
|
+
return v;
|
|
61
|
+
} : _options$filter,
|
|
62
|
+
reverse = options.reverse;
|
|
80
63
|
var content = _plugins.plugins.byType(type).filter(function (pl) {
|
|
81
64
|
/**
|
|
82
65
|
* TODO @ts-refactor Problem with possibility of a different subtype.
|
|
@@ -86,25 +69,21 @@ var renderPlugins = function renderPlugins(type) {
|
|
|
86
69
|
})
|
|
87
70
|
/**
|
|
88
71
|
* We cast as string because renderPlugin checks for the plugin.name
|
|
89
|
-
|
|
90
|
-
.map(function (plugin) {
|
|
72
|
+
*/.map(function (plugin) {
|
|
91
73
|
return renderPlugin(plugin.name, params, {
|
|
92
74
|
wrapper: wrapper,
|
|
93
75
|
fn: fn
|
|
94
76
|
});
|
|
95
77
|
}).filter(Boolean);
|
|
96
|
-
|
|
97
78
|
if (reverse) {
|
|
98
79
|
content.reverse();
|
|
99
80
|
}
|
|
100
|
-
|
|
101
81
|
return wrapper ? /*#__PURE__*/_react.default.createElement(PluginsComponent, {
|
|
102
82
|
type: type,
|
|
103
83
|
params: params,
|
|
104
84
|
fn: fn
|
|
105
85
|
}, content) : content;
|
|
106
86
|
};
|
|
107
|
-
|
|
108
87
|
exports.renderPlugins = renderPlugins;
|
|
109
88
|
var _default = [_image.default];
|
|
110
89
|
exports.default = _default;
|
package/plugins/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PluginComponent","props","children","PluginsComponent","renderPlugin","name","params","options","wrapper","fn","plugin","plugins","byName","warning","content","React","cloneElement","key","renderPlugins","type","filter","v","reverse","byType","pl","map","Boolean","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}\nconst PluginComponent: React.FC<PluginComponentProps> = props => {\n return props.children as React.ReactElement;\n};\ninterface PluginsComponentProps {\n type: string;\n params: Record<string, any>;\n fn: string;\n}\nconst PluginsComponent: React.FC<PluginsComponentProps> = props => {\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-ignore\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":"
|
|
1
|
+
{"version":3,"names":["PluginComponent","props","children","PluginsComponent","renderPlugin","name","params","options","wrapper","fn","plugin","plugins","byName","warning","content","React","cloneElement","key","renderPlugins","type","filter","v","reverse","byType","pl","map","Boolean","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}\nconst PluginComponent: React.FC<PluginComponentProps> = props => {\n return props.children as React.ReactElement;\n};\ninterface PluginsComponentProps {\n type: string;\n params: Record<string, any>;\n fn: string;\n}\nconst PluginsComponent: React.FC<PluginsComponentProps> = props => {\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-ignore\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":";;;;;;;;;;;;;;AAAA;AACA;AACA;AAEA;AA4BA,IAAMA,eAA+C,GAAG,SAAlDA,eAA+C,CAAGC,KAAK,EAAI;EAC7D,OAAOA,KAAK,CAACC,QAAQ;AACzB,CAAC;AAMD,IAAMC,gBAAiD,GAAG,SAApDA,gBAAiD,CAAGF,KAAK,EAAI;EAC/D,OAAOA,KAAK,CAACC,QAAQ;AACzB,CAAC;AAEM,IAAME,YAA0B,GAAG,SAA7BA,YAA0B,CAAIC,IAAI,EAAgC;EAAA,IAA9BC,MAAM,uEAAG,CAAC,CAAC;EAAA,IAAEC,OAAO,uEAAG,CAAC,CAAC;EACtE,uBAA0CA,OAAO,CAAzCC,OAAO;IAAPA,OAAO,iCAAG,IAAI;IAAA,cAAoBD,OAAO,CAAzBE,EAAE;IAAFA,EAAE,4BAAG,QAAQ;EAErC,IAAMC,MAAM,GAAGC,gBAAO,CAACC,MAAM,CAACP,IAAI,CAAC;EACnC,IAAAQ,gBAAO,EAACH,MAAM,6BAAqBL,IAAI,QAAI;EAE3C,IAAI,CAACK,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EAEA,IAAMI,OAAO,GAAGJ,MAAM,CAACD,EAAE,CAAC,CAACH,MAAM,CAAC;EAClC,IAAIQ,OAAO,EAAE;IACT,OAAON,OAAO,gBACV,6BAAC,eAAe;MAAC,GAAG,EAAEE,MAAM,CAACL,IAAK;MAAC,IAAI,EAAEA,IAAK;MAAC,MAAM,EAAEC,MAAO;MAAC,EAAE,EAAEG;IAAG,GACjEK,OAAO,CACM,gBAElBC,cAAK,CAACC,YAAY,CAACF,OAAO,EAAE;MAAEG,GAAG,EAAEP,MAAM,CAACL;IAAK,CAAC,CACnD;EACL;EACA,OAAO,IAAI;AACf,CAAC;AAAC;AAEK,IAAMa,aAA4B,GAAG,SAA/BA,aAA4B,CAAIC,IAAI,EAAgC;EAAA,IAA9Bb,MAAM,uEAAG,CAAC,CAAC;EAAA,IAAEC,OAAO,uEAAG,CAAC,CAAC;EACxE,wBAAoEA,OAAO,CAAnEC,OAAO;IAAPA,OAAO,kCAAG,IAAI;IAAA,eAA8CD,OAAO,CAAnDE,EAAE;IAAFA,EAAE,6BAAG,QAAQ;IAAA,kBAA+BF,OAAO,CAApCa,MAAM;IAANA,MAAM,gCAAG,UAAAC,CAAC;MAAA,OAAIA,CAAC;IAAA;IAAEC,OAAO,GAAKf,OAAO,CAAnBe,OAAO;EAE/D,IAAMR,OAAO,GAAGH,gBAAO,CAClBY,MAAM,CAACJ,IAAI,CAAC,CACZC,MAAM,CAAC,UAAAI,EAAE,EAAI;IACV;AACZ;AACA;IACY;IACA,OAAOJ,MAAM,CAACI,EAAE,CAAC;EACrB,CAAC;EACD;AACR;AACA,KAFQ,CAGCC,GAAG,CAAC,UAAAf,MAAM;IAAA,OAAIN,YAAY,CAACM,MAAM,CAACL,IAAI,EAAYC,MAAM,EAAE;MAAEE,OAAO,EAAPA,OAAO;MAAEC,EAAE,EAAFA;IAAG,CAAC,CAAC;EAAA,EAAC,CAC3EW,MAAM,CAACM,OAAO,CAAC;EAEpB,IAAIJ,OAAO,EAAE;IACTR,OAAO,CAACQ,OAAO,EAAE;EACrB;EAEA,OAAOd,OAAO,gBACV,6BAAC,gBAAgB;IAAC,IAAI,EAAEW,IAAK;IAAC,MAAM,EAAEb,MAAO;IAAC,EAAE,EAAEG;EAAG,GAChDK,OAAO,CACO,GAEnBA,OACH;AACL,CAAC;AAAC;AAAA,eAEa,CAACa,cAAW,CAAC;AAAA"}
|
package/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="web" />
|
|
1
2
|
import * as React from "react";
|
|
2
3
|
import { Plugin } from "@webiny/plugins/types";
|
|
3
4
|
import { ApolloClient } from "apollo-client";
|
|
@@ -18,6 +19,7 @@ export interface FileItem {
|
|
|
18
19
|
}
|
|
19
20
|
export declare type UploadOptions = {
|
|
20
21
|
apolloClient: ApolloClient<object>;
|
|
22
|
+
onProgress?: (progress: number) => void;
|
|
21
23
|
};
|
|
22
24
|
export declare type UiStatePlugin = Plugin & {
|
|
23
25
|
type: "ui-state";
|
|
@@ -25,11 +27,11 @@ export declare type UiStatePlugin = Plugin & {
|
|
|
25
27
|
};
|
|
26
28
|
export declare type FileUploaderPlugin = Plugin & {
|
|
27
29
|
type: "file-uploader";
|
|
28
|
-
upload(file:
|
|
30
|
+
upload(file: File, options: UploadOptions): Promise<any>;
|
|
29
31
|
};
|
|
30
32
|
export declare type AppFileManagerStoragePlugin = Plugin & {
|
|
31
33
|
type: "app-file-manager-storage";
|
|
32
|
-
upload(file:
|
|
34
|
+
upload(file: File, options: UploadOptions): Promise<any>;
|
|
33
35
|
};
|
|
34
36
|
export { Plugin };
|
|
35
37
|
export interface ImageProps {
|
package/types.js
CHANGED
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import * as React from \"react\";\nimport { Plugin } from \"@webiny/plugins/types\";\nimport { ApolloClient } from \"apollo-client\";\nimport { CSSProperties } from \"react\";\n\nexport interface FileItem {\n id: string;\n name: string;\n key: string;\n src: string;\n size: number;\n type: string;\n tags: string[];\n createdOn: string;\n createdBy: {\n id: string;\n };\n [key: string]: any;\n}\n\nexport type UploadOptions = {\n apolloClient: ApolloClient<object>;\n};\n\nexport type UiStatePlugin = Plugin & {\n type: \"ui-state\";\n render(): React.ReactElement;\n};\n\nexport type FileUploaderPlugin = Plugin & {\n type: \"file-uploader\";\n // TODO: @adrian define type for the returned object\n upload(file:
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import * as React from \"react\";\nimport { Plugin } from \"@webiny/plugins/types\";\nimport { ApolloClient } from \"apollo-client\";\nimport { CSSProperties } from \"react\";\n\nexport interface FileItem {\n id: string;\n name: string;\n key: string;\n src: string;\n size: number;\n type: string;\n tags: string[];\n createdOn: string;\n createdBy: {\n id: string;\n };\n [key: string]: any;\n}\n\nexport type UploadOptions = {\n apolloClient: ApolloClient<object>;\n onProgress?: (progress: number) => void;\n};\n\nexport type UiStatePlugin = Plugin & {\n type: \"ui-state\";\n render(): React.ReactElement;\n};\n\nexport type FileUploaderPlugin = Plugin & {\n type: \"file-uploader\";\n // TODO: @adrian define type for the returned object\n upload(file: File, options: UploadOptions): Promise<any>;\n};\n\nexport type AppFileManagerStoragePlugin = Plugin & {\n type: \"app-file-manager-storage\";\n // TODO: @adrian define type for the returned object\n upload(file: File, options: UploadOptions): Promise<any>;\n};\n\nexport { Plugin };\n\nexport interface ImageProps {\n src: string;\n preset?: string;\n transform?: {\n [key: string]: any;\n };\n // \"auto\" is a special keyword - if present, plugins insert their own srcSet.\n srcSet?: { [key: string]: any } | \"auto\";\n className?: string;\n title?: string;\n alt?: string;\n style?: CSSProperties;\n width?: string | number;\n height?: string | number;\n}\n\n/**\n * \"getImageSrc\" has to be defined as a separate property, so its functionality can be reused outside of\n * the Image component. This is ideal in cases where manual creation of image src is needed.\n */\nexport type ImageComponentPlugin = Plugin & {\n type: \"image-component\";\n render: (props: ImageProps) => React.ReactElement;\n getImageSrc: (props?: Record<string, any>) => string;\n presets: { [key: string]: any };\n};\n\n/**\n * Enables registering new routes.\n * @see https://docs.webiny.com/docs/webiny-apps/admin/development/plugins-reference/app#route\n */\nexport type RoutePlugin = Plugin & {\n type: \"route\";\n route: React.ReactElement;\n};\n"],"mappings":";;;;;;;;;;;AACA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getApiUrl: (path?: string) => string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getApiUrl = void 0;
|
|
7
|
+
var getApiUrl = function getApiUrl() {
|
|
8
|
+
var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
|
|
9
|
+
return process.env.REACT_APP_API_URL + path;
|
|
10
|
+
};
|
|
11
|
+
exports.getApiUrl = getApiUrl;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getApiUrl","path","process","env","REACT_APP_API_URL"],"sources":["getApiUrl.ts"],"sourcesContent":["export const getApiUrl = (path = \"\"): string => {\n return process.env.REACT_APP_API_URL + path;\n};\n"],"mappings":";;;;;;AAAO,IAAMA,SAAS,GAAG,SAAZA,SAAS,GAA0B;EAAA,IAAtBC,IAAI,uEAAG,EAAE;EAC/B,OAAOC,OAAO,CAACC,GAAG,CAACC,iBAAiB,GAAGH,IAAI;AAC/C,CAAC;AAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getGqlApiUrl: () => string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getGqlApiUrl = void 0;
|
|
7
|
+
var _getApiUrl = require("./getApiUrl");
|
|
8
|
+
var getGqlApiUrl = function getGqlApiUrl() {
|
|
9
|
+
return (0, _getApiUrl.getApiUrl)("/graphql");
|
|
10
|
+
};
|
|
11
|
+
exports.getGqlApiUrl = getGqlApiUrl;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getGqlApiUrl","getApiUrl"],"sources":["getGqlApiUrl.ts"],"sourcesContent":["import { getApiUrl } from \"./getApiUrl\";\n\nexport const getGqlApiUrl = (): string => {\n return getApiUrl(\"/graphql\");\n};\n"],"mappings":";;;;;;AAAA;AAEO,IAAMA,YAAY,GAAG,SAAfA,YAAY,GAAiB;EACtC,OAAO,IAAAC,oBAAS,EAAC,UAAU,CAAC;AAChC,CAAC;AAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getHeadlessCmsGqlApiUrl = void 0;
|
|
7
|
+
var _getApiUrl = require("./getApiUrl");
|
|
8
|
+
var _getLocaleCode = require("./getLocaleCode");
|
|
9
|
+
var getHeadlessCmsGqlApiUrl = function getHeadlessCmsGqlApiUrl() {
|
|
10
|
+
var locale = (0, _getLocaleCode.getLocaleCode)();
|
|
11
|
+
return {
|
|
12
|
+
preview: (0, _getApiUrl.getApiUrl)("/cms/preview/".concat(locale)),
|
|
13
|
+
read: (0, _getApiUrl.getApiUrl)("/cms/read/".concat(locale)),
|
|
14
|
+
manage: (0, _getApiUrl.getApiUrl)("/cms/manage/".concat(locale))
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
exports.getHeadlessCmsGqlApiUrl = getHeadlessCmsGqlApiUrl;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getHeadlessCmsGqlApiUrl","locale","getLocaleCode","preview","getApiUrl","read","manage"],"sources":["getHeadlessCmsGqlApiUrl.ts"],"sourcesContent":["import { getApiUrl } from \"./getApiUrl\";\nimport { getLocaleCode } from \"./getLocaleCode\";\n\nexport const getHeadlessCmsGqlApiUrl = (): { preview: string; read: string; manage: string } => {\n const locale = getLocaleCode();\n return {\n preview: getApiUrl(`/cms/preview/${locale}`),\n read: getApiUrl(`/cms/read/${locale}`),\n manage: getApiUrl(`/cms/manage/${locale}`)\n };\n};\n"],"mappings":";;;;;;AAAA;AACA;AAEO,IAAMA,uBAAuB,GAAG,SAA1BA,uBAAuB,GAA4D;EAC5F,IAAMC,MAAM,GAAG,IAAAC,4BAAa,GAAE;EAC9B,OAAO;IACHC,OAAO,EAAE,IAAAC,oBAAS,yBAAiBH,MAAM,EAAG;IAC5CI,IAAI,EAAE,IAAAD,oBAAS,sBAAcH,MAAM,EAAG;IACtCK,MAAM,EAAE,IAAAF,oBAAS,wBAAgBH,MAAM;EAC3C,CAAC;AACL,CAAC;AAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getLocaleCode = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _isLocalhost = require("./isLocalhost");
|
|
10
|
+
var getLocaleCode = function getLocaleCode() {
|
|
11
|
+
// 1. Get locale via the `__locale` query param. Useful when doing page previews.
|
|
12
|
+
var locale = new URLSearchParams(location.search).get("__locale");
|
|
13
|
+
if (locale) {
|
|
14
|
+
return locale;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// 2. Get locale via `window.__PS_RENDER_LOCALE__`. Used with prerendered pages.
|
|
18
|
+
locale = window.__PS_RENDER_LOCALE__;
|
|
19
|
+
if (locale) {
|
|
20
|
+
return locale;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// 3. Get locale via `window.localStorage.webiny_i18n_locale`. Used within the Admin app.
|
|
24
|
+
var localesByContext = window.localStorage.webiny_i18n_locale;
|
|
25
|
+
if (localesByContext) {
|
|
26
|
+
// The `localesByContext` is a string that contains locales for all available
|
|
27
|
+
// "locale contexts", for example: `default:en-US;content:en-US;`. Here, we
|
|
28
|
+
// want to extract the locale for the "content" locale context.
|
|
29
|
+
var _localesByContext$mat = localesByContext.match(/content:(.*?);/),
|
|
30
|
+
_localesByContext$mat2 = (0, _slicedToArray2.default)(_localesByContext$mat, 2),
|
|
31
|
+
matchedLocale = _localesByContext$mat2[1];
|
|
32
|
+
return matchedLocale;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// 4. Finally, for development purposes, we take the `WEBINY_WEBSITE_LOCALE_CODE`
|
|
36
|
+
// and `WEBINY_ADMIN_LOCALE_CODE` environment variables into consideration.
|
|
37
|
+
if ((0, _isLocalhost.isLocalhost)()) {
|
|
38
|
+
return process.env.WEBINY_WEBSITE_LOCALE_CODE || process.env.WEBINY_ADMIN_LOCALE_CODE || null;
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
};
|
|
42
|
+
exports.getLocaleCode = getLocaleCode;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getLocaleCode","locale","URLSearchParams","location","search","get","window","__PS_RENDER_LOCALE__","localesByContext","localStorage","webiny_i18n_locale","match","matchedLocale","isLocalhost","process","env","WEBINY_WEBSITE_LOCALE_CODE","WEBINY_ADMIN_LOCALE_CODE"],"sources":["getLocaleCode.ts"],"sourcesContent":["import { isLocalhost } from \"./isLocalhost\";\n\ndeclare global {\n interface Window {\n __PS_RENDER_LOCALE__: string;\n }\n}\n\nexport const getLocaleCode = (): string | null => {\n // 1. Get locale via the `__locale` query param. Useful when doing page previews.\n let locale = new URLSearchParams(location.search).get(\"__locale\");\n if (locale) {\n return locale;\n }\n\n // 2. Get locale via `window.__PS_RENDER_LOCALE__`. Used with prerendered pages.\n locale = window.__PS_RENDER_LOCALE__;\n if (locale) {\n return locale;\n }\n\n // 3. Get locale via `window.localStorage.webiny_i18n_locale`. Used within the Admin app.\n const localesByContext = window.localStorage.webiny_i18n_locale;\n if (localesByContext) {\n // The `localesByContext` is a string that contains locales for all available\n // \"locale contexts\", for example: `default:en-US;content:en-US;`. Here, we\n // want to extract the locale for the \"content\" locale context.\n const [, matchedLocale] = localesByContext.match(/content:(.*?);/);\n return matchedLocale;\n }\n\n // 4. Finally, for development purposes, we take the `WEBINY_WEBSITE_LOCALE_CODE`\n // and `WEBINY_ADMIN_LOCALE_CODE` environment variables into consideration.\n if (isLocalhost()) {\n return (\n process.env.WEBINY_WEBSITE_LOCALE_CODE || process.env.WEBINY_ADMIN_LOCALE_CODE || null\n );\n }\n\n return null;\n};\n"],"mappings":";;;;;;;;AAAA;AAQO,IAAMA,aAAa,GAAG,SAAhBA,aAAa,GAAwB;EAC9C;EACA,IAAIC,MAAM,GAAG,IAAIC,eAAe,CAACC,QAAQ,CAACC,MAAM,CAAC,CAACC,GAAG,CAAC,UAAU,CAAC;EACjE,IAAIJ,MAAM,EAAE;IACR,OAAOA,MAAM;EACjB;;EAEA;EACAA,MAAM,GAAGK,MAAM,CAACC,oBAAoB;EACpC,IAAIN,MAAM,EAAE;IACR,OAAOA,MAAM;EACjB;;EAEA;EACA,IAAMO,gBAAgB,GAAGF,MAAM,CAACG,YAAY,CAACC,kBAAkB;EAC/D,IAAIF,gBAAgB,EAAE;IAClB;IACA;IACA;IACA,4BAA0BA,gBAAgB,CAACG,KAAK,CAAC,gBAAgB,CAAC;MAAA;MAAzDC,aAAa;IACtB,OAAOA,aAAa;EACxB;;EAEA;EACA;EACA,IAAI,IAAAC,wBAAW,GAAE,EAAE;IACf,OACIC,OAAO,CAACC,GAAG,CAACC,0BAA0B,IAAIF,OAAO,CAACC,GAAG,CAACE,wBAAwB,IAAI,IAAI;EAE9F;EAEA,OAAO,IAAI;AACf,CAAC;AAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getPrerenderId = void 0;
|
|
7
|
+
var getPrerenderId = function getPrerenderId() {
|
|
8
|
+
return window["__PS_RENDER_ID__"] || null;
|
|
9
|
+
};
|
|
10
|
+
exports.getPrerenderId = getPrerenderId;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getPrerenderId","window"],"sources":["getPrerenderId.ts"],"sourcesContent":["declare global {\n interface Window {\n __PS_RENDER_ID__: string;\n }\n}\n\nexport const getPrerenderId = (): string | null => {\n return window[\"__PS_RENDER_ID__\"] || null;\n};\n"],"mappings":";;;;;;AAMO,IAAMA,cAAc,GAAG,SAAjBA,cAAc,GAAwB;EAC/C,OAAOC,MAAM,CAAC,kBAAkB,CAAC,IAAI,IAAI;AAC7C,CAAC;AAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getTenantId = void 0;
|
|
7
|
+
var _isLocalhost = require("./isLocalhost");
|
|
8
|
+
var getTenantId = function getTenantId() {
|
|
9
|
+
// 1. Get tenant via the `__tenant` query param. Useful when doing page previews.
|
|
10
|
+
var tenant = new URLSearchParams(location.search).get("__tenant");
|
|
11
|
+
if (tenant) {
|
|
12
|
+
return tenant;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// 2. Get tenant via `window.__PS_RENDER_TENANT__`. Used with prerendered pages.
|
|
16
|
+
tenant = window.__PS_RENDER_TENANT__;
|
|
17
|
+
if (tenant) {
|
|
18
|
+
return tenant;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// 3. Get tenant via `window.localStorage.webiny_tenant`. Used within the Admin app.
|
|
22
|
+
tenant = window.localStorage.webiny_tenant;
|
|
23
|
+
if (tenant) {
|
|
24
|
+
return tenant;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// 4. Finally, for development purposes, we take the `WEBINY_WEBSITE_TENANT_ID`
|
|
28
|
+
// and `WEBINY_ADMIN_TENANT_ID` environment variables into consideration.
|
|
29
|
+
if ((0, _isLocalhost.isLocalhost)()) {
|
|
30
|
+
return process.env.WEBINY_WEBSITE_TENANT_ID || process.env.WEBINY_ADMIN_TENANT_ID || null;
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
};
|
|
34
|
+
exports.getTenantId = getTenantId;
|