@tech-diefra/fluig-ui 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.js +56 -66
- package/dist/style.css +0 -4
- package/package.json +1 -1
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"),I=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:p}=M.useFormState({name:e}),b=p==null?void 0:p[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:p}=P.useSection(),b=C||!!x(e),k=R||!!p(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 y=F=>{T.current&&!T.current.contains(F.target)&&$(!1)};return document.addEventListener("mousedown",y),()=>document.removeEventListener("mousedown",y)},[]),u.useEffect(()=>{S||E("")},[S]),u.useEffect(()=>{if(!i)return;const y=setTimeout(()=>{q.current&&q.current(V)},j);return()=>clearTimeout(y)},[V,i,j]);const L=u.useMemo(()=>i&&!h&&V.trim()?n.filter(y=>String((y==null?void 0:y[o])??"").toLowerCase().includes(V.toLowerCase())):n??[],[n,i,h,V,o]),B=u.useMemo(()=>{if(m==null)return"";if(typeof m=="object")return String(m[c]??"");const y=(n||[]).find(F=>String(F==null?void 0:F[c])===String(m));return String(y?(y==null?void 0:y[o])??"":m)},[m,n,c,o]),z=y=>{b||(r(y[c]),v&&v(y),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:B||"-"}):t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:`select-control ${g?"border-red":""} ${b?"readOnly":""}`,onClick:()=>!b&&$(y=>!y),ref:O,children:[t.jsx("span",{className:`select-display ${b?"readOnly":""}`,children:B||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:y=>E(y.target.value),placeholder:w?"Carregando...":d,autoFocus:!0,onClick:y=>y.stopPropagation()})}),t.jsx("ul",{className:"select-options",children:w?t.jsx("li",{className:"select-option readOnly",children:"Carregando..."}):L.length>0?L.map(y=>t.jsx("li",{onClick:()=>z(y),className:"select-option handleHover",children:y[o]},y[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,p=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 ${p?"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:p,fieldState:{error:b}}=M.useController({name:e,control:C}),k=j||x||R,N=p.value??"",f=u.useCallback(a=>{k||p.onChange(a)},[k,p]);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:p}}=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 ${p?"border-red":""} ${l}`}),p&&t.jsx("p",{className:"text-danger",children:String(p.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"]},ye={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"}},pe={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:ye,defaultWidth:"wide",formattingValues:pe,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}};I.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:p},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(p(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)}}}},[p,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(I,{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 Le=u.memo(Ee);function Be({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]),p=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:p,toggleSelection:b,toggleSelectAll:k}}}const Ie=({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:p,isAllSelected:b,handle:k}=Be({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 ${p.length>0?"btn-danger":""}`,disabled:p.length===0,onClick:k.removeRows,children:["Remover (",p.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",style:{tableLayout:"fixed",width:N?"max-content":"100%"},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:"100%"}:{width:f.width},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:p.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=Ie;exports.StatusBadge=Le;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:"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"}:{width:f.width},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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs as y, jsx as a, Fragment as Z } from "react/jsx-runtime";
|
|
2
|
-
import { memo as F, useMemo as j, useCallback as V, useState as
|
|
2
|
+
import { memo as F, useMemo as j, useCallback as V, useState as L, useRef as U, useEffect as D, forwardRef as K } from "react";
|
|
3
3
|
import { useFormContext as T, useController as H, useFormState as ee } from "react-hook-form";
|
|
4
4
|
import { IMaskInput as te } from "react-imask";
|
|
5
5
|
import { useSection as A, useFluigRuntime as W } from "@fluig-kit/ecm";
|
|
@@ -92,7 +92,7 @@ function le({
|
|
|
92
92
|
} = H({
|
|
93
93
|
name: e,
|
|
94
94
|
control: S
|
|
95
|
-
}), [R, M] =
|
|
95
|
+
}), [R, M] = L(!1), [$, Y] = L(""), z = U(null), I = U(m);
|
|
96
96
|
D(() => {
|
|
97
97
|
I.current = m;
|
|
98
98
|
}, [m]), D(() => {
|
|
@@ -363,7 +363,7 @@ function q(e) {
|
|
|
363
363
|
return i[c];
|
|
364
364
|
};
|
|
365
365
|
}
|
|
366
|
-
function
|
|
366
|
+
function B(e) {
|
|
367
367
|
return (r, t = {}) => {
|
|
368
368
|
const l = t.width, i = l && e.matchPatterns[l] || e.matchPatterns[e.defaultMatchWidth], c = r.match(i);
|
|
369
369
|
if (!c)
|
|
@@ -714,10 +714,10 @@ const ge = {
|
|
|
714
714
|
short: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],
|
|
715
715
|
narrow: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],
|
|
716
716
|
any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[aá]b/i]
|
|
717
|
-
},
|
|
717
|
+
}, Be = {
|
|
718
718
|
narrow: /^(a|p|mn|md|(da) (manhã|tarde|noite))/i,
|
|
719
719
|
any: /^([ap]\.?\s?m\.?|meia[-\s]noite|meio[-\s]dia|(da) (manhã|tarde|noite))/i
|
|
720
|
-
},
|
|
720
|
+
}, Le = {
|
|
721
721
|
any: {
|
|
722
722
|
am: /^a/i,
|
|
723
723
|
pm: /^p/i,
|
|
@@ -734,35 +734,35 @@ const ge = {
|
|
|
734
734
|
parsePattern: We,
|
|
735
735
|
valueCallback: (e) => parseInt(e, 10)
|
|
736
736
|
}),
|
|
737
|
-
era:
|
|
737
|
+
era: B({
|
|
738
738
|
matchPatterns: De,
|
|
739
739
|
defaultMatchWidth: "wide",
|
|
740
740
|
parsePatterns: je,
|
|
741
741
|
defaultParseWidth: "any"
|
|
742
742
|
}),
|
|
743
|
-
quarter:
|
|
743
|
+
quarter: B({
|
|
744
744
|
matchPatterns: Te,
|
|
745
745
|
defaultMatchWidth: "wide",
|
|
746
746
|
parsePatterns: Ae,
|
|
747
747
|
defaultParseWidth: "any",
|
|
748
748
|
valueCallback: (e) => e + 1
|
|
749
749
|
}),
|
|
750
|
-
month:
|
|
750
|
+
month: B({
|
|
751
751
|
matchPatterns: Fe,
|
|
752
752
|
defaultMatchWidth: "wide",
|
|
753
753
|
parsePatterns: He,
|
|
754
754
|
defaultParseWidth: "any"
|
|
755
755
|
}),
|
|
756
|
-
day:
|
|
756
|
+
day: B({
|
|
757
757
|
matchPatterns: _e,
|
|
758
758
|
defaultMatchWidth: "wide",
|
|
759
759
|
parsePatterns: qe,
|
|
760
760
|
defaultParseWidth: "any"
|
|
761
761
|
}),
|
|
762
|
-
dayPeriod:
|
|
763
|
-
matchPatterns:
|
|
762
|
+
dayPeriod: B({
|
|
763
|
+
matchPatterns: Be,
|
|
764
764
|
defaultMatchWidth: "any",
|
|
765
|
-
parsePatterns:
|
|
765
|
+
parsePatterns: Le,
|
|
766
766
|
defaultParseWidth: "any"
|
|
767
767
|
})
|
|
768
768
|
}, Ie = {
|
|
@@ -904,7 +904,7 @@ function Ue({
|
|
|
904
904
|
isReadOnly: i,
|
|
905
905
|
filters: c = []
|
|
906
906
|
}) {
|
|
907
|
-
const { field: s } = H({ name: e, control: r }), [d, k] =
|
|
907
|
+
const { field: s } = H({ name: e, control: r }), [d, k] = L([]), [m, w] = L([]), N = () => Date.now() + Math.random(), x = (n) => {
|
|
908
908
|
try {
|
|
909
909
|
const o = JSON.parse(n);
|
|
910
910
|
return Array.isArray(o) ? o.map((u) => ({
|
|
@@ -1014,8 +1014,8 @@ const ut = ({
|
|
|
1014
1014
|
isView: m,
|
|
1015
1015
|
isReadOnly: !!x,
|
|
1016
1016
|
filters: d
|
|
1017
|
-
})
|
|
1018
|
-
return /* @__PURE__ */ y("div", { className: `table-wrapper ${
|
|
1017
|
+
});
|
|
1018
|
+
return /* @__PURE__ */ y("div", { className: `table-wrapper ${c === "fixed" ? "table-fixed" : "table-fluid"}`, children: [
|
|
1019
1019
|
/* @__PURE__ */ a("input", { type: "hidden", ...P }),
|
|
1020
1020
|
s && /* @__PURE__ */ y("div", { className: "header-handle", children: [
|
|
1021
1021
|
/* @__PURE__ */ a("h3", { children: r }),
|
|
@@ -1037,57 +1037,47 @@ const ut = ({
|
|
|
1037
1037
|
/* @__PURE__ */ a("button", { type: "button", className: "btn-add", onClick: C.addRow, children: "Adicionar" })
|
|
1038
1038
|
] })
|
|
1039
1039
|
] }),
|
|
1040
|
-
/* @__PURE__ */ a("div", { className: "table-scroll", children: /* @__PURE__ */ y(
|
|
1041
|
-
"
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
(u, O) => C.updateCellValue(h._uid, u, O),
|
|
1082
|
-
!!x,
|
|
1083
|
-
!!m
|
|
1084
|
-
) : h[o.key] }, `${h._uid}-${o.key}`))
|
|
1085
|
-
] }, h._uid)),
|
|
1086
|
-
g.length === 0 && /* @__PURE__ */ a("tr", { className: "empty-row", children: /* @__PURE__ */ a("td", { colSpan: 100, className: "text-center", children: x ? "Nenhum registro encontrado." : "Nenhum registro." }) })
|
|
1087
|
-
] })
|
|
1088
|
-
]
|
|
1089
|
-
}
|
|
1090
|
-
) })
|
|
1040
|
+
/* @__PURE__ */ a("div", { className: "table-scroll", children: /* @__PURE__ */ y("table", { className: "table-custom", children: [
|
|
1041
|
+
/* @__PURE__ */ a("thead", { children: /* @__PURE__ */ y("tr", { children: [
|
|
1042
|
+
!x && /* @__PURE__ */ a("th", { style: { width: "50px" }, children: /* @__PURE__ */ a(
|
|
1043
|
+
"input",
|
|
1044
|
+
{
|
|
1045
|
+
type: "checkbox",
|
|
1046
|
+
checked: b,
|
|
1047
|
+
onChange: (h) => C.toggleSelectAll(h.target.checked)
|
|
1048
|
+
}
|
|
1049
|
+
) }),
|
|
1050
|
+
t.map((h) => /* @__PURE__ */ a(
|
|
1051
|
+
"th",
|
|
1052
|
+
{
|
|
1053
|
+
style: !h.width || g.length === 0 ? { width: "max-content" } : { width: h.width },
|
|
1054
|
+
children: h.label
|
|
1055
|
+
},
|
|
1056
|
+
h.key
|
|
1057
|
+
))
|
|
1058
|
+
] }) }),
|
|
1059
|
+
/* @__PURE__ */ a("div", {}),
|
|
1060
|
+
/* @__PURE__ */ y("tbody", { children: [
|
|
1061
|
+
g.map((h, n) => /* @__PURE__ */ y("tr", { children: [
|
|
1062
|
+
!x && /* @__PURE__ */ a("td", { children: /* @__PURE__ */ a(
|
|
1063
|
+
"input",
|
|
1064
|
+
{
|
|
1065
|
+
type: "checkbox",
|
|
1066
|
+
checked: v.includes(h._uid),
|
|
1067
|
+
onChange: () => C.toggleSelection(h._uid)
|
|
1068
|
+
}
|
|
1069
|
+
) }),
|
|
1070
|
+
t.map((o) => /* @__PURE__ */ a("td", { children: o.render ? o.render(
|
|
1071
|
+
h,
|
|
1072
|
+
n,
|
|
1073
|
+
(u, O) => C.updateCellValue(h._uid, u, O),
|
|
1074
|
+
!!x,
|
|
1075
|
+
!!m
|
|
1076
|
+
) : h[o.key] }, `${h._uid}-${o.key}`))
|
|
1077
|
+
] }, h._uid)),
|
|
1078
|
+
g.length === 0 && /* @__PURE__ */ a("tr", { className: "empty-row", children: /* @__PURE__ */ a("td", { colSpan: 100, className: "text-center", children: x ? "Nenhum registro encontrado." : "Nenhum registro." }) })
|
|
1079
|
+
] })
|
|
1080
|
+
] }) })
|
|
1091
1081
|
] });
|
|
1092
1082
|
};
|
|
1093
1083
|
export {
|
package/dist/style.css
CHANGED
|
@@ -1238,10 +1238,6 @@ h2.react-datepicker__current-month {
|
|
|
1238
1238
|
min-height: 400px;
|
|
1239
1239
|
max-height: 400px;
|
|
1240
1240
|
}
|
|
1241
|
-
.table-custom {
|
|
1242
|
-
border-collapse: collapse;
|
|
1243
|
-
width: 100%;
|
|
1244
|
-
}
|
|
1245
1241
|
.table-fixed th,
|
|
1246
1242
|
.table-fixed td {
|
|
1247
1243
|
white-space: nowrap;
|