@ram_28/kf-ai-sdk 2.0.15 → 2.0.16
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/README.md +8 -8
- package/dist/bdo/core/BaseBdo.d.ts +1 -1
- package/dist/bdo.mjs +2 -2
- package/dist/components/hooks/useActivityForm/createActivityItemProxy.d.ts +1 -1
- package/dist/components/hooks/useActivityForm/createActivityItemProxy.d.ts.map +1 -1
- package/dist/components/hooks/useActivityForm/types.d.ts +2 -2
- package/dist/components/hooks/useActivityForm/types.d.ts.map +1 -1
- package/dist/components/hooks/useActivityForm/useActivityForm.d.ts.map +1 -1
- package/dist/components/hooks/useActivityTable/types.d.ts +4 -4
- package/dist/components/hooks/useActivityTable/types.d.ts.map +1 -1
- package/dist/components/hooks/useActivityTable/useActivityTable.d.ts +1 -1
- package/dist/components/hooks/useActivityTable/useActivityTable.d.ts.map +1 -1
- package/dist/components/hooks/useBDOForm/createItemProxy.d.ts.map +1 -0
- package/dist/components/hooks/useBDOForm/createResolver.d.ts.map +1 -0
- package/dist/components/hooks/useBDOForm/index.d.ts +6 -0
- package/dist/components/hooks/useBDOForm/index.d.ts.map +1 -0
- package/dist/components/hooks/useBDOForm/shared.d.ts +50 -0
- package/dist/components/hooks/useBDOForm/shared.d.ts.map +1 -0
- package/dist/components/hooks/{useForm → useBDOForm}/types.d.ts +6 -6
- package/dist/components/hooks/useBDOForm/types.d.ts.map +1 -0
- package/dist/components/hooks/{useForm/useForm.d.ts → useBDOForm/useBDOForm.d.ts} +4 -4
- package/dist/components/hooks/useBDOForm/useBDOForm.d.ts.map +1 -0
- package/dist/components/hooks/useBDOTable/types.d.ts +1 -3
- package/dist/components/hooks/useBDOTable/types.d.ts.map +1 -1
- package/dist/components/hooks/useBDOTable/useBDOTable.d.ts.map +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.d.ts +1 -1
- package/dist/form.d.ts.map +1 -1
- package/dist/form.mjs +250 -253
- package/dist/form.types.d.ts +1 -1
- package/dist/form.types.d.ts.map +1 -1
- package/dist/shared-5a7UkED1.js +1180 -0
- package/dist/shared-nnmlRVs7.cjs +1 -0
- package/dist/table.cjs +1 -1
- package/dist/table.mjs +12 -11
- package/dist/types/constants.d.ts +3 -3
- package/dist/workflow/Activity.d.ts +15 -3
- package/dist/workflow/Activity.d.ts.map +1 -1
- package/dist/workflow/client.d.ts +2 -2
- package/dist/workflow/client.d.ts.map +1 -1
- package/dist/workflow/types.d.ts +7 -3
- package/dist/workflow/types.d.ts.map +1 -1
- package/dist/workflow.cjs +1 -1
- package/dist/workflow.mjs +503 -546
- package/docs/bdo.md +1 -1
- package/docs/gaps.md +14 -64
- package/docs/useActivityForm.md +393 -0
- package/docs/useActivityTable.md +42 -105
- package/docs/{useForm.md → useBDOForm.md} +24 -24
- package/docs/useBDOTable.md +6 -39
- package/docs/workflow.md +43 -301
- package/package.json +2 -2
- package/sdk/bdo/core/BaseBdo.ts +2 -2
- package/sdk/components/hooks/useActivityForm/createActivityItemProxy.ts +1 -1
- package/sdk/components/hooks/useActivityForm/createActivityResolver.ts +1 -1
- package/sdk/components/hooks/useActivityForm/types.ts +4 -4
- package/sdk/components/hooks/useActivityForm/useActivityForm.ts +44 -194
- package/sdk/components/hooks/useActivityTable/types.ts +4 -2
- package/sdk/components/hooks/useActivityTable/useActivityTable.ts +8 -39
- package/sdk/components/hooks/{useForm → useBDOForm}/index.ts +4 -3
- package/sdk/components/hooks/useBDOForm/shared.ts +250 -0
- package/sdk/components/hooks/{useForm → useBDOForm}/types.ts +9 -9
- package/sdk/components/hooks/{useForm/useForm.ts → useBDOForm/useBDOForm.ts} +70 -96
- package/sdk/components/hooks/useBDOTable/types.ts +1 -3
- package/sdk/components/hooks/useBDOTable/useBDOTable.ts +3 -2
- package/sdk/form.ts +2 -2
- package/sdk/form.types.ts +4 -4
- package/sdk/types/constants.ts +3 -3
- package/sdk/workflow/Activity.ts +29 -6
- package/sdk/workflow/client.ts +65 -25
- package/sdk/workflow/types.ts +10 -2
- package/dist/components/hooks/useForm/createItemProxy.d.ts.map +0 -1
- package/dist/components/hooks/useForm/createResolver.d.ts.map +0 -1
- package/dist/components/hooks/useForm/index.d.ts +0 -5
- package/dist/components/hooks/useForm/index.d.ts.map +0 -1
- package/dist/components/hooks/useForm/types.d.ts.map +0 -1
- package/dist/components/hooks/useForm/useForm.d.ts.map +0 -1
- package/dist/createResolver-AIgUwoS6.cjs +0 -1
- package/dist/createResolver-ZHXQ7QMa.js +0 -1078
- /package/dist/components/hooks/{useForm → useBDOForm}/createItemProxy.d.ts +0 -0
- /package/dist/components/hooks/{useForm → useBDOForm}/createResolver.d.ts +0 -0
- /package/sdk/components/hooks/{useForm → useBDOForm}/createItemProxy.ts +0 -0
- /package/sdk/components/hooks/{useForm → useBDOForm}/createResolver.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const W=require("react");var he=e=>e.type==="checkbox",se=e=>e instanceof Date,N=e=>e==null;const rt=e=>typeof e=="object";var T=e=>!N(e)&&!Array.isArray(e)&&rt(e)&&!se(e),mt=e=>T(e)&&e.target?he(e.target)?e.target.checked:e.target.value:e,wt=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,At=(e,r)=>e.has(wt(r)),xt=e=>{const r=e.constructor&&e.constructor.prototype;return T(r)&&r.hasOwnProperty("isPrototypeOf")},Se=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function O(e){if(e instanceof Date)return new Date(e);const r=typeof FileList<"u"&&e instanceof FileList;if(Se&&(e instanceof Blob||r))return e;const t=Array.isArray(e);if(!t&&!(T(e)&&xt(e)))return e;const n=t?[]:Object.create(Object.getPrototypeOf(e));for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=O(e[o]));return n}var Fe=e=>/^\w*$/.test(e),E=e=>e===void 0,Ce=e=>Array.isArray(e)?e.filter(Boolean):[],Te=e=>Ce(e.replace(/["|']|\]/g,"").split(/\.|\[/)),h=(e,r,t)=>{if(!r||!T(e))return t;const n=(Fe(r)?[r]:Te(r)).reduce((o,a)=>N(o)?o:o[a],e);return E(n)||n===e?E(e[r])?t:e[r]:n},K=e=>typeof e=="boolean",Z=e=>typeof e=="function",k=(e,r,t)=>{let n=-1;const o=Fe(r)?[r]:Te(r),a=o.length,u=a-1;for(;++n<a;){const c=o[n];let D=t;if(n!==u){const w=e[c];D=T(w)||Array.isArray(w)?w:isNaN(+o[n+1])?{}:[]}if(c==="__proto__"||c==="constructor"||c==="prototype")return;e[c]=D,e=e[c]}};const je={BLUR:"blur",FOCUS_OUT:"focusout"},z={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},X={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},Dt=W.createContext(null);Dt.displayName="HookFormContext";var kt=(e,r,t,n=!0)=>{const o={defaultValues:r._defaultValues};for(const a in e)Object.defineProperty(o,a,{get:()=>{const u=a;return r._proxyFormState[u]!==z.all&&(r._proxyFormState[u]=!n||z.all),e[u]}});return o};const Et=typeof window<"u"?W.useLayoutEffect:W.useEffect;var $=e=>typeof e=="string",St=(e,r,t,n,o)=>$(e)?(n&&r.watch.add(e),h(t,e,o)):Array.isArray(e)?e.map(a=>(n&&r.watch.add(a),h(t,a))):(n&&(r.watchAll=!0),t),ke=e=>N(e)||!rt(e);function ee(e,r,t=new WeakSet){if(ke(e)||ke(r))return Object.is(e,r);if(se(e)&&se(r))return Object.is(e.getTime(),r.getTime());const n=Object.keys(e),o=Object.keys(r);if(n.length!==o.length)return!1;if(t.has(e)||t.has(r))return!0;t.add(e),t.add(r);for(const a of n){const u=e[a];if(!o.includes(a))return!1;if(a!=="ref"){const c=r[a];if(se(u)&&se(c)||T(u)&&T(c)||Array.isArray(u)&&Array.isArray(c)?!ee(u,c,t):!Object.is(u,c))return!1}}return!0}var Ct=(e,r,t,n,o)=>r?{...t[e],types:{...t[e]&&t[e].types?t[e].types:{},[n]:o||!0}}:{},de=e=>Array.isArray(e)?e:[e],He=()=>{let e=[];return{get observers(){return e},next:o=>{for(const a of e)a.next&&a.next(o)},subscribe:o=>(e.push(o),{unsubscribe:()=>{e=e.filter(a=>a!==o)}}),unsubscribe:()=>{e=[]}}};function st(e,r){const t={};for(const n in e)if(e.hasOwnProperty(n)){const o=e[n],a=r[n];if(o&&T(o)&&a){const u=st(o,a);T(u)&&(t[n]=u)}else e[n]&&(t[n]=a)}return t}var B=e=>T(e)&&!Object.keys(e).length,Re=e=>e.type==="file",be=e=>{if(!Se)return!1;const r=e?e.ownerDocument:0;return e instanceof(r&&r.defaultView?r.defaultView.HTMLElement:HTMLElement)},it=e=>e.type==="select-multiple",Le=e=>e.type==="radio",Tt=e=>Le(e)||he(e),De=e=>be(e)&&e.isConnected;function Rt(e,r){const t=r.slice(0,-1).length;let n=0;for(;n<t;)e=E(e)?n++:e[r[n++]];return e}function Lt(e){for(const r in e)if(e.hasOwnProperty(r)&&!E(e[r]))return!1;return!0}function C(e,r){const t=Array.isArray(r)?r:Fe(r)?[r]:Te(r),n=t.length===1?e:Rt(e,t),o=t.length-1,a=t[o];return n&&delete n[a],o!==0&&(T(n)&&B(n)||Array.isArray(n)&&Lt(n))&&C(e,t.slice(0,-1)),e}var Ot=e=>{for(const r in e)if(Z(e[r]))return!0;return!1};function nt(e){return Array.isArray(e)||T(e)&&!Ot(e)}function Ee(e,r={}){for(const t in e){const n=e[t];nt(n)?(r[t]=Array.isArray(n)?[]:{},Ee(n,r[t])):E(n)||(r[t]=!0)}return r}function ae(e,r,t){t||(t=Ee(r));for(const n in e){const o=e[n];if(nt(o))E(r)||ke(t[n])?t[n]=Ee(o,Array.isArray(o)?[]:{}):ae(o,N(r)?{}:r[n],t[n]);else{const a=r[n];t[n]=!ee(o,a)}}return t}const Ze={value:!1,isValid:!1},ze={value:!0,isValid:!0};var at=e=>{if(Array.isArray(e)){if(e.length>1){const r=e.filter(t=>t&&t.checked&&!t.disabled).map(t=>t.value);return{value:r,isValid:!!r.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!E(e[0].attributes.value)?E(e[0].value)||e[0].value===""?ze:{value:e[0].value,isValid:!0}:ze:Ze}return Ze},lt=(e,{valueAsNumber:r,valueAsDate:t,setValueAs:n})=>E(e)?e:r?e===""?NaN:e&&+e:t&&$(e)?new Date(e):n?n(e):e;const Ke={isValid:!1,value:null};var ot=e=>Array.isArray(e)?e.reduce((r,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:r,Ke):Ke;function Ye(e){const r=e.ref;return Re(r)?r.files:Le(r)?ot(e.refs).value:it(r)?[...r.selectedOptions].map(({value:t})=>t):he(r)?at(e.refs).value:lt(E(r.value)?e.ref.value:r.value,e)}var Pt=(e,r,t,n)=>{const o={};for(const a of e){const u=h(r,a);u&&k(o,a,u._f)}return{criteriaMode:t,names:[...e],fields:o,shouldUseNativeValidation:n}},Ve=e=>e instanceof RegExp,fe=e=>E(e)?e:Ve(e)?e.source:T(e)?Ve(e.value)?e.value.source:e.value:e,Je=e=>({isOnSubmit:!e||e===z.onSubmit,isOnBlur:e===z.onBlur,isOnChange:e===z.onChange,isOnAll:e===z.all,isOnTouch:e===z.onTouched});const Qe="AsyncFunction";var Ut=e=>!!e&&!!e.validate&&!!(Z(e.validate)&&e.validate.constructor.name===Qe||T(e.validate)&&Object.values(e.validate).find(r=>r.constructor.name===Qe)),Mt=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),Xe=(e,r,t)=>!t&&(r.watchAll||r.watch.has(e)||[...r.watch].some(n=>e.startsWith(n)&&/^\.\w+/.test(e.slice(n.length))));const ye=(e,r,t,n)=>{for(const o of t||Object.keys(e)){const a=h(e,o);if(a){const{_f:u,...c}=a;if(u){if(u.refs&&u.refs[0]&&r(u.refs[0],o)&&!n)return!0;if(u.ref&&r(u.ref,u.name)&&!n)return!0;if(ye(c,r))break}else if(T(c)&&ye(c,r))break}}};function Ge(e,r,t){const n=h(e,t);if(n||Fe(t))return{error:n,name:t};const o=t.split(".");for(;o.length;){const a=o.join("."),u=h(r,a),c=h(e,a);if(u&&!Array.isArray(u)&&t!==a)return{name:t};if(c&&c.type)return{name:a,error:c};if(c&&c.root&&c.root.type)return{name:`${a}.root`,error:c.root};o.pop()}return{name:t}}var Bt=(e,r,t,n)=>{t(e);const{name:o,...a}=e;return B(a)||Object.keys(a).length>=Object.keys(r).length||Object.keys(a).find(u=>r[u]===(!n||z.all))},It=(e,r,t)=>!e||!r||e===r||de(e).some(n=>n&&(t?n===r:n.startsWith(r)||r.startsWith(n))),Nt=(e,r,t,n,o)=>o.isOnAll?!1:!t&&o.isOnTouch?!(r||e):(t?n.isOnBlur:o.isOnBlur)?!e:(t?n.isOnChange:o.isOnChange)?e:!0,qt=(e,r)=>!Ce(h(e,r)).length&&C(e,r),Wt=(e,r,t)=>{const n=de(h(e,t));return k(n,"root",r[t]),k(e,t,n),e};function et(e,r,t="validate"){if($(e)||Array.isArray(e)&&e.every($)||K(e)&&!e)return{type:t,message:$(e)?e:"",ref:r}}var ne=e=>T(e)&&!Ve(e)?e:{value:e,message:""},tt=async(e,r,t,n,o,a)=>{const{ref:u,refs:c,required:D,maxLength:w,minLength:S,min:b,max:V,pattern:v,validate:P,name:I,valueAsNumber:Y,mount:p}=e._f,_=h(t,I);if(!p||r.has(I))return{};const J=c?c[0]:u,Q=F=>{o&&J.reportValidity&&(J.setCustomValidity(K(F)?"":F||""),J.reportValidity())},R={},le=Le(u),ge=he(u),te=le||ge,ie=(Y||Re(u))&&E(u.value)&&E(_)||be(u)&&u.value===""||_===""||Array.isArray(_)&&!_.length,j=Ct.bind(null,I,n,R),ve=(F,m,L,U=X.maxLength,H=X.minLength)=>{const q=F?m:L;R[I]={type:F?U:H,message:q,ref:u,...j(F?U:H,q)}};if(a?!Array.isArray(_)||!_.length:D&&(!te&&(ie||N(_))||K(_)&&!_||ge&&!at(c).isValid||le&&!ot(c).isValid)){const{value:F,message:m}=$(D)?{value:!!D,message:D}:ne(D);if(F&&(R[I]={type:X.required,message:m,ref:J,...j(X.required,m)},!n))return Q(m),R}if(!ie&&(!N(b)||!N(V))){let F,m;const L=ne(V),U=ne(b);if(!N(_)&&!isNaN(_)){const H=u.valueAsNumber||_&&+_;N(L.value)||(F=H>L.value),N(U.value)||(m=H<U.value)}else{const H=u.valueAsDate||new Date(_),q=ce=>new Date(new Date().toDateString()+" "+ce),oe=u.type=="time",ue=u.type=="week";$(L.value)&&_&&(F=oe?q(_)>q(L.value):ue?_>L.value:H>new Date(L.value)),$(U.value)&&_&&(m=oe?q(_)<q(U.value):ue?_<U.value:H<new Date(U.value))}if((F||m)&&(ve(!!F,L.message,U.message,X.max,X.min),!n))return Q(R[I].message),R}if((w||S)&&!ie&&($(_)||a&&Array.isArray(_))){const F=ne(w),m=ne(S),L=!N(F.value)&&_.length>+F.value,U=!N(m.value)&&_.length<+m.value;if((L||U)&&(ve(L,F.message,m.message),!n))return Q(R[I].message),R}if(v&&!ie&&$(_)){const{value:F,message:m}=ne(v);if(Ve(F)&&!_.match(F)&&(R[I]={type:X.pattern,message:m,ref:u,...j(X.pattern,m)},!n))return Q(m),R}if(P){if(Z(P)){const F=await P(_,t),m=et(F,J);if(m&&(R[I]={...m,...j(X.validate,m.message)},!n))return Q(m.message),R}else if(T(P)){let F={};for(const m in P){if(!B(F)&&!n)break;const L=et(await P[m](_,t),J,m);L&&(F={...L,...j(m,L.message)},Q(L.message),n&&(R[I]=F))}if(!B(F)&&(R[I]={ref:J,...F},!n))return R}}return Q(!0),R};const $t={mode:z.onSubmit,reValidateMode:z.onChange,shouldFocusError:!0};function pt(e={}){let r={...$t,...e},t={submitCount:0,isDirty:!1,isReady:!1,isLoading:Z(r.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:r.errors||{},disabled:r.disabled||!1},n={},o=T(r.defaultValues)||T(r.values)?O(r.defaultValues||r.values)||{}:{},a=r.shouldUnregister?{}:O(o),u={action:!1,mount:!1,watch:!1,keepIsValid:!1},c={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},D,w=0;const S={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},b={...S};let V={...b};const v={array:He(),state:He()},P=r.criteriaMode===z.all,I=s=>i=>{clearTimeout(w),w=setTimeout(s,i)},Y=async s=>{if(!u.keepIsValid&&!r.disabled&&(b.isValid||V.isValid||s)){let i;r.resolver?(i=B((await te()).errors),p()):i=await j(n,!0),i!==t.isValid&&v.state.next({isValid:i})}},p=(s,i)=>{!r.disabled&&(b.isValidating||b.validatingFields||V.isValidating||V.validatingFields)&&((s||Array.from(c.mount)).forEach(l=>{l&&(i?k(t.validatingFields,l,i):C(t.validatingFields,l))}),v.state.next({validatingFields:t.validatingFields,isValidating:!B(t.validatingFields)}))},_=(s,i=[],l,y,d=!0,f=!0)=>{if(y&&l&&!r.disabled){if(u.action=!0,f&&Array.isArray(h(n,s))){const g=l(h(n,s),y.argA,y.argB);d&&k(n,s,g)}if(f&&Array.isArray(h(t.errors,s))){const g=l(h(t.errors,s),y.argA,y.argB);d&&k(t.errors,s,g),qt(t.errors,s)}if((b.touchedFields||V.touchedFields)&&f&&Array.isArray(h(t.touchedFields,s))){const g=l(h(t.touchedFields,s),y.argA,y.argB);d&&k(t.touchedFields,s,g)}(b.dirtyFields||V.dirtyFields)&&(t.dirtyFields=ae(o,a)),v.state.next({name:s,isDirty:F(s,i),dirtyFields:t.dirtyFields,errors:t.errors,isValid:t.isValid})}else k(a,s,i)},J=(s,i)=>{k(t.errors,s,i),v.state.next({errors:t.errors})},Q=s=>{t.errors=s,v.state.next({errors:t.errors,isValid:!1})},R=(s,i,l,y)=>{const d=h(n,s);if(d){const f=h(a,s,E(l)?h(o,s):l);E(f)||y&&y.defaultChecked||i?k(a,s,i?f:Ye(d._f)):U(s,f),u.mount&&!u.action&&Y()}},le=(s,i,l,y,d)=>{let f=!1,g=!1;const A={name:s};if(!r.disabled){if(!l||y){(b.isDirty||V.isDirty)&&(g=t.isDirty,t.isDirty=A.isDirty=F(),f=g!==A.isDirty);const x=ee(h(o,s),i);g=!!h(t.dirtyFields,s),x?C(t.dirtyFields,s):k(t.dirtyFields,s,!0),A.dirtyFields=t.dirtyFields,f=f||(b.dirtyFields||V.dirtyFields)&&g!==!x}if(l){const x=h(t.touchedFields,s);x||(k(t.touchedFields,s,l),A.touchedFields=t.touchedFields,f=f||(b.touchedFields||V.touchedFields)&&x!==l)}f&&d&&v.state.next(A)}return f?A:{}},ge=(s,i,l,y)=>{const d=h(t.errors,s),f=(b.isValid||V.isValid)&&K(i)&&t.isValid!==i;if(r.delayError&&l?(D=I(()=>J(s,l)),D(r.delayError)):(clearTimeout(w),D=null,l?k(t.errors,s,l):C(t.errors,s)),(l?!ee(d,l):d)||!B(y)||f){const g={...y,...f&&K(i)?{isValid:i}:{},errors:t.errors,name:s};t={...t,...g},v.state.next(g)}},te=async s=>(p(s,!0),await r.resolver(a,r.context,Pt(s||c.mount,n,r.criteriaMode,r.shouldUseNativeValidation))),ie=async s=>{const{errors:i}=await te(s);if(p(s),s)for(const l of s){const y=h(i,l);y?k(t.errors,l,y):C(t.errors,l)}else t.errors=i;return i},j=async(s,i,l={valid:!0})=>{for(const y in s){const d=s[y];if(d){const{_f:f,...g}=d;if(f){const A=c.array.has(f.name),x=d._f&&Ut(d._f);x&&b.validatingFields&&p([f.name],!0);const M=await tt(d,c.disabled,a,P,r.shouldUseNativeValidation&&!i,A);if(x&&b.validatingFields&&p([f.name]),M[f.name]&&(l.valid=!1,i||e.shouldUseNativeValidation))break;!i&&(h(M,f.name)?A?Wt(t.errors,M,f.name):k(t.errors,f.name,M[f.name]):C(t.errors,f.name))}!B(g)&&await j(g,i,l)}}return l.valid},ve=()=>{for(const s of c.unMount){const i=h(n,s);i&&(i._f.refs?i._f.refs.every(l=>!De(l)):!De(i._f.ref))&&_e(s)}c.unMount=new Set},F=(s,i)=>!r.disabled&&(s&&i&&k(a,s,i),!ee(Oe(),o)),m=(s,i,l)=>St(s,c,{...u.mount?a:E(i)?o:$(s)?{[s]:i}:i},l,i),L=s=>Ce(h(u.mount?a:o,s,r.shouldUnregister?h(o,s,[]):[])),U=(s,i,l={})=>{const y=h(n,s);let d=i;if(y){const f=y._f;f&&(!f.disabled&&k(a,s,lt(i,f)),d=be(f.ref)&&N(i)?"":i,it(f.ref)?[...f.ref.options].forEach(g=>g.selected=d.includes(g.value)):f.refs?he(f.ref)?f.refs.forEach(g=>{(!g.defaultChecked||!g.disabled)&&(Array.isArray(d)?g.checked=!!d.find(A=>A===g.value):g.checked=d===g.value||!!d)}):f.refs.forEach(g=>g.checked=g.value===d):Re(f.ref)?f.ref.value="":(f.ref.value=d,f.ref.type||v.state.next({name:s,values:O(a)})))}(l.shouldDirty||l.shouldTouch)&&le(s,d,l.shouldTouch,l.shouldDirty,!0),l.shouldValidate&&ce(s)},H=(s,i,l)=>{for(const y in i){if(!i.hasOwnProperty(y))return;const d=i[y],f=s+"."+y,g=h(n,f);(c.array.has(s)||T(d)||g&&!g._f)&&!se(d)?H(f,d,l):U(f,d,l)}},q=(s,i,l={})=>{const y=h(n,s),d=c.array.has(s),f=O(i);k(a,s,f),d?(v.array.next({name:s,values:O(a)}),(b.isDirty||b.dirtyFields||V.isDirty||V.dirtyFields)&&l.shouldDirty&&v.state.next({name:s,dirtyFields:ae(o,a),isDirty:F(s,f)})):y&&!y._f&&!N(f)?H(s,f,l):U(s,f,l),Xe(s,c)?v.state.next({...t,name:s,values:O(a)}):v.state.next({name:u.mount?s:void 0,values:O(a)})},oe=async s=>{u.mount=!0;const i=s.target;let l=i.name,y=!0;const d=h(n,l),f=x=>{y=Number.isNaN(x)||se(x)&&isNaN(x.getTime())||ee(x,h(a,l,x))},g=Je(r.mode),A=Je(r.reValidateMode);if(d){let x,M;const re=i.type?Ye(d._f):mt(s),G=s.type===je.BLUR||s.type===je.FOCUS_OUT,Vt=!Mt(d._f)&&!r.resolver&&!h(t.errors,l)&&!d._f.deps||Nt(G,h(t.touchedFields,l),t.isSubmitted,A,g),Ae=Xe(l,c,G);k(a,l,re),G?(!i||!i.readOnly)&&(d._f.onBlur&&d._f.onBlur(s),D&&D(0)):d._f.onChange&&d._f.onChange(s);const xe=le(l,re,G),Ft=!B(xe)||Ae;if(!G&&v.state.next({name:l,type:s.type,values:O(a)}),Vt)return(b.isValid||V.isValid)&&(r.mode==="onBlur"?G&&Y():G||Y()),Ft&&v.state.next({name:l,...Ae?{}:xe});if(!G&&Ae&&v.state.next({...t}),r.resolver){const{errors:$e}=await te([l]);if(p([l]),f(re),y){const _t=Ge(t.errors,n,l),pe=Ge($e,n,_t.name||l);x=pe.error,l=pe.name,M=B($e)}}else p([l],!0),x=(await tt(d,c.disabled,a,P,r.shouldUseNativeValidation))[l],p([l]),f(re),y&&(x?M=!1:(b.isValid||V.isValid)&&(M=await j(n,!0)));y&&(d._f.deps&&(!Array.isArray(d._f.deps)||d._f.deps.length>0)&&ce(d._f.deps),ge(l,M,x,xe))}},ue=(s,i)=>{if(h(t.errors,i)&&s.focus)return s.focus(),1},ce=async(s,i={})=>{let l,y;const d=de(s);if(r.resolver){const f=await ie(E(s)?s:d);l=B(f),y=s?!d.some(g=>h(f,g)):l}else s?(y=(await Promise.all(d.map(async f=>{const g=h(n,f);return await j(g&&g._f?{[f]:g}:g)}))).every(Boolean),!(!y&&!t.isValid)&&Y()):y=l=await j(n);return v.state.next({...!$(s)||(b.isValid||V.isValid)&&l!==t.isValid?{}:{name:s},...r.resolver||!s?{isValid:l}:{},errors:t.errors}),i.shouldFocus&&!y&&ye(n,ue,s?d:c.mount),y},Oe=(s,i)=>{let l={...u.mount?a:o};return i&&(l=st(i.dirtyFields?t.dirtyFields:t.touchedFields,l)),E(s)?l:$(s)?h(l,s):s.map(y=>h(l,y))},Pe=(s,i)=>({invalid:!!h((i||t).errors,s),isDirty:!!h((i||t).dirtyFields,s),error:h((i||t).errors,s),isValidating:!!h(t.validatingFields,s),isTouched:!!h((i||t).touchedFields,s)}),ft=s=>{s&&de(s).forEach(i=>C(t.errors,i)),v.state.next({errors:s?t.errors:{}})},Ue=(s,i,l)=>{const y=(h(n,s,{_f:{}})._f||{}).ref,d=h(t.errors,s)||{},{ref:f,message:g,type:A,...x}=d;k(t.errors,s,{...x,...i,ref:y}),v.state.next({name:s,errors:t.errors,isValid:!1}),l&&l.shouldFocus&&y&&y.focus&&y.focus()},dt=(s,i)=>Z(s)?v.state.subscribe({next:l=>"values"in l&&s(m(void 0,i),l)}):m(s,i,!0),Me=s=>v.state.subscribe({next:i=>{It(s.name,i.name,s.exact)&&Bt(i,s.formState||b,bt,s.reRenderRoot)&&s.callback({values:{...a},...t,...i,defaultValues:o})}}).unsubscribe,yt=s=>(u.mount=!0,V={...V,...s.formState},Me({...s,formState:{...S,...s.formState}})),_e=(s,i={})=>{for(const l of s?de(s):c.mount)c.mount.delete(l),c.array.delete(l),i.keepValue||(C(n,l),C(a,l)),!i.keepError&&C(t.errors,l),!i.keepDirty&&C(t.dirtyFields,l),!i.keepTouched&&C(t.touchedFields,l),!i.keepIsValidating&&C(t.validatingFields,l),!r.shouldUnregister&&!i.keepDefaultValue&&C(o,l);v.state.next({values:O(a)}),v.state.next({...t,...i.keepDirty?{isDirty:F()}:{}}),!i.keepIsValid&&Y()},Be=({disabled:s,name:i})=>{(K(s)&&u.mount||s||c.disabled.has(i))&&(s?c.disabled.add(i):c.disabled.delete(i))},me=(s,i={})=>{let l=h(n,s);const y=K(i.disabled)||K(r.disabled);return k(n,s,{...l||{},_f:{...l&&l._f?l._f:{ref:{name:s}},name:s,mount:!0,...i}}),c.mount.add(s),l?Be({disabled:K(i.disabled)?i.disabled:r.disabled,name:s}):R(s,!0,i.value),{...y?{disabled:i.disabled||r.disabled}:{},...r.progressive?{required:!!i.required,min:fe(i.min),max:fe(i.max),minLength:fe(i.minLength),maxLength:fe(i.maxLength),pattern:fe(i.pattern)}:{},name:s,onChange:oe,onBlur:oe,ref:d=>{if(d){me(s,i),l=h(n,s);const f=E(d.value)&&d.querySelectorAll&&d.querySelectorAll("input,select,textarea")[0]||d,g=Tt(f),A=l._f.refs||[];if(g?A.find(x=>x===f):f===l._f.ref)return;k(n,s,{_f:{...l._f,...g?{refs:[...A.filter(De),f,...Array.isArray(h(o,s))?[{}]:[]],ref:{type:f.type,name:s}}:{ref:f}}}),R(s,!1,void 0,f)}else l=h(n,s,{}),l._f&&(l._f.mount=!1),(r.shouldUnregister||i.shouldUnregister)&&!(At(c.array,s)&&u.action)&&c.unMount.add(s)}}},we=()=>r.shouldFocusError&&ye(n,ue,c.mount),ht=s=>{K(s)&&(v.state.next({disabled:s}),ye(n,(i,l)=>{const y=h(n,l);y&&(i.disabled=y._f.disabled||s,Array.isArray(y._f.refs)&&y._f.refs.forEach(d=>{d.disabled=y._f.disabled||s}))},0,!1))},Ie=(s,i)=>async l=>{let y;l&&(l.preventDefault&&l.preventDefault(),l.persist&&l.persist());let d=O(a);if(v.state.next({isSubmitting:!0}),r.resolver){const{errors:f,values:g}=await te();p(),t.errors=f,d=O(g)}else await j(n);if(c.disabled.size)for(const f of c.disabled)C(d,f);if(C(t.errors,"root"),B(t.errors)){v.state.next({errors:{}});try{await s(d,l)}catch(f){y=f}}else i&&await i({...t.errors},l),we(),setTimeout(we);if(v.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:B(t.errors)&&!y,submitCount:t.submitCount+1,errors:t.errors}),y)throw y},gt=(s,i={})=>{h(n,s)&&(E(i.defaultValue)?q(s,O(h(o,s))):(q(s,i.defaultValue),k(o,s,O(i.defaultValue))),i.keepTouched||C(t.touchedFields,s),i.keepDirty||(C(t.dirtyFields,s),t.isDirty=i.defaultValue?F(s,O(h(o,s))):F()),i.keepError||(C(t.errors,s),b.isValid&&Y()),v.state.next({...t}))},Ne=(s,i={})=>{const l=s?O(s):o,y=O(l),d=B(s),f=d?o:y;if(i.keepDefaultValues||(o=l),!i.keepValues){if(i.keepDirtyValues){const g=new Set([...c.mount,...Object.keys(ae(o,a))]);for(const A of Array.from(g)){const x=h(t.dirtyFields,A),M=h(a,A),re=h(f,A);x&&!E(M)?k(f,A,M):!x&&!E(re)&&q(A,re)}}else{if(Se&&E(s))for(const g of c.mount){const A=h(n,g);if(A&&A._f){const x=Array.isArray(A._f.refs)?A._f.refs[0]:A._f.ref;if(be(x)){const M=x.closest("form");if(M){M.reset();break}}}}if(i.keepFieldsRef)for(const g of c.mount)q(g,h(f,g));else n={}}a=r.shouldUnregister?i.keepDefaultValues?O(o):{}:O(f),v.array.next({values:{...f}}),v.state.next({values:{...f}})}c={mount:i.keepDirtyValues?c.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},u.mount=!b.isValid||!!i.keepIsValid||!!i.keepDirtyValues||!r.shouldUnregister&&!B(f),u.watch=!!r.shouldUnregister,u.keepIsValid=!!i.keepIsValid,u.action=!1,i.keepErrors||(t.errors={}),v.state.next({submitCount:i.keepSubmitCount?t.submitCount:0,isDirty:d?!1:i.keepDirty?t.isDirty:!!(i.keepDefaultValues&&!ee(s,o)),isSubmitted:i.keepIsSubmitted?t.isSubmitted:!1,dirtyFields:d?{}:i.keepDirtyValues?i.keepDefaultValues&&a?ae(o,a):t.dirtyFields:i.keepDefaultValues&&s?ae(o,s):i.keepDirty?t.dirtyFields:{},touchedFields:i.keepTouched?t.touchedFields:{},errors:i.keepErrors?t.errors:{},isSubmitSuccessful:i.keepIsSubmitSuccessful?t.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:o})},qe=(s,i)=>Ne(Z(s)?s(a):s,{...r.resetOptions,...i}),vt=(s,i={})=>{const l=h(n,s),y=l&&l._f;if(y){const d=y.refs?y.refs[0]:y.ref;d.focus&&setTimeout(()=>{d.focus(),i.shouldSelect&&Z(d.select)&&d.select()})}},bt=s=>{t={...t,...s}},We={control:{register:me,unregister:_e,getFieldState:Pe,handleSubmit:Ie,setError:Ue,_subscribe:Me,_runSchema:te,_updateIsValidating:p,_focusError:we,_getWatch:m,_getDirty:F,_setValid:Y,_setFieldArray:_,_setDisabledField:Be,_setErrors:Q,_getFieldArray:L,_reset:Ne,_resetDefaultValues:()=>Z(r.defaultValues)&&r.defaultValues().then(s=>{qe(s,r.resetOptions),v.state.next({isLoading:!1})}),_removeUnmounted:ve,_disableForm:ht,_subjects:v,_proxyFormState:b,get _fields(){return n},get _formValues(){return a},get _state(){return u},set _state(s){u=s},get _defaultValues(){return o},get _names(){return c},set _names(s){c=s},get _formState(){return t},get _options(){return r},set _options(s){r={...r,...s}}},subscribe:yt,trigger:ce,register:me,handleSubmit:Ie,watch:dt,setValue:q,getValues:Oe,reset:qe,resetField:gt,clearErrors:ft,unregister:_e,setError:Ue,setFocus:vt,getFieldState:Pe};return{...We,formControl:We}}function jt(e={}){const r=W.useRef(void 0),t=W.useRef(void 0),[n,o]=W.useState({isDirty:!1,isValidating:!1,isLoading:Z(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:Z(e.defaultValues)?void 0:e.defaultValues});if(!r.current)if(e.formControl)r.current={...e.formControl,formState:n},e.defaultValues&&!Z(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:u,...c}=pt(e);r.current={...c,formState:n}}const a=r.current.control;return a._options=e,Et(()=>{const u=a._subscribe({formState:a._proxyFormState,callback:()=>o({...a._formState}),reRenderRoot:!0});return o(c=>({...c,isReady:!0})),a._formState.isReady=!0,u},[a]),W.useEffect(()=>a._disableForm(e.disabled),[a,e.disabled]),W.useEffect(()=>{e.mode&&(a._options.mode=e.mode),e.reValidateMode&&(a._options.reValidateMode=e.reValidateMode)},[a,e.mode,e.reValidateMode]),W.useEffect(()=>{e.errors&&(a._setErrors(e.errors),a._focusError())},[a,e.errors]),W.useEffect(()=>{e.shouldUnregister&&a._subjects.state.next({values:a._getWatch()})},[a,e.shouldUnregister]),W.useEffect(()=>{if(a._proxyFormState.isDirty){const u=a._getDirty();u!==n.isDirty&&a._subjects.state.next({isDirty:u})}},[a,n.isDirty]),W.useEffect(()=>{var u;e.values&&!ee(e.values,t.current)?(a._reset(e.values,{keepFieldsRef:!0,...a._options.resetOptions}),!((u=a._options.resetOptions)===null||u===void 0)&&u.keepIsValid||a._setValid(),t.current=e.values,o(c=>({...c}))):a._resetDefaultValues()},[a,e.values]),W.useEffect(()=>{a._state.mount||(a._setValid(),a._state.mount=!0),a._state.watch&&(a._state.watch=!1,a._subjects.state.next({...a._formState})),a._removeUnmounted()}),r.current.formState=kt(n,a),r.current}function ut(e,r){const t=[];if(e.required&&(r==null||r===""||Array.isArray(r)&&r.length===0))return t.push(`${e.label} is required`),{valid:!1,errors:t};if(r==null||r==="")return{valid:!0,errors:[]};if("length"in e&&typeof e.length=="number"&&typeof r=="string"&&r.length>e.length&&t.push(`${e.label} must be at most ${e.length} characters`),"integerPart"in e&&typeof r=="number"){const n=Math.floor(Math.abs(r)),o=e.integerPart??9;n.toString().length>o&&t.push(`${e.label} integer part must be at most ${o} digits`);const a=e.fractionPart;a!==void 0&&(r.toString().split(".")[1]??"").length>a&&t.push(`${e.label} can have at most ${a} decimal places`)}return t.length>0?{valid:!1,errors:t}:{valid:!0,errors:[]}}function Ht(e,r){return async(t,n,o)=>{var D;const a={},u=e.getFields(),c=(o==null?void 0:o.names)??Object.keys(u);for(const w of c){if(w==="_id"||(D=u[w])!=null&&D.readOnly)continue;const S=u[w];if(!S)continue;let b=t[w];if("integerPart"in S&&typeof b=="string"&&b!==""){const v=Number(b);isNaN(v)||(b=v,t[w]=v)}if(!S.required&&(b==null||b===""||Array.isArray(b)&&b.length===0))continue;const V=S.validate(b);if(!V.valid&&V.errors.length>0){a[w]={type:"validate",message:V.errors[0]||`${w} is invalid`};continue}if((r==null?void 0:r.enableConstraintValidation)!==!1){const v=ut(S,b);if(!v.valid&&v.errors.length>0){a[w]={type:"constraint",message:v.errors[0]};continue}}if(e.hasMetadata()){const v=e.validateFieldExpression(w,b,t);!v.valid&&v.errors.length>0&&(a[w]={type:"validate",message:v.errors[0]})}}return Object.keys(a).length===0?{values:t,errors:{}}:{values:{},errors:a}}}function ct(e,r){const t=e.meta.Type;if(typeof r=="string"&&t==="Number")return r===""?void 0:Number(r);if(!(typeof r=="string"&&r===""&&(t==="Date"||t==="DateTime"))){if(typeof r=="string"&&r!==""&&t==="DateTime"){let n=r;return n.endsWith("Z")&&(n=n.slice(0,-1)),((n.split("T")[1]||"").match(/:/g)||[]).length===1&&(n+=":00"),n+"Z"}return r}}function Zt(e,r){var n;const t={...r};for(const[o,a]of Object.entries(t))typeof a=="string"&&((n=e[o])==null?void 0:n.meta.Type)==="DateTime"&&a.endsWith("Z")&&(t[o]=a.slice(0,-1));return t}function zt(e){const{apiFn:r,allFields:t,readonlyFieldNames:n,rhf:o,isComputingRef:a}=e;return async u=>{if(!a.current){a.current=!0;try{if(!await o.trigger(u))return;const D=o.getValues(u),w=t[u],S=w?ct(w,D):D,b=await r(u,S);if(b===void 0)return;if(o.resetField(u,{defaultValue:D,keepTouched:!0,keepError:!0}),b&&typeof b=="object"){const V=b.Data??b;if(V&&typeof V=="object"){const v=new Set(n);for(const P of Object.keys(V))v.has(P)&&V[P]!==void 0&&o.getValues(P)!==V[P]&&o.setValue(P,V[P],{shouldDirty:!1,shouldValidate:!1})}}}catch(c){console.warn("syncField failed:",c)}finally{a.current=!1}}}}function Kt(e){const{rhf:r,allFields:t,syncField:n,syncOnBlur:o,syncOnChange:a}=e;return(u,c)=>{const D=t[u],w=D?D.readOnly:!1,S=r.register(u,{...c,...o?{onBlur:async b=>{var V;await((V=c==null?void 0:c.onBlur)==null?void 0:V.call(c,b)),await n(u)}}:{},...a?{onChange:async b=>{var V;await((V=c==null?void 0:c.onChange)==null?void 0:V.call(c,b)),await n(u)}}:{},...w?{disabled:!0}:{}});return w?{...S,disabled:!0}:S}}function Yt(e){const{control:r,syncField:t,syncOnBlur:n,syncOnChange:o}=e;return new Proxy(r,{get(a,u,c){return u==="register"?(D,w)=>{const S=a.register(D,w),b=S.onChange,V=S.onBlur;return{...S,...o?{onChange:async v=>{await b(v),await t(D)}}:{},...n?{onBlur:async v=>{await V(v),await t(D)}}:{}}}:Reflect.get(a,u,c)}})}exports.coerceFieldValue=ct;exports.coerceRecordForForm=Zt;exports.createEnhancedControl=Yt;exports.createEnhancedRegister=Kt;exports.createResolver=Ht;exports.createSyncField=zt;exports.useForm=jt;exports.validateConstraints=ut;
|
package/dist/table.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./useTable-CeRklbdT.cjs"),o=require("./client-D5k4SYuw.cjs"),e=require("./constants-QX2RX-wu.cjs");function u(a){const{bdo:t,...n}=a;return i.useTable({queryKey:["table",t.meta._id],listFn:r=>o.api(t.meta._id).list(r),countFn:r=>o.api(t.meta._id).count(r),...n})}exports.useTable=i.useTable;exports.ConditionOperator=e.ConditionOperator;exports.GroupOperator=e.GroupOperator;exports.RHSType=e.RHSType;exports.SortDirection=e.SortDirection;exports.TableDefaults=e.Defaults;exports.useBDOTable=u;
|
package/dist/table.mjs
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import { u as
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { u as s } from "./useTable-DS0-WInw.js";
|
|
2
|
+
import { a } from "./client-_ayziI1d.js";
|
|
3
|
+
import { C as l, G as b, R as c, S as d, D as f } from "./constants-ConHc1oS.js";
|
|
4
|
+
function u(o) {
|
|
4
5
|
const { bdo: t, ...r } = o;
|
|
5
|
-
return
|
|
6
|
+
return s({
|
|
6
7
|
queryKey: ["table", t.meta._id],
|
|
7
|
-
listFn: (e) => t.list(e),
|
|
8
|
-
countFn: (e) => t.count(e),
|
|
8
|
+
listFn: (e) => a(t.meta._id).list(e),
|
|
9
|
+
countFn: (e) => a(t.meta._id).count(e),
|
|
9
10
|
...r
|
|
10
11
|
});
|
|
11
12
|
}
|
|
12
13
|
export {
|
|
13
14
|
l as ConditionOperator,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
b as GroupOperator,
|
|
16
|
+
c as RHSType,
|
|
17
|
+
d as SortDirection,
|
|
17
18
|
f as TableDefaults,
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
u as useBDOTable,
|
|
20
|
+
s as useTable
|
|
20
21
|
};
|
|
@@ -156,7 +156,7 @@ export declare const QueryType: {
|
|
|
156
156
|
* @example
|
|
157
157
|
* import { FormOperation } from "@ram_28/kf-ai-sdk/form";
|
|
158
158
|
*
|
|
159
|
-
* const { handleSubmit } =
|
|
159
|
+
* const { handleSubmit } = useBDOForm({
|
|
160
160
|
* source: "products",
|
|
161
161
|
* operation: FormOperation.Create,
|
|
162
162
|
* });
|
|
@@ -174,7 +174,7 @@ export declare const FormOperation: {
|
|
|
174
174
|
* @example
|
|
175
175
|
* import { InteractionMode } from "@ram_28/kf-ai-sdk/form";
|
|
176
176
|
*
|
|
177
|
-
* const { handleSubmit } =
|
|
177
|
+
* const { handleSubmit } = useBDOForm({
|
|
178
178
|
* source: "products",
|
|
179
179
|
* operation: "create",
|
|
180
180
|
* interactionMode: InteractionMode.Interactive,
|
|
@@ -192,7 +192,7 @@ export declare const InteractionMode: {
|
|
|
192
192
|
* @example
|
|
193
193
|
* import { ValidationMode } from "@ram_28/kf-ai-sdk/form";
|
|
194
194
|
*
|
|
195
|
-
* const { handleSubmit } =
|
|
195
|
+
* const { handleSubmit } = useBDOForm({
|
|
196
196
|
* source: "products",
|
|
197
197
|
* operation: "create",
|
|
198
198
|
* mode: ValidationMode.OnBlur,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ActivityInstanceType } from "./ActivityInstance";
|
|
2
2
|
import type { ActivityInstanceFieldsType, ActivityOperations } from "./types";
|
|
3
|
-
import type { ListResponseType, ListOptionsType,
|
|
3
|
+
import type { ListResponseType, ListOptionsType, MetricOptionsType, MetricResponseType } from "../types/common";
|
|
4
4
|
import { BaseField } from "../bdo/fields/BaseField";
|
|
5
5
|
/**
|
|
6
6
|
* Abstract base class for workflow activities.
|
|
@@ -69,12 +69,24 @@ export declare abstract class Activity<TEntity extends Record<string, unknown>,
|
|
|
69
69
|
getCompletedList(options?: ListOptionsType): Promise<ListResponseType<ActivityInstanceFieldsType & TEntity>>;
|
|
70
70
|
/**
|
|
71
71
|
* Get count of in-progress activity instances.
|
|
72
|
+
* Returns a number (same as BDO count()).
|
|
72
73
|
*/
|
|
73
|
-
|
|
74
|
+
inProgressCount(options?: ListOptionsType): Promise<number>;
|
|
74
75
|
/**
|
|
75
76
|
* Get count of completed activity instances.
|
|
77
|
+
* Returns a number (same as BDO count()).
|
|
76
78
|
*/
|
|
77
|
-
|
|
79
|
+
completedCount(options?: ListOptionsType): Promise<number>;
|
|
80
|
+
/**
|
|
81
|
+
* Get aggregated metrics for in-progress activity instances.
|
|
82
|
+
* Accepts MetricOptionsType (without Type) for custom aggregations (Sum, Avg, etc.).
|
|
83
|
+
*/
|
|
84
|
+
inProgressMetric(options: Omit<MetricOptionsType, 'Type'>): Promise<MetricResponseType>;
|
|
85
|
+
/**
|
|
86
|
+
* Get aggregated metrics for completed activity instances.
|
|
87
|
+
* Accepts MetricOptionsType (without Type) for custom aggregations (Sum, Avg, etc.).
|
|
88
|
+
*/
|
|
89
|
+
completedMetric(options: Omit<MetricOptionsType, 'Type'>): Promise<MetricResponseType>;
|
|
78
90
|
/**
|
|
79
91
|
* Get a typed ActivityInstance with field accessors and persistence methods.
|
|
80
92
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Activity.d.ts","sourceRoot":"","sources":["../../sdk/workflow/Activity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Activity.d.ts","sourceRoot":"","sources":["../../sdk/workflow/Activity.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,8BAAsB,QAAQ,CAC5B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAEnD,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE;IAE9C;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;QACtB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;QACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,CAAC;IAMF;;;OAGG;IACH,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,YAAY,CAAmD;IAEvE;;;OAGG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;OAGG;IACG,iBAAiB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,0BAA0B,GAAG,OAAO,CAAC,CAAC;IAInH;;;OAGG;IACG,gBAAgB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,0BAA0B,GAAG,OAAO,CAAC,CAAC;IAIlH;;;OAGG;IACG,eAAe,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjE;;;OAGG;IACG,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAKhE;;;OAGG;IACG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI7F;;;OAGG;IACG,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI5F;;;;;OAKG;IACG,WAAW,CACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAgB/D;;;OAGG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAIhD;;;OAGG;IACH,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC;CAGvC"}
|
|
@@ -21,8 +21,8 @@ import type { ActivityOperations, ActivityProgressType, WorkflowStartResponseTyp
|
|
|
21
21
|
* // List operations (by status — filtering/pagination handled server-side)
|
|
22
22
|
* await act.inProgressList();
|
|
23
23
|
* await act.completedList();
|
|
24
|
-
* await act.
|
|
25
|
-
* await act.
|
|
24
|
+
* await act.inProgressCount();
|
|
25
|
+
* await act.completedCount();
|
|
26
26
|
*
|
|
27
27
|
* // Process progress (requires instance_id)
|
|
28
28
|
* const progress = await wf.progress("bp_inst_123");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../sdk/workflow/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../sdk/workflow/client.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAEV,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,QAAQ,CAAC,CAAC,GAAG,GAAG;IAC3B,OAAO,CAAC,KAAK,CAAS;gBAEV,KAAK,EAAE,MAAM;IAIzB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAiBjD;;;;;OAKG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiBpE;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC;CAiMrD"}
|
package/dist/workflow/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ListResponseType, ListOptionsType, CountResponseType, DraftResponseType, CreateUpdateResponseType } from "../types/common";
|
|
1
|
+
import type { ListResponseType, ListOptionsType, CountResponseType, MetricOptionsType, MetricResponseType, DraftResponseType, CreateUpdateResponseType } from "../types/common";
|
|
2
2
|
import type { StringFieldType, SelectFieldType, DateTimeFieldType, UserFieldType } from "../types/base-fields";
|
|
3
3
|
/**
|
|
4
4
|
* Response from Workflow.start()
|
|
@@ -52,9 +52,13 @@ export interface ActivityOperations<T> {
|
|
|
52
52
|
/** List completed activity instances (POST .../completed/list) */
|
|
53
53
|
completedList(options?: ListOptionsType): Promise<ListResponseType<ActivityInstanceFieldsType & T>>;
|
|
54
54
|
/** Get in-progress activity count (POST .../inprogress/metric) */
|
|
55
|
-
|
|
55
|
+
inProgressCount(options?: ListOptionsType): Promise<CountResponseType>;
|
|
56
56
|
/** Get completed activity count (POST .../completed/metric) */
|
|
57
|
-
|
|
57
|
+
completedCount(options?: ListOptionsType): Promise<CountResponseType>;
|
|
58
|
+
/** Get in-progress aggregated metrics (POST .../inprogress/metric) */
|
|
59
|
+
inProgressMetric(options: Omit<MetricOptionsType, 'Type'>): Promise<MetricResponseType>;
|
|
60
|
+
/** Get completed aggregated metrics (POST .../completed/metric) */
|
|
61
|
+
completedMetric(options: Omit<MetricOptionsType, 'Type'>): Promise<MetricResponseType>;
|
|
58
62
|
/** Read the activity instance data (GET .../read) */
|
|
59
63
|
read(instanceId: string): Promise<ActivityInstanceFieldsType & T>;
|
|
60
64
|
/** Update the activity instance (POST .../update) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../sdk/workflow/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,aAAa,EACd,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnD,MAAM,EAAE,WAAW,GAAG,aAAa,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,GAAG,EAAE,eAAe,CAAC;IACrB,YAAY,EAAE,eAAe,CAAC;IAC9B,MAAM,EAAE,eAAe,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC;IACpD,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,WAAW,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IAGnC,qEAAqE;IACrE,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,0BAA0B,GAAG,CAAC,CAAC,CAAC,CAAC;IAErG,kEAAkE;IAClE,aAAa,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,0BAA0B,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpG,kEAAkE;IAClE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../sdk/workflow/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,aAAa,EACd,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnD,MAAM,EAAE,WAAW,GAAG,aAAa,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,GAAG,EAAE,eAAe,CAAC;IACrB,YAAY,EAAE,eAAe,CAAC;IAC9B,MAAM,EAAE,eAAe,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC;IACpD,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,WAAW,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IAGnC,qEAAqE;IACrE,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,0BAA0B,GAAG,CAAC,CAAC,CAAC,CAAC;IAErG,kEAAkE;IAClE,aAAa,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,0BAA0B,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpG,kEAAkE;IAClE,eAAe,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEvE,+DAA+D;IAC/D,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEtE,sEAAsE;IACtE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAExF,mEAAmE;IACnE,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAIvF,qDAAqD;IACrD,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,GAAG,CAAC,CAAC,CAAC;IAElE,qDAAqD;IACrD,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEhF,mDAAmD;IACnD,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE7E,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAElF,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEhE,+CAA+C;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;CAC/D"}
|
package/dist/workflow.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var re=Object.defineProperty;var ie=(i,t,e)=>t in i?re(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var I=(i,t,e)=>ie(i,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("./client-D5k4SYuw.cjs"),p=require("./FileField-eDeuzln8.cjs"),T=require("react"),W=require("./createResolver-AIgUwoS6.cjs"),oe=require("@tanstack/react-query"),J=require("./attachment-constants-B5jlqoKI.cjs"),z=require("./useTable-CeRklbdT.cjs"),ce=require("./metadata-DWXQPDav.cjs");class Z{constructor(t){I(this,"bp_id");this.bp_id=t}async start(){const t=await fetch(`${_.getApiBaseUrl()}/api/app/process/${this.bp_id}/start`,{method:"POST",headers:_.getDefaultHeaders()});if(!t.ok)throw new Error(`Failed to start process: ${t.statusText}`);return(await t.json()).Data}async progress(t){const e=await fetch(`${_.getApiBaseUrl()}/api/app/process/${this.bp_id}/${t}/progress`,{method:"GET",headers:_.getDefaultHeaders()});if(!e.ok)throw new Error(`Failed to get process progress: ${e.statusText}`);return(await e.json()).Data}activity(t){const e=`/api/app/process/${this.bp_id}/${t}`;return{async inProgressList(a){const s=await fetch(`${_.getApiBaseUrl()}${e}/inprogress/list`,{method:"GET",headers:_.getDefaultHeaders()});if(!s.ok)throw new Error(`Failed to list in-progress activities: ${s.statusText}`);return s.json()},async completedList(a){const s=await fetch(`${_.getApiBaseUrl()}${e}/completed/list`,{method:"GET",headers:_.getDefaultHeaders()});if(!s.ok)throw new Error(`Failed to list completed activities: ${s.statusText}`);return s.json()},async inProgressMetric(a){const s=await fetch(`${_.getApiBaseUrl()}${e}/inprogress/metric`,{method:"GET",headers:_.getDefaultHeaders()});if(!s.ok)throw new Error(`Failed to get in-progress activity count: ${s.statusText}`);return s.json()},async completedMetric(a){const s=await fetch(`${_.getApiBaseUrl()}${e}/completed/metric`,{method:"GET",headers:_.getDefaultHeaders()});if(!s.ok)throw new Error(`Failed to get completed activity count: ${s.statusText}`);return s.json()},async read(a){const s=await fetch(`${_.getApiBaseUrl()}${e}/${a}/read`,{method:"GET",headers:_.getDefaultHeaders()});if(!s.ok)throw new Error(`Failed to read activity: ${s.statusText}`);return(await s.json()).Data},async update(a,s){const o=await fetch(`${_.getApiBaseUrl()}${e}/${a}/update`,{method:"POST",headers:_.getDefaultHeaders(),body:JSON.stringify(s)});if(!o.ok)throw new Error(`Failed to update activity: ${o.statusText}`);return o.json()},async draftStart(a,s){const o=await fetch(`${_.getApiBaseUrl()}${e}/${a}/draft`,{method:"PATCH",headers:_.getDefaultHeaders(),body:JSON.stringify(s)});if(!o.ok)throw new Error(`Failed to start draft: ${o.statusText}`);return o.json()},async draftEnd(a,s){const o=await fetch(`${_.getApiBaseUrl()}${e}/${a}/draft`,{method:"POST",headers:_.getDefaultHeaders(),body:JSON.stringify(s)});if(!o.ok)throw new Error(`Failed to end draft: ${o.statusText}`);return o.json()},async complete(a){const s=await fetch(`${_.getApiBaseUrl()}${e}/${a}/done`,{method:"POST",headers:_.getDefaultHeaders()});if(!s.ok)throw new Error(`Failed to complete activity: ${s.statusText}`);return s.json()},async progress(a){const s=await fetch(`${_.getApiBaseUrl()}${e}/${a}/progress`,{method:"GET",headers:_.getDefaultHeaders()});if(!s.ok)throw new Error(`Failed to get activity progress: ${s.statusText}`);return s.json()}}}}class Q{constructor(t,e,a,s){I(this,"_id");I(this,"_data");I(this,"_ops");I(this,"_fields");I(this,"_accessorCache",new Map);this._ops=t,this._id=e,this._data={...a},this._fields=s}toJSON(){return{...this._data}}validate(){const t=[];for(const[e,a]of Object.entries(this._fields)){const s=this._data[e],o=a.validate(s);o.valid||t.push(...o.errors)}return{valid:t.length===0,errors:t}}async update(t){return this._ops.update(this._id,t)}async save(t){return this._ops.draftEnd(this._id,t)}async complete(){return this._ops.complete(this._id)}async progress(){return this._ops.progress(this._id)}_getAccessor(t){if(this._accessorCache.has(t))return this._accessorCache.get(t);const e=this._fields[t],a=(e==null?void 0:e.meta)??{_id:t,Name:t,Type:"String"},s=(e==null?void 0:e.readOnly)??!1,o=()=>e?e.validate(this._data[t]):{valid:!0,errors:[]};let r;return s?r={label:(e==null?void 0:e.label)??t,required:(e==null?void 0:e.required)??!1,readOnly:!0,defaultValue:e==null?void 0:e.defaultValue,meta:a,get:()=>this._data[t],validate:o}:r={label:(e==null?void 0:e.label)??t,required:(e==null?void 0:e.required)??!1,readOnly:!1,defaultValue:e==null?void 0:e.defaultValue,meta:a,get:()=>this._data[t],set:w=>{this._data[t]=w},validate:o},this._accessorCache.set(t,r),r}}function le(i,t,e,a){const s=new Q(i,t,e,a);return new Proxy(s,{get(o,r,w){return r==="validate"||r==="toJSON"||r==="update"||r==="save"||r==="complete"||r==="progress"||r==="_ops"||r==="_data"||r==="_fields"||r==="_accessorCache"||r==="_getAccessor"||typeof r=="symbol"?Reflect.get(o,r,w):r==="_id"?o._id:o._getAccessor(r)},has(o,r){return typeof r=="symbol"?!1:r==="validate"||r==="toJSON"||r==="update"||r==="save"||r==="complete"||r==="progress"||r==="_id"?!0:r in o._fields},ownKeys(o){return[...Object.keys(o._fields),"_id","validate","toJSON","update","save","complete","progress"]},getOwnPropertyDescriptor(o,r){if(typeof r!="symbol")return{configurable:!0,enumerable:r!=="validate"&&r!=="toJSON"&&r!=="update"&&r!=="save"&&r!=="complete"&&r!=="progress"}}})}class ue{constructor(){I(this,"_fieldsCache",null)}_ops(){return new Z(this.meta.businessProcessId).activity(this.meta.activityId)}_discoverFields(){if(this._fieldsCache)return this._fieldsCache;const t={};for(const e of Object.keys(this)){const a=this[e];a instanceof p.BaseField&&(t[e]=a)}return this._fieldsCache=t,t}async getInProgressList(t){return this._ops().inProgressList(t)}async getCompletedList(t){return this._ops().completedList(t)}async inProgressMetrics(t){return this._ops().inProgressMetric(t)}async completedMetrics(t){return this._ops().completedMetric(t)}async getInstance(t){const e=this._ops(),a=await e.read(t),s=this._discoverFields();return le(e,t,a,s)}_getFields(){return this._discoverFields()}_getOps(){return this._ops()}}function K(i,t){var s;const e={_id:i,...t},a=t.Type;if(a==="String"&&((s=t.Constraint)!=null&&s.Enum))return new p.SelectField(e);switch(a){case"String":return new p.StringField(e);case"Number":return new p.NumberField(e);case"Boolean":return new p.BooleanField(e);case"Date":return new p.DateField(e);case"DateTime":return new p.DateTimeField(e);case"Text":return new p.TextField(e);case"Reference":return new p.ReferenceField(e);case"User":return new p.UserField(e);case"File":return new p.FileField(e);default:return new p.StringField(e)}}function Y(i){const t={};for(const[e,a]of Object.entries(i))t[e]=K(e,a);return t}function de(i,t,e){var o;const a=t==null?void 0:t.BDOBlob;if(!(a!=null&&a.Activity))return null;const s=i==null?void 0:i.Id;for(const r of a.Activity)if(r.Id!==s&&(o=r.Input)!=null&&o[e])return r.Input[e];return null}function fe(i){return async(t,e,a)=>{const s={},o="_getFields"in i?i._getFields():i,r=(a==null?void 0:a.names)??Object.keys(o);for(const w of r){const A=o[w];if(!A||A.readOnly)continue;let n=t[w];typeof n=="string"&&A.meta.Type==="Number"&&(n=n===""?void 0:Number(n));const c=A.validate(n);if(!c.valid&&c.errors.length>0){s[w]={type:"validate",message:c.errors[0]||`${w} is invalid`};continue}const b=W.validateConstraints(A,n);!b.valid&&b.errors.length>0&&(s[w]={type:"constraint",message:b.errors[0]})}return Object.keys(s).length===0?{values:t,errors:{}}:{values:{},errors:s}}}function ye(i,t,e){const a=i._getFields(),s=new Map,o=`/api/app/process/${i.meta.businessProcessId}/${i.meta.activityId}`,r=_.createResourceClient(o);function w(){if(!e)throw new Error("Cannot perform attachment operation: no activity instance ID");return e}return new Proxy({},{get(A,n){if(typeof n=="symbol")return;if(n==="_id")return e;if(n==="toJSON")return()=>t.getValues();if(n==="validate")return()=>t.trigger();if(s.has(n))return s.get(n);const c=a[n],b=(c==null?void 0:c.meta)??{_id:n,Name:n,Type:"String"},R=(c==null?void 0:c.readOnly)??!1,N=()=>c?c.validate(t.getValues(n)):{valid:!0,errors:[]},P=O=>{const y=t.getValues(n);return y??O};if(!R){const O=()=>{const l=t.getValues(n);return b.Type==="File"?l??[]:l},y={label:(c==null?void 0:c.label)??n,required:(c==null?void 0:c.required)??!1,readOnly:!1,defaultValue:c==null?void 0:c.defaultValue,meta:b,get:O,getOrDefault:P,set:l=>{t.setValue(n,l,{shouldDirty:!0,shouldTouch:!0,shouldValidate:!1})},validate:N};return(b.Type==="Image"||b.Type==="File")&&(b.Type==="Image"?(y.upload=async l=>{J.validateFileExtension(l.name,"Image");const F=w(),[g]=await r.getUploadUrl(F,n,[{FileName:l.name,Size:l.size,FileExtension:J.extractFileExtension(l.name)}]);await fetch(g.UploadUrl.URL,{method:"PUT",headers:{"Content-Type":g.ContentType},body:l});const $={_id:g._id,_name:g._name,FileName:g.FileName,FileExtension:g.FileExtension,Size:g.Size,ContentType:g.ContentType};return t.setValue(n,$,{shouldDirty:!0}),$},y.deleteAttachment=async()=>{const l=t.getValues(n),F=w();if(!(l!=null&&l._id))throw new Error(`${n} has no image to delete`);await r.deleteAttachment(F,n,l._id),t.setValue(n,null,{shouldDirty:!0})},y.getDownloadUrl=async l=>{const F=t.getValues(n),g=w();if(!(F!=null&&F._id))throw new Error(`${n} has no image`);return r.getDownloadUrl(g,n,F._id,l)}):(y.upload=async l=>{for(const C of l)J.validateFileExtension(C.name,"File");const F=w(),g=l.map(C=>({FileName:C.name,Size:C.size,FileExtension:J.extractFileExtension(C.name)})),$=await r.getUploadUrl(F,n,g),q=await Promise.all(l.map(async(C,x)=>(await fetch($[x].UploadUrl.URL,{method:"PUT",headers:{"Content-Type":$[x].ContentType},body:C}),{_id:$[x]._id,_name:$[x]._name,FileName:$[x].FileName,FileExtension:$[x].FileExtension,Size:$[x].Size,ContentType:$[x].ContentType}))),u=t.getValues(n)??[];return t.setValue(n,[...u,...q],{shouldDirty:!0}),q},y.deleteAttachment=async l=>{const F=t.getValues(n)??[],g=w();await r.deleteAttachment(g,n,l),t.setValue(n,F.filter($=>$._id!==l),{shouldDirty:!0})},y.getDownloadUrl=async(l,F)=>{const g=w();return r.getDownloadUrl(g,n,l,F)},y.getDownloadUrls=async l=>{const F=w();return r.getDownloadUrls(F,n,l)})),s.set(n,y),y}const E=()=>{const O=t.getValues(n);return b.Type==="File"?O??[]:O},U={label:(c==null?void 0:c.label)??n,required:(c==null?void 0:c.required)??!1,readOnly:!0,defaultValue:c==null?void 0:c.defaultValue,meta:b,get:E,getOrDefault:P,validate:N};return(b.Type==="Image"||b.Type==="File")&&(b.Type==="Image"?U.getDownloadUrl=async O=>{const y=t.getValues(n),l=w();if(!(y!=null&&y._id))throw new Error(`${n} has no image to download`);return r.getDownloadUrl(l,n,y._id,O)}:(U.getDownloadUrl=async(O,y)=>{const l=w();return r.getDownloadUrl(l,n,O,y)},U.getDownloadUrls=async O=>{const y=w();return r.getDownloadUrls(y,n,O)})),s.set(n,U),U},has(A,n){return typeof n=="symbol"?!1:n==="_id"||n==="toJSON"||n==="validate"?!0:n in a},ownKeys(A){return[...Object.keys(a),"_id","toJSON","validate"]},getOwnPropertyDescriptor(A,n){if(typeof n!="symbol")return{configurable:!0,enumerable:n!=="toJSON"&&n!=="validate"}}})}function G(i,t){const e=i.meta.Type;if(typeof t=="string"&&e==="Number")return t===""?void 0:Number(t);if(!(typeof t=="string"&&t===""&&(e==="Date"||e==="DateTime"))){if(typeof t=="string"&&t!==""&&e==="DateTime"){let a=t;return a.endsWith("Z")&&(a=a.slice(0,-1)),((a.split("T")[1]||"").match(/:/g)||[]).length===1&&(a+=":00"),a+"Z"}return t}}function he(i,t){var a;const e={...t};for(const[s,o]of Object.entries(e))typeof o=="string"&&((a=i[s])==null?void 0:a.meta.Type)==="DateTime"&&o.endsWith("Z")&&(e[s]=o.slice(0,-1));return e}function ge(i,t){const{activity_instance_id:e,defaultValues:a={},mode:s="onBlur",enabled:o=!0}=t,[r,w]=T.useState(!1),[A,n]=T.useState(null),[c,b]=T.useState(!1),[R,N]=T.useState({}),P=T.useRef(!1),E=T.useRef(null),{data:U,isLoading:O}=oe.useQuery({queryKey:["bp-metadata",i.meta.businessProcessId],queryFn:()=>ce.getBdoSchema(i.meta.businessProcessId),staleTime:30*60*1e3}),y=T.useMemo(()=>{const f=U==null?void 0:U.BDOBlob;return f!=null&&f.Activity?f.Activity.find(d=>d.Id===i.meta.activityId)??null:null},[U,i.meta.activityId]),l=O,F=T.useMemo(()=>y!=null&&y.Input?Y(y.Input):i._getFields(),[y,i]),g=T.useMemo(()=>({...R,...F}),[R,F]),$=T.useMemo(()=>Object.keys(g).filter(f=>g[f].readOnly),[g]),q=T.useMemo(()=>fe(F),[F]),u=W.useForm({mode:s,defaultValues:a,resolver:q}),C=T.useMemo(()=>i._getOps(),[i]),x=T.useMemo(()=>ye(i,u,e),[i,u,e]);T.useEffect(()=>{if(!o||l)return;let f=!0;return(async()=>{w(!0),n(null);try{const m=await C.read(e);if(!f)return;if(m&&typeof m=="object"){const S=he(F,m),D={...a,...S};(E.current===null||m!==E.current)&&(u.reset(D),E.current=m);const V=new Set(["_id","BPInstanceId","Status","AssignedTo","CompletedAt","_created_at","_modified_at","_created_by","_modified_by","_v","_m_v"]),v={};for(const k of Object.keys(m))if(!F[k]&&!V.has(k)){const h=de(y,U,k);h&&(v[k]=K(k,{...h,ReadOnly:!0}))}Object.keys(v).length>0&&N(v)}}catch(m){if(!f)return;console.error("Failed to read activity data:",m),n(z.toError(m))}finally{f&&w(!1)}})(),()=>{f=!1}},[o,l,C,e]);const j=T.useCallback(async f=>{if(!P.current){P.current=!0;try{if(!await u.trigger(f))return;const m=u.getValues(f),S=g[f],D=S?G(S,m):m,V=await C.update(e,{[f]:D});if(u.resetField(f,{defaultValue:m,keepTouched:!0,keepError:!0}),V&&typeof V=="object"){const v=V.Data??V;if(v&&typeof v=="object"){const k=new Set($);for(const h of Object.keys(v))k.has(h)&&v[h]!==void 0&&u.getValues(h)!==v[h]&&u.setValue(h,v[h],{shouldDirty:!1,shouldValidate:!1})}}}catch(d){console.warn("syncField failed:",d)}finally{P.current=!1}}},[C,$,g,u,e]),L=s==="onChange"||s==="all",H=s==="onBlur"||s==="onTouched"||s==="all",X=T.useCallback((f,d)=>{const m=g[f],S=m?m.readOnly:!1,D=u.register(f,{...d,...H?{onBlur:async V=>{var v;await((v=d==null?void 0:d.onBlur)==null?void 0:v.call(d,V)),await j(f)}}:{},...L?{onChange:async V=>{var v;await((v=d==null?void 0:d.onChange)==null?void 0:v.call(d,V)),await j(f)}}:{},...S?{disabled:!0}:{}});return S?{...D,disabled:!0}:D},[u,g,j,H,L]),ee=T.useMemo(()=>new Proxy(u.control,{get(f,d,m){return d==="register"?(S,D)=>{const V=f.register(S,D),v=V.onChange,k=V.onBlur;return{...V,...L?{onChange:async h=>{await v(h),await j(S)}}:{},...H?{onBlur:async h=>{await k(h),await j(S)}}:{}}}:Reflect.get(f,d,m)}}),[u.control,j,L,H]),te=T.useCallback((f,d)=>u.handleSubmit(async(m,S)=>{b(!0);try{const D={},V=new Set($),v=u.formState.dirtyFields,k=u.getValues();for(const h of Object.keys(k)){if(V.has(h)||!v[h])continue;const B=k[h]!==void 0?k[h]:m[h],M=g[h];D[h]=M?G(M,B):B}Object.keys(D).length>0&&await C.update(e,D),await(f==null?void 0:f(m,S))}catch(D){d==null||d(z.toError(D),S)}finally{b(!1)}},(m,S)=>{d==null||d(m,S)}),[u,C,$,g,e]),se=T.useCallback((f,d)=>u.handleSubmit(async(m,S)=>{b(!0);try{const D={},V=new Set($),v=u.formState.dirtyFields,k=u.getValues();for(const h of Object.keys(k)){if(V.has(h)||!v[h])continue;const B=k[h]!==void 0?k[h]:m[h],M=g[h];D[h]=M?G(M,B):B}Object.keys(D).length>0&&await C.update(e,D),await C.complete(e),await(f==null?void 0:f(m,S))}catch(D){d==null||d(z.toError(D),S)}finally{b(!1)}},(m,S)=>{d==null||d(m,S)}),[u,C,$,g,e]),ae=T.useCallback(()=>{u.clearErrors()},[u]),ne=!!A;return{item:x,activity:i,register:X,handleSubmit:te,handleComplete:se,watch:u.watch,setValue:u.setValue,getValues:u.getValues,reset:u.reset,trigger:u.trigger,control:ee,errors:u.formState.errors,isValid:u.formState.isValid,isDirty:u.formState.isDirty,isSubmitting:u.formState.isSubmitting||c,isSubmitSuccessful:u.formState.isSubmitSuccessful,isLoading:r||l,isMetadataLoading:l,loadError:A,hasError:ne,bpMetadata:U??null,clearErrors:ae}}const me=new Set(["_id","BPInstanceId","Status","AssignedTo","CompletedAt"]);function we(i){const t={},e={};for(const[a,s]of Object.entries(i))me.has(a)?t[a]=s:e[a]=s;return t.ADO=e,t}function _e(i,t){const{status:e,...a}=t,{businessProcessId:s,activityId:o}=i.meta,r=T.useMemo(()=>i._getOps(),[i]),w=T.useMemo(()=>{const n=e==="inprogress"?c=>r.inProgressList(c):c=>r.completedList(c);return async c=>{const b=await n(c);return{...b,Data:b.Data.map(we)}}},[r,e]),A=T.useMemo(()=>e==="inprogress"?n=>r.inProgressMetric(n):n=>r.completedMetric(n),[r,e]);return z.useTable({queryKey:["activity-table",s,o,e],listFn:w,countFn:A,...a})}const Fe={InProgress:"inprogress",Completed:"completed"};exports.Activity=ue;exports.ActivityInstance=Q;exports.ActivityTableStatus=Fe;exports.Workflow=Z;exports.buildFieldsFromInput=Y;exports.createFieldFromMeta=K;exports.useActivityForm=ge;exports.useActivityTable=_e;
|
|
1
|
+
"use strict";var ne=Object.defineProperty;var ie=(o,t,e)=>t in o?ne(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e;var V=(o,t,e)=>ie(o,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("./client-D5k4SYuw.cjs"),A=require("./FileField-eDeuzln8.cjs"),h=require("react"),k=require("./shared-nnmlRVs7.cjs"),oe=require("@tanstack/react-query"),z=require("./attachment-constants-B5jlqoKI.cjs"),G=require("./useTable-CeRklbdT.cjs"),ce=require("./metadata-DWXQPDav.cjs");class W{constructor(t){V(this,"bp_id");this.bp_id=t}async start(){const t=await fetch(`${y.getApiBaseUrl()}/api/app/process/${this.bp_id}/start`,{method:"POST",headers:y.getDefaultHeaders()});if(!t.ok)throw new Error(`Failed to start process: ${t.statusText}`);return(await t.json()).Data}async progress(t){const e=await fetch(`${y.getApiBaseUrl()}/api/app/process/${this.bp_id}/${t}/progress`,{method:"GET",headers:y.getDefaultHeaders()});if(!e.ok)throw new Error(`Failed to get process progress: ${e.statusText}`);return(await e.json()).Data}activity(t){const e=`/api/app/process/${this.bp_id}/${t}`;return{async inProgressList(a){const r=await fetch(`${y.getApiBaseUrl()}${e}/inprogress/list`,{method:"POST",headers:y.getDefaultHeaders(),body:a?JSON.stringify(a):void 0});if(!r.ok)throw new Error(`Failed to list in-progress activities: ${r.statusText}`);return r.json()},async completedList(a){const r=await fetch(`${y.getApiBaseUrl()}${e}/completed/list`,{method:"POST",headers:y.getDefaultHeaders(),body:a?JSON.stringify(a):void 0});if(!r.ok)throw new Error(`Failed to list completed activities: ${r.statusText}`);return r.json()},async inProgressCount(a){var w,s;const r={Type:"Metric",GroupBy:[],Metric:[{Field:"_id",Type:"Count"}],...(a==null?void 0:a.Filter)&&{Filter:a.Filter}},i=await fetch(`${y.getApiBaseUrl()}${e}/inprogress/metric`,{method:"POST",headers:y.getDefaultHeaders(),body:JSON.stringify(r)});if(!i.ok)throw new Error(`Failed to get in-progress count: ${i.statusText}`);return{Count:((s=(w=(await i.json()).Data)==null?void 0:w[0])==null?void 0:s.count__id)??0}},async completedCount(a){var w,s;const r={Type:"Metric",GroupBy:[],Metric:[{Field:"_id",Type:"Count"}],...(a==null?void 0:a.Filter)&&{Filter:a.Filter}},i=await fetch(`${y.getApiBaseUrl()}${e}/completed/metric`,{method:"POST",headers:y.getDefaultHeaders(),body:JSON.stringify(r)});if(!i.ok)throw new Error(`Failed to get completed count: ${i.statusText}`);return{Count:((s=(w=(await i.json()).Data)==null?void 0:w[0])==null?void 0:s.count__id)??0}},async inProgressMetric(a){const r={Type:"Metric",...a},i=await fetch(`${y.getApiBaseUrl()}${e}/inprogress/metric`,{method:"POST",headers:y.getDefaultHeaders(),body:JSON.stringify(r)});if(!i.ok)throw new Error(`Failed to get in-progress metrics: ${i.statusText}`);return i.json()},async completedMetric(a){const r={Type:"Metric",...a},i=await fetch(`${y.getApiBaseUrl()}${e}/completed/metric`,{method:"POST",headers:y.getDefaultHeaders(),body:JSON.stringify(r)});if(!i.ok)throw new Error(`Failed to get completed metrics: ${i.statusText}`);return i.json()},async read(a){const r=await fetch(`${y.getApiBaseUrl()}${e}/${a}/read`,{method:"GET",headers:y.getDefaultHeaders()});if(!r.ok)throw new Error(`Failed to read activity: ${r.statusText}`);return(await r.json()).Data},async update(a,r){const i=await fetch(`${y.getApiBaseUrl()}${e}/${a}/update`,{method:"POST",headers:y.getDefaultHeaders(),body:JSON.stringify(r)});if(!i.ok)throw new Error(`Failed to update activity: ${i.statusText}`);return i.json()},async draftStart(a,r){const i=await fetch(`${y.getApiBaseUrl()}${e}/${a}/draft`,{method:"PATCH",headers:y.getDefaultHeaders(),body:JSON.stringify(r)});if(!i.ok)throw new Error(`Failed to start draft: ${i.statusText}`);return i.json()},async draftEnd(a,r){const i=await fetch(`${y.getApiBaseUrl()}${e}/${a}/draft`,{method:"POST",headers:y.getDefaultHeaders(),body:JSON.stringify(r)});if(!i.ok)throw new Error(`Failed to end draft: ${i.statusText}`);return i.json()},async complete(a){const r=await fetch(`${y.getApiBaseUrl()}${e}/${a}/done`,{method:"POST",headers:y.getDefaultHeaders()});if(!r.ok)throw new Error(`Failed to complete activity: ${r.statusText}`);return r.json()},async progress(a){const r=await fetch(`${y.getApiBaseUrl()}${e}/${a}/progress`,{method:"GET",headers:y.getDefaultHeaders()});if(!r.ok)throw new Error(`Failed to get activity progress: ${r.statusText}`);return r.json()}}}}class X{constructor(t,e,a,r){V(this,"_id");V(this,"_data");V(this,"_ops");V(this,"_fields");V(this,"_accessorCache",new Map);this._ops=t,this._id=e,this._data={...a},this._fields=r}toJSON(){return{...this._data}}validate(){const t=[];for(const[e,a]of Object.entries(this._fields)){const r=this._data[e],i=a.validate(r);i.valid||t.push(...i.errors)}return{valid:t.length===0,errors:t}}async update(t){return this._ops.update(this._id,t)}async save(t){return this._ops.draftEnd(this._id,t)}async complete(){return this._ops.complete(this._id)}async progress(){return this._ops.progress(this._id)}_getAccessor(t){if(this._accessorCache.has(t))return this._accessorCache.get(t);const e=this._fields[t],a=(e==null?void 0:e.meta)??{_id:t,Name:t,Type:"String"},r=(e==null?void 0:e.readOnly)??!1,i=()=>e?e.validate(this._data[t]):{valid:!0,errors:[]};let n;return r?n={label:(e==null?void 0:e.label)??t,required:(e==null?void 0:e.required)??!1,readOnly:!0,defaultValue:e==null?void 0:e.defaultValue,meta:a,get:()=>this._data[t],validate:i}:n={label:(e==null?void 0:e.label)??t,required:(e==null?void 0:e.required)??!1,readOnly:!1,defaultValue:e==null?void 0:e.defaultValue,meta:a,get:()=>this._data[t],set:f=>{this._data[t]=f},validate:i},this._accessorCache.set(t,n),n}}function le(o,t,e,a){const r=new X(o,t,e,a);return new Proxy(r,{get(i,n,f){return n==="validate"||n==="toJSON"||n==="update"||n==="save"||n==="complete"||n==="progress"||n==="_ops"||n==="_data"||n==="_fields"||n==="_accessorCache"||n==="_getAccessor"||typeof n=="symbol"?Reflect.get(i,n,f):n==="_id"?i._id:i._getAccessor(n)},has(i,n){return typeof n=="symbol"?!1:n==="validate"||n==="toJSON"||n==="update"||n==="save"||n==="complete"||n==="progress"||n==="_id"?!0:n in i._fields},ownKeys(i){return[...Object.keys(i._fields),"_id","validate","toJSON","update","save","complete","progress"]},getOwnPropertyDescriptor(i,n){if(typeof n!="symbol")return{configurable:!0,enumerable:n!=="validate"&&n!=="toJSON"&&n!=="update"&&n!=="save"&&n!=="complete"&&n!=="progress"}}})}class ue{constructor(){V(this,"_fieldsCache",null)}_ops(){return new W(this.meta.businessProcessId).activity(this.meta.activityId)}_discoverFields(){if(this._fieldsCache)return this._fieldsCache;const t={};for(const e of Object.keys(this)){const a=this[e];a instanceof A.BaseField&&(t[e]=a)}return this._fieldsCache=t,t}async getInProgressList(t){return this._ops().inProgressList(t)}async getCompletedList(t){return this._ops().completedList(t)}async inProgressCount(t){return(await this._ops().inProgressCount(t)).Count}async completedCount(t){return(await this._ops().completedCount(t)).Count}async inProgressMetric(t){return this._ops().inProgressMetric(t)}async completedMetric(t){return this._ops().completedMetric(t)}async getInstance(t){const e=this._ops(),a=await e.read(t),r=this._discoverFields();return le(e,t,a,r)}_getFields(){return this._discoverFields()}_getOps(){return this._ops()}}function K(o,t){var r;const e={_id:o,...t},a=t.Type;if(a==="String"&&((r=t.Constraint)!=null&&r.Enum))return new A.SelectField(e);switch(a){case"String":return new A.StringField(e);case"Number":return new A.NumberField(e);case"Boolean":return new A.BooleanField(e);case"Date":return new A.DateField(e);case"DateTime":return new A.DateTimeField(e);case"Text":return new A.TextField(e);case"Reference":return new A.ReferenceField(e);case"User":return new A.UserField(e);case"File":return new A.FileField(e);default:return new A.StringField(e)}}function Y(o){const t={};for(const[e,a]of Object.entries(o))t[e]=K(e,a);return t}function de(o,t,e){var i;const a=t==null?void 0:t.BDOBlob;if(!(a!=null&&a.Activity))return null;const r=o==null?void 0:o.Id;for(const n of a.Activity)if(n.Id!==r&&(i=n.Input)!=null&&i[e])return n.Input[e];return null}function ye(o){return async(t,e,a)=>{const r={},i="_getFields"in o?o._getFields():o,n=(a==null?void 0:a.names)??Object.keys(i);for(const f of n){const w=i[f];if(!w||w.readOnly)continue;let s=t[f];typeof s=="string"&&w.meta.Type==="Number"&&(s=s===""?void 0:Number(s));const l=w.validate(s);if(!l.valid&&l.errors.length>0){r[f]={type:"validate",message:l.errors[0]||`${f} is invalid`};continue}const v=k.validateConstraints(w,s);!v.valid&&v.errors.length>0&&(r[f]={type:"constraint",message:v.errors[0]})}return Object.keys(r).length===0?{values:t,errors:{}}:{values:{},errors:r}}}function fe(o,t,e){const a=o._getFields(),r=new Map,i=`/api/app/process/${o.meta.businessProcessId}/${o.meta.activityId}`,n=y.createResourceClient(i);function f(){if(!e)throw new Error("Cannot perform attachment operation: no activity instance ID");return e}return new Proxy({},{get(w,s){if(typeof s=="symbol")return;if(s==="_id")return e;if(s==="toJSON")return()=>t.getValues();if(s==="validate")return()=>t.trigger();if(r.has(s))return r.get(s);const l=a[s],v=(l==null?void 0:l.meta)??{_id:s,Name:s,Type:"String"},E=(l==null?void 0:l.readOnly)??!1,I=()=>l?l.validate(t.getValues(s)):{valid:!0,errors:[]},q=$=>{const d=t.getValues(s);return d??$};if(!E){const $=()=>{const c=t.getValues(s);return v.Type==="File"?c??[]:c},d={label:(l==null?void 0:l.label)??s,required:(l==null?void 0:l.required)??!1,readOnly:!1,defaultValue:l==null?void 0:l.defaultValue,meta:v,get:$,getOrDefault:q,set:c=>{t.setValue(s,c,{shouldDirty:!0,shouldTouch:!0,shouldValidate:!1})},validate:I};return(v.Type==="Image"||v.Type==="File")&&(v.Type==="Image"?(d.upload=async c=>{z.validateFileExtension(c.name,"Image");const m=f(),[g]=await n.getUploadUrl(m,s,[{FileName:c.name,Size:c.size,FileExtension:z.extractFileExtension(c.name)}]);await fetch(g.UploadUrl.URL,{method:"PUT",headers:{"Content-Type":g.ContentType},body:c});const F={_id:g._id,_name:g._name,FileName:g.FileName,FileExtension:g.FileExtension,Size:g.Size,ContentType:g.ContentType};return t.setValue(s,F,{shouldDirty:!0}),F},d.deleteAttachment=async()=>{const c=t.getValues(s),m=f();if(!(c!=null&&c._id))throw new Error(`${s} has no image to delete`);await n.deleteAttachment(m,s,c._id),t.setValue(s,null,{shouldDirty:!0})},d.getDownloadUrl=async c=>{const m=t.getValues(s),g=f();if(!(m!=null&&m._id))throw new Error(`${s} has no image`);return n.getDownloadUrl(g,s,m._id,c)}):(d.upload=async c=>{for(const O of c)z.validateFileExtension(O.name,"File");const m=f(),g=c.map(O=>({FileName:O.name,Size:O.size,FileExtension:z.extractFileExtension(O.name)})),F=await n.getUploadUrl(m,s,g),R=await Promise.all(c.map(async(O,P)=>(await fetch(F[P].UploadUrl.URL,{method:"PUT",headers:{"Content-Type":F[P].ContentType},body:O}),{_id:F[P]._id,_name:F[P]._name,FileName:F[P].FileName,FileExtension:F[P].FileExtension,Size:F[P].Size,ContentType:F[P].ContentType}))),u=t.getValues(s)??[];return t.setValue(s,[...u,...R],{shouldDirty:!0}),R},d.deleteAttachment=async c=>{const m=t.getValues(s)??[],g=f();await n.deleteAttachment(g,s,c),t.setValue(s,m.filter(F=>F._id!==c),{shouldDirty:!0})},d.getDownloadUrl=async(c,m)=>{const g=f();return n.getDownloadUrl(g,s,c,m)},d.getDownloadUrls=async c=>{const m=f();return n.getDownloadUrls(m,s,c)})),r.set(s,d),d}const B=()=>{const $=t.getValues(s);return v.Type==="File"?$??[]:$},D={label:(l==null?void 0:l.label)??s,required:(l==null?void 0:l.required)??!1,readOnly:!0,defaultValue:l==null?void 0:l.defaultValue,meta:v,get:B,getOrDefault:q,validate:I};return(v.Type==="Image"||v.Type==="File")&&(v.Type==="Image"?D.getDownloadUrl=async $=>{const d=t.getValues(s),c=f();if(!(d!=null&&d._id))throw new Error(`${s} has no image to download`);return n.getDownloadUrl(c,s,d._id,$)}:(D.getDownloadUrl=async($,d)=>{const c=f();return n.getDownloadUrl(c,s,$,d)},D.getDownloadUrls=async $=>{const d=f();return n.getDownloadUrls(d,s,$)})),r.set(s,D),D},has(w,s){return typeof s=="symbol"?!1:s==="_id"||s==="toJSON"||s==="validate"?!0:s in a},ownKeys(w){return[...Object.keys(a),"_id","toJSON","validate"]},getOwnPropertyDescriptor(w,s){if(typeof s!="symbol")return{configurable:!0,enumerable:s!=="toJSON"&&s!=="validate"}}})}function ge(o,t){const{activity_instance_id:e,defaultValues:a={},mode:r="onBlur",enabled:i=!0}=t,[n,f]=h.useState(!1),[w,s]=h.useState(null),[l,v]=h.useState(!1),[E,I]=h.useState({}),q=h.useRef(!1),B=h.useRef(null),{data:D,isLoading:$}=oe.useQuery({queryKey:["bp-metadata",o.meta.businessProcessId],queryFn:()=>ce.getBdoSchema(o.meta.businessProcessId),staleTime:30*60*1e3}),d=h.useMemo(()=>{const _=D==null?void 0:D.BDOBlob;return _!=null&&_.Activity?_.Activity.find(b=>b.Id===o.meta.activityId)??null:null},[D,o.meta.activityId]),c=$,m=h.useMemo(()=>d!=null&&d.Input?Y(d.Input):o._getFields(),[d,o]),g=h.useMemo(()=>({...E,...m}),[E,m]),F=h.useMemo(()=>Object.keys(g).filter(_=>g[_].readOnly),[g]),R=h.useMemo(()=>ye(m),[m]),u=k.useForm({mode:r,defaultValues:a,resolver:R}),O=h.useMemo(()=>o._getOps(),[o]),P=h.useMemo(()=>fe(o,u,e),[o,u,e]);h.useEffect(()=>{if(!i||c)return;let _=!0;return(async()=>{f(!0),s(null);try{const T=await O.read(e);if(!_)return;if(T&&typeof T=="object"){const U=k.coerceRecordForForm(m,T),p={...a,...U};(B.current===null||T!==B.current)&&(u.reset(p),B.current=T);const M=new Set(["_id","BPInstanceId","Status","AssignedTo","CompletedAt","_created_at","_modified_at","_created_by","_modified_by","_v","_m_v"]),x={};for(const C of Object.keys(T))if(!m[C]&&!M.has(C)){const S=de(d,D,C);S&&(x[C]=K(C,{...S,ReadOnly:!0}))}Object.keys(x).length>0&&I(x)}}catch(T){if(!_)return;console.error("Failed to read activity data:",T),s(G.toError(T))}finally{_&&f(!1)}})(),()=>{_=!1}},[i,c,O,e]);const Q=h.useCallback((_,b)=>O.update(e,{[_]:b}),[O,e]),J=h.useMemo(()=>k.createSyncField({apiFn:Q,allFields:g,readonlyFieldNames:F,rhf:u,isComputingRef:q}),[Q,g,F,u]),L=r==="onChange"||r==="all",H=r==="onBlur"||r==="onTouched"||r==="all",Z=h.useMemo(()=>k.createEnhancedRegister({rhf:u,allFields:g,syncField:J,syncOnBlur:H,syncOnChange:L}),[u,g,J,H,L]),ee=h.useMemo(()=>k.createEnhancedControl({control:u.control,syncField:J,syncOnBlur:H,syncOnChange:L}),[u.control,J,H,L]),te=h.useCallback((_,b)=>u.handleSubmit(async(T,U)=>{v(!0);try{const p={},M=new Set(F),x=u.formState.dirtyFields,C=u.getValues();for(const S of Object.keys(C)){if(M.has(S)||!x[S])continue;const N=C[S]!==void 0?C[S]:T[S],j=g[S];p[S]=j?k.coerceFieldValue(j,N):N}Object.keys(p).length>0&&await O.update(e,p),await(_==null?void 0:_(T,U))}catch(p){b==null||b(G.toError(p),U)}finally{v(!1)}},(T,U)=>{b==null||b(T,U)}),[u,O,F,g,e]),se=h.useCallback((_,b)=>u.handleSubmit(async(T,U)=>{v(!0);try{const p={},M=new Set(F),x=u.formState.dirtyFields,C=u.getValues();for(const S of Object.keys(C)){if(M.has(S)||!x[S])continue;const N=C[S]!==void 0?C[S]:T[S],j=g[S];p[S]=j?k.coerceFieldValue(j,N):N}Object.keys(p).length>0&&await O.update(e,p),await O.complete(e),await(_==null?void 0:_(T,U))}catch(p){b==null||b(G.toError(p),U)}finally{v(!1)}},(T,U)=>{b==null||b(T,U)}),[u,O,F,g,e]),ae=h.useCallback(()=>{u.clearErrors()},[u]),re=!!w;return{item:P,activity:o,register:Z,handleSubmit:te,handleComplete:se,watch:u.watch,setValue:u.setValue,getValues:u.getValues,reset:u.reset,trigger:u.trigger,control:ee,errors:u.formState.errors,isValid:u.formState.isValid,isDirty:u.formState.isDirty,isSubmitting:u.formState.isSubmitting||l,isSubmitSuccessful:u.formState.isSubmitSuccessful,isLoading:n||c,isMetadataLoading:c,loadError:w,hasError:re,bpMetadata:D??null,clearErrors:ae}}function he(o){const{activity:t,status:e,...a}=o,{businessProcessId:r,activityId:i}=t.meta,n=h.useMemo(()=>t._getOps(),[t]),f=h.useMemo(()=>e==="inprogress"?s=>n.inProgressList(s):s=>n.completedList(s),[n,e]),w=h.useMemo(()=>e==="inprogress"?s=>n.inProgressCount(s):s=>n.completedCount(s),[n,e]);return G.useTable({queryKey:["activity-table",r,i,e],listFn:f,countFn:w,...a})}const me={InProgress:"inprogress",Completed:"completed"};exports.Activity=ue;exports.ActivityInstance=X;exports.ActivityTableStatus=me;exports.Workflow=W;exports.buildFieldsFromInput=Y;exports.createFieldFromMeta=K;exports.useActivityForm=ge;exports.useActivityTable=he;
|