@tech-diefra/fluig-ui 1.2.8 → 1.2.10

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.
Binary file
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface AttachmentProps {
4
+ name: string;
5
+ label?: string;
6
+ help?: string;
7
+ className?: string;
8
+ forceReadOnly?: boolean;
9
+ }
10
+ declare const _default: React.MemoExoticComponent<({ name, label, help, className, forceReadOnly, }: AttachmentProps) => import("react/jsx-runtime").JSX.Element>;
11
+ export default _default;
@@ -0,0 +1,13 @@
1
+
2
+ export interface CarouselItem {
3
+ name: string;
4
+ url: string;
5
+ type?: string;
6
+ }
7
+ export interface CarouselProps {
8
+ items: (CarouselItem | string)[];
9
+ time?: number;
10
+ showNavigation?: boolean;
11
+ progressBar?: boolean;
12
+ }
13
+ export default function Carousel({ items, time, showNavigation, progressBar, }: CarouselProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface ModalProps {
4
+ title: string;
5
+ isOpen: boolean;
6
+ onClose: () => void;
7
+ content: React.ReactNode;
8
+ footer?: React.ReactNode;
9
+ onOpen?: () => void;
10
+ width?: string;
11
+ }
12
+ export default function Modal({ title, isOpen, onOpen, onClose, content, footer, width, }: ModalProps): import("react/jsx-runtime").JSX.Element | null;
@@ -3,18 +3,23 @@ import { default as React } from 'react';
3
3
  interface ChildOptionsProps {
4
4
  label: string;
5
5
  action?: () => void;
6
+ id?: string;
6
7
  }
7
8
  interface ChildProps {
8
9
  icon?: string;
9
10
  label: string;
10
11
  action?: () => void;
11
12
  options?: ChildOptionsProps[];
13
+ id?: string;
12
14
  }
13
15
  interface SideBarProps {
14
16
  logo?: string;
15
17
  childs?: ChildProps[];
16
18
  footer?: React.ReactNode;
17
19
  contentExternal: React.ReactNode;
20
+ bg?: string;
21
+ color?: string;
22
+ onSelect?: (id?: string) => void;
18
23
  }
19
- export declare function SideBar({ logo, childs, footer, contentExternal, }: SideBarProps): import("react/jsx-runtime").JSX.Element;
24
+ export default function SideBar({ logo, childs, footer, contentExternal, bg, color, onSelect, }: SideBarProps): import("react/jsx-runtime").JSX.Element;
20
25
  export {};
@@ -1,10 +1,17 @@
1
1
  import { default as React } from 'react';
2
2
 
3
+ export type SimpleTableRenderProps = {
4
+ row: any;
5
+ index: number;
6
+ updateRow: (key: string, value: any) => void;
7
+ isLocked: boolean;
8
+ isView: boolean;
9
+ };
3
10
  type SimpleTableColumn = {
4
11
  key: string;
5
12
  label: string;
6
13
  width?: string | number;
7
- render?: (row: any, index: number, onChange: (key: string, value: any) => void, isReadOnly: boolean, isView: boolean) => React.ReactNode;
14
+ render?: (rowOrProps: any, index?: number, onChange?: (key: string, value: any) => void, isReadOnly?: boolean, isView?: boolean) => React.ReactNode;
8
15
  };
9
16
  type TableFilter = {
10
17
  field: string;
Binary file
Binary file
Binary file
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:"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;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),u=require("react"),$=require("react-hook-form"),X=require("react-imask"),S=require("@fluig-kit/ecm"),z=require("react-datepicker"),T=require("date-fns"),J={cpf:"000.000.000-00",cnpj:"00.000.000/0000-00",telefone:"(00) 00000-0000",cep:"00000-000"};function Y({name:t,label:s="",placeholder:n="",type:c="text",mask:i,className:l="",forceReadOnly:r=!1,forceHidden:a=!1}){const{isReadOnly:h,isHidden:f}=S.useSection(),m=r||!!h(t),g=a||!!f(t),{control:w}=$.useFormContext(),{isView:k}=S.useFluigRuntime(),{field:v}=$.useController({name:t,control:w}),{errors:b}=$.useFormState({name:t}),x=b==null?void 0:b[t],C=u.useMemo(()=>i?J[i]??i:null,[i]),R=u.useCallback(o=>{if(!o)return"";const d=o.replace(/\D/g,"");return(Number(d)/100).toLocaleString("pt-BR",{style:"currency",currency:"BRL"})},[]),p=u.useCallback(o=>c==="monetary"?R(o):o,[c,R]);return k?e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:s}),e.jsx("span",{className:"form-control",children:v.value||"-"})]}):e.jsxs("div",{className:`form-group ${g?"hidden":""}`,children:[e.jsx("label",{children:s}),C?e.jsx(X.IMaskInput,{name:t,mask:C,value:String(v.value??""),unmask:!1,onAccept:o=>v.onChange(p(o)),placeholder:n,readOnly:m,className:`form-control ${x?"border-red":""} ${l}`,inputRef:v.ref,onBlur:v.onBlur}):e.jsx("input",{...v,type:"text",value:v.value??"",onChange:o=>v.onChange(p(o.target.value)),placeholder:n,readOnly:m,className:`form-control ${x?"border-red":""} ${l}`}),x&&e.jsx("p",{className:"text-danger",children:String(x.message)})]})}const Q=u.memo(Y);function U({name:t,label:s="",options:n=[],placeholder:c="",labelKey:i="label",valueKey:l="value",enableSearch:r=!1,searchPlaceholder:a="Buscar...",loading:h=!1,onSearchChange:f,debounceTime:m=300,onSelect:g,forceReadOnly:w=!1,forceHidden:k=!1}){const{isReadOnly:v,isHidden:b}=S.useSection(),x=w||!!v(t),C=k||!!b(t),{control:R,clearErrors:p}=$.useFormContext(),{isView:o}=S.useFluigRuntime(),{field:{onChange:d,value:j,ref:M},fieldState:{error:y}}=$.useController({name:t,control:R}),[P,V]=u.useState(!1),[F,_]=u.useState(""),D=u.useRef(null),I=u.useRef(f);u.useEffect(()=>{I.current=f},[f]),u.useEffect(()=>{const N=O=>{D.current&&!D.current.contains(O.target)&&V(!1)};return document.addEventListener("mousedown",N),()=>document.removeEventListener("mousedown",N)},[]),u.useEffect(()=>{P||_("")},[P]),u.useEffect(()=>{if(!r)return;const N=setTimeout(()=>{I.current&&I.current(F)},m);return()=>clearTimeout(N)},[F,r,m]);const H=u.useMemo(()=>r&&!f&&F.trim()?n.filter(N=>String((N==null?void 0:N[i])??"").toLowerCase().includes(F.toLowerCase())):n??[],[n,r,f,F,i]),L=u.useMemo(()=>{if(j==null)return"";if(typeof j=="object")return String(j[l]??"");const N=(n||[]).find(O=>String(O==null?void 0:O[l])===String(j));return String(N?(N==null?void 0:N[i])??"":j)},[j,n,l,i]),B=N=>{x||(d(N[l]),g&&g(N),p(t),V(!1))};return e.jsxs("div",{className:`select-wrapper form-group ${C?"hidden":""}`,ref:D,children:[e.jsx("label",{className:"control-label",children:s}),o?e.jsx("span",{className:"form-control",children:L||"-"}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:`select-control ${y?"border-red":""} ${x?"readOnly":""}`,onClick:()=>!x&&V(N=>!N),ref:M,children:[e.jsx("span",{className:`select-display ${x?"readOnly":""}`,children:L||c}),e.jsx("i",{className:"flaticon flaticon-chevron-down select-icon"})]}),P&&!x&&e.jsxs("div",{className:"select-dropdown",children:[r&&e.jsx("div",{className:"select-search",children:e.jsx("input",{type:"text",className:"select-search-input",value:F,onChange:N=>_(N.target.value),placeholder:h?"Carregando...":a,autoFocus:!0,onClick:N=>N.stopPropagation()})}),e.jsx("ul",{className:"select-options",children:h?e.jsx("li",{className:"select-option readOnly",children:"Carregando..."}):H.length>0?H.map(N=>e.jsx("li",{onClick:()=>B(N),className:"select-option handleHover",children:N[i]},N[l])):e.jsx("li",{className:"select-option readOnly",children:"Sem resultados"})})]})]}),e.jsx("input",{type:"hidden",name:t,value:j||""}),y&&e.jsx("p",{className:"text-danger",children:String(y.message)})]})}const G=u.memo(U);function Z({name:t,options:s=[],label:n="",valueKey:c="value",labelKey:i="label",forceReadOnly:l=!1,forceHidden:r=!1}){var j,M;const a=$.useFormContext(),{isView:h,isReadOnly:f}=S.useFluigRuntime(),{isReadOnly:m,isHidden:g}=S.useSection(),w=m?m(t):!1,k=g?g(t):!1,v=l||w,b=r||k,x=v||f||h;if(!a||!t)return console.error("Checkbox requer contexto de formulário e nome."),null;const C=()=>!s||!a?{}:s.reduce((y,P)=>{const V=P[c],F=a.getValues(V);return y[V]=F==="on",y},{}),R=a.watch(t),p=u.useMemo(()=>R&&typeof R=="object"?R:C(),[R,s,c]);u.useEffect(()=>{const y=a.getValues(t);(!y||typeof y!="object")&&a.setValue(t,p,{shouldDirty:!1,shouldValidate:!1})},[p,t,a]);const o=(y,P)=>{if(x)return;const V={...p,[y]:P};a.setValue(t,V,{shouldDirty:!0,shouldValidate:!0}),a.setValue(y,P?"on":"",{shouldValidate:!1})},d=(M=(j=a.formState)==null?void 0:j.errors)==null?void 0:M[t];return e.jsxs("div",{className:`form-group ${b?"hidden":""}`,children:[n&&e.jsx("label",{children:n}),e.jsx("div",{className:`checkbox-group-custom ${x?"readOnly":""}`,children:s.map(y=>{const P=String(y[c]),V=p[P]===!0;return e.jsxs("div",{children:[e.jsx("input",{type:"hidden",...a.register(P)}),e.jsxs("label",{className:`custom-checkbox ${V?"checked":""} ${x?"readOnly":""}`,children:[e.jsx("input",{type:"checkbox",checked:V,disabled:x,onChange:F=>o(P,F.target.checked)}),e.jsx("span",{className:"checkmark"}),e.jsx("span",{children:y[i]})]})]},P)})}),d&&e.jsx("p",{className:"text-danger",children:String(d.message)})]})}function K({name:t,label:s="",options:n=[],valueKey:c="value",labelKey:i="label",iconKey:l="icon",forceReadOnly:r=!1,forceHidden:a=!1}){const{isReadOnly:h,isHidden:f}=S.useSection(),m=r||!!h(t),g=a||!!f(t),{control:w}=$.useFormContext(),{isView:k,isReadOnly:v}=S.useFluigRuntime(),{field:b,fieldState:{error:x}}=$.useController({name:t,control:w}),C=m||v||k,R=b.value??"",p=u.useCallback(o=>{C||b.onChange(o)},[C,b]);return e.jsxs("div",{className:`form-group column ${g?"hidden":""}`,children:[s&&e.jsx("label",{className:"control-label",children:s}),e.jsx("div",{className:`btn-group ${C?"view-mode":""}`,"data-field-name":t,children:n.map(o=>{const d=o[c],j=R===d,M=o.color?{"--customColor":o.color}:void 0;return e.jsxs("label",{htmlFor:`${t}_${d}`,style:M,className:`btn fs-ellipsis ${j?"active":""}`,children:[e.jsx("input",{type:"radio",id:`${t}_${d}`,name:t,value:d,checked:j,className:"hidden",onChange:()=>p(d),disabled:C}),o[l]&&e.jsx("i",{className:`${o[l]} icon-sm`})," ",o[i]]},d)})}),x&&e.jsx("p",{className:"text-danger",children:String(x.message)})]})}const ee=u.memo(K),te=({name:t,label:s="",placeholder:n="",className:c="",rows:i=4,maxLength:l,forceReadOnly:r=!1,forceHidden:a=!1})=>{const{isReadOnly:h,isHidden:f}=S.useSection(),m=r||!!h(t),g=a||!!f(t),{control:w}=$.useFormContext(),{isView:k}=S.useFluigRuntime(),{field:v,fieldState:{error:b}}=$.useController({name:t,control:w});return k?e.jsxs("div",{className:`form-group ${g?"hidden":""}`,children:[e.jsx("label",{children:s}),e.jsx("span",{className:"form-control",children:v.value||"-"})]}):e.jsxs("div",{className:`form-group ${g?"hidden":""}`,children:[e.jsx("label",{children:s}),e.jsx("textarea",{...v,rows:i,maxLength:l,value:v.value||"",placeholder:n,readOnly:m,className:`form-control ${b?"border-red":""} ${c}`}),b&&e.jsx("p",{className:"text-danger",children:String(b.message)})]})},ne=u.memo(te);function q(t){return(s={})=>{const n=s.width?String(s.width):t.defaultWidth;return t.formats[n]||t.formats[t.defaultWidth]}}function W(t){return(s,n)=>{const c=n!=null&&n.context?String(n.context):"standalone";let i;if(c==="formatting"&&t.formattingValues){const r=t.defaultFormattingWidth||t.defaultWidth,a=n!=null&&n.width?String(n.width):r;i=t.formattingValues[a]||t.formattingValues[r]}else{const r=t.defaultWidth,a=n!=null&&n.width?String(n.width):t.defaultWidth;i=t.values[a]||t.values[r]}const l=t.argumentCallback?t.argumentCallback(s):s;return i[l]}}function A(t){return(s,n={})=>{const c=n.width,i=c&&t.matchPatterns[c]||t.matchPatterns[t.defaultMatchWidth],l=s.match(i);if(!l)return null;const r=l[0],a=c&&t.parsePatterns[c]||t.parsePatterns[t.defaultParseWidth],h=Array.isArray(a)?se(a,g=>g.test(r)):ae(a,g=>g.test(r));let f;f=t.valueCallback?t.valueCallback(h):h,f=n.valueCallback?n.valueCallback(f):f;const m=s.slice(r.length);return{value:f,rest:m}}}function ae(t,s){for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&s(t[n]))return n}function se(t,s){for(let n=0;n<t.length;n++)if(s(t[n]))return n}function re(t){return(s,n={})=>{const c=s.match(t.matchPattern);if(!c)return null;const i=c[0],l=s.match(t.parsePattern);if(!l)return null;let r=t.valueCallback?t.valueCallback(l[0]):l[0];r=n.valueCallback?n.valueCallback(r):r;const a=s.slice(i.length);return{value:r,rest:a}}}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=(t,s,n)=>{let c;const i=oe[t];return typeof i=="string"?c=i:s===1?c=i.one:c=i.other.replace("{{count}}",String(s)),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"em "+c:"há "+c:c},le={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"},de={full:"{{date}} 'às' {{time}}",long:"{{date}} 'às' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},ue={date:q({formats:le,defaultWidth:"full"}),time:q({formats:ce,defaultWidth:"full"}),dateTime:q({formats:de,defaultWidth:"full"})},me={lastWeek:t=>{const s=t.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=(t,s,n,c)=>{const i=me[t];return typeof i=="function"?i(s):i},fe={narrow:["AC","DC"],abbreviated:["AC","DC"],wide:["antes de cristo","depois de cristo"]},xe={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},ge={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"]},je={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"}},ve={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=(t,s)=>{const n=Number(t);return(s==null?void 0:s.unit)==="week"?n+"ª":n+"º"},ye={ordinalNumber:pe,era:W({values:fe,defaultWidth:"wide"}),quarter:W({values:xe,defaultWidth:"wide",argumentCallback:t=>t-1}),month:W({values:ge,defaultWidth:"wide"}),day:W({values:be,defaultWidth:"wide"}),dayPeriod:W({values:je,defaultWidth:"wide",formattingValues:ve,defaultFormattingWidth:"wide"})},we=/^(\d+)[ºªo]?/i,Ne=/\d+/i,Ce={narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|d\.?\s?c\.?)/i,wide:/^(antes de cristo|depois de cristo)/i},ke={any:[/^ac/i,/^dc/i],wide:[/^antes de cristo/i,/^depois de cristo/i]},Re={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º)? trimestre/i},Se={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},$e={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]},Me={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},Ve={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]},Fe={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},Oe={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:Ne,valueCallback:t=>parseInt(t,10)}),era:A({matchPatterns:Ce,defaultMatchWidth:"wide",parsePatterns:ke,defaultParseWidth:"any"}),quarter:A({matchPatterns:Re,defaultMatchWidth:"wide",parsePatterns:Se,defaultParseWidth:"any",valueCallback:t=>t+1}),month:A({matchPatterns:Pe,defaultMatchWidth:"wide",parsePatterns:$e,defaultParseWidth:"any"}),day:A({matchPatterns:Me,defaultMatchWidth:"wide",parsePatterns:Ve,defaultParseWidth:"any"}),dayPeriod:A({matchPatterns:Fe,defaultMatchWidth:"any",parsePatterns:Oe,defaultParseWidth:"any"})},Ae={code:"pt-BR",formatDistance:ie,formatLong:ue,formatRelative:he,localize:ye,match:We,options:{weekStartsOn:0,firstWeekContainsDate:1}};z.registerLocale("pt-BR",Ae);const E="dd/MM/yyyy",De=t=>{if(!t)return null;const s=T.parse(t,E,new Date);return T.isValid(s)?s:null},Ie=t=>t?T.format(t,E):"",qe=u.forwardRef(({shimRef:t,className:s,name:n,...c},i)=>e.jsx("input",{name:n,...c,className:s,ref:l=>{typeof i=="function"?i(l):i&&(i.current=l),t&&t(l)}})),Te=({name:t,label:s="",placeholder:n="dd/mm/aaaa",className:c="",forceReadOnly:i=!1,forceHidden:l=!1})=>{const{control:r}=$.useFormContext(),{isView:a}=S.useFluigRuntime(),{isReadOnly:h,isHidden:f}=S.useSection(),m=i||!!h(t),g=l||!!f(t),{field:{onChange:w,onBlur:k,value:v,ref:b},fieldState:{error:x}}=$.useController({name:t,control:r}),C=u.useMemo(()=>De(v),[v]),R=u.useCallback(o=>{w(o?Ie(o):"")},[w]),p=u.useCallback(o=>{var d,j;if(b(o),o&&((j=(d=r._fields)==null?void 0:d[t])!=null&&j._f)){const M=r._fields[t];M._f.ref={focus:()=>{var y;return(y=o.focus)==null?void 0:y.call(o)},select:()=>{var y;return(y=o.select)==null?void 0:y.call(o)},setCustomValidity:y=>{var P;return(P=o.setCustomValidity)==null?void 0:P.call(o,y)},reportValidity:()=>{var y;return(y=o.reportValidity)==null?void 0:y.call(o)}}}},[b,r,t]);return g?null:a?e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:s}),e.jsx("span",{className:"form-control",children:v||"-"})]}):e.jsxs("div",{className:`form-group fluig-style-guide ${c}`,children:[s&&e.jsx("label",{className:"control-label",htmlFor:t,children:s}),e.jsx("div",{className:`${x?"border-red":""}`,children:e.jsx(z,{id:t,name:t,selected:C,onChange:R,onBlur:k,dateFormat:E,placeholderText:n,disabled:m,readOnly:m,locale:"pt-BR",className:`form-control ${x?"border-red":""}`,wrapperClassName:"w-100",showMonthDropdown:!0,showYearDropdown:!0,dropdownMode:"select",isClearable:!m&&!!v,autoComplete:"off",customInput:e.jsx(qe,{name:t,shimRef:p})})}),x&&e.jsx("span",{className:"help-block text-danger",children:String(x.message)})]})},Ee=u.memo(Te);function _e({mapping:t={},defaultLabel:s="Não reconhecido",className:n="",hidden:c=!1,label:i}){const{activityId:l}=S.useFluigRuntime(),r=u.useMemo(()=>!t||l===null||l===void 0?null:t[l],[l,t]);if(!r)return e.jsxs("div",{className:`form-group ${c?"hidden":""}`,children:[i&&e.jsx("label",{children:i}),e.jsx("div",{className:`status-badge default ${n}`,children:s})]});const a={"--customColor":r.color};return e.jsxs("div",{className:`form-group ${c?"hidden":""}`,children:[i&&e.jsx("label",{children:i}),e.jsxs("div",{className:`status-badge ${n}`,style:a,children:[r.icon&&e.jsx("i",{className:r.icon}),e.jsx("span",{children:r.label})]})]})}const He=u.memo(_e);function Le({name:t,control:s,defaultRowValue:n,isView:c,isReadOnly:i,filters:l=[]}){const{field:r}=$.useController({name:t,control:s}),[a,h]=u.useState([]),[f,m]=u.useState([]),g=()=>Date.now()+Math.random(),w=o=>{try{const d=JSON.parse(o);return Array.isArray(d)?d.map(j=>({...j,_uid:j._uid||g()})):[]}catch(d){return console.error(`Erro ao ler dados da tabela "${t}":`,d),[]}};u.useEffect(()=>{if(!(a.length>0&&!c)&&r.value&&typeof r.value=="string"){const o=JSON.stringify(a);if(r.value===o)return;const d=w(r.value);h(d)}},[r.value,c]),u.useEffect(()=>{if(i)return;const o=JSON.stringify(a);r.value!==o&&r.onChange(o)},[a,r,i]);const k=u.useCallback(()=>{const o={_uid:g(),...n};h(d=>[...d,o])},[n]),v=u.useCallback(()=>{h(o=>o.filter(d=>!f.includes(d._uid))),m([])},[f]),b=u.useCallback((o,d,j)=>{h(M=>M.map(y=>y._uid===o?{...y,[d]:j}:y))},[]),x=u.useCallback(o=>{m(d=>d.includes(o)?d.filter(j=>j!==o):[...d,o])},[]),C=u.useCallback(o=>{m(o?a.map(d=>d._uid):[])},[a]),R=a.length>0&&f.length===a.length,p=u.useMemo(()=>!l||l.length===0?a:a.filter(o=>l.every(d=>{if("custom"in d)return d.custom(o);const j=o[d.field];switch(d.operator){case"===":return j===d.value;case"!==":return j!==d.value;case">":return j>d.value;case"<":return j<d.value;case">=":return j>=d.value;case"<=":return j<=d.value;default:return!0}})),[a,l]);return{field:r,tableRows:a,visibleRows:p,selectedRowIds:f,isAllSelected:R,handle:{addRow:k,removeRows:v,updateCellValue:b,toggleSelection:x,toggleSelectAll:C}}}const ze=({name:t,title:s="Tabela Dinâmica",columns:n,defaultRowValue:c={},forceReadOnly:i=!1,layout:l="fluid",actions:r=!0,filters:a=[]})=>{const{control:h}=$.useFormContext(),{isView:f,isReadOnly:m}=S.useFluigRuntime(),{isReadOnly:g}=S.useSection(),w=i||f||m||g&&g(t),{field:k,visibleRows:v,selectedRowIds:b,isAllSelected:x,handle:C}=Le({name:t,control:h,defaultRowValue:c,isView:f,isReadOnly:!!w,filters:a}),R=l==="fixed";return e.jsxs("div",{className:`table-wrapper ${R?"table-fixed":"table-fluid"}`,children:[e.jsx("input",{type:"hidden",...k}),e.jsxs("div",{className:"header-handle",children:[e.jsx("h3",{children:s}),!w&&r&&e.jsxs("div",{className:"handle-actions",children:[e.jsxs("button",{type:"button",className:`btn ${b.length>0?"btn-danger":""}`,disabled:b.length===0,onClick:C.removeRows,children:["Remover (",b.length,")"]}),e.jsx("button",{type:"button",className:"btn-add",onClick:C.addRow,children:"Adicionar"})]})]}),e.jsx("div",{className:"table-scroll",children:e.jsxs("table",{className:"table-custom",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[!w&&e.jsx("th",{style:{width:"50px"},children:e.jsx("input",{type:"checkbox",checked:x,onChange:p=>C.toggleSelectAll(p.target.checked)})}),n.map(p=>e.jsx("th",{style:p.width?{minWidth:R?p.width:"100%"}:{width:"max-content"},children:p.label},p.key))]})}),e.jsxs("tbody",{children:[v.map((p,o)=>e.jsxs("tr",{children:[!w&&e.jsx("td",{children:e.jsx("input",{type:"checkbox",checked:b.includes(p._uid),onChange:()=>C.toggleSelection(p._uid)})}),n.map(d=>e.jsx("td",{children:d.render?d.render.length<=1?d.render({row:p,index:o,updateRow:(j,M)=>C.updateCellValue(p._uid,j,M),isLocked:!!w,isView:!!f}):d.render(p,o,(j,M)=>C.updateCellValue(p._uid,j,M),!!w,!!f):p[d.key]},`${p._uid}-${d.key}`))]},p._uid)),v.length===0&&e.jsx("tr",{className:"empty-row",children:e.jsx("td",{colSpan:100,className:"text-center",children:w?"Nenhum registro encontrado.":"Nenhum registro."})})]})]})})]})},Be=({name:t,label:s,help:n,className:c="",forceReadOnly:i=!1})=>{const{isReadOnly:l}=S.useSection(),{isView:r}=S.useFluigRuntime(),{control:a}=$.useFormContext(),{field:h}=$.useController({name:t,control:a}),f=u.useRef(null),m=!!h.value,g=i||!!l(t)||r,w=u.useCallback(()=>{var x;if(g)return;const b=window;b.JSInterface&&b.JSInterface.showCamera?b.JSInterface.showCamera(t):(x=f.current)==null||x.click()},[t,g]),k=b=>{const x=b.target.files;x&&x.length>0&&h.onChange(x[0].name)},v=u.useCallback(()=>{m&&(window.parent&&window.parent.WKFViewAttachment?console.log("Abrindo anexo do Fluig:",h.value):alert("Visualizando: "+h.value))},[h.value,m]);return r?e.jsxs("div",{className:"form-group",children:[s&&e.jsx("label",{children:s}),e.jsx("div",{className:"attachment-view",children:m?e.jsxs("button",{type:"button",onClick:v,className:"btn-link",style:{padding:0,border:"none",background:"none",color:"var(--colorPrimary)",cursor:"pointer"},children:[e.jsx("i",{className:"flaticon flaticon-view icon-sm"})," ",h.value]}):e.jsxs("span",{className:"text-muted",children:[e.jsx("i",{className:"flaticon flaticon-no-pic icon-sm"})," Sem anexo"]})})]}):e.jsxs("div",{className:`form-group ${c}`,children:[s&&e.jsx("label",{children:s}),e.jsx("input",{type:"file",ref:f,style:{display:"none"},onChange:k}),e.jsx("div",{className:`form-control attachment-input ${g?"readonly":""} ${m?"has-file":""}`,style:{display:"flex",alignItems:"center",justifyContent:"center",cursor:g?"not-allowed":"pointer",backgroundColor:g?"#f9f9f9":"#fff",border:"1px dashed #ccc",minHeight:"40px"},onClick:m?v:w,title:n,children:e.jsxs("div",{style:{color:m?"var(--colorPrimary)":"#ababab",display:"flex",alignItems:"center",gap:"8px"},children:[e.jsx("i",{className:`flaticon ${m?"flaticon-view":g?"flaticon-no-pic":"flaticon-add-test"} icon-sm`}),e.jsx("span",{children:m?"Ver Anexo":g?"Vazio":"Anexar"})]})}),e.jsx("input",{type:"hidden",name:t,value:h.value||""})]})},Xe=u.memo(Be);function Je({items:t,time:s=0,showNavigation:n=!0,progressBar:c=!0}){const[i,l]=u.useState(0),[r,a]=u.useState(0),h=u.useRef(null),f=u.useRef(null),m=u.useCallback(()=>{l(b=>(b+1)%t.length),a(0)},[t.length]),g=u.useCallback(()=>{l(b=>(b-1+t.length)%t.length),a(0)},[t.length]);if(u.useEffect(()=>{if(s>0&&t.length>1){const x=100/s*100;h.current=setInterval(m,s),f.current=setInterval(()=>{a(C=>C>=100?0:C+x)},100)}return()=>{h.current&&clearInterval(h.current),f.current&&clearInterval(f.current)}},[s,m,t.length,i]),!t||t.length===0)return null;const w=t[i],k=typeof w=="string"?w:w.url,v=/\.(jpg|jpeg|png|gif|webp)$/i.test(k);return e.jsxs("div",{className:"carousel-root",children:[e.jsxs("div",{className:"carousel-viewport",children:[n&&t.length>1&&e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"nav-btn prev",onClick:g,children:e.jsx("i",{className:"flaticon flaticon-chevron-left"})}),e.jsx("button",{className:"nav-btn next",onClick:m,children:e.jsx("i",{className:"flaticon flaticon-chevron-right"})})]}),e.jsx("div",{className:"carousel-media",children:v?e.jsx("img",{src:k,alt:"Slide",className:"carousel-image"}):e.jsxs("div",{className:"carousel-file-fallback",children:[e.jsx("i",{className:"flaticon flaticon-file icon-xl"}),e.jsx("a",{href:k,target:"_blank",rel:"noreferrer",className:"btn-open",children:"Abrir Arquivo"})]})}),t.length>1&&e.jsx("div",{className:"carousel-dots",children:t.map((b,x)=>e.jsx("div",{className:`dot ${x===i?"active":""}`,onClick:()=>{l(x),a(0)}},x))})]}),c&&s>0&&t.length>1&&e.jsx("div",{className:"carousel-progress-container",children:e.jsx("div",{className:"carousel-progress-bar",style:{width:`${r}%`}})})]})}function Ye({title:t,isOpen:s,onOpen:n,onClose:c,content:i,footer:l,width:r}){const a=u.useCallback(h=>{h.key==="Escape"&&c()},[c]);return u.useEffect(()=>(s&&(document.addEventListener("keydown",a),n==null||n(),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",a),document.body.style.overflow="auto"}),[s,a,n]),s?e.jsx("div",{className:"modal-overlay",onClick:c,"aria-modal":"true",role:"dialog",children:e.jsxs("div",{style:{maxWidth:r},className:"modal-container",onClick:h=>h.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsx("h3",{children:t}),e.jsx("div",{className:"btn-close-modal",onClick:c,role:"button","aria-label":"Fechar modal",children:e.jsx("i",{className:"flaticon flaticon-close icon-md","aria-hidden":"true"})})]}),e.jsx("div",{className:"modal-content",children:i}),l&&e.jsx("div",{className:"modal-footer",children:l})]})}):null}function Qe({logo:t,childs:s,footer:n,contentExternal:c,bg:i,color:l,onSelect:r}){return e.jsxs("div",{className:"main-container dfea",children:[e.jsxs("div",{className:"sidebar-wrapper",style:{backgroundColor:`${i}`},children:[t&&e.jsx("div",{className:"sidebar-logo",children:e.jsx("img",{src:t,alt:"",width:"auto",height:"28px"})}),e.jsx("ul",{className:"sidebar-childs-content",children:s==null?void 0:s.map(a=>{var h,f;return a!=null&&a.options&&((h=a==null?void 0:a.options)==null?void 0:h.length)>0?e.jsx(e.Fragment,{children:e.jsxs("ul",{className:"sidebar-child sidebar-options-content",children:[e.jsxs("li",{className:"sidebar-child",onClick:()=>{var m;(m=a.action)==null||m.call(a),r==null||r(a.id)},style:{color:`${l}`},children:[a.icon&&e.jsx("i",{className:a.icon}),a.label]}),(f=a.options)==null?void 0:f.map(m=>e.jsx("li",{className:"sidebar-option",onClick:()=>{var g;(g=m.action)==null||g.call(m),r==null||r(m.id)},style:{color:`${l}`},children:m.label}))]})}):e.jsxs("li",{className:"sidebar-child",onClick:()=>{var m;(m=a.action)==null||m.call(a),r==null||r(a.id)},style:{color:`${l}`},children:[a.icon&&e.jsx("i",{className:a.icon}),a.label]})})}),n&&e.jsx("div",{className:"sidebar-footer",children:n})]}),e.jsx("div",{className:"sidebar-content-external",children:c})]})}exports.Attachment=Xe;exports.Carousel=Je;exports.Checkbox=Z;exports.DatePicker=Ee;exports.Input=Q;exports.Modal=Ye;exports.RadioBtn=ee;exports.Select=G;exports.Sidebar=Qe;exports.SimpleTable=ze;exports.StatusBadge=He;exports.TextArea=ne;
package/dist/index.d.ts CHANGED
@@ -7,3 +7,7 @@ export { default as TextArea } from './TextArea';
7
7
  export { default as DatePicker } from './DatePicker';
8
8
  export { default as StatusBadge } from './StatusBadge';
9
9
  export { default as SimpleTable } from './SimpleTable';
10
+ export { default as Attachment } from './Attachment';
11
+ export { default as Carousel } from './Carousel';
12
+ export { default as Modal } from './Modal';
13
+ export { default as Sidebar } from './SideBar';