@mic-rexjs/usecases-react 4.0.0-beta.0 → 4.0.0-beta.4

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 (150) hide show
  1. package/dist/index.min.js +1 -1
  2. package/dist/index.min.js.LICENSE.txt +2 -0
  3. package/es/components/UseCaseFragment/index.js +2 -2
  4. package/es/enums/Statuses/index.d.ts +86 -10
  5. package/es/enums/Statuses/index.js +86 -10
  6. package/es/hooks/useAlternateStatuses/index.d.ts +2 -0
  7. package/es/hooks/useAlternateStatuses/index.js +16 -0
  8. package/es/hooks/useChanged/index.d.ts +2 -0
  9. package/es/hooks/useChanged/index.js +17 -0
  10. package/es/hooks/useChanged/types.d.ts +3 -0
  11. package/es/hooks/useContext/index.d.ts +3 -4
  12. package/es/hooks/useContext/index.js +17 -15
  13. package/es/hooks/useContext/index.test.js +13 -24
  14. package/es/hooks/useContextValue/index.d.ts +3 -4
  15. package/es/hooks/useContextValue/index.js +9 -16
  16. package/es/hooks/useDepsKey/index.js +11 -9
  17. package/es/hooks/useEntity/index.d.ts +3 -2
  18. package/es/hooks/useEntity/index.js +62 -59
  19. package/es/hooks/useEntityReturn/index.d.ts +5 -0
  20. package/es/hooks/useEntityReturn/index.js +15 -0
  21. package/es/hooks/useEntityReturn/types.d.ts +7 -0
  22. package/es/hooks/useEntityRootExec/index.d.ts +5 -0
  23. package/es/hooks/useEntityRootExec/index.js +7 -0
  24. package/es/hooks/useEntityRootExec/types.d.ts +7 -0
  25. package/es/hooks/useEntityRootReturn/index.d.ts +5 -0
  26. package/es/hooks/useEntityRootReturn/index.js +14 -0
  27. package/es/hooks/useEntityRootReturn/types.d.ts +7 -0
  28. package/es/hooks/useEntityRootReturn/types.js +1 -0
  29. package/es/hooks/useExec/index.d.ts +2 -3
  30. package/es/hooks/useExec/index.js +3 -25
  31. package/es/hooks/useExec/types.d.ts +7 -2
  32. package/es/hooks/useFullArguments/index.d.ts +2 -3
  33. package/es/hooks/useFullArguments/index.js +4 -6
  34. package/es/hooks/useIfExec/index.d.ts +2 -0
  35. package/es/hooks/useIfExec/index.js +20 -0
  36. package/es/hooks/useIfExec/types.d.ts +6 -0
  37. package/es/hooks/useIfExec/types.js +1 -0
  38. package/es/hooks/useIfReturn/index.d.ts +2 -0
  39. package/es/hooks/useIfReturn/index.js +22 -0
  40. package/es/hooks/useIfReturn/types.d.ts +6 -0
  41. package/es/hooks/useIfReturn/types.js +1 -0
  42. package/es/hooks/useProvider/index.d.ts +3 -3
  43. package/es/hooks/useProvider/index.js +15 -13
  44. package/es/hooks/useProviders/index.js +4 -4
  45. package/es/hooks/useReducers/index.d.ts +5 -4
  46. package/es/hooks/useReducers/index.js +47 -10
  47. package/es/hooks/useReturn/index.d.ts +2 -0
  48. package/es/hooks/useReturn/index.js +33 -0
  49. package/es/hooks/useReturn/types.d.ts +11 -0
  50. package/es/hooks/useReturn/types.js +1 -0
  51. package/es/hooks/useRootInitializing/index.d.ts +2 -0
  52. package/es/hooks/useRootInitializing/index.js +14 -0
  53. package/es/hooks/useRootReturn/index.d.ts +5 -0
  54. package/es/hooks/useRootReturn/index.js +22 -0
  55. package/es/hooks/useRootReturn/types.d.ts +14 -0
  56. package/es/hooks/useRootReturn/types.js +1 -0
  57. package/es/hooks/useStatuses/index.d.ts +4 -4
  58. package/es/hooks/useStatuses/index.js +46 -21
  59. package/es/hooks/useStore/index.d.ts +3 -3
  60. package/es/hooks/useStore/index.js +24 -47
  61. package/es/hooks/useThrottleUpdate/index.d.ts +2 -0
  62. package/es/hooks/useThrottleUpdate/index.js +31 -0
  63. package/es/hooks/useThrottleUpdate/types.d.ts +3 -0
  64. package/es/hooks/useThrottleUpdate/types.js +1 -0
  65. package/es/hooks/useUseCase/index.js +18 -27
  66. package/es/hooks/useUseCase/index.test.js +415 -236
  67. package/es/hooks/useUseCase/types.d.ts +13 -2
  68. package/es/types.d.ts +2 -1
  69. package/es/usecases/contextUseCase/index.js +21 -38
  70. package/es/usecases/contextUseCase/types.d.ts +6 -9
  71. package/es/usecases/lifecycleEventUseCase/index.js +37 -9
  72. package/es/usecases/lifecycleEventUseCase/types.d.ts +11 -8
  73. package/lib/components/UseCaseFragment/index.js +2 -2
  74. package/lib/enums/Statuses/index.js +86 -10
  75. package/lib/hooks/useAlternateStatuses/index.js +22 -0
  76. package/lib/hooks/useChanged/index.js +23 -0
  77. package/lib/hooks/useContext/index.js +19 -17
  78. package/lib/hooks/useContext/index.test.js +13 -24
  79. package/lib/hooks/useContextValue/index.js +8 -15
  80. package/lib/hooks/useDepsKey/index.js +10 -8
  81. package/lib/hooks/useEntity/index.js +93 -62
  82. package/lib/hooks/useEntityReturn/index.js +22 -0
  83. package/lib/hooks/useEntityRootExec/index.js +13 -0
  84. package/lib/hooks/useEntityRootReturn/index.js +21 -0
  85. package/lib/hooks/useEntityRootReturn/types.js +5 -0
  86. package/lib/hooks/useExec/index.js +3 -25
  87. package/lib/hooks/useFullArguments/index.js +4 -6
  88. package/lib/hooks/useIfExec/index.js +27 -0
  89. package/lib/hooks/useIfExec/types.js +5 -0
  90. package/lib/hooks/useIfReturn/index.js +29 -0
  91. package/lib/hooks/useIfReturn/types.js +5 -0
  92. package/lib/hooks/useProvider/index.js +15 -13
  93. package/lib/hooks/useProviders/index.js +3 -3
  94. package/lib/hooks/useReducers/index.js +50 -10
  95. package/lib/hooks/useReturn/index.js +40 -0
  96. package/lib/hooks/useReturn/types.js +5 -0
  97. package/lib/hooks/useRootInitializing/index.js +20 -0
  98. package/lib/hooks/useRootReturn/index.js +30 -0
  99. package/lib/hooks/useRootReturn/types.js +5 -0
  100. package/lib/hooks/useStatuses/index.js +47 -21
  101. package/lib/hooks/useStore/index.js +22 -46
  102. package/lib/hooks/useThrottleUpdate/index.js +37 -0
  103. package/lib/hooks/useThrottleUpdate/types.js +5 -0
  104. package/lib/hooks/useUseCase/index.js +18 -27
  105. package/lib/hooks/useUseCase/index.test.js +458 -280
  106. package/lib/usecases/contextUseCase/index.js +21 -38
  107. package/lib/usecases/lifecycleEventUseCase/index.js +48 -8
  108. package/package.json +1 -1
  109. package/es/classes/OptionsSet/index.d.ts +0 -6
  110. package/es/classes/OptionsSet/index.js +0 -44
  111. package/es/classes/OptionsSet/types.d.ts +0 -8
  112. package/es/enums/ArgumentTypes/index.d.ts +0 -4
  113. package/es/enums/ArgumentTypes/index.js +0 -5
  114. package/es/hooks/useArgumentTypes/index.d.ts +0 -3
  115. package/es/hooks/useArgumentTypes/index.js +0 -14
  116. package/es/hooks/useConstantEntityReducers/index.d.ts +0 -3
  117. package/es/hooks/useConstantEntityReducers/index.js +0 -7
  118. package/es/hooks/useConstantFn/index.d.ts +0 -1
  119. package/es/hooks/useConstantFn/index.js +0 -10
  120. package/es/hooks/useConstantReducers/index.d.ts +0 -3
  121. package/es/hooks/useConstantReducers/index.js +0 -6
  122. package/es/hooks/useContextualItem/index.d.ts +0 -4
  123. package/es/hooks/useContextualItem/index.js +0 -11
  124. package/es/hooks/useEntityInitializing/index.d.ts +0 -2
  125. package/es/hooks/useEntityInitializing/index.js +0 -16
  126. package/es/hooks/useOptions/index.d.ts +0 -5
  127. package/es/hooks/useOptions/index.js +0 -54
  128. package/es/hooks/useOptions/types.d.ts +0 -5
  129. package/es/hooks/useOptionsSet/index.d.ts +0 -5
  130. package/es/hooks/useOptionsSet/index.js +0 -16
  131. package/es/hooks/useRootCreation/index.d.ts +0 -4
  132. package/es/hooks/useRootCreation/index.js +0 -20
  133. package/es/hooks/useRootCreation/types.d.ts +0 -3
  134. package/lib/classes/OptionsSet/index.js +0 -94
  135. package/lib/enums/ArgumentTypes/index.js +0 -11
  136. package/lib/hooks/useArgumentTypes/index.js +0 -22
  137. package/lib/hooks/useConstantEntityReducers/index.js +0 -13
  138. package/lib/hooks/useConstantFn/index.js +0 -17
  139. package/lib/hooks/useConstantReducers/index.js +0 -12
  140. package/lib/hooks/useContextualItem/index.js +0 -17
  141. package/lib/hooks/useEntityInitializing/index.js +0 -22
  142. package/lib/hooks/useOptions/index.js +0 -61
  143. package/lib/hooks/useOptionsSet/index.js +0 -22
  144. package/lib/hooks/useRootCreation/index.js +0 -26
  145. /package/es/{classes/OptionsSet → hooks/useChanged}/types.js +0 -0
  146. /package/es/hooks/{useOptions → useEntityReturn}/types.js +0 -0
  147. /package/es/hooks/{useRootCreation → useEntityRootExec}/types.js +0 -0
  148. /package/lib/{classes/OptionsSet → hooks/useChanged}/types.js +0 -0
  149. /package/lib/hooks/{useOptions → useEntityReturn}/types.js +0 -0
  150. /package/lib/hooks/{useRootCreation → useEntityRootExec}/types.js +0 -0
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 n=Symbol.for("react.transitional.element");Symbol.for("react.fragment"),e.jsx=function(t,e,r){var o=null;if(void 0!==r&&(o=""+r),void 0!==e.key&&(o=""+e.key),"key"in e)for(var u in r={},e)"key"!==u&&(r[u]=e[u]);else r=e;return e=r.ref,{$$typeof:n,type:t,key:o,ref:void 0!==e?e:null,props:r}}},848(t,e,n){"use strict";t.exports=n(698)}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var u=e[r]={exports:{}};return t[r](u,u.exports,n),u.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var r={};(()=>{"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){var n=function(e){if("object"!=t(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=t(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==t(n)?n:n+""}function o(t,n,r){return(n=e(n))in t?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r,t}function u(t,e){if(null==t)return{};var n,r,o=function(t,e){if(null==t)return{};var n={};for(var r in t)if({}.hasOwnProperty.call(t,r)){if(-1!==e.indexOf(r))continue;n[r]=t[r]}return n}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r<u.length;r++)n=u[r],-1===e.indexOf(n)&&{}.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}n.r(r),n.d(r,{UseCaseFragment:()=>H,lifecycleUseCase:()=>Q,useProviders:()=>X,useUseCase:()=>K});var i=n(848);function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function c(t,e){if(t){if("string"==typeof t)return a(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(t,e):void 0}}function l(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,u,i,a=[],c=!0,l=!1;try{if(u=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=u.call(n)).done)&&(a.push(r.value),a.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw o}}return a}}(t,e)||c(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,y=n.n(f),p=function(t){return l((0,f.useState)(t),1)[0]};!function(t){t[t.None=0]="None",t[t.Entity=2]="Entity"}(s||(s={}));var v=function(t){return l((0,f.useState)(function(){return t}),1)[0]};const d=ahooks,b=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 E=(0,b.createUseCase)(function(){var t=new Map,e=(0,f.createContext)(null);return function(){return{createContextValue:function(t,e,n){return(n&h.EntityEnabled)===h.EntityEnabled?{store:t,reducers:e,statuses:n}:{reducers:e,statuses:n}},getUseCaseContext:function(n){return t.has(n)?t.get(n).value:e},registerUseCase:function(n,r){if(t.has(n)){var o=t.get(n),u=o.value,i=o.times;return t.set(n,{value:u,times:i+1}),u}if((r&s.Entity)!==s.Entity)return e;var a=(0,f.createContext)(null);return t.set(n,{value:a,times:1}),a},unregisterUseCase:function(e,n){if((n&s.Entity)!==s.Entity)return!1;if(!t.has(e))return!1;var r=t.get(e),o=r.value,u=r.times;return 1===u?t.delete(e):t.set(e,{value:o,times:u-1}),!0}}}}),O=function(t,e){return p(function(){return t(e)})};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)||c(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 m=function(){var e=function(e){return"object"===t(e)&&null!==e},n=function(t,n){return!!e(t)&&Object.hasOwn(t,n)};return{hasField:n,isObject:e,isEqual:function(t,r,o){if(t===r)return!0;var u=e(t),i=e(r),a=u?Object.keys(t):[],c=i?Object.keys(r):[],l="function"==typeof o;if(!u&&!i)return!1;for(var f=!0,s=a.length,y=[].concat(g(a),g(c)),p=0,v=y.length;p<v;p++){var d=y[p],b=a.includes(d);if(!(p>=s&&b)){var h=n(t,d),E=n(r,d),O=h?t[d]:void 0,m=E?r[d]:void 0;if(!h||!E||O!==m){if(f=!1,!l)break;o(d,m,O)}}}return f},matchProperty:function(t,e,r,o){var u=!0,i=r,a=[{fieldPaths:[],newEntity:e,newValue:e,oldEntity:t,oldValue:t}];do{var c=a.shift(),f=c.oldValue,s=c.newValue,y=c.fieldPaths,p=l(i.match(/^([^.]+)\.(.+)$/)||[],3),v=p[1],d=void 0===v?i:v,b=p[2],h=void 0===b?"":b,E=n(f,d),O=n(s,d);if(E||O){var m=l(E?[f[d]]:[],1)[0],w=l(O?[s[d]]:[],1)[0],j={fieldPaths:[].concat(g(y),[d]),newEntity:e,newValue:w,oldEntity:t,oldValue:m};if(h){i=h,a.push(j);continue}if(w===m)continue;u=!1,null==o||o(j)}else if(!/^\d+^/.test(d))for(var P=Array.isArray(f)?f:[],C=Array.isArray(s)?s:[],S=P.length,R=C.length,x=Math.max(S,R),A=0;A<x;A++)a.push({fieldPaths:[].concat(g(y),["".concat(A)]),newEntity:e,newValue:C[A],oldEntity:t,oldValue:P[A]})}while(a.length>0);return u}}},w=function(t){var e=(0,f.useRef)(0),n=(0,d.usePrevious)(t),r=(0,O(m).isEqual)(t,n);return(0,d.useMemoizedFn)(function(){var t=e.current;if(r)return t;var n=t+1;return e.current=n,n})()},j=function(t,e){var n=w(arguments.length>2&&void 0!==arguments[2]?arguments[2]:[t]),r=(0,f.useRef)(null),o=function(){var t,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];null===(t=r.current)||void 0===t||t.call(r,e)},u=(0,d.useMemoizedFn)(function(){return o(),r.current=e||null,t()});return(0,d.useUnmount)(function(){o(!0)}),(0,d.useCreation)(function(){return u()},[n,u])},P=function(t){var e=(0,f.useRef)(!0),n=(t&h.EntityRootEnabled)===h.EntityRootEnabled;return j(function(){if(!n)return e.current=!0,!1;var t=e.current;return e.current=!1,t})},C=(0,b.createUseCase)(function(){var t=new Map,e=null;return function(){return{deleteLifecycleEvents:function(e){return t.delete(e)},setLifecycleEvents:function(t){e=t},getLifecycleEvents:function(e){return t.get(e)||{}},bindLifecycleEventsKey:function(n){if(null===e)return{};var r=e;return e=null,t.set(n,r),r}}}}),S=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=w(arguments.length>3&&void 0!==arguments[3]?arguments[3]:[]),o=n?h.EntityRootEnabled:h.RootEnabled,u=(t&o)===o,i=(0,d.useMemoizedFn)(function(){return e()});return(0,d.useCreation)(function(){return u?i():null},[u,r,i])},R=["watch","onChange"];function x(t,n){for(var r=0;r<n.length;r++){var o=n[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,e(o.key),o)}}function A(t){return A=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},A(t)}function U(){return U="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,n){var r=function(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=A(t)););return t}(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(arguments.length<3?t:n):o.value}},U.apply(null,arguments)}function D(t,e){return D=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},D(t,e)}function M(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(M=function(){return!!t})()}function k(t){var e="function"==typeof Map?new Map:void 0;return k=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return function(t,e,n){if(M())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,e);var o=new(t.bind.apply(t,r));return n&&D(o,n.prototype),o}(t,arguments,A(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),D(n,t)},k(t)}function V(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function _(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_=function(){return!!t})()}function F(t,e,n){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:n;throw new TypeError("Private element is not present on this object")}var L=new WeakMap,T=function(e){function n(){var e,r,o,u;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),r=this,u=arguments,o=A(o=n),function(t,e,n){(function(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t,e),e.set(t,n)}(e=function(e,n){if(n&&("object"==t(n)||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(e)}(r,_()?Reflect.construct(o,u||[],A(r).constructor):o.apply(r,u)),L,null),e}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&D(t,e)}(n,e),r=n,o=[{key:"add",value:function(e,r){return"object"!==t(e)||(r&&(u=e,(o=L).set(F(o,this),u)),function(t,e,n){var r=U(A(t.prototype),"add",n);return"function"==typeof r?function(t){return r.apply(n,t)}:r}(n,0,this)([e])),this;var o,u}},{key:"apply",value:function(t,e,n){var r,o,u=(o=L).get(F(o,this)),i=(u||{})[t];"function"==typeof i&&(r=Reflect.apply(i,e,n));var a,c=function(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return V(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?V(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,o=function(){};return{s:o,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,i=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return i=t.done,t},e:function(t){a=!0,u=t},f:function(){try{i||null==n.return||n.return()}finally{if(a)throw u}}}}(this);try{for(c.s();!(a=c.n()).done;){var l=a.value;if(l!==u){var f=l[t];"function"==typeof f&&Reflect.apply(f,e,n)}}}catch(t){c.e(t)}finally{c.f()}return r}}],o&&x(r.prototype,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,o}(k(Set)),I=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=(e&h.RootEnabled)===h.RootEnabled,u=S(e,n,!1,r);return o?u:t};function z(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function B(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?z(Object(n),!0).forEach(function(e){o(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):z(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var N=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=(0,b.entityUseCase)(),n=t.onInit;return B(B({},e),{},{initEntity:function(t){return"function"!=typeof n?t:n(t)}})},$=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o="function"==typeof t,u=P(n),i=(0,f.useRef)([]),a=((0,f.useContext)(e)||{}).store,c=void 0===a?null:a,s=(n&h.EntityRootEnabled)===h.EntityRootEnabled,y=l((0,f.useState)(function(){return new b.EntityStore(void 0)}),1)[0],p=(0,d.usePrevious)(t,function(){return!0});return j(function(){switch(!0){case!s:case o:return;case u:return void y.initValue(t);case t===p:return}y.setValue(t)}),I(c,n,function(){return s&&o&&(e=i.current,i.current=function(t,e,n,r){var o=!1,u=0,i=[],a=m(),c=a.isObject,l=a.isEqual,f=function(e){return!r||o?e:t.initValue(e)},s=(0,b.createEntityReducers)(t,N,{onInit:function(t){return e(t)},onCreate:function(t,e){var r=u,o=c(e),a=o&&Array.isArray(e);if(u++,i[r]=t,!o||a)return(0,b.createEntity)(e,t);var f={},s=n[r];return l(s,t,function(e){var n=Object.getOwnPropertyDescriptor(t,e)||null;null!==n&&(f[e]=n)}),(0,b.createEntity)(e,Object.defineProperties({},f))},onGenerate:function(e,n){if(void 0===n)return[e,n];var r=(0,b.createEntity)(e,n);return t.setValue(r),[r,n]},onYield:function(t){return f(t)},onReturn:function(e){var n=f(e);return t.setValue(n),n}}).initEntity;return t.disableWatchers(),s(),t.enableWatchers(),o=!0,i}(y,t,e,u)),y;var e},r)};function q(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}var K=function(){for(var e,n=(e=(0,d.useLatest)(!0),(0,f.useEffect)(function(){e.current=!1}),e),r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];var c=function(e){return p(function(){return"function"===t(l(e,2)[1])?s.Entity:s.None})}(i),g=function(t,e){var n=l(t,4),r=n[0],o=n[1],u=n[2],i=n[3];return(e&s.Entity)!==s.Entity?[null,r,o||{},u||[]]:[r,o,u||{},i||[]]}(i,c),w=l(g,4),x=w[0],A=w[1],U=w[2],D=w[3],M=v(A),k=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s.None,n=p(function(){return(0,E().registerUseCase)(t,e)});return(0,d.useUnmount)(function(){(0,E().unregisterUseCase)(t,e)}),n}(M,c),V=k,_=function(t,e){var n=(0,f.useContext)(t);return(0,d.useCreation)(function(){var t=h.None,r=(n||{}).store;return(e&s.Entity)===s.Entity&&(t|=h.EntityRootEnabled),t|=n?h.ContextEnabled:h.RootEnabled,r&&(t|=h.EntityEnabled),t},[e,n])}(k,c),F=$(x,V,_,D),L=function(t,e){var n=((0,f.useContext)(t)||{}).optionsSet;return S(e,function(){return new T})||n}(V,_),z=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=(n&h.EntityEnabled)===h.EntityEnabled,i=(n&h.EntityRootEnabled)===h.EntityRootEnabled,a=t.watch,c=t.onChange,l=u(t,R),f=t.options,s=void 0===f?l:f,y=o?{watch:a,onChange:c}:{},p=function(t,n,r){return"string"==typeof n&&/^on[A-Z]/.test(n)?function(t){return new Proxy(function(){},{apply:function(n,r,o){return e.apply(t,r,o)}})}(n):Reflect.get(t,n,r)},v=S(n,function(){return new Proxy(s,{get:p})},!0,r),d=o?v||s:t;return j(function(){o&&e.add(s,i)},function(){e.delete(s)}),{hookOptions:y,usecaseOptions:d}}(U,L,_,D),B=z.hookOptions,N=z.usecaseOptions,K=function(t,e,n,r,o){var u=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],i=((0,f.useContext)(n)||{}).reducers,a=void 0===i?null:i,c=(r&h.EntityEnabled)===h.EntityEnabled;return I(a,r,function(){return c?(0,b.createEntityReducers)(e,t,{options:o,onGenerate:function(t,e){return e}}):t(o)},u)}(M,F,k,_,N,D),W=function(t,e,n){var r=t.value,o=(0,d.useUpdate)(),u=P(e),i=(0,d.useLatest)(n),a=(0,f.useRef)(r),c=(e&h.EntityEnabled)===h.EntityEnabled,s=(e&h.EntityRootEnabled)===h.EntityRootEnabled,y=O(function(){return C()}),v=y.bindLifecycleEventsKey,E=y.getLifecycleEvents,g=y.deleteLifecycleEvents,w=p(function(){return(0,(0,b.utilsUseCase)().createKey)()}),S=(0,d.useMemoizedFn)(function(t,e){var n=i.current.watch;n&&function(t,e,n){for(var r,o=m().matchProperty,u=function(){var t=a[i],u=(r=l(t,2))[0],c=r[1];o(n,e,u,function(t){c(t)})},i=0,a=Object.entries(t);i<a.length;i++)u()}(n,t,e)}),R=(0,d.useMemoizedFn)(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.current;if(c&&a.current!==t){var n=E(w),o=n.onUpdate,u=n.onAdopt,i=n.onDiscard;a.current=t,S(t,e),null==i||i(e),null==u||u(t,e),null==o||o(t,e)}}),x=(0,d.useMemoizedFn)(function(t,e){var n=i.current.onChange,r=E(w).onChange;R(t,e),null==n||n(t,e),null==r||r(t,e),s&&o()});return j(function(){if(s){var t=v(w),e=t.onBind,n=t.onAdopt;u&&(null==e||e(r),null==n||n(r))}},null,[]),(0,d.useUnmount)(function(){if(s){var e=t.value,n=E(w),r=n.onUnbind,o=n.onDiscard;g(w),null==r||r(e),null==o||o(e)}}),j(function(){c&&t.watch(x)},function(){t.unwatch(x)},[t,c,x]),(0,d.useUpdateEffect)(function(){R()},[r,R]),r}(F,_,B),G=function(t,e,n,r){var o=t.value;return(0,d.useCreation)(function(){return(r&h.EntityEnabled)===h.EntityEnabled?{store:t,reducers:e,optionsSet:n,statuses:r}:{reducers:e,statuses:r}},[o,t,e,n,r])}(F,K,L,_),Y=function(t,e){var n=(0,d.useLatest)(e);return v(function(e){var r=e.children,o=e.with,u=void 0===o?[]:o,i=t.Provider,a=n.current,c=Array.isArray(u)?u:[u];return y().createElement(i,{value:a},c.reduceRight(function(t,e){return y().createElement(e,{},t)},r))})}(k,G);return(0,d.useCreation)(function(){if((_&h.EntityEnabled)!==h.EntityEnabled)return K;var e=function(t,e){var n={};return Object.entries(t).forEach(function(t){var r=l(t,2),o=r[0],u=r[1];n[o]=function(t,e){var n,r=m().isEqual,o=e||{},u=o.onShouldCache,i=void 0===u?function(){return!0}:u,a=o.onCompare,c=void 0===a?function(t,e){return r(t,e)}:a;return new Proxy(t,{apply:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=i();if(n&&o){var u=n,a=u.parameters,l=u.returnValue;if(c(a,r))return l}var f=Reflect.apply(t,e,r);return o&&(n={parameters:r,returnValue:f}),f}})}(u,e)}),n}(K,{onShouldCache:function(){return n.current}}),r=null===W,u=Array.isArray(W),i="object"!==t(W)||r||u?W:function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?q(Object(n),!0).forEach(function(e){o(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}({},W);return[i,e,Y]},[_,W,K,Y,n])},W=function(t){var e=t.usecase,n=t.watch,r=t.onMount,o=t.onUpdate,u=t.onChange,a=l(K(e,{watch:n,onChange:u}),1)[0],c=(0,d.useMemoizedFn)(function(){null==o||o(a)});return(0,d.useMount)(function(){null==r||r(a)}),(0,d.useUpdateEffect)(function(){c()},[a,c]),(0,i.jsx)(f.Fragment,{})};function G(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function Y(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?G(Object(n),!0).forEach(function(e){o(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):G(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var Z=["usecase"],H=function(t){var e=t.usecase,n=u(t,Z),r=(0,K(E).getUseCaseContext)(e),o=(0,f.useContext)(r);return(0,i.jsx)(f.Fragment,{children:null===o?null:(0,i.jsx)(W,Y({usecase:e},n))})};function J(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}var Q=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.onAdopt,n=t.onDiscard,r=t.onBind,u=t.onUnbind,i=t.onChange,a=t.onUpdate,c=C().setLifecycleEvents,l=(0,b.entityUseCase)();return c({onAdopt:e,onDiscard:n,onBind:r,onUnbind:u,onChange:i,onUpdate:a}),function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?J(Object(n),!0).forEach(function(e){o(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):J(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}({},l)},X=function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var r=w(e),o=(0,d.useLatest)(e);return(0,d.useCreation)(function(){return o.current},[r,o])}})();var o=usecases="undefined"==typeof usecases?{}:usecases;for(var u in r)o[u]=r[u];r.__esModule&&Object.defineProperty(o,"__esModule",{value:!0})})();
2
+ (()=>{var e={698(e,t){"use strict";var n=Symbol.for("react.transitional.element");Symbol.for("react.fragment"),t.jsx=function(e,t,r){var o=null;if(void 0!==r&&(o=""+r),void 0!==t.key&&(o=""+t.key),"key"in t)for(var u in r={},t)"key"!==u&&(r[u]=t[u]);else r=t;return t=r.ref,{$$typeof:n,type:e,key:o,ref:void 0!==t?t:null,props:r}}},848(e,t,n){"use strict";e.exports=n(698)},172(e){e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports},993(e,t,n){var r=n(546);function o(){var t,n,u="function"==typeof Symbol?Symbol:{},i=u.iterator||"@@iterator",a=u.toStringTag||"@@toStringTag";function c(e,o,u,i){var a=o&&o.prototype instanceof s?o:s,c=Object.create(a.prototype);return r(c,"_invoke",function(e,r,o){var u,i,a,c=0,s=o||[],l=!1,y={p:0,n:0,v:t,a:p,f:p.bind(t,4),d:function(e,n){return u=e,i=0,a=t,y.n=n,f}};function p(e,r){for(i=e,a=r,n=0;!l&&c&&!o&&n<s.length;n++){var o,u=s[n],p=y.p,v=u[2];e>3?(o=v===r)&&(a=u[(i=u[4])?5:(i=3,3)],u[4]=u[5]=t):u[0]<=p&&((o=e<2&&p<u[1])?(i=0,y.v=r,y.n=u[1]):p<v&&(o=e<3||u[0]>r||r>v)&&(u[4]=e,u[5]=r,y.n=v,i=0))}if(o||e>1)return f;throw l=!0,r}return function(o,s,v){if(c>1)throw TypeError("Generator is already running");for(l&&1===s&&p(s,v),i=s,a=v;(n=i<2?t:a)||!l;){u||(i?i<3?(i>1&&(y.n=-1),p(i,a)):y.n=a:y.v=a);try{if(c=2,u){if(i||(o="next"),n=u[o]){if(!(n=n.call(u,a)))throw TypeError("iterator result is not an object");if(!n.done)return n;a=n.value,i<2&&(i=0)}else 1===i&&(n=u.return)&&n.call(u),i<2&&(a=TypeError("The iterator does not provide a '"+o+"' method"),i=1);u=t}else if((n=(l=y.n<0)?a:e.call(r,y))!==f)break}catch(e){u=t,i=1,a=e}finally{c=1}}return{value:n,done:l}}}(e,u,i),!0),c}var f={};function s(){}function l(){}function y(){}n=Object.getPrototypeOf;var p=[][i]?n(n([][i]())):(r(n={},i,function(){return this}),n),v=y.prototype=s.prototype=Object.create(p);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,r(e,a,"GeneratorFunction")),e.prototype=Object.create(v),e}return l.prototype=y,r(v,"constructor",y),r(y,"constructor",l),l.displayName="GeneratorFunction",r(y,a,"GeneratorFunction"),r(v),r(v,a,"Generator"),r(v,i,function(){return this}),r(v,"toString",function(){return"[object Generator]"}),(e.exports=o=function(){return{w:c,m:d}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports},869(e,t,n){var r=n(887);e.exports=function(e,t,n,o,u){var i=r(e,t,n,o,u);return i.next().then(function(e){return e.done?e.value:i.next()})},e.exports.__esModule=!0,e.exports.default=e.exports},887(e,t,n){var r=n(993),o=n(791);e.exports=function(e,t,n,u,i){return new o(r().w(e,t,n,u),i||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports},791(e,t,n){var r=n(172),o=n(546);e.exports=function e(t,n){function u(e,o,i,a){try{var c=t[e](o),f=c.value;return f instanceof r?n.resolve(f.v).then(function(e){u("next",e,i,a)},function(e){u("throw",e,i,a)}):n.resolve(f).then(function(e){c.value=e,i(c)},function(e){return u("throw",e,i,a)})}catch(e){a(e)}}var i;this.next||(o(e.prototype),o(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),o(this,"_invoke",function(e,t,r){function o(){return new n(function(t,n){u(e,r,t,n)})}return i=i?i.then(o,o):o()},!0)},e.exports.__esModule=!0,e.exports.default=e.exports},546(e){function t(n,r,o,u){var i=Object.defineProperty;try{i({},"",{})}catch(n){i=0}e.exports=t=function(e,n,r,o){function u(n,r){t(e,n,function(e){return this._invoke(n,r,e)})}n?i?i(e,n,{value:r,enumerable:!o,configurable:!o,writable:!o}):e[n]=r:(u("next",0),u("throw",1),u("return",2))},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r,o,u)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},373(e){e.exports=function(e){var t=Object(e),n=[];for(var r in t)n.unshift(r);return function e(){for(;n.length;)if((r=n.pop())in t)return e.value=r,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports},633(e,t,n){var r=n(172),o=n(993),u=n(869),i=n(887),a=n(791),c=n(373),f=n(579);function s(){"use strict";var t=o(),n=t.m(s),l=(Object.getPrototypeOf?Object.getPrototypeOf(n):n.__proto__).constructor;function y(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===l||"GeneratorFunction"===(t.displayName||t.name))}var p={throw:1,return:2,break:3,continue:3};function v(e){var t,n;return function(r){t||(t={stop:function(){return n(r.a,2)},catch:function(){return r.v},abrupt:function(e,t){return n(r.a,p[e],t)},delegateYield:function(e,o,u){return t.resultName=o,n(r.d,f(e),u)},finish:function(e){return n(r.f,e)}},n=function(e,n,o){r.p=t.prev,r.n=t.next;try{return e(n,o)}finally{t.next=r.n}}),t.resultName&&(t[t.resultName]=r.v,t.resultName=void 0),t.sent=r.v,t.next=r.n;try{return e.call(this,t)}finally{r.p=t.prev,r.n=t.next}}}return(e.exports=s=function(){return{wrap:function(e,n,r,o){return t.w(v(e),n,r,o&&o.reverse())},isGeneratorFunction:y,mark:t.m,awrap:function(e,t){return new r(e,t)},AsyncIterator:a,async:function(e,t,n,r,o){return(y(t)?i:u)(v(e),t,n,r,o)},keys:c,values:f}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=s,e.exports.__esModule=!0,e.exports.default=e.exports},579(e,t,n){var r=n(738).default;e.exports=function(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(r(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports},738(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},756(e,t,n){var r=n(633)();e.exports=r;try{regeneratorRuntime=r}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var u=t[r]={exports:{}};return e[r](u,u.exports,n),u.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(t,n,r){return(n=function(t){var n=function(t){if("object"!=e(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!=e(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(n)?n:n+""}(n))in t?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r,t}function o(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}n.r(r),n.d(r,{UseCaseFragment:()=>z,lifecycleUseCase:()=>q,useProviders:()=>B,useUseCase:()=>X});var u=n(848);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function a(e,t){if(e){if("string"==typeof e)return i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,u,i,a=[],c=!0,f=!1;try{if(u=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=u.call(n)).done)&&(a.push(r.value),a.length!==t);c=!0);}catch(e){f=!0,o=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(f)throw o}}return a}}(e,t)||a(e,t)||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=n.n(f),l=function(e){return c((0,f.useState)(e),1)[0]};const y=ahooks;var p=function(e){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e,t){return e!==t})(e,(0,y.usePrevious)(e,function(){return!0}))};function v(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||a(e)||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 d=function(){var t=function(t){return"object"===e(t)&&null!==t},n=function(e,n){return!!t(e)&&Object.hasOwn(e,n)};return{hasField:n,isObject:t,isEqual:function(e,r,o){if(e===r)return!0;var u=t(e),i=t(r),a=u?Object.keys(e):[],c=i?Object.keys(r):[],f="function"==typeof o;if(!u&&!i)return!1;for(var s=!0,l=a.length,y=[].concat(v(a),v(c)),p=0,d=y.length;p<d;p++){var b=y[p],h=a.includes(b);if(!(p>=l&&h)){var m=n(e,b),O=n(r,b),g=m?e[b]:void 0,j=O?r[b]:void 0;if(!m||!O||g!==j){if(s=!1,!f)break;o(b,j,g)}}}return s},matchProperty:function(e,t,r,o){var u=!0,i=r,a=[{fieldPaths:[],newEntity:t,newValue:t,oldEntity:e,oldValue:e}];do{var f=a.shift(),s=f.oldValue,l=f.newValue,y=f.fieldPaths,p=c(i.match(/^([^.]+)\.(.+)$/)||[],3),d=p[1],b=void 0===d?i:d,h=p[2],m=void 0===h?"":h,O=n(s,b),g=n(l,b);if(O||g){var j=c(O?[s[b]]:[],1)[0],x=c(g?[l[b]]:[],1)[0],w={fieldPaths:[].concat(v(y),[b]),newEntity:t,newValue:x,oldEntity:e,oldValue:j};if(m){i=m,a.push(w);continue}if(x===j)continue;u=!1,null==o||o(w)}else if(!/^\d+^/.test(b))for(var E=Array.isArray(s)?s:[],P=Array.isArray(l)?l:[],R=E.length,S=P.length,C=Math.max(R,S),_=0;_<C;_++)a.push({fieldPaths:[].concat(v(y),["".concat(_)]),newEntity:t,newValue:P[_],oldEntity:e,oldValue:E[_]})}while(a.length>0);return u}}},b=function(e){var t=(0,f.useRef)(0),n=l(d).isEqual,r=p(e,function(e,t){return!n(e,t)});return(0,y.useMemoizedFn)(function(){var e=t.current;if(!r)return e;var n=e+1;return t.current=n,n})()},h=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[e],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[e],r=c(Array.isArray(t)?[null,t]:[t,n],2),o=r[0],u=r[1],i=b(u),a=(0,f.useRef)(null),s=function(){var e,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];null===(e=a.current)||void 0===e||e.call(a,t)},l=(0,y.useMemoizedFn)(function(){return s(),a.current=o,e()});return(0,y.useUnmount)(function(){s(!0)}),(0,y.useCreation)(function(){return l()},[i,l])};const m=usecases;var O=(0,m.createUseCase)(function(){var e=new Map;return function(){var t=function(){return e};return{getContext:function(e){var n=t();return n.has(e)?n.get(e).value:(0,f.createContext)(null)},registerUseCase:function(e){var n=t();if(n.has(e)){var r=n.get(e),o=r.value,u=r.times;return n.set(e,{value:o,times:u+1}),o}var i=(0,f.createContext)(null);return n.set(e,{value:i,times:1}),i},unregisterUseCase:function(e){var n=t();if(!n.has(e))return!1;var r=n.get(e),o=r.value,u=r.times;return 1===u?n.delete(e):n.set(e,{value:o,times:u-1}),!0}}}});function g(e,t,n,r,o,u,i){try{var a=e[u](i),c=a.value}catch(e){return void n(e)}a.done?t(c):Promise.resolve(c).then(r,o)}var j,x=n(756),w=n.n(x),E=function(e,t,n,r){var o=c(Array.isArray(n)?[null,n]:[n,r],2),u=o[0],i=o[1];return h(function(){return e?t():null},function(t){e&&(null==u||u(t))},i)};!function(e){e[e.None=0]="None",e[e.Entity=4]="Entity",e[e.RootRuntime=8]="RootRuntime",e[e.EntityRootRuntime=12]="EntityRootRuntime",e[e.EntityContextRuntime=20]="EntityContextRuntime",e[e.InitialEntityX=32]="InitialEntityX",e[e.InitialEntityY=64]="InitialEntityY",e[e.InitialEntityKey=96]="InitialEntityKey",e[e.UseCaseX=128]="UseCaseX",e[e.UseCaseY=256]="UseCaseY",e[e.UseCaseKey=384]="UseCaseKey",e[e.DepsX=512]="DepsX",e[e.DepsY=1024]="DepsY",e[e.DepsKey=1536]="DepsKey",e[e.ReducersX=2048]="ReducersX",e[e.ReducersY=4096]="ReducersY",e[e.ReducersKey=6144]="ReducersKey",e[e.RootX=8192]="RootX",e[e.RootY=16384]="RootY",e[e.RootKey=24576]="RootKey"}(j||(j={}));var P=function(e,t,n,r,o){var u=Array.isArray(n),i=Array.isArray(r),a="number"==typeof n,c=u||a?null:n,f=a?n:"number"==typeof r?r:j.RootRuntime,s=u?n:i?r:o||[],l=e&j.RootKey,y=(e&f)===f,p=(e&j.EntityRootRuntime)===j.EntityRootRuntime;return E(y,function(){return t(p)},function(){null==c||c(p)},[l].concat(v(s)))},R=function(e,t,n,r){var o=c(Array.isArray(n)?[null,n]:[n,r],2),u=o[0],i=o[1];return P(e,t,u||null,j.EntityRootRuntime,i)},S=function(){R.apply(void 0,arguments)};function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var _=(0,m.createUseCase)(function(){var e=new Map,t=[],n=(0,m.utilsUseCase)().createKey;return function(){return{createLifecycleKey:function(){return n()},deleteLifecycleEvents:function(t){return e.delete(t)},setLifecycleEvents:function(e){t.push(e)},getLifecycleEvents:function(t){return e.get(t)||{}},bindLifecycleEventsKey:function(n){if(0===t.length)return{};var r=t.splice(0),o=["onBind","onUnbind","onAdopt","onDiscard","onChange","onUpdate"].map(function(e){return[e,function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return function(e,t){var n,o=void 0,u=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return C(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?C(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,i=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){a=!0,u=e},f:function(){try{i||null==n.return||n.return()}finally{if(a)throw u}}}}(r);try{for(u.s();!(n=u.n()).done;){var i=n.value[e];"function"==typeof i&&(null!=o||(o=Reflect.apply(i,null,t)))}}catch(e){u.e(e)}finally{u.f()}return o}(e,n)}]}),u=Object.fromEntries(o);return e.set(n,u),u}}}}),A=function(t,n,r,o){var u=t.value,i=function(){var e=(0,y.useUpdate)(),t=(0,f.useRef)(-1),n=(0,f.useRef)(0),r=function(){n.current=Date.now(),e()};return(0,y.useMemoizedFn)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(0!==e){var o=t.current,u=n.current,i=e-(Date.now()-u);if(clearTimeout(o),i<=0)r();else{var a=setTimeout(function(){r()},i);t.current=a}}else r()})}(),a=(0,y.useLatest)(o),s=(0,f.useRef)(u),p=(r&j.Entity)===j.Entity,v=l(_),b=v.createLifecycleKey,h=v.bindLifecycleEventsKey,m=v.getLifecycleEvents,O=v.deleteLifecycleEvents,x=l(function(){return b()}),P=(0,y.useMemoizedFn)(function(e,t){var n=a.current.watch;n&&function(e,t,n){for(var r,o=d().matchProperty,u=function(){var e=a[i],u=(r=c(e,2))[0],f=r[1];o(n,t,u,function(e){f(e)})},i=0,a=Object.entries(e);i<a.length;i++)u()}(n,e,t)}),R=(0,y.useMemoizedFn)(function(e){var t=s.current;if(p&&t!==e){var n=m(x),r=n.onUpdate,o=n.onAdopt,u=n.onDiscard;s.current=e,P(e,t),null==u||u(t),null==o||o(e,t),null==r||r(e,t)}}),C=(0,y.useMemoizedFn)(function(){R(t.value)}),A=(0,y.useMemoizedFn)(function(){var t,n=(t=w().mark(function t(n,r){var o,u,a,c;return w().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(o=m(x),u=o.onChange,!((a=null==u?void 0:u(n,r))instanceof Promise)){t.next=2;break}return t.next=1,a;case 1:a=t.sent;case 2:c=e(a),t.next="number"===c?3:"undefined"===c?4:5;break;case 3:return i(a),t.abrupt("return");case 4:return i(),t.abrupt("return");case 5:if(!a){t.next=6;break}return t.abrupt("return");case 6:i();case 7:case"end":return t.stop()}},t)}),function(){var e=this,n=arguments;return new Promise(function(r,o){var u=t.apply(e,n);function i(e){g(u,r,o,i,a,"next",e)}function a(e){g(u,r,o,i,a,"throw",e)}i(void 0)})});return function(e,t){return n.apply(this,arguments)}}()),D=(0,y.useMemoizedFn)(function(e,t){var n=a.current.onChange;null==n||n(e,t)});return S(r,function(){var e=h(x),n=e.onBind,r=e.onAdopt;t.watch(A),null==n||n(u),null==r||r(u)},function(){var e=t.value,n=m(x),r=n.onUnbind,o=n.onDiscard;t.unwatch(A),O(x),null==r||r(e),null==o||o(e)}),function(e,n,r,o){var u=c(Array.isArray(r)?[null,r]:[r,o],2),i=u[0],a=u[1],f=(e&j.Entity)===j.Entity;E(f,function(){t.watch(D),t.watch(R)},i||null,a)}(r,0,function(){t.unwatch(D),t.unwatch(R)},[t]),(0,y.useUpdateEffect)(function(){C()},[u,C]),u};function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var M=["watch","onChange"],U=function(e,n,r,u,i){var a=((0,f.useContext)(r)||{}).reducers,c=void 0===a?null:a,s=(i.watch,i.onChange,o(i,M)),l=i.options,p=void 0===l?s:l,v=(0,y.useLatest)(p),d=u&j.ReducersKey,b=function(e){return function(){var t=v.current[e];if("function"==typeof t)return t.apply(void 0,arguments)}};return h(function(){var r=(u&j.Entity)===j.Entity,o=(u&j.EntityRootRuntime)===j.EntityRootRuntime;if(!r)return e(i);if(!o)return c;var a=function(){for(var e=function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?D(Object(r),!0).forEach(function(n){t(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):D(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({},p),n=0,r=Object.keys(e);n<r.length;n++){var o=r[n];"function"==typeof e[o]&&(e[o]=b(o))}return e}();return(0,m.createEntityReducers)(n,e,{options:a,onGenerate:function(e,t){return t}})},[d])},k=function(e,t,n){var r=(0,f.useRef)(t),o=p(e);return h(function(){var e=r.current;if(!o)return e;var u=e===t?n:t;return r.current=u,u})};function I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function F(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?I(Object(r),!0).forEach(function(n){t(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):I(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var K=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,m.entityUseCase)(),n=e.onInit;return F(F({},t),{},{initEntity:function(e){return"function"!=typeof n?e:n(e)}})},Y=function(e,t,n){var r=(0,f.useRef)([]),o=function(e){var t=e&j.RootKey,n=(0,f.useRef)(!0);return h(function(){var e=n.current;return n.current=!1,e},function(){n.current=!0},[t])}(n),u=((0,f.useContext)(t)||{}).store,i=void 0===u?null:u,a=n&j.InitialEntityKey,c=P(n,function(){return new m.EntityStore(void 0)})||i;return S(n,function(){"function"==typeof e?function(){if(o){var t=r.current;r.current=function(e,t,n,r){var o=!1,u=0,i=[],a=d(),c=a.isObject,f=a.isEqual,s=function(t){return!r||o?t:e.initValue(t)},l=(0,m.createEntityReducers)(e,K,{onInit:function(e){return t(e)},onCreate:function(e,t){var r=u,o=c(t),a=o&&Array.isArray(t);if(u++,i[r]=e,!o||a)return(0,m.createEntity)(t,e);var s={},l=n[r];return f(l,e,function(t){var n=Object.getOwnPropertyDescriptor(e,t)||null;null!==n&&(s[t]=n)}),(0,m.createEntity)(t,Object.defineProperties({},s))},onGenerate:function(t,n){if(void 0===n)return[t,n];var r=(0,m.createEntity)(t,n);return e.setValue(r),[r,n]},onYield:function(e){return s(e)},onReturn:function(t){var n=s(t);return e.setValue(n),n}}).initEntity;return e.disableWatchers(),l(),e.enableWatchers(),o=!0,i}(c,e,t,o)}}():o?c.initValue(e):c.setValue(e)},[a]),c};function T(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var X=function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];var u,i="function"==typeof r[1],a=function(e,t){var n=c(e,4),r=n[0],o=n[1],u=n[2],i=n[3];return t?[r,o,u||{},i||[]]:[null,r,o||{},u||[]]}(r,i),p=c(a,3),v=p[0],m=p[1],g=p[2],x=function(e,t){var n=l(O),r=n.getContext,o=n.registerUseCase,u=n.unregisterUseCase;return h(function(){return t?o(e):r(e)},function(){t&&u(e)},[e,t])}(m,i),w=function(e,t,n){var r=j.None,o=c(e,4),u=o[0],i=o[1],a=o[3],s="function"==typeof u,l=(0,f.useContext)(t),y=!n&&null!==l,p=(y?l:{key:n?j.RootX:j.RootY}).key,v=b(a),d=b([i,p]),h=b([d,v]),m=k(d,j.RootX,j.RootY),O=k(i,j.UseCaseX,j.UseCaseY),g=k(h,j.ReducersX,j.ReducersY),x=k(v,j.DepsX,j.DepsY),w=k(s?h:u,j.InitialEntityX,j.InitialEntityY);switch(!0){case n:r|=w,r|=j.EntityRootRuntime;break;case y:r|=j.EntityContextRuntime;break;default:r|=j.RootRuntime}return r|=m,r|=O,(r|=g)|x}(a,x,i),E=Y(v,x,w),P=U(m,E,x,w,g),R=A(E,0,w,g),S=function(e,t,n,r){var o=(0,f.useId)();return h(function(){return{key:o,store:t,reducers:n,statuses:r}},[o,e,t,n,r])}(R,E,P,w),C=function(e,t){var n=(0,y.useLatest)(t);return l(function(){return function(t){var r=t.children,o=t.with,u=void 0===o?[]:o,i=e.Provider,a=n.current,c=Array.isArray(u)?u:[u];return s().createElement(i,{value:a},c.reduceRight(function(e,t){return s().createElement(t,{},e)},r))}})}(x,S),_=(u=(0,y.useLatest)(!0),(0,f.useEffect)(function(){u.current=!1}),u);return h(function(){if((w&j.Entity)!==j.Entity)return P;var n=function(e,t){var n={};return Object.entries(e).forEach(function(e){var r=c(e,2),o=r[0],u=r[1];n[o]=function(e,t){var n,r=d().isEqual,o=t||{},u=o.onShouldCache,i=void 0===u?function(){return!0}:u,a=o.onCompare,c=void 0===a?function(e,t){return r(e,t)}:a;return new Proxy(e,{apply:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=i();if(n&&o){var u=n,a=u.parameters,f=u.returnValue;if(c(a,r))return f}var s=Reflect.apply(e,t,r);return o&&(n={parameters:r,returnValue:s}),s}})}(u,t)}),n}(P,{onShouldCache:function(){return _.current}}),r=null===R,o=Array.isArray(R),u="object"!==e(R)||r||o?R:function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?T(Object(r),!0).forEach(function(n){t(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):T(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({},R);return[u,n,C]},[R,P,C,w])},L=function(e){var t=e.usecase,n=e.watch,r=e.onMount,o=e.onUpdate,i=e.onChange,a=c(X(t,{watch:n,onChange:i}),1)[0],s=(0,y.useMemoizedFn)(function(){null==o||o(a)});return(0,y.useMount)(function(){null==r||r(a)}),(0,y.useUpdateEffect)(function(){s()},[a,s]),(0,u.jsx)(f.Fragment,{})};function V(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function N(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?V(Object(r),!0).forEach(function(n){t(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):V(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var G=["usecase"],z=function(e){var t=e.usecase,n=o(e,G),r=(0,X(O).getContext)(t),i=(0,f.useContext)(r);return(0,u.jsx)(f.Fragment,{children:null===i?null:(0,u.jsx)(L,N({usecase:t},n))})};function $(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var q=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.onAdopt,r=e.onDiscard,o=e.onBind,u=e.onUnbind,i=e.onChange,a=e.onUpdate,c=_().setLifecycleEvents,f=(0,m.entityUseCase)();return c({onAdopt:n,onDiscard:r,onBind:o,onUnbind:u,onChange:i,onUpdate:a}),function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?$(Object(r),!0).forEach(function(n){t(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({},f)},B=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=b(t),o=(0,y.useLatest)(t);return h(function(){return o.current},[r])}})();var o=usecases="undefined"==typeof usecases?{}:usecases;for(var u in r)o[u]=r[u];r.__esModule&&Object.defineProperty(o,"__esModule",{value:!0})})();
@@ -1,3 +1,5 @@
1
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
2
+
1
3
  /**
2
4
  * @license React
3
5
  * react-jsx-runtime.production.js
@@ -9,8 +9,8 @@ export const UseCaseFragment = _ref => {
9
9
  let usecase = _ref.usecase,
10
10
  props = _objectWithoutProperties(_ref, _excluded);
11
11
  const _useUseCase = useUseCase(contextUseCase),
12
- getUseCaseContext = _useUseCase.getUseCaseContext;
13
- const context = getUseCaseContext(usecase);
12
+ getContext = _useUseCase.getContext;
13
+ const context = getContext(usecase);
14
14
  const contextValue = useContext(context);
15
15
  return _jsx(Fragment, {
16
16
  children: contextValue === null ? null : _jsx(SafeUseCaseFragment, {
@@ -1,23 +1,99 @@
1
1
  export declare enum Statuses {
2
2
  None = 0,
3
3
  /**
4
- * 是否需要初始化根 `redurcers`
4
+ * 是否启用 `entity`
5
5
  */
6
- RootEnabled = 2,
6
+ Entity = 4,
7
7
  /**
8
- * 是否为上下文模式
8
+ * 是否以 `ReducersHook` 或 `RootCoreCollectionHook` 的形式被调用
9
9
  */
10
- ContextEnabled = 4,
10
+ RootRuntime = 8,
11
11
  /**
12
- * 是否有 `entity`
12
+ * 是否以 `RootCoreCollectionHook` 的形式被调用
13
13
  */
14
- EntityEnabled = 8,
14
+ EntityRootRuntime = 12,
15
15
  /**
16
- * 是否为需要提供 `Provider` 去挂载根 `context`
16
+ * 是否以 `ContextualCoreCollectionHook` 的形式被调用
17
17
  */
18
- ContextRootEnabled = 6,
18
+ EntityContextRuntime = 20,
19
19
  /**
20
- * 是否初始化与 `entity` 相关的 `reducers`
20
+ * 当传入的 `entity` 参数变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个。
21
21
  */
22
- EntityRootEnabled = 14
22
+ InitialEntityX = 32,
23
+ /**
24
+ * 当传入的 `entity` 参数变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个。
25
+ */
26
+ InitialEntityY = 64,
27
+ /**
28
+ * 当传入的 `entity` 参数变更时,生成相关的 `key`,可作为 `hooks` 的依赖。
29
+ *
30
+ * 使用方式:
31
+ * * `const entityKey = statuses & Statuses.EntityKey;`
32
+ */
33
+ InitialEntityKey = 96,
34
+ /**
35
+ * 当传入的 `usecase` 参数变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个。
36
+ */
37
+ UseCaseX = 128,
38
+ /**
39
+ * 当传入的 `usecase` 参数变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个。
40
+ */
41
+ UseCaseY = 256,
42
+ /**
43
+ * 当传入的 `usecase` 参数变更时,生成相关的 `key`,可作为 `hooks` 的依赖。
44
+ *
45
+ * 使用方式:
46
+ * * `const usecaseKey = statuses & Statuses.UseCaseKey;`
47
+ */
48
+ UseCaseKey = 384,
49
+ /**
50
+ * 当传入的 `deps` 变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个。
51
+ */
52
+ DepsX = 512,
53
+ /**
54
+ * 当传入的 `deps` 变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个。
55
+ */
56
+ DepsY = 1024,
57
+ /**
58
+ * 当传入的 `deps` 变更时,生成相关的 `key`,可作为 `hooks` 的依赖。
59
+ *
60
+ * 使用方式:
61
+ * * `const depsKey = statuses & Statuses.DepsKey;`
62
+ */
63
+ DepsKey = 1536,
64
+ /**
65
+ * 当传入的 `usecase` 或 `deps` 参数变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个;
66
+ * 表示将有新的 `reducers` 将会生成。
67
+ */
68
+ ReducersX = 2048,
69
+ /**
70
+ * 当传入的 `usecase` 或 `deps` 参数变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个;
71
+ * 表示将有新的 `reducers` 将会生成。
72
+ */
73
+ ReducersY = 4096,
74
+ /**
75
+ * 当传入的 `usecase` 或 `deps` 参数变更时,生成相关的 `key`,可作为 `hooks` 的依赖。
76
+ *
77
+ * 使用方式:
78
+ * * `const reducersKey = statuses & Statuses.ReducersKey;`
79
+ */
80
+ ReducersKey = 6144,
81
+ /**
82
+ * 以下情况变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个:
83
+ * * 传入的 `usecase` 发生变化;
84
+ * * 调用 `useUseCase` 的形式发生变化;
85
+ * * 新增或移除根节点的 `Provider`;
86
+ */
87
+ RootX = 8192,
88
+ /**
89
+ * 以下情况变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个:
90
+ * * 传入的 `usecase` 发生变化;
91
+ * * 调用 `useUseCase` 的形式发生变化;
92
+ * * 新增或移除根节点的 `Provider`;
93
+ */
94
+ RootY = 16384,
95
+ /**
96
+ * 根据 `root` 的变化,生成相关的 `key`,可作为 `hooks` 的依赖。
97
+ */
98
+ RootKey = 24576
23
99
  }
@@ -2,23 +2,99 @@ export var Statuses;
2
2
  (function (Statuses) {
3
3
  Statuses[Statuses["None"] = 0] = "None";
4
4
  /**
5
- * 是否需要初始化根 `redurcers`
5
+ * 是否启用 `entity`
6
6
  */
7
- Statuses[Statuses["RootEnabled"] = 2] = "RootEnabled";
7
+ Statuses[Statuses["Entity"] = 4] = "Entity";
8
8
  /**
9
- * 是否为上下文模式
9
+ * 是否以 `ReducersHook` 或 `RootCoreCollectionHook` 的形式被调用
10
10
  */
11
- Statuses[Statuses["ContextEnabled"] = 4] = "ContextEnabled";
11
+ Statuses[Statuses["RootRuntime"] = 8] = "RootRuntime";
12
12
  /**
13
- * 是否有 `entity`
13
+ * 是否以 `RootCoreCollectionHook` 的形式被调用
14
14
  */
15
- Statuses[Statuses["EntityEnabled"] = 8] = "EntityEnabled";
15
+ Statuses[Statuses["EntityRootRuntime"] = 12] = "EntityRootRuntime";
16
16
  /**
17
- * 是否为需要提供 `Provider` 去挂载根 `context`
17
+ * 是否以 `ContextualCoreCollectionHook` 的形式被调用
18
18
  */
19
- Statuses[Statuses["ContextRootEnabled"] = 6] = "ContextRootEnabled";
19
+ Statuses[Statuses["EntityContextRuntime"] = 20] = "EntityContextRuntime";
20
20
  /**
21
- * 是否初始化与 `entity` 相关的 `reducers`
21
+ * 当传入的 `entity` 参数变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个。
22
22
  */
23
- Statuses[Statuses["EntityRootEnabled"] = 14] = "EntityRootEnabled";
23
+ Statuses[Statuses["InitialEntityX"] = 32] = "InitialEntityX";
24
+ /**
25
+ * 当传入的 `entity` 参数变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个。
26
+ */
27
+ Statuses[Statuses["InitialEntityY"] = 64] = "InitialEntityY";
28
+ /**
29
+ * 当传入的 `entity` 参数变更时,生成相关的 `key`,可作为 `hooks` 的依赖。
30
+ *
31
+ * 使用方式:
32
+ * * `const entityKey = statuses & Statuses.EntityKey;`
33
+ */
34
+ Statuses[Statuses["InitialEntityKey"] = 96] = "InitialEntityKey";
35
+ /**
36
+ * 当传入的 `usecase` 参数变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个。
37
+ */
38
+ Statuses[Statuses["UseCaseX"] = 128] = "UseCaseX";
39
+ /**
40
+ * 当传入的 `usecase` 参数变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个。
41
+ */
42
+ Statuses[Statuses["UseCaseY"] = 256] = "UseCaseY";
43
+ /**
44
+ * 当传入的 `usecase` 参数变更时,生成相关的 `key`,可作为 `hooks` 的依赖。
45
+ *
46
+ * 使用方式:
47
+ * * `const usecaseKey = statuses & Statuses.UseCaseKey;`
48
+ */
49
+ Statuses[Statuses["UseCaseKey"] = 384] = "UseCaseKey";
50
+ /**
51
+ * 当传入的 `deps` 变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个。
52
+ */
53
+ Statuses[Statuses["DepsX"] = 512] = "DepsX";
54
+ /**
55
+ * 当传入的 `deps` 变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个。
56
+ */
57
+ Statuses[Statuses["DepsY"] = 1024] = "DepsY";
58
+ /**
59
+ * 当传入的 `deps` 变更时,生成相关的 `key`,可作为 `hooks` 的依赖。
60
+ *
61
+ * 使用方式:
62
+ * * `const depsKey = statuses & Statuses.DepsKey;`
63
+ */
64
+ Statuses[Statuses["DepsKey"] = 1536] = "DepsKey";
65
+ /**
66
+ * 当传入的 `usecase` 或 `deps` 参数变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个;
67
+ * 表示将有新的 `reducers` 将会生成。
68
+ */
69
+ Statuses[Statuses["ReducersX"] = 2048] = "ReducersX";
70
+ /**
71
+ * 当传入的 `usecase` 或 `deps` 参数变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个;
72
+ * 表示将有新的 `reducers` 将会生成。
73
+ */
74
+ Statuses[Statuses["ReducersY"] = 4096] = "ReducersY";
75
+ /**
76
+ * 当传入的 `usecase` 或 `deps` 参数变更时,生成相关的 `key`,可作为 `hooks` 的依赖。
77
+ *
78
+ * 使用方式:
79
+ * * `const reducersKey = statuses & Statuses.ReducersKey;`
80
+ */
81
+ Statuses[Statuses["ReducersKey"] = 6144] = "ReducersKey";
82
+ /**
83
+ * 以下情况变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个:
84
+ * * 传入的 `usecase` 发生变化;
85
+ * * 调用 `useUseCase` 的形式发生变化;
86
+ * * 新增或移除根节点的 `Provider`;
87
+ */
88
+ Statuses[Statuses["RootX"] = 8192] = "RootX";
89
+ /**
90
+ * 以下情况变更时,状态会轮流切换到 `X` 或 `Y` 其中的一个:
91
+ * * 传入的 `usecase` 发生变化;
92
+ * * 调用 `useUseCase` 的形式发生变化;
93
+ * * 新增或移除根节点的 `Provider`;
94
+ */
95
+ Statuses[Statuses["RootY"] = 16384] = "RootY";
96
+ /**
97
+ * 根据 `root` 的变化,生成相关的 `key`,可作为 `hooks` 的依赖。
98
+ */
99
+ Statuses[Statuses["RootKey"] = 24576] = "RootKey";
24
100
  })(Statuses || (Statuses = {}));
@@ -0,0 +1,2 @@
1
+ import { Statuses } from '../../enums/Statuses';
2
+ export declare const useAlternateStatuses: <T>(value: T, statusesX: Statuses, statusesY: Statuses) => Statuses;
@@ -0,0 +1,16 @@
1
+ import { useChanged } from '../useChanged';
2
+ import { useReturn } from '../useReturn';
3
+ import { useRef } from 'react';
4
+ export const useAlternateStatuses = (value, statusesX, statusesY) => {
5
+ const statuesRef = useRef(statusesX);
6
+ const isChanged = useChanged(value);
7
+ return useReturn(() => {
8
+ const currentStatuses = statuesRef.current;
9
+ if (!isChanged) {
10
+ return currentStatuses;
11
+ }
12
+ const newStatuses = currentStatuses === statusesX ? statusesY : statusesX;
13
+ statuesRef.current = newStatuses;
14
+ return newStatuses;
15
+ });
16
+ };
@@ -0,0 +1,2 @@
1
+ import { CompareCallback } from './types';
2
+ export declare const useChanged: <T>(value: T, callback?: CompareCallback<T>) => boolean;
@@ -0,0 +1,17 @@
1
+ import { usePrevious } from 'ahooks';
2
+ export const useChanged = function (value) {
3
+ let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (newValue, oldValue) => {
4
+ return newValue !== oldValue;
5
+ };
6
+ const prevValue = usePrevious(value, () => {
7
+ /**
8
+ * 这里一定要返回 `true`,不然 `value` 没有改变的话,那么 `prevValue` 也不会变,
9
+ * 比如:首次 `value=1`,那么 `prevValue` 的值会一直是 `undefined`,
10
+ * 就算组件刷新了无数次,它也是 `undefined`。
11
+ *
12
+ * 而我们期望的是:当组件第二次刷新,`prevValue` 应该是 `1`。
13
+ */
14
+ return true;
15
+ });
16
+ return callback(value, prevValue);
17
+ };
@@ -0,0 +1,3 @@
1
+ export interface CompareCallback<T> {
2
+ (newValue: T, oldValue?: T): boolean;
3
+ }
@@ -1,5 +1,4 @@
1
1
  import { UseCase } from '@mic-rexjs/usecases';
2
- import { ReducerMap } from '@mic-rexjs/usecases/es/types';
3
- import { ArgumentTypes } from '../../enums/ArgumentTypes';
4
- import { UseCaseContext, UseCaseContextValue } from '../../usecases/contextUseCase/types';
5
- export declare const useContext: <T extends ReducerMap, TUseCaseOptions extends object>(usecase: UseCase<T, TUseCaseOptions>, argumentTypes?: ArgumentTypes) => UseCaseContext<UseCaseContextValue<T>>;
2
+ import { UnknownReducerMap } from '../../types';
3
+ import { EntityUseCaseContextValue, UseCaseContext } from '../../usecases/contextUseCase/types';
4
+ export declare const useContext: <T, TReducers extends UnknownReducerMap<T>, TUseCaseOptions extends object>(usecase: UseCase<TReducers, TUseCaseOptions>, isEntityRoot: boolean) => UseCaseContext<EntityUseCaseContextValue<T, TReducers>>;
@@ -1,18 +1,20 @@
1
1
  import { useConstant } from '../useConstant';
2
- import { useUnmount } from 'ahooks';
3
- import { ArgumentTypes } from '../../enums/ArgumentTypes';
2
+ import { useReturn } from '../useReturn';
4
3
  import { contextUseCase } from '../../usecases/contextUseCase';
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;
4
+ export const useContext = (usecase, isEntityRoot) => {
5
+ const _useConstant = useConstant(contextUseCase),
6
+ getContext = _useConstant.getContext,
7
+ registerUseCase = _useConstant.registerUseCase,
8
+ unregisterUseCase = _useConstant.unregisterUseCase;
9
+ return useReturn(() => {
10
+ if (isEntityRoot) {
11
+ return registerUseCase(usecase);
12
+ }
13
+ return getContext(usecase);
14
+ }, () => {
15
+ if (!isEntityRoot) {
16
+ return;
17
+ }
18
+ unregisterUseCase(usecase);
19
+ }, [usecase, isEntityRoot]);
18
20
  };
@@ -2,14 +2,13 @@ import { useContext } from '.';
2
2
  import { describe, expect, test } from '@jest/globals';
3
3
  import { renderHook } from '@testing-library/react';
4
4
  import { useContext as useReactContext } from 'react';
5
- import { ArgumentTypes } from '../../enums/ArgumentTypes';
6
5
  const testUseCase = () => {
7
6
  return {};
8
7
  };
9
8
  describe('useContext', () => {
10
- test('should return the default context with value `null` if map has not saved a usecase with default args', () => {
9
+ test('should return the default context with value `null` if map has not saved a usecase without entity root mode', () => {
11
10
  const _renderHook = renderHook(() => {
12
- const context = useContext(testUseCase);
11
+ const context = useContext(testUseCase, false);
13
12
  const value = useReactContext(context);
14
13
  return value;
15
14
  }),
@@ -17,41 +16,31 @@ describe('useContext', () => {
17
16
  const current = result.current;
18
17
  expect(current).toBe(null);
19
18
  });
20
- test('should return the default context with value `null` if map has not saved a usecase with `ArgumentTypes.None` & `UseCaseModes.Normal`', () => {
19
+ test('should return the default context with value `null` after unmount this hook', () => {
21
20
  const _renderHook2 = renderHook(() => {
22
- const context = useContext(testUseCase, ArgumentTypes.None);
21
+ const context = useContext(testUseCase, false);
23
22
  const value = useReactContext(context);
24
23
  return value;
25
24
  }),
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;
25
+ result1 = _renderHook2.result,
26
+ unmount1 = _renderHook2.unmount;
38
27
  const current1 = result1.current;
39
28
  expect(typeof current1).toBe('object');
40
29
  unmount1();
41
- const _renderHook4 = renderHook(() => {
42
- const context = useContext(testUseCase, ArgumentTypes.None);
30
+ const _renderHook3 = renderHook(() => {
31
+ const context = useContext(testUseCase, false);
43
32
  const value = useReactContext(context);
44
33
  return value;
45
34
  }),
46
- result2 = _renderHook4.result;
35
+ result2 = _renderHook3.result;
47
36
  const current2 = result2.current;
48
37
  expect(current2).toBe(null);
49
38
  });
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);
39
+ test('should return a new context if map has not saved a usecase with entity root mode', () => {
40
+ const _renderHook4 = renderHook(() => {
41
+ return useContext(testUseCase, true);
53
42
  }),
54
- result = _renderHook5.result;
43
+ result = _renderHook4.result;
55
44
  const current = result.current;
56
45
  expect(typeof current).toBe('object');
57
46
  });
@@ -1,6 +1,5 @@
1
1
  import { EntityStore } from '@mic-rexjs/usecases';
2
- import { ReducerMap } from '@mic-rexjs/usecases/es/types';
3
- import { OptionsSet } from '../../classes/OptionsSet';
4
2
  import { Statuses } from '../../enums/Statuses';
5
- import { UseCaseContextValue } from '../../usecases/contextUseCase/types';
6
- export declare const useContextValue: <T, TReducers extends ReducerMap>(store: EntityStore<T>, reducers: TReducers, optionsSet: OptionsSet, statuses: Statuses) => UseCaseContextValue<TReducers>;
3
+ import { UnknownReducerMap } from '../../types';
4
+ import { ContextualEntityReducers, EntityUseCaseContextValue } from '../../usecases/contextUseCase/types';
5
+ export declare const useContextValue: <T, TReducers extends UnknownReducerMap<T>>(entity: T, store: EntityStore<T>, reducers: TReducers | ContextualEntityReducers<T, TReducers>, statuses: Statuses) => EntityUseCaseContextValue<T, TReducers>;
@@ -1,20 +1,13 @@
1
- import { useCreation } from 'ahooks';
2
- import { Statuses } from '../../enums/Statuses';
3
- export const useContextValue = (store, reducers, optionsSet, statuses) => {
4
- const entity = store.value;
5
- return useCreation(() => {
6
- void entity;
7
- if ((statuses & Statuses.EntityEnabled) === Statuses.EntityEnabled) {
8
- return {
9
- store,
10
- reducers,
11
- optionsSet,
12
- statuses
13
- };
14
- }
1
+ import { useReturn } from '../useReturn';
2
+ import { useId } from 'react';
3
+ export const useContextValue = (entity, store, reducers, statuses) => {
4
+ const key = useId();
5
+ return useReturn(() => {
15
6
  return {
16
- reducers,
7
+ key,
8
+ store,
9
+ reducers: reducers,
17
10
  statuses
18
11
  };
19
- }, [entity, store, reducers, optionsSet, statuses]);
12
+ }, [key, entity, store, reducers, statuses]);
20
13
  };
@@ -1,21 +1,23 @@
1
- import { useConstantReducers } from '../useConstantReducers';
2
- import { useMemoizedFn, usePrevious } from 'ahooks';
1
+ import { useChanged } from '../useChanged';
2
+ import { useConstant } from '../useConstant';
3
+ import { useMemoizedFn } from 'ahooks';
3
4
  import { useRef } from 'react';
4
5
  import { objectUtilsUseCase } from '../../usecases/objectUtilsUseCase';
5
6
  export const useDepsKey = deps => {
6
7
  const keyRef = useRef(0);
7
- const prevDeps = usePrevious(deps);
8
- const _useConstantReducers = useConstantReducers(objectUtilsUseCase),
9
- isEqual = _useConstantReducers.isEqual;
10
- const equal = isEqual(deps, prevDeps);
11
- const getDepsKey = useMemoizedFn(() => {
8
+ const _useConstant = useConstant(objectUtilsUseCase),
9
+ isEqual = _useConstant.isEqual;
10
+ const isChanged = useChanged(deps, (newDeps, oldDeps) => {
11
+ return !isEqual(newDeps, oldDeps);
12
+ });
13
+ const onCreate = useMemoizedFn(() => {
12
14
  const key = keyRef.current;
13
- if (equal) {
15
+ if (!isChanged) {
14
16
  return key;
15
17
  }
16
18
  const newKey = key + 1;
17
19
  keyRef.current = newKey;
18
20
  return newKey;
19
21
  });
20
- return getDepsKey();
22
+ return onCreate();
21
23
  };
@@ -1,4 +1,5 @@
1
- import { UseCaseHookOptions } from '../useUseCase/types';
1
+ import { ContextualUseCaseHookOptions } from '../useUseCase/types';
2
2
  import { EntityStore } from '@mic-rexjs/usecases';
3
3
  import { Statuses } from '../../enums/Statuses';
4
- export declare const useEntity: <T>(store: EntityStore<T>, statuses: Statuses, hookOptions: UseCaseHookOptions<T>) => T;
4
+ import { UnknownReducerMap } from '../../types';
5
+ export declare const useEntity: <T, TReducers extends UnknownReducerMap<T>>(store: EntityStore<T>, reducers: TReducers, statuses: Statuses, options: ContextualUseCaseHookOptions<T>) => T;