@tech-diefra/fluig-ui 1.1.0 → 1.1.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/components/SimpleTable/index.d.ts +10 -9
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +478 -312
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
type SimpleTableColumn = {
|
|
4
4
|
key: string;
|
|
5
5
|
label: string;
|
|
6
|
-
width?: string;
|
|
7
|
-
render?: (row: any, index: number,
|
|
8
|
-
}
|
|
9
|
-
|
|
6
|
+
width?: string | number;
|
|
7
|
+
render?: (row: any, index: number, onChange: (key: string, value: any) => void, isReadOnly: boolean, isView: boolean) => React.ReactNode;
|
|
8
|
+
};
|
|
9
|
+
type SimpleTableProps = {
|
|
10
10
|
name: string;
|
|
11
11
|
title?: string;
|
|
12
|
-
columns:
|
|
13
|
-
defaultRowValue?:
|
|
12
|
+
columns: SimpleTableColumn[];
|
|
13
|
+
defaultRowValue?: Record<string, any>;
|
|
14
14
|
forceReadOnly?: boolean;
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
layout?: "fluid" | "fixed";
|
|
16
|
+
};
|
|
17
|
+
declare const SimpleTable: ({ name, title, columns, defaultRowValue, forceReadOnly, layout, }: SimpleTableProps) => JSX.Element;
|
|
17
18
|
export default SimpleTable;
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),l=require("react"),S=require("react-hook-form"),X=require("react-imask"),P=require("@fluig-kit/ecm"),L=require("react-datepicker"),E=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:a="",placeholder:n="",type:o="text",mask:r,className:d="",forceReadOnly:i=!1,forceHidden:c=!1}){const{isReadOnly:w,isHidden:g}=P.useSection(),x=i||!!w(e),b=c||!!g(e),{control:M}=S.useFormContext(),{isView:R}=P.useFluigRuntime(),{field:h}=S.useController({name:e,control:M}),{errors:y}=S.useFormState({name:e}),f=y==null?void 0:y[e],C=l.useMemo(()=>r?Y[r]??r:null,[r]),k=l.useCallback(s=>{if(!s)return"";const v=s.replace(/\D/g,"");return(Number(v)/100).toLocaleString("pt-BR",{style:"currency",currency:"BRL"})},[]),N=l.useCallback(s=>o==="monetary"?k(s):s,[o,k]);return R?t.jsxs("div",{className:"form-group",children:[t.jsx("label",{children:a}),t.jsx("span",{className:"form-control",children:h.value||"-"})]}):t.jsxs("div",{className:`form-group ${b?"hidden":""}`,children:[t.jsx("label",{children:a}),C?t.jsx(X.IMaskInput,{name:e,mask:C,value:String(h.value??""),unmask:!1,onAccept:s=>h.onChange(N(s)),placeholder:n,readOnly:x,className:`form-control ${f?"border-red":""} ${d}`,inputRef:h.ref,onBlur:h.onBlur}):t.jsx("input",{...h,type:"text",value:h.value??"",onChange:s=>h.onChange(N(s.target.value)),placeholder:n,readOnly:x,className:`form-control ${f?"border-red":""} ${d}`}),f&&t.jsx("p",{className:"text-danger",children:String(f.message)})]})}const G=l.memo(Q);function J({name:e,label:a="",options:n=[],placeholder:o="",labelKey:r="label",valueKey:d="value",enableSearch:i=!1,searchPlaceholder:c="Buscar...",loading:w=!1,onSearchChange:g,debounceTime:x=300,onSelect:b,forceReadOnly:M=!1,forceHidden:R=!1}){const{isReadOnly:h,isHidden:y}=P.useSection(),f=M||!!h(e),C=R||!!y(e),{control:k,clearErrors:N}=S.useFormContext(),{isView:s}=P.useFluigRuntime(),{field:{onChange:v,value:j,ref:V},fieldState:{error:u}}=S.useController({name:e,control:k}),[p,O]=l.useState(!1),[$,B]=l.useState(""),q=l.useRef(null),H=l.useRef(g);l.useEffect(()=>{H.current=g},[g]),l.useEffect(()=>{const m=W=>{q.current&&!q.current.contains(W.target)&&O(!1)};return document.addEventListener("mousedown",m),()=>document.removeEventListener("mousedown",m)},[]),l.useEffect(()=>{p||B("")},[p]),l.useEffect(()=>{if(!i)return;const m=setTimeout(()=>{H.current&&H.current($)},x);return()=>clearTimeout(m)},[$,i,x]);const z=l.useMemo(()=>i&&!g&&$.trim()?n.filter(m=>String((m==null?void 0:m[r])??"").toLowerCase().includes($.toLowerCase())):n??[],[n,i,g,$,r]),I=l.useMemo(()=>{if(j==null)return"";if(typeof j=="object")return String(j[d]??"");const m=(n||[]).find(W=>String(W==null?void 0:W[d])===String(j));return String(m?(m==null?void 0:m[r])??"":j)},[j,n,d,r]),_=m=>{f||(v(m[d]),b&&b(m),N(e),O(!1))};return t.jsxs("div",{className:`select-wrapper form-group ${C?"hidden":""}`,ref:q,children:[t.jsx("label",{className:"control-label",children:a}),s?t.jsx("span",{className:"form-control",children:I||"-"}):t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:`select-control ${u?"border-red":""} ${f?"readOnly":""}`,onClick:()=>!f&&O(m=>!m),ref:V,children:[t.jsx("span",{className:`select-display ${f?"readOnly":""}`,children:I||o}),t.jsx("i",{className:"flaticon flaticon-chevron-down select-icon"})]}),p&&!f&&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:$,onChange:m=>B(m.target.value),placeholder:w?"Carregando...":c,autoFocus:!0,onClick:m=>m.stopPropagation()})}),t.jsx("ul",{className:"select-options",children:w?t.jsx("li",{className:"select-option readOnly",children:"Carregando..."}):z.length>0?z.map(m=>t.jsx("li",{onClick:()=>_(m),className:"select-option handleHover",children:m[r]},m[d])):t.jsx("li",{className:"select-option readOnly",children:"Sem resultados"})})]})]}),t.jsx("input",{type:"hidden",name:e,value:j||""}),u&&t.jsx("p",{className:"text-danger",children:String(u.message)})]})}const U=l.memo(J);function Z({name:e,options:a=[],label:n="",valueKey:o="value",labelKey:r="label",forceReadOnly:d=!1,forceHidden:i=!1}){var j,V;const c=S.useFormContext(),{isView:w,isReadOnly:g}=P.useFluigRuntime(),{isReadOnly:x,isHidden:b}=P.useSection(),M=x?x(e):!1,R=b?b(e):!1,h=d||M,y=i||R,f=h||g||w;if(!c||!e)return console.error("Checkbox requer contexto de formulário e nome."),null;const C=()=>!a||!c?{}:a.reduce((u,p)=>{const O=p[o],$=c.getValues(O);return u[O]=$==="on",u},{}),k=c.watch(e),N=l.useMemo(()=>k&&typeof k=="object"?k:C(),[k,a,o]);l.useEffect(()=>{const u=c.getValues(e);(!u||typeof u!="object")&&c.setValue(e,N,{shouldDirty:!1,shouldValidate:!1})},[N,e,c]);const s=(u,p)=>{if(f)return;const O={...N,[u]:p};c.setValue(e,O,{shouldDirty:!0,shouldValidate:!0}),c.setValue(u,p?"on":"",{shouldValidate:!1})},v=(V=(j=c.formState)==null?void 0:j.errors)==null?void 0:V[e];return t.jsxs("div",{className:`form-group ${y?"hidden":""}`,children:[n&&t.jsx("label",{children:n}),t.jsx("div",{className:`checkbox-group-custom ${f?"readOnly":""}`,children:a.map(u=>{const p=String(u[o]),O=N[p]===!0;return t.jsxs("div",{children:[t.jsx("input",{type:"hidden",...c.register(p)}),t.jsxs("label",{className:`custom-checkbox ${O?"checked":""} ${f?"readOnly":""}`,children:[t.jsx("input",{type:"checkbox",checked:O,disabled:f,onChange:$=>s(p,$.target.checked)}),t.jsx("span",{className:"checkmark"}),t.jsx("span",{children:u[r]})]})]},p)})}),v&&t.jsx("p",{className:"text-danger",children:String(v.message)})]})}function K({name:e,label:a="",options:n=[],valueKey:o="value",labelKey:r="label",iconKey:d="icon",forceReadOnly:i=!1,forceHidden:c=!1}){const{isReadOnly:w,isHidden:g}=P.useSection(),x=i||!!w(e),b=c||!!g(e),{control:M}=S.useFormContext(),{isView:R,isReadOnly:h}=P.useFluigRuntime(),{field:y,fieldState:{error:f}}=S.useController({name:e,control:M}),C=x||h||R,k=y.value??"",N=l.useCallback(s=>{C||y.onChange(s)},[C,y]);return t.jsxs("div",{className:`form-group column ${b?"hidden":""}`,children:[a&&t.jsx("label",{className:"control-label",children:a}),t.jsx("div",{className:`btn-group ${C?"view-mode":""}`,"data-field-name":e,children:n.map(s=>{const v=s[o],j=k===v,V=s.color?{"--customColor":s.color}:void 0;return t.jsxs("label",{htmlFor:`${e}_${v}`,style:V,className:`btn fs-ellipsis ${j?"active":""}`,children:[t.jsx("input",{type:"radio",id:`${e}_${v}`,name:e,value:v,checked:j,className:"hidden",onChange:()=>N(v),disabled:C}),s[d]&&t.jsx("i",{className:`${s[d]} icon-sm`})," ",s[r]]},v)})}),f&&t.jsx("p",{className:"text-danger",children:String(f.message)})]})}const ee=l.memo(K),te=({name:e,label:a="",placeholder:n="",className:o="",rows:r=4,maxLength:d,forceReadOnly:i=!1,forceHidden:c=!1})=>{const{isReadOnly:w,isHidden:g}=P.useSection(),x=i||!!w(e),b=c||!!g(e),{control:M}=S.useFormContext(),{isView:R}=P.useFluigRuntime(),{field:h,fieldState:{error:y}}=S.useController({name:e,control:M});return R?t.jsxs("div",{className:`form-group ${b?"hidden":""}`,children:[t.jsx("label",{children:a}),t.jsx("span",{className:"form-control",children:h.value||"-"})]}):t.jsxs("div",{className:`form-group ${b?"hidden":""}`,children:[t.jsx("label",{children:a}),t.jsx("textarea",{...h,rows:r,maxLength:d,value:h.value||"",placeholder:n,readOnly:x,className:`form-control ${y?"border-red":""} ${o}`}),y&&t.jsx("p",{className:"text-danger",children:String(y.message)})]})},ne=l.memo(te);function T(e){return(a={})=>{const n=a.width?String(a.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}function F(e){return(a,n)=>{const o=n!=null&&n.context?String(n.context):"standalone";let r;if(o==="formatting"&&e.formattingValues){const i=e.defaultFormattingWidth||e.defaultWidth,c=n!=null&&n.width?String(n.width):i;r=e.formattingValues[c]||e.formattingValues[i]}else{const i=e.defaultWidth,c=n!=null&&n.width?String(n.width):e.defaultWidth;r=e.values[c]||e.values[i]}const d=e.argumentCallback?e.argumentCallback(a):a;return r[d]}}function D(e){return(a,n={})=>{const o=n.width,r=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],d=a.match(r);if(!d)return null;const i=d[0],c=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth],w=Array.isArray(c)?re(c,b=>b.test(i)):ae(c,b=>b.test(i));let g;g=e.valueCallback?e.valueCallback(w):w,g=n.valueCallback?n.valueCallback(g):g;const x=a.slice(i.length);return{value:g,rest:x}}}function ae(e,a){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&a(e[n]))return n}function re(e,a){for(let n=0;n<e.length;n++)if(a(e[n]))return n}function se(e){return(a,n={})=>{const o=a.match(e.matchPattern);if(!o)return null;const r=o[0],d=a.match(e.parsePattern);if(!d)return null;let i=e.valueCallback?e.valueCallback(d[0]):d[0];i=n.valueCallback?n.valueCallback(i):i;const c=a.slice(r.length);return{value:i,rest:c}}}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,a,n)=>{let o;const r=oe[e];return typeof r=="string"?o=r:a===1?o=r.one:o=r.other.replace("{{count}}",String(a)),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"em "+o:"há "+o:o},de={full:"EEEE, d 'de' MMMM 'de' y",long:"d 'de' MMMM 'de' y",medium:"d MMM y",short:"dd/MM/yyyy"},ce={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},le={full:"{{date}} 'às' {{time}}",long:"{{date}} 'às' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},ue={date:T({formats:de,defaultWidth:"full"}),time:T({formats:ce,defaultWidth:"full"}),dateTime:T({formats:le,defaultWidth:"full"})},me={lastWeek:e=>{const a=e.getDay();return"'"+(a===0||a===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,a,n,o)=>{const r=me[e];return typeof r=="function"?r(a):r},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"}},je={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"}},ve=(e,a)=>{const n=Number(e);return(a==null?void 0:a.unit)==="week"?n+"ª":n+"º"},pe={ordinalNumber:ve,era:F({values:fe,defaultWidth:"wide"}),quarter:F({values:ge,defaultWidth:"wide",argumentCallback:e=>e-1}),month:F({values:xe,defaultWidth:"wide"}),day:F({values:be,defaultWidth:"wide"}),dayPeriod:F({values:ye,defaultWidth:"wide",formattingValues:je,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]},Pe={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º)? trimestre/i},Me={any:[/1/i,/2/i,/3/i,/4/i]},Se={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},Re={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},We={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}},Fe={ordinalNumber:se({matchPattern:we,parsePattern:Ce,valueCallback:e=>parseInt(e,10)}),era:D({matchPatterns:ke,defaultMatchWidth:"wide",parsePatterns:Ne,defaultParseWidth:"any"}),quarter:D({matchPatterns:Pe,defaultMatchWidth:"wide",parsePatterns:Me,defaultParseWidth:"any",valueCallback:e=>e+1}),month:D({matchPatterns:Se,defaultMatchWidth:"wide",parsePatterns:Re,defaultParseWidth:"any"}),day:D({matchPatterns:Oe,defaultMatchWidth:"wide",parsePatterns:$e,defaultParseWidth:"any"}),dayPeriod:D({matchPatterns:Ve,defaultMatchWidth:"any",parsePatterns:We,defaultParseWidth:"any"})},De={code:"pt-BR",formatDistance:ie,formatLong:ue,formatRelative:he,localize:pe,match:Fe,options:{weekStartsOn:0,firstWeekContainsDate:1}};L.registerLocale("pt-BR",De);const A="dd/MM/yyyy",qe=e=>{if(!e)return null;const a=E.parse(e,A,new Date);return E.isValid(a)?a:null},He=e=>e?E.format(e,A):"",Te=l.forwardRef(({shimRef:e,className:a,name:n,...o},r)=>t.jsx("input",{name:n,...o,className:a,ref:d=>{typeof r=="function"?r(d):r&&(r.current=d),e&&e(d)}})),Ee=({name:e,label:a="",placeholder:n="dd/mm/aaaa",className:o="",forceReadOnly:r=!1,forceHidden:d=!1})=>{const{control:i}=S.useFormContext(),{isView:c}=P.useFluigRuntime(),{isReadOnly:w,isHidden:g}=P.useSection(),x=r||!!w(e),b=d||!!g(e),{field:{onChange:M,onBlur:R,value:h,ref:y},fieldState:{error:f}}=S.useController({name:e,control:i}),C=l.useMemo(()=>qe(h),[h]),k=l.useCallback(s=>{M(s?He(s):"")},[M]),N=l.useCallback(s=>{var v,j;if(y(s),s&&((j=(v=i._fields)==null?void 0:v[e])!=null&&j._f)){const V=i._fields[e];V._f.ref={focus:()=>{var u;return(u=s.focus)==null?void 0:u.call(s)},select:()=>{var u;return(u=s.select)==null?void 0:u.call(s)},setCustomValidity:u=>{var p;return(p=s.setCustomValidity)==null?void 0:p.call(s,u)},reportValidity:()=>{var u;return(u=s.reportValidity)==null?void 0:u.call(s)}}}},[y,i,e]);return b?null:c?t.jsxs("div",{className:"form-group",children:[t.jsx("label",{children:a}),t.jsx("span",{className:"form-control",children:h||"-"})]}):t.jsxs("div",{className:`form-group fluig-style-guide ${o}`,children:[a&&t.jsx("label",{className:"control-label",htmlFor:e,children:a}),t.jsx("div",{className:`${f?"border-red":""}`,children:t.jsx(L,{id:e,name:e,selected:C,onChange:k,onBlur:R,dateFormat:A,placeholderText:n,disabled:x,readOnly:x,locale:"pt-BR",className:`form-control ${f?"border-red":""}`,wrapperClassName:"w-100",showMonthDropdown:!0,showYearDropdown:!0,dropdownMode:"select",isClearable:!x&&!!h,autoComplete:"off",customInput:t.jsx(Te,{name:e,shimRef:N})})}),f&&t.jsx("span",{className:"help-block text-danger",children:String(f.message)})]})},Ae=l.memo(Ee);function Be({mapping:e={},defaultLabel:a="Não reconhecido",className:n="",hidden:o=!1,label:r}){const{activityId:d}=P.useFluigRuntime(),i=l.useMemo(()=>!e||d===null||d===void 0?null:e[d],[d,e]);if(!i)return t.jsxs("div",{className:`form-group ${o?"hidden":""}`,children:[r&&t.jsx("label",{children:r}),t.jsx("div",{className:`status-badge default ${n}`,children:a})]});const c={"--customColor":i.color};return t.jsxs("div",{className:`form-group ${o?"hidden":""}`,children:[r&&t.jsx("label",{children:r}),t.jsxs("div",{className:`status-badge ${n}`,style:c,children:[i.icon&&t.jsx("i",{className:i.icon}),t.jsx("span",{children:i.label})]})]})}const ze=l.memo(Be);exports.Checkbox=Z;exports.DatePicker=Ae;exports.Input=G;exports.RadioBtn=ee;exports.Select=U;exports.StatusBadge=ze;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"),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:a="",placeholder:n="",type:d="text",mask:s,className:i="",forceReadOnly:r=!1,forceHidden:l=!1}){const{isReadOnly:v,isHidden:f}=P.useSection(),g=r||!!v(e),w=l||!!f(e),{control:N}=M.useFormContext(),{isView:S}=P.useFluigRuntime(),{field:b}=M.useController({name:e,control:N}),{errors:y}=M.useFormState({name:e}),x=y==null?void 0:y[e],h=u.useMemo(()=>s?Y[s]??s:null,[s]),m=u.useCallback(o=>{if(!o)return"";const k=o.replace(/\D/g,"");return(Number(k)/100).toLocaleString("pt-BR",{style:"currency",currency:"BRL"})},[]),c=u.useCallback(o=>d==="monetary"?m(o):o,[d,m]);return S?t.jsxs("div",{className:"form-group",children:[t.jsx("label",{children:a}),t.jsx("span",{className:"form-control",children:b.value||"-"})]}):t.jsxs("div",{className:`form-group ${w?"hidden":""}`,children:[t.jsx("label",{children:a}),h?t.jsx(X.IMaskInput,{name:e,mask:h,value:String(b.value??""),unmask:!1,onAccept:o=>b.onChange(c(o)),placeholder:n,readOnly:g,className:`form-control ${x?"border-red":""} ${i}`,inputRef:b.ref,onBlur:b.onBlur}):t.jsx("input",{...b,type:"text",value:b.value??"",onChange:o=>b.onChange(c(o.target.value)),placeholder:n,readOnly:g,className:`form-control ${x?"border-red":""} ${i}`}),x&&t.jsx("p",{className:"text-danger",children:String(x.message)})]})}const J=u.memo(Q);function U({name:e,label:a="",options:n=[],placeholder:d="",labelKey:s="label",valueKey:i="value",enableSearch:r=!1,searchPlaceholder:l="Buscar...",loading:v=!1,onSearchChange:f,debounceTime:g=300,onSelect:w,forceReadOnly:N=!1,forceHidden:S=!1}){const{isReadOnly:b,isHidden:y}=P.useSection(),x=N||!!b(e),h=S||!!y(e),{control:m,clearErrors:c}=M.useFormContext(),{isView:o}=P.useFluigRuntime(),{field:{onChange:k,value:C,ref:V},fieldState:{error:j}}=M.useController({name:e,control:m}),[R,O]=u.useState(!1),[$,E]=u.useState(""),T=u.useRef(null),q=u.useRef(f);u.useEffect(()=>{q.current=f},[f]),u.useEffect(()=>{const p=F=>{T.current&&!T.current.contains(F.target)&&O(!1)};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[]),u.useEffect(()=>{R||E("")},[R]),u.useEffect(()=>{if(!r)return;const p=setTimeout(()=>{q.current&&q.current($)},g);return()=>clearTimeout(p)},[$,r,g]);const L=u.useMemo(()=>r&&!f&&$.trim()?n.filter(p=>String((p==null?void 0:p[s])??"").toLowerCase().includes($.toLowerCase())):n??[],[n,r,f,$,s]),B=u.useMemo(()=>{if(C==null)return"";if(typeof C=="object")return String(C[i]??"");const p=(n||[]).find(F=>String(F==null?void 0:F[i])===String(C));return String(p?(p==null?void 0:p[s])??"":C)},[C,n,i,s]),z=p=>{x||(k(p[i]),w&&w(p),c(e),O(!1))};return t.jsxs("div",{className:`select-wrapper form-group ${h?"hidden":""}`,ref:T,children:[t.jsx("label",{className:"control-label",children:a}),o?t.jsx("span",{className:"form-control",children:B||"-"}):t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:`select-control ${j?"border-red":""} ${x?"readOnly":""}`,onClick:()=>!x&&O(p=>!p),ref:V,children:[t.jsx("span",{className:`select-display ${x?"readOnly":""}`,children:B||d}),t.jsx("i",{className:"flaticon flaticon-chevron-down select-icon"})]}),R&&!x&&t.jsxs("div",{className:"select-dropdown",children:[r&&t.jsx("div",{className:"select-search",children:t.jsx("input",{type:"text",className:"select-search-input",value:$,onChange:p=>E(p.target.value),placeholder:v?"Carregando...":l,autoFocus:!0,onClick:p=>p.stopPropagation()})}),t.jsx("ul",{className:"select-options",children:v?t.jsx("li",{className:"select-option readOnly",children:"Carregando..."}):L.length>0?L.map(p=>t.jsx("li",{onClick:()=>z(p),className:"select-option handleHover",children:p[s]},p[i])):t.jsx("li",{className:"select-option readOnly",children:"Sem resultados"})})]})]}),t.jsx("input",{type:"hidden",name:e,value:C||""}),j&&t.jsx("p",{className:"text-danger",children:String(j.message)})]})}const G=u.memo(U);function Z({name:e,options:a=[],label:n="",valueKey:d="value",labelKey:s="label",forceReadOnly:i=!1,forceHidden:r=!1}){var C,V;const l=M.useFormContext(),{isView:v,isReadOnly:f}=P.useFluigRuntime(),{isReadOnly:g,isHidden:w}=P.useSection(),N=g?g(e):!1,S=w?w(e):!1,b=i||N,y=r||S,x=b||f||v;if(!l||!e)return console.error("Checkbox requer contexto de formulário e nome."),null;const h=()=>!a||!l?{}:a.reduce((j,R)=>{const O=R[d],$=l.getValues(O);return j[O]=$==="on",j},{}),m=l.watch(e),c=u.useMemo(()=>m&&typeof m=="object"?m:h(),[m,a,d]);u.useEffect(()=>{const j=l.getValues(e);(!j||typeof j!="object")&&l.setValue(e,c,{shouldDirty:!1,shouldValidate:!1})},[c,e,l]);const o=(j,R)=>{if(x)return;const O={...c,[j]:R};l.setValue(e,O,{shouldDirty:!0,shouldValidate:!0}),l.setValue(j,R?"on":"",{shouldValidate:!1})},k=(V=(C=l.formState)==null?void 0:C.errors)==null?void 0:V[e];return t.jsxs("div",{className:`form-group ${y?"hidden":""}`,children:[n&&t.jsx("label",{children:n}),t.jsx("div",{className:`checkbox-group-custom ${x?"readOnly":""}`,children:a.map(j=>{const R=String(j[d]),O=c[R]===!0;return t.jsxs("div",{children:[t.jsx("input",{type:"hidden",...l.register(R)}),t.jsxs("label",{className:`custom-checkbox ${O?"checked":""} ${x?"readOnly":""}`,children:[t.jsx("input",{type:"checkbox",checked:O,disabled:x,onChange:$=>o(R,$.target.checked)}),t.jsx("span",{className:"checkmark"}),t.jsx("span",{children:j[s]})]})]},R)})}),k&&t.jsx("p",{className:"text-danger",children:String(k.message)})]})}function K({name:e,label:a="",options:n=[],valueKey:d="value",labelKey:s="label",iconKey:i="icon",forceReadOnly:r=!1,forceHidden:l=!1}){const{isReadOnly:v,isHidden:f}=P.useSection(),g=r||!!v(e),w=l||!!f(e),{control:N}=M.useFormContext(),{isView:S,isReadOnly:b}=P.useFluigRuntime(),{field:y,fieldState:{error:x}}=M.useController({name:e,control:N}),h=g||b||S,m=y.value??"",c=u.useCallback(o=>{h||y.onChange(o)},[h,y]);return t.jsxs("div",{className:`form-group column ${w?"hidden":""}`,children:[a&&t.jsx("label",{className:"control-label",children:a}),t.jsx("div",{className:`btn-group ${h?"view-mode":""}`,"data-field-name":e,children:n.map(o=>{const k=o[d],C=m===k,V=o.color?{"--customColor":o.color}:void 0;return t.jsxs("label",{htmlFor:`${e}_${k}`,style:V,className:`btn fs-ellipsis ${C?"active":""}`,children:[t.jsx("input",{type:"radio",id:`${e}_${k}`,name:e,value:k,checked:C,className:"hidden",onChange:()=>c(k),disabled:h}),o[i]&&t.jsx("i",{className:`${o[i]} icon-sm`})," ",o[s]]},k)})}),x&&t.jsx("p",{className:"text-danger",children:String(x.message)})]})}const ee=u.memo(K),te=({name:e,label:a="",placeholder:n="",className:d="",rows:s=4,maxLength:i,forceReadOnly:r=!1,forceHidden:l=!1})=>{const{isReadOnly:v,isHidden:f}=P.useSection(),g=r||!!v(e),w=l||!!f(e),{control:N}=M.useFormContext(),{isView:S}=P.useFluigRuntime(),{field:b,fieldState:{error:y}}=M.useController({name:e,control:N});return S?t.jsxs("div",{className:`form-group ${w?"hidden":""}`,children:[t.jsx("label",{children:a}),t.jsx("span",{className:"form-control",children:b.value||"-"})]}):t.jsxs("div",{className:`form-group ${w?"hidden":""}`,children:[t.jsx("label",{children:a}),t.jsx("textarea",{...b,rows:s,maxLength:i,value:b.value||"",placeholder:n,readOnly:g,className:`form-control ${y?"border-red":""} ${d}`}),y&&t.jsx("p",{className:"text-danger",children:String(y.message)})]})},ne=u.memo(te);function A(e){return(a={})=>{const n=a.width?String(a.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}function W(e){return(a,n)=>{const d=n!=null&&n.context?String(n.context):"standalone";let s;if(d==="formatting"&&e.formattingValues){const r=e.defaultFormattingWidth||e.defaultWidth,l=n!=null&&n.width?String(n.width):r;s=e.formattingValues[l]||e.formattingValues[r]}else{const r=e.defaultWidth,l=n!=null&&n.width?String(n.width):e.defaultWidth;s=e.values[l]||e.values[r]}const i=e.argumentCallback?e.argumentCallback(a):a;return s[i]}}function D(e){return(a,n={})=>{const d=n.width,s=d&&e.matchPatterns[d]||e.matchPatterns[e.defaultMatchWidth],i=a.match(s);if(!i)return null;const r=i[0],l=d&&e.parsePatterns[d]||e.parsePatterns[e.defaultParseWidth],v=Array.isArray(l)?se(l,w=>w.test(r)):ae(l,w=>w.test(r));let f;f=e.valueCallback?e.valueCallback(v):v,f=n.valueCallback?n.valueCallback(f):f;const g=a.slice(r.length);return{value:f,rest:g}}}function ae(e,a){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&a(e[n]))return n}function se(e,a){for(let n=0;n<e.length;n++)if(a(e[n]))return n}function re(e){return(a,n={})=>{const d=a.match(e.matchPattern);if(!d)return null;const s=d[0],i=a.match(e.parsePattern);if(!i)return null;let r=e.valueCallback?e.valueCallback(i[0]):i[0];r=n.valueCallback?n.valueCallback(r):r;const l=a.slice(s.length);return{value:r,rest:l}}}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,a,n)=>{let d;const s=oe[e];return typeof s=="string"?d=s:a===1?d=s.one:d=s.other.replace("{{count}}",String(a)),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"em "+d:"há "+d:d},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 a=e.getDay();return"'"+(a===0||a===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,a,n,d)=>{const s=me[e];return typeof s=="function"?s(a):s},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"}},je={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"}},pe=(e,a)=>{const n=Number(e);return(a==null?void 0:a.unit)==="week"?n+"ª":n+"º"},ve={ordinalNumber:pe,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:je,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},Se={any:[/^ac/i,/^dc/i],wide:[/^antes de cristo/i,/^depois de cristo/i]},Ne={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:Se,defaultParseWidth:"any"}),quarter:D({matchPatterns:Ne,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 a=H.parse(e,_,new Date);return H.isValid(a)?a:null},qe=e=>e?H.format(e,_):"",Ae=u.forwardRef(({shimRef:e,className:a,name:n,...d},s)=>t.jsx("input",{name:n,...d,className:a,ref:i=>{typeof s=="function"?s(i):s&&(s.current=i),e&&e(i)}})),He=({name:e,label:a="",placeholder:n="dd/mm/aaaa",className:d="",forceReadOnly:s=!1,forceHidden:i=!1})=>{const{control:r}=M.useFormContext(),{isView:l}=P.useFluigRuntime(),{isReadOnly:v,isHidden:f}=P.useSection(),g=s||!!v(e),w=i||!!f(e),{field:{onChange:N,onBlur:S,value:b,ref:y},fieldState:{error:x}}=M.useController({name:e,control:r}),h=u.useMemo(()=>Te(b),[b]),m=u.useCallback(o=>{N(o?qe(o):"")},[N]),c=u.useCallback(o=>{var k,C;if(y(o),o&&((C=(k=r._fields)==null?void 0:k[e])!=null&&C._f)){const V=r._fields[e];V._f.ref={focus:()=>{var j;return(j=o.focus)==null?void 0:j.call(o)},select:()=>{var j;return(j=o.select)==null?void 0:j.call(o)},setCustomValidity:j=>{var R;return(R=o.setCustomValidity)==null?void 0:R.call(o,j)},reportValidity:()=>{var j;return(j=o.reportValidity)==null?void 0:j.call(o)}}}},[y,r,e]);return w?null:l?t.jsxs("div",{className:"form-group",children:[t.jsx("label",{children:a}),t.jsx("span",{className:"form-control",children:b||"-"})]}):t.jsxs("div",{className:`form-group fluig-style-guide ${d}`,children:[a&&t.jsx("label",{className:"control-label",htmlFor:e,children:a}),t.jsx("div",{className:`${x?"border-red":""}`,children:t.jsx(I,{id:e,name:e,selected:h,onChange:m,onBlur:S,dateFormat:_,placeholderText:n,disabled:g,readOnly:g,locale:"pt-BR",className:`form-control ${x?"border-red":""}`,wrapperClassName:"w-100",showMonthDropdown:!0,showYearDropdown:!0,dropdownMode:"select",isClearable:!g&&!!b,autoComplete:"off",customInput:t.jsx(Ae,{name:e,shimRef:c})})}),x&&t.jsx("span",{className:"help-block text-danger",children:String(x.message)})]})},_e=u.memo(He);function Ee({mapping:e={},defaultLabel:a="Não reconhecido",className:n="",hidden:d=!1,label:s}){const{activityId:i}=P.useFluigRuntime(),r=u.useMemo(()=>!e||i===null||i===void 0?null:e[i],[i,e]);if(!r)return t.jsxs("div",{className:`form-group ${d?"hidden":""}`,children:[s&&t.jsx("label",{children:s}),t.jsx("div",{className:`status-badge default ${n}`,children:a})]});const l={"--customColor":r.color};return t.jsxs("div",{className:`form-group ${d?"hidden":""}`,children:[s&&t.jsx("label",{children:s}),t.jsxs("div",{className:`status-badge ${n}`,style:l,children:[r.icon&&t.jsx("i",{className:r.icon}),t.jsx("span",{children:r.label})]})]})}const Le=u.memo(Ee);function Be({name:e,control:a,defaultRowValue:n,isView:d,isReadOnly:s}){const{field:i}=M.useController({name:e,control:a}),[r,l]=u.useState([]),[v,f]=u.useState([]),g=()=>Date.now()+Math.random(),w=m=>{try{const c=JSON.parse(m);return Array.isArray(c)?c.map(o=>({...o,_uid:o._uid||g()})):[]}catch(c){return console.error(`Erro ao ler dados da tabela "${e}":`,c),[]}};u.useEffect(()=>{if(!(r.length>0&&!d)&&i.value&&typeof i.value=="string"){const m=JSON.stringify(r);if(i.value===m)return;const c=w(i.value);l(c)}},[i.value,d]),u.useEffect(()=>{if(s)return;const m=JSON.stringify(r);i.value!==m&&i.onChange(m)},[r,i,s]);const N=u.useCallback(()=>{const m={_uid:g(),...n};l(c=>[...c,m])},[n]),S=u.useCallback(()=>{l(m=>m.filter(c=>!v.includes(c._uid))),f([])},[v]),b=u.useCallback((m,c,o)=>{l(k=>k.map(C=>C._uid===m?{...C,[c]:o}:C))},[]),y=u.useCallback(m=>{f(c=>c.includes(m)?c.filter(o=>o!==m):[...c,m])},[]),x=u.useCallback(m=>{f(m?r.map(c=>c._uid):[])},[r]),h=r.length>0&&v.length===r.length;return{field:i,tableRows:r,selectedRowIds:v,isAllSelected:h,actions:{addRow:N,removeRows:S,updateCellValue:b,toggleSelection:y,toggleSelectAll:x}}}const Ie=({name:e,title:a="Tabela Dinâmica",columns:n,defaultRowValue:d={},forceReadOnly:s=!1,layout:i="fluid"})=>{const{control:r}=M.useFormContext(),{isView:l,isReadOnly:v}=P.useFluigRuntime(),{isReadOnly:f}=P.useSection(),g=s||l||v||f&&f(e),{field:w,tableRows:N,selectedRowIds:S,isAllSelected:b,actions:y}=Be({name:e,control:r,defaultRowValue:d,isView:l,isReadOnly:!!g}),x=i==="fixed";return t.jsxs("div",{className:`table-wrapper ${x?"table-fixed":"table-fluid"}`,children:[t.jsx("input",{type:"hidden",...w}),t.jsxs("div",{className:"header-actions",children:[t.jsx("h3",{children:a}),!g&&t.jsxs("div",{children:[t.jsxs("button",{type:"button",className:`btn ${S.length>0?"btn-danger":""}`,disabled:S.length===0,onClick:y.removeRows,children:["Remover (",S.length,")"]}),t.jsx("button",{type:"button",className:"btn-add",onClick:y.addRow,children:"Adicionar"})]})]}),t.jsx("div",{className:"table-scroll",children:t.jsxs("table",{className:"table-custom",style:{tableLayout:"fixed",width:x?"max-content":"100%"},children:[t.jsx("thead",{children:t.jsxs("tr",{children:[!g&&t.jsx("th",{style:{width:"50px"},children:t.jsx("input",{type:"checkbox",checked:b,onChange:h=>y.toggleSelectAll(h.target.checked)})}),n.map(h=>t.jsx("th",{style:h.width?{width:h.width}:{width:"100%"},children:h.label},h.key))]})}),t.jsx("div",{}),t.jsxs("tbody",{children:[N.map((h,m)=>t.jsxs("tr",{children:[!g&&t.jsx("td",{children:t.jsx("input",{type:"checkbox",checked:S.includes(h._uid),onChange:()=>y.toggleSelection(h._uid)})}),n.map(c=>t.jsx("td",{children:c.render?c.render(h,m,(o,k)=>y.updateCellValue(h._uid,o,k),!!g,!!l):h[c.key]},`${h._uid}-${c.key}`))]},h._uid)),N.length===0&&t.jsx("tr",{children:t.jsx("td",{colSpan:100,className:"text-center",children:g?"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;
|
package/dist/index.d.ts
CHANGED
|
@@ -6,3 +6,4 @@ export { default as RadioBtn } from './components/RadioBtn';
|
|
|
6
6
|
export { default as TextArea } from './components/TextArea';
|
|
7
7
|
export { default as DatePicker } from './components/DatePicker';
|
|
8
8
|
export { default as StatusBadge } from './components/StatusBadge';
|
|
9
|
+
export { default as SimpleTable } from './components/SimpleTable';
|