@fluig-kit/ecm 1.0.20 → 1.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.js +144 -138
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react/jsx-runtime"),l=require("react"),F=require("react-hook-form"),N=require("@hookform/resolvers"),W=require("zod"),A=require("@fluig-kit/core");var U=function(e,o){for(var t={};e.length;){var r=e[0],i=r.code,s=r.message,a=r.path.join(".");if(!t[a])if("unionErrors"in r){var c=r.unionErrors[0].errors[0];t[a]={message:c.message,type:c.code}}else t[a]={message:s,type:i};if("unionErrors"in r&&r.unionErrors.forEach(function(g){return g.errors.forEach(function(d){return e.push(d)})}),o){var u=t[a].types,n=u&&u[r.code];t[a]=F.appendErrors(a,o,t,i,n?[].concat(n,r.message):r.message)}e.shift()}return t},B=function(e,o,t){return t===void 0&&(t={}),function(r,i,s){try{return Promise.resolve(function(a,c){try{var u=Promise.resolve(e[t.mode==="sync"?"parse":"parseAsync"](r,o)).then(function(n){return s.shouldUseNativeValidation&&N.validateFieldsNatively({},s),{errors:{},values:t.raw?r:n}})}catch(n){return c(n)}return u&&u.then?u.then(void 0,c):u}(0,function(a){if(function(c){return Array.isArray(c==null?void 0:c.errors)}(a))return{values:{},errors:N.toNestErrors(U(a.errors,!s.shouldUseNativeValidation&&s.criteriaMode==="all"),s)};throw a}))}catch(a){return Promise.reject(a)}}};const O=l.createContext(null);function z({children:e,baseSchema:o}){const[t,r]=l.useState([]),i=l.useMemo(()=>o??W.z.object({}),[o]),s=l.useCallback((n,g)=>{r(d=>d.some(w=>w.id===n)?d:[...d,{id:n,schema:g}])},[]),a=l.useCallback(n=>{r(g=>g.some(d=>d.id===n)?g.filter(d=>d.id!==n):g)},[]),c=l.useMemo(()=>t.length?t.map(n=>n.schema).reduce((n,g)=>n.and(g),i):i,[t,i]),u=l.useMemo(()=>({registerSchema:s,unregisterSchema:a,mergedSchema:c}),[s,a,c]);return p.jsx(O.Provider,{value:u,children:e})}function T(){const e=l.useContext(O);if(!e)throw new Error("useSchemaRegistry deve ser usado dentro de <SchemaRegistryProvider>");return e}function j(e){return typeof e=="number"?e:isNaN(Number(e))?null:Number(e)}function L(e,o,t){if(!e)return!0;const r=Array.isArray(o)?o[0]:o,i=e.field??r,s=t==null?void 0:t[i];return e.hasValue!==void 0?e.hasValue?s!=null&&s!=="":s==null||s==="":e.equals!==void 0?s===e.equals:e.notEquals!==void 0?s!==e.notEquals:!0}function G(e,o,t,r,i){const s=new Set(e),a=new Set(o);return t==null||t.forEach(c=>{if(c.from!==void 0){const n=Array.isArray(c.from)?c.from:[c.from];if(r===null||!n.includes(r))return}if(!L(c.when,c.target,i))return;const u=Array.isArray(c.target)?c.target:[c.target];switch(c.type){case"readonly":u.forEach(n=>{a.add(n),s.delete(n)});break;case"active":u.forEach(n=>{s.add(n),a.delete(n)});break;case"hidden":u.forEach(n=>{s.delete(n),a.delete(n)});break}}),{active:Array.from(s),readonly:Array.from(a)}}function H(e,o,t,r){const i=new Set(e.active),s=new Set(e.readonly),a=new Set(e.hidden??[]);return o==null||o.forEach(c=>{if(c.from!==void 0){const n=Array.isArray(c.from)?c.from:[c.from];if(t===null||!n.includes(t))return}if(!L(c.when,c.target,r))return;const u=Array.isArray(c.target)?c.target:[c.target];switch(c.type){case"hidden":u.forEach(n=>{a.add(n),i.delete(n),s.delete(n)});break;case"active":u.forEach(n=>{i.add(n),s.delete(n),a.delete(n)});break;case"readonly":u.forEach(n=>{s.add(n),i.delete(n),a.delete(n)});break}}),{active:Array.from(i),readonly:Array.from(s),hidden:Array.from(a)}}function $(e,o){if(!(e!=null&&e.length))return o;const t=new Map(o.map(i=>[i.name,i])),r=[];return e.forEach(i=>{t.has(i)&&(r.push(t.get(i)),t.delete(i))}),t.forEach(i=>r.push(i)),r}function K(e){var r,i;const o=new Set,t=(s=[])=>{s.forEach(a=>{var c;a.target&&(Array.isArray(a.target)?a.target:[a.target]).forEach(n=>o.add(n)),(c=a.when)!=null&&c.field&&o.add(a.when.field)})};return t((r=e==null?void 0:e.fields)==null?void 0:r.rules),t((i=e==null?void 0:e.sections)==null?void 0:i.rules),Array.from(o)}function J({activityId:e,previousActivityId:o,control:t,workflowStructure:r,sectionsRegistry:i}){const{registerSchema:s,unregisterSchema:a}=T(),c=j(e),u=j(o),n=c!==null?r[c]:null,g=l.useMemo(()=>K(n),[c,n]),d=F.useWatch({control:t,name:g,defaultValue:{}}),w=l.useMemo(()=>{const m={};return g.forEach((f,v)=>{m[f]=Array.isArray(d)?d[v]:d}),m},[d,g]),y=l.useMemo(()=>{if(!n)return{sections:[],fields:{active:[],readonly:[],hidden:[]}};const m=G(n.sections.active,n.sections.readonly,n.sections.rules,u,w);let f=[...m.readonly.map(h=>({name:h,mode:"readonly"})),...m.active.map(h=>({name:h,mode:"active"}))];f=$(n.sections.order,f);const v=H({active:n.fields.active,readonly:n.fields.readonly,hidden:n.fields.hidden},n.fields.rules,u,w);return{sections:f,fields:v}},[n,u,w,i]);return l.useEffect(()=>{const m=y.sections.filter(f=>f.mode==="active").map(f=>f.name);m.forEach(f=>{var h;const v=(h=i==null?void 0:i[f])==null?void 0:h.schema;v&&s(f,v)}),Object.keys(i??{}).filter(f=>!m.includes(f)).forEach(a)},[y.sections,i,s,a]),y}function Q(){if(typeof document>"u")return{};const e={};return document.querySelectorAll("input[type='radio'][name]").forEach(o=>{const t=o,r=t.getAttribute("name");r&&t.checked&&(e[r]=t.value)}),document.querySelectorAll("input[name], textarea[name], select[name]").forEach(o=>{const t=o,r=t.getAttribute("name");if(!r||e[r]!==void 0)return;const i=t.getAttribute("value")??t.value??t.textContent??"";e[r]=String(i).trim()}),document.querySelectorAll("span[name]").forEach(o=>{var i;const t=o,r=t.getAttribute("name");if(r){const s=((i=t.textContent)==null?void 0:i.trim())??"";s!==""&&(e[r]=s)}}),e}const q=l.createContext(null);function X({children:e,devConfig:o}){const[t,r]=l.useState(null),i=l.useRef(o);l.useEffect(()=>{i.current=o},[o]);const s=l.useMemo(()=>Q()??{},[]);return l.useEffect(()=>{let a=!0;return(async()=>{var m,f;const u=typeof window<"u"&&window.location.hostname==="localhost";let n=null;try{const v=await((m=A.parentProxy.top.ECM)==null?void 0:m.workflowView);if(v){const h=await v.sequence;n=h!==void 0?Number(h):null}}catch(v){u||console.warn("[FluigRuntime] Erro Proxy:",v)}const d=(s.FORM_MODE||"").toLowerCase()==="view",w={isView:d,isReadOnly:d,activityId:n,previousActivityId:s.LASTACTIVITYID?Number(s.LASTACTIVITYID):null,prefilledValues:s,showDebugSubmit:!1,showDebugLogs:!1,isDev:!1};let y={...w};if((f=i.current)!=null&&f.enabled){const v=i.current,h=v.isView??w.isView;y={...w,...v,isView:h,isReadOnly:h,isDev:!0,activityId:v.activityId!==void 0?v.activityId:n}}a&&r(y)})(),()=>{a=!1}},[s]),t?p.jsx(q.Provider,{value:t,children:e}):null}function x(){const e=l.useContext(q);if(!e)throw new Error("useFluigRuntime deve ser usado dentro de <FluigRuntimeProvider>");return e}function Z(e){const{activityId:o,previousActivityId:t}=x();l.useEffect(()=>{o!=null&&e.setValue("CURRENTACTIVITYID",o),t!=null&&e.setValue("LASTACTIVITYID",t)},[o,t,e]),l.useEffect(()=>{if(typeof window>"u"||!window.top)return;const r=window.top.document,i=s=>{const a=s.target;(a.closest("[data-take-decision]")||a.closest("[data-take-task]")||a.closest(".movement-button"))&&(console.log("[FluigLifecycle] Ação detectada: setando modo 'edit'"),e.setValue("FORM_MODE","edit"))};return r.addEventListener("click",i),()=>r.removeEventListener("click",i)},[e]),l.useEffect(()=>{var i,s;if(typeof window>"u")return;const r=((i=window.top)==null?void 0:i.document.getElementById("send-process-button"))||((s=window.parent)==null?void 0:s.document.getElementById("workflow-actions-send"));r&&(window.beforeSendValidate=()=>{let a=!1;return e.handleSubmit(()=>{window.top.__FLUIG_REACT_FORM_DATA__=e.getValues(),e.setValue("FORM_MODE","view"),window.beforeSendValidate=()=>!0,a=!0,r.click()},c=>{var u,n;console.error("[Validation Errors]",c),(n=(u=window.top)==null?void 0:u.FLUIGC)!=null&&n.toast&&window.top.FLUIGC.toast({title:"Atenção",message:"Verifique os campos obrigatórios.",type:"danger"})})(),a})},[e])}const ee=({workflowStructure:e,sectionsRegistry:o,className:t})=>{const{control:r,handleSubmit:i,register:s,setValue:a,watch:c}=F.useFormContext(),u=x(),n=c("FORM_MODE"),g=l.useRef(!1);l.useEffect(()=>{g.current||(u.activityId!=null&&a("CURRENTACTIVITYID",u.activityId),u.previousActivityId!=null&&a("LASTACTIVITYID",u.previousActivityId),g.current=!0)},[u,a]);const{sections:d,fields:w}=J({control:r,activityId:u.activityId,previousActivityId:u.previousActivityId,workflowStructure:e,sectionsRegistry:o}),y=m=>{console.log("✅ [FluigWorkflowForm] Dados válidos:",m)};return p.jsxs("form",{id:"fluig-react-form",className:t,onSubmit:i(y),noValidate:!0,children:[p.jsxs("div",{className:"hidden",style:{display:"none"},children:[p.jsx("input",{type:"hidden",...s("CURRENTACTIVITYID")}),p.jsx("input",{type:"hidden",...s("LASTACTIVITYID")}),p.jsx("input",{type:"hidden",...s("FORM_MODE")})]}),d.length===0&&u.activityId!==null&&p.jsxs("p",{children:["Não foi possível encontrar a atividade: ",String(u.activityId)]}),d.map(({name:m,mode:f})=>{if(f==="hidden")return null;const v=o[m];if(!v)return null;const h=v.Component,R=n==="VIEW";return p.jsx(h,{id:m,fields:w,readOnly:f==="readonly"||R},m)}),u.isDev&&u.showDebugSubmit&&p.jsx("div",{style:{width:"100%",padding:"16px",paddingTop:"0"},children:p.jsx("button",{type:"submit",className:"btn btn-primary btn-lg btn-block",children:"Submit (Debug)"})})]})},te=e=>{const{mergedSchema:o}=T(),t=x(),r=F.useForm({resolver:o?B(o):void 0,defaultValues:t.prefilledValues,mode:"onBlur"});return Z(r),l.useEffect(()=>{t.showDebugLogs&&(A.DebugLogger.header("Form Initialized"),A.DebugLogger.table("Prefilled Values (DOM Capture)",t.prefilledValues),A.DebugLogger.info("RHF Current Values",r.getValues()),A.DebugLogger.end())},[t.showDebugLogs,t.prefilledValues,r]),p.jsx(F.FormProvider,{...r,children:p.jsx(ee,{...e})})};async function ne(e){if(!e)return console.warn("[setFluigNextActivity] Nenhuma atividade informada."),!1;const{wfView:o,wkfView:t}=await re();if(!o||!t)return!1;oe(o);const r=Number(e),i=ie(o,r);return i?(se(o,t,i,r),console.log(`[setFluigNextActivity] Próxima atividade definida: ${r}`),!0):(console.warn(`[setFluigNextActivity] Estado ${r} não encontrado nas próximas atividades disponíveis.`),console.log("Estados disponíveis:",o.availableStatesCOPY||o.availableStates),!1)}async function re(){const e=await A.parentProxy.top.ECM.workflowView,o=await A.parentProxy.top.ECM_WKFView;return!e||!o?(console.warn("[setFluigNextActivity] Contexto Fluig inválido ou não carregado."),{}):{wfView:e,wkfView:o}}function oe(e){e.availableStatesCOPY||(e.availableStatesCOPY=e.availableStates)}function ie(e,o){const t=e.availableStatesCOPY||e.availableStates;return t==null?void 0:t.find(r=>r.sequence===o)}function se(e,o,t,r){e.availableUsers.users=[],e.availableStates=[t],o.selectActivity=()=>r}const _=l.createContext(null);function ae(){const e=l.useContext(_);if(!e)throw new Error("useSection deve ser usado dentro de um componente <Section>");return e}function ce({id:e,className:o,schema:t,children:r,form:i,prefilledValues:s,readOnly:a,fields:c={},hidden:u=!1}){const{isView:n,activityId:g}=x(),d=g,w=F.useFormContext(),y=i||w;if(!y)return console.error(`[FluigWorkflowReact] Section "${e}" não encontrou o 'form'.`),null;if(u)return null;const m=l.useCallback(b=>{var E,V,C;return(E=c.hidden)!=null&&E.includes(b)?"hidden":(V=c.readonly)!=null&&V.includes(b)?"readonly":(C=c.active)!=null&&C.includes(b)?"active":a?"readonly":"active"},[c,a]),f=l.useCallback(b=>m(b)==="hidden",[m]),v=l.useCallback(b=>m(b)==="readonly",[m]),h=l.useCallback(b=>{if(!b)return;const E=y.getValues("CURRENTACTIVITYID");y.setValue("LASTACTIVITYID",E),y.setValue("CURRENTACTIVITYID",d),ne(Number(b))},[y,d]);l.useEffect(()=>{if(!n||!s||!t||!y)return;const b=y.getValues(),E=t.shape;E&&Object.entries(E).forEach(([V,C])=>{var k,P;let S=C;for(;(k=S==null?void 0:S._def)!=null&&k.schema;)S=S._def.schema;const I=(P=S==null?void 0:S._def)==null?void 0:P.fluig;if((I==null?void 0:I.type)!=="options"||!Array.isArray(I.values)||b[V]!==void 0)return;const D={};I.values.forEach(M=>{D[M]=s[M]==="on"}),y.setValue(V,D,{shouldDirty:!1,shouldValidate:!1})})},[n,s,t,y]);const R=l.useMemo(()=>({id:e,form:y,isHidden:f,isReadOnly:v,isView:n,next:h,wf_activity_id:d}),[e,y,f,v,n,h,d]);return p.jsx(_.Provider,{value:R,children:p.jsx("section",{id:e,className:[e,o].filter(Boolean).join(" "),children:r})})}const Y=l.createContext(null);function ue({children:e,config:o}){const t=l.useMemo(()=>A.createFluigClient(o),[o]);return p.jsx(Y.Provider,{value:t,children:e})}function le(){const e=l.useContext(Y);if(!e)throw new Error("useFluigApi deve ser usado dentro de um <FluigApiProvider>");return e}Object.defineProperty(exports,"DebugLogger",{enumerable:!0,get:()=>A.DebugLogger});Object.defineProperty(exports,"createFluigClient",{enumerable:!0,get:()=>A.createFluigClient});Object.defineProperty(exports,"parentProxy",{enumerable:!0,get:()=>A.parentProxy});exports.FluigApiProvider=ue;exports.FluigRuntimeProvider=X;exports.FluigWorkflowForm=te;exports.SchemaRegistryProvider=z;exports.Section=ce;exports.useFluigApi=le;exports.useFluigRuntime=x;exports.useSchemaRegistry=T;exports.useSection=ae;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react/jsx-runtime"),l=require("react"),F=require("react-hook-form"),N=require("@hookform/resolvers"),W=require("zod"),A=require("@fluig-kit/core");var U=function(e,o){for(var t={};e.length;){var n=e[0],i=n.code,s=n.message,a=n.path.join(".");if(!t[a])if("unionErrors"in n){var u=n.unionErrors[0].errors[0];t[a]={message:u.message,type:u.code}}else t[a]={message:s,type:i};if("unionErrors"in n&&n.unionErrors.forEach(function(h){return h.errors.forEach(function(d){return e.push(d)})}),o){var c=t[a].types,r=c&&c[n.code];t[a]=F.appendErrors(a,o,t,i,r?[].concat(r,n.message):n.message)}e.shift()}return t},z=function(e,o,t){return t===void 0&&(t={}),function(n,i,s){try{return Promise.resolve(function(a,u){try{var c=Promise.resolve(e[t.mode==="sync"?"parse":"parseAsync"](n,o)).then(function(r){return s.shouldUseNativeValidation&&N.validateFieldsNatively({},s),{errors:{},values:t.raw?n:r}})}catch(r){return u(r)}return c&&c.then?c.then(void 0,u):c}(0,function(a){if(function(u){return Array.isArray(u==null?void 0:u.errors)}(a))return{values:{},errors:N.toNestErrors(U(a.errors,!s.shouldUseNativeValidation&&s.criteriaMode==="all"),s)};throw a}))}catch(a){return Promise.reject(a)}}};const j=l.createContext(null);function B({children:e,baseSchema:o}){const[t,n]=l.useState([]),i=l.useMemo(()=>o??W.z.object({}),[o]),s=l.useCallback((r,h)=>{n(d=>d.some(w=>w.id===r)?d:[...d,{id:r,schema:h}])},[]),a=l.useCallback(r=>{n(h=>h.some(d=>d.id===r)?h.filter(d=>d.id!==r):h)},[]),u=l.useMemo(()=>t.length?t.map(r=>r.schema).reduce((r,h)=>r.and(h),i):i,[t,i]),c=l.useMemo(()=>({registerSchema:s,unregisterSchema:a,mergedSchema:u}),[s,a,u]);return p.jsx(j.Provider,{value:c,children:e})}function R(){const e=l.useContext(j);if(!e)throw new Error("useSchemaRegistry deve ser usado dentro de <SchemaRegistryProvider>");return e}function O(e){return typeof e=="number"?e:isNaN(Number(e))?null:Number(e)}function L(e,o,t){if(!e)return!0;const n=Array.isArray(o)?o[0]:o,i=e.field??n,s=t==null?void 0:t[i];return e.hasValue!==void 0?e.hasValue?s!=null&&s!=="":s==null||s==="":e.equals!==void 0?s===e.equals:e.notEquals!==void 0?s!==e.notEquals:!0}function G(e,o,t,n,i){const s=new Set(e),a=new Set(o);return t==null||t.forEach(u=>{if(u.from!==void 0){const r=Array.isArray(u.from)?u.from:[u.from];if(n===null||!r.includes(n))return}if(!L(u.when,u.target,i))return;const c=Array.isArray(u.target)?u.target:[u.target];switch(u.type){case"readonly":c.forEach(r=>{a.add(r),s.delete(r)});break;case"active":c.forEach(r=>{s.add(r),a.delete(r)});break;case"hidden":c.forEach(r=>{s.delete(r),a.delete(r)});break}}),{active:Array.from(s),readonly:Array.from(a)}}function $(e,o,t,n){const i=new Set(e.active),s=new Set(e.readonly),a=new Set(e.hidden??[]);return o==null||o.forEach(u=>{if(u.from!==void 0){const r=Array.isArray(u.from)?u.from:[u.from];if(t===null||!r.includes(t))return}if(!L(u.when,u.target,n))return;const c=Array.isArray(u.target)?u.target:[u.target];switch(u.type){case"hidden":c.forEach(r=>{a.add(r),i.delete(r),s.delete(r)});break;case"active":c.forEach(r=>{i.add(r),s.delete(r),a.delete(r)});break;case"readonly":c.forEach(r=>{s.add(r),i.delete(r),a.delete(r)});break}}),{active:Array.from(i),readonly:Array.from(s),hidden:Array.from(a)}}function H(e,o){if(!(e!=null&&e.length))return o;const t=new Map(o.map(i=>[i.name,i])),n=[];return e.forEach(i=>{t.has(i)&&(n.push(t.get(i)),t.delete(i))}),t.forEach(i=>n.push(i)),n}function K(e){var n,i;const o=new Set,t=(s=[])=>{s.forEach(a=>{var u;a.target&&(Array.isArray(a.target)?a.target:[a.target]).forEach(r=>o.add(r)),(u=a.when)!=null&&u.field&&o.add(a.when.field)})};return t((n=e==null?void 0:e.fields)==null?void 0:n.rules),t((i=e==null?void 0:e.sections)==null?void 0:i.rules),Array.from(o)}function J({activityId:e,previousActivityId:o,control:t,workflowStructure:n,sectionsRegistry:i}){const{registerSchema:s,unregisterSchema:a}=R(),u=O(e),c=O(o),r=u!==null?n[u]:null,h=l.useMemo(()=>K(r),[u,r]),d=F.useWatch({control:t,name:h,defaultValue:{}}),w=l.useMemo(()=>{const m={};return h.forEach((f,v)=>{m[f]=Array.isArray(d)?d[v]:d}),m},[d,h]),y=l.useMemo(()=>{if(!r)return{sections:[],fields:{active:[],readonly:[],hidden:[]}};const m=G(r.sections.active,r.sections.readonly,r.sections.rules,c,w);let f=[...m.readonly.map(g=>({name:g,mode:"readonly"})),...m.active.map(g=>({name:g,mode:"active"}))];f=H(r.sections.order,f);const v=$({active:r.fields.active,readonly:r.fields.readonly,hidden:r.fields.hidden},r.fields.rules,c,w);return{sections:f,fields:v}},[r,c,w,i]);return l.useEffect(()=>{const m=y.sections.filter(f=>f.mode==="active").map(f=>f.name);m.forEach(f=>{var g;const v=(g=i==null?void 0:i[f])==null?void 0:g.schema;v&&s(f,v)}),Object.keys(i??{}).filter(f=>!m.includes(f)).forEach(a)},[y.sections,i,s,a]),y}function Q(){if(typeof document>"u")return{};const e={};return document.querySelectorAll("input[type='radio'][name]").forEach(o=>{const t=o,n=t.getAttribute("name");n&&t.checked&&(e[n]=t.value)}),document.querySelectorAll("input[name], textarea[name], select[name]").forEach(o=>{const t=o,n=t.getAttribute("name");if(!n||e[n]!==void 0)return;const i=t.getAttribute("value")??t.value??t.textContent??"";e[n]=String(i).trim()}),document.querySelectorAll("span[name]").forEach(o=>{var i;const t=o,n=t.getAttribute("name");if(n){const s=((i=t.textContent)==null?void 0:i.trim())??"";s!==""&&(e[n]=s)}}),e}const q=l.createContext(null);function X({children:e,devConfig:o}){const[t,n]=l.useState(null),i=l.useRef(o);l.useEffect(()=>{i.current=o},[o]);const s=l.useMemo(()=>Q()??{},[]);return l.useEffect(()=>{let a=!0;return(async()=>{var m,f;const c=typeof window<"u"&&window.location.hostname==="localhost";let r=null;try{const v=await((m=A.parentProxy.top.ECM)==null?void 0:m.workflowView);if(v){const g=await v.sequence;r=g!==void 0?Number(g):null}}catch(v){c||console.warn("[FluigRuntime] Erro Proxy:",v)}const d=(s.FORM_MODE||"")==="VIEW",w={isView:d,isReadOnly:d,activityId:r,previousActivityId:s.LASTACTIVITYID?Number(s.LASTACTIVITYID):null,prefilledValues:s,showDebugSubmit:!1,showDebugLogs:!1,isDev:!1};let y={...w};if((f=i.current)!=null&&f.enabled){const v=i.current,g=v.isView??w.isView;y={...w,...v,isView:g,isReadOnly:g,isDev:!0,activityId:v.activityId!==void 0?v.activityId:r}}a&&n(y)})(),()=>{a=!1}},[s]),t?p.jsx(q.Provider,{value:t,children:e}):null}function x(){const e=l.useContext(q);if(!e)throw new Error("useFluigRuntime deve ser usado dentro de <FluigRuntimeProvider>");return e}function Z(e){const{activityId:o,previousActivityId:t}=x();l.useEffect(()=>{o!=null&&e.setValue("CURRENTACTIVITYID",o),t!=null&&e.setValue("LASTACTIVITYID",t)},[o,t,e]),l.useEffect(()=>{if(typeof window>"u"||!window.top)return;const n=window.top.document,i=a=>{e.setValue("FORM_MODE",a);const u=document.querySelector('input[name="FORM_MODE"]');u&&(u.value=a),console.log(`[FORM_MODE] ${a}`)},s=a=>{const u=a.target;if(u.closest("#send-process-button")||u.closest("#workflow-actions-send")){i("VIEW");return}u.closest("[data-take-decision], [data-take-task], .movement-button")&&i("EDIT")};return n.addEventListener("mousedown",s,!0),()=>n.removeEventListener("mousedown",s,!0)},[e]),l.useEffect(()=>{if(typeof window>"u")return;let n=!1;window.beforeSendValidate=()=>n?!0:(e.handleSubmit(i=>(window.top.__FLUIG_REACT_FORM_DATA__=i,n=!0,!0),i=>{var s,a;console.error("[Validation Errors]",i),n=!1,(a=(s=window.top)==null?void 0:s.FLUIGC)!=null&&a.toast&&window.top.FLUIGC.toast({title:"Atenção",message:"Verifique os campos obrigatórios.",type:"danger"})})(),!1)},[e])}const ee=({workflowStructure:e,sectionsRegistry:o,className:t})=>{const{control:n,handleSubmit:i,register:s,setValue:a,watch:u}=F.useFormContext(),c=x(),r=u("FORM_MODE"),h=l.useRef(!1);l.useEffect(()=>{h.current||(c.activityId!=null&&a("CURRENTACTIVITYID",c.activityId),c.previousActivityId!=null&&a("LASTACTIVITYID",c.previousActivityId),h.current=!0)},[c,a]);const{sections:d,fields:w}=J({control:n,activityId:c.activityId,previousActivityId:c.previousActivityId,workflowStructure:e,sectionsRegistry:o}),y=m=>{console.log("✅ [FluigWorkflowForm] Dados válidos:",m)};return p.jsxs("form",{id:"fluig-react-form",className:t,onSubmit:i(y),noValidate:!0,children:[p.jsxs("div",{className:"hidden",style:{display:"none"},children:[p.jsx("input",{type:"hidden",...s("CURRENTACTIVITYID")}),p.jsx("input",{type:"hidden",...s("LASTACTIVITYID")}),p.jsx("input",{type:"hidden",...s("FORM_MODE")})]}),d.length===0&&c.activityId!==null&&p.jsxs("p",{children:["Não foi possível encontrar a atividade: ",String(c.activityId)]}),d.map(({name:m,mode:f})=>{if(f==="hidden")return null;const v=o[m];if(!v)return null;const g=v.Component,D=r==="VIEW";return p.jsx(g,{id:m,fields:w,readOnly:f==="readonly"||D},m)}),c.isDev&&c.showDebugSubmit&&p.jsx("div",{style:{width:"100%",padding:"16px",paddingTop:"0"},children:p.jsx("button",{type:"submit",className:"btn btn-primary btn-lg btn-block",children:"Submit (Debug)"})})]})},te=e=>{const{mergedSchema:o}=R(),t=x(),n=F.useForm({resolver:o?z(o):void 0,defaultValues:t.prefilledValues,mode:"onBlur"});return Z(n),l.useEffect(()=>{t.showDebugLogs&&(A.DebugLogger.header("Form Initialized"),A.DebugLogger.table("Prefilled Values (DOM Capture)",t.prefilledValues),A.DebugLogger.info("RHF Current Values",n.getValues()),A.DebugLogger.end())},[t.showDebugLogs,t.prefilledValues,n]),p.jsx(F.FormProvider,{...n,children:p.jsx(ee,{...e})})};async function ne(e){if(!e)return console.warn("[setFluigNextActivity] Nenhuma atividade informada."),!1;const{wfView:o,wkfView:t}=await re();if(!o||!t)return!1;oe(o);const n=Number(e),i=ie(o,n);return i?(se(o,t,i,n),console.log(`[setFluigNextActivity] Próxima atividade definida: ${n}`),!0):(console.warn(`[setFluigNextActivity] Estado ${n} não encontrado nas próximas atividades disponíveis.`),console.log("Estados disponíveis:",o.availableStatesCOPY||o.availableStates),!1)}async function re(){const e=await A.parentProxy.top.ECM.workflowView,o=await A.parentProxy.top.ECM_WKFView;return!e||!o?(console.warn("[setFluigNextActivity] Contexto Fluig inválido ou não carregado."),{}):{wfView:e,wkfView:o}}function oe(e){e.availableStatesCOPY||(e.availableStatesCOPY=e.availableStates)}function ie(e,o){const t=e.availableStatesCOPY||e.availableStates;return t==null?void 0:t.find(n=>n.sequence===o)}function se(e,o,t,n){e.availableUsers.users=[],e.availableStates=[t],o.selectActivity=()=>n}const _=l.createContext(null);function ae(){const e=l.useContext(_);if(!e)throw new Error("useSection deve ser usado dentro de um componente <Section>");return e}function ue({id:e,className:o,schema:t,children:n,form:i,prefilledValues:s,readOnly:a,fields:u={},hidden:c=!1}){const{isView:r,activityId:h}=x(),d=h,w=F.useFormContext(),y=i||w;if(!y)return console.error(`[FluigWorkflowReact] Section "${e}" não encontrou o 'form'.`),null;if(c)return null;const m=l.useCallback(b=>{var E,I,C;return(E=u.hidden)!=null&&E.includes(b)?"hidden":(I=u.readonly)!=null&&I.includes(b)?"readonly":(C=u.active)!=null&&C.includes(b)?"active":a?"readonly":"active"},[u,a]),f=l.useCallback(b=>m(b)==="hidden",[m]),v=l.useCallback(b=>m(b)==="readonly",[m]),g=l.useCallback(b=>{if(!b)return;const E=y.getValues("CURRENTACTIVITYID");y.setValue("LASTACTIVITYID",E),y.setValue("CURRENTACTIVITYID",d),ne(Number(b))},[y,d]);l.useEffect(()=>{if(!r||!s||!t||!y)return;const b=y.getValues(),E=t.shape;E&&Object.entries(E).forEach(([I,C])=>{var M,P;let S=C;for(;(M=S==null?void 0:S._def)!=null&&M.schema;)S=S._def.schema;const V=(P=S==null?void 0:S._def)==null?void 0:P.fluig;if((V==null?void 0:V.type)!=="options"||!Array.isArray(V.values)||b[I]!==void 0)return;const T={};V.values.forEach(k=>{T[k]=s[k]==="on"}),y.setValue(I,T,{shouldDirty:!1,shouldValidate:!1})})},[r,s,t,y]);const D=l.useMemo(()=>({id:e,form:y,isHidden:f,isReadOnly:v,isView:r,next:g,wf_activity_id:d}),[e,y,f,v,r,g,d]);return p.jsx(_.Provider,{value:D,children:p.jsx("section",{id:e,className:[e,o].filter(Boolean).join(" "),children:n})})}const Y=l.createContext(null);function ce({children:e,config:o}){const t=l.useMemo(()=>A.createFluigClient(o),[o]);return p.jsx(Y.Provider,{value:t,children:e})}function le(){const e=l.useContext(Y);if(!e)throw new Error("useFluigApi deve ser usado dentro de um <FluigApiProvider>");return e}Object.defineProperty(exports,"DebugLogger",{enumerable:!0,get:()=>A.DebugLogger});Object.defineProperty(exports,"createFluigClient",{enumerable:!0,get:()=>A.createFluigClient});Object.defineProperty(exports,"parentProxy",{enumerable:!0,get:()=>A.parentProxy});exports.FluigApiProvider=ce;exports.FluigRuntimeProvider=X;exports.FluigWorkflowForm=te;exports.SchemaRegistryProvider=B;exports.Section=ue;exports.useFluigApi=le;exports.useFluigRuntime=x;exports.useSchemaRegistry=R;exports.useSection=ae;
|
package/dist/index.js
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
import { jsx as g, jsxs as N } from "react/jsx-runtime";
|
|
2
|
-
import { createContext as x, useState as q, useMemo as A, useCallback as I, useContext as D, useEffect as b, useRef as
|
|
3
|
-
import { appendErrors as K, useWatch as J, useForm as Q, FormProvider as X, useFormContext as
|
|
2
|
+
import { createContext as x, useState as q, useMemo as A, useCallback as I, useContext as D, useEffect as b, useRef as W } from "react";
|
|
3
|
+
import { appendErrors as K, useWatch as J, useForm as Q, FormProvider as X, useFormContext as U } from "react-hook-form";
|
|
4
4
|
import { validateFieldsNatively as Z, toNestErrors as ee } from "@hookform/resolvers";
|
|
5
5
|
import { z as te } from "zod";
|
|
6
|
-
import { parentProxy as
|
|
7
|
-
import { DebugLogger as
|
|
6
|
+
import { parentProxy as M, DebugLogger as T, createFluigClient as ne } from "@fluig-kit/core";
|
|
7
|
+
import { DebugLogger as Me, createFluigClient as ke, parentProxy as Oe } from "@fluig-kit/core";
|
|
8
8
|
var re = function(e, o) {
|
|
9
9
|
for (var t = {}; e.length; ) {
|
|
10
|
-
var
|
|
11
|
-
if (!t[s]) if ("unionErrors" in
|
|
12
|
-
var c =
|
|
10
|
+
var n = e[0], i = n.code, a = n.message, s = n.path.join(".");
|
|
11
|
+
if (!t[s]) if ("unionErrors" in n) {
|
|
12
|
+
var c = n.unionErrors[0].errors[0];
|
|
13
13
|
t[s] = { message: c.message, type: c.code };
|
|
14
14
|
} else t[s] = { message: a, type: i };
|
|
15
|
-
if ("unionErrors" in
|
|
15
|
+
if ("unionErrors" in n && n.unionErrors.forEach(function(v) {
|
|
16
16
|
return v.errors.forEach(function(l) {
|
|
17
17
|
return e.push(l);
|
|
18
18
|
});
|
|
19
19
|
}), o) {
|
|
20
|
-
var u = t[s].types,
|
|
21
|
-
t[s] = K(s, o, t, i,
|
|
20
|
+
var u = t[s].types, r = u && u[n.code];
|
|
21
|
+
t[s] = K(s, o, t, i, r ? [].concat(r, n.message) : n.message);
|
|
22
22
|
}
|
|
23
23
|
e.shift();
|
|
24
24
|
}
|
|
25
25
|
return t;
|
|
26
26
|
}, oe = function(e, o, t) {
|
|
27
|
-
return t === void 0 && (t = {}), function(
|
|
27
|
+
return t === void 0 && (t = {}), function(n, i, a) {
|
|
28
28
|
try {
|
|
29
29
|
return Promise.resolve(function(s, c) {
|
|
30
30
|
try {
|
|
31
|
-
var u = Promise.resolve(e[t.mode === "sync" ? "parse" : "parseAsync"](
|
|
32
|
-
return a.shouldUseNativeValidation && Z({}, a), { errors: {}, values: t.raw ?
|
|
31
|
+
var u = Promise.resolve(e[t.mode === "sync" ? "parse" : "parseAsync"](n, o)).then(function(r) {
|
|
32
|
+
return a.shouldUseNativeValidation && Z({}, a), { errors: {}, values: t.raw ? n : r };
|
|
33
33
|
});
|
|
34
|
-
} catch (
|
|
35
|
-
return c(
|
|
34
|
+
} catch (r) {
|
|
35
|
+
return c(r);
|
|
36
36
|
}
|
|
37
37
|
return u && u.then ? u.then(void 0, c) : u;
|
|
38
38
|
}(0, function(s) {
|
|
@@ -53,11 +53,11 @@ function Ie({
|
|
|
53
53
|
children: e,
|
|
54
54
|
baseSchema: o
|
|
55
55
|
}) {
|
|
56
|
-
const [t,
|
|
57
|
-
|
|
58
|
-
}, []), s = I((
|
|
59
|
-
|
|
60
|
-
}, []), c = A(() => t.length ? t.map((
|
|
56
|
+
const [t, n] = q([]), i = A(() => o ?? te.object({}), [o]), a = I((r, v) => {
|
|
57
|
+
n((l) => l.some((p) => p.id === r) ? l : [...l, { id: r, schema: v }]);
|
|
58
|
+
}, []), s = I((r) => {
|
|
59
|
+
n((v) => v.some((l) => l.id === r) ? v.filter((l) => l.id !== r) : v);
|
|
60
|
+
}, []), c = A(() => t.length ? t.map((r) => r.schema).reduce((r, v) => r.and(v), i) : i, [t, i]), u = A(
|
|
61
61
|
() => ({
|
|
62
62
|
registerSchema: a,
|
|
63
63
|
unregisterSchema: s,
|
|
@@ -67,7 +67,7 @@ function Ie({
|
|
|
67
67
|
);
|
|
68
68
|
return /* @__PURE__ */ g(j.Provider, { value: u, children: e });
|
|
69
69
|
}
|
|
70
|
-
function
|
|
70
|
+
function z() {
|
|
71
71
|
const e = D(j);
|
|
72
72
|
if (!e)
|
|
73
73
|
throw new Error(
|
|
@@ -78,62 +78,62 @@ function B() {
|
|
|
78
78
|
function Y(e) {
|
|
79
79
|
return typeof e == "number" ? e : isNaN(Number(e)) ? null : Number(e);
|
|
80
80
|
}
|
|
81
|
-
function
|
|
81
|
+
function B(e, o, t) {
|
|
82
82
|
if (!e) return !0;
|
|
83
|
-
const
|
|
83
|
+
const n = Array.isArray(o) ? o[0] : o, i = e.field ?? n, a = t == null ? void 0 : t[i];
|
|
84
84
|
return e.hasValue !== void 0 ? e.hasValue ? a != null && a !== "" : a == null || a === "" : e.equals !== void 0 ? a === e.equals : e.notEquals !== void 0 ? a !== e.notEquals : !0;
|
|
85
85
|
}
|
|
86
|
-
function ie(e, o, t,
|
|
86
|
+
function ie(e, o, t, n, i) {
|
|
87
87
|
const a = new Set(e), s = new Set(o);
|
|
88
88
|
return t == null || t.forEach((c) => {
|
|
89
89
|
if (c.from !== void 0) {
|
|
90
|
-
const
|
|
91
|
-
if (
|
|
90
|
+
const r = Array.isArray(c.from) ? c.from : [c.from];
|
|
91
|
+
if (n === null || !r.includes(n)) return;
|
|
92
92
|
}
|
|
93
|
-
if (!
|
|
93
|
+
if (!B(c.when, c.target, i)) return;
|
|
94
94
|
const u = Array.isArray(c.target) ? c.target : [c.target];
|
|
95
95
|
switch (c.type) {
|
|
96
96
|
case "readonly":
|
|
97
|
-
u.forEach((
|
|
98
|
-
s.add(
|
|
97
|
+
u.forEach((r) => {
|
|
98
|
+
s.add(r), a.delete(r);
|
|
99
99
|
});
|
|
100
100
|
break;
|
|
101
101
|
case "active":
|
|
102
|
-
u.forEach((
|
|
103
|
-
a.add(
|
|
102
|
+
u.forEach((r) => {
|
|
103
|
+
a.add(r), s.delete(r);
|
|
104
104
|
});
|
|
105
105
|
break;
|
|
106
106
|
case "hidden":
|
|
107
|
-
u.forEach((
|
|
108
|
-
a.delete(
|
|
107
|
+
u.forEach((r) => {
|
|
108
|
+
a.delete(r), s.delete(r);
|
|
109
109
|
});
|
|
110
110
|
break;
|
|
111
111
|
}
|
|
112
112
|
}), { active: Array.from(a), readonly: Array.from(s) };
|
|
113
113
|
}
|
|
114
|
-
function ae(e, o, t,
|
|
114
|
+
function ae(e, o, t, n) {
|
|
115
115
|
const i = new Set(e.active), a = new Set(e.readonly), s = new Set(e.hidden ?? []);
|
|
116
116
|
return o == null || o.forEach((c) => {
|
|
117
117
|
if (c.from !== void 0) {
|
|
118
|
-
const
|
|
119
|
-
if (t === null || !
|
|
118
|
+
const r = Array.isArray(c.from) ? c.from : [c.from];
|
|
119
|
+
if (t === null || !r.includes(t)) return;
|
|
120
120
|
}
|
|
121
|
-
if (!
|
|
121
|
+
if (!B(c.when, c.target, n)) return;
|
|
122
122
|
const u = Array.isArray(c.target) ? c.target : [c.target];
|
|
123
123
|
switch (c.type) {
|
|
124
124
|
case "hidden":
|
|
125
|
-
u.forEach((
|
|
126
|
-
s.add(
|
|
125
|
+
u.forEach((r) => {
|
|
126
|
+
s.add(r), i.delete(r), a.delete(r);
|
|
127
127
|
});
|
|
128
128
|
break;
|
|
129
129
|
case "active":
|
|
130
|
-
u.forEach((
|
|
131
|
-
i.add(
|
|
130
|
+
u.forEach((r) => {
|
|
131
|
+
i.add(r), a.delete(r), s.delete(r);
|
|
132
132
|
});
|
|
133
133
|
break;
|
|
134
134
|
case "readonly":
|
|
135
|
-
u.forEach((
|
|
136
|
-
a.add(
|
|
135
|
+
u.forEach((r) => {
|
|
136
|
+
a.add(r), i.delete(r), s.delete(r);
|
|
137
137
|
});
|
|
138
138
|
break;
|
|
139
139
|
}
|
|
@@ -145,29 +145,29 @@ function ae(e, o, t, r) {
|
|
|
145
145
|
}
|
|
146
146
|
function se(e, o) {
|
|
147
147
|
if (!(e != null && e.length)) return o;
|
|
148
|
-
const t = new Map(o.map((i) => [i.name, i])),
|
|
148
|
+
const t = new Map(o.map((i) => [i.name, i])), n = [];
|
|
149
149
|
return e.forEach((i) => {
|
|
150
|
-
t.has(i) && (
|
|
151
|
-
}), t.forEach((i) =>
|
|
150
|
+
t.has(i) && (n.push(t.get(i)), t.delete(i));
|
|
151
|
+
}), t.forEach((i) => n.push(i)), n;
|
|
152
152
|
}
|
|
153
153
|
function ce(e) {
|
|
154
|
-
var
|
|
154
|
+
var n, i;
|
|
155
155
|
const o = /* @__PURE__ */ new Set(), t = (a = []) => {
|
|
156
156
|
a.forEach((s) => {
|
|
157
157
|
var c;
|
|
158
|
-
s.target && (Array.isArray(s.target) ? s.target : [s.target]).forEach((
|
|
158
|
+
s.target && (Array.isArray(s.target) ? s.target : [s.target]).forEach((r) => o.add(r)), (c = s.when) != null && c.field && o.add(s.when.field);
|
|
159
159
|
});
|
|
160
160
|
};
|
|
161
|
-
return t((
|
|
161
|
+
return t((n = e == null ? void 0 : e.fields) == null ? void 0 : n.rules), t((i = e == null ? void 0 : e.sections) == null ? void 0 : i.rules), Array.from(o);
|
|
162
162
|
}
|
|
163
163
|
function ue({
|
|
164
164
|
activityId: e,
|
|
165
165
|
previousActivityId: o,
|
|
166
166
|
control: t,
|
|
167
|
-
workflowStructure:
|
|
167
|
+
workflowStructure: n,
|
|
168
168
|
sectionsRegistry: i
|
|
169
169
|
}) {
|
|
170
|
-
const { registerSchema: a, unregisterSchema: s } =
|
|
170
|
+
const { registerSchema: a, unregisterSchema: s } = z(), c = Y(e), u = Y(o), r = c !== null ? n[c] : null, v = A(() => ce(r), [c, r]), l = J({
|
|
171
171
|
control: t,
|
|
172
172
|
name: v,
|
|
173
173
|
defaultValue: {}
|
|
@@ -177,15 +177,15 @@ function ue({
|
|
|
177
177
|
f[d] = Array.isArray(l) ? l[m] : l;
|
|
178
178
|
}), f;
|
|
179
179
|
}, [l, v]), y = A(() => {
|
|
180
|
-
if (!
|
|
180
|
+
if (!r)
|
|
181
181
|
return {
|
|
182
182
|
sections: [],
|
|
183
183
|
fields: { active: [], readonly: [], hidden: [] }
|
|
184
184
|
};
|
|
185
185
|
const f = ie(
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
186
|
+
r.sections.active,
|
|
187
|
+
r.sections.readonly,
|
|
188
|
+
r.sections.rules,
|
|
189
189
|
u,
|
|
190
190
|
p
|
|
191
191
|
);
|
|
@@ -199,19 +199,19 @@ function ue({
|
|
|
199
199
|
mode: "active"
|
|
200
200
|
}))
|
|
201
201
|
];
|
|
202
|
-
d = se(
|
|
202
|
+
d = se(r.sections.order, d);
|
|
203
203
|
const m = ae(
|
|
204
204
|
{
|
|
205
|
-
active:
|
|
206
|
-
readonly:
|
|
207
|
-
hidden:
|
|
205
|
+
active: r.fields.active,
|
|
206
|
+
readonly: r.fields.readonly,
|
|
207
|
+
hidden: r.fields.hidden
|
|
208
208
|
},
|
|
209
|
-
|
|
209
|
+
r.fields.rules,
|
|
210
210
|
u,
|
|
211
211
|
p
|
|
212
212
|
);
|
|
213
213
|
return { sections: d, fields: m };
|
|
214
|
-
}, [
|
|
214
|
+
}, [r, u, p, i]);
|
|
215
215
|
return b(() => {
|
|
216
216
|
const f = y.sections.filter((d) => d.mode === "active").map((d) => d.name);
|
|
217
217
|
f.forEach((d) => {
|
|
@@ -225,28 +225,28 @@ function le() {
|
|
|
225
225
|
if (typeof document > "u") return {};
|
|
226
226
|
const e = {};
|
|
227
227
|
return document.querySelectorAll("input[type='radio'][name]").forEach((o) => {
|
|
228
|
-
const t = o,
|
|
229
|
-
|
|
228
|
+
const t = o, n = t.getAttribute("name");
|
|
229
|
+
n && t.checked && (e[n] = t.value);
|
|
230
230
|
}), document.querySelectorAll("input[name], textarea[name], select[name]").forEach((o) => {
|
|
231
|
-
const t = o,
|
|
232
|
-
if (!
|
|
231
|
+
const t = o, n = t.getAttribute("name");
|
|
232
|
+
if (!n || e[n] !== void 0) return;
|
|
233
233
|
const i = t.getAttribute("value") ?? t.value ?? t.textContent ?? "";
|
|
234
|
-
e[
|
|
234
|
+
e[n] = String(i).trim();
|
|
235
235
|
}), document.querySelectorAll("span[name]").forEach((o) => {
|
|
236
236
|
var i;
|
|
237
|
-
const t = o,
|
|
238
|
-
if (
|
|
237
|
+
const t = o, n = t.getAttribute("name");
|
|
238
|
+
if (n) {
|
|
239
239
|
const a = ((i = t.textContent) == null ? void 0 : i.trim()) ?? "";
|
|
240
|
-
a !== "" && (e[
|
|
240
|
+
a !== "" && (e[n] = a);
|
|
241
241
|
}
|
|
242
242
|
}), e;
|
|
243
243
|
}
|
|
244
244
|
const G = x(null);
|
|
245
|
-
function
|
|
245
|
+
function Ve({
|
|
246
246
|
children: e,
|
|
247
247
|
devConfig: o
|
|
248
248
|
}) {
|
|
249
|
-
const [t,
|
|
249
|
+
const [t, n] = q(null), i = W(o);
|
|
250
250
|
b(() => {
|
|
251
251
|
i.current = o;
|
|
252
252
|
}, [o]);
|
|
@@ -256,20 +256,20 @@ function Ee({
|
|
|
256
256
|
return (async () => {
|
|
257
257
|
var f, d;
|
|
258
258
|
const u = typeof window < "u" && window.location.hostname === "localhost";
|
|
259
|
-
let
|
|
259
|
+
let r = null;
|
|
260
260
|
try {
|
|
261
|
-
const m = await ((f =
|
|
261
|
+
const m = await ((f = M.top.ECM) == null ? void 0 : f.workflowView);
|
|
262
262
|
if (m) {
|
|
263
263
|
const h = await m.sequence;
|
|
264
|
-
|
|
264
|
+
r = h !== void 0 ? Number(h) : null;
|
|
265
265
|
}
|
|
266
266
|
} catch (m) {
|
|
267
267
|
u || console.warn("[FluigRuntime] Erro Proxy:", m);
|
|
268
268
|
}
|
|
269
|
-
const l = (a.FORM_MODE || "")
|
|
269
|
+
const l = (a.FORM_MODE || "") === "VIEW", p = {
|
|
270
270
|
isView: l,
|
|
271
271
|
isReadOnly: l,
|
|
272
|
-
activityId:
|
|
272
|
+
activityId: r,
|
|
273
273
|
previousActivityId: a.LASTACTIVITYID ? Number(a.LASTACTIVITYID) : null,
|
|
274
274
|
prefilledValues: a,
|
|
275
275
|
showDebugSubmit: !1,
|
|
@@ -285,10 +285,10 @@ function Ee({
|
|
|
285
285
|
isView: h,
|
|
286
286
|
isReadOnly: h,
|
|
287
287
|
isDev: !0,
|
|
288
|
-
activityId: m.activityId !== void 0 ? m.activityId :
|
|
288
|
+
activityId: m.activityId !== void 0 ? m.activityId : r
|
|
289
289
|
};
|
|
290
290
|
}
|
|
291
|
-
s &&
|
|
291
|
+
s && n(y);
|
|
292
292
|
})(), () => {
|
|
293
293
|
s = !1;
|
|
294
294
|
};
|
|
@@ -308,31 +308,37 @@ function de(e) {
|
|
|
308
308
|
o != null && e.setValue("CURRENTACTIVITYID", o), t != null && e.setValue("LASTACTIVITYID", t);
|
|
309
309
|
}, [o, t, e]), b(() => {
|
|
310
310
|
if (typeof window > "u" || !window.top) return;
|
|
311
|
-
const
|
|
312
|
-
|
|
313
|
-
|
|
311
|
+
const n = window.top.document, i = (s) => {
|
|
312
|
+
e.setValue("FORM_MODE", s);
|
|
313
|
+
const c = document.querySelector(
|
|
314
|
+
'input[name="FORM_MODE"]'
|
|
315
|
+
);
|
|
316
|
+
c && (c.value = s), console.log(`[FORM_MODE] ${s}`);
|
|
317
|
+
}, a = (s) => {
|
|
318
|
+
const c = s.target;
|
|
319
|
+
if (c.closest("#send-process-button") || c.closest("#workflow-actions-send")) {
|
|
320
|
+
i("VIEW");
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
c.closest(
|
|
324
|
+
"[data-take-decision], [data-take-task], .movement-button"
|
|
325
|
+
) && i("EDIT");
|
|
314
326
|
};
|
|
315
|
-
return
|
|
327
|
+
return n.addEventListener("mousedown", a, !0), () => n.removeEventListener("mousedown", a, !0);
|
|
316
328
|
}, [e]), b(() => {
|
|
317
|
-
var i, a;
|
|
318
329
|
if (typeof window > "u") return;
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
type: "danger"
|
|
332
|
-
});
|
|
333
|
-
}
|
|
334
|
-
)(), s;
|
|
335
|
-
});
|
|
330
|
+
let n = !1;
|
|
331
|
+
window.beforeSendValidate = () => n ? !0 : (e.handleSubmit(
|
|
332
|
+
(i) => (window.top.__FLUIG_REACT_FORM_DATA__ = i, n = !0, !0),
|
|
333
|
+
(i) => {
|
|
334
|
+
var a, s;
|
|
335
|
+
console.error("[Validation Errors]", i), n = !1, (s = (a = window.top) == null ? void 0 : a.FLUIGC) != null && s.toast && window.top.FLUIGC.toast({
|
|
336
|
+
title: "Atenção",
|
|
337
|
+
message: "Verifique os campos obrigatórios.",
|
|
338
|
+
type: "danger"
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
)(), !1);
|
|
336
342
|
}, [e]);
|
|
337
343
|
}
|
|
338
344
|
const fe = ({
|
|
@@ -340,12 +346,12 @@ const fe = ({
|
|
|
340
346
|
sectionsRegistry: o,
|
|
341
347
|
className: t
|
|
342
348
|
}) => {
|
|
343
|
-
const { control:
|
|
349
|
+
const { control: n, handleSubmit: i, register: a, setValue: s, watch: c } = U(), u = R(), r = c("FORM_MODE"), v = W(!1);
|
|
344
350
|
b(() => {
|
|
345
351
|
v.current || (u.activityId != null && s("CURRENTACTIVITYID", u.activityId), u.previousActivityId != null && s("LASTACTIVITYID", u.previousActivityId), v.current = !0);
|
|
346
352
|
}, [u, s]);
|
|
347
353
|
const { sections: l, fields: p } = ue({
|
|
348
|
-
control:
|
|
354
|
+
control: n,
|
|
349
355
|
activityId: u.activityId,
|
|
350
356
|
previousActivityId: u.previousActivityId,
|
|
351
357
|
workflowStructure: e,
|
|
@@ -380,7 +386,7 @@ const fe = ({
|
|
|
380
386
|
{
|
|
381
387
|
id: f,
|
|
382
388
|
fields: p,
|
|
383
|
-
readOnly: d === "readonly" ||
|
|
389
|
+
readOnly: d === "readonly" || r === "VIEW"
|
|
384
390
|
},
|
|
385
391
|
f
|
|
386
392
|
);
|
|
@@ -390,17 +396,17 @@ const fe = ({
|
|
|
390
396
|
}
|
|
391
397
|
);
|
|
392
398
|
}, Fe = (e) => {
|
|
393
|
-
const { mergedSchema: o } =
|
|
399
|
+
const { mergedSchema: o } = z(), t = R(), n = Q({
|
|
394
400
|
resolver: o ? oe(o) : void 0,
|
|
395
401
|
defaultValues: t.prefilledValues,
|
|
396
402
|
mode: "onBlur"
|
|
397
403
|
});
|
|
398
|
-
return de(
|
|
404
|
+
return de(n), b(() => {
|
|
399
405
|
t.showDebugLogs && (T.header("Form Initialized"), T.table(
|
|
400
406
|
"Prefilled Values (DOM Capture)",
|
|
401
407
|
t.prefilledValues
|
|
402
|
-
), T.info("RHF Current Values",
|
|
403
|
-
}, [t.showDebugLogs, t.prefilledValues,
|
|
408
|
+
), T.info("RHF Current Values", n.getValues()), T.end());
|
|
409
|
+
}, [t.showDebugLogs, t.prefilledValues, n]), /* @__PURE__ */ g(X, { ...n, children: /* @__PURE__ */ g(fe, { ...e }) });
|
|
404
410
|
};
|
|
405
411
|
async function me(e) {
|
|
406
412
|
if (!e)
|
|
@@ -408,11 +414,11 @@ async function me(e) {
|
|
|
408
414
|
const { wfView: o, wkfView: t } = await ve();
|
|
409
415
|
if (!o || !t) return !1;
|
|
410
416
|
ye(o);
|
|
411
|
-
const
|
|
412
|
-
return i ? (pe(o, t, i,
|
|
417
|
+
const n = Number(e), i = he(o, n);
|
|
418
|
+
return i ? (pe(o, t, i, n), console.log(`[setFluigNextActivity] Próxima atividade definida: ${n}`), !0) : (console.warn(`[setFluigNextActivity] Estado ${n} não encontrado nas próximas atividades disponíveis.`), console.log("Estados disponíveis:", o.availableStatesCOPY || o.availableStates), !1);
|
|
413
419
|
}
|
|
414
420
|
async function ve() {
|
|
415
|
-
const e = await
|
|
421
|
+
const e = await M.top.ECM.workflowView, o = await M.top.ECM_WKFView;
|
|
416
422
|
return !e || !o ? (console.warn("[setFluigNextActivity] Contexto Fluig inválido ou não carregado."), {}) : { wfView: e, wkfView: o };
|
|
417
423
|
}
|
|
418
424
|
function ye(e) {
|
|
@@ -420,10 +426,10 @@ function ye(e) {
|
|
|
420
426
|
}
|
|
421
427
|
function he(e, o) {
|
|
422
428
|
const t = e.availableStatesCOPY || e.availableStates;
|
|
423
|
-
return t == null ? void 0 : t.find((
|
|
429
|
+
return t == null ? void 0 : t.find((n) => n.sequence === o);
|
|
424
430
|
}
|
|
425
|
-
function pe(e, o, t,
|
|
426
|
-
e.availableUsers.users = [], e.availableStates = [t], o.selectActivity = () =>
|
|
431
|
+
function pe(e, o, t, n) {
|
|
432
|
+
e.availableUsers.users = [], e.availableStates = [t], o.selectActivity = () => n;
|
|
427
433
|
}
|
|
428
434
|
const $ = x(null);
|
|
429
435
|
function Ce() {
|
|
@@ -438,14 +444,14 @@ function Te({
|
|
|
438
444
|
id: e,
|
|
439
445
|
className: o,
|
|
440
446
|
schema: t,
|
|
441
|
-
children:
|
|
447
|
+
children: n,
|
|
442
448
|
form: i,
|
|
443
449
|
prefilledValues: a,
|
|
444
450
|
readOnly: s,
|
|
445
451
|
fields: c = {},
|
|
446
452
|
hidden: u = !1
|
|
447
453
|
}) {
|
|
448
|
-
const { isView:
|
|
454
|
+
const { isView: r, activityId: v } = R(), l = v, p = U(), y = i || p;
|
|
449
455
|
if (!y)
|
|
450
456
|
return console.error(
|
|
451
457
|
`[FluigWorkflowReact] Section "${e}" não encontrou o 'form'.`
|
|
@@ -453,8 +459,8 @@ function Te({
|
|
|
453
459
|
if (u) return null;
|
|
454
460
|
const f = I(
|
|
455
461
|
(w) => {
|
|
456
|
-
var
|
|
457
|
-
return (
|
|
462
|
+
var E, V, C;
|
|
463
|
+
return (E = c.hidden) != null && E.includes(w) ? "hidden" : (V = c.readonly) != null && V.includes(w) ? "readonly" : (C = c.active) != null && C.includes(w) ? "active" : s ? "readonly" : "active";
|
|
458
464
|
},
|
|
459
465
|
[c, s]
|
|
460
466
|
), d = I(
|
|
@@ -466,43 +472,43 @@ function Te({
|
|
|
466
472
|
), h = I(
|
|
467
473
|
(w) => {
|
|
468
474
|
if (!w) return;
|
|
469
|
-
const
|
|
470
|
-
y.setValue("LASTACTIVITYID",
|
|
475
|
+
const E = y.getValues("CURRENTACTIVITYID");
|
|
476
|
+
y.setValue("LASTACTIVITYID", E), y.setValue("CURRENTACTIVITYID", l), me(Number(w));
|
|
471
477
|
},
|
|
472
478
|
[y, l]
|
|
473
479
|
);
|
|
474
480
|
b(() => {
|
|
475
|
-
if (!
|
|
476
|
-
const w = y.getValues(),
|
|
477
|
-
|
|
478
|
-
var
|
|
481
|
+
if (!r || !a || !t || !y) return;
|
|
482
|
+
const w = y.getValues(), E = t.shape;
|
|
483
|
+
E && Object.entries(E).forEach(([V, C]) => {
|
|
484
|
+
var P, L;
|
|
479
485
|
let S = C;
|
|
480
|
-
for (; (
|
|
486
|
+
for (; (P = S == null ? void 0 : S._def) != null && P.schema; )
|
|
481
487
|
S = S._def.schema;
|
|
482
488
|
const F = (L = S == null ? void 0 : S._def) == null ? void 0 : L.fluig;
|
|
483
|
-
if ((F == null ? void 0 : F.type) !== "options" || !Array.isArray(F.values) || w[
|
|
484
|
-
const
|
|
489
|
+
if ((F == null ? void 0 : F.type) !== "options" || !Array.isArray(F.values) || w[V] !== void 0) return;
|
|
490
|
+
const O = {};
|
|
485
491
|
F.values.forEach((_) => {
|
|
486
|
-
|
|
487
|
-
}), y.setValue(
|
|
492
|
+
O[_] = a[_] === "on";
|
|
493
|
+
}), y.setValue(V, O, {
|
|
488
494
|
shouldDirty: !1,
|
|
489
495
|
shouldValidate: !1
|
|
490
496
|
});
|
|
491
497
|
});
|
|
492
|
-
}, [
|
|
493
|
-
const
|
|
498
|
+
}, [r, a, t, y]);
|
|
499
|
+
const k = A(
|
|
494
500
|
() => ({
|
|
495
501
|
id: e,
|
|
496
502
|
form: y,
|
|
497
503
|
isHidden: d,
|
|
498
504
|
isReadOnly: m,
|
|
499
|
-
isView:
|
|
505
|
+
isView: r,
|
|
500
506
|
next: h,
|
|
501
507
|
wf_activity_id: l
|
|
502
508
|
}),
|
|
503
|
-
[e, y, d, m,
|
|
509
|
+
[e, y, d, m, r, h, l]
|
|
504
510
|
);
|
|
505
|
-
return /* @__PURE__ */ g($.Provider, { value:
|
|
511
|
+
return /* @__PURE__ */ g($.Provider, { value: k, children: /* @__PURE__ */ g("section", { id: e, className: [e, o].filter(Boolean).join(" "), children: n }) });
|
|
506
512
|
}
|
|
507
513
|
const H = x(null);
|
|
508
514
|
function xe({ children: e, config: o }) {
|
|
@@ -518,16 +524,16 @@ function De() {
|
|
|
518
524
|
return e;
|
|
519
525
|
}
|
|
520
526
|
export {
|
|
521
|
-
|
|
527
|
+
Me as DebugLogger,
|
|
522
528
|
xe as FluigApiProvider,
|
|
523
|
-
|
|
529
|
+
Ve as FluigRuntimeProvider,
|
|
524
530
|
Fe as FluigWorkflowForm,
|
|
525
531
|
Ie as SchemaRegistryProvider,
|
|
526
532
|
Te as Section,
|
|
527
|
-
|
|
528
|
-
|
|
533
|
+
ke as createFluigClient,
|
|
534
|
+
Oe as parentProxy,
|
|
529
535
|
De as useFluigApi,
|
|
530
536
|
R as useFluigRuntime,
|
|
531
|
-
|
|
537
|
+
z as useSchemaRegistry,
|
|
532
538
|
Ce as useSection
|
|
533
539
|
};
|