@sitecore-feaas/clientside 0.1.27 → 0.1.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/build/cdn.js +115 -0
  2. package/build/cdn.js.map +1 -0
  3. package/build/components/FEAASBase.js +212 -79
  4. package/build/components/FEAASBase.js.map +1 -1
  5. package/build/components/FEAASComponent.js +51 -17
  6. package/build/components/FEAASComponent.js.map +1 -1
  7. package/build/components/FEAASLoader.js +6 -0
  8. package/build/components/FEAASLoader.js.map +1 -1
  9. package/build/components/FEAASStylesheet.js +18 -13
  10. package/build/components/FEAASStylesheet.js.map +1 -1
  11. package/build/dom/component.js +34 -0
  12. package/build/dom/component.js.map +1 -0
  13. package/build/dom/data.js +105 -0
  14. package/build/dom/data.js.map +1 -0
  15. package/build/{dom.js → dom/rendering.js} +3 -194
  16. package/build/dom/rendering.js.map +1 -0
  17. package/build/dom/scripts.js +48 -0
  18. package/build/dom/scripts.js.map +1 -0
  19. package/build/dom/stylesheet.js +39 -0
  20. package/build/dom/stylesheet.js.map +1 -0
  21. package/build/fetch.js +72 -22
  22. package/build/fetch.js.map +1 -1
  23. package/build/{basic.js → headless.js} +11 -3
  24. package/build/headless.js.map +1 -0
  25. package/build/ui/FEAASContext.js +10 -3
  26. package/build/ui/FEAASContext.js.map +1 -1
  27. package/build/ui/FEAASEditor.js +5 -0
  28. package/build/ui/FEAASEditor.js.map +1 -1
  29. package/build/ui/FEAASPicker.js +7 -1
  30. package/build/ui/FEAASPicker.js.map +1 -1
  31. package/build/ui/index.js +1 -1
  32. package/build/ui/index.js.map +1 -1
  33. package/build/ui/react.js +6 -0
  34. package/build/ui/react.js.map +1 -0
  35. package/build/utils/promise.js +26 -0
  36. package/build/utils/promise.js.map +1 -0
  37. package/dist/browser/headless.esm.js +69 -0
  38. package/dist/browser/headless.esm.js.map +1 -0
  39. package/dist/browser/headless.js +69 -0
  40. package/dist/browser/headless.js.map +1 -0
  41. package/dist/browser/index.esm.js +3 -5
  42. package/dist/browser/index.esm.js.map +1 -1
  43. package/dist/browser/index.js +5 -5
  44. package/dist/browser/index.js.map +1 -1
  45. package/dist/browser/react.js +67 -0
  46. package/dist/browser/react.js.map +1 -0
  47. package/dist/node/headless.esm.js +67 -0
  48. package/dist/node/headless.esm.js.map +7 -0
  49. package/dist/node/headless.js +67 -0
  50. package/dist/node/headless.js.map +7 -0
  51. package/dist/node/index.esm.js +3 -3
  52. package/dist/node/index.esm.js.map +4 -4
  53. package/dist/node/index.js +3 -3
  54. package/dist/node/index.js.map +4 -4
  55. package/dist/node/react.js +67 -0
  56. package/dist/node/react.js.map +7 -0
  57. package/examples/index.html +0 -5
  58. package/package.json +23 -12
  59. package/scripts/build.js +17 -6
  60. package/scripts/test-setup.ts +1 -0
  61. package/src/cdn.ts +188 -0
  62. package/src/components/FEAASBase.tsx +234 -82
  63. package/src/components/FEAASComponent.tsx +59 -21
  64. package/src/components/FEAASLoader.tsx +4 -0
  65. package/src/components/FEAASStylesheet.tsx +14 -13
  66. package/src/dom/component.ts +35 -0
  67. package/src/dom/data.ts +124 -0
  68. package/src/{dom.ts → dom/rendering.ts} +4 -218
  69. package/src/dom/scripts.ts +47 -0
  70. package/src/dom/stylesheet.ts +48 -0
  71. package/src/fetch.ts +79 -25
  72. package/src/{basic.ts → headless.ts} +11 -2
  73. package/src/ui/FEAASContext.tsx +12 -4
  74. package/src/ui/FEAASEditor.tsx +5 -0
  75. package/src/ui/FEAASPicker.tsx +6 -2
  76. package/src/ui/index.ts +1 -1
  77. package/src/ui/react.tsx +8 -0
  78. package/src/utils/promise.ts +34 -0
  79. package/test/FEAASBase.test.tsx +195 -0
  80. package/test/FEAASComponent.test.tsx +284 -0
  81. package/test/FEAASContext.test.tsx +76 -0
  82. package/test/FEAASPicker.test.tsx +40 -0
  83. package/test/FEAASStylesheet.test.tsx +159 -0
  84. package/test/cdn.ts +39 -0
  85. package/test/{render.ts → dom.test.ts} +12 -6
  86. package/test/extras.ts +1 -1
  87. package/test/fetch.ts +254 -0
  88. package/test/tsconfig.json +4 -1
  89. package/types/cdn.d.ts +57 -0
  90. package/types/cdn.d.ts.map +1 -0
  91. package/types/components/FEAASBase.d.ts +220 -16
  92. package/types/components/FEAASBase.d.ts.map +1 -1
  93. package/types/components/FEAASComponent.d.ts +34 -7
  94. package/types/components/FEAASComponent.d.ts.map +1 -1
  95. package/types/components/FEAASLoader.d.ts +4 -0
  96. package/types/components/FEAASLoader.d.ts.map +1 -1
  97. package/types/components/FEAASStylesheet.d.ts +5 -13
  98. package/types/components/FEAASStylesheet.d.ts.map +1 -1
  99. package/types/dom/component.d.ts +6 -0
  100. package/types/dom/component.d.ts.map +1 -0
  101. package/types/dom/data.d.ts +15 -0
  102. package/types/dom/data.d.ts.map +1 -0
  103. package/types/dom/rendering.d.ts +20 -0
  104. package/types/dom/rendering.d.ts.map +1 -0
  105. package/types/dom/scripts.d.ts +4 -0
  106. package/types/dom/scripts.d.ts.map +1 -0
  107. package/types/dom/stylesheet.d.ts +8 -0
  108. package/types/dom/stylesheet.d.ts.map +1 -0
  109. package/types/fetch.d.ts +25 -11
  110. package/types/fetch.d.ts.map +1 -1
  111. package/types/headless.d.ts +24 -0
  112. package/types/headless.d.ts.map +1 -0
  113. package/types/tsbuildinfo +1 -1
  114. package/types/tsbuildinfo_ui +1 -1
  115. package/types/ui/FEAASContext.d.ts +15 -5
  116. package/types/ui/FEAASContext.d.ts.map +1 -1
  117. package/types/ui/FEAASEditor.d.ts +18 -0
  118. package/types/ui/FEAASEditor.d.ts.map +1 -1
  119. package/types/ui/FEAASPicker.d.ts +15 -3
  120. package/types/ui/FEAASPicker.d.ts.map +1 -1
  121. package/types/ui/index.d.ts +1 -1
  122. package/types/ui/index.d.ts.map +1 -1
  123. package/types/ui/react.d.ts +7 -0
  124. package/types/ui/react.d.ts.map +1 -0
  125. package/types/utils/promise.d.ts +8 -0
  126. package/types/utils/promise.d.ts.map +1 -0
  127. package/build/basic.js.map +0 -1
  128. package/build/cloud.js +0 -71
  129. package/build/cloud.js.map +0 -1
  130. package/build/dom.js.map +0 -1
  131. package/build/node.js +0 -10
  132. package/build/node.js.map +0 -1
  133. package/build/ui/node.js +0 -3
  134. package/build/ui/node.js.map +0 -1
  135. package/dist/browser/basic.esm.js +0 -69
  136. package/dist/browser/basic.esm.js.map +0 -1
  137. package/dist/browser/basic.js +0 -69
  138. package/dist/browser/basic.js.map +0 -1
  139. package/dist/node/basic.esm.js +0 -67
  140. package/dist/node/basic.esm.js.map +0 -7
  141. package/dist/node/basic.js +0 -67
  142. package/dist/node/basic.js.map +0 -7
  143. package/src/cloud.ts +0 -118
  144. package/src/node.ts +0 -10
  145. package/src/ui/node.ts +0 -2
  146. package/test/components.ts +0 -31
  147. package/types/basic.d.ts +0 -16
  148. package/types/basic.d.ts.map +0 -1
  149. package/types/cloud.d.ts +0 -28
  150. package/types/cloud.d.ts.map +0 -1
  151. package/types/dom.d.ts +0 -41
  152. package/types/dom.d.ts.map +0 -1
  153. package/types/node.d.ts +0 -4
  154. package/types/node.d.ts.map +0 -1
  155. package/types/ui/node.d.ts +0 -3
  156. package/types/ui/node.d.ts.map +0 -1
package/build/cdn.js ADDED
@@ -0,0 +1,115 @@
1
+ import { fetchAndRevalidate, fetchWithCacheAwareness, fetchBypassingCache, fetchToValidateCache } from './fetch.js';
2
+ export const DEFAULT_CDN_URL = `https://feaascomponentsapidev.blob.core.windows.net`;
3
+ export function parseComponentSource(source) {
4
+ const match = source.match(/^(?:(.*?)\/components)?\/?([^\/]+)\/([^\/]+)(?:\/([^\/]+)(?:\/([^\/]+?)(?:\.html?)?)?)?$/);
5
+ if (match) {
6
+ var [, cdn, library, component, version, revision] = match;
7
+ return { cdn, library, component, version, revision: revision };
8
+ }
9
+ }
10
+ export function getComponentSource(props) {
11
+ if (!props || !props.library || !props.component)
12
+ throw new Error('Component requires `library` and `component` properties');
13
+ return `${props.cdn && props.cdn != DEFAULT_CDN_URL ? `${props.cdn}/components` : ''}/${props.library}/${props.component}/${!props.version || (props.version == 'responsive' && (!props.revision || props.revision == 'published'))
14
+ ? ''
15
+ : props.version}/${!props.revision || props.revision == 'published' ? '' : props.revision}`.replace(/(^\/|\/$|(?<!:)\/\/)(?!.+\/components\/)/g, '');
16
+ }
17
+ export function getStylesheetSource(props) {
18
+ return `${props.cdn && props.cdn != DEFAULT_CDN_URL ? `${props.cdn}/styles` : ''}/${props.library}/${props.revision == 'published' ? '' : props.revision}`.replace(/^\/|\/$|(?<!:)\/\//g, '');
19
+ }
20
+ export function parseStylesheetSource(source) {
21
+ const match = source.match(/^(?:(.*?)\/styles)?\/([^\/]+)\/([^\/]+)(?:.css?)?$/);
22
+ if (match) {
23
+ var [, cdn, library, revision] = match;
24
+ return { cdn, library, revision: revision };
25
+ }
26
+ }
27
+ export function getComponentURL(props) {
28
+ if ('src' in props) {
29
+ props = {
30
+ ...parseComponentSource(props.src)
31
+ };
32
+ }
33
+ return `${props.cdn || props.hostname || DEFAULT_CDN_URL}/components/${props.library}/${props.component}/${props.version}/${props.revision || 'published'}.html`;
34
+ }
35
+ export function getStylesheetURL(props) {
36
+ if ('src' in props) {
37
+ props = {
38
+ ...parseComponentSource(props.src)
39
+ };
40
+ }
41
+ return `${props.cdn || props.hostname || DEFAULT_CDN_URL}/styles/${props.library}/${props.revision || 'published'}.css`;
42
+ }
43
+ export async function fetchAndRevalidateComponent(props, callback, dontRevalidate = false) {
44
+ const onlyIfNotDeleted = (response) => {
45
+ return response.headers.get('x-ms-meta-versionDeletedAt') == null;
46
+ };
47
+ const parseResponse = (response) => {
48
+ return response.clone().text().then(callback);
49
+ };
50
+ // Fetch two requests in parallel: One optimistically checking if component was forked,
51
+ // and another checking original definition of a component
52
+ const results = await Promise.all([
53
+ props.instance &&
54
+ fetchWithCacheAwareness({
55
+ options: {
56
+ headers: {
57
+ Accept: 'text/html'
58
+ }
59
+ },
60
+ url: getComponentURL({ ...props, version: props.instance }),
61
+ validator: onlyIfNotDeleted
62
+ }).catch((e) => e),
63
+ fetchWithCacheAwareness({ url: getComponentURL(props), validator: onlyIfNotDeleted }).catch((e) => e)
64
+ ]);
65
+ const result = results.find((result) => result && 'isCached' in result && result);
66
+ if (!result || result instanceof Error) {
67
+ const error = results.find((result) => result && result instanceof Error);
68
+ throw error || new Error('Can not fetch component');
69
+ }
70
+ if (results[0] == result) {
71
+ console.log('Using fork!', results);
72
+ }
73
+ await parseResponse(result.response);
74
+ if (dontRevalidate)
75
+ return result;
76
+ return fetchToValidateCache({ ...result, callback: parseResponse }).catch((e) => {
77
+ if (results[0] == result) {
78
+ fetchBypassingCache({ ...result, callback: null, validator: null });
79
+ console.log('Fork was deleted');
80
+ // forked version was cached, but it's now deleted
81
+ if (!(results[1] instanceof Error)) {
82
+ parseResponse(results[1].response);
83
+ return fetchToValidateCache({ ...results[1], callback: parseResponse });
84
+ }
85
+ }
86
+ throw e;
87
+ });
88
+ }
89
+ /** Fetches HTML of a component. */
90
+ export async function fetchComponent(props) {
91
+ if (typeof props == 'string')
92
+ props = { src: props };
93
+ var template;
94
+ const { response } = await fetchAndRevalidateComponent(props, (result) => {
95
+ template = result;
96
+ }, true);
97
+ return { ...props, template, lastModified: response.headers.get('last-modified') };
98
+ }
99
+ export async function fetchAndRevalidateStylesheet(props, callback) {
100
+ if (typeof props == 'string')
101
+ props = { src: props };
102
+ return fetchAndRevalidate(getStylesheetURL(props), {
103
+ headers: {
104
+ Accept: 'text/css'
105
+ }
106
+ }, (response) => {
107
+ return response.headers.get('x-ms-meta-deletedAt') == null;
108
+ }, (response, phase) => {
109
+ return response
110
+ .clone()
111
+ .text()
112
+ .then((text) => callback(text, phase));
113
+ });
114
+ }
115
+ //# sourceMappingURL=cdn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdn.js","sourceRoot":"","sources":["../src/cdn.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,29 @@
1
+ import { ControlledPromise } from '../utils/promise.js';
1
2
  // Shim in case it's required in node.js environment
2
- var WebComponent = typeof HTMLElement == 'undefined' ? class {
3
- } : HTMLElement;
3
+ var WebComponent = typeof HTMLElement == 'undefined'
4
+ ? // @ts-ignore
5
+ typeof windowJSDOM != 'undefined'
6
+ ? // @ts-ignore
7
+ windowJSDOM.HTMLElement
8
+ : class {
9
+ }
10
+ : HTMLElement;
11
+ /**
12
+ * FEAASBase is a superclass for FEAAS components with optional react support.
13
+ *
14
+ * Initialization lifecycle:
15
+ *
16
+ * - `set(props)`
17
+ * - `load() => payload`
18
+ * - `onLoad?(payload)`
19
+ * - `update()`
20
+ * - `render(payload, props)`
21
+ * - `whenRendered`
22
+ * - - / If needs to reload, e.g. bypass cache /
23
+ * - - `onLoad(newPayload) `
24
+ * - - `whenRendered`
25
+ * - `whenLoaded`
26
+ */
4
27
  export class FEAASBase extends WebComponent {
5
28
  /** Return attributes as parsed values */
6
29
  getProps(context) {
@@ -8,19 +31,17 @@ export class FEAASBase extends WebComponent {
8
31
  }
9
32
  constructor() {
10
33
  super();
34
+ this.defaultProps = {};
11
35
  /** Is/was component in the dom? */
12
36
  this.connected = false;
13
37
  this.refs = {};
14
38
  this.descendants = [];
15
- /** Payload is inside onLoad callback. For web components that use react, it has to provide React & ReactDOM props */
16
- this.onLoad = (payload) => {
17
- if (payload == null)
18
- return;
39
+ this.whenLoaded = ControlledPromise((payload) => {
19
40
  this.payload = payload;
20
- this.update();
21
- };
22
- this.addEventListener('feaasConnected', this);
23
- this.addEventListener('feaasDisconnected', this);
41
+ });
42
+ this.whenRendered = ControlledPromise(() => (this.initialized = true), () => cancelAnimationFrame(this.nextRender));
43
+ this.addEventListener('feaasMount', this);
44
+ this.addEventListener('feaasUnmount', this);
24
45
  }
25
46
  /** Attaches shadow root if getShadowRootOptions any settings, or uses element itself */
26
47
  getRoot() {
@@ -32,29 +53,47 @@ export class FEAASBase extends WebComponent {
32
53
  }
33
54
  /** Components parses its attributes when connected, and schedules rendeirng */
34
55
  connectedCallback() {
35
- this.initialize();
56
+ this.mount();
57
+ }
58
+ disconnectedCallback() {
59
+ this.unmount();
36
60
  }
37
61
  /**
38
62
  * Web components are initialized depth-first, making child elements render before its parents. This could here
39
63
  * attempts to avoid this and inverts the initialization logic, so that children are initialized in the context of its
40
64
  * already-initialized parents.
41
65
  *
42
- * FEAAS components dispatch `feaasConnected` event that allows components to store references to each other. In
43
- * addition it allows external scripts to listen for initialization of FEAAS components
66
+ * FEAAS components dispatch `feaasMount` event that allows components to store references to each other. In addition
67
+ * it allows external scripts to listen for initialization of FEAAS components
44
68
  */
45
- initialize() {
46
- const parent = this.getParent();
47
- // Allow parent component to initialize first
48
- if (parent && !parent.connected)
49
- return;
50
- if (this.connected)
69
+ mount() {
70
+ try {
71
+ const parent = this.getParent();
72
+ // Allow parent component to initialize first
73
+ if (parent && !parent.connected)
74
+ return;
75
+ if (this.connected)
76
+ return;
77
+ this.connected = true;
78
+ this.log('FEAAS: Mount', this.tagName, this);
79
+ this.dispatchEvent(new Event('feaasMount', { bubbles: true, composed: true }));
80
+ this.getElements().map((element) => { var _a; return (_a = element.mount) === null || _a === void 0 ? void 0 : _a.call(element); });
81
+ this.set();
82
+ }
83
+ catch (e) {
84
+ this.onError(e);
85
+ }
86
+ }
87
+ log(...args) {
88
+ console.log(...args);
89
+ }
90
+ /** Nothing special happens on unmount, except setting a flag */
91
+ unmount() {
92
+ if (!this.connected)
51
93
  return;
52
- this.connected = true;
53
- console.log('FEAAS: Connected', this.tagName, this);
54
- this.dispatchEvent(new Event('feaasConnected', { bubbles: true, composed: true }));
55
- this.getElements().map((element) => { var _a; return (_a = element.initialize) === null || _a === void 0 ? void 0 : _a.call(element); });
56
- this.set();
57
- return true;
94
+ this.log('FEAAS: Unmount', this);
95
+ this.dispatchEvent(new Event('feaasUnmount', { bubbles: true, composed: true }));
96
+ this.connected = false;
58
97
  }
59
98
  getParent(onlyFeaas = true) {
60
99
  for (var p = this; (p = p.parentElement || (p.parentNode instanceof ShadowRoot ? p.parentNode.host : null));) {
@@ -71,23 +110,15 @@ export class FEAASBase extends WebComponent {
71
110
  .flat()
72
111
  .filter(Boolean);
73
112
  }
74
- /** Nothing special happens on disconnect, except setting a flag */
75
- disconnectedCallback() {
76
- if (!this.connected)
77
- return;
78
- console.log('FEAAS: Disconnected', this);
79
- this.dispatchEvent(new Event('feaasDisconnected', { bubbles: true, composed: true }));
80
- this.connected = null;
81
- }
82
113
  /** Catch-all event handler that dispatches events to callback */
83
114
  handleEvent(event) {
84
115
  const target = event.composedPath()[0];
85
116
  switch (event.type) {
86
- case 'feaasConnected':
117
+ case 'feaasMount':
87
118
  if (target != this)
88
119
  this.nestedCallback(target);
89
120
  break;
90
- case 'feaasDisconnected':
121
+ case 'feaasUnmount':
91
122
  if (target != this)
92
123
  this.unnestedCallback(target);
93
124
  break;
@@ -98,7 +129,7 @@ export class FEAASBase extends WebComponent {
98
129
  const index = this.descendants.indexOf(target);
99
130
  if (index == -1)
100
131
  return;
101
- console.log('FEAAS: Unnest', this, target);
132
+ this.log('FEAAS: Unnest', this, target);
102
133
  this.descendants.splice(index, -1);
103
134
  this.refs[target.getComponentName()] = null;
104
135
  if (target.refs.parent == this)
@@ -114,7 +145,7 @@ export class FEAASBase extends WebComponent {
114
145
  if (index != -1)
115
146
  return;
116
147
  this.descendants.push(target);
117
- console.log('FEAAS: Nest', this, target);
148
+ this.log('FEAAS: Nest', this, target);
118
149
  this.refs[target.getComponentName()] = target;
119
150
  target.refs.top = this;
120
151
  (_a = target.refs).parent || (_a.parent = this);
@@ -137,14 +168,60 @@ export class FEAASBase extends WebComponent {
137
168
  isReadyToLoad() {
138
169
  return this.payload === undefined && this.getAttribute('hidden') == null;
139
170
  }
171
+ /** Generic error handler */
172
+ onError(error, where = 'uncaught', handled = false) {
173
+ const event = new CustomEvent('feaasError', { bubbles: true, composed: true, detail: error });
174
+ this.dispatchEvent(event);
175
+ this.whenLoaded.reject(error);
176
+ if (!event.defaultPrevented && !handled) {
177
+ this.whenRendered.reject(error);
178
+ try {
179
+ this.unmount();
180
+ }
181
+ catch (e) { }
182
+ return true;
183
+ }
184
+ return false;
185
+ }
186
+ shouldUpdateOnLoad() {
187
+ return true;
188
+ }
140
189
  /** Load lazy component & render */
141
- async reify() {
142
- if (this.payload !== undefined) {
143
- this.update();
190
+ async advance() {
191
+ try {
192
+ if (this.payload === undefined) {
193
+ if (!this.isReadyToLoad())
194
+ return;
195
+ this.payload = null;
196
+ this.dispatchEvent(new Event('feaasLoad', { bubbles: true, composed: true }));
197
+ const loaded = await this.load().catch((e) => {
198
+ this.payload = undefined;
199
+ throw e;
200
+ });
201
+ this.whenLoaded.resolve(loaded);
202
+ // Allow component to handle the post-loading
203
+ if (this.onLoad) {
204
+ return;
205
+ }
206
+ }
207
+ else if (this.payload == null) {
208
+ return;
209
+ }
210
+ this.flush();
211
+ this.whenRendered.resolve(this);
212
+ }
213
+ catch (e) {
214
+ this.onError(e);
215
+ }
216
+ }
217
+ flush() {
218
+ var _a, _b;
219
+ const flushSync = (_b = (_a = this.payload) === null || _a === void 0 ? void 0 : _a.ReactDOM) === null || _b === void 0 ? void 0 : _b.flushSync;
220
+ if (flushSync) {
221
+ flushSync(() => this.update());
144
222
  }
145
- else if (this.isReadyToLoad()) {
146
- this.payload = null;
147
- this.load().then(this.onLoad);
223
+ else {
224
+ this.update();
148
225
  }
149
226
  }
150
227
  /** Invoke preloading logic that needs to finish before component can render */
@@ -156,11 +233,13 @@ export class FEAASBase extends WebComponent {
156
233
  * the component needs to provide React & ReactDOM references in its payload. Web component redefine its render to not
157
234
  * use react at all
158
235
  */
159
- update(nested = false) {
236
+ update() {
160
237
  var _a, _b, _c;
161
- console.log('FEAAS: React', this.tagName, this.payload);
238
+ //this.log('FEAAS: React', this.tagName, this.payload)
162
239
  if (this.payload == null)
163
240
  return;
241
+ if (!this.render)
242
+ return;
164
243
  const { React, ReactDOM, ReactDOMClient } = this.payload || {};
165
244
  if (!React)
166
245
  throw new Error(`${this.tagName}: React is not present in payload`);
@@ -169,10 +248,10 @@ export class FEAASBase extends WebComponent {
169
248
  if (!this.refs.topReact && !this.forceUpdateReact) {
170
249
  if (ReactDOMClient) {
171
250
  this.reactRoot || (this.reactRoot = ReactDOMClient.createRoot(this.getReactRootElement()));
172
- this.reactRoot.render(React.createElement(this.getReactWrapper()));
251
+ this.reactRoot.render(this.getReactElement());
173
252
  }
174
253
  else {
175
- ReactDOM.render(React.createElement(this.getReactWrapper()), this.getReactRootElement());
254
+ ReactDOM.render(this.getReactElement(), this.getReactRootElement());
176
255
  }
177
256
  }
178
257
  else if (this.forceUpdateReact) {
@@ -184,22 +263,60 @@ export class FEAASBase extends WebComponent {
184
263
  }
185
264
  invokeReactRendering() {
186
265
  const { React, ReactDOM } = this.payload || {};
266
+ if (!this.connected)
267
+ return null;
187
268
  const children = this.descendants
188
269
  .filter((r) => {
189
270
  return r.refs.parentReact == this && r.payload;
190
271
  })
191
272
  .map((child, index) => {
192
- return React.createElement(this.getReactWrapper(child), {
193
- key: child.tagName + '-' + child.getUID(),
194
- slot: child.getAttribute('slot')
195
- });
273
+ return this.getReactElement(child);
196
274
  });
197
275
  return this.render({ ...this.props, children }, this.payload);
198
276
  }
277
+ getReactErrorBoundary(target = this, displayName = target.tagName) {
278
+ if (this.reactErrorBoundary)
279
+ return this.reactErrorBoundary;
280
+ const { React, ReactDOM } = target.payload || {};
281
+ return (this.reactErrorBoundary || (this.reactErrorBoundary = class FEAASErrorBoundary extends React.Component {
282
+ constructor() {
283
+ super(...arguments);
284
+ this.state = {
285
+ error: null
286
+ };
287
+ }
288
+ static getDerivedStateFromError(error) {
289
+ return { error: error };
290
+ }
291
+ componentDidCatch(error, errorInfo) {
292
+ console.error(`FEAAS: ${target.tagName} Error:`, error, errorInfo);
293
+ target.onError(error, 'react');
294
+ //this.setState({ error: error })
295
+ }
296
+ render() {
297
+ if (this.state.error) {
298
+ // target.classList.add('feaas-error')
299
+ return;
300
+ //return <h1>There seems to be a problem.</h1>
301
+ }
302
+ //if (target.classList.contains('feaas-error')) target.classList.remove('feaas-error')
303
+ return this.props.children;
304
+ }
305
+ }));
306
+ }
307
+ getReactElement(target = this, props) {
308
+ const { React, ReactDOM } = target.payload || {};
309
+ const ErrorBoundary = this.getReactErrorBoundary();
310
+ const Wrapper = this.getReactWrapper(target);
311
+ return (React.createElement(ErrorBoundary, { key: target.tagName + '-' + target.getUID(), slot: target.getAttribute('slot') },
312
+ React.createElement(Wrapper, null)));
313
+ }
199
314
  getReactWrapper(target = this, displayName = target.tagName) {
200
- const Wrapper = (target.reactWrapper || (target.reactWrapper = (props) => {
315
+ if (target.reactWrapper)
316
+ return target.reactWrapper;
317
+ const { React, ReactDOM } = target.payload || {};
318
+ target.reactWrapper = (props) => {
201
319
  if (target.render) {
202
- const { React, ReactDOM } = target.payload || {};
203
320
  const [value, forceUpdateReact] = React.useReducer((r) => r + 1, 0);
204
321
  target.forceUpdateReact = forceUpdateReact;
205
322
  return ReactDOM.createPortal(React.createElement(React.Fragment, null, target.invokeReactRendering()), target.getReactRootElement());
@@ -207,12 +324,12 @@ export class FEAASBase extends WebComponent {
207
324
  else {
208
325
  return target.update();
209
326
  }
210
- }));
211
- Object.assign(Wrapper, {
212
- key: this.tagName + '-' + this.getUID(),
327
+ };
328
+ Object.assign(target.reactWrapper, {
329
+ key: target.tagName + '-' + target.getUID(),
213
330
  displayName: displayName
214
331
  });
215
- return Wrapper;
332
+ return target.reactWrapper;
216
333
  }
217
334
  getUID() {
218
335
  return (this.uid || (this.uid = String(Math.random())));
@@ -228,31 +345,45 @@ export class FEAASBase extends WebComponent {
228
345
  }
229
346
  /** Set props and return values on new next tick */
230
347
  set(overrides) {
231
- this.overrides = {
232
- ...this.overrides,
233
- ...overrides
234
- };
235
- this.props = {
236
- ...this.getProps(),
237
- ...this.overrides
238
- };
239
- for (var property in this.props) {
240
- const value = this.props[property];
241
- if (this.props[property] == null) {
242
- this.removeAttribute(property);
243
- }
244
- else if (typeof value == 'string' || typeof value == 'number') {
245
- if (this.getAttribute(property) != String(value))
246
- this.setAttribute(property, String(value));
348
+ try {
349
+ this.scheduleRender();
350
+ this.overrides = {
351
+ ...this.overrides,
352
+ ...overrides
353
+ };
354
+ this.props = {
355
+ ...this.getProps(),
356
+ ...this.overrides
357
+ };
358
+ for (var property in this.props) {
359
+ const value = this.props[property];
360
+ const attribute = property.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
361
+ if (value == null || value === this.defaultProps[property]) {
362
+ this.removeAttribute(attribute);
363
+ }
364
+ else if (typeof value == 'string' || typeof value == 'number' || typeof value == 'boolean') {
365
+ if (this.getAttribute(attribute) != String(value))
366
+ this.setAttribute(attribute, String(value));
367
+ }
247
368
  }
248
369
  }
249
- this.scheduleRender();
370
+ catch (e) {
371
+ this.whenRendered.reject(e);
372
+ this.onError(e, 'set');
373
+ }
374
+ return this;
375
+ }
376
+ import(path) {
377
+ return import(/* @vite-ignore */ /* webpackIgnore: true */ path);
250
378
  }
251
- /** Schedule rendering on next tick, to batch multiple attribute changes */
252
379
  scheduleRender() {
380
+ if (this.nextRender == null) {
381
+ this.whenRendered = this.whenRendered.restart();
382
+ }
253
383
  cancelAnimationFrame(this.nextRender);
254
384
  this.nextRender = requestAnimationFrame(() => {
255
- this.reify();
385
+ this.nextRender = null;
386
+ this.advance().catch((e) => { });
256
387
  });
257
388
  }
258
389
  formatURL(src, hostname) {
@@ -270,9 +401,11 @@ export class FEAASBase extends WebComponent {
270
401
  }
271
402
  return this.getAttribute(name);
272
403
  }
273
- static register(tagName) {
274
- if (typeof window != 'undefined' && !window.customElements.get(tagName)) {
275
- window.customElements.define(tagName, this);
404
+ static register(tagName, win) {
405
+ if (win == null)
406
+ win = typeof window != 'undefined' ? window : null;
407
+ if (!(win === null || win === void 0 ? void 0 : win.customElements.get(tagName))) {
408
+ win.customElements.define(tagName, this);
276
409
  }
277
410
  }
278
411
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FEAASBase.js","sourceRoot":"","sources":["../../src/components/FEAASBase.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FEAASBase.js","sourceRoot":"","sources":["../../src/components/FEAASBase.tsx"],"names":[],"mappings":"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"}