@sitecore-feaas/clientside 0.1.19 → 0.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/basic.js +5 -1
- package/build/basic.js.map +1 -1
- package/build/cloud.js +40 -7
- package/build/cloud.js.map +1 -1
- package/build/components/FEAASBase.js +60 -21
- package/build/components/FEAASBase.js.map +1 -1
- package/build/components/FEAASComponent.js +35 -1
- package/build/components/FEAASComponent.js.map +1 -1
- package/build/components/FEAASElement.js +14 -0
- package/build/components/FEAASElement.js.map +1 -0
- package/build/components/FEAASLoader.js +13 -1
- package/build/components/FEAASLoader.js.map +1 -1
- package/build/components/FEAASStylesheet.js.map +1 -1
- package/build/dom.js +6 -0
- package/build/dom.js.map +1 -1
- package/build/fetch.js +48 -45
- package/build/fetch.js.map +1 -1
- package/build/ui/FEAASContext.js +12 -13
- package/build/ui/FEAASContext.js.map +1 -1
- package/build/ui/FEAASEditor.js +448 -76
- package/build/ui/FEAASEditor.js.map +1 -1
- package/build/ui/FEAASPicker.js +9 -59
- package/build/ui/FEAASPicker.js.map +1 -1
- package/dist/browser/basic.esm.js +5 -5
- package/dist/browser/basic.esm.js.map +1 -1
- package/dist/browser/basic.js +5 -5
- package/dist/browser/basic.js.map +1 -1
- package/dist/browser/index.esm.js +5 -10
- package/dist/browser/index.esm.js.map +1 -1
- package/dist/browser/index.js +5 -10
- package/dist/browser/index.js.map +1 -1
- package/dist/node/basic.esm.js +3 -3
- package/dist/node/basic.esm.js.map +1 -1
- package/dist/node/basic.js +3 -3
- package/dist/node/basic.js.map +1 -1
- package/dist/node/index.esm.js +3 -8
- package/dist/node/index.esm.js.map +1 -1
- package/dist/node/index.js +3 -8
- package/dist/node/index.js.map +1 -1
- package/examples/index.html +8 -49
- package/package.json +1 -6
- package/src/basic.ts +8 -1
- package/src/cloud.ts +43 -13
- package/src/components/FEAASBase.tsx +73 -20
- package/src/components/{FEAASComponent.ts → FEAASComponent.tsx} +37 -1
- package/src/components/FEAASElement.tsx +21 -0
- package/src/components/{FEAASLoader.ts → FEAASLoader.tsx} +14 -1
- package/src/components/{FEAASStylesheet.ts → FEAASStylesheet.tsx} +0 -0
- package/src/dom.ts +5 -0
- package/src/fetch.ts +82 -51
- package/src/ui/FEAASContext.tsx +13 -14
- package/src/ui/FEAASEditor.tsx +598 -144
- package/src/ui/FEAASPicker.tsx +18 -65
- package/test/components.ts +19 -0
- package/types/basic.d.ts +3 -0
- package/types/basic.d.ts.map +1 -1
- package/types/cloud.d.ts +8 -1
- package/types/cloud.d.ts.map +1 -1
- package/types/components/FEAASBase.d.ts +18 -4
- package/types/components/FEAASBase.d.ts.map +1 -1
- package/types/components/FEAASComponent.d.ts +7 -0
- package/types/components/FEAASComponent.d.ts.map +1 -1
- package/types/components/FEAASElement.d.ts +12 -0
- package/types/components/FEAASElement.d.ts.map +1 -0
- package/types/components/FEAASLoader.d.ts +6 -0
- package/types/components/FEAASLoader.d.ts.map +1 -1
- package/types/components/FEAASStylesheet.d.ts +2 -2
- package/types/components/FEAASStylesheet.d.ts.map +1 -1
- package/types/dom.d.ts.map +1 -1
- package/types/fetch.d.ts +42 -1
- package/types/fetch.d.ts.map +1 -1
- package/types/tsbuildinfo +1 -1
- package/types/tsbuildinfo_ui +1 -1
- package/types/ui/FEAASContext.d.ts +4 -4
- package/types/ui/FEAASContext.d.ts.map +1 -1
- package/types/ui/FEAASEditor.d.ts +71 -5
- package/types/ui/FEAASEditor.d.ts.map +1 -1
- package/types/ui/FEAASPicker.d.ts +15 -34
- package/types/ui/FEAASPicker.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/jsonpath-plus/dist/index-browser-esm.js","../../src/fetch.ts","../../src/cloud.ts","../../src/dom.ts","../../src/components/FEAASBase.tsx","../../src/components/FEAASComponent.ts","../../src/components/FEAASLoader.ts","../../src/components/FEAASStylesheet.ts","../../src/basic.ts"],"names":[],"mappings":"AAAA,SAAS,EAAQ,EAAK,CAGpB,OAAO,EAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAU,EAAK,CAClG,OAAO,OAAO,CAChB,EAAI,SAAU,EAAK,CACjB,OAAO,GAAqB,OAAO,QAArB,YAA+B,EAAI,cAAgB,QAAU,IAAQ,OAAO,UAAY,SAAW,OAAO,CAC1H,EAAG,EAAQ,CAAG,CAChB,CAEA,SAAS,EAAgB,EAAU,EAAa,CAC9C,GAAI,EAAE,aAAoB,GACxB,MAAM,IAAI,UAAU,mCAAmC,CAE3D,CAEA,SAAS,EAAkB,EAAQ,EAAO,CACxC,QAAS,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACrC,IAAI,EAAa,EAAM,CAAC,EACxB,EAAW,WAAa,EAAW,YAAc,GACjD,EAAW,aAAe,GACtB,UAAW,IAAY,EAAW,SAAW,IACjD,OAAO,eAAe,EAAQ,EAAW,IAAK,CAAU,CAC1D,CACF,CAEA,SAAS,EAAa,EAAa,EAAY,EAAa,CAC1D,OAAI,GAAY,EAAkB,EAAY,UAAW,CAAU,EAC/D,GAAa,EAAkB,EAAa,CAAW,EAC3D,OAAO,eAAe,EAAa,YAAa,CAC9C,SAAU,EACZ,CAAC,EACM,CACT,CAEA,SAAS,GAAU,EAAU,EAAY,CACvC,GAAI,OAAO,GAAe,YAAc,IAAe,KACrD,MAAM,IAAI,UAAU,oDAAoD,EAG1E,EAAS,UAAY,OAAO,OAAO,GAAc,EAAW,UAAW,CACrE,YAAa,CACX,MAAO,EACP,SAAU,GACV,aAAc,EAChB,CACF,CAAC,EACD,OAAO,eAAe,EAAU,YAAa,CAC3C,SAAU,EACZ,CAAC,EACG,GAAY,EAAgB,EAAU,CAAU,CACtD,CAEA,SAAS,EAAgB,EAAG,CAC1B,OAAA,EAAkB,OAAO,eAAiB,OAAO,eAAe,KAAK,EAAI,SAAyB,EAAG,CACnG,OAAO,EAAE,WAAa,OAAO,eAAe,CAAC,CAC/C,EACO,EAAgB,CAAC,CAC1B,CAEA,SAAS,EAAgB,EAAG,EAAG,CAC7B,OAAA,EAAkB,OAAO,eAAiB,OAAO,eAAe,KAAK,EAAI,SAAyB,EAAG,EAAG,CACtG,OAAA,EAAE,UAAY,EACP,CACT,EACO,EAAgB,EAAG,CAAC,CAC7B,CAEA,SAAS,GAA4B,CAEnC,GADI,OAAO,QAAY,KAAe,CAAC,QAAQ,WAC3C,QAAQ,UAAU,KAAM,MAAO,GACnC,GAAI,OAAO,OAAU,WAAY,MAAO,GAExC,GAAI,CACF,eAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,CAAC,EAAG,UAAY,CAAC,CAAC,CAAC,EACtE,EACT,MAAE,CACA,MAAO,EACT,CACF,CAEA,SAAS,EAAW,EAAQ,EAAM,EAAO,CACvC,OAAI,EAA0B,EAC5B,EAAa,QAAQ,UAAU,KAAK,EAEpC,EAAa,SAAoB,EAAQ,EAAM,EAAO,CACpD,IAAI,EAAI,CAAC,IAAI,EACb,EAAE,KAAK,MAAM,EAAG,CAAI,EACpB,IAAI,EAAc,SAAS,KAAK,MAAM,EAAQ,CAAC,EAC3C,EAAW,IAAI,EACnB,OAAI,GAAO,EAAgB,EAAU,EAAM,SAAS,EAC7C,CACT,EAGK,EAAW,MAAM,KAAM,SAAS,CACzC,CAEA,SAAS,GAAkB,EAAI,CAC7B,OAAO,SAAS,SAAS,KAAK,CAAE,EAAE,QAAQ,eAAe,IAAM,EACjE,CAEA,SAAS,EAAiB,EAAO,CAC/B,IAAI,EAAS,OAAO,KAAQ,WAAa,IAAI,IAAQ,OAErD,OAAA,EAAmB,SAA0B,EAAO,CAClD,GAAI,IAAU,MAAQ,CAAC,GAAkB,CAAK,EAAG,OAAO,EAExD,GAAI,OAAO,GAAU,WACnB,MAAM,IAAI,UAAU,oDAAoD,EAG1E,GAAI,OAAO,EAAW,IAAa,CACjC,GAAI,EAAO,IAAI,CAAK,EAAG,OAAO,EAAO,IAAI,CAAK,EAE9C,EAAO,IAAI,EAAO,CAAO,CAC3B,CAEA,SAAS,GAAU,CACjB,OAAO,EAAW,EAAO,UAAW,EAAgB,IAAI,EAAE,WAAW,CACvE,CAEA,OAAA,EAAQ,UAAY,OAAO,OAAO,EAAM,UAAW,CACjD,YAAa,CACX,MAAO,EACP,WAAY,GACZ,SAAU,GACV,aAAc,EAChB,CACF,CAAC,EACM,EAAgB,EAAS,CAAK,CACvC,EAEO,EAAiB,CAAK,CAC/B,CAEA,SAAS,GAAuB,EAAM,CACpC,GAAI,IAAS,OACX,MAAM,IAAI,eAAe,2DAA2D,EAGtF,OAAO,CACT,CAEA,SAAS,GAA2B,EAAM,EAAM,CAC9C,GAAI,IAAS,OAAO,GAAS,UAAY,OAAO,GAAS,YACvD,OAAO,EACF,GAAI,IAAS,OAClB,MAAM,IAAI,UAAU,0DAA0D,EAGhF,OAAO,GAAuB,CAAI,CACpC,CAEA,SAAS,GAAa,EAAS,CAC7B,IAAI,EAA4B,EAA0B,EAE1D,OAAO,UAAgC,CACrC,IAAI,EAAQ,EAAgB,CAAO,EAC/B,EAEJ,GAAI,EAA2B,CAC7B,IAAI,EAAY,EAAgB,IAAI,EAAE,YAEtC,EAAS,QAAQ,UAAU,EAAO,UAAW,CAAS,CACxD,MACE,EAAS,EAAM,MAAM,KAAM,SAAS,EAGtC,OAAO,GAA2B,KAAM,CAAM,CAChD,CACF,CAEA,SAAS,GAAmB,EAAK,CAC/B,OAAO,GAAmB,CAAG,GAAK,GAAiB,CAAG,GAAK,EAA4B,CAAG,GAAK,GAAmB,CACpH,CAEA,SAAS,GAAmB,EAAK,CAC/B,GAAI,MAAM,QAAQ,CAAG,EAAG,OAAO,EAAkB,CAAG,CACtD,CAEA,SAAS,GAAiB,EAAM,CAC9B,GAAI,OAAO,OAAW,KAAe,EAAK,OAAO,QAAQ,GAAK,MAAQ,EAAK,YAAY,GAAK,KAAM,OAAO,MAAM,KAAK,CAAI,CAC1H,CAEA,SAAS,EAA4B,EAAG,EAAQ,CAC9C,GAAK,EACL,IAAI,OAAO,GAAM,SAAU,OAAO,EAAkB,EAAG,CAAM,EAC7D,IAAI,EAAI,OAAO,UAAU,SAAS,KAAK,CAAC,EAAE,MAAM,EAAG,EAAE,EAErD,GADI,IAAM,UAAY,EAAE,cAAa,EAAI,EAAE,YAAY,MACnD,IAAM,OAAS,IAAM,MAAO,OAAO,MAAM,KAAK,CAAC,EACnD,GAAI,IAAM,aAAe,2CAA2C,KAAK,CAAC,EAAG,OAAO,EAAkB,EAAG,CAAM,EACjH,CAEA,SAAS,EAAkB,EAAK,EAAK,EAC/B,GAAO,MAAQ,EAAM,EAAI,UAAQ,EAAM,EAAI,QAE/C,QAAS,EAAI,EAAG,EAAO,IAAI,MAAM,CAAG,EAAG,EAAI,EAAK,IAAK,EAAK,CAAC,EAAI,EAAI,CAAC,EAEpE,OAAO,CACT,CAEA,SAAS,IAAqB,CAC5B,MAAM,IAAI,UAAU;AAAA,mFAAsI,CAC5J,CAEA,SAAS,GAA2B,EAAG,EAAgB,CACrD,IAAI,EAAK,OAAO,OAAW,KAAe,EAAE,OAAO,QAAQ,GAAK,EAAE,YAAY,EAE9E,GAAI,CAAC,EAAI,CACP,GAAI,MAAM,QAAQ,CAAC,IAAM,EAAK,EAA4B,CAAC,IAAM,GAAkB,GAAK,OAAO,EAAE,QAAW,SAAU,CAChH,IAAI,EAAI,GACZ,IAAI,EAAI,EAEJ,EAAI,UAAY,CAAC,EAErB,MAAO,CACL,EAAG,EACH,EAAG,UAAY,CACb,OAAI,GAAK,EAAE,OAAe,CACxB,KAAM,EACR,EACO,CACL,KAAM,GACN,MAAO,EAAE,GAAG,CACd,CACF,EACA,EAAG,SAAU,EAAG,CACd,MAAM,CACR,EACA,EAAG,CACL,CACF,CAEA,MAAM,IAAI,UAAU;AAAA,mFAAuI,CAC7J,CAEA,IAAI,EAAmB,GACnB,EAAS,GACT,EACJ,MAAO,CACL,EAAG,UAAY,CACb,EAAK,EAAG,KAAK,CAAC,CAChB,EACA,EAAG,UAAY,CACb,IAAI,EAAO,EAAG,KAAK,EACnB,OAAA,EAAmB,EAAK,KACjB,CACT,EACA,EAAG,SAAU,EAAG,CACd,EAAS,GACT,EAAM,CACR,EACA,EAAG,UAAY,CACb,GAAI,CACE,CAAC,GAAoB,EAAG,QAAU,MAAM,EAAG,OAAO,CACxD,QAAE,CACA,GAAI,EAAQ,MAAM,CACpB,CACF,CACF,CACF,CAEA,IAAI,EAAa,OAAO,UAAU,eAoBlC,SAAS,EAAK,EAAK,EAAM,CACvB,OAAA,EAAM,EAAI,MAAM,EAChB,EAAI,KAAK,CAAI,EACN,CACT,CASA,SAAS,EAAQ,EAAM,EAAK,CAC1B,OAAA,EAAM,EAAI,MAAM,EAChB,EAAI,QAAQ,CAAI,EACT,CACT,CAOA,IAAI,GAAwB,SAAU,EAAQ,CAC5C,GAAU,EAAU,CAAM,EAE1B,IAAI,EAAS,GAAa,CAAQ,EAKlC,SAAS,EAAS,EAAO,CACvB,IAAI,EAEJ,OAAA,EAAgB,KAAM,CAAQ,EAE9B,EAAQ,EAAO,KAAK,KAAM,4FAAiG,EAC3H,EAAM,SAAW,GACjB,EAAM,MAAQ,EACd,EAAM,KAAO,WACN,CACT,CAEA,OAAO,EAAa,CAAQ,CAC9B,EAAgB,EAAiB,KAAK,CAAC,EAgEvC,SAAS,EAAS,EAAM,EAAM,EAAK,EAAU,EAAmB,CAE9D,GAAI,EAAE,gBAAgB,GACpB,GAAI,CACF,OAAO,IAAI,EAAS,EAAM,EAAM,EAAK,EAAU,CAAiB,CAClE,OAAS,EAAP,CACA,GAAI,CAAC,EAAE,SACL,MAAM,EAGR,OAAO,EAAE,KACX,CAGE,OAAO,GAAS,WAClB,EAAoB,EACpB,EAAW,EACX,EAAM,EACN,EAAO,EACP,EAAO,MAGT,IAAI,EAAS,GAAQ,EAAQ,CAAI,IAAM,SAiBvC,GAhBA,EAAO,GAAQ,CAAC,EAChB,KAAK,KAAO,EAAK,MAAQ,EACzB,KAAK,KAAO,EAAK,MAAQ,EACzB,KAAK,WAAa,EAAK,YAAc,QACrC,KAAK,QAAU,EAAK,SAAW,GAC/B,KAAK,KAAO,EAAW,KAAK,EAAM,MAAM,EAAI,EAAK,KAAO,GACxD,KAAK,QAAU,EAAK,SAAW,CAAC,EAChC,KAAK,YAAc,EAAK,aAAe,GACvC,KAAK,OAAS,EAAK,QAAU,KAC7B,KAAK,eAAiB,EAAK,gBAAkB,KAC7C,KAAK,SAAW,EAAK,UAAY,GAAY,KAE7C,KAAK,kBAAoB,EAAK,mBAAqB,GAAqB,UAAY,CAClF,MAAM,IAAI,UAAU,kFAAuF,CAC7G,EAEI,EAAK,YAAc,GAAO,CAC5B,IAAI,EAAO,CACT,KAAM,EAAS,EAAK,KAAO,CAC7B,EAEK,EAEM,SAAU,IACnB,EAAK,KAAO,EAAK,MAFjB,EAAK,KAAO,EAKd,IAAI,EAAM,KAAK,SAAS,CAAI,EAE5B,GAAI,CAAC,GAAO,EAAQ,CAAG,IAAM,SAC3B,MAAM,IAAI,GAAS,CAAG,EAGxB,OAAO,CACT,CACF,CAGA,EAAS,UAAU,SAAW,SAAU,EAAM,EAAM,EAAU,EAAmB,CAC/E,IAAI,EAAS,KAET,EAAa,KAAK,OAClB,EAAqB,KAAK,eAC1B,EAAU,KAAK,QACf,EAAO,KAAK,KAShB,GARA,KAAK,eAAiB,KAAK,WAC3B,KAAK,gBAAkB,KAAK,YAC5B,KAAK,YAAc,KAAK,QACxB,EAAW,GAAY,KAAK,SAC5B,KAAK,sBAAwB,GAAqB,KAAK,kBACvD,EAAO,GAAQ,KAAK,KACpB,EAAO,GAAQ,KAAK,KAEhB,GAAQ,EAAQ,CAAI,IAAM,UAAY,CAAC,MAAM,QAAQ,CAAI,EAAG,CAC9D,GAAI,CAAC,EAAK,MAAQ,EAAK,OAAS,GAC9B,MAAM,IAAI,UAAU,6FAAkG,EAGxH,GAAI,CAAC,EAAW,KAAK,EAAM,MAAM,EAC/B,MAAM,IAAI,UAAU,6FAAkG,EAGxH,IAAI,EAAQ,EACZ,EAAO,EAAM,KACb,EAAU,EAAW,KAAK,EAAM,SAAS,EAAI,EAAK,QAAU,EAC5D,KAAK,eAAiB,EAAW,KAAK,EAAM,YAAY,EAAI,EAAK,WAAa,KAAK,eACnF,KAAK,YAAc,EAAW,KAAK,EAAM,SAAS,EAAI,EAAK,QAAU,KAAK,YAC1E,EAAO,EAAW,KAAK,EAAM,MAAM,EAAI,EAAK,KAAO,EACnD,KAAK,gBAAkB,EAAW,KAAK,EAAM,aAAa,EAAI,EAAK,YAAc,KAAK,gBACtF,EAAW,EAAW,KAAK,EAAM,UAAU,EAAI,EAAK,SAAW,EAC/D,KAAK,sBAAwB,EAAW,KAAK,EAAM,mBAAmB,EAAI,EAAK,kBAAoB,KAAK,sBACxG,EAAa,EAAW,KAAK,EAAM,QAAQ,EAAI,EAAK,OAAS,EAC7D,EAAqB,EAAW,KAAK,EAAM,gBAAgB,EAAI,EAAK,eAAiB,EACrF,EAAO,EAAK,IACd,CASA,GAPA,EAAa,GAAc,KAC3B,EAAqB,GAAsB,KAEvC,MAAM,QAAQ,CAAI,IACpB,EAAO,EAAS,aAAa,CAAI,GAG/B,GAAC,GAAQ,IAAS,IAAM,CAAC,GAI7B,KAAI,EAAW,EAAS,YAAY,CAAI,EAEpC,EAAS,CAAC,IAAM,KAAO,EAAS,OAAS,GAC3C,EAAS,MAAM,EAGjB,KAAK,mBAAqB,KAE1B,IAAI,EAAS,KAAK,OAAO,EAAU,EAAM,CAAC,GAAG,EAAG,EAAY,EAAoB,CAAQ,EAAE,OAAO,SAAU,EAAI,CAC7G,OAAO,GAAM,CAAC,EAAG,gBACnB,CAAC,EAED,OAAK,EAAO,OAIR,CAAC,GAAQ,EAAO,SAAW,GAAK,CAAC,EAAO,CAAC,EAAE,WACtC,KAAK,oBAAoB,EAAO,CAAC,CAAC,EAGpC,EAAO,OAAO,SAAU,EAAM,EAAI,CACvC,IAAI,EAAY,EAAO,oBAAoB,CAAE,EAE7C,OAAI,GAAW,MAAM,QAAQ,CAAS,EACpC,EAAO,EAAK,OAAO,CAAS,EAE5B,EAAK,KAAK,CAAS,EAGd,CACT,EAAG,CAAC,CAAC,EAjBI,EAAO,CAAC,EAAI,OAkBvB,EAGA,EAAS,UAAU,oBAAsB,SAAU,EAAI,CACrD,IAAI,EAAa,KAAK,eAEtB,OAAQ,EAAY,CAClB,IAAK,MACH,CACE,IAAI,EAAO,MAAM,QAAQ,EAAG,IAAI,EAAI,EAAG,KAAO,EAAS,YAAY,EAAG,IAAI,EAC1E,OAAA,EAAG,QAAU,EAAS,UAAU,CAAI,EACpC,EAAG,KAAO,OAAO,EAAG,MAAS,SAAW,EAAG,KAAO,EAAS,aAAa,EAAG,IAAI,EACxE,CACT,CAEF,IAAK,QACL,IAAK,SACL,IAAK,iBACH,OAAO,EAAG,CAAU,EAEtB,IAAK,OACH,OAAO,EAAS,aAAa,EAAG,CAAU,CAAC,EAE7C,IAAK,UACH,OAAO,EAAS,UAAU,EAAG,IAAI,EAEnC,QACE,MAAM,IAAI,UAAU,qBAAqB,CAC7C,CACF,EAEA,EAAS,UAAU,gBAAkB,SAAU,EAAY,EAAU,EAAM,CACzE,GAAI,EAAU,CACZ,IAAI,EAAkB,KAAK,oBAAoB,CAAU,EAEzD,EAAW,KAAO,OAAO,EAAW,MAAS,SAAW,EAAW,KAAO,EAAS,aAAa,EAAW,IAAI,EAE/G,EAAS,EAAiB,EAAM,CAAU,CAC5C,CACF,EAeA,EAAS,UAAU,OAAS,SAAU,EAAM,EAAK,EAAM,EAAQ,EAAgB,EAAU,EAAY,EAAiB,CACpH,IAAI,EAAS,KAIT,EAEJ,GAAI,CAAC,EAAK,OACR,OAAA,EAAS,CACP,KAAM,EACN,MAAO,EACP,OAAQ,EACR,eAAgB,EAChB,WAAY,CACd,EAEA,KAAK,gBAAgB,EAAQ,EAAU,OAAO,EAEvC,EAGT,IAAI,EAAM,EAAK,CAAC,EACZ,EAAI,EAAK,MAAM,CAAC,EAGhB,EAAM,CAAC,EAOX,SAAS,EAAO,EAAO,CACjB,MAAM,QAAQ,CAAK,EAIrB,EAAM,QAAQ,SAAU,GAAG,CACzB,EAAI,KAAK,EAAC,CACZ,CAAC,EAED,EAAI,KAAK,CAAK,CAElB,CAEA,IAAK,OAAO,GAAQ,UAAY,IAAoB,GAAO,EAAW,KAAK,EAAK,CAAG,EAEjF,EAAO,KAAK,OAAO,EAAG,EAAI,CAAG,EAAG,EAAK,EAAM,CAAG,EAAG,EAAK,EAAK,EAAU,CAAU,CAAC,UACvE,IAAQ,IAEjB,KAAK,MAAM,EAAK,SAAU,EAAG,CAC3B,EAAO,EAAO,OAAO,EAAG,EAAI,CAAC,EAAG,EAAK,EAAM,CAAC,EAAG,EAAK,EAAG,EAAU,GAAM,EAAI,CAAC,CAC9E,CAAC,UACQ,IAAQ,KAGjB,EAAO,KAAK,OAAO,EAAG,EAAK,EAAM,EAAQ,EAAgB,EAAU,CAAU,CAAC,EAE9E,KAAK,MAAM,EAAK,SAAU,EAAG,CAGvB,EAAQ,EAAI,CAAC,CAAC,IAAM,UAGtB,EAAO,EAAO,OAAO,EAAK,MAAM,EAAG,EAAI,CAAC,EAAG,EAAK,EAAM,CAAC,EAAG,EAAK,EAAG,EAAU,EAAI,CAAC,CAErF,CAAC,MAGI,IAAI,IAAQ,IAEjB,YAAK,mBAAqB,GACnB,CACL,KAAM,EAAK,MAAM,EAAG,EAAE,EACtB,KAAM,EACN,iBAAkB,EACpB,EACK,GAAI,IAAQ,IAEjB,OAAA,EAAS,CACP,KAAM,EAAK,EAAM,CAAG,EACpB,MAAO,EACP,OAAQ,EACR,eAAgB,IAClB,EAEA,KAAK,gBAAgB,EAAQ,EAAU,UAAU,EAE1C,EACF,GAAI,IAAQ,IAEjB,EAAO,KAAK,OAAO,EAAG,EAAK,EAAM,KAAM,KAAM,EAAU,CAAU,CAAC,UACzD,0CAA0C,KAAK,CAAG,EAE3D,EAAO,KAAK,OAAO,EAAK,EAAG,EAAK,EAAM,EAAQ,EAAgB,CAAQ,CAAC,UAC9D,EAAI,QAAQ,IAAI,IAAM,EAAG,CAElC,GAAI,KAAK,gBACP,MAAM,IAAI,MAAM,kDAAkD,EAGpE,IAAI,EAAU,EAAI,QAAQ,6KAA8K,IAAI,EAE5M,KAAK,MAAM,EAAK,SAAU,EAAG,CACvB,EAAO,MAAM,EAAS,EAAI,CAAC,EAAG,EAAG,EAAM,EAAQ,CAAc,GAC/D,EAAO,EAAO,OAAO,EAAG,EAAI,CAAC,EAAG,EAAK,EAAM,CAAC,EAAG,EAAK,EAAG,EAAU,EAAI,CAAC,CAE1E,CAAC,CACH,SAAW,EAAI,CAAC,IAAM,IAAK,CAEzB,GAAI,KAAK,gBACP,MAAM,IAAI,MAAM,iDAAiD,EAMnE,EAAO,KAAK,OAAO,EAAQ,KAAK,MAAM,EAAK,EAAK,EAAK,EAAK,OAAS,CAAC,EAAG,EAAK,MAAM,EAAG,EAAE,EAAG,EAAQ,CAAc,EAAG,CAAC,EAAG,EAAK,EAAM,EAAQ,EAAgB,EAAU,CAAU,CAAC,CACjL,SAAW,EAAI,CAAC,IAAM,IAAK,CAEzB,IAAI,EAAU,GACV,EAAY,EAAI,MAAM,EAAG,EAAE,EAE/B,OAAQ,EAAW,CACjB,IAAK,UACC,CAAC,GAAO,CAAC,CAAC,SAAU,UAAU,EAAE,SAAS,EAAQ,CAAG,CAAC,KACvD,EAAU,IAGZ,MAEF,IAAK,UACL,IAAK,SACL,IAAK,YACL,IAAK,WAEC,EAAQ,CAAG,IAAM,IACnB,EAAU,IAGZ,MAEF,IAAK,UACC,OAAO,SAAS,CAAG,GAAK,EAAE,EAAM,KAClC,EAAU,IAGZ,MAEF,IAAK,SACC,OAAO,SAAS,CAAG,IACrB,EAAU,IAGZ,MAEF,IAAK,YACC,OAAO,GAAQ,UAAY,CAAC,OAAO,SAAS,CAAG,IACjD,EAAU,IAGZ,MAEF,IAAK,SAEC,GAAO,EAAQ,CAAG,IAAM,IAC1B,EAAU,IAGZ,MAEF,IAAK,QACC,MAAM,QAAQ,CAAG,IACnB,EAAU,IAGZ,MAEF,IAAK,QACH,EAAU,KAAK,sBAAsB,EAAK,EAAM,EAAQ,CAAc,EACtE,MAEF,IAAK,OACC,IAAQ,OACV,EAAU,IAGZ,MAIF,QACE,MAAM,IAAI,UAAU,sBAAwB,CAAS,CACzD,CAEA,GAAI,EACF,OAAA,EAAS,CACP,KAAM,EACN,MAAO,EACP,OAAQ,EACR,eAAgB,CAClB,EAEA,KAAK,gBAAgB,EAAQ,EAAU,OAAO,EAEvC,CAGX,SAAW,EAAI,CAAC,IAAM,KAAO,GAAO,EAAW,KAAK,EAAK,EAAI,MAAM,CAAC,CAAC,EAAG,CACtE,IAAI,EAAU,EAAI,MAAM,CAAC,EACzB,EAAO,KAAK,OAAO,EAAG,EAAI,CAAO,EAAG,EAAK,EAAM,CAAO,EAAG,EAAK,EAAS,EAAU,EAAY,EAAI,CAAC,CACpG,SAAW,EAAI,SAAS,GAAG,EAAG,CAE5B,IAAI,GAAQ,EAAI,MAAM,GAAG,EAErB,EAAY,GAA2B,EAAK,EAC5C,EAEJ,GAAI,CACF,IAAK,EAAU,EAAE,EAAG,EAAE,EAAQ,EAAU,EAAE,GAAG,MAAO,CAClD,IAAI,GAAO,EAAM,MACjB,EAAO,KAAK,OAAO,EAAQ,GAAM,CAAC,EAAG,EAAK,EAAM,EAAQ,EAAgB,EAAU,EAAI,CAAC,CACzF,CAEF,OAAS,EAAP,CACA,EAAU,EAAE,CAAG,CACjB,QAAE,CACA,EAAU,EAAE,CACd,CACF,KAAW,CAAC,GAAmB,GAAO,EAAW,KAAK,EAAK,CAAG,GAC5D,EAAO,KAAK,OAAO,EAAG,EAAI,CAAG,EAAG,EAAK,EAAM,CAAG,EAAG,EAAK,EAAK,EAAU,EAAY,EAAI,CAAC,EAMxF,GAAI,KAAK,mBACP,QAAS,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,CACnC,IAAI,EAAO,EAAI,CAAC,EAEhB,GAAI,GAAQ,EAAK,iBAAkB,CACjC,IAAI,EAAM,KAAK,OAAO,EAAK,KAAM,EAAK,EAAK,KAAM,EAAQ,EAAgB,EAAU,CAAU,EAE7F,GAAI,MAAM,QAAQ,CAAG,EAAG,CACtB,EAAI,CAAC,EAAI,EAAI,CAAC,EAGd,QAFI,GAAK,EAAI,OAEJ,EAAK,EAAG,EAAK,GAAI,IACxB,IACA,EAAI,OAAO,EAAG,EAAG,EAAI,CAAE,CAAC,CAE5B,MACE,EAAI,CAAC,EAAI,CAEb,CACF,CAGF,OAAO,CACT,EAEA,EAAS,UAAU,MAAQ,SAAU,EAAK,EAAG,CAC3C,GAAI,MAAM,QAAQ,CAAG,EAGnB,QAFI,EAAI,EAAI,OAEH,EAAI,EAAG,EAAI,EAAG,IACrB,EAAE,CAAC,OAEI,GAAO,EAAQ,CAAG,IAAM,UACjC,OAAO,KAAK,CAAG,EAAE,QAAQ,SAAU,EAAG,CACpC,EAAE,CAAC,CACL,CAAC,CAEL,EAEA,EAAS,UAAU,OAAS,SAAU,EAAK,EAAM,EAAK,EAAM,EAAQ,EAAgB,EAAU,CAC5F,GAAK,MAAM,QAAQ,CAAG,EAItB,KAAI,EAAM,EAAI,OACV,EAAQ,EAAI,MAAM,GAAG,EACrB,EAAO,EAAM,CAAC,GAAK,OAAO,SAAS,EAAM,CAAC,CAAC,GAAK,EAChD,EAAQ,EAAM,CAAC,GAAK,OAAO,SAAS,EAAM,CAAC,CAAC,GAAK,EACjD,EAAM,EAAM,CAAC,GAAK,OAAO,SAAS,EAAM,CAAC,CAAC,GAAK,EACnD,EAAQ,EAAQ,EAAI,KAAK,IAAI,EAAG,EAAQ,CAAG,EAAI,KAAK,IAAI,EAAK,CAAK,EAClE,EAAM,EAAM,EAAI,KAAK,IAAI,EAAG,EAAM,CAAG,EAAI,KAAK,IAAI,EAAK,CAAG,EAG1D,QAFI,EAAM,CAAC,EAEF,EAAI,EAAO,EAAI,EAAK,GAAK,EAAM,CACtC,IAAI,EAAM,KAAK,OAAO,EAAQ,EAAG,CAAI,EAAG,EAAK,EAAM,EAAQ,EAAgB,EAAU,EAAI,EAOzF,EAAI,QAAQ,SAAU,EAAG,CACvB,EAAI,KAAK,CAAC,CACZ,CAAC,CACH,CAEA,OAAO,EACT,EAEA,EAAS,UAAU,MAAQ,SAAU,EAAM,EAAI,EAAQ,EAAM,EAAQ,EAAgB,CACnF,KAAK,YAAY,kBAAoB,EACrC,KAAK,YAAY,UAAY,EAC7B,KAAK,YAAY,YAAc,EAC/B,KAAK,YAAY,QAAU,KAAK,KAChC,KAAK,YAAY,KAAO,EACxB,IAAI,EAAe,EAAK,SAAS,OAAO,EAEpC,IACF,KAAK,YAAY,QAAU,EAAS,aAAa,EAAK,OAAO,CAAC,CAAM,CAAC,CAAC,GAGxE,IAAI,EAAiB,UAAY,EAEjC,GAAI,CAAC,EAAS,MAAM,CAAc,EAAG,CACnC,IAAI,EAAS,EAAK,QAAQ,mBAAoB,mBAAmB,EAAE,QAAQ,WAAY,WAAW,EAAE,QAAQ,aAAc,aAAa,EAAE,QAAQ,SAAU,SAAS,EAAE,QAAQ,gFAAiF,QAAQ,EAEnQ,IACF,EAAS,EAAO,QAAQ,SAAU,SAAS,GAG7C,EAAS,MAAM,CAAc,EAAI,IAAI,KAAK,GAAG,OAAO,CAAM,CAC5D,CAEA,GAAI,CACF,OAAO,EAAS,MAAM,CAAc,EAAE,gBAAgB,KAAK,WAAW,CACxE,OAAS,EAAP,CACA,MAAM,IAAI,MAAM,aAAe,EAAE,QAAU,KAAO,CAAI,CACxD,CACF,EAIA,EAAS,MAAQ,CAAC,EAMlB,EAAS,aAAe,SAAU,EAAS,CAKzC,QAJI,EAAI,EACJ,EAAI,EAAE,OACN,EAAI,IAEC,EAAI,EAAG,EAAI,EAAG,IAChB,iLAAiL,KAAK,EAAE,CAAC,CAAC,IAC7L,GAAK,aAAa,KAAK,EAAE,CAAC,CAAC,EAAI,IAAM,EAAE,CAAC,EAAI,IAAM,KAAO,EAAE,CAAC,EAAI,MAIpE,OAAO,CACT,EAOA,EAAS,UAAY,SAAU,EAAS,CAKtC,QAJI,EAAI,EACJ,EAAI,EAAE,OACN,EAAI,GAEC,EAAI,EAAG,EAAI,EAAG,IAChB,iLAAiL,KAAK,EAAE,CAAC,CAAC,IAC7L,GAAK,IAAM,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,KAAM,IAAI,EAAE,QAAQ,MAAO,IAAI,GAItE,OAAO,CACT,EAOA,EAAS,YAAc,SAAU,EAAM,CACrC,IAAI,EAAQ,EAAS,MAErB,GAAI,EAAM,CAAI,EACZ,OAAO,EAAM,CAAI,EAAE,OAAO,EAG5B,IAAI,EAAO,CAAC,EACR,EAAa,EAChB,QAAQ,sGAAuG,MAAM,EAErH,QAAQ,uLAAwL,SAAU,EAAI,EAAI,CACjN,MAAO,MAAQ,EAAK,KAAK,CAAE,EAAI,GAAK,GACtC,CAAC,EACA,QAAQ,sCAAuC,SAAU,EAAI,EAAM,CAClE,MAAO,KAAO,EAAK,QAAQ,MAAO,KAAK,EAAE,QAAQ,KAAM,QAAQ,EAAI,IACrE,CAAC,EACA,QAAQ,KAAM,KAAK,EACnB,QAAQ,+CAAgD,GAAG,EAC3D,QAAQ,OAAQ,GAAG,EACnB,QAAQ,UAAW,GAAG,EACtB,QAAQ,qBAAsB,SAAU,EAAI,EAAK,CAChD,MAAO,IAAM,EAAI,MAAM,EAAE,EAAE,KAAK,GAAG,EAAI,GACzC,CAAC,EACA,QAAQ,UAAW,MAAM,EACzB,QAAQ,cAAe,EAAE,EACtB,EAAW,EAAW,MAAM,GAAG,EAAE,IAAI,SAAU,EAAK,CACtD,IAAI,EAAQ,EAAI,MAAM,WAAW,EACjC,MAAO,CAAC,GAAS,CAAC,EAAM,CAAC,EAAI,EAAM,EAAK,EAAM,CAAC,CAAC,CAClD,CAAC,EACD,OAAA,EAAM,CAAI,EAAI,EACP,EAAM,CAAI,EAAE,OAAO,CAC5B,EAyBA,IAAI,GAAqB,SAA4B,EAAQ,EAAQ,EAAa,CAGhF,QAFI,EAAK,EAAO,OAEP,EAAI,EAAG,EAAI,EAAI,IAAK,CAC3B,IAAI,EAAO,EAAO,CAAC,EAEf,EAAY,CAAI,GAClB,EAAO,KAAK,EAAO,OAAO,IAAK,CAAC,EAAE,CAAC,CAAC,CAExC,CACF,EAMI,GAAsB,UAAY,CAIpC,SAAS,EAAO,EAAM,CACpB,EAAgB,KAAM,CAAM,EAE5B,KAAK,KAAO,CACd,CAQA,OAAA,EAAa,EAAQ,CAAC,CACpB,IAAK,kBACL,MAAO,SAAyB,EAAS,CACvC,IAAI,EAAO,KAAK,KACZ,EAAO,OAAO,KAAK,CAAO,EAC1B,EAAQ,CAAC,EACb,GAAmB,EAAM,EAAO,SAAU,EAAK,CAC7C,OAAO,OAAO,EAAQ,CAAG,GAAM,UACjC,CAAC,EACD,IAAI,EAAS,EAAK,IAAI,SAAU,EAAI,EAAG,CACrC,OAAO,EAAQ,CAAE,CACnB,CAAC,EACG,EAAa,EAAM,OAAO,SAAU,EAAG,EAAM,CAC/C,IAAI,EAAU,EAAQ,CAAI,EAAE,SAAS,EAErC,MAAK,WAAW,KAAK,CAAO,IAC1B,EAAU,YAAc,GAGnB,OAAS,EAAO,IAAM,EAAU,IAAM,CAC/C,EAAG,EAAE,EACL,EAAO,EAAa,EAEhB,CAAC,qBAAqB,KAAK,CAAI,GAAK,CAAC,EAAK,SAAS,WAAW,IAChE,EAAO,6BAA+B,GAMxC,EAAO,EAAK,QAAQ,yEAA0E,EAAE,EAEhG,IAAI,EAAmB,EAAK,YAAY,GAAG,EACvC,EAAO,EAAmB,GAAK,EAAK,MAAM,EAAG,EAAmB,CAAC,EAAI,WAAa,EAAK,MAAM,EAAmB,CAAC,EAAI,WAAa,EAEtI,OAAO,EAAW,SAAU,EAAK,OAAO,CAAC,CAAI,CAAC,CAAC,EAAE,MAAM,OAAQ,GAAmB,CAAM,CAAC,CAC3F,CACF,CAAC,CAAC,EAEK,CACT,EAAE,EAEF,EAAS,UAAU,GAAK,CACtB,OAAQ,EACV,EC9jCA,eAAsB,EACpB,EACA,EACA,EACA,EAAkE,CAGlE,IAAM,EAAO,IAAI,KACX,EAAkB,MAAM,MAAM,EAAK,CAAO,EAChD,GAAI,CAAC,EAAgB,GAAI,MAAM,IAAI,MAAM,cAAc,EACvD,IAAM,EAAe,IAAI,KAAK,EAAgB,QAAQ,IAAI,MAAM,CAAC,EACjE,IAAI,EAAW,EAIf,GAHA,EAAS,EAAiB,QAAQ,EAG9B,EAAe,EAAM,CAEvB,IAAM,EAAoB,MAAM,MAAM,EAAM,IAAM,KAAK,OAAM,EAAI,CAC/D,GAAG,EACH,OAAQ,OACR,MAAO,WACR,EAGD,GAAI,EAAkB,QAAQ,IAAI,eAAe,GAAK,EAAgB,QAAQ,IAAI,eAAe,EAAG,CAElG,GAAI,EAAU,CAAiB,IAAM,GAEnC,MAAM,IAAI,MAAM,mBAAmB,EAIrC,EAAW,MAAM,MAAM,EAAK,CAC1B,GAAG,EACH,MAAO,SACR,GAIL,GAAI,EAAU,CAAQ,IAAM,GAC1B,MAAM,IAAI,MAAM,uBAAuB,EAEzC,OAAI,IAAoB,GACtB,EAAS,EAAU,OAAO,EAGrB,CACT,CC9CM,SAAU,GAAgB,CAC9B,IAAA,EAAM,sDACN,SAAA,EACA,QAAA,EACA,UAAA,EACA,QAAA,EACA,SAAA,EAAW,WAAW,EACR,CACd,MAAO,GAAG,GAAO,gBAAuB,KAAW,KAAa,KAAW,QAC7E,CAEM,SAAU,GAAiB,CAC/B,IAAA,EAAM,sDACN,SAAA,EACA,QAAA,EACA,SAAA,EAAW,WAAW,EACN,CAChB,MAAO,GAAG,GAAO,YAAmB,KAAW,OACjD,CAEA,eAAsB,EAAe,EAAsB,EAAgC,CACzF,OAAO,EACL,GAAgB,CAAK,EACrB,CACE,QAAS,CACP,OAAQ,cAGX,GACQ,EAAS,QAAQ,IAAI,4BAA4B,GAAK,KAE9D,GAAY,CACX,EAAS,KAAI,EAAG,KAAK,CAAQ,CAC/B,CAAC,CAEL,CAEA,eAAsB,EAAgB,EAAwB,EAA+B,CAC3F,OAAO,EACL,GAAiB,CAAK,EACtB,CACE,QAAS,CACP,OAAQ,aAGX,GACQ,EAAS,QAAQ,IAAI,qBAAqB,GAAK,KAEvD,GAAY,CACX,EAAS,KAAI,EAAG,KAAK,CAAQ,CAC/B,CAAC,CAEL,CC/CM,SAAU,GAAuB,EAAiB,EAAwB,CAC9E,IAAM,EAAU,SAAS,cAAc,KAAK,EAC5C,EAAQ,UAAY,EACpB,IAAM,EAAW,SAAS,uBAAsB,EAChD,KAAO,EAAQ,YACb,EAAS,YAAY,EAAQ,UAAU,EAEzC,OAAA,EAAiB,EAAU,CAAW,EAC/B,CACT,CAEM,SAAU,GAAmB,EAAY,CAC7C,OAAO,EAAK,QAAQ,wBAAyB,EAAE,CACjD,CAEM,SAAU,GAAyB,EAAY,CACnD,OAAO,GAAmB,CAAI,EAAI,IACpC,CAEA,SAAS,GAAsB,EAAoB,CACjD,IAAM,EAAY,EAAQ,aAAa,iBAAiB,EAExD,QADI,EAAQ,EACH,EAAI,EAAU,EAAiB,EAAE,wBACpC,EAAE,aAAa,iBAAiB,GAAK,GACvC,IAGJ,OAAO,CACT,CAEA,SAAS,GAAgB,EAAsB,EAAqB,EAA4B,CAC9F,IAAM,EAAY,EAAQ,aAAa,iBAAiB,EACxD,GAAI,GAAa,KACf,OAEF,IAAI,EAAQ,GAAsB,CAAO,EACzC,GAAI,GAAS,EACX,OAGF,IAAM,EAAgB,EAAQ,cAC9B,GAAI,GAAiB,KAKrB,CAAI,GAAe,EACjB,EAAQ,aAAa,SAAU,QAAQ,EAC9B,EAAQ,aAAa,QAAQ,GAAK,MAC3C,EAAQ,gBAAgB,QAAQ,EAKlC,QAFI,EAAQ,EAAQ,EAChB,EAAO,EACF,EAAI,EAAU,EAAiB,EAAE,oBACpC,EAAE,aAAa,iBAAiB,GAAK,IACvC,IACA,EAAO,GAIX,QAAS,EAAI,EAAO,EAAI,EAAa,IACnC,EAAc,aAAa,EAAK,UAAU,EAAI,EAAG,EAAK,kBAAkB,EAG1E,QAAS,EAAI,KAAK,IAAI,EAAG,CAAW,EAAG,EAAI,EAAO,IAChD,EAAoB,EAAK,uBACzB,EAAc,YAAyB,EAAK,kBAAkB,EAElE,CAEM,SAAU,GAAY,EAAa,EAAkB,EAAc,GAAO,EAAY,EAAM,CAChG,IAAI,EAAO,EAEX,IAAM,EAAO,OAAO,KAAK,CAAM,EAAE,KAAK,CAAC,EAAG,IAAM,EAAE,OAAS,EAAE,MAAM,EACnE,QAAW,KAAS,EAClB,GAAI,EAAS,WAAW,CAAK,EAAqB,CAChD,GAAI,GAAS,EAAU,CACrB,GAAI,EACF,OAAO,EAAO,CAAK,EAEnB,SAGJ,EAAO,EAAS,UAAU,EAAM,OAAS,CAAC,EAC1C,EAAO,EAAO,CAAK,EACnB,MAIJ,IAAI,EAAa,EAAS,CAAE,KAAA,EAAM,KAAA,CAAI,CAAE,EA4BxC,OAxBI,MAAM,QAAQ,CAAU,IAAK,GAAU,KAAA,OAAV,EAAY,SAAU,IACrD,EAAa,CAGX,EAAK,QAAQ,SAAU,IAAI,EAG3B,EAAK,QAAQ,SAAU,EAAE,EAGzB,EAAK,QAAQ,oBAAqB,KAAK,EAGvC,EAAK,QAAQ,aAAc,IAAI,EAG/B,EAAK,QAAQ,aAAc,EAAE,GAE5B,OAAO,CAAC,EAAG,EAAG,IAAM,EAAE,QAAQ,CAAC,IAAM,CAAC,EACtC,OAAO,CAAC,EAAG,IACH,EAAE,OAAS,EAAI,EAAI,EAAS,CAAE,KAAA,EAAM,KAAA,CAAI,CAAE,EAChD,CAAA,CAAW,GAGd,GAAe,MAAM,QAAQ,CAAU,EAClC,EAAW,CAAC,EAEZ,CAEX,CAEM,SAAU,EAAgB,EAAsB,EAAmB,EAAY,EAA4B,OAC/G,GAAK,EACL,KAAI,EAAS,GACT,GAAK,KAAA,OAAL,EAAO,OAAQ,OAAS,MAAM,QAAQ,EAAM,OAAO,IAAG,EAAQ,EAAqB,CAAK,GACxF,GAAM,MAAN,EAAQ,eACV,EAAQ,GAAM,KAAA,OAAN,EAAQ,aAAa,EAAS,EAAW,CAAK,GAExD,IAAI,EAAO,EAAU,QAAQ,aAAc,EAAE,EAC7C,GAAI,GAAa,gBACf,EAAS,EAAQ,SAAW,MAAQ,EAAuB,EAAQ,cAAc,YAAY,UACpF,GAAa,iBACtB,EAAS,EAAQ,cAAc,GAAG,GAAK,EAAQ,QAAQ,GAAG,UACjD,GAAa,gBACtB,EAAS,EAAQ,cAAc,cAAc,UACpC,GAAa,mBACtB,EAAS,EAAe,KAAP,WACR,GAAa,aAAe,GAAa,mBAAqB,GAAa,OACpF,EAAO,oBACE,GAAa,iBACtB,EAAW,EAAS,CAAK,UAChB,GAAa,uBAAwB,CAC9C,IAAM,IAAU,EAAA,EAAQ,aAAa,sBAAsB,KAAC,MAAA,IAAA,OAAA,OAAA,EAAE,MAAM,GAAG,EAAE,OAAO,OAAO,IAAK,CAAA,EAC5F,QAAS,KAAY,EAAO,CAC1B,IAAI,EAAW,EAAM,CAAQ,EAC7B,EACE,EACA,EACA,OAAO,GAAY,UAAY,EAAW,KAAK,UAAU,CAAQ,EAAI,EACrE,CAAM,EAGV,QAAS,EAAI,EAAG,EAAI,EAAQ,OAAQ,KAC9B,GAAS,MAAQ,EAAE,EAAQ,CAAC,IAAK,KACnC,EAAgB,EAAS,EAAQ,CAAC,EAAG,KAAM,CAAM,EAGrD,EAAgB,EAAS,uBAAwB,OAAO,KAAK,GAAS,CAAA,CAAE,EAAE,KAAK,GAAG,CAAC,EACnF,OAKF,GAHI,OAAO,GAAS,YAClB,EAAQ,EAAQ,GAAK,MAEnB,EAAC,EAEL,KAAI,EAAc,OAAO,EAAQ,aAAa,uBAAuB,GAAK,EAAO,CAAyB,CAAC,EAEvG,GAAS,KACP,GAAQ,YACN,EAAO,WAAa,IACtB,EAAO,UAAY,GAGjB,EAAO,aAAa,CAAI,GAAK,GAC/B,EAAO,aAAa,EAAM,CAAK,EAI/B,GAAQ,YACV,EAAO,UAAY,EAEnB,EAAO,gBAAgB,CAAI,GAGjC,CAEM,SAAU,GAAkB,EAAoB,CACpD,IAAM,EAAW,IAAI,EAAQ,cAAc,YAAY,iBAAkB,GAAW,CAClF,EAAQ,QAAS,GAAU,CACzB,IAAM,EAAS,EAAO,OAChB,EAAM,EAAO,aAAa,gBAAgB,EAC5C,GACF,EAAW,EAAQ,CAAG,EAGpB,EAAO,YACT,EAAO,WAAW,QAAS,GAAQ,CAC7B,EAAK,UAAY,GAAG,GAAgB,EAAqB,EAAK,CACpE,CAAC,CAEL,CAAC,CACH,CAAC,EACD,OAAA,EAAS,QAAQ,EAAS,CAAE,WAAY,GAAM,QAAS,GAAM,UAAW,EAAI,CAAE,EACvE,CACT,CAEM,SAAU,GAAgB,EAAsB,EAAU,GAAI,CAClE,IAAM,EAAS,EAAQ,iBAAiB,kBAAkB,EAC1D,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,IAAK,CACtC,IAAM,EAAQ,EAAO,CAAC,EACtB,EAAW,EAAsB,EAAM,aAAa,gBAAgB,CAAC,EAEvE,GAAI,EAAS,OAAO,GAAkB,CAAO,CAC/C,CAEM,SAAU,EAAW,EAAsB,EAAW,CAC1D,QAAS,EAAI,EAAS,EAAG,EAAI,EAAE,cAC7B,GAAI,CAAC,EAAE,cAAe,CACpB,IAAM,EAAU,EAAE,iBAAiB,QAAQ,EAC3C,QAAS,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAClC,GAAI,EAAQ,CAAC,EAAE,aAAa,KAAK,GAAK,EACpC,MAAO,GAGP,EAAE,SAAW,SAAQ,EAAI,EAAE,cAAc,MAAM,GAAK,GACxD,IAAM,EAAS,EAAE,cAAc,cAAc,QAAQ,EACrD,EAAO,KAAO,SACd,EAAO,IAAM,EACb,EAAE,YAAY,CAAM,EACpB,MAGN,CAGA,IAAI,GAAY,CAAC,uBAAwB,uBAAwB,iBAAiB,EAC5E,SAAU,EACd,EACA,EACA,EACA,EAAkB,WAElB,IAAM,EAAuB,EAI7B,GAHK,IACH,IAAa,EAAA,GAAM,KAAA,OAAN,EAAQ,eAAW,MAAA,IAAA,OAAA,OAAA,EAAA,KAAA,EAAG,EAAS,CAAU,IAAK,GAEzD,EAAQ,UAAY,EAAG,CACzB,IAAM,EAAY,EAAQ,aAAa,iBAAiB,EACxD,GAAI,EAAW,CACb,IAAM,EAAQ,GAAsB,CAAO,EACrC,EAAa,GAAY,EAAY,EAAW,EAAK,GAAK,CAAA,EAC5D,GAAS,GACX,GAAgB,IAAS,EAAA,GAAM,KAAA,OAAN,EAAQ,gBAAY,MAAA,IAAA,OAAA,OAAA,EAAA,KAAA,EAAG,EAAS,CAAU,KAAM,GAAQ,EAAI,EAAW,OAAQ,CAAM,EAGhH,EAAa,CACX,GAAG,EACH,CAAC,GAAyB,CAAS,CAAC,EAAG,EAAW,CAAK,GAG3D,IAAM,EAAQ,MAAM,UAAU,MAAM,KAAK,EAAQ,UAAU,EAAE,KAAK,CAAC,EAAS,IACnE,GAAU,QAAQ,EAAE,IAAI,EAAI,GAAU,QAAQ,EAAE,IAAI,CAC5D,EACD,QAAS,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACrC,GAAM,CAAE,KAAA,EAAM,MAAO,CAAQ,EAAK,EAAM,CAAC,EACrC,EAAK,WAAW,WAAW,GAAK,GAAQ,mBAC1C,EAAgB,EAAS,EAAM,GAAY,EAAY,EAAU,EAAI,EAAG,CAAM,EAE5E,GAAQ,kBACV,EAAgB,EAAS,EAAM,EAAQ,aAAa,CAAI,EAAG,CAAM,GAIvE,QAAS,EAAI,EAAG,EAAI,EAAQ,SAAS,OAAQ,IAC3C,EAA8B,EAAQ,SAAS,CAAC,EAAG,EAAY,EAAQ,EAAI,EAE7E,OAAK,IACH,EAAA,GAAM,KAAA,OAAN,EAAQ,YAAQ,MAAA,IAAA,QAAA,EAAA,KAAA,EAAG,EAAS,CAAU,EAEjC,CACT,CAEM,SAAU,EAAiB,EAAmB,EAAkB,EAAmB,EAA4B,OACnH,IAAM,IAAc,EAAA,GAAM,KAAA,OAAN,EAAQ,mBAAe,MAAA,IAAA,OAAA,OAAA,EAAA,KAAA,EAAG,EAAM,EAAU,CAAI,IAAK,EACvE,OAAA,EAAK,UAAY,EACjB,EAAK,UAAU,IAAI,QAAQ,EACpB,EAAiB,EAAM,EAAM,CAAM,CAC5C,CAEM,SAAU,GAAiB,EAAwB,EAAwB,CAC/E,OAAA,GAAwB,EAAQ,IAAA,EAAU,SAAS,cAAc,OAAO,EAAE,EACnE,CACT,CAEM,SAAU,GAAwB,EAAwB,EAAwB,CACtF,OAAA,IAAA,EAAU,SAAS,cAAc,OAAO,GACjC,EAAgB,EAAQ,GAAW,CACxC,EAAM,YAAc,CACtB,CAAC,EAAE,KAAK,IAAM,CAAK,CACrB,CAEM,SAAU,GAAgB,EAA4B,EAAkB,CAC5E,OAAA,GAAuB,EAAQ,IAAA,EAAS,SAAS,cAAc,KAAK,EAAE,EAC/D,CACT,CAEA,eAAsB,GAAuB,EAA4B,EAAkB,CAEzF,OADA,IAAA,EAAS,SAAS,cAAc,KAAK,GAChC,EAAK,WAAW,OAUZ,EAAiB,EAAM,EAAM,KAAM,CAAK,EAT3C,aAAc,EACT,EAAiB,EAAM,EAAM,SAAU,EAAM,KAAM,CAAK,EAExD,EAAe,EAAQ,GACrB,EAAiB,EAAM,EAAU,EAAM,KAAM,CAAK,CAC1D,EAAE,KAAK,IAAM,CAAI,CAMxB,CAWA,SAAS,EAAgB,EAAW,EAAgC,CAAA,EAAI,EAAW,CACjF,OAAK,EACE,IAAI,IAAM,OAAO,QAAQ,CAAK,EAClC,IAAI,CAAC,CAAC,EAAG,CAAC,IAAM,GAAK,MAAQ,IAAI,MAAM,IAAI,EAC3C,OAAO,OAAO,EACd,KAAK,EAAE,KAAK,EAAqB,CAAI,MAAM,KAAO,QAAQ,+BAAgC,QAAQ,EAJpF,EAAqB,CAAI,CAK5C,CACM,SAAU,EAAqB,EAAyC,OAC5E,GAAI,MAAM,QAAQ,CAAI,EAAG,OAAO,EAAK,IAAI,CAAoB,EAAE,KAAK;CAAI,EAAE,KAAI,EAC9E,GAAI,OAAO,GAAQ,SAAU,OAAO,EACpC,GAAI,GAAQ,KAAM,MAAO,GACzB,OAAQ,EAAK,KAAM,CACjB,IAAK,UACH,GAAM,CAAE,MAAA,EAAO,GAAG,CAAK,EAAK,EAAK,MACjC,OAAO,EAAgB,EAAK,QAAS,EAAO,IAAM,CAAK,EACzD,IAAK,OACH,OAAS,EAAK,OAAS,CAAA,GAAc,OAAO,CAAC,EAAM,IAC1C,EACL,EACA,EAAK,MACL,CACE,KAAM,IACN,KAAM,SACN,OAAQ,KACR,OAAQ,IACR,UAAW,KACX,EAAK,IAAc,CAAC,GAEvB,EAAA,EAAK,QAAI,MAAA,IAAA,OAAA,OAAA,EAAE,QAAQ,MAAO,GAAG,CAAC,EACnC,QACE,OAAO,EACL,EAAK,SAAW,EAAK,KACrB,EAAK,MACL,CACE,WAAY,KACZ,YAAa,KACb,SAAU,KACV,eAAgB,KAChB,UAAW,IACX,UAAW,OACX,WAAY,cACZ,EAAK,IAAI,CAAC,EAGpB,CC1YA,IAAI,GAAe,OAAO,aAAe,YAAe,KAAA,GAA6C,YAMxF,EAAP,cAAqD,EAAY,CAAvE,aAAA,qBAgBE,KAAA,UAAY,KAKZ,KAAA,KAAkC,CAAA,EAClC,KAAA,YAA2B,CAAA,EAyG3B,KAAA,OAAU,GAAoB,CACxB,GAAW,OAEf,KAAK,QAAU,EACf,KAAK,OAAM,EACb,CAyHF,CAzPE,SAAS,EAAqB,CAC5B,MAAO,CAAA,CACT,CAmBA,SAAO,CACL,OAAO,IACT,CAGA,yBAAyB,EAAc,EAAkB,EAAgB,CACvE,KAAK,IAAG,CACV,CAGA,mBAAiB,CACf,QAAQ,IAAI,mBAAoB,IAAI,EACpC,KAAK,UAAY,IAAI,MAAM,iBAAkB,CAAE,QAAS,GAAM,SAAU,EAAI,CAAE,EAC9E,KAAK,cAAc,KAAK,SAAS,EACjC,KAAK,iBAAiB,iBAAkB,IAAI,EAC5C,KAAK,iBAAiB,oBAAqB,IAAI,EAC/C,KAAK,IAAG,CACV,CAGA,sBAAoB,CAClB,QAAQ,IAAI,sBAAuB,IAAI,EACvC,KAAK,oBAAoB,iBAAkB,IAAI,EAC/C,KAAK,oBAAoB,oBAAqB,IAAI,EAClD,KAAK,cAAc,IAAI,MAAM,oBAAqB,CAAE,QAAS,GAAM,SAAU,EAAI,CAAE,CAAC,EACpF,KAAK,UAAY,IACnB,CAGA,YAAY,EAAY,CACtB,OAAQ,EAAM,KAAM,CAClB,IAAK,iBACH,KAAK,eAAe,CAAK,EACzB,MACF,IAAK,oBACH,KAAK,iBAAiB,CAAK,EAC3B,MAEN,CAGA,iBAAiB,EAAY,CAC3B,IAAM,EAAS,EAAM,aAAY,EAAG,CAAC,EAC/B,EAAQ,KAAK,YAAY,QAAQ,CAAM,EACzC,GAAS,KACb,QAAQ,IAAI,gBAAiB,KAAM,CAAM,EACzC,KAAK,YAAY,OAAO,EAAO,EAAE,EACjC,KAAK,KAAK,EAAO,iBAAgB,CAAE,EAAI,KACnC,EAAO,KAAK,QAAU,OAAM,EAAO,KAAK,OAAS,MACjD,EAAO,KAAK,KAAO,OACrB,EAAO,KAAK,IAAM,EAAO,KAAK,QAElC,CAGA,eAAe,EAAY,SACzB,IAAM,EAAS,EAAM,aAAY,EAAG,CAAC,EAErC,GADc,KAAK,YAAY,QAAQ,CAAM,GAChC,KACb,KAAK,YAAY,KAAK,CAAM,EAC5B,QAAQ,IAAI,cAAe,KAAM,CAAM,EACvC,KAAK,KAAK,EAAO,iBAAgB,CAAE,EAAI,EACvC,EAAO,KAAK,IAAM,MAClB,EAAA,EAAO,MAAK,SAAM,EAAN,OAAW,MACnB,EAAO,aACT,QAAS,EAAe,EAAO,KAAK,OAAQ,EAAG,EAAI,EAAE,KAAK,OACpD,EAAE,eACJ,EAAA,EAAO,MAAK,cAAW,EAAX,YAAgB,GAC5B,EAAO,KAAK,SAAW,EAI/B,CAEA,kBAAgB,CACd,OAAO,KAAK,QAAQ,QAAQ,SAAU,EAAE,EAAE,YAAW,CACvD,CAMA,eAAa,CACX,OAAO,KAAK,UAAY,QAAa,KAAK,aAAa,QAAQ,GAAK,IACtE,CAGA,MAAM,OAAK,CACL,KAAK,UAAY,OACnB,KAAK,OAAM,EACF,KAAK,cAAa,IAC3B,KAAK,QAAU,KACf,KAAK,KAAI,EAAG,KAAK,KAAK,MAAM,EAEhC,CAGA,MAAI,CACF,OAAO,QAAQ,QAAQ,IAAI,CAC7B,CAeA,OAAO,EAAS,GAAK,WAEnB,GADA,QAAQ,IAAI,eAAgB,KAAK,QAAS,KAAK,OAAO,EAClD,KAAK,SAAW,KAAM,OAC1B,GAAM,CAAE,MAAA,EAAO,SAAA,CAAQ,EAAM,KAAK,SAA4B,CAAA,EAC9D,GAAI,CAAC,EAAO,MAAM,IAAI,MAAM,GAAG,KAAK,0CAA0C,EAC9E,GAAI,CAAC,EAAU,MAAM,IAAI,MAAM,GAAG,KAAK,6CAA6C,EAEhF,CAAC,KAAK,KAAK,UAAY,CAAC,KAAK,iBAC/B,EAAS,OAAO,EAAM,cAAc,KAAK,gBAAe,CAAE,EAAG,KAAK,aAAY,CAAE,EACvE,KAAK,kBACd,EAAA,KAAK,oBAAgB,MAAA,IAAA,QAAA,EAAA,KAAA,IAAA,GAErB,GAAA,EAAA,KAAK,KAAK,UAAS,oBAAgB,MAAA,IAAA,QAAA,EAAA,KAAA,CAAA,CAEvC,CAEA,sBAAoB,CAClB,GAAM,CAAE,MAAA,EAAO,SAAA,CAAQ,EAAM,KAAK,SAA4B,CAAA,EACxD,EAAW,KAAK,YACnB,OAAQ,GACA,EAAE,KAAK,aAAe,MAAQ,EAAE,OACxC,EACA,IAAI,CAAC,EAA4B,IACzB,EAAM,cAAc,KAAK,gBAAgB,CAAK,EAAG,CACtD,IAAK,KAAK,QAAU,IAAM,EAC1B,KAAM,EAAM,aAAa,MAAM,EAChC,CACF,EACH,OAAO,KAAK,YAAY,CAAE,GAAG,KAAK,MAAO,SAAA,CAAQ,EAAI,KAAK,OAAO,CACnE,CAGA,gBAAgB,EAAoB,KAAM,EAAc,EAAO,QAAO,CACpE,IAAM,EAAW,EAAO,eAAP,EAAO,aAAkB,GAAe,CACvD,GAAI,EAAO,YAAa,CACtB,GAAM,CAAE,MAAA,EAAO,SAAA,CAAQ,EAAM,EAAO,SAA4B,CAAA,EAC1D,CAAC,EAAO,CAAgB,EAAI,EAAM,WAAY,GAAM,EAAI,EAAG,CAAC,EAClE,OAAA,EAAO,iBAAmB,EACnB,EAAS,aAAa,EAAA,cAAA,EAAA,SAAA,KAAG,EAAO,qBAAoB,CAAE,EAAM,EAAO,aAAY,CAAE,MAExF,QAAO,EAAO,OAAM,CAExB,GACA,cAAO,OAAO,EAAS,CACrB,YAAa,EACd,EACM,CACT,CAGA,QAAM,CACJ,OAAQ,KAAK,MAAL,KAAK,IAAQ,OAAO,KAAK,OAAM,CAAE,EAC3C,CAYA,cAAY,CACV,OAAO,KAAK,QAAO,CACrB,CAGA,IAAI,EAA0B,CAC5B,KAAK,UAAY,CACf,GAAG,KAAK,UACR,GAAG,GAEL,KAAK,MAAQ,CACX,GAAG,KAAK,SAAQ,EAChB,GAAG,KAAK,WAEV,QAAS,KAAY,KAAK,MAAO,CAC/B,IAAM,EAAQ,KAAK,MAAM,CAAmC,EACxD,KAAK,MAAM,CAAQ,GAAK,KAC1B,KAAK,gBAAgB,CAAQ,GACpB,OAAO,GAAS,UAAY,OAAO,GAAS,WACjD,KAAK,aAAa,CAAQ,GAAK,OAAO,CAAK,GAAG,KAAK,aAAa,EAAU,OAAO,CAAK,CAAC,EAG/F,KAAK,eAAc,CACrB,CAGA,gBAAc,CACZ,qBAAqB,KAAK,UAAU,EACpC,KAAK,WAAa,sBAAsB,IAAK,CAC3C,KAAK,MAAK,CACZ,CAAC,CACH,CAEA,UAAU,EAAa,EAAgB,CACrC,OAAI,OAAO,GAAO,UAAY,EAAI,MAAM,UAAU,EACzC,EAAW,EAEX,CAEX,CAEA,oBAAoB,EAAc,EAAU,KAAI,SAC9C,OAAO,GAAA,EAAA,EAAQ,QAAQ,IAAI,IAAO,KAAC,MAAA,IAAA,OAAA,OAAA,EAAE,aAAa,CAAI,KAAC,MAAA,IAAA,OAAA,EAAI,KAAK,aAAa,CAAI,CACnF,CAEA,OAAO,SAAS,EAAe,CACzB,OAAO,QAAU,aAAe,CAAC,OAAO,eAAe,IAAI,CAAO,GACpE,OAAO,eAAe,OAAO,EAAS,IAAI,CAE9C,GCrQI,SAAU,GAAqB,EAAqB,KAAI,CAC5D,IAAI,EACE,EAAY,EAAQ,aAAa,MAAM,EAC7C,GAAI,GAAa,KACf,GAAI,CACF,EAAO,OAAO,GAAa,SAAW,KAAK,MAAM,CAAS,EAAI,CAAA,QACvD,EAAP,CAAU,CAEd,MAAO,CACL,KAAM,GAAI,KAAJ,EAAQ,CAAA,EACd,QAAS,EAAQ,aAAa,SAAS,EACvC,UAAW,EAAQ,aAAa,WAAW,EAC3C,QAAS,EAAQ,aAAa,SAAS,EACvC,SAAU,EAAQ,aAAa,UAAU,EACzC,SAAU,EAAQ,aAAa,UAAU,EACzC,IAAK,EAAQ,oBAAoB,KAAK,EACtC,SAAU,EAAQ,aAAa,UAAU,EACzC,UAAW,EAAQ,aAAa,WAAW,GAAK,KAEpD,CAEM,IAAO,EAAP,cAA8B,CAAuC,CAIzE,QAAQ,EAAS,CACf,KAAK,IAAI,CAAE,KAAA,CAAI,CAAE,CACnB,CAEA,UAAQ,CACN,OAAO,GAAqB,IAAI,CAClC,CAEA,yBAAyB,EAAc,EAAkB,EAAgB,CACvE,KAAK,QAAU,OACf,KAAK,aAAe,GACpB,MAAM,yBAAyB,EAAM,EAAU,CAAQ,CACzD,CAGA,aAAW,CACT,IAAM,EAAQ,KAAK,aAAa,iBAAiB,EACjD,GAAK,EACL,SAAS,EAAU,MAAkB,EAAU,EAAQ,yBACjD,EAAQ,aAAa,iBAAiB,GAAK,GAC7C,IAAI,EAAO,EAKf,OAAO,EACT,CAEA,eAAa,CACX,OACE,MAAM,cAAa,GAAM,KAAK,MAAM,SAAW,MAAQ,KAAK,MAAM,WAAa,MAAQ,KAAK,MAAM,SAAW,IAEjH,CAEA,MAAM,MAAI,CAER,GAAI,MAAK,YAAW,EAGpB,GAAI,CACF,EAAe,KAAK,MAAO,KAAK,MAAM,QACtC,EAAA,CACA,QAAQ,MACN,qCAAqC,KAAK,MAAM,aAAa,KAAK,MAAM,WAAW,KAAK,MAAM,UAAU,EAG9G,CAEA,QAAM,CACJ,GAAI,MAAM,KAAK,KAAK,QAAQ,EAAE,OAAQ,GAAM,EAAE,SAAW,IAAI,EAAE,OAAS,GAAK,CAAC,KAAK,aACjF,EAAiB,KAAM,KAAK,MAAM,IAAI,MACjC,CAGL,GAFA,KAAK,aAAe,GAEhB,KAAK,YAAW,EAClB,OAEF,EAAiB,KAAM,KAAK,QAAS,KAAK,MAAM,IAAI,EAExD,GA9DO,EAAA,mBAAqB,CAAC,UAAW,YAAa,UAAW,WAAY,WAAY,MAAO,WAAY,MAAM,EA0EnH,EAAe,SAAS,iBAAiB,EClGnC,SAAU,GAAiB,EAAuB,KAAI,CAC1D,MAAO,CACL,QAAQ,GAAO,KAAA,OAAP,EAAS,aAAa,QAAQ,IAAK,KAE/C,CAGM,IAAO,EAAP,cAA2B,CAAmC,CAMlE,yBAAyB,EAAc,EAAkB,EAAgB,CACnE,GAAQ,WACV,KAAK,MAAM,YAAY,UAAW,QAAS,WAAW,EACtD,KAAK,MAAM,YAAY,aAAc,eAAgB,WAAW,EAC5D,GACF,KAAK,MAAM,YAAY,UAAW,IAAK,WAAW,EAClD,KAAK,MAAM,cAAgB,SAE3B,KAAK,MAAM,YAAY,UAAW,IAAK,WAAW,EAClD,KAAK,MAAM,cAAgB,OAGjC,CAEA,mBAAiB,CACf,KAAK,yBAAyB,SAAU,KAAK,aAAa,QAAQ,EAAG,KAAK,aAAa,QAAQ,CAAC,EAChG,KAAK,WAAa,SAAS,cAAc,OAAO,EAChD,KAAK,WAAW,YAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0C9B,KAAK,OAAS,SAAS,cAAc,KAAK,EAC1C,KAAK,OAAO,GAAK,SACjB,KAAK,OAAO,UAAY;;;;;;;;;;;;;;;;;;;;;;;UAwBxB,KAAK,QAAO,EAAG,YAAY,KAAK,UAAU,EAC1C,KAAK,QAAO,EAAG,YAAY,KAAK,MAAM,CACxC,GAzFO,EAAA,mBAAqB,CAAC,QAAQ,EAmGvC,EAAY,SAAS,cAAc,EC7G7B,SAAU,GAAqB,EAAqB,KAAI,OAC5D,MAAO,CACL,QAAS,GAAO,KAAA,OAAP,EAAS,oBAAoB,SAAS,EAC/C,UAAW,EAAA,GAAO,KAAA,OAAP,EAAS,aAAa,UAAU,KAAC,MAAA,IAAA,OAAA,EAAI,YAChD,KAAK,GAAO,KAAA,OAAP,EAAS,oBAAoB,KAAK,KAAK,GAAO,KAAA,OAAP,EAAS,oBAAoB,UAAU,GAEvF,CAGM,IAAO,EAAP,cAA+B,CAAuC,CAE1E,UAAQ,CACN,OAAO,GAAqB,IAAI,CAClC,CAEA,eAAa,CACX,OAAO,KAAK,MAAM,SAAW,MAAQ,KAAK,MAAM,UAAY,MAAQ,KAAK,MAAM,KAAO,IACxF,CAEA,MAAM,MAAI,CACR,EAAgB,KAAK,MAAO,KAAK,MAAM,CACzC,CAEA,QAAM,CACC,KAAK,aACR,KAAK,WAAa,SAAS,cAAc,OAAO,EAChD,KAAK,YAAY,KAAK,UAAU,GAElC,KAAK,WAAW,YAAc,KAAK,OACrC,GAUF,EAAgB,SAAS,kBAAkB,QC7BvC,OAAO,QAAU,eAAa,EAAA,OAAO,gBAAY,MAAA,IAAA,SAAnB,OAAO,aAAiB,QAAQ,QAAO","file":"/Users/sitecore/Sites/feaas-components/clientside/dist/browser/basic.esm.js.map","sourcesContent":["function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = it.call(o);\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nvar hasOwnProp = Object.prototype.hasOwnProperty;\n/**\n * @typedef {null|boolean|number|string|PlainObject|GenericArray} JSONObject\n */\n\n/**\n * @typedef {any} AnyItem\n */\n\n/**\n * @typedef {any} AnyResult\n */\n\n/**\n * Copies array and then pushes item into it.\n * @param {GenericArray} arr Array to copy and into which to push\n * @param {AnyItem} item Array item to add (to end)\n * @returns {GenericArray} Copy of the original array\n */\n\nfunction push(arr, item) {\n arr = arr.slice();\n arr.push(item);\n return arr;\n}\n/**\n * Copies array and then unshifts item into it.\n * @param {AnyItem} item Array item to add (to beginning)\n * @param {GenericArray} arr Array to copy and into which to unshift\n * @returns {GenericArray} Copy of the original array\n */\n\n\nfunction unshift(item, arr) {\n arr = arr.slice();\n arr.unshift(item);\n return arr;\n}\n/**\n * Caught when JSONPath is used without `new` but rethrown if with `new`\n * @extends Error\n */\n\n\nvar NewError = /*#__PURE__*/function (_Error) {\n _inherits(NewError, _Error);\n\n var _super = _createSuper(NewError);\n\n /**\n * @param {AnyResult} value The evaluated scalar value\n */\n function NewError(value) {\n var _this;\n\n _classCallCheck(this, NewError);\n\n _this = _super.call(this, 'JSONPath should not be called with \"new\" (it prevents return ' + 'of (unwrapped) scalar values)');\n _this.avoidNew = true;\n _this.value = value;\n _this.name = 'NewError';\n return _this;\n }\n\n return _createClass(NewError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/**\n* @typedef {PlainObject} ReturnObject\n* @property {string} path\n* @property {JSONObject} value\n* @property {PlainObject|GenericArray} parent\n* @property {string} parentProperty\n*/\n\n/**\n* @callback JSONPathCallback\n* @param {string|PlainObject} preferredOutput\n* @param {\"value\"|\"property\"} type\n* @param {ReturnObject} fullRetObj\n* @returns {void}\n*/\n\n/**\n* @callback OtherTypeCallback\n* @param {JSONObject} val\n* @param {string} path\n* @param {PlainObject|GenericArray} parent\n* @param {string} parentPropName\n* @returns {boolean}\n*/\n\n/* eslint-disable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */\n\n/**\n * @typedef {PlainObject} JSONPathOptions\n * @property {JSON} json\n * @property {string|string[]} path\n * @property {\"value\"|\"path\"|\"pointer\"|\"parent\"|\"parentProperty\"|\"all\"} [resultType=\"value\"]\n * @property {boolean} [flatten=false]\n * @property {boolean} [wrap=true]\n * @property {PlainObject} [sandbox={}]\n * @property {boolean} [preventEval=false]\n * @property {PlainObject|GenericArray|null} [parent=null]\n * @property {string|null} [parentProperty=null]\n * @property {JSONPathCallback} [callback]\n * @property {OtherTypeCallback} [otherTypeCallback] Defaults to\n * function which throws on encountering `@other`\n * @property {boolean} [autostart=true]\n */\n\n/* eslint-enable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */\n\n/**\n * @param {string|JSONPathOptions} opts If a string, will be treated as `expr`\n * @param {string} [expr] JSON path to evaluate\n * @param {JSON} [obj] JSON object to evaluate against\n * @param {JSONPathCallback} [callback] Passed 3 arguments: 1) desired payload\n * per `resultType`, 2) `\"value\"|\"property\"`, 3) Full returned object with\n * all payloads\n * @param {OtherTypeCallback} [otherTypeCallback] If `@other()` is at the end\n * of one's query, this will be invoked with the value of the item, its\n * path, its parent, and its parent's property name, and it should return\n * a boolean indicating whether the supplied value belongs to the \"other\"\n * type or not (or it may handle transformations and return `false`).\n * @returns {JSONPath}\n * @class\n */\n\n\nfunction JSONPath(opts, expr, obj, callback, otherTypeCallback) {\n // eslint-disable-next-line no-restricted-syntax\n if (!(this instanceof JSONPath)) {\n try {\n return new JSONPath(opts, expr, obj, callback, otherTypeCallback);\n } catch (e) {\n if (!e.avoidNew) {\n throw e;\n }\n\n return e.value;\n }\n }\n\n if (typeof opts === 'string') {\n otherTypeCallback = callback;\n callback = obj;\n obj = expr;\n expr = opts;\n opts = null;\n }\n\n var optObj = opts && _typeof(opts) === 'object';\n opts = opts || {};\n this.json = opts.json || obj;\n this.path = opts.path || expr;\n this.resultType = opts.resultType || 'value';\n this.flatten = opts.flatten || false;\n this.wrap = hasOwnProp.call(opts, 'wrap') ? opts.wrap : true;\n this.sandbox = opts.sandbox || {};\n this.preventEval = opts.preventEval || false;\n this.parent = opts.parent || null;\n this.parentProperty = opts.parentProperty || null;\n this.callback = opts.callback || callback || null;\n\n this.otherTypeCallback = opts.otherTypeCallback || otherTypeCallback || function () {\n throw new TypeError('You must supply an otherTypeCallback callback option ' + 'with the @other() operator.');\n };\n\n if (opts.autostart !== false) {\n var args = {\n path: optObj ? opts.path : expr\n };\n\n if (!optObj) {\n args.json = obj;\n } else if ('json' in opts) {\n args.json = opts.json;\n }\n\n var ret = this.evaluate(args);\n\n if (!ret || _typeof(ret) !== 'object') {\n throw new NewError(ret);\n }\n\n return ret;\n }\n} // PUBLIC METHODS\n\n\nJSONPath.prototype.evaluate = function (expr, json, callback, otherTypeCallback) {\n var _this2 = this;\n\n var currParent = this.parent,\n currParentProperty = this.parentProperty;\n var flatten = this.flatten,\n wrap = this.wrap;\n this.currResultType = this.resultType;\n this.currPreventEval = this.preventEval;\n this.currSandbox = this.sandbox;\n callback = callback || this.callback;\n this.currOtherTypeCallback = otherTypeCallback || this.otherTypeCallback;\n json = json || this.json;\n expr = expr || this.path;\n\n if (expr && _typeof(expr) === 'object' && !Array.isArray(expr)) {\n if (!expr.path && expr.path !== '') {\n throw new TypeError('You must supply a \"path\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n\n if (!hasOwnProp.call(expr, 'json')) {\n throw new TypeError('You must supply a \"json\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n\n var _expr = expr;\n json = _expr.json;\n flatten = hasOwnProp.call(expr, 'flatten') ? expr.flatten : flatten;\n this.currResultType = hasOwnProp.call(expr, 'resultType') ? expr.resultType : this.currResultType;\n this.currSandbox = hasOwnProp.call(expr, 'sandbox') ? expr.sandbox : this.currSandbox;\n wrap = hasOwnProp.call(expr, 'wrap') ? expr.wrap : wrap;\n this.currPreventEval = hasOwnProp.call(expr, 'preventEval') ? expr.preventEval : this.currPreventEval;\n callback = hasOwnProp.call(expr, 'callback') ? expr.callback : callback;\n this.currOtherTypeCallback = hasOwnProp.call(expr, 'otherTypeCallback') ? expr.otherTypeCallback : this.currOtherTypeCallback;\n currParent = hasOwnProp.call(expr, 'parent') ? expr.parent : currParent;\n currParentProperty = hasOwnProp.call(expr, 'parentProperty') ? expr.parentProperty : currParentProperty;\n expr = expr.path;\n }\n\n currParent = currParent || null;\n currParentProperty = currParentProperty || null;\n\n if (Array.isArray(expr)) {\n expr = JSONPath.toPathString(expr);\n }\n\n if (!expr && expr !== '' || !json) {\n return undefined;\n }\n\n var exprList = JSONPath.toPathArray(expr);\n\n if (exprList[0] === '$' && exprList.length > 1) {\n exprList.shift();\n }\n\n this._hasParentSelector = null;\n\n var result = this._trace(exprList, json, ['$'], currParent, currParentProperty, callback).filter(function (ea) {\n return ea && !ea.isParentSelector;\n });\n\n if (!result.length) {\n return wrap ? [] : undefined;\n }\n\n if (!wrap && result.length === 1 && !result[0].hasArrExpr) {\n return this._getPreferredOutput(result[0]);\n }\n\n return result.reduce(function (rslt, ea) {\n var valOrPath = _this2._getPreferredOutput(ea);\n\n if (flatten && Array.isArray(valOrPath)) {\n rslt = rslt.concat(valOrPath);\n } else {\n rslt.push(valOrPath);\n }\n\n return rslt;\n }, []);\n}; // PRIVATE METHODS\n\n\nJSONPath.prototype._getPreferredOutput = function (ea) {\n var resultType = this.currResultType;\n\n switch (resultType) {\n case 'all':\n {\n var path = Array.isArray(ea.path) ? ea.path : JSONPath.toPathArray(ea.path);\n ea.pointer = JSONPath.toPointer(path);\n ea.path = typeof ea.path === 'string' ? ea.path : JSONPath.toPathString(ea.path);\n return ea;\n }\n\n case 'value':\n case 'parent':\n case 'parentProperty':\n return ea[resultType];\n\n case 'path':\n return JSONPath.toPathString(ea[resultType]);\n\n case 'pointer':\n return JSONPath.toPointer(ea.path);\n\n default:\n throw new TypeError('Unknown result type');\n }\n};\n\nJSONPath.prototype._handleCallback = function (fullRetObj, callback, type) {\n if (callback) {\n var preferredOutput = this._getPreferredOutput(fullRetObj);\n\n fullRetObj.path = typeof fullRetObj.path === 'string' ? fullRetObj.path : JSONPath.toPathString(fullRetObj.path); // eslint-disable-next-line n/callback-return\n\n callback(preferredOutput, type, fullRetObj);\n }\n};\n/**\n *\n * @param {string} expr\n * @param {JSONObject} val\n * @param {string} path\n * @param {PlainObject|GenericArray} parent\n * @param {string} parentPropName\n * @param {JSONPathCallback} callback\n * @param {boolean} hasArrExpr\n * @param {boolean} literalPriority\n * @returns {ReturnObject|ReturnObject[]}\n */\n\n\nJSONPath.prototype._trace = function (expr, val, path, parent, parentPropName, callback, hasArrExpr, literalPriority) {\n var _this3 = this;\n\n // No expr to follow? return path and value as the result of\n // this trace branch\n var retObj;\n\n if (!expr.length) {\n retObj = {\n path: path,\n value: val,\n parent: parent,\n parentProperty: parentPropName,\n hasArrExpr: hasArrExpr\n };\n\n this._handleCallback(retObj, callback, 'value');\n\n return retObj;\n }\n\n var loc = expr[0],\n x = expr.slice(1); // We need to gather the return value of recursive trace calls in order to\n // do the parent sel computation.\n\n var ret = [];\n /**\n *\n * @param {ReturnObject|ReturnObject[]} elems\n * @returns {void}\n */\n\n function addRet(elems) {\n if (Array.isArray(elems)) {\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test:\n // `ret.push(...elems);`\n elems.forEach(function (t) {\n ret.push(t);\n });\n } else {\n ret.push(elems);\n }\n }\n\n if ((typeof loc !== 'string' || literalPriority) && val && hasOwnProp.call(val, loc)) {\n // simple case--directly follow property\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr)); // eslint-disable-next-line unicorn/prefer-switch -- Part of larger `if`\n } else if (loc === '*') {\n // all child properties\n this._walk(val, function (m) {\n addRet(_this3._trace(x, val[m], push(path, m), val, m, callback, true, true));\n });\n } else if (loc === '..') {\n // all descendent parent properties\n // Check remaining expression with val's immediate children\n addRet(this._trace(x, val, path, parent, parentPropName, callback, hasArrExpr));\n\n this._walk(val, function (m) {\n // We don't join m and x here because we only want parents,\n // not scalar values\n if (_typeof(val[m]) === 'object') {\n // Keep going with recursive descent on val's\n // object children\n addRet(_this3._trace(expr.slice(), val[m], push(path, m), val, m, callback, true));\n }\n }); // The parent sel computation is handled in the frame above using the\n // ancestor object of val\n\n } else if (loc === '^') {\n // This is not a final endpoint, so we do not invoke the callback here\n this._hasParentSelector = true;\n return {\n path: path.slice(0, -1),\n expr: x,\n isParentSelector: true\n };\n } else if (loc === '~') {\n // property name\n retObj = {\n path: push(path, loc),\n value: parentPropName,\n parent: parent,\n parentProperty: null\n };\n\n this._handleCallback(retObj, callback, 'property');\n\n return retObj;\n } else if (loc === '$') {\n // root only\n addRet(this._trace(x, val, path, null, null, callback, hasArrExpr));\n } else if (/^(\\x2D?[0-9]*):(\\x2D?[0-9]*):?([0-9]*)$/.test(loc)) {\n // [start:end:step] Python slice syntax\n addRet(this._slice(loc, x, val, path, parent, parentPropName, callback));\n } else if (loc.indexOf('?(') === 0) {\n // [?(expr)] (filtering)\n if (this.currPreventEval) {\n throw new Error('Eval [?(expr)] prevented in JSONPath expression.');\n }\n\n var safeLoc = loc.replace(/^\\?\\(((?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?)\\)$/, '$1');\n\n this._walk(val, function (m) {\n if (_this3._eval(safeLoc, val[m], m, path, parent, parentPropName)) {\n addRet(_this3._trace(x, val[m], push(path, m), val, m, callback, true));\n }\n });\n } else if (loc[0] === '(') {\n // [(expr)] (dynamic property/index)\n if (this.currPreventEval) {\n throw new Error('Eval [(expr)] prevented in JSONPath expression.');\n } // As this will resolve to a property name (but we don't know it\n // yet), property and parent information is relative to the\n // parent of the property to which this expression will resolve\n\n\n addRet(this._trace(unshift(this._eval(loc, val, path[path.length - 1], path.slice(0, -1), parent, parentPropName), x), val, path, parent, parentPropName, callback, hasArrExpr));\n } else if (loc[0] === '@') {\n // value type: @boolean(), etc.\n var addType = false;\n var valueType = loc.slice(1, -2);\n\n switch (valueType) {\n case 'scalar':\n if (!val || !['object', 'function'].includes(_typeof(val))) {\n addType = true;\n }\n\n break;\n\n case 'boolean':\n case 'string':\n case 'undefined':\n case 'function':\n // eslint-disable-next-line valid-typeof\n if (_typeof(val) === valueType) {\n addType = true;\n }\n\n break;\n\n case 'integer':\n if (Number.isFinite(val) && !(val % 1)) {\n addType = true;\n }\n\n break;\n\n case 'number':\n if (Number.isFinite(val)) {\n addType = true;\n }\n\n break;\n\n case 'nonFinite':\n if (typeof val === 'number' && !Number.isFinite(val)) {\n addType = true;\n }\n\n break;\n\n case 'object':\n // eslint-disable-next-line valid-typeof\n if (val && _typeof(val) === valueType) {\n addType = true;\n }\n\n break;\n\n case 'array':\n if (Array.isArray(val)) {\n addType = true;\n }\n\n break;\n\n case 'other':\n addType = this.currOtherTypeCallback(val, path, parent, parentPropName);\n break;\n\n case 'null':\n if (val === null) {\n addType = true;\n }\n\n break;\n\n /* c8 ignore next 2 */\n\n default:\n throw new TypeError('Unknown value type ' + valueType);\n }\n\n if (addType) {\n retObj = {\n path: path,\n value: val,\n parent: parent,\n parentProperty: parentPropName\n };\n\n this._handleCallback(retObj, callback, 'value');\n\n return retObj;\n } // `-escaped property\n\n } else if (loc[0] === '`' && val && hasOwnProp.call(val, loc.slice(1))) {\n var locProp = loc.slice(1);\n addRet(this._trace(x, val[locProp], push(path, locProp), val, locProp, callback, hasArrExpr, true));\n } else if (loc.includes(',')) {\n // [name1,name2,...]\n var parts = loc.split(',');\n\n var _iterator = _createForOfIteratorHelper(parts),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var part = _step.value;\n addRet(this._trace(unshift(part, x), val, path, parent, parentPropName, callback, true));\n } // simple case--directly follow property\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else if (!literalPriority && val && hasOwnProp.call(val, loc)) {\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr, true));\n } // We check the resulting values for parent selections. For parent\n // selections we discard the value object and continue the trace with the\n // current val object\n\n\n if (this._hasParentSelector) {\n for (var t = 0; t < ret.length; t++) {\n var rett = ret[t];\n\n if (rett && rett.isParentSelector) {\n var tmp = this._trace(rett.expr, val, rett.path, parent, parentPropName, callback, hasArrExpr);\n\n if (Array.isArray(tmp)) {\n ret[t] = tmp[0];\n var tl = tmp.length;\n\n for (var tt = 1; tt < tl; tt++) {\n t++;\n ret.splice(t, 0, tmp[tt]);\n }\n } else {\n ret[t] = tmp;\n }\n }\n }\n }\n\n return ret;\n};\n\nJSONPath.prototype._walk = function (val, f) {\n if (Array.isArray(val)) {\n var n = val.length;\n\n for (var i = 0; i < n; i++) {\n f(i);\n }\n } else if (val && _typeof(val) === 'object') {\n Object.keys(val).forEach(function (m) {\n f(m);\n });\n }\n};\n\nJSONPath.prototype._slice = function (loc, expr, val, path, parent, parentPropName, callback) {\n if (!Array.isArray(val)) {\n return undefined;\n }\n\n var len = val.length,\n parts = loc.split(':'),\n step = parts[2] && Number.parseInt(parts[2]) || 1;\n var start = parts[0] && Number.parseInt(parts[0]) || 0,\n end = parts[1] && Number.parseInt(parts[1]) || len;\n start = start < 0 ? Math.max(0, start + len) : Math.min(len, start);\n end = end < 0 ? Math.max(0, end + len) : Math.min(len, end);\n var ret = [];\n\n for (var i = start; i < end; i += step) {\n var tmp = this._trace(unshift(i, expr), val, path, parent, parentPropName, callback, true); // Should only be possible to be an array here since first part of\n // ``unshift(i, expr)` passed in above would not be empty, nor `~`,\n // nor begin with `@` (as could return objects)\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test: `ret.push(...tmp);`\n\n\n tmp.forEach(function (t) {\n ret.push(t);\n });\n }\n\n return ret;\n};\n\nJSONPath.prototype._eval = function (code, _v, _vname, path, parent, parentPropName) {\n this.currSandbox._$_parentProperty = parentPropName;\n this.currSandbox._$_parent = parent;\n this.currSandbox._$_property = _vname;\n this.currSandbox._$_root = this.json;\n this.currSandbox._$_v = _v;\n var containsPath = code.includes('@path');\n\n if (containsPath) {\n this.currSandbox._$_path = JSONPath.toPathString(path.concat([_vname]));\n }\n\n var scriptCacheKey = 'script:' + code;\n\n if (!JSONPath.cache[scriptCacheKey]) {\n var script = code.replace(/@parentProperty/g, '_$_parentProperty').replace(/@parent/g, '_$_parent').replace(/@property/g, '_$_property').replace(/@root/g, '_$_root').replace(/@([\\t-\\r \\)\\.\\[\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF])/g, '_$_v$1');\n\n if (containsPath) {\n script = script.replace(/@path/g, '_$_path');\n }\n\n JSONPath.cache[scriptCacheKey] = new this.vm.Script(script);\n }\n\n try {\n return JSONPath.cache[scriptCacheKey].runInNewContext(this.currSandbox);\n } catch (e) {\n throw new Error('jsonPath: ' + e.message + ': ' + code);\n }\n}; // PUBLIC CLASS PROPERTIES AND METHODS\n// Could store the cache object itself\n\n\nJSONPath.cache = {};\n/**\n * @param {string[]} pathArr Array to convert\n * @returns {string} The path string\n */\n\nJSONPath.toPathString = function (pathArr) {\n var x = pathArr,\n n = x.length;\n var p = '$';\n\n for (var i = 1; i < n; i++) {\n if (!/^(~|\\^|@(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\(\\))$/.test(x[i])) {\n p += /^[\\*0-9]+$/.test(x[i]) ? '[' + x[i] + ']' : \"['\" + x[i] + \"']\";\n }\n }\n\n return p;\n};\n/**\n * @param {string} pointer JSON Path\n * @returns {string} JSON Pointer\n */\n\n\nJSONPath.toPointer = function (pointer) {\n var x = pointer,\n n = x.length;\n var p = '';\n\n for (var i = 1; i < n; i++) {\n if (!/^(~|\\^|@(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\(\\))$/.test(x[i])) {\n p += '/' + x[i].toString().replace(/~/g, '~0').replace(/\\//g, '~1');\n }\n }\n\n return p;\n};\n/**\n * @param {string} expr Expression to convert\n * @returns {string[]}\n */\n\n\nJSONPath.toPathArray = function (expr) {\n var cache = JSONPath.cache;\n\n if (cache[expr]) {\n return cache[expr].concat();\n }\n\n var subx = [];\n var normalized = expr // Properties\n .replace(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\\(\\)/g, ';$&;') // Parenthetical evaluations (filtering and otherwise), directly\n // within brackets or single quotes\n .replace(/['\\[](\\??\\((?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\))['\\]]/g, function ($0, $1) {\n return '[#' + (subx.push($1) - 1) + ']';\n }) // Escape periods and tildes within properties\n .replace(/\\[[\"']((?:(?!['\\]])[\\s\\S])*)[\"']\\]/g, function ($0, prop) {\n return \"['\" + prop.replace(/\\./g, '%@%').replace(/~/g, '%%@@%%') + \"']\";\n }) // Properties operator\n .replace(/~/g, ';~;') // Split by property boundaries\n .replace(/[\"']?\\.[\"']?(?!(?:(?!\\[)[\\s\\S])*\\])|\\[[\"']?/g, ';') // Reinsert periods within properties\n .replace(/%@%/g, '.') // Reinsert tildes within properties\n .replace(/%%@@%%/g, '~') // Parent\n .replace(/(?:;)?(\\^+)(?:;)?/g, function ($0, ups) {\n return ';' + ups.split('').join(';') + ';';\n }) // Descendents\n .replace(/;;;|;;/g, ';..;') // Remove trailing\n .replace(/;$|'?\\]|'$/g, '');\n var exprList = normalized.split(';').map(function (exp) {\n var match = exp.match(/#([0-9]+)/);\n return !match || !match[1] ? exp : subx[match[1]];\n });\n cache[expr] = exprList;\n return cache[expr].concat();\n};\n\n/**\n * @typedef {any} ContextItem\n */\n\n/**\n * @typedef {any} EvaluatedResult\n */\n\n/**\n * @callback ConditionCallback\n * @param {ContextItem} item\n * @returns {boolean}\n */\n\n/**\n * Copy items out of one array into another.\n * @param {GenericArray} source Array with items to copy\n * @param {GenericArray} target Array to which to copy\n * @param {ConditionCallback} conditionCb Callback passed the current item;\n * will move item if evaluates to `true`\n * @returns {void}\n */\n\nvar moveToAnotherArray = function moveToAnotherArray(source, target, conditionCb) {\n var il = source.length;\n\n for (var i = 0; i < il; i++) {\n var item = source[i];\n\n if (conditionCb(item)) {\n target.push(source.splice(i--, 1)[0]);\n }\n }\n};\n/**\n * In-browser replacement for NodeJS' VM.Script.\n */\n\n\nvar Script = /*#__PURE__*/function () {\n /**\n * @param {string} expr Expression to evaluate\n */\n function Script(expr) {\n _classCallCheck(this, Script);\n\n this.code = expr;\n }\n /**\n * @param {PlainObject} context Object whose items will be added\n * to evaluation\n * @returns {EvaluatedResult} Result of evaluated code\n */\n\n\n _createClass(Script, [{\n key: \"runInNewContext\",\n value: function runInNewContext(context) {\n var expr = this.code;\n var keys = Object.keys(context);\n var funcs = [];\n moveToAnotherArray(keys, funcs, function (key) {\n return typeof context[key] === 'function';\n });\n var values = keys.map(function (vr, i) {\n return context[vr];\n });\n var funcString = funcs.reduce(function (s, func) {\n var fString = context[func].toString();\n\n if (!/function/.test(fString)) {\n fString = 'function ' + fString;\n }\n\n return 'var ' + func + '=' + fString + ';' + s;\n }, '');\n expr = funcString + expr; // Mitigate http://perfectionkills.com/global-eval-what-are-the-options/#new_function\n\n if (!/([\"'])use strict\\1/.test(expr) && !keys.includes('arguments')) {\n expr = 'var arguments = undefined;' + expr;\n } // Remove last semi so `return` will be inserted before\n // the previous one instead, allowing for the return\n // of a bare ending expression\n\n\n expr = expr.replace(/;[\\t-\\r \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]*$/, ''); // Insert `return`\n\n var lastStatementEnd = expr.lastIndexOf(';');\n var code = lastStatementEnd > -1 ? expr.slice(0, lastStatementEnd + 1) + ' return ' + expr.slice(lastStatementEnd + 1) : ' return ' + expr; // eslint-disable-next-line no-new-func\n\n return _construct(Function, keys.concat([code])).apply(void 0, _toConsumableArray(values));\n }\n }]);\n\n return Script;\n}();\n\nJSONPath.prototype.vm = {\n Script: Script\n};\n\nexport { JSONPath };\n","/* Utility to cache-bust static files.\n\nIt handles multiple situations:\n\n1. Initial request, valid response\n2. Initial request, invalid response\n2. Initial request, missing response\n3. Cached request, valid response (1 extra head request)\n4. Cached request, invalid response, valid refetch (2 fetches + 1 head)\n5. Cached request, invalid response, invalid refetch (2 fetches + 1 head)\n\nIt works as promise, but also accepts callback to use cached blobs mid-flight and have access to headers.\nAny network errors will not caught.\nFunction throws when unable to fetch valid response.\n\n*/\nexport async function fetchAndRevalidate(\n url: Parameters<typeof fetch>[0],\n options: Parameters<typeof fetch>[1],\n validator: (resposne: Response) => boolean,\n callback: (response: Response, status: 'cached' | 'valid') => void\n) {\n // make request as usual, see if there's cached version of an asset\n const date = new Date()\n const initialResponse = await fetch(url, options)\n if (!initialResponse.ok) throw new Error('Fetch failed')\n const responseDate = new Date(initialResponse.headers.get('date'))\n var response = initialResponse\n callback(initialResponse, 'cached')\n\n // see if response was pulled from cache\n if (responseDate < date) {\n // check if response was stale by sending quick HEAD reque st busting cache\n const freshHeadResponse = await fetch(url + '?' + Math.random(), {\n ...options,\n method: 'HEAD',\n cache: 'no-cache'\n })\n\n // there's a newer version of the file that we may fetch\n if (freshHeadResponse.headers.get('last-modified') != initialResponse.headers.get('last-modified')) {\n // check if re-fetching is even necessary\n if (validator(freshHeadResponse) === false) {\n //callback('stale', freshHeadResponse)\n throw new Error('Response is stale')\n }\n\n // otherwise the new resource has to be re-fetched\n response = await fetch(url, {\n ...options,\n cache: 'reload'\n })\n }\n }\n\n if (validator(response) === false) {\n throw new Error('Response is not valid')\n }\n if (initialResponse !== response) {\n callback(response, 'valid')\n }\n\n return response\n}\n","import { fetchAndRevalidate } from './fetch.js'\n\nexport interface CloudTemplate {\n cdn?: string\n hostname?: string\n library: string\n component: string\n version: string\n revision?: string\n}\nexport interface CloudStylesheet {\n cdn?: string\n hostname?: string\n library: string\n revision?: 'staging' | 'published' | 'saved' | number\n}\n\nexport function getComponentURL({\n cdn = 'https://feaascomponentsapidev.blob.core.windows.net',\n hostname,\n library,\n component,\n version,\n revision = 'published'\n}: CloudTemplate) {\n return `${cdn || hostname}/components/${library}/${component}/${version}/${revision}.html`\n}\n\nexport function getStylesheetURL({\n cdn = `https://feaascomponentsapidev.blob.core.windows.net`,\n hostname,\n library,\n revision = 'published'\n}: CloudStylesheet) {\n return `${cdn || hostname}/styles/${library}/${revision}.css`\n}\n\nexport async function fetchComponent(props: CloudTemplate, callback: (html: string) => void) {\n return fetchAndRevalidate(\n getComponentURL(props),\n {\n headers: {\n Accept: 'text/html'\n }\n },\n (response) => {\n return response.headers.get('x-ms-meta-versionDeletedAt') == null\n },\n (response) => {\n response.text().then(callback)\n }\n )\n}\n\nexport async function fetchStylesheet(props: CloudStylesheet, callback: (css: string) => void) {\n return fetchAndRevalidate(\n getStylesheetURL(props),\n {\n headers: {\n Accept: 'text/css'\n }\n },\n (response) => {\n return response.headers.get('x-ms-meta-deletedAt') == null\n },\n (response) => {\n response.text().then(callback)\n }\n )\n}\n","import { JSONPath } from 'jsonpath-plus'\nimport { CloudStylesheet, CloudTemplate, fetchComponent, fetchStylesheet } from './cloud.js'\n\nexport interface FEAASCustomizations {\n processTemplate?: (element: HTMLElement, template: string, data: any) => string\n processData?: (element: HTMLElement, data: any) => any\n processValue?: (element: HTMLElement, property: string, value: any) => any\n shouldRepeat?: (element: HTMLElement, value: any) => boolean\n onRender?: (element: HTMLElement, data: any) => void\n}\n\nexport interface ExplicitTemplate {\n template: string\n}\n\nexport type Datascopes = Record<string, any>\n\nexport type FEAASComponentProps = {\n data?: Datascopes\n} & (ExplicitTemplate | CloudTemplate) &\n FEAASCustomizations\n\nexport function renderComponentElement(content: string, datasources?: Datascopes) {\n const wrapper = document.createElement('div')\n wrapper.innerHTML = content\n const fragment = document.createDocumentFragment()\n while (wrapper.firstChild) {\n fragment.appendChild(wrapper.firstChild)\n }\n renderDOMElement(fragment, datasources)\n return wrapper\n}\n\nexport function cleanCollectionBit(path: string) {\n return path.replace(/(\\[[^\\]\\[]+\\]|\\.\\*)$/g, '')\n}\n\nexport function normalizeCollectionScope(path: string) {\n return cleanCollectionBit(path) + '.*'\n}\n\nfunction getDOMCollectionIndex(element: HTMLElement) {\n const datascope = element.getAttribute('data-path-scope')\n var index = 0\n for (var p = element; (p = <HTMLElement>p.previousElementSibling); ) {\n if (p.getAttribute('data-path-scope') == datascope) {\n index++\n }\n }\n return index\n}\n\nfunction updateDOMClones(element: HTMLElement, targetCount: number, config?: FEAASCustomizations) {\n const datascope = element.getAttribute('data-path-scope')\n if (datascope == null) {\n return\n }\n var index = getDOMCollectionIndex(element)\n if (index != 0) {\n return\n }\n\n const parentElement = element.parentElement\n if (parentElement == null) {\n return\n }\n\n /*dont remove first element, just hide it*/\n if (targetCount == 0) {\n element.setAttribute('hidden', 'hidden')\n } else if (element.getAttribute('hidden') != null) {\n element.removeAttribute('hidden')\n }\n\n var count = index + 1\n var last = element\n for (var n = element; (n = <HTMLElement>n.nextElementSibling); ) {\n if (n.getAttribute('data-path-scope') == datascope) {\n count++\n last = n\n }\n }\n /* add missing clones */\n for (var i = count; i < targetCount; i++) {\n parentElement.insertBefore(last.cloneNode(true), last.nextElementSibling)\n }\n /* remove excessive clones fron previous renders */\n for (var i = Math.max(1, targetCount); i < count; i++) {\n last = <HTMLElement>last.previousElementSibling\n parentElement.removeChild(<HTMLElement>last.nextElementSibling)\n }\n}\n\nexport function queryScopes(scopes: any, datapath: string, singleValue = false, json: any = scopes) {\n var path = datapath\n /* find closest parent scope */\n const keys = Object.keys(scopes).sort((b, a) => a.length - b.length)\n for (const scope of keys) {\n if (datapath.startsWith(scope) && 'ends with it') {\n if (scope == datapath) {\n if (singleValue) {\n return scopes[scope]\n } else {\n continue\n }\n }\n path = datapath.substring(scope.length + 1)\n json = scopes[scope]\n break\n }\n }\n\n var collection = JSONPath({ path, json })\n\n // If regular path didn't match any data, try fallbacks\n // datasourceId.wrapper.$.path\n if (Array.isArray(collection) && collection?.length == 0) {\n collection = [\n // look up in `_` datasource id (catch-all id is used in JSS)\n // _.wrapper.$.path\n path.replace(/^.*?\\./, '_.'),\n // look up directly on data root\n // wrapper.$.path\n path.replace(/^.*?\\./, ''),\n // look up trimmed path in datasource\n // datasourceId.path\n path.replace(/^([^.]+).*?\\.\\$\\./, '$1.'),\n // look up trimmed path in catch all datasource\n // _.path\n path.replace(/^.*?\\.\\$\\./, '_.'),\n // look up trimmed path on root\n // path\n path.replace(/^.*?\\.\\$\\./, '')\n ]\n .filter((v, i, a) => a.indexOf(v) === i)\n .reduce((v, path) => {\n return v.length > 0 ? v : JSONPath({ path, json })\n }, [] as any[])\n }\n\n if (singleValue && Array.isArray(collection)) {\n return collection[0]\n } else {\n return collection\n }\n}\n\nexport function setDOMAttribute(element: HTMLElement, attribute: string, value: any, config?: FEAASCustomizations) {\n if (!element) return\n var target = element\n if (value?.type == 'doc' && Array.isArray(value.content)) value = serializeCH1RichText(value)\n if (config?.processValue) {\n value = config?.processValue(element, attribute, value)\n }\n var prop = attribute.replace('data-path-', '')\n if (attribute == 'data-path-src') {\n target = element.tagName == 'IMG' ? element : <HTMLElement>element.querySelector('img, video')\n } else if (attribute == 'data-path-href') {\n target = element.querySelector('a') || element.closest('a')\n } else if (attribute == 'data-path-alt') {\n target = element.querySelector('img, picture')\n } else if (attribute == 'data-path-hidden') {\n value = !value ? true : null\n } else if (attribute == 'data-path' || attribute == 'data-embed-html' || attribute == 'html') {\n prop = 'innerHTML'\n } else if (attribute == 'data-embed-src') {\n loadScript(element, value)\n } else if (attribute == 'data-path-attributes') {\n const oldKeys = element.getAttribute('data-attributes-keys')?.split(',').filter(Boolean) || []\n for (var property in value) {\n var subvalue = value[property]\n setDOMAttribute(\n element,\n property,\n typeof subvalue == 'object' && subvalue ? JSON.stringify(subvalue) : subvalue,\n config\n )\n }\n for (var i = 0; i < oldKeys.length; i++) {\n if (value == null || !(oldKeys[i] in value)) {\n setDOMAttribute(element, oldKeys[i], null, config)\n }\n }\n setDOMAttribute(element, 'data-attributes-keys', Object.keys(value || {}).join(','))\n return\n }\n if (typeof value == 'boolean') {\n value = value ? '' : null\n }\n if (!target) return\n\n var placeholder = String(element.getAttribute('data-path-placeholder') || target[prop as keyof HTMLElement])\n\n if (value != null) {\n if (prop == 'innerHTML') {\n if (target.innerHTML != value) {\n target.innerHTML = value\n }\n } else {\n if (target.getAttribute(prop) != value) {\n target.setAttribute(prop, value)\n }\n }\n } else {\n if (prop == 'innerHTML') {\n target.innerHTML = placeholder\n } else {\n target.removeAttribute(prop)\n }\n }\n}\n\nexport function observeDOMElement(element: HTMLElement) {\n const observer = new element.ownerDocument.defaultView.MutationObserver((changes) => {\n changes.forEach((change) => {\n const target = change.target as HTMLElement\n const src = target.getAttribute('data-embed-src')\n if (src) {\n loadScript(target, src)\n }\n\n if (change.addedNodes) {\n change.addedNodes.forEach((node) => {\n if (node.nodeType == 1) autoloadScripts(node as HTMLElement, false)\n })\n }\n })\n })\n observer.observe(element, { attributes: true, subtree: true, childList: true })\n return observer\n}\n\nexport function autoloadScripts(element: HTMLElement, observe = true) {\n const embeds = element.querySelectorAll('[data-embed-src]')\n for (var i = 0; i < embeds.length; i++) {\n const embed = embeds[i]\n loadScript(embed as HTMLElement, embed.getAttribute('data-embed-src'))\n }\n if (observe) return observeDOMElement(element)\n}\n\nexport function loadScript(element: HTMLElement, src: string) {\n for (var p = element; p; p = p.parentElement) {\n if (!p.parentElement) {\n const scripts = p.querySelectorAll('script')\n for (var i = 0; i < scripts.length; i++) {\n if (scripts[i].getAttribute('src') == src) {\n return true\n }\n }\n if (p.tagName == 'HTML') p = p.querySelector('head') || p\n const script = p.ownerDocument.createElement('script')\n script.type = 'module'\n script.src = src\n p.appendChild(script)\n break\n }\n }\n}\n\n// order in which attributes are proccesed. Rightmost are more important\nvar sortOrder = ['data-attributes-keys', 'data-path-attributes', 'data-path-scope']\nexport function renderDOMElement(\n input: HTMLElement | DocumentFragment,\n datascopes?: any,\n config?: FEAASCustomizations,\n isNested?: boolean\n) {\n const element = <HTMLElement>input\n if (!isNested) {\n datascopes = config?.processData?.(element, datascopes) || datascopes\n }\n if (element.nodeType == 1) {\n const datascope = element.getAttribute('data-path-scope')\n if (datascope) {\n const index = getDOMCollectionIndex(element)\n const collection = queryScopes(datascopes, datascope, false) || []\n if (index == 0) {\n updateDOMClones(element, config?.shouldRepeat?.(element, collection) === false ? 1 : collection.length, config)\n }\n\n datascopes = {\n ...datascopes,\n [normalizeCollectionScope(datascope)]: collection[index]\n }\n }\n const attrs = Array.prototype.slice.call(element.attributes).sort((a: Attr, b: Attr) => {\n return sortOrder.indexOf(a.name) - sortOrder.indexOf(b.name)\n })\n for (var i = 0; i < attrs.length; i++) {\n const { name, value: datapath } = attrs[i]\n if (name.startsWith('data-path') && name != 'data-path-scope') {\n setDOMAttribute(element, name, queryScopes(datascopes, datapath, true), config)\n }\n if (name == 'data-embed-src') {\n setDOMAttribute(element, name, element.getAttribute(name), config)\n }\n }\n }\n for (var i = 0; i < element.children.length; i++) {\n renderDOMElement(<HTMLElement>element.children[i], datascopes, config, true)\n }\n if (!isNested) {\n config?.onRender?.(element, datascopes)\n }\n return element\n}\n\nexport function renderDOMContent(root: HTMLElement, template: string, data?: Datascopes, config?: FEAASCustomizations) {\n const newTemplate = config?.processTemplate?.(root, template, data) || template\n root.innerHTML = newTemplate\n root.classList.add('-feaas')\n return renderDOMElement(root, data, config)\n}\n\nexport function renderStylesheet(props: CloudStylesheet, style?: HTMLStyleElement) {\n renderStylesheetPromise(props, (style ||= document.createElement('style')))\n return style\n}\n\nexport function renderStylesheetPromise(props: CloudStylesheet, style?: HTMLStyleElement) {\n style ||= document.createElement('style')\n return fetchStylesheet(props, (cssText) => {\n style.textContent = cssText\n }).then(() => style)\n}\n\nexport function renderComponent(props: FEAASComponentProps, root?: HTMLElement) {\n renderComponentPromise(props, (root ||= document.createElement('div')))\n return root\n}\n\nexport async function renderComponentPromise(props: FEAASComponentProps, root?: HTMLElement) {\n root ||= document.createElement('div')\n if (!root.childNodes.length) {\n if ('template' in props) {\n return renderDOMContent(root, props.template, props.data, props)\n } else {\n return fetchComponent(props, (template) => {\n return renderDOMContent(root, template, props.data, props)\n }).then(() => root)\n }\n /* update element with new data */\n } else {\n return renderDOMElement(root, props.data, props)\n }\n}\n\nexport type CH1Node =\n | {\n type: string\n text?: string\n content?: CH1Node[]\n marks?: CH1Node[]\n attrs?: Record<string, any>\n }\n | CH1Node[]\nfunction serializeCH1Tag(data: any, attrs: Record<string, string> = {}, tag: string): string {\n if (!tag) return serializeCH1RichText(data)\n return `<${tag}${Object.entries(attrs)\n .map(([k, v]) => v != null && ` ${k}=\"${v}\"`)\n .filter(Boolean)\n .join('')}>${serializeCH1RichText(data)}</${tag}>`.replace(/^<([a-z0-9][^>]*)><\\/[^>]+>$/, '<$1 />')\n}\nexport function serializeCH1RichText(data: CH1Node | string | null | undefined): string {\n if (Array.isArray(data)) return data.map(serializeCH1RichText).join('\\n').trim()\n if (typeof data == 'string') return data\n if (data == null) return ''\n switch (data.type) {\n case 'heading':\n const { level, ...attrs } = data.attrs\n return serializeCH1Tag(data.content, attrs, 'h' + level)\n case 'text':\n return ((data.marks || []) as any[]).reduce((text, mark) => {\n return serializeCH1Tag(\n text,\n mark.attrs,\n {\n link: 'a',\n bold: 'strong',\n italic: 'em',\n strike: 's',\n underline: 'u'\n }[mark.type as string]\n )\n }, data.text?.replace(/\\s+/, ' '))\n default:\n return serializeCH1Tag(\n data.content || data.text,\n data.attrs,\n {\n bulletList: 'ul',\n orderedList: 'ol',\n listItem: 'li',\n horizontalRule: 'hr',\n paragraph: 'p',\n codeBlock: 'code',\n blockquote: 'blockquote'\n }[data.type]\n )\n }\n}\n\nexport { JSONPath }\n","import { JSXElementConstructor, ReactElement, ReactNode } from 'react'\nimport type ReactDOM from 'react-dom'\nimport type React from 'react'\n\nexport type OptionalExcept<T, K extends keyof T> = Pick<T, K> & Partial<Omit<T, K>>\n\n// Shim in case it's required in node.js environment\nvar WebComponent = typeof HTMLElement == 'undefined' ? (class {} as unknown as typeof HTMLElement) : HTMLElement\ninterface ReactPayload {\n React: typeof React\n ReactDOM: typeof ReactDOM\n}\n\nexport class FEAASBase<Props = any, Payload = any> extends WebComponent {\n static observedAttributes: string[]\n\n /** Return attributes as parsed values */\n getProps(context?: HTMLElement): any {\n return {}\n }\n\n /** Properties parsed in current tick */\n props: Props\n overrides: Props\n\n /** Timer until next tick */\n nextRender: number\n\n /** Is/was component in the dom? */\n connected = null as Event\n\n /** Result of lazy loading */\n payload: Payload\n\n refs: Record<string, FEAASBase> = {}\n descendants: FEAASBase[] = []\n\n /** Attaches shadow root if getShadowRootOptions any settings, or uses element itself */\n getRoot(): FEAASBase | HTMLElement | ShadowRoot {\n return this\n }\n\n /** Attribute changes trigger props parsing and schedules re-rendering */\n attributeChangedCallback(name: string, oldValue: string, newValue: string) {\n this.set()\n }\n\n /** Components parses its attributes when connected, and schedules rendeirng */\n connectedCallback() {\n console.log('FEAAS: Connected', this)\n this.connected = new Event('feaasConnected', { bubbles: true, composed: true })\n this.dispatchEvent(this.connected)\n this.addEventListener('feaasConnected', this)\n this.addEventListener('feaasDisconnected', this)\n this.set()\n }\n\n /** Nothing special happens on disconnect, except setting a flag */\n disconnectedCallback() {\n console.log('FEAAS: Disconnected', this)\n this.removeEventListener('feaasConnected', this)\n this.removeEventListener('feaasDisconnected', this)\n this.dispatchEvent(new Event('feaasDisconnected', { bubbles: true, composed: true }))\n this.connected = null\n }\n\n /** Catch-all event handler that dispatches events to callback */\n handleEvent(event: Event) {\n switch (event.type) {\n case 'feaasConnected':\n this.nestedCallback(event)\n break\n case 'feaasDisconnected':\n this.unnestedCallback(event)\n break\n }\n }\n\n /** Act on children element being removed */\n unnestedCallback(event: Event) {\n const target = event.composedPath()[0] as FEAASBase\n const index = this.descendants.indexOf(target)\n if (index == -1) return\n console.log('FEAAS: Unnest', this, target)\n this.descendants.splice(index, -1)\n this.refs[target.getComponentName()] = null\n if (target.refs.parent == this) target.refs.parent = null\n if (target.refs.top == this) {\n target.refs.top = target.refs.parent\n }\n }\n\n /** Act on children element being added */\n nestedCallback(event: Event): boolean | void {\n const target = event.composedPath()[0] as FEAASBase\n const index = this.descendants.indexOf(target)\n if (index != -1) return\n this.descendants.push(target)\n console.log('FEAAS: Nest', this, target)\n this.refs[target.getComponentName()] = target\n target.refs.top = this\n target.refs.parent ||= this\n if (target.renderReact) {\n for (var p: FEAASBase = target.refs.parent; p; p = p.refs.parent) {\n if (p.renderReact) {\n target.refs.parentReact ||= p\n target.refs.topReact = p\n }\n }\n }\n }\n\n getComponentName() {\n return this.tagName.replace('FEAAS-', '').toLowerCase()\n }\n\n /**\n * Check if lazy component is ready to be loaded. For example a component may stay unloaded unless certain attributes\n * are set\n */\n isReadyToLoad() {\n return this.payload === undefined && this.getAttribute('hidden') == null\n }\n\n /** Load lazy component & render */\n async reify() {\n if (this.payload !== undefined) {\n this.render()\n } else if (this.isReadyToLoad()) {\n this.payload = null\n this.load().then(this.onLoad)\n }\n }\n\n /** Invoke preloading logic that needs to finish before component can render */\n load() {\n return Promise.resolve(null)\n }\n\n /** Payload is inside onLoad callback. For web components that use react, it has to provide React & ReactDOM props */\n onLoad = (payload: Payload) => {\n if (payload == null) return\n\n this.payload = payload\n this.render()\n }\n\n /**\n * Component-specific logic that updates the DOM. Default render implementation assume react rendering, in that case\n * the component needs to provide React & ReactDOM references in its payload. Web component redefine its render to not\n * use react at all\n */\n render(nested = false): any {\n console.log('FEAAS: React', this.tagName, this.payload)\n if (this.payload == null) return\n const { React, ReactDOM } = (this.payload as ReactPayload) || {}\n if (!React) throw new Error(`${this.tagName}: React is not present in payload`)\n if (!ReactDOM) throw new Error(`${this.tagName}: ReactDOM is not present in payload`)\n\n if (!this.refs.topReact && !this.forceUpdateReact) {\n ReactDOM.render(React.createElement(this.getReactWrapper()), this.getReactRoot())\n } else if (this.forceUpdateReact) {\n this.forceUpdateReact?.()\n } else {\n this.refs.topReact.forceUpdateReact?.()\n }\n }\n\n invokeReactRendering(): ReactNode {\n const { React, ReactDOM } = (this.payload as ReactPayload) || {}\n const children = this.descendants\n .filter((r) => {\n return r.refs.parentReact == this && r.payload\n })\n .map((child: FEAASBase<any, any>, index) => {\n return React.createElement(this.getReactWrapper(child), {\n key: this.tagName + '-' + index,\n slot: child.getAttribute('slot')\n })\n })\n return this.renderReact({ ...this.props, children }, this.payload)\n }\n\n reactWrapper: (props?: any) => ReactNode\n getReactWrapper(target: FEAASBase = this, displayName = target.tagName) {\n const Wrapper = (target.reactWrapper ||= (props?: any) => {\n if (target.renderReact) {\n const { React, ReactDOM } = (target.payload as ReactPayload) || {}\n const [value, forceUpdateReact] = React.useReducer((r) => r + 1, 0)\n target.forceUpdateReact = forceUpdateReact\n return ReactDOM.createPortal(<>{target.invokeReactRendering()}</>, target.getReactRoot())\n } else {\n return target.render()\n }\n })\n Object.assign(Wrapper, {\n displayName: displayName\n })\n return Wrapper\n }\n\n uid: string\n getUID() {\n return (this.uid ||= String(Math.random()))\n }\n forceUpdateReact: (node?: ReactNode) => void\n\n /**\n * Render method that is pretty much the same as React Functional component, but with extra second argument for\n * payload (usually result of import, it is expected to have React in scope).\n */\n renderReact?(\n props: React.PropsWithChildren<typeof this.props>,\n payload: typeof this.payload\n ): ReactNode | ReactElement\n\n getReactRoot(): HTMLElement | ShadowRoot {\n return this.getRoot()\n }\n\n /** Set props and return values on new next tick */\n set(overrides?: Partial<Props>) {\n this.overrides = {\n ...this.overrides,\n ...overrides\n }\n this.props = {\n ...this.getProps(),\n ...this.overrides\n }\n for (var property in this.props) {\n const value = this.props[property as keyof typeof this.props]\n if (this.props[property] == null) {\n this.removeAttribute(property)\n } else if (typeof value == 'string' || typeof value == 'number') {\n if (this.getAttribute(property) != String(value)) this.setAttribute(property, String(value))\n }\n }\n this.scheduleRender()\n }\n\n /** Schedule rendering on next tick, to batch multiple attribute changes */\n scheduleRender() {\n cancelAnimationFrame(this.nextRender)\n this.nextRender = requestAnimationFrame(() => {\n this.reify()\n })\n }\n\n formatURL(src: string, hostname: string) {\n if (typeof src == 'string' && src.match(/^\\/[^\\/]/)) {\n return hostname + src\n } else {\n return src\n }\n }\n\n getContextAttribute(name: string, element = this) {\n return element.closest(`[${name}]`)?.getAttribute(name) ?? this.getAttribute(name)\n }\n\n static register(tagName: string) {\n if (typeof window != 'undefined' && !window.customElements.get(tagName)) {\n window.customElements.define(tagName, this)\n }\n }\n}\n\nexport { FEAASBase as Base }\n","import { fetchComponent } from '../cloud.js'\nimport { renderDOMContent, renderDOMElement } from '../dom.js'\nimport { FEAASBase, OptionalExcept } from './FEAASBase.js'\n\nexport function FEAASComponentsProps(element: FEAASBase = this) {\n let data: any\n const dataValue = element.getAttribute('data')\n if (dataValue != null) {\n try {\n data = typeof dataValue == 'string' ? JSON.parse(dataValue) : {}\n } catch (e) {}\n }\n return {\n data: data ?? {},\n library: element.getAttribute('library'),\n component: element.getAttribute('component'),\n version: element.getAttribute('version'),\n revision: element.getAttribute('revision'),\n hostname: element.getAttribute('hostname'),\n cdn: element.getContextAttribute('cdn'),\n template: element.getAttribute('template'),\n suspended: element.getAttribute('suspended') != null\n }\n}\nexport type FEAASComponentsProps = ReturnType<typeof FEAASComponentsProps>\nexport class FEAASComponent extends FEAASBase<FEAASComponentsProps, string> {\n static observedAttributes = ['library', 'component', 'version', 'revision', 'hostname', 'cdn', 'template', 'data']\n\n needsRefresh: boolean\n setData(data: any) {\n this.set({ data })\n }\n\n getProps() {\n return FEAASComponentsProps(this)\n }\n\n attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n this.payload = undefined\n this.needsRefresh = true\n super.attributeChangedCallback(name, oldValue, newValue)\n }\n\n /* Check if component is a repeated clone, and return the original */\n getOriginal() {\n const scope = this.getAttribute('data-path-scope')\n if (!scope) return\n for (var current = this as Element; (current = current.previousElementSibling); ) {\n if (current.getAttribute('data-path-scope') == scope) {\n var last = current\n } else {\n break\n }\n }\n return last as FEAASComponent\n }\n\n isReadyToLoad() {\n return (\n super.isReadyToLoad() && this.props.library != null && this.props.component != null && this.props.version != null\n )\n }\n\n async load() {\n // defer loading to original element\n if (this.getOriginal()) {\n return\n }\n try {\n fetchComponent(this.props, this.onLoad)\n } catch {\n console.error(\n `FEAAS: Could not fetch component: ${this.props.component}/${this.props.version}/${this.props.revision}`\n )\n }\n }\n\n render() {\n if (Array.from(this.children).filter((c) => c.tagName != 'BR').length > 0 && !this.needsRefresh) {\n renderDOMElement(this, this.props.data)\n } else {\n this.needsRefresh = true\n // defer rendering to original element\n if (this.getOriginal()) {\n return\n }\n renderDOMContent(this, this.payload, this.props.data)\n }\n }\n}\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'feaas-component': OptionalExcept<FEAASComponentsProps, 'component' | 'version' | 'revision'> & {\n children?: any\n }\n }\n }\n}\nFEAASComponent.register('feaas-component')\n\nexport { FEAASComponent as Component }\n","import { FEAASBase } from './FEAASBase.js'\n\nexport function FEAASLoaderProps(element: HTMLElement = this) {\n return {\n hidden: element?.getAttribute('hidden') != null\n }\n}\ntype FEAASLoaderProps = ReturnType<typeof FEAASLoaderProps>\n\nexport class FEAASLoader extends FEAASBase<FEAASLoaderProps, string> {\n stylesheet: HTMLStyleElement\n loader: HTMLDivElement\n\n static observedAttributes = ['hidden']\n\n attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n if (name == 'hidden') {\n this.style.setProperty('display', 'block', 'important')\n this.style.setProperty('transition', 'opacity 0.3s', 'important')\n if (newValue) {\n this.style.setProperty('opacity', '0', 'important')\n this.style.pointerEvents = 'none'\n } else {\n this.style.setProperty('opacity', '1', 'important')\n this.style.pointerEvents = 'all'\n }\n }\n }\n\n connectedCallback() {\n this.attributeChangedCallback('hidden', this.getAttribute('hidden'), this.getAttribute('hidden'))\n this.stylesheet = document.createElement('style')\n this.stylesheet.textContent = `\n #loader {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #f6f6ff;\n z-index: 1000;\n }\n @keyframes loader-circular-track {\n 0% {\n stroke-dasharray: 1, 400;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 400, 400;\n stroke-dashoffset: -100;\n }\n 100% {\n stroke-dasharray: 400, 400;\n stroke-dashoffset: -260;\n }\n }\n \n @keyframes loader-circular-spinner {\n 0% {\n transform: rotate(0deg);\n }\n \n 100% {\n transform: rotate(360deg);\n }\n }\n #loader .spinner {\n width: 48px;\n height: 48px;\n }\n `\n this.loader = document.createElement('div')\n this.loader.id = 'loader'\n this.loader.innerHTML = `\n <div class=\"spinner\">\n <svg\n viewBox=\"0 0 100 100\"\n style=\"\n animation: 2s linear 0s infinite normal none running loader-circular-spinner;\n display: block;\n width: 48px;\n height: 48px;\n \"\n >\n <circle fill=\"transparent\" cx=\"50\" cy=\"50\" r=\"42\" stroke=\"rgba(0,0,0,0.1)\" stroke-width=\"10px\"></circle>\n <circle\n fill=\"transparent\"\n stroke=\"#5548D9\"\n cx=\"50\"\n cy=\"50\"\n r=\"42\"\n stroke-width=\"10px\"\n stroke-linecap=\"round\"\n style=\"animation: 1.5s linear 0s infinite normal none running loader-circular-track\"\n ></circle>\n </svg>\n </div>`\n this.getRoot().appendChild(this.stylesheet)\n this.getRoot().appendChild(this.loader)\n }\n}\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'feaas-loader': any\n }\n }\n}\nFEAASLoader.register('feaas-loader')\n\nexport { FEAASLoader as Loader }\n","import { fetchStylesheet } from '../cloud.js'\nimport { FEAASBase } from './FEAASBase.js'\n\nexport function FEAASStylesheetProps(element: FEAASBase = this) {\n return {\n library: element?.getContextAttribute('library'),\n revision: (element?.getAttribute('revision') ?? 'published') as 'published' | 'staging' | 'saved' | number,\n cdn: element?.getContextAttribute('cdn') || element?.getContextAttribute('hostname')\n }\n}\nexport type FEAASStylesheetProps = ReturnType<typeof FEAASStylesheetProps>\n\nexport class FEAASStylesheet extends FEAASBase<FEAASStylesheetProps, string> {\n stylesheet: HTMLStyleElement\n getProps() {\n return FEAASStylesheetProps(this)\n }\n\n isReadyToLoad(): boolean {\n return this.props.library != null && this.props.revision != null && this.props.cdn != null\n }\n\n async load() {\n fetchStylesheet(this.props, this.onLoad)\n }\n\n render() {\n if (!this.stylesheet) {\n this.stylesheet = document.createElement('style')\n this.appendChild(this.stylesheet)\n }\n this.stylesheet.textContent = this.payload\n }\n}\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'feaas-stylesheet': Partial<FEAASStylesheetProps> & { children?: any }\n }\n }\n}\nFEAASStylesheet.register('feaas-stylesheet')\nexport { FEAASStylesheet as Stylesheet }\n","export * from './dom.js'\nexport * from './fetch.js'\nexport * from './components/FEAASBase.js'\nexport * from './components/FEAASComponent.js'\nexport * from './components/FEAASLoader.js'\nexport * from './components/FEAASStylesheet.js'\n\ndeclare global {\n interface Window {\n FEAASLoading: Promise<any>\n }\n}\n\nif (typeof window != 'undefined') window.FEAASLoading ??= Promise.resolve()\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/FEAASBase.tsx","../../src/components/FEAASElement.tsx","../../node_modules/jsonpath-plus/dist/index-browser-esm.js","../../src/fetch.ts","../../src/cloud.ts","../../src/dom.ts","../../src/components/FEAASComponent.tsx","../../src/components/FEAASLoader.tsx","../../src/components/FEAASStylesheet.tsx","../../src/basic.ts"],"names":[],"mappings":"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","file":"/Users/sitecore/Sites/feaas-components/clientside/dist/browser/basic.esm.js.map","sourcesContent":["import { JSXElementConstructor, ReactElement, ReactNode } from 'react'\nimport type ReactDOMClient from 'react-dom/client'\nimport type ReactDOM from 'react-dom'\nimport type React from 'react'\n\nexport type OptionalExcept<T, K extends keyof T> = Pick<T, K> & Partial<Omit<T, K>>\n\n// Shim in case it's required in node.js environment\nvar WebComponent = typeof HTMLElement == 'undefined' ? (class {} as unknown as typeof HTMLElement) : HTMLElement\ninterface ReactPayload {\n React: typeof React\n ReactDOM: typeof ReactDOM\n ReactDOMClient: typeof ReactDOMClient\n}\n\nexport class FEAASBase<Props = any, Payload = any> extends WebComponent {\n static observedAttributes: string[]\n\n /** Return attributes as parsed values */\n getProps(context?: HTMLElement): any {\n return {}\n }\n\n /** Properties parsed in current tick */\n props: Props\n overrides: Props\n\n /** Timer until next tick */\n nextRender: number\n\n /** Is/was component in the dom? */\n connected = false\n\n /** Result of lazy loading */\n payload: Payload\n\n refs: Record<string, FEAASBase> = {}\n descendants: FEAASBase[] = []\n\n constructor() {\n super()\n this.addEventListener('feaasConnected', this)\n this.addEventListener('feaasDisconnected', this)\n }\n\n /** Attaches shadow root if getShadowRootOptions any settings, or uses element itself */\n getRoot(): FEAASBase | HTMLElement | ShadowRoot {\n return this\n }\n\n /** Attribute changes trigger props parsing and schedules re-rendering */\n attributeChangedCallback(name: string, oldValue: string, newValue: string) {\n this.set()\n }\n\n /** Components parses its attributes when connected, and schedules rendeirng */\n connectedCallback() {\n this.initialize()\n }\n\n /**\n * Web components are initialized depth-first, making child elements render before its parents. This could here\n * attempts to avoid this and inverts the initialization logic, so that children are initialized in the context of its\n * already-initialized parents.\n *\n * FEAAS components dispatch `feaasConnected` event that allows components to store references to each other. In\n * addition it allows external scripts to listen for initialization of FEAAS components\n */\n initialize() {\n const parent = this.getParent() as FEAASBase\n // Allow parent component to initialize first\n if (parent && !parent.connected) return\n if (this.connected) return\n this.connected = true\n console.log('FEAAS: Connected', this.tagName, this)\n this.dispatchEvent(new Event('feaasConnected', { bubbles: true, composed: true }))\n this.getElements().map((element: FEAASBase) => element.initialize())\n this.set()\n return true\n }\n\n getParent(onlyFeaas = true) {\n for (\n var p: HTMLElement = this;\n (p = p.parentElement || ((p.parentNode instanceof ShadowRoot ? p.parentNode.host : null) as HTMLElement));\n\n ) {\n if (!onlyFeaas || p.tagName.startsWith('FEAAS-')) return p\n }\n }\n\n getElements(root: HTMLElement | ShadowRoot = this.getRoot(), onlyFeaas = true): HTMLElement[] {\n return Array.from(root.querySelectorAll('*'))\n .map(\n (el) =>\n [\n !onlyFeaas || el.tagName.startsWith('FEAAS-') ? el : null,\n el.shadowRoot ? this.getElements(el.shadowRoot, onlyFeaas) : null\n ] as HTMLElement[]\n )\n .flat()\n .filter(Boolean)\n }\n\n /** Nothing special happens on disconnect, except setting a flag */\n disconnectedCallback() {\n if (!this.connected) return\n console.log('FEAAS: Disconnected', this)\n this.dispatchEvent(new Event('feaasDisconnected', { bubbles: true, composed: true }))\n this.connected = null\n }\n\n /** Catch-all event handler that dispatches events to callback */\n handleEvent(event: Event) {\n const target = event.composedPath()[0] as FEAASBase\n switch (event.type) {\n case 'feaasConnected':\n if (target != this) this.nestedCallback(target)\n break\n case 'feaasDisconnected':\n if (target != this) this.unnestedCallback(target)\n break\n }\n }\n\n /** Act on children element being removed */\n unnestedCallback(target: FEAASBase) {\n const index = this.descendants.indexOf(target)\n if (index == -1) return\n console.log('FEAAS: Unnest', this, target)\n this.descendants.splice(index, -1)\n this.refs[target.getComponentName()] = null\n if (target.refs.parent == this) target.refs.parent = null\n if (target.refs.top == this) {\n target.refs.top = target.refs.parent\n }\n }\n\n /** Act on children element being added */\n nestedCallback(target: FEAASBase): boolean | void {\n const index = this.descendants.indexOf(target)\n if (index != -1) return\n this.descendants.push(target)\n console.log('FEAAS: Nest', this, target)\n this.refs[target.getComponentName()] = target\n target.refs.top = this\n target.refs.parent ||= this\n if (target.renderReact) {\n for (var p: FEAASBase = target.refs.parent; p; p = p.refs.parent) {\n if (p.renderReact) {\n target.refs.parentReact ||= p\n target.refs.topReact = p\n }\n }\n }\n }\n\n getComponentName() {\n return this.tagName.replace('FEAAS-', '').toLowerCase()\n }\n\n /**\n * Check if lazy component is ready to be loaded. For example a component may stay unloaded unless certain attributes\n * are set\n */\n isReadyToLoad() {\n return this.payload === undefined && this.getAttribute('hidden') == null\n }\n\n /** Load lazy component & render */\n async reify() {\n if (this.payload !== undefined) {\n this.render()\n } else if (this.isReadyToLoad()) {\n this.payload = null\n this.load().then(this.onLoad)\n }\n }\n\n /** Invoke preloading logic that needs to finish before component can render */\n load() {\n return Promise.resolve(null)\n }\n\n /** Payload is inside onLoad callback. For web components that use react, it has to provide React & ReactDOM props */\n onLoad = (payload: Payload) => {\n if (payload == null) return\n\n this.payload = payload\n this.render()\n }\n\n /**\n * Component-specific logic that updates the DOM. Default render implementation assume react rendering, in that case\n * the component needs to provide React & ReactDOM references in its payload. Web component redefine its render to not\n * use react at all\n */\n render(nested = false): any {\n console.log('FEAAS: React', this.tagName, this.payload)\n if (this.payload == null) return\n const { React, ReactDOM, ReactDOMClient } = (this.payload as ReactPayload) || {}\n if (!React) throw new Error(`${this.tagName}: React is not present in payload`)\n if (!ReactDOM) throw new Error(`${this.tagName}: ReactDOM is not present in payload`)\n if (!this.refs.topReact && !this.forceUpdateReact) {\n this.reactRoot ||= ReactDOMClient.createRoot(this.getReactRootElement())\n this.reactRoot.render(React.createElement(this.getReactWrapper(), { z: 'root' }))\n } else if (this.forceUpdateReact) {\n this.forceUpdateReact?.()\n } else {\n this.refs.topReact.forceUpdateReact?.()\n }\n }\n\n invokeReactRendering(): ReactNode {\n const { React, ReactDOM } = (this.payload as ReactPayload) || {}\n const children = this.descendants\n .filter((r) => {\n return r.refs.parentReact == this && r.payload\n })\n .map((child: FEAASBase<any, any>, index) => {\n return React.createElement(this.getReactWrapper(child), {\n key: this.tagName + '-' + index,\n slot: child.getAttribute('slot')\n })\n })\n return this.renderReact({ ...this.props, children }, this.payload)\n }\n\n reactWrapper: (props?: any) => ReactNode\n reactRoot: ReactDOMClient.Root\n getReactWrapper(target: FEAASBase = this, displayName = target.tagName) {\n const Wrapper = (target.reactWrapper ||= (props?: any) => {\n if (target.renderReact) {\n const { React, ReactDOM } = (target.payload as ReactPayload) || {}\n const [value, forceUpdateReact] = React.useReducer((r) => r + 1, 0)\n target.forceUpdateReact = forceUpdateReact\n return ReactDOM.createPortal(<>{target.invokeReactRendering()}</>, target.getReactRootElement())\n } else {\n return target.render()\n }\n })\n Object.assign(Wrapper, {\n displayName: displayName\n })\n return Wrapper\n }\n\n uid: string\n getUID() {\n return (this.uid ||= String(Math.random()))\n }\n forceUpdateReact: (node?: ReactNode) => void\n\n /**\n * Render method that is pretty much the same as React Functional component, but with extra second argument for\n * payload (usually result of import, it is expected to have React in scope).\n */\n renderReact?(\n props: React.PropsWithChildren<typeof this.props>,\n payload: typeof this.payload\n ): ReactNode | ReactElement\n\n getReactRootElement(): HTMLElement | ShadowRoot {\n return this.getRoot()\n }\n\n /** Set props and return values on new next tick */\n set(overrides?: Partial<Props>) {\n this.overrides = {\n ...this.overrides,\n ...overrides\n }\n this.props = {\n ...this.getProps(),\n ...this.overrides\n }\n for (var property in this.props) {\n const value = this.props[property as keyof typeof this.props]\n if (this.props[property] == null) {\n this.removeAttribute(property)\n } else if (typeof value == 'string' || typeof value == 'number') {\n if (this.getAttribute(property) != String(value)) this.setAttribute(property, String(value))\n }\n }\n this.scheduleRender()\n }\n\n /** Schedule rendering on next tick, to batch multiple attribute changes */\n scheduleRender() {\n cancelAnimationFrame(this.nextRender)\n this.nextRender = requestAnimationFrame(() => {\n this.reify()\n })\n }\n\n formatURL(src: string, hostname: string) {\n if (typeof src == 'string' && src.match(/^\\/[^\\/]/)) {\n return hostname + src\n } else {\n return src\n }\n }\n\n getContextAttribute(name: string, element = this) {\n for (\n var p: HTMLElement = this;\n (p = p.parentElement || ((p.parentNode instanceof ShadowRoot ? p.parentNode.host : null) as HTMLElement));\n\n ) {\n if (p.getAttribute(name) != null) return p.getAttribute(name)\n }\n return this.getAttribute(name)\n }\n\n static register(tagName: string) {\n if (typeof window != 'undefined' && !window.customElements.get(tagName)) {\n window.customElements.define(tagName, this)\n }\n }\n}\n\nexport { FEAASBase as Base }\n","import { ReactNode, ReactElement, JSXElementConstructor } from 'react'\nimport { FEAASBase } from './FEAASBase.js'\n\nexport default class FEAASElement<P> extends FEAASBase<\n P,\n {\n React: typeof React\n ReactDOM: typeof ReactDOM\n }\n> {\n load() {\n return Promise.all([\n // @ts-ignore\n import('https://cdn.skypack.dev/react'),\n // @ts-ignore\n import('https://cdn.skypack.dev/react-dom')\n ]).then(([React, ReactDOM]) => {\n return { React, ReactDOM }\n })\n }\n}\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = it.call(o);\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nvar hasOwnProp = Object.prototype.hasOwnProperty;\n/**\n * @typedef {null|boolean|number|string|PlainObject|GenericArray} JSONObject\n */\n\n/**\n * @typedef {any} AnyItem\n */\n\n/**\n * @typedef {any} AnyResult\n */\n\n/**\n * Copies array and then pushes item into it.\n * @param {GenericArray} arr Array to copy and into which to push\n * @param {AnyItem} item Array item to add (to end)\n * @returns {GenericArray} Copy of the original array\n */\n\nfunction push(arr, item) {\n arr = arr.slice();\n arr.push(item);\n return arr;\n}\n/**\n * Copies array and then unshifts item into it.\n * @param {AnyItem} item Array item to add (to beginning)\n * @param {GenericArray} arr Array to copy and into which to unshift\n * @returns {GenericArray} Copy of the original array\n */\n\n\nfunction unshift(item, arr) {\n arr = arr.slice();\n arr.unshift(item);\n return arr;\n}\n/**\n * Caught when JSONPath is used without `new` but rethrown if with `new`\n * @extends Error\n */\n\n\nvar NewError = /*#__PURE__*/function (_Error) {\n _inherits(NewError, _Error);\n\n var _super = _createSuper(NewError);\n\n /**\n * @param {AnyResult} value The evaluated scalar value\n */\n function NewError(value) {\n var _this;\n\n _classCallCheck(this, NewError);\n\n _this = _super.call(this, 'JSONPath should not be called with \"new\" (it prevents return ' + 'of (unwrapped) scalar values)');\n _this.avoidNew = true;\n _this.value = value;\n _this.name = 'NewError';\n return _this;\n }\n\n return _createClass(NewError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/**\n* @typedef {PlainObject} ReturnObject\n* @property {string} path\n* @property {JSONObject} value\n* @property {PlainObject|GenericArray} parent\n* @property {string} parentProperty\n*/\n\n/**\n* @callback JSONPathCallback\n* @param {string|PlainObject} preferredOutput\n* @param {\"value\"|\"property\"} type\n* @param {ReturnObject} fullRetObj\n* @returns {void}\n*/\n\n/**\n* @callback OtherTypeCallback\n* @param {JSONObject} val\n* @param {string} path\n* @param {PlainObject|GenericArray} parent\n* @param {string} parentPropName\n* @returns {boolean}\n*/\n\n/* eslint-disable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */\n\n/**\n * @typedef {PlainObject} JSONPathOptions\n * @property {JSON} json\n * @property {string|string[]} path\n * @property {\"value\"|\"path\"|\"pointer\"|\"parent\"|\"parentProperty\"|\"all\"} [resultType=\"value\"]\n * @property {boolean} [flatten=false]\n * @property {boolean} [wrap=true]\n * @property {PlainObject} [sandbox={}]\n * @property {boolean} [preventEval=false]\n * @property {PlainObject|GenericArray|null} [parent=null]\n * @property {string|null} [parentProperty=null]\n * @property {JSONPathCallback} [callback]\n * @property {OtherTypeCallback} [otherTypeCallback] Defaults to\n * function which throws on encountering `@other`\n * @property {boolean} [autostart=true]\n */\n\n/* eslint-enable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */\n\n/**\n * @param {string|JSONPathOptions} opts If a string, will be treated as `expr`\n * @param {string} [expr] JSON path to evaluate\n * @param {JSON} [obj] JSON object to evaluate against\n * @param {JSONPathCallback} [callback] Passed 3 arguments: 1) desired payload\n * per `resultType`, 2) `\"value\"|\"property\"`, 3) Full returned object with\n * all payloads\n * @param {OtherTypeCallback} [otherTypeCallback] If `@other()` is at the end\n * of one's query, this will be invoked with the value of the item, its\n * path, its parent, and its parent's property name, and it should return\n * a boolean indicating whether the supplied value belongs to the \"other\"\n * type or not (or it may handle transformations and return `false`).\n * @returns {JSONPath}\n * @class\n */\n\n\nfunction JSONPath(opts, expr, obj, callback, otherTypeCallback) {\n // eslint-disable-next-line no-restricted-syntax\n if (!(this instanceof JSONPath)) {\n try {\n return new JSONPath(opts, expr, obj, callback, otherTypeCallback);\n } catch (e) {\n if (!e.avoidNew) {\n throw e;\n }\n\n return e.value;\n }\n }\n\n if (typeof opts === 'string') {\n otherTypeCallback = callback;\n callback = obj;\n obj = expr;\n expr = opts;\n opts = null;\n }\n\n var optObj = opts && _typeof(opts) === 'object';\n opts = opts || {};\n this.json = opts.json || obj;\n this.path = opts.path || expr;\n this.resultType = opts.resultType || 'value';\n this.flatten = opts.flatten || false;\n this.wrap = hasOwnProp.call(opts, 'wrap') ? opts.wrap : true;\n this.sandbox = opts.sandbox || {};\n this.preventEval = opts.preventEval || false;\n this.parent = opts.parent || null;\n this.parentProperty = opts.parentProperty || null;\n this.callback = opts.callback || callback || null;\n\n this.otherTypeCallback = opts.otherTypeCallback || otherTypeCallback || function () {\n throw new TypeError('You must supply an otherTypeCallback callback option ' + 'with the @other() operator.');\n };\n\n if (opts.autostart !== false) {\n var args = {\n path: optObj ? opts.path : expr\n };\n\n if (!optObj) {\n args.json = obj;\n } else if ('json' in opts) {\n args.json = opts.json;\n }\n\n var ret = this.evaluate(args);\n\n if (!ret || _typeof(ret) !== 'object') {\n throw new NewError(ret);\n }\n\n return ret;\n }\n} // PUBLIC METHODS\n\n\nJSONPath.prototype.evaluate = function (expr, json, callback, otherTypeCallback) {\n var _this2 = this;\n\n var currParent = this.parent,\n currParentProperty = this.parentProperty;\n var flatten = this.flatten,\n wrap = this.wrap;\n this.currResultType = this.resultType;\n this.currPreventEval = this.preventEval;\n this.currSandbox = this.sandbox;\n callback = callback || this.callback;\n this.currOtherTypeCallback = otherTypeCallback || this.otherTypeCallback;\n json = json || this.json;\n expr = expr || this.path;\n\n if (expr && _typeof(expr) === 'object' && !Array.isArray(expr)) {\n if (!expr.path && expr.path !== '') {\n throw new TypeError('You must supply a \"path\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n\n if (!hasOwnProp.call(expr, 'json')) {\n throw new TypeError('You must supply a \"json\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n\n var _expr = expr;\n json = _expr.json;\n flatten = hasOwnProp.call(expr, 'flatten') ? expr.flatten : flatten;\n this.currResultType = hasOwnProp.call(expr, 'resultType') ? expr.resultType : this.currResultType;\n this.currSandbox = hasOwnProp.call(expr, 'sandbox') ? expr.sandbox : this.currSandbox;\n wrap = hasOwnProp.call(expr, 'wrap') ? expr.wrap : wrap;\n this.currPreventEval = hasOwnProp.call(expr, 'preventEval') ? expr.preventEval : this.currPreventEval;\n callback = hasOwnProp.call(expr, 'callback') ? expr.callback : callback;\n this.currOtherTypeCallback = hasOwnProp.call(expr, 'otherTypeCallback') ? expr.otherTypeCallback : this.currOtherTypeCallback;\n currParent = hasOwnProp.call(expr, 'parent') ? expr.parent : currParent;\n currParentProperty = hasOwnProp.call(expr, 'parentProperty') ? expr.parentProperty : currParentProperty;\n expr = expr.path;\n }\n\n currParent = currParent || null;\n currParentProperty = currParentProperty || null;\n\n if (Array.isArray(expr)) {\n expr = JSONPath.toPathString(expr);\n }\n\n if (!expr && expr !== '' || !json) {\n return undefined;\n }\n\n var exprList = JSONPath.toPathArray(expr);\n\n if (exprList[0] === '$' && exprList.length > 1) {\n exprList.shift();\n }\n\n this._hasParentSelector = null;\n\n var result = this._trace(exprList, json, ['$'], currParent, currParentProperty, callback).filter(function (ea) {\n return ea && !ea.isParentSelector;\n });\n\n if (!result.length) {\n return wrap ? [] : undefined;\n }\n\n if (!wrap && result.length === 1 && !result[0].hasArrExpr) {\n return this._getPreferredOutput(result[0]);\n }\n\n return result.reduce(function (rslt, ea) {\n var valOrPath = _this2._getPreferredOutput(ea);\n\n if (flatten && Array.isArray(valOrPath)) {\n rslt = rslt.concat(valOrPath);\n } else {\n rslt.push(valOrPath);\n }\n\n return rslt;\n }, []);\n}; // PRIVATE METHODS\n\n\nJSONPath.prototype._getPreferredOutput = function (ea) {\n var resultType = this.currResultType;\n\n switch (resultType) {\n case 'all':\n {\n var path = Array.isArray(ea.path) ? ea.path : JSONPath.toPathArray(ea.path);\n ea.pointer = JSONPath.toPointer(path);\n ea.path = typeof ea.path === 'string' ? ea.path : JSONPath.toPathString(ea.path);\n return ea;\n }\n\n case 'value':\n case 'parent':\n case 'parentProperty':\n return ea[resultType];\n\n case 'path':\n return JSONPath.toPathString(ea[resultType]);\n\n case 'pointer':\n return JSONPath.toPointer(ea.path);\n\n default:\n throw new TypeError('Unknown result type');\n }\n};\n\nJSONPath.prototype._handleCallback = function (fullRetObj, callback, type) {\n if (callback) {\n var preferredOutput = this._getPreferredOutput(fullRetObj);\n\n fullRetObj.path = typeof fullRetObj.path === 'string' ? fullRetObj.path : JSONPath.toPathString(fullRetObj.path); // eslint-disable-next-line n/callback-return\n\n callback(preferredOutput, type, fullRetObj);\n }\n};\n/**\n *\n * @param {string} expr\n * @param {JSONObject} val\n * @param {string} path\n * @param {PlainObject|GenericArray} parent\n * @param {string} parentPropName\n * @param {JSONPathCallback} callback\n * @param {boolean} hasArrExpr\n * @param {boolean} literalPriority\n * @returns {ReturnObject|ReturnObject[]}\n */\n\n\nJSONPath.prototype._trace = function (expr, val, path, parent, parentPropName, callback, hasArrExpr, literalPriority) {\n var _this3 = this;\n\n // No expr to follow? return path and value as the result of\n // this trace branch\n var retObj;\n\n if (!expr.length) {\n retObj = {\n path: path,\n value: val,\n parent: parent,\n parentProperty: parentPropName,\n hasArrExpr: hasArrExpr\n };\n\n this._handleCallback(retObj, callback, 'value');\n\n return retObj;\n }\n\n var loc = expr[0],\n x = expr.slice(1); // We need to gather the return value of recursive trace calls in order to\n // do the parent sel computation.\n\n var ret = [];\n /**\n *\n * @param {ReturnObject|ReturnObject[]} elems\n * @returns {void}\n */\n\n function addRet(elems) {\n if (Array.isArray(elems)) {\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test:\n // `ret.push(...elems);`\n elems.forEach(function (t) {\n ret.push(t);\n });\n } else {\n ret.push(elems);\n }\n }\n\n if ((typeof loc !== 'string' || literalPriority) && val && hasOwnProp.call(val, loc)) {\n // simple case--directly follow property\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr)); // eslint-disable-next-line unicorn/prefer-switch -- Part of larger `if`\n } else if (loc === '*') {\n // all child properties\n this._walk(val, function (m) {\n addRet(_this3._trace(x, val[m], push(path, m), val, m, callback, true, true));\n });\n } else if (loc === '..') {\n // all descendent parent properties\n // Check remaining expression with val's immediate children\n addRet(this._trace(x, val, path, parent, parentPropName, callback, hasArrExpr));\n\n this._walk(val, function (m) {\n // We don't join m and x here because we only want parents,\n // not scalar values\n if (_typeof(val[m]) === 'object') {\n // Keep going with recursive descent on val's\n // object children\n addRet(_this3._trace(expr.slice(), val[m], push(path, m), val, m, callback, true));\n }\n }); // The parent sel computation is handled in the frame above using the\n // ancestor object of val\n\n } else if (loc === '^') {\n // This is not a final endpoint, so we do not invoke the callback here\n this._hasParentSelector = true;\n return {\n path: path.slice(0, -1),\n expr: x,\n isParentSelector: true\n };\n } else if (loc === '~') {\n // property name\n retObj = {\n path: push(path, loc),\n value: parentPropName,\n parent: parent,\n parentProperty: null\n };\n\n this._handleCallback(retObj, callback, 'property');\n\n return retObj;\n } else if (loc === '$') {\n // root only\n addRet(this._trace(x, val, path, null, null, callback, hasArrExpr));\n } else if (/^(\\x2D?[0-9]*):(\\x2D?[0-9]*):?([0-9]*)$/.test(loc)) {\n // [start:end:step] Python slice syntax\n addRet(this._slice(loc, x, val, path, parent, parentPropName, callback));\n } else if (loc.indexOf('?(') === 0) {\n // [?(expr)] (filtering)\n if (this.currPreventEval) {\n throw new Error('Eval [?(expr)] prevented in JSONPath expression.');\n }\n\n var safeLoc = loc.replace(/^\\?\\(((?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?)\\)$/, '$1');\n\n this._walk(val, function (m) {\n if (_this3._eval(safeLoc, val[m], m, path, parent, parentPropName)) {\n addRet(_this3._trace(x, val[m], push(path, m), val, m, callback, true));\n }\n });\n } else if (loc[0] === '(') {\n // [(expr)] (dynamic property/index)\n if (this.currPreventEval) {\n throw new Error('Eval [(expr)] prevented in JSONPath expression.');\n } // As this will resolve to a property name (but we don't know it\n // yet), property and parent information is relative to the\n // parent of the property to which this expression will resolve\n\n\n addRet(this._trace(unshift(this._eval(loc, val, path[path.length - 1], path.slice(0, -1), parent, parentPropName), x), val, path, parent, parentPropName, callback, hasArrExpr));\n } else if (loc[0] === '@') {\n // value type: @boolean(), etc.\n var addType = false;\n var valueType = loc.slice(1, -2);\n\n switch (valueType) {\n case 'scalar':\n if (!val || !['object', 'function'].includes(_typeof(val))) {\n addType = true;\n }\n\n break;\n\n case 'boolean':\n case 'string':\n case 'undefined':\n case 'function':\n // eslint-disable-next-line valid-typeof\n if (_typeof(val) === valueType) {\n addType = true;\n }\n\n break;\n\n case 'integer':\n if (Number.isFinite(val) && !(val % 1)) {\n addType = true;\n }\n\n break;\n\n case 'number':\n if (Number.isFinite(val)) {\n addType = true;\n }\n\n break;\n\n case 'nonFinite':\n if (typeof val === 'number' && !Number.isFinite(val)) {\n addType = true;\n }\n\n break;\n\n case 'object':\n // eslint-disable-next-line valid-typeof\n if (val && _typeof(val) === valueType) {\n addType = true;\n }\n\n break;\n\n case 'array':\n if (Array.isArray(val)) {\n addType = true;\n }\n\n break;\n\n case 'other':\n addType = this.currOtherTypeCallback(val, path, parent, parentPropName);\n break;\n\n case 'null':\n if (val === null) {\n addType = true;\n }\n\n break;\n\n /* c8 ignore next 2 */\n\n default:\n throw new TypeError('Unknown value type ' + valueType);\n }\n\n if (addType) {\n retObj = {\n path: path,\n value: val,\n parent: parent,\n parentProperty: parentPropName\n };\n\n this._handleCallback(retObj, callback, 'value');\n\n return retObj;\n } // `-escaped property\n\n } else if (loc[0] === '`' && val && hasOwnProp.call(val, loc.slice(1))) {\n var locProp = loc.slice(1);\n addRet(this._trace(x, val[locProp], push(path, locProp), val, locProp, callback, hasArrExpr, true));\n } else if (loc.includes(',')) {\n // [name1,name2,...]\n var parts = loc.split(',');\n\n var _iterator = _createForOfIteratorHelper(parts),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var part = _step.value;\n addRet(this._trace(unshift(part, x), val, path, parent, parentPropName, callback, true));\n } // simple case--directly follow property\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else if (!literalPriority && val && hasOwnProp.call(val, loc)) {\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr, true));\n } // We check the resulting values for parent selections. For parent\n // selections we discard the value object and continue the trace with the\n // current val object\n\n\n if (this._hasParentSelector) {\n for (var t = 0; t < ret.length; t++) {\n var rett = ret[t];\n\n if (rett && rett.isParentSelector) {\n var tmp = this._trace(rett.expr, val, rett.path, parent, parentPropName, callback, hasArrExpr);\n\n if (Array.isArray(tmp)) {\n ret[t] = tmp[0];\n var tl = tmp.length;\n\n for (var tt = 1; tt < tl; tt++) {\n t++;\n ret.splice(t, 0, tmp[tt]);\n }\n } else {\n ret[t] = tmp;\n }\n }\n }\n }\n\n return ret;\n};\n\nJSONPath.prototype._walk = function (val, f) {\n if (Array.isArray(val)) {\n var n = val.length;\n\n for (var i = 0; i < n; i++) {\n f(i);\n }\n } else if (val && _typeof(val) === 'object') {\n Object.keys(val).forEach(function (m) {\n f(m);\n });\n }\n};\n\nJSONPath.prototype._slice = function (loc, expr, val, path, parent, parentPropName, callback) {\n if (!Array.isArray(val)) {\n return undefined;\n }\n\n var len = val.length,\n parts = loc.split(':'),\n step = parts[2] && Number.parseInt(parts[2]) || 1;\n var start = parts[0] && Number.parseInt(parts[0]) || 0,\n end = parts[1] && Number.parseInt(parts[1]) || len;\n start = start < 0 ? Math.max(0, start + len) : Math.min(len, start);\n end = end < 0 ? Math.max(0, end + len) : Math.min(len, end);\n var ret = [];\n\n for (var i = start; i < end; i += step) {\n var tmp = this._trace(unshift(i, expr), val, path, parent, parentPropName, callback, true); // Should only be possible to be an array here since first part of\n // ``unshift(i, expr)` passed in above would not be empty, nor `~`,\n // nor begin with `@` (as could return objects)\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test: `ret.push(...tmp);`\n\n\n tmp.forEach(function (t) {\n ret.push(t);\n });\n }\n\n return ret;\n};\n\nJSONPath.prototype._eval = function (code, _v, _vname, path, parent, parentPropName) {\n this.currSandbox._$_parentProperty = parentPropName;\n this.currSandbox._$_parent = parent;\n this.currSandbox._$_property = _vname;\n this.currSandbox._$_root = this.json;\n this.currSandbox._$_v = _v;\n var containsPath = code.includes('@path');\n\n if (containsPath) {\n this.currSandbox._$_path = JSONPath.toPathString(path.concat([_vname]));\n }\n\n var scriptCacheKey = 'script:' + code;\n\n if (!JSONPath.cache[scriptCacheKey]) {\n var script = code.replace(/@parentProperty/g, '_$_parentProperty').replace(/@parent/g, '_$_parent').replace(/@property/g, '_$_property').replace(/@root/g, '_$_root').replace(/@([\\t-\\r \\)\\.\\[\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF])/g, '_$_v$1');\n\n if (containsPath) {\n script = script.replace(/@path/g, '_$_path');\n }\n\n JSONPath.cache[scriptCacheKey] = new this.vm.Script(script);\n }\n\n try {\n return JSONPath.cache[scriptCacheKey].runInNewContext(this.currSandbox);\n } catch (e) {\n throw new Error('jsonPath: ' + e.message + ': ' + code);\n }\n}; // PUBLIC CLASS PROPERTIES AND METHODS\n// Could store the cache object itself\n\n\nJSONPath.cache = {};\n/**\n * @param {string[]} pathArr Array to convert\n * @returns {string} The path string\n */\n\nJSONPath.toPathString = function (pathArr) {\n var x = pathArr,\n n = x.length;\n var p = '$';\n\n for (var i = 1; i < n; i++) {\n if (!/^(~|\\^|@(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\(\\))$/.test(x[i])) {\n p += /^[\\*0-9]+$/.test(x[i]) ? '[' + x[i] + ']' : \"['\" + x[i] + \"']\";\n }\n }\n\n return p;\n};\n/**\n * @param {string} pointer JSON Path\n * @returns {string} JSON Pointer\n */\n\n\nJSONPath.toPointer = function (pointer) {\n var x = pointer,\n n = x.length;\n var p = '';\n\n for (var i = 1; i < n; i++) {\n if (!/^(~|\\^|@(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\(\\))$/.test(x[i])) {\n p += '/' + x[i].toString().replace(/~/g, '~0').replace(/\\//g, '~1');\n }\n }\n\n return p;\n};\n/**\n * @param {string} expr Expression to convert\n * @returns {string[]}\n */\n\n\nJSONPath.toPathArray = function (expr) {\n var cache = JSONPath.cache;\n\n if (cache[expr]) {\n return cache[expr].concat();\n }\n\n var subx = [];\n var normalized = expr // Properties\n .replace(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\\(\\)/g, ';$&;') // Parenthetical evaluations (filtering and otherwise), directly\n // within brackets or single quotes\n .replace(/['\\[](\\??\\((?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\))['\\]]/g, function ($0, $1) {\n return '[#' + (subx.push($1) - 1) + ']';\n }) // Escape periods and tildes within properties\n .replace(/\\[[\"']((?:(?!['\\]])[\\s\\S])*)[\"']\\]/g, function ($0, prop) {\n return \"['\" + prop.replace(/\\./g, '%@%').replace(/~/g, '%%@@%%') + \"']\";\n }) // Properties operator\n .replace(/~/g, ';~;') // Split by property boundaries\n .replace(/[\"']?\\.[\"']?(?!(?:(?!\\[)[\\s\\S])*\\])|\\[[\"']?/g, ';') // Reinsert periods within properties\n .replace(/%@%/g, '.') // Reinsert tildes within properties\n .replace(/%%@@%%/g, '~') // Parent\n .replace(/(?:;)?(\\^+)(?:;)?/g, function ($0, ups) {\n return ';' + ups.split('').join(';') + ';';\n }) // Descendents\n .replace(/;;;|;;/g, ';..;') // Remove trailing\n .replace(/;$|'?\\]|'$/g, '');\n var exprList = normalized.split(';').map(function (exp) {\n var match = exp.match(/#([0-9]+)/);\n return !match || !match[1] ? exp : subx[match[1]];\n });\n cache[expr] = exprList;\n return cache[expr].concat();\n};\n\n/**\n * @typedef {any} ContextItem\n */\n\n/**\n * @typedef {any} EvaluatedResult\n */\n\n/**\n * @callback ConditionCallback\n * @param {ContextItem} item\n * @returns {boolean}\n */\n\n/**\n * Copy items out of one array into another.\n * @param {GenericArray} source Array with items to copy\n * @param {GenericArray} target Array to which to copy\n * @param {ConditionCallback} conditionCb Callback passed the current item;\n * will move item if evaluates to `true`\n * @returns {void}\n */\n\nvar moveToAnotherArray = function moveToAnotherArray(source, target, conditionCb) {\n var il = source.length;\n\n for (var i = 0; i < il; i++) {\n var item = source[i];\n\n if (conditionCb(item)) {\n target.push(source.splice(i--, 1)[0]);\n }\n }\n};\n/**\n * In-browser replacement for NodeJS' VM.Script.\n */\n\n\nvar Script = /*#__PURE__*/function () {\n /**\n * @param {string} expr Expression to evaluate\n */\n function Script(expr) {\n _classCallCheck(this, Script);\n\n this.code = expr;\n }\n /**\n * @param {PlainObject} context Object whose items will be added\n * to evaluation\n * @returns {EvaluatedResult} Result of evaluated code\n */\n\n\n _createClass(Script, [{\n key: \"runInNewContext\",\n value: function runInNewContext(context) {\n var expr = this.code;\n var keys = Object.keys(context);\n var funcs = [];\n moveToAnotherArray(keys, funcs, function (key) {\n return typeof context[key] === 'function';\n });\n var values = keys.map(function (vr, i) {\n return context[vr];\n });\n var funcString = funcs.reduce(function (s, func) {\n var fString = context[func].toString();\n\n if (!/function/.test(fString)) {\n fString = 'function ' + fString;\n }\n\n return 'var ' + func + '=' + fString + ';' + s;\n }, '');\n expr = funcString + expr; // Mitigate http://perfectionkills.com/global-eval-what-are-the-options/#new_function\n\n if (!/([\"'])use strict\\1/.test(expr) && !keys.includes('arguments')) {\n expr = 'var arguments = undefined;' + expr;\n } // Remove last semi so `return` will be inserted before\n // the previous one instead, allowing for the return\n // of a bare ending expression\n\n\n expr = expr.replace(/;[\\t-\\r \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]*$/, ''); // Insert `return`\n\n var lastStatementEnd = expr.lastIndexOf(';');\n var code = lastStatementEnd > -1 ? expr.slice(0, lastStatementEnd + 1) + ' return ' + expr.slice(lastStatementEnd + 1) : ' return ' + expr; // eslint-disable-next-line no-new-func\n\n return _construct(Function, keys.concat([code])).apply(void 0, _toConsumableArray(values));\n }\n }]);\n\n return Script;\n}();\n\nJSONPath.prototype.vm = {\n Script: Script\n};\n\nexport { JSONPath };\n","/**\n * Utility to cache-bust static files. It relies on reading Date header to detect cached response, so it requires CORS\n * settings to be set.\n *\n * It accepts validator function that determines if response is usable. If response was pulled from cache and is valid,\n * the optional callback function is fired right away. Then HEAD request is made bypassing the cache, to see if the\n * response has an newer Last-Modified header. In case it does and it passes validation, third request is fired that\n * actually fetches the new content and callback is invoked the second time.\n *\n * It works as promise, but also accepts callback to use cached blobs mid-flight and have access to headers. Any network\n * errors will not be caught. Function throws when unable to fetch valid response.\n */\nexport interface ValidatableRequest {\n url: Parameters<typeof fetch>[0]\n options?: Parameters<typeof fetch>[1]\n validator?: (resposne: Response) => boolean\n callback?: (response: Response, status: 'initial' | 'updated' | 'check') => void\n isCached?: boolean\n response?: Response\n}\n\nexport async function fetchAndRevalidate(\n url: ValidatableRequest['url'],\n options?: ValidatableRequest['options'],\n validator?: ValidatableRequest['validator'],\n callback?: ValidatableRequest['callback']\n) {\n // make request as usual, see if there's cached version of an asset\n return fetchAndValidate({ url, options, validator, callback })\n .then(refetchAndValidate)\n .then((result) => result.response)\n}\n\nexport async function fetchAndValidate(\n { url, options, validator, callback }: ValidatableRequest,\n phase: 'initial' | 'updated' | 'check' = 'initial'\n) {\n const date = new Date()\n console.log('fetch', phase, url)\n const response = await fetch(url, options)\n if (!response.ok) throw new Error('Fetch failed')\n if (validator?.(response) === false) throw new Error('Response is not valid')\n // see if response was pulled from cache\n const isCached = new Date(response.headers.get('date')) < date\n callback?.(response, phase)\n return {\n url,\n options,\n isCached,\n response,\n validator\n }\n}\n\nexport async function refetchAndValidate(request: ValidatableRequest & Required<Pick<ValidatableRequest, 'response'>>) {\n const { url, isCached, options, validator, response, callback } = request\n if (isCached) {\n // check if response was stale by sending quick HEAD request busting cache\n const { response: head } = await fetchAndValidate(\n {\n url: url + '?' + Math.random(),\n options: {\n ...options,\n method: 'HEAD',\n cache: 'no-cache'\n },\n validator\n },\n 'check'\n )\n\n // there's a newer version of the file that we may fetch\n if (head.headers.get('last-modified') != response.headers.get('last-modified')) {\n // otherwise the new resource has to be re-fetched\n return invalidateRequest(request)\n }\n }\n return request\n}\n\nexport async function invalidateRequest(request: ValidatableRequest) {\n const { url, options, validator, callback } = request\n return fetchAndValidate(\n {\n url,\n options: {\n ...options,\n cache: 'reload'\n },\n validator,\n callback\n },\n 'updated'\n )\n}\n","import { fetchAndRevalidate, fetchAndValidate, invalidateRequest, refetchAndValidate } from './fetch.js'\n\nexport interface CloudTemplate {\n cdn?: string\n hostname?: string\n library: string\n component: string\n version: string\n revision?: string\n instance?: string\n}\nexport interface CloudStylesheet {\n cdn?: string\n hostname?: string\n library: string\n revision?: 'staging' | 'published' | 'saved' | number\n}\n\nexport function getComponentURL({\n cdn = 'https://feaascomponentsapidev.blob.core.windows.net',\n hostname,\n library,\n component,\n version,\n revision = 'published'\n}: CloudTemplate) {\n return `${cdn || hostname}/components/${library}/${component}/${version}/${revision}.html`\n}\n\nexport function getStylesheetURL({\n cdn = `https://feaascomponentsapidev.blob.core.windows.net`,\n hostname,\n library,\n revision = 'published'\n}: CloudStylesheet) {\n return `${cdn || hostname}/styles/${library}/${revision}.css`\n}\n\nexport async function fetchComponent(props: CloudTemplate, callback: (html: string) => void) {\n const onlyIfNotDeleted = (response: Response) => {\n return response.headers.get('x-ms-meta-versionDeletedAt') == null\n }\n const parseResponse = (response: Response) => {\n response.text().then(callback)\n }\n\n // Fetch two requests in parallel: One optimistically checking if component was forked,\n // and another checking original definition of a component\n const results = await Promise.all([\n props.instance &&\n fetchAndValidate({\n options: {\n headers: {\n Accept: 'text/html'\n }\n },\n url: getComponentURL({ ...props, version: props.instance }),\n validator: onlyIfNotDeleted\n }).catch((e) => e as Error),\n fetchAndValidate({ url: getComponentURL(props), validator: onlyIfNotDeleted }).catch((e) => e as Error)\n ])\n const result = results.find((result) => result && 'isCached' in result && result)\n if (!result || result instanceof Error) {\n const error = results.find((result) => result && result instanceof Error)\n throw error || new Error('Can not fetch component')\n }\n if (results[0] == result) {\n console.log('Using fork!', results)\n }\n parseResponse(result.response)\n return refetchAndValidate({ ...result, callback: parseResponse }).catch((e) => {\n if (results[0] == result) {\n invalidateRequest({ ...result, callback: null, validator: null })\n console.log('Fork was deleted')\n // forked version was cached, but it's now deleted\n if (!(results[1] instanceof Error)) {\n parseResponse(results[1].response)\n return refetchAndValidate({ ...results[1], callback: parseResponse })\n }\n }\n throw e\n })\n}\n\nexport async function fetchStylesheet(props: CloudStylesheet, callback: (css: string) => void) {\n return fetchAndRevalidate(\n getStylesheetURL(props),\n {\n headers: {\n Accept: 'text/css'\n }\n },\n (response) => {\n return response.headers.get('x-ms-meta-deletedAt') == null\n },\n (response) => {\n response.text().then(callback)\n }\n )\n}\n","import { JSONPath } from 'jsonpath-plus'\nimport { CloudStylesheet, CloudTemplate, fetchComponent, fetchStylesheet } from './cloud.js'\n\nexport interface FEAASCustomizations {\n processTemplate?: (element: HTMLElement, template: string, data: any) => string\n processData?: (element: HTMLElement, data: any) => any\n processValue?: (element: HTMLElement, property: string, value: any) => any\n shouldRepeat?: (element: HTMLElement, value: any) => boolean\n onRender?: (element: HTMLElement, data: any) => void\n}\n\nexport interface ExplicitTemplate {\n template: string\n}\n\nexport type Datascopes = Record<string, any>\n\nexport type FEAASComponentProps = {\n data?: Datascopes\n} & (ExplicitTemplate | CloudTemplate) &\n FEAASCustomizations\n\nexport function renderComponentElement(content: string, datasources?: Datascopes) {\n const wrapper = document.createElement('div')\n wrapper.innerHTML = content\n const fragment = document.createDocumentFragment()\n while (wrapper.firstChild) {\n fragment.appendChild(wrapper.firstChild)\n }\n renderDOMElement(fragment, datasources)\n return wrapper\n}\n\nexport function cleanCollectionBit(path: string) {\n return path.replace(/(\\[[^\\]\\[]+\\]|\\.\\*)$/g, '')\n}\n\nexport function normalizeCollectionScope(path: string) {\n return cleanCollectionBit(path) + '.*'\n}\n\nfunction getDOMCollectionIndex(element: HTMLElement) {\n const datascope = element.getAttribute('data-path-scope')\n var index = 0\n for (var p = element; (p = <HTMLElement>p.previousElementSibling); ) {\n if (p.getAttribute('data-path-scope') == datascope) {\n index++\n }\n }\n return index\n}\n\nfunction updateDOMClones(element: HTMLElement, targetCount: number, config?: FEAASCustomizations) {\n const datascope = element.getAttribute('data-path-scope')\n if (datascope == null) {\n return\n }\n var index = getDOMCollectionIndex(element)\n if (index != 0) {\n return\n }\n\n const parentElement = element.parentElement\n if (parentElement == null) {\n return\n }\n\n /*dont remove first element, just hide it*/\n if (targetCount == 0) {\n element.setAttribute('hidden', 'hidden')\n } else if (element.getAttribute('hidden') != null) {\n element.removeAttribute('hidden')\n }\n\n var count = index + 1\n var last = element\n for (var n = element; (n = <HTMLElement>n.nextElementSibling); ) {\n if (n.getAttribute('data-path-scope') == datascope) {\n count++\n last = n\n }\n }\n /* add missing clones */\n for (var i = count; i < targetCount; i++) {\n parentElement.insertBefore(last.cloneNode(true), last.nextElementSibling)\n }\n /* remove excessive clones fron previous renders */\n for (var i = Math.max(1, targetCount); i < count; i++) {\n last = <HTMLElement>last.previousElementSibling\n parentElement.removeChild(<HTMLElement>last.nextElementSibling)\n }\n}\n\nexport function queryScopes(scopes: any, datapath: string, singleValue = false, json: any = scopes) {\n var path = datapath\n /* find closest parent scope */\n const keys = Object.keys(scopes).sort((b, a) => a.length - b.length)\n for (const scope of keys) {\n if (datapath.startsWith(scope) && 'ends with it') {\n if (scope == datapath) {\n if (singleValue) {\n return scopes[scope]\n } else {\n continue\n }\n }\n path = datapath.substring(scope.length + 1)\n json = scopes[scope]\n break\n }\n }\n\n var collection = JSONPath({ path, json })\n\n // If regular path didn't match any data, try fallbacks\n // datasourceId.wrapper.$.path\n if (Array.isArray(collection) && collection?.length == 0) {\n collection = [\n // look up in `_` datasource id (catch-all id is used in JSS)\n // _.wrapper.$.path\n path.replace(/^.*?\\./, '_.'),\n // look up directly on data root\n // wrapper.$.path\n path.replace(/^.*?\\./, ''),\n // look up trimmed path in datasource\n // datasourceId.path\n path.replace(/^([^.]+).*?\\.\\$\\./, '$1.'),\n // look up trimmed path in catch all datasource\n // _.path\n path.replace(/^.*?\\.\\$\\./, '_.'),\n // look up trimmed path on root\n // path\n path.replace(/^.*?\\.\\$\\./, '')\n ]\n .filter((v, i, a) => a.indexOf(v) === i)\n .reduce((v, path) => {\n return v.length > 0 ? v : JSONPath({ path, json })\n }, [] as any[])\n }\n\n if (singleValue && Array.isArray(collection)) {\n return collection[0]\n } else {\n return collection\n }\n}\n\nexport function setDOMAttribute(element: HTMLElement, attribute: string, value: any, config?: FEAASCustomizations) {\n if (!element) return\n var target = element\n if (value?.type == 'doc' && Array.isArray(value.content)) value = serializeCH1RichText(value)\n if (config?.processValue) {\n value = config?.processValue(element, attribute, value)\n }\n var prop = attribute.replace('data-path-', '')\n if (attribute == 'data-path-src') {\n target = element.tagName == 'IMG' ? element : <HTMLElement>element.querySelector('img, video')\n } else if (attribute == 'data-path-href') {\n target = element.querySelector('a') || element.closest('a')\n } else if (attribute == 'data-path-alt') {\n target = element.querySelector('img, picture')\n } else if (attribute == 'data-path-hidden') {\n value = !value ? true : null\n } else if (attribute == 'data-path' || attribute == 'data-embed-html' || attribute == 'html') {\n prop = 'innerHTML'\n } else if (attribute == 'data-embed-src') {\n loadScript(element, value)\n } else if (attribute == 'data-path-attributes') {\n const oldKeys = element.getAttribute('data-attributes-keys')?.split(',').filter(Boolean) || []\n for (var property in value) {\n var subvalue = value[property]\n setDOMAttribute(\n element,\n property,\n typeof subvalue == 'object' && subvalue ? JSON.stringify(subvalue) : subvalue,\n config\n )\n }\n for (var i = 0; i < oldKeys.length; i++) {\n if (value == null || !(oldKeys[i] in value)) {\n setDOMAttribute(element, oldKeys[i], null, config)\n }\n }\n setDOMAttribute(element, 'data-attributes-keys', Object.keys(value || {}).join(','))\n return\n }\n if (typeof value == 'boolean') {\n value = value ? '' : null\n }\n if (!target) return\n\n var placeholder = String(element.getAttribute('data-path-placeholder') || target[prop as keyof HTMLElement])\n\n if (value != null) {\n if (prop == 'innerHTML') {\n if (target.innerHTML != value) {\n target.innerHTML = value\n }\n } else {\n if (target.getAttribute(prop) != value) {\n target.setAttribute(prop, value)\n }\n }\n } else {\n if (prop == 'innerHTML') {\n target.innerHTML = placeholder\n } else {\n target.removeAttribute(prop)\n }\n }\n}\n\nexport function observeDOMElement(element: HTMLElement) {\n const observer = new element.ownerDocument.defaultView.MutationObserver((changes) => {\n changes.forEach((change) => {\n const target = change.target as HTMLElement\n const src = target.getAttribute('data-embed-src')\n if (src) {\n loadScript(target, src)\n }\n\n if (change.addedNodes) {\n change.addedNodes.forEach((node) => {\n if (node.nodeType == 1) autoloadScripts(node as HTMLElement, false)\n })\n }\n })\n })\n observer.observe(element, { attributes: true, subtree: true, childList: true })\n return observer\n}\n\nexport function autoloadScripts(element: HTMLElement, observe = true) {\n const embeds = element.querySelectorAll('[data-embed-src]')\n for (var i = 0; i < embeds.length; i++) {\n const embed = embeds[i]\n loadScript(embed as HTMLElement, embed.getAttribute('data-embed-src'))\n }\n if (observe) return observeDOMElement(element)\n}\n\nexport function loadScript(element: HTMLElement, src: string) {\n for (var p = element; p; p = p.parentElement) {\n if (!p.parentElement) {\n const scripts = p.querySelectorAll('script')\n for (var i = 0; i < scripts.length; i++) {\n if (scripts[i].getAttribute('src') == src) {\n return true\n }\n }\n if (p.tagName == 'HTML') p = p.querySelector('head') || p\n const script = p.ownerDocument.createElement('script')\n script.type = 'module'\n script.src = src\n p.appendChild(script)\n break\n }\n }\n}\n\n// order in which attributes are proccesed. Rightmost are more important\nvar sortOrder = ['data-attributes-keys', 'data-path-attributes', 'data-path-scope']\nexport function renderDOMElement(\n input: HTMLElement | DocumentFragment,\n datascopes?: any,\n config?: FEAASCustomizations,\n isNested?: boolean\n) {\n const element = <HTMLElement>input\n if (!isNested) {\n datascopes = config?.processData?.(element, datascopes) || datascopes\n }\n if (element.nodeType == 1) {\n const datascope = element.getAttribute('data-path-scope')\n if (datascope) {\n const index = getDOMCollectionIndex(element)\n const collection = queryScopes(datascopes, datascope, false) || []\n if (index == 0) {\n updateDOMClones(element, config?.shouldRepeat?.(element, collection) === false ? 1 : collection.length, config)\n }\n\n datascopes = {\n ...datascopes,\n [normalizeCollectionScope(datascope)]: collection[index]\n }\n }\n const attrs = Array.prototype.slice.call(element.attributes).sort((a: Attr, b: Attr) => {\n return sortOrder.indexOf(a.name) - sortOrder.indexOf(b.name)\n })\n for (var i = 0; i < attrs.length; i++) {\n const { name, value: datapath } = attrs[i]\n if (name.startsWith('data-path') && name != 'data-path-scope') {\n setDOMAttribute(element, name, queryScopes(datascopes, datapath, true), config)\n }\n if (name == 'data-embed-src') {\n setDOMAttribute(element, name, element.getAttribute(name), config)\n }\n }\n }\n for (var i = 0; i < element.children.length; i++) {\n renderDOMElement(<HTMLElement>element.children[i], datascopes, config, true)\n }\n if (!isNested) {\n config?.onRender?.(element, datascopes)\n }\n return element\n}\n\nexport function renderDOMContent(root: HTMLElement, template: string, data?: Datascopes, config?: FEAASCustomizations) {\n const newTemplate = config?.processTemplate?.(root, template, data) || template\n root.innerHTML = newTemplate\n root.classList.add('-feaas')\n // fixme, jss needs to assign theme classes to component instead\n const anchor = root.closest('.component.feaas') || root\n if (anchor.className.includes('-theme--')) {\n for (const child of root.children) child.className = child.className.replace(/(\\s|^)-theme--[^\\s]+\\s*/g, '$1')\n }\n return renderDOMElement(root, data, config)\n}\n\nexport function renderStylesheet(props: CloudStylesheet, style?: HTMLStyleElement) {\n renderStylesheetPromise(props, (style ||= document.createElement('style')))\n return style\n}\n\nexport function renderStylesheetPromise(props: CloudStylesheet, style?: HTMLStyleElement) {\n style ||= document.createElement('style')\n return fetchStylesheet(props, (cssText) => {\n style.textContent = cssText\n }).then(() => style)\n}\n\nexport function renderComponent(props: FEAASComponentProps, root?: HTMLElement) {\n renderComponentPromise(props, (root ||= document.createElement('div')))\n return root\n}\n\nexport async function renderComponentPromise(props: FEAASComponentProps, root?: HTMLElement) {\n root ||= document.createElement('div')\n if (!root.childNodes.length) {\n if ('template' in props) {\n return renderDOMContent(root, props.template, props.data, props)\n } else {\n return fetchComponent(props, (template) => {\n return renderDOMContent(root, template, props.data, props)\n }).then(() => root)\n }\n /* update element with new data */\n } else {\n return renderDOMElement(root, props.data, props)\n }\n}\n\nexport type CH1Node =\n | {\n type: string\n text?: string\n content?: CH1Node[]\n marks?: CH1Node[]\n attrs?: Record<string, any>\n }\n | CH1Node[]\nfunction serializeCH1Tag(data: any, attrs: Record<string, string> = {}, tag: string): string {\n if (!tag) return serializeCH1RichText(data)\n return `<${tag}${Object.entries(attrs)\n .map(([k, v]) => v != null && ` ${k}=\"${v}\"`)\n .filter(Boolean)\n .join('')}>${serializeCH1RichText(data)}</${tag}>`.replace(/^<([a-z0-9][^>]*)><\\/[^>]+>$/, '<$1 />')\n}\nexport function serializeCH1RichText(data: CH1Node | string | null | undefined): string {\n if (Array.isArray(data)) return data.map(serializeCH1RichText).join('\\n').trim()\n if (typeof data == 'string') return data\n if (data == null) return ''\n switch (data.type) {\n case 'heading':\n const { level, ...attrs } = data.attrs\n return serializeCH1Tag(data.content, attrs, 'h' + level)\n case 'text':\n return ((data.marks || []) as any[]).reduce((text, mark) => {\n return serializeCH1Tag(\n text,\n mark.attrs,\n {\n link: 'a',\n bold: 'strong',\n italic: 'em',\n strike: 's',\n underline: 'u'\n }[mark.type as string]\n )\n }, data.text?.replace(/\\s+/, ' '))\n default:\n return serializeCH1Tag(\n data.content || data.text,\n data.attrs,\n {\n bulletList: 'ul',\n orderedList: 'ol',\n listItem: 'li',\n horizontalRule: 'hr',\n paragraph: 'p',\n codeBlock: 'code',\n blockquote: 'blockquote'\n }[data.type]\n )\n }\n}\n\nexport { JSONPath }\n","import { fetchComponent } from '../cloud.js'\nimport { renderDOMContent, renderDOMElement } from '../dom.js'\nimport { FEAASBase, OptionalExcept } from './FEAASBase.js'\nimport { FEAASLoader } from './FEAASLoader.js'\n\nexport function FEAASComponentsProps(element: FEAASBase = this) {\n let data: any\n const dataValue = element.getAttribute('data')\n if (dataValue != null) {\n try {\n data = typeof dataValue == 'string' ? JSON.parse(dataValue) : {}\n } catch (e) {}\n }\n return {\n data: data ?? {},\n library: element.getAttribute('library'),\n component: element.getAttribute('component'),\n version: element.getAttribute('version'),\n revision: element.getAttribute('revision'),\n hostname: element.getAttribute('hostname'),\n cdn: element.getContextAttribute('cdn'),\n template: element.getAttribute('template'),\n instance: element.getAttribute('instance'),\n editable: element.getAttribute('editable') != null,\n suspended: element.getAttribute('suspended') != null\n }\n}\nexport type FEAASComponentsProps = ReturnType<typeof FEAASComponentsProps>\nexport class FEAASComponent extends FEAASBase<FEAASComponentsProps, string> {\n static observedAttributes = [\n 'library',\n 'component',\n 'version',\n 'revision',\n 'hostname',\n 'cdn',\n 'template',\n 'data',\n 'instance',\n 'editable'\n ]\n\n needsRefresh: boolean\n setData(data: any) {\n this.set({ data })\n }\n\n getProps() {\n return FEAASComponentsProps(this)\n }\n\n attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n if (oldValue === newValue) return\n this.payload = undefined\n this.needsRefresh = true\n super.attributeChangedCallback(name, oldValue, newValue)\n }\n\n getEditor(): any {\n return (document.querySelector('feaas-context') as FEAASBase)?.refs.editor\n }\n\n constructor() {\n super()\n this.addEventListener('click', () => {\n if (this.props.editable) {\n this.edit()\n }\n })\n }\n\n edit() {\n const editor = this.getEditor()\n if (editor?.setTarget(this)) {\n editor.open()\n return true\n }\n }\n\n /* Check if component is a repeated clone, and return the original */\n getOriginal() {\n const scope = this.getAttribute('data-path-scope')\n if (!scope) return\n for (var current = this as Element; (current = current.previousElementSibling); ) {\n if (current.getAttribute('data-path-scope') == scope) {\n var last = current\n } else {\n break\n }\n }\n return last as FEAASComponent\n }\n\n isReadyToLoad() {\n return (\n super.isReadyToLoad() && this.props.library != null && this.props.component != null && this.props.version != null\n )\n }\n\n async load() {\n // defer loading to original element\n if (this.getOriginal()) {\n return\n }\n try {\n fetchComponent(this.props, this.onLoad)\n } catch {\n console.error(\n `FEAAS: Could not fetch component: ${this.props.component}/${this.props.version}/${this.props.revision}`\n )\n }\n }\n\n render() {\n if (Array.from(this.children).filter((c) => c.tagName != 'BR').length > 0 && !this.needsRefresh) {\n renderDOMElement(this, this.props.data)\n } else {\n this.needsRefresh = true\n // defer rendering to original element\n if (this.getOriginal()) {\n return\n }\n renderDOMContent(this, this.payload, this.props.data)\n }\n }\n}\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'feaas-component': OptionalExcept<FEAASComponentsProps, 'component' | 'version' | 'revision'> & {\n children?: any\n }\n }\n }\n}\nFEAASComponent.register('feaas-component')\n\nexport { FEAASComponent as Component }\n","import { FEAASBase } from './FEAASBase.js'\n\nexport function FEAASLoaderProps(element: HTMLElement = this) {\n return {\n opacity: element?.getAttribute('opacity') ? parseFloat(element?.getAttribute('opacity')) : 1,\n hidden: element?.getAttribute('hidden') != null\n }\n}\ntype FEAASLoaderProps = ReturnType<typeof FEAASLoaderProps>\n\nexport class FEAASLoader extends FEAASBase<FEAASLoaderProps, string> {\n stylesheet: HTMLStyleElement\n loader: HTMLDivElement\n\n getProps() {\n return FEAASLoaderProps(this)\n }\n\n static observedAttributes = ['hidden', 'opacity']\n\n attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n if (oldValue === newValue) return\n if (name == 'hidden') {\n this.style.setProperty('display', 'block', 'important')\n this.style.setProperty('transition', 'opacity 0.3s', 'important')\n if (newValue) {\n this.style.setProperty('opacity', '0', 'important')\n this.style.pointerEvents = 'none'\n } else {\n this.style.setProperty('opacity', '1', 'important')\n this.style.pointerEvents = 'all'\n }\n }\n return super.attributeChangedCallback(name, oldValue, newValue)\n }\n\n connectedCallback() {\n this.payload = null\n super.connectedCallback()\n this.attributeChangedCallback('hidden', this.getAttribute('hidden'), this.getAttribute('hidden'))\n this.stylesheet = document.createElement('style')\n this.stylesheet.textContent = `\n #loader {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #f6f6ff;\n z-index: 1000;\n }\n @keyframes loader-circular-track {\n 0% {\n stroke-dasharray: 1, 400;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 400, 400;\n stroke-dashoffset: -100;\n }\n 100% {\n stroke-dasharray: 400, 400;\n stroke-dashoffset: -260;\n }\n }\n \n @keyframes loader-circular-spinner {\n 0% {\n transform: rotate(0deg);\n }\n \n 100% {\n transform: rotate(360deg);\n }\n }\n #loader .spinner {\n width: 48px;\n height: 48px;\n }\n `\n this.loader = document.createElement('div')\n this.loader.id = 'loader'\n this.loader.innerHTML = `\n <div class=\"spinner\">\n <svg\n viewBox=\"0 0 100 100\"\n style=\"\n animation: 2s linear 0s infinite normal none running loader-circular-spinner;\n display: block;\n width: 48px;\n height: 48px;\n \"\n >\n <circle fill=\"transparent\" cx=\"50\" cy=\"50\" r=\"42\" stroke=\"rgba(0,0,0,0.1)\" stroke-width=\"10px\"></circle>\n <circle\n fill=\"transparent\"\n stroke=\"#5548D9\"\n cx=\"50\"\n cy=\"50\"\n r=\"42\"\n stroke-width=\"10px\"\n stroke-linecap=\"round\"\n style=\"animation: 1.5s linear 0s infinite normal none running loader-circular-track\"\n ></circle>\n </svg>\n </div>`\n this.getRoot().appendChild(this.stylesheet)\n this.getRoot().appendChild(this.loader)\n }\n\n render() {\n this.loader.style.opacity = String(this.props.opacity)\n }\n}\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'feaas-loader': any\n }\n }\n}\nFEAASLoader.register('feaas-loader')\n\nexport { FEAASLoader as Loader }\n","import { fetchStylesheet } from '../cloud.js'\nimport { FEAASBase } from './FEAASBase.js'\n\nexport function FEAASStylesheetProps(element: FEAASBase = this) {\n return {\n library: element?.getContextAttribute('library'),\n revision: (element?.getAttribute('revision') ?? 'published') as 'published' | 'staging' | 'saved' | number,\n cdn: element?.getContextAttribute('cdn') || element?.getContextAttribute('hostname')\n }\n}\nexport type FEAASStylesheetProps = ReturnType<typeof FEAASStylesheetProps>\n\nexport class FEAASStylesheet extends FEAASBase<FEAASStylesheetProps, string> {\n stylesheet: HTMLStyleElement\n getProps() {\n return FEAASStylesheetProps(this)\n }\n\n isReadyToLoad(): boolean {\n return this.props.library != null && this.props.revision != null && this.props.cdn != null\n }\n\n async load() {\n fetchStylesheet(this.props, this.onLoad)\n }\n\n render() {\n if (!this.stylesheet) {\n this.stylesheet = document.createElement('style')\n this.appendChild(this.stylesheet)\n }\n this.stylesheet.textContent = this.payload\n }\n}\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'feaas-stylesheet': Partial<FEAASStylesheetProps> & { children?: any }\n }\n }\n}\nFEAASStylesheet.register('feaas-stylesheet')\nexport { FEAASStylesheet as Stylesheet }\n","import FEAASElement from './components/FEAASElement.js'\n\nexport * from './dom.js'\nexport * from './fetch.js'\nexport * from './components/FEAASBase.js'\nexport * from './components/FEAASElement.js'\nexport * from './components/FEAASComponent.js'\nexport * from './components/FEAASLoader.js'\nexport * from './components/FEAASStylesheet.js'\n\ndeclare global {\n interface Window {\n FEAASLoading: Promise<any>\n FEAASElement: typeof FEAASElement\n }\n}\n\nif (typeof window != 'undefined') {\n window.FEAASElement = FEAASElement\n window.FEAASLoading ??= Promise.resolve()\n}\n"]}
|