@sitecore-feaas/clientside 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,103 @@
1
+ interface CloudTemplate {
2
+ hostname?: string;
3
+ library: string;
4
+ component: string;
5
+ variant: string;
6
+ version?: string;
7
+ }
8
+ interface CloudStylesheet {
9
+ hostname?: string;
10
+ library: string;
11
+ version?: string;
12
+ }
13
+ declare function getComponentURL({ hostname, library, component, variant, version }: CloudTemplate): string;
14
+ declare function getStylesheetURL({ hostname, library, version }: CloudStylesheet): string;
15
+ declare function fetchComponent(props: CloudTemplate, callback: (html: string) => void): Promise<Response>;
16
+ declare function fetchStylesheet(props: CloudStylesheet, callback: (css: string) => void): Promise<Response>;
17
+
18
+ interface FEAASCustomizations {
19
+ processTemplate?: (element: HTMLElement, template: string, data: any) => string;
20
+ processData?: (element: HTMLElement, data: any) => any;
21
+ processValue?: (element: HTMLElement, property: string, value: any) => any;
22
+ shouldRepeat?: (element: HTMLElement, value: any) => boolean;
23
+ onRender?: (element: HTMLElement, data: any) => void;
24
+ }
25
+ interface ExplicitTemplate {
26
+ template: string;
27
+ }
28
+ declare type Datascopes = Record<string, any>;
29
+ declare type FEAASComponentProps = {
30
+ data?: Datascopes;
31
+ } & (ExplicitTemplate | CloudTemplate) & FEAASCustomizations;
32
+ declare function renderComponentElement(content: string, datasources?: Datascopes): HTMLDivElement;
33
+ declare function cleanCollectionBit(path: string): string;
34
+ declare function normalizeCollectionScope(path: string): string;
35
+ declare function queryScopes(scopes: any, datapath: string, singleValue?: boolean, json?: any): any;
36
+ declare function setDOMAttribute(element: HTMLElement, attribute: string, value: any, config?: FEAASCustomizations): void;
37
+ declare function observeDOMElement(element: HTMLElement): MutationObserver;
38
+ declare function autoloadScripts(element: HTMLElement, observe?: boolean): MutationObserver;
39
+ declare function loadScript(element: HTMLElement, src: string): boolean;
40
+ declare function renderDOMElement(input: HTMLElement | DocumentFragment, datascopes?: any, config?: FEAASCustomizations, isNested?: boolean): HTMLElement;
41
+ declare function renderDOMContent(root: HTMLElement, template: string, data?: Datascopes, config?: FEAASCustomizations): HTMLElement;
42
+ declare function renderStylesheet(props: CloudStylesheet, style?: HTMLStyleElement): HTMLStyleElement;
43
+ declare function renderStylesheetPromise(props: CloudStylesheet, style?: HTMLStyleElement): Promise<HTMLStyleElement>;
44
+ declare function renderComponent(props: FEAASComponentProps, root?: HTMLElement): HTMLElement;
45
+ declare function renderComponentPromise(props: FEAASComponentProps, root?: HTMLElement): Promise<HTMLElement>;
46
+
47
+ declare global {
48
+ namespace JSX {
49
+ interface IntrinsicElements {
50
+ 'feaas-component': {
51
+ data?: any;
52
+ library: string;
53
+ component: string;
54
+ variant: string;
55
+ version?: string;
56
+ hostname?: string;
57
+ template?: string;
58
+ children?: any;
59
+ };
60
+ 'feaas-stylesheet': {
61
+ library?: string;
62
+ hostname?: string;
63
+ children?: any;
64
+ };
65
+ }
66
+ }
67
+ }
68
+ declare var WebComponent: {
69
+ new (): HTMLElement;
70
+ prototype: HTMLElement;
71
+ };
72
+ declare class HTMLFeaasComponent extends WebComponent {
73
+ static get observedAttributes(): string[];
74
+ connected: boolean;
75
+ template: string;
76
+ data: any;
77
+ isFetching: boolean;
78
+ connectedCallback(): void;
79
+ disconnectedCallback(): void;
80
+ attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
81
+ update(): void;
82
+ setData(data: any): void;
83
+ getOriginal(): HTMLFeaasComponent;
84
+ getData(): any;
85
+ render(): void;
86
+ getProps(): CloudTemplate & {
87
+ data: Datascopes;
88
+ };
89
+ }
90
+ declare class HTMLFeaasStylesheet extends WebComponent {
91
+ static get observedAttributes(): string[];
92
+ connected: boolean;
93
+ connectedCallback(): void;
94
+ attributeChangedCallback(): void;
95
+ render(): void;
96
+ getProps(): {
97
+ library: string;
98
+ version: string;
99
+ hostname: string;
100
+ };
101
+ }
102
+
103
+ export { CloudStylesheet as C, Datascopes as D, ExplicitTemplate as E, FEAASCustomizations as F, HTMLFeaasComponent as H, HTMLFeaasStylesheet as a, FEAASComponentProps as b, cleanCollectionBit as c, autoloadScripts as d, renderDOMElement as e, renderDOMContent as f, renderStylesheet as g, renderStylesheetPromise as h, renderComponent as i, renderComponentPromise as j, CloudTemplate as k, loadScript as l, getComponentURL as m, normalizeCollectionScope as n, observeDOMElement as o, getStylesheetURL as p, queryScopes as q, renderComponentElement as r, setDOMAttribute as s, fetchComponent as t, fetchStylesheet as u };
@@ -0,0 +1,54 @@
1
+ <script type="module">
2
+ import FEAAS from '../dist/browser/index.js.js'
3
+ const renderMyComponent = (element, data) =>
4
+ FEAAS.renderComponent(
5
+ {
6
+ componentId: 'our-dominator1',
7
+ variantId: 'dominator1-variant2',
8
+ version: 'staged',
9
+ hostname: 'https://feaascomponentsapidev.blob.core.windows.net',
10
+ data: data
11
+ },
12
+ element
13
+ )
14
+
15
+ const stylesheet = FEAAS.renderStylesheet({
16
+ libraryId: 'our-wonderful-library'
17
+ })
18
+ document.head.appendChild(stylesheet)
19
+
20
+ const element = renderMyComponent(null, {
21
+ dominatorData: {
22
+ name: 'YarikZ',
23
+ goal: 'Explode the planet',
24
+ status: 'progressing',
25
+ items: [
26
+ {
27
+ 'title-text': 'Hello world Hello Thomas 2r23r',
28
+ html: '<div class="-card--solid-color-cards -fill--light-blue"><button class="-button">Hola</button> <p><a href="#">Link</a> Text</div></p>',
29
+ open: true
30
+ },
31
+ { 'title-text': 'Bye world', html: 'Mystical island' }
32
+ ],
33
+ items2: [
34
+ {
35
+ 'title-text': 'Cherry pop',
36
+ html: '<div class="-card--solid-color-cards -fill--light-blue"><button class="-button">Hola</button> <p><a href="#">Link</a> Text</div></p>'
37
+ },
38
+ {
39
+ 'title-text': 'Berry',
40
+ html: '<div class="-card--solid-color-cards -fill--light-blue"><button class="-button">Hola</button> <p><a href="#">Link</a> Text</div></p>'
41
+ },
42
+ {
43
+ 'title-text': 'Pear',
44
+ html: '<div class="-card--solid-color-cards -fill--light-blue"><button class="-button">Hola</button> <a href="#">Link</a> Text</div>',
45
+ open: true
46
+ },
47
+ { 'title-text': 'Coolio', html: 'Mystical island' }
48
+ ]
49
+ }
50
+ })
51
+ document.body.appendChild(element)
52
+
53
+ // renderMyComponent(element, {"user": {"name": "Bob"}})
54
+ </script>
package/index.cjs ADDED
@@ -0,0 +1,3 @@
1
+ var W=Object.defineProperty,_t=Object.defineProperties,Dt=Object.getOwnPropertyDescriptor,Tt=Object.getOwnPropertyDescriptors,Ct=Object.getOwnPropertyNames,ct=Object.getOwnPropertySymbols;var ht=Object.prototype.hasOwnProperty,Pt=Object.prototype.propertyIsEnumerable;var ft=(t,e,r)=>e in t?W(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,F=(t,e)=>{for(var r in e||(e={}))ht.call(e,r)&&ft(t,r,e[r]);if(ct)for(var r of ct(e))Pt.call(e,r)&&ft(t,r,e[r]);return t},x=(t,e)=>_t(t,Tt(e));var Q=(t,e)=>{for(var r in e)W(t,r,{get:e[r],enumerable:!0})},Mt=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ct(e))!ht.call(t,i)&&i!==r&&W(t,i,{get:()=>e[i],enumerable:!(n=Dt(e,i))||n.enumerable});return t};var Ot=t=>Mt(W({},"__esModule",{value:!0}),t);var A=(t,e,r)=>new Promise((n,i)=>{var a=u=>{try{s(r.next(u))}catch(f){i(f)}},o=u=>{try{s(r.throw(u))}catch(f){i(f)}},s=u=>u.done?n(u.value):Promise.resolve(u.value).then(a,o);s((r=r.apply(t,e)).next())});var Yt={};Q(Yt,{HTMLFeaasComponent:()=>N,HTMLFeaasStylesheet:()=>J,autoloadScripts:()=>it,cleanCollectionBit:()=>et,default:()=>Vt,fetchAndRevalidate:()=>U,loadScript:()=>I,normalizeCollectionScope:()=>rt,observeDOMElement:()=>nt,queryScopes:()=>G,renderComponent:()=>Ft,renderComponentElement:()=>bt,renderComponentPromise:()=>ot,renderDOMContent:()=>_,renderDOMElement:()=>E,renderStylesheet:()=>vt,renderStylesheetPromise:()=>at,setDOMAttribute:()=>S});module.exports=Ot(Yt);var st={};Q(st,{autoloadScripts:()=>it,cleanCollectionBit:()=>et,loadScript:()=>I,normalizeCollectionScope:()=>rt,observeDOMElement:()=>nt,queryScopes:()=>G,renderComponent:()=>Ft,renderComponentElement:()=>bt,renderComponentPromise:()=>ot,renderDOMContent:()=>_,renderDOMElement:()=>E,renderStylesheet:()=>vt,renderStylesheetPromise:()=>at,setDOMAttribute:()=>S});function g(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?g=function(e){return typeof e}:g=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},g(t)}function Lt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Ht(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&B(t,e)}function R(t){return R=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},R(t)}function B(t,e){return B=Object.setPrototypeOf||function(n,i){return n.__proto__=i,n},B(t,e)}function dt(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}function j(t,e,r){return dt()?j=Reflect.construct:j=function(i,a,o){var s=[null];s.push.apply(s,a);var u=Function.bind.apply(i,s),f=new u;return o&&B(f,o.prototype),f},j.apply(null,arguments)}function $t(t){return Function.toString.call(t).indexOf("[native code]")!==-1}function Z(t){var e=typeof Map=="function"?new Map:void 0;return Z=function(n){if(n===null||!$t(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof e!="undefined"){if(e.has(n))return e.get(n);e.set(n,i)}function i(){return j(n,arguments,R(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),B(i,n)},Z(t)}function xt(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function kt(t,e){return e&&(typeof e=="object"||typeof e=="function")?e:xt(t)}function jt(t){var e=dt();return function(){var n=R(t),i;if(e){var a=R(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return kt(this,i)}}function pt(t){return Rt(t)||Bt(t)||yt(t)||It()}function Rt(t){if(Array.isArray(t))return tt(t)}function Bt(t){if(typeof Symbol!="undefined"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function yt(t,e){if(!!t){if(typeof t=="string")return tt(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return tt(t,e)}}function tt(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function It(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Nt(t,e){var r=typeof Symbol!="undefined"&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=yt(t))||e&&t&&typeof t.length=="number"){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
3
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,s;return{s:function(){r=r.call(t)},n:function(){var u=r.next();return a=u.done,u},e:function(u){o=!0,s=u},f:function(){try{!a&&r.return!=null&&r.return()}finally{if(o)throw s}}}}var b=Object.prototype.hasOwnProperty;function k(t,e){return t=t.slice(),t.push(e),t}function P(t,e){return e=e.slice(),e.unshift(t),e}var Jt=function(t){Ht(r,t);var e=jt(r);function r(n){var i;return Lt(this,r),i=e.call(this,'JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'),i.avoidNew=!0,i.value=n,i.name="NewError",i}return r}(Z(Error));function p(t,e,r,n,i){if(!(this instanceof p))try{return new p(t,e,r,n,i)}catch(u){if(!u.avoidNew)throw u;return u.value}typeof t=="string"&&(i=n,n=r,r=e,e=t,t=null);var a=t&&g(t)==="object";if(t=t||{},this.json=t.json||r,this.path=t.path||e,this.resultType=t.resultType||"value",this.flatten=t.flatten||!1,this.wrap=b.call(t,"wrap")?t.wrap:!0,this.sandbox=t.sandbox||{},this.preventEval=t.preventEval||!1,this.parent=t.parent||null,this.parentProperty=t.parentProperty||null,this.callback=t.callback||n||null,this.otherTypeCallback=t.otherTypeCallback||i||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},t.autostart!==!1){var o={path:a?t.path:e};a?"json"in t&&(o.json=t.json):o.json=r;var s=this.evaluate(o);if(!s||g(s)!=="object")throw new Jt(s);return s}}p.prototype.evaluate=function(t,e,r,n){var i=this,a=this.parent,o=this.parentProperty,s=this.flatten,u=this.wrap;if(this.currResultType=this.resultType,this.currPreventEval=this.preventEval,this.currSandbox=this.sandbox,r=r||this.callback,this.currOtherTypeCallback=n||this.otherTypeCallback,e=e||this.json,t=t||this.path,t&&g(t)==="object"&&!Array.isArray(t)){if(!t.path&&t.path!=="")throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!b.call(t,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');var f=t;e=f.json,s=b.call(t,"flatten")?t.flatten:s,this.currResultType=b.call(t,"resultType")?t.resultType:this.currResultType,this.currSandbox=b.call(t,"sandbox")?t.sandbox:this.currSandbox,u=b.call(t,"wrap")?t.wrap:u,this.currPreventEval=b.call(t,"preventEval")?t.preventEval:this.currPreventEval,r=b.call(t,"callback")?t.callback:r,this.currOtherTypeCallback=b.call(t,"otherTypeCallback")?t.otherTypeCallback:this.currOtherTypeCallback,a=b.call(t,"parent")?t.parent:a,o=b.call(t,"parentProperty")?t.parentProperty:o,t=t.path}if(a=a||null,o=o||null,Array.isArray(t)&&(t=p.toPathString(t)),!(!t&&t!==""||!e)){var l=p.toPathArray(t);l[0]==="$"&&l.length>1&&l.shift(),this._hasParentSelector=null;var c=this._trace(l,e,["$"],a,o,r).filter(function(h){return h&&!h.isParentSelector});return c.length?!u&&c.length===1&&!c[0].hasArrExpr?this._getPreferredOutput(c[0]):c.reduce(function(h,d){var y=i._getPreferredOutput(d);return s&&Array.isArray(y)?h=h.concat(y):h.push(y),h},[]):u?[]:void 0}};p.prototype._getPreferredOutput=function(t){var e=this.currResultType;switch(e){case"all":{var r=Array.isArray(t.path)?t.path:p.toPathArray(t.path);return t.pointer=p.toPointer(r),t.path=typeof t.path=="string"?t.path:p.toPathString(t.path),t}case"value":case"parent":case"parentProperty":return t[e];case"path":return p.toPathString(t[e]);case"pointer":return p.toPointer(t.path);default:throw new TypeError("Unknown result type")}};p.prototype._handleCallback=function(t,e,r){if(e){var n=this._getPreferredOutput(t);t.path=typeof t.path=="string"?t.path:p.toPathString(t.path),e(n,r,t)}};p.prototype._trace=function(t,e,r,n,i,a,o,s){var u=this,f;if(!t.length)return f={path:r,value:e,parent:n,parentProperty:i,hasArrExpr:o},this._handleCallback(f,a,"value"),f;var l=t[0],c=t.slice(1),h=[];function d(m){Array.isArray(m)?m.forEach(function(T){h.push(T)}):h.push(m)}if((typeof l!="string"||s)&&e&&b.call(e,l))d(this._trace(c,e[l],k(r,l),e,l,a,o));else if(l==="*")this._walk(l,c,e,r,n,i,a,function(m,T,O,v,C,L,H,$){d(u._trace(P(m,O),v,C,L,H,$,!0,!0))});else if(l==="..")d(this._trace(c,e,r,n,i,a,o)),this._walk(l,c,e,r,n,i,a,function(m,T,O,v,C,L,H,$){g(v[m])==="object"&&d(u._trace(P(T,O),v[m],k(C,m),v,m,$,!0))});else{if(l==="^")return this._hasParentSelector=!0,{path:r.slice(0,-1),expr:c,isParentSelector:!0};if(l==="~")return f={path:k(r,l),value:i,parent:n,parentProperty:null},this._handleCallback(f,a,"property"),f;if(l==="$")d(this._trace(c,e,r,null,null,a,o));else if(/^(\x2D?[0-9]*):(\x2D?[0-9]*):?([0-9]*)$/.test(l))d(this._slice(l,c,e,r,n,i,a));else if(l.indexOf("?(")===0){if(this.currPreventEval)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");this._walk(l,c,e,r,n,i,a,function(m,T,O,v,C,L,H,$){u._eval(T.replace(/^\?\(((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?)\)$/,"$1"),v[m],m,C,L,H)&&d(u._trace(P(m,O),v,C,L,H,$,!0))})}else if(l[0]==="("){if(this.currPreventEval)throw new Error("Eval [(expr)] prevented in JSONPath expression.");d(this._trace(P(this._eval(l,e,r[r.length-1],r.slice(0,-1),n,i),c),e,r,n,i,a,o))}else if(l[0]==="@"){var y=!1,D=l.slice(1,-2);switch(D){case"scalar":(!e||!["object","function"].includes(g(e)))&&(y=!0);break;case"boolean":case"string":case"undefined":case"function":g(e)===D&&(y=!0);break;case"integer":Number.isFinite(e)&&!(e%1)&&(y=!0);break;case"number":Number.isFinite(e)&&(y=!0);break;case"nonFinite":typeof e=="number"&&!Number.isFinite(e)&&(y=!0);break;case"object":e&&g(e)===D&&(y=!0);break;case"array":Array.isArray(e)&&(y=!0);break;case"other":y=this.currOtherTypeCallback(e,r,n,i);break;case"null":e===null&&(y=!0);break;default:throw new TypeError("Unknown value type "+D)}if(y)return f={path:r,value:e,parent:n,parentProperty:i},this._handleCallback(f,a,"value"),f}else if(l[0]==="`"&&e&&b.call(e,l.slice(1))){var K=l.slice(1);d(this._trace(c,e[K],k(r,K),e,K,a,o,!0))}else if(l.includes(",")){var wt=l.split(","),z=Nt(wt),lt;try{for(z.s();!(lt=z.n()).done;){var At=lt.value;d(this._trace(P(At,c),e,r,n,i,a,!0))}}catch(m){z.e(m)}finally{z.f()}}else!s&&e&&b.call(e,l)&&d(this._trace(c,e[l],k(r,l),e,l,a,o,!0))}if(this._hasParentSelector)for(var w=0;w<h.length;w++){var q=h[w];if(q&&q.isParentSelector){var M=this._trace(q.expr,e,q.path,n,i,a,o);if(Array.isArray(M)){h[w]=M[0];for(var St=M.length,X=1;X<St;X++)w++,h.splice(w,0,M[X])}else h[w]=M}}return h};p.prototype._walk=function(t,e,r,n,i,a,o,s){if(Array.isArray(r))for(var u=r.length,f=0;f<u;f++)s(f,t,e,r,n,i,a,o);else r&&g(r)==="object"&&Object.keys(r).forEach(function(l){s(l,t,e,r,n,i,a,o)})};p.prototype._slice=function(t,e,r,n,i,a,o){if(!!Array.isArray(r)){var s=r.length,u=t.split(":"),f=u[2]&&Number.parseInt(u[2])||1,l=u[0]&&Number.parseInt(u[0])||0,c=u[1]&&Number.parseInt(u[1])||s;l=l<0?Math.max(0,l+s):Math.min(s,l),c=c<0?Math.max(0,c+s):Math.min(s,c);for(var h=[],d=l;d<c;d+=f){var y=this._trace(P(d,e),r,n,i,a,o,!0);y.forEach(function(D){h.push(D)})}return h}};p.prototype._eval=function(t,e,r,n,i,a){t.includes("@parentProperty")&&(this.currSandbox._$_parentProperty=a,t=t.replace(/@parentProperty/g,"_$_parentProperty")),t.includes("@parent")&&(this.currSandbox._$_parent=i,t=t.replace(/@parent/g,"_$_parent")),t.includes("@property")&&(this.currSandbox._$_property=r,t=t.replace(/@property/g,"_$_property")),t.includes("@path")&&(this.currSandbox._$_path=p.toPathString(n.concat([r])),t=t.replace(/@path/g,"_$_path")),t.includes("@root")&&(this.currSandbox._$_root=this.json,t=t.replace(/@root/g,"_$_root")),/@([\t-\r \)\.\[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])/.test(t)&&(this.currSandbox._$_v=e,t=t.replace(/@([\t-\r \)\.\[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])/g,"_$_v$1"));try{return this.vm.runInNewContext(t,this.currSandbox)}catch(o){throw console.log(o),new Error("jsonPath: "+o.message+": "+t)}};p.cache={};p.toPathString=function(t){for(var e=t,r=e.length,n="$",i=1;i<r;i++)/^(~|\^|@(?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?\(\))$/.test(e[i])||(n+=/^[\*0-9]+$/.test(e[i])?"["+e[i]+"]":"['"+e[i]+"']");return n};p.toPointer=function(t){for(var e=t,r=e.length,n="",i=1;i<r;i++)/^(~|\^|@(?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?\(\))$/.test(e[i])||(n+="/"+e[i].toString().replace(/~/g,"~0").replace(/\//g,"~1"));return n};p.toPathArray=function(t){var e=p.cache;if(e[t])return e[t].concat();var r=[],n=t.replace(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\(\)/g,";$&;").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(a,o){return"[#"+(r.push(o)-1)+"]"}).replace(/\[["']((?:(?!['\]])[\s\S])*)["']\]/g,function(a,o){return"['"+o.replace(/\./g,"%@%").replace(/~/g,"%%@@%%")+"']"}).replace(/~/g,";~;").replace(/["']?\.["']?(?!(?:(?!\[)[\s\S])*\])|\[["']?/g,";").replace(/%@%/g,".").replace(/%%@@%%/g,"~").replace(/(?:;)?(\^+)(?:;)?/g,function(a,o){return";"+o.split("").join(";")+";"}).replace(/;;;|;;/g,";..;").replace(/;$|'?\]|'$/g,""),i=n.split(";").map(function(a){var o=a.match(/#([0-9]+)/);return!o||!o[1]?a:r[o[1]]});return e[t]=i,e[t].concat()};var zt=function(e,r,n){for(var i=e.length,a=0;a<i;a++){var o=e[a];n(o)&&r.push(e.splice(a--,1)[0])}};p.prototype.vm={runInNewContext:function(e,r){var n=Object.keys(r),i=[];zt(n,i,function(f){return typeof r[f]=="function"});var a=n.map(function(f,l){return r[f]}),o=i.reduce(function(f,l){var c=r[l].toString();return/function/.test(c)||(c="function "+c),"var "+l+"="+c+";"+f},"");e=o+e,!/(["'])use strict\1/.test(e)&&!n.includes("arguments")&&(e="var arguments = undefined;"+e),e=e.replace(/;[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*$/,"");var s=e.lastIndexOf(";"),u=s>-1?e.slice(0,s+1)+" return "+e.slice(s+1):" return "+e;return j(Function,pt(n).concat([u])).apply(void 0,pt(a))}};function U(t,e,r,n){return A(this,null,function*(){let i=new Date,a=yield fetch(t,e);if(!a.ok)throw new Error("Fetch failed");let o=new Date(a.headers.get("date"));var s=a;if(n(a,"cached"),o<i){let u=yield fetch(t+"?"+Math.random(),x(F({},e),{method:"HEAD",cache:"no-cache"}));if(u.headers.get("last-modified")!=a.headers.get("last-modified")){if(r(u)===!1)throw new Error("Response is stale");s=yield fetch(t,x(F({},e),{cache:"reload"}))}}if(r(s)===!1)throw new Error("Response is not valid");return a!==s&&n(s,"valid"),s})}function qt({hostname:t="https://feaascomponentsapidev.blob.core.windows.net",library:e,component:r,variant:n,version:i="published"}){return`${t}/components/${r}/variants/${n}/${i}.html`}function Wt({hostname:t="https://feaascomponentsapidev.blob.core.windows.net",library:e,version:r="published"}){return`${t}/styles/${e}/${r}.css`}function V(t,e){return A(this,null,function*(){return U(qt(t),{},r=>r.headers.get("x-ms-meta-variantDeletedAt")==null,r=>{r.text().then(e)})})}function Y(t,e){return A(this,null,function*(){return U(Wt(t),{},r=>r.headers.get("x-ms-meta-deletedAt")==null,r=>{r.text().then(e)})})}function bt(t,e){let r=document.createElement("div");r.innerHTML=t;let n=document.createDocumentFragment();for(;r.firstChild;)n.appendChild(r.firstChild);return E(n,e),r}function et(t){return t.replace(/(\[[^\]\[]+\]|\.\*)$/g,"")}function rt(t){return et(t)+".*"}function gt(t){let e=t.getAttribute("data-path-scope");for(var r=0,n=t;n=n.previousElementSibling;)n.getAttribute("data-path-scope")==e&&r++;return r}function Ut(t,e,r){let n=t.getAttribute("data-path-scope");if(n==null)return;var i=gt(t);if(i!=0)return;let a=t.parentElement;if(a!=null){e==0?t.style.display="none":t.style.display&&(t.style.display="",t.getAttribute("style")==""&&t.removeAttribute("style"));for(var o=i+1,s=t,u=t;u=u.nextElementSibling;)u.getAttribute("data-path-scope")==n&&(o++,s=u);for(var f=o;f<e;f++)a.insertBefore(s.cloneNode(!0),s.nextElementSibling);for(var f=Math.max(1,e);f<o;f++)s=s.previousElementSibling,a.removeChild(s.nextElementSibling)}}function G(t,e,r=!1,n=t){var i=e;let a=Object.keys(t).sort((s,u)=>u.length-s.length);for(let s of a)if(e.startsWith(s)){if(s==e){if(r)return t[s];continue}i=e.substring(s.length+1),n=t[s];break}let o=p({path:i,json:n});return r&&o?o[0]:o}function S(t,e,r,n){var l;if(!!t){var i=t;n!=null&&n.processValue&&(r=n==null?void 0:n.processValue(t,e,r));var a=e.replace("data-path-","");if(e=="data-path-src")i=t.tagName=="IMG"?t:t.querySelector("img, video");else if(e=="data-path-href")i=t.querySelector("a")||t.closest("a");else if(e=="data-path-hidden")r=r?null:!0;else if(e=="data-path"||e=="data-embed-html"||e=="html")a="innerHTML";else if(e=="data-embed-src")I(t,r);else if(e=="data-path-attributes"){let c=((l=t.getAttribute("data-attributes-keys"))==null?void 0:l.split(",").filter(Boolean))||[];for(var o in r){var s=r[o];S(t,o,typeof s=="object"&&s?JSON.stringify(s):s,n)}for(var u=0;u<c.length;u++)(r==null||!(c[u]in r))&&S(t,c[u],null,n);S(t,"data-attributes-keys",Object.keys(r||{}).join(","));return}if(typeof r=="boolean"&&(r=r?"":null),!!i){var f=String(t.getAttribute("data-path-placeholder")||i[a]);r!=null?a=="innerHTML"?i.innerHTML!=r&&(i.innerHTML=r):i.getAttribute(a)!=r&&i.setAttribute(a,r):a=="innerHTML"?i.innerHTML=f:i.removeAttribute(a)}}}function nt(t){let e=new t.ownerDocument.defaultView.MutationObserver(r=>{r.forEach(n=>{let i=n.target,a=i.getAttribute("data-embed-src");a&&I(i,a),n.addedNodes&&n.addedNodes.forEach(o=>{o.nodeType==1&&it(o,!1)})})});return e.observe(t,{attributes:!0,subtree:!0,childList:!0}),e}function it(t,e=!0){let r=t.querySelectorAll("[data-embed-src]");for(var n=0;n<r.length;n++){let i=r[n];I(i,i.getAttribute("data-embed-src"))}if(e)return nt(t)}function I(t,e){for(var r=t;r;r=r.parentElement)if(!r.parentElement){let i=r.querySelectorAll("script");for(var n=0;n<i.length;n++)if(i[n].getAttribute("src")==e)return!0;r.tagName=="HTML"&&(r=r.querySelector("head")||r);let a=r.ownerDocument.createElement("script");a.type="module",a.src=e,r.appendChild(a);break}}var mt=["data-attributes-keys","data-path-attributes","data-path-scope"];function E(t,e,r,n){var o,s,u;let i=t;if(n||(e=((o=r==null?void 0:r.processData)==null?void 0:o.call(r,i,e))||e),i.nodeType==1){let f=i.getAttribute("data-path-scope");if(f){let c=gt(i),h=G(e,f,!1)||[];c==0&&Ut(i,((s=r==null?void 0:r.shouldRepeat)==null?void 0:s.call(r,i,h))===!1?1:h.length,r),e=x(F({},e),{[rt(f)]:h[c]})}let l=Array.prototype.slice.call(i.attributes).sort((c,h)=>mt.indexOf(c.name)-mt.indexOf(h.name));for(var a=0;a<l.length;a++){let{name:c,value:h}=l[a];c.startsWith("data-path")&&c!="data-path-scope"&&S(i,c,G(e,h,!0),r),c=="data-embed-src"&&S(i,c,i.getAttribute(c),r)}}for(var a=0;a<i.children.length;a++)E(i.children[a],e,r,!0);return n||(u=r==null?void 0:r.onRender)==null||u.call(r,i,e),i}function _(t,e,r,n){var a;let i=((a=n==null?void 0:n.processTemplate)==null?void 0:a.call(n,t,e,r))||e;return t.innerHTML=i,t.classList.add("-feaas"),E(t,r,n)}function vt(t,e){return at(t,e||(e=document.createElement("style"))),e}function at(t,e){return e||(e=document.createElement("style")),Y(t,r=>{e.textContent=r}).then(()=>e)}function Ft(t,e){return ot(t,e||(e=document.createElement("div"))),e}function ot(t,e){return A(this,null,function*(){return e||(e=document.createElement("div")),e.childNodes.length?E(e,t.data,t):"template"in t?_(e,t.template,t.data,t):V(t,r=>_(e,r,t.data,t)).then(()=>e)})}var ut={};Q(ut,{HTMLFeaasComponent:()=>N,HTMLFeaasStylesheet:()=>J});var Et=typeof HTMLElement=="undefined"?class{}:HTMLElement,N=class extends Et{constructor(){super(...arguments);this.connected=!1;this.template=null;this.data=void 0;this.isFetching=!1}static get observedAttributes(){return["data","library","component","variant","version","hostname","template"]}connectedCallback(){this.connected=!0,this.render()}disconnectedCallback(){}attributeChangedCallback(r,n,i){!this.connected||(r=="template"&&(this.template=i),r=="data"&&this.children.length>0?this.update():this.render())}update(){E(this,this.getProps().data)}setData(r){this.data=r,this.children.length>0?this.update():this.render()}getOriginal(){let r=this.getAttribute("data-path-scope");if(!!r){for(var n=this;(n=n.previousElementSibling)&&n.getAttribute("data-path-scope")==r;)var i=n;return i}}getData(){var r;if(this.data)return this.data;if(this.getAttribute("data")){let n=this.getAttribute("data");return typeof n=="string"?JSON.parse(n):{}}return((r=this.getOriginal())==null?void 0:r.getData())||{}}render(){if(this.getOriginal())return;let r=this.getProps();this.template==null?this.isFetching||r.component!=null&&r.variant!=null&&(this.isFetching=!0,V(r,n=>{this.template=n,this.isFetching=!1,_(this,this.template,r.data)}).catch(()=>{console.error(`FEAAS: Could not fetch component: ${r.component}/${r.variant}/${r.version}`)})):_(this,this.template,r.data)}getProps(){return{data:this.getData(),library:this.getAttribute("library")||void 0,component:this.getAttribute("component")||void 0,variant:this.getAttribute("variant")||void 0,version:this.getAttribute("version")||void 0,hostname:this.getAttribute("hostname")||void 0}}},J=class extends Et{constructor(){super(...arguments);this.connected=!1}static get observedAttributes(){return["library","version","hostname"]}connectedCallback(){this.connected=!0,this.render()}attributeChangedCallback(){this.connected&&this.render()}render(){let r=this.getProps();Y(r,n=>{this.innerHTML="<style>"+n+"</style>"}).catch(n=>{console.error(`FEAAS: Could not fetch stylesheet for library ${r.library}`)})}getProps(){return{library:this.getAttribute("library")||void 0,version:this.getAttribute("version")||void 0,hostname:this.getAttribute("hostname")||void 0}}};typeof window!="undefined"&&!window.customElements.get("feaas-stylesheet")&&(window.customElements.define("feaas-stylesheet",J),window.customElements.define("feaas-component",N));var Vt=F(F({},st),ut);
package/index.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ import { H as HTMLFeaasComponent, a as HTMLFeaasStylesheet, D as Datascopes, F as FEAASCustomizations, C as CloudStylesheet, b as FEAASComponentProps } from './webcomponent-189a307d.js';
2
+ export { D as Datascopes, E as ExplicitTemplate, b as FEAASComponentProps, F as FEAASCustomizations, H as HTMLFeaasComponent, a as HTMLFeaasStylesheet, d as autoloadScripts, c as cleanCollectionBit, l as loadScript, n as normalizeCollectionScope, o as observeDOMElement, q as queryScopes, i as renderComponent, r as renderComponentElement, j as renderComponentPromise, f as renderDOMContent, e as renderDOMElement, g as renderStylesheet, h as renderStylesheetPromise, s as setDOMAttribute } from './webcomponent-189a307d.js';
3
+
4
+ declare function fetchAndRevalidate(url: Parameters<typeof fetch>[0], options: Parameters<typeof fetch>[1], validator: (resposne: Response) => boolean, callback: (response: Response, status: 'cached' | 'valid') => void): Promise<Response>;
5
+
6
+ declare const _default: {
7
+ HTMLFeaasComponent: typeof HTMLFeaasComponent;
8
+ HTMLFeaasStylesheet: typeof HTMLFeaasStylesheet;
9
+ renderComponentElement(content: string, datasources?: Datascopes): HTMLDivElement;
10
+ cleanCollectionBit(path: string): string;
11
+ normalizeCollectionScope(path: string): string;
12
+ queryScopes(scopes: any, datapath: string, singleValue?: boolean, json?: any): any;
13
+ setDOMAttribute(element: HTMLElement, attribute: string, value: any, config?: FEAASCustomizations): void;
14
+ observeDOMElement(element: HTMLElement): MutationObserver;
15
+ autoloadScripts(element: HTMLElement, observe?: boolean): MutationObserver;
16
+ loadScript(element: HTMLElement, src: string): boolean;
17
+ renderDOMElement(input: HTMLElement | DocumentFragment, datascopes?: any, config?: FEAASCustomizations, isNested?: boolean): HTMLElement;
18
+ renderDOMContent(root: HTMLElement, template: string, data?: Datascopes, config?: FEAASCustomizations): HTMLElement;
19
+ renderStylesheet(props: CloudStylesheet, style?: HTMLStyleElement): HTMLStyleElement;
20
+ renderStylesheetPromise(props: CloudStylesheet, style?: HTMLStyleElement): Promise<HTMLStyleElement>;
21
+ renderComponent(props: FEAASComponentProps, root?: HTMLElement): HTMLElement;
22
+ renderComponentPromise(props: FEAASComponentProps, root?: HTMLElement): Promise<HTMLElement>;
23
+ };
24
+
25
+ export { _default as default, fetchAndRevalidate };
package/index.js ADDED
@@ -0,0 +1,3 @@
1
+ var it=Object.defineProperty,Et=Object.defineProperties;var wt=Object.getOwnPropertyDescriptors;var rt=Object.getOwnPropertySymbols;var At=Object.prototype.hasOwnProperty,St=Object.prototype.propertyIsEnumerable;var nt=(t,e,r)=>e in t?it(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,F=(t,e)=>{for(var r in e||(e={}))At.call(e,r)&&nt(t,r,e[r]);if(rt)for(var r of rt(e))St.call(e,r)&&nt(t,r,e[r]);return t},x=(t,e)=>Et(t,wt(e));var at=(t,e)=>{for(var r in e)it(t,r,{get:e[r],enumerable:!0})};var w=(t,e,r)=>new Promise((n,i)=>{var a=u=>{try{s(r.next(u))}catch(f){i(f)}},o=u=>{try{s(r.throw(u))}catch(f){i(f)}},s=u=>u.done?n(u.value):Promise.resolve(u.value).then(a,o);s((r=r.apply(t,e)).next())});var Z={};at(Z,{autoloadScripts:()=>dt,cleanCollectionBit:()=>ct,loadScript:()=>q,normalizeCollectionScope:()=>ft,observeDOMElement:()=>pt,queryScopes:()=>Q,renderComponent:()=>Jt,renderComponentElement:()=>Bt,renderComponentPromise:()=>mt,renderDOMContent:()=>P,renderDOMElement:()=>A,renderStylesheet:()=>Nt,renderStylesheetPromise:()=>yt,setDOMAttribute:()=>C});function g(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?g=function(e){return typeof e}:g=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},g(t)}function _t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Dt(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&B(t,e)}function R(t){return R=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},R(t)}function B(t,e){return B=Object.setPrototypeOf||function(n,i){return n.__proto__=i,n},B(t,e)}function st(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}function j(t,e,r){return st()?j=Reflect.construct:j=function(i,a,o){var s=[null];s.push.apply(s,a);var u=Function.bind.apply(i,s),f=new u;return o&&B(f,o.prototype),f},j.apply(null,arguments)}function Tt(t){return Function.toString.call(t).indexOf("[native code]")!==-1}function G(t){var e=typeof Map=="function"?new Map:void 0;return G=function(n){if(n===null||!Tt(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof e!="undefined"){if(e.has(n))return e.get(n);e.set(n,i)}function i(){return j(n,arguments,R(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),B(i,n)},G(t)}function Ct(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Pt(t,e){return e&&(typeof e=="object"||typeof e=="function")?e:Ct(t)}function Mt(t){var e=st();return function(){var n=R(t),i;if(e){var a=R(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return Pt(this,i)}}function ot(t){return Ot(t)||Lt(t)||ut(t)||Ht()}function Ot(t){if(Array.isArray(t))return K(t)}function Lt(t){if(typeof Symbol!="undefined"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function ut(t,e){if(!!t){if(typeof t=="string")return K(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return K(t,e)}}function K(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function Ht(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $t(t,e){var r=typeof Symbol!="undefined"&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=ut(t))||e&&t&&typeof t.length=="number"){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
3
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,s;return{s:function(){r=r.call(t)},n:function(){var u=r.next();return a=u.done,u},e:function(u){o=!0,s=u},f:function(){try{!a&&r.return!=null&&r.return()}finally{if(o)throw s}}}}var b=Object.prototype.hasOwnProperty;function k(t,e){return t=t.slice(),t.push(e),t}function T(t,e){return e=e.slice(),e.unshift(t),e}var xt=function(t){Dt(r,t);var e=Mt(r);function r(n){var i;return _t(this,r),i=e.call(this,'JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'),i.avoidNew=!0,i.value=n,i.name="NewError",i}return r}(G(Error));function p(t,e,r,n,i){if(!(this instanceof p))try{return new p(t,e,r,n,i)}catch(u){if(!u.avoidNew)throw u;return u.value}typeof t=="string"&&(i=n,n=r,r=e,e=t,t=null);var a=t&&g(t)==="object";if(t=t||{},this.json=t.json||r,this.path=t.path||e,this.resultType=t.resultType||"value",this.flatten=t.flatten||!1,this.wrap=b.call(t,"wrap")?t.wrap:!0,this.sandbox=t.sandbox||{},this.preventEval=t.preventEval||!1,this.parent=t.parent||null,this.parentProperty=t.parentProperty||null,this.callback=t.callback||n||null,this.otherTypeCallback=t.otherTypeCallback||i||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},t.autostart!==!1){var o={path:a?t.path:e};a?"json"in t&&(o.json=t.json):o.json=r;var s=this.evaluate(o);if(!s||g(s)!=="object")throw new xt(s);return s}}p.prototype.evaluate=function(t,e,r,n){var i=this,a=this.parent,o=this.parentProperty,s=this.flatten,u=this.wrap;if(this.currResultType=this.resultType,this.currPreventEval=this.preventEval,this.currSandbox=this.sandbox,r=r||this.callback,this.currOtherTypeCallback=n||this.otherTypeCallback,e=e||this.json,t=t||this.path,t&&g(t)==="object"&&!Array.isArray(t)){if(!t.path&&t.path!=="")throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!b.call(t,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');var f=t;e=f.json,s=b.call(t,"flatten")?t.flatten:s,this.currResultType=b.call(t,"resultType")?t.resultType:this.currResultType,this.currSandbox=b.call(t,"sandbox")?t.sandbox:this.currSandbox,u=b.call(t,"wrap")?t.wrap:u,this.currPreventEval=b.call(t,"preventEval")?t.preventEval:this.currPreventEval,r=b.call(t,"callback")?t.callback:r,this.currOtherTypeCallback=b.call(t,"otherTypeCallback")?t.otherTypeCallback:this.currOtherTypeCallback,a=b.call(t,"parent")?t.parent:a,o=b.call(t,"parentProperty")?t.parentProperty:o,t=t.path}if(a=a||null,o=o||null,Array.isArray(t)&&(t=p.toPathString(t)),!(!t&&t!==""||!e)){var l=p.toPathArray(t);l[0]==="$"&&l.length>1&&l.shift(),this._hasParentSelector=null;var c=this._trace(l,e,["$"],a,o,r).filter(function(h){return h&&!h.isParentSelector});return c.length?!u&&c.length===1&&!c[0].hasArrExpr?this._getPreferredOutput(c[0]):c.reduce(function(h,d){var y=i._getPreferredOutput(d);return s&&Array.isArray(y)?h=h.concat(y):h.push(y),h},[]):u?[]:void 0}};p.prototype._getPreferredOutput=function(t){var e=this.currResultType;switch(e){case"all":{var r=Array.isArray(t.path)?t.path:p.toPathArray(t.path);return t.pointer=p.toPointer(r),t.path=typeof t.path=="string"?t.path:p.toPathString(t.path),t}case"value":case"parent":case"parentProperty":return t[e];case"path":return p.toPathString(t[e]);case"pointer":return p.toPointer(t.path);default:throw new TypeError("Unknown result type")}};p.prototype._handleCallback=function(t,e,r){if(e){var n=this._getPreferredOutput(t);t.path=typeof t.path=="string"?t.path:p.toPathString(t.path),e(n,r,t)}};p.prototype._trace=function(t,e,r,n,i,a,o,s){var u=this,f;if(!t.length)return f={path:r,value:e,parent:n,parentProperty:i,hasArrExpr:o},this._handleCallback(f,a,"value"),f;var l=t[0],c=t.slice(1),h=[];function d(m){Array.isArray(m)?m.forEach(function(_){h.push(_)}):h.push(m)}if((typeof l!="string"||s)&&e&&b.call(e,l))d(this._trace(c,e[l],k(r,l),e,l,a,o));else if(l==="*")this._walk(l,c,e,r,n,i,a,function(m,_,O,v,D,L,H,$){d(u._trace(T(m,O),v,D,L,H,$,!0,!0))});else if(l==="..")d(this._trace(c,e,r,n,i,a,o)),this._walk(l,c,e,r,n,i,a,function(m,_,O,v,D,L,H,$){g(v[m])==="object"&&d(u._trace(T(_,O),v[m],k(D,m),v,m,$,!0))});else{if(l==="^")return this._hasParentSelector=!0,{path:r.slice(0,-1),expr:c,isParentSelector:!0};if(l==="~")return f={path:k(r,l),value:i,parent:n,parentProperty:null},this._handleCallback(f,a,"property"),f;if(l==="$")d(this._trace(c,e,r,null,null,a,o));else if(/^(\x2D?[0-9]*):(\x2D?[0-9]*):?([0-9]*)$/.test(l))d(this._slice(l,c,e,r,n,i,a));else if(l.indexOf("?(")===0){if(this.currPreventEval)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");this._walk(l,c,e,r,n,i,a,function(m,_,O,v,D,L,H,$){u._eval(_.replace(/^\?\(((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?)\)$/,"$1"),v[m],m,D,L,H)&&d(u._trace(T(m,O),v,D,L,H,$,!0))})}else if(l[0]==="("){if(this.currPreventEval)throw new Error("Eval [(expr)] prevented in JSONPath expression.");d(this._trace(T(this._eval(l,e,r[r.length-1],r.slice(0,-1),n,i),c),e,r,n,i,a,o))}else if(l[0]==="@"){var y=!1,S=l.slice(1,-2);switch(S){case"scalar":(!e||!["object","function"].includes(g(e)))&&(y=!0);break;case"boolean":case"string":case"undefined":case"function":g(e)===S&&(y=!0);break;case"integer":Number.isFinite(e)&&!(e%1)&&(y=!0);break;case"number":Number.isFinite(e)&&(y=!0);break;case"nonFinite":typeof e=="number"&&!Number.isFinite(e)&&(y=!0);break;case"object":e&&g(e)===S&&(y=!0);break;case"array":Array.isArray(e)&&(y=!0);break;case"other":y=this.currOtherTypeCallback(e,r,n,i);break;case"null":e===null&&(y=!0);break;default:throw new TypeError("Unknown value type "+S)}if(y)return f={path:r,value:e,parent:n,parentProperty:i},this._handleCallback(f,a,"value"),f}else if(l[0]==="`"&&e&&b.call(e,l.slice(1))){var V=l.slice(1);d(this._trace(c,e[V],k(r,V),e,V,a,o,!0))}else if(l.includes(",")){var gt=l.split(","),I=$t(gt),et;try{for(I.s();!(et=I.n()).done;){var vt=et.value;d(this._trace(T(vt,c),e,r,n,i,a,!0))}}catch(m){I.e(m)}finally{I.f()}}else!s&&e&&b.call(e,l)&&d(this._trace(c,e[l],k(r,l),e,l,a,o,!0))}if(this._hasParentSelector)for(var E=0;E<h.length;E++){var N=h[E];if(N&&N.isParentSelector){var M=this._trace(N.expr,e,N.path,n,i,a,o);if(Array.isArray(M)){h[E]=M[0];for(var Ft=M.length,Y=1;Y<Ft;Y++)E++,h.splice(E,0,M[Y])}else h[E]=M}}return h};p.prototype._walk=function(t,e,r,n,i,a,o,s){if(Array.isArray(r))for(var u=r.length,f=0;f<u;f++)s(f,t,e,r,n,i,a,o);else r&&g(r)==="object"&&Object.keys(r).forEach(function(l){s(l,t,e,r,n,i,a,o)})};p.prototype._slice=function(t,e,r,n,i,a,o){if(!!Array.isArray(r)){var s=r.length,u=t.split(":"),f=u[2]&&Number.parseInt(u[2])||1,l=u[0]&&Number.parseInt(u[0])||0,c=u[1]&&Number.parseInt(u[1])||s;l=l<0?Math.max(0,l+s):Math.min(s,l),c=c<0?Math.max(0,c+s):Math.min(s,c);for(var h=[],d=l;d<c;d+=f){var y=this._trace(T(d,e),r,n,i,a,o,!0);y.forEach(function(S){h.push(S)})}return h}};p.prototype._eval=function(t,e,r,n,i,a){t.includes("@parentProperty")&&(this.currSandbox._$_parentProperty=a,t=t.replace(/@parentProperty/g,"_$_parentProperty")),t.includes("@parent")&&(this.currSandbox._$_parent=i,t=t.replace(/@parent/g,"_$_parent")),t.includes("@property")&&(this.currSandbox._$_property=r,t=t.replace(/@property/g,"_$_property")),t.includes("@path")&&(this.currSandbox._$_path=p.toPathString(n.concat([r])),t=t.replace(/@path/g,"_$_path")),t.includes("@root")&&(this.currSandbox._$_root=this.json,t=t.replace(/@root/g,"_$_root")),/@([\t-\r \)\.\[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])/.test(t)&&(this.currSandbox._$_v=e,t=t.replace(/@([\t-\r \)\.\[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])/g,"_$_v$1"));try{return this.vm.runInNewContext(t,this.currSandbox)}catch(o){throw console.log(o),new Error("jsonPath: "+o.message+": "+t)}};p.cache={};p.toPathString=function(t){for(var e=t,r=e.length,n="$",i=1;i<r;i++)/^(~|\^|@(?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?\(\))$/.test(e[i])||(n+=/^[\*0-9]+$/.test(e[i])?"["+e[i]+"]":"['"+e[i]+"']");return n};p.toPointer=function(t){for(var e=t,r=e.length,n="",i=1;i<r;i++)/^(~|\^|@(?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?\(\))$/.test(e[i])||(n+="/"+e[i].toString().replace(/~/g,"~0").replace(/\//g,"~1"));return n};p.toPathArray=function(t){var e=p.cache;if(e[t])return e[t].concat();var r=[],n=t.replace(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\(\)/g,";$&;").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(a,o){return"[#"+(r.push(o)-1)+"]"}).replace(/\[["']((?:(?!['\]])[\s\S])*)["']\]/g,function(a,o){return"['"+o.replace(/\./g,"%@%").replace(/~/g,"%%@@%%")+"']"}).replace(/~/g,";~;").replace(/["']?\.["']?(?!(?:(?!\[)[\s\S])*\])|\[["']?/g,";").replace(/%@%/g,".").replace(/%%@@%%/g,"~").replace(/(?:;)?(\^+)(?:;)?/g,function(a,o){return";"+o.split("").join(";")+";"}).replace(/;;;|;;/g,";..;").replace(/;$|'?\]|'$/g,""),i=n.split(";").map(function(a){var o=a.match(/#([0-9]+)/);return!o||!o[1]?a:r[o[1]]});return e[t]=i,e[t].concat()};var kt=function(e,r,n){for(var i=e.length,a=0;a<i;a++){var o=e[a];n(o)&&r.push(e.splice(a--,1)[0])}};p.prototype.vm={runInNewContext:function(e,r){var n=Object.keys(r),i=[];kt(n,i,function(f){return typeof r[f]=="function"});var a=n.map(function(f,l){return r[f]}),o=i.reduce(function(f,l){var c=r[l].toString();return/function/.test(c)||(c="function "+c),"var "+l+"="+c+";"+f},"");e=o+e,!/(["'])use strict\1/.test(e)&&!n.includes("arguments")&&(e="var arguments = undefined;"+e),e=e.replace(/;[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*$/,"");var s=e.lastIndexOf(";"),u=s>-1?e.slice(0,s+1)+" return "+e.slice(s+1):" return "+e;return j(Function,ot(n).concat([u])).apply(void 0,ot(a))}};function X(t,e,r,n){return w(this,null,function*(){let i=new Date,a=yield fetch(t,e);if(!a.ok)throw new Error("Fetch failed");let o=new Date(a.headers.get("date"));var s=a;if(n(a,"cached"),o<i){let u=yield fetch(t+"?"+Math.random(),x(F({},e),{method:"HEAD",cache:"no-cache"}));if(u.headers.get("last-modified")!=a.headers.get("last-modified")){if(r(u)===!1)throw new Error("Response is stale");s=yield fetch(t,x(F({},e),{cache:"reload"}))}}if(r(s)===!1)throw new Error("Response is not valid");return a!==s&&n(s,"valid"),s})}function jt({hostname:t="https://feaascomponentsapidev.blob.core.windows.net",library:e,component:r,variant:n,version:i="published"}){return`${t}/components/${r}/variants/${n}/${i}.html`}function Rt({hostname:t="https://feaascomponentsapidev.blob.core.windows.net",library:e,version:r="published"}){return`${t}/styles/${e}/${r}.css`}function J(t,e){return w(this,null,function*(){return X(jt(t),{},r=>r.headers.get("x-ms-meta-variantDeletedAt")==null,r=>{r.text().then(e)})})}function z(t,e){return w(this,null,function*(){return X(Rt(t),{},r=>r.headers.get("x-ms-meta-deletedAt")==null,r=>{r.text().then(e)})})}function Bt(t,e){let r=document.createElement("div");r.innerHTML=t;let n=document.createDocumentFragment();for(;r.firstChild;)n.appendChild(r.firstChild);return A(n,e),r}function ct(t){return t.replace(/(\[[^\]\[]+\]|\.\*)$/g,"")}function ft(t){return ct(t)+".*"}function ht(t){let e=t.getAttribute("data-path-scope");for(var r=0,n=t;n=n.previousElementSibling;)n.getAttribute("data-path-scope")==e&&r++;return r}function It(t,e,r){let n=t.getAttribute("data-path-scope");if(n==null)return;var i=ht(t);if(i!=0)return;let a=t.parentElement;if(a!=null){e==0?t.style.display="none":t.style.display&&(t.style.display="",t.getAttribute("style")==""&&t.removeAttribute("style"));for(var o=i+1,s=t,u=t;u=u.nextElementSibling;)u.getAttribute("data-path-scope")==n&&(o++,s=u);for(var f=o;f<e;f++)a.insertBefore(s.cloneNode(!0),s.nextElementSibling);for(var f=Math.max(1,e);f<o;f++)s=s.previousElementSibling,a.removeChild(s.nextElementSibling)}}function Q(t,e,r=!1,n=t){var i=e;let a=Object.keys(t).sort((s,u)=>u.length-s.length);for(let s of a)if(e.startsWith(s)){if(s==e){if(r)return t[s];continue}i=e.substring(s.length+1),n=t[s];break}let o=p({path:i,json:n});return r&&o?o[0]:o}function C(t,e,r,n){var l;if(!!t){var i=t;n!=null&&n.processValue&&(r=n==null?void 0:n.processValue(t,e,r));var a=e.replace("data-path-","");if(e=="data-path-src")i=t.tagName=="IMG"?t:t.querySelector("img, video");else if(e=="data-path-href")i=t.querySelector("a")||t.closest("a");else if(e=="data-path-hidden")r=r?null:!0;else if(e=="data-path"||e=="data-embed-html"||e=="html")a="innerHTML";else if(e=="data-embed-src")q(t,r);else if(e=="data-path-attributes"){let c=((l=t.getAttribute("data-attributes-keys"))==null?void 0:l.split(",").filter(Boolean))||[];for(var o in r){var s=r[o];C(t,o,typeof s=="object"&&s?JSON.stringify(s):s,n)}for(var u=0;u<c.length;u++)(r==null||!(c[u]in r))&&C(t,c[u],null,n);C(t,"data-attributes-keys",Object.keys(r||{}).join(","));return}if(typeof r=="boolean"&&(r=r?"":null),!!i){var f=String(t.getAttribute("data-path-placeholder")||i[a]);r!=null?a=="innerHTML"?i.innerHTML!=r&&(i.innerHTML=r):i.getAttribute(a)!=r&&i.setAttribute(a,r):a=="innerHTML"?i.innerHTML=f:i.removeAttribute(a)}}}function pt(t){let e=new t.ownerDocument.defaultView.MutationObserver(r=>{r.forEach(n=>{let i=n.target,a=i.getAttribute("data-embed-src");a&&q(i,a),n.addedNodes&&n.addedNodes.forEach(o=>{o.nodeType==1&&dt(o,!1)})})});return e.observe(t,{attributes:!0,subtree:!0,childList:!0}),e}function dt(t,e=!0){let r=t.querySelectorAll("[data-embed-src]");for(var n=0;n<r.length;n++){let i=r[n];q(i,i.getAttribute("data-embed-src"))}if(e)return pt(t)}function q(t,e){for(var r=t;r;r=r.parentElement)if(!r.parentElement){let i=r.querySelectorAll("script");for(var n=0;n<i.length;n++)if(i[n].getAttribute("src")==e)return!0;r.tagName=="HTML"&&(r=r.querySelector("head")||r);let a=r.ownerDocument.createElement("script");a.type="module",a.src=e,r.appendChild(a);break}}var lt=["data-attributes-keys","data-path-attributes","data-path-scope"];function A(t,e,r,n){var o,s,u;let i=t;if(n||(e=((o=r==null?void 0:r.processData)==null?void 0:o.call(r,i,e))||e),i.nodeType==1){let f=i.getAttribute("data-path-scope");if(f){let c=ht(i),h=Q(e,f,!1)||[];c==0&&It(i,((s=r==null?void 0:r.shouldRepeat)==null?void 0:s.call(r,i,h))===!1?1:h.length,r),e=x(F({},e),{[ft(f)]:h[c]})}let l=Array.prototype.slice.call(i.attributes).sort((c,h)=>lt.indexOf(c.name)-lt.indexOf(h.name));for(var a=0;a<l.length;a++){let{name:c,value:h}=l[a];c.startsWith("data-path")&&c!="data-path-scope"&&C(i,c,Q(e,h,!0),r),c=="data-embed-src"&&C(i,c,i.getAttribute(c),r)}}for(var a=0;a<i.children.length;a++)A(i.children[a],e,r,!0);return n||(u=r==null?void 0:r.onRender)==null||u.call(r,i,e),i}function P(t,e,r,n){var a;let i=((a=n==null?void 0:n.processTemplate)==null?void 0:a.call(n,t,e,r))||e;return t.innerHTML=i,t.classList.add("-feaas"),A(t,r,n)}function Nt(t,e){return yt(t,e||(e=document.createElement("style"))),e}function yt(t,e){return e||(e=document.createElement("style")),z(t,r=>{e.textContent=r}).then(()=>e)}function Jt(t,e){return mt(t,e||(e=document.createElement("div"))),e}function mt(t,e){return w(this,null,function*(){return e||(e=document.createElement("div")),e.childNodes.length?A(e,t.data,t):"template"in t?P(e,t.template,t.data,t):J(t,r=>P(e,r,t.data,t)).then(()=>e)})}var tt={};at(tt,{HTMLFeaasComponent:()=>W,HTMLFeaasStylesheet:()=>U});var bt=typeof HTMLElement=="undefined"?class{}:HTMLElement,W=class extends bt{constructor(){super(...arguments);this.connected=!1;this.template=null;this.data=void 0;this.isFetching=!1}static get observedAttributes(){return["data","library","component","variant","version","hostname","template"]}connectedCallback(){this.connected=!0,this.render()}disconnectedCallback(){}attributeChangedCallback(r,n,i){!this.connected||(r=="template"&&(this.template=i),r=="data"&&this.children.length>0?this.update():this.render())}update(){A(this,this.getProps().data)}setData(r){this.data=r,this.children.length>0?this.update():this.render()}getOriginal(){let r=this.getAttribute("data-path-scope");if(!!r){for(var n=this;(n=n.previousElementSibling)&&n.getAttribute("data-path-scope")==r;)var i=n;return i}}getData(){var r;if(this.data)return this.data;if(this.getAttribute("data")){let n=this.getAttribute("data");return typeof n=="string"?JSON.parse(n):{}}return((r=this.getOriginal())==null?void 0:r.getData())||{}}render(){if(this.getOriginal())return;let r=this.getProps();this.template==null?this.isFetching||r.component!=null&&r.variant!=null&&(this.isFetching=!0,J(r,n=>{this.template=n,this.isFetching=!1,P(this,this.template,r.data)}).catch(()=>{console.error(`FEAAS: Could not fetch component: ${r.component}/${r.variant}/${r.version}`)})):P(this,this.template,r.data)}getProps(){return{data:this.getData(),library:this.getAttribute("library")||void 0,component:this.getAttribute("component")||void 0,variant:this.getAttribute("variant")||void 0,version:this.getAttribute("version")||void 0,hostname:this.getAttribute("hostname")||void 0}}},U=class extends bt{constructor(){super(...arguments);this.connected=!1}static get observedAttributes(){return["library","version","hostname"]}connectedCallback(){this.connected=!0,this.render()}attributeChangedCallback(){this.connected&&this.render()}render(){let r=this.getProps();z(r,n=>{this.innerHTML="<style>"+n+"</style>"}).catch(n=>{console.error(`FEAAS: Could not fetch stylesheet for library ${r.library}`)})}getProps(){return{library:this.getAttribute("library")||void 0,version:this.getAttribute("version")||void 0,hostname:this.getAttribute("hostname")||void 0}}};typeof window!="undefined"&&!window.customElements.get("feaas-stylesheet")&&(window.customElements.define("feaas-stylesheet",U),window.customElements.define("feaas-component",W));var ne=F(F({},Z),tt);export{W as HTMLFeaasComponent,U as HTMLFeaasStylesheet,dt as autoloadScripts,ct as cleanCollectionBit,ne as default,X as fetchAndRevalidate,q as loadScript,ft as normalizeCollectionScope,pt as observeDOMElement,Q as queryScopes,Jt as renderComponent,Bt as renderComponentElement,mt as renderComponentPromise,P as renderDOMContent,A as renderDOMElement,Nt as renderStylesheet,yt as renderStylesheetPromise,C as setDOMAttribute};
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@sitecore-feaas/clientside",
3
+ "version": "0.0.1",
4
+ "scripts": {
5
+ "start": "webpack serve --open",
6
+ "build": "rm -rf dist; npm run build:node; npm run build:browser;",
7
+ "build:node": "tsup --entry.index src/index.ts --entry.react src/react.ts --target es6 --format cjs,esm -d dist/node",
8
+ "build:browser": "tsup --entry.index src/index.ts --entry.react src/react.ts --target es6 --format cjs,esm -d dist/browser --minify",
9
+ "watch": "tsup --entry.index src/index.ts --entry.react src/react.ts --target es6 --format esm -d dist/node --watch",
10
+ "test": "npx vitest --config ../frontend/vite.config.ts $FLAGS",
11
+ "test:watch": "npx vitest --config ../frontend/vite.config.ts",
12
+ "prepublishOnly": "npm run build; cp ./dist/browser/*{js,ts} .",
13
+ "postpublish": "rm -rf ./*{js,ts}"
14
+ },
15
+ "license": "ISC",
16
+ "dependencies": {
17
+ "jsonpath-plus": "^6.0.1"
18
+ },
19
+ "optionalDependencies": {
20
+ "react": ">=16.8.0",
21
+ "react-dom": ">=16.8.0"
22
+ },
23
+ "tsup": {
24
+ "platform": "browser",
25
+ "dts": true,
26
+ "splitting": false,
27
+ "external": [
28
+ "node-fetch"
29
+ ],
30
+ "noExternal": [
31
+ "jsonpath-plus",
32
+ "vm"
33
+ ]
34
+ },
35
+ "peerDependencies": {
36
+ "react": ">=16.8.0",
37
+ "react-dom": ">=16.8.0"
38
+ },
39
+ "main": "dist/browser/index.js",
40
+ "types": "dist/browser/react.d.ts",
41
+ "type": "module",
42
+ "exports": {
43
+ ".": {
44
+ "typescript": "./src/index.ts",
45
+ "types": "./src/index.ts",
46
+ "require": "./dist/node/index.cjs",
47
+ "browser": "./dist/browser/index.js",
48
+ "default": "./dist/node/index.js"
49
+ },
50
+ "./react": {
51
+ "typescript": "./src/react.ts",
52
+ "types": "./src/react.ts",
53
+ "require": "./dist/node/react.cjs",
54
+ "browser": "./dist/browser/react.js",
55
+ "development": "./src/react.ts",
56
+ "default": "./dist/node/react.js"
57
+ }
58
+ },
59
+ "typedoc": {
60
+ "entryPoint": "./src/index.ts",
61
+ "readmeFile": "./README.md",
62
+ "displayName": "FEAAS Clientside"
63
+ }
64
+ }
package/react.cjs ADDED
@@ -0,0 +1,3 @@
1
+ var Ot=Object.create;var B=Object.defineProperty,Lt=Object.defineProperties,$t=Object.getOwnPropertyDescriptor,Ht=Object.getOwnPropertyDescriptors,xt=Object.getOwnPropertyNames,ft=Object.getOwnPropertySymbols,kt=Object.getPrototypeOf,dt=Object.prototype.hasOwnProperty,Rt=Object.prototype.propertyIsEnumerable;var ht=(t,e,r)=>e in t?B(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,A=(t,e)=>{for(var r in e||(e={}))dt.call(e,r)&&ht(t,r,e[r]);if(ft)for(var r of ft(e))Rt.call(e,r)&&ht(t,r,e[r]);return t},w=(t,e)=>Lt(t,Ht(e));var Q=(t,e)=>{for(var r in e)B(t,r,{get:e[r],enumerable:!0})},pt=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of xt(e))!dt.call(t,a)&&a!==r&&B(t,a,{get:()=>e[a],enumerable:!(n=$t(e,a))||n.enumerable});return t};var jt=(t,e,r)=>(r=t!=null?Ot(kt(t)):{},pt(e||!t||!t.__esModule?B(r,"default",{value:t,enumerable:!0}):r,t)),Bt=t=>pt(B({},"__esModule",{value:!0}),t);var _=(t,e,r)=>new Promise((n,a)=>{var i=u=>{try{s(r.next(u))}catch(f){a(f)}},o=u=>{try{s(r.throw(u))}catch(f){a(f)}},s=u=>u.done?n(u.value):Promise.resolve(u.value).then(i,o);s((r=r.apply(t,e)).next())});var te={};Q(te,{Component:()=>Dt,HTMLFeaasComponent:()=>W,HTMLFeaasStylesheet:()=>U,Stylesheet:()=>Tt,autoloadScripts:()=>it,cleanCollectionBit:()=>rt,default:()=>Zt,fetchComponent:()=>D,fetchStylesheet:()=>T,getComponentURL:()=>yt,getStylesheetURL:()=>mt,loadScript:()=>q,normalizeCollectionScope:()=>nt,observeDOMElement:()=>at,queryScopes:()=>G,renderComponent:()=>wt,renderComponentElement:()=>Ft,renderComponentPromise:()=>st,renderDOMContent:()=>M,renderDOMElement:()=>E,renderStylesheet:()=>St,renderStylesheetPromise:()=>ot,setDOMAttribute:()=>C});module.exports=Bt(te);var v=jt(require("react"),1);function Z(t,e,r,n){return _(this,null,function*(){let a=new Date,i=yield fetch(t,e);if(!i.ok)throw new Error("Fetch failed");let o=new Date(i.headers.get("date"));var s=i;if(n(i,"cached"),o<a){let u=yield fetch(t+"?"+Math.random(),w(A({},e),{method:"HEAD",cache:"no-cache"}));if(u.headers.get("last-modified")!=i.headers.get("last-modified")){if(r(u)===!1)throw new Error("Response is stale");s=yield fetch(t,w(A({},e),{cache:"reload"}))}}if(r(s)===!1)throw new Error("Response is not valid");return i!==s&&n(s,"valid"),s})}function yt({hostname:t="https://feaascomponentsapidev.blob.core.windows.net",library:e,component:r,variant:n,version:a="published"}){return`${t}/components/${r}/variants/${n}/${a}.html`}function mt({hostname:t="https://feaascomponentsapidev.blob.core.windows.net",library:e,version:r="published"}){return`${t}/styles/${e}/${r}.css`}function D(t,e){return _(this,null,function*(){return Z(yt(t),{},r=>r.headers.get("x-ms-meta-variantDeletedAt")==null,r=>{r.text().then(e)})})}function T(t,e){return _(this,null,function*(){return Z(mt(t),{},r=>r.headers.get("x-ms-meta-deletedAt")==null,r=>{r.text().then(e)})})}var ut={};Q(ut,{autoloadScripts:()=>it,cleanCollectionBit:()=>rt,loadScript:()=>q,normalizeCollectionScope:()=>nt,observeDOMElement:()=>at,queryScopes:()=>G,renderComponent:()=>wt,renderComponentElement:()=>Ft,renderComponentPromise:()=>st,renderDOMContent:()=>M,renderDOMElement:()=>E,renderStylesheet:()=>St,renderStylesheetPromise:()=>ot,setDOMAttribute:()=>C});function g(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?g=function(e){return typeof e}:g=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},g(t)}function Nt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function It(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&z(t,e)}function J(t){return J=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},J(t)}function z(t,e){return z=Object.setPrototypeOf||function(n,a){return n.__proto__=a,n},z(t,e)}function gt(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}function I(t,e,r){return gt()?I=Reflect.construct:I=function(a,i,o){var s=[null];s.push.apply(s,i);var u=Function.bind.apply(a,s),f=new u;return o&&z(f,o.prototype),f},I.apply(null,arguments)}function Jt(t){return Function.toString.call(t).indexOf("[native code]")!==-1}function tt(t){var e=typeof Map=="function"?new Map:void 0;return tt=function(n){if(n===null||!Jt(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof e!="undefined"){if(e.has(n))return e.get(n);e.set(n,a)}function a(){return I(n,arguments,J(this).constructor)}return a.prototype=Object.create(n.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),z(a,n)},tt(t)}function zt(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function qt(t,e){return e&&(typeof e=="object"||typeof e=="function")?e:zt(t)}function Wt(t){var e=gt();return function(){var n=J(t),a;if(e){var i=J(this).constructor;a=Reflect.construct(n,arguments,i)}else a=n.apply(this,arguments);return qt(this,a)}}function bt(t){return Ut(t)||Vt(t)||vt(t)||Yt()}function Ut(t){if(Array.isArray(t))return et(t)}function Vt(t){if(typeof Symbol!="undefined"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function vt(t,e){if(!!t){if(typeof t=="string")return et(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return et(t,e)}}function et(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function Yt(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Gt(t,e){var r=typeof Symbol!="undefined"&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=vt(t))||e&&t&&typeof t.length=="number"){r&&(t=r);var n=0,a=function(){};return{s:a,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(u){throw u},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
3
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,o=!1,s;return{s:function(){r=r.call(t)},n:function(){var u=r.next();return i=u.done,u},e:function(u){o=!0,s=u},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(o)throw s}}}}var b=Object.prototype.hasOwnProperty;function N(t,e){return t=t.slice(),t.push(e),t}function $(t,e){return e=e.slice(),e.unshift(t),e}var Kt=function(t){It(r,t);var e=Wt(r);function r(n){var a;return Nt(this,r),a=e.call(this,'JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'),a.avoidNew=!0,a.value=n,a.name="NewError",a}return r}(tt(Error));function d(t,e,r,n,a){if(!(this instanceof d))try{return new d(t,e,r,n,a)}catch(u){if(!u.avoidNew)throw u;return u.value}typeof t=="string"&&(a=n,n=r,r=e,e=t,t=null);var i=t&&g(t)==="object";if(t=t||{},this.json=t.json||r,this.path=t.path||e,this.resultType=t.resultType||"value",this.flatten=t.flatten||!1,this.wrap=b.call(t,"wrap")?t.wrap:!0,this.sandbox=t.sandbox||{},this.preventEval=t.preventEval||!1,this.parent=t.parent||null,this.parentProperty=t.parentProperty||null,this.callback=t.callback||n||null,this.otherTypeCallback=t.otherTypeCallback||a||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},t.autostart!==!1){var o={path:i?t.path:e};i?"json"in t&&(o.json=t.json):o.json=r;var s=this.evaluate(o);if(!s||g(s)!=="object")throw new Kt(s);return s}}d.prototype.evaluate=function(t,e,r,n){var a=this,i=this.parent,o=this.parentProperty,s=this.flatten,u=this.wrap;if(this.currResultType=this.resultType,this.currPreventEval=this.preventEval,this.currSandbox=this.sandbox,r=r||this.callback,this.currOtherTypeCallback=n||this.otherTypeCallback,e=e||this.json,t=t||this.path,t&&g(t)==="object"&&!Array.isArray(t)){if(!t.path&&t.path!=="")throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!b.call(t,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');var f=t;e=f.json,s=b.call(t,"flatten")?t.flatten:s,this.currResultType=b.call(t,"resultType")?t.resultType:this.currResultType,this.currSandbox=b.call(t,"sandbox")?t.sandbox:this.currSandbox,u=b.call(t,"wrap")?t.wrap:u,this.currPreventEval=b.call(t,"preventEval")?t.preventEval:this.currPreventEval,r=b.call(t,"callback")?t.callback:r,this.currOtherTypeCallback=b.call(t,"otherTypeCallback")?t.otherTypeCallback:this.currOtherTypeCallback,i=b.call(t,"parent")?t.parent:i,o=b.call(t,"parentProperty")?t.parentProperty:o,t=t.path}if(i=i||null,o=o||null,Array.isArray(t)&&(t=d.toPathString(t)),!(!t&&t!==""||!e)){var l=d.toPathArray(t);l[0]==="$"&&l.length>1&&l.shift(),this._hasParentSelector=null;var c=this._trace(l,e,["$"],i,o,r).filter(function(h){return h&&!h.isParentSelector});return c.length?!u&&c.length===1&&!c[0].hasArrExpr?this._getPreferredOutput(c[0]):c.reduce(function(h,p){var y=a._getPreferredOutput(p);return s&&Array.isArray(y)?h=h.concat(y):h.push(y),h},[]):u?[]:void 0}};d.prototype._getPreferredOutput=function(t){var e=this.currResultType;switch(e){case"all":{var r=Array.isArray(t.path)?t.path:d.toPathArray(t.path);return t.pointer=d.toPointer(r),t.path=typeof t.path=="string"?t.path:d.toPathString(t.path),t}case"value":case"parent":case"parentProperty":return t[e];case"path":return d.toPathString(t[e]);case"pointer":return d.toPointer(t.path);default:throw new TypeError("Unknown result type")}};d.prototype._handleCallback=function(t,e,r){if(e){var n=this._getPreferredOutput(t);t.path=typeof t.path=="string"?t.path:d.toPathString(t.path),e(n,r,t)}};d.prototype._trace=function(t,e,r,n,a,i,o,s){var u=this,f;if(!t.length)return f={path:r,value:e,parent:n,parentProperty:a,hasArrExpr:o},this._handleCallback(f,i,"value"),f;var l=t[0],c=t.slice(1),h=[];function p(m){Array.isArray(m)?m.forEach(function(O){h.push(O)}):h.push(m)}if((typeof l!="string"||s)&&e&&b.call(e,l))p(this._trace(c,e[l],N(r,l),e,l,i,o));else if(l==="*")this._walk(l,c,e,r,n,a,i,function(m,O,x,F,L,k,R,j){p(u._trace($(m,x),F,L,k,R,j,!0,!0))});else if(l==="..")p(this._trace(c,e,r,n,a,i,o)),this._walk(l,c,e,r,n,a,i,function(m,O,x,F,L,k,R,j){g(F[m])==="object"&&p(u._trace($(O,x),F[m],N(L,m),F,m,j,!0))});else{if(l==="^")return this._hasParentSelector=!0,{path:r.slice(0,-1),expr:c,isParentSelector:!0};if(l==="~")return f={path:N(r,l),value:a,parent:n,parentProperty:null},this._handleCallback(f,i,"property"),f;if(l==="$")p(this._trace(c,e,r,null,null,i,o));else if(/^(\x2D?[0-9]*):(\x2D?[0-9]*):?([0-9]*)$/.test(l))p(this._slice(l,c,e,r,n,a,i));else if(l.indexOf("?(")===0){if(this.currPreventEval)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");this._walk(l,c,e,r,n,a,i,function(m,O,x,F,L,k,R,j){u._eval(O.replace(/^\?\(((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?)\)$/,"$1"),F[m],m,L,k,R)&&p(u._trace($(m,x),F,L,k,R,j,!0))})}else if(l[0]==="("){if(this.currPreventEval)throw new Error("Eval [(expr)] prevented in JSONPath expression.");p(this._trace($(this._eval(l,e,r[r.length-1],r.slice(0,-1),n,a),c),e,r,n,a,i,o))}else if(l[0]==="@"){var y=!1,P=l.slice(1,-2);switch(P){case"scalar":(!e||!["object","function"].includes(g(e)))&&(y=!0);break;case"boolean":case"string":case"undefined":case"function":g(e)===P&&(y=!0);break;case"integer":Number.isFinite(e)&&!(e%1)&&(y=!0);break;case"number":Number.isFinite(e)&&(y=!0);break;case"nonFinite":typeof e=="number"&&!Number.isFinite(e)&&(y=!0);break;case"object":e&&g(e)===P&&(y=!0);break;case"array":Array.isArray(e)&&(y=!0);break;case"other":y=this.currOtherTypeCallback(e,r,n,a);break;case"null":e===null&&(y=!0);break;default:throw new TypeError("Unknown value type "+P)}if(y)return f={path:r,value:e,parent:n,parentProperty:a},this._handleCallback(f,i,"value"),f}else if(l[0]==="`"&&e&&b.call(e,l.slice(1))){var K=l.slice(1);p(this._trace(c,e[K],N(r,K),e,K,i,o,!0))}else if(l.includes(",")){var Ct=l.split(","),V=Gt(Ct),ct;try{for(V.s();!(ct=V.n()).done;){var Mt=ct.value;p(this._trace($(Mt,c),e,r,n,a,i,!0))}}catch(m){V.e(m)}finally{V.f()}}else!s&&e&&b.call(e,l)&&p(this._trace(c,e[l],N(r,l),e,l,i,o,!0))}if(this._hasParentSelector)for(var S=0;S<h.length;S++){var Y=h[S];if(Y&&Y.isParentSelector){var H=this._trace(Y.expr,e,Y.path,n,a,i,o);if(Array.isArray(H)){h[S]=H[0];for(var Pt=H.length,X=1;X<Pt;X++)S++,h.splice(S,0,H[X])}else h[S]=H}}return h};d.prototype._walk=function(t,e,r,n,a,i,o,s){if(Array.isArray(r))for(var u=r.length,f=0;f<u;f++)s(f,t,e,r,n,a,i,o);else r&&g(r)==="object"&&Object.keys(r).forEach(function(l){s(l,t,e,r,n,a,i,o)})};d.prototype._slice=function(t,e,r,n,a,i,o){if(!!Array.isArray(r)){var s=r.length,u=t.split(":"),f=u[2]&&Number.parseInt(u[2])||1,l=u[0]&&Number.parseInt(u[0])||0,c=u[1]&&Number.parseInt(u[1])||s;l=l<0?Math.max(0,l+s):Math.min(s,l),c=c<0?Math.max(0,c+s):Math.min(s,c);for(var h=[],p=l;p<c;p+=f){var y=this._trace($(p,e),r,n,a,i,o,!0);y.forEach(function(P){h.push(P)})}return h}};d.prototype._eval=function(t,e,r,n,a,i){t.includes("@parentProperty")&&(this.currSandbox._$_parentProperty=i,t=t.replace(/@parentProperty/g,"_$_parentProperty")),t.includes("@parent")&&(this.currSandbox._$_parent=a,t=t.replace(/@parent/g,"_$_parent")),t.includes("@property")&&(this.currSandbox._$_property=r,t=t.replace(/@property/g,"_$_property")),t.includes("@path")&&(this.currSandbox._$_path=d.toPathString(n.concat([r])),t=t.replace(/@path/g,"_$_path")),t.includes("@root")&&(this.currSandbox._$_root=this.json,t=t.replace(/@root/g,"_$_root")),/@([\t-\r \)\.\[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])/.test(t)&&(this.currSandbox._$_v=e,t=t.replace(/@([\t-\r \)\.\[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])/g,"_$_v$1"));try{return this.vm.runInNewContext(t,this.currSandbox)}catch(o){throw console.log(o),new Error("jsonPath: "+o.message+": "+t)}};d.cache={};d.toPathString=function(t){for(var e=t,r=e.length,n="$",a=1;a<r;a++)/^(~|\^|@(?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?\(\))$/.test(e[a])||(n+=/^[\*0-9]+$/.test(e[a])?"["+e[a]+"]":"['"+e[a]+"']");return n};d.toPointer=function(t){for(var e=t,r=e.length,n="",a=1;a<r;a++)/^(~|\^|@(?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?\(\))$/.test(e[a])||(n+="/"+e[a].toString().replace(/~/g,"~0").replace(/\//g,"~1"));return n};d.toPathArray=function(t){var e=d.cache;if(e[t])return e[t].concat();var r=[],n=t.replace(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\(\)/g,";$&;").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(i,o){return"[#"+(r.push(o)-1)+"]"}).replace(/\[["']((?:(?!['\]])[\s\S])*)["']\]/g,function(i,o){return"['"+o.replace(/\./g,"%@%").replace(/~/g,"%%@@%%")+"']"}).replace(/~/g,";~;").replace(/["']?\.["']?(?!(?:(?!\[)[\s\S])*\])|\[["']?/g,";").replace(/%@%/g,".").replace(/%%@@%%/g,"~").replace(/(?:;)?(\^+)(?:;)?/g,function(i,o){return";"+o.split("").join(";")+";"}).replace(/;;;|;;/g,";..;").replace(/;$|'?\]|'$/g,""),a=n.split(";").map(function(i){var o=i.match(/#([0-9]+)/);return!o||!o[1]?i:r[o[1]]});return e[t]=a,e[t].concat()};var Xt=function(e,r,n){for(var a=e.length,i=0;i<a;i++){var o=e[i];n(o)&&r.push(e.splice(i--,1)[0])}};d.prototype.vm={runInNewContext:function(e,r){var n=Object.keys(r),a=[];Xt(n,a,function(f){return typeof r[f]=="function"});var i=n.map(function(f,l){return r[f]}),o=a.reduce(function(f,l){var c=r[l].toString();return/function/.test(c)||(c="function "+c),"var "+l+"="+c+";"+f},"");e=o+e,!/(["'])use strict\1/.test(e)&&!n.includes("arguments")&&(e="var arguments = undefined;"+e),e=e.replace(/;[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*$/,"");var s=e.lastIndexOf(";"),u=s>-1?e.slice(0,s+1)+" return "+e.slice(s+1):" return "+e;return I(Function,bt(n).concat([u])).apply(void 0,bt(i))}};function Ft(t,e){let r=document.createElement("div");r.innerHTML=t;let n=document.createDocumentFragment();for(;r.firstChild;)n.appendChild(r.firstChild);return E(n,e),r}function rt(t){return t.replace(/(\[[^\]\[]+\]|\.\*)$/g,"")}function nt(t){return rt(t)+".*"}function At(t){let e=t.getAttribute("data-path-scope");for(var r=0,n=t;n=n.previousElementSibling;)n.getAttribute("data-path-scope")==e&&r++;return r}function Qt(t,e,r){let n=t.getAttribute("data-path-scope");if(n==null)return;var a=At(t);if(a!=0)return;let i=t.parentElement;if(i!=null){e==0?t.style.display="none":t.style.display&&(t.style.display="",t.getAttribute("style")==""&&t.removeAttribute("style"));for(var o=a+1,s=t,u=t;u=u.nextElementSibling;)u.getAttribute("data-path-scope")==n&&(o++,s=u);for(var f=o;f<e;f++)i.insertBefore(s.cloneNode(!0),s.nextElementSibling);for(var f=Math.max(1,e);f<o;f++)s=s.previousElementSibling,i.removeChild(s.nextElementSibling)}}function G(t,e,r=!1,n=t){var a=e;let i=Object.keys(t).sort((s,u)=>u.length-s.length);for(let s of i)if(e.startsWith(s)){if(s==e){if(r)return t[s];continue}a=e.substring(s.length+1),n=t[s];break}let o=d({path:a,json:n});return r&&o?o[0]:o}function C(t,e,r,n){var l;if(!!t){var a=t;n!=null&&n.processValue&&(r=n==null?void 0:n.processValue(t,e,r));var i=e.replace("data-path-","");if(e=="data-path-src")a=t.tagName=="IMG"?t:t.querySelector("img, video");else if(e=="data-path-href")a=t.querySelector("a")||t.closest("a");else if(e=="data-path-hidden")r=r?null:!0;else if(e=="data-path"||e=="data-embed-html"||e=="html")i="innerHTML";else if(e=="data-embed-src")q(t,r);else if(e=="data-path-attributes"){let c=((l=t.getAttribute("data-attributes-keys"))==null?void 0:l.split(",").filter(Boolean))||[];for(var o in r){var s=r[o];C(t,o,typeof s=="object"&&s?JSON.stringify(s):s,n)}for(var u=0;u<c.length;u++)(r==null||!(c[u]in r))&&C(t,c[u],null,n);C(t,"data-attributes-keys",Object.keys(r||{}).join(","));return}if(typeof r=="boolean"&&(r=r?"":null),!!a){var f=String(t.getAttribute("data-path-placeholder")||a[i]);r!=null?i=="innerHTML"?a.innerHTML!=r&&(a.innerHTML=r):a.getAttribute(i)!=r&&a.setAttribute(i,r):i=="innerHTML"?a.innerHTML=f:a.removeAttribute(i)}}}function at(t){let e=new t.ownerDocument.defaultView.MutationObserver(r=>{r.forEach(n=>{let a=n.target,i=a.getAttribute("data-embed-src");i&&q(a,i),n.addedNodes&&n.addedNodes.forEach(o=>{o.nodeType==1&&it(o,!1)})})});return e.observe(t,{attributes:!0,subtree:!0,childList:!0}),e}function it(t,e=!0){let r=t.querySelectorAll("[data-embed-src]");for(var n=0;n<r.length;n++){let a=r[n];q(a,a.getAttribute("data-embed-src"))}if(e)return at(t)}function q(t,e){for(var r=t;r;r=r.parentElement)if(!r.parentElement){let a=r.querySelectorAll("script");for(var n=0;n<a.length;n++)if(a[n].getAttribute("src")==e)return!0;r.tagName=="HTML"&&(r=r.querySelector("head")||r);let i=r.ownerDocument.createElement("script");i.type="module",i.src=e,r.appendChild(i);break}}var Et=["data-attributes-keys","data-path-attributes","data-path-scope"];function E(t,e,r,n){var o,s,u;let a=t;if(n||(e=((o=r==null?void 0:r.processData)==null?void 0:o.call(r,a,e))||e),a.nodeType==1){let f=a.getAttribute("data-path-scope");if(f){let c=At(a),h=G(e,f,!1)||[];c==0&&Qt(a,((s=r==null?void 0:r.shouldRepeat)==null?void 0:s.call(r,a,h))===!1?1:h.length,r),e=w(A({},e),{[nt(f)]:h[c]})}let l=Array.prototype.slice.call(a.attributes).sort((c,h)=>Et.indexOf(c.name)-Et.indexOf(h.name));for(var i=0;i<l.length;i++){let{name:c,value:h}=l[i];c.startsWith("data-path")&&c!="data-path-scope"&&C(a,c,G(e,h,!0),r),c=="data-embed-src"&&C(a,c,a.getAttribute(c),r)}}for(var i=0;i<a.children.length;i++)E(a.children[i],e,r,!0);return n||(u=r==null?void 0:r.onRender)==null||u.call(r,a,e),a}function M(t,e,r,n){var i;let a=((i=n==null?void 0:n.processTemplate)==null?void 0:i.call(n,t,e,r))||e;return t.innerHTML=a,t.classList.add("-feaas"),E(t,r,n)}function St(t,e){return ot(t,e||(e=document.createElement("style"))),e}function ot(t,e){return e||(e=document.createElement("style")),T(t,r=>{e.textContent=r}).then(()=>e)}function wt(t,e){return st(t,e||(e=document.createElement("div"))),e}function st(t,e){return _(this,null,function*(){return e||(e=document.createElement("div")),e.childNodes.length?E(e,t.data,t):"template"in t?M(e,t.template,t.data,t):D(t,r=>M(e,r,t.data,t)).then(()=>e)})}var lt={};Q(lt,{HTMLFeaasComponent:()=>W,HTMLFeaasStylesheet:()=>U});var _t=typeof HTMLElement=="undefined"?class{}:HTMLElement,W=class extends _t{constructor(){super(...arguments);this.connected=!1;this.template=null;this.data=void 0;this.isFetching=!1}static get observedAttributes(){return["data","library","component","variant","version","hostname","template"]}connectedCallback(){this.connected=!0,this.render()}disconnectedCallback(){}attributeChangedCallback(r,n,a){!this.connected||(r=="template"&&(this.template=a),r=="data"&&this.children.length>0?this.update():this.render())}update(){E(this,this.getProps().data)}setData(r){this.data=r,this.children.length>0?this.update():this.render()}getOriginal(){let r=this.getAttribute("data-path-scope");if(!!r){for(var n=this;(n=n.previousElementSibling)&&n.getAttribute("data-path-scope")==r;)var a=n;return a}}getData(){var r;if(this.data)return this.data;if(this.getAttribute("data")){let n=this.getAttribute("data");return typeof n=="string"?JSON.parse(n):{}}return((r=this.getOriginal())==null?void 0:r.getData())||{}}render(){if(this.getOriginal())return;let r=this.getProps();this.template==null?this.isFetching||r.component!=null&&r.variant!=null&&(this.isFetching=!0,D(r,n=>{this.template=n,this.isFetching=!1,M(this,this.template,r.data)}).catch(()=>{console.error(`FEAAS: Could not fetch component: ${r.component}/${r.variant}/${r.version}`)})):M(this,this.template,r.data)}getProps(){return{data:this.getData(),library:this.getAttribute("library")||void 0,component:this.getAttribute("component")||void 0,variant:this.getAttribute("variant")||void 0,version:this.getAttribute("version")||void 0,hostname:this.getAttribute("hostname")||void 0}}},U=class extends _t{constructor(){super(...arguments);this.connected=!1}static get observedAttributes(){return["library","version","hostname"]}connectedCallback(){this.connected=!0,this.render()}attributeChangedCallback(){this.connected&&this.render()}render(){let r=this.getProps();T(r,n=>{this.innerHTML="<style>"+n+"</style>"}).catch(n=>{console.error(`FEAAS: Could not fetch stylesheet for library ${r.library}`)})}getProps(){return{library:this.getAttribute("library")||void 0,version:this.getAttribute("version")||void 0,hostname:this.getAttribute("hostname")||void 0}}};typeof window!="undefined"&&!window.customElements.get("feaas-stylesheet")&&(window.customElements.define("feaas-stylesheet",U),window.customElements.define("feaas-component",W));function Dt(t){let[e,r]=v.default.useState("template"in t?t.template:null),n=t.data,a=v.default.useRef(null);return v.default.useEffect(()=>{e==null&&!("template"in t)&&D(t,r).catch(()=>{console.error(`FEAAS: Could not fetch component: ${t.library}/${t.component}/${t.variant}/${t.version}`)})},"template"in t?[t.template,null,null,null]:[t.library,t.component,t.variant,t.version,t.hostname]),v.default.useEffect(()=>{a.current&&e&&(a.current.innerHTML=e)},[a,e]),v.default.useEffect(()=>{e&&a.current&&E(a.current,n||{},t)},[a,e,n]),v.default.createElement("div",{ref:a,className:"-feaas"})}function Tt(t){let e=v.default.useRef(null),[r,n]=v.default.useState("");return v.default.useEffect(()=>{T(t,n).catch(a=>{console.error(`FEAAS: Could not fetch stylesheet for library ${t.library}`)})},[t.hostname,t.library]),v.default.createElement("style",{ref:e,rel:"stylesheet",className:"-stylesheet","data-library-id":t.library},[r])}var Zt=w(A(A({},ut),lt),{Stylesheet:Tt,Component:Dt});
package/react.d.ts ADDED
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ import { b as FEAASComponentProps, C as CloudStylesheet, H as HTMLFeaasComponent, a as HTMLFeaasStylesheet, D as Datascopes, F as FEAASCustomizations } from './webcomponent-189a307d.js';
3
+ export { C as CloudStylesheet, k as CloudTemplate, D as Datascopes, E as ExplicitTemplate, b as FEAASComponentProps, F as FEAASCustomizations, H as HTMLFeaasComponent, a as HTMLFeaasStylesheet, d as autoloadScripts, c as cleanCollectionBit, t as fetchComponent, u as fetchStylesheet, m as getComponentURL, p as getStylesheetURL, l as loadScript, n as normalizeCollectionScope, o as observeDOMElement, q as queryScopes, i as renderComponent, r as renderComponentElement, j as renderComponentPromise, f as renderDOMContent, e as renderDOMElement, g as renderStylesheet, h as renderStylesheetPromise, s as setDOMAttribute } from './webcomponent-189a307d.js';
4
+
5
+ declare function Component(props: FEAASComponentProps): React.DetailedReactHTMLElement<{
6
+ ref: React.MutableRefObject<HTMLElement>;
7
+ className: string;
8
+ }, HTMLElement>;
9
+ declare function Stylesheet(props: CloudStylesheet): React.DetailedReactHTMLElement<{
10
+ ref: React.MutableRefObject<HTMLStyleElement>;
11
+ rel: string;
12
+ className: string;
13
+ 'data-library-id': string;
14
+ }, HTMLStyleElement>;
15
+ declare const _default: {
16
+ Stylesheet: typeof Stylesheet;
17
+ Component: typeof Component;
18
+ HTMLFeaasComponent: typeof HTMLFeaasComponent;
19
+ HTMLFeaasStylesheet: typeof HTMLFeaasStylesheet;
20
+ renderComponentElement(content: string, datasources?: Datascopes): HTMLDivElement;
21
+ cleanCollectionBit(path: string): string;
22
+ normalizeCollectionScope(path: string): string;
23
+ queryScopes(scopes: any, datapath: string, singleValue?: boolean, json?: any): any;
24
+ setDOMAttribute(element: HTMLElement, attribute: string, value: any, config?: FEAASCustomizations): void;
25
+ observeDOMElement(element: HTMLElement): MutationObserver;
26
+ autoloadScripts(element: HTMLElement, observe?: boolean): MutationObserver;
27
+ loadScript(element: HTMLElement, src: string): boolean;
28
+ renderDOMElement(input: HTMLElement | DocumentFragment, datascopes?: any, config?: FEAASCustomizations, isNested?: boolean): HTMLElement;
29
+ renderDOMContent(root: HTMLElement, template: string, data?: Datascopes, config?: FEAASCustomizations): HTMLElement;
30
+ renderStylesheet(props: CloudStylesheet, style?: HTMLStyleElement): HTMLStyleElement;
31
+ renderStylesheetPromise(props: CloudStylesheet, style?: HTMLStyleElement): Promise<HTMLStyleElement>;
32
+ renderComponent(props: FEAASComponentProps, root?: HTMLElement): HTMLElement;
33
+ renderComponentPromise(props: FEAASComponentProps, root?: HTMLElement): Promise<HTMLElement>;
34
+ };
35
+
36
+ export { Component, Stylesheet, _default as default };
package/react.js ADDED
@@ -0,0 +1,3 @@
1
+ var it=Object.defineProperty,At=Object.defineProperties;var St=Object.getOwnPropertyDescriptors;var nt=Object.getOwnPropertySymbols;var wt=Object.prototype.hasOwnProperty,_t=Object.prototype.propertyIsEnumerable;var at=(t,e,r)=>e in t?it(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,A=(t,e)=>{for(var r in e||(e={}))wt.call(e,r)&&at(t,r,e[r]);if(nt)for(var r of nt(e))_t.call(e,r)&&at(t,r,e[r]);return t},w=(t,e)=>At(t,St(e));var ot=(t,e)=>{for(var r in e)it(t,r,{get:e[r],enumerable:!0})};var _=(t,e,r)=>new Promise((n,a)=>{var i=u=>{try{s(r.next(u))}catch(f){a(f)}},o=u=>{try{s(r.throw(u))}catch(f){a(f)}},s=u=>u.done?n(u.value):Promise.resolve(u.value).then(i,o);s((r=r.apply(t,e)).next())});import v from"react";function K(t,e,r,n){return _(this,null,function*(){let a=new Date,i=yield fetch(t,e);if(!i.ok)throw new Error("Fetch failed");let o=new Date(i.headers.get("date"));var s=i;if(n(i,"cached"),o<a){let u=yield fetch(t+"?"+Math.random(),w(A({},e),{method:"HEAD",cache:"no-cache"}));if(u.headers.get("last-modified")!=i.headers.get("last-modified")){if(r(u)===!1)throw new Error("Response is stale");s=yield fetch(t,w(A({},e),{cache:"reload"}))}}if(r(s)===!1)throw new Error("Response is not valid");return i!==s&&n(s,"valid"),s})}function Dt({hostname:t="https://feaascomponentsapidev.blob.core.windows.net",library:e,component:r,variant:n,version:a="published"}){return`${t}/components/${r}/variants/${n}/${a}.html`}function Tt({hostname:t="https://feaascomponentsapidev.blob.core.windows.net",library:e,version:r="published"}){return`${t}/styles/${e}/${r}.css`}function M(t,e){return _(this,null,function*(){return K(Dt(t),{},r=>r.headers.get("x-ms-meta-variantDeletedAt")==null,r=>{r.text().then(e)})})}function P(t,e){return _(this,null,function*(){return K(Tt(t),{},r=>r.headers.get("x-ms-meta-deletedAt")==null,r=>{r.text().then(e)})})}var tt={};ot(tt,{autoloadScripts:()=>yt,cleanCollectionBit:()=>ft,loadScript:()=>W,normalizeCollectionScope:()=>ht,observeDOMElement:()=>pt,queryScopes:()=>Z,renderComponent:()=>zt,renderComponentElement:()=>Nt,renderComponentPromise:()=>bt,renderDOMContent:()=>$,renderDOMElement:()=>E,renderStylesheet:()=>Jt,renderStylesheetPromise:()=>mt,setDOMAttribute:()=>L});function g(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?g=function(e){return typeof e}:g=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},g(t)}function Ct(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Mt(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&J(t,e)}function I(t){return I=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},I(t)}function J(t,e){return J=Object.setPrototypeOf||function(n,a){return n.__proto__=a,n},J(t,e)}function ut(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}function N(t,e,r){return ut()?N=Reflect.construct:N=function(a,i,o){var s=[null];s.push.apply(s,i);var u=Function.bind.apply(a,s),f=new u;return o&&J(f,o.prototype),f},N.apply(null,arguments)}function Pt(t){return Function.toString.call(t).indexOf("[native code]")!==-1}function X(t){var e=typeof Map=="function"?new Map:void 0;return X=function(n){if(n===null||!Pt(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof e!="undefined"){if(e.has(n))return e.get(n);e.set(n,a)}function a(){return N(n,arguments,I(this).constructor)}return a.prototype=Object.create(n.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),J(a,n)},X(t)}function Ot(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Lt(t,e){return e&&(typeof e=="object"||typeof e=="function")?e:Ot(t)}function $t(t){var e=ut();return function(){var n=I(t),a;if(e){var i=I(this).constructor;a=Reflect.construct(n,arguments,i)}else a=n.apply(this,arguments);return Lt(this,a)}}function st(t){return Ht(t)||xt(t)||lt(t)||kt()}function Ht(t){if(Array.isArray(t))return Q(t)}function xt(t){if(typeof Symbol!="undefined"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function lt(t,e){if(!!t){if(typeof t=="string")return Q(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Q(t,e)}}function Q(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function kt(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Rt(t,e){var r=typeof Symbol!="undefined"&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=lt(t))||e&&t&&typeof t.length=="number"){r&&(t=r);var n=0,a=function(){};return{s:a,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(u){throw u},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
3
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,o=!1,s;return{s:function(){r=r.call(t)},n:function(){var u=r.next();return i=u.done,u},e:function(u){o=!0,s=u},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(o)throw s}}}}var b=Object.prototype.hasOwnProperty;function B(t,e){return t=t.slice(),t.push(e),t}function O(t,e){return e=e.slice(),e.unshift(t),e}var jt=function(t){Mt(r,t);var e=$t(r);function r(n){var a;return Ct(this,r),a=e.call(this,'JSONPath should not be called with "new" (it prevents return of (unwrapped) scalar values)'),a.avoidNew=!0,a.value=n,a.name="NewError",a}return r}(X(Error));function d(t,e,r,n,a){if(!(this instanceof d))try{return new d(t,e,r,n,a)}catch(u){if(!u.avoidNew)throw u;return u.value}typeof t=="string"&&(a=n,n=r,r=e,e=t,t=null);var i=t&&g(t)==="object";if(t=t||{},this.json=t.json||r,this.path=t.path||e,this.resultType=t.resultType||"value",this.flatten=t.flatten||!1,this.wrap=b.call(t,"wrap")?t.wrap:!0,this.sandbox=t.sandbox||{},this.preventEval=t.preventEval||!1,this.parent=t.parent||null,this.parentProperty=t.parentProperty||null,this.callback=t.callback||n||null,this.otherTypeCallback=t.otherTypeCallback||a||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},t.autostart!==!1){var o={path:i?t.path:e};i?"json"in t&&(o.json=t.json):o.json=r;var s=this.evaluate(o);if(!s||g(s)!=="object")throw new jt(s);return s}}d.prototype.evaluate=function(t,e,r,n){var a=this,i=this.parent,o=this.parentProperty,s=this.flatten,u=this.wrap;if(this.currResultType=this.resultType,this.currPreventEval=this.preventEval,this.currSandbox=this.sandbox,r=r||this.callback,this.currOtherTypeCallback=n||this.otherTypeCallback,e=e||this.json,t=t||this.path,t&&g(t)==="object"&&!Array.isArray(t)){if(!t.path&&t.path!=="")throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!b.call(t,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');var f=t;e=f.json,s=b.call(t,"flatten")?t.flatten:s,this.currResultType=b.call(t,"resultType")?t.resultType:this.currResultType,this.currSandbox=b.call(t,"sandbox")?t.sandbox:this.currSandbox,u=b.call(t,"wrap")?t.wrap:u,this.currPreventEval=b.call(t,"preventEval")?t.preventEval:this.currPreventEval,r=b.call(t,"callback")?t.callback:r,this.currOtherTypeCallback=b.call(t,"otherTypeCallback")?t.otherTypeCallback:this.currOtherTypeCallback,i=b.call(t,"parent")?t.parent:i,o=b.call(t,"parentProperty")?t.parentProperty:o,t=t.path}if(i=i||null,o=o||null,Array.isArray(t)&&(t=d.toPathString(t)),!(!t&&t!==""||!e)){var l=d.toPathArray(t);l[0]==="$"&&l.length>1&&l.shift(),this._hasParentSelector=null;var c=this._trace(l,e,["$"],i,o,r).filter(function(h){return h&&!h.isParentSelector});return c.length?!u&&c.length===1&&!c[0].hasArrExpr?this._getPreferredOutput(c[0]):c.reduce(function(h,p){var y=a._getPreferredOutput(p);return s&&Array.isArray(y)?h=h.concat(y):h.push(y),h},[]):u?[]:void 0}};d.prototype._getPreferredOutput=function(t){var e=this.currResultType;switch(e){case"all":{var r=Array.isArray(t.path)?t.path:d.toPathArray(t.path);return t.pointer=d.toPointer(r),t.path=typeof t.path=="string"?t.path:d.toPathString(t.path),t}case"value":case"parent":case"parentProperty":return t[e];case"path":return d.toPathString(t[e]);case"pointer":return d.toPointer(t.path);default:throw new TypeError("Unknown result type")}};d.prototype._handleCallback=function(t,e,r){if(e){var n=this._getPreferredOutput(t);t.path=typeof t.path=="string"?t.path:d.toPathString(t.path),e(n,r,t)}};d.prototype._trace=function(t,e,r,n,a,i,o,s){var u=this,f;if(!t.length)return f={path:r,value:e,parent:n,parentProperty:a,hasArrExpr:o},this._handleCallback(f,i,"value"),f;var l=t[0],c=t.slice(1),h=[];function p(m){Array.isArray(m)?m.forEach(function(T){h.push(T)}):h.push(m)}if((typeof l!="string"||s)&&e&&b.call(e,l))p(this._trace(c,e[l],B(r,l),e,l,i,o));else if(l==="*")this._walk(l,c,e,r,n,a,i,function(m,T,x,F,C,k,R,j){p(u._trace(O(m,x),F,C,k,R,j,!0,!0))});else if(l==="..")p(this._trace(c,e,r,n,a,i,o)),this._walk(l,c,e,r,n,a,i,function(m,T,x,F,C,k,R,j){g(F[m])==="object"&&p(u._trace(O(T,x),F[m],B(C,m),F,m,j,!0))});else{if(l==="^")return this._hasParentSelector=!0,{path:r.slice(0,-1),expr:c,isParentSelector:!0};if(l==="~")return f={path:B(r,l),value:a,parent:n,parentProperty:null},this._handleCallback(f,i,"property"),f;if(l==="$")p(this._trace(c,e,r,null,null,i,o));else if(/^(\x2D?[0-9]*):(\x2D?[0-9]*):?([0-9]*)$/.test(l))p(this._slice(l,c,e,r,n,a,i));else if(l.indexOf("?(")===0){if(this.currPreventEval)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");this._walk(l,c,e,r,n,a,i,function(m,T,x,F,C,k,R,j){u._eval(T.replace(/^\?\(((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?)\)$/,"$1"),F[m],m,C,k,R)&&p(u._trace(O(m,x),F,C,k,R,j,!0))})}else if(l[0]==="("){if(this.currPreventEval)throw new Error("Eval [(expr)] prevented in JSONPath expression.");p(this._trace(O(this._eval(l,e,r[r.length-1],r.slice(0,-1),n,a),c),e,r,n,a,i,o))}else if(l[0]==="@"){var y=!1,D=l.slice(1,-2);switch(D){case"scalar":(!e||!["object","function"].includes(g(e)))&&(y=!0);break;case"boolean":case"string":case"undefined":case"function":g(e)===D&&(y=!0);break;case"integer":Number.isFinite(e)&&!(e%1)&&(y=!0);break;case"number":Number.isFinite(e)&&(y=!0);break;case"nonFinite":typeof e=="number"&&!Number.isFinite(e)&&(y=!0);break;case"object":e&&g(e)===D&&(y=!0);break;case"array":Array.isArray(e)&&(y=!0);break;case"other":y=this.currOtherTypeCallback(e,r,n,a);break;case"null":e===null&&(y=!0);break;default:throw new TypeError("Unknown value type "+D)}if(y)return f={path:r,value:e,parent:n,parentProperty:a},this._handleCallback(f,i,"value"),f}else if(l[0]==="`"&&e&&b.call(e,l.slice(1))){var Y=l.slice(1);p(this._trace(c,e[Y],B(r,Y),e,Y,i,o,!0))}else if(l.includes(",")){var vt=l.split(","),z=Rt(vt),rt;try{for(z.s();!(rt=z.n()).done;){var Et=rt.value;p(this._trace(O(Et,c),e,r,n,a,i,!0))}}catch(m){z.e(m)}finally{z.f()}}else!s&&e&&b.call(e,l)&&p(this._trace(c,e[l],B(r,l),e,l,i,o,!0))}if(this._hasParentSelector)for(var S=0;S<h.length;S++){var q=h[S];if(q&&q.isParentSelector){var H=this._trace(q.expr,e,q.path,n,a,i,o);if(Array.isArray(H)){h[S]=H[0];for(var Ft=H.length,G=1;G<Ft;G++)S++,h.splice(S,0,H[G])}else h[S]=H}}return h};d.prototype._walk=function(t,e,r,n,a,i,o,s){if(Array.isArray(r))for(var u=r.length,f=0;f<u;f++)s(f,t,e,r,n,a,i,o);else r&&g(r)==="object"&&Object.keys(r).forEach(function(l){s(l,t,e,r,n,a,i,o)})};d.prototype._slice=function(t,e,r,n,a,i,o){if(!!Array.isArray(r)){var s=r.length,u=t.split(":"),f=u[2]&&Number.parseInt(u[2])||1,l=u[0]&&Number.parseInt(u[0])||0,c=u[1]&&Number.parseInt(u[1])||s;l=l<0?Math.max(0,l+s):Math.min(s,l),c=c<0?Math.max(0,c+s):Math.min(s,c);for(var h=[],p=l;p<c;p+=f){var y=this._trace(O(p,e),r,n,a,i,o,!0);y.forEach(function(D){h.push(D)})}return h}};d.prototype._eval=function(t,e,r,n,a,i){t.includes("@parentProperty")&&(this.currSandbox._$_parentProperty=i,t=t.replace(/@parentProperty/g,"_$_parentProperty")),t.includes("@parent")&&(this.currSandbox._$_parent=a,t=t.replace(/@parent/g,"_$_parent")),t.includes("@property")&&(this.currSandbox._$_property=r,t=t.replace(/@property/g,"_$_property")),t.includes("@path")&&(this.currSandbox._$_path=d.toPathString(n.concat([r])),t=t.replace(/@path/g,"_$_path")),t.includes("@root")&&(this.currSandbox._$_root=this.json,t=t.replace(/@root/g,"_$_root")),/@([\t-\r \)\.\[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])/.test(t)&&(this.currSandbox._$_v=e,t=t.replace(/@([\t-\r \)\.\[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])/g,"_$_v$1"));try{return this.vm.runInNewContext(t,this.currSandbox)}catch(o){throw console.log(o),new Error("jsonPath: "+o.message+": "+t)}};d.cache={};d.toPathString=function(t){for(var e=t,r=e.length,n="$",a=1;a<r;a++)/^(~|\^|@(?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?\(\))$/.test(e[a])||(n+=/^[\*0-9]+$/.test(e[a])?"["+e[a]+"]":"['"+e[a]+"']");return n};d.toPointer=function(t){for(var e=t,r=e.length,n="",a=1;a<r;a++)/^(~|\^|@(?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?\(\))$/.test(e[a])||(n+="/"+e[a].toString().replace(/~/g,"~0").replace(/\//g,"~1"));return n};d.toPathArray=function(t){var e=d.cache;if(e[t])return e[t].concat();var r=[],n=t.replace(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\(\)/g,";$&;").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(i,o){return"[#"+(r.push(o)-1)+"]"}).replace(/\[["']((?:(?!['\]])[\s\S])*)["']\]/g,function(i,o){return"['"+o.replace(/\./g,"%@%").replace(/~/g,"%%@@%%")+"']"}).replace(/~/g,";~;").replace(/["']?\.["']?(?!(?:(?!\[)[\s\S])*\])|\[["']?/g,";").replace(/%@%/g,".").replace(/%%@@%%/g,"~").replace(/(?:;)?(\^+)(?:;)?/g,function(i,o){return";"+o.split("").join(";")+";"}).replace(/;;;|;;/g,";..;").replace(/;$|'?\]|'$/g,""),a=n.split(";").map(function(i){var o=i.match(/#([0-9]+)/);return!o||!o[1]?i:r[o[1]]});return e[t]=a,e[t].concat()};var Bt=function(e,r,n){for(var a=e.length,i=0;i<a;i++){var o=e[i];n(o)&&r.push(e.splice(i--,1)[0])}};d.prototype.vm={runInNewContext:function(e,r){var n=Object.keys(r),a=[];Bt(n,a,function(f){return typeof r[f]=="function"});var i=n.map(function(f,l){return r[f]}),o=a.reduce(function(f,l){var c=r[l].toString();return/function/.test(c)||(c="function "+c),"var "+l+"="+c+";"+f},"");e=o+e,!/(["'])use strict\1/.test(e)&&!n.includes("arguments")&&(e="var arguments = undefined;"+e),e=e.replace(/;[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*$/,"");var s=e.lastIndexOf(";"),u=s>-1?e.slice(0,s+1)+" return "+e.slice(s+1):" return "+e;return N(Function,st(n).concat([u])).apply(void 0,st(i))}};function Nt(t,e){let r=document.createElement("div");r.innerHTML=t;let n=document.createDocumentFragment();for(;r.firstChild;)n.appendChild(r.firstChild);return E(n,e),r}function ft(t){return t.replace(/(\[[^\]\[]+\]|\.\*)$/g,"")}function ht(t){return ft(t)+".*"}function dt(t){let e=t.getAttribute("data-path-scope");for(var r=0,n=t;n=n.previousElementSibling;)n.getAttribute("data-path-scope")==e&&r++;return r}function It(t,e,r){let n=t.getAttribute("data-path-scope");if(n==null)return;var a=dt(t);if(a!=0)return;let i=t.parentElement;if(i!=null){e==0?t.style.display="none":t.style.display&&(t.style.display="",t.getAttribute("style")==""&&t.removeAttribute("style"));for(var o=a+1,s=t,u=t;u=u.nextElementSibling;)u.getAttribute("data-path-scope")==n&&(o++,s=u);for(var f=o;f<e;f++)i.insertBefore(s.cloneNode(!0),s.nextElementSibling);for(var f=Math.max(1,e);f<o;f++)s=s.previousElementSibling,i.removeChild(s.nextElementSibling)}}function Z(t,e,r=!1,n=t){var a=e;let i=Object.keys(t).sort((s,u)=>u.length-s.length);for(let s of i)if(e.startsWith(s)){if(s==e){if(r)return t[s];continue}a=e.substring(s.length+1),n=t[s];break}let o=d({path:a,json:n});return r&&o?o[0]:o}function L(t,e,r,n){var l;if(!!t){var a=t;n!=null&&n.processValue&&(r=n==null?void 0:n.processValue(t,e,r));var i=e.replace("data-path-","");if(e=="data-path-src")a=t.tagName=="IMG"?t:t.querySelector("img, video");else if(e=="data-path-href")a=t.querySelector("a")||t.closest("a");else if(e=="data-path-hidden")r=r?null:!0;else if(e=="data-path"||e=="data-embed-html"||e=="html")i="innerHTML";else if(e=="data-embed-src")W(t,r);else if(e=="data-path-attributes"){let c=((l=t.getAttribute("data-attributes-keys"))==null?void 0:l.split(",").filter(Boolean))||[];for(var o in r){var s=r[o];L(t,o,typeof s=="object"&&s?JSON.stringify(s):s,n)}for(var u=0;u<c.length;u++)(r==null||!(c[u]in r))&&L(t,c[u],null,n);L(t,"data-attributes-keys",Object.keys(r||{}).join(","));return}if(typeof r=="boolean"&&(r=r?"":null),!!a){var f=String(t.getAttribute("data-path-placeholder")||a[i]);r!=null?i=="innerHTML"?a.innerHTML!=r&&(a.innerHTML=r):a.getAttribute(i)!=r&&a.setAttribute(i,r):i=="innerHTML"?a.innerHTML=f:a.removeAttribute(i)}}}function pt(t){let e=new t.ownerDocument.defaultView.MutationObserver(r=>{r.forEach(n=>{let a=n.target,i=a.getAttribute("data-embed-src");i&&W(a,i),n.addedNodes&&n.addedNodes.forEach(o=>{o.nodeType==1&&yt(o,!1)})})});return e.observe(t,{attributes:!0,subtree:!0,childList:!0}),e}function yt(t,e=!0){let r=t.querySelectorAll("[data-embed-src]");for(var n=0;n<r.length;n++){let a=r[n];W(a,a.getAttribute("data-embed-src"))}if(e)return pt(t)}function W(t,e){for(var r=t;r;r=r.parentElement)if(!r.parentElement){let a=r.querySelectorAll("script");for(var n=0;n<a.length;n++)if(a[n].getAttribute("src")==e)return!0;r.tagName=="HTML"&&(r=r.querySelector("head")||r);let i=r.ownerDocument.createElement("script");i.type="module",i.src=e,r.appendChild(i);break}}var ct=["data-attributes-keys","data-path-attributes","data-path-scope"];function E(t,e,r,n){var o,s,u;let a=t;if(n||(e=((o=r==null?void 0:r.processData)==null?void 0:o.call(r,a,e))||e),a.nodeType==1){let f=a.getAttribute("data-path-scope");if(f){let c=dt(a),h=Z(e,f,!1)||[];c==0&&It(a,((s=r==null?void 0:r.shouldRepeat)==null?void 0:s.call(r,a,h))===!1?1:h.length,r),e=w(A({},e),{[ht(f)]:h[c]})}let l=Array.prototype.slice.call(a.attributes).sort((c,h)=>ct.indexOf(c.name)-ct.indexOf(h.name));for(var i=0;i<l.length;i++){let{name:c,value:h}=l[i];c.startsWith("data-path")&&c!="data-path-scope"&&L(a,c,Z(e,h,!0),r),c=="data-embed-src"&&L(a,c,a.getAttribute(c),r)}}for(var i=0;i<a.children.length;i++)E(a.children[i],e,r,!0);return n||(u=r==null?void 0:r.onRender)==null||u.call(r,a,e),a}function $(t,e,r,n){var i;let a=((i=n==null?void 0:n.processTemplate)==null?void 0:i.call(n,t,e,r))||e;return t.innerHTML=a,t.classList.add("-feaas"),E(t,r,n)}function Jt(t,e){return mt(t,e||(e=document.createElement("style"))),e}function mt(t,e){return e||(e=document.createElement("style")),P(t,r=>{e.textContent=r}).then(()=>e)}function zt(t,e){return bt(t,e||(e=document.createElement("div"))),e}function bt(t,e){return _(this,null,function*(){return e||(e=document.createElement("div")),e.childNodes.length?E(e,t.data,t):"template"in t?$(e,t.template,t.data,t):M(t,r=>$(e,r,t.data,t)).then(()=>e)})}var et={};ot(et,{HTMLFeaasComponent:()=>U,HTMLFeaasStylesheet:()=>V});var gt=typeof HTMLElement=="undefined"?class{}:HTMLElement,U=class extends gt{constructor(){super(...arguments);this.connected=!1;this.template=null;this.data=void 0;this.isFetching=!1}static get observedAttributes(){return["data","library","component","variant","version","hostname","template"]}connectedCallback(){this.connected=!0,this.render()}disconnectedCallback(){}attributeChangedCallback(r,n,a){!this.connected||(r=="template"&&(this.template=a),r=="data"&&this.children.length>0?this.update():this.render())}update(){E(this,this.getProps().data)}setData(r){this.data=r,this.children.length>0?this.update():this.render()}getOriginal(){let r=this.getAttribute("data-path-scope");if(!!r){for(var n=this;(n=n.previousElementSibling)&&n.getAttribute("data-path-scope")==r;)var a=n;return a}}getData(){var r;if(this.data)return this.data;if(this.getAttribute("data")){let n=this.getAttribute("data");return typeof n=="string"?JSON.parse(n):{}}return((r=this.getOriginal())==null?void 0:r.getData())||{}}render(){if(this.getOriginal())return;let r=this.getProps();this.template==null?this.isFetching||r.component!=null&&r.variant!=null&&(this.isFetching=!0,M(r,n=>{this.template=n,this.isFetching=!1,$(this,this.template,r.data)}).catch(()=>{console.error(`FEAAS: Could not fetch component: ${r.component}/${r.variant}/${r.version}`)})):$(this,this.template,r.data)}getProps(){return{data:this.getData(),library:this.getAttribute("library")||void 0,component:this.getAttribute("component")||void 0,variant:this.getAttribute("variant")||void 0,version:this.getAttribute("version")||void 0,hostname:this.getAttribute("hostname")||void 0}}},V=class extends gt{constructor(){super(...arguments);this.connected=!1}static get observedAttributes(){return["library","version","hostname"]}connectedCallback(){this.connected=!0,this.render()}attributeChangedCallback(){this.connected&&this.render()}render(){let r=this.getProps();P(r,n=>{this.innerHTML="<style>"+n+"</style>"}).catch(n=>{console.error(`FEAAS: Could not fetch stylesheet for library ${r.library}`)})}getProps(){return{library:this.getAttribute("library")||void 0,version:this.getAttribute("version")||void 0,hostname:this.getAttribute("hostname")||void 0}}};typeof window!="undefined"&&!window.customElements.get("feaas-stylesheet")&&(window.customElements.define("feaas-stylesheet",V),window.customElements.define("feaas-component",U));function qt(t){let[e,r]=v.useState("template"in t?t.template:null),n=t.data,a=v.useRef(null);return v.useEffect(()=>{e==null&&!("template"in t)&&M(t,r).catch(()=>{console.error(`FEAAS: Could not fetch component: ${t.library}/${t.component}/${t.variant}/${t.version}`)})},"template"in t?[t.template,null,null,null]:[t.library,t.component,t.variant,t.version,t.hostname]),v.useEffect(()=>{a.current&&e&&(a.current.innerHTML=e)},[a,e]),v.useEffect(()=>{e&&a.current&&E(a.current,n||{},t)},[a,e,n]),v.createElement("div",{ref:a,className:"-feaas"})}function Wt(t){let e=v.useRef(null),[r,n]=v.useState("");return v.useEffect(()=>{P(t,n).catch(a=>{console.error(`FEAAS: Could not fetch stylesheet for library ${t.library}`)})},[t.hostname,t.library]),v.createElement("style",{ref:e,rel:"stylesheet",className:"-stylesheet","data-library-id":t.library},[r])}var fe=w(A(A({},tt),et),{Stylesheet:Wt,Component:qt});export{qt as Component,U as HTMLFeaasComponent,V as HTMLFeaasStylesheet,Wt as Stylesheet,yt as autoloadScripts,ft as cleanCollectionBit,fe as default,M as fetchComponent,P as fetchStylesheet,Dt as getComponentURL,Tt as getStylesheetURL,W as loadScript,ht as normalizeCollectionScope,pt as observeDOMElement,Z as queryScopes,zt as renderComponent,Nt as renderComponentElement,bt as renderComponentPromise,$ as renderDOMContent,E as renderDOMElement,Jt as renderStylesheet,mt as renderStylesheetPromise,L as setDOMAttribute};
package/src/cloud.ts ADDED
@@ -0,0 +1,58 @@
1
+ import { fetchAndRevalidate } from './fetch.js'
2
+
3
+ export interface CloudTemplate {
4
+ hostname?: string
5
+ library: string
6
+ component: string
7
+ variant: string
8
+ version?: string
9
+ }
10
+ export interface CloudStylesheet {
11
+ hostname?: string
12
+ library: string
13
+ version?: string
14
+ }
15
+
16
+ export function getComponentURL({
17
+ hostname = 'https://feaascomponentsapidev.blob.core.windows.net',
18
+ library,
19
+ component,
20
+ variant,
21
+ version = 'published'
22
+ }: CloudTemplate) {
23
+ return `${hostname}/components/${component}/variants/${variant}/${version}.html`
24
+ }
25
+
26
+ export function getStylesheetURL({
27
+ hostname = `https://feaascomponentsapidev.blob.core.windows.net`,
28
+ library,
29
+ version = 'published'
30
+ }: CloudStylesheet) {
31
+ return `${hostname}/styles/${library}/${version}.css`
32
+ }
33
+
34
+ export async function fetchComponent(props: CloudTemplate, callback: (html: string) => void) {
35
+ return fetchAndRevalidate(
36
+ getComponentURL(props),
37
+ {},
38
+ (response) => {
39
+ return response.headers.get('x-ms-meta-variantDeletedAt') == null
40
+ },
41
+ (response) => {
42
+ response.text().then(callback)
43
+ }
44
+ )
45
+ }
46
+
47
+ export async function fetchStylesheet(props: CloudStylesheet, callback: (css: string) => void) {
48
+ return fetchAndRevalidate(
49
+ getStylesheetURL(props),
50
+ {},
51
+ (response) => {
52
+ return response.headers.get('x-ms-meta-deletedAt') == null
53
+ },
54
+ (response) => {
55
+ response.text().then(callback)
56
+ }
57
+ )
58
+ }