@mic-rexjs/usecases-react 3.3.0 → 3.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.LICENSE.txt +0 -2
- package/es/components/RenderingEventTrigger/index.d.ts +2 -0
- package/es/components/RenderingEventTrigger/index.js +7 -0
- package/es/components/RenderingEventTrigger/types.d.ts +3 -0
- package/es/hooks/useContextualItem/index.js +2 -3
- package/es/hooks/useDepsKey/index.js +19 -9
- package/es/hooks/useEntity/index.d.ts +1 -4
- package/es/hooks/useEntity/index.js +59 -50
- package/es/hooks/useEntityInitializing/index.d.ts +2 -0
- package/es/hooks/useEntityInitializing/index.js +16 -0
- package/es/hooks/useExec/index.d.ts +2 -1
- package/es/hooks/useExec/index.js +3 -3
- package/es/hooks/useExec/types.d.ts +3 -0
- package/es/hooks/useProvider/index.d.ts +1 -1
- package/es/hooks/useProvider/index.js +5 -2
- package/es/hooks/useReducers/index.js +8 -6
- package/es/hooks/useStore/index.d.ts +1 -2
- package/es/hooks/useStore/index.js +55 -69
- package/es/hooks/useUseCase/index.js +5 -6
- package/es/hooks/useUseCase/index.test.js +92 -35
- package/es/index.d.ts +2 -2
- package/es/index.js +1 -1
- package/es/methods/runEntityInitializer/index.d.ts +3 -0
- package/es/methods/runEntityInitializer/index.js +67 -0
- package/es/methods/triggerWatchers/index.js +3 -3
- package/es/usecases/lifecycleEventUseCase/index.d.ts +3 -0
- package/es/usecases/lifecycleEventUseCase/index.js +34 -0
- package/es/usecases/lifecycleEventUseCase/types.d.ts +36 -0
- package/es/usecases/lifecycleEventUseCase/types.js +1 -0
- package/es/usecases/lifecycleUseCase/index.d.ts +2 -0
- package/es/usecases/lifecycleUseCase/index.js +21 -0
- package/es/usecases/lifecycleUseCase/types.d.ts +5 -0
- package/es/usecases/lifecycleUseCase/types.js +1 -0
- package/es/usecases/methodUseCase/index.js +4 -4
- package/es/usecases/objectUtilsUseCase/index.d.ts +2 -0
- package/es/usecases/objectUtilsUseCase/index.js +131 -0
- package/es/usecases/objectUtilsUseCase/types.d.ts +14 -0
- package/es/usecases/objectUtilsUseCase/types.js +1 -0
- package/lib/components/RenderingEventTrigger/index.js +13 -0
- package/lib/hooks/useContextualItem/index.js +3 -4
- package/lib/hooks/useDepsKey/index.js +19 -10
- package/lib/hooks/useEntity/index.js +59 -50
- package/lib/hooks/useEntityInitializing/index.js +22 -0
- package/lib/hooks/useExec/index.js +3 -3
- package/lib/hooks/useProvider/index.js +5 -2
- package/lib/hooks/useReducers/index.js +9 -7
- package/lib/hooks/useStore/index.js +54 -67
- package/lib/hooks/useUseCase/index.js +6 -7
- package/lib/hooks/useUseCase/index.test.js +86 -35
- package/lib/index.js +3 -3
- package/lib/methods/runEntityInitializer/index.js +73 -0
- package/lib/methods/triggerWatchers/index.js +3 -3
- package/lib/usecases/lifecycleEventUseCase/index.js +40 -0
- package/lib/usecases/lifecycleEventUseCase/types.js +5 -0
- package/lib/usecases/{lifeCycleUseCase → lifecycleUseCase}/index.js +14 -12
- package/lib/usecases/lifecycleUseCase/types.js +5 -0
- package/lib/usecases/methodUseCase/index.js +4 -4
- package/lib/usecases/objectUtilsUseCase/index.js +140 -0
- package/lib/usecases/objectUtilsUseCase/types.js +5 -0
- package/package.json +3 -3
- package/es/usecases/lifeCycleUseCase/index.d.ts +0 -2
- package/es/usecases/lifeCycleUseCase/index.js +0 -18
- package/es/usecases/lifeCycleUseCase/types.d.ts +0 -9
- package/es/usecases/valueUseCase/index.d.ts +0 -2
- package/es/usecases/valueUseCase/index.js +0 -168
- package/es/usecases/valueUseCase/types.d.ts +0 -21
- package/lib/usecases/valueUseCase/index.js +0 -219
- /package/es/{usecases/lifeCycleUseCase → components/RenderingEventTrigger}/types.js +0 -0
- /package/es/{usecases/valueUseCase → hooks/useExec}/types.js +0 -0
- /package/lib/{usecases/lifeCycleUseCase → components/RenderingEventTrigger}/types.js +0 -0
- /package/lib/{usecases/valueUseCase → hooks/useExec}/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 r=Symbol.for("react.transitional.element");Symbol.for("react.fragment"),e.jsx=function(t,e,n){var o=null;if(void 0!==n&&(o=""+n),void 0!==e.key&&(o=""+e.key),"key"in e)for(var u in n={},e)"key"!==u&&(n[u]=e[u]);else n=e;return e=n.ref,{$$typeof:r,type:t,key:o,ref:void 0!==e?e:null,props:n}}},848(t,e,r){"use strict";t.exports=r(698)},172(t){t.exports=function(t,e){this.v=t,this.k=e},t.exports.__esModule=!0,t.exports.default=t.exports},993(t,e,r){var n=r(546);function o(){var e,r,u="function"==typeof Symbol?Symbol:{},i=u.iterator||"@@iterator",a=u.toStringTag||"@@toStringTag";function c(t,o,u,i){var a=o&&o.prototype instanceof s?o:s,c=Object.create(a.prototype);return n(c,"_invoke",function(t,n,o){var u,i,a,c=0,s=o||[],l=!1,p={p:0,n:0,v:e,a:y,f:y.bind(e,4),d:function(t,r){return u=t,i=0,a=e,p.n=r,f}};function y(t,n){for(i=t,a=n,r=0;!l&&c&&!o&&r<s.length;r++){var o,u=s[r],y=p.p,b=u[2];t>3?(o=b===n)&&(a=u[(i=u[4])?5:(i=3,3)],u[4]=u[5]=e):u[0]<=y&&((o=t<2&&y<u[1])?(i=0,p.v=n,p.n=u[1]):y<b&&(o=t<3||u[0]>n||n>b)&&(u[4]=t,u[5]=n,p.n=b,i=0))}if(o||t>1)return f;throw l=!0,n}return function(o,s,b){if(c>1)throw TypeError("Generator is already running");for(l&&1===s&&y(s,b),i=s,a=b;(r=i<2?e:a)||!l;){u||(i?i<3?(i>1&&(p.n=-1),y(i,a)):p.n=a:p.v=a);try{if(c=2,u){if(i||(o="next"),r=u[o]){if(!(r=r.call(u,a)))throw TypeError("iterator result is not an object");if(!r.done)return r;a=r.value,i<2&&(i=0)}else 1===i&&(r=u.return)&&r.call(u),i<2&&(a=TypeError("The iterator does not provide a '"+o+"' method"),i=1);u=e}else if((r=(l=p.n<0)?a:t.call(n,p))!==f)break}catch(t){u=e,i=1,a=t}finally{c=1}}return{value:r,done:l}}}(t,u,i),!0),c}var f={};function s(){}function l(){}function p(){}r=Object.getPrototypeOf;var y=[][i]?r(r([][i]())):(n(r={},i,function(){return this}),r),b=p.prototype=s.prototype=Object.create(y);function v(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,n(t,a,"GeneratorFunction")),t.prototype=Object.create(b),t}return l.prototype=p,n(b,"constructor",p),n(p,"constructor",l),l.displayName="GeneratorFunction",n(p,a,"GeneratorFunction"),n(b),n(b,a,"Generator"),n(b,i,function(){return this}),n(b,"toString",function(){return"[object Generator]"}),(t.exports=o=function(){return{w:c,m:v}},t.exports.__esModule=!0,t.exports.default=t.exports)()}t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports},869(t,e,r){var n=r(887);t.exports=function(t,e,r,o,u){var i=n(t,e,r,o,u);return i.next().then(function(t){return t.done?t.value:i.next()})},t.exports.__esModule=!0,t.exports.default=t.exports},887(t,e,r){var n=r(993),o=r(791);t.exports=function(t,e,r,u,i){return new o(n().w(t,e,r,u),i||Promise)},t.exports.__esModule=!0,t.exports.default=t.exports},791(t,e,r){var n=r(172),o=r(546);t.exports=function t(e,r){function u(t,o,i,a){try{var c=e[t](o),f=c.value;return f instanceof n?r.resolve(f.v).then(function(t){u("next",t,i,a)},function(t){u("throw",t,i,a)}):r.resolve(f).then(function(t){c.value=t,i(c)},function(t){return u("throw",t,i,a)})}catch(t){a(t)}}var i;this.next||(o(t.prototype),o(t.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),o(this,"_invoke",function(t,e,n){function o(){return new r(function(e,r){u(t,n,e,r)})}return i=i?i.then(o,o):o()},!0)},t.exports.__esModule=!0,t.exports.default=t.exports},546(t){function e(r,n,o,u){var i=Object.defineProperty;try{i({},"",{})}catch(r){i=0}t.exports=e=function(t,r,n,o){function u(r,n){e(t,r,function(t){return this._invoke(r,n,t)})}r?i?i(t,r,{value:n,enumerable:!o,configurable:!o,writable:!o}):t[r]=n:(u("next",0),u("throw",1),u("return",2))},t.exports.__esModule=!0,t.exports.default=t.exports,e(r,n,o,u)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},373(t){t.exports=function(t){var e=Object(t),r=[];for(var n in e)r.unshift(n);return function t(){for(;r.length;)if((n=r.pop())in e)return t.value=n,t.done=!1,t;return t.done=!0,t}},t.exports.__esModule=!0,t.exports.default=t.exports},633(t,e,r){var n=r(172),o=r(993),u=r(869),i=r(887),a=r(791),c=r(373),f=r(579);function s(){"use strict";var e=o(),r=e.m(s),l=(Object.getPrototypeOf?Object.getPrototypeOf(r):r.__proto__).constructor;function p(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===l||"GeneratorFunction"===(e.displayName||e.name))}var y={throw:1,return:2,break:3,continue:3};function b(t){var e,r;return function(n){e||(e={stop:function(){return r(n.a,2)},catch:function(){return n.v},abrupt:function(t,e){return r(n.a,y[t],e)},delegateYield:function(t,o,u){return e.resultName=o,r(n.d,f(t),u)},finish:function(t){return r(n.f,t)}},r=function(t,r,o){n.p=e.prev,n.n=e.next;try{return t(r,o)}finally{e.next=n.n}}),e.resultName&&(e[e.resultName]=n.v,e.resultName=void 0),e.sent=n.v,e.next=n.n;try{return t.call(this,e)}finally{n.p=e.prev,n.n=e.next}}}return(t.exports=s=function(){return{wrap:function(t,r,n,o){return e.w(b(t),r,n,o&&o.reverse())},isGeneratorFunction:p,mark:e.m,awrap:function(t,e){return new n(t,e)},AsyncIterator:a,async:function(t,e,r,n,o){return(p(e)?i:u)(b(t),e,r,n,o)},keys:c,values:f}},t.exports.__esModule=!0,t.exports.default=t.exports)()}t.exports=s,t.exports.__esModule=!0,t.exports.default=t.exports},579(t,e,r){var n=r(738).default;t.exports=function(t){if(null!=t){var e=t["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length))return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}}}throw new TypeError(n(t)+" is not iterable")},t.exports.__esModule=!0,t.exports.default=t.exports},738(t){function e(r){return t.exports=e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,e(r)}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports},756(t,e,r){var n=r(633)();t.exports=n;try{regeneratorRuntime=n}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var u=e[n]={exports:{}};return t[n](u,u.exports,r),u.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(e,r,n){return(r=function(e){var r=function(e){if("object"!=t(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=t(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==t(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function o(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(n=0;n<u.length;n++)r=u[n],-1===e.indexOf(r)&&{}.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}r.r(n),r.d(n,{UseCaseFragment:()=>L,lifeCycleUseCase:()=>Y,useProviders:()=>B,useUseCase:()=>N});var u=r(848);function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function a(t,e){if(t){if("string"==typeof t)return i(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(t,e):void 0}}function c(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,u,i,a=[],c=!0,f=!1;try{if(u=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=u.call(r)).done)&&(a.push(n.value),a.length!==e);c=!0);}catch(t){f=!0,o=t}finally{try{if(!c&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(f)throw o}}return a}}(t,e)||a(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}const f=React;var s,l=r.n(f),p=function(t){return c((0,f.useState)(t),1)[0]};!function(t){t[t.None=0]="None",t[t.Entity=2]="Entity"}(s||(s={}));var y=function(t){return c((0,f.useState)(function(){return t}),1)[0]},b=function(t,e){return p(function(){return t(e)})};const v=ahooks,d=usecases;var h;!function(t){t[t.None=0]="None",t[t.RootEnabled=2]="RootEnabled",t[t.ContextEnabled=4]="ContextEnabled",t[t.EntityEnabled=8]="EntityEnabled",t[t.ContextRootEnabled=6]="ContextRootEnabled",t[t.EntityRootEnabled=14]="EntityRootEnabled"}(h||(h={}));var O=(0,d.createUseCase)(function(){var t=new Map,e=(0,f.createContext)(null);return function(){return{createContextValue:function(t,e,r){return(r&h.EntityEnabled)===h.EntityEnabled?{store:t,reducers:e,statuses:r}:{reducers:e,statuses:r}},getUseCaseContext:function(r){return t.has(r)?t.get(r).value:e},registerUseCase:function(r,n){if(t.has(r)){var o=t.get(r),u=o.value,i=o.times;return t.set(r,{value:u,times:i+1}),u}if((n&s.Entity)!==s.Entity)return e;var a=(0,f.createContext)(null);return t.set(r,{value:a,times:1}),a},unregisterUseCase:function(e,r){if((r&s.Entity)!==s.Entity)return!1;if(!t.has(e))return!1;var n=t.get(e),o=n.value,u=n.times;return 1===u?t.delete(e):t.set(e,{value:o,times:u-1}),!0}}}}),m=function(t,e,r){return p(function(){return(0,d.createEntityReducers)(t,e,r)})};function g(t){return function(t){if(Array.isArray(t))return i(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||a(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var j=r(756),E=r.n(j);function x(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function w(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?x(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var P=(0,d.createUseCase)(function(){return function(){var e=(0,d.entityUseCase)(),r=(0,d.utilsUseCase)().createKey,n=r(),o=function(e){return"object"===t(e)&&null!==e},u=function(t,e){return!!o(t)&&Object.hasOwn(t,e)},i=function(t,e){return t!==e},a=function(t,e,r){if(t===e)return!0;var n=o(t),i=o(e),a=n?Object.keys(t):[],c=i?Object.keys(e):[],f="function"==typeof r;if(!n&&!i)return!1;for(var s=!0,l=a.length,p=[].concat(g(a),g(c)),y=0,b=p.length;y<b;y++){var v=p[y],d=a.includes(v);if(!(y>=l&&d)){var h=u(t,v),O=u(e,v),m=h?t[v]:void 0,j=O?e[v]:void 0;if(!h||!O||m!==j){if(s=!1,!f)break;r(v,j,m)}}}return s},f=E().mark(function t(e,r){return E().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(i(e,r)){t.next=1;break}return t.abrupt("return",!1);case 1:return t.next=2,r;case 2:return t.abrupt("return",!0);case 3:case"end":return t.stop()}},t)}),s=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)}),l=E().mark(function t(e,o,u){return E().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(s(e,o),"t0",1);case 1:return t.t0||(n=null!=u?u:r()),t.abrupt("return",n);case 2:case"end":return t.stop()}},t)});return w(w({},e),{},{isObjectValue:o,isValueChanged:i,matchValue:a,matchProperty:function(t,e,r,n){var o=!0,i=r,a=[{fieldPaths:[],newEntity:e,newValue:e,oldEntity:t,oldValue:t}];do{var f=a.shift(),s=f.oldValue,l=f.newValue,p=f.fieldPaths,y=c(i.match(/^([^.]+)\.(.+)$/)||[],3),b=y[1],v=void 0===b?i:b,d=y[2],h=void 0===d?"":d,O=u(s,v),m=u(l,v);if(O||m){var j=c(O?[s[v]]:[],1)[0],E=c(m?[l[v]]:[],1)[0],x={fieldPaths:[].concat(g(p),[v]),newEntity:e,newValue:E,oldEntity:t,oldValue:j};if(h){i=h,a.push(x);continue}if(E===j)continue;o=!1,null==n||n(x)}else if(!/^\d+^/.test(v))for(var w=Array.isArray(s)?s:[],P=Array.isArray(l)?l:[],C=w.length,S=P.length,_=Math.max(C,S),M=0;M<_;M++)a.push({fieldPaths:[].concat(g(p),["".concat(M)]),newEntity:e,newValue:P[M],oldEntity:t,oldValue:w[M]})}while(a.length>0);return o},recordValue:f,recordValueMatch:s,recordValueMatchWith:l})}}),C=function(t){return c((0,m(t,P).recordValueMatchWith)(t),2)[1]},S=function(t){var e=C(arguments.length>1&&void 0!==arguments[1]?arguments[1]:[t]),r=(0,v.useMemoizedFn)(function(){t()});(0,v.useCreation)(function(){r()},[e,r])},_=function(){var t=P().matchValue,e=function(e,r){var n,o=r||{},u=o.onShouldCache,i=void 0===u?function(){return!0}:u,a=o.onCompare,c=void 0===a?function(e,r){return t(e,r)}:a;return function(){for(var t=i(),r=arguments.length,o=new Array(r),u=0;u<r;u++)o[u]=arguments[u];if(n&&t){var a=n,f=a.parameters,s=a.returnValue;if(c(f,o))return s}var l=e.apply(void 0,o);return t&&(n={parameters:o,returnValue:l}),l}};return{cacheCall:e,cacheCalls:function(t,r){var n={};return Object.entries(t).forEach(function(t){var o=c(t,2),u=o[0],i=o[1];n[u]=e(i,r)}),n},captureCalls:function(t,e){var r={};return Object.keys(t).forEach(function(n){var o=t[n];r[n]="function"!=typeof o?o:function(){for(var t=arguments.length,r=new Array(t),o=0;o<t;o++)r[o]=arguments[o];return e(n,r)}}),r}}},M=function(t,e,r){var n=C(arguments.length>3&&void 0!==arguments[3]?arguments[3]:[]),o=(0,v.useLatest)(r),u=b(_).cacheCall,i=(0,v.useMemoizedFn)(function(){var t=o.current;return u(t,{onCompare:function(){return!0}})}),a=(0,v.useCreation)(function(){return i()},[n,i]);return(0,v.useCreation)(function(){return(e&h.RootEnabled)!==h.RootEnabled&&t?t:a()},[e,t,a])};function k(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function R(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?k(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):k(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var V=["watch","onChange","options"];function D(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function A(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?D(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):D(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var U=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=(0,d.entityUseCase)(),r=t.onInit;return A(A({},e),{},{initEntity:function(t){return"function"!=typeof r?t:r(t)}})};function F(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}var N=function(){for(var r,n=(r=(0,v.useLatest)(!0),(0,f.useEffect)(function(){r.current=!1}),r),u=arguments.length,i=new Array(u),a=0;a<u;a++)i[a]=arguments[a];var j=function(e){return p(function(){return"function"===t(c(e,2)[1])?s.Entity:s.None})}(i),E=function(t,e){var r=c(t,4),n=r[0],o=r[1],u=r[2],i=r[3];return(e&s.Entity)!==s.Entity?[null,n,o||{},u||[]]:[n,o,u||{},i||[]]}(i,j),x=c(E,4),w=x[0],C=x[1],k=x[2],D=x[3],A=b(_).cacheCalls,N=y(C),T=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s.None,r=p(function(){return(0,O().registerUseCase)(t,e)});return(0,v.useUnmount)(function(){(0,O().unregisterUseCase)(t,e)}),r}(N,j),I=T,G=function(t,e){var r=(0,f.useContext)(t);return(0,v.useCreation)(function(){var t=h.None,n=(r||{}).store;return(e&s.Entity)===s.Entity&&(t|=h.EntityRootEnabled),t|=r?h.ContextEnabled:h.RootEnabled,n&&(t|=h.EntityEnabled),t},[e,r])}(T,j),z=function(t,e,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],u=(0,f.useRef)(null),i=(0,f.useRef)([]),a=(r&h.EntityRootEnabled)===h.EntityRootEnabled,c=((0,f.useContext)(e)||{}).store;return M(void 0===c?null:c,r,function(){return a?function(){if("function"!=typeof t)return new d.EntityStore(t);var e=0,r=(u.current||{}).value,n=i.current,o=new d.EntityStore(r),a=[],c=P(),f=c.isObjectValue,s=c.matchValue;return(0,(0,d.createEntityReducers)(o,U,{onInit:function(e){return t(e)},onCreate:function(t,r){var o=e,u=f(r),i=u&&Array.isArray(r);if(e++,a[o]=t,!u||i)return(0,d.createEntity)(r,t);var c={},l=n[o];return s(l,t,function(e){var r=Object.getOwnPropertyDescriptor(t,e)||null;null!==r&&(c[e]=r)}),(0,d.createEntity)(r,Object.defineProperties({},c))},onGenerate:function(t,e){if(void 0===e)return[t,e];var r=(0,d.createEntity)(t,e);return o.setValue(r),[r,e]},onReturn:function(t){return o.setValue(t),t}}).initEntity)(),u.current=o,i.current=a,o}():new d.EntityStore(null)},o)}(w,I,G,k,D),L=function(t,e,r,n,u){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],a=(0,v.useLatest)(u),c=((0,f.useContext)(e)||{}).reducers,s=void 0===c?null:c,l=b(_).captureCalls;return M(s,n,function(){var e=l(u,function(t,e){var r,n,o;return null===(n=(o=a.current)[t])||void 0===n?void 0:(r=n).call.apply(r,[o].concat(g(e)))});if((n&h.EntityEnabled)!==h.EntityEnabled)return t(e);var i=e,c=(i.watch,i.onChange,i.options),f=o(i,V);return(0,d.createEntityReducers)(r,t,R(R(R({},f),c),{},{onGenerate:function(t,e){return e}}))},i)}(N,T,z,G,k,D),W=function(t,e,r,n,o){var u=(0,v.useUpdate)(),i="function"==typeof t,a=e.value,s=(0,f.useRef)(!0),l=(0,v.useLatest)(o),p=(0,f.useRef)(a),y=(n&h.EntityEnabled)===h.EntityEnabled,b=(n&h.EntityRootEnabled)===h.EntityRootEnabled,d=r.bindEntity,O=r.unbindEntity,g=m(t,P),j=g.isValueChanged,E=g.recordValue,x=(0,v.useMemoizedFn)(function(t,e){var r=l.current.watch;r&&function(t,e,r){for(var n,o=P().matchProperty,u=function(){var t=a[i],u=(n=c(t,2))[0],f=n[1];o(r,e,u,function(t){f(t)})},i=0,a=Object.entries(t);i<a.length;i++)u()}(r,t,e)}),w=(0,v.useMemoizedFn)(function(t,e){var r=l.current.onChange;p.current=t,x(t,e),null==r||r(t,e),b&&u()}),C=(0,v.useMemoizedFn)(function(){if(y){var t=p.current;a!==t&&(p.current=a,x(a,t))}});return S(function(){var r=s.current;s.current=!1,b&&(r&&(null==d||d()),i||j(t)&&(E(t),e.disableWatchers(),e.setValue(t),e.enableWatchers()))}),S(function(){y&&e.watch(w)},[y,e,w]),(0,f.useEffect)(function(){return function(){e.unwatch(w)}},[y,e,w]),(0,v.useUnmount)(function(){b&&(null==O||O())}),(0,v.useUpdateEffect)(function(){C()},[a,C]),e.value}(w,z,L,G,k),$=function(t,e,r,n){var o=r.value,u=(0,v.useCreation)(function(){return(0,O().createContextValue)(r,n,t)},[t,o,r,n]),i=(0,v.useLatest)(u);return y(function(t){var r=t.children,n=t.with,o=void 0===n?[]:n,u=e.Provider,a=i.current,c=Array.isArray(o)?o:[o];return l().createElement(u,{value:a},c.reduceRight(function(t,e){return l().createElement(e,{},t)},r))})}(G,T,z,L);return(0,v.useCreation)(function(){if((G&h.EntityEnabled)!==h.EntityEnabled)return L;var r=A(L,{onShouldCache:function(){return n.current}}),o=null===W,u=Array.isArray(W),i="object"!==t(W)||o||u?W:function(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?F(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):F(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}({},W);return[i,r,$]},[G,W,L,$,n,A])},T=function(t){var e=t.usecase,r=t.watch,n=t.onMount,o=t.onUpdate,i=t.onChange,a=c(N(e,{watch:r,onChange:i}),1)[0],s=(0,v.useMemoizedFn)(function(){null==o||o(a)});return(0,v.useMount)(function(){null==n||n(a)}),(0,v.useUpdateEffect)(function(){s()},[a,s]),(0,u.jsx)(f.Fragment,{})};function I(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function G(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?I(Object(n),!0).forEach(function(r){e(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}var z=["usecase"],L=function(t){var e=t.usecase,r=o(t,z),n=(0,N(O).getUseCaseContext)(e),i=(0,f.useContext)(n);return(0,u.jsx)(f.Fragment,{children:null===i?null:(0,u.jsx)(T,G({usecase:e},r))})};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 $(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 Y=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.onBind,r=t.onUnbind;return $($({},(0,d.entityUseCase)()),{},{bindEntity:function(t){null==e||e(t)},unbindEntity:function(t){null==r||r(t)}})},B=function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];var n=C(e),o=(0,v.useLatest)(e);return(0,v.useCreation)(function(){return o.current},[n,o])}})();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 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)}},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:()=>T,lifecycleUseCase:()=>$,useProviders:()=>B,useUseCase:()=>F});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,l=!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){l=!0,o=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)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 l=React;var f,s=n.n(l),y=function(e){return c((0,l.useState)(e),1)[0]};!function(e){e[e.None=0]="None",e[e.Entity=2]="Entity"}(f||(f={}));var v=function(e){return c((0,l.useState)(function(){return e}),1)[0]};const b=ahooks,d=usecases;var p;!function(e){e[e.None=0]="None",e[e.RootEnabled=2]="RootEnabled",e[e.ContextEnabled=4]="ContextEnabled",e[e.EntityEnabled=8]="EntityEnabled",e[e.ContextRootEnabled=6]="ContextRootEnabled",e[e.EntityRootEnabled=14]="EntityRootEnabled"}(p||(p={}));var O=(0,d.createUseCase)(function(){var e=new Map,t=(0,l.createContext)(null);return function(){return{createContextValue:function(e,t,n){return(n&p.EntityEnabled)===p.EntityEnabled?{store:e,reducers:t,statuses:n}:{reducers:t,statuses:n}},getUseCaseContext:function(n){return e.has(n)?e.get(n).value:t},registerUseCase:function(n,r){if(e.has(n)){var o=e.get(n),u=o.value,i=o.times;return e.set(n,{value:u,times:i+1}),u}if((r&f.Entity)!==f.Entity)return t;var a=(0,l.createContext)(null);return e.set(n,{value:a,times:1}),a},unregisterUseCase:function(t,n){if((n&f.Entity)!==f.Entity)return!1;if(!e.has(t))return!1;var r=e.get(t),o=r.value,u=r.times;return 1===u?e.delete(t):e.set(t,{value:o,times:u-1}),!0}}}}),E=function(e,t){return y(function(){return e(t)})};function h(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 g=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):[],l="function"==typeof o;if(!u&&!i)return!1;for(var f=!0,s=a.length,y=[].concat(h(a),h(c)),v=0,b=y.length;v<b;v++){var d=y[v],p=a.includes(d);if(!(v>=s&&p)){var O=n(e,d),E=n(r,d),g=O?e[d]:void 0,j=E?r[d]:void 0;if(!O||!E||g!==j){if(f=!1,!l)break;o(d,j,g)}}}return f},matchProperty:function(e,t,r,o){var u=!0,i=r,a=[{fieldPaths:[],newEntity:t,newValue:t,oldEntity:e,oldValue:e}];do{var l=a.shift(),f=l.oldValue,s=l.newValue,y=l.fieldPaths,v=c(i.match(/^([^.]+)\.(.+)$/)||[],3),b=v[1],d=void 0===b?i:b,p=v[2],O=void 0===p?"":p,E=n(f,d),g=n(s,d);if(E||g){var j=c(E?[f[d]]:[],1)[0],m=c(g?[s[d]]:[],1)[0],w={fieldPaths:[].concat(h(y),[d]),newEntity:t,newValue:m,oldEntity:e,oldValue:j};if(O){i=O,a.push(w);continue}if(m===j)continue;u=!1,null==o||o(w)}else if(!/^\d+^/.test(d))for(var P=Array.isArray(f)?f:[],C=Array.isArray(s)?s:[],S=P.length,x=C.length,R=Math.max(S,x),U=0;U<R;U++)a.push({fieldPaths:[].concat(h(y),["".concat(U)]),newEntity:t,newValue:C[U],oldEntity:e,oldValue:P[U]})}while(a.length>0);return u}}},j=function(e){var t=(0,l.useRef)(0),n=(0,b.usePrevious)(e),r=(0,E(g).isEqual)(e,n);return(0,b.useMemoizedFn)(function(){var e=t.current;if(r)return e;var n=e+1;return t.current=n,n})()},m=function(e){var t=j(arguments.length>1&&void 0!==arguments[1]?arguments[1]:[e]),n=(0,b.useMemoizedFn)(function(){return e()});return(0,b.useCreation)(function(){return n()},[t,n])},w=function(e){var t=(0,l.useRef)(!0),n=(e&p.EntityRootEnabled)===p.EntityRootEnabled;return m(function(){if(!n)return t.current=!0,!1;var e=t.current;return t.current=!1,e})},P=(0,d.createUseCase)(function(){var e=new Map,t=null;return function(){return{deleteLifecycleEvents:function(t){return e.delete(t)},setLifecycleEvents:function(e){t=e},getLifecycleEvents:function(t){return e.get(t)||{}},bindLifecycleEventsKey:function(n){if(null===t)return{};var r=t;return t=null,e.set(n,r),r}}}}),C=function(e){var t=e.onRendering;return null==t||t(),(0,u.jsx)(l.Fragment,{})},S=function(){var e=g().isEqual,t=function(t,n){var r,o=n||{},u=o.onShouldCache,i=void 0===u?function(){return!0}:u,a=o.onCompare,c=void 0===a?function(t,n){return e(t,n)}:a;return function(){for(var e=i(),n=arguments.length,o=new Array(n),u=0;u<n;u++)o[u]=arguments[u];if(r&&e){var a=r,l=a.parameters,f=a.returnValue;if(c(l,o))return f}var s=t.apply(void 0,o);return e&&(r={parameters:o,returnValue:s}),s}};return{cacheCall:t,cacheCalls:function(e,n){var r={};return Object.entries(e).forEach(function(e){var o=c(e,2),u=o[0],i=o[1];r[u]=t(i,n)}),r},captureCalls:function(e,t){var n={};return Object.keys(e).forEach(function(r){var o=e[r];n[r]="function"!=typeof o?o:function(){for(var e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];return t(r,n)}}),n}}},x=function(e,t,n){var r=j(arguments.length>3&&void 0!==arguments[3]?arguments[3]:[]),o=(0,b.useLatest)(n),u=(0,b.useMemoizedFn)(function(){return(0,S().cacheCall)(o.current,{onCompare:function(){return!0}})}),i=(0,b.useCreation)(function(){return u()},[r,u]);return(0,b.useCreation)(function(){return(t&p.RootEnabled)!==p.RootEnabled&&e?e:i()},[t,e,i])};function R(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 U(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?R(Object(r),!0).forEach(function(n){t(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):R(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var A=["watch","onChange","options"];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}function M(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}var V=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,d.entityUseCase)(),n=e.onInit;return M(M({},t),{},{initEntity:function(e){return"function"!=typeof n?e:n(e)}})},k=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o="function"==typeof e,u=w(n),i=(0,l.useRef)([]),a=((0,l.useContext)(t)||{}).store,f=void 0===a?null:a,s=(n&p.EntityRootEnabled)===p.EntityRootEnabled,y=c((0,l.useState)(function(){return new d.EntityStore(void 0)}),1)[0],v=(0,b.usePrevious)(e,function(){return!0});return m(function(){switch(!0){case!s:case o:return}u?y.initValue(e):e!==v&&y.setValue(e)}),x(f,n,function(){return s&&o&&(t=i.current,i.current=function(e,t,n,r){var o=!1,u=0,i=[],a=g(),c=a.isObject,l=a.isEqual,f=function(t){return!r||o?t:e.initValue(t)},s=(0,d.createEntityReducers)(e,V,{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,d.createEntity)(t,e);var f={},s=n[r];return l(s,e,function(t){var n=Object.getOwnPropertyDescriptor(e,t)||null;null!==n&&(f[t]=n)}),(0,d.createEntity)(t,Object.defineProperties({},f))},onGenerate:function(t,n){if(void 0===n)return[t,n];var r=(0,d.createEntity)(t,n);return e.setValue(r),[r,n]},onYield:function(e){return f(e)},onReturn:function(t){var n=f(t);return e.setValue(n),n}}).initEntity;return e.disableWatchers(),s(),e.enableWatchers(),o=!0,i}(y,e,t,u)),y;var t},r)};function L(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 F=function(){for(var n,r=(n=(0,b.useLatest)(!0),(0,l.useEffect)(function(){n.current=!1}),n),u=arguments.length,i=new Array(u),a=0;a<u;a++)i[a]=arguments[a];var j=function(t){return y(function(){return"function"===e(c(t,2)[1])?f.Entity:f.None})}(i),R=function(e,t){var n=c(e,4),r=n[0],o=n[1],u=n[2],i=n[3];return(t&f.Entity)!==f.Entity?[null,r,o||{},u||[]]:[r,o,u||{},i||[]]}(i,j),D=c(R,4),M=D[0],V=D[1],F=D[2],I=D[3],_=v(V),z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f.None,n=y(function(){return(0,O().registerUseCase)(e,t)});return(0,b.useUnmount)(function(){(0,O().unregisterUseCase)(e,t)}),n}(_,j),N=z,T=function(e,t){var n=(0,l.useContext)(e);return(0,b.useCreation)(function(){var e=p.None,r=(n||{}).store;return(t&f.Entity)===f.Entity&&(e|=p.EntityRootEnabled),e|=n?p.ContextEnabled:p.RootEnabled,r&&(e|=p.EntityEnabled),e},[t,n])}(z,j),q=k(M,N,T,I),$=function(e,t,n,r,u){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],a=(0,b.useLatest)(u),c=((0,l.useContext)(t)||{}).reducers,f=void 0===c?null:c,s=(r&p.EntityRootEnabled)===p.EntityRootEnabled;return x(f,r,function(){return function(){var t=(0,S().captureCalls)(u,function(e,t){var n,r,o;return null===(r=(o=a.current)[e])||void 0===r?void 0:(n=r).call.apply(n,[o].concat(h(t)))});if(!s)return e(t);var r=t,i=(r.watch,r.onChange,r.options),c=o(r,A);return(0,d.createEntityReducers)(n,e,U(U(U({},c),i),{},{onGenerate:function(e,t){return t}}))}()},i)}(_,z,q,T,F,I),B=function(e,t,n){var r=e.value,o=(0,b.useUpdate)(),u=w(t),i=(0,b.useLatest)(n),a=(0,l.useRef)(r),f=(t&p.EntityEnabled)===p.EntityEnabled,s=(t&p.EntityRootEnabled)===p.EntityRootEnabled,v=E(function(){return P()}),O=v.bindLifecycleEventsKey,h=v.getLifecycleEvents,j=v.deleteLifecycleEvents,C=y(function(){return(0,(0,d.utilsUseCase)().createKey)()}),S=(0,b.useMemoizedFn)(function(e,t){var n=i.current.watch;n&&function(e,t,n){for(var r,o=g().matchProperty,u=function(){var e=a[i],u=(r=c(e,2))[0],l=r[1];o(n,t,u,function(e){l(e)})},i=0,a=Object.entries(e);i<a.length;i++)u()}(n,e,t)}),x=(0,b.useMemoizedFn)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.current;if(f&&a.current!==e){var n=h(C).onUpdate;a.current=e,S(e,t),null==n||n(e,t)}}),R=(0,b.useMemoizedFn)(function(e,t){var n=i.current.onChange,r=h(C).onChange;x(e,t),null==n||n(e,t),null==r||r(e,t),s&&o()});return m(function(){if(s){var e=O(C).onBind;u&&(null==e||e(r))}}),(0,b.useUnmount)(function(){if(s){var t=e.value,n=h(C).onUnbind;j(C),null==n||n(t)}}),m(function(){f&&e.watch(R)},[e,f,R]),(0,l.useEffect)(function(){return function(){e.unwatch(R)}},[e,f,R]),(0,b.useUpdateEffect)(function(){x()},[r,x]),r}(q,T,F),K=function(e,t,n,r){var o=n.value,u=(0,b.useCreation)(function(){return(0,O().createContextValue)(n,r,e)},[e,o,n,r]),i=(0,b.useLatest)(u);return v(function(e){var n=e.children,r=e.with,o=void 0===r?[]:r,u=t.Provider,a=i.current,c=Array.isArray(o)?o:[o];return s().createElement(u,{value:a},c.reduceRight(function(e,t){return s().createElement(t,{},e)},n),s().createElement(C,{onRendering:void 0}))})}(T,z,q,$);return(0,b.useCreation)(function(){if((T&p.EntityEnabled)!==p.EntityEnabled)return $;var n=(0,S().cacheCalls)($,{onShouldCache:function(){return r.current}}),o=null===B,u=Array.isArray(B),i="object"!==e(B)||o||u?B:function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?L(Object(r),!0).forEach(function(n){t(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):L(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({},B);return[i,n,K]},[T,B,$,K,r])},I=function(e){var t=e.usecase,n=e.watch,r=e.onMount,o=e.onUpdate,i=e.onChange,a=c(F(t,{watch:n,onChange:i}),1)[0],f=(0,b.useMemoizedFn)(function(){null==o||o(a)});return(0,b.useMount)(function(){null==r||r(a)}),(0,b.useUpdateEffect)(function(){f()},[a,f]),(0,u.jsx)(l.Fragment,{})};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}function z(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}var N=["usecase"],T=function(e){var t=e.usecase,n=o(e,N),r=(0,F(O).getUseCaseContext)(t),i=(0,l.useContext)(r);return(0,u.jsx)(l.Fragment,{children:null===i?null:(0,u.jsx)(I,z({usecase:t},n))})};function q(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 $=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.onBind,r=e.onUnbind,o=e.onChange,u=e.onUpdate,i=P().setLifecycleEvents,a=(0,d.entityUseCase)();return i({onBind:n,onUnbind:r,onChange:o,onUpdate:u}),function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?q(Object(r),!0).forEach(function(n){t(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):q(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({},a)},B=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=j(t),o=(0,b.useLatest)(t);return(0,b.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})})();
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment } from 'react';
|
|
3
|
+
export const RenderingEventTrigger = _ref => {
|
|
4
|
+
let onRendering = _ref.onRendering;
|
|
5
|
+
onRendering === null || onRendering === void 0 || onRendering();
|
|
6
|
+
return _jsx(Fragment, {});
|
|
7
|
+
};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { useConstantReducers } from '../useConstantReducers';
|
|
2
1
|
import { useDepsKey } from '../useDepsKey';
|
|
3
2
|
import { useCreation, useLatest, useMemoizedFn } from 'ahooks';
|
|
4
3
|
import { Statuses } from '../../enums/Statuses';
|
|
@@ -7,9 +6,9 @@ export const useContextualItem = function (contextItem, statuses, createFactory)
|
|
|
7
6
|
let deps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
8
7
|
const depsKey = useDepsKey(deps);
|
|
9
8
|
const factoryRef = useLatest(createFactory);
|
|
10
|
-
const _useConstantReducers = useConstantReducers(methodUseCase),
|
|
11
|
-
cacheCall = _useConstantReducers.cacheCall;
|
|
12
9
|
const onCache = useMemoizedFn(() => {
|
|
10
|
+
const _methodUseCase = methodUseCase(),
|
|
11
|
+
cacheCall = _methodUseCase.cacheCall;
|
|
13
12
|
const currentFactory = factoryRef.current;
|
|
14
13
|
// 防止在以下 `onCreate()` 多次调用实际 `factory`
|
|
15
14
|
return cacheCall(currentFactory, {
|
|
@@ -1,11 +1,21 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { useConstantReducers } from '../useConstantReducers';
|
|
2
|
+
import { useMemoizedFn, usePrevious } from 'ahooks';
|
|
3
|
+
import { useRef } from 'react';
|
|
4
|
+
import { objectUtilsUseCase } from '../../usecases/objectUtilsUseCase';
|
|
4
5
|
export const useDepsKey = deps => {
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
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(() => {
|
|
12
|
+
const key = keyRef.current;
|
|
13
|
+
if (equal) {
|
|
14
|
+
return key;
|
|
15
|
+
}
|
|
16
|
+
const newKey = key + 1;
|
|
17
|
+
keyRef.current = newKey;
|
|
18
|
+
return newKey;
|
|
19
|
+
});
|
|
20
|
+
return getDepsKey();
|
|
11
21
|
};
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import { UseCaseHookOptions } from '../useUseCase/types';
|
|
2
2
|
import { EntityStore } from '@mic-rexjs/usecases';
|
|
3
|
-
import { ScopedEntityReducers } from '@mic-rexjs/usecases/es/methods/createEntityReducers/types';
|
|
4
|
-
import { EntityReducerMap } from '@mic-rexjs/usecases/es/types';
|
|
5
3
|
import { Statuses } from '../../enums/Statuses';
|
|
6
|
-
|
|
7
|
-
export declare const useEntity: <T, TUseCaseOptions extends object, TOptions extends UseCaseHookOptions<T, TUseCaseOptions> = UseCaseHookOptions<T, TUseCaseOptions>>(entityArg: T | EntityInitializer<T>, store: EntityStore<T>, reducers: ScopedEntityReducers<T, EntityReducerMap<T>>, statuses: Statuses, options: TOptions) => T;
|
|
4
|
+
export declare const useEntity: <T, TUseCaseOptions extends object, TOptions extends UseCaseHookOptions<T, TUseCaseOptions> = UseCaseHookOptions<T, TUseCaseOptions>>(store: EntityStore<T>, statuses: Statuses, options: TOptions) => T;
|
|
@@ -1,24 +1,32 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useConstant } from '../useConstant';
|
|
2
|
+
import { useConstantReducers } from '../useConstantReducers';
|
|
3
|
+
import { useEntityInitializing } from '../useEntityInitializing';
|
|
2
4
|
import { useExec } from '../useExec';
|
|
5
|
+
import { utilsUseCase } from '@mic-rexjs/usecases';
|
|
3
6
|
import { useLatest, useMemoizedFn, useUnmount, useUpdate, useUpdateEffect } from 'ahooks';
|
|
4
7
|
import { useEffect, useRef } from 'react';
|
|
5
8
|
import { Statuses } from '../../enums/Statuses';
|
|
6
9
|
import { triggerWatchers } from '../../methods/triggerWatchers';
|
|
7
|
-
import {
|
|
8
|
-
export const useEntity = (
|
|
9
|
-
const update = useUpdate();
|
|
10
|
-
const isFunction = typeof entityArg === 'function';
|
|
10
|
+
import { lifecycleEventUseCase } from '../../usecases/lifecycleEventUseCase';
|
|
11
|
+
export const useEntity = (store, statuses, options) => {
|
|
11
12
|
const entity = store.value;
|
|
12
|
-
const
|
|
13
|
+
const update = useUpdate();
|
|
14
|
+
const isInitializing = useEntityInitializing(statuses);
|
|
13
15
|
const optionsRef = useLatest(options);
|
|
14
16
|
const prevEntityRef = useRef(entity);
|
|
15
17
|
const entityEnabled = (statuses & Statuses.EntityEnabled) === Statuses.EntityEnabled;
|
|
16
18
|
const entityRootEnabled = (statuses & Statuses.EntityRootEnabled) === Statuses.EntityRootEnabled;
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
const _useConstantReducers = useConstantReducers(() => {
|
|
20
|
+
return lifecycleEventUseCase();
|
|
21
|
+
}),
|
|
22
|
+
bindLifecycleEventsKey = _useConstantReducers.bindLifecycleEventsKey,
|
|
23
|
+
getLifecycleEvents = _useConstantReducers.getLifecycleEvents,
|
|
24
|
+
deleteLifecycleEvents = _useConstantReducers.deleteLifecycleEvents;
|
|
25
|
+
const lifecycleKey = useConstant(() => {
|
|
26
|
+
const _utilsUseCase = utilsUseCase(),
|
|
27
|
+
createKey = _utilsUseCase.createKey;
|
|
28
|
+
return createKey();
|
|
29
|
+
});
|
|
22
30
|
const onTriggerWatchers = useMemoizedFn((newEntity, oldEntity) => {
|
|
23
31
|
const watch = optionsRef.current.watch;
|
|
24
32
|
if (!watch) {
|
|
@@ -26,49 +34,56 @@ export const useEntity = (entityArg, store, reducers, statuses, options) => {
|
|
|
26
34
|
}
|
|
27
35
|
triggerWatchers(watch, newEntity, oldEntity);
|
|
28
36
|
});
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
prevEntityRef.current
|
|
32
|
-
onTriggerWatchers(newEntity, oldEntity);
|
|
33
|
-
onChange === null || onChange === void 0 || onChange(newEntity, oldEntity);
|
|
34
|
-
if (!entityRootEnabled) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
update();
|
|
38
|
-
});
|
|
39
|
-
const onValueChange = useMemoizedFn(() => {
|
|
37
|
+
const onEntityUpdate = useMemoizedFn(function () {
|
|
38
|
+
let newEntity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : entity;
|
|
39
|
+
let oldEntity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : prevEntityRef.current;
|
|
40
40
|
if (!entityEnabled) {
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
43
|
const prevEntity = prevEntityRef.current;
|
|
44
|
-
if (
|
|
44
|
+
if (prevEntity === newEntity) {
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
const _getLifecycleEvents = getLifecycleEvents(lifecycleKey),
|
|
48
|
+
onUpdate = _getLifecycleEvents.onUpdate;
|
|
49
|
+
prevEntityRef.current = newEntity;
|
|
50
|
+
onTriggerWatchers(newEntity, oldEntity);
|
|
51
|
+
onUpdate === null || onUpdate === void 0 || onUpdate(newEntity, oldEntity);
|
|
49
52
|
});
|
|
50
|
-
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
+
const onEntityChange = useMemoizedFn((newEntity, oldEntity) => {
|
|
54
|
+
const currentOptions = optionsRef.current;
|
|
55
|
+
const onChange1 = currentOptions.onChange;
|
|
56
|
+
const _getLifecycleEvents2 = getLifecycleEvents(lifecycleKey),
|
|
57
|
+
onChange2 = _getLifecycleEvents2.onChange;
|
|
58
|
+
onEntityUpdate(newEntity, oldEntity);
|
|
59
|
+
onChange1 === null || onChange1 === void 0 || onChange1(newEntity, oldEntity);
|
|
60
|
+
onChange2 === null || onChange2 === void 0 || onChange2(newEntity, oldEntity);
|
|
53
61
|
if (!entityRootEnabled) {
|
|
54
62
|
return;
|
|
55
63
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
64
|
+
update();
|
|
65
|
+
});
|
|
66
|
+
useExec(() => {
|
|
67
|
+
if (!entityRootEnabled) {
|
|
68
|
+
return;
|
|
59
69
|
}
|
|
60
|
-
|
|
70
|
+
const _bindLifecycleEventsK = bindLifecycleEventsKey(lifecycleKey),
|
|
71
|
+
onBind = _bindLifecycleEventsK.onBind;
|
|
72
|
+
if (!isInitializing) {
|
|
61
73
|
return;
|
|
62
74
|
}
|
|
63
|
-
|
|
64
|
-
|
|
75
|
+
onBind === null || onBind === void 0 || onBind(entity);
|
|
76
|
+
});
|
|
77
|
+
useUnmount(() => {
|
|
78
|
+
if (!entityRootEnabled) {
|
|
65
79
|
return;
|
|
66
80
|
}
|
|
67
|
-
|
|
68
|
-
store.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
81
|
+
// 要使用最新的 `entity`
|
|
82
|
+
const currentEntity = store.value;
|
|
83
|
+
const _getLifecycleEvents3 = getLifecycleEvents(lifecycleKey),
|
|
84
|
+
onUnbind = _getLifecycleEvents3.onUnbind;
|
|
85
|
+
deleteLifecycleEvents(lifecycleKey);
|
|
86
|
+
onUnbind === null || onUnbind === void 0 || onUnbind(currentEntity);
|
|
72
87
|
});
|
|
73
88
|
/**
|
|
74
89
|
* 需要马上 `watch`,因为 `useEffect` 在子组件内优先执行,
|
|
@@ -79,7 +94,7 @@ export const useEntity = (entityArg, store, reducers, statuses, options) => {
|
|
|
79
94
|
return;
|
|
80
95
|
}
|
|
81
96
|
store.watch(onEntityChange);
|
|
82
|
-
}, [
|
|
97
|
+
}, [store, entityEnabled, onEntityChange]);
|
|
83
98
|
/**
|
|
84
99
|
* 在变化时候,组件更新前,使用 `unwatch`
|
|
85
100
|
*/
|
|
@@ -87,15 +102,9 @@ export const useEntity = (entityArg, store, reducers, statuses, options) => {
|
|
|
87
102
|
return () => {
|
|
88
103
|
store.unwatch(onEntityChange);
|
|
89
104
|
};
|
|
90
|
-
}, [
|
|
91
|
-
useUnmount(() => {
|
|
92
|
-
if (!entityRootEnabled) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
unbindEntity === null || unbindEntity === void 0 || unbindEntity();
|
|
96
|
-
});
|
|
105
|
+
}, [store, entityEnabled, onEntityChange]);
|
|
97
106
|
useUpdateEffect(() => {
|
|
98
|
-
|
|
99
|
-
}, [entity,
|
|
100
|
-
return
|
|
107
|
+
onEntityUpdate();
|
|
108
|
+
}, [entity, onEntityUpdate]);
|
|
109
|
+
return entity;
|
|
101
110
|
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useExec } from '../useExec';
|
|
2
|
+
import { useRef } from 'react';
|
|
3
|
+
import { Statuses } from '../../enums/Statuses';
|
|
4
|
+
export const useEntityInitializing = statuses => {
|
|
5
|
+
const isInitializingRef = useRef(true);
|
|
6
|
+
const entityRootEnabled = (statuses & Statuses.EntityRootEnabled) === Statuses.EntityRootEnabled;
|
|
7
|
+
return useExec(() => {
|
|
8
|
+
if (!entityRootEnabled) {
|
|
9
|
+
isInitializingRef.current = true;
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
const isInitializing = isInitializingRef.current;
|
|
13
|
+
isInitializingRef.current = false;
|
|
14
|
+
return isInitializing;
|
|
15
|
+
});
|
|
16
|
+
};
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import { ExecCallback } from './types';
|
|
1
2
|
import { RestArguments } from '@mic-rexjs/usecases/es/types';
|
|
2
|
-
export declare const useExec: (callback:
|
|
3
|
+
export declare const useExec: <T>(callback: ExecCallback<T>, deps?: RestArguments) => T;
|
|
@@ -4,10 +4,10 @@ export const useExec = function (callback) {
|
|
|
4
4
|
let deps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [callback];
|
|
5
5
|
const depsKey = useDepsKey(deps);
|
|
6
6
|
const execCallback = useMemoizedFn(() => {
|
|
7
|
-
callback();
|
|
7
|
+
return callback();
|
|
8
8
|
});
|
|
9
|
-
useCreation(() => {
|
|
9
|
+
return useCreation(() => {
|
|
10
10
|
void depsKey;
|
|
11
|
-
execCallback();
|
|
11
|
+
return execCallback();
|
|
12
12
|
}, [depsKey, execCallback]);
|
|
13
13
|
};
|
|
@@ -3,4 +3,4 @@ import { EntityStore } from '@mic-rexjs/usecases';
|
|
|
3
3
|
import { ReducerMap } from '@mic-rexjs/usecases/es/types';
|
|
4
4
|
import { Statuses } from '../../enums/Statuses';
|
|
5
5
|
import { UseCaseContext, UseCaseContextValue } from '../../usecases/contextUseCase/types';
|
|
6
|
-
export declare const useProvider: <T, TReducers extends ReducerMap>(statuses: Statuses, context: UseCaseContext<UseCaseContextValue<TReducers>>, store: EntityStore<T>, reducers: TReducers) => UseCaseProvider;
|
|
6
|
+
export declare const useProvider: <T, TReducers extends ReducerMap>(statuses: Statuses, context: UseCaseContext<UseCaseContextValue<TReducers>>, store: EntityStore<T>, reducers: TReducers, onRenderingEnd?: VoidFunction) => UseCaseProvider;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { useConstantFn } from '../useConstantFn';
|
|
2
2
|
import { useCreation, useLatest } from 'ahooks';
|
|
3
3
|
import React from 'react';
|
|
4
|
+
import { RenderingEventTrigger } from '../../components/RenderingEventTrigger';
|
|
4
5
|
import { contextUseCase } from '../../usecases/contextUseCase';
|
|
5
|
-
export const useProvider = (statuses, context, store, reducers) => {
|
|
6
|
+
export const useProvider = (statuses, context, store, reducers, onRenderingEnd) => {
|
|
6
7
|
const entity = store.value;
|
|
7
8
|
const contextValue = useCreation(() => {
|
|
8
9
|
const _contextUseCase = contextUseCase(),
|
|
@@ -22,6 +23,8 @@ export const useProvider = (statuses, context, store, reducers) => {
|
|
|
22
23
|
value
|
|
23
24
|
}, providers.reduceRight((currentChildren, withProvider) => {
|
|
24
25
|
return React.createElement(withProvider, {}, currentChildren);
|
|
25
|
-
}, children)
|
|
26
|
+
}, children), React.createElement(RenderingEventTrigger, {
|
|
27
|
+
onRendering: onRenderingEnd
|
|
28
|
+
}));
|
|
26
29
|
});
|
|
27
30
|
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
2
2
|
const _excluded = ["watch", "onChange", "options"];
|
|
3
|
-
import { useConstantReducers } from '../useConstantReducers';
|
|
4
3
|
import { useContextualItem } from '../useContextualItem';
|
|
5
4
|
import { createEntityReducers } from '@mic-rexjs/usecases';
|
|
6
5
|
import { useLatest } from 'ahooks';
|
|
@@ -14,14 +13,15 @@ export const useReducers = function (usecase, context, store, statuses, options)
|
|
|
14
13
|
const _ref = contextValue || {},
|
|
15
14
|
_ref$reducers = _ref.reducers,
|
|
16
15
|
contextReducers = _ref$reducers === void 0 ? null : _ref$reducers;
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
const entityRootEnabled = (statuses & Statuses.EntityRootEnabled) === Statuses.EntityRootEnabled;
|
|
17
|
+
const onCreate = () => {
|
|
18
|
+
const _methodUseCase = methodUseCase(),
|
|
19
|
+
captureCalls = _methodUseCase.captureCalls;
|
|
20
20
|
const opts = captureCalls(options, (key, callArgs) => {
|
|
21
21
|
var _optionsRef$current$k, _optionsRef$current;
|
|
22
22
|
return (_optionsRef$current$k = (_optionsRef$current = optionsRef.current)[key]) === null || _optionsRef$current$k === void 0 ? void 0 : _optionsRef$current$k.call(_optionsRef$current, ...callArgs);
|
|
23
23
|
});
|
|
24
|
-
if (
|
|
24
|
+
if (!entityRootEnabled) {
|
|
25
25
|
return usecase(opts);
|
|
26
26
|
}
|
|
27
27
|
const hookOptions = opts;
|
|
@@ -36,6 +36,8 @@ export const useReducers = function (usecase, context, store, statuses, options)
|
|
|
36
36
|
return result;
|
|
37
37
|
}
|
|
38
38
|
});
|
|
39
|
+
};
|
|
40
|
+
return useContextualItem(contextReducers, statuses, () => {
|
|
41
|
+
return onCreate();
|
|
39
42
|
}, deps);
|
|
40
|
-
return reducers;
|
|
41
43
|
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { UseCaseHookOptions } from '../useUseCase/types';
|
|
2
1
|
import { EntityReducers, EntityStore } from '@mic-rexjs/usecases';
|
|
3
2
|
import { Statuses } from '../../enums/Statuses';
|
|
4
3
|
import { Dependencies, EntityInitializer } from '../../types';
|
|
5
4
|
import { EntityUseCaseContextValue, UseCaseContext } from '../../usecases/contextUseCase/types';
|
|
6
|
-
export declare const useStore: <T
|
|
5
|
+
export declare const useStore: <T>(entityArg: T | EntityInitializer<T>, context: UseCaseContext<EntityUseCaseContextValue<T, EntityReducers<T>>>, statuses: Statuses, deps?: Dependencies) => EntityStore<T>;
|
|
@@ -1,82 +1,68 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
1
2
|
import { useContextualItem } from '../useContextualItem';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
3
|
+
import { useEntityInitializing } from '../useEntityInitializing';
|
|
4
|
+
import { useExec } from '../useExec';
|
|
5
|
+
import { EntityStore } from '@mic-rexjs/usecases';
|
|
6
|
+
import { usePrevious } from 'ahooks';
|
|
7
|
+
import { useContext, useRef, useState } from 'react';
|
|
4
8
|
import { Statuses } from '../../enums/Statuses';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
9
|
+
import { runEntityInitializer } from '../../methods/runEntityInitializer';
|
|
10
|
+
export const useStore = function (entityArg, context, statuses) {
|
|
11
|
+
let deps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
12
|
+
const isFunction = typeof entityArg === 'function';
|
|
13
|
+
const isInitializing = useEntityInitializing(statuses);
|
|
10
14
|
const createEntityListRef = useRef([]);
|
|
11
|
-
const entityRootEnabled = (statuses & Statuses.EntityRootEnabled) === Statuses.EntityRootEnabled;
|
|
12
15
|
const contextValue = useContext(context);
|
|
13
16
|
const _ref = contextValue || {},
|
|
14
17
|
_ref$store = _ref.store,
|
|
15
18
|
contextStore = _ref$store === void 0 ? null : _ref$store;
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
const entityRootEnabled = (statuses & Statuses.EntityRootEnabled) === Statuses.EntityRootEnabled;
|
|
20
|
+
const _useState = useState(() => {
|
|
21
|
+
return new EntityStore(void 0);
|
|
22
|
+
}),
|
|
23
|
+
_useState2 = _slicedToArray(_useState, 1),
|
|
24
|
+
store = _useState2[0];
|
|
25
|
+
const prevEntityArg = usePrevious(entityArg, () => {
|
|
26
|
+
return true;
|
|
27
|
+
});
|
|
28
|
+
/**
|
|
29
|
+
* 这里只有初始化和 `deps` 变化时,才会执行;
|
|
30
|
+
* 比如:`useUseCase(entityInitailizer, usecase, options, [key])`,
|
|
31
|
+
* 当首次调用 `entityInitailizer` 或 `key` 变化,才会触发以下事件
|
|
32
|
+
*/
|
|
33
|
+
const onRunInitializer = () => {
|
|
34
|
+
const createEntityList = createEntityListRef.current;
|
|
35
|
+
createEntityListRef.current = runEntityInitializer(store, entityArg, createEntityList, isInitializing);
|
|
36
|
+
};
|
|
37
|
+
const onSetEntity = () => {
|
|
38
|
+
if (isInitializing) {
|
|
39
|
+
store.initValue(entityArg);
|
|
40
|
+
return;
|
|
20
41
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const store = new EntityStore(currentEntity);
|
|
27
|
-
const createEntityList = [];
|
|
28
|
-
const _valueUseCase = valueUseCase(),
|
|
29
|
-
isObjectValue = _valueUseCase.isObjectValue,
|
|
30
|
-
matchValue = _valueUseCase.matchValue;
|
|
31
|
-
const _createEntityReducers = createEntityReducers(store, entityRuntimeUseCase, {
|
|
32
|
-
onInit(currentValue) {
|
|
33
|
-
return entityArg(currentValue);
|
|
34
|
-
},
|
|
35
|
-
onCreate(newEntity, oldEntity) {
|
|
36
|
-
const currentIndex = index;
|
|
37
|
-
const isObject = isObjectValue(oldEntity);
|
|
38
|
-
const isArray = isObject && Array.isArray(oldEntity);
|
|
39
|
-
index++;
|
|
40
|
-
createEntityList[currentIndex] = newEntity;
|
|
41
|
-
if (!isObject || isArray) {
|
|
42
|
-
return createEntity(oldEntity, newEntity);
|
|
43
|
-
}
|
|
44
|
-
const descriptors = {};
|
|
45
|
-
const prevEntity = prevCreateEntityList[currentIndex];
|
|
46
|
-
matchValue(prevEntity, newEntity, key => {
|
|
47
|
-
const descriptor = Object.getOwnPropertyDescriptor(newEntity, key) || null;
|
|
48
|
-
if (descriptor === null) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
descriptors[key] = descriptor;
|
|
52
|
-
});
|
|
53
|
-
return createEntity(oldEntity, Object.defineProperties({}, descriptors));
|
|
54
|
-
},
|
|
55
|
-
onGenerate(entity, result) {
|
|
56
|
-
if (typeof result === 'undefined') {
|
|
57
|
-
return [entity, result];
|
|
58
|
-
}
|
|
59
|
-
const newResult = createEntity(entity, result);
|
|
60
|
-
// 不能用 `store.value`,因为可能存在异步,异步更新是需要触发组件更新的
|
|
61
|
-
store.setValue(newResult);
|
|
62
|
-
return [newResult, result];
|
|
63
|
-
},
|
|
64
|
-
onReturn(result) {
|
|
65
|
-
// 不能用 `store.value`,因为可能存在异步,异步更新是需要触发组件更新的
|
|
66
|
-
store.setValue(result);
|
|
67
|
-
return result;
|
|
68
|
-
}
|
|
69
|
-
}),
|
|
70
|
-
initEntity = _createEntityReducers.initEntity;
|
|
71
|
-
initEntity();
|
|
72
|
-
storeRef.current = store;
|
|
73
|
-
createEntityListRef.current = createEntityList;
|
|
74
|
-
return store;
|
|
42
|
+
if (entityArg === prevEntityArg) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
// 执行同步操作
|
|
46
|
+
store.setValue(entityArg);
|
|
75
47
|
};
|
|
48
|
+
/**
|
|
49
|
+
* 这里仅仅是将非函数的 `entity` 同步;
|
|
50
|
+
*
|
|
51
|
+
* 比如 `useUseCase(entity, usecase)`,
|
|
52
|
+
* 当传入的 `entity` 变化时,执行一下同步操作。
|
|
53
|
+
*/
|
|
54
|
+
useExec(() => {
|
|
55
|
+
switch (true) {
|
|
56
|
+
case !entityRootEnabled:
|
|
57
|
+
case isFunction:
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
onSetEntity();
|
|
61
|
+
});
|
|
76
62
|
return useContextualItem(contextStore, statuses, () => {
|
|
77
|
-
if (
|
|
78
|
-
|
|
63
|
+
if (entityRootEnabled && isFunction) {
|
|
64
|
+
onRunInitializer();
|
|
79
65
|
}
|
|
80
|
-
return
|
|
66
|
+
return store;
|
|
81
67
|
}, deps);
|
|
82
68
|
};
|