@ram_28/kf-ai-sdk 2.0.15 → 2.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/README.md +22 -14
  2. package/dist/api.cjs +1 -1
  3. package/dist/api.mjs +1 -1
  4. package/dist/auth/authConfig.d.ts +1 -1
  5. package/dist/auth/types.d.ts +1 -1
  6. package/dist/auth/types.d.ts.map +1 -1
  7. package/dist/auth.cjs +1 -1
  8. package/dist/auth.mjs +1 -1
  9. package/dist/bdo/core/BaseBdo.d.ts +1 -1
  10. package/dist/bdo.cjs +1 -1
  11. package/dist/bdo.mjs +3 -3
  12. package/dist/components/hooks/useActivityForm/createActivityItemProxy.d.ts +1 -1
  13. package/dist/components/hooks/useActivityForm/createActivityItemProxy.d.ts.map +1 -1
  14. package/dist/components/hooks/useActivityForm/types.d.ts +6 -7
  15. package/dist/components/hooks/useActivityForm/types.d.ts.map +1 -1
  16. package/dist/components/hooks/useActivityForm/useActivityForm.d.ts.map +1 -1
  17. package/dist/components/hooks/useActivityTable/types.d.ts +7 -6
  18. package/dist/components/hooks/useActivityTable/types.d.ts.map +1 -1
  19. package/dist/components/hooks/useActivityTable/useActivityTable.d.ts +1 -1
  20. package/dist/components/hooks/useActivityTable/useActivityTable.d.ts.map +1 -1
  21. package/dist/components/hooks/useBDOForm/createItemProxy.d.ts.map +1 -0
  22. package/dist/components/hooks/useBDOForm/createResolver.d.ts.map +1 -0
  23. package/dist/components/hooks/useBDOForm/index.d.ts +6 -0
  24. package/dist/components/hooks/useBDOForm/index.d.ts.map +1 -0
  25. package/dist/components/hooks/useBDOForm/shared.d.ts +50 -0
  26. package/dist/components/hooks/useBDOForm/shared.d.ts.map +1 -0
  27. package/dist/components/hooks/{useForm → useBDOForm}/types.d.ts +6 -6
  28. package/dist/components/hooks/useBDOForm/types.d.ts.map +1 -0
  29. package/dist/components/hooks/{useForm/useForm.d.ts → useBDOForm/useBDOForm.d.ts} +4 -4
  30. package/dist/components/hooks/useBDOForm/useBDOForm.d.ts.map +1 -0
  31. package/dist/components/hooks/useBDOTable/types.d.ts +20 -14
  32. package/dist/components/hooks/useBDOTable/types.d.ts.map +1 -1
  33. package/dist/components/hooks/useBDOTable/useBDOTable.d.ts +2 -2
  34. package/dist/components/hooks/useBDOTable/useBDOTable.d.ts.map +1 -1
  35. package/dist/{constants-ConHc1oS.js → constants-Cyi942Yr.js} +5 -5
  36. package/dist/constants-DEmYwKfC.cjs +1 -0
  37. package/dist/filter.cjs +1 -1
  38. package/dist/filter.mjs +1 -1
  39. package/dist/form.cjs +1 -1
  40. package/dist/form.d.ts +1 -1
  41. package/dist/form.d.ts.map +1 -1
  42. package/dist/form.mjs +250 -253
  43. package/dist/form.types.d.ts +1 -1
  44. package/dist/form.types.d.ts.map +1 -1
  45. package/dist/shared-5a7UkED1.js +1180 -0
  46. package/dist/shared-nnmlRVs7.cjs +1 -0
  47. package/dist/table.cjs +1 -1
  48. package/dist/table.mjs +14 -14
  49. package/dist/table.types.d.ts +1 -1
  50. package/dist/table.types.d.ts.map +1 -1
  51. package/dist/types/constants.d.ts +4 -4
  52. package/dist/workflow/Activity.d.ts +22 -7
  53. package/dist/workflow/Activity.d.ts.map +1 -1
  54. package/dist/workflow/client.d.ts +2 -2
  55. package/dist/workflow/client.d.ts.map +1 -1
  56. package/dist/workflow/types.d.ts +7 -3
  57. package/dist/workflow/types.d.ts.map +1 -1
  58. package/dist/workflow.cjs +1 -1
  59. package/dist/workflow.mjs +518 -576
  60. package/docs/README.md +51 -0
  61. package/docs/bdo/README.md +161 -0
  62. package/docs/bdo/api_reference.md +281 -0
  63. package/docs/examples/bdo/create-product.md +69 -0
  64. package/docs/examples/bdo/edit-product-dialog.md +95 -0
  65. package/docs/examples/bdo/filtered-product-table.md +100 -0
  66. package/docs/examples/bdo/product-listing.md +73 -0
  67. package/docs/examples/bdo/supplier-dropdown.md +60 -0
  68. package/docs/examples/workflow/approve-leave-request.md +76 -0
  69. package/docs/examples/workflow/filtered-activity-table.md +101 -0
  70. package/docs/examples/workflow/my-pending-requests.md +90 -0
  71. package/docs/examples/workflow/start-new-workflow.md +47 -0
  72. package/docs/examples/workflow/submit-leave-request.md +72 -0
  73. package/docs/examples/workflow/workflow-progress.md +49 -0
  74. package/docs/useActivityForm/README.md +241 -0
  75. package/docs/useActivityForm/api_reference.md +279 -0
  76. package/docs/useActivityTable/README.md +263 -0
  77. package/docs/useActivityTable/api_reference.md +294 -0
  78. package/docs/useBDOForm/README.md +172 -0
  79. package/docs/useBDOForm/api_reference.md +244 -0
  80. package/docs/useBDOTable/README.md +242 -0
  81. package/docs/useBDOTable/api_reference.md +253 -0
  82. package/docs/useFilter/README.md +323 -0
  83. package/docs/useFilter/api_reference.md +228 -0
  84. package/docs/workflow/README.md +158 -0
  85. package/docs/workflow/api_reference.md +161 -0
  86. package/package.json +2 -2
  87. package/sdk/auth/authConfig.ts +1 -1
  88. package/sdk/auth/types.ts +1 -1
  89. package/sdk/bdo/core/BaseBdo.ts +2 -2
  90. package/sdk/components/hooks/useActivityForm/createActivityItemProxy.ts +1 -1
  91. package/sdk/components/hooks/useActivityForm/createActivityResolver.ts +1 -1
  92. package/sdk/components/hooks/useActivityForm/types.ts +8 -10
  93. package/sdk/components/hooks/useActivityForm/useActivityForm.ts +52 -265
  94. package/sdk/components/hooks/useActivityTable/types.ts +6 -5
  95. package/sdk/components/hooks/useActivityTable/useActivityTable.ts +14 -43
  96. package/sdk/components/hooks/{useForm → useBDOForm}/index.ts +4 -3
  97. package/sdk/components/hooks/useBDOForm/shared.ts +250 -0
  98. package/sdk/components/hooks/{useForm → useBDOForm}/types.ts +9 -9
  99. package/sdk/components/hooks/{useForm/useForm.ts → useBDOForm/useBDOForm.ts} +70 -96
  100. package/sdk/components/hooks/useBDOTable/types.ts +20 -12
  101. package/sdk/components/hooks/useBDOTable/useBDOTable.ts +12 -7
  102. package/sdk/form.ts +2 -2
  103. package/sdk/form.types.ts +4 -4
  104. package/sdk/table.types.ts +2 -0
  105. package/sdk/types/constants.ts +4 -4
  106. package/sdk/workflow/Activity.ts +68 -13
  107. package/sdk/workflow/client.ts +65 -25
  108. package/sdk/workflow/types.ts +10 -2
  109. package/dist/components/hooks/useForm/createItemProxy.d.ts.map +0 -1
  110. package/dist/components/hooks/useForm/createResolver.d.ts.map +0 -1
  111. package/dist/components/hooks/useForm/index.d.ts +0 -5
  112. package/dist/components/hooks/useForm/index.d.ts.map +0 -1
  113. package/dist/components/hooks/useForm/types.d.ts.map +0 -1
  114. package/dist/components/hooks/useForm/useForm.d.ts.map +0 -1
  115. package/dist/constants-QX2RX-wu.cjs +0 -1
  116. package/dist/createResolver-AIgUwoS6.cjs +0 -1
  117. package/dist/createResolver-ZHXQ7QMa.js +0 -1078
  118. package/docs/api.md +0 -95
  119. package/docs/bdo.md +0 -224
  120. package/docs/gaps.md +0 -410
  121. package/docs/useActivityTable.md +0 -481
  122. package/docs/useBDOTable.md +0 -317
  123. package/docs/useFilter.md +0 -188
  124. package/docs/useForm.md +0 -376
  125. package/docs/workflow.md +0 -818
  126. /package/dist/components/hooks/{useForm → useBDOForm}/createItemProxy.d.ts +0 -0
  127. /package/dist/components/hooks/{useForm → useBDOForm}/createResolver.d.ts +0 -0
  128. /package/docs/{useAuth.md → useAuth/README.md} +0 -0
  129. /package/sdk/components/hooks/{useForm → useBDOForm}/createItemProxy.ts +0 -0
  130. /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 r=require("./useTable-CeRklbdT.cjs"),e=require("./constants-QX2RX-wu.cjs");function a(n){const{bdo:t,...u}=n;return r.useTable({queryKey:["table",t.meta._id],listFn:o=>t.list(o),countFn:o=>t.count(o),...u})}exports.useTable=r.useTable;exports.ConditionOperator=e.ConditionOperator;exports.GroupOperator=e.GroupOperator;exports.RHSType=e.RHSType;exports.SortDirection=e.SortDirection;exports.TableDefaults=e.Defaults;exports.useBDOTable=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./useTable-CeRklbdT.cjs"),e=require("./constants-DEmYwKfC.cjs");function u(r){const{bdo:t,...n}=r;return a.useTable({queryKey:["table",t.meta._id],listFn:async o=>({Data:await t.list(o)}),countFn:async o=>({Count:await t.count(o)}),...n})}exports.useTable=a.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,20 @@
1
- import { u as a } from "./useTable-DS0-WInw.js";
2
- import { C as l, G as p, R as b, S as c, D as f } from "./constants-ConHc1oS.js";
3
- function n(o) {
4
- const { bdo: t, ...r } = o;
5
- return a({
1
+ import { u as r } from "./useTable-DS0-WInw.js";
2
+ import { C as c, G as l, R as p, S as b, D as y } from "./constants-Cyi942Yr.js";
3
+ function n(e) {
4
+ const { bdo: t, ...o } = e;
5
+ return r({
6
6
  queryKey: ["table", t.meta._id],
7
- listFn: (e) => t.list(e),
8
- countFn: (e) => t.count(e),
9
- ...r
7
+ listFn: async (a) => ({ Data: await t.list(a) }),
8
+ countFn: async (a) => ({ Count: await t.count(a) }),
9
+ ...o
10
10
  });
11
11
  }
12
12
  export {
13
- l as ConditionOperator,
14
- p as GroupOperator,
15
- b as RHSType,
16
- c as SortDirection,
17
- f as TableDefaults,
13
+ c as ConditionOperator,
14
+ l as GroupOperator,
15
+ p as RHSType,
16
+ b as SortDirection,
17
+ y as TableDefaults,
18
18
  n as useBDOTable,
19
- a as useTable
19
+ r as useTable
20
20
  };
@@ -1,3 +1,3 @@
1
1
  export type { UseTableOptionsType, UseTableReturnType, PaginationStateType, } from './components/hooks/useTable/types';
2
- export type { UseBDOTableOptionsType, UseBDOTableReturnType, } from './components/hooks/useBDOTable/types';
2
+ export type { BDOTableSourceType, BDORowType, UseBDOTableOptionsType, UseBDOTableReturnType, } from './components/hooks/useBDOTable/types';
3
3
  //# sourceMappingURL=table.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.types.d.ts","sourceRoot":"","sources":["../sdk/table.types.ts"],"names":[],"mappings":"AAKA,YAAY,EAEV,mBAAmB,EACnB,kBAAkB,EAGlB,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAE3C,YAAY,EAEV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"table.types.d.ts","sourceRoot":"","sources":["../sdk/table.types.ts"],"names":[],"mappings":"AAKA,YAAY,EAEV,mBAAmB,EACnB,kBAAkB,EAGlB,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAE3C,YAAY,EAEV,kBAAkB,EAClB,UAAU,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,sCAAsC,CAAC"}
@@ -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 } = useForm({
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 } = useForm({
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 } = useForm({
195
+ * const { handleSubmit } = useBDOForm({
196
196
  * source: "products",
197
197
  * operation: "create",
198
198
  * mode: ValidationMode.OnBlur,
@@ -305,7 +305,7 @@ export declare const AuthStatus: {
305
305
  */
306
306
  export declare const AuthProviderName: {
307
307
  readonly Google: "google";
308
- readonly Microsoft: "microsoft";
308
+ readonly Azure: "azure";
309
309
  readonly GitHub: "github";
310
310
  readonly Custom: "custom";
311
311
  };
@@ -1,7 +1,9 @@
1
1
  import type { ActivityInstanceType } from "./ActivityInstance";
2
2
  import type { ActivityInstanceFieldsType, ActivityOperations } from "./types";
3
- import type { ListResponseType, ListOptionsType, CountResponseType } from "../types/common";
3
+ import type { ListOptionsType, MetricOptionsType, MetricResponseType } from "../types/common";
4
4
  import { BaseField } from "../bdo/fields/BaseField";
5
+ /** Activity system fields treated as readonly on list results */
6
+ type ActivitySystemReadonlyType = Omit<ActivityInstanceFieldsType, '_id'>;
5
7
  /**
6
8
  * Abstract base class for workflow activities.
7
9
  *
@@ -59,22 +61,34 @@ export declare abstract class Activity<TEntity extends Record<string, unknown>,
59
61
  private _discoverFields;
60
62
  /**
61
63
  * List in-progress activity instances.
62
- * Accepts optional filter/sort/pagination options.
64
+ * Each row is wrapped in an ActivityInstance proxy with field accessors.
63
65
  */
64
- getInProgressList(options?: ListOptionsType): Promise<ListResponseType<ActivityInstanceFieldsType & TEntity>>;
66
+ getInProgressList(options?: ListOptionsType): Promise<ActivityInstanceType<ActivityInstanceFieldsType & TEntity, TEditable, TReadonly & ActivitySystemReadonlyType>[]>;
65
67
  /**
66
68
  * List completed activity instances.
67
- * Accepts optional filter/sort/pagination options.
69
+ * Each row is wrapped in an ActivityInstance proxy with field accessors.
68
70
  */
69
- getCompletedList(options?: ListOptionsType): Promise<ListResponseType<ActivityInstanceFieldsType & TEntity>>;
71
+ getCompletedList(options?: ListOptionsType): Promise<ActivityInstanceType<ActivityInstanceFieldsType & TEntity, TEditable, TReadonly & ActivitySystemReadonlyType>[]>;
70
72
  /**
71
73
  * Get count of in-progress activity instances.
74
+ * Returns a number (same as BDO count()).
72
75
  */
73
- inProgressMetrics(options?: ListOptionsType): Promise<CountResponseType>;
76
+ inProgressCount(options?: ListOptionsType): Promise<number>;
74
77
  /**
75
78
  * Get count of completed activity instances.
79
+ * Returns a number (same as BDO count()).
76
80
  */
77
- completedMetrics(options?: ListOptionsType): Promise<CountResponseType>;
81
+ completedCount(options?: ListOptionsType): Promise<number>;
82
+ /**
83
+ * Get aggregated metrics for in-progress activity instances.
84
+ * Accepts MetricOptionsType (without Type) for custom aggregations (Sum, Avg, etc.).
85
+ */
86
+ inProgressMetric(options: Omit<MetricOptionsType, 'Type'>): Promise<MetricResponseType>;
87
+ /**
88
+ * Get aggregated metrics for completed activity instances.
89
+ * Accepts MetricOptionsType (without Type) for custom aggregations (Sum, Avg, etc.).
90
+ */
91
+ completedMetric(options: Omit<MetricOptionsType, 'Type'>): Promise<MetricResponseType>;
78
92
  /**
79
93
  * Get a typed ActivityInstance with field accessors and persistence methods.
80
94
  *
@@ -93,4 +107,5 @@ export declare abstract class Activity<TEntity extends Record<string, unknown>,
93
107
  */
94
108
  _getOps(): ActivityOperations<TEntity>;
95
109
  }
110
+ export {};
96
111
  //# sourceMappingURL=Activity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Activity.d.ts","sourceRoot":"","sources":["../../sdk/workflow/Activity.ts"],"names":[],"mappings":"AAoBA,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,EAClB,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;;OAEG;IACG,iBAAiB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI9E;;OAEG;IACG,gBAAgB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI7E;;;;;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"}
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,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,iEAAiE;AACjE,KAAK,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;AAM1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,CACrB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,oBAAoB,CAC7B,0BAA0B,GAAG,OAAO,EACpC,SAAS,EACT,SAAS,GAAG,0BAA0B,CACvC,EAAE,CAAC;IAaJ;;;OAGG;IACG,gBAAgB,CACpB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,oBAAoB,CAC7B,0BAA0B,GAAG,OAAO,EACpC,SAAS,EACT,SAAS,GAAG,0BAA0B,CACvC,EAAE,CAAC;IAaJ;;;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.inProgressMetric();
25
- * await act.completedMetric();
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":"AAgBA,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;CA2JrD"}
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"}
@@ -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
- inProgressMetric(options?: ListOptionsType): Promise<CountResponseType>;
55
+ inProgressCount(options?: ListOptionsType): Promise<CountResponseType>;
56
56
  /** Get completed activity count (POST .../completed/metric) */
57
- completedMetric(options?: ListOptionsType): Promise<CountResponseType>;
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,gBAAgB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAExE,+DAA+D;IAC/D,eAAe,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAIvE,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"}
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 ie=Object.defineProperty;var oe=(o,t,e)=>t in o?ie(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e;var A=(o,t,e)=>oe(o,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./client-D5k4SYuw.cjs"),$=require("./FileField-eDeuzln8.cjs"),_=require("react"),E=require("./shared-nnmlRVs7.cjs"),ce=require("@tanstack/react-query"),L=require("./attachment-constants-B5jlqoKI.cjs"),G=require("./useTable-CeRklbdT.cjs"),le=require("./metadata-DWXQPDav.cjs");class Y{constructor(t){A(this,"bp_id");this.bp_id=t}async start(){const t=await fetch(`${d.getApiBaseUrl()}/api/app/process/${this.bp_id}/start`,{method:"POST",headers:d.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(`${d.getApiBaseUrl()}/api/app/process/${this.bp_id}/${t}/progress`,{method:"GET",headers:d.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(s){const a=await fetch(`${d.getApiBaseUrl()}${e}/inprogress/list`,{method:"POST",headers:d.getDefaultHeaders(),body:s?JSON.stringify(s):void 0});if(!a.ok)throw new Error(`Failed to list in-progress activities: ${a.statusText}`);return a.json()},async completedList(s){const a=await fetch(`${d.getApiBaseUrl()}${e}/completed/list`,{method:"POST",headers:d.getDefaultHeaders(),body:s?JSON.stringify(s):void 0});if(!a.ok)throw new Error(`Failed to list completed activities: ${a.statusText}`);return a.json()},async inProgressCount(s){var f,r;const a={Type:"Metric",GroupBy:[],Metric:[{Field:"_id",Type:"Count"}],...(s==null?void 0:s.Filter)&&{Filter:s.Filter}},n=await fetch(`${d.getApiBaseUrl()}${e}/inprogress/metric`,{method:"POST",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!n.ok)throw new Error(`Failed to get in-progress count: ${n.statusText}`);return{Count:((r=(f=(await n.json()).Data)==null?void 0:f[0])==null?void 0:r.count__id)??0}},async completedCount(s){var f,r;const a={Type:"Metric",GroupBy:[],Metric:[{Field:"_id",Type:"Count"}],...(s==null?void 0:s.Filter)&&{Filter:s.Filter}},n=await fetch(`${d.getApiBaseUrl()}${e}/completed/metric`,{method:"POST",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!n.ok)throw new Error(`Failed to get completed count: ${n.statusText}`);return{Count:((r=(f=(await n.json()).Data)==null?void 0:f[0])==null?void 0:r.count__id)??0}},async inProgressMetric(s){const a={Type:"Metric",...s},n=await fetch(`${d.getApiBaseUrl()}${e}/inprogress/metric`,{method:"POST",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!n.ok)throw new Error(`Failed to get in-progress metrics: ${n.statusText}`);return n.json()},async completedMetric(s){const a={Type:"Metric",...s},n=await fetch(`${d.getApiBaseUrl()}${e}/completed/metric`,{method:"POST",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!n.ok)throw new Error(`Failed to get completed metrics: ${n.statusText}`);return n.json()},async read(s){const a=await fetch(`${d.getApiBaseUrl()}${e}/${s}/read`,{method:"GET",headers:d.getDefaultHeaders()});if(!a.ok)throw new Error(`Failed to read activity: ${a.statusText}`);return(await a.json()).Data},async update(s,a){const n=await fetch(`${d.getApiBaseUrl()}${e}/${s}/update`,{method:"POST",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!n.ok)throw new Error(`Failed to update activity: ${n.statusText}`);return n.json()},async draftStart(s,a){const n=await fetch(`${d.getApiBaseUrl()}${e}/${s}/draft`,{method:"PATCH",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!n.ok)throw new Error(`Failed to start draft: ${n.statusText}`);return n.json()},async draftEnd(s,a){const n=await fetch(`${d.getApiBaseUrl()}${e}/${s}/draft`,{method:"POST",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!n.ok)throw new Error(`Failed to end draft: ${n.statusText}`);return n.json()},async complete(s){const a=await fetch(`${d.getApiBaseUrl()}${e}/${s}/done`,{method:"POST",headers:d.getDefaultHeaders()});if(!a.ok)throw new Error(`Failed to complete activity: ${a.statusText}`);return a.json()},async progress(s){const a=await fetch(`${d.getApiBaseUrl()}${e}/${s}/progress`,{method:"GET",headers:d.getDefaultHeaders()});if(!a.ok)throw new Error(`Failed to get activity progress: ${a.statusText}`);return a.json()}}}}class Z{constructor(t,e,s,a){A(this,"_id");A(this,"_data");A(this,"_ops");A(this,"_fields");A(this,"_accessorCache",new Map);this._ops=t,this._id=e,this._data={...s},this._fields=a}toJSON(){return{...this._data}}validate(){const t=[];for(const[e,s]of Object.entries(this._fields)){const a=this._data[e],n=s.validate(a);n.valid||t.push(...n.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],s=(e==null?void 0:e.meta)??{_id:t,Name:t,Type:"String"},a=(e==null?void 0:e.readOnly)??!1,n=()=>e?e.validate(this._data[t]):{valid:!0,errors:[]};let i;return a?i={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:s,get:()=>this._data[t],validate:n}:i={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:s,get:()=>this._data[t],set:y=>{this._data[t]=y},validate:n},this._accessorCache.set(t,i),i}}function z(o,t,e,s){const a=new Z(o,t,e,s);return new Proxy(a,{get(n,i,y){return i==="validate"||i==="toJSON"||i==="update"||i==="save"||i==="complete"||i==="progress"||i==="_ops"||i==="_data"||i==="_fields"||i==="_accessorCache"||i==="_getAccessor"||typeof i=="symbol"?Reflect.get(n,i,y):i==="_id"?n._id:n._getAccessor(i)},has(n,i){return typeof i=="symbol"?!1:i==="validate"||i==="toJSON"||i==="update"||i==="save"||i==="complete"||i==="progress"||i==="_id"?!0:i in n._fields},ownKeys(n){return[...Object.keys(n._fields),"_id","validate","toJSON","update","save","complete","progress"]},getOwnPropertyDescriptor(n,i){if(typeof i!="symbol")return{configurable:!0,enumerable:i!=="validate"&&i!=="toJSON"&&i!=="update"&&i!=="save"&&i!=="complete"&&i!=="progress"}}})}class ue{constructor(){A(this,"_fieldsCache",null)}_ops(){return new Y(this.meta.businessProcessId).activity(this.meta.activityId)}_discoverFields(){if(this._fieldsCache)return this._fieldsCache;const t={};for(const e of Object.keys(this)){const s=this[e];s instanceof $.BaseField&&(t[e]=s)}return this._fieldsCache=t,t}async getInProgressList(t){const e=this._ops(),s=await e.inProgressList(t),a=this._discoverFields();return s.Data.map(n=>z(e,n._id,n,a))}async getCompletedList(t){const e=this._ops(),s=await e.completedList(t),a=this._discoverFields();return s.Data.map(n=>z(e,n._id,n,a))}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(),s=await e.read(t),a=this._discoverFields();return z(e,t,s,a)}_getFields(){return this._discoverFields()}_getOps(){return this._ops()}}function K(o,t){var a;const e={_id:o,...t},s=t.Type;if(s==="String"&&((a=t.Constraint)!=null&&a.Enum))return new $.SelectField(e);switch(s){case"String":return new $.StringField(e);case"Number":return new $.NumberField(e);case"Boolean":return new $.BooleanField(e);case"Date":return new $.DateField(e);case"DateTime":return new $.DateTimeField(e);case"Text":return new $.TextField(e);case"Reference":return new $.ReferenceField(e);case"User":return new $.UserField(e);case"File":return new $.FileField(e);default:return new $.StringField(e)}}function ee(o){const t={};for(const[e,s]of Object.entries(o))t[e]=K(e,s);return t}function de(o,t,e){var n;const s=t==null?void 0:t.BDOBlob;if(!(s!=null&&s.Activity))return null;const a=o==null?void 0:o.Id;for(const i of s.Activity)if(i.Id!==a&&(n=i.Input)!=null&&n[e])return i.Input[e];return null}function ye(o){return async(t,e,s)=>{const a={},n="_getFields"in o?o._getFields():o,i=(s==null?void 0:s.names)??Object.keys(n);for(const y of i){const f=n[y];if(!f||f.readOnly)continue;let r=t[y];typeof r=="string"&&f.meta.Type==="Number"&&(r=r===""?void 0:Number(r));const l=f.validate(r);if(!l.valid&&l.errors.length>0){a[y]={type:"validate",message:l.errors[0]||`${y} is invalid`};continue}const F=E.validateConstraints(f,r);!F.valid&&F.errors.length>0&&(a[y]={type:"constraint",message:F.errors[0]})}return Object.keys(a).length===0?{values:t,errors:{}}:{values:{},errors:a}}}function ge(o,t,e){const s=o._getFields(),a=new Map,n=`/api/app/process/${o.meta.businessProcessId}/${o.meta.activityId}`,i=d.createResourceClient(n);function y(){if(!e)throw new Error("Cannot perform attachment operation: no activity instance ID");return e}return new Proxy({},{get(f,r){if(typeof r=="symbol")return;if(r==="_id")return e;if(r==="toJSON")return()=>t.getValues();if(r==="validate")return()=>t.trigger();if(a.has(r))return a.get(r);const l=s[r],F=(l==null?void 0:l.meta)??{_id:r,Name:r,Type:"String"},M=(l==null?void 0:l.readOnly)??!1,k=()=>l?l.validate(t.getValues(r)):{valid:!0,errors:[]},N=S=>{const u=t.getValues(r);return u??S};if(!M){const S=()=>{const c=t.getValues(r);return F.Type==="File"?c??[]:c},u={label:(l==null?void 0:l.label)??r,required:(l==null?void 0:l.required)??!1,readOnly:!1,defaultValue:l==null?void 0:l.defaultValue,meta:F,get:S,getOrDefault:N,set:c=>{t.setValue(r,c,{shouldDirty:!0,shouldTouch:!0,shouldValidate:!1})},validate:k};return(F.Type==="Image"||F.Type==="File")&&(F.Type==="Image"?(u.upload=async c=>{L.validateFileExtension(c.name,"Image");const m=y(),[h]=await i.getUploadUrl(m,r,[{FileName:c.name,Size:c.size,FileExtension:L.extractFileExtension(c.name)}]);await fetch(h.UploadUrl.URL,{method:"PUT",headers:{"Content-Type":h.ContentType},body:c});const w={_id:h._id,_name:h._name,FileName:h.FileName,FileExtension:h.FileExtension,Size:h.Size,ContentType:h.ContentType};return t.setValue(r,w,{shouldDirty:!0}),w},u.deleteAttachment=async()=>{const c=t.getValues(r),m=y();if(!(c!=null&&c._id))throw new Error(`${r} has no image to delete`);await i.deleteAttachment(m,r,c._id),t.setValue(r,null,{shouldDirty:!0})},u.getDownloadUrl=async c=>{const m=t.getValues(r),h=y();if(!(m!=null&&m._id))throw new Error(`${r} has no image`);return i.getDownloadUrl(h,r,m._id,c)}):(u.upload=async c=>{for(const T of c)L.validateFileExtension(T.name,"File");const m=y(),h=c.map(T=>({FileName:T.name,Size:T.size,FileExtension:L.extractFileExtension(T.name)})),w=await i.getUploadUrl(m,r,h),I=await Promise.all(c.map(async(T,C)=>(await fetch(w[C].UploadUrl.URL,{method:"PUT",headers:{"Content-Type":w[C].ContentType},body:T}),{_id:w[C]._id,_name:w[C]._name,FileName:w[C].FileName,FileExtension:w[C].FileExtension,Size:w[C].Size,ContentType:w[C].ContentType}))),g=t.getValues(r)??[];return t.setValue(r,[...g,...I],{shouldDirty:!0}),I},u.deleteAttachment=async c=>{const m=t.getValues(r)??[],h=y();await i.deleteAttachment(h,r,c),t.setValue(r,m.filter(w=>w._id!==c),{shouldDirty:!0})},u.getDownloadUrl=async(c,m)=>{const h=y();return i.getDownloadUrl(h,r,c,m)},u.getDownloadUrls=async c=>{const m=y();return i.getDownloadUrls(m,r,c)})),a.set(r,u),u}const B=()=>{const S=t.getValues(r);return F.Type==="File"?S??[]:S},O={label:(l==null?void 0:l.label)??r,required:(l==null?void 0:l.required)??!1,readOnly:!0,defaultValue:l==null?void 0:l.defaultValue,meta:F,get:B,getOrDefault:N,validate:k};return(F.Type==="Image"||F.Type==="File")&&(F.Type==="Image"?O.getDownloadUrl=async S=>{const u=t.getValues(r),c=y();if(!(u!=null&&u._id))throw new Error(`${r} has no image to download`);return i.getDownloadUrl(c,r,u._id,S)}:(O.getDownloadUrl=async(S,u)=>{const c=y();return i.getDownloadUrl(c,r,S,u)},O.getDownloadUrls=async S=>{const u=y();return i.getDownloadUrls(u,r,S)})),a.set(r,O),O},has(f,r){return typeof r=="symbol"?!1:r==="_id"||r==="toJSON"||r==="validate"?!0:r in s},ownKeys(f){return[...Object.keys(s),"_id","toJSON","validate"]},getOwnPropertyDescriptor(f,r){if(typeof r!="symbol")return{configurable:!0,enumerable:r!=="toJSON"&&r!=="validate"}}})}function fe(o,t){const{activity_instance_id:e,defaultValues:s={},mode:a="onBlur",enabled:n=!0}=t,[i,y]=_.useState(!1),[f,r]=_.useState(null),[l,F]=_.useState(!1),[M,k]=_.useState({}),N=_.useRef(!1),B=_.useRef(null),{data:O,isLoading:S}=ce.useQuery({queryKey:["bp-metadata",o.meta.businessProcessId],queryFn:()=>le.getBdoSchema(o.meta.businessProcessId),staleTime:30*60*1e3}),u=_.useMemo(()=>{const v=O==null?void 0:O.BDOBlob;return v!=null&&v.Activity?v.Activity.find(p=>p.Id===o.meta.activityId)??null:null},[O,o.meta.activityId]),c=S,m=_.useMemo(()=>u!=null&&u.Input?ee(u.Input):o._getFields(),[u,o]),h=_.useMemo(()=>({...M,...m}),[M,m]),w=_.useMemo(()=>Object.keys(h).filter(v=>h[v].readOnly),[h]),I=_.useMemo(()=>ye(m),[m]),g=E.useForm({mode:a,defaultValues:s,resolver:I}),T=_.useMemo(()=>o._getOps(),[o]),C=_.useMemo(()=>ge(o,g,e),[o,g,e]);_.useEffect(()=>{if(!n||c)return;let v=!0;return(async()=>{y(!0),r(null);try{const b=await T.read(e);if(!v)return;if(b&&typeof b=="object"){const x=E.coerceRecordForForm(m,b),U={...s,...x};(B.current===null||b!==B.current)&&(g.reset(U),B.current=b);const H=new Set(["_id","BPInstanceId","Status","AssignedTo","CompletedAt","_created_at","_modified_at","_created_by","_modified_by","_v","_m_v"]),V={};for(const D of Object.keys(b))if(!m[D]&&!H.has(D)){const J=de(u,O,D);J&&(V[D]=K(D,{...J,ReadOnly:!0}))}Object.keys(V).length>0&&k(V)}}catch(b){if(!v)return;console.error("Failed to read activity data:",b),r(G.toError(b))}finally{v&&y(!1)}})(),()=>{v=!1}},[n,c,T,e]);const Q=_.useCallback((v,p)=>T.update(e,{[v]:p}),[T,e]),j=_.useMemo(()=>E.createSyncField({apiFn:Q,allFields:h,readonlyFieldNames:w,rhf:g,isComputingRef:N}),[Q,h,w,g]),q=a==="onChange"||a==="all",R=a==="onBlur"||a==="onTouched"||a==="all",te=_.useMemo(()=>E.createEnhancedRegister({rhf:g,allFields:h,syncField:j,syncOnBlur:R,syncOnChange:q}),[g,h,j,R,q]),se=_.useMemo(()=>E.createEnhancedControl({control:g.control,syncField:j,syncOnBlur:R,syncOnChange:q}),[g.control,j,R,q]),ae=_.useCallback((v,p)=>g.handleSubmit(async(b,x)=>{F(!0);try{const U={},H=new Set(w),V=g.formState.dirtyFields,D=g.getValues();for(const P of Object.keys(D)){if(H.has(P)||!V[P])continue;const W=D[P]!==void 0?D[P]:b[P],X=h[P];U[P]=X?E.coerceFieldValue(X,W):W}Object.keys(U).length>0&&await T.update(e,U);const J=await T.complete(e);await(v==null?void 0:v(J,x))}catch(U){p==null||p(G.toError(U),x)}finally{F(!1)}},(b,x)=>{p==null||p(b,x)}),[g,T,w,h,e]),re=_.useCallback(()=>{g.clearErrors()},[g]),ne=!!f;return{item:C,activity:o,register:te,handleSubmit:ae,watch:g.watch,setValue:g.setValue,getValues:g.getValues,reset:g.reset,trigger:g.trigger,control:se,errors:g.formState.errors,isValid:g.formState.isValid,isDirty:g.formState.isDirty,isSubmitting:g.formState.isSubmitting||l,isSubmitSuccessful:g.formState.isSubmitSuccessful,isLoading:i||c,isMetadataLoading:c,loadError:f,hasError:ne,bpMetadata:O??null,clearErrors:re}}function he(o){const{activity:t,status:e,...s}=o,{businessProcessId:a,activityId:n}=t.meta,i=_.useMemo(()=>e==="inprogress"?async f=>({Data:await t.getInProgressList(f)}):async f=>({Data:await t.getCompletedList(f)}),[t,e]),y=_.useMemo(()=>e==="inprogress"?async f=>({Count:await t.inProgressCount(f)}):async f=>({Count:await t.completedCount(f)}),[t,e]);return G.useTable({queryKey:["activity-table",a,n,e],listFn:i,countFn:y,...s})}const me={InProgress:"inprogress",Completed:"completed"};exports.Activity=ue;exports.ActivityInstance=Z;exports.ActivityTableStatus=me;exports.Workflow=Y;exports.buildFieldsFromInput=ee;exports.createFieldFromMeta=K;exports.useActivityForm=fe;exports.useActivityTable=he;