@sitecore-feaas/clientside 0.2.0 → 0.2.1

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 (98) hide show
  1. package/README.md +51 -31
  2. package/build/components/FEAASComponent.js +2 -2
  3. package/build/components/FEAASComponent.js.map +1 -1
  4. package/build/components/FEAASElement.js +408 -37
  5. package/build/components/FEAASElement.js.map +1 -1
  6. package/build/components/FEAASLoader.js +2 -2
  7. package/build/components/FEAASLoader.js.map +1 -1
  8. package/build/components/FEAASReactElement.js +47 -0
  9. package/build/components/FEAASReactElement.js.map +1 -0
  10. package/build/components/FEAASStylesheet.js +2 -2
  11. package/build/components/FEAASStylesheet.js.map +1 -1
  12. package/build/headless.js +4 -3
  13. package/build/headless.js.map +1 -1
  14. package/build/ui/FEAASContext.js +14 -5
  15. package/build/ui/FEAASContext.js.map +1 -1
  16. package/build/ui/FEAASEditor.js +2 -2
  17. package/build/ui/FEAASEditor.js.map +1 -1
  18. package/build/ui/FEAASExternal.js +65 -23
  19. package/build/ui/FEAASExternal.js.map +1 -1
  20. package/build/ui/FEAASPicker.js +3 -2
  21. package/build/ui/FEAASPicker.js.map +1 -1
  22. package/dist/browser/headless.cjs +5 -5
  23. package/dist/browser/headless.cjs.map +4 -4
  24. package/dist/browser/headless.esm.js +5 -5
  25. package/dist/browser/headless.esm.js.map +1 -1
  26. package/dist/browser/index.cjs +7 -7
  27. package/dist/browser/index.cjs.map +4 -4
  28. package/dist/browser/index.esm.js +7 -7
  29. package/dist/browser/index.esm.js.map +1 -1
  30. package/dist/browser/react.cjs +6 -6
  31. package/dist/browser/react.cjs.map +4 -4
  32. package/dist/browser/react.esm.js +6 -6
  33. package/dist/browser/react.esm.js.map +1 -1
  34. package/dist/node/headless.cjs +3 -3
  35. package/dist/node/headless.cjs.map +4 -4
  36. package/dist/node/headless.esm.js +2 -2
  37. package/dist/node/headless.esm.js.map +4 -4
  38. package/dist/node/index.cjs +4 -4
  39. package/dist/node/index.cjs.map +4 -4
  40. package/dist/node/index.esm.js +3 -3
  41. package/dist/node/index.esm.js.map +4 -4
  42. package/dist/node/react.cjs +4 -4
  43. package/dist/node/react.cjs.map +4 -4
  44. package/dist/node/react.esm.js +4 -4
  45. package/dist/node/react.esm.js.map +4 -4
  46. package/headless.cjs +3 -3
  47. package/headless.cjs.map +4 -4
  48. package/headless.js +3 -3
  49. package/headless.js.map +4 -4
  50. package/package.json +10 -2
  51. package/react.cjs +6 -6
  52. package/react.cjs.map +4 -4
  53. package/react.js +6 -6
  54. package/react.js.map +4 -4
  55. package/scripts/test-setup.ts +1 -0
  56. package/src/components/FEAASComponent.tsx +4 -4
  57. package/src/components/FEAASElement.tsx +467 -42
  58. package/src/components/FEAASLoader.tsx +2 -2
  59. package/src/components/FEAASReactElement.tsx +61 -0
  60. package/src/components/FEAASStylesheet.tsx +3 -3
  61. package/src/headless.ts +5 -4
  62. package/src/ui/FEAASContext.tsx +16 -7
  63. package/src/ui/FEAASEditor.tsx +7 -7
  64. package/src/ui/FEAASExternal.tsx +76 -23
  65. package/src/ui/FEAASPicker.tsx +4 -3
  66. package/src/ui/tsconfig.json +1 -1
  67. package/test/FEAASBase.test.tsx +2 -2
  68. package/test/FEAASComponent.test.tsx +3 -1
  69. package/test/FEAASContext.test.tsx +206 -29
  70. package/test/FEAASPicker.test.tsx +4 -2
  71. package/types/components/FEAASComponent.d.ts +3 -3
  72. package/types/components/FEAASComponent.d.ts.map +1 -1
  73. package/types/components/FEAASElement.d.ts +292 -23
  74. package/types/components/FEAASElement.d.ts.map +1 -1
  75. package/types/components/FEAASLoader.d.ts +2 -2
  76. package/types/components/FEAASLoader.d.ts.map +1 -1
  77. package/types/components/FEAASReactElement.d.ts +30 -0
  78. package/types/components/FEAASReactElement.d.ts.map +1 -0
  79. package/types/components/FEAASStylesheet.d.ts +3 -3
  80. package/types/components/FEAASStylesheet.d.ts.map +1 -1
  81. package/types/headless.d.ts +4 -3
  82. package/types/headless.d.ts.map +1 -1
  83. package/types/tsbuildinfo +1 -1
  84. package/types/ui/FEAASContext.d.ts +8 -7
  85. package/types/ui/FEAASContext.d.ts.map +1 -1
  86. package/types/ui/FEAASEditor.d.ts +6 -6
  87. package/types/ui/FEAASEditor.d.ts.map +1 -1
  88. package/types/ui/FEAASExternal.d.ts +8 -10
  89. package/types/ui/FEAASExternal.d.ts.map +1 -1
  90. package/types/ui/FEAASPicker.d.ts +7 -6
  91. package/types/ui/FEAASPicker.d.ts.map +1 -1
  92. package/types/ui/tsbuildinfo +1 -0
  93. package/build/components/FEAASBase.js +0 -416
  94. package/build/components/FEAASBase.js.map +0 -1
  95. package/src/components/FEAASBase.tsx +0 -485
  96. package/types/components/FEAASBase.d.ts +0 -299
  97. package/types/components/FEAASBase.d.ts.map +0 -1
  98. package/types/tsbuildinfo_ui +0 -1
package/README.md CHANGED
@@ -193,6 +193,24 @@ const options = {
193
193
  type: 'string',
194
194
  title: 'Telephone',
195
195
  minLength: 10
196
+ },
197
+ bold: {
198
+ type: 'boolean',
199
+ title: 'Show text in bold weight'
200
+ }
201
+ },
202
+ ui: {
203
+ firstName: {
204
+ 'ui:autofocus': true,
205
+ 'ui:placeholder': 'Write your first name'
206
+ },
207
+ telephone: {
208
+ 'ui:options': {
209
+ inputType: 'tel'
210
+ }
211
+ },
212
+ bold: {
213
+ 'ui:widget': 'radio'
196
214
  }
197
215
  }
198
216
  }
@@ -218,6 +236,8 @@ user when embedding this Component.
218
236
  **Required**<br/> Type: String Array<br/> Required: no<br/> Description: Array of keys from Inputs (Props) that should
219
237
  be required
220
238
 
239
+ **UI**<br/> Type: JSONSchema object<br/> Required: no<br/> Description: Any UI specific configuration for the inputs form rendering in the builder
240
+
221
241
  _We use React JSONSchema Form to generate a form for the component properties. You can read more about React JSONSchema
222
242
  Form here:_ https://react-jsonschema-form.readthedocs.io
223
243
 
@@ -393,27 +413,30 @@ It is possible to use the styles as a part of BYOC component as well.
393
413
  Each element type like button, card, section has a dedicated class making it recieve the style. Designers can create
394
414
  their own element types, but some are built in. FEAAS class name starts with dash.
395
415
 
396
- - Text elements:
397
- - `-paragraph` or `<p>`
398
- - `-heading1` or `<h1>`
399
- - `-heading2` or `<h2>`
400
- - `-heading3` or `<h3>`
401
- - `-heading4` or `<h4>`
402
- - `-heading5` or `<h5>`
403
- - `-heading6` or `<h6>`
404
- - Block elements:
405
-
406
- - `-card`
407
- - `-section` or `<section>`
408
- - `-blockquote` or `<blockquote>`
409
- - `-block--media`
410
- - `-block--my-custom-type` - custom block type
411
-
412
- - Inline elements:
413
- - `-button` or `<button>`
414
- - `-link` or `<a>`
415
- - `-inline--badge`
416
- - `-inline--my-custom-type` - custom inline type
416
+ ### Text elements
417
+
418
+ - `-paragraph` or `<p>`
419
+ - `-heading1` or `<h1>`
420
+ - `-heading2` or `<h2>`
421
+ - `-heading3` or `<h3>`
422
+ - `-heading4` or `<h4>`
423
+ - `-heading5` or `<h5>`
424
+ - `-heading6` or `<h6>`
425
+
426
+ ###Block elements
427
+
428
+ - `-card`
429
+ - `-section` or `<section>`
430
+ - `-blockquote` or `<blockquote>`
431
+ - `-block--media`
432
+ - `-block--my-custom-type` - custom block type
433
+
434
+ ### Inline elements
435
+
436
+ - `-button` or `<button>`
437
+ - `-link` or `<a>`
438
+ - `-inline--badge`
439
+ - `-inline--my-custom-type` - custom inline type
417
440
 
418
441
  Applying the above classes inside an container with `-feaas -theme--name` classes will apply default theme styles for
419
442
  each. It is possible to use specific element styles defined in style guides overriding theme defaults with extra
@@ -436,14 +459,11 @@ of the badge
436
459
  </button>
437
460
 
438
461
  <!--
439
- "Primary" button with "instance" style created in builder.
440
- Style is bundled inline as a part of the html output.
441
- User can choose to start with reusable rule and "customize it".
442
- In that case the instance style is linked with the original.
443
- Removing the className belonging to instance style clears
444
- up the instance style from the document. In this case, only t
445
- he *typography* rule of the button was altered, so others
446
- (like spacing or decoration) still retain the link to shared styles.
462
+ "Primary" button with "instance" style created in builder. Style is bundled inline as a part of the html output.
463
+ User can choose to start with reusable rule and "customize it". In that case the instance style is linked with
464
+ the original. Removing the className belonging to instance style clears up the instance style from the document.
465
+ In this case, only the *typography* rule of the button was altered, so others (like spacing or decoration) still
466
+ retain the link to shared styles.
447
467
  -->
448
468
  <style>
449
469
  .-typography--chunky[data-instance-id="unique"][class][class][class] {
@@ -671,6 +691,7 @@ customizations and redefinitions do not rely on specificity.
671
691
 
672
692
  - **Gap override** (codename) - Child element can override the gap set by its parent. Used in builder. Similar to _
673
693
  align-self_ and _justify-self_ logic of flexbox. Independent from direction of layout.
694
+
674
695
  ```CSS
675
696
  /* Even though element style has lower priority than layout rule,
676
697
  the ---self-- family of variables can be redefined on element itself */
@@ -679,6 +700,7 @@ customizations and redefinitions do not rely on specificity.
679
700
  ---self--column-gap: 10px;
680
701
  }
681
702
  ```
703
+
682
704
  - **Paragraph spacing** - like gap, but for text elements. Takes precedence over vertical gap. Because text elements can
683
705
  not be direct children inside horizontal layouts, does not care about direction.
684
706
 
@@ -689,5 +711,3 @@ customizations and redefinitions do not rely on specificity.
689
711
  }
690
712
 
691
713
  ```
692
-
693
- > > > > > > > Stashed changes
@@ -1,7 +1,7 @@
1
1
  import { DEFAULT_CDN_URL, fetchAndRevalidateComponent, parseComponentSource } from '../cdn.js';
2
2
  import { renderDOMContent, renderDOMElement } from '../dom/rendering.js';
3
3
  import { loadStylesheetAllowStale } from '../headless.js';
4
- import { FEAASBase } from './FEAASBase.js';
4
+ import { FEAASElement } from './FEAASElement.js';
5
5
  export function FEAASComponentsProps(element) {
6
6
  var _a, _b, _c, _d, _e, _f, _g, _h;
7
7
  let data;
@@ -35,7 +35,7 @@ export function FEAASComponentsProps(element) {
35
35
  withStylesheet: element.getAttribute('with-stylesheet') != 'false'
36
36
  };
37
37
  }
38
- class FEAASComponent extends FEAASBase {
38
+ class FEAASComponent extends FEAASElement {
39
39
  setData(data) {
40
40
  this.set({ data });
41
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FEAASComponent.js","sourceRoot":"","sources":["../../src/components/FEAASComponent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FEAASComponent.js","sourceRoot":"","sources":["../../src/components/FEAASComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA2B,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AACvH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,UAAU,oBAAoB,CAAC,OAAqB;;IACxD,IAAI,IAAS,CAAA;IACb,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IACvC,IAAI,GAAG,EAAE;QACP,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QACxC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,GAAG,EAAE,CAAC,CAAA;QAC9E,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAA;KAC5D;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IAC9C,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,IAAI,EAAE,EAAE;QACxC,IAAI;YACF,IAAI,GAAG,OAAO,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;SACjE;QAAC,OAAO,CAAC,EAAE,GAAE;KACf;IACD,OAAO;QACL,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,GAAG,EAAE,MAAA,MAAA,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,mCAAI,GAAG,mCAAI,eAAe;QACjE,OAAO,EAAE,MAAA,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,mCAAI,OAAO;QACnD,SAAS,EAAE,MAAA,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,mCAAI,SAAS;QACzD,OAAO,EAAE,MAAA,MAAA,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,mCAAI,OAAO,mCAAI,YAAY;QACnE,QAAQ,EAAE,CAAC,MAAA,MAAA,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,mCAAI,QAAQ,mCAAI,WAAW,CAAwC;QAC9G,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;QAC1C,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;QAC1C,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;QAC1C,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,IAAI;QAClD,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,IAAI;QACpD,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC;QACnD,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,OAAO;KACnE,CAAA;AACH,CAAC;AAED,MAAa,cAAe,SAAQ,YAA0C;IAyB5E,OAAO,CAAC,IAAS;QACf,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IACpB,CAAC;IAED,QAAQ;QACN,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,wBAAwB,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAgB;QACvE,IAAI,QAAQ,KAAK,QAAQ;YAAE,OAAM;QACjC,kCAAkC;QAClC,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI,SAAS,EAAE;YACvF,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;SACzB;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QACxB,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC1D,CAAC;IAED,SAAS;;QACP,OAAO,MAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAkB,0CAAE,IAAI,CAAC,MAAM,CAAA;IAC/E,CAAC;IAED;QACE,KAAK,EAAE,CAAA;QAjCT,iBAAY,GAAG;YACb,GAAG,EAAE,eAAe;YACpB,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,YAAY;YACrB,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACgB,CAAA;QA8DlC,WAAM,GAAG,CAAC,IAAY,EAAE,EAAE;YACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;YACnB,IAAI,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC,CAAA;QAtCC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAClC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACvB,IAAI,CAAC,IAAI,EAAE,CAAA;aACZ;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3B,MAAM,CAAC,IAAI,EAAE,CAAA;YACb,OAAO,IAAI,CAAA;SACZ;IACH,CAAC;IAED,qEAAqE;IACrE,WAAW;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;QAClD,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,KAAK,IAAI,OAAO,GAAG,IAAe,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,GAAI;YAChF,IAAI,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,KAAK,EAAE;gBACpD,IAAI,IAAI,GAAG,OAAO,CAAA;aACnB;iBAAM;gBACL,MAAK;aACN;SACF;QACD,OAAO,IAAsB,CAAA;IAC/B,CAAC;IAED,aAAa;QACX,OAAO,CACL,KAAK,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAClH,CAAA;IACH,CAAC;IAOD,KAAK,CAAC,IAAI;QACR,oCAAoC;QACpC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,OAAM;SACP;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;YAC7B,IAAI,iBAAiB,GAAG,wBAAwB,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnG,iBAAiB,GAAG,IAAI,CAAA;gBACxB,IAAI,IAAI,CAAC,OAAO,EAAE;oBAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;iBAC1B;YACH,CAAC,CAAC,CAAA;SACH;QACD,OAAO,OAAO,CAAC,GAAG,CAAC;YACjB,iBAAiB;YACjB,2BAA2B,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;gBACnB,IAAI,CAAC,iBAAiB;oBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3C,CAAC,CAAC;SACH,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM;QACJ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC/F,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;SACxC;aAAM;YACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;YACxB,sCAAsC;YACtC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACtB,OAAM;aACP;YACD,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;SACtD;IACH,CAAC;;AAzHM,iCAAkB,GAAG;IAC1B,SAAS;IACT,WAAW;IACX,SAAS;IACT,UAAU;IACV,UAAU;IACV,KAAK;IACL,UAAU;IACV,MAAM;IACN,UAAU;IACV,UAAU;IACV,iBAAiB;CAClB,AAZwB,CAYxB;SAbU,cAAc;AAyJ3B,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;AAE1C,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,oBAAoB,IAAI,cAAc,EAAE,CAAA"}
@@ -1,47 +1,418 @@
1
- import { FEAASBase } from './FEAASBase.js';
2
- export default class FEAASElement extends FEAASBase {
1
+ import { ControlledPromise } from '../utils/promise.js';
2
+ // Shim in case it's required in node.js environment
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
+ * FEAASElement is a superclass for FEAAS components with optional react support.
13
+ *
14
+ * Initialization lifecycle:
15
+ *
16
+ * - `set(props)`
17
+ * - `scheduleRender()` - any attribute change causes render to schedule to next frame
18
+ * - `whenRendered.restart()` - rendering promise is reset and will resolve after render
19
+ * - `advance()` - called on next frame
20
+ * - `if (isReadyToLoad()) => boolean` - check if component has all necessary properties to load
21
+ * - `load() => payload` => component is loaded
22
+ * - `onLoad?(payload)` => invoke loaded callback
23
+ * - `advance()` => going further in state machine
24
+ * - `flush()` => flushes all react changes if needed
25
+ * - `update()` => component-specific method (or react) to render changes to dom
26
+ * - `render(payload, props)` => render means react
27
+ * - `whenRendered.resolve()` - rendering promise is resolved after rendering
28
+ * - `whenLoaded.resolved()` - resolved after loading and rendering
29
+ */
30
+ export class FEAASElement extends WebComponent {
31
+ /** Return attributes as parsed values */
32
+ getProps(context) {
33
+ return {};
34
+ }
35
+ constructor() {
36
+ super();
37
+ this.defaultProps = {};
38
+ /** Is/was component in the dom? */
39
+ this.connected = false;
40
+ this.refs = {};
41
+ this.descendants = [];
42
+ this.whenLoaded = ControlledPromise((payload) => {
43
+ this.payload = payload;
44
+ });
45
+ this.whenRendered = ControlledPromise(() => (this.initialized = true), () => cancelAnimationFrame(this.nextRender));
46
+ this.addEventListener('feaasMount', this);
47
+ this.addEventListener('feaasUnmount', this);
48
+ }
49
+ /** Attaches shadow root if getShadowRootOptions any settings, or uses element itself */
50
+ getRoot() {
51
+ return this;
52
+ }
53
+ /** Attribute changes trigger props parsing and schedules re-rendering */
54
+ attributeChangedCallback(name, oldValue, newValue) {
55
+ this.set();
56
+ }
57
+ /** Components parses its attributes when connected, and schedules rendeirng */
58
+ connectedCallback() {
59
+ this.mount();
60
+ }
61
+ disconnectedCallback() {
62
+ this.unmount();
63
+ }
64
+ /**
65
+ * Web components are initialized depth-first, making child elements render before its parents. This could here
66
+ * attempts to avoid this and inverts the initialization logic, so that children are initialized in the context of its
67
+ * already-initialized parents.
68
+ *
69
+ * FEAAS components dispatch `feaasMount` event that allows components to store references to each other. In addition
70
+ * it allows external scripts to listen for initialization of FEAAS components
71
+ */
72
+ mount() {
73
+ try {
74
+ const parent = this.getParent();
75
+ // Allow parent component to initialize first
76
+ if (parent && !parent.connected)
77
+ return;
78
+ if (this.connected)
79
+ return;
80
+ this.connected = true;
81
+ this.log('FEAAS: Mount', this.tagName, this);
82
+ this.dispatchEvent(new Event('feaasMount', { bubbles: true, composed: true }));
83
+ this.getElements().map((element) => { var _a; return (_a = element.mount) === null || _a === void 0 ? void 0 : _a.call(element); });
84
+ this.set();
85
+ }
86
+ catch (e) {
87
+ this.onError(e);
88
+ }
89
+ }
90
+ log(...args) {
91
+ if (typeof process != 'undefined' && process.env.TESTING)
92
+ return;
93
+ console.log(...args);
94
+ }
95
+ /** Nothing special happens on unmount, except setting a flag */
96
+ unmount() {
97
+ if (!this.connected)
98
+ return;
99
+ this.log('FEAAS: Unmount', this);
100
+ this.dispatchEvent(new Event('feaasUnmount', { bubbles: true, composed: true }));
101
+ this.connected = false;
102
+ }
103
+ getParent(onlyFeaas = true) {
104
+ for (var p = this; (p = p.parentElement || (p.parentNode instanceof ShadowRoot ? p.parentNode.host : null));) {
105
+ if (!onlyFeaas || p.tagName.startsWith('FEAAS-'))
106
+ return p;
107
+ }
108
+ }
109
+ getElements(root = this.getRoot(), onlyFeaas = true) {
110
+ return Array.from(root.querySelectorAll('*'))
111
+ .map((el) => [
112
+ !onlyFeaas || el.tagName.startsWith('FEAAS-') ? el : null,
113
+ el.shadowRoot ? this.getElements(el.shadowRoot, onlyFeaas) : null
114
+ ])
115
+ .flat()
116
+ .filter(Boolean);
117
+ }
118
+ /** Catch-all event handler that dispatches events to callback */
119
+ handleEvent(event) {
120
+ const target = event.composedPath()[0];
121
+ switch (event.type) {
122
+ case 'feaasMount':
123
+ if (target != this)
124
+ this.nestedCallback(target);
125
+ break;
126
+ case 'feaasUnmount':
127
+ if (target != this)
128
+ this.unnestedCallback(target);
129
+ break;
130
+ }
131
+ }
132
+ /** Act on children element being removed */
133
+ unnestedCallback(target) {
134
+ const index = this.descendants.indexOf(target);
135
+ if (index == -1)
136
+ return;
137
+ this.log('FEAAS: Unnest', this, target);
138
+ this.descendants.splice(index, -1);
139
+ this.refs[target.getComponentName()] = null;
140
+ if (target.refs.parent == this)
141
+ target.refs.parent = null;
142
+ if (target.refs.top == this) {
143
+ target.refs.top = target.refs.parent;
144
+ }
145
+ }
146
+ /** Act on children element being added */
147
+ nestedCallback(target) {
148
+ var _a, _b;
149
+ const index = this.descendants.indexOf(target);
150
+ if (index != -1)
151
+ return;
152
+ this.descendants.push(target);
153
+ this.log('FEAAS: Nest', this, target);
154
+ this.refs[target.getComponentName()] = target;
155
+ target.refs.top = this;
156
+ (_a = target.refs).parent || (_a.parent = this);
157
+ if (target.render) {
158
+ for (var p = target.refs.parent; p; p = p.refs.parent) {
159
+ if (p.render) {
160
+ (_b = target.refs).parentReact || (_b.parentReact = p);
161
+ target.refs.topReact = p;
162
+ }
163
+ }
164
+ }
165
+ }
166
+ getComponentName() {
167
+ return this.tagName.replace('FEAAS-', '').toLowerCase();
168
+ }
169
+ /**
170
+ * Check if lazy component is ready to be loaded. For example a component may stay unloaded unless certain attributes
171
+ * are set
172
+ */
173
+ isReadyToLoad() {
174
+ return this.payload === undefined && this.getAttribute('hidden') == null;
175
+ }
176
+ /** Generic error handler */
177
+ onError(error, where = 'uncaught', handled = false) {
178
+ const event = new CustomEvent('feaasError', { bubbles: true, composed: true, detail: error });
179
+ this.dispatchEvent(event);
180
+ this.whenLoaded.reject(error);
181
+ if (!event.defaultPrevented && !handled) {
182
+ this.whenRendered.reject(error);
183
+ try {
184
+ this.unmount();
185
+ }
186
+ catch (e) { }
187
+ return true;
188
+ }
189
+ return false;
190
+ }
191
+ shouldUpdateOnLoad() {
192
+ return true;
193
+ }
194
+ /** Load lazy component & render */
195
+ async advance() {
196
+ try {
197
+ if (this.payload === undefined) {
198
+ if (!this.isReadyToLoad())
199
+ return;
200
+ this.payload = null;
201
+ this.dispatchEvent(new Event('feaasLoad', { bubbles: true, composed: true }));
202
+ const loaded = await this.load().catch((e) => {
203
+ this.payload = undefined;
204
+ throw e;
205
+ });
206
+ this.whenLoaded.resolve(loaded);
207
+ // Allow component to handle the post-loading
208
+ if (this.onLoad) {
209
+ return;
210
+ }
211
+ }
212
+ else if (this.payload == null) {
213
+ return;
214
+ }
215
+ this.flush();
216
+ this.whenRendered.resolve(this);
217
+ }
218
+ catch (e) {
219
+ this.onError(e);
220
+ }
221
+ }
222
+ flush() {
223
+ var _a, _b;
224
+ const flushSync = (_b = (_a = this.payload) === null || _a === void 0 ? void 0 : _a.ReactDOM) === null || _b === void 0 ? void 0 : _b.flushSync;
225
+ if (flushSync) {
226
+ flushSync(() => this.update());
227
+ }
228
+ else {
229
+ this.update();
230
+ }
231
+ }
232
+ /** Invoke preloading logic that needs to finish before component can render */
3
233
  load() {
4
- return Promise.all([
5
- // @ts-ignore @webpack-ignore
6
- import('https://cdn.skypack.dev/react'),
7
- // @ts-ignore
8
- import('https://cdn.skypack.dev/react-dom')
9
- ]).then(([React, ReactDOM]) => {
10
- return { React, ReactDOM };
234
+ return Promise.resolve(null);
235
+ }
236
+ /**
237
+ * Component-specific logic that updates the DOM. Default render implementation assume react rendering, in that case
238
+ * the component needs to provide React & ReactDOM references in its payload. Web component redefine its render to not
239
+ * use react at all
240
+ */
241
+ update() {
242
+ var _a, _b, _c;
243
+ //this.log('FEAAS: React', this.tagName, this.payload)
244
+ if (this.payload == null)
245
+ return;
246
+ if (!this.render)
247
+ return;
248
+ const { React, ReactDOM, ReactDOMClient } = this.payload || {};
249
+ if (!React)
250
+ throw new Error(`${this.tagName}: React is not present in payload`);
251
+ if (!ReactDOM)
252
+ throw new Error(`${this.tagName}: ReactDOM is not present in payload`);
253
+ if (!this.refs.topReact && !this.forceUpdateReact) {
254
+ if (ReactDOMClient) {
255
+ this.reactRoot || (this.reactRoot = ReactDOMClient.createRoot(this.getReactRootElement()));
256
+ this.reactRoot.render(this.getReactElement());
257
+ }
258
+ else {
259
+ ReactDOM.render(this.getReactElement(), this.getReactRootElement());
260
+ }
261
+ }
262
+ else if (this.forceUpdateReact) {
263
+ (_a = this.forceUpdateReact) === null || _a === void 0 ? void 0 : _a.call(this);
264
+ }
265
+ else {
266
+ (_c = (_b = this.refs.topReact).forceUpdateReact) === null || _c === void 0 ? void 0 : _c.call(_b);
267
+ }
268
+ }
269
+ invokeReactRendering() {
270
+ const { React, ReactDOM } = this.payload || {};
271
+ if (!this.connected)
272
+ return null;
273
+ const children = this.descendants
274
+ .filter((r) => {
275
+ return r.refs.parentReact == this && r.payload;
276
+ })
277
+ .map((child, index) => {
278
+ return this.getReactElement(child);
11
279
  });
280
+ return this.render({ ...this.props, children }, this.payload);
12
281
  }
13
- render({}, { React }) {
14
- return React.createElement(React.Fragment, null);
282
+ getReactErrorBoundary(target = this, displayName = target.tagName) {
283
+ if (this.reactErrorBoundary)
284
+ return this.reactErrorBoundary;
285
+ const { React, ReactDOM } = target.payload || {};
286
+ return (this.reactErrorBoundary || (this.reactErrorBoundary = class FEAASErrorBoundary extends React.Component {
287
+ constructor() {
288
+ super(...arguments);
289
+ this.state = {
290
+ error: null
291
+ };
292
+ }
293
+ static getDerivedStateFromError(error) {
294
+ return { error: error };
295
+ }
296
+ componentDidCatch(error, errorInfo) {
297
+ console.error(`FEAAS: ${target.tagName} Error:`, error, errorInfo);
298
+ target.onError(error, 'react');
299
+ //this.setState({ error: error })
300
+ }
301
+ render() {
302
+ if (this.state.error) {
303
+ // target.classList.add('feaas-error')
304
+ return;
305
+ //return <h1>There seems to be a problem.</h1>
306
+ }
307
+ //if (target.classList.contains('feaas-error')) target.classList.remove('feaas-error')
308
+ return this.props.children;
309
+ }
310
+ }));
15
311
  }
16
- }
17
- class MyComponent extends FEAASElement {
18
- constructor() {
19
- super(...arguments);
20
- this.useShadowRoot = true;
312
+ getReactElement(target = this, props) {
313
+ const { React, ReactDOM } = target.payload || {};
314
+ const ErrorBoundary = this.getReactErrorBoundary();
315
+ const Wrapper = this.getReactWrapper(target);
316
+ return (React.createElement(ErrorBoundary, { key: target.tagName + '-' + target.getUID(), slot: target.getAttribute('slot') },
317
+ React.createElement(Wrapper, null)));
21
318
  }
22
- // parse attributes from web component to react-ready form
23
- getProps() {
24
- return {
25
- counter: parseFloat(this.getAttribute('counter'))
319
+ getReactWrapper(target = this, displayName = target.tagName) {
320
+ if (target.reactWrapper)
321
+ return target.reactWrapper;
322
+ const { React, ReactDOM } = target.payload || {};
323
+ target.reactWrapper = (props) => {
324
+ if (target.render) {
325
+ const [value, forceUpdateReact] = React.useReducer((r) => r + 1, 0);
326
+ target.forceUpdateReact = forceUpdateReact;
327
+ return ReactDOM.createPortal(React.createElement(React.Fragment, null, target.invokeReactRendering()), target.getReactRootElement());
328
+ }
329
+ else {
330
+ return target.update();
331
+ }
26
332
  };
333
+ Object.assign(target.reactWrapper, {
334
+ key: target.tagName + '-' + target.getUID(),
335
+ displayName: displayName
336
+ });
337
+ return target.reactWrapper;
338
+ }
339
+ getUID() {
340
+ return (this.uid || (this.uid = String(Math.random())));
341
+ }
342
+ getShadowRoot() {
343
+ if (!this.shadowRoot) {
344
+ this.attachShadow({ mode: 'open' });
345
+ }
346
+ return this.shadowRoot;
347
+ }
348
+ getReactRootElement() {
349
+ return this.useShadowRoot ? this.getShadowRoot() : this.getRoot();
350
+ }
351
+ /** Set props and return values on new next tick */
352
+ set(overrides) {
353
+ try {
354
+ this.scheduleRender();
355
+ this.overrides = {
356
+ ...this.overrides,
357
+ ...overrides
358
+ };
359
+ this.props = {
360
+ ...this.getProps(),
361
+ ...this.overrides
362
+ };
363
+ for (var property in this.props) {
364
+ const value = this.props[property];
365
+ const attribute = property.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
366
+ if (value == null || value === this.defaultProps[property]) {
367
+ this.removeAttribute(attribute);
368
+ }
369
+ else if (typeof value == 'string' || typeof value == 'number' || typeof value == 'boolean') {
370
+ if (this.getAttribute(attribute) != String(value))
371
+ this.setAttribute(attribute, String(value));
372
+ }
373
+ }
374
+ }
375
+ catch (e) {
376
+ this.whenRendered.reject(e);
377
+ this.onError(e, 'set');
378
+ }
379
+ return this;
380
+ }
381
+ import(path) {
382
+ return import(/* @vite-ignore */ /* webpackIgnore: true */ path);
383
+ }
384
+ scheduleRender() {
385
+ if (this.nextRender == null) {
386
+ this.whenRendered = this.whenRendered.restart();
387
+ }
388
+ cancelAnimationFrame(this.nextRender);
389
+ this.nextRender = requestAnimationFrame(() => {
390
+ this.nextRender = null;
391
+ this.advance().catch((e) => { });
392
+ });
393
+ }
394
+ formatURL(src, hostname) {
395
+ if (typeof src == 'string' && src.match(/^\/[^\/]/)) {
396
+ return hostname + src;
397
+ }
398
+ else {
399
+ return src;
400
+ }
401
+ }
402
+ getContextAttribute(name, element = this) {
403
+ for (var p = this; (p = p.parentElement || (p.parentNode instanceof ShadowRoot ? p.parentNode.host : null));) {
404
+ if (p.getAttribute(name) != null)
405
+ return p.getAttribute(name);
406
+ }
407
+ return this.getAttribute(name);
27
408
  }
28
- // First argument is props, second arguments is React stuff
29
- // Destructuring React is important for JSX to work
30
- render({ counter }, { React }) {
31
- const [updates, setUpdates] = React.useState(0);
32
- React.useEffect(() => {
33
- setUpdates((u) => u + 1);
34
- }, [counter]);
35
- return (React.createElement(React.Fragment, null,
36
- React.createElement("p", null,
37
- "Rendering attribute: ",
38
- counter),
39
- React.createElement("p", null,
40
- "Triggered updates: ",
41
- updates)));
409
+ static register(tagName, win) {
410
+ if (win == null)
411
+ win = typeof window != 'undefined' ? window : null;
412
+ if (win && !win.customElements.get(tagName)) {
413
+ win.customElements.define(tagName, this);
414
+ }
42
415
  }
43
416
  }
44
- // will re-render component if any of these attributes have changed
45
- MyComponent.observedAttributes = ['counter'];
46
- export { MyComponent };
417
+ export { FEAASElement as Element };
47
418
  //# sourceMappingURL=FEAASElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FEAASElement.js","sourceRoot":"","sources":["../../src/components/FEAASElement.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAW1C,MAAM,CAAC,OAAO,OAAO,YAAgB,SAAQ,SAA0B;IACrE,IAAI;QACF,OAAO,OAAO,CAAC,GAAG,CAAC;YACjB,6BAA6B;YAC7B,MAAM,CAAC,+BAA+B,CAAC;YACvC,aAAa;YACb,MAAM,CAAC,mCAAmC,CAAC;SAC5C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE;YAC5B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;QAC5B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,EAAK,EAAE,EAAE,KAAK,EAAgB;QACnC,OAAO,yCAAK,CAAA;IACd,CAAC;CACF;AAMD,MAAa,WAAY,SAAQ,YAA8B;IAA/D;;QAIE,kBAAa,GAAG,IAAI,CAAA;IAuBtB,CAAC;IArBC,0DAA0D;IAC1D,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SAClD,CAAA;IACH,CAAC;IAED,2DAA2D;IAC3D,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,EAAoB,EAAE,EAAE,KAAK,EAAgB;QAC3D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC/C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;YACnB,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;QACb,OAAO,CACL;YACE;;gBAAyB,OAAO,CAAK;YACrC;;gBAAuB,OAAO,CAAK,CAClC,CACJ,CAAA;IACH,CAAC;;AAzBD,mEAAmE;AAC5D,8BAAkB,GAAG,CAAC,SAAS,CAAC,AAAd,CAAc;SAF5B,WAAW"}
1
+ {"version":3,"file":"FEAASElement.js","sourceRoot":"","sources":["../../src/components/FEAASElement.tsx"],"names":[],"mappings":"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"}