@variousjs/various 5.1.1 → 5.1.2

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.
@@ -1,2 +1,1834 @@
1
- !function(){var e={700:function(e,t,r){var n;self,n=e=>(()=>{"use strict";var t={294:(e,t,r)=>{r.d(t,{default:()=>a});var n=r(942),o=r(63),s=r.n(o);function i(e,t=new WeakMap){if("object"!=typeof e||null===e)return e;if(t.has(e))return t.get(e);const r=Array.isArray(e)?[]:{};t.set(e,r);const n=Reflect.ownKeys(e);for(const o of n)r[o]=i(e[o],t);return r}class a{constructor(){var e;(0,n.Z)(this,"state",void 0),(0,n.Z)(this,"listeners",void 0),(0,n.Z)(this,"emits",void 0),(0,n.Z)(this,"timer",void 0),(0,n.Z)(this,"onStateChange",void 0),(0,n.Z)(this,"getStore",void 0),(0,n.Z)(this,"createStore",e=>{this.listeners=Reflect.ownKeys(e).reduce((t,r)=>{const n=r;return this.state[n]=e[n],{...t,[r]:[]}},{})}),(0,n.Z)(this,"subscribe",e=>{const t={};return Reflect.ownKeys(e).forEach(r=>{const n=r;this.listeners[n]||(this.listeners[n]=[]),this.listeners[n].push(e[n]),t[n]=e[n]}),()=>{Reflect.ownKeys(t).forEach(e=>{const r=e;this.listeners[r]=this.listeners[r].filter(e=>e!==t[r])})}}),(0,n.Z)(this,"emit",(e,t)=>{this.emits={...this.emits,...e},t?this.trigger():(clearTimeout(this.timer),this.timer=setTimeout(this.trigger))}),(0,n.Z)(this,"dispatch",(e,...t)=>e({getStore:this.getStore,emit:e=>this.emit(e,!0)},...t)),(0,n.Z)(this,"trigger",()=>{const e=this.emits,t=[],r=Reflect.ownKeys(e);for(let n=0;n<r.length;n+=1){const o=r[n];if(s()(this.state[o],e[o]))continue;const a=e[o],u=this.state[o];this.state[o]=i(e[o]),t.push({key:o,newValue:a,oldValue:u})}const n={};t.forEach(e=>{n[e.key]=[e.newValue,e.oldValue],this.listeners[e.key]&&this.listeners[e.key].forEach(t=>t(e.newValue,e.oldValue))}),t.length&&this.onStateChange(n),this.emits={},this.timer=void 0}),this.state={},this.listeners={},this.emits={},this.timer=void 0,this.onStateChange=()=>null,this.getStore=(e=this.state,function(t){return t?i(e[t]):e})}set onChange(e){this.onStateChange=e}}},63:e=>{e.exports=function e(t,r){if(t===r)return!0;if(t&&r&&"object"==typeof t&&"object"==typeof r){if(t.constructor!==r.constructor)return!1;var n,o,s;if(Array.isArray(t)){if((n=t.length)!=r.length)return!1;for(o=n;0!=o--;)if(!e(t[o],r[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if((n=(s=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(o=n;0!=o--;)if(!Object.prototype.hasOwnProperty.call(r,s[o]))return!1;for(o=n;0!=o--;){var i=s[o];if(!e(t[i],r[i]))return!1}return!0}return t!=t&&r!=r}},250:t=>{t.exports=e},942:(e,t,r)=>{function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}r.d(t,{Z:()=>n})}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var s=r[e]={exports:{}};return t[e](s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};return(()=>{n.d(o,{default:()=>u});var e=n(942),t=n(294),r=n(250),s=n.n(r);const i=["name","prototype","length","propTypes","defaultProps","getDerivedStateFromProps","contextTypes","displayName"];class a extends t.default{constructor(...t){super(...t),(0,e.Z)(this,"connect",function(t){const{getStore:n,subscribe:o}=t;return function(...t){return function(a){class u extends r.Component{constructor(r){super(r),(0,e.Z)(this,"unsubscribe",void 0),(0,e.Z)(this,"state",{props:n()}),this.unsubscribe=o(t.reduce((e,t)=>({...e,[t]:()=>{this.setState({props:n()})}}),{}))}componentWillUnmount(){this.unsubscribe()}render(){const{props:e}=this.state,t={...e,...this.props};return s().createElement(a,t)}}return Object.getOwnPropertyNames(a).forEach(e=>{const t=e;i.includes(e)||(u[t]=a[t])}),u}}}(this)),(0,e.Z)(this,"useStore",function(e){const{getStore:t,subscribe:n}=e;return function(...e){const[o,s]=(0,r.useState)(t());return(0,r.useLayoutEffect)(()=>n(e.reduce((e,r)=>({...e,[r]:()=>{s(e=>({...e,[r]:t()[r]}))}}),{}))),o}}(this))}}const u=a})(),o.default})(),e.exports=n(r(953))},953:function(e){"use strict";e.exports=require("react")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};!function(){"use strict";function e(){return e=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},e.apply(null,arguments)}r.r(n),r.d(n,{createComponent:function(){return Q},createConfig:function(){return X}});var t=r(953),o=r.n(t),s=r(700),i=r.n(s);const{createStore:a,getStore:u,connect:c,emit:l,subscribe:d,dispatch:m,useStore:p}=new(i());function f(){const e=u(),t=Object.keys(e),r={};return t.forEach(t=>{r[t]=e[t]}),r}const g=e=>{const t=U(e.$self,"various-component-fallback");return o().createElement("div",{className:t},"Loading")},h=({$error:e,$reload:t,$self:r})=>{const n=U(r,"various-component-error_fallback");return o().createElement("div",{className:n},o().createElement("h3",null,e.type),o().createElement("p",null,e.message),o().createElement("button",{type:"button",onClick:t},"Reload"))};var y=new class{constructor(){this.fallbackComponent=g,this.errorFallbackComponent=h,this.storeActions={},this.componentActions={},this.i18nConfigs={},this.middlewares={}}setMiddlewares(e){this.middlewares=e}getMiddlewares(){return this.middlewares}setI18nConfig(e,t){const r=P(e);this.i18nConfigs[r]={...this.i18nConfigs[r],...t}}getI18nConfig(e){const t=P(e);return this.i18nConfigs[t]}setGlobalI18nConfig(e){this.globalI18nConfig={...this.globalI18nConfig,...e}}getGlobalI18nConfig(){return this.globalI18nConfig}setComponentActions(e,t){const r=P(e);this.componentActions[r]=t}deleteComponentActions(e){const t=P(e);delete this.componentActions[t]}getComponentActions(e){const t=P(e);return this.componentActions[t]}setStoreActions(e){this.storeActions=e}getStoreActions(){return this.storeActions}setFallbackComponent(e){this.fallbackComponent=e}getFallbackComponent(){return this.fallbackComponent}setErrorFallbackComponent(e){this.errorFallbackComponent=e}getErrorFallbackComponent(){return this.errorFallbackComponent}};const w=e=>{const t=y.getMiddlewares(),r=t?.onLog?.(e);if(!1===r)return;const n={info:"blue",warn:"orange",error:"red"}[e.level],o=[`%c ${P(e)} `,`background:${n};border:1px solid ${n};padding:1px;border-radius:2px 0 0 2px;color: #fff;`];e.type&&(o[0]=`${o[0]}%c ${e.type} %c`,o.push(`border:1px solid ${n};padding:1px;border-radius:0 2px 2px 0;color:${n};`,"background:transparent")),"info"!==e.level&&(o[0]=` ${o[0]}`),window.console[e.level](...o,e.message)};var E=e=>({info(t,r){w({...e,level:"info",type:r,message:t})},warn(t,r){w({...e,level:"warn",type:r,message:t})},error(t,r){const n=y.getMiddlewares(),o=t instanceof A?t:new A({...e,type:r||"unknow",originalError:t instanceof Error?t:new Error(t)});n?.onError?.(o),w({...e,level:"error",type:r,message:t})}});const v=Symbol("MOUNTED_COMPONENTS"),b=Symbol("MESSAGE"),C=Symbol("CONFIG"),$=Symbol("DEPENDENCIES"),S=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","errorCaptured","renderTracked","renderTriggered","activated","deactivated","setup","data","render"],O=e=>async(t,r)=>{const n=y.getMiddlewares(),o=E(e);let s={trigger:e,event:t,value:r};if(n?.onMessage){const e=await n.onMessage(s);if(!1===e)return void o.warn("blocked by middleware","POST_MESSAGE");!0!==e&&(s={...s,...e})}l({[b]:{timestamp:+new Date,event:s.event,trigger:e,value:s.value}})};function R(e,t){const r=(t,r,n)=>{const o=y.getI18nConfig(e)||y.getGlobalI18nConfig();let s=n;if(void 0===s&&(s="string"==typeof r?r:t),!o)return x(new A({...e,type:"I18N",originalError:new Error("config not exist")})),s;if(o.loading)return s;const{lngStoreKey:i,resources:a}=o,c=u(i);if(void 0===i||void 0===c)return x(new A({...e,type:"I18N",originalError:new Error("locale key not defined")})),s;const l=a?.[c];if(!l)return x(new A({...e,type:"I18N",originalError:new Error(`locale resource \`${c}\` not exist`)})),s;if(!l[t])return x(new A({...e,type:"I18N",originalError:new Error(`locale key \`${t}\` not exist`)})),s;const d=l[t];if(!r||"string"==typeof r||"[object Object]"!==Object.prototype.toString.call(r))return d;const m=Object.keys(r);return m.length?m.reduce((e,t)=>{const n=new RegExp(`{\\s*${t}\\s*}`,"g");return e.replace(n,r[t].toString())},d):d};return r.update=(r,n)=>{const o={..."app"===n?y.getGlobalI18nConfig():y.getI18nConfig(e),...r};"app"===n?y.setGlobalI18nConfig(o):y.setI18nConfig(e,o),t()},r}const N=e=>`${e}?${+new Date}`,I=e=>window.requirejs.defined(e),j=e=>window.requirejs.specified(e),k=()=>u(v),M=(e,t)=>{const r=u($);if(t&&window.requirejs.defined(e))return;let n=N(r[e]);if(t){n=`${t}#${e}`;try{const{registry:r}=window.requirejs.s.contexts._;r?.[e].error&&(n=N(t))}catch(e){}}window.requirejs.undef(e),window.requirejs.config({paths:{[e]:n}})},P=e=>{const{name:t,module:r}=e;return r?`${t}.${r}`:t},x=e=>{const{name:t,module:r,type:n}=e;E({name:t,module:r}).error(e,n)};class A extends Error{constructor(e){super(e.originalError.message),this.type=e.type,this.originalError=e.originalError,this.module=e.module,this.name=e.name}}function D(e){const{componentNode:t,name:r,module:n,type:o,i18nUpdate:s}=e,i={};let a,c;return Object.getOwnPropertyNames(t).forEach(e=>{"function"==typeof t[e]&&("$onMessage"!==e?"$i18n"!==e?"vue3"===o&&S.includes(e)||(i[e]=t[e]):c=t[e]:a=t[e])}),c&&function(e,t,r){if(!e)return;const n=e();var o;null!=(o=n)&&"function"==typeof o.then?(t?y.setI18nConfig(t,{loading:!0,lngStoreKey:"",resources:{}}):y.setGlobalI18nConfig({loading:!0,lngStoreKey:"",resources:{}}),n.then(e=>{if(t)return y.setI18nConfig(t,{...e,loading:!1}),void r?.();const n=u(e.lngStoreKey);l({[e.lngStoreKey]:void 0},!0),l({[e.lngStoreKey]:n},!0),y.setGlobalI18nConfig({...e,loading:!1})}).catch(e=>{x(new A({name:t?.name||"app",module:t?.module,type:"I18N",originalError:e}))})):t?y.setI18nConfig(t,n):y.setGlobalI18nConfig(n)}(c,{name:r,module:n},s),y.setComponentActions({name:r,module:n},i),a?(m={name:r,module:n},p=a,d({[b](e){const{trigger:t,value:r,event:n}=e;m.name===t.name&&m.module===t.module||p({event:n,value:r,trigger:t})}})):()=>null;var m,p}function _(e){const t=k();((e,t)=>e.some(e=>e.name===t.name&&e.module===t.module))(t,e)||t.push(e),l({[v]:t},!0)}function T(e){const{name:t,module:r}=e;let n=k();n=n.filter(e=>e.name!==t||e.module!==r),l({[v]:n},!0),y.deleteComponentActions({name:t,module:r})}function F(e){const{name:t,module:r,url:n}=e,o=u($);return{name:t,module:r,url:n||o[t]}}function U(e,t){const{name:r,module:n}=e;return`${t} ${[r,n].filter(Boolean).join("-")}`}var q=e=>async function(t){const r=y.getMiddlewares(),n=E(e);let{name:o,module:s,action:i,value:a}=t;if(r?.onDispatch){const t=await r.onDispatch({target:{name:o,module:s},action:i,value:a,trigger:e});if(!1===t)return n.warn("blocked by middleware","DISPATCH"),Promise.resolve();!0!==t&&(o=t.target.name,s=t.target.module,i=t.action,a=t.value)}if("app"===o){const t=y.getStoreActions()[i];if(!t){const t=`action "${i}" is not present`,r=new A({...e,type:"DISPATCH",originalError:new Error(t)});throw x(r),r}return m(t,a,e)}const u=y.getComponentActions({name:o,module:s});if(!u){const t="component is not ready",r=new A({...e,type:"DISPATCH",originalError:new Error(t)});throw x(r),r}const c=u[i];if(!c){const t=`action "${i}" is not present`,r=new A({...e,type:"DISPATCH",originalError:new Error(t)});throw x(r),r}return Promise.resolve(c(a,e))},Z=(e,t=!0)=>{const r=u($),n=y.getMiddlewares(),{name:o,module:s,url:i}=e,a=+new Date,c=e=>{t&&x(e)};return i&&M(o,i),new Promise((e,t)=>{if(!i&&!r[o]&&!j(o)){const e=new A({name:o,module:s,type:"NOT_DEFINED",originalError:new Error(`module "${o}" not defined`)});return c(e),void t(e)}window.requirejs([o],r=>{const i=+new Date;if(n?.onLoad?.({name:o,module:s,loadStart:a,loadEnd:i,beenLoaded:I(o)}),!r){const e=new A({name:o,module:s,type:"INVALID_MODULE",originalError:new Error(`module "${o}" invalid`)});return M(o),c(e),void t(e)}const u="default"in r?r.default:r,l=s?r[s]:u;if(void 0===l&&s){const e=new A({name:o,module:s,type:"SUBMODULE_NOT_DEFINED",originalError:new Error(`submodule "${s}" not defined`)});return M(o),c(e),void t(e)}e(l)},e=>{const[r]=e.requireModules;M(o,i),M(r);let n="LOADING_ERROR";r!==o&&(n="SUBMODULE_LOADING_ERROR"),e.message.includes("https://requirejs.org/docs/errors.html")||(n=r===o?"SCRIPT_ERROR":"SUBMODULE_SCRIPT_ERROR");const s=new A({name:o,module:r===o?void 0:r,type:n,originalError:e});c(s),t(s)})})},K=function(r){const{name:n,module:s,url:i,watchKeys:a,onMounted:l}=r,d=a||Object.keys(u());class m extends t.Component{static displayName="various-react-component";state={componentReady:!1,isError:!1};unSubscribeMessage=()=>null;componentDidMount(){this.mountComponent()}componentWillUnmount(){this.error=void 0,this.ComponentNode=null,this.isUnMounted=!0,this.unSubscribeMessage(),T({name:n,module:s})}mountComponent=async()=>{try{const r=await Z({name:n,module:s,url:i},!1);if(this.isUnMounted)return;await(e=r,t={name:n,module:s},new Promise((r,n)=>{e.$$typeof||e.prototype?.isReactComponent||"function"==typeof e?r():n(new A({...t,originalError:new Error("not a valid React component"),type:"INVALID_COMPONENT"}))})),r.displayName=P({name:n,module:s}),_({name:n,module:s}),this.unSubscribeMessage=D({componentNode:r,name:n,module:s,i18nUpdate:()=>this.forceUpdate()}),this.ComponentNode=r,this.setState({componentReady:!0}),l?.()}catch(e){if(this.isUnMounted)return;this.error=e,this.setState({componentReady:!0,isError:!0})}var e,t};$postMessage=O({name:n,module:s});$dispatch=q({name:n,module:s});$t=R({name:n,module:s},()=>this.forceUpdate());$logger=E({name:n,module:s});$self=F({name:n,module:s,url:i});render(){const t=y.getFallbackComponent(),{$silent:r,$componentProps:s,$ref:i}=this.props,{componentReady:a,isError:u}=this.state,c=f(),l=this.ComponentNode;if(u)throw this.error;return a?o().createElement(l,e({},s,{$self:this.$self,$dispatch:this.$dispatch,$store:c,$postMessage:this.$postMessage,$t:this.$t,$logger:this.$logger,ref:i})):r||I(n)?null:o().createElement(t,{$self:this.$self,$store:c})}}const p=c(...d)(m);return p.displayName="various-connector",p},L=function(e){const{name:r,module:n,url:s,watchKeys:i,onMounted:a}=e,c=i||Object.keys(u()),l=e=>{const i=p(...c),u=(0,t.useRef)(),l=(0,t.useRef)(!1),d=(0,t.useRef)(),m=(0,t.useRef)(!1),f=(0,t.useRef)(),g=(0,t.useRef)(F({name:r,module:n,url:s})),h=(0,t.useRef)(null),w=(0,t.useRef)(),v=(0,t.useRef)(),b=(0,t.useRef)(),C=(0,t.useRef)(),$=(0,t.useRef)(),[S,N]=(0,t.useState)(!1),[j,k]=(0,t.useState)(!1),M=y.getFallbackComponent(),{$silent:P,$componentProps:x}=e,K=(0,t.useCallback)(()=>{const e=E({name:r,module:n}),t=q({name:r,module:n}),o=O({name:r,module:n}),s=R({name:r,module:n},()=>{$.current?.()});w.current=u.current.ref({...x}),v.current=u.current.ref({...i});const a=u.current.createApp({setup(){const e=u.current.ref(0);return $.current=()=>{e.value+=1},{key:e}},errorCaptured(e){const t=e;d.current=t.message?.includes("https://react")?new A({originalError:new Error("not a valid Vue component"),name:r,module:n,type:"INVALID_COMPONENT"}):t,k(!0)},render(){return u.current.h(f.current,{...w.current.value,various:{$dispatch:t,$logger:e,$postMessage:o,$t:s,$store:v.current.value,$self:g.current},key:this.key})}});a.mount(h.current),l.current=!0,b.current=()=>a.unmount()},[x,i]),L=(0,t.useCallback)(async()=>{try{const e=await Z({name:"vue"});u.current=e;const t=await Z({name:r,module:n,url:s},!1);if(m.current)return;await function(e,t){const r=new RegExp("^3\\.");return new Promise((n,o)=>{window.requirejs(["vue"],s=>{r.test(s.version)||o(new Error("Vue 3+ required, detected an incompatible version")),"function"!=typeof e?.render&&"function"!=typeof e?.setup?o(new A({...t,originalError:new Error("not a valid Vue component"),type:"INVALID_COMPONENT"})):n()})})}(t,{name:r,module:n}),_({name:r,module:n}),C.current=D({componentNode:t,name:r,module:n,type:"vue3",i18nUpdate(){$.current?.()}}),f.current=t,setTimeout(K),N(!0),a?.()}catch(e){if(m.current)return;d.current=e,N(!0),k(!0)}},[K]);if((0,t.useEffect)(()=>()=>{d.current=void 0,f.current=void 0,m.current=!0,T({name:r,module:n}),b.current?.(),C.current?.(),l.current=!1},[]),(0,t.useEffect)(()=>{l.current||L()},[L]),(0,t.useEffect)(()=>{w.current&&(w.current.value={...x})},[x]),(0,t.useEffect)(()=>{v.current&&(v.current.value={...i})},[i]),j)throw d.current;return o().createElement(o().Fragment,null,S||P||I(r)?null:o().createElement(M,{$self:g.current,$store:i}),o().createElement("div",{className:U({name:r,module:n},"various-vue-component"),ref:h}))};l.displayName=P({name:r,module:n});const d=e=>o().createElement(l,e);return d.displayName="various-vue-component",d};class G extends t.Component{static displayName="various-error-boundary";state={hasError:!1};componentDidCatch(e){const{name:t,module:r}=this.props,n=e instanceof A?e:new A({name:t,module:r,type:"app"===t?"APP_ERROR":"SCRIPT_ERROR",originalError:e});this.setState({hasError:!0}),this.error=n,x(n),M(this.props.name),T({name:t,module:r})}$self=F(this.props);reload=()=>{this.error=void 0,this.setState({hasError:!1})};render(){const e=y.getErrorFallbackComponent(),t=f();return this.state.hasError?o().createElement(e,{$self:this.$self,$reload:this.reload,$store:t,$error:this.error}):this.props.children}}var V=G,B=(e,t)=>{const{name:r,module:n,url:s,type:i="react"}=e,a=("vue3"===i?L:K)({name:r,module:n,url:s,watchKeys:t}),u=e=>{const{$silent:t,$ref:i,...u}=e||{},c={$componentProps:u,$silent:t,$ref:i};return o().createElement(V,{name:r,module:n,url:s},o().createElement(a,c))};return u.displayName="various-creator",u};let H;function W(e){if(H)return H;const t=new Promise((t,r)=>{if(e){if("string"==typeof e){const n=document.createElement("script");return n.src=e,n.onload=e=>t(e),n.onerror=e=>r(e),void document.head.appendChild(n)}window.requirejs=e,t(new Event("requirejs defined"))}else r(new A({name:"standalone",type:"NOT_DEFINED",originalError:new Error("requirejs not defined")}))});return H=t,H}function z(e){Object.entries(e).forEach(([e,t])=>{j(e)||("string"!=typeof t?window.define(e,[],()=>t):window.requirejs.config({paths:{[e]:`${t}#${e}`}}))})}a({[v]:[],[b]:null,[C]:{},[$]:{}});const J=r=>{const{dependencies:n,url:s,name:i,module:a,type:u,$componentProps:c,$ref:l,storeKeys:d}=r,[m,p]=(0,t.useState)(!1),g=(0,t.useRef)(),h=(0,t.useRef)(),[w,E]=(0,t.useState)(!1);if((0,t.useEffect)(()=>{W(n?.requirejs).then(()=>{const{requirejs:e,...t}=n||{};z(t),g.current=B({name:i,module:a,url:s,type:u},d),p(!0)}).catch(e=>{h.current=e,E(!0)})},[i,s,a,n,u,d]),w)throw h.current;if(!m){const e=y.getFallbackComponent();return o().createElement(e,{$self:{name:i,module:a,url:s},$store:f()})}const v=g.current;return o().createElement(v,e({},c,{ref:l}))};J.displayName="various-standalone";const Q=t=>{const r=r=>o().createElement(V,{name:"standalone",url:t.url,module:t.module},o().createElement(J,e({$componentProps:r},t)));return r.displayName="various-standalone-creator",Object.assign(r,{dispatch:e=>{l(e,!0)}})},X=e=>{const{baseDependencies:t,errorFallback:r,fallback:n,store:o}=e,{requirejs:s,...i}=t;r&&y.setErrorFallbackComponent(r),n&&y.setFallbackComponent(n),o&&l(o),W(s).then(()=>{z(i)}).catch(e=>{x(new A({name:"standalone",type:"CONFIG_ERROR",originalError:e}))})}}(),module.exports=n}();
1
+ /******/ (function() { // webpackBootstrap
2
+ /******/ var __webpack_modules__ = ({
3
+
4
+ /***/ "./node_modules/@babel/runtime/helpers/esm/extends.js":
5
+ /*!************************************************************!*\
6
+ !*** ./node_modules/@babel/runtime/helpers/esm/extends.js ***!
7
+ \************************************************************/
8
+ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
9
+
10
+ "use strict";
11
+ __webpack_require__.r(__webpack_exports__);
12
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13
+ /* harmony export */ "default": function() { return /* binding */ _extends; }
14
+ /* harmony export */ });
15
+ function _extends() {
16
+ return _extends = Object.assign ? Object.assign.bind() : function (n) {
17
+ for (var e = 1; e < arguments.length; e++) {
18
+ var t = arguments[e];
19
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
20
+ }
21
+ return n;
22
+ }, _extends.apply(null, arguments);
23
+ }
24
+
25
+
26
+ /***/ }),
27
+
28
+ /***/ "./node_modules/nycticorax/dist/index.js":
29
+ /*!***********************************************!*\
30
+ !*** ./node_modules/nycticorax/dist/index.js ***!
31
+ \***********************************************/
32
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
33
+
34
+ !function(t,e){ true?module.exports=e(__webpack_require__(/*! react */ "react")):0}(self,(t=>(()=>{"use strict";var e={294:(t,e,r)=>{r.d(e,{default:()=>c});var s=r(942),o=r(63),n=r.n(o);function i(t,e=new WeakMap){if("object"!=typeof t||null===t)return t;if(e.has(t))return e.get(t);const r=Array.isArray(t)?[]:{};e.set(t,r);const s=Reflect.ownKeys(t);for(const o of s)r[o]=i(t[o],e);return r}class c{constructor(){var t;(0,s.Z)(this,"state",void 0),(0,s.Z)(this,"listeners",void 0),(0,s.Z)(this,"emits",void 0),(0,s.Z)(this,"timer",void 0),(0,s.Z)(this,"onStateChange",void 0),(0,s.Z)(this,"getStore",void 0),(0,s.Z)(this,"createStore",(t=>{this.listeners=Reflect.ownKeys(t).reduce(((e,r)=>{const s=r;return this.state[s]=t[s],{...e,[r]:[]}}),{})})),(0,s.Z)(this,"subscribe",(t=>{const e={};return Reflect.ownKeys(t).forEach((r=>{const s=r;this.listeners[s]||(this.listeners[s]=[]),this.listeners[s].push(t[s]),e[s]=t[s]})),()=>{Reflect.ownKeys(e).forEach((t=>{const r=t;this.listeners[r]=this.listeners[r].filter((t=>t!==e[r]))}))}})),(0,s.Z)(this,"emit",((t,e)=>{this.emits={...this.emits,...t},e?this.trigger():(clearTimeout(this.timer),this.timer=setTimeout(this.trigger))})),(0,s.Z)(this,"dispatch",((t,...e)=>t({getStore:this.getStore,emit:t=>this.emit(t,!0)},...e))),(0,s.Z)(this,"trigger",(()=>{const t=this.emits,e=[],r=Reflect.ownKeys(t);for(let s=0;s<r.length;s+=1){const o=r[s];if(n()(this.state[o],t[o]))continue;const c=t[o],u=this.state[o];this.state[o]=i(t[o]),e.push({key:o,newValue:c,oldValue:u})}const s={};e.forEach((t=>{s[t.key]=[t.newValue,t.oldValue],this.listeners[t.key]&&this.listeners[t.key].forEach((e=>e(t.newValue,t.oldValue)))})),e.length&&this.onStateChange(s),this.emits={},this.timer=void 0})),this.state={},this.listeners={},this.emits={},this.timer=void 0,this.onStateChange=()=>null,this.getStore=(t=this.state,function(e){return e?i(t[e]):t})}set onChange(t){this.onStateChange=t}}},63:t=>{t.exports=function t(e,r){if(e===r)return!0;if(e&&r&&"object"==typeof e&&"object"==typeof r){if(e.constructor!==r.constructor)return!1;var s,o,n;if(Array.isArray(e)){if((s=e.length)!=r.length)return!1;for(o=s;0!=o--;)if(!t(e[o],r[o]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if((s=(n=Object.keys(e)).length)!==Object.keys(r).length)return!1;for(o=s;0!=o--;)if(!Object.prototype.hasOwnProperty.call(r,n[o]))return!1;for(o=s;0!=o--;){var i=n[o];if(!t(e[i],r[i]))return!1}return!0}return e!=e&&r!=r}},250:e=>{e.exports=t},942:(t,e,r)=>{function s(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}r.d(e,{Z:()=>s})}},r={};function s(t){var o=r[t];if(void 0!==o)return o.exports;var n=r[t]={exports:{}};return e[t](n,n.exports,s),n.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var r in e)s.o(e,r)&&!s.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};return(()=>{s.d(o,{default:()=>u});var t=s(942),e=s(294),r=s(250),n=s.n(r);const i=["name","prototype","length","propTypes","defaultProps","getDerivedStateFromProps","contextTypes","displayName"];class c extends e.default{constructor(...e){super(...e),(0,t.Z)(this,"connect",function(e){const{getStore:s,subscribe:o}=e;return function(...e){return function(c){class u extends r.Component{constructor(r){super(r),(0,t.Z)(this,"unsubscribe",void 0),(0,t.Z)(this,"state",{props:s()}),this.unsubscribe=o(e.reduce(((t,e)=>({...t,[e]:()=>{this.setState({props:s()})}})),{}))}componentWillUnmount(){this.unsubscribe()}render(){const{props:t}=this.state,e={...t,...this.props};return n().createElement(c,e)}}return Object.getOwnPropertyNames(c).forEach((t=>{const e=t;i.includes(t)||(u[e]=c[e])})),u}}}(this)),(0,t.Z)(this,"useStore",function(t){const{getStore:e,subscribe:s}=t;return function(...t){const[o,n]=(0,r.useState)(e());return(0,r.useLayoutEffect)((()=>s(t.reduce(((t,r)=>({...t,[r]:()=>{n((t=>({...t,[r]:e()[r]})))}})),{})))),o}}(this))}}const u=c})(),o.default})()));
35
+ //# sourceMappingURL=index.js.map
36
+
37
+ /***/ }),
38
+
39
+ /***/ "./src/core/config.ts":
40
+ /*!****************************!*\
41
+ !*** ./src/core/config.ts ***!
42
+ \****************************/
43
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
44
+
45
+ "use strict";
46
+ __webpack_require__.r(__webpack_exports__);
47
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
48
+ /* harmony export */ BASE_DEPENDENCIES: function() { return /* binding */ BASE_DEPENDENCIES; },
49
+ /* harmony export */ CONFIG_KEY: function() { return /* binding */ CONFIG_KEY; },
50
+ /* harmony export */ DEPENDENCIES_KEY: function() { return /* binding */ DEPENDENCIES_KEY; },
51
+ /* harmony export */ MESSAGE_KEY: function() { return /* binding */ MESSAGE_KEY; },
52
+ /* harmony export */ MOUNTED_COMPONENTS_KEY: function() { return /* binding */ MOUNTED_COMPONENTS_KEY; },
53
+ /* harmony export */ VUE_FUNCTION_OPTIONS: function() { return /* binding */ VUE_FUNCTION_OPTIONS; },
54
+ /* harmony export */ VUE_VERSION: function() { return /* binding */ VUE_VERSION; }
55
+ /* harmony export */ });
56
+ const MOUNTED_COMPONENTS_KEY = Symbol('MOUNTED_COMPONENTS');
57
+ const MESSAGE_KEY = Symbol('MESSAGE');
58
+ const CONFIG_KEY = Symbol('CONFIG');
59
+ const DEPENDENCIES_KEY = Symbol('DEPENDENCIES');
60
+ const VUE_FUNCTION_OPTIONS = ['beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeUpdate', 'updated', 'beforeUnmount', 'unmounted', 'errorCaptured', 'renderTracked', 'renderTriggered', 'activated', 'deactivated', 'setup', 'data', 'render'];
61
+ const VUE_VERSION = 3;
62
+ const BASE_DEPENDENCIES = ['react', 'react-dom', '@variousjs/various', 'app'];
63
+
64
+ /***/ }),
65
+
66
+ /***/ "./src/core/connector.ts":
67
+ /*!*******************************!*\
68
+ !*** ./src/core/connector.ts ***!
69
+ \*******************************/
70
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
71
+
72
+ "use strict";
73
+ __webpack_require__.r(__webpack_exports__);
74
+ /* harmony import */ var _default_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./default-component */ "./src/core/default-component.tsx");
75
+ /* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helper */ "./src/core/helper.ts");
76
+
77
+
78
+ class Connector {
79
+ constructor() {
80
+ this.fallbackComponent = _default_component__WEBPACK_IMPORTED_MODULE_0__.Fallback;
81
+ this.errorFallbackComponent = _default_component__WEBPACK_IMPORTED_MODULE_0__.ErrorFallback;
82
+ this.storeActions = {};
83
+ this.componentActions = {};
84
+ this.i18nConfigs = {};
85
+ this.middlewares = {};
86
+ }
87
+ setMiddlewares(m) {
88
+ this.middlewares = m;
89
+ }
90
+ getMiddlewares() {
91
+ return this.middlewares;
92
+ }
93
+ setI18nConfig(moduleDefined, config) {
94
+ const name = (0,_helper__WEBPACK_IMPORTED_MODULE_1__.getNameWithModule)(moduleDefined);
95
+ this.i18nConfigs[name] = {
96
+ ...this.i18nConfigs[name],
97
+ ...config
98
+ };
99
+ }
100
+ getI18nConfig(moduleDefined) {
101
+ const name = (0,_helper__WEBPACK_IMPORTED_MODULE_1__.getNameWithModule)(moduleDefined);
102
+ return this.i18nConfigs[name];
103
+ }
104
+ setGlobalI18nConfig(config) {
105
+ this.globalI18nConfig = {
106
+ ...this.globalI18nConfig,
107
+ ...config
108
+ };
109
+ }
110
+ getGlobalI18nConfig() {
111
+ return this.globalI18nConfig;
112
+ }
113
+ setComponentActions(moduleDefined, actions) {
114
+ const name = (0,_helper__WEBPACK_IMPORTED_MODULE_1__.getNameWithModule)(moduleDefined);
115
+ this.componentActions[name] = actions;
116
+ }
117
+ deleteComponentActions(moduleDefined) {
118
+ const name = (0,_helper__WEBPACK_IMPORTED_MODULE_1__.getNameWithModule)(moduleDefined);
119
+ delete this.componentActions[name];
120
+ }
121
+ getComponentActions(moduleDefined) {
122
+ const name = (0,_helper__WEBPACK_IMPORTED_MODULE_1__.getNameWithModule)(moduleDefined);
123
+ return this.componentActions[name];
124
+ }
125
+ setStoreActions(actions) {
126
+ this.storeActions = actions;
127
+ }
128
+ getStoreActions() {
129
+ return this.storeActions;
130
+ }
131
+ setFallbackComponent(fallbackComponent) {
132
+ this.fallbackComponent = fallbackComponent;
133
+ }
134
+ getFallbackComponent() {
135
+ return this.fallbackComponent;
136
+ }
137
+ setErrorFallbackComponent(errorFallbackComponent) {
138
+ this.errorFallbackComponent = errorFallbackComponent;
139
+ }
140
+ getErrorFallbackComponent() {
141
+ return this.errorFallbackComponent;
142
+ }
143
+ }
144
+ /* harmony default export */ __webpack_exports__["default"] = (new Connector());
145
+
146
+ /***/ }),
147
+
148
+ /***/ "./src/core/create-component.tsx":
149
+ /*!***************************************!*\
150
+ !*** ./src/core/create-component.tsx ***!
151
+ \***************************************/
152
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
153
+
154
+ "use strict";
155
+ __webpack_require__.r(__webpack_exports__);
156
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
157
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
158
+ /* harmony import */ var _react_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react-component */ "./src/core/react-component.tsx");
159
+ /* harmony import */ var _vue_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vue-component */ "./src/core/vue-component.tsx");
160
+ /* harmony import */ var _error_boundary__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./error-boundary */ "./src/core/error-boundary.tsx");
161
+
162
+
163
+
164
+
165
+ const createComponent = (config, storeKeys) => {
166
+ const {
167
+ name,
168
+ module,
169
+ url,
170
+ type = 'react'
171
+ } = config;
172
+ const C = (type === 'vue3' ? _vue_component__WEBPACK_IMPORTED_MODULE_2__["default"] : _react_component__WEBPACK_IMPORTED_MODULE_1__["default"])({
173
+ name,
174
+ module,
175
+ url,
176
+ watchKeys: storeKeys
177
+ });
178
+ const component = props => {
179
+ const {
180
+ $silent,
181
+ $ref,
182
+ ...rest
183
+ } = props || {};
184
+ const nextProps = {
185
+ $componentProps: rest,
186
+ $silent,
187
+ $ref
188
+ };
189
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_error_boundary__WEBPACK_IMPORTED_MODULE_3__["default"], {
190
+ name: name,
191
+ module: module,
192
+ url: url
193
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(C, nextProps));
194
+ };
195
+ component.displayName = 'various-creator';
196
+ return component;
197
+ };
198
+ /* harmony default export */ __webpack_exports__["default"] = (createComponent);
199
+
200
+ /***/ }),
201
+
202
+ /***/ "./src/core/create-module.ts":
203
+ /*!***********************************!*\
204
+ !*** ./src/core/create-module.ts ***!
205
+ \***********************************/
206
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
207
+
208
+ "use strict";
209
+ __webpack_require__.r(__webpack_exports__);
210
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ "./src/core/config.ts");
211
+ /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./store */ "./src/core/store.ts");
212
+ /* harmony import */ var _connector__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./connector */ "./src/core/connector.ts");
213
+ /* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helper */ "./src/core/helper.ts");
214
+
215
+
216
+
217
+
218
+ const createModule = (config, logError = true) => {
219
+ const dependencies = (0,_store__WEBPACK_IMPORTED_MODULE_1__.getStore)(_config__WEBPACK_IMPORTED_MODULE_0__.DEPENDENCIES_KEY);
220
+ const middlewares = _connector__WEBPACK_IMPORTED_MODULE_2__["default"].getMiddlewares();
221
+ const {
222
+ name,
223
+ module,
224
+ url
225
+ } = config;
226
+ const loadStart = +new Date();
227
+ const logOnError = e => {
228
+ if (logError) {
229
+ (0,_helper__WEBPACK_IMPORTED_MODULE_3__.onError)(e);
230
+ }
231
+ };
232
+ if (url) {
233
+ (0,_helper__WEBPACK_IMPORTED_MODULE_3__.resetDependencyConfig)(name, url);
234
+ }
235
+ return new Promise((resolve, reject) => {
236
+ if (!url && !dependencies[name] && !(0,_helper__WEBPACK_IMPORTED_MODULE_3__.isModuleSpecified)(name)) {
237
+ const error = new _helper__WEBPACK_IMPORTED_MODULE_3__.VariousError({
238
+ name,
239
+ module,
240
+ type: 'NOT_DEFINED',
241
+ originalError: new Error(`module "${name}" not defined`)
242
+ });
243
+ logOnError(error);
244
+ reject(error);
245
+ return;
246
+ }
247
+ window.requirejs([name], C => {
248
+ const loadEnd = +new Date();
249
+ middlewares?.onLoad?.({
250
+ name,
251
+ module,
252
+ loadStart,
253
+ loadEnd,
254
+ beenLoaded: (0,_helper__WEBPACK_IMPORTED_MODULE_3__.isModuleLoaded)(name)
255
+ });
256
+ if (!C) {
257
+ const error = new _helper__WEBPACK_IMPORTED_MODULE_3__.VariousError({
258
+ name,
259
+ module,
260
+ type: 'INVALID_MODULE',
261
+ originalError: new Error(`module "${name}" invalid`)
262
+ });
263
+ (0,_helper__WEBPACK_IMPORTED_MODULE_3__.resetDependencyConfig)(name);
264
+ logOnError(error);
265
+ reject(error);
266
+ return;
267
+ }
268
+ const defaultModule = 'default' in C ? C.default : C;
269
+ const actualModule = !module ? defaultModule : C[module];
270
+ if (actualModule === undefined && module) {
271
+ const error = new _helper__WEBPACK_IMPORTED_MODULE_3__.VariousError({
272
+ name,
273
+ module,
274
+ type: 'SUBMODULE_NOT_DEFINED',
275
+ originalError: new Error(`submodule "${module}" not defined`)
276
+ });
277
+ (0,_helper__WEBPACK_IMPORTED_MODULE_3__.resetDependencyConfig)(name);
278
+ logOnError(error);
279
+ reject(error);
280
+ return;
281
+ }
282
+ resolve(actualModule);
283
+ }, e => {
284
+ const [requireModule] = e.requireModules;
285
+ (0,_helper__WEBPACK_IMPORTED_MODULE_3__.resetDependencyConfig)(name, url);
286
+ (0,_helper__WEBPACK_IMPORTED_MODULE_3__.resetDependencyConfig)(requireModule);
287
+ let errorType = 'LOADING_ERROR';
288
+ if (requireModule !== name) {
289
+ errorType = 'SUBMODULE_LOADING_ERROR';
290
+ }
291
+ if (!e.message.includes('https://requirejs.org/docs/errors.html')) {
292
+ errorType = requireModule === name ? 'SCRIPT_ERROR' : 'SUBMODULE_SCRIPT_ERROR';
293
+ }
294
+ const error = new _helper__WEBPACK_IMPORTED_MODULE_3__.VariousError({
295
+ name,
296
+ module: requireModule === name ? undefined : requireModule,
297
+ type: errorType,
298
+ originalError: e
299
+ });
300
+ logOnError(error);
301
+ reject(error);
302
+ });
303
+ });
304
+ };
305
+ /* harmony default export */ __webpack_exports__["default"] = (createModule);
306
+
307
+ /***/ }),
308
+
309
+ /***/ "./src/core/default-component.tsx":
310
+ /*!****************************************!*\
311
+ !*** ./src/core/default-component.tsx ***!
312
+ \****************************************/
313
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
314
+
315
+ "use strict";
316
+ __webpack_require__.r(__webpack_exports__);
317
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
318
+ /* harmony export */ ErrorFallback: function() { return /* binding */ ErrorFallback; },
319
+ /* harmony export */ Fallback: function() { return /* binding */ Fallback; },
320
+ /* harmony export */ Root: function() { return /* binding */ Root; }
321
+ /* harmony export */ });
322
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
323
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
324
+ /* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helper */ "./src/core/helper.ts");
325
+
326
+
327
+ const Fallback = props => {
328
+ const className = (0,_helper__WEBPACK_IMPORTED_MODULE_1__.getClassNameWithModule)(props.$self, 'various-component-fallback');
329
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
330
+ className: className
331
+ }, "Loading");
332
+ };
333
+ const ErrorFallback = ({
334
+ $error,
335
+ $reload,
336
+ $self
337
+ }) => {
338
+ const className = (0,_helper__WEBPACK_IMPORTED_MODULE_1__.getClassNameWithModule)($self, 'various-component-error_fallback');
339
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
340
+ className: className
341
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", null, $error.type), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, $error.message), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", {
342
+ type: "button",
343
+ onClick: $reload
344
+ }, "Reload"));
345
+ };
346
+ const Root = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, "App Container is not defined");
347
+
348
+ /***/ }),
349
+
350
+ /***/ "./src/core/dispatch.ts":
351
+ /*!******************************!*\
352
+ !*** ./src/core/dispatch.ts ***!
353
+ \******************************/
354
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
355
+
356
+ "use strict";
357
+ __webpack_require__.r(__webpack_exports__);
358
+ /* harmony import */ var _connector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./connector */ "./src/core/connector.ts");
359
+ /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./store */ "./src/core/store.ts");
360
+ /* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helper */ "./src/core/helper.ts");
361
+ /* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./logger */ "./src/core/logger.ts");
362
+
363
+
364
+
365
+
366
+ const createDispatch = moduleDefined => async function (params) {
367
+ const middlewares = _connector__WEBPACK_IMPORTED_MODULE_0__["default"].getMiddlewares();
368
+ const logger = (0,_logger__WEBPACK_IMPORTED_MODULE_3__["default"])(moduleDefined);
369
+ let {
370
+ name,
371
+ module,
372
+ action,
373
+ value
374
+ } = params;
375
+ if (middlewares?.onDispatch) {
376
+ const check = await middlewares.onDispatch({
377
+ target: {
378
+ name,
379
+ module
380
+ },
381
+ action,
382
+ value,
383
+ trigger: moduleDefined
384
+ });
385
+ if (check === false) {
386
+ logger.warn('blocked by middleware', 'DISPATCH');
387
+ return Promise.resolve();
388
+ }
389
+ if (check !== true) {
390
+ name = check.target.name;
391
+ module = check.target.module;
392
+ action = check.action;
393
+ value = check.value;
394
+ }
395
+ }
396
+ if (name === 'app') {
397
+ const storeActions = _connector__WEBPACK_IMPORTED_MODULE_0__["default"].getStoreActions();
398
+ const storeAction = storeActions[action];
399
+ if (!storeAction) {
400
+ const errorMessage = `action "${action}" is not present`;
401
+ const error = new _helper__WEBPACK_IMPORTED_MODULE_2__.VariousError({
402
+ ...moduleDefined,
403
+ type: 'DISPATCH',
404
+ originalError: new Error(errorMessage)
405
+ });
406
+ (0,_helper__WEBPACK_IMPORTED_MODULE_2__.onError)(error);
407
+ throw error;
408
+ }
409
+ return (0,_store__WEBPACK_IMPORTED_MODULE_1__.dispatch)(storeAction, value, moduleDefined);
410
+ }
411
+ const componentActions = _connector__WEBPACK_IMPORTED_MODULE_0__["default"].getComponentActions({
412
+ name,
413
+ module
414
+ });
415
+ if (!componentActions) {
416
+ const errorMessage = 'component is not ready';
417
+ const error = new _helper__WEBPACK_IMPORTED_MODULE_2__.VariousError({
418
+ ...moduleDefined,
419
+ type: 'DISPATCH',
420
+ originalError: new Error(errorMessage)
421
+ });
422
+ (0,_helper__WEBPACK_IMPORTED_MODULE_2__.onError)(error);
423
+ throw error;
424
+ }
425
+ const componentAction = componentActions[action];
426
+ if (!componentAction) {
427
+ const errorMessage = `action "${action}" is not present`;
428
+ const error = new _helper__WEBPACK_IMPORTED_MODULE_2__.VariousError({
429
+ ...moduleDefined,
430
+ type: 'DISPATCH',
431
+ originalError: new Error(errorMessage)
432
+ });
433
+ (0,_helper__WEBPACK_IMPORTED_MODULE_2__.onError)(error);
434
+ throw error;
435
+ }
436
+ return Promise.resolve(componentAction(value, moduleDefined));
437
+ };
438
+ /* harmony default export */ __webpack_exports__["default"] = (createDispatch);
439
+
440
+ /***/ }),
441
+
442
+ /***/ "./src/core/error-boundary.tsx":
443
+ /*!*************************************!*\
444
+ !*** ./src/core/error-boundary.tsx ***!
445
+ \*************************************/
446
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
447
+
448
+ "use strict";
449
+ __webpack_require__.r(__webpack_exports__);
450
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
451
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
452
+ /* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helper */ "./src/core/helper.ts");
453
+ /* harmony import */ var _connector__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./connector */ "./src/core/connector.ts");
454
+ /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./store */ "./src/core/store.ts");
455
+
456
+
457
+
458
+
459
+ class ErrorBoundary extends react__WEBPACK_IMPORTED_MODULE_0__.Component {
460
+ static displayName = 'various-error-boundary';
461
+ state = {
462
+ hasError: false
463
+ };
464
+ componentDidCatch(e) {
465
+ const {
466
+ name,
467
+ module
468
+ } = this.props;
469
+ const error = e instanceof _helper__WEBPACK_IMPORTED_MODULE_1__.VariousError ? e : new _helper__WEBPACK_IMPORTED_MODULE_1__.VariousError({
470
+ name,
471
+ module,
472
+ type: name === 'app' ? 'APP_ERROR' : 'SCRIPT_ERROR',
473
+ originalError: e
474
+ });
475
+ this.setState({
476
+ hasError: true
477
+ });
478
+ this.error = error;
479
+ (0,_helper__WEBPACK_IMPORTED_MODULE_1__.onError)(error);
480
+ (0,_helper__WEBPACK_IMPORTED_MODULE_1__.resetDependencyConfig)(this.props.name);
481
+ (0,_helper__WEBPACK_IMPORTED_MODULE_1__.updateUnMountComponent)({
482
+ name,
483
+ module
484
+ });
485
+ }
486
+ $self = (0,_helper__WEBPACK_IMPORTED_MODULE_1__.getSelfInfo)(this.props);
487
+ reload = () => {
488
+ this.error = undefined;
489
+ this.setState({
490
+ hasError: false
491
+ });
492
+ };
493
+ render() {
494
+ const ErrorFallbackNode = _connector__WEBPACK_IMPORTED_MODULE_2__["default"].getErrorFallbackComponent();
495
+ const store = (0,_store__WEBPACK_IMPORTED_MODULE_3__.getUserStore)();
496
+ if (this.state.hasError) {
497
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ErrorFallbackNode, {
498
+ $self: this.$self,
499
+ $reload: this.reload,
500
+ $store: store,
501
+ $error: this.error
502
+ });
503
+ }
504
+ return this.props.children;
505
+ }
506
+ }
507
+ /* harmony default export */ __webpack_exports__["default"] = (ErrorBoundary);
508
+
509
+ /***/ }),
510
+
511
+ /***/ "./src/core/helper.ts":
512
+ /*!****************************!*\
513
+ !*** ./src/core/helper.ts ***!
514
+ \****************************/
515
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
516
+
517
+ "use strict";
518
+ __webpack_require__.r(__webpack_exports__);
519
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
520
+ /* harmony export */ VariousError: function() { return /* binding */ VariousError; },
521
+ /* harmony export */ checkReactComponent: function() { return /* binding */ checkReactComponent; },
522
+ /* harmony export */ checkVueComponent: function() { return /* binding */ checkVueComponent; },
523
+ /* harmony export */ defineDependencies: function() { return /* binding */ defineDependencies; },
524
+ /* harmony export */ getClassNameWithModule: function() { return /* binding */ getClassNameWithModule; },
525
+ /* harmony export */ getConfig: function() { return /* binding */ getConfig; },
526
+ /* harmony export */ getMountedComponents: function() { return /* binding */ getMountedComponents; },
527
+ /* harmony export */ getNameWithModule: function() { return /* binding */ getNameWithModule; },
528
+ /* harmony export */ getSelfInfo: function() { return /* binding */ getSelfInfo; },
529
+ /* harmony export */ isModuleLoaded: function() { return /* binding */ isModuleLoaded; },
530
+ /* harmony export */ isModuleSpecified: function() { return /* binding */ isModuleSpecified; },
531
+ /* harmony export */ isPromiseLike: function() { return /* binding */ isPromiseLike; },
532
+ /* harmony export */ onComponentMounted: function() { return /* binding */ onComponentMounted; },
533
+ /* harmony export */ onError: function() { return /* binding */ onError; },
534
+ /* harmony export */ parseComponentActions: function() { return /* binding */ parseComponentActions; },
535
+ /* harmony export */ preloadModules: function() { return /* binding */ preloadModules; },
536
+ /* harmony export */ removeLoadedModules: function() { return /* binding */ removeLoadedModules; },
537
+ /* harmony export */ resetDependencyConfig: function() { return /* binding */ resetDependencyConfig; },
538
+ /* harmony export */ updateMountedComponent: function() { return /* binding */ updateMountedComponent; },
539
+ /* harmony export */ updateUnMountComponent: function() { return /* binding */ updateUnMountComponent; }
540
+ /* harmony export */ });
541
+ /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./store */ "./src/core/store.ts");
542
+ /* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ "./src/core/logger.ts");
543
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./config */ "./src/core/config.ts");
544
+ /* harmony import */ var _connector__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./connector */ "./src/core/connector.ts");
545
+ /* harmony import */ var _message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./message */ "./src/core/message.ts");
546
+ /* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./i18n */ "./src/core/i18n.ts");
547
+
548
+
549
+
550
+
551
+
552
+
553
+ const getUrlHash = url => `${url}?${+new Date()}`;
554
+ const hasModule = (modules, module) => modules.some(c => c.name === module.name && c.module === module.module);
555
+ const preloadModules = names => new Promise((resolve, reject) => {
556
+ window.requirejs(names, resolve, reject);
557
+ });
558
+ const removeLoadedModules = names => {
559
+ names.forEach(name => {
560
+ if (!_config__WEBPACK_IMPORTED_MODULE_2__.BASE_DEPENDENCIES.includes(name)) {
561
+ window.requirejs.undef(name);
562
+ }
563
+ });
564
+ };
565
+ const defineDependencies = deps => {
566
+ const dependencies = (0,_store__WEBPACK_IMPORTED_MODULE_0__.getStore)(_config__WEBPACK_IMPORTED_MODULE_2__.DEPENDENCIES_KEY);
567
+ const next = {};
568
+ Object.keys(deps).forEach(name => {
569
+ if (!_config__WEBPACK_IMPORTED_MODULE_2__.BASE_DEPENDENCIES.includes(name)) {
570
+ next[name] = `${deps[name]}#${name}`;
571
+ window.requirejs.undef(name);
572
+ }
573
+ });
574
+ window.requirejs.config({
575
+ paths: next
576
+ });
577
+ (0,_store__WEBPACK_IMPORTED_MODULE_0__.emit)({
578
+ [_config__WEBPACK_IMPORTED_MODULE_2__.DEPENDENCIES_KEY]: {
579
+ ...dependencies,
580
+ ...next
581
+ }
582
+ }, true);
583
+ };
584
+ const isModuleLoaded = name => window.requirejs.defined(name);
585
+ const isModuleSpecified = name => window.requirejs.specified(name);
586
+ const getMountedComponents = () => (0,_store__WEBPACK_IMPORTED_MODULE_0__.getStore)(_config__WEBPACK_IMPORTED_MODULE_2__.MOUNTED_COMPONENTS_KEY);
587
+ const onComponentMounted = (module, callback) => {
588
+ const modules = Array.isArray(module) ? module : [module];
589
+ if (modules.every(m => hasModule(getMountedComponents(), m))) {
590
+ callback();
591
+ }
592
+ const unSubscribe = (0,_store__WEBPACK_IMPORTED_MODULE_0__.subscribe)({
593
+ [_config__WEBPACK_IMPORTED_MODULE_2__.MOUNTED_COMPONENTS_KEY](value) {
594
+ const mountedModules = value;
595
+ if (modules.every(n => hasModule(mountedModules, n))) {
596
+ unSubscribe();
597
+ callback();
598
+ }
599
+ }
600
+ });
601
+ return unSubscribe;
602
+ };
603
+ const resetDependencyConfig = (name, url) => {
604
+ const dependencies = (0,_store__WEBPACK_IMPORTED_MODULE_0__.getStore)(_config__WEBPACK_IMPORTED_MODULE_2__.DEPENDENCIES_KEY);
605
+
606
+ // ignore multiple custom module url
607
+ if (url && window.requirejs.defined(name)) {
608
+ return;
609
+ }
610
+ let path = getUrlHash(dependencies[name]);
611
+
612
+ // custom module url, but module loaded error
613
+ if (url) {
614
+ path = `${url}#${name}`;
615
+ try {
616
+ const {
617
+ registry
618
+ } = window.requirejs.s.contexts._;
619
+ if (registry?.[name].error) {
620
+ path = getUrlHash(url);
621
+ }
622
+ } catch (e) {
623
+ // ignore
624
+ }
625
+ }
626
+ window.requirejs.undef(name);
627
+ window.requirejs.config({
628
+ paths: {
629
+ [name]: path
630
+ }
631
+ });
632
+ };
633
+ const getNameWithModule = moduleDefined => {
634
+ const {
635
+ name,
636
+ module
637
+ } = moduleDefined;
638
+ return module ? `${name}.${module}` : name;
639
+ };
640
+ function getConfig() {
641
+ return (0,_store__WEBPACK_IMPORTED_MODULE_0__.getStore)(_config__WEBPACK_IMPORTED_MODULE_2__.CONFIG_KEY);
642
+ }
643
+ const onError = e => {
644
+ const {
645
+ name,
646
+ module,
647
+ type
648
+ } = e;
649
+ const logger = (0,_logger__WEBPACK_IMPORTED_MODULE_1__["default"])({
650
+ name,
651
+ module
652
+ });
653
+ logger.error(e, type);
654
+ };
655
+ class VariousError extends Error {
656
+ constructor(data) {
657
+ super(data.originalError.message);
658
+ this.type = data.type;
659
+ this.originalError = data.originalError;
660
+ this.module = data.module;
661
+ this.name = data.name;
662
+ }
663
+ }
664
+ function checkReactComponent(component, moduleDefined) {
665
+ return new Promise((reslove, reject) => {
666
+ if (component.$$typeof || component.prototype?.isReactComponent || typeof component === 'function') {
667
+ reslove();
668
+ return;
669
+ }
670
+ reject(new VariousError({
671
+ ...moduleDefined,
672
+ originalError: new Error('not a valid React component'),
673
+ type: 'INVALID_COMPONENT'
674
+ }));
675
+ });
676
+ }
677
+ function isPromiseLike(value) {
678
+ return value != null && typeof value.then === 'function';
679
+ }
680
+ function checkVueComponent(component, moduleDefined) {
681
+ const versionRegex = new RegExp(`^${_config__WEBPACK_IMPORTED_MODULE_2__.VUE_VERSION}\\.`);
682
+ return new Promise((resolve, reject) => {
683
+ window.requirejs(['vue'], Vue => {
684
+ if (!versionRegex.test(Vue.version)) {
685
+ reject(new Error(`Vue ${_config__WEBPACK_IMPORTED_MODULE_2__.VUE_VERSION}+ required, detected an incompatible version`));
686
+ }
687
+ if (typeof component?.render === 'function' || typeof component?.setup === 'function') {
688
+ resolve();
689
+ return;
690
+ }
691
+ reject(new VariousError({
692
+ ...moduleDefined,
693
+ originalError: new Error('not a valid Vue component'),
694
+ type: 'INVALID_COMPONENT'
695
+ }));
696
+ });
697
+ });
698
+ }
699
+ function parseComponentActions(params) {
700
+ const {
701
+ componentNode,
702
+ name,
703
+ module,
704
+ type,
705
+ i18nUpdate
706
+ } = params;
707
+ const actions = {};
708
+ let onMessageAction;
709
+ let i18nAction;
710
+ Object.getOwnPropertyNames(componentNode).forEach(method => {
711
+ if (typeof componentNode[method] !== 'function') {
712
+ return;
713
+ }
714
+ if (method === '$onMessage') {
715
+ onMessageAction = componentNode[method];
716
+ return;
717
+ }
718
+ if (method === '$i18n') {
719
+ i18nAction = componentNode[method];
720
+ return;
721
+ }
722
+ if (type === 'vue3' && _config__WEBPACK_IMPORTED_MODULE_2__.VUE_FUNCTION_OPTIONS.includes(method)) {
723
+ return;
724
+ }
725
+ actions[method] = componentNode[method];
726
+ });
727
+ if (i18nAction) {
728
+ (0,_i18n__WEBPACK_IMPORTED_MODULE_5__.createI18nConfig)(i18nAction, {
729
+ name,
730
+ module
731
+ }, i18nUpdate);
732
+ }
733
+ _connector__WEBPACK_IMPORTED_MODULE_3__["default"].setComponentActions({
734
+ name,
735
+ module
736
+ }, actions);
737
+ if (onMessageAction) {
738
+ return (0,_message__WEBPACK_IMPORTED_MODULE_4__.createOnMessage)({
739
+ name,
740
+ module
741
+ }, onMessageAction);
742
+ }
743
+ return () => null;
744
+ }
745
+ function updateMountedComponent(moduleDefined) {
746
+ const mountedComponents = getMountedComponents();
747
+ if (!hasModule(mountedComponents, moduleDefined)) {
748
+ mountedComponents.push(moduleDefined);
749
+ }
750
+ (0,_store__WEBPACK_IMPORTED_MODULE_0__.emit)({
751
+ [_config__WEBPACK_IMPORTED_MODULE_2__.MOUNTED_COMPONENTS_KEY]: mountedComponents
752
+ }, true);
753
+ }
754
+ function updateUnMountComponent(moduleDefined) {
755
+ const {
756
+ name,
757
+ module
758
+ } = moduleDefined;
759
+ let mountedComponents = getMountedComponents();
760
+ mountedComponents = mountedComponents.filter(item => item.name !== name || item.module !== module);
761
+ (0,_store__WEBPACK_IMPORTED_MODULE_0__.emit)({
762
+ [_config__WEBPACK_IMPORTED_MODULE_2__.MOUNTED_COMPONENTS_KEY]: mountedComponents
763
+ }, true);
764
+ _connector__WEBPACK_IMPORTED_MODULE_3__["default"].deleteComponentActions({
765
+ name,
766
+ module
767
+ });
768
+ }
769
+ function getSelfInfo(params) {
770
+ const {
771
+ name,
772
+ module,
773
+ url
774
+ } = params;
775
+ const dependencies = (0,_store__WEBPACK_IMPORTED_MODULE_0__.getStore)(_config__WEBPACK_IMPORTED_MODULE_2__.DEPENDENCIES_KEY);
776
+ return {
777
+ name,
778
+ module,
779
+ url: url || dependencies[name]
780
+ };
781
+ }
782
+ function getClassNameWithModule(self, prefix) {
783
+ const {
784
+ name,
785
+ module
786
+ } = self;
787
+ return `${prefix} ${[name, module].filter(Boolean).join('-')}`;
788
+ }
789
+
790
+ /***/ }),
791
+
792
+ /***/ "./src/core/i18n.ts":
793
+ /*!**************************!*\
794
+ !*** ./src/core/i18n.ts ***!
795
+ \**************************/
796
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
797
+
798
+ "use strict";
799
+ __webpack_require__.r(__webpack_exports__);
800
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
801
+ /* harmony export */ createI18n: function() { return /* binding */ createI18n; },
802
+ /* harmony export */ createI18nConfig: function() { return /* binding */ createI18nConfig; }
803
+ /* harmony export */ });
804
+ /* harmony import */ var _connector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./connector */ "./src/core/connector.ts");
805
+ /* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helper */ "./src/core/helper.ts");
806
+ /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./store */ "./src/core/store.ts");
807
+
808
+
809
+
810
+ function createI18nConfig(method, moduleDefined, callback) {
811
+ if (!method) {
812
+ return;
813
+ }
814
+ const i18nConfig = method();
815
+ if (!(0,_helper__WEBPACK_IMPORTED_MODULE_1__.isPromiseLike)(i18nConfig)) {
816
+ if (moduleDefined) {
817
+ _connector__WEBPACK_IMPORTED_MODULE_0__["default"].setI18nConfig(moduleDefined, i18nConfig);
818
+ } else {
819
+ _connector__WEBPACK_IMPORTED_MODULE_0__["default"].setGlobalI18nConfig(i18nConfig);
820
+ }
821
+ return;
822
+ }
823
+ if (moduleDefined) {
824
+ _connector__WEBPACK_IMPORTED_MODULE_0__["default"].setI18nConfig(moduleDefined, {
825
+ loading: true,
826
+ lngStoreKey: '',
827
+ resources: {}
828
+ });
829
+ } else {
830
+ _connector__WEBPACK_IMPORTED_MODULE_0__["default"].setGlobalI18nConfig({
831
+ loading: true,
832
+ lngStoreKey: '',
833
+ resources: {}
834
+ });
835
+ }
836
+ i18nConfig.then(res => {
837
+ if (moduleDefined) {
838
+ _connector__WEBPACK_IMPORTED_MODULE_0__["default"].setI18nConfig(moduleDefined, {
839
+ ...res,
840
+ loading: false
841
+ });
842
+ callback?.();
843
+ return;
844
+ }
845
+ const locale = (0,_store__WEBPACK_IMPORTED_MODULE_2__.getStore)(res.lngStoreKey);
846
+ (0,_store__WEBPACK_IMPORTED_MODULE_2__.emit)({
847
+ [res.lngStoreKey]: undefined
848
+ }, true);
849
+ (0,_store__WEBPACK_IMPORTED_MODULE_2__.emit)({
850
+ [res.lngStoreKey]: locale
851
+ }, true);
852
+ _connector__WEBPACK_IMPORTED_MODULE_0__["default"].setGlobalI18nConfig({
853
+ ...res,
854
+ loading: false
855
+ });
856
+ }).catch(e => {
857
+ (0,_helper__WEBPACK_IMPORTED_MODULE_1__.onError)(new _helper__WEBPACK_IMPORTED_MODULE_1__.VariousError({
858
+ name: moduleDefined?.name || 'app',
859
+ module: moduleDefined?.module,
860
+ type: 'I18N',
861
+ originalError: e
862
+ }));
863
+ });
864
+ }
865
+ function createI18n(moduleDefined, updater) {
866
+ const ctx = (key, params, defaultString) => {
867
+ const i18nConfig = _connector__WEBPACK_IMPORTED_MODULE_0__["default"].getI18nConfig(moduleDefined) || _connector__WEBPACK_IMPORTED_MODULE_0__["default"].getGlobalI18nConfig();
868
+ let defaultText = defaultString;
869
+ if (defaultText === undefined) {
870
+ defaultText = typeof params === 'string' ? params : key;
871
+ }
872
+ if (!i18nConfig) {
873
+ (0,_helper__WEBPACK_IMPORTED_MODULE_1__.onError)(new _helper__WEBPACK_IMPORTED_MODULE_1__.VariousError({
874
+ ...moduleDefined,
875
+ type: 'I18N',
876
+ originalError: new Error('config not exist')
877
+ }));
878
+ return defaultText;
879
+ }
880
+ if (i18nConfig.loading) {
881
+ return defaultText;
882
+ }
883
+ const {
884
+ lngStoreKey,
885
+ resources
886
+ } = i18nConfig;
887
+ const locale = (0,_store__WEBPACK_IMPORTED_MODULE_2__.getStore)(lngStoreKey);
888
+ if (lngStoreKey === undefined || locale === undefined) {
889
+ (0,_helper__WEBPACK_IMPORTED_MODULE_1__.onError)(new _helper__WEBPACK_IMPORTED_MODULE_1__.VariousError({
890
+ ...moduleDefined,
891
+ type: 'I18N',
892
+ originalError: new Error('locale key not defined')
893
+ }));
894
+ return defaultText;
895
+ }
896
+ const resource = resources?.[locale];
897
+ if (!resource) {
898
+ (0,_helper__WEBPACK_IMPORTED_MODULE_1__.onError)(new _helper__WEBPACK_IMPORTED_MODULE_1__.VariousError({
899
+ ...moduleDefined,
900
+ type: 'I18N',
901
+ originalError: new Error(`locale resource \`${locale}\` not exist`)
902
+ }));
903
+ return defaultText;
904
+ }
905
+ if (!resource[key]) {
906
+ (0,_helper__WEBPACK_IMPORTED_MODULE_1__.onError)(new _helper__WEBPACK_IMPORTED_MODULE_1__.VariousError({
907
+ ...moduleDefined,
908
+ type: 'I18N',
909
+ originalError: new Error(`locale key \`${key}\` not exist`)
910
+ }));
911
+ return defaultText;
912
+ }
913
+ const text = resource[key];
914
+ if (!params || typeof params === 'string' || Object.prototype.toString.call(params) !== '[object Object]') {
915
+ return text;
916
+ }
917
+ const args = Object.keys(params);
918
+ if (!args.length) {
919
+ return text;
920
+ }
921
+ return args.reduce((next, arg) => {
922
+ const regex = new RegExp(`{\\s*${arg}\\s*}`, 'g');
923
+ return next.replace(regex, params[arg].toString());
924
+ }, text);
925
+ };
926
+ ctx.update = (config, type) => {
927
+ const i18nConfig = type === 'app' ? _connector__WEBPACK_IMPORTED_MODULE_0__["default"].getGlobalI18nConfig() : _connector__WEBPACK_IMPORTED_MODULE_0__["default"].getI18nConfig(moduleDefined);
928
+ const next = {
929
+ ...i18nConfig,
930
+ ...config
931
+ };
932
+ if (type === 'app') {
933
+ _connector__WEBPACK_IMPORTED_MODULE_0__["default"].setGlobalI18nConfig(next);
934
+ } else {
935
+ _connector__WEBPACK_IMPORTED_MODULE_0__["default"].setI18nConfig(moduleDefined, next);
936
+ }
937
+ updater();
938
+ };
939
+ return ctx;
940
+ }
941
+
942
+ /***/ }),
943
+
944
+ /***/ "./src/core/logger.ts":
945
+ /*!****************************!*\
946
+ !*** ./src/core/logger.ts ***!
947
+ \****************************/
948
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
949
+
950
+ "use strict";
951
+ __webpack_require__.r(__webpack_exports__);
952
+ /* harmony import */ var _connector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./connector */ "./src/core/connector.ts");
953
+ /* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helper */ "./src/core/helper.ts");
954
+
955
+
956
+ const logger = args => {
957
+ const middlewares = _connector__WEBPACK_IMPORTED_MODULE_0__["default"].getMiddlewares();
958
+ const canLog = middlewares?.onLog?.(args);
959
+ if (canLog === false) {
960
+ return;
961
+ }
962
+ const colorMap = {
963
+ info: 'blue',
964
+ warn: 'orange',
965
+ error: 'red'
966
+ };
967
+ const color = colorMap[args.level];
968
+ const params = [`%c ${(0,_helper__WEBPACK_IMPORTED_MODULE_1__.getNameWithModule)(args)} `, `background:${color};border:1px solid ${color};padding:1px;border-radius:2px 0 0 2px;color: #fff;`];
969
+ if (args.type) {
970
+ params[0] = `${params[0]}%c ${args.type} %c`;
971
+ params.push(`border:1px solid ${color};padding:1px;border-radius:0 2px 2px 0;color:${color};`, 'background:transparent');
972
+ }
973
+ if (args.level !== 'info') {
974
+ params[0] = ` ${params[0]}`;
975
+ }
976
+ window.console[args.level](...params, args.message);
977
+ };
978
+ const createLogger = moduleDefined => ({
979
+ info(message, type) {
980
+ logger({
981
+ ...moduleDefined,
982
+ level: 'info',
983
+ type,
984
+ message
985
+ });
986
+ },
987
+ warn(message, type) {
988
+ logger({
989
+ ...moduleDefined,
990
+ level: 'warn',
991
+ type,
992
+ message
993
+ });
994
+ },
995
+ error(message, type) {
996
+ const middlewares = _connector__WEBPACK_IMPORTED_MODULE_0__["default"].getMiddlewares();
997
+ const error = message instanceof _helper__WEBPACK_IMPORTED_MODULE_1__.VariousError ? message : new _helper__WEBPACK_IMPORTED_MODULE_1__.VariousError({
998
+ ...moduleDefined,
999
+ type: type || 'unknow',
1000
+ originalError: message instanceof Error ? message : new Error(message)
1001
+ });
1002
+ middlewares?.onError?.(error);
1003
+ logger({
1004
+ ...moduleDefined,
1005
+ level: 'error',
1006
+ type,
1007
+ message
1008
+ });
1009
+ }
1010
+ });
1011
+ /* harmony default export */ __webpack_exports__["default"] = (createLogger);
1012
+
1013
+ /***/ }),
1014
+
1015
+ /***/ "./src/core/message.ts":
1016
+ /*!*****************************!*\
1017
+ !*** ./src/core/message.ts ***!
1018
+ \*****************************/
1019
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1020
+
1021
+ "use strict";
1022
+ __webpack_require__.r(__webpack_exports__);
1023
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1024
+ /* harmony export */ createOnMessage: function() { return /* binding */ createOnMessage; },
1025
+ /* harmony export */ createPostMessage: function() { return /* binding */ createPostMessage; }
1026
+ /* harmony export */ });
1027
+ /* harmony import */ var _connector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./connector */ "./src/core/connector.ts");
1028
+ /* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ "./src/core/logger.ts");
1029
+ /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./store */ "./src/core/store.ts");
1030
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./config */ "./src/core/config.ts");
1031
+
1032
+
1033
+
1034
+
1035
+ const createPostMessage = moduleDefined => async (event, value) => {
1036
+ const middlewares = _connector__WEBPACK_IMPORTED_MODULE_0__["default"].getMiddlewares();
1037
+ const logger = (0,_logger__WEBPACK_IMPORTED_MODULE_1__["default"])(moduleDefined);
1038
+ let next = {
1039
+ trigger: moduleDefined,
1040
+ event,
1041
+ value
1042
+ };
1043
+ if (middlewares?.onMessage) {
1044
+ const check = await middlewares.onMessage(next);
1045
+ if (check === false) {
1046
+ logger.warn('blocked by middleware', 'POST_MESSAGE');
1047
+ return;
1048
+ }
1049
+ if (check !== true) {
1050
+ next = {
1051
+ ...next,
1052
+ ...check
1053
+ };
1054
+ }
1055
+ }
1056
+ (0,_store__WEBPACK_IMPORTED_MODULE_2__.emit)({
1057
+ [_config__WEBPACK_IMPORTED_MODULE_3__.MESSAGE_KEY]: {
1058
+ timestamp: +new Date(),
1059
+ event: next.event,
1060
+ trigger: moduleDefined,
1061
+ value: next.value
1062
+ }
1063
+ });
1064
+ };
1065
+ const createOnMessage = (moduleDefined, onMessage) => (0,_store__WEBPACK_IMPORTED_MODULE_2__.subscribe)({
1066
+ [_config__WEBPACK_IMPORTED_MODULE_3__.MESSAGE_KEY](v) {
1067
+ const {
1068
+ trigger,
1069
+ value,
1070
+ event
1071
+ } = v;
1072
+ if (moduleDefined.name !== trigger.name || moduleDefined.module !== trigger.module) {
1073
+ onMessage({
1074
+ event,
1075
+ value,
1076
+ trigger
1077
+ });
1078
+ }
1079
+ }
1080
+ });
1081
+
1082
+ /***/ }),
1083
+
1084
+ /***/ "./src/core/react-component.tsx":
1085
+ /*!**************************************!*\
1086
+ !*** ./src/core/react-component.tsx ***!
1087
+ \**************************************/
1088
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1089
+
1090
+ "use strict";
1091
+ __webpack_require__.r(__webpack_exports__);
1092
+ /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");
1093
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
1094
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
1095
+ /* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helper */ "./src/core/helper.ts");
1096
+ /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./store */ "./src/core/store.ts");
1097
+ /* harmony import */ var _connector__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./connector */ "./src/core/connector.ts");
1098
+ /* harmony import */ var _message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./message */ "./src/core/message.ts");
1099
+ /* harmony import */ var _dispatch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./dispatch */ "./src/core/dispatch.ts");
1100
+ /* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./logger */ "./src/core/logger.ts");
1101
+ /* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./i18n */ "./src/core/i18n.ts");
1102
+ /* harmony import */ var _create_module__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./create-module */ "./src/core/create-module.ts");
1103
+
1104
+
1105
+
1106
+
1107
+
1108
+
1109
+
1110
+
1111
+
1112
+
1113
+ function reactComponent(config) {
1114
+ const {
1115
+ name,
1116
+ module,
1117
+ url,
1118
+ watchKeys,
1119
+ onMounted
1120
+ } = config;
1121
+ const storeKeys = watchKeys || Object.keys((0,_store__WEBPACK_IMPORTED_MODULE_3__.getStore)());
1122
+ class R extends react__WEBPACK_IMPORTED_MODULE_1__.Component {
1123
+ static displayName = 'various-react-component';
1124
+ state = {
1125
+ componentReady: false,
1126
+ isError: false
1127
+ };
1128
+ unSubscribeMessage = () => null;
1129
+ componentDidMount() {
1130
+ this.isUnMounted = false; // fix StrictMode
1131
+ this.mountComponent();
1132
+ }
1133
+ componentWillUnmount() {
1134
+ this.error = undefined;
1135
+ this.ComponentNode = null;
1136
+ this.isUnMounted = true;
1137
+ this.unSubscribeMessage();
1138
+ (0,_helper__WEBPACK_IMPORTED_MODULE_2__.updateUnMountComponent)({
1139
+ name,
1140
+ module
1141
+ });
1142
+ }
1143
+ mountComponent = async () => {
1144
+ try {
1145
+ const componentNode = await (0,_create_module__WEBPACK_IMPORTED_MODULE_9__["default"])({
1146
+ name,
1147
+ module,
1148
+ url
1149
+ }, false);
1150
+ if (this.isUnMounted) {
1151
+ return;
1152
+ }
1153
+ await (0,_helper__WEBPACK_IMPORTED_MODULE_2__.checkReactComponent)(componentNode, {
1154
+ name,
1155
+ module
1156
+ });
1157
+ componentNode.displayName = (0,_helper__WEBPACK_IMPORTED_MODULE_2__.getNameWithModule)({
1158
+ name,
1159
+ module
1160
+ });
1161
+ (0,_helper__WEBPACK_IMPORTED_MODULE_2__.updateMountedComponent)({
1162
+ name,
1163
+ module
1164
+ });
1165
+ this.unSubscribeMessage = (0,_helper__WEBPACK_IMPORTED_MODULE_2__.parseComponentActions)({
1166
+ componentNode,
1167
+ name,
1168
+ module,
1169
+ i18nUpdate: () => this.forceUpdate()
1170
+ });
1171
+ this.ComponentNode = componentNode;
1172
+ this.setState({
1173
+ componentReady: true
1174
+ });
1175
+ onMounted?.();
1176
+ } catch (e) {
1177
+ if (this.isUnMounted) {
1178
+ return;
1179
+ }
1180
+ this.error = e;
1181
+ this.setState({
1182
+ componentReady: true,
1183
+ isError: true
1184
+ });
1185
+ }
1186
+ };
1187
+ $postMessage = (0,_message__WEBPACK_IMPORTED_MODULE_5__.createPostMessage)({
1188
+ name,
1189
+ module
1190
+ });
1191
+ $dispatch = (0,_dispatch__WEBPACK_IMPORTED_MODULE_6__["default"])({
1192
+ name,
1193
+ module
1194
+ });
1195
+ $t = (0,_i18n__WEBPACK_IMPORTED_MODULE_8__.createI18n)({
1196
+ name,
1197
+ module
1198
+ }, () => this.forceUpdate());
1199
+ $logger = (0,_logger__WEBPACK_IMPORTED_MODULE_7__["default"])({
1200
+ name,
1201
+ module
1202
+ });
1203
+ $self = (0,_helper__WEBPACK_IMPORTED_MODULE_2__.getSelfInfo)({
1204
+ name,
1205
+ module,
1206
+ url
1207
+ });
1208
+ render() {
1209
+ const Fallback = _connector__WEBPACK_IMPORTED_MODULE_4__["default"].getFallbackComponent();
1210
+ const {
1211
+ $silent,
1212
+ $componentProps,
1213
+ $ref
1214
+ } = this.props;
1215
+ const {
1216
+ componentReady,
1217
+ isError
1218
+ } = this.state;
1219
+ const store = (0,_store__WEBPACK_IMPORTED_MODULE_3__.getUserStore)();
1220
+ const ComponentNode = this.ComponentNode;
1221
+ if (isError) {
1222
+ throw this.error;
1223
+ }
1224
+ if (!componentReady) {
1225
+ if ($silent || (0,_helper__WEBPACK_IMPORTED_MODULE_2__.isModuleLoaded)(name)) {
1226
+ return null;
1227
+ }
1228
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(Fallback, {
1229
+ $self: this.$self,
1230
+ $store: store
1231
+ });
1232
+ }
1233
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(ComponentNode, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, $componentProps, {
1234
+ $self: this.$self,
1235
+ $dispatch: this.$dispatch,
1236
+ $store: store,
1237
+ $postMessage: this.$postMessage,
1238
+ $t: this.$t,
1239
+ $logger: this.$logger,
1240
+ ref: $ref
1241
+ }));
1242
+ }
1243
+ }
1244
+ const Connected = (0,_store__WEBPACK_IMPORTED_MODULE_3__.connect)(...storeKeys)(R);
1245
+ Connected.displayName = 'various-connector';
1246
+ return Connected;
1247
+ }
1248
+ /* harmony default export */ __webpack_exports__["default"] = (reactComponent);
1249
+
1250
+ /***/ }),
1251
+
1252
+ /***/ "./src/core/store.ts":
1253
+ /*!***************************!*\
1254
+ !*** ./src/core/store.ts ***!
1255
+ \***************************/
1256
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1257
+
1258
+ "use strict";
1259
+ __webpack_require__.r(__webpack_exports__);
1260
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1261
+ /* harmony export */ connect: function() { return /* binding */ connect; },
1262
+ /* harmony export */ createStore: function() { return /* binding */ createStore; },
1263
+ /* harmony export */ dispatch: function() { return /* binding */ dispatch; },
1264
+ /* harmony export */ emit: function() { return /* binding */ emit; },
1265
+ /* harmony export */ getStore: function() { return /* binding */ getStore; },
1266
+ /* harmony export */ getUserStore: function() { return /* binding */ getUserStore; },
1267
+ /* harmony export */ subscribe: function() { return /* binding */ subscribe; },
1268
+ /* harmony export */ useStore: function() { return /* binding */ useStore; }
1269
+ /* harmony export */ });
1270
+ /* harmony import */ var nycticorax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! nycticorax */ "./node_modules/nycticorax/dist/index.js");
1271
+ /* harmony import */ var nycticorax__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(nycticorax__WEBPACK_IMPORTED_MODULE_0__);
1272
+
1273
+ const {
1274
+ createStore,
1275
+ getStore,
1276
+ connect,
1277
+ emit,
1278
+ subscribe,
1279
+ dispatch,
1280
+ useStore
1281
+ } = new (nycticorax__WEBPACK_IMPORTED_MODULE_0___default())();
1282
+ function getUserStore() {
1283
+ const globalStore = getStore();
1284
+ const keys = Object.keys(globalStore);
1285
+ const store = {};
1286
+ keys.forEach(key => {
1287
+ store[key] = globalStore[key];
1288
+ });
1289
+ return store;
1290
+ }
1291
+
1292
+ /***/ }),
1293
+
1294
+ /***/ "./src/core/vue-component.tsx":
1295
+ /*!************************************!*\
1296
+ !*** ./src/core/vue-component.tsx ***!
1297
+ \************************************/
1298
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1299
+
1300
+ "use strict";
1301
+ __webpack_require__.r(__webpack_exports__);
1302
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1303
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1304
+ /* harmony import */ var _connector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./connector */ "./src/core/connector.ts");
1305
+ /* harmony import */ var _create_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./create-module */ "./src/core/create-module.ts");
1306
+ /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./store */ "./src/core/store.ts");
1307
+ /* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helper */ "./src/core/helper.ts");
1308
+ /* harmony import */ var _dispatch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dispatch */ "./src/core/dispatch.ts");
1309
+ /* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./logger */ "./src/core/logger.ts");
1310
+ /* harmony import */ var _message__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./message */ "./src/core/message.ts");
1311
+ /* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./i18n */ "./src/core/i18n.ts");
1312
+
1313
+
1314
+
1315
+
1316
+
1317
+
1318
+
1319
+
1320
+
1321
+ function vueComponent(config) {
1322
+ const {
1323
+ name,
1324
+ module,
1325
+ url,
1326
+ watchKeys,
1327
+ onMounted
1328
+ } = config;
1329
+ const storeKeys = watchKeys || Object.keys((0,_store__WEBPACK_IMPORTED_MODULE_3__.getStore)());
1330
+ const V = props => {
1331
+ const store = (0,_store__WEBPACK_IMPORTED_MODULE_3__.useStore)(...storeKeys);
1332
+ const vueRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
1333
+ const vmRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
1334
+ const isVueMounted = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);
1335
+ const errorRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
1336
+ const isUnMountedRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);
1337
+ const ComponentNodeRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
1338
+ const selfRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)((0,_helper__WEBPACK_IMPORTED_MODULE_4__.getSelfInfo)({
1339
+ name,
1340
+ module,
1341
+ url
1342
+ }));
1343
+ const containerDivRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
1344
+ const propsReactiveRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
1345
+ const storeReactiveRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
1346
+ const unMountVue = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
1347
+ const unSubscribeMessageRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
1348
+ const updateVueComponentRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
1349
+ const [componentReady, setComponentReady] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
1350
+ const [isError, setIsError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
1351
+ const Fallback = _connector__WEBPACK_IMPORTED_MODULE_1__["default"].getFallbackComponent();
1352
+ const {
1353
+ $silent,
1354
+ $componentProps
1355
+ } = props;
1356
+ const mountVue = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
1357
+ const $logger = (0,_logger__WEBPACK_IMPORTED_MODULE_6__["default"])({
1358
+ name,
1359
+ module
1360
+ });
1361
+ const $dispatch = (0,_dispatch__WEBPACK_IMPORTED_MODULE_5__["default"])({
1362
+ name,
1363
+ module
1364
+ });
1365
+ const $postMessage = (0,_message__WEBPACK_IMPORTED_MODULE_7__.createPostMessage)({
1366
+ name,
1367
+ module
1368
+ });
1369
+ const $t = (0,_i18n__WEBPACK_IMPORTED_MODULE_8__.createI18n)({
1370
+ name,
1371
+ module
1372
+ }, () => {
1373
+ updateVueComponentRef.current?.();
1374
+ });
1375
+ propsReactiveRef.current = vueRef.current.ref({
1376
+ ...$componentProps
1377
+ });
1378
+ storeReactiveRef.current = vueRef.current.ref({
1379
+ ...store
1380
+ });
1381
+ const vueApp = vueRef.current.createApp({
1382
+ setup() {
1383
+ const renderKey = vueRef.current.ref(0);
1384
+ updateVueComponentRef.current = () => {
1385
+ renderKey.value += 1;
1386
+ };
1387
+ return {
1388
+ key: renderKey
1389
+ };
1390
+ },
1391
+ errorCaptured(e) {
1392
+ const error = e;
1393
+ errorRef.current = error.message?.includes('https://react') ? new _helper__WEBPACK_IMPORTED_MODULE_4__.VariousError({
1394
+ originalError: new Error('not a valid Vue component'),
1395
+ name,
1396
+ module,
1397
+ type: 'INVALID_COMPONENT'
1398
+ }) : error;
1399
+ setIsError(true);
1400
+ },
1401
+ render() {
1402
+ return vueRef.current.h(ComponentNodeRef.current, {
1403
+ ...propsReactiveRef.current.value,
1404
+ various: {
1405
+ $dispatch,
1406
+ $logger,
1407
+ $postMessage,
1408
+ $t,
1409
+ $store: storeReactiveRef.current.value,
1410
+ $self: selfRef.current
1411
+ },
1412
+ // eslint-disable-next-line react/no-this-in-sfc
1413
+ key: this.key
1414
+ });
1415
+ }
1416
+ });
1417
+
1418
+ // fix StrictMode
1419
+ if (!vmRef.current) {
1420
+ vmRef.current = vueApp.mount(containerDivRef.current);
1421
+ }
1422
+ isVueMounted.current = true;
1423
+ unMountVue.current = () => vueApp.unmount();
1424
+ }, [$componentProps, store]);
1425
+ const mountComponent = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async () => {
1426
+ try {
1427
+ const vue = await (0,_create_module__WEBPACK_IMPORTED_MODULE_2__["default"])({
1428
+ name: 'vue'
1429
+ });
1430
+ vueRef.current = vue;
1431
+ const componentNode = await (0,_create_module__WEBPACK_IMPORTED_MODULE_2__["default"])({
1432
+ name,
1433
+ module,
1434
+ url
1435
+ }, false);
1436
+ if (isUnMountedRef.current) {
1437
+ return;
1438
+ }
1439
+ await (0,_helper__WEBPACK_IMPORTED_MODULE_4__.checkVueComponent)(componentNode, {
1440
+ name,
1441
+ module
1442
+ });
1443
+ (0,_helper__WEBPACK_IMPORTED_MODULE_4__.updateMountedComponent)({
1444
+ name,
1445
+ module
1446
+ });
1447
+ unSubscribeMessageRef.current = (0,_helper__WEBPACK_IMPORTED_MODULE_4__.parseComponentActions)({
1448
+ componentNode,
1449
+ name,
1450
+ module,
1451
+ type: 'vue3',
1452
+ i18nUpdate() {
1453
+ updateVueComponentRef.current?.();
1454
+ }
1455
+ });
1456
+ ComponentNodeRef.current = componentNode;
1457
+ setTimeout(mountVue);
1458
+ setComponentReady(true);
1459
+ onMounted?.();
1460
+ } catch (e) {
1461
+ if (isUnMountedRef.current) {
1462
+ return;
1463
+ }
1464
+ errorRef.current = e;
1465
+ setComponentReady(true);
1466
+ setIsError(true);
1467
+ }
1468
+ }, [mountVue]);
1469
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
1470
+ // fix StrictMode
1471
+ isUnMountedRef.current = false;
1472
+ return () => {
1473
+ errorRef.current = undefined;
1474
+ ComponentNodeRef.current = undefined;
1475
+ isUnMountedRef.current = true;
1476
+ (0,_helper__WEBPACK_IMPORTED_MODULE_4__.updateUnMountComponent)({
1477
+ name,
1478
+ module
1479
+ });
1480
+ unMountVue.current?.();
1481
+ unSubscribeMessageRef.current?.();
1482
+ isVueMounted.current = false;
1483
+ };
1484
+ }, []);
1485
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
1486
+ if (isVueMounted.current) {
1487
+ return;
1488
+ }
1489
+ mountComponent();
1490
+ }, [mountComponent]);
1491
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
1492
+ if (propsReactiveRef.current) {
1493
+ propsReactiveRef.current.value = {
1494
+ ...$componentProps
1495
+ };
1496
+ }
1497
+ }, [$componentProps]);
1498
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
1499
+ if (storeReactiveRef.current) {
1500
+ storeReactiveRef.current.value = {
1501
+ ...store
1502
+ };
1503
+ }
1504
+ }, [store]);
1505
+ if (isError) {
1506
+ throw errorRef.current;
1507
+ }
1508
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, !componentReady && !$silent && !(0,_helper__WEBPACK_IMPORTED_MODULE_4__.isModuleLoaded)(name) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Fallback, {
1509
+ $self: selfRef.current,
1510
+ $store: store
1511
+ }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
1512
+ className: (0,_helper__WEBPACK_IMPORTED_MODULE_4__.getClassNameWithModule)({
1513
+ name,
1514
+ module
1515
+ }, 'various-vue-component'),
1516
+ ref: containerDivRef
1517
+ }));
1518
+ };
1519
+ V.displayName = (0,_helper__WEBPACK_IMPORTED_MODULE_4__.getNameWithModule)({
1520
+ name,
1521
+ module
1522
+ });
1523
+ const VueComponent = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(V, props);
1524
+ VueComponent.displayName = 'various-vue-component';
1525
+ return VueComponent;
1526
+ }
1527
+ /* harmony default export */ __webpack_exports__["default"] = (vueComponent);
1528
+
1529
+ /***/ }),
1530
+
1531
+ /***/ "./src/standalone/helper.ts":
1532
+ /*!**********************************!*\
1533
+ !*** ./src/standalone/helper.ts ***!
1534
+ \**********************************/
1535
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1536
+
1537
+ "use strict";
1538
+ __webpack_require__.r(__webpack_exports__);
1539
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1540
+ /* harmony export */ defineModules: function() { return /* binding */ defineModules; },
1541
+ /* harmony export */ loadRequireJS: function() { return /* binding */ loadRequireJS; }
1542
+ /* harmony export */ });
1543
+ /* harmony import */ var _core_helper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/helper */ "./src/core/helper.ts");
1544
+
1545
+ let requirejsPromise;
1546
+ function loadRequireJS(dep) {
1547
+ if (requirejsPromise) {
1548
+ return requirejsPromise;
1549
+ }
1550
+ const promise = new Promise((resolve, reject) => {
1551
+ if (!dep) {
1552
+ reject(new _core_helper__WEBPACK_IMPORTED_MODULE_0__.VariousError({
1553
+ name: 'standalone',
1554
+ type: 'NOT_DEFINED',
1555
+ originalError: new Error('requirejs not defined')
1556
+ }));
1557
+ return;
1558
+ }
1559
+ if (typeof dep === 'string') {
1560
+ const script = document.createElement('script');
1561
+ script.src = dep;
1562
+ script.onload = e => resolve(e);
1563
+ script.onerror = e => reject(e);
1564
+ document.head.appendChild(script);
1565
+ return;
1566
+ }
1567
+
1568
+ // @ts-ignore
1569
+ window.requirejs = dep;
1570
+ resolve(new Event('requirejs defined'));
1571
+ });
1572
+ requirejsPromise = promise;
1573
+ return requirejsPromise;
1574
+ }
1575
+ const defineAsync = (name, factory) => {
1576
+ window.define(name, [], factory);
1577
+ return new Promise(resolve => {
1578
+ const check = () => {
1579
+ if (window.requirejs.specified(name)) {
1580
+ resolve();
1581
+ return;
1582
+ }
1583
+ setTimeout(check, 100);
1584
+ };
1585
+ check();
1586
+ });
1587
+ };
1588
+ function defineModules(deps) {
1589
+ const defines = [];
1590
+ Object.entries(deps).forEach(([key, value]) => {
1591
+ if ((0,_core_helper__WEBPACK_IMPORTED_MODULE_0__.isModuleSpecified)(key)) {
1592
+ return;
1593
+ }
1594
+ if (typeof value === 'string') {
1595
+ window.requirejs.config({
1596
+ paths: {
1597
+ [key]: `${value}#${key}`
1598
+ }
1599
+ });
1600
+ return;
1601
+ }
1602
+ defines.push({
1603
+ key,
1604
+ value
1605
+ });
1606
+ });
1607
+ return Promise.all(defines.map(item => defineAsync(item.key, () => item.value)));
1608
+ }
1609
+
1610
+ /***/ }),
1611
+
1612
+ /***/ "react":
1613
+ /*!************************!*\
1614
+ !*** external "react" ***!
1615
+ \************************/
1616
+ /***/ (function(module) {
1617
+
1618
+ "use strict";
1619
+ module.exports = require("react");
1620
+
1621
+ /***/ })
1622
+
1623
+ /******/ });
1624
+ /************************************************************************/
1625
+ /******/ // The module cache
1626
+ /******/ var __webpack_module_cache__ = {};
1627
+ /******/
1628
+ /******/ // The require function
1629
+ /******/ function __webpack_require__(moduleId) {
1630
+ /******/ // Check if module is in cache
1631
+ /******/ var cachedModule = __webpack_module_cache__[moduleId];
1632
+ /******/ if (cachedModule !== undefined) {
1633
+ /******/ return cachedModule.exports;
1634
+ /******/ }
1635
+ /******/ // Create a new module (and put it into the cache)
1636
+ /******/ var module = __webpack_module_cache__[moduleId] = {
1637
+ /******/ // no module.id needed
1638
+ /******/ // no module.loaded needed
1639
+ /******/ exports: {}
1640
+ /******/ };
1641
+ /******/
1642
+ /******/ // Execute the module function
1643
+ /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
1644
+ /******/
1645
+ /******/ // Return the exports of the module
1646
+ /******/ return module.exports;
1647
+ /******/ }
1648
+ /******/
1649
+ /************************************************************************/
1650
+ /******/ /* webpack/runtime/compat get default export */
1651
+ /******/ !function() {
1652
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
1653
+ /******/ __webpack_require__.n = function(module) {
1654
+ /******/ var getter = module && module.__esModule ?
1655
+ /******/ function() { return module['default']; } :
1656
+ /******/ function() { return module; };
1657
+ /******/ __webpack_require__.d(getter, { a: getter });
1658
+ /******/ return getter;
1659
+ /******/ };
1660
+ /******/ }();
1661
+ /******/
1662
+ /******/ /* webpack/runtime/define property getters */
1663
+ /******/ !function() {
1664
+ /******/ // define getter functions for harmony exports
1665
+ /******/ __webpack_require__.d = function(exports, definition) {
1666
+ /******/ for(var key in definition) {
1667
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
1668
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
1669
+ /******/ }
1670
+ /******/ }
1671
+ /******/ };
1672
+ /******/ }();
1673
+ /******/
1674
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
1675
+ /******/ !function() {
1676
+ /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
1677
+ /******/ }();
1678
+ /******/
1679
+ /******/ /* webpack/runtime/make namespace object */
1680
+ /******/ !function() {
1681
+ /******/ // define __esModule on exports
1682
+ /******/ __webpack_require__.r = function(exports) {
1683
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
1684
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1685
+ /******/ }
1686
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
1687
+ /******/ };
1688
+ /******/ }();
1689
+ /******/
1690
+ /************************************************************************/
1691
+ var __webpack_exports__ = {};
1692
+ // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
1693
+ !function() {
1694
+ "use strict";
1695
+ /*!**********************************!*\
1696
+ !*** ./src/standalone/index.tsx ***!
1697
+ \**********************************/
1698
+ __webpack_require__.r(__webpack_exports__);
1699
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1700
+ /* harmony export */ createComponent: function() { return /* binding */ createComponent; },
1701
+ /* harmony export */ createConfig: function() { return /* binding */ createConfig; }
1702
+ /* harmony export */ });
1703
+ /* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");
1704
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
1705
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
1706
+ /* harmony import */ var _core_create_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/create-component */ "./src/core/create-component.tsx");
1707
+ /* harmony import */ var _core_error_boundary__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/error-boundary */ "./src/core/error-boundary.tsx");
1708
+ /* harmony import */ var _core_connector__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/connector */ "./src/core/connector.ts");
1709
+ /* harmony import */ var _core_helper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/helper */ "./src/core/helper.ts");
1710
+ /* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./helper */ "./src/standalone/helper.ts");
1711
+ /* harmony import */ var _core_store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/store */ "./src/core/store.ts");
1712
+ /* harmony import */ var _core_config__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../core/config */ "./src/core/config.ts");
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1721
+
1722
+ (0,_core_store__WEBPACK_IMPORTED_MODULE_7__.createStore)({
1723
+ [_core_config__WEBPACK_IMPORTED_MODULE_8__.MOUNTED_COMPONENTS_KEY]: [],
1724
+ [_core_config__WEBPACK_IMPORTED_MODULE_8__.MESSAGE_KEY]: null,
1725
+ [_core_config__WEBPACK_IMPORTED_MODULE_8__.CONFIG_KEY]: {},
1726
+ [_core_config__WEBPACK_IMPORTED_MODULE_8__.DEPENDENCIES_KEY]: {}
1727
+ });
1728
+ const Standalone = props => {
1729
+ const {
1730
+ dependencies,
1731
+ url,
1732
+ name,
1733
+ module,
1734
+ type,
1735
+ $componentProps,
1736
+ $ref,
1737
+ storeKeys
1738
+ } = props;
1739
+ const [componentReady, setComponentReady] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);
1740
+ const componentNode = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)();
1741
+ const errorRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)();
1742
+ const [isError, setIsError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);
1743
+ (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
1744
+ (0,_helper__WEBPACK_IMPORTED_MODULE_6__.loadRequireJS)(dependencies?.requirejs).then(() => {
1745
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1746
+ const {
1747
+ requirejs,
1748
+ ...rest
1749
+ } = dependencies || {};
1750
+ return (0,_helper__WEBPACK_IMPORTED_MODULE_6__.defineModules)(rest);
1751
+ }).then(() => {
1752
+ componentNode.current = (0,_core_create_component__WEBPACK_IMPORTED_MODULE_2__["default"])({
1753
+ name,
1754
+ module,
1755
+ url,
1756
+ type
1757
+ }, storeKeys);
1758
+ setComponentReady(true);
1759
+ }).catch(e => {
1760
+ errorRef.current = e;
1761
+ setIsError(true);
1762
+ });
1763
+ }, [name, url, module, dependencies, type, storeKeys]);
1764
+ if (isError) {
1765
+ throw errorRef.current;
1766
+ }
1767
+ if (!componentReady) {
1768
+ const FallBack = _core_connector__WEBPACK_IMPORTED_MODULE_4__["default"].getFallbackComponent();
1769
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(FallBack, {
1770
+ $self: {
1771
+ name,
1772
+ module,
1773
+ url
1774
+ },
1775
+ $store: (0,_core_store__WEBPACK_IMPORTED_MODULE_7__.getUserStore)()
1776
+ });
1777
+ }
1778
+ const C = componentNode.current;
1779
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(C, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, $componentProps, {
1780
+ ref: $ref
1781
+ }));
1782
+ };
1783
+ Standalone.displayName = 'various-standalone';
1784
+ const createComponent = args => {
1785
+ const component = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_core_error_boundary__WEBPACK_IMPORTED_MODULE_3__["default"], {
1786
+ name: "standalone",
1787
+ url: args.url,
1788
+ module: args.module
1789
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(Standalone, (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({
1790
+ $componentProps: props
1791
+ }, args)));
1792
+ const dispatch = next => {
1793
+ (0,_core_store__WEBPACK_IMPORTED_MODULE_7__.emit)(next, true);
1794
+ };
1795
+ component.displayName = 'various-standalone-creator';
1796
+ return Object.assign(component, {
1797
+ dispatch
1798
+ });
1799
+ };
1800
+ const createConfig = config => {
1801
+ const {
1802
+ baseDependencies,
1803
+ errorFallback,
1804
+ fallback,
1805
+ store
1806
+ } = config;
1807
+ const {
1808
+ requirejs,
1809
+ ...rest
1810
+ } = baseDependencies;
1811
+ if (errorFallback) {
1812
+ _core_connector__WEBPACK_IMPORTED_MODULE_4__["default"].setErrorFallbackComponent(errorFallback);
1813
+ }
1814
+ if (fallback) {
1815
+ _core_connector__WEBPACK_IMPORTED_MODULE_4__["default"].setFallbackComponent(fallback);
1816
+ }
1817
+ if (store) {
1818
+ (0,_core_store__WEBPACK_IMPORTED_MODULE_7__.emit)(store);
1819
+ }
1820
+ (0,_helper__WEBPACK_IMPORTED_MODULE_6__.loadRequireJS)(requirejs).then(() => {
1821
+ (0,_helper__WEBPACK_IMPORTED_MODULE_6__.defineModules)(rest);
1822
+ }).catch(e => {
1823
+ (0,_core_helper__WEBPACK_IMPORTED_MODULE_5__.onError)(new _core_helper__WEBPACK_IMPORTED_MODULE_5__.VariousError({
1824
+ name: 'standalone',
1825
+ type: 'CONFIG_ERROR',
1826
+ originalError: e
1827
+ }));
1828
+ });
1829
+ };
1830
+ }();
1831
+ module.exports = __webpack_exports__;
1832
+ /******/ })()
1833
+ ;
2
1834
  //# sourceMappingURL=standalone.js.map