@sitecore-feaas/clientside 0.1.19 → 0.1.20
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/build/basic.js +5 -1
- package/build/basic.js.map +1 -1
- package/build/cloud.js +40 -7
- package/build/cloud.js.map +1 -1
- package/build/components/FEAASBase.js +60 -21
- package/build/components/FEAASBase.js.map +1 -1
- package/build/components/FEAASComponent.js +35 -1
- package/build/components/FEAASComponent.js.map +1 -1
- package/build/components/FEAASElement.js +14 -0
- package/build/components/FEAASElement.js.map +1 -0
- package/build/components/FEAASLoader.js +13 -1
- package/build/components/FEAASLoader.js.map +1 -1
- package/build/components/FEAASStylesheet.js.map +1 -1
- package/build/dom.js +6 -0
- package/build/dom.js.map +1 -1
- package/build/fetch.js +48 -45
- package/build/fetch.js.map +1 -1
- package/build/ui/FEAASContext.js +12 -13
- package/build/ui/FEAASContext.js.map +1 -1
- package/build/ui/FEAASEditor.js +448 -76
- package/build/ui/FEAASEditor.js.map +1 -1
- package/build/ui/FEAASPicker.js +9 -59
- package/build/ui/FEAASPicker.js.map +1 -1
- package/dist/browser/basic.esm.js +5 -5
- package/dist/browser/basic.esm.js.map +1 -1
- package/dist/browser/basic.js +5 -5
- package/dist/browser/basic.js.map +1 -1
- package/dist/browser/index.esm.js +5 -10
- package/dist/browser/index.esm.js.map +1 -1
- package/dist/browser/index.js +5 -10
- package/dist/browser/index.js.map +1 -1
- package/dist/node/basic.esm.js +3 -3
- package/dist/node/basic.esm.js.map +1 -1
- package/dist/node/basic.js +3 -3
- package/dist/node/basic.js.map +1 -1
- package/dist/node/index.esm.js +3 -8
- package/dist/node/index.esm.js.map +1 -1
- package/dist/node/index.js +3 -8
- package/dist/node/index.js.map +1 -1
- package/examples/index.html +8 -49
- package/package.json +1 -6
- package/src/basic.ts +8 -1
- package/src/cloud.ts +43 -13
- package/src/components/FEAASBase.tsx +73 -20
- package/src/components/{FEAASComponent.ts → FEAASComponent.tsx} +37 -1
- package/src/components/FEAASElement.tsx +21 -0
- package/src/components/{FEAASLoader.ts → FEAASLoader.tsx} +14 -1
- package/src/components/{FEAASStylesheet.ts → FEAASStylesheet.tsx} +0 -0
- package/src/dom.ts +5 -0
- package/src/fetch.ts +82 -51
- package/src/ui/FEAASContext.tsx +13 -14
- package/src/ui/FEAASEditor.tsx +598 -144
- package/src/ui/FEAASPicker.tsx +18 -65
- package/test/components.ts +19 -0
- package/types/basic.d.ts +3 -0
- package/types/basic.d.ts.map +1 -1
- package/types/cloud.d.ts +8 -1
- package/types/cloud.d.ts.map +1 -1
- package/types/components/FEAASBase.d.ts +18 -4
- package/types/components/FEAASBase.d.ts.map +1 -1
- package/types/components/FEAASComponent.d.ts +7 -0
- package/types/components/FEAASComponent.d.ts.map +1 -1
- package/types/components/FEAASElement.d.ts +12 -0
- package/types/components/FEAASElement.d.ts.map +1 -0
- package/types/components/FEAASLoader.d.ts +6 -0
- package/types/components/FEAASLoader.d.ts.map +1 -1
- package/types/components/FEAASStylesheet.d.ts +2 -2
- package/types/components/FEAASStylesheet.d.ts.map +1 -1
- package/types/dom.d.ts.map +1 -1
- package/types/fetch.d.ts +42 -1
- package/types/fetch.d.ts.map +1 -1
- package/types/tsbuildinfo +1 -1
- package/types/tsbuildinfo_ui +1 -1
- package/types/ui/FEAASContext.d.ts +4 -4
- package/types/ui/FEAASContext.d.ts.map +1 -1
- package/types/ui/FEAASEditor.d.ts +71 -5
- package/types/ui/FEAASEditor.d.ts.map +1 -1
- package/types/ui/FEAASPicker.d.ts +15 -34
- package/types/ui/FEAASPicker.d.ts.map +1 -1
package/build/fetch.js
CHANGED
|
@@ -1,56 +1,59 @@
|
|
|
1
|
-
/* Utility to cache-bust static files.
|
|
2
|
-
|
|
3
|
-
It handles multiple situations:
|
|
4
|
-
|
|
5
|
-
1. Initial request, valid response
|
|
6
|
-
2. Initial request, invalid response
|
|
7
|
-
2. Initial request, missing response
|
|
8
|
-
3. Cached request, valid response (1 extra head request)
|
|
9
|
-
4. Cached request, invalid response, valid refetch (2 fetches + 1 head)
|
|
10
|
-
5. Cached request, invalid response, invalid refetch (2 fetches + 1 head)
|
|
11
|
-
|
|
12
|
-
It works as promise, but also accepts callback to use cached blobs mid-flight and have access to headers.
|
|
13
|
-
Any network errors will not caught.
|
|
14
|
-
Function throws when unable to fetch valid response.
|
|
15
|
-
|
|
16
|
-
*/
|
|
17
1
|
export async function fetchAndRevalidate(url, options, validator, callback) {
|
|
18
2
|
// make request as usual, see if there's cached version of an asset
|
|
3
|
+
return fetchAndValidate({ url, options, validator, callback })
|
|
4
|
+
.then(refetchAndValidate)
|
|
5
|
+
.then((result) => result.response);
|
|
6
|
+
}
|
|
7
|
+
export async function fetchAndValidate({ url, options, validator, callback }, phase = 'initial') {
|
|
19
8
|
const date = new Date();
|
|
20
|
-
|
|
21
|
-
|
|
9
|
+
console.log('fetch', phase, url);
|
|
10
|
+
const response = await fetch(url, options);
|
|
11
|
+
if (!response.ok)
|
|
22
12
|
throw new Error('Fetch failed');
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
callback(initialResponse, 'cached');
|
|
13
|
+
if ((validator === null || validator === void 0 ? void 0 : validator(response)) === false)
|
|
14
|
+
throw new Error('Response is not valid');
|
|
26
15
|
// see if response was pulled from cache
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
16
|
+
const isCached = new Date(response.headers.get('date')) < date;
|
|
17
|
+
callback === null || callback === void 0 ? void 0 : callback(response, phase);
|
|
18
|
+
return {
|
|
19
|
+
url,
|
|
20
|
+
options,
|
|
21
|
+
isCached,
|
|
22
|
+
response,
|
|
23
|
+
validator
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export async function refetchAndValidate(request) {
|
|
27
|
+
const { url, isCached, options, validator, response, callback } = request;
|
|
28
|
+
if (isCached) {
|
|
29
|
+
// check if response was stale by sending quick HEAD request busting cache
|
|
30
|
+
const { response: head } = await fetchAndValidate({
|
|
31
|
+
url: url + '?' + Math.random(),
|
|
32
|
+
options: {
|
|
33
|
+
...options,
|
|
34
|
+
method: 'HEAD',
|
|
35
|
+
cache: 'no-cache'
|
|
36
|
+
},
|
|
37
|
+
validator
|
|
38
|
+
}, 'check');
|
|
34
39
|
// there's a newer version of the file that we may fetch
|
|
35
|
-
if (
|
|
36
|
-
// check if re-fetching is even necessary
|
|
37
|
-
if (validator(freshHeadResponse) === false) {
|
|
38
|
-
//callback('stale', freshHeadResponse)
|
|
39
|
-
throw new Error('Response is stale');
|
|
40
|
-
}
|
|
40
|
+
if (head.headers.get('last-modified') != response.headers.get('last-modified')) {
|
|
41
41
|
// otherwise the new resource has to be re-fetched
|
|
42
|
-
|
|
43
|
-
...options,
|
|
44
|
-
cache: 'reload'
|
|
45
|
-
});
|
|
42
|
+
return invalidateRequest(request);
|
|
46
43
|
}
|
|
47
44
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
45
|
+
return request;
|
|
46
|
+
}
|
|
47
|
+
export async function invalidateRequest(request) {
|
|
48
|
+
const { url, options, validator, callback } = request;
|
|
49
|
+
return fetchAndValidate({
|
|
50
|
+
url,
|
|
51
|
+
options: {
|
|
52
|
+
...options,
|
|
53
|
+
cache: 'reload'
|
|
54
|
+
},
|
|
55
|
+
validator,
|
|
56
|
+
callback
|
|
57
|
+
}, 'updated');
|
|
55
58
|
}
|
|
56
59
|
//# sourceMappingURL=fetch.js.map
|
package/build/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"AAqBA,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAA8B,EAC9B,OAAuC,EACvC,SAA2C,EAC3C,QAAyC;IAEzC,mEAAmE;IACnE,OAAO,gBAAgB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;SAC3D,IAAI,CAAC,kBAAkB,CAAC;SACxB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAsB,EACzD,QAAyC,SAAS;IAElD,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;IACvB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAC1C,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;IACjD,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,QAAQ,CAAC,MAAK,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC7E,wCAAwC;IACxC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAA;IAC9D,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC3B,OAAO;QACL,GAAG;QACH,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;KACV,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA4E;IACnH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IACzE,IAAI,QAAQ,EAAE;QACZ,0EAA0E;QAC1E,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,gBAAgB,CAC/C;YACE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;YAC9B,OAAO,EAAE;gBACP,GAAG,OAAO;gBACV,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,UAAU;aAClB;YACD,SAAS;SACV,EACD,OAAO,CACR,CAAA;QAED,wDAAwD;QACxD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;YAC9E,kDAAkD;YAClD,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAA;SAClC;KACF;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAA2B;IACjE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IACrD,OAAO,gBAAgB,CACrB;QACE,GAAG;QACH,OAAO,EAAE;YACP,GAAG,OAAO;YACV,KAAK,EAAE,QAAQ;SAChB;QACD,SAAS;QACT,QAAQ;KACT,EACD,SAAS,CACV,CAAA;AACH,CAAC"}
|
package/build/ui/FEAASContext.js
CHANGED
|
@@ -3,7 +3,7 @@ export function FEAASContextProps(element = this) {
|
|
|
3
3
|
var _a, _b, _c, _d;
|
|
4
4
|
return {
|
|
5
5
|
library: element === null || element === void 0 ? void 0 : element.getAttribute('library'),
|
|
6
|
-
src: (_a = element === null || element === void 0 ? void 0 : element.getAttribute('src')) !== null && _a !== void 0 ? _a : '/
|
|
6
|
+
src: (_a = element === null || element === void 0 ? void 0 : element.getAttribute('src')) !== null && _a !== void 0 ? _a : '/context.js',
|
|
7
7
|
frontend: (_b = element === null || element === void 0 ? void 0 : element.getAttribute('frontend')) !== null && _b !== void 0 ? _b : 'https://components.sitecoreclud.io',
|
|
8
8
|
backend: (_c = element === null || element === void 0 ? void 0 : element.getAttribute('backend')) !== null && _c !== void 0 ? _c : 'https://components-api.sitecoreclud.io',
|
|
9
9
|
cdn: (_d = element === null || element === void 0 ? void 0 : element.getAttribute('cdn')) !== null && _d !== void 0 ? _d : 'https://feaascompontsapiprod.blob.core.windows.net',
|
|
@@ -28,20 +28,19 @@ export class FEAASContext extends FEAASBase {
|
|
|
28
28
|
getRoot() {
|
|
29
29
|
return this.shadowRoot || this.attachShadow({ mode: 'open' });
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
if (!this.
|
|
33
|
-
this.
|
|
34
|
-
this.getRoot().appendChild(this.
|
|
31
|
+
getReactRootElement() {
|
|
32
|
+
if (!this.reactRootElement) {
|
|
33
|
+
this.reactRootElement = document.createElement('div');
|
|
34
|
+
this.getRoot().appendChild(this.reactRootElement);
|
|
35
35
|
}
|
|
36
|
-
return this.
|
|
36
|
+
return this.reactRootElement;
|
|
37
37
|
}
|
|
38
38
|
/** Pull in children FEAAS react elements into the shadow DOM so they receieve the styles */
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
39
|
+
connectedCallback() {
|
|
40
|
+
Array.from(this.children).forEach((child) => {
|
|
41
|
+
this.getRoot().appendChild(child);
|
|
42
|
+
});
|
|
43
|
+
super.connectedCallback();
|
|
45
44
|
}
|
|
46
45
|
renderReact({ children, library }, { AppContext, Chakra: { Button, Tooltip }, React }) {
|
|
47
46
|
const portalProps = {
|
|
@@ -52,7 +51,7 @@ export class FEAASContext extends FEAASBase {
|
|
|
52
51
|
placement: 'top',
|
|
53
52
|
portalProps
|
|
54
53
|
};
|
|
55
|
-
return (React.createElement(AppContext, { libraryId: this.props.library, container: this.getRoot(), getToken: this.props.getToken, getTheme: this.getTheme, modalProps: {
|
|
54
|
+
return (React.createElement(AppContext, { backend: this.props.backend, libraryId: this.props.library, container: this.getRoot(), getToken: this.props.getToken, getTheme: this.getTheme, modalProps: {
|
|
56
55
|
portalProps
|
|
57
56
|
}, chakraProps: {
|
|
58
57
|
cssVarsRoot: ':host',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FEAASContext.js","sourceRoot":"","sources":["../../src/ui/FEAASContext.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAkB,MAAM,4BAA4B,CAAA;AAEtE,MAAM,UAAU,iBAAiB,CAAC,UAAuB,IAAI;;IAC3D,OAAO;QACL,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC,SAAS,CAAW;QACnD,GAAG,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC,KAAK,CAAC,mCAAI,
|
|
1
|
+
{"version":3,"file":"FEAASContext.js","sourceRoot":"","sources":["../../src/ui/FEAASContext.tsx"],"names":[],"mappings":"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"}
|