@sitecore-feaas/clientside 0.0.8 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/browser/basic.cjs +67 -0
- package/dist/browser/basic.js +67 -0
- package/dist/browser/index.cjs +68 -79
- package/dist/browser/index.js +68 -79
- package/dist/node/{react.cjs → basic.cjs} +436 -435
- package/dist/node/{react.js → basic.js} +432 -431
- package/dist/node/index.cjs +667 -284
- package/dist/node/index.js +667 -288
- package/examples/index.html +1 -1
- package/package.json +17 -17
- package/src/basic.ts +5 -0
- package/src/cloud.ts +9 -5
- package/src/components/FEAASBase.tsx +265 -0
- package/src/components/FEAASComponent.ts +98 -0
- package/src/components/FEAASContext.tsx +105 -0
- package/src/components/FEAASEditor.tsx +291 -0
- package/src/components/FEAASLoader.ts +113 -0
- package/src/components/FEAASPicker.tsx +98 -0
- package/src/components/FEAASStylesheet.ts +43 -0
- package/src/components/index.tsx +7 -0
- package/src/index.ts +4 -11
- package/test/components.js +11 -0
- package/test/components.ts +12 -0
- package/test/render.js +688 -0
- package/tsconfig.json +11 -6
- package/types/basic.d.ts +5 -0
- package/types/cloud.d.ts +18 -0
- package/types/components/FEAASBase.d.ts +70 -0
- package/types/components/FEAASComponent.d.ts +39 -0
- package/types/components/FEAASContext.d.ts +43 -0
- package/types/components/FEAASEditor.d.ts +70 -0
- package/types/components/FEAASLoader.d.ts +20 -0
- package/types/components/FEAASPicker.d.ts +61 -0
- package/types/components/FEAASStylesheet.d.ts +25 -0
- package/types/components/index.d.ts +7 -0
- package/types/dom.d.ts +29 -0
- package/types/fetch.d.ts +1 -0
- package/types/index.d.ts +4 -0
- package/types/tsbuildinfo +1 -0
- package/dist/browser/index.d.ts +0 -25
- package/dist/browser/react.cjs +0 -83
- package/dist/browser/react.d.ts +0 -36
- package/dist/browser/react.js +0 -83
- package/dist/browser/webcomponent-6b45b819.d.ts +0 -120
- package/dist/node/index.d.ts +0 -25
- package/dist/node/react.d.ts +0 -36
- package/dist/node/webcomponent-6b45b819.d.ts +0 -120
- package/index.cjs +0 -83
- package/index.d.ts +0 -25
- package/index.js +0 -83
- package/react.cjs +0 -83
- package/react.d.ts +0 -36
- package/react.js +0 -83
- package/src/react.ts +0 -66
- package/src/webcomponent.ts +0 -379
- package/webcomponent-6b45b819.d.ts +0 -120
package/react.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
var ue=Object.defineProperty,we=Object.defineProperties;var Te=Object.getOwnPropertyDescriptors;var se=Object.getOwnPropertySymbols;var Ce=Object.prototype.hasOwnProperty,_e=Object.prototype.propertyIsEnumerable;var oe=(e,t,r)=>t in e?ue(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,A=(e,t)=>{for(var r in t||(t={}))Ce.call(t,r)&&oe(e,r,t[r]);if(se)for(var r of se(t))_e.call(t,r)&&oe(e,r,t[r]);return e},w=(e,t)=>we(e,Te(t));var le=(e,t)=>{for(var r in t)ue(e,r,{get:t[r],enumerable:!0})};var T=(e,t,r)=>new Promise((n,i)=>{var a=u=>{try{o(r.next(u))}catch(h){i(h)}},s=u=>{try{o(r.throw(u))}catch(h){i(h)}},o=u=>u.done?n(u.value):Promise.resolve(u.value).then(a,s);o((r=r.apply(e,t)).next())});import v from"react";function X(e,t,r,n){return T(this,null,function*(){let i=new Date,a=yield fetch(e,t);if(!a.ok)throw new Error("Fetch failed");let s=new Date(a.headers.get("date"));var o=a;if(n(a,"cached"),s<i){let u=yield fetch(e+"?"+Math.random(),w(A({},t),{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");o=yield fetch(e,w(A({},t),{cache:"reload"}))}}if(r(o)===!1)throw new Error("Response is not valid");return a!==o&&n(o,"valid"),o})}function De({hostname:e="https://feaascomponentsapidev.blob.core.windows.net",library:t,component:r,version:n,revision:i="published"}){return`${e}/components/${t}/${r}/${n}/${i}.html`}function Pe({hostname:e="https://feaascomponentsapidev.blob.core.windows.net",library:t,revision:r="published"}){return`${e}/styles/${t}/${r}.css`}function P(e,t){return T(this,null,function*(){return X(De(e),{},r=>r.headers.get("x-ms-meta-versionDeletedAt")==null,r=>{r.text().then(t)})})}function M(e,t){return T(this,null,function*(){return X(Pe(e),{},r=>r.headers.get("x-ms-meta-deletedAt")==null,r=>{r.text().then(t)})})}var te={};le(te,{autoloadScripts:()=>ge,cleanCollectionBit:()=>pe,loadScript:()=>V,normalizeCollectionScope:()=>ye,observeDOMElement:()=>be,queryScopes:()=>ee,renderComponent:()=>Ve,renderComponentElement:()=>ze,renderComponentPromise:()=>Ee,renderDOMContent:()=>O,renderDOMElement:()=>E,renderStylesheet:()=>qe,renderStylesheetPromise:()=>ve,setDOMAttribute:()=>L});function g(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?g=function(t){return typeof t}:g=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},g(e)}function Me(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ke(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&z(e,t)}function I(e){return I=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},I(e)}function z(e,t){return z=Object.setPrototypeOf||function(n,i){return n.__proto__=i,n},z(e,t)}function he(){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(e){return!1}}function N(e,t,r){return he()?N=Reflect.construct:N=function(i,a,s){var o=[null];o.push.apply(o,a);var u=Function.bind.apply(i,o),h=new u;return s&&z(h,s.prototype),h},N.apply(null,arguments)}function Le(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function Q(e){var t=typeof Map=="function"?new Map:void 0;return Q=function(n){if(n===null||!Le(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t!="undefined"){if(t.has(n))return t.get(n);t.set(n,i)}function i(){return N(n,arguments,I(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),z(i,n)},Q(e)}function Oe(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function xe(e,t){return t&&(typeof t=="object"||typeof t=="function")?t:Oe(e)}function He(e){var t=he();return function(){var n=I(e),i;if(t){var a=I(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return xe(this,i)}}function ce(e){return $e(e)||Re(e)||fe(e)||je()}function $e(e){if(Array.isArray(e))return Z(e)}function Re(e){if(typeof Symbol!="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function fe(e,t){if(!!e){if(typeof e=="string")return Z(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Z(e,t)}}function Z(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function je(){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 Be(e,t){var r=typeof Symbol!="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=fe(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[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,s=!1,o;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return a=u.done,u},e:function(u){s=!0,o=u},f:function(){try{!a&&r.return!=null&&r.return()}finally{if(s)throw o}}}}var b=Object.prototype.hasOwnProperty;function B(e,t){return e=e.slice(),e.push(t),e}function k(e,t){return t=t.slice(),t.unshift(e),t}var Ne=function(e){ke(r,e);var t=He(r);function r(n){var i;return Me(this,r),i=t.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}(Q(Error));function d(e,t,r,n,i){if(!(this instanceof d))try{return new d(e,t,r,n,i)}catch(u){if(!u.avoidNew)throw u;return u.value}typeof e=="string"&&(i=n,n=r,r=t,t=e,e=null);var a=e&&g(e)==="object";if(e=e||{},this.json=e.json||r,this.path=e.path||t,this.resultType=e.resultType||"value",this.flatten=e.flatten||!1,this.wrap=b.call(e,"wrap")?e.wrap:!0,this.sandbox=e.sandbox||{},this.preventEval=e.preventEval||!1,this.parent=e.parent||null,this.parentProperty=e.parentProperty||null,this.callback=e.callback||n||null,this.otherTypeCallback=e.otherTypeCallback||i||function(){throw new TypeError("You must supply an otherTypeCallback callback option with the @other() operator.")},e.autostart!==!1){var s={path:a?e.path:t};a?"json"in e&&(s.json=e.json):s.json=r;var o=this.evaluate(s);if(!o||g(o)!=="object")throw new Ne(o);return o}}d.prototype.evaluate=function(e,t,r,n){var i=this,a=this.parent,s=this.parentProperty,o=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,t=t||this.json,e=e||this.path,e&&g(e)==="object"&&!Array.isArray(e)){if(!e.path&&e.path!=="")throw new TypeError('You must supply a "path" property when providing an object argument to JSONPath.evaluate().');if(!b.call(e,"json"))throw new TypeError('You must supply a "json" property when providing an object argument to JSONPath.evaluate().');var h=e;t=h.json,o=b.call(e,"flatten")?e.flatten:o,this.currResultType=b.call(e,"resultType")?e.resultType:this.currResultType,this.currSandbox=b.call(e,"sandbox")?e.sandbox:this.currSandbox,u=b.call(e,"wrap")?e.wrap:u,this.currPreventEval=b.call(e,"preventEval")?e.preventEval:this.currPreventEval,r=b.call(e,"callback")?e.callback:r,this.currOtherTypeCallback=b.call(e,"otherTypeCallback")?e.otherTypeCallback:this.currOtherTypeCallback,a=b.call(e,"parent")?e.parent:a,s=b.call(e,"parentProperty")?e.parentProperty:s,e=e.path}if(a=a||null,s=s||null,Array.isArray(e)&&(e=d.toPathString(e)),!(!e&&e!==""||!t)){var l=d.toPathArray(e);l[0]==="$"&&l.length>1&&l.shift(),this._hasParentSelector=null;var c=this._trace(l,t,["$"],a,s,r).filter(function(f){return f&&!f.isParentSelector});return c.length?!u&&c.length===1&&!c[0].hasArrExpr?this._getPreferredOutput(c[0]):c.reduce(function(f,p){var y=i._getPreferredOutput(p);return o&&Array.isArray(y)?f=f.concat(y):f.push(y),f},[]):u?[]:void 0}};d.prototype._getPreferredOutput=function(e){var t=this.currResultType;switch(t){case"all":{var r=Array.isArray(e.path)?e.path:d.toPathArray(e.path);return e.pointer=d.toPointer(r),e.path=typeof e.path=="string"?e.path:d.toPathString(e.path),e}case"value":case"parent":case"parentProperty":return e[t];case"path":return d.toPathString(e[t]);case"pointer":return d.toPointer(e.path);default:throw new TypeError("Unknown result type")}};d.prototype._handleCallback=function(e,t,r){if(t){var n=this._getPreferredOutput(e);e.path=typeof e.path=="string"?e.path:d.toPathString(e.path),t(n,r,e)}};d.prototype._trace=function(e,t,r,n,i,a,s,o){var u=this,h;if(!e.length)return h={path:r,value:t,parent:n,parentProperty:i,hasArrExpr:s},this._handleCallback(h,a,"value"),h;var l=e[0],c=e.slice(1),f=[];function p(m){Array.isArray(m)?m.forEach(function(_){f.push(_)}):f.push(m)}if((typeof l!="string"||o)&&t&&b.call(t,l))p(this._trace(c,t[l],B(r,l),t,l,a,s));else if(l==="*")this._walk(l,c,t,r,n,i,a,function(m,_,H,F,D,$,R,j){p(u._trace(k(m,H),F,D,$,R,j,!0,!0))});else if(l==="..")p(this._trace(c,t,r,n,i,a,s)),this._walk(l,c,t,r,n,i,a,function(m,_,H,F,D,$,R,j){g(F[m])==="object"&&p(u._trace(k(_,H),F[m],B(D,m),F,m,j,!0))});else{if(l==="^")return this._hasParentSelector=!0,{path:r.slice(0,-1),expr:c,isParentSelector:!0};if(l==="~")return h={path:B(r,l),value:i,parent:n,parentProperty:null},this._handleCallback(h,a,"property"),h;if(l==="$")p(this._trace(c,t,r,null,null,a,s));else if(/^(\x2D?[0-9]*):(\x2D?[0-9]*):?([0-9]*)$/.test(l))p(this._slice(l,c,t,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,t,r,n,i,a,function(m,_,H,F,D,$,R,j){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"),F[m],m,D,$,R)&&p(u._trace(k(m,H),F,D,$,R,j,!0))})}else if(l[0]==="("){if(this.currPreventEval)throw new Error("Eval [(expr)] prevented in JSONPath expression.");p(this._trace(k(this._eval(l,t,r[r.length-1],r.slice(0,-1),n,i),c),t,r,n,i,a,s))}else if(l[0]==="@"){var y=!1,C=l.slice(1,-2);switch(C){case"scalar":(!t||!["object","function"].includes(g(t)))&&(y=!0);break;case"boolean":case"string":case"undefined":case"function":g(t)===C&&(y=!0);break;case"integer":Number.isFinite(t)&&!(t%1)&&(y=!0);break;case"number":Number.isFinite(t)&&(y=!0);break;case"nonFinite":typeof t=="number"&&!Number.isFinite(t)&&(y=!0);break;case"object":t&&g(t)===C&&(y=!0);break;case"array":Array.isArray(t)&&(y=!0);break;case"other":y=this.currOtherTypeCallback(t,r,n,i);break;case"null":t===null&&(y=!0);break;default:throw new TypeError("Unknown value type "+C)}if(y)return h={path:r,value:t,parent:n,parentProperty:i},this._handleCallback(h,a,"value"),h}else if(l[0]==="`"&&t&&b.call(t,l.slice(1))){var G=l.slice(1);p(this._trace(c,t[G],B(r,G),t,G,a,s,!0))}else if(l.includes(",")){var Fe=l.split(","),J=Be(Fe),ae;try{for(J.s();!(ae=J.n()).done;){var Ae=ae.value;p(this._trace(k(Ae,c),t,r,n,i,a,!0))}}catch(m){J.e(m)}finally{J.f()}}else!o&&t&&b.call(t,l)&&p(this._trace(c,t[l],B(r,l),t,l,a,s,!0))}if(this._hasParentSelector)for(var S=0;S<f.length;S++){var q=f[S];if(q&&q.isParentSelector){var x=this._trace(q.expr,t,q.path,n,i,a,s);if(Array.isArray(x)){f[S]=x[0];for(var Se=x.length,K=1;K<Se;K++)S++,f.splice(S,0,x[K])}else f[S]=x}}return f};d.prototype._walk=function(e,t,r,n,i,a,s,o){if(Array.isArray(r))for(var u=r.length,h=0;h<u;h++)o(h,e,t,r,n,i,a,s);else r&&g(r)==="object"&&Object.keys(r).forEach(function(l){o(l,e,t,r,n,i,a,s)})};d.prototype._slice=function(e,t,r,n,i,a,s){if(!!Array.isArray(r)){var o=r.length,u=e.split(":"),h=u[2]&&Number.parseInt(u[2])||1,l=u[0]&&Number.parseInt(u[0])||0,c=u[1]&&Number.parseInt(u[1])||o;l=l<0?Math.max(0,l+o):Math.min(o,l),c=c<0?Math.max(0,c+o):Math.min(o,c);for(var f=[],p=l;p<c;p+=h){var y=this._trace(k(p,t),r,n,i,a,s,!0);y.forEach(function(C){f.push(C)})}return f}};d.prototype._eval=function(e,t,r,n,i,a){e.includes("@parentProperty")&&(this.currSandbox._$_parentProperty=a,e=e.replace(/@parentProperty/g,"_$_parentProperty")),e.includes("@parent")&&(this.currSandbox._$_parent=i,e=e.replace(/@parent/g,"_$_parent")),e.includes("@property")&&(this.currSandbox._$_property=r,e=e.replace(/@property/g,"_$_property")),e.includes("@path")&&(this.currSandbox._$_path=d.toPathString(n.concat([r])),e=e.replace(/@path/g,"_$_path")),e.includes("@root")&&(this.currSandbox._$_root=this.json,e=e.replace(/@root/g,"_$_root")),/@([\t-\r \)\.\[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])/.test(e)&&(this.currSandbox._$_v=t,e=e.replace(/@([\t-\r \)\.\[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])/g,"_$_v$1"));try{return this.vm.runInNewContext(e,this.currSandbox)}catch(s){throw console.log(s),new Error("jsonPath: "+s.message+": "+e)}};d.cache={};d.toPathString=function(e){for(var t=e,r=t.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(t[i])||(n+=/^[\*0-9]+$/.test(t[i])?"["+t[i]+"]":"['"+t[i]+"']");return n};d.toPointer=function(e){for(var t=e,r=t.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(t[i])||(n+="/"+t[i].toString().replace(/~/g,"~0").replace(/\//g,"~1"));return n};d.toPathArray=function(e){var t=d.cache;if(t[e])return t[e].concat();var r=[],n=e.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,s){return"[#"+(r.push(s)-1)+"]"}).replace(/\[["']((?:(?!['\]])[\s\S])*)["']\]/g,function(a,s){return"['"+s.replace(/\./g,"%@%").replace(/~/g,"%%@@%%")+"']"}).replace(/~/g,";~;").replace(/["']?\.["']?(?!(?:(?!\[)[\s\S])*\])|\[["']?/g,";").replace(/%@%/g,".").replace(/%%@@%%/g,"~").replace(/(?:;)?(\^+)(?:;)?/g,function(a,s){return";"+s.split("").join(";")+";"}).replace(/;;;|;;/g,";..;").replace(/;$|'?\]|'$/g,""),i=n.split(";").map(function(a){var s=a.match(/#([0-9]+)/);return!s||!s[1]?a:r[s[1]]});return t[e]=i,t[e].concat()};var Ie=function(t,r,n){for(var i=t.length,a=0;a<i;a++){var s=t[a];n(s)&&r.push(t.splice(a--,1)[0])}};d.prototype.vm={runInNewContext:function(t,r){var n=Object.keys(r),i=[];Ie(n,i,function(h){return typeof r[h]=="function"});var a=n.map(function(h,l){return r[h]}),s=i.reduce(function(h,l){var c=r[l].toString();return/function/.test(c)||(c="function "+c),"var "+l+"="+c+";"+h},"");t=s+t,!/(["'])use strict\1/.test(t)&&!n.includes("arguments")&&(t="var arguments = undefined;"+t),t=t.replace(/;[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*$/,"");var o=t.lastIndexOf(";"),u=o>-1?t.slice(0,o+1)+" return "+t.slice(o+1):" return "+t;return N(Function,ce(n).concat([u])).apply(void 0,ce(a))}};function ze(e,t){let r=document.createElement("div");r.innerHTML=e;let n=document.createDocumentFragment();for(;r.firstChild;)n.appendChild(r.firstChild);return E(n,t),r}function pe(e){return e.replace(/(\[[^\]\[]+\]|\.\*)$/g,"")}function ye(e){return pe(e)+".*"}function me(e){let t=e.getAttribute("data-path-scope");for(var r=0,n=e;n=n.previousElementSibling;)n.getAttribute("data-path-scope")==t&&r++;return r}function Je(e,t,r){let n=e.getAttribute("data-path-scope");if(n==null)return;var i=me(e);if(i!=0)return;let a=e.parentElement;if(a!=null){t==0?e.style.display="none":e.style.display&&(e.style.display="",e.getAttribute("style")==""&&e.removeAttribute("style"));for(var s=i+1,o=e,u=e;u=u.nextElementSibling;)u.getAttribute("data-path-scope")==n&&(s++,o=u);for(var h=s;h<t;h++)a.insertBefore(o.cloneNode(!0),o.nextElementSibling);for(var h=Math.max(1,t);h<s;h++)o=o.previousElementSibling,a.removeChild(o.nextElementSibling)}}function ee(e,t,r=!1,n=e){var i=t;let a=Object.keys(e).sort((o,u)=>u.length-o.length);for(let o of a)if(t.startsWith(o)){if(o==t){if(r)return e[o];continue}i=t.substring(o.length+1),n=e[o];break}let s=d({path:i,json:n});return r&&s&&Array.isArray(s)?s[0]:s}function L(e,t,r,n){var l;if(!!e){var i=e;n!=null&&n.processValue&&(r=n==null?void 0:n.processValue(e,t,r));var a=t.replace("data-path-","");if(t=="data-path-src")i=e.tagName=="IMG"?e:e.querySelector("img, video");else if(t=="data-path-href")i=e.querySelector("a")||e.closest("a");else if(t=="data-path-alt")i=e.querySelector("img, picture");else if(t=="data-path-hidden")r=r?null:!0;else if(t=="data-path"||t=="data-embed-html"||t=="html")a="innerHTML";else if(t=="data-embed-src")V(e,r);else if(t=="data-path-attributes"){let c=((l=e.getAttribute("data-attributes-keys"))==null?void 0:l.split(",").filter(Boolean))||[];for(var s in r){var o=r[s];L(e,s,typeof o=="object"&&o?JSON.stringify(o):o,n)}for(var u=0;u<c.length;u++)(r==null||!(c[u]in r))&&L(e,c[u],null,n);L(e,"data-attributes-keys",Object.keys(r||{}).join(","));return}if(typeof r=="boolean"&&(r=r?"":null),!!i){var h=String(e.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=h:i.removeAttribute(a)}}}function be(e){let t=new e.ownerDocument.defaultView.MutationObserver(r=>{r.forEach(n=>{let i=n.target,a=i.getAttribute("data-embed-src");a&&V(i,a),n.addedNodes&&n.addedNodes.forEach(s=>{s.nodeType==1&&ge(s,!1)})})});return t.observe(e,{attributes:!0,subtree:!0,childList:!0}),t}function ge(e,t=!0){let r=e.querySelectorAll("[data-embed-src]");for(var n=0;n<r.length;n++){let i=r[n];V(i,i.getAttribute("data-embed-src"))}if(t)return be(e)}function V(e,t){for(var r=e;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")==t)return!0;r.tagName=="HTML"&&(r=r.querySelector("head")||r);let a=r.ownerDocument.createElement("script");a.type="module",a.src=t,r.appendChild(a);break}}var de=["data-attributes-keys","data-path-attributes","data-path-scope"];function E(e,t,r,n){var s,o,u;let i=e;if(n||(t=((s=r==null?void 0:r.processData)==null?void 0:s.call(r,i,t))||t),i.nodeType==1){let h=i.getAttribute("data-path-scope");if(h){let c=me(i),f=ee(t,h,!1)||[];c==0&&Je(i,((o=r==null?void 0:r.shouldRepeat)==null?void 0:o.call(r,i,f))===!1?1:f.length,r),t=w(A({},t),{[ye(h)]:f[c]})}let l=Array.prototype.slice.call(i.attributes).sort((c,f)=>de.indexOf(c.name)-de.indexOf(f.name));for(var a=0;a<l.length;a++){let{name:c,value:f}=l[a];c.startsWith("data-path")&&c!="data-path-scope"&&L(i,c,ee(t,f,!0),r),c=="data-embed-src"&&L(i,c,i.getAttribute(c),r)}}for(var a=0;a<i.children.length;a++)E(i.children[a],t,r,!0);return n||(u=r==null?void 0:r.onRender)==null||u.call(r,i,t),i}function O(e,t,r,n){var a;let i=((a=n==null?void 0:n.processTemplate)==null?void 0:a.call(n,e,t,r))||t;return e.innerHTML=i,e.classList.add("-feaas"),E(e,r,n)}function qe(e,t){return ve(e,t||(t=document.createElement("style"))),t}function ve(e,t){return t||(t=document.createElement("style")),M(e,r=>{t.textContent=r}).then(()=>t)}function Ve(e,t){return Ee(e,t||(t=document.createElement("div"))),t}function Ee(e,t){return T(this,null,function*(){return t||(t=document.createElement("div")),t.childNodes.length?E(t,e.data,e):"template"in e?O(t,e.template,e.data,e):P(e,r=>O(t,r,e.data,e)).then(()=>t)})}var ie={};le(ie,{HTMLFeaasComponent:()=>W,HTMLFeaasStylesheet:()=>U});var Y=typeof HTMLElement=="undefined"?class{}:HTMLElement,W=class extends Y{constructor(){super(...arguments);this.connected=!1;this.template=null;this.data=void 0;this.isFetching=!1}static get observedAttributes(){return["data","library","component","version","revision","hostname","template"]}connectedCallback(){this.connected=!0,this.render()}disconnectedCallback(){}attributeChangedCallback(r,n,i){!this.connected||(r=="template"?this.template=i:r!="date"&&(this.template=null),r=="data"&&this.children.length>0?this.update():(cancelAnimationFrame(this.rendering),this.rendering=requestAnimationFrame(()=>{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.version!=null&&(this.isFetching=!0,P(r,n=>{this.template=n,this.isFetching=!1,O(this,this.template,r.data)}).catch(()=>{console.error(`FEAAS: Could not fetch component: ${r.component}/${r.version}/${r.revision}`)})):O(this,this.template,r.data)}getProps(){return{data:this.getData(),library:this.getAttribute("library")||void 0,component:this.getAttribute("component")||void 0,version:this.getAttribute("version")||void 0,revision:this.getAttribute("revision")||void 0,hostname:this.getAttribute("hostname")||void 0}}},U=class extends Y{constructor(){super(...arguments);this.connected=!1}static get observedAttributes(){return["library","revision","hostname"]}connectedCallback(){this.connected=!0,this.render()}attributeChangedCallback(){this.connected&&this.render()}render(){let r=this.getProps();M(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,revision:this.getAttribute("revision")||void 0,hostname:this.getAttribute("hostname")||void 0}}},re=class extends Y{constructor(){super(...arguments);this.src="https://components.sitecorecloud.io/assets/picker.js";this.onClose=()=>{this.set({mode:null})};this.onScriptLoaded=()=>{this.element=document.createElement("feaas-picker"),this.element.style.cssText="border: 0; width: 100%; height: 100%; display: block",this.appendChild(this.element),this.set(this.getProps())}}static get observedAttributes(){return["library","mode","hidden","src"]}connectedCallback(){this.loader=document.createElement("feaas-loader"),this.loader.style.cssText="position: absolute; top: 0; left: 0; right: 0;bottom: 0; ",this.appendChild(this.loader)}load(){this.script||(this.script=document.createElement("script"),this.script.type="module",this.script.onload=this.onScriptLoaded,this.script.src=this.src,this.script.crossOrigin="anonymous",this.appendChild(this.script))}getProps(){return{mode:this.getAttribute("mode"),context:this.context,library:this.getAttribute("library"),src:this.getAttribute("src")}}attributeChangedCallback(r,n,i){this.set(this.getProps())}set(r){Object.assign(this,r);let n=Object.keys(this.getProps());for(var i of n){let a=this[i];a==null?this.removeAttribute(i):this.getAttribute(i)!=String(a)&&this.setAttribute(i,String(a))}this.mode?this.removeAttribute("hidden"):this.getAttribute("hidden")==null&&this.setAttribute("hidden","hidden"),this.mode&&!this.hidden&&this.load(),this.element&&this.element.set&&(this.element.onClose=this.onClose,this.element.getToken=this.getToken,this.element.set(r))}},ne=class extends Y{static get observedAttributes(){return["hidden"]}connectedCallback(){this.style.opacity="1",this.style.transition="opacity 0.2s 0.6s",this.stylesheet=document.createElement("style"),this.stylesheet.textContent=`
|
|
4
|
-
#loader {
|
|
5
|
-
position: absolute;
|
|
6
|
-
top: 0;
|
|
7
|
-
left: 0;
|
|
8
|
-
right: 0;
|
|
9
|
-
bottom: 0;
|
|
10
|
-
display: flex;
|
|
11
|
-
align-items: center;
|
|
12
|
-
justify-content: center;
|
|
13
|
-
background: #f6f6ff;
|
|
14
|
-
z-index: 1000;
|
|
15
|
-
opacity: 1;
|
|
16
|
-
transition: top 0.3s, background-color 0.7s 0.3s;
|
|
17
|
-
}
|
|
18
|
-
@keyframes loader-disappearance {
|
|
19
|
-
100% {
|
|
20
|
-
opacity: 0;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
@keyframes loader-appearance {
|
|
24
|
-
0% {
|
|
25
|
-
opacity: 0;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
@keyframes loader-circular-track {
|
|
29
|
-
0% {
|
|
30
|
-
stroke-dasharray: 1, 400;
|
|
31
|
-
stroke-dashoffset: 0;
|
|
32
|
-
}
|
|
33
|
-
50% {
|
|
34
|
-
stroke-dasharray: 400, 400;
|
|
35
|
-
stroke-dashoffset: -100;
|
|
36
|
-
}
|
|
37
|
-
100% {
|
|
38
|
-
stroke-dasharray: 400, 400;
|
|
39
|
-
stroke-dashoffset: -260;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
@keyframes loader-circular-spinner {
|
|
44
|
-
0% {
|
|
45
|
-
transform: rotate(0deg);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
100% {
|
|
49
|
-
transform: rotate(360deg);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
#loader .spinner {
|
|
53
|
-
animation: loader-disappearance 0.6s both;
|
|
54
|
-
width: 48px;
|
|
55
|
-
height: 48px;
|
|
56
|
-
}
|
|
57
|
-
#loader .spinner {
|
|
58
|
-
animation: loader-appearance 0.6s both;
|
|
59
|
-
}
|
|
60
|
-
`,this.root=this.attachShadow({mode:"open"}),this.loader=document.createElement("div"),this.loader.id="loader",this.loader.innerHTML=`
|
|
61
|
-
<div class="spinner">
|
|
62
|
-
<svg
|
|
63
|
-
viewBox="0 0 100 100"
|
|
64
|
-
style="
|
|
65
|
-
animation: 2s linear 0s infinite normal none running loader-circular-spinner;
|
|
66
|
-
display: block;
|
|
67
|
-
width: 48px;
|
|
68
|
-
height: 48px;
|
|
69
|
-
"
|
|
70
|
-
>
|
|
71
|
-
<circle fill="transparent" cx="50" cy="50" r="42" stroke="rgba(0,0,0,0.1)" stroke-width="10px"></circle>
|
|
72
|
-
<circle
|
|
73
|
-
fill="transparent"
|
|
74
|
-
stroke="#5548D9"
|
|
75
|
-
cx="50"
|
|
76
|
-
cy="50"
|
|
77
|
-
r="42"
|
|
78
|
-
stroke-width="10px"
|
|
79
|
-
stroke-linecap="round"
|
|
80
|
-
style="animation: 1.5s linear 0s infinite normal none running loader-circular-track"
|
|
81
|
-
></circle>
|
|
82
|
-
</svg>
|
|
83
|
-
</div>`,this.shadowRoot.appendChild(this.stylesheet),this.shadowRoot.appendChild(this.loader)}};typeof window!="undefined"&&!window.customElements.get("feaas-stylesheet")&&(window.customElements.define("feaas-stylesheet",U),window.customElements.define("feaas-component",W),window.customElements.define("feaas-picker-lazy",re),window.customElements.define("feaas-loader",ne));function We(e){let[t,r]=v.useState("template"in e?e.template:null),n=e.data,i=v.useRef(null);return v.useEffect(()=>{t==null&&!("template"in e)&&P(e,r).catch(()=>{console.error(`FEAAS: Could not fetch component: ${e.library}/${e.component}/${e.version}/${e.revision}`)})},"template"in e?[e.template,null,null,null]:[e.library,e.component,e.version,e.revision,e.hostname]),v.useEffect(()=>{i.current&&t&&(i.current.innerHTML=t)},[i,t]),v.useEffect(()=>{t&&i.current&&E(i.current,n||{},e)},[i,t,n]),v.createElement("div",{ref:i,className:"-feaas"})}function Ue(e){let t=v.useRef(null),[r,n]=v.useState("");return v.useEffect(()=>{M(e,n).catch(i=>{console.error(`FEAAS: Could not fetch stylesheet for library ${e.library}`)})},[e.hostname,e.library]),v.createElement("style",{ref:t,rel:"stylesheet",className:"-stylesheet","data-library-id":e.library},[r])}var dt=w(A(A({},te),ie),{Stylesheet:Ue,Component:We});export{We as Component,W as HTMLFeaasComponent,U as HTMLFeaasStylesheet,Ue as Stylesheet,ge as autoloadScripts,pe as cleanCollectionBit,dt as default,P as fetchComponent,M as fetchStylesheet,De as getComponentURL,Pe as getStylesheetURL,V as loadScript,ye as normalizeCollectionScope,be as observeDOMElement,ee as queryScopes,Ve as renderComponent,ze as renderComponentElement,Ee as renderComponentPromise,O as renderDOMContent,E as renderDOMElement,qe as renderStylesheet,ve as renderStylesheetPromise,L as setDOMAttribute};
|
package/src/react.ts
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { CloudStylesheet, fetchComponent, fetchStylesheet } from './cloud.js'
|
|
3
|
-
import { FEAASComponentProps, renderDOMElement } from './dom.js'
|
|
4
|
-
export * from './dom.js'
|
|
5
|
-
export * from './cloud.js'
|
|
6
|
-
export * from './webcomponent.js'
|
|
7
|
-
import * as DOM from './dom.js'
|
|
8
|
-
import * as WEB from './webcomponent.js'
|
|
9
|
-
|
|
10
|
-
export function Component(props: FEAASComponentProps) {
|
|
11
|
-
const [template, setTemplate] = React.useState('template' in props ? props.template : null)
|
|
12
|
-
const data = props.data
|
|
13
|
-
const ref = React.useRef<HTMLElement>(null)
|
|
14
|
-
|
|
15
|
-
React.useEffect(
|
|
16
|
-
() => {
|
|
17
|
-
if (template == null && !('template' in props)) {
|
|
18
|
-
fetchComponent(props, setTemplate).catch(() => {
|
|
19
|
-
console.error(
|
|
20
|
-
`FEAAS: Could not fetch component: ${props.library}/${props.component}/${props.version}/${props.revision}`
|
|
21
|
-
)
|
|
22
|
-
})
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
'template' in props
|
|
26
|
-
? [props.template, null, null, null]
|
|
27
|
-
: [props.library, props.component, props.version, props.revision, props.hostname]
|
|
28
|
-
)
|
|
29
|
-
|
|
30
|
-
React.useEffect(() => {
|
|
31
|
-
if (ref.current && template) {
|
|
32
|
-
ref.current.innerHTML = template
|
|
33
|
-
}
|
|
34
|
-
}, [ref, template])
|
|
35
|
-
|
|
36
|
-
React.useEffect(() => {
|
|
37
|
-
if (template && ref.current) {
|
|
38
|
-
renderDOMElement(ref.current, data || {}, props)
|
|
39
|
-
}
|
|
40
|
-
}, [ref, template, data])
|
|
41
|
-
|
|
42
|
-
return React.createElement('div', { ref, className: '-feaas' })
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export function Stylesheet(props: CloudStylesheet) {
|
|
46
|
-
const ref = React.useRef<HTMLStyleElement>(null)
|
|
47
|
-
const [css, setCss] = React.useState<string>('')
|
|
48
|
-
|
|
49
|
-
React.useEffect(() => {
|
|
50
|
-
fetchStylesheet(props, setCss).catch((e) => {
|
|
51
|
-
console.error(`FEAAS: Could not fetch stylesheet for library ${props.library}`)
|
|
52
|
-
})
|
|
53
|
-
}, [props.hostname, props.library])
|
|
54
|
-
|
|
55
|
-
return React.createElement(
|
|
56
|
-
'style',
|
|
57
|
-
{ ref, rel: 'stylesheet', className: '-stylesheet', 'data-library-id': props.library },
|
|
58
|
-
[css]
|
|
59
|
-
)
|
|
60
|
-
}
|
|
61
|
-
export default {
|
|
62
|
-
...DOM,
|
|
63
|
-
...WEB,
|
|
64
|
-
Stylesheet,
|
|
65
|
-
Component
|
|
66
|
-
}
|
package/src/webcomponent.ts
DELETED
|
@@ -1,379 +0,0 @@
|
|
|
1
|
-
import { CloudTemplate, fetchComponent, fetchStylesheet } from './cloud.js'
|
|
2
|
-
import { Datascopes, renderDOMContent, renderDOMElement } from './dom.js'
|
|
3
|
-
|
|
4
|
-
declare global {
|
|
5
|
-
namespace JSX {
|
|
6
|
-
interface IntrinsicElements {
|
|
7
|
-
'feaas-component': {
|
|
8
|
-
data?: any
|
|
9
|
-
library: string
|
|
10
|
-
component: string
|
|
11
|
-
version: string
|
|
12
|
-
revision?: string
|
|
13
|
-
hostname?: string
|
|
14
|
-
template?: string
|
|
15
|
-
children?: any
|
|
16
|
-
}
|
|
17
|
-
'feaas-stylesheet': {
|
|
18
|
-
library?: string
|
|
19
|
-
hostname?: string
|
|
20
|
-
children?: any
|
|
21
|
-
}
|
|
22
|
-
'feaas-picker': {
|
|
23
|
-
library: string
|
|
24
|
-
mode?: string
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// Shim in case it's required in node.js environment
|
|
31
|
-
var WebComponent = typeof HTMLElement == 'undefined' ? (class {} as unknown as typeof HTMLElement) : HTMLElement
|
|
32
|
-
|
|
33
|
-
export class HTMLFeaasComponent extends WebComponent {
|
|
34
|
-
static get observedAttributes() {
|
|
35
|
-
return ['data', 'library', 'component', 'version', 'revision', 'hostname', 'template']
|
|
36
|
-
}
|
|
37
|
-
connected = false
|
|
38
|
-
|
|
39
|
-
template: string = null
|
|
40
|
-
data: any = undefined
|
|
41
|
-
isFetching: boolean = false
|
|
42
|
-
rendering: ReturnType<typeof requestAnimationFrame>
|
|
43
|
-
|
|
44
|
-
connectedCallback() {
|
|
45
|
-
this.connected = true
|
|
46
|
-
this.render()
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
disconnectedCallback() {}
|
|
50
|
-
|
|
51
|
-
attributeChangedCallback(name: string, oldValue: string, newValue: string) {
|
|
52
|
-
if (!this.connected) return
|
|
53
|
-
if (name == 'template') {
|
|
54
|
-
this.template = newValue
|
|
55
|
-
} else if (name != 'date') {
|
|
56
|
-
this.template = null
|
|
57
|
-
}
|
|
58
|
-
if (name == 'data' && this.children.length > 0) {
|
|
59
|
-
this.update()
|
|
60
|
-
} else {
|
|
61
|
-
cancelAnimationFrame(this.rendering)
|
|
62
|
-
this.rendering = requestAnimationFrame(() => {
|
|
63
|
-
this.render()
|
|
64
|
-
})
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
update() {
|
|
69
|
-
renderDOMElement(this, this.getProps().data)
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
setData(data: any) {
|
|
73
|
-
this.data = data
|
|
74
|
-
if (this.children.length > 0) {
|
|
75
|
-
this.update()
|
|
76
|
-
} else {
|
|
77
|
-
this.render()
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
getOriginal() {
|
|
82
|
-
const scope = this.getAttribute('data-path-scope')
|
|
83
|
-
if (!scope) return
|
|
84
|
-
for (var current = this as Element; (current = current.previousElementSibling); ) {
|
|
85
|
-
if (current.getAttribute('data-path-scope') == scope) {
|
|
86
|
-
var last = current
|
|
87
|
-
} else {
|
|
88
|
-
break
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return last as HTMLFeaasComponent
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
getData(): any {
|
|
95
|
-
if (this.data) {
|
|
96
|
-
return this.data
|
|
97
|
-
}
|
|
98
|
-
if (this.getAttribute('data')) {
|
|
99
|
-
const dataValue = this.getAttribute('data')
|
|
100
|
-
return typeof dataValue == 'string' ? JSON.parse(dataValue) : {}
|
|
101
|
-
}
|
|
102
|
-
return this.getOriginal()?.getData() || {}
|
|
103
|
-
return {}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
render() {
|
|
107
|
-
// defer rendering to original element
|
|
108
|
-
if (this.getOriginal()) {
|
|
109
|
-
return
|
|
110
|
-
}
|
|
111
|
-
const newProps = this.getProps()
|
|
112
|
-
if (this.template == null) {
|
|
113
|
-
if (!this.isFetching) {
|
|
114
|
-
if (newProps.component != null && newProps.version != null) {
|
|
115
|
-
this.isFetching = true
|
|
116
|
-
fetchComponent(newProps, (template) => {
|
|
117
|
-
this.template = template
|
|
118
|
-
this.isFetching = false
|
|
119
|
-
renderDOMContent(this, this.template, newProps.data)
|
|
120
|
-
}).catch(() => {
|
|
121
|
-
console.error(
|
|
122
|
-
`FEAAS: Could not fetch component: ${newProps.component}/${newProps.version}/${newProps.revision}`
|
|
123
|
-
)
|
|
124
|
-
})
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
} else {
|
|
128
|
-
renderDOMContent(this, this.template, newProps.data)
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
getProps(): CloudTemplate & { data: Datascopes } {
|
|
133
|
-
return {
|
|
134
|
-
data: this.getData(),
|
|
135
|
-
library: (this.getAttribute('library') || undefined) as string,
|
|
136
|
-
component: (this.getAttribute('component') || undefined) as string,
|
|
137
|
-
version: (this.getAttribute('version') || undefined) as string,
|
|
138
|
-
revision: (this.getAttribute('revision') || undefined) as string,
|
|
139
|
-
hostname: (this.getAttribute('hostname') || undefined) as string
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
export class HTMLFeaasStylesheet extends WebComponent {
|
|
145
|
-
static get observedAttributes() {
|
|
146
|
-
return ['library', 'revision', 'hostname']
|
|
147
|
-
}
|
|
148
|
-
connected = false
|
|
149
|
-
connectedCallback() {
|
|
150
|
-
this.connected = true
|
|
151
|
-
this.render()
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
attributeChangedCallback() {
|
|
155
|
-
if (this.connected) this.render()
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
render() {
|
|
159
|
-
const props = this.getProps()
|
|
160
|
-
fetchStylesheet(props, (cssText) => {
|
|
161
|
-
this.innerHTML = '<style>' + cssText + '</style>'
|
|
162
|
-
}).catch((e) => {
|
|
163
|
-
console.error(`FEAAS: Could not fetch stylesheet for library ${props.library}`)
|
|
164
|
-
})
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
getProps() {
|
|
168
|
-
return {
|
|
169
|
-
library: (this.getAttribute('library') || undefined) as string,
|
|
170
|
-
revision: (this.getAttribute('revision') || undefined) as string,
|
|
171
|
-
hostname: (this.getAttribute('hostname') || undefined) as string
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
export interface PickerProps<T = HTMLElement> {
|
|
176
|
-
children?: any
|
|
177
|
-
context?: T
|
|
178
|
-
isOpen?: boolean
|
|
179
|
-
mode?: 'library' | 'stylesheet'
|
|
180
|
-
src?: string
|
|
181
|
-
onClose?: () => any
|
|
182
|
-
}
|
|
183
|
-
export interface HTMLFeaasPickerProps extends Omit<PickerProps<HTMLElement>, 'children'> {
|
|
184
|
-
getAccessTokenSilently: (options: any) => Promise<string>
|
|
185
|
-
library: string
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
interface HTMLFeaasPickerLazy extends HTMLFeaasPickerProps {}
|
|
189
|
-
class HTMLFeaasPickerLazy extends WebComponent {
|
|
190
|
-
static get observedAttributes() {
|
|
191
|
-
return ['library', 'mode', 'hidden', 'src']
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
getToken?: (options: any) => Promise<string>
|
|
195
|
-
|
|
196
|
-
src = 'https://components.sitecorecloud.io/assets/picker.js'
|
|
197
|
-
|
|
198
|
-
script: HTMLScriptElement
|
|
199
|
-
element: HTMLFeaasPickerLazy
|
|
200
|
-
loader: HTMLFeaasLoader
|
|
201
|
-
|
|
202
|
-
connectedCallback() {
|
|
203
|
-
this.loader = document.createElement('feaas-loader') as HTMLFeaasLoader
|
|
204
|
-
this.loader.style.cssText = 'position: absolute; top: 0; left: 0; right: 0;bottom: 0; '
|
|
205
|
-
this.appendChild(this.loader)
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
load() {
|
|
209
|
-
if (!this.script) {
|
|
210
|
-
this.script = document.createElement('script')
|
|
211
|
-
this.script.type = 'module'
|
|
212
|
-
this.script.onload = this.onScriptLoaded
|
|
213
|
-
this.script.src = this.src
|
|
214
|
-
this.script.crossOrigin = 'anonymous'
|
|
215
|
-
this.appendChild(this.script)
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
getProps() {
|
|
220
|
-
return {
|
|
221
|
-
mode: this.getAttribute('mode') as PickerProps['mode'],
|
|
222
|
-
context: this.context,
|
|
223
|
-
library: this.getAttribute('library'),
|
|
224
|
-
src: this.getAttribute('src')
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
attributeChangedCallback(name: string, oldValue: string, newValue: string) {
|
|
229
|
-
this.set(this.getProps())
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
set(options: Partial<HTMLFeaasPickerProps>) {
|
|
233
|
-
Object.assign(this, options)
|
|
234
|
-
const keys = Object.keys(this.getProps())
|
|
235
|
-
for (var key of keys) {
|
|
236
|
-
const value = this[key as keyof typeof this]
|
|
237
|
-
if (value == null) {
|
|
238
|
-
this.removeAttribute(key)
|
|
239
|
-
} else if (this.getAttribute(key) != String(value)) {
|
|
240
|
-
this.setAttribute(key, String(value))
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
if (this.mode) {
|
|
244
|
-
this.removeAttribute('hidden')
|
|
245
|
-
} else if (this.getAttribute('hidden') == null) {
|
|
246
|
-
this.setAttribute('hidden', 'hidden')
|
|
247
|
-
}
|
|
248
|
-
if (this.mode && !this.hidden) {
|
|
249
|
-
this.load()
|
|
250
|
-
}
|
|
251
|
-
if (this.element && this.element.set) {
|
|
252
|
-
this.element.onClose = this.onClose
|
|
253
|
-
this.element.getToken = this.getToken
|
|
254
|
-
this.element.set(options)
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
onClose = () => {
|
|
259
|
-
this.set({
|
|
260
|
-
mode: null
|
|
261
|
-
})
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
onScriptLoaded = () => {
|
|
265
|
-
this.element = document.createElement('feaas-picker') as HTMLFeaasPickerLazy
|
|
266
|
-
this.element.style.cssText = 'border: 0; width: 100%; height: 100%; display: block'
|
|
267
|
-
this.appendChild(this.element)
|
|
268
|
-
this.set(this.getProps())
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
class HTMLFeaasLoader extends WebComponent {
|
|
273
|
-
stylesheet: HTMLStyleElement
|
|
274
|
-
root: ShadowRoot
|
|
275
|
-
loader: HTMLDivElement
|
|
276
|
-
|
|
277
|
-
static get observedAttributes() {
|
|
278
|
-
return ['hidden']
|
|
279
|
-
}
|
|
280
|
-
connectedCallback() {
|
|
281
|
-
this.style.opacity = '1'
|
|
282
|
-
this.style.transition = 'opacity 0.2s 0.6s'
|
|
283
|
-
this.stylesheet = document.createElement('style')
|
|
284
|
-
this.stylesheet.textContent = `
|
|
285
|
-
#loader {
|
|
286
|
-
position: absolute;
|
|
287
|
-
top: 0;
|
|
288
|
-
left: 0;
|
|
289
|
-
right: 0;
|
|
290
|
-
bottom: 0;
|
|
291
|
-
display: flex;
|
|
292
|
-
align-items: center;
|
|
293
|
-
justify-content: center;
|
|
294
|
-
background: #f6f6ff;
|
|
295
|
-
z-index: 1000;
|
|
296
|
-
opacity: 1;
|
|
297
|
-
transition: top 0.3s, background-color 0.7s 0.3s;
|
|
298
|
-
}
|
|
299
|
-
@keyframes loader-disappearance {
|
|
300
|
-
100% {
|
|
301
|
-
opacity: 0;
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
@keyframes loader-appearance {
|
|
305
|
-
0% {
|
|
306
|
-
opacity: 0;
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
@keyframes loader-circular-track {
|
|
310
|
-
0% {
|
|
311
|
-
stroke-dasharray: 1, 400;
|
|
312
|
-
stroke-dashoffset: 0;
|
|
313
|
-
}
|
|
314
|
-
50% {
|
|
315
|
-
stroke-dasharray: 400, 400;
|
|
316
|
-
stroke-dashoffset: -100;
|
|
317
|
-
}
|
|
318
|
-
100% {
|
|
319
|
-
stroke-dasharray: 400, 400;
|
|
320
|
-
stroke-dashoffset: -260;
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
@keyframes loader-circular-spinner {
|
|
325
|
-
0% {
|
|
326
|
-
transform: rotate(0deg);
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
100% {
|
|
330
|
-
transform: rotate(360deg);
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
#loader .spinner {
|
|
334
|
-
animation: loader-disappearance 0.6s both;
|
|
335
|
-
width: 48px;
|
|
336
|
-
height: 48px;
|
|
337
|
-
}
|
|
338
|
-
#loader .spinner {
|
|
339
|
-
animation: loader-appearance 0.6s both;
|
|
340
|
-
}
|
|
341
|
-
`
|
|
342
|
-
this.root = this.attachShadow({ mode: 'open' })
|
|
343
|
-
this.loader = document.createElement('div')
|
|
344
|
-
this.loader.id = 'loader'
|
|
345
|
-
this.loader.innerHTML = `
|
|
346
|
-
<div class="spinner">
|
|
347
|
-
<svg
|
|
348
|
-
viewBox="0 0 100 100"
|
|
349
|
-
style="
|
|
350
|
-
animation: 2s linear 0s infinite normal none running loader-circular-spinner;
|
|
351
|
-
display: block;
|
|
352
|
-
width: 48px;
|
|
353
|
-
height: 48px;
|
|
354
|
-
"
|
|
355
|
-
>
|
|
356
|
-
<circle fill="transparent" cx="50" cy="50" r="42" stroke="rgba(0,0,0,0.1)" stroke-width="10px"></circle>
|
|
357
|
-
<circle
|
|
358
|
-
fill="transparent"
|
|
359
|
-
stroke="#5548D9"
|
|
360
|
-
cx="50"
|
|
361
|
-
cy="50"
|
|
362
|
-
r="42"
|
|
363
|
-
stroke-width="10px"
|
|
364
|
-
stroke-linecap="round"
|
|
365
|
-
style="animation: 1.5s linear 0s infinite normal none running loader-circular-track"
|
|
366
|
-
></circle>
|
|
367
|
-
</svg>
|
|
368
|
-
</div>`
|
|
369
|
-
this.shadowRoot.appendChild(this.stylesheet)
|
|
370
|
-
this.shadowRoot.appendChild(this.loader)
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
if (typeof window != 'undefined' && !window.customElements.get('feaas-stylesheet')) {
|
|
375
|
-
window.customElements.define('feaas-stylesheet', HTMLFeaasStylesheet)
|
|
376
|
-
window.customElements.define('feaas-component', HTMLFeaasComponent)
|
|
377
|
-
window.customElements.define('feaas-picker-lazy', HTMLFeaasPickerLazy)
|
|
378
|
-
window.customElements.define('feaas-loader', HTMLFeaasLoader)
|
|
379
|
-
}
|