@mic-rexjs/usecases-react 2.13.4 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see index.min.js.LICENSE.txt */
2
- (()=>{var t={698(t,e){"use strict";var r=Symbol.for("react.transitional.element");Symbol.for("react.fragment"),e.jsx=function(t,e,n){var o=null;if(void 0!==n&&(o=""+n),void 0!==e.key&&(o=""+e.key),"key"in e)for(var u in n={},e)"key"!==u&&(n[u]=e[u]);else n=e;return e=n.ref,{$$typeof:r,type:t,key:o,ref:void 0!==e?e:null,props:n}}},848(t,e,r){"use strict";t.exports=r(698)},172(t){t.exports=function(t,e){this.v=t,this.k=e},t.exports.__esModule=!0,t.exports.default=t.exports},993(t,e,r){var n=r(546);function o(){var e,r,u="function"==typeof Symbol?Symbol:{},a=u.iterator||"@@iterator",i=u.toStringTag||"@@toStringTag";function c(t,o,u,a){var i=o&&o.prototype instanceof s?o:s,c=Object.create(i.prototype);return n(c,"_invoke",function(t,n,o){var u,a,i,c=0,s=o||[],l=!1,p={p:0,n:0,v:e,a:y,f:y.bind(e,4),d:function(t,r){return u=t,a=0,i=e,p.n=r,f}};function y(t,n){for(a=t,i=n,r=0;!l&&c&&!o&&r<s.length;r++){var o,u=s[r],y=p.p,b=u[2];t>3?(o=b===n)&&(i=u[(a=u[4])?5:(a=3,3)],u[4]=u[5]=e):u[0]<=y&&((o=t<2&&y<u[1])?(a=0,p.v=n,p.n=u[1]):y<b&&(o=t<3||u[0]>n||n>b)&&(u[4]=t,u[5]=n,p.n=b,a=0))}if(o||t>1)return f;throw l=!0,n}return function(o,s,b){if(c>1)throw TypeError("Generator is already running");for(l&&1===s&&y(s,b),a=s,i=b;(r=a<2?e:i)||!l;){u||(a?a<3?(a>1&&(p.n=-1),y(a,i)):p.n=i:p.v=i);try{if(c=2,u){if(a||(o="next"),r=u[o]){if(!(r=r.call(u,i)))throw TypeError("iterator result is not an object");if(!r.done)return r;i=r.value,a<2&&(a=0)}else 1===a&&(r=u.return)&&r.call(u),a<2&&(i=TypeError("The iterator does not provide a '"+o+"' method"),a=1);u=e}else if((r=(l=p.n<0)?i:t.call(n,p))!==f)break}catch(t){u=e,a=1,i=t}finally{c=1}}return{value:r,done:l}}}(t,u,a),!0),c}var f={};function s(){}function l(){}function p(){}r=Object.getPrototypeOf;var y=[][a]?r(r([][a]())):(n(r={},a,function(){return this}),r),b=p.prototype=s.prototype=Object.create(y);function v(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,n(t,i,"GeneratorFunction")),t.prototype=Object.create(b),t}return l.prototype=p,n(b,"constructor",p),n(p,"constructor",l),l.displayName="GeneratorFunction",n(p,i,"GeneratorFunction"),n(b),n(b,i,"Generator"),n(b,a,function(){return this}),n(b,"toString",function(){return"[object Generator]"}),(t.exports=o=function(){return{w:c,m:v}},t.exports.__esModule=!0,t.exports.default=t.exports)()}t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports},869(t,e,r){var n=r(887);t.exports=function(t,e,r,o,u){var a=n(t,e,r,o,u);return a.next().then(function(t){return t.done?t.value:a.next()})},t.exports.__esModule=!0,t.exports.default=t.exports},887(t,e,r){var n=r(993),o=r(791);t.exports=function(t,e,r,u,a){return new o(n().w(t,e,r,u),a||Promise)},t.exports.__esModule=!0,t.exports.default=t.exports},791(t,e,r){var n=r(172),o=r(546);t.exports=function t(e,r){function u(t,o,a,i){try{var c=e[t](o),f=c.value;return f instanceof n?r.resolve(f.v).then(function(t){u("next",t,a,i)},function(t){u("throw",t,a,i)}):r.resolve(f).then(function(t){c.value=t,a(c)},function(t){return u("throw",t,a,i)})}catch(t){i(t)}}var a;this.next||(o(t.prototype),o(t.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),o(this,"_invoke",function(t,e,n){function o(){return new r(function(e,r){u(t,n,e,r)})}return a=a?a.then(o,o):o()},!0)},t.exports.__esModule=!0,t.exports.default=t.exports},546(t){function e(r,n,o,u){var a=Object.defineProperty;try{a({},"",{})}catch(r){a=0}t.exports=e=function(t,r,n,o){function u(r,n){e(t,r,function(t){return this._invoke(r,n,t)})}r?a?a(t,r,{value:n,enumerable:!o,configurable:!o,writable:!o}):t[r]=n:(u("next",0),u("throw",1),u("return",2))},t.exports.__esModule=!0,t.exports.default=t.exports,e(r,n,o,u)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},373(t){t.exports=function(t){var e=Object(t),r=[];for(var n in e)r.unshift(n);return function t(){for(;r.length;)if((n=r.pop())in e)return t.value=n,t.done=!1,t;return t.done=!0,t}},t.exports.__esModule=!0,t.exports.default=t.exports},633(t,e,r){var n=r(172),o=r(993),u=r(869),a=r(887),i=r(791),c=r(373),f=r(579);function s(){"use strict";var e=o(),r=e.m(s),l=(Object.getPrototypeOf?Object.getPrototypeOf(r):r.__proto__).constructor;function p(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===l||"GeneratorFunction"===(e.displayName||e.name))}var y={throw:1,return:2,break:3,continue:3};function b(t){var e,r;return function(n){e||(e={stop:function(){return r(n.a,2)},catch:function(){return n.v},abrupt:function(t,e){return r(n.a,y[t],e)},delegateYield:function(t,o,u){return e.resultName=o,r(n.d,f(t),u)},finish:function(t){return r(n.f,t)}},r=function(t,r,o){n.p=e.prev,n.n=e.next;try{return t(r,o)}finally{e.next=n.n}}),e.resultName&&(e[e.resultName]=n.v,e.resultName=void 0),e.sent=n.v,e.next=n.n;try{return t.call(this,e)}finally{n.p=e.prev,n.n=e.next}}}return(t.exports=s=function(){return{wrap:function(t,r,n,o){return e.w(b(t),r,n,o&&o.reverse())},isGeneratorFunction:p,mark:e.m,awrap:function(t,e){return new n(t,e)},AsyncIterator:i,async:function(t,e,r,n,o){return(p(e)?a:u)(b(t),e,r,n,o)},keys:c,values:f}},t.exports.__esModule=!0,t.exports.default=t.exports)()}t.exports=s,t.exports.__esModule=!0,t.exports.default=t.exports},579(t,e,r){var n=r(738).default;t.exports=function(t){if(null!=t){var e=t["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length))return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}}}throw new TypeError(n(t)+" is not iterable")},t.exports.__esModule=!0,t.exports.default=t.exports},738(t){function e(r){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},756(t,e,r){var n=r(633)();t.exports=n;try{regeneratorRuntime=n}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var u=e[n]={exports:{}};return t[n](u,u.exports,r),u.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(e,r,n){return(r=function(e){var r=function(e){if("object"!=t(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=t(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==t(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function o(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(n=0;n<u.length;n++)r=u[n],-1===e.indexOf(r)&&{}.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}r.r(n),r.d(n,{UseCaseFragment:()=>G,useUseCase:()=>U});var u=r(848);function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function i(t,e){if(t){if("string"==typeof t)return a(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(t,e):void 0}}function c(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,u,a,i=[],c=!0,f=!1;try{if(u=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=u.call(r)).done)&&(i.push(n.value),i.length!==e);c=!0);}catch(t){f=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(f)throw o}}return i}}(t,e)||i(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}const f=React;var s,l=r.n(f),p=function(t){return c((0,f.useState)(t),1)[0]};!function(t){t[t.None=0]="None",t[t.Entity=2]="Entity"}(s||(s={}));var y=function(t){return c((0,f.useState)(function(){return t}),1)[0]},b=function(t,e){return p(function(){return t(e)})};const v=ahooks,d=usecases;var h;!function(t){t[t.None=0]="None",t[t.RootEnabled=2]="RootEnabled",t[t.ContextEnabled=4]="ContextEnabled",t[t.EntityEnabled=8]="EntityEnabled",t[t.ContextRootEnabled=6]="ContextRootEnabled",t[t.EntityRootEnabled=14]="EntityRootEnabled"}(h||(h={}));var O=(0,d.createUseCase)(function(){var t=new Map,e=(0,f.createContext)(null);return function(){return{createContextValue:function(t,e,r){return(r&h.EntityEnabled)===h.EntityEnabled?{store:t,reducers:e,statuses:r}:{reducers:e,statuses:r}},getUseCaseContext:function(r){return t.has(r)?t.get(r).value:e},registerUseCase:function(r,n){if(t.has(r)){var o=t.get(r),u=o.value,a=o.times;return t.set(r,{value:u,times:a+1}),u}if((n&s.Entity)!==s.Entity)return e;var i=(0,f.createContext)(null);return t.set(r,{value:i,times:1}),i},unregisterUseCase:function(e,r){if((r&s.Entity)!==s.Entity)return!1;if(!t.has(e))return!1;var n=t.get(e),o=n.value,u=n.times;return 1===u?t.delete(e):t.set(e,{value:o,times:u-1}),!0}}}}),m=function(t,e,r){return p(function(){return(0,d.createEntityReducers)(t,e,r)})};function g(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||i(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var x=r(756),j=r.n(x);function w(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function E(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?w(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var P=(0,d.createUseCase)(function(){return function(){var e=(0,d.entityUseCase)(),r=(0,d.utilsUseCase)().createKey,n=r(),o=function(e,r){return"object"===t(e)&&null!==e&&Object.hasOwn(e,r)},u=function(t,e){return t!==e},a=function(e,r,n){if(e===r)return!0;var o="object"===t(e)&&null!==e,u="object"===t(r)&&null!==r;if(!o||!u)return!1;for(var a=!0,i=Object.keys(e),c=Object.keys(r),f=i.length,s=[].concat(i,c),l="function"==typeof n,p=0,y=s.length;p<y;p++){var b=s[p],v=p>=f,d=i.includes(b);if(!v||!d){var h=Object.hasOwn(e,b),O=Object.hasOwn(r,b),m=h&&!O||!h&&O,g=e[b],x=r[b];if(m||g!==x){if(a=!1,!l)break;n(b,x,g)}}}return a},i=j().mark(function t(e,r){return j().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(u(e,r)){t.next=1;break}return t.abrupt("return",!1);case 1:return t.next=2,r;case 2:return t.abrupt("return",!0);case 3:case"end":return t.stop()}},t)}),f=j().mark(function t(e,r){var n,o,u,i,c,f;return j().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(n=Array.isArray(e),o=Array.isArray(r),i=(u=n&&o)?[]:{},u&&(c=e.length,f=r.length,i.length=Math.max(c,f)),a(e,r,function(t,e){i[t]=e})){t.next=1;break}return t.next=1,r;case 1:return t.abrupt("return",i);case 2:case"end":return t.stop()}},t)}),s=j().mark(function t(e,r){return j().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!a(e,r)){t.next=1;break}return t.abrupt("return",!0);case 1:return t.next=2,r;case 2:return t.abrupt("return",!1);case 3:case"end":return t.stop()}},t)}),l=j().mark(function t(e,o,u){return j().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(s(e,o),"t0",1);case 1:return t.t0||(n=null!=u?u:r()),t.abrupt("return",n);case 2:case"end":return t.stop()}},t)});return E(E({},e),{},{isValueChanged:u,isValueMatched:a,matchProperty:function(t,e,r,n){var u=!0,a=r,i=[{fieldPaths:[],newEntity:e,newValue:e,oldEntity:t,oldValue:t}];do{var f=i.shift(),s=f.oldValue,l=f.newValue,p=f.fieldPaths,y=c(a.match(/^([^.]+)\.(.+)$/)||[],3),b=y[1],v=void 0===b?a:b,d=y[2],h=void 0===d?"":d,O=o(s,v),m=o(l,v);if(O||m){var x=Object.getOwnPropertyDescriptor(O?s:{},v)||{},j=Object.getOwnPropertyDescriptor(m?l:{},v)||{},w=x.value,E=x.get,P=x.set,S=j.value,C=j.get,_=j.set,M={fieldPaths:[].concat(g(p),[v]),newEntity:e,newValue:S,oldEntity:t,oldValue:w};if(h){a=h,i.push(M);continue}if(!("function"!=typeof E&&"function"!=typeof P||"function"!=typeof C&&"function"!=typeof _))continue;if(S===w)continue;u=!1,null==n||n(M)}else if(!/^\d+^/.test(v))for(var k=Array.isArray(s)?s:[],R=Array.isArray(l)?l:[],V=k.length,D=R.length,A=Math.max(V,D),U=0;U<A;U++)i.push({fieldPaths:[].concat(g(p),["".concat(U)]),newEntity:e,newValue:R[U],oldEntity:t,oldValue:k[U]})}while(i.length>0);return u},recordValue:i,recordValueDiff:f,recordValueMatch:s,recordValueMatchWith:l})}}),S=function(){var t=P().isValueMatched,e=function(e,r){var n,o=r||{},u=o.onShouldCache,a=void 0===u?function(){return!0}:u,i=o.onCompare,c=void 0===i?function(e,r){return t(e,r)}:i;return function(){for(var t=a(),r=arguments.length,o=new Array(r),u=0;u<r;u++)o[u]=arguments[u];if(n&&t){var i=n,f=i.parameters,s=i.returnValue;if(c(f,o))return s}var l=e.apply(void 0,o);return t&&(n={parameters:o,returnValue:l}),l}};return{cacheCall:e,cacheCalls:function(t,r){var n={};return Object.entries(t).forEach(function(t){var o=c(t,2),u=o[0],a=o[1];n[u]=e(a,r)}),n},captureCalls:function(t,e){var r={};return Object.keys(t).forEach(function(n){var o=t[n];r[n]="function"!=typeof o?o:function(){for(var t=arguments.length,r=new Array(t),o=0;o<t;o++)r[o]=arguments[o];return e(n,r)}}),r}}},C=function(t,e,r){var n,o=c((0,m(n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],P).recordValueMatchWith)(n),2)[1],u=(0,v.useLatest)(r),a=b(S).cacheCall,i=(0,v.useMemoizedFn)(function(){var t=u.current;return a(t,{onCompare:function(){return!0}})}),f=(0,v.useCreation)(function(){return i()},[o,i]);return(0,v.useCreation)(function(){return(e&h.RootEnabled)!==h.RootEnabled&&t?t:f()},[e,t,f])};function _(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function M(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?_(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):_(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var k=["watch","onChange","options"];function R(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function V(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?R(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):R(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var D=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=(0,d.entityUseCase)(),r=t.onInit;return V(V({},e),{},{initEntity:function(t){return"function"!=typeof r?t:r(t)}})};function A(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}var U=function(){for(var r,n=(r=(0,v.useLatest)(!0),(0,f.useEffect)(function(){r.current=!1}),r),u=arguments.length,a=new Array(u),i=0;i<u;i++)a[i]=arguments[i];var x=function(e){return p(function(){return"function"===t(c(e,2)[1])?s.Entity:s.None})}(a),j=function(t,e){var r=c(t,4),n=r[0],o=r[1],u=r[2],a=r[3];return(e&s.Entity)!==s.Entity?[null,n,o||{},u||[]]:[n,o,u||{},a||[]]}(a,x),w=c(j,4),E=w[0],_=w[1],R=w[2],V=w[3],U=b(S).cacheCalls,N=y(_),F=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s.None,r=p(function(){return(0,O().registerUseCase)(t,e)});return(0,v.useUnmount)(function(){(0,O().unregisterUseCase)(t,e)}),r}(N,x),T=F,I=function(t,e){var r=(0,f.useContext)(t);return(0,v.useCreation)(function(){var t=h.None,n=(r||{}).store;return(e&s.Entity)===s.Entity&&(t|=h.EntityRootEnabled),t|=r?h.ContextEnabled:h.RootEnabled,n&&(t|=h.EntityEnabled),t},[e,r])}(F,x),G=function(t,e,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],u=(0,v.useUpdate)(),a=(0,v.useLatest)(n),i=(0,f.useRef)(null),s=(r&h.EntityEnabled)===h.EntityEnabled,l=(r&h.EntityRootEnabled)===h.EntityRootEnabled,p=((0,f.useContext)(t)||{}).store,y=void 0===p?null:p,b=m([],P).recordValueDiff,O=C(y,r,function(){if(!l)return new d.EntityStore(null);var t=i.current,r=c(b(o),2)[1],n=function(t,e,r){if("function"!=typeof t)return new d.EntityStore(t);var n=(e||{}).value,o=new d.EntityStore(n);return(0,(0,d.createEntityReducers)(o,D,{onInit:function(e){return t(e,r)},onReturn:function(t){return o.setValue(t),t}}).initEntity)(),o}(e,t,r);return i.current=n,n},o),g=O.value,x=(0,f.useRef)(g),j=(0,v.useMemoizedFn)(function(t,e){var r=a.current.watch;r&&function(t,e,r){for(var n,o=P().matchProperty,u=function(){var t=i[a],u=(n=c(t,2))[0],f=n[1];o(r,e,u,function(t){f(t)})},a=0,i=Object.entries(t);a<i.length;a++)u()}(r,t,e)}),w=(0,v.useMemoizedFn)(function(t,e){var r=a.current.onChange;x.current=t,j(t,e),null==r||r(t,e),l&&u()}),E=(0,v.useMemoizedFn)(function(){if(l){var t=x.current;g!==t&&(x.current=g,j(g,t))}});return(0,v.useUpdateEffect)(function(){E()},[g,E]),(0,v.useCreation)(function(){s&&O.watch(w)},[s,O,w]),(0,f.useEffect)(function(){return function(){O.unwatch(w)}},[s,O,w]),O}(T,E,I,R,V),z=function(t,e,r){var n=m(e,P),o=n.isValueChanged,u=n.recordValue,a=o(e),i=(r&h.EntityRootEnabled)!==h.EntityRootEnabled,c="function"==typeof e,f=t.value;switch(!0){case i:case c:case!a:return f}return u(e),t.disableWatchers(),t.setValue(e),t.enableWatchers(),e}(G,E,I),L=function(t,e,r,n,u){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],i=(0,v.useLatest)(u),c=((0,f.useContext)(e)||{}).reducers,s=void 0===c?null:c,l=b(S).captureCalls;return C(s,n,function(){var e=l(u,function(t,e){var r,n,o;return null===(n=(o=i.current)[t])||void 0===n?void 0:(r=n).call.apply(r,[o].concat(g(e)))});if((n&h.EntityEnabled)!==h.EntityEnabled)return t(e);var a=e,c=(a.watch,a.onChange,a.options),f=o(a,k);return(0,d.createEntityReducers)(r,t,M(M(M({},f),c),{},{onGenerate:function(t,e){return e}}))},a)}(N,F,G,I,R,V),W=function(t,e,r,n){var o=r.value,u=(0,v.useCreation)(function(){return(0,O().createContextValue)(r,n,t)},[t,o,r,n]),a=(0,v.useLatest)(u);return y(function(t){var r=t.children,n=t.with,o=void 0===n?[]:n,u=e.Provider,i=a.current;return l().createElement(u,{value:i},o.reduceRight(function(t,e){return l().createElement(e,{},t)},r))})}(I,F,G,L);return(0,v.useCreation)(function(){if((I&h.EntityEnabled)!==h.EntityEnabled)return L;var r=U(L,{onShouldCache:function(){return n.current}}),o=null===z,u=Array.isArray(z),a="object"!==t(z)||o||u?z:function(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?A(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):A(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}({},z);return[a,r,W]},[I,z,L,W,n,U])},N=function(t){var e=t.usecase,r=t.watch,n=t.onMount,o=t.onUpdate,a=t.onChange,i=c(U(e,{watch:r,onChange:a}),1)[0],s=(0,v.useMemoizedFn)(function(){null==o||o(i)});return(0,v.useMount)(function(){null==n||n(i)}),(0,v.useUpdateEffect)(function(){s()},[i,s]),(0,u.jsx)(f.Fragment,{})};function F(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function T(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?F(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):F(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var I=["usecase"],G=function(t){var e=t.usecase,r=o(t,I),n=(0,U(O).getUseCaseContext)(e),a=(0,f.useContext)(n);return(0,u.jsx)(f.Fragment,{children:null===a?null:(0,u.jsx)(N,T({usecase:e},r))})}})();var o=usecases="undefined"==typeof usecases?{}:usecases;for(var u in n)o[u]=n[u];n.__esModule&&Object.defineProperty(o,"__esModule",{value:!0})})();
2
+ (()=>{var t={698(t,e){"use strict";var r=Symbol.for("react.transitional.element");Symbol.for("react.fragment"),e.jsx=function(t,e,n){var o=null;if(void 0!==n&&(o=""+n),void 0!==e.key&&(o=""+e.key),"key"in e)for(var u in n={},e)"key"!==u&&(n[u]=e[u]);else n=e;return e=n.ref,{$$typeof:r,type:t,key:o,ref:void 0!==e?e:null,props:n}}},848(t,e,r){"use strict";t.exports=r(698)},172(t){t.exports=function(t,e){this.v=t,this.k=e},t.exports.__esModule=!0,t.exports.default=t.exports},993(t,e,r){var n=r(546);function o(){var e,r,u="function"==typeof Symbol?Symbol:{},i=u.iterator||"@@iterator",a=u.toStringTag||"@@toStringTag";function c(t,o,u,i){var a=o&&o.prototype instanceof s?o:s,c=Object.create(a.prototype);return n(c,"_invoke",function(t,n,o){var u,i,a,c=0,s=o||[],l=!1,p={p:0,n:0,v:e,a:y,f:y.bind(e,4),d:function(t,r){return u=t,i=0,a=e,p.n=r,f}};function y(t,n){for(i=t,a=n,r=0;!l&&c&&!o&&r<s.length;r++){var o,u=s[r],y=p.p,v=u[2];t>3?(o=v===n)&&(a=u[(i=u[4])?5:(i=3,3)],u[4]=u[5]=e):u[0]<=y&&((o=t<2&&y<u[1])?(i=0,p.v=n,p.n=u[1]):y<v&&(o=t<3||u[0]>n||n>v)&&(u[4]=t,u[5]=n,p.n=v,i=0))}if(o||t>1)return f;throw l=!0,n}return function(o,s,v){if(c>1)throw TypeError("Generator is already running");for(l&&1===s&&y(s,v),i=s,a=v;(r=i<2?e:a)||!l;){u||(i?i<3?(i>1&&(p.n=-1),y(i,a)):p.n=a:p.v=a);try{if(c=2,u){if(i||(o="next"),r=u[o]){if(!(r=r.call(u,a)))throw TypeError("iterator result is not an object");if(!r.done)return r;a=r.value,i<2&&(i=0)}else 1===i&&(r=u.return)&&r.call(u),i<2&&(a=TypeError("The iterator does not provide a '"+o+"' method"),i=1);u=e}else if((r=(l=p.n<0)?a:t.call(n,p))!==f)break}catch(t){u=e,i=1,a=t}finally{c=1}}return{value:r,done:l}}}(t,u,i),!0),c}var f={};function s(){}function l(){}function p(){}r=Object.getPrototypeOf;var y=[][i]?r(r([][i]())):(n(r={},i,function(){return this}),r),v=p.prototype=s.prototype=Object.create(y);function b(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,n(t,a,"GeneratorFunction")),t.prototype=Object.create(v),t}return l.prototype=p,n(v,"constructor",p),n(p,"constructor",l),l.displayName="GeneratorFunction",n(p,a,"GeneratorFunction"),n(v),n(v,a,"Generator"),n(v,i,function(){return this}),n(v,"toString",function(){return"[object Generator]"}),(t.exports=o=function(){return{w:c,m:b}},t.exports.__esModule=!0,t.exports.default=t.exports)()}t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports},869(t,e,r){var n=r(887);t.exports=function(t,e,r,o,u){var i=n(t,e,r,o,u);return i.next().then(function(t){return t.done?t.value:i.next()})},t.exports.__esModule=!0,t.exports.default=t.exports},887(t,e,r){var n=r(993),o=r(791);t.exports=function(t,e,r,u,i){return new o(n().w(t,e,r,u),i||Promise)},t.exports.__esModule=!0,t.exports.default=t.exports},791(t,e,r){var n=r(172),o=r(546);t.exports=function t(e,r){function u(t,o,i,a){try{var c=e[t](o),f=c.value;return f instanceof n?r.resolve(f.v).then(function(t){u("next",t,i,a)},function(t){u("throw",t,i,a)}):r.resolve(f).then(function(t){c.value=t,i(c)},function(t){return u("throw",t,i,a)})}catch(t){a(t)}}var i;this.next||(o(t.prototype),o(t.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),o(this,"_invoke",function(t,e,n){function o(){return new r(function(e,r){u(t,n,e,r)})}return i=i?i.then(o,o):o()},!0)},t.exports.__esModule=!0,t.exports.default=t.exports},546(t){function e(r,n,o,u){var i=Object.defineProperty;try{i({},"",{})}catch(r){i=0}t.exports=e=function(t,r,n,o){function u(r,n){e(t,r,function(t){return this._invoke(r,n,t)})}r?i?i(t,r,{value:n,enumerable:!o,configurable:!o,writable:!o}):t[r]=n:(u("next",0),u("throw",1),u("return",2))},t.exports.__esModule=!0,t.exports.default=t.exports,e(r,n,o,u)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},373(t){t.exports=function(t){var e=Object(t),r=[];for(var n in e)r.unshift(n);return function t(){for(;r.length;)if((n=r.pop())in e)return t.value=n,t.done=!1,t;return t.done=!0,t}},t.exports.__esModule=!0,t.exports.default=t.exports},633(t,e,r){var n=r(172),o=r(993),u=r(869),i=r(887),a=r(791),c=r(373),f=r(579);function s(){"use strict";var e=o(),r=e.m(s),l=(Object.getPrototypeOf?Object.getPrototypeOf(r):r.__proto__).constructor;function p(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===l||"GeneratorFunction"===(e.displayName||e.name))}var y={throw:1,return:2,break:3,continue:3};function v(t){var e,r;return function(n){e||(e={stop:function(){return r(n.a,2)},catch:function(){return n.v},abrupt:function(t,e){return r(n.a,y[t],e)},delegateYield:function(t,o,u){return e.resultName=o,r(n.d,f(t),u)},finish:function(t){return r(n.f,t)}},r=function(t,r,o){n.p=e.prev,n.n=e.next;try{return t(r,o)}finally{e.next=n.n}}),e.resultName&&(e[e.resultName]=n.v,e.resultName=void 0),e.sent=n.v,e.next=n.n;try{return t.call(this,e)}finally{n.p=e.prev,n.n=e.next}}}return(t.exports=s=function(){return{wrap:function(t,r,n,o){return e.w(v(t),r,n,o&&o.reverse())},isGeneratorFunction:p,mark:e.m,awrap:function(t,e){return new n(t,e)},AsyncIterator:a,async:function(t,e,r,n,o){return(p(e)?i:u)(v(t),e,r,n,o)},keys:c,values:f}},t.exports.__esModule=!0,t.exports.default=t.exports)()}t.exports=s,t.exports.__esModule=!0,t.exports.default=t.exports},579(t,e,r){var n=r(738).default;t.exports=function(t){if(null!=t){var e=t["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length))return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}}}throw new TypeError(n(t)+" is not iterable")},t.exports.__esModule=!0,t.exports.default=t.exports},738(t){function e(r){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},756(t,e,r){var n=r(633)();t.exports=n;try{regeneratorRuntime=n}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var u=e[n]={exports:{}};return t[n](u,u.exports,r),u.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(e,r,n){return(r=function(e){var r=function(e){if("object"!=t(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=t(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==t(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function o(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(n=0;n<u.length;n++)r=u[n],-1===e.indexOf(r)&&{}.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}r.r(n),r.d(n,{UseCaseFragment:()=>L,useUseCase:()=>N});var u=r(848);function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function a(t,e){if(t){if("string"==typeof t)return i(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(t,e):void 0}}function c(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,u,i,a=[],c=!0,f=!1;try{if(u=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=u.call(r)).done)&&(a.push(n.value),a.length!==e);c=!0);}catch(t){f=!0,o=t}finally{try{if(!c&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(f)throw o}}return a}}(t,e)||a(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}const f=React;var s,l=r.n(f),p=function(t){return c((0,f.useState)(t),1)[0]};!function(t){t[t.None=0]="None",t[t.Entity=2]="Entity"}(s||(s={}));var y=function(t){return c((0,f.useState)(function(){return t}),1)[0]},v=function(t,e){return p(function(){return t(e)})};const b=ahooks,d=usecases;var h;!function(t){t[t.None=0]="None",t[t.RootEnabled=2]="RootEnabled",t[t.ContextEnabled=4]="ContextEnabled",t[t.EntityEnabled=8]="EntityEnabled",t[t.ContextRootEnabled=6]="ContextRootEnabled",t[t.EntityRootEnabled=14]="EntityRootEnabled"}(h||(h={}));var O=(0,d.createUseCase)(function(){var t=new Map,e=(0,f.createContext)(null);return function(){return{createContextValue:function(t,e,r){return(r&h.EntityEnabled)===h.EntityEnabled?{store:t,reducers:e,statuses:r}:{reducers:e,statuses:r}},getUseCaseContext:function(r){return t.has(r)?t.get(r).value:e},registerUseCase:function(r,n){if(t.has(r)){var o=t.get(r),u=o.value,i=o.times;return t.set(r,{value:u,times:i+1}),u}if((n&s.Entity)!==s.Entity)return e;var a=(0,f.createContext)(null);return t.set(r,{value:a,times:1}),a},unregisterUseCase:function(e,r){if((r&s.Entity)!==s.Entity)return!1;if(!t.has(e))return!1;var n=t.get(e),o=n.value,u=n.times;return 1===u?t.delete(e):t.set(e,{value:o,times:u-1}),!0}}}}),m=function(t,e,r){return p(function(){return(0,d.createEntityReducers)(t,e,r)})};function g(t){return function(t){if(Array.isArray(t))return i(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||a(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var x=r(756),j=r.n(x);function E(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function w(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?E(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):E(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var P=(0,d.createUseCase)(function(){return function(){var e=(0,d.entityUseCase)(),r=(0,d.utilsUseCase)().createKey,n=r(),o=function(e,r){return"object"===t(e)&&null!==e&&Object.hasOwn(e,r)},u=function(t,e){return t!==e},i=function(e,r,n){if(e===r)return!0;var o="object"===t(e)&&null!==e,u="object"===t(r)&&null!==r;if(!o||!u)return!1;for(var i=!0,a=Object.keys(e),c=Object.keys(r),f=a.length,s=[].concat(a,c),l="function"==typeof n,p=0,y=s.length;p<y;p++){var v=s[p],b=p>=f,d=a.includes(v);if(!b||!d){var h=Object.hasOwn(e,v),O=Object.hasOwn(r,v),m=h&&!O||!h&&O,g=e[v],x=r[v];if(m||g!==x){if(i=!1,!l)break;n(v,x,g)}}}return i},a=j().mark(function t(e,r){return j().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(u(e,r)){t.next=1;break}return t.abrupt("return",!1);case 1:return t.next=2,r;case 2:return t.abrupt("return",!0);case 3:case"end":return t.stop()}},t)}),f=j().mark(function t(e,r){var n,o,u,a,c,f;return j().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(n=Array.isArray(e),o=Array.isArray(r),a=(u=n&&o)?[]:{},u&&(c=e.length,f=r.length,a.length=Math.max(c,f)),i(e,r,function(t,e){a[t]=e})){t.next=1;break}return t.next=1,r;case 1:return t.abrupt("return",a);case 2:case"end":return t.stop()}},t)}),s=j().mark(function t(e,r){return j().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!i(e,r)){t.next=1;break}return t.abrupt("return",!0);case 1:return t.next=2,r;case 2:return t.abrupt("return",!1);case 3:case"end":return t.stop()}},t)}),l=j().mark(function t(e,o,u){return j().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(s(e,o),"t0",1);case 1:return t.t0||(n=null!=u?u:r()),t.abrupt("return",n);case 2:case"end":return t.stop()}},t)});return w(w({},e),{},{isValueChanged:u,isValueMatched:i,matchProperty:function(t,e,r,n){var u=!0,i=r,a=[{fieldPaths:[],newEntity:e,newValue:e,oldEntity:t,oldValue:t}];do{var f=a.shift(),s=f.oldValue,l=f.newValue,p=f.fieldPaths,y=c(i.match(/^([^.]+)\.(.+)$/)||[],3),v=y[1],b=void 0===v?i:v,d=y[2],h=void 0===d?"":d,O=o(s,b),m=o(l,b);if(O||m){var x=c(O?[s[b]]:[],1)[0],j=c(m?[l[b]]:[],1)[0],E={fieldPaths:[].concat(g(p),[b]),newEntity:e,newValue:j,oldEntity:t,oldValue:x};if(h){i=h,a.push(E);continue}if(j===x)continue;u=!1,null==n||n(E)}else if(!/^\d+^/.test(b))for(var w=Array.isArray(s)?s:[],P=Array.isArray(l)?l:[],S=w.length,C=P.length,_=Math.max(S,C),M=0;M<_;M++)a.push({fieldPaths:[].concat(g(p),["".concat(M)]),newEntity:e,newValue:P[M],oldEntity:t,oldValue:w[M]})}while(a.length>0);return u},recordValue:a,recordValueDiff:f,recordValueMatch:s,recordValueMatchWith:l})}}),S=function(t){return c((0,m(t,P).recordValueMatchWith)(t),2)[1]},C=function(t){var e=S(arguments.length>1&&void 0!==arguments[1]?arguments[1]:[t]),r=(0,b.useMemoizedFn)(function(){t()});(0,b.useCreation)(function(){r()},[e,r])},_=function(){var t=P().isValueMatched,e=function(e,r){var n,o=r||{},u=o.onShouldCache,i=void 0===u?function(){return!0}:u,a=o.onCompare,c=void 0===a?function(e,r){return t(e,r)}:a;return function(){for(var t=i(),r=arguments.length,o=new Array(r),u=0;u<r;u++)o[u]=arguments[u];if(n&&t){var a=n,f=a.parameters,s=a.returnValue;if(c(f,o))return s}var l=e.apply(void 0,o);return t&&(n={parameters:o,returnValue:l}),l}};return{cacheCall:e,cacheCalls:function(t,r){var n={};return Object.entries(t).forEach(function(t){var o=c(t,2),u=o[0],i=o[1];n[u]=e(i,r)}),n},captureCalls:function(t,e){var r={};return Object.keys(t).forEach(function(n){var o=t[n];r[n]="function"!=typeof o?o:function(){for(var t=arguments.length,r=new Array(t),o=0;o<t;o++)r[o]=arguments[o];return e(n,r)}}),r}}},M=function(t,e,r){var n=S(arguments.length>3&&void 0!==arguments[3]?arguments[3]:[]),o=(0,b.useLatest)(r),u=v(_).cacheCall,i=(0,b.useMemoizedFn)(function(){var t=o.current;return u(t,{onCompare:function(){return!0}})}),a=(0,b.useCreation)(function(){return i()},[n,i]);return(0,b.useCreation)(function(){return(e&h.RootEnabled)!==h.RootEnabled&&t?t:a()},[e,t,a])};function k(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function R(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?k(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):k(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var V=["watch","onChange","options"];function A(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function D(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?A(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):A(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var U=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=(0,d.entityUseCase)(),r=t.onInit;return D(D({},e),{},{initEntity:function(t){return"function"!=typeof r?t:r(t)}})};function F(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}var N=function(){for(var r,n=(r=(0,b.useLatest)(!0),(0,f.useEffect)(function(){r.current=!1}),r),u=arguments.length,i=new Array(u),a=0;a<u;a++)i[a]=arguments[a];var x=function(e){return p(function(){return"function"===t(c(e,2)[1])?s.Entity:s.None})}(i),j=function(t,e){var r=c(t,4),n=r[0],o=r[1],u=r[2],i=r[3];return(e&s.Entity)!==s.Entity?[null,n,o||{},u||[]]:[n,o,u||{},i||[]]}(i,x),E=c(j,4),w=E[0],S=E[1],k=E[2],A=E[3],D=v(_).cacheCalls,N=y(S),T=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s.None,r=p(function(){return(0,O().registerUseCase)(t,e)});return(0,b.useUnmount)(function(){(0,O().unregisterUseCase)(t,e)}),r}(N,x),I=T,G=function(t,e){var r=(0,f.useContext)(t);return(0,b.useCreation)(function(){var t=h.None,n=(r||{}).store;return(e&s.Entity)===s.Entity&&(t|=h.EntityRootEnabled),t|=r?h.ContextEnabled:h.RootEnabled,n&&(t|=h.EntityEnabled),t},[e,r])}(T,x),z=function(t,e,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],u=(0,f.useRef)(null),i=(r&h.EntityRootEnabled)===h.EntityRootEnabled,a=((0,f.useContext)(e)||{}).store,s=void 0===a?null:a,l=m([],P).recordValueDiff;return M(s,r,function(){if(!i)return new d.EntityStore(null);var e=u.current,r=c(l(o),2)[1],n=function(t,e,r){if("function"!=typeof t)return new d.EntityStore(t);var n=(e||{}).value,o=new d.EntityStore(n);return(0,(0,d.createEntityReducers)(o,U,{onInit:function(e){return t(e,r)},onReturn:function(t){return o.setValue(t),t}}).initEntity)(),o}(t,e,r);return u.current=n,n},o)}(w,I,G,k,A),L=function(t,e,r,n,u){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],a=(0,b.useLatest)(u),c=((0,f.useContext)(e)||{}).reducers,s=void 0===c?null:c,l=v(_).captureCalls;return M(s,n,function(){var e=l(u,function(t,e){var r,n,o;return null===(n=(o=a.current)[t])||void 0===n?void 0:(r=n).call.apply(r,[o].concat(g(e)))});if((n&h.EntityEnabled)!==h.EntityEnabled)return t(e);var i=e,c=(i.watch,i.onChange,i.options),f=o(i,V);return(0,d.createEntityReducers)(r,t,R(R(R({},f),c),{},{onGenerate:function(t,e){return e}}))},i)}(N,T,z,G,k,A),W=function(t,e,r,n,o){var u=(0,b.useUpdate)(),i="function"==typeof t,a=e.value,s=(0,f.useRef)(!0),l=(0,b.useLatest)(o),p=(0,f.useRef)(a),y=(n&h.EntityEnabled)===h.EntityEnabled,v=(n&h.EntityRootEnabled)===h.EntityRootEnabled,d=r.bindEntity,O=r.unbindEntity,g=m(t,P),x=g.isValueChanged,j=g.recordValue,E=(0,b.useMemoizedFn)(function(t,e){var r=l.current.watch;r&&function(t,e,r){for(var n,o=P().matchProperty,u=function(){var t=a[i],u=(n=c(t,2))[0],f=n[1];o(r,e,u,function(t){f(t)})},i=0,a=Object.entries(t);i<a.length;i++)u()}(r,t,e)}),w=(0,b.useMemoizedFn)(function(t,e){var r=l.current.onChange;p.current=t,E(t,e),null==r||r(t,e),v&&u()}),S=(0,b.useMemoizedFn)(function(){if(y){var t=p.current;a!==t&&(p.current=a,E(a,t))}});return C(function(){var r,n=t,o=s.current;switch(s.current=!1,o&&(n=null!==(r=null==d?void 0:d())&&void 0!==r?r:n),!0){case!v:case i:case!x(n):return}j(n),e.disableWatchers(),e.setValue(n),e.enableWatchers()}),C(function(){y&&e.watch(w)},[y,e,w]),(0,f.useEffect)(function(){return function(){e.unwatch(w)}},[y,e,w]),(0,b.useUnmount)(function(){null==O||O()}),(0,b.useUpdateEffect)(function(){S()},[a,S]),e.value}(w,z,L,G,k),$=function(t,e,r,n){var o=r.value,u=(0,b.useCreation)(function(){return(0,O().createContextValue)(r,n,t)},[t,o,r,n]),i=(0,b.useLatest)(u);return y(function(t){var r=t.children,n=t.with,o=void 0===n?[]:n,u=e.Provider,a=i.current;return l().createElement(u,{value:a},o.reduceRight(function(t,e){return l().createElement(e,{},t)},r))})}(G,T,z,L);return(0,b.useCreation)(function(){if((G&h.EntityEnabled)!==h.EntityEnabled)return L;var r=D(L,{onShouldCache:function(){return n.current}}),o=null===W,u=Array.isArray(W),i="object"!==t(W)||o||u?W:function(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?F(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):F(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}({},W);return[i,r,$]},[G,W,L,$,n,D])},T=function(t){var e=t.usecase,r=t.watch,n=t.onMount,o=t.onUpdate,i=t.onChange,a=c(N(e,{watch:r,onChange:i}),1)[0],s=(0,b.useMemoizedFn)(function(){null==o||o(a)});return(0,b.useMount)(function(){null==n||n(a)}),(0,b.useUpdateEffect)(function(){s()},[a,s]),(0,u.jsx)(f.Fragment,{})};function I(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function G(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?I(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var z=["usecase"],L=function(t){var e=t.usecase,r=o(t,z),n=(0,N(O).getUseCaseContext)(e),i=(0,f.useContext)(n);return(0,u.jsx)(f.Fragment,{children:null===i?null:(0,u.jsx)(T,G({usecase:e},r))})}})();var o=usecases="undefined"==typeof usecases?{}:usecases;for(var u in n)o[u]=n[u];n.__esModule&&Object.defineProperty(o,"__esModule",{value:!0})})();
@@ -1,4 +1,7 @@
1
+ import { UseCaseHookOptions } from '../useUseCase/types';
1
2
  import { EntityStore } from '@mic-rexjs/usecases';
3
+ import { ScopedEntityReducers } from '@mic-rexjs/usecases/es/methods/createEntityReducers/types';
4
+ import { EntityReducerMap } from '@mic-rexjs/usecases/es/types';
2
5
  import { Statuses } from '../../enums/Statuses';
3
- import { Dependencies, EntityInitializer } from '../../types';
4
- export declare const useEntity: <T, TDependencies extends Dependencies = Dependencies>(store: EntityStore<T>, entityArg: T | EntityInitializer<T, TDependencies>, statuses: Statuses) => T;
6
+ import { EntityInitializer } from '../../types';
7
+ export declare const useEntity: <T, TUseCaseOptions extends object, TOptions extends UseCaseHookOptions<T, TUseCaseOptions> = UseCaseHookOptions<T, TUseCaseOptions>>(entityArg: T | EntityInitializer<T>, store: EntityStore<T>, reducers: ScopedEntityReducers<T, EntityReducerMap<T>>, statuses: Statuses, options: TOptions) => T;
@@ -1,24 +1,95 @@
1
1
  import { useConstantEntityReducers } from '../useConstantEntityReducers';
2
+ import { useExec } from '../useExec';
3
+ import { useLatest, useMemoizedFn, useUnmount, useUpdate, useUpdateEffect } from 'ahooks';
4
+ import { useEffect, useRef } from 'react';
2
5
  import { Statuses } from '../../enums/Statuses';
6
+ import { triggerWatchers } from '../../methods/triggerWatchers';
3
7
  import { valueUseCase } from '../../usecases/valueUseCase';
4
- export const useEntity = (store, entityArg, statuses) => {
8
+ export const useEntity = (entityArg, store, reducers, statuses, options) => {
9
+ const update = useUpdate();
10
+ const isFunction = typeof entityArg === 'function';
11
+ const entity = store.value;
12
+ const isFirstRef = useRef(true);
13
+ const optionsRef = useLatest(options);
14
+ const prevEntityRef = useRef(entity);
15
+ const entityEnabled = (statuses & Statuses.EntityEnabled) === Statuses.EntityEnabled;
16
+ const entityRootEnabled = (statuses & Statuses.EntityRootEnabled) === Statuses.EntityRootEnabled;
17
+ const bindEntity = reducers.bindEntity,
18
+ unbindEntity = reducers.unbindEntity;
5
19
  const _useConstantEntityRed = useConstantEntityReducers(entityArg, valueUseCase),
6
20
  isValueChanged = _useConstantEntityRed.isValueChanged,
7
21
  recordValue = _useConstantEntityRed.recordValue;
8
- const changed = isValueChanged(entityArg);
9
- const entityRootDisabled = (statuses & Statuses.EntityRootEnabled) !== Statuses.EntityRootEnabled;
10
- const isFunction = typeof entityArg === 'function';
11
- const value = store.value;
12
- switch (true) {
13
- case entityRootDisabled:
14
- case isFunction:
15
- case !changed:
16
- return value;
17
- }
18
- recordValue(entityArg);
19
- store.disableWatchers();
20
- // 执行同步操作
21
- store.setValue(entityArg);
22
- store.enableWatchers();
23
- return entityArg;
22
+ const onTriggerWatchers = useMemoizedFn((newEntity, oldEntity) => {
23
+ const watch = optionsRef.current.watch;
24
+ if (!watch) {
25
+ return;
26
+ }
27
+ triggerWatchers(watch, newEntity, oldEntity);
28
+ });
29
+ const onEntityChange = useMemoizedFn((newEntity, oldEntity) => {
30
+ const onChange = optionsRef.current.onChange;
31
+ prevEntityRef.current = newEntity;
32
+ onTriggerWatchers(newEntity, oldEntity);
33
+ onChange === null || onChange === void 0 || onChange(newEntity, oldEntity);
34
+ if (!entityRootEnabled) {
35
+ return;
36
+ }
37
+ update();
38
+ });
39
+ const onValueChange = useMemoizedFn(() => {
40
+ if (!entityEnabled) {
41
+ return;
42
+ }
43
+ const prevEntity = prevEntityRef.current;
44
+ if (entity === prevEntity) {
45
+ return;
46
+ }
47
+ prevEntityRef.current = entity;
48
+ onTriggerWatchers(entity, prevEntity);
49
+ });
50
+ useExec(() => {
51
+ let currentEntity = entityArg;
52
+ const isFirst = isFirstRef.current;
53
+ isFirstRef.current = false;
54
+ if (isFirst) {
55
+ var _bindEntity;
56
+ currentEntity = (_bindEntity = bindEntity === null || bindEntity === void 0 ? void 0 : bindEntity()) !== null && _bindEntity !== void 0 ? _bindEntity : currentEntity;
57
+ }
58
+ switch (true) {
59
+ case !entityRootEnabled:
60
+ case isFunction:
61
+ case !isValueChanged(currentEntity):
62
+ return;
63
+ }
64
+ recordValue(currentEntity);
65
+ store.disableWatchers();
66
+ // 执行同步操作
67
+ store.setValue(currentEntity);
68
+ store.enableWatchers();
69
+ });
70
+ /**
71
+ * 需要马上 `watch`,因为 `useEffect` 在子组件内优先执行,
72
+ * 如果使用了 `setEntity` 则无法监控到变化
73
+ */
74
+ useExec(() => {
75
+ if (!entityEnabled) {
76
+ return;
77
+ }
78
+ store.watch(onEntityChange);
79
+ }, [entityEnabled, store, onEntityChange]);
80
+ /**
81
+ * 在变化时候,组件更新前,使用 `unwatch`
82
+ */
83
+ useEffect(() => {
84
+ return () => {
85
+ store.unwatch(onEntityChange);
86
+ };
87
+ }, [entityEnabled, store, onEntityChange]);
88
+ useUnmount(() => {
89
+ unbindEntity === null || unbindEntity === void 0 || unbindEntity();
90
+ });
91
+ useUpdateEffect(() => {
92
+ onValueChange();
93
+ }, [entity, onValueChange]);
94
+ return store.value;
24
95
  };
@@ -0,0 +1,2 @@
1
+ import { RestArguments } from '@mic-rexjs/usecases/es/types';
2
+ export declare const useExec: (callback: VoidFunction, deps?: RestArguments) => void;
@@ -0,0 +1,13 @@
1
+ import { useDepsKey } from '../useDepsKey';
2
+ import { useCreation, useMemoizedFn } from 'ahooks';
3
+ export const useExec = function (callback) {
4
+ let deps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [callback];
5
+ const depsKey = useDepsKey(deps);
6
+ const execCallback = useMemoizedFn(() => {
7
+ callback();
8
+ });
9
+ useCreation(() => {
10
+ void depsKey;
11
+ execCallback();
12
+ }, [depsKey, execCallback]);
13
+ };
@@ -16,7 +16,7 @@ export const useReducers = function (usecase, context, store, statuses, options)
16
16
  contextReducers = _ref$reducers === void 0 ? null : _ref$reducers;
17
17
  const _useConstantReducers = useConstantReducers(methodUseCase),
18
18
  captureCalls = _useConstantReducers.captureCalls;
19
- return useContextualItem(contextReducers, statuses, () => {
19
+ const reducers = useContextualItem(contextReducers, statuses, () => {
20
20
  const opts = captureCalls(options, (key, callArgs) => {
21
21
  var _optionsRef$current$k, _optionsRef$current;
22
22
  return (_optionsRef$current$k = (_optionsRef$current = optionsRef.current)[key]) === null || _optionsRef$current$k === void 0 ? void 0 : _optionsRef$current$k.call(_optionsRef$current, ...callArgs);
@@ -37,4 +37,5 @@ export const useReducers = function (usecase, context, store, statuses, options)
37
37
  }
38
38
  });
39
39
  }, deps);
40
+ return reducers;
40
41
  };
@@ -3,4 +3,4 @@ import { EntityReducers, EntityStore } from '@mic-rexjs/usecases';
3
3
  import { Statuses } from '../../enums/Statuses';
4
4
  import { Dependencies, EntityInitializer } from '../../types';
5
5
  import { EntityUseCaseContextValue, UseCaseContext } from '../../usecases/contextUseCase/types';
6
- export declare const useStore: <T, TUseCaseOptions extends object, TOptions extends UseCaseHookOptions<T, TUseCaseOptions> = UseCaseHookOptions<T, TUseCaseOptions>>(context: UseCaseContext<EntityUseCaseContextValue<T, EntityReducers<T>>>, entity: T | EntityInitializer<T>, statuses: Statuses, options: TOptions, deps?: Dependencies) => EntityStore<T>;
6
+ export declare const useStore: <T, TUseCaseOptions extends object, TOptions extends UseCaseHookOptions<T, TUseCaseOptions> = UseCaseHookOptions<T, TUseCaseOptions>>(entityArg: T | EntityInitializer<T>, context: UseCaseContext<EntityUseCaseContextValue<T, EntityReducers<T>>>, statuses: Statuses, options: TOptions, deps?: Dependencies) => EntityStore<T>;
@@ -2,18 +2,13 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import { useConstantEntityReducers } from '../useConstantEntityReducers';
3
3
  import { useContextualItem } from '../useContextualItem';
4
4
  import { EntityStore } from '@mic-rexjs/usecases';
5
- import { useCreation, useLatest, useMemoizedFn, useUpdate, useUpdateEffect } from 'ahooks';
6
- import { useContext, useEffect, useRef } from 'react';
5
+ import { useContext, useRef } from 'react';
7
6
  import { Statuses } from '../../enums/Statuses';
8
7
  import { initStore } from '../../methods/initStore';
9
- import { triggerWatchers } from '../../methods/triggerWatchers';
10
8
  import { valueUseCase } from '../../usecases/valueUseCase';
11
- export const useStore = function (context, entity, statuses, options) {
9
+ export const useStore = function (entityArg, context, statuses, options) {
12
10
  let deps = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
13
- const update = useUpdate();
14
- const optionsRef = useLatest(options);
15
11
  const storeRef = useRef(null);
16
- const entityEnabled = (statuses & Statuses.EntityEnabled) === Statuses.EntityEnabled;
17
12
  const entityRootEnabled = (statuses & Statuses.EntityRootEnabled) === Statuses.EntityRootEnabled;
18
13
  const contextValue = useContext(context);
19
14
  const _ref = contextValue || {},
@@ -21,7 +16,7 @@ export const useStore = function (context, entity, statuses, options) {
21
16
  contextStore = _ref$store === void 0 ? null : _ref$store;
22
17
  const _useConstantEntityRed = useConstantEntityReducers([], valueUseCase),
23
18
  recordValueDiff = _useConstantEntityRed.recordValueDiff;
24
- const store = useContextualItem(contextStore, statuses, () => {
19
+ return useContextualItem(contextStore, statuses, () => {
25
20
  if (!entityRootEnabled) {
26
21
  return new EntityStore(null);
27
22
  }
@@ -29,60 +24,8 @@ export const useStore = function (context, entity, statuses, options) {
29
24
  const _recordValueDiff = recordValueDiff(deps),
30
25
  _recordValueDiff2 = _slicedToArray(_recordValueDiff, 2),
31
26
  changedDeps = _recordValueDiff2[1];
32
- const newStore = initStore(entity, current, changedDeps);
27
+ const newStore = initStore(entityArg, current, changedDeps);
33
28
  storeRef.current = newStore;
34
29
  return newStore;
35
30
  }, deps);
36
- const value = store.value;
37
- const prevValueRef = useRef(value);
38
- const onTriggerWatchers = useMemoizedFn((newEntity, oldEntity) => {
39
- const watch = optionsRef.current.watch;
40
- if (!watch) {
41
- return;
42
- }
43
- triggerWatchers(watch, newEntity, oldEntity);
44
- });
45
- const onEntityChange = useMemoizedFn((newEntity, oldEntity) => {
46
- const onChange = optionsRef.current.onChange;
47
- prevValueRef.current = newEntity;
48
- onTriggerWatchers(newEntity, oldEntity);
49
- onChange === null || onChange === void 0 || onChange(newEntity, oldEntity);
50
- if (!entityRootEnabled) {
51
- return;
52
- }
53
- update();
54
- });
55
- const onValueChange = useMemoizedFn(() => {
56
- if (!entityRootEnabled) {
57
- return;
58
- }
59
- const prevValue = prevValueRef.current;
60
- if (value === prevValue) {
61
- return;
62
- }
63
- prevValueRef.current = value;
64
- onTriggerWatchers(value, prevValue);
65
- });
66
- useUpdateEffect(() => {
67
- onValueChange();
68
- }, [value, onValueChange]);
69
- /**
70
- * 需要马上 `watch`,因为 `useEffect` 在子组件内优先执行,
71
- * 如果使用了 `setEntity` 则无法监控到变化
72
- */
73
- useCreation(() => {
74
- if (!entityEnabled) {
75
- return;
76
- }
77
- store.watch(onEntityChange);
78
- }, [entityEnabled, store, onEntityChange]);
79
- /**
80
- * 在变化时候,组件更新前,使用 `unwatch`
81
- */
82
- useEffect(() => {
83
- return () => {
84
- store.unwatch(onEntityChange);
85
- };
86
- }, [entityEnabled, store, onEntityChange]);
87
- return store;
88
31
  };
@@ -31,9 +31,9 @@ export const useUseCase = function () {
31
31
  const context = useContext(usecase, argumentTypes);
32
32
  const entityContext = context;
33
33
  const statuses = useStatuses(context, argumentTypes);
34
- const store = useStore(entityContext, unsafeEntity, statuses, options, deps);
35
- const entity = useEntity(store, unsafeEntity, statuses);
34
+ const store = useStore(unsafeEntity, entityContext, statuses, options, deps);
36
35
  const reducers = useReducers(usecase, context, store, statuses, options, deps);
36
+ const entity = useEntity(unsafeEntity, store, reducers, statuses, options);
37
37
  const Provider = useProvider(statuses, context, store, reducers);
38
38
  return useCreation(() => {
39
39
  if ((statuses & Statuses.EntityEnabled) !== Statuses.EntityEnabled) {