@tech-diefra/fluig-ui 1.2.7 → 1.2.8

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 CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),u=require("react"),M=require("react-hook-form"),X=require("react-imask"),P=require("@fluig-kit/ecm"),L=require("react-datepicker"),H=require("date-fns"),Y={cpf:"000.000.000-00",cnpj:"00.000.000/0000-00",telefone:"(00) 00000-0000",cep:"00000-000"};function Q({name:e,label:s="",placeholder:n="",type:l="text",mask:o,className:c="",forceReadOnly:i=!1,forceHidden:d=!1}){const{isReadOnly:w,isHidden:h}=P.useSection(),j=i||!!w(e),v=d||!!h(e),{control:C}=M.useFormContext(),{isView:R}=P.useFluigRuntime(),{field:x}=M.useController({name:e,control:C}),{errors:y}=M.useFormState({name:e}),b=y==null?void 0:y[e],k=u.useMemo(()=>o?Y[o]??o:null,[o]),N=u.useCallback(a=>{if(!a)return"";const r=a.replace(/\D/g,"");return(Number(r)/100).toLocaleString("pt-BR",{style:"currency",currency:"BRL"})},[]),f=u.useCallback(a=>l==="monetary"?N(a):a,[l,N]);return R?t.jsxs("div",{className:"form-group",children:[t.jsx("label",{children:s}),t.jsx("span",{className:"form-control",children:x.value||"-"})]}):t.jsxs("div",{className:`form-group ${v?"hidden":""}`,children:[t.jsx("label",{children:s}),k?t.jsx(X.IMaskInput,{name:e,mask:k,value:String(x.value??""),unmask:!1,onAccept:a=>x.onChange(f(a)),placeholder:n,readOnly:j,className:`form-control ${b?"border-red":""} ${c}`,inputRef:x.ref,onBlur:x.onBlur}):t.jsx("input",{...x,type:"text",value:x.value??"",onChange:a=>x.onChange(f(a.target.value)),placeholder:n,readOnly:j,className:`form-control ${b?"border-red":""} ${c}`}),b&&t.jsx("p",{className:"text-danger",children:String(b.message)})]})}const J=u.memo(Q);function U({name:e,label:s="",options:n=[],placeholder:l="",labelKey:o="label",valueKey:c="value",enableSearch:i=!1,searchPlaceholder:d="Buscar...",loading:w=!1,onSearchChange:h,debounceTime:j=300,onSelect:v,forceReadOnly:C=!1,forceHidden:R=!1}){const{isReadOnly:x,isHidden:y}=P.useSection(),b=C||!!x(e),k=R||!!y(e),{control:N,clearErrors:f}=M.useFormContext(),{isView:a}=P.useFluigRuntime(),{field:{onChange:r,value:m,ref:O},fieldState:{error:g}}=M.useController({name:e,control:N}),[S,$]=u.useState(!1),[V,E]=u.useState(""),T=u.useRef(null),q=u.useRef(h);u.useEffect(()=>{q.current=h},[h]),u.useEffect(()=>{const p=F=>{T.current&&!T.current.contains(F.target)&&$(!1)};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[]),u.useEffect(()=>{S||E("")},[S]),u.useEffect(()=>{if(!i)return;const p=setTimeout(()=>{q.current&&q.current(V)},j);return()=>clearTimeout(p)},[V,i,j]);const B=u.useMemo(()=>i&&!h&&V.trim()?n.filter(p=>String((p==null?void 0:p[o])??"").toLowerCase().includes(V.toLowerCase())):n??[],[n,i,h,V,o]),I=u.useMemo(()=>{if(m==null)return"";if(typeof m=="object")return String(m[c]??"");const p=(n||[]).find(F=>String(F==null?void 0:F[c])===String(m));return String(p?(p==null?void 0:p[o])??"":m)},[m,n,c,o]),z=p=>{b||(r(p[c]),v&&v(p),f(e),$(!1))};return t.jsxs("div",{className:`select-wrapper form-group ${k?"hidden":""}`,ref:T,children:[t.jsx("label",{className:"control-label",children:s}),a?t.jsx("span",{className:"form-control",children:I||"-"}):t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:`select-control ${g?"border-red":""} ${b?"readOnly":""}`,onClick:()=>!b&&$(p=>!p),ref:O,children:[t.jsx("span",{className:`select-display ${b?"readOnly":""}`,children:I||l}),t.jsx("i",{className:"flaticon flaticon-chevron-down select-icon"})]}),S&&!b&&t.jsxs("div",{className:"select-dropdown",children:[i&&t.jsx("div",{className:"select-search",children:t.jsx("input",{type:"text",className:"select-search-input",value:V,onChange:p=>E(p.target.value),placeholder:w?"Carregando...":d,autoFocus:!0,onClick:p=>p.stopPropagation()})}),t.jsx("ul",{className:"select-options",children:w?t.jsx("li",{className:"select-option readOnly",children:"Carregando..."}):B.length>0?B.map(p=>t.jsx("li",{onClick:()=>z(p),className:"select-option handleHover",children:p[o]},p[c])):t.jsx("li",{className:"select-option readOnly",children:"Sem resultados"})})]})]}),t.jsx("input",{type:"hidden",name:e,value:m||""}),g&&t.jsx("p",{className:"text-danger",children:String(g.message)})]})}const G=u.memo(U);function Z({name:e,options:s=[],label:n="",valueKey:l="value",labelKey:o="label",forceReadOnly:c=!1,forceHidden:i=!1}){var m,O;const d=M.useFormContext(),{isView:w,isReadOnly:h}=P.useFluigRuntime(),{isReadOnly:j,isHidden:v}=P.useSection(),C=j?j(e):!1,R=v?v(e):!1,x=c||C,y=i||R,b=x||h||w;if(!d||!e)return console.error("Checkbox requer contexto de formulário e nome."),null;const k=()=>!s||!d?{}:s.reduce((g,S)=>{const $=S[l],V=d.getValues($);return g[$]=V==="on",g},{}),N=d.watch(e),f=u.useMemo(()=>N&&typeof N=="object"?N:k(),[N,s,l]);u.useEffect(()=>{const g=d.getValues(e);(!g||typeof g!="object")&&d.setValue(e,f,{shouldDirty:!1,shouldValidate:!1})},[f,e,d]);const a=(g,S)=>{if(b)return;const $={...f,[g]:S};d.setValue(e,$,{shouldDirty:!0,shouldValidate:!0}),d.setValue(g,S?"on":"",{shouldValidate:!1})},r=(O=(m=d.formState)==null?void 0:m.errors)==null?void 0:O[e];return t.jsxs("div",{className:`form-group ${y?"hidden":""}`,children:[n&&t.jsx("label",{children:n}),t.jsx("div",{className:`checkbox-group-custom ${b?"readOnly":""}`,children:s.map(g=>{const S=String(g[l]),$=f[S]===!0;return t.jsxs("div",{children:[t.jsx("input",{type:"hidden",...d.register(S)}),t.jsxs("label",{className:`custom-checkbox ${$?"checked":""} ${b?"readOnly":""}`,children:[t.jsx("input",{type:"checkbox",checked:$,disabled:b,onChange:V=>a(S,V.target.checked)}),t.jsx("span",{className:"checkmark"}),t.jsx("span",{children:g[o]})]})]},S)})}),r&&t.jsx("p",{className:"text-danger",children:String(r.message)})]})}function K({name:e,label:s="",options:n=[],valueKey:l="value",labelKey:o="label",iconKey:c="icon",forceReadOnly:i=!1,forceHidden:d=!1}){const{isReadOnly:w,isHidden:h}=P.useSection(),j=i||!!w(e),v=d||!!h(e),{control:C}=M.useFormContext(),{isView:R,isReadOnly:x}=P.useFluigRuntime(),{field:y,fieldState:{error:b}}=M.useController({name:e,control:C}),k=j||x||R,N=y.value??"",f=u.useCallback(a=>{k||y.onChange(a)},[k,y]);return t.jsxs("div",{className:`form-group column ${v?"hidden":""}`,children:[s&&t.jsx("label",{className:"control-label",children:s}),t.jsx("div",{className:`btn-group ${k?"view-mode":""}`,"data-field-name":e,children:n.map(a=>{const r=a[l],m=N===r,O=a.color?{"--customColor":a.color}:void 0;return t.jsxs("label",{htmlFor:`${e}_${r}`,style:O,className:`btn fs-ellipsis ${m?"active":""}`,children:[t.jsx("input",{type:"radio",id:`${e}_${r}`,name:e,value:r,checked:m,className:"hidden",onChange:()=>f(r),disabled:k}),a[c]&&t.jsx("i",{className:`${a[c]} icon-sm`})," ",a[o]]},r)})}),b&&t.jsx("p",{className:"text-danger",children:String(b.message)})]})}const ee=u.memo(K),te=({name:e,label:s="",placeholder:n="",className:l="",rows:o=4,maxLength:c,forceReadOnly:i=!1,forceHidden:d=!1})=>{const{isReadOnly:w,isHidden:h}=P.useSection(),j=i||!!w(e),v=d||!!h(e),{control:C}=M.useFormContext(),{isView:R}=P.useFluigRuntime(),{field:x,fieldState:{error:y}}=M.useController({name:e,control:C});return R?t.jsxs("div",{className:`form-group ${v?"hidden":""}`,children:[t.jsx("label",{children:s}),t.jsx("span",{className:"form-control",children:x.value||"-"})]}):t.jsxs("div",{className:`form-group ${v?"hidden":""}`,children:[t.jsx("label",{children:s}),t.jsx("textarea",{...x,rows:o,maxLength:c,value:x.value||"",placeholder:n,readOnly:j,className:`form-control ${y?"border-red":""} ${l}`}),y&&t.jsx("p",{className:"text-danger",children:String(y.message)})]})},ne=u.memo(te);function A(e){return(s={})=>{const n=s.width?String(s.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}function W(e){return(s,n)=>{const l=n!=null&&n.context?String(n.context):"standalone";let o;if(l==="formatting"&&e.formattingValues){const i=e.defaultFormattingWidth||e.defaultWidth,d=n!=null&&n.width?String(n.width):i;o=e.formattingValues[d]||e.formattingValues[i]}else{const i=e.defaultWidth,d=n!=null&&n.width?String(n.width):e.defaultWidth;o=e.values[d]||e.values[i]}const c=e.argumentCallback?e.argumentCallback(s):s;return o[c]}}function D(e){return(s,n={})=>{const l=n.width,o=l&&e.matchPatterns[l]||e.matchPatterns[e.defaultMatchWidth],c=s.match(o);if(!c)return null;const i=c[0],d=l&&e.parsePatterns[l]||e.parsePatterns[e.defaultParseWidth],w=Array.isArray(d)?se(d,v=>v.test(i)):ae(d,v=>v.test(i));let h;h=e.valueCallback?e.valueCallback(w):w,h=n.valueCallback?n.valueCallback(h):h;const j=s.slice(i.length);return{value:h,rest:j}}}function ae(e,s){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&s(e[n]))return n}function se(e,s){for(let n=0;n<e.length;n++)if(s(e[n]))return n}function re(e){return(s,n={})=>{const l=s.match(e.matchPattern);if(!l)return null;const o=l[0],c=s.match(e.parsePattern);if(!c)return null;let i=e.valueCallback?e.valueCallback(c[0]):c[0];i=n.valueCallback?n.valueCallback(i):i;const d=s.slice(o.length);return{value:i,rest:d}}}const oe={lessThanXSeconds:{one:"menos de um segundo",other:"menos de {{count}} segundos"},xSeconds:{one:"1 segundo",other:"{{count}} segundos"},halfAMinute:"meio minuto",lessThanXMinutes:{one:"menos de um minuto",other:"menos de {{count}} minutos"},xMinutes:{one:"1 minuto",other:"{{count}} minutos"},aboutXHours:{one:"cerca de 1 hora",other:"cerca de {{count}} horas"},xHours:{one:"1 hora",other:"{{count}} horas"},xDays:{one:"1 dia",other:"{{count}} dias"},aboutXWeeks:{one:"cerca de 1 semana",other:"cerca de {{count}} semanas"},xWeeks:{one:"1 semana",other:"{{count}} semanas"},aboutXMonths:{one:"cerca de 1 mês",other:"cerca de {{count}} meses"},xMonths:{one:"1 mês",other:"{{count}} meses"},aboutXYears:{one:"cerca de 1 ano",other:"cerca de {{count}} anos"},xYears:{one:"1 ano",other:"{{count}} anos"},overXYears:{one:"mais de 1 ano",other:"mais de {{count}} anos"},almostXYears:{one:"quase 1 ano",other:"quase {{count}} anos"}},ie=(e,s,n)=>{let l;const o=oe[e];return typeof o=="string"?l=o:s===1?l=o.one:l=o.other.replace("{{count}}",String(s)),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"em "+l:"há "+l:l},de={full:"EEEE, d 'de' MMMM 'de' y",long:"d 'de' MMMM 'de' y",medium:"d MMM y",short:"dd/MM/yyyy"},le={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},ce={full:"{{date}} 'às' {{time}}",long:"{{date}} 'às' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},ue={date:A({formats:de,defaultWidth:"full"}),time:A({formats:le,defaultWidth:"full"}),dateTime:A({formats:ce,defaultWidth:"full"})},me={lastWeek:e=>{const s=e.getDay();return"'"+(s===0||s===6?"último":"última")+"' eeee 'às' p"},yesterday:"'ontem às' p",today:"'hoje às' p",tomorrow:"'amanhã às' p",nextWeek:"eeee 'às' p",other:"P"},he=(e,s,n,l)=>{const o=me[e];return typeof o=="function"?o(s):o},fe={narrow:["AC","DC"],abbreviated:["AC","DC"],wide:["antes de cristo","depois de cristo"]},ge={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},xe={narrow:["j","f","m","a","m","j","j","a","s","o","n","d"],abbreviated:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],wide:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},be={narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sab"],abbreviated:["domingo","segunda","terça","quarta","quinta","sexta","sábado"],wide:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},pe={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"manhã",afternoon:"tarde",evening:"tarde",night:"noite"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"tarde",night:"noite"},wide:{am:"a.m.",pm:"p.m.",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"tarde",night:"noite"}},ye={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"da manhã",afternoon:"da tarde",evening:"da tarde",night:"da noite"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da tarde",night:"da noite"},wide:{am:"a.m.",pm:"p.m.",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da tarde",night:"da noite"}},je=(e,s)=>{const n=Number(e);return(s==null?void 0:s.unit)==="week"?n+"ª":n+"º"},ve={ordinalNumber:je,era:W({values:fe,defaultWidth:"wide"}),quarter:W({values:ge,defaultWidth:"wide",argumentCallback:e=>e-1}),month:W({values:xe,defaultWidth:"wide"}),day:W({values:be,defaultWidth:"wide"}),dayPeriod:W({values:pe,defaultWidth:"wide",formattingValues:ye,defaultFormattingWidth:"wide"})},we=/^(\d+)[ºªo]?/i,Ce=/\d+/i,ke={narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|d\.?\s?c\.?)/i,wide:/^(antes de cristo|depois de cristo)/i},Ne={any:[/^ac/i,/^dc/i],wide:[/^antes de cristo/i,/^depois de cristo/i]},Se={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º)? trimestre/i},Re={any:[/1/i,/2/i,/3/i,/4/i]},Pe={narrow:/^[jfmajsond]/i,abbreviated:/^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,wide:/^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i},Me={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^fev/i,/^mar/i,/^abr/i,/^mai/i,/^jun/i,/^jul/i,/^ago/i,/^set/i,/^out/i,/^nov/i,/^dez/i]},Oe={narrow:/^(dom|[23456]ª?|s[aá]b)/i,short:/^(dom|[23456]ª?|s[aá]b)/i,abbreviated:/^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,wide:/^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i},$e={short:[/^d/i,/^2/i,/^3/i,/^4/i,/^5/i,/^6/i,/^s[aá]/i],narrow:[/^d/i,/^2/i,/^3/i,/^4/i,/^5/i,/^6/i,/^s[aá]/i],any:[/^d/i,/^seg/i,/^t/i,/^qua/i,/^qui/i,/^sex/i,/^s[aá]b/i]},Ve={narrow:/^(a|p|mn|md|(da) (manhã|tarde|noite))/i,any:/^([ap]\.?\s?m\.?|meia[-\s]noite|meio[-\s]dia|(da) (manhã|tarde|noite))/i},Fe={any:{am:/^a/i,pm:/^p/i,midnight:/^mn|^meia[-\s]noite/i,noon:/^md|^meio[-\s]dia/i,morning:/manhã/i,afternoon:/tarde/i,evening:/tarde/i,night:/noite/i}},We={ordinalNumber:re({matchPattern:we,parsePattern:Ce,valueCallback:e=>parseInt(e,10)}),era:D({matchPatterns:ke,defaultMatchWidth:"wide",parsePatterns:Ne,defaultParseWidth:"any"}),quarter:D({matchPatterns:Se,defaultMatchWidth:"wide",parsePatterns:Re,defaultParseWidth:"any",valueCallback:e=>e+1}),month:D({matchPatterns:Pe,defaultMatchWidth:"wide",parsePatterns:Me,defaultParseWidth:"any"}),day:D({matchPatterns:Oe,defaultMatchWidth:"wide",parsePatterns:$e,defaultParseWidth:"any"}),dayPeriod:D({matchPatterns:Ve,defaultMatchWidth:"any",parsePatterns:Fe,defaultParseWidth:"any"})},De={code:"pt-BR",formatDistance:ie,formatLong:ue,formatRelative:he,localize:ve,match:We,options:{weekStartsOn:0,firstWeekContainsDate:1}};L.registerLocale("pt-BR",De);const _="dd/MM/yyyy",Te=e=>{if(!e)return null;const s=H.parse(e,_,new Date);return H.isValid(s)?s:null},qe=e=>e?H.format(e,_):"",Ae=u.forwardRef(({shimRef:e,className:s,name:n,...l},o)=>t.jsx("input",{name:n,...l,className:s,ref:c=>{typeof o=="function"?o(c):o&&(o.current=c),e&&e(c)}})),He=({name:e,label:s="",placeholder:n="dd/mm/aaaa",className:l="",forceReadOnly:o=!1,forceHidden:c=!1})=>{const{control:i}=M.useFormContext(),{isView:d}=P.useFluigRuntime(),{isReadOnly:w,isHidden:h}=P.useSection(),j=o||!!w(e),v=c||!!h(e),{field:{onChange:C,onBlur:R,value:x,ref:y},fieldState:{error:b}}=M.useController({name:e,control:i}),k=u.useMemo(()=>Te(x),[x]),N=u.useCallback(a=>{C(a?qe(a):"")},[C]),f=u.useCallback(a=>{var r,m;if(y(a),a&&((m=(r=i._fields)==null?void 0:r[e])!=null&&m._f)){const O=i._fields[e];O._f.ref={focus:()=>{var g;return(g=a.focus)==null?void 0:g.call(a)},select:()=>{var g;return(g=a.select)==null?void 0:g.call(a)},setCustomValidity:g=>{var S;return(S=a.setCustomValidity)==null?void 0:S.call(a,g)},reportValidity:()=>{var g;return(g=a.reportValidity)==null?void 0:g.call(a)}}}},[y,i,e]);return v?null:d?t.jsxs("div",{className:"form-group",children:[t.jsx("label",{children:s}),t.jsx("span",{className:"form-control",children:x||"-"})]}):t.jsxs("div",{className:`form-group fluig-style-guide ${l}`,children:[s&&t.jsx("label",{className:"control-label",htmlFor:e,children:s}),t.jsx("div",{className:`${b?"border-red":""}`,children:t.jsx(L,{id:e,name:e,selected:k,onChange:N,onBlur:R,dateFormat:_,placeholderText:n,disabled:j,readOnly:j,locale:"pt-BR",className:`form-control ${b?"border-red":""}`,wrapperClassName:"w-100",showMonthDropdown:!0,showYearDropdown:!0,dropdownMode:"select",isClearable:!j&&!!x,autoComplete:"off",customInput:t.jsx(Ae,{name:e,shimRef:f})})}),b&&t.jsx("span",{className:"help-block text-danger",children:String(b.message)})]})},_e=u.memo(He);function Ee({mapping:e={},defaultLabel:s="Não reconhecido",className:n="",hidden:l=!1,label:o}){const{activityId:c}=P.useFluigRuntime(),i=u.useMemo(()=>!e||c===null||c===void 0?null:e[c],[c,e]);if(!i)return t.jsxs("div",{className:`form-group ${l?"hidden":""}`,children:[o&&t.jsx("label",{children:o}),t.jsx("div",{className:`status-badge default ${n}`,children:s})]});const d={"--customColor":i.color};return t.jsxs("div",{className:`form-group ${l?"hidden":""}`,children:[o&&t.jsx("label",{children:o}),t.jsxs("div",{className:`status-badge ${n}`,style:d,children:[i.icon&&t.jsx("i",{className:i.icon}),t.jsx("span",{children:i.label})]})]})}const Be=u.memo(Ee);function Ie({name:e,control:s,defaultRowValue:n,isView:l,isReadOnly:o,filters:c=[]}){const{field:i}=M.useController({name:e,control:s}),[d,w]=u.useState([]),[h,j]=u.useState([]),v=()=>Date.now()+Math.random(),C=a=>{try{const r=JSON.parse(a);return Array.isArray(r)?r.map(m=>({...m,_uid:m._uid||v()})):[]}catch(r){return console.error(`Erro ao ler dados da tabela "${e}":`,r),[]}};u.useEffect(()=>{if(!(d.length>0&&!l)&&i.value&&typeof i.value=="string"){const a=JSON.stringify(d);if(i.value===a)return;const r=C(i.value);w(r)}},[i.value,l]),u.useEffect(()=>{if(o)return;const a=JSON.stringify(d);i.value!==a&&i.onChange(a)},[d,i,o]);const R=u.useCallback(()=>{const a={_uid:v(),...n};w(r=>[...r,a])},[n]),x=u.useCallback(()=>{w(a=>a.filter(r=>!h.includes(r._uid))),j([])},[h]),y=u.useCallback((a,r,m)=>{w(O=>O.map(g=>g._uid===a?{...g,[r]:m}:g))},[]),b=u.useCallback(a=>{j(r=>r.includes(a)?r.filter(m=>m!==a):[...r,a])},[]),k=u.useCallback(a=>{j(a?d.map(r=>r._uid):[])},[d]),N=d.length>0&&h.length===d.length,f=u.useMemo(()=>!c||c.length===0?d:d.filter(a=>c.every(r=>{if("custom"in r)return r.custom(a);const m=a[r.field];switch(r.operator){case"===":return m===r.value;case"!==":return m!==r.value;case">":return m>r.value;case"<":return m<r.value;case">=":return m>=r.value;case"<=":return m<=r.value;default:return!0}})),[d,c]);return{field:i,tableRows:d,visibleRows:f,selectedRowIds:h,isAllSelected:N,handle:{addRow:R,removeRows:x,updateCellValue:y,toggleSelection:b,toggleSelectAll:k}}}const Le=({name:e,title:s="Tabela Dinâmica",columns:n,defaultRowValue:l={},forceReadOnly:o=!1,layout:c="fluid",actions:i=!0,filters:d=[]})=>{const{control:w}=M.useFormContext(),{isView:h,isReadOnly:j}=P.useFluigRuntime(),{isReadOnly:v}=P.useSection(),C=o||h||j||v&&v(e),{field:R,visibleRows:x,selectedRowIds:y,isAllSelected:b,handle:k}=Ie({name:e,control:w,defaultRowValue:l,isView:h,isReadOnly:!!C,filters:d}),N=c==="fixed";return t.jsxs("div",{className:`table-wrapper ${N?"table-fixed":"table-fluid"}`,children:[t.jsx("input",{type:"hidden",...R}),i&&t.jsxs("div",{className:"header-handle",children:[t.jsx("h3",{children:s}),!C&&t.jsxs("div",{className:"handle-actions",children:[t.jsxs("button",{type:"button",className:`btn ${y.length>0?"btn-danger":""}`,disabled:y.length===0,onClick:k.removeRows,children:["Remover (",y.length,")"]}),t.jsx("button",{type:"button",className:"btn-add",onClick:k.addRow,children:"Adicionar"})]})]}),t.jsx("div",{className:"table-scroll",children:t.jsxs("table",{className:"table-custom",children:[t.jsx("thead",{children:t.jsxs("tr",{children:[!C&&t.jsx("th",{style:{width:"50px"},children:t.jsx("input",{type:"checkbox",checked:b,onChange:f=>k.toggleSelectAll(f.target.checked)})}),n.map(f=>t.jsx("th",{style:!f.width||x.length===0?{width:"max-content"}:{minWidth:N?f.width:"100%"},children:f.label},f.key))]})}),t.jsx("div",{}),t.jsxs("tbody",{children:[x.map((f,a)=>t.jsxs("tr",{children:[!C&&t.jsx("td",{children:t.jsx("input",{type:"checkbox",checked:y.includes(f._uid),onChange:()=>k.toggleSelection(f._uid)})}),n.map(r=>t.jsx("td",{children:r.render?r.render(f,a,(m,O)=>k.updateCellValue(f._uid,m,O),!!C,!!h):f[r.key]},`${f._uid}-${r.key}`))]},f._uid)),x.length===0&&t.jsx("tr",{className:"empty-row",children:t.jsx("td",{colSpan:100,className:"text-center",children:C?"Nenhum registro encontrado.":"Nenhum registro."})})]})]})})]})};exports.Checkbox=Z;exports.DatePicker=_e;exports.Input=J;exports.RadioBtn=ee;exports.Select=G;exports.SimpleTable=Le;exports.StatusBadge=Be;exports.TextArea=ne;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),u=require("react"),M=require("react-hook-form"),X=require("react-imask"),P=require("@fluig-kit/ecm"),L=require("react-datepicker"),H=require("date-fns"),Y={cpf:"000.000.000-00",cnpj:"00.000.000/0000-00",telefone:"(00) 00000-0000",cep:"00000-000"};function Q({name:e,label:s="",placeholder:n="",type:l="text",mask:o,className:c="",forceReadOnly:i=!1,forceHidden:d=!1}){const{isReadOnly:w,isHidden:h}=P.useSection(),j=i||!!w(e),v=d||!!h(e),{control:C}=M.useFormContext(),{isView:R}=P.useFluigRuntime(),{field:x}=M.useController({name:e,control:C}),{errors:y}=M.useFormState({name:e}),b=y==null?void 0:y[e],k=u.useMemo(()=>o?Y[o]??o:null,[o]),N=u.useCallback(a=>{if(!a)return"";const r=a.replace(/\D/g,"");return(Number(r)/100).toLocaleString("pt-BR",{style:"currency",currency:"BRL"})},[]),f=u.useCallback(a=>l==="monetary"?N(a):a,[l,N]);return R?t.jsxs("div",{className:"form-group",children:[t.jsx("label",{children:s}),t.jsx("span",{className:"form-control",children:x.value||"-"})]}):t.jsxs("div",{className:`form-group ${v?"hidden":""}`,children:[t.jsx("label",{children:s}),k?t.jsx(X.IMaskInput,{name:e,mask:k,value:String(x.value??""),unmask:!1,onAccept:a=>x.onChange(f(a)),placeholder:n,readOnly:j,className:`form-control ${b?"border-red":""} ${c}`,inputRef:x.ref,onBlur:x.onBlur}):t.jsx("input",{...x,type:"text",value:x.value??"",onChange:a=>x.onChange(f(a.target.value)),placeholder:n,readOnly:j,className:`form-control ${b?"border-red":""} ${c}`}),b&&t.jsx("p",{className:"text-danger",children:String(b.message)})]})}const J=u.memo(Q);function U({name:e,label:s="",options:n=[],placeholder:l="",labelKey:o="label",valueKey:c="value",enableSearch:i=!1,searchPlaceholder:d="Buscar...",loading:w=!1,onSearchChange:h,debounceTime:j=300,onSelect:v,forceReadOnly:C=!1,forceHidden:R=!1}){const{isReadOnly:x,isHidden:y}=P.useSection(),b=C||!!x(e),k=R||!!y(e),{control:N,clearErrors:f}=M.useFormContext(),{isView:a}=P.useFluigRuntime(),{field:{onChange:r,value:m,ref:O},fieldState:{error:g}}=M.useController({name:e,control:N}),[S,$]=u.useState(!1),[V,E]=u.useState(""),T=u.useRef(null),q=u.useRef(h);u.useEffect(()=>{q.current=h},[h]),u.useEffect(()=>{const p=F=>{T.current&&!T.current.contains(F.target)&&$(!1)};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[]),u.useEffect(()=>{S||E("")},[S]),u.useEffect(()=>{if(!i)return;const p=setTimeout(()=>{q.current&&q.current(V)},j);return()=>clearTimeout(p)},[V,i,j]);const B=u.useMemo(()=>i&&!h&&V.trim()?n.filter(p=>String((p==null?void 0:p[o])??"").toLowerCase().includes(V.toLowerCase())):n??[],[n,i,h,V,o]),I=u.useMemo(()=>{if(m==null)return"";if(typeof m=="object")return String(m[c]??"");const p=(n||[]).find(F=>String(F==null?void 0:F[c])===String(m));return String(p?(p==null?void 0:p[o])??"":m)},[m,n,c,o]),z=p=>{b||(r(p[c]),v&&v(p),f(e),$(!1))};return t.jsxs("div",{className:`select-wrapper form-group ${k?"hidden":""}`,ref:T,children:[t.jsx("label",{className:"control-label",children:s}),a?t.jsx("span",{className:"form-control",children:I||"-"}):t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:`select-control ${g?"border-red":""} ${b?"readOnly":""}`,onClick:()=>!b&&$(p=>!p),ref:O,children:[t.jsx("span",{className:`select-display ${b?"readOnly":""}`,children:I||l}),t.jsx("i",{className:"flaticon flaticon-chevron-down select-icon"})]}),S&&!b&&t.jsxs("div",{className:"select-dropdown",children:[i&&t.jsx("div",{className:"select-search",children:t.jsx("input",{type:"text",className:"select-search-input",value:V,onChange:p=>E(p.target.value),placeholder:w?"Carregando...":d,autoFocus:!0,onClick:p=>p.stopPropagation()})}),t.jsx("ul",{className:"select-options",children:w?t.jsx("li",{className:"select-option readOnly",children:"Carregando..."}):B.length>0?B.map(p=>t.jsx("li",{onClick:()=>z(p),className:"select-option handleHover",children:p[o]},p[c])):t.jsx("li",{className:"select-option readOnly",children:"Sem resultados"})})]})]}),t.jsx("input",{type:"hidden",name:e,value:m||""}),g&&t.jsx("p",{className:"text-danger",children:String(g.message)})]})}const G=u.memo(U);function Z({name:e,options:s=[],label:n="",valueKey:l="value",labelKey:o="label",forceReadOnly:c=!1,forceHidden:i=!1}){var m,O;const d=M.useFormContext(),{isView:w,isReadOnly:h}=P.useFluigRuntime(),{isReadOnly:j,isHidden:v}=P.useSection(),C=j?j(e):!1,R=v?v(e):!1,x=c||C,y=i||R,b=x||h||w;if(!d||!e)return console.error("Checkbox requer contexto de formulário e nome."),null;const k=()=>!s||!d?{}:s.reduce((g,S)=>{const $=S[l],V=d.getValues($);return g[$]=V==="on",g},{}),N=d.watch(e),f=u.useMemo(()=>N&&typeof N=="object"?N:k(),[N,s,l]);u.useEffect(()=>{const g=d.getValues(e);(!g||typeof g!="object")&&d.setValue(e,f,{shouldDirty:!1,shouldValidate:!1})},[f,e,d]);const a=(g,S)=>{if(b)return;const $={...f,[g]:S};d.setValue(e,$,{shouldDirty:!0,shouldValidate:!0}),d.setValue(g,S?"on":"",{shouldValidate:!1})},r=(O=(m=d.formState)==null?void 0:m.errors)==null?void 0:O[e];return t.jsxs("div",{className:`form-group ${y?"hidden":""}`,children:[n&&t.jsx("label",{children:n}),t.jsx("div",{className:`checkbox-group-custom ${b?"readOnly":""}`,children:s.map(g=>{const S=String(g[l]),$=f[S]===!0;return t.jsxs("div",{children:[t.jsx("input",{type:"hidden",...d.register(S)}),t.jsxs("label",{className:`custom-checkbox ${$?"checked":""} ${b?"readOnly":""}`,children:[t.jsx("input",{type:"checkbox",checked:$,disabled:b,onChange:V=>a(S,V.target.checked)}),t.jsx("span",{className:"checkmark"}),t.jsx("span",{children:g[o]})]})]},S)})}),r&&t.jsx("p",{className:"text-danger",children:String(r.message)})]})}function K({name:e,label:s="",options:n=[],valueKey:l="value",labelKey:o="label",iconKey:c="icon",forceReadOnly:i=!1,forceHidden:d=!1}){const{isReadOnly:w,isHidden:h}=P.useSection(),j=i||!!w(e),v=d||!!h(e),{control:C}=M.useFormContext(),{isView:R,isReadOnly:x}=P.useFluigRuntime(),{field:y,fieldState:{error:b}}=M.useController({name:e,control:C}),k=j||x||R,N=y.value??"",f=u.useCallback(a=>{k||y.onChange(a)},[k,y]);return t.jsxs("div",{className:`form-group column ${v?"hidden":""}`,children:[s&&t.jsx("label",{className:"control-label",children:s}),t.jsx("div",{className:`btn-group ${k?"view-mode":""}`,"data-field-name":e,children:n.map(a=>{const r=a[l],m=N===r,O=a.color?{"--customColor":a.color}:void 0;return t.jsxs("label",{htmlFor:`${e}_${r}`,style:O,className:`btn fs-ellipsis ${m?"active":""}`,children:[t.jsx("input",{type:"radio",id:`${e}_${r}`,name:e,value:r,checked:m,className:"hidden",onChange:()=>f(r),disabled:k}),a[c]&&t.jsx("i",{className:`${a[c]} icon-sm`})," ",a[o]]},r)})}),b&&t.jsx("p",{className:"text-danger",children:String(b.message)})]})}const ee=u.memo(K),te=({name:e,label:s="",placeholder:n="",className:l="",rows:o=4,maxLength:c,forceReadOnly:i=!1,forceHidden:d=!1})=>{const{isReadOnly:w,isHidden:h}=P.useSection(),j=i||!!w(e),v=d||!!h(e),{control:C}=M.useFormContext(),{isView:R}=P.useFluigRuntime(),{field:x,fieldState:{error:y}}=M.useController({name:e,control:C});return R?t.jsxs("div",{className:`form-group ${v?"hidden":""}`,children:[t.jsx("label",{children:s}),t.jsx("span",{className:"form-control",children:x.value||"-"})]}):t.jsxs("div",{className:`form-group ${v?"hidden":""}`,children:[t.jsx("label",{children:s}),t.jsx("textarea",{...x,rows:o,maxLength:c,value:x.value||"",placeholder:n,readOnly:j,className:`form-control ${y?"border-red":""} ${l}`}),y&&t.jsx("p",{className:"text-danger",children:String(y.message)})]})},ne=u.memo(te);function A(e){return(s={})=>{const n=s.width?String(s.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}function W(e){return(s,n)=>{const l=n!=null&&n.context?String(n.context):"standalone";let o;if(l==="formatting"&&e.formattingValues){const i=e.defaultFormattingWidth||e.defaultWidth,d=n!=null&&n.width?String(n.width):i;o=e.formattingValues[d]||e.formattingValues[i]}else{const i=e.defaultWidth,d=n!=null&&n.width?String(n.width):e.defaultWidth;o=e.values[d]||e.values[i]}const c=e.argumentCallback?e.argumentCallback(s):s;return o[c]}}function D(e){return(s,n={})=>{const l=n.width,o=l&&e.matchPatterns[l]||e.matchPatterns[e.defaultMatchWidth],c=s.match(o);if(!c)return null;const i=c[0],d=l&&e.parsePatterns[l]||e.parsePatterns[e.defaultParseWidth],w=Array.isArray(d)?se(d,v=>v.test(i)):ae(d,v=>v.test(i));let h;h=e.valueCallback?e.valueCallback(w):w,h=n.valueCallback?n.valueCallback(h):h;const j=s.slice(i.length);return{value:h,rest:j}}}function ae(e,s){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&s(e[n]))return n}function se(e,s){for(let n=0;n<e.length;n++)if(s(e[n]))return n}function re(e){return(s,n={})=>{const l=s.match(e.matchPattern);if(!l)return null;const o=l[0],c=s.match(e.parsePattern);if(!c)return null;let i=e.valueCallback?e.valueCallback(c[0]):c[0];i=n.valueCallback?n.valueCallback(i):i;const d=s.slice(o.length);return{value:i,rest:d}}}const oe={lessThanXSeconds:{one:"menos de um segundo",other:"menos de {{count}} segundos"},xSeconds:{one:"1 segundo",other:"{{count}} segundos"},halfAMinute:"meio minuto",lessThanXMinutes:{one:"menos de um minuto",other:"menos de {{count}} minutos"},xMinutes:{one:"1 minuto",other:"{{count}} minutos"},aboutXHours:{one:"cerca de 1 hora",other:"cerca de {{count}} horas"},xHours:{one:"1 hora",other:"{{count}} horas"},xDays:{one:"1 dia",other:"{{count}} dias"},aboutXWeeks:{one:"cerca de 1 semana",other:"cerca de {{count}} semanas"},xWeeks:{one:"1 semana",other:"{{count}} semanas"},aboutXMonths:{one:"cerca de 1 mês",other:"cerca de {{count}} meses"},xMonths:{one:"1 mês",other:"{{count}} meses"},aboutXYears:{one:"cerca de 1 ano",other:"cerca de {{count}} anos"},xYears:{one:"1 ano",other:"{{count}} anos"},overXYears:{one:"mais de 1 ano",other:"mais de {{count}} anos"},almostXYears:{one:"quase 1 ano",other:"quase {{count}} anos"}},ie=(e,s,n)=>{let l;const o=oe[e];return typeof o=="string"?l=o:s===1?l=o.one:l=o.other.replace("{{count}}",String(s)),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"em "+l:"há "+l:l},de={full:"EEEE, d 'de' MMMM 'de' y",long:"d 'de' MMMM 'de' y",medium:"d MMM y",short:"dd/MM/yyyy"},le={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},ce={full:"{{date}} 'às' {{time}}",long:"{{date}} 'às' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},ue={date:A({formats:de,defaultWidth:"full"}),time:A({formats:le,defaultWidth:"full"}),dateTime:A({formats:ce,defaultWidth:"full"})},me={lastWeek:e=>{const s=e.getDay();return"'"+(s===0||s===6?"último":"última")+"' eeee 'às' p"},yesterday:"'ontem às' p",today:"'hoje às' p",tomorrow:"'amanhã às' p",nextWeek:"eeee 'às' p",other:"P"},he=(e,s,n,l)=>{const o=me[e];return typeof o=="function"?o(s):o},fe={narrow:["AC","DC"],abbreviated:["AC","DC"],wide:["antes de cristo","depois de cristo"]},ge={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},xe={narrow:["j","f","m","a","m","j","j","a","s","o","n","d"],abbreviated:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],wide:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},be={narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sab"],abbreviated:["domingo","segunda","terça","quarta","quinta","sexta","sábado"],wide:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},pe={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"manhã",afternoon:"tarde",evening:"tarde",night:"noite"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"tarde",night:"noite"},wide:{am:"a.m.",pm:"p.m.",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"tarde",night:"noite"}},ye={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"da manhã",afternoon:"da tarde",evening:"da tarde",night:"da noite"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da tarde",night:"da noite"},wide:{am:"a.m.",pm:"p.m.",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da tarde",night:"da noite"}},je=(e,s)=>{const n=Number(e);return(s==null?void 0:s.unit)==="week"?n+"ª":n+"º"},ve={ordinalNumber:je,era:W({values:fe,defaultWidth:"wide"}),quarter:W({values:ge,defaultWidth:"wide",argumentCallback:e=>e-1}),month:W({values:xe,defaultWidth:"wide"}),day:W({values:be,defaultWidth:"wide"}),dayPeriod:W({values:pe,defaultWidth:"wide",formattingValues:ye,defaultFormattingWidth:"wide"})},we=/^(\d+)[ºªo]?/i,Ce=/\d+/i,ke={narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|d\.?\s?c\.?)/i,wide:/^(antes de cristo|depois de cristo)/i},Ne={any:[/^ac/i,/^dc/i],wide:[/^antes de cristo/i,/^depois de cristo/i]},Se={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º)? trimestre/i},Re={any:[/1/i,/2/i,/3/i,/4/i]},Pe={narrow:/^[jfmajsond]/i,abbreviated:/^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,wide:/^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i},Me={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^fev/i,/^mar/i,/^abr/i,/^mai/i,/^jun/i,/^jul/i,/^ago/i,/^set/i,/^out/i,/^nov/i,/^dez/i]},Oe={narrow:/^(dom|[23456]ª?|s[aá]b)/i,short:/^(dom|[23456]ª?|s[aá]b)/i,abbreviated:/^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,wide:/^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i},$e={short:[/^d/i,/^2/i,/^3/i,/^4/i,/^5/i,/^6/i,/^s[aá]/i],narrow:[/^d/i,/^2/i,/^3/i,/^4/i,/^5/i,/^6/i,/^s[aá]/i],any:[/^d/i,/^seg/i,/^t/i,/^qua/i,/^qui/i,/^sex/i,/^s[aá]b/i]},Ve={narrow:/^(a|p|mn|md|(da) (manhã|tarde|noite))/i,any:/^([ap]\.?\s?m\.?|meia[-\s]noite|meio[-\s]dia|(da) (manhã|tarde|noite))/i},Fe={any:{am:/^a/i,pm:/^p/i,midnight:/^mn|^meia[-\s]noite/i,noon:/^md|^meio[-\s]dia/i,morning:/manhã/i,afternoon:/tarde/i,evening:/tarde/i,night:/noite/i}},We={ordinalNumber:re({matchPattern:we,parsePattern:Ce,valueCallback:e=>parseInt(e,10)}),era:D({matchPatterns:ke,defaultMatchWidth:"wide",parsePatterns:Ne,defaultParseWidth:"any"}),quarter:D({matchPatterns:Se,defaultMatchWidth:"wide",parsePatterns:Re,defaultParseWidth:"any",valueCallback:e=>e+1}),month:D({matchPatterns:Pe,defaultMatchWidth:"wide",parsePatterns:Me,defaultParseWidth:"any"}),day:D({matchPatterns:Oe,defaultMatchWidth:"wide",parsePatterns:$e,defaultParseWidth:"any"}),dayPeriod:D({matchPatterns:Ve,defaultMatchWidth:"any",parsePatterns:Fe,defaultParseWidth:"any"})},De={code:"pt-BR",formatDistance:ie,formatLong:ue,formatRelative:he,localize:ve,match:We,options:{weekStartsOn:0,firstWeekContainsDate:1}};L.registerLocale("pt-BR",De);const _="dd/MM/yyyy",Te=e=>{if(!e)return null;const s=H.parse(e,_,new Date);return H.isValid(s)?s:null},qe=e=>e?H.format(e,_):"",Ae=u.forwardRef(({shimRef:e,className:s,name:n,...l},o)=>t.jsx("input",{name:n,...l,className:s,ref:c=>{typeof o=="function"?o(c):o&&(o.current=c),e&&e(c)}})),He=({name:e,label:s="",placeholder:n="dd/mm/aaaa",className:l="",forceReadOnly:o=!1,forceHidden:c=!1})=>{const{control:i}=M.useFormContext(),{isView:d}=P.useFluigRuntime(),{isReadOnly:w,isHidden:h}=P.useSection(),j=o||!!w(e),v=c||!!h(e),{field:{onChange:C,onBlur:R,value:x,ref:y},fieldState:{error:b}}=M.useController({name:e,control:i}),k=u.useMemo(()=>Te(x),[x]),N=u.useCallback(a=>{C(a?qe(a):"")},[C]),f=u.useCallback(a=>{var r,m;if(y(a),a&&((m=(r=i._fields)==null?void 0:r[e])!=null&&m._f)){const O=i._fields[e];O._f.ref={focus:()=>{var g;return(g=a.focus)==null?void 0:g.call(a)},select:()=>{var g;return(g=a.select)==null?void 0:g.call(a)},setCustomValidity:g=>{var S;return(S=a.setCustomValidity)==null?void 0:S.call(a,g)},reportValidity:()=>{var g;return(g=a.reportValidity)==null?void 0:g.call(a)}}}},[y,i,e]);return v?null:d?t.jsxs("div",{className:"form-group",children:[t.jsx("label",{children:s}),t.jsx("span",{className:"form-control",children:x||"-"})]}):t.jsxs("div",{className:`form-group fluig-style-guide ${l}`,children:[s&&t.jsx("label",{className:"control-label",htmlFor:e,children:s}),t.jsx("div",{className:`${b?"border-red":""}`,children:t.jsx(L,{id:e,name:e,selected:k,onChange:N,onBlur:R,dateFormat:_,placeholderText:n,disabled:j,readOnly:j,locale:"pt-BR",className:`form-control ${b?"border-red":""}`,wrapperClassName:"w-100",showMonthDropdown:!0,showYearDropdown:!0,dropdownMode:"select",isClearable:!j&&!!x,autoComplete:"off",customInput:t.jsx(Ae,{name:e,shimRef:f})})}),b&&t.jsx("span",{className:"help-block text-danger",children:String(b.message)})]})},_e=u.memo(He);function Ee({mapping:e={},defaultLabel:s="Não reconhecido",className:n="",hidden:l=!1,label:o}){const{activityId:c}=P.useFluigRuntime(),i=u.useMemo(()=>!e||c===null||c===void 0?null:e[c],[c,e]);if(!i)return t.jsxs("div",{className:`form-group ${l?"hidden":""}`,children:[o&&t.jsx("label",{children:o}),t.jsx("div",{className:`status-badge default ${n}`,children:s})]});const d={"--customColor":i.color};return t.jsxs("div",{className:`form-group ${l?"hidden":""}`,children:[o&&t.jsx("label",{children:o}),t.jsxs("div",{className:`status-badge ${n}`,style:d,children:[i.icon&&t.jsx("i",{className:i.icon}),t.jsx("span",{children:i.label})]})]})}const Be=u.memo(Ee);function Ie({name:e,control:s,defaultRowValue:n,isView:l,isReadOnly:o,filters:c=[]}){const{field:i}=M.useController({name:e,control:s}),[d,w]=u.useState([]),[h,j]=u.useState([]),v=()=>Date.now()+Math.random(),C=a=>{try{const r=JSON.parse(a);return Array.isArray(r)?r.map(m=>({...m,_uid:m._uid||v()})):[]}catch(r){return console.error(`Erro ao ler dados da tabela "${e}":`,r),[]}};u.useEffect(()=>{if(!(d.length>0&&!l)&&i.value&&typeof i.value=="string"){const a=JSON.stringify(d);if(i.value===a)return;const r=C(i.value);w(r)}},[i.value,l]),u.useEffect(()=>{if(o)return;const a=JSON.stringify(d);i.value!==a&&i.onChange(a)},[d,i,o]);const R=u.useCallback(()=>{const a={_uid:v(),...n};w(r=>[...r,a])},[n]),x=u.useCallback(()=>{w(a=>a.filter(r=>!h.includes(r._uid))),j([])},[h]),y=u.useCallback((a,r,m)=>{w(O=>O.map(g=>g._uid===a?{...g,[r]:m}:g))},[]),b=u.useCallback(a=>{j(r=>r.includes(a)?r.filter(m=>m!==a):[...r,a])},[]),k=u.useCallback(a=>{j(a?d.map(r=>r._uid):[])},[d]),N=d.length>0&&h.length===d.length,f=u.useMemo(()=>!c||c.length===0?d:d.filter(a=>c.every(r=>{if("custom"in r)return r.custom(a);const m=a[r.field];switch(r.operator){case"===":return m===r.value;case"!==":return m!==r.value;case">":return m>r.value;case"<":return m<r.value;case">=":return m>=r.value;case"<=":return m<=r.value;default:return!0}})),[d,c]);return{field:i,tableRows:d,visibleRows:f,selectedRowIds:h,isAllSelected:N,handle:{addRow:R,removeRows:x,updateCellValue:y,toggleSelection:b,toggleSelectAll:k}}}const Le=({name:e,title:s="Tabela Dinâmica",columns:n,defaultRowValue:l={},forceReadOnly:o=!1,layout:c="fluid",actions:i=!0,filters:d=[]})=>{const{control:w}=M.useFormContext(),{isView:h,isReadOnly:j}=P.useFluigRuntime(),{isReadOnly:v}=P.useSection(),C=o||h||j||v&&v(e),{field:R,visibleRows:x,selectedRowIds:y,isAllSelected:b,handle:k}=Ie({name:e,control:w,defaultRowValue:l,isView:h,isReadOnly:!!C,filters:d}),N=c==="fixed";return t.jsxs("div",{className:`table-wrapper ${N?"table-fixed":"table-fluid"}`,children:[t.jsx("input",{type:"hidden",...R}),i&&t.jsxs("div",{className:"header-handle",children:[t.jsx("h3",{children:s}),!C&&t.jsxs("div",{className:"handle-actions",children:[t.jsxs("button",{type:"button",className:`btn ${y.length>0?"btn-danger":""}`,disabled:y.length===0,onClick:k.removeRows,children:["Remover (",y.length,")"]}),t.jsx("button",{type:"button",className:"btn-add",onClick:k.addRow,children:"Adicionar"})]})]}),t.jsx("div",{className:"table-scroll",children:t.jsxs("table",{className:"table-custom",children:[t.jsx("thead",{children:t.jsxs("tr",{children:[!C&&t.jsx("th",{style:{width:"500px"},children:t.jsx("input",{type:"checkbox",checked:b,onChange:f=>k.toggleSelectAll(f.target.checked)})}),n.map(f=>t.jsx("th",{style:f.width?{minWidth:N?f.width:"100%"}:{width:"max-content"},children:f.label},f.key))]})}),t.jsx("div",{}),t.jsxs("tbody",{children:[x.map((f,a)=>t.jsxs("tr",{children:[!C&&t.jsx("td",{children:t.jsx("input",{type:"checkbox",checked:y.includes(f._uid),onChange:()=>k.toggleSelection(f._uid)})}),n.map(r=>t.jsx("td",{children:r.render?r.render(f,a,(m,O)=>k.updateCellValue(f._uid,m,O),!!C,!!h):f[r.key]},`${f._uid}-${r.key}`))]},f._uid)),x.length===0&&t.jsx("tr",{className:"empty-row",children:t.jsx("td",{colSpan:100,className:"text-center",children:C?"Nenhum registro encontrado.":"Nenhum registro."})})]})]})})]})};exports.Checkbox=Z;exports.DatePicker=_e;exports.Input=J;exports.RadioBtn=ee;exports.Select=G;exports.SimpleTable=Le;exports.StatusBadge=Be;exports.TextArea=ne;
package/dist/index.js CHANGED
@@ -1039,7 +1039,7 @@ const ut = ({
1039
1039
  ] }),
1040
1040
  /* @__PURE__ */ a("div", { className: "table-scroll", children: /* @__PURE__ */ y("table", { className: "table-custom", children: [
1041
1041
  /* @__PURE__ */ a("thead", { children: /* @__PURE__ */ y("tr", { children: [
1042
- !C && /* @__PURE__ */ a("th", { style: { width: "50px" }, children: /* @__PURE__ */ a(
1042
+ !C && /* @__PURE__ */ a("th", { style: { width: "500px" }, children: /* @__PURE__ */ a(
1043
1043
  "input",
1044
1044
  {
1045
1045
  type: "checkbox",
@@ -1050,7 +1050,7 @@ const ut = ({
1050
1050
  t.map((h) => /* @__PURE__ */ a(
1051
1051
  "th",
1052
1052
  {
1053
- style: !h.width || g.length === 0 ? { width: "max-content" } : { minWidth: S ? h.width : "100%" },
1053
+ style: h.width ? { minWidth: S ? h.width : "100%" } : { width: "max-content" },
1054
1054
  children: h.label
1055
1055
  },
1056
1056
  h.key
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tech-diefra/fluig-ui",
3
- "version": "1.2.7",
3
+ "version": "1.2.8",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",