esp-js-react
Version:
Evented State Processor (ESP) React Components
3 lines • 13.5 kB
JavaScript
/*! For license information please see esp-react.min.js.LICENSE.txt */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("esp-js"),require("esp-js-polimer"),require("react")):"function"==typeof define&&define.amd?define(["esp-js","esp-js-polimer","react"],t):"object"==typeof exports?exports["esp-js-react"]=t(require("esp-js"),require("esp-js-polimer"),require("react")):e["esp-js-react"]=t(e["esp-js"],e["esp-js-polimer"],e.react)}(self,((e,t,n)=>(()=>{"use strict";var o={774:(e,t,n)=>{var o=n(155);var r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=o.useSyncExternalStore,l=o.useRef,u=o.useEffect,s=o.useMemo,d=o.useDebugValue;t.useSyncExternalStoreWithSelector=function(e,t,n,o,c){var a=l(null);if(null===a.current){var v={hasValue:!1,value:null};a.current=v}else v=a.current;a=s((function(){function e(e){if(!u){if(u=!0,i=e,e=o(e),void 0!==c&&v.hasValue){var t=v.value;if(c(t,e))return l=t}return l=e}if(t=l,r(i,e))return t;var n=o(e);return void 0!==c&&c(t,n)?t:(i=e,l=n)}var i,l,u=!1,s=void 0===n?null:n;return[function(){return e(t())},null===s?void 0:function(){return e(s())}]}),[t,n,o,c]);var p=i(e,a[0],a[1]);return u((function(){v.hasValue=!0,v.value=p}),[p]),d(p),p}},614:(e,t,n)=>{e.exports=n(774)},746:function(e,t,n){var o=this&&this.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n};Object.defineProperty(t,"__esModule",{value:!0}),t.connect=void 0;const r=n(155),i=n(397);t.connect=function(e,t){return function(n){return function(l){const{modelId:u,viewContext:s}=l,d=o(l,["modelId","viewContext"]);return r.createElement(i.ConnectableComponent,Object.assign({modelId:u,view:n,viewContext:s,createPublishEventProps:t,mapModelToProps:e},d))}}}},397:function(e,t,n){var o=this&&this.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n};Object.defineProperty(t,"__esModule",{value:!0}),t.ConnectableComponent=void 0;const r=n(155),i=n(169),l=n(155),u=n(963),s=n(213),d=n(606),c=n(43);t.ConnectableComponent=e=>{var{modelId:t,mapModelToProps:n,createPublishEventProps:a,view:v,viewContext:p}=e,b=o(e,["modelId","mapModelToProps","createPublishEventProps","view","viewContext"]);const f=(0,i.useRouter)();let y=(0,u.useGetModelId)();t=t||y;const h=(0,l.useMemo)((()=>{if(a){return a(((e,n)=>{f.publishEvent(t,e,n)}))}return{}}),[f,t]),M=(0,d.useSyncModelWithSelector)((e=>e),(0,d.syncModelWithSelectorOptions)().setModelId(t).setTryPreSelectPolimerImmutableModel(!1));if(null==M)return null;let P=((e,t,n,o,r,i)=>{const l=c.PolimerModel.isPolimerModel(o)?o.getEspPolimerImmutableModel():o;let u=Object.assign(Object.assign(Object.assign({modelId:t,router:e},n),i),{model:l});return r&&(u=Object.assign(Object.assign({},u),r(l,i))),u})(f,t,b,M,n,h),E=(0,s.createViewForModel)(M,P,p,v);return r.createElement(u.EspModelContextProvider,Object.assign({modelId:t,model:M,router:f},P),E)}},963:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.EspModelContextProvider=t.usePublishModelEventWithEntityKey=t.PublishModelEventWithEntityKeyContext=t.usePublishModelEvent=t.PublishModelEventContext=t.useGetModel=t.GetModelContext=t.useGetModelId=t.GetModelIdContext=void 0;const o=n(155),r=n(152),i=n(155),l=n(169);t.GetModelIdContext=(0,i.createContext)(null);t.useGetModelId=()=>(0,i.useContext)(t.GetModelIdContext),t.GetModelContext=(0,i.createContext)(null);t.useGetModel=()=>(0,i.useContext)(t.GetModelContext);t.PublishModelEventContext=(0,i.createContext)(null);t.usePublishModelEvent=()=>(0,i.useContext)(t.PublishModelEventContext);t.PublishModelEventWithEntityKeyContext=(0,i.createContext)(null);t.usePublishModelEventWithEntityKey=()=>(0,i.useContext)(t.PublishModelEventWithEntityKeyContext);t.EspModelContextProvider=({modelId:e,children:n,model:u})=>{const s=(0,l.useRouter)();let d=(0,t.useGetModelId)();e=e||d;const c=(0,i.useCallback)(((e,t)=>function(...n){1===n.length?e.publishEvent(t,n[0].eventType,n[0].event):e.publishEvent(t,n[0],n[1])})(s,e),[s,e]),a=(0,i.useCallback)(((e,t)=>function(...n){1===n.length?e.publishEvent(new r.DefaultModelAddress(t,n[0].entityKey),n[0].eventType,n[0].event):e.publishEvent(new r.DefaultModelAddress(t,n[0]),n[1],n[2])})(s,e),[s,e]);return o.createElement(t.GetModelIdContext.Provider,{value:e},o.createElement(t.PublishModelEventContext.Provider,{value:c},o.createElement(t.PublishModelEventWithEntityKeyContext.Provider,{value:a},o.createElement(t.GetModelContext.Provider,{value:u},n))))}},169:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RouterProvider=t.EspRouterContextProvider=t.usePublishEvent=t.PublishEventContext=t.useRouter=t.RouterContext=void 0;const o=n(155),r=n(155);t.RouterContext=(0,r.createContext)(null);t.useRouter=()=>(0,r.useContext)(t.RouterContext);t.PublishEventContext=(0,r.createContext)(null);t.usePublishEvent=()=>(0,r.useContext)(t.PublishEventContext);t.EspRouterContextProvider=({children:e,router:n})=>{let i=(0,t.useRouter)();n=n||i;const l=(0,r.useCallback)((e=>function(...t){1===t.length?e.publishEvent(t[0].address,t[0].eventType,t[0].event):e.publishEvent(t[0],t[1],t[2])})(n),[n]);return o.createElement(t.RouterContext.Provider,{value:n},o.createElement(t.PublishEventContext.Provider,{value:l},e))},t.RouterProvider=t.EspRouterContextProvider},185:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=n(43),r=n(213);o.PolimerModelBuilder.prototype.withViewBindings=function(e,t=r.DEFAULT_VIEW_KEY){let n=this._viewMappings||{};return n[t]=e,this._viewMappings=n,this};let i=o.PolimerModelBuilder.prototype.registerWithRouter;o.PolimerModelBuilder.prototype.registerWithRouter=function(){let e=i.call(this),t=this._viewMappings;return t&&Object.keys(t).forEach((n=>{(0,r.viewBinding)(t[n],n)(e.constructor)})),e}},606:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useSyncModelWithSelector=t.syncModelWithSelectorOptions=t.logger=void 0;const o=n(155),r=n(614),i=n(152),l=n(169),u=n(963),s=n(43);t.logger=i.Logger.create("useSyncModelWithSelector");t.syncModelWithSelectorOptions=()=>{let e,t=(e,t)=>e===t,n=!0;return{get modelId(){return e},setModelId(t){return e=t,this},get equalityFn(){return t},setEqualityFn(e){return t=e,this},get tryPreSelectPolimerImmutableModel(){return n},setTryPreSelectPolimerImmutableModel(e){return n=e,this}}};t.useSyncModelWithSelector=(e,n=(0,t.syncModelWithSelectorOptions)())=>{((e,t)=>{if(!i.utils.isFunction(e))throw new Error("You must pass a selector function to useSyncModelWithSelector");if(!i.utils.isObject(t))throw new Error("You must provide options when using useSyncModelWithSelector");if(!i.utils.isFunction(t.equalityFn))throw new Error("You must provide an equalityFn when using useSyncModelWithSelector")})(e,n);const s=(0,l.useRouter)(),a=(0,u.useGetModelId)(),v=(null==n?void 0:n.modelId)||a,p=null==n?void 0:n.tryPreSelectPolimerImmutableModel,b=null==n?void 0:n.equalityFn,f=(0,o.useMemo)((()=>s&&i.utils.isString(v)&&s.isModelRegistered(v)?d(s,v,e,p):c()),[s,v]);return(0,r.useSyncExternalStoreWithSelector)(f.subscribe,f.getSnapshot,void 0,f.wrappedSelector,b)};const d=(e,t,n,o)=>{let r,i=null;const l=e.getModelObservable(t).subscribe((e=>{const n=o&&s.PolimerModel.isPolimerModel(e)?e.getEspPolimerImmutableModel():Object.create(e);a(t,r,n),r=n,i&&i()}));return{subscribe:e=>(i=e,()=>{i=null,r=null,l.dispose()}),getSnapshot:()=>r,wrappedSelector:e=>e?n(e):null}},c=()=>({subscribe:()=>()=>{},getSnapshot:()=>null,wrappedSelector:()=>null}),a=(e,t,n)=>{}},453:function(e,t,n){var o=this&&this.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n};Object.defineProperty(t,"__esModule",{value:!0}),t.ViewBinder=void 0;const r=n(213),i=n(169);t.ViewBinder=e=>{var{model:t,viewContext:n}=e,l=o(e,["model","viewContext"]);if(t){const e=(0,i.useRouter)(),o=Object.assign({model:t,router:e},l);return(0,r.createViewForModel)(t,o,n,null)}return null}},213:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ViewMetadataRegistration=t.ViewMetadata=t.DEFAULT_VIEW_KEY=void 0,t.createViewForModel=function(e,n,r,i){let l=i;if(e){let n=e.constructor;if(n._viewMetadata){let e=n._viewMetadata;if(r&&e.hasRegisteredViewContext(r)){l=e.viewRegistrations[r].view}if(!l&&e.hasRegisteredViewContext(t.DEFAULT_VIEW_KEY)){l=e.viewRegistrations[t.DEFAULT_VIEW_KEY].view}}}if(!l)throw new Error(`No suitable view found for model id '${e.modelId}' using context '${r}'`);return o.createElement(l,n)},t.viewBinding=function(e,n=t.DEFAULT_VIEW_KEY){return r.Guard.isDefined(e,"view must be defined"),r.Guard.isString(n,"displayContext must be a string"),function(t){let o=function(e){e._viewMetadata||(e._viewMetadata=new i);return e._viewMetadata}(t);if(o.hasRegisteredViewContext(n))throw new Error(`Context ${n} already registered for view`);o.viewRegistrations[n]=new l(e,n)}};const o=n(155),r=n(152);t.DEFAULT_VIEW_KEY="default-view-key";class i{constructor(){this._viewRegistrations={}}get viewRegistrations(){return this._viewRegistrations}hasRegisteredViewContext(e){return void 0!==this._viewRegistrations[e]}}t.ViewMetadata=i;class l{constructor(e,t){this._view=e,this._displayContext=t}get view(){return this._view}get displayContext(){return this._displayContext}}t.ViewMetadataRegistration=l},152:t=>{t.exports=e},43:e=>{e.exports=t},155:e=>{e.exports=n}},r={};function i(e){var t=r[e];if(void 0!==t)return t.exports;var n=r[e]={exports:{}};return o[e].call(n.exports,n,n.exports,i),n.exports}var l={};return(()=>{var e=l;Object.defineProperty(e,"__esModule",{value:!0}),e.EspModelContextProvider=e.usePublishModelEventWithEntityKey=e.PublishModelEventWithEntityKeyContext=e.usePublishModelEvent=e.PublishModelEventContext=e.GetModelContext=e.useGetModel=e.GetModelIdContext=e.useGetModelId=e.usePublishEvent=e.PublishEventContext=e.useRouter=e.RouterContext=e.EspRouterContextProvider=e.RouterProvider=e.syncModelWithSelectorOptions=e.useSyncModelWithSelector=e.ConnectableComponent=e.connect=e.createViewForModel=e.DEFAULT_VIEW_KEY=e.viewBinding=e.ViewBinder=void 0,i(185);var t=i(453);Object.defineProperty(e,"ViewBinder",{enumerable:!0,get:function(){return t.ViewBinder}});var n=i(213);Object.defineProperty(e,"viewBinding",{enumerable:!0,get:function(){return n.viewBinding}}),Object.defineProperty(e,"DEFAULT_VIEW_KEY",{enumerable:!0,get:function(){return n.DEFAULT_VIEW_KEY}});var o=i(213);Object.defineProperty(e,"createViewForModel",{enumerable:!0,get:function(){return o.createViewForModel}});var r=i(746);Object.defineProperty(e,"connect",{enumerable:!0,get:function(){return r.connect}});var u=i(397);Object.defineProperty(e,"ConnectableComponent",{enumerable:!0,get:function(){return u.ConnectableComponent}});var s=i(606);Object.defineProperty(e,"useSyncModelWithSelector",{enumerable:!0,get:function(){return s.useSyncModelWithSelector}}),Object.defineProperty(e,"syncModelWithSelectorOptions",{enumerable:!0,get:function(){return s.syncModelWithSelectorOptions}});var d=i(169);Object.defineProperty(e,"RouterProvider",{enumerable:!0,get:function(){return d.RouterProvider}}),Object.defineProperty(e,"EspRouterContextProvider",{enumerable:!0,get:function(){return d.EspRouterContextProvider}}),Object.defineProperty(e,"RouterContext",{enumerable:!0,get:function(){return d.RouterContext}}),Object.defineProperty(e,"useRouter",{enumerable:!0,get:function(){return d.useRouter}}),Object.defineProperty(e,"PublishEventContext",{enumerable:!0,get:function(){return d.PublishEventContext}}),Object.defineProperty(e,"usePublishEvent",{enumerable:!0,get:function(){return d.usePublishEvent}});var c=i(963);Object.defineProperty(e,"useGetModelId",{enumerable:!0,get:function(){return c.useGetModelId}}),Object.defineProperty(e,"GetModelIdContext",{enumerable:!0,get:function(){return c.GetModelIdContext}}),Object.defineProperty(e,"useGetModel",{enumerable:!0,get:function(){return c.useGetModel}}),Object.defineProperty(e,"GetModelContext",{enumerable:!0,get:function(){return c.GetModelContext}}),Object.defineProperty(e,"PublishModelEventContext",{enumerable:!0,get:function(){return c.PublishModelEventContext}}),Object.defineProperty(e,"usePublishModelEvent",{enumerable:!0,get:function(){return c.usePublishModelEvent}}),Object.defineProperty(e,"PublishModelEventWithEntityKeyContext",{enumerable:!0,get:function(){return c.PublishModelEventWithEntityKeyContext}}),Object.defineProperty(e,"usePublishModelEventWithEntityKey",{enumerable:!0,get:function(){return c.usePublishModelEventWithEntityKey}}),Object.defineProperty(e,"EspModelContextProvider",{enumerable:!0,get:function(){return c.EspModelContextProvider}})})(),l})()));
//# sourceMappingURL=esp-react.min.js.map