@sitecore-feaas/clientside 0.1.14 → 0.1.16

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 (92) hide show
  1. package/README.md +5 -5
  2. package/build/basic.js +11 -0
  3. package/build/basic.js.map +1 -0
  4. package/build/cloud.js +22 -0
  5. package/build/cloud.js.map +1 -0
  6. package/build/components/FEAASBase.js +229 -0
  7. package/build/components/FEAASBase.js.map +1 -0
  8. package/build/components/FEAASComponent.js +84 -0
  9. package/build/components/FEAASComponent.js.map +1 -0
  10. package/build/components/FEAASLoader.js +100 -0
  11. package/build/components/FEAASLoader.js.map +1 -0
  12. package/build/components/FEAASStylesheet.js +31 -0
  13. package/build/components/FEAASStylesheet.js.map +1 -0
  14. package/build/dom.js +294 -0
  15. package/build/dom.js.map +1 -0
  16. package/build/fetch.js +56 -0
  17. package/build/fetch.js.map +1 -0
  18. package/build/ui/FEAASContext.js +68 -0
  19. package/build/ui/FEAASContext.js.map +1 -0
  20. package/build/ui/FEAASEditor.js +180 -0
  21. package/build/ui/FEAASEditor.js.map +1 -0
  22. package/build/ui/FEAASPicker.js +81 -0
  23. package/build/ui/FEAASPicker.js.map +1 -0
  24. package/build/ui/index.js +5 -0
  25. package/build/ui/index.js.map +1 -0
  26. package/dist/browser/basic.esm.js +68 -0
  27. package/dist/browser/basic.esm.js.map +1 -0
  28. package/dist/browser/basic.js +5 -4
  29. package/dist/browser/basic.js.map +1 -0
  30. package/dist/browser/index.esm.js +73 -0
  31. package/dist/browser/index.esm.js.map +1 -0
  32. package/dist/browser/index.js +8 -7
  33. package/dist/browser/index.js.map +1 -0
  34. package/dist/node/basic.esm.js +66 -0
  35. package/dist/node/basic.esm.js.map +1 -0
  36. package/dist/node/basic.js +4 -1458
  37. package/dist/node/basic.js.map +1 -0
  38. package/dist/node/index.esm.js +71 -0
  39. package/dist/node/index.esm.js.map +1 -0
  40. package/dist/node/index.js +7 -1853
  41. package/dist/node/index.js.map +1 -0
  42. package/package.json +25 -34
  43. package/scripts/build.js +76 -0
  44. package/src/basic.ts +11 -1
  45. package/src/components/FEAASBase.tsx +4 -2
  46. package/src/components/FEAASComponent.ts +7 -2
  47. package/src/components/FEAASLoader.ts +2 -0
  48. package/src/components/FEAASStylesheet.ts +2 -1
  49. package/src/{components → ui}/FEAASContext.tsx +3 -5
  50. package/src/{components → ui}/FEAASEditor.tsx +4 -4
  51. package/src/{components → ui}/FEAASPicker.tsx +11 -6
  52. package/src/ui/index.ts +4 -0
  53. package/src/ui/tsconfig.json +22 -0
  54. package/test/render.ts +0 -1
  55. package/tsconfig.json +3 -3
  56. package/tsconfig.test.json +0 -0
  57. package/types/basic.d.ts +8 -1
  58. package/types/basic.d.ts.map +1 -0
  59. package/types/cloud.d.ts +1 -0
  60. package/types/cloud.d.ts.map +1 -0
  61. package/types/components/FEAASBase.d.ts +7 -1
  62. package/types/components/FEAASBase.d.ts.map +1 -0
  63. package/types/components/FEAASComponent.d.ts +7 -1
  64. package/types/components/FEAASComponent.d.ts.map +1 -0
  65. package/types/components/FEAASLoader.d.ts +2 -1
  66. package/types/components/FEAASLoader.d.ts.map +1 -0
  67. package/types/components/FEAASStylesheet.d.ts +5 -1
  68. package/types/components/FEAASStylesheet.d.ts.map +1 -0
  69. package/types/dom.d.ts +1 -0
  70. package/types/dom.d.ts.map +1 -0
  71. package/types/fetch.d.ts +1 -0
  72. package/types/fetch.d.ts.map +1 -0
  73. package/types/tsbuildinfo +1 -1
  74. package/types/tsbuildinfo_ui +1 -0
  75. package/types/{components → ui}/FEAASContext.d.ts +3 -2
  76. package/types/ui/FEAASContext.d.ts.map +1 -0
  77. package/types/{components → ui}/FEAASEditor.d.ts +3 -2
  78. package/types/ui/FEAASEditor.d.ts.map +1 -0
  79. package/types/{components → ui}/FEAASPicker.d.ts +3 -2
  80. package/types/ui/FEAASPicker.d.ts.map +1 -0
  81. package/types/ui/index.d.ts +5 -0
  82. package/types/ui/index.d.ts.map +1 -0
  83. package/dist/browser/basic.cjs +0 -67
  84. package/dist/browser/index.cjs +0 -72
  85. package/dist/node/basic.cjs +0 -1539
  86. package/dist/node/index.cjs +0 -1936
  87. package/src/components/index.tsx +0 -7
  88. package/src/index.ts +0 -4
  89. package/test/components.js +0 -11
  90. package/test/render.js +0 -688
  91. package/types/components/index.d.ts +0 -7
  92. package/types/index.d.ts +0 -4
package/README.md CHANGED
@@ -22,13 +22,13 @@ data.
22
22
  ### React:
23
23
 
24
24
  ```javascript
25
- import {FEAASComponent} from '@sitecore-feaas/clientside';
25
+ import * as FEAAS '@sitecore-feaas/clientside';
26
26
 
27
27
  // provide html template directly
28
- <FEAASComponent template={`<p>Hello <var data-path="user.name" /></p>`} data={{user: {name: "World"}}} />
28
+ <feaas-component template={`<p>Hello <var data-path="user.name" /></p>`} data={JSON.stringify({user: {name: "World"})}} />
29
29
 
30
30
  // fetch component from the cloud
31
- <FEAASComponent component="..." version="..." revision="production" hostname="..." data={{user: {name: "World"}}} />
31
+ <feaas-component component="..." version="..." revision="production" cdn="..." data={JSON.stringify({user: {name: "World"}})} />
32
32
  ```
33
33
 
34
34
  ### JS Dom
@@ -46,7 +46,7 @@ const element = FEAAS.renderComponent({
46
46
  component: '...',
47
47
  version: '...',
48
48
  revision: 'production',
49
- hostname: '...',
49
+ cdn: '...',
50
50
  data: { user: { name: 'World' } }
51
51
  })
52
52
 
@@ -111,5 +111,5 @@ with HTML inclusion, the stylesheet will not be loaded twice.
111
111
  import * as FEAAS from '@sitecore-feaas/clientside'
112
112
 
113
113
  // Load stylesheet (will automatically add it )
114
- FEAAS.loadStyles(':tenant_id')
114
+ <feaas-stylesheet='library_id'></feaas-stylesheet>
115
115
  ```
package/build/basic.js ADDED
@@ -0,0 +1,11 @@
1
+ var _a;
2
+ export * from './dom.js';
3
+ export * from './fetch.js';
4
+ export * from './components/FEAASBase.js';
5
+ export * from './components/FEAASComponent.js';
6
+ export * from './components/FEAASLoader.js';
7
+ export * from './components/FEAASStylesheet.js';
8
+ console.log('FEAAS loaded');
9
+ if (typeof window != 'undefined')
10
+ (_a = window.FEAASLoading) !== null && _a !== void 0 ? _a : (window.FEAASLoading = Promise.resolve());
11
+ //# sourceMappingURL=basic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic.js","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;AAC/C,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;AAQ3B,IAAI,OAAO,MAAM,IAAI,WAAW;IAAE,MAAA,MAAM,CAAC,YAAY,oCAAnB,MAAM,CAAC,YAAY,GAAK,OAAO,CAAC,OAAO,EAAE,EAAA"}
package/build/cloud.js ADDED
@@ -0,0 +1,22 @@
1
+ import { fetchAndRevalidate } from './fetch.js';
2
+ export function getComponentURL({ cdn = 'https://feaascomponentsapidev.blob.core.windows.net', hostname, library, component, version, revision = 'published' }) {
3
+ return `${cdn || hostname}/components/${library}/${component}/${version}/${revision}.html`;
4
+ }
5
+ export function getStylesheetURL({ cdn = `https://feaascomponentsapidev.blob.core.windows.net`, hostname, library, revision = 'published' }) {
6
+ return `${cdn || hostname}/styles/${library}/${revision}.css`;
7
+ }
8
+ export async function fetchComponent(props, callback) {
9
+ return fetchAndRevalidate(getComponentURL(props), {}, (response) => {
10
+ return response.headers.get('x-ms-meta-versionDeletedAt') == null;
11
+ }, (response) => {
12
+ response.text().then(callback);
13
+ });
14
+ }
15
+ export async function fetchStylesheet(props, callback) {
16
+ return fetchAndRevalidate(getStylesheetURL(props), {}, (response) => {
17
+ return response.headers.get('x-ms-meta-deletedAt') == null;
18
+ }, (response) => {
19
+ response.text().then(callback);
20
+ });
21
+ }
22
+ //# sourceMappingURL=cloud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud.js","sourceRoot":"","sources":["../src/cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAiB/C,MAAM,UAAU,eAAe,CAAC,EAC9B,GAAG,GAAG,qDAAqD,EAC3D,QAAQ,EACR,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,GAAG,WAAW,EACR;IACd,OAAO,GAAG,GAAG,IAAI,QAAQ,eAAe,OAAO,IAAI,SAAS,IAAI,OAAO,IAAI,QAAQ,OAAO,CAAA;AAC5F,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC/B,GAAG,GAAG,qDAAqD,EAC3D,QAAQ,EACR,OAAO,EACP,QAAQ,GAAG,WAAW,EACN;IAChB,OAAO,GAAG,GAAG,IAAI,QAAQ,WAAW,OAAO,IAAI,QAAQ,MAAM,CAAA;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAoB,EAAE,QAAgC;IACzF,OAAO,kBAAkB,CACvB,eAAe,CAAC,KAAK,CAAC,EACtB,EAAE,EACF,CAAC,QAAQ,EAAE,EAAE;QACX,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,IAAI,CAAA;IACnE,CAAC,EACD,CAAC,QAAQ,EAAE,EAAE;QACX,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC,CACF,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAsB,EAAE,QAA+B;IAC3F,OAAO,kBAAkB,CACvB,gBAAgB,CAAC,KAAK,CAAC,EACvB,EAAE,EACF,CAAC,QAAQ,EAAE,EAAE;QACX,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAA;IAC5D,CAAC,EACD,CAAC,QAAQ,EAAE,EAAE;QACX,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC,CACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,229 @@
1
+ // Shim in case it's required in node.js environment
2
+ var WebComponent = typeof HTMLElement == 'undefined' ? class {
3
+ } : HTMLElement;
4
+ export class FEAASBase extends WebComponent {
5
+ constructor() {
6
+ super(...arguments);
7
+ /** Is/was component in the dom? */
8
+ this.connected = null;
9
+ this.refs = {};
10
+ this.descendants = [];
11
+ /** Payload is inside onLoad callback. For web components that use react, it has to provide React & ReactDOM props */
12
+ this.onLoad = (payload) => {
13
+ if (payload == null)
14
+ return;
15
+ this.payload = payload;
16
+ this.render();
17
+ };
18
+ }
19
+ /** Return attributes as parsed values */
20
+ getProps(context) {
21
+ return {};
22
+ }
23
+ /** Attaches shadow root if getShadowRootOptions any settings, or uses element itself */
24
+ getRoot() {
25
+ return this;
26
+ }
27
+ /** Attribute changes trigger props parsing and schedules re-rendering */
28
+ attributeChangedCallback(name, oldValue, newValue) {
29
+ this.set();
30
+ }
31
+ /** Components parses its attributes when connected, and schedules rendeirng */
32
+ connectedCallback() {
33
+ console.log('FEAAS: Connected', this);
34
+ this.connected = new Event('feaasConnected', { bubbles: true, composed: true });
35
+ this.dispatchEvent(this.connected);
36
+ this.addEventListener('feaasConnected', this);
37
+ this.addEventListener('feaasDisconnected', this);
38
+ this.set();
39
+ }
40
+ /** Nothing special happens on disconnect, except setting a flag */
41
+ disconnectedCallback() {
42
+ console.log('FEAAS: Disconnected', this);
43
+ this.removeEventListener('feaasConnected', this);
44
+ this.removeEventListener('feaasDisconnected', this);
45
+ this.dispatchEvent(new Event('feaasDisconnected', { bubbles: true, composed: true }));
46
+ this.connected = null;
47
+ }
48
+ /** Catch-all event handler that dispatches events to callback */
49
+ handleEvent(event) {
50
+ switch (event.type) {
51
+ case 'feaasConnected':
52
+ this.nestedCallback(event);
53
+ break;
54
+ case 'feaasDisconnected':
55
+ this.unnestedCallback(event);
56
+ break;
57
+ }
58
+ }
59
+ /** Act on children element being removed */
60
+ unnestedCallback(event) {
61
+ const target = event.composedPath()[0];
62
+ const index = this.descendants.indexOf(target);
63
+ if (index == -1)
64
+ return;
65
+ console.log('FEAAS: Unnest', this, target);
66
+ this.descendants.splice(index, -1);
67
+ this.refs[target.getComponentName()] = null;
68
+ if (target.refs.parent == this)
69
+ target.refs.parent = null;
70
+ if (target.refs.top == this) {
71
+ target.refs.top = target.refs.parent;
72
+ }
73
+ }
74
+ /** Act on children element being added */
75
+ nestedCallback(event) {
76
+ var _a, _b;
77
+ const target = event.composedPath()[0];
78
+ const index = this.descendants.indexOf(target);
79
+ if (index != -1)
80
+ return;
81
+ this.descendants.push(target);
82
+ console.log('FEAAS: Nest', this, target);
83
+ this.refs[target.getComponentName()] = target;
84
+ target.refs.top = this;
85
+ (_a = target.refs).parent || (_a.parent = this);
86
+ if (target.renderReact) {
87
+ for (var p = target.refs.parent; p; p = p.refs.parent) {
88
+ if (p.renderReact) {
89
+ (_b = target.refs).parentReact || (_b.parentReact = p);
90
+ target.refs.topReact = p;
91
+ }
92
+ }
93
+ }
94
+ }
95
+ getComponentName() {
96
+ return this.tagName.replace('FEAAS-', '').toLowerCase();
97
+ }
98
+ /**
99
+ * Check if lazy component is ready to be loaded. For example a component may stay unloaded unless certain attributes
100
+ * are set
101
+ */
102
+ isReadyToLoad() {
103
+ return this.payload === undefined && this.getAttribute('hidden') == null;
104
+ }
105
+ /** Load lazy component & render */
106
+ async reify() {
107
+ if (this.payload !== undefined) {
108
+ this.render();
109
+ }
110
+ else if (this.isReadyToLoad()) {
111
+ this.payload = null;
112
+ this.load().then(this.onLoad);
113
+ }
114
+ }
115
+ /** Invoke preloading logic that needs to finish before component can render */
116
+ load() {
117
+ return Promise.resolve(null);
118
+ }
119
+ /**
120
+ * Component-specific logic that updates the DOM. Default render implementation assume react rendering, in that case
121
+ * the component needs to provide React & ReactDOM references in its payload. Web component redefine its render to not
122
+ * use react at all
123
+ */
124
+ render(nested = false) {
125
+ var _a, _b, _c;
126
+ console.log('FEAAS: React', this.tagName, this.payload);
127
+ if (this.payload == null)
128
+ return;
129
+ const { React, ReactDOM } = this.payload || {};
130
+ if (!React)
131
+ throw new Error(`${this.tagName}: React is not present in payload`);
132
+ if (!ReactDOM)
133
+ throw new Error(`${this.tagName}: ReactDOM is not present in payload`);
134
+ if (!this.refs.topReact && !this.forceUpdateReact) {
135
+ ReactDOM.render(React.createElement(this.getReactWrapper()), this.getReactRoot());
136
+ }
137
+ else if (this.forceUpdateReact) {
138
+ (_a = this.forceUpdateReact) === null || _a === void 0 ? void 0 : _a.call(this);
139
+ }
140
+ else {
141
+ (_c = (_b = this.refs.topReact).forceUpdateReact) === null || _c === void 0 ? void 0 : _c.call(_b);
142
+ }
143
+ }
144
+ invokeReactRendering() {
145
+ const { React, ReactDOM } = this.payload || {};
146
+ const children = this.descendants
147
+ .filter((r) => {
148
+ return r.refs.parentReact == this && r.payload;
149
+ })
150
+ .map((child, index) => {
151
+ return React.createElement(this.getReactWrapper(child), {
152
+ key: this.tagName + '-' + index,
153
+ slot: child.getAttribute('slot')
154
+ });
155
+ });
156
+ return this.renderReact({ ...this.props, children }, this.payload);
157
+ }
158
+ getReactWrapper(target = this, displayName = target.tagName) {
159
+ const Wrapper = (target.reactWrapper || (target.reactWrapper = (props) => {
160
+ if (target.renderReact) {
161
+ const { React, ReactDOM } = target.payload || {};
162
+ const [value, forceUpdateReact] = React.useReducer((r) => r + 1, 0);
163
+ target.forceUpdateReact = forceUpdateReact;
164
+ return ReactDOM.createPortal(React.createElement(React.Fragment, null, target.invokeReactRendering()), target.getReactRoot());
165
+ }
166
+ else {
167
+ return target.render();
168
+ }
169
+ }));
170
+ Object.assign(Wrapper, {
171
+ displayName: displayName
172
+ });
173
+ return Wrapper;
174
+ }
175
+ getUID() {
176
+ return (this.uid || (this.uid = String(Math.random())));
177
+ }
178
+ getReactRoot() {
179
+ return this.getRoot();
180
+ }
181
+ /** Set props and return values on new next tick */
182
+ set(overrides) {
183
+ this.overrides = {
184
+ ...this.overrides,
185
+ ...overrides
186
+ };
187
+ this.props = {
188
+ ...this.getProps(),
189
+ ...this.overrides
190
+ };
191
+ for (var property in this.props) {
192
+ const value = this.props[property];
193
+ if (this.props[property] == null) {
194
+ this.removeAttribute(property);
195
+ }
196
+ else if (typeof value == 'string' || typeof value == 'number') {
197
+ if (this.getAttribute(property) != String(value))
198
+ this.setAttribute(property, String(value));
199
+ }
200
+ }
201
+ this.scheduleRender();
202
+ }
203
+ /** Schedule rendering on next tick, to batch multiple attribute changes */
204
+ scheduleRender() {
205
+ cancelAnimationFrame(this.nextRender);
206
+ this.nextRender = requestAnimationFrame(() => {
207
+ this.reify();
208
+ });
209
+ }
210
+ formatURL(src, hostname) {
211
+ if (typeof src == 'string' && src.match(/^\/[^\/]/)) {
212
+ return hostname + src;
213
+ }
214
+ else {
215
+ return src;
216
+ }
217
+ }
218
+ getContextAttribute(name, element = this) {
219
+ var _a, _b;
220
+ return (_b = (_a = element.closest(`[${name}]`)) === null || _a === void 0 ? void 0 : _a.getAttribute(name)) !== null && _b !== void 0 ? _b : this.getAttribute(name);
221
+ }
222
+ static register(tagName) {
223
+ if (typeof window != 'undefined' && !window.customElements.get(tagName)) {
224
+ window.customElements.define(tagName, this);
225
+ }
226
+ }
227
+ }
228
+ export { FEAASBase as Base };
229
+ //# sourceMappingURL=FEAASBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FEAASBase.js","sourceRoot":"","sources":["../../src/components/FEAASBase.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import { fetchComponent } from '../cloud.js';
2
+ import { renderDOMContent, renderDOMElement } from '../dom.js';
3
+ import { FEAASBase } from './FEAASBase.js';
4
+ export function FEAASComponentsProps(element = this) {
5
+ let data;
6
+ const dataValue = element.getAttribute('data');
7
+ if (dataValue != null) {
8
+ try {
9
+ data = typeof dataValue == 'string' ? JSON.parse(dataValue) : {};
10
+ }
11
+ catch (e) { }
12
+ }
13
+ return {
14
+ data: data !== null && data !== void 0 ? data : {},
15
+ library: element.getAttribute('library'),
16
+ component: element.getAttribute('component'),
17
+ version: element.getAttribute('version'),
18
+ revision: element.getAttribute('revision'),
19
+ hostname: element.getAttribute('hostname'),
20
+ cdn: element.getContextAttribute('cdn'),
21
+ template: element.getAttribute('template'),
22
+ suspended: element.getAttribute('suspended') != null
23
+ };
24
+ }
25
+ export class FEAASComponent extends FEAASBase {
26
+ setData(data) {
27
+ this.set({ data });
28
+ }
29
+ getProps() {
30
+ return FEAASComponentsProps(this);
31
+ }
32
+ attributeChangedCallback(name, oldValue, newValue) {
33
+ this.payload = undefined;
34
+ this.needsRefresh = true;
35
+ super.attributeChangedCallback(name, oldValue, newValue);
36
+ }
37
+ /* Check if component is a repeated clone, and return the original */
38
+ getOriginal() {
39
+ const scope = this.getAttribute('data-path-scope');
40
+ if (!scope)
41
+ return;
42
+ for (var current = this; (current = current.previousElementSibling);) {
43
+ if (current.getAttribute('data-path-scope') == scope) {
44
+ var last = current;
45
+ }
46
+ else {
47
+ break;
48
+ }
49
+ }
50
+ return last;
51
+ }
52
+ isReadyToLoad() {
53
+ return (super.isReadyToLoad() && this.props.library != null && this.props.component != null && this.props.version != null);
54
+ }
55
+ async load() {
56
+ // defer loading to original element
57
+ if (this.getOriginal()) {
58
+ return;
59
+ }
60
+ try {
61
+ fetchComponent(this.props, this.onLoad);
62
+ }
63
+ catch (_a) {
64
+ console.error(`FEAAS: Could not fetch component: ${this.props.component}/${this.props.version}/${this.props.revision}`);
65
+ }
66
+ }
67
+ render() {
68
+ if (Array.from(this.children).filter((c) => c.tagName != 'BR').length > 0 && !this.needsRefresh) {
69
+ renderDOMElement(this, this.props.data);
70
+ }
71
+ else {
72
+ this.needsRefresh = true;
73
+ // defer rendering to original element
74
+ if (this.getOriginal()) {
75
+ return;
76
+ }
77
+ renderDOMContent(this, this.payload, this.props.data);
78
+ }
79
+ }
80
+ }
81
+ FEAASComponent.observedAttributes = ['library', 'component', 'version', 'revision', 'hostname', 'cdn', 'template', 'data'];
82
+ FEAASComponent.register('feaas-component');
83
+ export { FEAASComponent as Component };
84
+ //# sourceMappingURL=FEAASComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FEAASComponent.js","sourceRoot":"","sources":["../../src/components/FEAASComponent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { FEAASBase } from './FEAASBase.js';
2
+ export function FEAASLoaderProps(element = this) {
3
+ return {
4
+ hidden: (element === null || element === void 0 ? void 0 : element.getAttribute('hidden')) != null
5
+ };
6
+ }
7
+ export class FEAASLoader extends FEAASBase {
8
+ attributeChangedCallback(name, oldValue, newValue) {
9
+ if (name == 'hidden') {
10
+ this.style.setProperty('display', 'block', 'important');
11
+ this.style.setProperty('transition', 'opacity 0.3s', 'important');
12
+ if (newValue) {
13
+ this.style.setProperty('opacity', '0', 'important');
14
+ this.style.pointerEvents = 'none';
15
+ }
16
+ else {
17
+ this.style.setProperty('opacity', '1', 'important');
18
+ this.style.pointerEvents = 'all';
19
+ }
20
+ }
21
+ }
22
+ connectedCallback() {
23
+ this.attributeChangedCallback('hidden', this.getAttribute('hidden'), this.getAttribute('hidden'));
24
+ this.stylesheet = document.createElement('style');
25
+ this.stylesheet.textContent = `
26
+ #loader {
27
+ position: absolute;
28
+ top: 0;
29
+ left: 0;
30
+ right: 0;
31
+ bottom: 0;
32
+ display: flex;
33
+ align-items: center;
34
+ justify-content: center;
35
+ background: #f6f6ff;
36
+ z-index: 1000;
37
+ }
38
+ @keyframes loader-circular-track {
39
+ 0% {
40
+ stroke-dasharray: 1, 400;
41
+ stroke-dashoffset: 0;
42
+ }
43
+ 50% {
44
+ stroke-dasharray: 400, 400;
45
+ stroke-dashoffset: -100;
46
+ }
47
+ 100% {
48
+ stroke-dasharray: 400, 400;
49
+ stroke-dashoffset: -260;
50
+ }
51
+ }
52
+
53
+ @keyframes loader-circular-spinner {
54
+ 0% {
55
+ transform: rotate(0deg);
56
+ }
57
+
58
+ 100% {
59
+ transform: rotate(360deg);
60
+ }
61
+ }
62
+ #loader .spinner {
63
+ width: 48px;
64
+ height: 48px;
65
+ }
66
+ `;
67
+ this.loader = document.createElement('div');
68
+ this.loader.id = 'loader';
69
+ this.loader.innerHTML = `
70
+ <div class="spinner">
71
+ <svg
72
+ viewBox="0 0 100 100"
73
+ style="
74
+ animation: 2s linear 0s infinite normal none running loader-circular-spinner;
75
+ display: block;
76
+ width: 48px;
77
+ height: 48px;
78
+ "
79
+ >
80
+ <circle fill="transparent" cx="50" cy="50" r="42" stroke="rgba(0,0,0,0.1)" stroke-width="10px"></circle>
81
+ <circle
82
+ fill="transparent"
83
+ stroke="#5548D9"
84
+ cx="50"
85
+ cy="50"
86
+ r="42"
87
+ stroke-width="10px"
88
+ stroke-linecap="round"
89
+ style="animation: 1.5s linear 0s infinite normal none running loader-circular-track"
90
+ ></circle>
91
+ </svg>
92
+ </div>`;
93
+ this.getRoot().appendChild(this.stylesheet);
94
+ this.getRoot().appendChild(this.loader);
95
+ }
96
+ }
97
+ FEAASLoader.observedAttributes = ['hidden'];
98
+ FEAASLoader.register('feaas-loader');
99
+ export { FEAASLoader as Loader };
100
+ //# sourceMappingURL=FEAASLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FEAASLoader.js","sourceRoot":"","sources":["../../src/components/FEAASLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,UAAU,gBAAgB,CAAC,UAAuB,IAAI;IAC1D,OAAO;QACL,MAAM,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC,QAAQ,CAAC,KAAI,IAAI;KAChD,CAAA;AACH,CAAC;AAGD,MAAM,OAAO,WAAY,SAAQ,SAAmC;IAMlE,wBAAwB,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAgB;QACvE,IAAI,IAAI,IAAI,QAAQ,EAAE;YACpB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;YACvD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC,CAAA;YACjE,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,WAAW,CAAC,CAAA;gBACnD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAA;aAClC;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,WAAW,CAAC,CAAA;gBACnD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAA;aACjC;SACF;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;QACjG,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACjD,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyC/B,CAAA;QACC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC3C,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAA;QACzB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;SAuBnB,CAAA;QACL,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC;;AAzFM,8BAAkB,GAAG,CAAC,QAAQ,CAAC,CAAA;AAmGxC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;AAEpC,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { fetchStylesheet } from '../cloud.js';
2
+ import { FEAASBase } from './FEAASBase.js';
3
+ export function FEAASStylesheetProps(element = this) {
4
+ var _a;
5
+ return {
6
+ library: element === null || element === void 0 ? void 0 : element.getContextAttribute('library'),
7
+ revision: ((_a = element === null || element === void 0 ? void 0 : element.getAttribute('revision')) !== null && _a !== void 0 ? _a : 'published'),
8
+ cdn: (element === null || element === void 0 ? void 0 : element.getContextAttribute('cdn')) || (element === null || element === void 0 ? void 0 : element.getContextAttribute('hostname'))
9
+ };
10
+ }
11
+ export class FEAASStylesheet extends FEAASBase {
12
+ getProps() {
13
+ return FEAASStylesheetProps(this);
14
+ }
15
+ isReadyToLoad() {
16
+ return this.props.library != null && this.props.revision != null && this.props.cdn != null;
17
+ }
18
+ async load() {
19
+ fetchStylesheet(this.props, this.onLoad);
20
+ }
21
+ render() {
22
+ if (!this.stylesheet) {
23
+ this.stylesheet = document.createElement('style');
24
+ this.appendChild(this.stylesheet);
25
+ }
26
+ this.stylesheet.textContent = this.payload;
27
+ }
28
+ }
29
+ FEAASStylesheet.register('feaas-stylesheet');
30
+ export { FEAASStylesheet as Stylesheet };
31
+ //# sourceMappingURL=FEAASStylesheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FEAASStylesheet.js","sourceRoot":"","sources":["../../src/components/FEAASStylesheet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,UAAU,oBAAoB,CAAC,UAAqB,IAAI;;IAC5D,OAAO;QACL,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAC,SAAS,CAAC;QAChD,QAAQ,EAAE,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC,UAAU,CAAC,mCAAI,WAAW,CAA+C;QAC1G,GAAG,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAC,KAAK,CAAC,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;KACrF,CAAA;AACH,CAAC;AAGD,MAAM,OAAO,eAAgB,SAAQ,SAAuC;IAE1E,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;IAED,KAAK,CAAC,IAAI;QACR,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YACjD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;SAClC;QACD,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAA;IAC5C,CAAC;CACF;AASD,eAAe,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;AAC5C,OAAO,EAAE,eAAe,IAAI,UAAU,EAAE,CAAA"}