@mic-rexjs/usecases-react 2.11.2 → 2.12.1

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.
Files changed (46) hide show
  1. package/dist/index.min.js +1 -1
  2. package/es/components/SafeUseCaseFragment/index.js +17 -7
  3. package/es/components/SafeUseCaseFragment/types.js +1 -1
  4. package/es/components/UseCaseFragment/index.js +16 -6
  5. package/es/components/UseCaseFragment/types.js +1 -1
  6. package/es/entities/matchPropertyFailedResult/types.js +1 -1
  7. package/es/enums/ArgumentTypes/index.js +3 -3
  8. package/es/enums/Statuses/index.js +22 -22
  9. package/es/hooks/useArgumentTypes/index.js +12 -10
  10. package/es/hooks/useConstant/index.js +7 -4
  11. package/es/hooks/useConstant/types.js +1 -1
  12. package/es/hooks/useConstantEntityReducers/index.js +4 -4
  13. package/es/hooks/useConstantFn/index.js +9 -6
  14. package/es/hooks/useConstantReducers/index.js +4 -4
  15. package/es/hooks/useContext/index.js +14 -11
  16. package/es/hooks/useContext/index.test.js +50 -44
  17. package/es/hooks/useContextualItem/index.js +27 -25
  18. package/es/hooks/useContextualItem/types.js +1 -1
  19. package/es/hooks/useDepsKey/index.js +9 -5
  20. package/es/hooks/useEntity/index.js +65 -61
  21. package/es/hooks/useFullArguments/index.js +12 -17
  22. package/es/hooks/useFullArguments/types.js +1 -1
  23. package/es/hooks/useIsRenderingRef/index.js +6 -6
  24. package/es/hooks/useProvider/index.js +21 -15
  25. package/es/hooks/useProvider/types.js +1 -1
  26. package/es/hooks/useRuntimeEntity/index.js +18 -16
  27. package/es/hooks/useStatuses/index.js +19 -19
  28. package/es/hooks/useUseCase/index.js +78 -57
  29. package/es/hooks/useUseCase/index.test.js +2402 -1701
  30. package/es/hooks/useUseCase/types.d.ts +11 -8
  31. package/es/hooks/useUseCase/types.js +1 -1
  32. package/es/index.js +1 -1
  33. package/es/methods/triggerWatchers/index.js +12 -7
  34. package/es/types.js +1 -1
  35. package/es/usecases/contextUseCase/index.js +70 -65
  36. package/es/usecases/contextUseCase/types.js +1 -1
  37. package/es/usecases/methodUseCase/index.js +69 -52
  38. package/es/usecases/methodUseCase/types.js +1 -1
  39. package/es/usecases/valueUseCase/index.js +175 -167
  40. package/es/usecases/valueUseCase/types.js +1 -1
  41. package/lib/components/UseCaseFragment/index.js +1 -1
  42. package/lib/hooks/useUseCase/index.js +5 -8
  43. package/lib/hooks/useUseCase/index.test.js +198 -104
  44. package/lib/methods/triggerWatchers/index.js +9 -7
  45. package/lib/usecases/valueUseCase/index.js +1 -1
  46. package/package.json +3 -3
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 l?o:l,c=Object.create(i.prototype);return n(c,"_invoke",function(t,n,o){var u,a,i,c=0,l=o||[],f=!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;!f&&c&&!o&&r<l.length;r++){var o,u=l[r],y=p.p,v=u[2];t>3?(o=v===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<v&&(o=t<3||u[0]>n||n>v)&&(u[4]=t,u[5]=n,p.n=v,a=0))}if(o||t>1)return s;throw f=!0,n}return function(o,l,v){if(c>1)throw TypeError("Generator is already running");for(f&&1===l&&y(l,v),a=l,i=v;(r=a<2?e:i)||!f;){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=(f=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:f}}}(t,u,a),!0),c}var s={};function l(){}function f(){}function p(){}r=Object.getPrototypeOf;var y=[][a]?r(r([][a]())):(n(r={},a,function(){return this}),r),v=p.prototype=l.prototype=Object.create(y);function d(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,n(t,i,"GeneratorFunction")),t.prototype=Object.create(v),t}return f.prototype=p,n(v,"constructor",p),n(p,"constructor",f),f.displayName="GeneratorFunction",n(p,i,"GeneratorFunction"),n(v),n(v,i,"Generator"),n(v,a,function(){return this}),n(v,"toString",function(){return"[object Generator]"}),(t.exports=o=function(){return{w:c,m:d}},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 l(){"use strict";var e=o(),r=e.m(l),f=(Object.getPrototypeOf?Object.getPrototypeOf(r):r.__proto__).constructor;function p(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===f||"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,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=l=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:i,async:function(t,e,r,n,o){return(p(e)?a:u)(v(t),e,r,n,o)},keys:c,values:s}},t.exports.__esModule=!0,t.exports.default=t.exports)()}t.exports=l,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:()=>D,useUseCase:()=>R});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){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.")}()}function s(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 l=React;var f,p=r.n(l),y=function(t){return s((0,l.useState)(t),1)[0]};!function(t){t[t.None=0]="None",t[t.Entity=2]="Entity"}(f||(f={}));var v=function(t){return s((0,l.useState)(function(){return t}),1)[0]},d=function(t,e){return y(function(){return t(e)})};const b=ahooks,h=usecases;var m;!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"}(m||(m={}));var x=(0,h.createUseCase)(function(){var t=new Map,e=(0,l.createContext)(null);return function(){return{createContextValue:function(t,e,r){return(r&m.EntityEnabled)===m.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,l.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}}}}),g=function(t,e,r){return y(function(){return(0,h.createEntityReducers)(t,e,r)})},O=r(756),E=r.n(O);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 j(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 C=(0,h.createUseCase)(function(){return function(){var e=(0,h.utilsUseCase)().createKey,r=e(),n=(0,h.entityUseCase)(),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,l=[].concat(i,c),f="function"==typeof n,p=0,y=l.length;p<y;p++){var v=l[p],d=p>=s,b=i.includes(v);if(!d||!b){var h=Object.hasOwn(e,v),m=Object.hasOwn(r,v),x=h&&!m||!h&&m,g=e[v],O=r[v];if(x||g!==O){if(a=!1,!f)break;n(v,O,g)}}}return a},i=E().mark(function t(e,r){return E().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)}),l=E().mark(function t(e,r){var n,o,u,i,c,s;return E().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=E().mark(function t(e,r){return E().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)}),p=E().mark(function t(n,o,u){return E().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(f(n,o),"t0",1);case 1:return t.t0||(r=null!=u?u:e()),t.abrupt("return",r);case 2:case"end":return t.stop()}},t)});return j(j({},n),{},{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 l=i.shift(),f=l.oldValue,p=l.newValue,y=l.fieldPaths,v=s(a.match(/^([^.]+)\.(.+)$/)||[],3),d=v[1],b=void 0===d?a:d,h=v[2],m=void 0===h?"":h,x=o(f,b),g=o(p,b);if(x||g){var O=x?f[b]:void 0,E=g?p[b]:void 0,w={fieldPaths:[].concat(c(y),[b]),newEntity:e,newValue:E,oldEntity:t,oldValue:O};if(m){a=m,i.push(w);continue}if(O===E)continue;u=!1,null==n||n(w)}else if(!/^\d+^/.test(b))for(var j=Array.isArray(f)?f:[],C=Array.isArray(p)?p:[],S=j.length,P=C.length,_=Math.max(S,P),M=0;M<_;M++)i.push({fieldPaths:[].concat(c(y),["".concat(M)]),newEntity:e,newValue:C[M],oldEntity:t,oldValue:j[M]})}while(i.length>0);return u},recordValue:i,recordValueDiff:l,recordValueMatch:f,recordValueMatchWith:p})}}),S=function(){var t=C().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,l=i.returnValue;if(c(s,o))return l}var f=e.apply(void 0,o);return t&&(n={parameters:o,returnValue:f}),f}};return{cacheCall:e,cacheCalls:function(t,r){var n={};return Object.entries(t).forEach(function(t){var o=s(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}}},P=function(t,e,r){var n,o=s((0,g(n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],C).recordValueMatchWith)(n),2)[1],u=(0,b.useLatest)(r),a=d(S).cacheCall,i=(0,b.useMemoizedFn)(function(){var t=u.current;return a(t,{onCompare:function(){return!0}})}),c=(0,b.useCreation)(function(){return i()},[o,i]);return(0,b.useCreation)(function(){return(e&m.RootEnabled)!==m.RootEnabled&&t?t:c()},[e,t,c])},_=["watch","onChange","options"];function M(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 k(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?M(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):M(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var R=function(){for(var e,r=(e=(0,b.useLatest)(!0),(0,l.useEffect)(function(){e.current=!1}),e),n=arguments.length,u=new Array(n),a=0;a<n;a++)u[a]=arguments[a];var i=function(e){return y(function(){return"function"===t(s(e,2)[1])?f.Entity:f.None})}(u),O=function(t,e){var r=s(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||[]]}(u,i),E=s(O,4),w=E[0],j=E[1],M=E[2],R=E[3],V=v(j),A=V,N=V,U=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f.None,r=y(function(){return(0,x().registerUseCase)(t,e)});return(0,b.useUnmount)(function(){(0,x().unregisterUseCase)(t,e)}),r}(V,i),D=(0,l.useContext)(U),T=D,F=function(t,e){return(0,b.useCreation)(function(){var r=m.None,n=(e||{}).store;return(t&f.Entity)===f.Entity&&(r|=m.EntityRootEnabled),r|=e?m.ContextEnabled:m.RootEnabled,n&&(r|=m.EntityEnabled),r},[t,e])}(i,D),G=(0,b.useLatest)(M),I=(D||{}).reducers,L=void 0===I?null:I,$=(T||{}).store,z=s(function(t,e,r,n,o){var u=(0,b.useUpdate)(),a=(0,l.useRef)(null),i=(0,b.useLatest)(n),c=r?r.value:null,f=(t&m.EntityEnabled)===m.EntityEnabled,p=(t&m.EntityRootEnabled)===m.EntityRootEnabled,y=g(o,C).recordValueDiff,v=P(r,t,function(){var t;if(p){var r="function"==typeof e,n=(a.current||{}).value,u=s(y(o),2)[1],i=r?e(n,u):e;t=new h.EntityStore(i)}else t=new h.EntityStore(null);return a.current=t,t},o),d=function(t,e,r,n){var o=g(e,C),u=o.isValueChanged,a=o.recordValue,i=u(e);if((n&m.EntityRootEnabled)!==m.EntityRootEnabled)return r;var c="function"==typeof e,s=t.value;switch(!0){case c:case!i:return s}return a(e),e}(v,e,c,t),x=(0,b.useMemoizedFn)(function(t,e){var r=i.current,n=r.onChange,o=r.watch;o&&function(t,e,r){for(var n=C().matchProperty,o=function(){var t=s(a[u],2),o=t[0],i=t[1];n(r,e,o,function(t){i(t)})},u=0,a=Object.entries(t);u<a.length;u++)o()}(o,t,e),null==n||n(t,e),p&&u()});return p&&v.setValue(d,!0),(0,b.useCreation)(function(){f&&v.watch(x)},[f,v,x]),(0,l.useEffect)(function(){return function(){v.unwatch(x)}},[f,v,x]),(0,b.useCreation)(function(){return[d,v]},[d,v])}(F,w,void 0===$?null:$,M,R),2),W=z[0],Y=z[1],K=d(S),q=K.cacheCalls,B=K.captureCalls,H=P(L,F,function(){var t=B(M,function(t,e){var r,n;return null===(r=(n=G.current)[t])||void 0===r?void 0:r.call.apply(r,[n].concat(c(e)))});if((F&m.EntityEnabled)!==m.EntityEnabled)return A(t);var e=t,r=(e.watch,e.onChange,e.options),n=o(e,_);return(0,h.createEntityReducers)(Y,N,k(k(k({},n),r),{},{onGenerate:function(t,e){return e}}))},R),J=function(t,e,r,n){var o=r.value,u=(0,b.useCreation)(function(){return(0,x().createContextValue)(r,n,t)},[t,o,r,n]),a=(0,b.useLatest)(u);return v(function(t){var r=t.children,n=t.with,o=void 0===n?[]:n,u=e.Provider,i=a.current;return p().createElement(u,{value:i},o.reduceRight(function(t,e){return p().createElement(e,{},t)},r))})}(F,U,Y,H);return(0,b.useCreation)(function(){if((F&m.EntityEnabled)!==m.EntityEnabled)return H;var e=(F&m.RootEnabled)===m.RootEnabled,n=q(H,{onShouldCache:function(){return r.current}}),o=null===W,u=Array.isArray(W),a="object"!==t(W)||o||u?W:k({},W);return e?[a,n,J]:[a,n]},[F,W,H,J,r,q])},V=function(t){var e=t.usecase,r=t.watch,n=t.onMount,o=t.onChange,a=s(R(e,{watch:r,onChange:o}),1)[0];return(0,b.useMount)(function(){null==n||n(a)}),(0,u.jsx)(l.Fragment,{})},A=["usecase"];function N(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 U(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?N(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):N(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var D=function(t){var e=t.usecase,r=o(t,A),n=(0,R(x).getUseCaseContext)(e),a=(0,l.useContext)(n);return(0,u.jsx)(l.Fragment,{children:null===a?null:(0,u.jsx)(V,U({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,v=u[2];t>3?(o=v===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<v&&(o=t<3||u[0]>n||n>v)&&(u[4]=t,u[5]=n,p.n=v,a=0))}if(o||t>1)return s;throw l=!0,n}return function(o,f,v){if(c>1)throw TypeError("Generator is already running");for(l&&1===f&&y(f,v),a=f,i=v;(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),v=p.prototype=f.prototype=Object.create(y);function d(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,n(t,i,"GeneratorFunction")),t.prototype=Object.create(v),t}return l.prototype=p,n(v,"constructor",p),n(p,"constructor",l),l.displayName="GeneratorFunction",n(p,i,"GeneratorFunction"),n(v),n(v,i,"Generator"),n(v,a,function(){return this}),n(v,"toString",function(){return"[object Generator]"}),(t.exports=o=function(){return{w:c,m:d}},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 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,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(v(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)(v(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:()=>D,useUseCase:()=>V});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){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.")}()}function s(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 f=React;var l,p=r.n(f),y=function(t){return s((0,f.useState)(t),1)[0]};!function(t){t[t.None=0]="None",t[t.Entity=2]="Entity"}(l||(l={}));var v=function(t){return s((0,f.useState)(function(){return t}),1)[0]},d=function(t,e){return y(function(){return t(e)})};const b=ahooks,h=usecases;var m;!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"}(m||(m={}));var x=(0,h.createUseCase)(function(){var t=new Map,e=(0,f.createContext)(null);return function(){return{createContextValue:function(t,e,r){return(r&m.EntityEnabled)===m.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&l.Entity)!==l.Entity)return e;var i=(0,f.createContext)(null);return t.set(r,{value:i,times:1}),i},unregisterUseCase:function(e,r){if((r&l.Entity)!==l.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}}}}),g=function(t,e,r){return y(function(){return(0,h.createEntityReducers)(t,e,r)})},O=r(756),E=r.n(O);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 j(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 C=(0,h.createUseCase)(function(){return function(){var e=(0,h.utilsUseCase)().createKey,r=e(),n=(0,h.entityUseCase)(),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 v=f[p],d=p>=s,b=i.includes(v);if(!d||!b){var h=Object.hasOwn(e,v),m=Object.hasOwn(r,v),x=h&&!m||!h&&m,g=e[v],O=r[v];if(x||g!==O){if(a=!1,!l)break;n(v,O,g)}}}return a},i=E().mark(function t(e,r){return E().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=E().mark(function t(e,r){var n,o,u,i,c,s;return E().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)}),l=E().mark(function t(e,r){return E().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)}),p=E().mark(function t(n,o,u){return E().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(l(n,o),"t0",1);case 1:return t.t0||(r=null!=u?u:e()),t.abrupt("return",r);case 2:case"end":return t.stop()}},t)});return j(j({},n),{},{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(),l=f.oldValue,p=f.newValue,y=f.fieldPaths,v=s(a.match(/^([^.]+)\.(.+)$/)||[],3),d=v[1],b=void 0===d?a:d,h=v[2],m=void 0===h?"":h,x=o(l,b),g=o(p,b);if(x||g){var O=x?l[b]:void 0,E=g?p[b]:void 0,w={fieldPaths:[].concat(c(y),[b]),newEntity:e,newValue:E,oldEntity:t,oldValue:O};if(m){a=m,i.push(w);continue}if(O===E)continue;u=!1,null==n||n(w)}else if(!/^\d+^/.test(b))for(var j=Array.isArray(l)?l:[],C=Array.isArray(p)?p:[],S=j.length,P=C.length,_=Math.max(S,P),M=0;M<_;M++)i.push({fieldPaths:[].concat(c(y),["".concat(M)]),newEntity:e,newValue:C[M],oldEntity:t,oldValue:j[M]})}while(i.length>0);return u},recordValue:i,recordValueDiff:f,recordValueMatch:l,recordValueMatchWith:p})}}),S=function(){var t=C().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=s(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}}},P=function(t,e,r){var n,o=s((0,g(n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],C).recordValueMatchWith)(n),2)[1],u=(0,b.useLatest)(r),a=d(S).cacheCall,i=(0,b.useMemoizedFn)(function(){var t=u.current;return a(t,{onCompare:function(){return!0}})}),c=(0,b.useCreation)(function(){return i()},[o,i]);return(0,b.useCreation)(function(){return(e&m.RootEnabled)!==m.RootEnabled&&t?t:c()},[e,t,c])};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"],V=function(){for(var e,r=(e=(0,b.useLatest)(!0),(0,f.useEffect)(function(){e.current=!1}),e),n=arguments.length,u=new Array(n),a=0;a<n;a++)u[a]=arguments[a];var i=function(e){return y(function(){return"function"===t(s(e,2)[1])?l.Entity:l.None})}(u),O=function(t,e){var r=s(t,4),n=r[0],o=r[1],u=r[2],a=r[3];return(e&l.Entity)!==l.Entity?[null,n,o||{},u||[]]:[n,o,u||{},a||[]]}(u,i),E=s(O,4),w=E[0],j=E[1],_=E[2],V=E[3],A=v(j),R=A,N=A,U=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.None,r=y(function(){return(0,x().registerUseCase)(t,e)});return(0,b.useUnmount)(function(){(0,x().unregisterUseCase)(t,e)}),r}(A,i),D=(0,f.useContext)(U),T=D,F=function(t,e){return(0,b.useCreation)(function(){var r=m.None,n=(e||{}).store;return(t&l.Entity)===l.Entity&&(r|=m.EntityRootEnabled),r|=e?m.ContextEnabled:m.RootEnabled,n&&(r|=m.EntityEnabled),r},[t,e])}(i,D),G=(0,b.useLatest)(_),I=(D||{}).reducers,L=void 0===I?null:I,$=(T||{}).store,z=s(function(t,e,r,n,o){var u=(0,b.useUpdate)(),a=(0,f.useRef)(null),i=(0,b.useLatest)(n),c=r?r.value:null,l=(t&m.EntityEnabled)===m.EntityEnabled,p=(t&m.EntityRootEnabled)===m.EntityRootEnabled,y=g(o,C).recordValueDiff,v=P(r,t,function(){var t;if(p){var r="function"==typeof e,n=(a.current||{}).value,u=s(y(o),2)[1],i=r?e(n,u):e;t=new h.EntityStore(i)}else t=new h.EntityStore(null);return a.current=t,t},o),d=function(t,e,r,n){var o=g(e,C),u=o.isValueChanged,a=o.recordValue,i=u(e);if((n&m.EntityRootEnabled)!==m.EntityRootEnabled)return r;var c="function"==typeof e,s=t.value;switch(!0){case c:case!i:return s}return a(e),e}(v,e,c,t),x=(0,b.useMemoizedFn)(function(t,e){var r=i.current,n=r.onChange,o=r.watch;o&&function(t,e,r){for(var n,o=C().matchProperty,u=function(){var t=i[a],u=(n=s(t,2))[0],c=n[1];o(r,e,u,function(t){c(t)})},a=0,i=Object.entries(t);a<i.length;a++)u()}(o,t,e),null==n||n(t,e),p&&u()});return p&&v.setValue(d,!0),(0,b.useCreation)(function(){l&&v.watch(x)},[l,v,x]),(0,f.useEffect)(function(){return function(){v.unwatch(x)}},[l,v,x]),(0,b.useCreation)(function(){return[d,v]},[d,v])}(F,w,void 0===$?null:$,_,V),2),W=z[0],Y=z[1],K=d(S),q=K.cacheCalls,B=K.captureCalls,H=P(L,F,function(){var t=B(_,function(t,e){var r,n,o;return null===(n=(o=G.current)[t])||void 0===n?void 0:(r=n).call.apply(r,[o].concat(c(e)))});if((F&m.EntityEnabled)!==m.EntityEnabled)return R(t);var e=t,r=(e.watch,e.onChange,e.options),n=o(e,k);return(0,h.createEntityReducers)(Y,N,M(M(M({},n),r),{},{onGenerate:function(t,e){return e}}))},V),J=function(t,e,r,n){var o=r.value,u=(0,b.useCreation)(function(){return(0,x().createContextValue)(r,n,t)},[t,o,r,n]),a=(0,b.useLatest)(u);return v(function(t){var r=t.children,n=t.with,o=void 0===n?[]:n,u=e.Provider,i=a.current;return p().createElement(u,{value:i},o.reduceRight(function(t,e){return p().createElement(e,{},t)},r))})}(F,U,Y,H);return(0,b.useCreation)(function(){if((F&m.EntityEnabled)!==m.EntityEnabled)return H;var e=q(H,{onShouldCache:function(){return r.current}}),n=null===W,o=Array.isArray(W);return["object"!==t(W)||n||o?W:M({},W),e,J]},[F,W,H,J,r,q])},A=function(t){var e=t.usecase,r=t.watch,n=t.onMount,o=t.onChange,a=s(V(e,{watch:r,onChange:o}),1)[0];return(0,b.useMount)(function(){null==n||n(a)}),(0,u.jsx)(f.Fragment,{})};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 N(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 U=["usecase"],D=function(t){var e=t.usecase,r=o(t,U),n=(0,V(x).getUseCaseContext)(e),a=(0,f.useContext)(n);return(0,u.jsx)(f.Fragment,{children:null===a?null:(0,u.jsx)(A,N({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,11 +1,21 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import { jsx as _jsx } from "react/jsx-runtime";
2
3
  import { useUseCase } from '../../hooks/useUseCase';
3
4
  import { useMount } from 'ahooks';
4
5
  import { Fragment } from 'react';
5
- export const SafeUseCaseFragment = ({ usecase, watch, onMount, onChange, }) => {
6
- const [entity] = useUseCase(usecase, { watch, onChange });
7
- useMount(() => {
8
- onMount?.(entity);
9
- });
10
- return _jsx(Fragment, {});
11
- };
6
+ export const SafeUseCaseFragment = _ref => {
7
+ let usecase = _ref.usecase,
8
+ watch = _ref.watch,
9
+ onMount = _ref.onMount,
10
+ onChange = _ref.onChange;
11
+ const _useUseCase = useUseCase(usecase, {
12
+ watch,
13
+ onChange
14
+ }),
15
+ _useUseCase2 = _slicedToArray(_useUseCase, 1),
16
+ entity = _useUseCase2[0];
17
+ useMount(() => {
18
+ onMount === null || onMount === void 0 || onMount(entity);
19
+ });
20
+ return _jsx(Fragment, {});
21
+ };
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,11 +1,21 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
+ const _excluded = ["usecase"];
1
3
  import { jsx as _jsx } from "react/jsx-runtime";
2
4
  import { useUseCase } from '../../hooks/useUseCase';
3
5
  import { SafeUseCaseFragment } from '../SafeUseCaseFragment';
4
6
  import { Fragment, useContext } from 'react';
5
7
  import { contextUseCase } from '../../usecases/contextUseCase';
6
- export const UseCaseFragment = ({ usecase, ...props }) => {
7
- const { getUseCaseContext } = useUseCase(contextUseCase);
8
- const context = getUseCaseContext(usecase);
9
- const contextValue = useContext(context);
10
- return _jsx(Fragment, { children: contextValue === null ? null : _jsx(SafeUseCaseFragment, { usecase: usecase, ...props }) });
11
- };
8
+ export const UseCaseFragment = _ref => {
9
+ let usecase = _ref.usecase,
10
+ props = _objectWithoutProperties(_ref, _excluded);
11
+ const _useUseCase = useUseCase(contextUseCase),
12
+ getUseCaseContext = _useUseCase.getUseCaseContext;
13
+ const context = getUseCaseContext(usecase);
14
+ const contextValue = useContext(context);
15
+ return _jsx(Fragment, {
16
+ children: contextValue === null ? null : _jsx(SafeUseCaseFragment, {
17
+ usecase: usecase,
18
+ ...props
19
+ })
20
+ });
21
+ };
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,5 +1,5 @@
1
1
  export var ArgumentTypes;
2
2
  (function (ArgumentTypes) {
3
- ArgumentTypes[ArgumentTypes["None"] = 0] = "None";
4
- ArgumentTypes[ArgumentTypes["Entity"] = 2] = "Entity";
5
- })(ArgumentTypes || (ArgumentTypes = {}));
3
+ ArgumentTypes[ArgumentTypes["None"] = 0] = "None";
4
+ ArgumentTypes[ArgumentTypes["Entity"] = 2] = "Entity";
5
+ })(ArgumentTypes || (ArgumentTypes = {}));
@@ -1,24 +1,24 @@
1
1
  export var Statuses;
2
2
  (function (Statuses) {
3
- Statuses[Statuses["None"] = 0] = "None";
4
- /**
5
- * 是否需要初始化根 `redurcers`
6
- */
7
- Statuses[Statuses["RootEnabled"] = 2] = "RootEnabled";
8
- /**
9
- * 是否为上下文模式
10
- */
11
- Statuses[Statuses["ContextEnabled"] = 4] = "ContextEnabled";
12
- /**
13
- * 是否有 `entity`
14
- */
15
- Statuses[Statuses["EntityEnabled"] = 8] = "EntityEnabled";
16
- /**
17
- * 是否为需要提供 `Provider` 去挂载根 `context`
18
- */
19
- Statuses[Statuses["ContextRootEnabled"] = 6] = "ContextRootEnabled";
20
- /**
21
- * 是否初始化与 `entity` 相关的 `reducers`
22
- */
23
- Statuses[Statuses["EntityRootEnabled"] = 14] = "EntityRootEnabled";
24
- })(Statuses || (Statuses = {}));
3
+ Statuses[Statuses["None"] = 0] = "None";
4
+ /**
5
+ * 是否需要初始化根 `redurcers`
6
+ */
7
+ Statuses[Statuses["RootEnabled"] = 2] = "RootEnabled";
8
+ /**
9
+ * 是否为上下文模式
10
+ */
11
+ Statuses[Statuses["ContextEnabled"] = 4] = "ContextEnabled";
12
+ /**
13
+ * 是否有 `entity`
14
+ */
15
+ Statuses[Statuses["EntityEnabled"] = 8] = "EntityEnabled";
16
+ /**
17
+ * 是否为需要提供 `Provider` 去挂载根 `context`
18
+ */
19
+ Statuses[Statuses["ContextRootEnabled"] = 6] = "ContextRootEnabled";
20
+ /**
21
+ * 是否初始化与 `entity` 相关的 `reducers`
22
+ */
23
+ Statuses[Statuses["EntityRootEnabled"] = 14] = "EntityRootEnabled";
24
+ })(Statuses || (Statuses = {}));
@@ -1,12 +1,14 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import { useConstant } from '../useConstant';
2
3
  import { ArgumentTypes } from '../../enums/ArgumentTypes';
3
- export const useArgumentTypes = (args) => {
4
- return useConstant(() => {
5
- const [, arg2] = args;
6
- const type2 = typeof arg2;
7
- if (type2 === 'function') {
8
- return ArgumentTypes.Entity;
9
- }
10
- return ArgumentTypes.None;
11
- });
12
- };
4
+ export const useArgumentTypes = args => {
5
+ return useConstant(() => {
6
+ const _args = _slicedToArray(args, 2),
7
+ arg2 = _args[1];
8
+ const type2 = typeof arg2;
9
+ if (type2 === 'function') {
10
+ return ArgumentTypes.Entity;
11
+ }
12
+ return ArgumentTypes.None;
13
+ });
14
+ };
@@ -1,5 +1,8 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import { useState } from 'react';
2
- export const useConstant = (initialValue) => {
3
- const [value] = useState(initialValue);
4
- return value;
5
- };
3
+ export const useConstant = initialValue => {
4
+ const _useState = useState(initialValue),
5
+ _useState2 = _slicedToArray(_useState, 1),
6
+ value = _useState2[0];
7
+ return value;
8
+ };
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,7 +1,7 @@
1
1
  import { useConstant } from '../useConstant';
2
2
  import { createEntityReducers } from '@mic-rexjs/usecases';
3
3
  export const useConstantEntityReducers = (initailEntity, usecase, options) => {
4
- return useConstant(() => {
5
- return createEntityReducers(initailEntity, usecase, options);
6
- });
7
- };
4
+ return useConstant(() => {
5
+ return createEntityReducers(initailEntity, usecase, options);
6
+ });
7
+ };
@@ -1,7 +1,10 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import { useState } from 'react';
2
- export const useConstantFn = (initialValue) => {
3
- const [value] = useState(() => {
4
- return initialValue;
5
- });
6
- return value;
7
- };
3
+ export const useConstantFn = initialValue => {
4
+ const _useState = useState(() => {
5
+ return initialValue;
6
+ }),
7
+ _useState2 = _slicedToArray(_useState, 1),
8
+ value = _useState2[0];
9
+ return value;
10
+ };
@@ -1,6 +1,6 @@
1
1
  import { useConstant } from '../useConstant';
2
2
  export const useConstantReducers = (usecase, options) => {
3
- return useConstant(() => {
4
- return usecase(options);
5
- });
6
- };
3
+ return useConstant(() => {
4
+ return usecase(options);
5
+ });
6
+ };
@@ -2,14 +2,17 @@ import { useConstant } from '../useConstant';
2
2
  import { useUnmount } from 'ahooks';
3
3
  import { ArgumentTypes } from '../../enums/ArgumentTypes';
4
4
  import { contextUseCase } from '../../usecases/contextUseCase';
5
- export const useContext = (usecase, argumentTypes = ArgumentTypes.None) => {
6
- const context = useConstant(() => {
7
- const { registerUseCase } = contextUseCase();
8
- return registerUseCase(usecase, argumentTypes);
9
- });
10
- useUnmount(() => {
11
- const { unregisterUseCase } = contextUseCase();
12
- unregisterUseCase(usecase, argumentTypes);
13
- });
14
- return context;
15
- };
5
+ export const useContext = function (usecase) {
6
+ let argumentTypes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ArgumentTypes.None;
7
+ const context = useConstant(() => {
8
+ const _contextUseCase = contextUseCase(),
9
+ registerUseCase = _contextUseCase.registerUseCase;
10
+ return registerUseCase(usecase, argumentTypes);
11
+ });
12
+ useUnmount(() => {
13
+ const _contextUseCase2 = contextUseCase(),
14
+ unregisterUseCase = _contextUseCase2.unregisterUseCase;
15
+ unregisterUseCase(usecase, argumentTypes);
16
+ });
17
+ return context;
18
+ };
@@ -4,49 +4,55 @@ import { renderHook } from '@testing-library/react';
4
4
  import { useContext as useReactContext } from 'react';
5
5
  import { ArgumentTypes } from '../../enums/ArgumentTypes';
6
6
  const testUseCase = () => {
7
- return {};
7
+ return {};
8
8
  };
9
9
  describe('useContext', () => {
10
- test('should return the default context with value `null` if map has not saved a usecase with default args', () => {
11
- const { result } = renderHook(() => {
12
- const context = useContext(testUseCase);
13
- const value = useReactContext(context);
14
- return value;
15
- });
16
- const { current } = result;
17
- expect(current).toBe(null);
18
- });
19
- test('should return the default context with value `null` if map has not saved a usecase with `ArgumentTypes.None` & `UseCaseModes.Normal`', () => {
20
- const { result } = renderHook(() => {
21
- const context = useContext(testUseCase, ArgumentTypes.None);
22
- const value = useReactContext(context);
23
- return value;
24
- });
25
- const { current } = result;
26
- expect(current).toBe(null);
27
- });
28
- test('should return the default context with value `null` as unmount this hook', () => {
29
- const { result: result1, unmount: unmount1 } = renderHook(() => {
30
- const context = useContext(testUseCase, ArgumentTypes.None);
31
- const value = useReactContext(context);
32
- return value;
33
- });
34
- const { current: current1 } = result1;
35
- expect(typeof current1).toBe('object');
36
- unmount1();
37
- const { result: result2 } = renderHook(() => {
38
- const context = useContext(testUseCase, ArgumentTypes.None);
39
- const value = useReactContext(context);
40
- return value;
41
- });
42
- const { current: current2 } = result2;
43
- expect(current2).toBe(null);
44
- });
45
- test('should return a new context if map has not saved a usecase with `ArgumentTypes.Entity` & `UseCaseModes.Normal`', () => {
46
- const { result } = renderHook(() => {
47
- return useContext(testUseCase, ArgumentTypes.Entity);
48
- });
49
- const { current } = result;
50
- expect(typeof current).toBe('object');
51
- });
52
- });
10
+ test('should return the default context with value `null` if map has not saved a usecase with default args', () => {
11
+ const _renderHook = renderHook(() => {
12
+ const context = useContext(testUseCase);
13
+ const value = useReactContext(context);
14
+ return value;
15
+ }),
16
+ result = _renderHook.result;
17
+ const current = result.current;
18
+ expect(current).toBe(null);
19
+ });
20
+ test('should return the default context with value `null` if map has not saved a usecase with `ArgumentTypes.None` & `UseCaseModes.Normal`', () => {
21
+ const _renderHook2 = renderHook(() => {
22
+ const context = useContext(testUseCase, ArgumentTypes.None);
23
+ const value = useReactContext(context);
24
+ return value;
25
+ }),
26
+ result = _renderHook2.result;
27
+ const current = result.current;
28
+ expect(current).toBe(null);
29
+ });
30
+ test('should return the default context with value `null` as unmount this hook', () => {
31
+ const _renderHook3 = renderHook(() => {
32
+ const context = useContext(testUseCase, ArgumentTypes.None);
33
+ const value = useReactContext(context);
34
+ return value;
35
+ }),
36
+ result1 = _renderHook3.result,
37
+ unmount1 = _renderHook3.unmount;
38
+ const current1 = result1.current;
39
+ expect(typeof current1).toBe('object');
40
+ unmount1();
41
+ const _renderHook4 = renderHook(() => {
42
+ const context = useContext(testUseCase, ArgumentTypes.None);
43
+ const value = useReactContext(context);
44
+ return value;
45
+ }),
46
+ result2 = _renderHook4.result;
47
+ const current2 = result2.current;
48
+ expect(current2).toBe(null);
49
+ });
50
+ test('should return a new context if map has not saved a usecase with `ArgumentTypes.Entity` & `UseCaseModes.Normal`', () => {
51
+ const _renderHook5 = renderHook(() => {
52
+ return useContext(testUseCase, ArgumentTypes.Entity);
53
+ }),
54
+ result = _renderHook5.result;
55
+ const current = result.current;
56
+ expect(typeof current).toBe('object');
57
+ });
58
+ });
@@ -3,29 +3,31 @@ import { useDepsKey } from '../useDepsKey';
3
3
  import { useCreation, useLatest, useMemoizedFn } from 'ahooks';
4
4
  import { Statuses } from '../../enums/Statuses';
5
5
  import { methodUseCase } from '../../usecases/methodUseCase';
6
- export const useContextualItem = (contextItem, statuses, createFactory, deps = []) => {
7
- const depsKey = useDepsKey(deps);
8
- const factoryRef = useLatest(createFactory);
9
- const { cacheCall } = useConstantReducers(methodUseCase);
10
- const onCache = useMemoizedFn(() => {
11
- const { current: currentFactory } = factoryRef;
12
- void depsKey;
13
- // 防止在以下 `onCreate()` 多次调用实际 `factory`
14
- return cacheCall(currentFactory, {
15
- onCompare() {
16
- return true;
17
- },
18
- });
6
+ export const useContextualItem = function (contextItem, statuses, createFactory) {
7
+ let deps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
8
+ const depsKey = useDepsKey(deps);
9
+ const factoryRef = useLatest(createFactory);
10
+ const _useConstantReducers = useConstantReducers(methodUseCase),
11
+ cacheCall = _useConstantReducers.cacheCall;
12
+ const onCache = useMemoizedFn(() => {
13
+ const currentFactory = factoryRef.current;
14
+ void depsKey;
15
+ // 防止在以下 `onCreate()` 多次调用实际 `factory`
16
+ return cacheCall(currentFactory, {
17
+ onCompare() {
18
+ return true;
19
+ }
19
20
  });
20
- const onCreate = useCreation(() => {
21
- void depsKey;
22
- return onCache();
23
- }, [depsKey, onCache]);
24
- return useCreation(() => {
25
- const rootEnabled = (statuses & Statuses.RootEnabled) === Statuses.RootEnabled;
26
- if (!rootEnabled && contextItem) {
27
- return contextItem;
28
- }
29
- return onCreate();
30
- }, [statuses, contextItem, onCreate]);
31
- };
21
+ });
22
+ const onCreate = useCreation(() => {
23
+ void depsKey;
24
+ return onCache();
25
+ }, [depsKey, onCache]);
26
+ return useCreation(() => {
27
+ const rootEnabled = (statuses & Statuses.RootEnabled) === Statuses.RootEnabled;
28
+ if (!rootEnabled && contextItem) {
29
+ return contextItem;
30
+ }
31
+ return onCreate();
32
+ }, [statuses, contextItem, onCreate]);
33
+ };
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,7 +1,11 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import { useConstantEntityReducers } from '../useConstantEntityReducers';
2
3
  import { valueUseCase } from '../../usecases/valueUseCase';
3
- export const useDepsKey = (deps) => {
4
- const { recordValueMatchWith } = useConstantEntityReducers(deps, (valueUseCase));
5
- const [, depsKey] = recordValueMatchWith(deps);
6
- return depsKey;
7
- };
4
+ export const useDepsKey = deps => {
5
+ const _useConstantEntityRed = useConstantEntityReducers(deps, valueUseCase),
6
+ recordValueMatchWith = _useConstantEntityRed.recordValueMatchWith;
7
+ const _recordValueMatchWith = recordValueMatchWith(deps),
8
+ _recordValueMatchWith2 = _slicedToArray(_recordValueMatchWith, 2),
9
+ depsKey = _recordValueMatchWith2[1];
10
+ return depsKey;
11
+ };