@sitecore-feaas/clientside 0.1.19 → 0.1.21
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 +68 -29
- package/build/components/FEAASBase.js.map +1 -1
- package/build/components/FEAASComponent.js +36 -2
- package/build/components/FEAASComponent.js.map +1 -1
- package/build/components/FEAASElement.js +19 -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 +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 +13 -14
- 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 +82 -32
- package/src/components/{FEAASComponent.ts → FEAASComponent.tsx} +38 -2
- package/src/components/FEAASElement.tsx +32 -0
- package/src/components/{FEAASLoader.ts → FEAASLoader.tsx} +14 -1
- package/src/components/{FEAASStylesheet.ts → FEAASStylesheet.tsx} +1 -1
- package/src/dom.ts +5 -0
- package/src/fetch.ts +82 -51
- package/src/ui/FEAASContext.tsx +14 -15
- package/src/ui/FEAASEditor.tsx +599 -145
- package/src/ui/FEAASPicker.tsx +19 -66
- 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 +20 -6
- package/types/components/FEAASBase.d.ts.map +1 -1
- package/types/components/FEAASComponent.d.ts +8 -1
- package/types/components/FEAASComponent.d.ts.map +1 -1
- package/types/components/FEAASElement.d.ts +21 -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 +3 -3
- 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 +70 -4
- package/types/ui/FEAASEditor.d.ts.map +1 -1
- package/types/ui/FEAASPicker.d.ts +14 -33
- package/types/ui/FEAASPicker.d.ts.map +1 -1
package/src/ui/FEAASPicker.tsx
CHANGED
|
@@ -4,18 +4,23 @@ import { FEAASBase } from '../components/FEAASBase.js'
|
|
|
4
4
|
export function FEAASPickerProps(element: FEAASBase<any, any> = this) {
|
|
5
5
|
return {
|
|
6
6
|
part: element?.getAttribute('part') || 'picker',
|
|
7
|
-
slot: element?.getAttribute('part') || '
|
|
8
|
-
mode: element?.getAttribute('mode') as 'library' | '
|
|
7
|
+
slot: element?.getAttribute('part') || 'picker',
|
|
8
|
+
mode: element?.getAttribute('mode') as 'library' | 'element' | 'themes',
|
|
9
|
+
placeholder: element?.getAttribute('placeholder') || 'No theme',
|
|
9
10
|
frontend: element?.getContextAttribute('frontend') ?? 'https://components.sitecorecloud.io',
|
|
10
|
-
src: element?.getAttribute('src') ?? '/
|
|
11
|
+
src: element?.getAttribute('src') ?? '/picker.js',
|
|
11
12
|
hidden: element?.getAttribute('hidden') != null,
|
|
13
|
+
variant: element?.getAttribute('variant') as 'internal' | 'pages',
|
|
12
14
|
context: undefined as FEAASPickerImports.PickerProps['context'],
|
|
13
|
-
onClose: undefined as (...args: any[]) =>
|
|
15
|
+
onClose: undefined as (...args: any[]) => void,
|
|
16
|
+
onContextAttributeSet: undefined as (context: any, attribute: string, value: string) => void
|
|
14
17
|
}
|
|
15
18
|
}
|
|
16
19
|
type FEAASPickerProps = ReturnType<typeof FEAASPickerProps>
|
|
17
20
|
|
|
18
21
|
export class FEAASPicker extends FEAASBase<FEAASPickerProps, typeof FEAASPickerImports> {
|
|
22
|
+
static observedAttributes = ['library', 'mode', 'frontend', 'src', 'hidden', 'variant']
|
|
23
|
+
|
|
19
24
|
getProps() {
|
|
20
25
|
return FEAASPickerProps(this)
|
|
21
26
|
}
|
|
@@ -24,12 +29,19 @@ export class FEAASPicker extends FEAASBase<FEAASPickerProps, typeof FEAASPickerI
|
|
|
24
29
|
return import(/* @vite-ignore */ /* webpackIgnore: true */ this.formatURL(this.props.src, this.props.frontend))
|
|
25
30
|
}
|
|
26
31
|
|
|
27
|
-
|
|
28
|
-
{ context, mode, children }: React.PropsWithChildren<FEAASPickerProps>,
|
|
32
|
+
render(
|
|
33
|
+
{ placeholder, context, mode, children, variant }: React.PropsWithChildren<FEAASPickerProps>,
|
|
29
34
|
{ Picker, React, ReactDOM }: typeof FEAASPickerImports
|
|
30
35
|
) {
|
|
31
36
|
return (
|
|
32
|
-
<Picker
|
|
37
|
+
<Picker
|
|
38
|
+
placeholder={placeholder}
|
|
39
|
+
mode={mode || undefined}
|
|
40
|
+
onClose={this.props.onClose}
|
|
41
|
+
onContextAttributeSet={this.props.onContextAttributeSet}
|
|
42
|
+
context={context}
|
|
43
|
+
variant={variant}
|
|
44
|
+
>
|
|
33
45
|
{children}
|
|
34
46
|
</Picker>
|
|
35
47
|
)
|
|
@@ -39,67 +51,8 @@ declare global {
|
|
|
39
51
|
namespace JSX {
|
|
40
52
|
interface IntrinsicElements {
|
|
41
53
|
'feaas-picker': Partial<typeof FEAASPickerImports>
|
|
42
|
-
'feaas-picker-lazy': Partial<typeof FEAASPickerImports>
|
|
43
54
|
}
|
|
44
55
|
}
|
|
45
56
|
}
|
|
46
57
|
|
|
47
58
|
FEAASPicker.register('feaas-picker')
|
|
48
|
-
|
|
49
|
-
export function FEAASPickerLazyProps(element: FEAASBase<any, any> = this) {
|
|
50
|
-
return {
|
|
51
|
-
library: element?.getAttribute('library') || 'library',
|
|
52
|
-
mode: element?.getAttribute('mode') as 'library' | 'stylesheet',
|
|
53
|
-
frontend: element?.getContextAttribute('frontend') ?? 'https://components.sitecorecloud.io',
|
|
54
|
-
src: element?.getAttribute('src') ?? '/assets/picker.js',
|
|
55
|
-
hidden: element?.getAttribute('hidden') != null,
|
|
56
|
-
context: null as FEAASPickerImports.PickerProps['context'],
|
|
57
|
-
getToken: null as (options: any) => Promise<string>
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
type FEAASPickerLazyProps = ReturnType<typeof FEAASPickerLazyProps>
|
|
61
|
-
|
|
62
|
-
export class FEAASPickerLazy extends FEAASBase<FEAASPickerLazyProps, typeof FEAASPickerImports> {
|
|
63
|
-
static observedAttributes = ['library', 'mode', 'frontend', 'src', 'context']
|
|
64
|
-
|
|
65
|
-
payload = null as any
|
|
66
|
-
getProps() {
|
|
67
|
-
return FEAASPickerLazyProps(this)
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
onClose = () => {
|
|
71
|
-
this.removeAttribute('mode')
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
render() {
|
|
75
|
-
const { frontend, library, getToken, src, mode, context } = this.props
|
|
76
|
-
|
|
77
|
-
if (this.getAttribute('mode') == null) {
|
|
78
|
-
this.setAttribute('hidden', 'hidden')
|
|
79
|
-
} else {
|
|
80
|
-
this.removeAttribute('hidden')
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if (this.children.length == 0)
|
|
84
|
-
this.innerHTML = `
|
|
85
|
-
<feaas-context library='${library}'>
|
|
86
|
-
<feaas-picker mode='${mode}'>
|
|
87
|
-
<feaas-loader />
|
|
88
|
-
</feaas-context>
|
|
89
|
-
`
|
|
90
|
-
|
|
91
|
-
this.refs.context.set({
|
|
92
|
-
frontend: frontend,
|
|
93
|
-
library: library,
|
|
94
|
-
getToken: getToken
|
|
95
|
-
})
|
|
96
|
-
this.refs.picker.set({
|
|
97
|
-
frontend: frontend,
|
|
98
|
-
context: context,
|
|
99
|
-
src: src,
|
|
100
|
-
mode: mode,
|
|
101
|
-
onClose: this.onClose
|
|
102
|
-
})
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
FEAASPickerLazy.register('feaas-picker-lazy')
|
package/test/components.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { expect } from 'vitest'
|
|
2
2
|
import { describe, it, assert, beforeAll } from 'vitest'
|
|
3
|
+
import { renderDOMContent } from '../src/dom.js'
|
|
4
|
+
import { FEAASComponent } from '../src/components/FEAASComponent.js'
|
|
3
5
|
|
|
4
6
|
describe('Components', () => {
|
|
5
7
|
describe('<feaas-context>', () => {
|
|
@@ -9,4 +11,21 @@ describe('Components', () => {
|
|
|
9
11
|
expect('').toEqual('')
|
|
10
12
|
})
|
|
11
13
|
})
|
|
14
|
+
describe('<feaas-component>', () => {
|
|
15
|
+
it('render without data', () => {
|
|
16
|
+
const component = new FEAASComponent()
|
|
17
|
+
const div = document.createElement('div')
|
|
18
|
+
div.appendChild(component)
|
|
19
|
+
document.body.appendChild(div)
|
|
20
|
+
renderDOMContent(component, `<section class="-theme--abc test"></section><section class="-theme--cde"></section>`)
|
|
21
|
+
expect(div.innerHTML).toEqual(
|
|
22
|
+
`<feaas-component class="-feaas"><section class="-theme--abc test"></section><section class="-theme--cde"></section></feaas-component>`
|
|
23
|
+
)
|
|
24
|
+
component.className = '-theme--override test2'
|
|
25
|
+
renderDOMContent(component, `<section class="-theme--abc test"></section><section class="-theme--cde"></section>`)
|
|
26
|
+
expect(div.innerHTML).toEqual(
|
|
27
|
+
`<feaas-component class="-theme--override test2 -feaas"><section class="test"></section><section class=""></section></feaas-component>`
|
|
28
|
+
)
|
|
29
|
+
})
|
|
30
|
+
})
|
|
12
31
|
})
|
package/types/basic.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
+
import FEAASElement from './components/FEAASElement.js';
|
|
1
2
|
export * from './dom.js';
|
|
2
3
|
export * from './fetch.js';
|
|
3
4
|
export * from './components/FEAASBase.js';
|
|
5
|
+
export * from './components/FEAASElement.js';
|
|
4
6
|
export * from './components/FEAASComponent.js';
|
|
5
7
|
export * from './components/FEAASLoader.js';
|
|
6
8
|
export * from './components/FEAASStylesheet.js';
|
|
7
9
|
declare global {
|
|
8
10
|
interface Window {
|
|
9
11
|
FEAASLoading: Promise<any>;
|
|
12
|
+
FEAASElement: typeof FEAASElement;
|
|
10
13
|
}
|
|
11
14
|
}
|
|
12
15
|
//# sourceMappingURL=basic.d.ts.map
|
package/types/basic.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../src/basic.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,2BAA2B,CAAA;AACzC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iCAAiC,CAAA;AAE/C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../src/basic.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,8BAA8B,CAAA;AAEvD,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iCAAiC,CAAA;AAE/C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QAC1B,YAAY,EAAE,OAAO,YAAY,CAAA;KAClC;CACF"}
|
package/types/cloud.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export interface CloudTemplate {
|
|
|
5
5
|
component: string;
|
|
6
6
|
version: string;
|
|
7
7
|
revision?: string;
|
|
8
|
+
instance?: string;
|
|
8
9
|
}
|
|
9
10
|
export interface CloudStylesheet {
|
|
10
11
|
cdn?: string;
|
|
@@ -14,6 +15,12 @@ export interface CloudStylesheet {
|
|
|
14
15
|
}
|
|
15
16
|
export declare function getComponentURL({ cdn, hostname, library, component, version, revision }: CloudTemplate): string;
|
|
16
17
|
export declare function getStylesheetURL({ cdn, hostname, library, revision }: CloudStylesheet): string;
|
|
17
|
-
export declare function fetchComponent(props: CloudTemplate, callback: (html: string) => void): Promise<
|
|
18
|
+
export declare function fetchComponent(props: CloudTemplate, callback: (html: string) => void): Promise<{
|
|
19
|
+
url: RequestInfo | URL;
|
|
20
|
+
options: RequestInit;
|
|
21
|
+
isCached: boolean;
|
|
22
|
+
response: Response;
|
|
23
|
+
validator: (resposne: Response) => boolean;
|
|
24
|
+
} | (import("./fetch.js").ValidatableRequest & Required<Pick<import("./fetch.js").ValidatableRequest, "response">>)>;
|
|
18
25
|
export declare function fetchStylesheet(props: CloudStylesheet, callback: (css: string) => void): Promise<Response>;
|
|
19
26
|
//# sourceMappingURL=cloud.d.ts.map
|
package/types/cloud.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../src/cloud.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AACD,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;CACtD;AAED,wBAAgB,eAAe,CAAC,EAC9B,GAA2D,EAC3D,QAAQ,EACR,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAsB,EACvB,EAAE,aAAa,UAEf;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,GAA2D,EAC3D,QAAQ,EACR,OAAO,EACP,QAAsB,EACvB,EAAE,eAAe,UAEjB;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI
|
|
1
|
+
{"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../src/cloud.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AACD,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;CACtD;AAED,wBAAgB,eAAe,CAAC,EAC9B,GAA2D,EAC3D,QAAQ,EACR,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAsB,EACvB,EAAE,aAAa,UAEf;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,GAA2D,EAC3D,QAAQ,EACR,OAAO,EACP,QAAsB,EACvB,EAAE,eAAe,UAEjB;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;;;;;;qHA4C1F;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,qBAe5F"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ReactElement, ReactNode } from 'react';
|
|
2
|
+
import type ReactDOMClient from 'react-dom/client';
|
|
2
3
|
import type React from 'react';
|
|
3
4
|
export declare type OptionalExcept<T, K extends keyof T> = Pick<T, K> & Partial<Omit<T, K>>;
|
|
4
5
|
declare var WebComponent: {
|
|
@@ -15,25 +16,37 @@ export declare class FEAASBase<Props = any, Payload = any> extends WebComponent
|
|
|
15
16
|
/** Timer until next tick */
|
|
16
17
|
nextRender: number;
|
|
17
18
|
/** Is/was component in the dom? */
|
|
18
|
-
connected:
|
|
19
|
+
connected: boolean;
|
|
19
20
|
/** Result of lazy loading */
|
|
20
21
|
payload: Payload;
|
|
21
22
|
refs: Record<string, FEAASBase>;
|
|
22
23
|
descendants: FEAASBase[];
|
|
24
|
+
constructor();
|
|
23
25
|
/** Attaches shadow root if getShadowRootOptions any settings, or uses element itself */
|
|
24
26
|
getRoot(): FEAASBase | HTMLElement | ShadowRoot;
|
|
25
27
|
/** Attribute changes trigger props parsing and schedules re-rendering */
|
|
26
28
|
attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
|
|
27
29
|
/** Components parses its attributes when connected, and schedules rendeirng */
|
|
28
30
|
connectedCallback(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Web components are initialized depth-first, making child elements render before its parents. This could here
|
|
33
|
+
* attempts to avoid this and inverts the initialization logic, so that children are initialized in the context of its
|
|
34
|
+
* already-initialized parents.
|
|
35
|
+
*
|
|
36
|
+
* FEAAS components dispatch `feaasConnected` event that allows components to store references to each other. In
|
|
37
|
+
* addition it allows external scripts to listen for initialization of FEAAS components
|
|
38
|
+
*/
|
|
39
|
+
initialize(): boolean;
|
|
40
|
+
getParent(onlyFeaas?: boolean): HTMLElement;
|
|
41
|
+
getElements(root?: HTMLElement | ShadowRoot, onlyFeaas?: boolean): HTMLElement[];
|
|
29
42
|
/** Nothing special happens on disconnect, except setting a flag */
|
|
30
43
|
disconnectedCallback(): void;
|
|
31
44
|
/** Catch-all event handler that dispatches events to callback */
|
|
32
45
|
handleEvent(event: Event): void;
|
|
33
46
|
/** Act on children element being removed */
|
|
34
|
-
unnestedCallback(
|
|
47
|
+
unnestedCallback(target: FEAASBase): void;
|
|
35
48
|
/** Act on children element being added */
|
|
36
|
-
nestedCallback(
|
|
49
|
+
nestedCallback(target: FEAASBase): boolean | void;
|
|
37
50
|
getComponentName(): string;
|
|
38
51
|
/**
|
|
39
52
|
* Check if lazy component is ready to be loaded. For example a component may stay unloaded unless certain attributes
|
|
@@ -51,9 +64,10 @@ export declare class FEAASBase<Props = any, Payload = any> extends WebComponent
|
|
|
51
64
|
* the component needs to provide React & ReactDOM references in its payload. Web component redefine its render to not
|
|
52
65
|
* use react at all
|
|
53
66
|
*/
|
|
54
|
-
|
|
67
|
+
update(nested?: boolean): any;
|
|
55
68
|
invokeReactRendering(): ReactNode;
|
|
56
69
|
reactWrapper: (props?: any) => ReactNode;
|
|
70
|
+
reactRoot: ReactDOMClient.Root;
|
|
57
71
|
getReactWrapper(target?: FEAASBase, displayName?: string): (props?: any) => any;
|
|
58
72
|
uid: string;
|
|
59
73
|
getUID(): string;
|
|
@@ -62,8 +76,8 @@ export declare class FEAASBase<Props = any, Payload = any> extends WebComponent
|
|
|
62
76
|
* Render method that is pretty much the same as React Functional component, but with extra second argument for
|
|
63
77
|
* payload (usually result of import, it is expected to have React in scope).
|
|
64
78
|
*/
|
|
65
|
-
|
|
66
|
-
|
|
79
|
+
render?(props: React.PropsWithChildren<typeof this.props>, payload: typeof this.payload): ReactNode | ReactElement;
|
|
80
|
+
getReactRootElement(): HTMLElement | ShadowRoot;
|
|
67
81
|
/** Set props and return values on new next tick */
|
|
68
82
|
set(overrides?: Partial<Props>): void;
|
|
69
83
|
/** Schedule rendering on next tick, to batch multiple attribute changes */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FEAASBase.d.ts","sourceRoot":"","sources":["../../src/components/FEAASBase.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAyB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"FEAASBase.d.ts","sourceRoot":"","sources":["../../src/components/FEAASBase.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,8 @@ export declare function FEAASComponentsProps(element?: FEAASBase): {
|
|
|
8
8
|
hostname: string;
|
|
9
9
|
cdn: string;
|
|
10
10
|
template: string;
|
|
11
|
+
instance: string;
|
|
12
|
+
editable: boolean;
|
|
11
13
|
suspended: boolean;
|
|
12
14
|
};
|
|
13
15
|
export declare type FEAASComponentsProps = ReturnType<typeof FEAASComponentsProps>;
|
|
@@ -24,13 +26,18 @@ export declare class FEAASComponent extends FEAASBase<FEAASComponentsProps, stri
|
|
|
24
26
|
hostname: string;
|
|
25
27
|
cdn: string;
|
|
26
28
|
template: string;
|
|
29
|
+
instance: string;
|
|
30
|
+
editable: boolean;
|
|
27
31
|
suspended: boolean;
|
|
28
32
|
};
|
|
29
33
|
attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
|
|
34
|
+
getEditor(): any;
|
|
35
|
+
constructor();
|
|
36
|
+
edit(): boolean;
|
|
30
37
|
getOriginal(): FEAASComponent;
|
|
31
38
|
isReadyToLoad(): boolean;
|
|
32
39
|
load(): Promise<void>;
|
|
33
|
-
|
|
40
|
+
update(): void;
|
|
34
41
|
}
|
|
35
42
|
declare global {
|
|
36
43
|
namespace JSX {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FEAASComponent.d.ts","sourceRoot":"","sources":["../../src/components/FEAASComponent.
|
|
1
|
+
{"version":3,"file":"FEAASComponent.d.ts","sourceRoot":"","sources":["../../src/components/FEAASComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAG1D,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,SAAgB;;;;;;;;;;;;EAqB7D;AACD,oBAAY,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAC1E,qBAAa,cAAe,SAAQ,SAAS,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACzE,MAAM,CAAC,kBAAkB,WAWxB;IAED,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,IAAI,EAAE,GAAG;IAIjB,QAAQ;;;;;;;;;;;;;IAIR,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOhF,SAAS,IAAI,GAAG;;IAahB,IAAI;IASJ,WAAW;IAaX,aAAa;IAMP,IAAI;IAcV,MAAM;CAYP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,iBAAiB;YACzB,iBAAiB,EAAE,cAAc,CAAC,oBAAoB,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC,GAAG;gBAC9F,QAAQ,CAAC,EAAE,GAAG,CAAA;aACf,CAAA;SACF;KACF;CACF;AAGD,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ReactNode, ReactElement, JSXElementConstructor } from 'react';
|
|
2
|
+
import type ReactDOMClient from 'react-dom/client';
|
|
3
|
+
import { FEAASBase } from './FEAASBase.js';
|
|
4
|
+
export declare type ReactModules = {
|
|
5
|
+
React: typeof React;
|
|
6
|
+
ReactDOM: typeof ReactDOM;
|
|
7
|
+
ReactDOMClient: typeof ReactDOMClient;
|
|
8
|
+
};
|
|
9
|
+
export declare type ReactJSX = ReactNode | ReactElement<any, string | JSXElementConstructor<any>>;
|
|
10
|
+
export declare type FEAASReactRender<P> = {
|
|
11
|
+
(this: FEAASElement<P>, props: P, payload: ReactModules): ReactJSX;
|
|
12
|
+
};
|
|
13
|
+
export default class FEAASElement<P> extends FEAASBase<P, ReactModules> {
|
|
14
|
+
load(): Promise<{
|
|
15
|
+
React: any;
|
|
16
|
+
ReactDOM: any;
|
|
17
|
+
ReactDOMClient: any;
|
|
18
|
+
}>;
|
|
19
|
+
render({}: P, { React }: ReactModules): ReactJSX;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=FEAASElement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FEAASElement.d.ts","sourceRoot":"","sources":["../../src/components/FEAASElement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,qBAAqB,EAAqB,MAAM,OAAO,CAAA;AAC9F,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,oBAAY,YAAY,GAAG;IACzB,KAAK,EAAE,OAAO,KAAK,CAAA;IACnB,QAAQ,EAAE,OAAO,QAAQ,CAAA;IACzB,cAAc,EAAE,OAAO,cAAc,CAAA;CACtC,CAAA;AACD,oBAAY,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;AACzF,oBAAY,gBAAgB,CAAC,CAAC,IAAI;IAChC,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,QAAQ,CAAA;CACnE,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,YAAY,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC;IACrE,IAAI;;;;;IAaJ,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,YAAY,GAAG,QAAQ;CAGjD"}
|
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import { FEAASBase } from './FEAASBase.js';
|
|
2
2
|
export declare function FEAASLoaderProps(element?: HTMLElement): {
|
|
3
|
+
opacity: number;
|
|
3
4
|
hidden: boolean;
|
|
4
5
|
};
|
|
5
6
|
declare type FEAASLoaderProps = ReturnType<typeof FEAASLoaderProps>;
|
|
6
7
|
export declare class FEAASLoader extends FEAASBase<FEAASLoaderProps, string> {
|
|
7
8
|
stylesheet: HTMLStyleElement;
|
|
8
9
|
loader: HTMLDivElement;
|
|
10
|
+
getProps(): {
|
|
11
|
+
opacity: number;
|
|
12
|
+
hidden: boolean;
|
|
13
|
+
};
|
|
9
14
|
static observedAttributes: string[];
|
|
10
15
|
attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
|
|
11
16
|
connectedCallback(): void;
|
|
17
|
+
update(): void;
|
|
12
18
|
}
|
|
13
19
|
declare global {
|
|
14
20
|
namespace JSX {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FEAASLoader.d.ts","sourceRoot":"","sources":["../../src/components/FEAASLoader.
|
|
1
|
+
{"version":3,"file":"FEAASLoader.d.ts","sourceRoot":"","sources":["../../src/components/FEAASLoader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,WAAkB;;;EAK3D;AACD,aAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE3D,qBAAa,WAAY,SAAQ,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClE,UAAU,EAAE,gBAAgB,CAAA;IAC5B,MAAM,EAAE,cAAc,CAAA;IAEtB,QAAQ;;;;IAIR,MAAM,CAAC,kBAAkB,WAAwB;IAEjD,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgBhF,iBAAiB;IA6EjB,MAAM;CAGP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,iBAAiB;YACzB,cAAc,EAAE,GAAG,CAAA;SACpB;KACF;CACF;AAGD,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FEAASBase } from './FEAASBase.js';
|
|
2
2
|
export declare function FEAASStylesheetProps(element?: FEAASBase): {
|
|
3
3
|
library: string;
|
|
4
|
-
revision: number | "
|
|
4
|
+
revision: number | "staging" | "published" | "saved";
|
|
5
5
|
cdn: string;
|
|
6
6
|
};
|
|
7
7
|
export declare type FEAASStylesheetProps = ReturnType<typeof FEAASStylesheetProps>;
|
|
@@ -9,12 +9,12 @@ export declare class FEAASStylesheet extends FEAASBase<FEAASStylesheetProps, str
|
|
|
9
9
|
stylesheet: HTMLStyleElement;
|
|
10
10
|
getProps(): {
|
|
11
11
|
library: string;
|
|
12
|
-
revision: number | "
|
|
12
|
+
revision: number | "staging" | "published" | "saved";
|
|
13
13
|
cdn: string;
|
|
14
14
|
};
|
|
15
15
|
isReadyToLoad(): boolean;
|
|
16
16
|
load(): Promise<void>;
|
|
17
|
-
|
|
17
|
+
update(): void;
|
|
18
18
|
}
|
|
19
19
|
declare global {
|
|
20
20
|
namespace JSX {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FEAASStylesheet.d.ts","sourceRoot":"","sources":["../../src/components/FEAASStylesheet.
|
|
1
|
+
{"version":3,"file":"FEAASStylesheet.d.ts","sourceRoot":"","sources":["../../src/components/FEAASStylesheet.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,SAAgB;;;;EAM7D;AACD,oBAAY,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE1E,qBAAa,eAAgB,SAAQ,SAAS,CAAC,oBAAoB,EAAE,MAAM,CAAC;IAC1E,UAAU,EAAE,gBAAgB,CAAA;IAC5B,QAAQ;;;;;IAIR,aAAa,IAAI,OAAO;IAIlB,IAAI;IAIV,MAAM;CAOP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,iBAAiB;YACzB,kBAAkB,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG;gBAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;aAAE,CAAA;SACvE;KACF;CACF;AAED,OAAO,EAAE,eAAe,IAAI,UAAU,EAAE,CAAA"}
|
package/types/dom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAmC,MAAM,YAAY,CAAA;AAE5F,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,MAAM,CAAA;IAC/E,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,GAAG,CAAA;IACtD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAA;IAC1E,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAA;IAC5D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;CACrD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,oBAAY,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAE5C,oBAAY,mBAAmB,GAAG;IAChC,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB,GAAG,CAAC,gBAAgB,GAAG,aAAa,CAAC,GACpC,mBAAmB,CAAA;AAErB,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,UAAU,kBAS/E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAE9C;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,UAEpD;AAsDD,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,UAAQ,EAAE,IAAI,GAAE,GAAY,OAoDjG;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,mBAAmB,QA+DhH;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,oBAkBrD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,UAAO,oBAOnE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,WAiB3D;AAID,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,GAAG,gBAAgB,EACrC,UAAU,CAAC,EAAE,GAAG,EAChB,MAAM,CAAC,EAAE,mBAAmB,EAC5B,QAAQ,CAAC,EAAE,OAAO,eAwCnB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"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"}
|
package/types/fetch.d.ts
CHANGED
|
@@ -1,2 +1,43 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Utility to cache-bust static files. It relies on reading Date header to detect cached response, so it requires CORS
|
|
3
|
+
* settings to be set.
|
|
4
|
+
*
|
|
5
|
+
* It accepts validator function that determines if response is usable. If response was pulled from cache and is valid,
|
|
6
|
+
* the optional callback function is fired right away. Then HEAD request is made bypassing the cache, to see if the
|
|
7
|
+
* response has an newer Last-Modified header. In case it does and it passes validation, third request is fired that
|
|
8
|
+
* actually fetches the new content and callback is invoked the second time.
|
|
9
|
+
*
|
|
10
|
+
* It works as promise, but also accepts callback to use cached blobs mid-flight and have access to headers. Any network
|
|
11
|
+
* errors will not be caught. Function throws when unable to fetch valid response.
|
|
12
|
+
*/
|
|
13
|
+
export interface ValidatableRequest {
|
|
14
|
+
url: Parameters<typeof fetch>[0];
|
|
15
|
+
options?: Parameters<typeof fetch>[1];
|
|
16
|
+
validator?: (resposne: Response) => boolean;
|
|
17
|
+
callback?: (response: Response, status: 'initial' | 'updated' | 'check') => void;
|
|
18
|
+
isCached?: boolean;
|
|
19
|
+
response?: Response;
|
|
20
|
+
}
|
|
21
|
+
export declare function fetchAndRevalidate(url: ValidatableRequest['url'], options?: ValidatableRequest['options'], validator?: ValidatableRequest['validator'], callback?: ValidatableRequest['callback']): Promise<Response>;
|
|
22
|
+
export declare function fetchAndValidate({ url, options, validator, callback }: ValidatableRequest, phase?: 'initial' | 'updated' | 'check'): Promise<{
|
|
23
|
+
url: RequestInfo | URL;
|
|
24
|
+
options: RequestInit;
|
|
25
|
+
isCached: boolean;
|
|
26
|
+
response: Response;
|
|
27
|
+
validator: (resposne: Response) => boolean;
|
|
28
|
+
}>;
|
|
29
|
+
export declare function refetchAndValidate(request: ValidatableRequest & Required<Pick<ValidatableRequest, 'response'>>): Promise<{
|
|
30
|
+
url: RequestInfo | URL;
|
|
31
|
+
options: RequestInit;
|
|
32
|
+
isCached: boolean;
|
|
33
|
+
response: Response;
|
|
34
|
+
validator: (resposne: Response) => boolean;
|
|
35
|
+
} | (ValidatableRequest & Required<Pick<ValidatableRequest, "response">>)>;
|
|
36
|
+
export declare function invalidateRequest(request: ValidatableRequest): Promise<{
|
|
37
|
+
url: RequestInfo | URL;
|
|
38
|
+
options: RequestInit;
|
|
39
|
+
isCached: boolean;
|
|
40
|
+
response: Response;
|
|
41
|
+
validator: (resposne: Response) => boolean;
|
|
42
|
+
}>;
|
|
2
43
|
//# sourceMappingURL=fetch.d.ts.map
|
package/types/fetch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACrC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAA;IAC3C,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,KAAK,IAAI,CAAA;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAC9B,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,EACvC,SAAS,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAC3C,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,qBAM1C;AAED,wBAAsB,gBAAgB,CACpC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,EACzD,KAAK,GAAE,SAAS,GAAG,SAAS,GAAG,OAAmB;;;;;;GAiBnD;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;;;;;;2EAwBpH;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB;;;;;;GAclE"}
|