spyne
Version:
Reactive Real-DOM Framework for Advanced Javascript applications
1 lines • 121 kB
JavaScript
import{fromEventPattern as e,Observable as t,Subject as n,bindCallback as r,fromEvent as o,of as s,ReplaySubject as i,forkJoin as a,EMPTY as c,merge as l,from as u}from"rxjs";import{compose as d,complement as h,isEmpty as E,head as p,values as N,isNil as _,allPass as f,reject as m,equals as T,keys as A,find as C,is as y,assoc as g,prop as v,when as b,__ as I,join as S,replace as L,flatten as O,map as D,toPairs as R,ifElse as H,always as V,concat as w,either as P,propEq as U,test as M,findLastIndex as W,last as x,filter as F,invert as $,defaultTo as k,reduce as j,zipObj as G,split as Y,fromPairs as z,has as B,path as K,uniq as q,chain as Q,includes as X,mergeRight as J,pickAll as Z,pick as ee,mergeDeepRight as te,clone as ne,not as re,mergeAll as oe,lte as se,match as ie,without as ae,mapObjIndexed as ce,pipe as le,forEachObjIndexed as ue,flip as de,propSatisfies as he,forEach as Ee,props as pe,omit as Ne,any as _e,curry as fe,where as me,F as Te,all as Ae,slice as Ce,toLower as ye,findIndex as ge,apply as ve,identity as be,objOf as Ie,view as Se,lensIndex as Le,lensProp as Oe,over as De,reverse as Re,curryN as He,toUpper as Ve,partialRight as we,pluck as Pe,pathEq as Ue,propIs as Me,pathSatisfies as We}from"ramda";import xe from"dompurify";class Fe{constructor(){this.checkIfObjIsNotEmptyOrNil=Fe.checkIfObjIsNotEmptyOrNil.bind(this)}static checkIfObjIsNotEmptyOrNil(e){const t=d(h(E),p,N),n=d(h(_),p,N);return f([t,n])(e)}static checkIfParamValueMatchesRegex(e,t){const n=m(T("routeName")),r=d(n,A),o=d(C((t=>M(new RegExp(t),e))),r)(t);return y(String,o)&&(t=g(e,v(o,t),t)),t}static formatStrAsWindowLocation(e){return{hash:e,search:e,pathname:e}}static getLocationStrByType(e,t=!1,n=window.location){return v({slash:"pathname",query:"search",hash:"hash"}[!0===t?"hash":e],n).replace(/^(\/)?(#)?(\/)?(.*)$/,"$4")}static createRouteArrayFromParams(e,t,n="slash",r){const o=[],s=t=>{const n={},i=t.routeName;let a=void 0!==e[i]?e[i]:v(i,r);const c=typeof t[a];"string"===c?a=t[a]:"undefined"===c&&(t=this.checkIfParamValueMatchesRegex(a,t)),n[i]=a,this.checkIfObjIsNotEmptyOrNil(n)&&o.push(n);const l=y(Object,t),u=B(a,t),d=B("routePath",t);if(!0===(u&&l)){const e=t[a];B("routePath",e)&&s(e.routePath)}else!0===d&&void 0!==a&&s(t.routePath)};return s(t),o}static createSlashString(e){const t=m(_),n=b(h(_,I),S("/")),r=L(/^(\^*)(.*|^\$)(\$)$/,"$2");return d(r,n,t,O,D(N))(e)}static createQueryString(e){const t=m(_),n=this.checkIfObjIsNotEmptyOrNil,r=d(S("="),O,R),o=H(n,r,V(void 0)),s=D(o),i=b(h(E),w("?"));return d(i,S("&"),t,s)(e)}static checkPayloadForRegexOverrides(e,t,n="Value"){const r=d((e=>v(`${e}${n}`,t)),p,A);return D((e=>{const t=r(e);return void 0!==t?g(d(p,A)(e),t,e):e}),e)}static checkForRouteValWithMultipleVals(e){const t=e=>{const t=(t,n)=>(t[n]=(e=>{const t=e.match(/^[^|]*/);return t?"^$"===t[0]?"":t[0]:e})(e[n]),t);return"object"==typeof e&&(e=Object.keys(e).reduce(t,{})),e};return!0===Array.isArray(e)?e.map(t):e}static checkForRouteValsPartMatch(e,t={}){const n=(e,t)=>t.split("|").some((t=>((e,t)=>{const n=e.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,"[\\w\\d_-]*");return new RegExp(`^${n}$`).test(t)})(t,e)))?e:t;return e.map((e=>{const r={...e};return Object.keys(r).forEach((e=>{Object.prototype.hasOwnProperty.call(r,e)&&t[e]&&(r[e]=n(t[e],r[e]))})),r}))}static convertParamsToRoute(e,t=at.config.channels.ROUTE,n,r){const o=void 0!==n?n:t.type,s=t.isHash,i=t.routes.routePath,a=void 0!==r?r:this.getLocationStrByType(o,s),c=this.convertRouteToParams(a,t,o).routeData;let l=this.createRouteArrayFromParams(e,i,o,c);return l=Fe.checkPayloadForRegexOverrides(l,e),l=Fe.checkForRouteValWithMultipleVals(l),"query"===o?this.createQueryString(l):this.createSlashString(l)}static findIndexOfMatchedStringOrRegex(e,t){const n=t.includes(".+"),r=L(/^$/,"^$"),o=P(U(e,"str"),d(M(I,e),v("re")));return d(W(T(!0)),D(o),D((e=>{return{str:e,re:(t=e,n&&(t.startsWith("^")||(t="^"+t),t.endsWith("$")||(t+="$")),new RegExp(t))};var t})),D(r))(t)}static checkIfValueShouldMapToParam(e,t,n){const r=d(D(x),D(F(y(String))),R)(e),o=Fe.findIndexOfMatchedStringOrRegex(t,r);let s=t;if(o>=0){const t=r[o],n=$(e),i=d(p,k([]),v(t))(n);!0===/^([-$\w]*)$/.test(i)&&!0===y(String,i)&&(s=i)}return s}static createArrFromSlashStr(e){return e.replace(/^([/])?(.*)$/,"$2").split("/")}static convertSlashRouteStrToParamsObj(e,t,n){const r=t,o=this.createArrFromSlashStr(t),s=[],i=[];let a=e;j(((e,t)=>{const r=this.checkIfValueShouldMapToParam(a,t,n);a=this.checkIfParamValueMatchesRegex(t,a);const o=P(E,_);void 0!==a&&(e=>e!==x(s))(a.routeName)&&!1===o(r)&&(s.push(a.routeName),i.push(r));const c=K([t,"routePath"],a),l=K(["routePath"],a);void 0!==c?a=c:void 0!==l&&(a=l)}),0,o);const c=G(s,i),l=this.getLastArrVal(s);return{paths:s,pathInnermost:l,routeData:c,routeValue:r}}static getLastArrVal(e){return void 0!==x(t=e)?x(t):"";var t}static createDefaultParamFromEmptyStr(e,t){const n={};return n[e.routeName]=this.checkIfValueShouldMapToParam(e,t),n}static convertQueryStrToParams(e,t,n){const r=t,o=t.replace(/^([?])?(.*)$/,"$2"),s=d(D(Y("=")),Y("&"))(o);let i=z(s),a=D(p,s);!0===E(t)&&(i=this.createDefaultParamFromEmptyStr(e,t,n),a=A(i));return{paths:a,pathInnermost:this.getLastArrVal(a),routeData:i,routeValue:r}}static convertRouteToParams(e,t,n){if(void 0===t)return{};const r=void 0!==n?n:t.type,o=k({},v("regexTokens",t)),s=t.routes.routePath;return"query"===r?this.convertQueryStrToParams(s,e):(e=e.replace(/\/$|$/,"/"),this.convertSlashRouteStrToParamsObj(s,e,o))}}class $e{constructor(){this.createPopStateStream=$e.createPopStateStream.bind(this)}static createPopStateStream(t){e((function(e){window.onpopstate=e}),(function(){window.onpopstate=function(){}})).subscribe(t)}static getLastArrVal(e){return void 0!==x(t=e)?x(t):"";var t}static compareRouteKeywords(e={},t){const n=(e,t)=>void 0!==t?ee(t,e):e;let r=n(e,t);return{pickValues:n,compare:(e={},t)=>{const o=n(e,t),s=e=>d(A,F(U(!0,e))),i=d(D((e=>{const t=v(e,r),n=v(e,o),s=T(t,n),i=void 0!==t,a=void 0!==n,c=!s,l=!1===i&&!0===a,u=!0===i&&!1===a,d={};return d[e]={same:s,changed:c,added:l,removed:u,previousExists:i,nextExists:a},d})),q,Q(A))([r,o]),a=Q(s("changed"),i),c=Q(s("added"),i),l=Q(s("removed"),i);return r=o,{pathsAdded:c,pathsRemoved:l,pathsChanged:a}},getComparer:()=>r}}static getRouteArrData(e,t){const n=F(X(I,e),t);return{paths:n,pathInnermost:$e.getLastArrVal(n)}}static flattenConfigObject(e){const t=e=>Q((([e,n])=>"object"!=typeof n||null===n||Array.isArray(n)?[[e,n]]:D((([t,n])=>[`${e}.${t}`,n]),t(n))),R(e));return N(z(t(e)))}static addRouteDatasets(e){const{type:t,isHash:n}=e,r=r=>{const o="query"===t?"":!0===n?"#":"/",s=Fe.convertParamsToRoute(r,e);return o+s.replace(/^(.*\/)([\w-]*\/?)(.*)$/gm,"$1$2")},o=/^([A-Za-z0-9_-])+$/m,s=(e=[],t,n={})=>{let{routeName:i}=t;return R(t).reduce(((t,a)=>{const[c,l]=a,u=y(Object,l),d=e=>M(o,e)?(e=>String(e).replace(/([-_])/g," ").toUpperCase())(e):c;if("routeName"===c||"404"===c)return t;i=i||v("routeName",l);let h=ne(n);if(h[i]=String(c).replace(/([^A-Za-z0-9-_])/g,""),!0===u){if(1===A(h).length){const e=K(["routePath","routeName"],l);if(e){const o=ne(h);o[e]="",o.navLevel=A(n).length,o.title=d(c),o.href=r(o),t.push(o)}}h=s(e,l,h)}else h.title=d(c),h.href=r(h);return h.navLevel=A(n).length,t.push(h),t}),[])},i=s([],e.routes);let a=O(i);a=function e(t){return t.map((t=>{for(const n in t)void 0===n||"undefined"===n||void 0===t[n]?delete t[n]:t[n]&&"object"==typeof t[n]&&!Array.isArray(t[n])&&(t[n]=e([t[n]])[0]);return t}))}(a);return{routeDatasetsArr:a,routeNamesArr:(e=>{const t=m(X(I,["title","href","navLevel","undefined"]));return d(q,t,O,D(A))(e)})(a)}}static conformRouteObject(e={},t=!1){const n=K(["channels","ROUTE"],e);let{add404s:r}=void 0!==n?n:e;r=r||t;const o=e=>{const t=e[1],n=y(Array,t);return""===t?e[1]="^$":n&&(e[1]=t.join("|")),e},s=d(z,D((e=>{const[t,n]=e,i=r?{404:".+"}:{},a=y(Object,n),c=y(Array,n),l="routePath"===t;return!0===a&&!1===c&&(e[1]=s(e[1]),l&&(e[1]=d(te(i),z,D(o),R)(e[1]))),e})),R);if(void 0!==n){e.channels.ROUTE=s(e.channels.ROUTE);const t=$e.addRouteDatasets(e.channels.ROUTE);return e.channels.ROUTE=J(e.channels.ROUTE,t),e}return s(e)}static getLocationData(){return Z(["href","origin","protocol","host","hostname","port","pathname","search","hash"],window.location)}}const ke=Object.create({}),je=d(re,y(Array)),Ge=d(f([je,y(Object)]));function Ye(e){return e&&"object"==typeof e&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)}function ze(e,t){return t&&!0===t.clone&&Ye(e)?Ke((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function Be(e,t,n){const r=e.slice();return t.forEach((function(t,o){void 0===r[o]?r[o]=ze(t,n):Ye(t)?r[o]=Ke(e[o],t,n):-1===e.indexOf(t)&&r.push(ze(t,n))})),r}function Ke(e,t,n){const r=Array.isArray(t),o=(n||{arrayMerge:Be}).arrayMerge||Be;return r?Array.isArray(e)?o(e,t,n):ze(t,n):function(e,t,n){const r={};return Ye(e)&&Object.keys(e).forEach((function(t){r[t]=ze(e[t],n)})),Object.keys(t).forEach((function(o){Ye(t[o])&&e[o]?r[o]=Ke(e[o],t[o],n):r[o]=ze(t[o],n)})),r}(e,t,n)}let qe,Qe,Xe,Je;Ke.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce((function(e,n){return Ke(e,n,t)}))};let Ze=!0,et=!1;const tt=[];let nt,rt;const ot=[],st=new Map;const it=new class{constructor(){ke.foo=()=>console.log("used for testing purposes.")}addMethod(e,t,n=!1){if(!0===Object.prototype.hasOwnProperty.call(ke,e)){const t=`Spyne Warning: the method name, ${e}, already exists.`;if(n)return t;console.warn(t)}else ke[e]=t}addMethods(e={},t=!1){let n;if(!1===Ge(e))return n=`Spyne Warning: the pluginMethods property, ${JSON.stringify(e)} needs to be an object.`,t?n:void console.warn(n);return A(e).map((r=>{const o=v(r,e);if("function"==typeof o)this.addMethod(r,o,t);else{if(n=`the value for ${r} is not a valid function.`,t)return n;console.warn(n)}})).join(",")}checkIfMethodExists(e){}get pluginMethodsObj(){return ke}};const at=new class{constructor(){Je=!1}get channelsMap(){return Xe}get initialized(){return Je}get config(){return qe}get debug(){return Ze}static listChannels(){return Array.from(Qe.map.keys())}initialize(e={},t={},n,r){return Qe=n,qe=Ke(e,t),qe.channels&&qe.channels.ROUTE&&(qe=r.conformRouteObject(qe)),rt=qe?.IMG_PATH,Ze=void 0!==qe.debug?qe.debug:Ze,this.getChannelActions=Qe.getChannelActions.bind(Qe),this.listRegisteredChannels=Qe.listRegisteredChannels.bind(Qe),Je=!0,this._initialized=Je,this.setChannelsMap(),t?.baseHref&&this.setHeadBaseHref(t.baseHref),qe}setHeadBaseHref(e){const t=document.createElement("base");t.href=e,document.head.appendChild(t)}conformRouteConfig(e=!1){qe=$e.conformRouteObject(qe,e)}setChannelsMap(){const e=Qe.getStream.bind(Qe),t=Qe.testStream.bind(Qe),n=Qe.getProxySubject.bind(Qe);Xe={getStream:e,testStream:t,getProxySubject:n}}setProp(e,t,n=!1){return n?(qe.ephemeralProps[e]=t,t):(qe.tmpProps[e]=t,e)}getProp(e){if(qe.ephemeralProps.hasOwnProperty(e)){const t=qe.ephemeralProps[e];return delete qe.ephemeralProps[e],t}return qe?.tmpProps?.[e]}createTempProp(e){const t=Math.random().toString(36).slice(2,8);return this.setProp(t,e,!0),t}setChannelConfig(e,t){return qe.channels[e]=t,qe.channels[e]}getChannelConfig(e,t=qe){if("CHANNEL_ROUTE"===e?e="ROUTE":"CHANNEL_WINDOW"===e&&(e="WINDOW"),void 0===t||void 0===qe.channels)return void console.warn("Spyne warning: Spyne config object is empty!");const n=qe.channels[e];if(void 0!==n)return n;console.warn(`Spyne warning: Spyne configuration for channel, ${e} is empty!`)}registerChannel(){}addPluginConfig(e,t={}){void 0===qe.plugins&&(qe.plugins={}),this.addPluginMethods(t.pluginMethods),qe.plugins[e]=t}getPluginsMethodObj(e){return e&&this.addPluginMethods(e),it.pluginMethodsObj}addPluginMethods(e){e&&it.addMethods(e)}doNotTrackChannel(e){ot.push(e)}getUntrackedChannelsList(){return ot}registerProxyReviver(e,t){st.set(e,t)}registerPlugin(e){this._initialized||console.warn("SpyneApp is not initialized yet. Plugin will not be fully registered."),e.register(this)}getProxyReviver(e){return st.get(e)}getPluginConfigByPluginName(e){return qe.plugins[e]}get IMG_PATH(){return rt}get excludeChannelsFromConsole(){return tt}set excludeChannelsFromConsole(e){"string"==typeof e?tt.includes(e)||tt.push(e):Array.isArray(e)?e.forEach((e=>{"string"!=typeof e||tt.includes(e)||tt.push(e)})):console.warn("Invalid value provided to excludeChannelsFromConsole. Only strings or arrays are allowed.")}get linksData(){return console.warn("get links data in SpyneAppProperties is deprecated, use navLinks"),nt}set linksData(e){console.warn("set links data in SpyneAppProperties is deprecated, use navLinks")}get navLinks(){return nt}set navLinks(e){nt=e}get enableCMSProxies(){return et}getHrefFromData(e={}){return Fe.convertParamsToRoute(e)}set enableCMSProxies(e=!0){et=Boolean(e)}setCMSProxyMethod(e){this.enableCMSProxies=!0,this.formatTemplateForProxyData=e}tempGetChannelsInstance(){}tempGetConfig(){}},ct=()=>({includes:()=>!0===at.initialized?at.listRegisteredChannels():["CHANNEL_ROUTE","CHANNEL_UI","CHANNEL_WINDOW","DISPATCHER"]});void 0!==d&&void 0!==t&&(d(y(String),K(["data","srcElement","vsid"])),d(y(String),K(["data","srcElement","id"])));const lt=(e,t)=>{const{__proxy__proxyName:n}=e;void 0===n&&console.error("object is not proxy object ",e);const r=(n,r)=>{const o=K(r,e),{__proxy__isProxy:s,__proxy__props:i}=o;return s?t(n,i):n},o=r(ne(e),[]),s=(e,t)=>{const n=t||[];Object.entries(e).forEach((([t,o])=>{const i=(e=>{let t=typeof e;return["number","boolean","string"].includes(t)?t="primitive":"object"===t&&(Array.isArray(e)?t="array":null===e&&(t="undefined")),t})(o),a=[...n];a.push(t),"object"!==i&&"array"!==i||(e[t]=r(o,a),s(o,a))}))};return s(o),o},ut=function(e){const{__proxy__proxyName:t}=e;if(void 0!==t){const n=at.getProxyReviver(t);if("function"==typeof n)return lt(e,n)}const n=y(Array),r=y(Object);var o;return!1===n(o=e)&&!0===r(o)?d(z,R,ne)(e):ne(e)};class dt{constructor(e,t,n,r,o,s){const i=e;s&&console.time(s);const a={channelName:e,action:t,srcElement:r,event:o},c=dt.deepFreeze(n);if(a.payload=c,!0===at.debug){if(Object.prototype.hasOwnProperty.call(n,"payload")){const e=JSON.stringify(n);console.warn(`Spyne Warning: the following payload contains a nested payload property which may create conflicts: Action: ${t}, ${e}`)}const e=at.getChannelActions(i);dt.validateAction(t,i,e)}a.clone=()=>oe([{payload:ut(a.payload)},a.payload,{channel:ne(i)},{event:ne(o)},{srcElement:r},ne(a.srcElement),{action:ne(a.action)}]);const l={$dir:{get:()=>a._dir,set:e=>(a._dir=e,e)}};return"CHANNEL_ROUTE"===i&&(l.location={get:()=>dt.getLocationData()}),a._dir=void 0,Object.defineProperties(a,l),s&&console.timeEnd(s),a}static validateAction(e,t,n){const r=X(e,n);return!1===r&&!0===at.initialized&&console.warn(`warning: Action: '${e}' is not registered within the ${t} channel!`),r}static getLocationData(){return Z(["href","origin","protocol","host","hostname","port","pathname","search","hash"],window.location)}static getStreamItem(){}static deepClone(e){const t=y(Array),n=y(Object);var r;return!1===t(r=e)&&!0===n(r)?d(z,R,ne)(e):ne(e)}static deepFreeze(e){const t=d(se(0),k(-1),v("nodeType"));try{Object.freeze(e),Object.getOwnPropertyNames(e).forEach((function(n){!Object.prototype.hasOwnProperty.call(e,n)||!1!==t(e[n])||null===e[n]||"object"!=typeof e[n]&&"function"!=typeof e[n]||Object.isFrozen(e[n])||dt.deepFreeze(e[n])}))}catch(t){return e}return e}static getMouseEventKeys(){return["altKey","bubbles","cancelBubble","cancelable","clientX","clientY","composed","ctrlKey","currentTarget","defaultPrevented","detail","eventPhase","fromElement","isTrusted","layerX","layerY","metaKey","movementX","movementY","offsetX","offsetY","pageX","pageY","path","relatedTarget","returnValue","screenX","screenY","shiftKey","sourceCapabilities","srcElement","target","timeStamp","toElement","type","view","which","x","y"]}}function ht(){return{createpropsMap:function(){const e=new WeakMap,t={vsid:this.props.vsid};return e.set(t,this.props),{key:t,weakMap:e}},gc:function(){for(const e in this)delete this[e]},createId:function(){return Math.random().toString(36).replace(/\d/gm,"").substring(1,8)},setTraceFunc:function(e){return!0===e?console.log:()=>{}}}}const Et=async(e,t)=>{window.setTimeout((async()=>{var t;await(t=1,new Promise((e=>setTimeout(e,t)))),window.requestAnimationFrame(e)}),t)},pt=e=>{if(void 0!==e.constructor.name)return e.constructor.name;const t=e.toString();return k(String(t).substr(0,12),ie(/^(function\s)(\w+)(\(.*)$/,t)[2])},Nt=e=>{const t=d(h(E),p,N),n=d(h(_),p,N);return f([t,n])(e)};let _t,ft=!1;class mt{constructor(e,t={},n={}){this.template=this.formatTemplate(e),this.isProxyData=!0===t.__cms__isProxy,this.testMode=n?.testMode,!0===this.isProxyData&&!0===at.enableCMSProxies&&(this.template=at.formatTemplateForProxyData(this.template));(()=>{!0===y(Array,t)&&(t={spyneData:t},this.template=this.template.replace("{{/}}","{{/spyneData}}"),this.template=this.template.replace("{{#}}","{{#spyneData}}"))})(),this.templateData=t;const r=mt.getStringArray(this.template);let o=this.template.match(mt.findTmplLoopsRE());o=null===o?[]:o;const s=mt.parseTmplLoopsRE(),i=this.parseTheTmplLoop.bind(this),a=X(I,o),c=H(a,((e,t)=>e.replace(s,i)),this.addParams.bind(this));this.finalArr=r.map(c)}static isPrimitiveTag(e){return/({{\.\*?}})/.test(e)}static getNestedDataReducer(e={},t=""){return/(\.)/gm.test(String(t))?String(t).split(".").reduce(((e,t)=>e[t]?e[t]:"string"==typeof e?e:""),e):e[t]??""}static getStringArray(e){const t=e.split(mt.findTmplLoopsRE()),n=/^([\\n\s\W]+)$/;return m((e=>e.match(n)),t)}static findTmplLoopsRE(){return/({{#[\w.]+}}[\w\n\s\W]+?{{\/[\w.]+}})/gm}static parseTmplLoopsRE(){return/({{#([\w.]+)}})([\w\n\s\W]+?)({{\/\2}})/gm}static swapParamsForTagsRE(){return/({{)(.*?)(}})/gm}removeThis(){void 0!==this&&(this.finalArr=void 0,this.templateData=void 0,this.template=void 0)}renderDocFrag(){let e=mt.replaceImgPath(this.finalArr.join(""));!0!==this.testMode&&(e=(e=>{if(!ft)throw new Error("sanitizeHTML is not configured. Call sanitizeHTMLConfigure() with appropriate config.");return _t(e)})(e));const t=/^([^>]*?)(<){1}(\b)(thead|col|colgroup|tbody|td|tfoot|tr|th)(\b)([^\0]*)$/.test(e)?e:document.createRange().createContextualFragment(e);return window.setTimeout(this.removeThis,2),t}renderToString(){let e=this.finalArr.join("");return e=mt.replaceImgPath(e),window.setTimeout(this.removeThis,2),e}getTemplateString(){return this.finalArr.join("")}formatTemplate(e){return!0===["SCRIPT","TEMPLATE"].includes(v("nodeName",e))?e.innerHTML:e}getDataValFromPathStr(e,t){const n=String(e).split(".");return K(n,t)||""}addParams(e){return e.replace(mt.swapParamsForTagsRE(),((e,t,n,r)=>mt.getNestedDataReducer(this.templateData,n)))}static replaceImgPath(e){const{IMG_PATH:t}=at;return void 0!==t?(e=e.replaceAll(/src\s*=\s*(['"])imgs\//g,`src=$1${t}`)).replaceAll(/url\(\s*(['"]?)imgs\//g,`url($1${t}`):e}parseTheTmplLoop(e,t,n,r){const o=/(\.)/gm,s=r;let i=mt.getNestedDataReducer(this.templateData,n);const a=(e,t,n)=>{if(mt.isPrimitiveTag(t))return c(e,t);return l((()=>{const t=e,r=n,o=n+1;if(this.isProxyData){return{spyneLoopKey:t,__cms__dataId:i.__cms__dataId,origKey:i[`__cms__keyFor_${e}`],loopIndex:r,loopNum:o,d:e}}return{spyneLoopKey:t,loopIndex:r,loopNum:o}})(),t,n)},c=(e,t,n,r)=>(e=e.replace(/\$/g,"$$$$"),t.replace(mt.swapParamsForTagsRE(),e)),l=(e,t,n)=>t.replace(mt.swapParamsForTagsRE(),((t,r,s)=>{const i={loopIndex:n,loopNum:n+1};if(!1===o.test(s)&&void 0!==e[s])return void 0!==i[s]?i[s]:e[s];const a=this.getDataValFromPathStr(s,e);return void 0!==i[s]?i[s]:a}));return!0===_(i)||E(i)?"":(void 0===i.length&&(i=[i]),i=Array.isArray(i)?i:[i],i.map(((e,t)=>"string"==typeof e?a(e,s,t):l(e,s,t))).join(""))}}class Tt{constructor(e={},t=!1){var n,r;e.tagName=(n="div",r=e.tagName,k(n)(r)),e.attributes=void 0!==e.attributes?e.attributes:this.getDomAttributes(e),e.attrs=this.updateAttrs(e.attributes),e.fragment=document.createDocumentFragment(),this.testMode=t,this.props=e,this.addMixins()}setProp(e,t){this.props[e]=t}getProp(e){return this.props[e]}get el(){return this.props.el}setElAttrs(e,t){return this.getProp("attrs").forEach(((t,n)=>{const r=(t,n)=>{e.dataset[n]=t};"dataset"===n?ue(r,t):e.setAttribute(n,t)})),e}updateAttrs(e,t){const n=void 0!==t?t:new Map;return ce(((e,t)=>n.set(t,e)),e),n}addTemplate(e){const t=this.getProp("template");return void 0!==t?(t=>{let n=this.getProp("data");n=y(Object,n)?n:{};const r=new mt(t,n,{testMode:this?.testMode}).renderDocFrag();return y(String,r)?e.innerHTML=r:e.appendChild(r),e})(t):e}createElement(e="div"){return document.createElement(e)}addContent(e){const t=this.getProp("data");if(!0===y(String,t)){const n=document.createTextNode(t);e.appendChild(n)}return e}execute(){const e=le(this.createElement.bind(this),this.setElAttrs.bind(this),this.addTemplate.bind(this),this.addContent.bind(this))(this.getProp("tagName"));this.props.el=e}render(){return this.execute(),this.props.template=void 0,this.props.data=void 0,this.props.attributes=void 0,this.getProp("el")}renderToHTMLString(){return this.execute(),this.props.template=void 0,this.props.data=void 0,this.props.attributes=void 0,this.getProp("el").outerHTML}returnIfDefined(e,t){if(void 0!==t){const n=void 0===t;e[t]=!1===n?t:Ke(e[t],t)}}updateprops(e){return this.returnIfDefined(this.props,e),this}updatepropsAndRun(e){return this.updateprops(e),this.execute(),this.getProp("fragment")}unmount(){void 0!==this.props&&(this.getProp("el").remove(),this.props=void 0,this.gc())}updateTag(e="div"){this.updateprops(e)}updateAttributes(e={}){this.updateprops(e)}updateTemplate(e){this.updateprops(e)}updateData(e={}){this.updateprops(e)}addTagAndRender(e="div"){this.updatepropsAndRun(e)}addAttrsibutesAndRender(e={}){this.updatepropsAndRun(e)}addTemplateAndRender(e){this.updatepropsAndRun(e)}addDataAndRender(e={}){this.updatepropsAndRun(e)}addMixins(){const e=ht();this.gc=e.gc.bind(this)}getDomAttributes(e){return ee(this.attributesArray,e)}get attributesArray(){return["accept","accept-charset","accesskey","action","align","allow","alt","async","autocapitalize","autocomplete","autofocus","autoplay","bgcolor","border","buffered","challenge","charset","checked","cite","class","code","codebase","color","cols","colspan","content","contenteditable","contextmenu","controls","coords","crossorigin","csp","dataset","datetime","decoding","default","defer","dir","dirname","disabled","download","draggable","dropzone","enctype","for","form","formaction","headers","height","hidden","high","href","hreflang","http-equiv","icon","id","importance","integrity","ismap","itemprop","keytype","kind","label","lang","language","lazyload","list","loop","low","manifest","max","maxlength","minlength","media","method","min","multiple","muted","name","novalidate","open","optimum","pattern","ping","placeholder","poster","preload","radiogroup","readonly","referrerpolicy","rel","required","reversed","rows","rowspan","sandbox","scope","scoped","selected","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","style","summary","tabindex","target","title","translate","type","usemap","value","width","wrap"]}}const At=(e=!1,t=1,n="ease",r=!1)=>`${!0===r?"opacity:0;":""}transition: opacity ${t}s ${n}; opacity: ${!0===e?1:0};`;function Ct(e){return"function"==typeof e}function yt(e){return Ct(null==e?void 0:e.lift)}function gt(e){return function(t){if(yt(t))return t.lift((function(t){try{return e(t,this)}catch(e){this.error(e)}}));throw new TypeError("Unable to lift unknown Observable type")}}var vt=function(e,t){return vt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},vt(e,t)};function bt(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}vt(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function It(e,t,n,r){return new(n||(n=Promise))((function(o,s){function i(e){try{c(r.next(e))}catch(e){s(e)}}function a(e){try{c(r.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,a)}c((r=r.apply(e,t||[])).next())}))}function St(e,t){var n,r,o,s,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,a[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}function Lt(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Ot(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,s=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=s.next()).done;)i.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(o)throw o.error}}return i}function Dt(e,t,n){if(n||2===arguments.length)for(var r,o=0,s=t.length;o<s;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function Rt(e){return this instanceof Rt?(this.v=e,this):new Rt(e)}function Ht(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),s=[];return r={},i("next"),i("throw"),i("return"),r[Symbol.asyncIterator]=function(){return this},r;function i(e){o[e]&&(r[e]=function(t){return new Promise((function(n,r){s.push([e,t,n,r])>1||a(e,t)}))})}function a(e,t){try{(n=o[e](t)).value instanceof Rt?Promise.resolve(n.value.v).then(c,l):u(s[0][2],n)}catch(e){u(s[0][3],e)}var n}function c(e){a("next",e)}function l(e){a("throw",e)}function u(e,t){e(t),s.shift(),s.length&&a(s[0][0],s[0][1])}}function Vt(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=Lt(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}"function"==typeof SuppressedError&&SuppressedError;var wt=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function Pt(e){return Ct(null==e?void 0:e.then)}function Ut(e){var t=e((function(e){Error.call(e),e.stack=(new Error).stack}));return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var Mt=Ut((function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}}));function Wt(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var xt=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}var t;return e.prototype.unsubscribe=function(){var e,t,n,r,o;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var i=Lt(s),a=i.next();!a.done;a=i.next()){a.value.remove(this)}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=i.return)&&t.call(i)}finally{if(e)throw e.error}}else s.remove(this);var c=this.initialTeardown;if(Ct(c))try{c()}catch(e){o=e instanceof Mt?e.errors:[e]}var l=this._finalizers;if(l){this._finalizers=null;try{for(var u=Lt(l),d=u.next();!d.done;d=u.next()){var h=d.value;try{kt(h)}catch(e){o=null!=o?o:[],e instanceof Mt?o=Dt(Dt([],Ot(o)),Ot(e.errors)):o.push(e)}}}catch(e){n={error:e}}finally{try{d&&!d.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}}if(o)throw new Mt(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)kt(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&Wt(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&Wt(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}(),Ft=xt.EMPTY;function $t(e){return e instanceof xt||e&&"closed"in e&&Ct(e.remove)&&Ct(e.add)&&Ct(e.unsubscribe)}function kt(e){Ct(e)?e():e.unsubscribe()}var jt={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Gt={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=Gt.delegate;return(null==o?void 0:o.setTimeout)?o.setTimeout.apply(o,Dt([e,t],Ot(n))):setTimeout.apply(void 0,Dt([e,t],Ot(n)))},clearTimeout:function(e){var t=Gt.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function Yt(e){Gt.setTimeout((function(){throw e}))}function zt(){}var Bt=null;function Kt(e){if(jt.useDeprecatedSynchronousErrorHandling){var t=!Bt;if(t&&(Bt={errorThrown:!1,error:null}),e(),t){var n=Bt,r=n.errorThrown,o=n.error;if(Bt=null,r)throw o}}else e()}var qt=function(e){function t(t){var n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,$t(t)&&t.add(n)):n.destination=tn,n}return bt(t,e),t.create=function(e,t,n){return new Zt(e,t,n)},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(xt),Qt=Function.prototype.bind;function Xt(e,t){return Qt.call(e,t)}var Jt=function(){function e(e){this.partialObserver=e}return e.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(e){en(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){en(e)}else en(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){en(e)}},e}(),Zt=function(e){function t(t,n,r){var o,s,i=e.call(this)||this;Ct(t)||!t?o={next:null!=t?t:void 0,error:null!=n?n:void 0,complete:null!=r?r:void 0}:i&&jt.useDeprecatedNextContext?((s=Object.create(t)).unsubscribe=function(){return i.unsubscribe()},o={next:t.next&&Xt(t.next,s),error:t.error&&Xt(t.error,s),complete:t.complete&&Xt(t.complete,s)}):o=t;return i.destination=new Jt(o),i}return bt(t,e),t}(qt);function en(e){Yt(e)}var tn={closed:!0,next:zt,error:function(e){throw e},complete:zt},nn="function"==typeof Symbol&&Symbol.observable||"@@observable";function rn(e){return e}function on(e){return 0===e.length?rn:1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)}}var sn=function(){function e(e){e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r,o=this,s=(r=e)&&r instanceof qt||function(e){return e&&Ct(e.next)&&Ct(e.error)&&Ct(e.complete)}(r)&&$t(r)?e:new Zt(e,t,n);return Kt((function(){var e=o,t=e.operator,n=e.source;s.add(t?t.call(s,n):n?o._subscribe(s):o._trySubscribe(s))})),s},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=an(t))((function(t,r){var o=new Zt({next:function(t){try{e(t)}catch(e){r(e),o.unsubscribe()}},error:r,complete:t});n.subscribe(o)}))},e.prototype._subscribe=function(e){var t;return null===(t=this.source)||void 0===t?void 0:t.subscribe(e)},e.prototype[nn]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return on(e)(this)},e.prototype.toPromise=function(e){var t=this;return new(e=an(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))},e.create=function(t){return new e(t)},e}();function an(e){var t;return null!==(t=null!=e?e:jt.Promise)&&void 0!==t?t:Promise}function cn(e){return Ct(e[nn])}function ln(e){return Symbol.asyncIterator&&Ct(null==e?void 0:e[Symbol.asyncIterator])}function un(e){return new TypeError("You provided "+(null!==e&&"object"==typeof e?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}var dn="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function hn(e){return Ct(null==e?void 0:e[dn])}function En(e){return Ht(this,arguments,(function(){var t,n,r;return St(this,(function(o){switch(o.label){case 0:t=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,Rt(t.read())];case 3:return n=o.sent(),r=n.value,n.done?[4,Rt(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,Rt(r)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}}))}))}function pn(e){return Ct(null==e?void 0:e.getReader)}function Nn(e){if(e instanceof sn)return e;if(null!=e){if(cn(e))return o=e,new sn((function(e){var t=o[nn]();if(Ct(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")}));if(wt(e))return r=e,new sn((function(e){for(var t=0;t<r.length&&!e.closed;t++)e.next(r[t]);e.complete()}));if(Pt(e))return n=e,new sn((function(e){n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,Yt)}));if(ln(e))return _n(e);if(hn(e))return t=e,new sn((function(e){var n,r;try{for(var o=Lt(t),s=o.next();!s.done;s=o.next()){var i=s.value;if(e.next(i),e.closed)return}}catch(e){n={error:e}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}e.complete()}));if(pn(e))return _n(En(e))}var t,n,r,o;throw un(e)}function _n(e){return new sn((function(t){(function(e,t){var n,r,o,s;return It(this,void 0,void 0,(function(){var i,a;return St(this,(function(c){switch(c.label){case 0:c.trys.push([0,5,6,11]),n=Vt(e),c.label=1;case 1:return[4,n.next()];case 2:if((r=c.sent()).done)return[3,4];if(i=r.value,t.next(i),t.closed)return[2];c.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=c.sent(),o={error:a},[3,11];case 6:return c.trys.push([6,,9,10]),r&&!r.done&&(s=n.return)?[4,s.call(n)]:[3,8];case 7:c.sent(),c.label=8;case 8:return[3,10];case 9:if(o)throw o.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}}))}))})(e,t).catch((function(e){return t.error(e)}))}))}function fn(e,t,n,r,o){return new mn(e,t,n,r,o)}var mn=function(e){function t(t,n,r,o,s,i){var a=e.call(this,t)||this;return a.onFinalize=s,a.shouldUnsubscribe=i,a._next=n?function(e){try{n(e)}catch(e){t.error(e)}}:e.prototype._next,a._error=o?function(e){try{o(e)}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._error,a._complete=r?function(){try{r()}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._complete,a}return bt(t,e),t.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),!n&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}},t}(qt),Tn=function(e){function t(t,n){return e.call(this)||this}return bt(t,e),t.prototype.schedule=function(e,t){return this},t}(xt),An={setInterval:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=An.delegate;return(null==o?void 0:o.setInterval)?o.setInterval.apply(o,Dt([e,t],Ot(n))):setInterval.apply(void 0,Dt([e,t],Ot(n)))},clearInterval:function(e){var t=An.delegate;return((null==t?void 0:t.clearInterval)||clearInterval)(e)},delegate:void 0},Cn=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r.pending=!1,r}return bt(t,e),t.prototype.schedule=function(e,t){var n;if(void 0===t&&(t=0),this.closed)return this;this.state=e;var r=this.id,o=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(o,r,t)),this.pending=!0,this.delay=t,this.id=null!==(n=this.id)&&void 0!==n?n:this.requestAsyncId(o,this.id,t),this},t.prototype.requestAsyncId=function(e,t,n){return void 0===n&&(n=0),An.setInterval(e.flush.bind(e,this),n)},t.prototype.recycleAsyncId=function(e,t,n){if(void 0===n&&(n=0),null!=n&&this.delay===n&&!1===this.pending)return t;null!=t&&An.clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var n,r=!1;try{this.work(e)}catch(e){r=!0,n=e||new Error("Scheduled action threw falsy error")}if(r)return this.unsubscribe(),n},t.prototype.unsubscribe=function(){if(!this.closed){var t=this.id,n=this.scheduler,r=n.actions;this.work=this.state=this.scheduler=null,this.pending=!1,Wt(r,this),null!=t&&(this.id=this.recycleAsyncId(n,t,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(Tn),yn={now:function(){return(yn.delegate||Date).now()},delegate:void 0},gn=function(){function e(t,n){void 0===n&&(n=e.now),this.schedulerActionCtor=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.schedulerActionCtor(this,e).schedule(n,t)},e.now=yn.now,e}(),vn=new(function(e){function t(t,n){void 0===n&&(n=gn.now);var r=e.call(this,t,n)||this;return r.actions=[],r._active=!1,r}return bt(t,e),t.prototype.flush=function(e){var t=this.actions;if(this._active)t.push(e);else{var n;this._active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this._active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}},t}(gn))(Cn);function bn(e,t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=!1);var s=t.schedule((function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()}),r);if(e.add(s),!o)return s}function In(e,t){return void 0===t&&(t=0),gt((function(n,r){n.subscribe(fn(r,(function(n){return bn(r,e,(function(){return r.next(n)}),t)}),(function(){return bn(r,e,(function(){return r.complete()}),t)}),(function(n){return bn(r,e,(function(){return r.error(n)}),t)})))}))}function Sn(e,t){return void 0===t&&(t=0),gt((function(n,r){r.add(e.schedule((function(){return n.subscribe(r)}),t))}))}function Ln(e,t){if(!e)throw new Error("Iterable cannot be null");return new sn((function(n){bn(n,t,(function(){var r=e[Symbol.asyncIterator]();bn(n,t,(function(){r.next().then((function(e){e.done?n.complete():n.next(e.value)}))}),0,!0)}))}))}function On(e,t){if(null!=e){if(cn(e))return function(e,t){return Nn(e).pipe(Sn(t),In(t))}(e,t);if(wt(e))return function(e,t){return new sn((function(n){var r=0;return t.schedule((function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())}))}))}(e,t);if(Pt(e))return function(e,t){return Nn(e).pipe(Sn(t),In(t))}(e,t);if(ln(e))return Ln(e,t);if(hn(e))return function(e,t){return new sn((function(n){var r;return bn(n,t,(function(){r=e[dn](),bn(n,t,(function(){var e,t,o;try{t=(e=r.next()).value,o=e.done}catch(e){return void n.error(e)}o?n.complete():n.next(t)}),0,!0)})),function(){return Ct(null==r?void 0:r.return)&&r.return()}}))}(e,t);if(pn(e))return function(e,t){return Ln(En(e),t)}(e,t)}throw un(e)}function Dn(e,t){return gt((function(n,r){var o=0;n.subscribe(fn(r,(function(n){r.next(e.call(t,n,o++))})))}))}var Rn=Array.isArray;function Hn(e){return Dn((function(t){return function(e,t){return Rn(t)?e.apply(void 0,Dt([],Ot(t))):e(t)}(e,t)}))}function Vn(e,t,n){return void 0===n&&(n=rn),function(r){wn(t,(function(){for(var o=e.length,s=new Array(o),i=o,a=o,c=function(o){wn(t,(function(){var c=function(e,t){return t?On(e,t):Nn(e)}(e[o],t),l=!1;c.subscribe(fn(r,(function(e){s[o]=e,l||(l=!0,a--),a||r.next(n(s.slice()))}),(function(){--i||r.complete()})))}),r)},l=0;l<o;l++)c(l)}),r)}}function wn(e,t,n){e?bn(n,e,t):t()}function Pn(e,t,n){return void 0===n&&(n=1/0),Ct(t)?Pn((function(n,r){return Dn((function(e,o){return t(n,e,r,o)}))(Nn(e(n,r)))}),n):("number"==typeof t&&(n=t),gt((function(t,r){return function(e,t,n,r,o,s,i,a){var c=[],l=0,u=0,d=!1,h=function(){!d||c.length||l||t.complete()},E=function(e){return l<r?p(e):c.push(e)},p=function(e){s&&t.next(e),l++;var a=!1;Nn(n(e,u++)).subscribe(fn(t,(function(e){null==o||o(e),s?E(e):t.next(e)}),(function(){a=!0}),void 0,(function(){if(a)try{l--;for(var e=function(){var e=c.shift();i?bn(t,i,(function(){return p(e)})):p(e)};c.length&&l<r;)e();h()}catch(e){t.error(e)}})))};return e.subscribe(fn(t,E,(function(){d=!0,h()}))),function(){null==a||a()}}(t,r,e,n)})))}var Un=Array.isArray;function Mn(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=function(e){return Ct((t=e)[t.length-1])?e.pop():void 0;var t}(e);return n?function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return on(e)}(Mn.apply(void 0,Dt([],Ot(e))),Hn(n)):gt((function(t,n){Vn(Dt([t],Ot(function(e){return 1===e.length&&Un(e[0])?e[0]:e}(e))))(n)}))}var Wn=Ut((function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}})),xn=function(e){function t(){var t=e.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return bt(t,e),t.prototype.lift=function(e){var t=new Fn(this,this);return t.operator=e,t},t.prototype._throwIfClosed=function(){if(this.closed)throw new Wn},t.prototype.next=function(e){var t=this;Kt((function(){var n,r;if(t._throwIfClosed(),!t.isStopped){t.currentObservers||(t.currentObservers=Array.from(t.observers));try{for(var o=Lt(t.currentObservers),s=o.next();!s.done;s=o.next()){s.value.next(e)}}catch(e){n={error:e}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}}}))},t.prototype.error=function(e){var t=this;Kt((function(){if(t._throwIfClosed(),!t.isStopped){t.hasError=t.isStopped=!0,t.thrownError=e;for(var n=t.observers;n.length;)n.shift().error(e)}}))},t.prototype.complete=function(){var e=this;Kt((function(){if(e._throwIfClosed(),!e.isStopped){e.isStopped=!0;for(var t=e.observers;t.length;)t.shift().complete()}}))},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(t){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,t)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var t=this,n=this,r=n.hasError,o=n.isStopped,s=n.observers;return r||o?Ft:(this.currentObservers=null,s.push(e),new xt((function(){t.currentObservers=null,Wt(s,e)})))},t.prototype._checkFinalizedStatuses=function(e){var t=this,n=t.hasError,r=t.thrownError,o=t.isStopped;n?e.error(r):o&&e.complete()},t.prototype.asObservable=function(){var e=new sn;return e.source=this,e},t.create=function(e,t){return new Fn(e,t)},t}(sn),Fn=function(e){function t(t,n){var r=e.call(this)||this;return r.destination=t,r.source=n,r}return bt(t,e),t.prototype.next=function(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===n||n.call(t,e)},t.prototype.error=function(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===n||n.call(t,e)},t.prototype.complete=function(){var e,t;null===(t=null===(e=this.destination)||void 0===e?void 0:e.complete)||void 0===t||t.call(e)},t.prototype._subscribe=function(e){var t,n;return null!==(n=null===(t=this.source)||void 0===t?void 0:t.subscribe(e))&&void 0!==n?n:Ft},t}(xn);var $n={connector:function(){return new xn}};function kn(e,t){void 0===t&&(t=$n);var n=t.connector;return gt((function(t,r){var o,s=n();Nn(e((o=s,new sn((function(e){return o.subscribe(e)}))))).subscribe(r),r.add(t.subscribe(s))}))}function jn(e,t){return void 0===t&&(t=vn),gt((function(n,r){var o=null,s=null,i=null,a=function(){if(o){o.unsubscribe(),o=null;var e=s;s=null,r.next(e)}};function c(){var n=i+e,s=t.now();if(s<n)return o=this.schedule(void 0,n-s),void r.add(o);a()}n.subscribe(fn(r,(function(n){s=n,i=t.now(),o||(o=t.schedule(c,e),r.add(o))}),(function(){a(),r.complete()}),void 0,(function(){s=o=null})))}))}var Gn=new sn((function(e){return e.complete()}));function Yn(e){return e<=0?function(){return Gn}:gt((function(t,n){var r=0;t.subscribe(fn(n,(function(t){++r<=e&&(n.next(t),e<=r&&n.complete())})))}))}function zn(e,t){return gt((function(n,r){var o=0;n.subscribe(fn(r,(function(n){return e.call(t,n,o++)&&r.next(n)})))}))}function Bn(e){return gt((function(t,n){try{t.subscribe(n)}finally{n.add(e)}}))}var Kn=Pn;var qn=function(e){function t(t,n){var r=e.call(this)||this;return r.source=t,r.subjectFactory=n,r._subject=null,r._refCount=0,r._connection=null,yt(t)&&(r.lift=t.lift),r}return bt(t,e),t.prototype._subscribe=function(e){return this.getSubject().subscribe(e)},t.prototype.getSubject=function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject},t.prototype._teardown=function(){this._refCount=0;var e=this._connection;this._subject=this._connection=null,null==e||e.unsubscribe()},t.prototype.connect=function(){var e=this,t=this._connection;if(!t){t=this._connection=new xt;var n=this.getSubject();t.add(this.source.subscribe(fn(n,void 0,(function(){e._teardown(),n.complete()}),(function(t){e._teardown(),n.error(t)}),(function(){return e._teardown()})))),t.closed&&(this._connection=null,t=xt.EMPTY)}return t},t.prototype.refCount=function(){return gt((function(e,t){var n=null;e._refCount++;var r=fn(t,void 0,void 0,void 0,(function(){if(!e||e._refCount<=0||0<--e._refCount)n=null;else{var r=e._connection,o=n;n=null,!r||o&&r!==o||r.unsubscribe(),t.unsubscribe()}}));e.subscribe(r),r.closed||(n=e.connect())}))(this)},t}(sn);function Qn(e){return e?function(t){return kn(e)(t)}:function(e){return function(e,t){var n=Ct(e)?e:function(){return e};return Ct(t)?kn(t,{connector:n}):function(e){return new qn(e,n)}}(new xn)(e)}}function Xn(e,t){return void 0===t&&(t=!1),gt((function(n,r){var o=0;n.subscribe(fn(r,(function(n){var s=e(n,o++);(s||t)&&r.next(n),!s&&r.complete()})))}))}function Jn(e,t,n){var r=Ct(e)||t||n?{next:e,error:t,complete:n}:e;return r?gt((function(e,t){var n;null===(n=r.subscribe)||void 0===n||n.call(r);var o=!0;e.subscribe(fn(t,(function(e){var n;null===(n=r.next)||void 0===n||n.call(r,e),t.next(e)}),(function(){var e;o=!1,null===(e=r.complete)||void 0===e||e.call(r),t.complete()}),(function(e){var n;o=!1,null===(n=r.error)||void 0===n||n.call(r,e),t.error(e)}),(function(){var e,t;o&&(null===(e=r.unsubscribe)||void 0===e||e.call(r)),null===(t=r.finalize)||void 0===t||t.call(r)})))})):rn}class Zn{constructor(e){this.props.observableStreams=Zn.createDirectionalObservables()}static createDirectionalFiltersObject(){const e="internal",t="parent",n="child";return{P:[t],C:[n],PCI:[t,e,n],CI:[n,e],PI:[t,e],PC:[t,n]}}static addDefaultDir(e){return de(J)({$dir:["internal"]},ne(e))}static addDownInternalDir(e,t=["internal","down"]){return de(J)(ne(e),{$dir:t})}static addChildAndInternalDir(e,t=["child","down"]){return de(J)(ne(e),{$dir:t})}static mapToDefaultDir(e){return this.addDefaultDir(e)}static createDirectionalObservables(e=new n,t,r){void 0!==t&&void 0!==r&&(e.viewName=t,e.vsid=r);const o=e=>he((t=>t.includes(e)),"$dir"),s=o("parent"),i=o("child"),a=o("internal"),c=e=>J({from$:e}),l=c("child"),u=c("internal"),d=c("parent"),h=e.pipe(zn((e=>void 0!==e&&void 0!==e.action))),E=e.pipe(zn(a),Dn(u)),p=e.pipe(zn(s),Dn(l)),N=e.pipe(zn(i),Dn(d)),_={parent:p,internal:E,child:N};return{raw$:h,toInternal$:E,toParent$:p,toChild$:N,completeAll:()=>{Ee((e=>{e.complete(),e.isStopped=!0}),[h,E,p,N])},completeStream:(e=[])=>{const t=e=>{if(void 0!==_[e]){(t=_[e]).complete(),t.isStopped=!0}var t};void 0!==e&&e.length>=1&&e.forEach(t)}}}}class er{constructor(e,t={},r="",o="theName"){this.addMixins(),this._state="INIT",this.vsid=r,this.el=t.el,this.vsName=o,this.defaults={debug:!1,extendedHashMethods:{}},this.options=Ke(this.defaults,t);this.addActionListeners().forEach((e=>{const[t,n]=e;this.options.extendedHashMethods[t]=e=>this[n](e)})),this.options.hashMethods=this.setHashMethods(this.options.extendedHashMeth