@sitecore-feaas/clientside 0.1.54 → 0.1.56
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/README.md +20 -20
- package/build/components/FEAASComponent.js +1 -1
- package/build/components/FEAASComponent.js.map +1 -1
- package/build/components/FEAASLoader.js +1 -1
- package/build/components/FEAASLoader.js.map +1 -1
- package/build/components/FEAASStylesheet.js +1 -1
- package/build/components/FEAASStylesheet.js.map +1 -1
- package/build/dom/thumbnail.js +247 -0
- package/build/dom/thumbnail.js.map +1 -0
- package/build/fetch.js +4 -2
- package/build/fetch.js.map +1 -1
- package/build/headless.js +1 -0
- package/build/headless.js.map +1 -1
- package/build/ui/FEAASContext.js +8 -3
- package/build/ui/FEAASContext.js.map +1 -1
- package/build/ui/FEAASEditor.js +5 -5
- package/build/ui/FEAASEditor.js.map +1 -1
- package/build/ui/FEAASExternal.js +8 -9
- package/build/ui/FEAASExternal.js.map +1 -1
- package/build/ui/FEAASPicker.js +5 -3
- package/build/ui/FEAASPicker.js.map +1 -1
- package/build/utils/promise.js.map +1 -1
- package/dist/browser/headless.cjs +8 -5
- package/dist/browser/headless.cjs.map +4 -4
- package/dist/browser/headless.esm.js +8 -5
- package/dist/browser/headless.esm.js.map +1 -1
- package/dist/browser/index.cjs +8 -5
- package/dist/browser/index.cjs.map +4 -4
- package/dist/browser/index.esm.js +8 -5
- package/dist/browser/index.esm.js.map +1 -1
- package/dist/browser/react.cjs +8 -5
- package/dist/browser/react.cjs.map +4 -4
- package/dist/browser/react.esm.js +8 -5
- package/dist/browser/react.esm.js.map +1 -1
- package/dist/node/headless.cjs +6 -3
- package/dist/node/headless.cjs.map +4 -4
- package/dist/node/headless.esm.js +6 -3
- package/dist/node/headless.esm.js.map +4 -4
- package/dist/node/index.cjs +6 -3
- package/dist/node/index.cjs.map +4 -4
- package/dist/node/index.esm.js +6 -3
- package/dist/node/index.esm.js.map +4 -4
- package/dist/node/react.cjs +6 -3
- package/dist/node/react.cjs.map +4 -4
- package/dist/node/react.esm.js +6 -3
- package/dist/node/react.esm.js.map +4 -4
- package/headless.cjs +6 -3
- package/headless.cjs.map +4 -4
- package/headless.js +6 -3
- package/headless.js.map +4 -4
- package/package.json +2 -1
- package/react.cjs +8 -5
- package/react.cjs.map +4 -4
- package/react.js +8 -5
- package/react.js.map +4 -4
- package/src/components/FEAASComponent.tsx +1 -1
- package/src/components/FEAASLoader.tsx +1 -1
- package/src/components/FEAASStylesheet.tsx +1 -1
- package/src/dom/thumbnail.ts +293 -0
- package/src/fetch.ts +5 -3
- package/src/headless.ts +1 -0
- package/src/ui/FEAASContext.tsx +9 -3
- package/src/ui/FEAASEditor.tsx +5 -5
- package/src/ui/FEAASExternal.tsx +7 -8
- package/src/ui/FEAASPicker.tsx +7 -2
- package/src/utils/promise.ts +2 -2
- package/test/FEAASComponent.react.test.tsx +3 -6
- package/types/components/FEAASComponent.d.ts +1 -1
- package/types/components/FEAASComponent.d.ts.map +1 -1
- package/types/components/FEAASLoader.d.ts +1 -1
- package/types/components/FEAASLoader.d.ts.map +1 -1
- package/types/components/FEAASStylesheet.d.ts +1 -1
- package/types/components/FEAASStylesheet.d.ts.map +1 -1
- package/types/dom/thumbnail.d.ts +82 -0
- package/types/dom/thumbnail.d.ts.map +1 -0
- package/types/fetch.d.ts +6 -4
- package/types/fetch.d.ts.map +1 -1
- package/types/headless.d.ts +1 -0
- package/types/headless.d.ts.map +1 -1
- package/types/tsbuildinfo +1 -1
- package/types/tsbuildinfo_ui +1 -1
- package/types/ui/FEAASContext.d.ts +9 -5
- package/types/ui/FEAASContext.d.ts.map +1 -1
- package/types/ui/FEAASEditor.d.ts +2 -2
- package/types/ui/FEAASEditor.d.ts.map +1 -1
- package/types/ui/FEAASExternal.d.ts +1 -1
- package/types/ui/FEAASExternal.d.ts.map +1 -1
- package/types/ui/FEAASPicker.d.ts +2 -2
- package/types/ui/FEAASPicker.d.ts.map +1 -1
- package/types/utils/promise.d.ts +1 -1
- package/types/utils/promise.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ data.
|
|
|
7
7
|
|
|
8
8
|
- Renders component content and returns React/DOM element
|
|
9
9
|
- Populates attributes and text valeus with mapped data
|
|
10
|
-
- Repeats nodes
|
|
10
|
+
- Repeats nodes mapped to collections
|
|
11
11
|
- Updates previously rendered component for new data
|
|
12
12
|
- Provides both react and javascript revisions of Clientside
|
|
13
13
|
- (optional) Fetches of component from the cloud
|
|
@@ -177,34 +177,34 @@ const options = {
|
|
|
177
177
|
|
|
178
178
|
Options may contain any of the bellow items:
|
|
179
179
|
|
|
180
|
-
|
|
181
|
-
Type: string
|
|
182
|
-
Required: no
|
|
180
|
+
**Name**<br/>
|
|
181
|
+
Type: string<br/>
|
|
182
|
+
Required: no<br/>
|
|
183
183
|
Description: Name of your Component as it will be shown to the user. If not provided, will be function name in title case.
|
|
184
184
|
|
|
185
|
-
|
|
186
|
-
Type: string
|
|
187
|
-
Required: no
|
|
185
|
+
**Description**<br/>
|
|
186
|
+
Type: string<br/>
|
|
187
|
+
Required: no<br/>
|
|
188
188
|
Description: Describe your Component and anything a user should know when using it.
|
|
189
189
|
|
|
190
|
-
|
|
191
|
-
Type: url
|
|
192
|
-
Required: no
|
|
190
|
+
**Thumbnail**<br/>
|
|
191
|
+
Type: url<br/>
|
|
192
|
+
Required: no<br/>
|
|
193
193
|
Description: A URL of a thumbnail image to be displayed in the Builder. Should have some dimension guidelines.
|
|
194
194
|
|
|
195
|
-
|
|
196
|
-
Type: string
|
|
197
|
-
Required: no
|
|
195
|
+
**Group**<br/>
|
|
196
|
+
Type: string<br/>
|
|
197
|
+
Required: no<br/>
|
|
198
198
|
Description: Used to group related Components together in the UI. E.g. Typography
|
|
199
199
|
|
|
200
|
-
|
|
201
|
-
Type: JSONSchema object
|
|
202
|
-
Required: no
|
|
200
|
+
**Properties**<br/>
|
|
201
|
+
Type: JSONSchema object<br/>
|
|
202
|
+
Required: no<br/>
|
|
203
203
|
Description: Inputs (Props) to be provided by the user when embedding this Component.
|
|
204
204
|
|
|
205
|
-
|
|
206
|
-
Type: String Array
|
|
207
|
-
Required: no
|
|
205
|
+
**Required**<br/>
|
|
206
|
+
Type: String Array<br/>
|
|
207
|
+
Required: no<br/>
|
|
208
208
|
Description: Array of keys from Inputs (Props) that should be required
|
|
209
209
|
|
|
210
|
-
|
|
210
|
+
_We use React JSONSchema Form to generate a form for the component properties. You can read more about React JSONSchema Form here:_ https://react-jsonschema-form.readthedocs.io
|
|
@@ -2,7 +2,7 @@ import { DEFAULT_CDN_URL, fetchAndRevalidateComponent, parseComponentSource } fr
|
|
|
2
2
|
import { renderDOMContent, renderDOMElement } from '../dom/rendering.js';
|
|
3
3
|
import { loadStylesheetAllowStale } from '../headless.js';
|
|
4
4
|
import { FEAASBase } from './FEAASBase.js';
|
|
5
|
-
export function FEAASComponentsProps(element
|
|
5
|
+
export function FEAASComponentsProps(element) {
|
|
6
6
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
7
7
|
let data;
|
|
8
8
|
const src = element.getAttribute('src');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FEAASComponent.js","sourceRoot":"","sources":["../../src/components/FEAASComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA2B,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AACvH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,UAAU,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"FEAASComponent.js","sourceRoot":"","sources":["../../src/components/FEAASComponent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FEAASBase } from './FEAASBase.js';
|
|
2
|
-
export function FEAASLoaderProps(element
|
|
2
|
+
export function FEAASLoaderProps(element) {
|
|
3
3
|
return {
|
|
4
4
|
opacity: (element === null || element === void 0 ? void 0 : element.getAttribute('opacity')) ? parseFloat(element === null || element === void 0 ? void 0 : element.getAttribute('opacity')) : 1,
|
|
5
5
|
hidden: (element === null || element === void 0 ? void 0 : element.getAttribute('hidden')) != null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FEAASLoader.js","sourceRoot":"","sources":["../../src/components/FEAASLoader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,UAAU,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"FEAASLoader.js","sourceRoot":"","sources":["../../src/components/FEAASLoader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DEFAULT_CDN_URL, parseStylesheetSource } from '../cdn.js';
|
|
2
2
|
import { loadStylesheet } from '../dom/stylesheet.js';
|
|
3
3
|
import { FEAASBase } from './FEAASBase.js';
|
|
4
|
-
export function FEAASStylesheetProps(element
|
|
4
|
+
export function FEAASStylesheetProps(element) {
|
|
5
5
|
var _a, _b, _c, _d;
|
|
6
6
|
const src = element.getAttribute('src');
|
|
7
7
|
if (src) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FEAASStylesheet.js","sourceRoot":"","sources":["../../src/components/FEAASStylesheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA4B,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,UAAU,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"FEAASStylesheet.js","sourceRoot":"","sources":["../../src/components/FEAASStylesheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA4B,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,UAAU,oBAAoB,CAAC,OAAkB;;IACrD,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IACvC,IAAI,GAAG,EAAE;QACP,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAA;KAC5D;IACD,OAAO;QACL,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAC,SAAS,CAAC;QAChD,QAAQ,EAAE,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC,UAAU,CAAC,mCAAI,QAAQ,mCAAI,WAAW;QACtE,GAAG,EAAE,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAC,KAAK,CAAC,mCAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAC,UAAU,CAAC,mCAAI,eAAe;KAC5E,CAAA;AAC/B,CAAC;AAGD,MAAM,OAAO,eAAgB,SAAQ,SAAuC;IAA5E;;QASE,WAAM,GAAG,CAAC,IAAY,EAAE,EAAE;YACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;YACnB,IAAI,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC,CAAA;IAKH,CAAC;IAhBC,QAAQ;QACN,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAA;IAC5F,CAAC;IAOD,IAAI;QACF,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAChD,CAAC;CACF;AASD,eAAe,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;AAC5C,OAAO,EAAE,eAAe,IAAI,UAAU,EAAE,CAAA"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { fetchAndRevalidate } from '../fetch.js';
|
|
2
|
+
import { renderComponent } from './component.js';
|
|
3
|
+
export const convertBase64toBlob = (base64) => fetch(base64).then((res) => res.blob());
|
|
4
|
+
/** Parse fetch response as blob and turn it into HTMLImageElement off thread */
|
|
5
|
+
export const responseToImage = (response) => response.blob().then((blob) => {
|
|
6
|
+
return new Promise((resolve, reject) => {
|
|
7
|
+
const img = new Image();
|
|
8
|
+
img.onerror = reject;
|
|
9
|
+
img.onload = () => {
|
|
10
|
+
resolve(img);
|
|
11
|
+
};
|
|
12
|
+
img.src = URL.createObjectURL(blob);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* Retrieves the version of a given component that best fits a specific display width.
|
|
17
|
+
*
|
|
18
|
+
* The function ensures that the version data for the component is available and selects the one that is most suitable
|
|
19
|
+
* for a display width of 800 pixels.
|
|
20
|
+
*
|
|
21
|
+
* @param {ComponentModel} component - The component for which the version needs to be obtained.
|
|
22
|
+
* @returns {Promise<VersionModel>} - A promise that resolves to the most suitable version for a display width of 800
|
|
23
|
+
* pixels.
|
|
24
|
+
*/
|
|
25
|
+
export async function getVersionForThumbnail(component) {
|
|
26
|
+
if (!component.versions.length)
|
|
27
|
+
await component.versions.fetch();
|
|
28
|
+
return component.getVersionForWidth(800);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Ensures an up-to-date thumbnail for a specific component and version.
|
|
32
|
+
*
|
|
33
|
+
* This operation initiates thumbnail load and, if that fails or if file is out of date, a new thumbnail is generated.
|
|
34
|
+
* It can work with a callback, which is designed to potentially fire twice for enhancing user experience. This dual
|
|
35
|
+
* firing allows for an immediate display of a possibly stale cached image while downloading or generating new version
|
|
36
|
+
* in the background.
|
|
37
|
+
*
|
|
38
|
+
* 1. The first call can happen with the stale cached or outdated image.
|
|
39
|
+
* 2. The second call occurs with the up-to-date loaded or freshly generated generated image.
|
|
40
|
+
*
|
|
41
|
+
* @param {ComponentModel} component - Relevant component.
|
|
42
|
+
* @param {VersionModel} [version] - Relevant version (optional, falls back to responsive).
|
|
43
|
+
* @param {Callback} [callback] - Callback to handle the loaded or generated image (optional).
|
|
44
|
+
* @returns {Promise<HTMLImageElement | null>} - The final thumbnail image (either loaded or freshly generated).
|
|
45
|
+
*/
|
|
46
|
+
export async function get(component, version, callback) {
|
|
47
|
+
try {
|
|
48
|
+
if (!component.isNew) {
|
|
49
|
+
return await load(component, version, callback);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
component.sdk.log(`FEAAS: Thumbnail ${component.id}, version: ${(version === null || version === void 0 ? void 0 : version.id) || 'responsive'}, status: generating ${status}, reason: ${e}`);
|
|
54
|
+
}
|
|
55
|
+
// generate the image
|
|
56
|
+
const img = await generate(component, version);
|
|
57
|
+
callback === null || callback === void 0 ? void 0 : callback(img, false);
|
|
58
|
+
// upload base64 image as blob off-thread
|
|
59
|
+
if (img && !component.isNew) {
|
|
60
|
+
convertBase64toBlob(img.src).then((blob) => upload(component, version, blob));
|
|
61
|
+
}
|
|
62
|
+
return img;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Retrieves the thumbnail image for a given component/version combination, with a responsive default if version is not
|
|
66
|
+
* provided.
|
|
67
|
+
*
|
|
68
|
+
* The resulting HTML <img> element will have `width`, `height`, and `src` properties ready for use. Although it can
|
|
69
|
+
* operate as a regular promise that resolves when the thumbnail is loaded, it also supports a callback for an enhanced
|
|
70
|
+
* user experience. This callback may be invoked twice, depending on the state of the cache:
|
|
71
|
+
*
|
|
72
|
+
* 1. The first call occurs if the image was previously cached by the browser, but the cache is stale.
|
|
73
|
+
* 2. The second call happens when the image is updated from a fresh download. By this design, the user gets to see a
|
|
74
|
+
* cached image immediately while the updated image is being downloaded in the background.
|
|
75
|
+
*
|
|
76
|
+
* If the version of a component is known to be newer than remote file, the function will throw `InvalidResponse` error.
|
|
77
|
+
* As a way to handle that error, the `generate` function may be used to produce new thumbnail (@see render).
|
|
78
|
+
*
|
|
79
|
+
* @param {ComponentModel} component - The component to load a thumbnail for.
|
|
80
|
+
* @param {VersionModel} [version] - The version of the component to load a thumbnail for. If not provided, a version
|
|
81
|
+
* suitable for a responsive component is selected.
|
|
82
|
+
* @param {Callback} [callback] - A callback to handle the loaded image. This callback may be invoked twice for the
|
|
83
|
+
* reasons described above.
|
|
84
|
+
* @returns {Promise<HTMLImageElement>} - The thumbnail image for the component/version combination.
|
|
85
|
+
*/
|
|
86
|
+
export async function load(component, version, callback) {
|
|
87
|
+
const url = version ? version.getThumbnailURL() : component.getThumbnailURL();
|
|
88
|
+
const stylesheet = component.library.stylesheet;
|
|
89
|
+
const lastModifiedDate = new Date(Math.max(Number(component.modifiedAt), Number(stylesheet.modifiedAt)));
|
|
90
|
+
component.sdk.log(`FEAAS: Thumbnail ${component.id}/${(version === null || version === void 0 ? void 0 : version.id) || 'responsive'}, loading`);
|
|
91
|
+
// Otherwise use a logic that will invoke callback for cached request and then try to revalidate it
|
|
92
|
+
var img;
|
|
93
|
+
await fetchAndRevalidate(url, {}, (response, isCached) => {
|
|
94
|
+
// <2 second difference is not considered outdated
|
|
95
|
+
// If thumbnail is detected as outdated it will throw error and promise will be rejected
|
|
96
|
+
const isUpToDate = Math.abs(Number(new Date(response.headers.get('x-ms-meta-componentRenderedAt'))) - Number(lastModifiedDate)) <
|
|
97
|
+
2000;
|
|
98
|
+
if (isCached && !isUpToDate) {
|
|
99
|
+
responseToImage(response).then((image) => {
|
|
100
|
+
img = image;
|
|
101
|
+
callback(image, isCached);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return isUpToDate;
|
|
105
|
+
}, (response, state, isCached) => {
|
|
106
|
+
component.sdk.log(`FEAAS: Thumbnail ${component.id}/${(version === null || version === void 0 ? void 0 : version.id) || 'responsive'}, status: ${state}`);
|
|
107
|
+
responseToImage(response).then((image) => {
|
|
108
|
+
img = image;
|
|
109
|
+
callback(image, isCached);
|
|
110
|
+
});
|
|
111
|
+
}, null);
|
|
112
|
+
return img;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Creates a thumbnail image for a given component and version.
|
|
116
|
+
*
|
|
117
|
+
* First, it determines the appropriate version to use. If not provided, it attempts to fetch one suitable for
|
|
118
|
+
* thumbnail. It then leverages `render` to generate an image with provided parameters and finally, if the component
|
|
119
|
+
* isn't new, uploads the generated as a Blob onto cdn for future retrieval.
|
|
120
|
+
*
|
|
121
|
+
* @param {ComponentModel} component - Component instance.
|
|
122
|
+
* @param {VersionModel} [version] - Version instance.
|
|
123
|
+
* @returns {Promise<HTMLImageElement | null>} Thumbnail image or null if generation isn't possible.
|
|
124
|
+
*/
|
|
125
|
+
export async function generate(component, version) {
|
|
126
|
+
const sourceVersion = version || (component.isNew ? null : await getVersionForThumbnail(component));
|
|
127
|
+
if (!sourceVersion || sourceVersion.isViewEmpty()) {
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
const { stylesheet, datasources } = component.library;
|
|
131
|
+
const img = await render(sourceVersion.classList, stylesheet.getBreakpointForWidth(800, sourceVersion.getBreakpoints()), sourceVersion.view, datasources.reduce((object, datasource) => {
|
|
132
|
+
return Object.assign(object, { [datasource.id]: datasource.sample });
|
|
133
|
+
}, {}), stylesheet.css, component.sdk);
|
|
134
|
+
return img;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Transforms a specific component version into an image.
|
|
138
|
+
*
|
|
139
|
+
* Generates an isolated environment (iframe) to render the component with supplied parameters. 'html2canvas.js' is then
|
|
140
|
+
* injected into the iframe to capture the rendered component as an image. The image is created respecting the provided
|
|
141
|
+
* design breakpoint, ensuring an accurate visual representation.
|
|
142
|
+
*
|
|
143
|
+
* @param {string[]} classList - Array of class names applied to the rendered component.
|
|
144
|
+
* @param {Style.Rule<'breakpoint'>} breakpoint - Breakpoint style rule that dictates the viewport dimensions for
|
|
145
|
+
* rendering.
|
|
146
|
+
* @param {string} template - String template of the component to render.
|
|
147
|
+
* @param {any} data - Data object to be used when rendering the component.
|
|
148
|
+
* @param {string} cssText - CSS rules to be applied during component rendering.
|
|
149
|
+
* @param {EnvironmentVariables} env - Environment variables used to set frontend and backend endpoint URLs.
|
|
150
|
+
* @returns {Promise<BasicImage>} - Promise that resolves to an object containing the src, width, and height of the
|
|
151
|
+
* created image.
|
|
152
|
+
*/
|
|
153
|
+
function render(classList, breakpoint, template, data, cssText, sdk) {
|
|
154
|
+
const iframe = document.createElement('iframe');
|
|
155
|
+
iframe.style.position = 'absolute';
|
|
156
|
+
iframe.style.top = '-2000px';
|
|
157
|
+
iframe.style.left = '-2000px';
|
|
158
|
+
iframe.style.width = breakpoint.props.minWidth + 'px';
|
|
159
|
+
iframe.style.height = '720px';
|
|
160
|
+
iframe.style.zIndex = '100011';
|
|
161
|
+
document.body.appendChild(iframe);
|
|
162
|
+
return new Promise((resolve, reject) => {
|
|
163
|
+
const script = document.createElement('script');
|
|
164
|
+
script.onerror = reject;
|
|
165
|
+
script.src = sdk.frontend + '/assets/html2canvas.js';
|
|
166
|
+
script.onload = () => {
|
|
167
|
+
var _a;
|
|
168
|
+
;
|
|
169
|
+
(((_a = iframe.contentWindow.document.fonts) === null || _a === void 0 ? void 0 : _a.ready) || Promise.resolve()).then(function () {
|
|
170
|
+
return (iframe.contentWindow
|
|
171
|
+
//@ts-ignore
|
|
172
|
+
.html2canvas(root, {
|
|
173
|
+
// 1.1 scale is to remove shadows that are drawn incorrectly
|
|
174
|
+
scale: Math.max(1.1, 1000 / Math.min(1401, Math.max(320, breakpoint.props.minWidth))),
|
|
175
|
+
width: Math.min(1401, Math.max(320, breakpoint.props.minWidth)),
|
|
176
|
+
height: Math.max(1, Math.min(2000, root.offsetHeight)),
|
|
177
|
+
windowWidth: breakpoint.props.minWidth + 'px',
|
|
178
|
+
windowHeight: 1000,
|
|
179
|
+
proxy: sdk.backend + '/proxy/media',
|
|
180
|
+
backgroundColor: '#ffffff'
|
|
181
|
+
})
|
|
182
|
+
.then((canvas) => {
|
|
183
|
+
const src = canvas.toDataURL('image/jpeg', 0.6);
|
|
184
|
+
iframe.parentElement.removeChild(iframe);
|
|
185
|
+
const img = new Image();
|
|
186
|
+
img.onload = () => {
|
|
187
|
+
resolve(img);
|
|
188
|
+
};
|
|
189
|
+
img.onerror = reject;
|
|
190
|
+
img.src = src;
|
|
191
|
+
}));
|
|
192
|
+
});
|
|
193
|
+
};
|
|
194
|
+
iframe.contentWindow.document.head.appendChild(script);
|
|
195
|
+
const stylesheet = iframe.contentWindow.document.createElement('style');
|
|
196
|
+
stylesheet.textContent = `
|
|
197
|
+
${cssText}
|
|
198
|
+
body, html { padding: 0; margin: 0; overflow: hidden }
|
|
199
|
+
`;
|
|
200
|
+
iframe.contentWindow.document.head.appendChild(stylesheet);
|
|
201
|
+
const root = renderComponent({ template, data });
|
|
202
|
+
root.classList.add(...classList, '-feaas--preview', '-emulate--' + breakpoint.details.slug);
|
|
203
|
+
iframe.contentWindow.document.body.appendChild(root);
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Uploads a thumbnail Blob to a CDN, enabling it for future retrieval.
|
|
208
|
+
*
|
|
209
|
+
* It constructs a URL based on component and version information, if available. The thumbnail's blob is uploaded with
|
|
210
|
+
* several metadata points, including identifiers and timestamps. Upon successful upload, it sends a no-cache fetch
|
|
211
|
+
* request to the constructed URL to bust the cache.
|
|
212
|
+
*
|
|
213
|
+
* @param {ComponentModel} component - Component instance.
|
|
214
|
+
* @param {VersionModel} version - Version instance.
|
|
215
|
+
* @param {Blob} blob - Blob instance to upload.
|
|
216
|
+
* @returns {Promise<string>} URL of the uploaded Blob.
|
|
217
|
+
*/
|
|
218
|
+
export async function upload(component, version, blob) {
|
|
219
|
+
const url = version ? version.getThumbnailURL() : component.getThumbnailURL();
|
|
220
|
+
const lastModifiedDate = new Date(Math.max(Number(component.modifiedAt), Number(component.library.stylesheet.modifiedAt)));
|
|
221
|
+
try {
|
|
222
|
+
await component.sdk.uploadBlob('thumbnails', url.split(/\/thumbnails\//)[1], blob, {
|
|
223
|
+
headers: {
|
|
224
|
+
'x-ms-blob-content-type': 'image/jpg',
|
|
225
|
+
'x-ms-blob-cache-control': 'public,max-age=31536000,immutable',
|
|
226
|
+
'x-ms-meta-versionId': version ? version.id : null,
|
|
227
|
+
'x-ms-meta-versionRevision': version ? version.revision.toString() : null,
|
|
228
|
+
'x-ms-meta-componentId': component.id,
|
|
229
|
+
'x-ms-meta-componentRenderedAt': lastModifiedDate.toUTCString(),
|
|
230
|
+
'x-ms-meta-componentModifiedAt': component.modifiedAt.toUTCString(),
|
|
231
|
+
'x-ms-meta-componentCreatedAt': component.createdAt.toUTCString(),
|
|
232
|
+
'x-ms-meta-modifiedAt': component.modifiedAt.toUTCString()
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
// bust thumbnail cache for the future, off-thread
|
|
236
|
+
fetch(url, {
|
|
237
|
+
cache: 'no-cache'
|
|
238
|
+
}).then(() => {
|
|
239
|
+
component.sdk.log('FEAAS: Thumbnail uploaded', url);
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
catch (e) {
|
|
243
|
+
component.sdk.log('FEAAS: Thumbnail failed to upload', url, e);
|
|
244
|
+
}
|
|
245
|
+
return url;
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=thumbnail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thumbnail.js","sourceRoot":"","sources":["../../src/dom/thumbnail.ts"],"names":[],"mappings":"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"}
|
package/build/fetch.js
CHANGED
|
@@ -36,6 +36,8 @@ export function getFetchCache(url, dontCreate = false) {
|
|
|
36
36
|
}
|
|
37
37
|
return cache;
|
|
38
38
|
}
|
|
39
|
+
export class InvalidResponse extends Error {
|
|
40
|
+
}
|
|
39
41
|
export async function fetchWithCacheAwareness({ url, options, validator, callback, cache }, phase = 'initial') {
|
|
40
42
|
const date = new Date();
|
|
41
43
|
if (cache != null) {
|
|
@@ -58,11 +60,11 @@ export async function fetchWithCacheAwareness({ url, options, validator, callbac
|
|
|
58
60
|
}
|
|
59
61
|
if (!response.ok)
|
|
60
62
|
throw new Error('Fetch failed');
|
|
61
|
-
if ((validator === null || validator === void 0 ? void 0 : validator(response)) === false)
|
|
62
|
-
throw new Error('Response is not valid');
|
|
63
63
|
// see if response was pulled from cache
|
|
64
64
|
const isCached = new Date(response.headers.get('date')) < date ||
|
|
65
65
|
(promise && phase == 'initial' && (cachedRequest.phase == 'updated' || cachedRequest.phase == 'check'));
|
|
66
|
+
if ((validator === null || validator === void 0 ? void 0 : validator(response, isCached)) === false)
|
|
67
|
+
throw new InvalidResponse('Response is not valid');
|
|
66
68
|
await (callback === null || callback === void 0 ? void 0 : callback(response, phase, isCached));
|
|
67
69
|
return {
|
|
68
70
|
url,
|
package/build/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAU,CAAA;AAqBvD,MAAM,CAAC,IAAI,UAAU,GAAsC,EAAE,CAAA;AAC7D,MAAM,UAAU,eAAe;IAC7B,UAAU,GAAG,EAAE,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAA8B,EAC9B,OAAuC,EACvC,SAA2C,EAC3C,QAAyC,EACzC,QAAoB,UAAU;IAE9B,mEAAmE;IACnE,OAAO,uBAAuB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;SACzE,IAAI,CAAC,oBAAoB,CAAC;SAC1B,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAgC,EAAE,UAAU,GAAG,KAAK;IAChF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAC5C,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;QACzB,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG;YACxB,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,iBAAiB,EAAE;YAC5B,KAAK,EAAE,iBAAiB,EAAE;YAC1B,OAAO,EAAE,iBAAiB,EAAE;YAC5B,KAAK,EAAE,iBAAiB,EAAE;SAC3B,CAAA;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAsB,EAChE,QAAiC,SAAS;IAE1C,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;IACvB,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,IAAI,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAChE,IAAI,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;SACnC;aAAM;YACL,aAAa,CAAC,KAAK,GAAG,KAAK,CAAA;SAC5B;KACF;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IACvD,IAAI,CAAC,OAAO,IAAI,aAAa,EAAE;QAC7B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;SACvD;aAAM;YACL,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;SACvC;KACF;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;IACjD,
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"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"}
|
package/build/headless.js
CHANGED
|
@@ -17,6 +17,7 @@ export * from './components/FEAASComponent.js';
|
|
|
17
17
|
export * from './components/FEAASLoader.js';
|
|
18
18
|
export * from './components/FEAASStylesheet.js';
|
|
19
19
|
export * from './utils/datapath.js';
|
|
20
|
+
export * as Thumbnail from './dom/thumbnail.js';
|
|
20
21
|
if (typeof window != 'undefined') {
|
|
21
22
|
window.FEAASElement = FEAASElement;
|
|
22
23
|
(_a = window.FEAASLoading) !== null && _a !== void 0 ? _a : (window.FEAASLoading = Promise.resolve());
|
package/build/headless.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless.js","sourceRoot":"","sources":["../src/headless.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,YAAY,MAAM,8BAA8B,CAAA;AAEvD,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"headless.js","sourceRoot":"","sources":["../src/headless.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,YAAY,MAAM,8BAA8B,CAAA;AAEvD,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,qBAAqB,CAAA;AACnC,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAA;AAS/C,IAAI,OAAO,MAAM,IAAI,WAAW,EAAE;IAChC,MAAM,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,MAAA,MAAM,CAAC,YAAY,oCAAnB,MAAM,CAAC,YAAY,GAAK,OAAO,CAAC,OAAO,EAAE,EAAA;CAC1C"}
|
package/build/ui/FEAASContext.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FEAASBase } from '../components/FEAASBase.js';
|
|
2
|
-
|
|
2
|
+
import { ControlledPromise } from '../utils/promise.js';
|
|
3
|
+
export function FEAASContextProps(element) {
|
|
3
4
|
var _a, _b, _c, _d;
|
|
4
5
|
return {
|
|
5
6
|
library: element === null || element === void 0 ? void 0 : element.getAttribute('library'),
|
|
@@ -21,11 +22,15 @@ class FEAASContext extends FEAASBase {
|
|
|
21
22
|
this.defaultProps = {
|
|
22
23
|
isolate: true
|
|
23
24
|
};
|
|
24
|
-
this.onStatusChange = (status) => {
|
|
25
|
+
this.onStatusChange = (status, sdk) => {
|
|
25
26
|
if (status == 'ready') {
|
|
26
|
-
this.
|
|
27
|
+
this.whenSDKReady.resolve(sdk);
|
|
28
|
+
this.dispatchEvent(new CustomEvent('feaasReady', { bubbles: true, composed: true, detail: sdk }));
|
|
27
29
|
}
|
|
28
30
|
};
|
|
31
|
+
this.whenSDKReady = ControlledPromise((sdk) => {
|
|
32
|
+
this.sdk = sdk;
|
|
33
|
+
});
|
|
29
34
|
}
|
|
30
35
|
getProps() {
|
|
31
36
|
return FEAASContextProps(this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FEAASContext.js","sourceRoot":"","sources":["../../src/ui/FEAASContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAkB,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"FEAASContext.js","sourceRoot":"","sources":["../../src/ui/FEAASContext.tsx"],"names":[],"mappings":"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"}
|
package/build/ui/FEAASEditor.js
CHANGED
|
@@ -31,7 +31,7 @@ export function getFramePosition(element) {
|
|
|
31
31
|
};
|
|
32
32
|
}, { left: 0, top: 0 });
|
|
33
33
|
}
|
|
34
|
-
export function FEAASEditorProps(element
|
|
34
|
+
export function FEAASEditorProps(element) {
|
|
35
35
|
var _a;
|
|
36
36
|
return {
|
|
37
37
|
context: HTMLElement,
|
|
@@ -363,15 +363,15 @@ class FEAASEditor extends FEAASBase {
|
|
|
363
363
|
});
|
|
364
364
|
this.setAttribute('state', 'ready');
|
|
365
365
|
}
|
|
366
|
-
render({ children, component: componentId, version: versionId, instance: instanceId }, { Editor, VersionStatusList, VersionStatusButton, Version, VersionMenu, EditorUIUndo, EditorUIMode, React: { useEffect, useMemo, useState, useContext }, Chakra: { HStack, Box, Button, MenuItem }, Chrome, ReactDOM, useSDK, useSlots, useModelObserver, ConfirmationContext, VersionContext }) {
|
|
366
|
+
render({ children, component: componentId, version: versionId, instance: instanceId }, { Editor, VersionStatusList, VersionStatusButton, Version, VersionMenu, EditorUIUndo, EditorUIMode, React: { useEffect, useMemo, useState, useContext }, Chakra: { HStack, Box, Button, MenuItem }, Chrome, ReactDOM, useSDK, useLibrary, useSlots, useModelObserver, ConfirmationContext, VersionContext }) {
|
|
367
367
|
if (!this.payload)
|
|
368
368
|
return;
|
|
369
369
|
const { React } = this.payload;
|
|
370
|
-
const
|
|
370
|
+
const sdk = useSDK();
|
|
371
|
+
const library = useLibrary();
|
|
371
372
|
const [component, setComponent] = useState();
|
|
372
373
|
const { setConfirm } = useContext(ConfirmationContext);
|
|
373
374
|
const usedId = instanceId || versionId;
|
|
374
|
-
const library = sdk.library;
|
|
375
375
|
if (component)
|
|
376
376
|
this.component = component;
|
|
377
377
|
useEffect(() => {
|
|
@@ -504,7 +504,7 @@ class FEAASEditor extends FEAASBase {
|
|
|
504
504
|
: null;
|
|
505
505
|
} },
|
|
506
506
|
React.createElement(Box, { className: 'editor-wrapper', position: 'absolute', left: 0, top: 0 },
|
|
507
|
-
React.createElement(Editor, { datasources: sdk.datasources, sdk: sdk, library:
|
|
507
|
+
React.createElement(Editor, { datasources: sdk.datasources, sdk: sdk, library: library, component: component, versions: versions, context: {
|
|
508
508
|
isAutosaveEnabled: false,
|
|
509
509
|
onChromeMeasure: this.onMeasure,
|
|
510
510
|
onChromeBeforeMeasure: this.onBeforeMeasure,
|