@mic-rexjs/usecases-react 2.13.4 → 2.13.6

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:{},a=u.iterator||"@@iterator",i=u.toStringTag||"@@toStringTag";function c(t,o,u,a){var i=o&&o.prototype instanceof f?o:f,c=Object.create(i.prototype);return n(c,"_invoke",function(t,n,o){var u,a,i,c=0,f=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,s}};function y(t,n){for(a=t,i=n,r=0;!l&&c&&!o&&r<f.length;r++){var o,u=f[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 s;throw l=!0,n}return function(o,f,b){if(c>1)throw TypeError("Generator is already running");for(l&&1===f&&y(f,b),a=f,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))!==s)break}catch(t){u=e,a=1,i=t}finally{c=1}}return{value:r,done:l}}}(t,u,a),!0),c}var s={};function f(){}function l(){}function p(){}r=Object.getPrototypeOf;var y=[][a]?r(r([][a]())):(n(r={},a,function(){return this}),r),b=p.prototype=f.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),s=c.value;return s instanceof n?r.resolve(s.v).then(function(t){u("next",t,a,i)},function(t){u("throw",t,a,i)}):r.resolve(s).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),s=r(579);function f(){"use strict";var e=o(),r=e.m(f),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,s(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=f=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:s}},t.exports.__esModule=!0,t.exports.default=t.exports)()}t.exports=f,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,s=!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){s=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)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 s=React;var f,l=r.n(s),p=function(t){return c((0,s.useState)(t),1)[0]};!function(t){t[t.None=0]="None",t[t.Entity=2]="Entity"}(f||(f={}));var y=function(t){return c((0,s.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,s.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&f.Entity)!==f.Entity)return e;var i=(0,s.createContext)(null);return t.set(r,{value:i,times:1}),i},unregisterUseCase:function(e,r){if((r&f.Entity)!==f.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 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},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),s=i.length,f=[].concat(i,c),l="function"==typeof n,p=0,y=f.length;p<y;p++){var b=f[p],v=p>=s,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)}),s=j().mark(function t(e,r){var n,o,u,i,c,s;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,s=r.length,i.length=Math.max(c,s)),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)}),f=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(f(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:a,matchProperty:function(t,e,r,n){var u=!0,a=r,i=[{fieldPaths:[],newEntity:e,newValue:e,oldEntity:t,oldValue:t}];do{var s=i.shift(),f=s.oldValue,l=s.newValue,p=s.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(f,v),m=o(l,v);if(O||m){var x=c(O?[f[v]]:[],1)[0],j=c(m?[l[v]]:[],1)[0],E={fieldPaths:[].concat(g(p),[v]),newEntity:e,newValue:j,oldEntity:t,oldValue:x};if(h){a=h,i.push(E);continue}if(j===x)continue;u=!1,null==n||n(E)}else if(!/^\d+^/.test(v))for(var w=Array.isArray(f)?f:[],P=Array.isArray(l)?l:[],S=w.length,C=P.length,_=Math.max(S,C),M=0;M<_;M++)i.push({fieldPaths:[].concat(g(p),["".concat(M)]),newEntity:e,newValue:P[M],oldEntity:t,oldValue:w[M]})}while(i.length>0);return u},recordValue:i,recordValueDiff:s,recordValueMatch:f,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,s=i.parameters,f=i.returnValue;if(c(s,o))return f}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}})}),s=(0,v.useCreation)(function(){return i()},[o,i]);return(0,v.useCreation)(function(){return(e&h.RootEnabled)!==h.RootEnabled&&t?t:s()},[e,t,s])};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 A=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 D(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,s.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])?f.Entity:f.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&f.Entity)!==f.Entity?[null,n,o||{},u||[]]:[n,o,u||{},a||[]]}(a,x),E=c(j,4),w=E[0],_=E[1],R=E[2],V=E[3],U=b(S).cacheCalls,N=y(_),F=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f.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,s.useContext)(t);return(0,v.useCreation)(function(){var t=h.None,n=(r||{}).store;return(e&f.Entity)===f.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,s.useRef)(null),f=(r&h.EntityEnabled)===h.EntityEnabled,l=(r&h.EntityRootEnabled)===h.EntityRootEnabled,p=((0,s.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,A,{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,s.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],s=n[1];o(r,e,u,function(t){s(t)})},a=0,i=Object.entries(t);a<i.length;a++)u()}(r,t,e)}),E=(0,v.useMemoizedFn)(function(t,e){var r=a.current.onChange;x.current=t,j(t,e),null==r||r(t,e),l&&u()}),w=(0,v.useMemoizedFn)(function(){if(f){var t=x.current;g!==t&&(x.current=g,j(g,t))}});return(0,v.useCreation)(function(){f&&O.watch(E)},[f,O,E]),(0,s.useEffect)(function(){return function(){O.unwatch(E)}},[f,O,E]),(0,v.useUpdateEffect)(function(){w()},[g,w]),O}(T,w,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,s=t.value;switch(!0){case i:case c:case!a:return s}return u(e),t.disableWatchers(),t.setValue(e),t.enableWatchers(),e}(G,w,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,s.useContext)(e)||{}).reducers,f=void 0===c?null:c,l=b(S).captureCalls;return C(f,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),s=o(a,k);return(0,d.createEntityReducers)(r,t,M(M(M({},s),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?D(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):D(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],f=(0,v.useMemoizedFn)(function(){null==o||o(i)});return(0,v.useMount)(function(){null==n||n(i)}),(0,v.useUpdateEffect)(function(){f()},[i,f]),(0,u.jsx)(s.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,s.useContext)(n);return(0,u.jsx)(s.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})})();
@@ -53,7 +53,7 @@ export const useStore = function (context, entity, statuses, options) {
53
53
  update();
54
54
  });
55
55
  const onValueChange = useMemoizedFn(() => {
56
- if (!entityRootEnabled) {
56
+ if (!entityEnabled) {
57
57
  return;
58
58
  }
59
59
  const prevValue = prevValueRef.current;
@@ -63,9 +63,6 @@ export const useStore = function (context, entity, statuses, options) {
63
63
  prevValueRef.current = value;
64
64
  onTriggerWatchers(value, prevValue);
65
65
  });
66
- useUpdateEffect(() => {
67
- onValueChange();
68
- }, [value, onValueChange]);
69
66
  /**
70
67
  * 需要马上 `watch`,因为 `useEffect` 在子组件内优先执行,
71
68
  * 如果使用了 `setEntity` 则无法监控到变化
@@ -84,5 +81,8 @@ export const useStore = function (context, entity, statuses, options) {
84
81
  store.unwatch(onEntityChange);
85
82
  };
86
83
  }, [entityEnabled, store, onEntityChange]);
84
+ useUpdateEffect(() => {
85
+ onValueChange();
86
+ }, [value, onValueChange]);
87
87
  return store;
88
88
  };
@@ -1183,6 +1183,80 @@ describe('useUseCase', () => {
1183
1183
  oldValue: PATH_1
1184
1184
  });
1185
1185
  });
1186
+ test('`options.watch` should be trigger after update entity by entity initializer at child component', () => {
1187
+ const onPathChange = jest.fn();
1188
+ const TestChild = () => {
1189
+ useUseCase(fileUseCase, {
1190
+ watch: {
1191
+ path: onPathChange
1192
+ }
1193
+ });
1194
+ return _jsx(Fragment, {});
1195
+ };
1196
+ const TestParent = _ref5 => {
1197
+ let file = _ref5.file;
1198
+ const path = file.path;
1199
+ const _useUseCase10 = useUseCase(function () {
1200
+ let currentFile = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultFile;
1201
+ return {
1202
+ ...currentFile,
1203
+ path
1204
+ };
1205
+ }, fileUseCase, {}, [path]),
1206
+ _useUseCase11 = _slicedToArray(_useUseCase10, 3),
1207
+ Provider = _useUseCase11[2];
1208
+ return _jsx(Provider, {
1209
+ children: _jsx(TestChild, {})
1210
+ });
1211
+ };
1212
+ const _render = render(_jsx(TestParent, {
1213
+ file: {
1214
+ ...defaultFile
1215
+ }
1216
+ })),
1217
+ rerender = _render.rerender;
1218
+ expect(onPathChange).toHaveBeenCalledTimes(0);
1219
+ act(() => {
1220
+ rerender(_jsx(TestParent, {
1221
+ file: {
1222
+ ...defaultFile,
1223
+ path: PATH_1
1224
+ }
1225
+ }));
1226
+ });
1227
+ expect(onPathChange).toHaveBeenCalledTimes(1);
1228
+ expect(onPathChange).toHaveBeenLastCalledWith({
1229
+ fieldPaths: ['path'],
1230
+ newEntity: {
1231
+ ...defaultFile,
1232
+ path: PATH_1
1233
+ },
1234
+ oldEntity: defaultFile,
1235
+ newValue: PATH_1,
1236
+ oldValue: ''
1237
+ });
1238
+ act(() => {
1239
+ rerender(_jsx(TestParent, {
1240
+ file: {
1241
+ ...defaultFile,
1242
+ path: PATH_2
1243
+ }
1244
+ }));
1245
+ });
1246
+ expect(onPathChange).toHaveBeenLastCalledWith({
1247
+ fieldPaths: ['path'],
1248
+ newEntity: {
1249
+ ...defaultFile,
1250
+ path: PATH_2
1251
+ },
1252
+ oldEntity: {
1253
+ ...defaultFile,
1254
+ path: PATH_1
1255
+ },
1256
+ newValue: PATH_2,
1257
+ oldValue: PATH_1
1258
+ });
1259
+ });
1186
1260
  test('`options.watch` should trigger the latest one', () => {
1187
1261
  const onPathChange1 = jest.fn();
1188
1262
  const onPathChange2 = jest.fn();
@@ -1827,15 +1901,15 @@ describe('useUseCase', () => {
1827
1901
  return entityUseCase();
1828
1902
  };
1829
1903
  const TestChildComponent = () => {
1830
- const _useUseCase10 = useUseCase(numberUseCase),
1831
- _useUseCase11 = _slicedToArray(_useUseCase10, 1),
1832
- numberValue = _useUseCase11[0];
1833
- const _useUseCase12 = useUseCase(stringUseCase),
1904
+ const _useUseCase12 = useUseCase(numberUseCase),
1834
1905
  _useUseCase13 = _slicedToArray(_useUseCase12, 1),
1835
- stringValue = _useUseCase13[0];
1836
- const _useUseCase14 = useUseCase(booleanUseCase),
1906
+ numberValue = _useUseCase13[0];
1907
+ const _useUseCase14 = useUseCase(stringUseCase),
1837
1908
  _useUseCase15 = _slicedToArray(_useUseCase14, 1),
1838
- booleanValue = _useUseCase15[0];
1909
+ stringValue = _useUseCase15[0];
1910
+ const _useUseCase16 = useUseCase(booleanUseCase),
1911
+ _useUseCase17 = _slicedToArray(_useUseCase16, 1),
1912
+ booleanValue = _useUseCase17[0];
1839
1913
  useMount(() => {
1840
1914
  onNumberMount(numberValue);
1841
1915
  onStringMount(stringValue);
@@ -1844,15 +1918,15 @@ describe('useUseCase', () => {
1844
1918
  return null;
1845
1919
  };
1846
1920
  const TestParentComponent = () => {
1847
- const _useUseCase16 = useUseCase(11, numberUseCase),
1848
- _useUseCase17 = _slicedToArray(_useUseCase16, 3),
1849
- NumberProvider = _useUseCase17[2];
1850
- const _useUseCase18 = useUseCase('hello', stringUseCase),
1921
+ const _useUseCase18 = useUseCase(11, numberUseCase),
1851
1922
  _useUseCase19 = _slicedToArray(_useUseCase18, 3),
1852
- StringProvider = _useUseCase19[2];
1853
- const _useUseCase20 = useUseCase(true, booleanUseCase),
1923
+ NumberProvider = _useUseCase19[2];
1924
+ const _useUseCase20 = useUseCase('hello', stringUseCase),
1854
1925
  _useUseCase21 = _slicedToArray(_useUseCase20, 3),
1855
- BooleanProvider = _useUseCase21[2];
1926
+ StringProvider = _useUseCase21[2];
1927
+ const _useUseCase22 = useUseCase(true, booleanUseCase),
1928
+ _useUseCase23 = _slicedToArray(_useUseCase22, 3),
1929
+ BooleanProvider = _useUseCase23[2];
1856
1930
  return _jsx(NumberProvider, {
1857
1931
  with: [StringProvider, BooleanProvider],
1858
1932
  children: _jsx(TestChildComponent, {})
@@ -1879,14 +1953,14 @@ describe('useUseCase', () => {
1879
1953
  return _jsx(Fragment, {});
1880
1954
  };
1881
1955
  const TestParent = () => {
1882
- const _useUseCase22 = useUseCase(() => {
1956
+ const _useUseCase24 = useUseCase(() => {
1883
1957
  return {
1884
1958
  ...defaultFile,
1885
1959
  ext: EXT_1
1886
1960
  };
1887
1961
  }, fileUseCase),
1888
- _useUseCase23 = _slicedToArray(_useUseCase22, 3),
1889
- Provider = _useUseCase23[2];
1962
+ _useUseCase25 = _slicedToArray(_useUseCase24, 3),
1963
+ Provider = _useUseCase25[2];
1890
1964
  return _jsx(Provider, {
1891
1965
  children: _jsx(TestChild, {})
1892
1966
  });
@@ -1903,10 +1977,10 @@ describe('useUseCase', () => {
1903
1977
  const onPopupFile = jest.fn();
1904
1978
  const buttonText = 'button';
1905
1979
  const Popup = () => {
1906
- const _useUseCase24 = useUseCase(fileUseCase),
1907
- _useUseCase25 = _slicedToArray(_useUseCase24, 2),
1908
- file = _useUseCase25[0],
1909
- setEntity = _useUseCase25[1].setEntity;
1980
+ const _useUseCase26 = useUseCase(fileUseCase),
1981
+ _useUseCase27 = _slicedToArray(_useUseCase26, 2),
1982
+ file = _useUseCase27[0],
1983
+ setEntity = _useUseCase27[1].setEntity;
1910
1984
  const onClick = () => {
1911
1985
  setEntity({
1912
1986
  ext: EXT_2
@@ -1921,15 +1995,15 @@ describe('useUseCase', () => {
1921
1995
  });
1922
1996
  };
1923
1997
  const TestChild = () => {
1924
- const _useUseCase26 = useUseCase(fileUseCase),
1925
- _useUseCase27 = _slicedToArray(_useUseCase26, 3),
1926
- Provider = _useUseCase27[2];
1998
+ const _useUseCase28 = useUseCase(fileUseCase),
1999
+ _useUseCase29 = _slicedToArray(_useUseCase28, 3),
2000
+ Provider = _useUseCase29[2];
1927
2001
  return createPortal(_jsx(Provider, {
1928
2002
  children: _jsx(Popup, {})
1929
2003
  }), document.body);
1930
2004
  };
1931
2005
  const TestParent = () => {
1932
- const _useUseCase28 = useUseCase(() => {
2006
+ const _useUseCase30 = useUseCase(() => {
1933
2007
  return {
1934
2008
  ...defaultFile,
1935
2009
  ext: EXT_1
@@ -1937,9 +2011,9 @@ describe('useUseCase', () => {
1937
2011
  }, fileUseCase, {
1938
2012
  onChange
1939
2013
  }),
1940
- _useUseCase29 = _slicedToArray(_useUseCase28, 3),
1941
- file = _useUseCase29[0],
1942
- Provider = _useUseCase29[2];
2014
+ _useUseCase31 = _slicedToArray(_useUseCase30, 3),
2015
+ file = _useUseCase31[0],
2016
+ Provider = _useUseCase31[2];
1943
2017
  useEffect(() => {
1944
2018
  onRootFile(file);
1945
2019
  }, [file]);
@@ -2004,9 +2078,9 @@ describe('useUseCase', () => {
2004
2078
  return _jsx(Fragment, {});
2005
2079
  };
2006
2080
  const B = () => {
2007
- const _useUseCase30 = useUseCase(defaultFile, mockUseCase),
2008
- _useUseCase31 = _slicedToArray(_useUseCase30, 3),
2009
- Provider = _useUseCase31[2];
2081
+ const _useUseCase32 = useUseCase(defaultFile, mockUseCase),
2082
+ _useUseCase33 = _slicedToArray(_useUseCase32, 3),
2083
+ Provider = _useUseCase33[2];
2010
2084
  return _jsx(Provider, {
2011
2085
  children: _jsx(A, {})
2012
2086
  });
@@ -2027,9 +2101,9 @@ describe('useUseCase', () => {
2027
2101
  };
2028
2102
  };
2029
2103
  const A = () => {
2030
- const _useUseCase32 = useUseCase(stringUseCase),
2031
- _useUseCase33 = _slicedToArray(_useUseCase32, 2),
2032
- add = _useUseCase33[1].add;
2104
+ const _useUseCase34 = useUseCase(stringUseCase),
2105
+ _useUseCase35 = _slicedToArray(_useUseCase34, 2),
2106
+ add = _useUseCase35[1].add;
2033
2107
  const update = useUpdate();
2034
2108
  const onClick = () => {
2035
2109
  update();
@@ -2041,9 +2115,9 @@ describe('useUseCase', () => {
2041
2115
  });
2042
2116
  };
2043
2117
  const B = () => {
2044
- const _useUseCase34 = useUseCase('', stringUseCase),
2045
- _useUseCase35 = _slicedToArray(_useUseCase34, 3),
2046
- Provider = _useUseCase35[2];
2118
+ const _useUseCase36 = useUseCase('', stringUseCase),
2119
+ _useUseCase37 = _slicedToArray(_useUseCase36, 3),
2120
+ Provider = _useUseCase37[2];
2047
2121
  return _jsx(Provider, {
2048
2122
  children: _jsx(A, {})
2049
2123
  });
@@ -2068,9 +2142,9 @@ describe('useUseCase', () => {
2068
2142
  };
2069
2143
  };
2070
2144
  const A = () => {
2071
- const _useUseCase36 = useUseCase(stringUseCase),
2072
- _useUseCase37 = _slicedToArray(_useUseCase36, 2),
2073
- add = _useUseCase37[1].add;
2145
+ const _useUseCase38 = useUseCase(stringUseCase),
2146
+ _useUseCase39 = _slicedToArray(_useUseCase38, 2),
2147
+ add = _useUseCase39[1].add;
2074
2148
  const onClick = () => {
2075
2149
  add('x');
2076
2150
  };
@@ -2084,9 +2158,9 @@ describe('useUseCase', () => {
2084
2158
  });
2085
2159
  };
2086
2160
  const B = () => {
2087
- const _useUseCase38 = useUseCase('', stringUseCase),
2088
- _useUseCase39 = _slicedToArray(_useUseCase38, 3),
2089
- Provider = _useUseCase39[2];
2161
+ const _useUseCase40 = useUseCase('', stringUseCase),
2162
+ _useUseCase41 = _slicedToArray(_useUseCase40, 3),
2163
+ Provider = _useUseCase41[2];
2090
2164
  return _jsx(Provider, {
2091
2165
  children: _jsx(A, {})
2092
2166
  });
@@ -2115,11 +2189,11 @@ describe('useUseCase', () => {
2115
2189
  };
2116
2190
  };
2117
2191
  const A = () => {
2118
- const _useUseCase40 = useUseCase(stringUseCase),
2119
- _useUseCase41 = _slicedToArray(_useUseCase40, 2),
2120
- _useUseCase41$ = _useUseCase41[1],
2121
- add = _useUseCase41$.add,
2122
- setEntity = _useUseCase41$.setEntity;
2192
+ const _useUseCase42 = useUseCase(stringUseCase),
2193
+ _useUseCase43 = _slicedToArray(_useUseCase42, 2),
2194
+ _useUseCase43$ = _useUseCase43[1],
2195
+ add = _useUseCase43$.add,
2196
+ setEntity = _useUseCase43$.setEntity;
2123
2197
  const update = useUpdate();
2124
2198
  add(addedText);
2125
2199
  const onSet = () => {
@@ -2139,9 +2213,9 @@ describe('useUseCase', () => {
2139
2213
  });
2140
2214
  };
2141
2215
  const B = () => {
2142
- const _useUseCase42 = useUseCase('', stringUseCase),
2143
- _useUseCase43 = _slicedToArray(_useUseCase42, 3),
2144
- Provider = _useUseCase43[2];
2216
+ const _useUseCase44 = useUseCase('', stringUseCase),
2217
+ _useUseCase45 = _slicedToArray(_useUseCase44, 3),
2218
+ Provider = _useUseCase45[2];
2145
2219
  return _jsx(Provider, {
2146
2220
  children: _jsx(A, {})
2147
2221
  });
@@ -2170,8 +2244,8 @@ describe('useUseCase', () => {
2170
2244
  const onChangeB = jest.fn(updateChangeTimes);
2171
2245
  const onChangeC = jest.fn(updateChangeTimes);
2172
2246
  const buttonText = 'my button';
2173
- const A = _ref5 => {
2174
- let children = _ref5.children;
2247
+ const A = _ref6 => {
2248
+ let children = _ref6.children;
2175
2249
  useUseCase(fileUseCase, {
2176
2250
  onChange: onChangeA
2177
2251
  });
@@ -2186,12 +2260,12 @@ describe('useUseCase', () => {
2186
2260
  return _jsx(Fragment, {});
2187
2261
  };
2188
2262
  const C = () => {
2189
- const _useUseCase44 = useUseCase(defaultFile, fileUseCase, {
2263
+ const _useUseCase46 = useUseCase(defaultFile, fileUseCase, {
2190
2264
  onChange: onChangeC
2191
2265
  }),
2192
- _useUseCase45 = _slicedToArray(_useUseCase44, 3),
2193
- setPath = _useUseCase45[1].setPath,
2194
- Provider = _useUseCase45[2];
2266
+ _useUseCase47 = _slicedToArray(_useUseCase46, 3),
2267
+ setPath = _useUseCase47[1].setPath,
2268
+ Provider = _useUseCase47[2];
2195
2269
  const onFirstClick = () => {
2196
2270
  setPath(PATH_1);
2197
2271
  };
@@ -2218,11 +2292,11 @@ describe('useUseCase', () => {
2218
2292
  const firstButtonText = 'first button';
2219
2293
  const secondButtonText = 'second button';
2220
2294
  const A = () => {
2221
- const _useUseCase46 = useUseCase(fileUseCase, {
2295
+ const _useUseCase48 = useUseCase(fileUseCase, {
2222
2296
  onChange
2223
2297
  }),
2224
- _useUseCase47 = _slicedToArray(_useUseCase46, 2),
2225
- setPath = _useUseCase47[1].setPath;
2298
+ _useUseCase49 = _slicedToArray(_useUseCase48, 2),
2299
+ setPath = _useUseCase49[1].setPath;
2226
2300
  const onFirstClick = () => {
2227
2301
  setPath(PATH_1);
2228
2302
  onChange = onSecondChange;
@@ -2241,9 +2315,9 @@ describe('useUseCase', () => {
2241
2315
  });
2242
2316
  };
2243
2317
  const B = () => {
2244
- const _useUseCase48 = useUseCase(defaultFile, fileUseCase),
2245
- _useUseCase49 = _slicedToArray(_useUseCase48, 3),
2246
- Provider = _useUseCase49[2];
2318
+ const _useUseCase50 = useUseCase(defaultFile, fileUseCase),
2319
+ _useUseCase51 = _slicedToArray(_useUseCase50, 3),
2320
+ Provider = _useUseCase51[2];
2247
2321
  return _jsx(Provider, {
2248
2322
  children: _jsx(A, {})
2249
2323
  });
@@ -2266,13 +2340,13 @@ describe('useUseCase', () => {
2266
2340
  const onExtChange = jest.fn();
2267
2341
  const firstButtonText = 'first button';
2268
2342
  const A = () => {
2269
- const _useUseCase50 = useUseCase(fileUseCase, {
2343
+ const _useUseCase52 = useUseCase(fileUseCase, {
2270
2344
  watch: {
2271
2345
  ext: onExtChange
2272
2346
  }
2273
2347
  }),
2274
- _useUseCase51 = _slicedToArray(_useUseCase50, 2),
2275
- setPath = _useUseCase51[1].setPath;
2348
+ _useUseCase53 = _slicedToArray(_useUseCase52, 2),
2349
+ setPath = _useUseCase53[1].setPath;
2276
2350
  const onFirstClick = () => {
2277
2351
  setPath(PATH_1);
2278
2352
  };
@@ -2282,9 +2356,9 @@ describe('useUseCase', () => {
2282
2356
  });
2283
2357
  };
2284
2358
  const B = () => {
2285
- const _useUseCase52 = useUseCase(defaultFile, fileUseCase, {}),
2286
- _useUseCase53 = _slicedToArray(_useUseCase52, 3),
2287
- Provider = _useUseCase53[2];
2359
+ const _useUseCase54 = useUseCase(defaultFile, fileUseCase, {}),
2360
+ _useUseCase55 = _slicedToArray(_useUseCase54, 3),
2361
+ Provider = _useUseCase55[2];
2288
2362
  return _jsx(Provider, {
2289
2363
  children: _jsx(A, {})
2290
2364
  });
@@ -2315,8 +2389,8 @@ describe('useUseCase', () => {
2315
2389
  const onChangeB = jest.fn(updateChangeTimes);
2316
2390
  const onChangeC = jest.fn(updateChangeTimes);
2317
2391
  const buttonText = 'my button';
2318
- const A = _ref6 => {
2319
- let children = _ref6.children;
2392
+ const A = _ref7 => {
2393
+ let children = _ref7.children;
2320
2394
  useUseCase(fileUseCase, {
2321
2395
  watch: {
2322
2396
  ext: onChangeA
@@ -2335,14 +2409,14 @@ describe('useUseCase', () => {
2335
2409
  return _jsx(Fragment, {});
2336
2410
  };
2337
2411
  const C = () => {
2338
- const _useUseCase54 = useUseCase(defaultFile, fileUseCase, {
2412
+ const _useUseCase56 = useUseCase(defaultFile, fileUseCase, {
2339
2413
  watch: {
2340
2414
  ext: onChangeC
2341
2415
  }
2342
2416
  }),
2343
- _useUseCase55 = _slicedToArray(_useUseCase54, 3),
2344
- setPath = _useUseCase55[1].setPath,
2345
- Provider = _useUseCase55[2];
2417
+ _useUseCase57 = _slicedToArray(_useUseCase56, 3),
2418
+ setPath = _useUseCase57[1].setPath,
2419
+ Provider = _useUseCase57[2];
2346
2420
  const onFirstClick = () => {
2347
2421
  setPath(PATH_1);
2348
2422
  };
@@ -2369,13 +2443,13 @@ describe('useUseCase', () => {
2369
2443
  const firstButtonText = 'first button';
2370
2444
  const secondButtonText = 'second button';
2371
2445
  const A = () => {
2372
- const _useUseCase56 = useUseCase(fileUseCase, {
2446
+ const _useUseCase58 = useUseCase(fileUseCase, {
2373
2447
  watch: {
2374
2448
  ext: onExtChange
2375
2449
  }
2376
2450
  }),
2377
- _useUseCase57 = _slicedToArray(_useUseCase56, 2),
2378
- setPath = _useUseCase57[1].setPath;
2451
+ _useUseCase59 = _slicedToArray(_useUseCase58, 2),
2452
+ setPath = _useUseCase59[1].setPath;
2379
2453
  const onFirstClick = () => {
2380
2454
  setPath(PATH_1);
2381
2455
  onExtChange = onSecondExtChange;
@@ -2394,9 +2468,9 @@ describe('useUseCase', () => {
2394
2468
  });
2395
2469
  };
2396
2470
  const B = () => {
2397
- const _useUseCase58 = useUseCase(defaultFile, fileUseCase),
2398
- _useUseCase59 = _slicedToArray(_useUseCase58, 3),
2399
- Provider = _useUseCase59[2];
2471
+ const _useUseCase60 = useUseCase(defaultFile, fileUseCase),
2472
+ _useUseCase61 = _slicedToArray(_useUseCase60, 3),
2473
+ Provider = _useUseCase61[2];
2400
2474
  return _jsx(Provider, {
2401
2475
  children: _jsx(A, {})
2402
2476
  });
@@ -2474,8 +2548,8 @@ describe('useUseCase', () => {
2474
2548
  test('reducer call should not be cached if component is at rendering phase', () => {
2475
2549
  const buttonText = 'button';
2476
2550
  const CacheTestComponent = () => {
2477
- const _useUseCase60 = useUseCase(mathUseCase),
2478
- subtraction = _useUseCase60.subtraction;
2551
+ const _useUseCase62 = useUseCase(mathUseCase),
2552
+ subtraction = _useUseCase62.subtraction;
2479
2553
  const update = useUpdate();
2480
2554
  const onClick = () => {
2481
2555
  update();
@@ -2498,8 +2572,8 @@ describe('useUseCase', () => {
2498
2572
  test('reducer call should not be cached if component is not at rendering phase', () => {
2499
2573
  const buttonText = 'button';
2500
2574
  const CacheTestComponent = () => {
2501
- const _useUseCase61 = useUseCase(mathUseCase),
2502
- subtraction = _useUseCase61.subtraction;
2575
+ const _useUseCase63 = useUseCase(mathUseCase),
2576
+ subtraction = _useUseCase63.subtraction;
2503
2577
  const onClick = () => {
2504
2578
  subtraction(5, 3);
2505
2579
  };
@@ -2527,8 +2601,8 @@ describe('useUseCase', () => {
2527
2601
  let count = 0;
2528
2602
  const buttonText = 'button';
2529
2603
  const StringUseCaseTestComponent = () => {
2530
- const _useUseCase62 = useUseCase(mathUseCase),
2531
- subtraction = _useUseCase62.subtraction;
2604
+ const _useUseCase64 = useUseCase(mathUseCase),
2605
+ subtraction = _useUseCase64.subtraction;
2532
2606
  const update = useUpdate();
2533
2607
  subtraction(5, count++);
2534
2608
  const onUpdate = () => {
@@ -82,14 +82,12 @@ export const valueUseCase = createUseCase(() => {
82
82
  const hasOldField = hasField(oldValue, key);
83
83
  const hasNewField = hasField(newValue, key);
84
84
  if (hasOldField || hasNewField) {
85
- const oldFieldDescriptor = Object.getOwnPropertyDescriptor(hasOldField ? oldValue : {}, key) || {};
86
- const newFieldDescriptor = Object.getOwnPropertyDescriptor(hasNewField ? newValue : {}, key) || {};
87
- const oldSubValue = oldFieldDescriptor.value,
88
- oldFieldGet = oldFieldDescriptor.get,
89
- oldFieldSet = oldFieldDescriptor.set;
90
- const newSubValue = newFieldDescriptor.value,
91
- newFieldGet = newFieldDescriptor.get,
92
- newFieldSet = newFieldDescriptor.set;
85
+ const _ref3 = hasOldField ? [oldValue[key]] : [],
86
+ _ref4 = _slicedToArray(_ref3, 1),
87
+ oldSubValue = _ref4[0];
88
+ const _ref5 = hasNewField ? [newValue[key]] : [],
89
+ _ref6 = _slicedToArray(_ref5, 1),
90
+ newSubValue = _ref6[0];
93
91
  const result = {
94
92
  fieldPaths: [...fieldPaths, key],
95
93
  newEntity: value,
@@ -102,16 +100,6 @@ export const valueUseCase = createUseCase(() => {
102
100
  list.push(result);
103
101
  continue;
104
102
  }
105
- const hasOldFieldGet = typeof oldFieldGet === 'function';
106
- const hasOldFieldSet = typeof oldFieldSet === 'function';
107
- const hasNewFieldGet = typeof newFieldGet === 'function';
108
- const hasNewFieldSet = typeof newFieldSet === 'function';
109
- const hasOldFieldAccessor = hasOldFieldGet || hasOldFieldSet;
110
- const hasNewFieldAccessor = hasNewFieldGet || hasNewFieldSet;
111
- // 如果都是访问器
112
- if (hasOldFieldAccessor && hasNewFieldAccessor) {
113
- continue;
114
- }
115
103
  if (newSubValue === oldSubValue) {
116
104
  continue;
117
105
  }
@@ -60,7 +60,7 @@ var useStore = exports.useStore = function useStore(context, entity, statuses, o
60
60
  update();
61
61
  });
62
62
  var onValueChange = (0, _ahooks.useMemoizedFn)(function () {
63
- if (!entityRootEnabled) {
63
+ if (!entityEnabled) {
64
64
  return;
65
65
  }
66
66
  var prevValue = prevValueRef.current;
@@ -70,9 +70,6 @@ var useStore = exports.useStore = function useStore(context, entity, statuses, o
70
70
  prevValueRef.current = value;
71
71
  onTriggerWatchers(value, prevValue);
72
72
  });
73
- (0, _ahooks.useUpdateEffect)(function () {
74
- onValueChange();
75
- }, [value, onValueChange]);
76
73
  /**
77
74
  * 需要马上 `watch`,因为 `useEffect` 在子组件内优先执行,
78
75
  * 如果使用了 `setEntity` 则无法监控到变化
@@ -91,5 +88,8 @@ var useStore = exports.useStore = function useStore(context, entity, statuses, o
91
88
  store.unwatch(onEntityChange);
92
89
  };
93
90
  }, [entityEnabled, store, onEntityChange]);
91
+ (0, _ahooks.useUpdateEffect)(function () {
92
+ onValueChange();
93
+ }, [value, onValueChange]);
94
94
  return store;
95
95
  };
@@ -79,7 +79,7 @@ var fileUseCase = function fileUseCase() {
79
79
  }, setPath);
80
80
  });
81
81
  var readFile = /*#__PURE__*/function () {
82
- var _ref7 = (0, _wrapAsyncGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(entity, path) {
82
+ var _ref8 = (0, _wrapAsyncGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(entity, path) {
83
83
  var size;
84
84
  return _regenerator["default"].wrap(function (_context5) {
85
85
  while (1) switch (_context5.prev = _context5.next) {
@@ -105,7 +105,7 @@ var fileUseCase = function fileUseCase() {
105
105
  }, _callee2);
106
106
  }));
107
107
  return function readFile(_x, _x2) {
108
- return _ref7.apply(this, arguments);
108
+ return _ref8.apply(this, arguments);
109
109
  };
110
110
  }();
111
111
  var isImage = function isImage(entity) {
@@ -404,7 +404,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
404
404
  case 2:
405
405
  _context8.next = 3;
406
406
  return /*#__PURE__*/function () {
407
- var _ref9 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(currentEntity) {
407
+ var _ref0 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(currentEntity) {
408
408
  return _regenerator["default"].wrap(function (_context7) {
409
409
  while (1) switch (_context7.prev = _context7.next) {
410
410
  case 0:
@@ -421,7 +421,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
421
421
  }, _callee4);
422
422
  }));
423
423
  return function (_x3) {
424
- return _ref9.apply(this, arguments);
424
+ return _ref0.apply(this, arguments);
425
425
  };
426
426
  }();
427
427
  case 3:
@@ -1255,6 +1255,72 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1255
1255
  oldValue: PATH_1
1256
1256
  });
1257
1257
  });
1258
+ (0, _globals.test)('`options.watch` should be trigger after update entity by entity initializer at child component', function () {
1259
+ var onPathChange = _globals.jest.fn();
1260
+ var TestChild = function TestChild() {
1261
+ (0, _.useUseCase)(fileUseCase, {
1262
+ watch: {
1263
+ path: onPathChange
1264
+ }
1265
+ });
1266
+ return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
1267
+ };
1268
+ var TestParent = function TestParent(_ref5) {
1269
+ var file = _ref5.file;
1270
+ var path = file.path;
1271
+ var _useUseCase10 = (0, _.useUseCase)(function () {
1272
+ var currentFile = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultFile;
1273
+ return _objectSpread(_objectSpread({}, currentFile), {}, {
1274
+ path: path
1275
+ });
1276
+ }, fileUseCase, {}, [path]),
1277
+ _useUseCase11 = (0, _slicedToArray2["default"])(_useUseCase10, 3),
1278
+ Provider = _useUseCase11[2];
1279
+ return (0, _jsxRuntime.jsx)(Provider, {
1280
+ children: (0, _jsxRuntime.jsx)(TestChild, {})
1281
+ });
1282
+ };
1283
+ var _render = (0, _react.render)((0, _jsxRuntime.jsx)(TestParent, {
1284
+ file: _objectSpread({}, defaultFile)
1285
+ })),
1286
+ rerender = _render.rerender;
1287
+ (0, _globals.expect)(onPathChange).toHaveBeenCalledTimes(0);
1288
+ (0, _react.act)(function () {
1289
+ rerender((0, _jsxRuntime.jsx)(TestParent, {
1290
+ file: _objectSpread(_objectSpread({}, defaultFile), {}, {
1291
+ path: PATH_1
1292
+ })
1293
+ }));
1294
+ });
1295
+ (0, _globals.expect)(onPathChange).toHaveBeenCalledTimes(1);
1296
+ (0, _globals.expect)(onPathChange).toHaveBeenLastCalledWith({
1297
+ fieldPaths: ['path'],
1298
+ newEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
1299
+ path: PATH_1
1300
+ }),
1301
+ oldEntity: defaultFile,
1302
+ newValue: PATH_1,
1303
+ oldValue: ''
1304
+ });
1305
+ (0, _react.act)(function () {
1306
+ rerender((0, _jsxRuntime.jsx)(TestParent, {
1307
+ file: _objectSpread(_objectSpread({}, defaultFile), {}, {
1308
+ path: PATH_2
1309
+ })
1310
+ }));
1311
+ });
1312
+ (0, _globals.expect)(onPathChange).toHaveBeenLastCalledWith({
1313
+ fieldPaths: ['path'],
1314
+ newEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
1315
+ path: PATH_2
1316
+ }),
1317
+ oldEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
1318
+ path: PATH_1
1319
+ }),
1320
+ newValue: PATH_2,
1321
+ oldValue: PATH_1
1322
+ });
1323
+ });
1258
1324
  (0, _globals.test)('`options.watch` should trigger the latest one', function () {
1259
1325
  var onPathChange1 = _globals.jest.fn();
1260
1326
  var onPathChange2 = _globals.jest.fn();
@@ -1838,15 +1904,15 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1838
1904
  return (0, _usecases.entityUseCase)();
1839
1905
  };
1840
1906
  var TestChildComponent = function TestChildComponent() {
1841
- var _useUseCase10 = (0, _.useUseCase)(numberUseCase),
1842
- _useUseCase11 = (0, _slicedToArray2["default"])(_useUseCase10, 1),
1843
- numberValue = _useUseCase11[0];
1844
- var _useUseCase12 = (0, _.useUseCase)(stringUseCase),
1907
+ var _useUseCase12 = (0, _.useUseCase)(numberUseCase),
1845
1908
  _useUseCase13 = (0, _slicedToArray2["default"])(_useUseCase12, 1),
1846
- stringValue = _useUseCase13[0];
1847
- var _useUseCase14 = (0, _.useUseCase)(booleanUseCase),
1909
+ numberValue = _useUseCase13[0];
1910
+ var _useUseCase14 = (0, _.useUseCase)(stringUseCase),
1848
1911
  _useUseCase15 = (0, _slicedToArray2["default"])(_useUseCase14, 1),
1849
- booleanValue = _useUseCase15[0];
1912
+ stringValue = _useUseCase15[0];
1913
+ var _useUseCase16 = (0, _.useUseCase)(booleanUseCase),
1914
+ _useUseCase17 = (0, _slicedToArray2["default"])(_useUseCase16, 1),
1915
+ booleanValue = _useUseCase17[0];
1850
1916
  (0, _ahooks.useMount)(function () {
1851
1917
  onNumberMount(numberValue);
1852
1918
  onStringMount(stringValue);
@@ -1855,15 +1921,15 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1855
1921
  return null;
1856
1922
  };
1857
1923
  var TestParentComponent = function TestParentComponent() {
1858
- var _useUseCase16 = (0, _.useUseCase)(11, numberUseCase),
1859
- _useUseCase17 = (0, _slicedToArray2["default"])(_useUseCase16, 3),
1860
- NumberProvider = _useUseCase17[2];
1861
- var _useUseCase18 = (0, _.useUseCase)('hello', stringUseCase),
1924
+ var _useUseCase18 = (0, _.useUseCase)(11, numberUseCase),
1862
1925
  _useUseCase19 = (0, _slicedToArray2["default"])(_useUseCase18, 3),
1863
- StringProvider = _useUseCase19[2];
1864
- var _useUseCase20 = (0, _.useUseCase)(true, booleanUseCase),
1926
+ NumberProvider = _useUseCase19[2];
1927
+ var _useUseCase20 = (0, _.useUseCase)('hello', stringUseCase),
1865
1928
  _useUseCase21 = (0, _slicedToArray2["default"])(_useUseCase20, 3),
1866
- BooleanProvider = _useUseCase21[2];
1929
+ StringProvider = _useUseCase21[2];
1930
+ var _useUseCase22 = (0, _.useUseCase)(true, booleanUseCase),
1931
+ _useUseCase23 = (0, _slicedToArray2["default"])(_useUseCase22, 3),
1932
+ BooleanProvider = _useUseCase23[2];
1867
1933
  return (0, _jsxRuntime.jsx)(NumberProvider, {
1868
1934
  "with": [StringProvider, BooleanProvider],
1869
1935
  children: (0, _jsxRuntime.jsx)(TestChildComponent, {})
@@ -1890,13 +1956,13 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1890
1956
  return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
1891
1957
  };
1892
1958
  var TestParent = function TestParent() {
1893
- var _useUseCase22 = (0, _.useUseCase)(function () {
1959
+ var _useUseCase24 = (0, _.useUseCase)(function () {
1894
1960
  return _objectSpread(_objectSpread({}, defaultFile), {}, {
1895
1961
  ext: EXT_1
1896
1962
  });
1897
1963
  }, fileUseCase),
1898
- _useUseCase23 = (0, _slicedToArray2["default"])(_useUseCase22, 3),
1899
- Provider = _useUseCase23[2];
1964
+ _useUseCase25 = (0, _slicedToArray2["default"])(_useUseCase24, 3),
1965
+ Provider = _useUseCase25[2];
1900
1966
  return (0, _jsxRuntime.jsx)(Provider, {
1901
1967
  children: (0, _jsxRuntime.jsx)(TestChild, {})
1902
1968
  });
@@ -1912,10 +1978,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1912
1978
  var onPopupFile = _globals.jest.fn();
1913
1979
  var buttonText = 'button';
1914
1980
  var Popup = function Popup() {
1915
- var _useUseCase24 = (0, _.useUseCase)(fileUseCase),
1916
- _useUseCase25 = (0, _slicedToArray2["default"])(_useUseCase24, 2),
1917
- file = _useUseCase25[0],
1918
- setEntity = _useUseCase25[1].setEntity;
1981
+ var _useUseCase26 = (0, _.useUseCase)(fileUseCase),
1982
+ _useUseCase27 = (0, _slicedToArray2["default"])(_useUseCase26, 2),
1983
+ file = _useUseCase27[0],
1984
+ setEntity = _useUseCase27[1].setEntity;
1919
1985
  var onClick = function onClick() {
1920
1986
  setEntity({
1921
1987
  ext: EXT_2
@@ -1930,24 +1996,24 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
1930
1996
  });
1931
1997
  };
1932
1998
  var TestChild = function TestChild() {
1933
- var _useUseCase26 = (0, _.useUseCase)(fileUseCase),
1934
- _useUseCase27 = (0, _slicedToArray2["default"])(_useUseCase26, 3),
1935
- Provider = _useUseCase27[2];
1999
+ var _useUseCase28 = (0, _.useUseCase)(fileUseCase),
2000
+ _useUseCase29 = (0, _slicedToArray2["default"])(_useUseCase28, 3),
2001
+ Provider = _useUseCase29[2];
1936
2002
  return (0, _reactDom.createPortal)((0, _jsxRuntime.jsx)(Provider, {
1937
2003
  children: (0, _jsxRuntime.jsx)(Popup, {})
1938
2004
  }), document.body);
1939
2005
  };
1940
2006
  var TestParent = function TestParent() {
1941
- var _useUseCase28 = (0, _.useUseCase)(function () {
2007
+ var _useUseCase30 = (0, _.useUseCase)(function () {
1942
2008
  return _objectSpread(_objectSpread({}, defaultFile), {}, {
1943
2009
  ext: EXT_1
1944
2010
  });
1945
2011
  }, fileUseCase, {
1946
2012
  onChange: onChange
1947
2013
  }),
1948
- _useUseCase29 = (0, _slicedToArray2["default"])(_useUseCase28, 3),
1949
- file = _useUseCase29[0],
1950
- Provider = _useUseCase29[2];
2014
+ _useUseCase31 = (0, _slicedToArray2["default"])(_useUseCase30, 3),
2015
+ file = _useUseCase31[0],
2016
+ Provider = _useUseCase31[2];
1951
2017
  (0, _react2.useEffect)(function () {
1952
2018
  onRootFile(file);
1953
2019
  }, [file]);
@@ -2008,9 +2074,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2008
2074
  return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
2009
2075
  };
2010
2076
  var B = function B() {
2011
- var _useUseCase30 = (0, _.useUseCase)(defaultFile, mockUseCase),
2012
- _useUseCase31 = (0, _slicedToArray2["default"])(_useUseCase30, 3),
2013
- Provider = _useUseCase31[2];
2077
+ var _useUseCase32 = (0, _.useUseCase)(defaultFile, mockUseCase),
2078
+ _useUseCase33 = (0, _slicedToArray2["default"])(_useUseCase32, 3),
2079
+ Provider = _useUseCase33[2];
2014
2080
  return (0, _jsxRuntime.jsx)(Provider, {
2015
2081
  children: (0, _jsxRuntime.jsx)(A, {})
2016
2082
  });
@@ -2030,9 +2096,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2030
2096
  });
2031
2097
  };
2032
2098
  var A = function A() {
2033
- var _useUseCase32 = (0, _.useUseCase)(stringUseCase),
2034
- _useUseCase33 = (0, _slicedToArray2["default"])(_useUseCase32, 2),
2035
- add = _useUseCase33[1].add;
2099
+ var _useUseCase34 = (0, _.useUseCase)(stringUseCase),
2100
+ _useUseCase35 = (0, _slicedToArray2["default"])(_useUseCase34, 2),
2101
+ add = _useUseCase35[1].add;
2036
2102
  var update = (0, _ahooks.useUpdate)();
2037
2103
  var onClick = function onClick() {
2038
2104
  update();
@@ -2044,9 +2110,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2044
2110
  });
2045
2111
  };
2046
2112
  var B = function B() {
2047
- var _useUseCase34 = (0, _.useUseCase)('', stringUseCase),
2048
- _useUseCase35 = (0, _slicedToArray2["default"])(_useUseCase34, 3),
2049
- Provider = _useUseCase35[2];
2113
+ var _useUseCase36 = (0, _.useUseCase)('', stringUseCase),
2114
+ _useUseCase37 = (0, _slicedToArray2["default"])(_useUseCase36, 3),
2115
+ Provider = _useUseCase37[2];
2050
2116
  return (0, _jsxRuntime.jsx)(Provider, {
2051
2117
  children: (0, _jsxRuntime.jsx)(A, {})
2052
2118
  });
@@ -2070,9 +2136,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2070
2136
  });
2071
2137
  };
2072
2138
  var A = function A() {
2073
- var _useUseCase36 = (0, _.useUseCase)(stringUseCase),
2074
- _useUseCase37 = (0, _slicedToArray2["default"])(_useUseCase36, 2),
2075
- add = _useUseCase37[1].add;
2139
+ var _useUseCase38 = (0, _.useUseCase)(stringUseCase),
2140
+ _useUseCase39 = (0, _slicedToArray2["default"])(_useUseCase38, 2),
2141
+ add = _useUseCase39[1].add;
2076
2142
  var onClick = function onClick() {
2077
2143
  add('x');
2078
2144
  };
@@ -2086,9 +2152,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2086
2152
  });
2087
2153
  };
2088
2154
  var B = function B() {
2089
- var _useUseCase38 = (0, _.useUseCase)('', stringUseCase),
2090
- _useUseCase39 = (0, _slicedToArray2["default"])(_useUseCase38, 3),
2091
- Provider = _useUseCase39[2];
2155
+ var _useUseCase40 = (0, _.useUseCase)('', stringUseCase),
2156
+ _useUseCase41 = (0, _slicedToArray2["default"])(_useUseCase40, 3),
2157
+ Provider = _useUseCase41[2];
2092
2158
  return (0, _jsxRuntime.jsx)(Provider, {
2093
2159
  children: (0, _jsxRuntime.jsx)(A, {})
2094
2160
  });
@@ -2116,11 +2182,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2116
2182
  });
2117
2183
  };
2118
2184
  var A = function A() {
2119
- var _useUseCase40 = (0, _.useUseCase)(stringUseCase),
2120
- _useUseCase41 = (0, _slicedToArray2["default"])(_useUseCase40, 2),
2121
- _useUseCase41$ = _useUseCase41[1],
2122
- add = _useUseCase41$.add,
2123
- setEntity = _useUseCase41$.setEntity;
2185
+ var _useUseCase42 = (0, _.useUseCase)(stringUseCase),
2186
+ _useUseCase43 = (0, _slicedToArray2["default"])(_useUseCase42, 2),
2187
+ _useUseCase43$ = _useUseCase43[1],
2188
+ add = _useUseCase43$.add,
2189
+ setEntity = _useUseCase43$.setEntity;
2124
2190
  var update = (0, _ahooks.useUpdate)();
2125
2191
  add(addedText);
2126
2192
  var onSet = function onSet() {
@@ -2140,9 +2206,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2140
2206
  });
2141
2207
  };
2142
2208
  var B = function B() {
2143
- var _useUseCase42 = (0, _.useUseCase)('', stringUseCase),
2144
- _useUseCase43 = (0, _slicedToArray2["default"])(_useUseCase42, 3),
2145
- Provider = _useUseCase43[2];
2209
+ var _useUseCase44 = (0, _.useUseCase)('', stringUseCase),
2210
+ _useUseCase45 = (0, _slicedToArray2["default"])(_useUseCase44, 3),
2211
+ Provider = _useUseCase45[2];
2146
2212
  return (0, _jsxRuntime.jsx)(Provider, {
2147
2213
  children: (0, _jsxRuntime.jsx)(A, {})
2148
2214
  });
@@ -2171,8 +2237,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2171
2237
  var onChangeB = _globals.jest.fn(updateChangeTimes);
2172
2238
  var onChangeC = _globals.jest.fn(updateChangeTimes);
2173
2239
  var buttonText = 'my button';
2174
- var A = function A(_ref5) {
2175
- var children = _ref5.children;
2240
+ var A = function A(_ref6) {
2241
+ var children = _ref6.children;
2176
2242
  (0, _.useUseCase)(fileUseCase, {
2177
2243
  onChange: onChangeA
2178
2244
  });
@@ -2187,12 +2253,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2187
2253
  return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
2188
2254
  };
2189
2255
  var C = function C() {
2190
- var _useUseCase44 = (0, _.useUseCase)(defaultFile, fileUseCase, {
2256
+ var _useUseCase46 = (0, _.useUseCase)(defaultFile, fileUseCase, {
2191
2257
  onChange: onChangeC
2192
2258
  }),
2193
- _useUseCase45 = (0, _slicedToArray2["default"])(_useUseCase44, 3),
2194
- setPath = _useUseCase45[1].setPath,
2195
- Provider = _useUseCase45[2];
2259
+ _useUseCase47 = (0, _slicedToArray2["default"])(_useUseCase46, 3),
2260
+ setPath = _useUseCase47[1].setPath,
2261
+ Provider = _useUseCase47[2];
2196
2262
  var onFirstClick = function onFirstClick() {
2197
2263
  setPath(PATH_1);
2198
2264
  };
@@ -2219,11 +2285,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2219
2285
  var firstButtonText = 'first button';
2220
2286
  var secondButtonText = 'second button';
2221
2287
  var A = function A() {
2222
- var _useUseCase46 = (0, _.useUseCase)(fileUseCase, {
2288
+ var _useUseCase48 = (0, _.useUseCase)(fileUseCase, {
2223
2289
  onChange: onChange
2224
2290
  }),
2225
- _useUseCase47 = (0, _slicedToArray2["default"])(_useUseCase46, 2),
2226
- setPath = _useUseCase47[1].setPath;
2291
+ _useUseCase49 = (0, _slicedToArray2["default"])(_useUseCase48, 2),
2292
+ setPath = _useUseCase49[1].setPath;
2227
2293
  var onFirstClick = function onFirstClick() {
2228
2294
  setPath(PATH_1);
2229
2295
  onChange = onSecondChange;
@@ -2242,9 +2308,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2242
2308
  });
2243
2309
  };
2244
2310
  var B = function B() {
2245
- var _useUseCase48 = (0, _.useUseCase)(defaultFile, fileUseCase),
2246
- _useUseCase49 = (0, _slicedToArray2["default"])(_useUseCase48, 3),
2247
- Provider = _useUseCase49[2];
2311
+ var _useUseCase50 = (0, _.useUseCase)(defaultFile, fileUseCase),
2312
+ _useUseCase51 = (0, _slicedToArray2["default"])(_useUseCase50, 3),
2313
+ Provider = _useUseCase51[2];
2248
2314
  return (0, _jsxRuntime.jsx)(Provider, {
2249
2315
  children: (0, _jsxRuntime.jsx)(A, {})
2250
2316
  });
@@ -2266,13 +2332,13 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2266
2332
  var onExtChange = _globals.jest.fn();
2267
2333
  var firstButtonText = 'first button';
2268
2334
  var A = function A() {
2269
- var _useUseCase50 = (0, _.useUseCase)(fileUseCase, {
2335
+ var _useUseCase52 = (0, _.useUseCase)(fileUseCase, {
2270
2336
  watch: {
2271
2337
  ext: onExtChange
2272
2338
  }
2273
2339
  }),
2274
- _useUseCase51 = (0, _slicedToArray2["default"])(_useUseCase50, 2),
2275
- setPath = _useUseCase51[1].setPath;
2340
+ _useUseCase53 = (0, _slicedToArray2["default"])(_useUseCase52, 2),
2341
+ setPath = _useUseCase53[1].setPath;
2276
2342
  var onFirstClick = function onFirstClick() {
2277
2343
  setPath(PATH_1);
2278
2344
  };
@@ -2282,9 +2348,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2282
2348
  });
2283
2349
  };
2284
2350
  var B = function B() {
2285
- var _useUseCase52 = (0, _.useUseCase)(defaultFile, fileUseCase, {}),
2286
- _useUseCase53 = (0, _slicedToArray2["default"])(_useUseCase52, 3),
2287
- Provider = _useUseCase53[2];
2351
+ var _useUseCase54 = (0, _.useUseCase)(defaultFile, fileUseCase, {}),
2352
+ _useUseCase55 = (0, _slicedToArray2["default"])(_useUseCase54, 3),
2353
+ Provider = _useUseCase55[2];
2288
2354
  return (0, _jsxRuntime.jsx)(Provider, {
2289
2355
  children: (0, _jsxRuntime.jsx)(A, {})
2290
2356
  });
@@ -2314,8 +2380,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2314
2380
  var onChangeB = _globals.jest.fn(updateChangeTimes);
2315
2381
  var onChangeC = _globals.jest.fn(updateChangeTimes);
2316
2382
  var buttonText = 'my button';
2317
- var A = function A(_ref6) {
2318
- var children = _ref6.children;
2383
+ var A = function A(_ref7) {
2384
+ var children = _ref7.children;
2319
2385
  (0, _.useUseCase)(fileUseCase, {
2320
2386
  watch: {
2321
2387
  ext: onChangeA
@@ -2334,14 +2400,14 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2334
2400
  return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
2335
2401
  };
2336
2402
  var C = function C() {
2337
- var _useUseCase54 = (0, _.useUseCase)(defaultFile, fileUseCase, {
2403
+ var _useUseCase56 = (0, _.useUseCase)(defaultFile, fileUseCase, {
2338
2404
  watch: {
2339
2405
  ext: onChangeC
2340
2406
  }
2341
2407
  }),
2342
- _useUseCase55 = (0, _slicedToArray2["default"])(_useUseCase54, 3),
2343
- setPath = _useUseCase55[1].setPath,
2344
- Provider = _useUseCase55[2];
2408
+ _useUseCase57 = (0, _slicedToArray2["default"])(_useUseCase56, 3),
2409
+ setPath = _useUseCase57[1].setPath,
2410
+ Provider = _useUseCase57[2];
2345
2411
  var onFirstClick = function onFirstClick() {
2346
2412
  setPath(PATH_1);
2347
2413
  };
@@ -2368,13 +2434,13 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2368
2434
  var firstButtonText = 'first button';
2369
2435
  var secondButtonText = 'second button';
2370
2436
  var A = function A() {
2371
- var _useUseCase56 = (0, _.useUseCase)(fileUseCase, {
2437
+ var _useUseCase58 = (0, _.useUseCase)(fileUseCase, {
2372
2438
  watch: {
2373
2439
  ext: onExtChange
2374
2440
  }
2375
2441
  }),
2376
- _useUseCase57 = (0, _slicedToArray2["default"])(_useUseCase56, 2),
2377
- setPath = _useUseCase57[1].setPath;
2442
+ _useUseCase59 = (0, _slicedToArray2["default"])(_useUseCase58, 2),
2443
+ setPath = _useUseCase59[1].setPath;
2378
2444
  var onFirstClick = function onFirstClick() {
2379
2445
  setPath(PATH_1);
2380
2446
  onExtChange = onSecondExtChange;
@@ -2393,9 +2459,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2393
2459
  });
2394
2460
  };
2395
2461
  var B = function B() {
2396
- var _useUseCase58 = (0, _.useUseCase)(defaultFile, fileUseCase),
2397
- _useUseCase59 = (0, _slicedToArray2["default"])(_useUseCase58, 3),
2398
- Provider = _useUseCase59[2];
2462
+ var _useUseCase60 = (0, _.useUseCase)(defaultFile, fileUseCase),
2463
+ _useUseCase61 = (0, _slicedToArray2["default"])(_useUseCase60, 3),
2464
+ Provider = _useUseCase61[2];
2399
2465
  return (0, _jsxRuntime.jsx)(Provider, {
2400
2466
  children: (0, _jsxRuntime.jsx)(A, {})
2401
2467
  });
@@ -2472,8 +2538,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2472
2538
  (0, _globals.test)('reducer call should not be cached if component is at rendering phase', function () {
2473
2539
  var buttonText = 'button';
2474
2540
  var CacheTestComponent = function CacheTestComponent() {
2475
- var _useUseCase60 = (0, _.useUseCase)(mathUseCase),
2476
- subtraction = _useUseCase60.subtraction;
2541
+ var _useUseCase62 = (0, _.useUseCase)(mathUseCase),
2542
+ subtraction = _useUseCase62.subtraction;
2477
2543
  var update = (0, _ahooks.useUpdate)();
2478
2544
  var onClick = function onClick() {
2479
2545
  update();
@@ -2496,8 +2562,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2496
2562
  (0, _globals.test)('reducer call should not be cached if component is not at rendering phase', function () {
2497
2563
  var buttonText = 'button';
2498
2564
  var CacheTestComponent = function CacheTestComponent() {
2499
- var _useUseCase61 = (0, _.useUseCase)(mathUseCase),
2500
- subtraction = _useUseCase61.subtraction;
2565
+ var _useUseCase63 = (0, _.useUseCase)(mathUseCase),
2566
+ subtraction = _useUseCase63.subtraction;
2501
2567
  var onClick = function onClick() {
2502
2568
  subtraction(5, 3);
2503
2569
  };
@@ -2525,8 +2591,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
2525
2591
  var count = 0;
2526
2592
  var buttonText = 'button';
2527
2593
  var StringUseCaseTestComponent = function StringUseCaseTestComponent() {
2528
- var _useUseCase62 = (0, _.useUseCase)(mathUseCase),
2529
- subtraction = _useUseCase62.subtraction;
2594
+ var _useUseCase64 = (0, _.useUseCase)(mathUseCase),
2595
+ subtraction = _useUseCase64.subtraction;
2530
2596
  var update = (0, _ahooks.useUpdate)();
2531
2597
  subtraction(5, count++);
2532
2598
  var onUpdate = function onUpdate() {
@@ -95,14 +95,12 @@ var valueUseCase = exports.valueUseCase = (0, _usecases.createUseCase)(function
95
95
  var hasOldField = hasField(oldValue, key);
96
96
  var hasNewField = hasField(newValue, key);
97
97
  if (hasOldField || hasNewField) {
98
- var oldFieldDescriptor = Object.getOwnPropertyDescriptor(hasOldField ? oldValue : {}, key) || {};
99
- var newFieldDescriptor = Object.getOwnPropertyDescriptor(hasNewField ? newValue : {}, key) || {};
100
- var oldSubValue = oldFieldDescriptor.value,
101
- oldFieldGet = oldFieldDescriptor.get,
102
- oldFieldSet = oldFieldDescriptor.set;
103
- var newSubValue = newFieldDescriptor.value,
104
- newFieldGet = newFieldDescriptor.get,
105
- newFieldSet = newFieldDescriptor.set;
98
+ var _ref3 = hasOldField ? [oldValue[key]] : [],
99
+ _ref4 = (0, _slicedToArray2["default"])(_ref3, 1),
100
+ oldSubValue = _ref4[0];
101
+ var _ref5 = hasNewField ? [newValue[key]] : [],
102
+ _ref6 = (0, _slicedToArray2["default"])(_ref5, 1),
103
+ newSubValue = _ref6[0];
106
104
  var result = {
107
105
  fieldPaths: [].concat((0, _toConsumableArray2["default"])(fieldPaths), [key]),
108
106
  newEntity: value,
@@ -115,16 +113,6 @@ var valueUseCase = exports.valueUseCase = (0, _usecases.createUseCase)(function
115
113
  list.push(result);
116
114
  continue;
117
115
  }
118
- var hasOldFieldGet = typeof oldFieldGet === 'function';
119
- var hasOldFieldSet = typeof oldFieldSet === 'function';
120
- var hasNewFieldGet = typeof newFieldGet === 'function';
121
- var hasNewFieldSet = typeof newFieldSet === 'function';
122
- var hasOldFieldAccessor = hasOldFieldGet || hasOldFieldSet;
123
- var hasNewFieldAccessor = hasNewFieldGet || hasNewFieldSet;
124
- // 如果都是访问器
125
- if (hasOldFieldAccessor && hasNewFieldAccessor) {
126
- continue;
127
- }
128
116
  if (newSubValue === oldSubValue) {
129
117
  continue;
130
118
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mic-rexjs/usecases-react",
3
- "version": "2.13.4",
3
+ "version": "2.13.6",
4
4
  "description": "React-based solution for use usecases of Clean Architecture",
5
5
  "private": false,
6
6
  "sideEffects": false,