@orangesix/react 1.2.2 → 1.3.1

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.
Files changed (76) hide show
  1. package/api/index.d.ts +46 -2
  2. package/autocomplete/index.cjs.js +1 -1
  3. package/autocomplete/index.cjs.js.map +1 -1
  4. package/autocomplete/index.d.ts +12 -1
  5. package/autocomplete/index.esm.js +1 -1
  6. package/autocomplete/index.esm.js.map +1 -1
  7. package/button/_button.scss +56 -0
  8. package/button/index.cjs.js +2 -0
  9. package/button/index.cjs.js.map +1 -0
  10. package/button/index.d.ts +109 -0
  11. package/button/index.esm.js +2 -0
  12. package/button/index.esm.js.map +1 -0
  13. package/button/package.json +5 -0
  14. package/editor/index.d.ts +5 -0
  15. package/input/index.cjs.js +1 -1
  16. package/input/index.cjs.js.map +1 -1
  17. package/input/index.d.ts +44 -1
  18. package/input/index.esm.js +1 -1
  19. package/input/index.esm.js.map +1 -1
  20. package/inputfilter/index.cjs.js +1 -1
  21. package/inputfilter/index.cjs.js.map +1 -1
  22. package/inputfilter/index.d.ts +5 -0
  23. package/inputfilter/index.esm.js +1 -1
  24. package/inputfilter/index.esm.js.map +1 -1
  25. package/loading/index.d.ts +16 -16
  26. package/loading/package.json +5 -5
  27. package/message/index.cjs.js +2 -0
  28. package/message/index.cjs.js.map +1 -0
  29. package/message/index.d.ts +108 -0
  30. package/message/index.esm.js +2 -0
  31. package/message/index.esm.js.map +1 -0
  32. package/message/package.json +5 -0
  33. package/modal/index.cjs.js +1 -1
  34. package/modal/index.cjs.js.map +1 -1
  35. package/modal/index.d.ts +5 -0
  36. package/modal/index.esm.js +1 -1
  37. package/modal/index.esm.js.map +1 -1
  38. package/package.json +23 -30
  39. package/picklist/index.d.ts +2 -1
  40. package/radio/index.cjs.js +1 -1
  41. package/radio/index.cjs.js.map +1 -1
  42. package/radio/index.d.ts +44 -1
  43. package/radio/index.esm.js +1 -1
  44. package/radio/index.esm.js.map +1 -1
  45. package/select/index.cjs.js +1 -1
  46. package/select/index.cjs.js.map +1 -1
  47. package/select/index.d.ts +46 -2
  48. package/select/index.esm.js +1 -1
  49. package/select/index.esm.js.map +1 -1
  50. package/style/index.d.ts +1 -1
  51. package/switch/index.cjs.js +1 -1
  52. package/switch/index.cjs.js.map +1 -1
  53. package/switch/index.d.ts +44 -1
  54. package/switch/index.esm.js +1 -1
  55. package/switch/index.esm.js.map +1 -1
  56. package/table/index.cjs.js +1 -1
  57. package/table/index.cjs.js.map +1 -1
  58. package/table/index.d.ts +38 -4
  59. package/table/index.esm.js +1 -1
  60. package/table/index.esm.js.map +1 -1
  61. package/tablepivot/index.d.ts +2 -1
  62. package/tabview/index.cjs.js +1 -1
  63. package/tabview/index.cjs.js.map +1 -1
  64. package/tabview/index.d.ts +12 -1
  65. package/tabview/index.esm.js +1 -1
  66. package/tabview/index.esm.js.map +1 -1
  67. package/textarea/index.cjs.js +1 -1
  68. package/textarea/index.cjs.js.map +1 -1
  69. package/textarea/index.d.ts +44 -1
  70. package/textarea/index.esm.js +1 -1
  71. package/textarea/index.esm.js.map +1 -1
  72. package/utils/index.cjs.js +1 -1
  73. package/utils/index.cjs.js.map +1 -1
  74. package/utils/index.d.ts +10 -2
  75. package/utils/index.esm.js +1 -1
  76. package/utils/index.esm.js.map +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";require("jquery"),require("axios"),require("node-snackbar"),require("sweetalert2");var e=require("react"),t=require("primereact/utils"),l=require("primereact/autocomplete");function n(e){let t=document.getElementById(e),l=null===t?null:t.content.replace(".br/",".br");return null===l?null:"/"===l.substr(-1)?l.slice(0,l.length-1):l}n("auth"),n("react-base"),n("csrf-token");const a=[{id:1,name:"Janeiro"},{id:2,name:"Fevereiro"},{id:3,name:"Março"},{id:4,name:"Abril"},{id:5,name:"Maio"},{id:6,name:"Junho"},{id:7,name:"Julho"},{id:8,name:"Agosto"},{id:9,name:"Setembro"},{id:10,name:"Outubro"},{id:11,name:"Novembro"},{id:12,name:"Dezembro"}];function i(e,t="decimal"){let l=e.replace(/[^0-9.,]/g,"");return"decimal"===t?l.replace(",",".").replace(/(\..*)\./g,"$1"):parseFloat(l.replace(",",".")).toLocaleString("pt-BR",{style:"currency",currency:"BRL"}).replace("."," ")}const r=["=","!=","%","!%"],o=[{options:"=",label:"Igual a"},{options:"!=",label:"Diferente de"},{options:"<",label:"Menor do que"},{options:">",label:"Maior do que"},{options:"<=",label:"Menor ou igual a"},{options:">=",label:"Maior ou igual a"},{options:"{}",label:"Intervalo"},{options:"%",label:"Contém o que"},{options:"!%",label:"Não contém o que"}];function s(e){if(!e)return null;let t=e?.match(/(=|!=|<|>|<=|>=|%|!%|\{\})/),l=e.charAt(e.length-1),n=t?.[0];return t?.[0]!==l&&isNaN(parseInt(l))&&n?.slice(-1)!==l&&(n=t?.[0]+l),o.filter((e=>e.options===n))[0]?.label??null}const u=({children:l,...n})=>{const a={size:`box-size-${n.size??"100"}`,direction:`box-direction-${n.direction??"row"}`,justify:void 0===n.justify?"":Array.isArray(n.justify)?n.justify?.join(" "):n.justify,align:void 0===n.align?"":Array.isArray(n.align)?n.align?.join(" "):n.align},i={className:t.classNames(["box",n.className??"",a.size,a.direction,a.justify,a.align]),style:n.css,id:n.id};return e.createElement("div",{...i},l)};function c(e){const[t,l,n]=e,a=l>=1&&l<=12,i=n>0&&n<99999,r=t>=1&&t<=31;if(i&&!a&&!r)return[0,0,n];if(i&&a&&!r)return[0,l,n];if(i&&a&&r){let a=new Date(n,l,0);return a.getDate()<t?[a.getDate(),l,n]:e}return i||!a||r?!i&&a&&r?[t,l,0]:i||a||!r?i&&!a&&r?[t,0,n]:[0,0,0]:[t,0,0]:[0,l,0]}function d(e,t){let l=e,n=t.slice().reverse().find((e=>l?.endsWith(e)));return n&&void 0!==l?l.slice(0,-n.length):l??null}function p(e,t,l=null){let n=e,a=/(=|!=|<|>|<=|>=|\{\})/,i=e?.match(a),r=i?i[0].trim():t[0],o=[];return(n?.split("{}")??[]).forEach(((e,t)=>{let l=e.replace(a,"").trim();if(l.includes("/"))o[t]=l.split("/").map((e=>parseInt(e)));else{let e=parseInt(l);o[t]=[isNaN(e)?0:e]}for(;o[t].length<3;)o[t].unshift(0)})),o[1]&&"{}"===r?[...c(o[0]),l??r].concat(...c(o[1])):0===o.length?[0,0,0,r]:[...c(o[0]),l??r]}function m(e,t,l){null!==t&&(l[t]=parseInt(e));let n=l[3],a=l.slice(0,3);if(a=c(a),"{}"!==n)return`${a[0]}/${a[1]}/${a[2]}${n}`;let i=isNaN(parseInt(l[l.length-1]))&&null===t?[0,0,0]:l.slice(-3);return i=c(i),`${a[0]}/${a[1]}/${a[2]}${n}${i[0]}/${i[1]}/${i[2]}`}function f(e,t,l){let n=e?.split(";").map((e=>parseInt(e)))??[];return l.filter((e=>n.includes(e.id)))}function g(e,t){let l=e.map((e=>e.id));return 0===l.length?null:l.join(";")+t}function h(e,t){let l=e,n=t.slice().reverse().find((e=>l?.endsWith(e)));return i(n&&void 0!==l?l.slice(0,-n.length):l??"","decimal")}function b(t){return e.createElement("input",{className:"form-control input-filter-field",disabled:t.disabled,id:(t.id??"input-filter")+"-text",name:(t.name??"input-filter")+"-text",placeholder:t.placeholder,value:d(t.value,t.options)??"",onChange:e=>t.onChange(e.target.value+t.select)})}function N(t){let l=p(t.value,t.options,t.select);function n(e){"{}"===t.select&&"0/0/0{}0/0/0"===e?t.onChange(null):0!=l[0]&&!isNaN(l[0])||0!=l[1]&&!isNaN(l[1])||0!=l[2]&&!isNaN(l[2])?t.onChange(e):t.onChange(null)}return e.createElement("div",{className:"d-flex w-100 flex-column"},e.createElement("div",{className:"w-100 d-flex gap-2"},l.map(((a,i)=>{if(i<=2)return e.createElement("input",{className:"form-control input-filter-field-date"+(2==i?" year":""),disabled:t.disabled,id:(t.id??"input-filter")+"-"+i,key:i,name:(t.name??"input-filter")+"-"+i,placeholder:t.placeholder,value:0===a?"":a,onChange:e=>n(m(e.target.value,i,l))})}))),"{}"===t.select&&l.length>4&&e.createElement("div",{className:"w-100 d-flex gap-2 mt-2"},l.map(((a,i)=>{if(i>=4)return e.createElement("input",{className:"form-control input-filter-field-date"+(6==i?" year":""),disabled:t.disabled,id:(t.id??"input-filter")+"-"+i,key:i,name:(t.name??"input-filter")+"-"+i,placeholder:t.placeholder,value:0===a?"":a,onChange:e=>n(m(e.target.value,i,l))})}))))}const v=({iconPrefix:t="bi bi-",...l})=>l.label&&e.createElement("p",{className:"form-label"},l.icon&&e.createElement("i",{className:t+l.icon+" me-1"}),l.label,l.required&&e.createElement("span",{className:"text-danger"},"*"));function y(t){return e.createElement("input",{className:"form-control input-filter-field",disabled:t.disabled,id:(t.id??"input-filter")+"-number",name:(t.name??"input-filter")+"-number",placeholder:t.placeholder,value:h(t.value,t.options??""),onChange:e=>t.onChange(i(e.target.value,"decimal")+t.select)})}function E(t){const n=f(t.value,t.options,t.data);return e.createElement(l.AutoComplete,{multiple:!0,completeMethod:e=>{let l=n.map((e=>e.id));t.onSearch(e.query,l)},appendTo:"self",className:"w-100",disabled:t.disabled,emptyMessage:"Não encontramos dados.",field:"label",id:(t.id??"input-filter")+"-autocomplete",inputClassName:"form-control",name:(t.name??"input-filter")+"-autocomplete",panelClassName:"input-filter-autocomplete-panel",placeholder:t.placeholder,required:t.required,scrollHeight:t.autocompleteScrollHeight,selectionLimit:t.autocompleteSelectLimit,suggestions:t.data,value:n,onChange:e=>t.onChange(g(e.value,t.select))})}exports.InputFilter=function({...l}){const n=(l.options??r).sort(((e,t)=>e.length-t.length)),a=o.filter((e=>n?.includes(e.options))),[i,s]=e.useState(function(e,t){let l=t.filter((t=>e?.includes(t)));return l[l.length-1]??t[0]}(l.value,n));return e.useEffect((()=>{if(l.type&&"text"!==l.type){if("date"===l.type){let e=p(l.value,n,i),t=m("0",null,e);"{}"===i&&"0/0/0{}0/0/0"===t||0==e[0]&&0==e[1]&&0==e[2]?l.onChange(null):l.onChange(t)}else if("autocomplete"===l.type){let e=f(l.value,0,l.data);l.onChange(g(e,i))}else if("number"===l.type){let e=h(l.value,n);""!==e?l.onChange(e+i):l.onChange(null)}}else{let e=d(l.value,n);null!==e?l.onChange(e+i):l.onChange(null)}}),[i]),e.createElement(u,{...l,className:t.classNames([l.className,"input-filter-container"])},e.createElement(v,{...l}),e.createElement("div",{className:"input-filter-content",id:l.id??"input-filter"},e.createElement("select",{className:"form-select input-filter-select",disabled:l.disabled,id:(l.id??"input-filter")+"-select",name:(l.name??"input-filter")+"-select",value:i,onChange:e=>s(e.target.value)},a?.map((t=>e.createElement("option",{key:t.options,value:t.options},t.label)))),(!l.type||"text"===l.type)&&e.createElement(b,{...l,options:n,select:i}),"date"===l.type&&e.createElement(N,{...l,options:n,select:i}),"autocomplete"===l.type&&e.createElement(E,{...l,options:n,select:i}),"number"===l.type&&e.createElement(y,{...l,options:n,select:i})))},exports.filterLegend=s,exports.filterLegendAutocomplete=function(e,t=[],l=30){let n=s(e);if(null===n||0===t.length)return"Não encontramos legenda definida.";let a=e?.split(";").map((e=>parseInt(e)))??[],i=t.filter((e=>a.includes(e.id))).map((e=>e.label)).join(", "),r=i.substring(0,l);return n+": "+r+(r.length!==i.length?"...":"")},exports.filterLegendData=function(e){let t=s(e);if(null===t)return"Não encontramos legenda definida.";let l=e?.split("{}"),n=e?.split("/");const i=e=>{let t=parseInt(e[0]),l=parseInt(e[1],10),n=parseInt(e[2]);return`\n ${t>0?`${0==l?"dia":""} ${t}`:""} \n ${l>0?`${t>0?"de":""} ${a[l-1]?.name}`:""} \n ${n>0?`${t>0||l>0?"de":""} ${n}`:""}\n `.replace(/\s+/g," ").trim()};return t+": "+(void 0===l?.[1]?i(n):i(l[0].split("/"))+" à "+i(l[1].split("/")))},exports.filterLegendText=function(e){let t=s(e);return null===t?"Não encontramos legenda definida.":t+": "+(e?.replace(/(=|!=|<|>|<=|>=|%|!%|\{\})/g,"")??"")};
1
+ "use strict";require("jquery"),require("axios"),require("node-snackbar"),require("sweetalert2");var e=require("react"),t=require("primereact/utils"),l=require("primereact/autocomplete");function n(e){let t=document.getElementById(e),l=null===t?null:t.content.replace(".br/",".br");return null===l?null:"/"===l.substr(-1)?l.slice(0,l.length-1):l}n("auth"),n("react-base"),n("csrf-token");const a=[{id:1,name:"Janeiro"},{id:2,name:"Fevereiro"},{id:3,name:"Março"},{id:4,name:"Abril"},{id:5,name:"Maio"},{id:6,name:"Junho"},{id:7,name:"Julho"},{id:8,name:"Agosto"},{id:9,name:"Setembro"},{id:10,name:"Outubro"},{id:11,name:"Novembro"},{id:12,name:"Dezembro"}];function i(e,t="decimal",l=2){let n=e.replace(/[^0-9.,]/g,"");return"decimal"===t?n.length>0?parseFloat(n.replace(",",".").replace(/(\..*)\./g,"$1")).toFixed(l):"":parseFloat(n.replace(",",".")).toLocaleString("pt-BR",{style:"currency",currency:"BRL"}).replace("."," ")}const r=["=","!=","%","!%"],o=[{options:"=",label:"Igual a"},{options:"!=",label:"Diferente de"},{options:"<",label:"Menor do que"},{options:">",label:"Maior do que"},{options:"<=",label:"Menor ou igual a"},{options:">=",label:"Maior ou igual a"},{options:"{}",label:"Intervalo"},{options:"%",label:"Contém o que"},{options:"!%",label:"Não contém o que"}];function s(e){if(!e)return null;let t=e?.match(/(=|!=|<|>|<=|>=|%|!%|\{\})/),l=e.charAt(e.length-1),n=t?.[0];return t?.[0]!==l&&isNaN(parseInt(l))&&n?.slice(-1)!==l&&(n=t?.[0]+l),o.filter((e=>e.options===n))[0]?.label??null}const u=({children:l,...n})=>{const a={size:`box-size-${n.size??"100"}`,direction:`box-direction-${n.direction??"row"}`,justify:void 0===n.justify?"":Array.isArray(n.justify)?n.justify?.join(" "):n.justify,align:void 0===n.align?"":Array.isArray(n.align)?n.align?.join(" "):n.align},i={className:t.classNames(["box",n.className??"",a.size,a.direction,a.justify,a.align]),style:n.css,id:n.id};return e.createElement("div",{...i},l)};function c(e){const[t,l,n]=e,a=l>=1&&l<=12,i=n>0&&n<99999,r=t>=1&&t<=31;if(i&&!a&&!r)return[0,0,n];if(i&&a&&!r)return[0,l,n];if(i&&a&&r){let a=new Date(n,l,0);return a.getDate()<t?[a.getDate(),l,n]:e}return i||!a||r?!i&&a&&r?[t,l,0]:i||a||!r?i&&!a&&r?[t,0,n]:[0,0,0]:[t,0,0]:[0,l,0]}function d(e,t){let l=e,n=t.slice().reverse().find((e=>l?.endsWith(e)));return n&&void 0!==l?l.slice(0,-n.length):l??null}function p(e,t,l=null){let n=e,a=/(=|!=|<|>|<=|>=|\{\})/,i=e?.match(a),r=i?i[0].trim():t[0],o=[];return(n?.split("{}")??[]).forEach(((e,t)=>{let l=e.replace(a,"").trim();if(l.includes("/"))o[t]=l.split("/").map((e=>parseInt(e)));else{let e=parseInt(l);o[t]=[isNaN(e)?0:e]}for(;o[t].length<3;)o[t].unshift(0)})),o[1]&&"{}"===r?[...c(o[0]),l??r].concat(...c(o[1])):0===o.length?[0,0,0,r]:[...c(o[0]),l??r]}function m(e,t,l){null!==t&&(l[t]=parseInt(e));let n=l[3],a=l.slice(0,3);if(a=c(a),"{}"!==n)return`${a[0]}/${a[1]}/${a[2]}${n}`;let i=isNaN(parseInt(l[l.length-1]))&&null===t?[0,0,0]:l.slice(-3);return i=c(i),`${a[0]}/${a[1]}/${a[2]}${n}${i[0]}/${i[1]}/${i[2]}`}function f(e,t,l){let n=e?.split(";").map((e=>parseInt(e)))??[];return l.filter((e=>n.includes(e.id)))}function g(e,t){let l=e.map((e=>e.id));return 0===l.length?null:l.join(";")+t}function h(e,t){let l=e,n=t.slice().reverse().find((e=>l?.endsWith(e)));return i(n&&void 0!==l?l.slice(0,-n.length):l??"","decimal",0)}function b(t){return e.createElement("input",{className:"form-control input-filter-field",disabled:t.disabled,id:(t.id??"input-filter")+"-text",name:(t.name??"input-filter")+"-text",placeholder:t.placeholder,value:d(t.value,t.options)??"",onChange:e=>t.onChange(e.target.value+t.select)})}function N(t){let l=p(t.value,t.options,t.select);function n(e){"{}"===t.select&&"0/0/0{}0/0/0"===e?t.onChange(null):0!=l[0]&&!isNaN(l[0])||0!=l[1]&&!isNaN(l[1])||0!=l[2]&&!isNaN(l[2])?t.onChange(e):t.onChange(null)}return e.createElement("div",{className:"d-flex w-100 flex-column"},e.createElement("div",{className:"w-100 d-flex gap-2"},l.map(((a,i)=>{if(i<=2)return e.createElement("input",{className:"form-control input-filter-field-date"+(2==i?" year":""),disabled:t.disabled,id:(t.id??"input-filter")+"-"+i,key:i,name:(t.name??"input-filter")+"-"+i,placeholder:t.placeholder,value:0===a?"":a,onChange:e=>n(m(e.target.value,i,l))})}))),"{}"===t.select&&l.length>4&&e.createElement("div",{className:"w-100 d-flex gap-2 mt-2"},l.map(((a,i)=>{if(i>=4)return e.createElement("input",{className:"form-control input-filter-field-date"+(6==i?" year":""),disabled:t.disabled,id:(t.id??"input-filter")+"-"+i,key:i,name:(t.name??"input-filter")+"-"+i,placeholder:t.placeholder,value:0===a?"":a,onChange:e=>n(m(e.target.value,i,l))})}))))}const v=({iconPrefix:t="bi bi-",...l})=>l.label&&e.createElement("p",{className:"form-label"},l.icon&&e.createElement("i",{className:t+l.icon+" me-1"}),l.label,l.required&&e.createElement("span",{className:"text-danger"},"*"));function y(t){return e.createElement("input",{className:"form-control input-filter-field",disabled:t.disabled,id:(t.id??"input-filter")+"-number",name:(t.name??"input-filter")+"-number",placeholder:t.placeholder,value:h(t.value,t.options??""),onChange:e=>t.onChange(i(e.target.value,"decimal",0)+t.select)})}function E(t){const n=f(t.value,t.options,t.data);return e.createElement(l.AutoComplete,{multiple:!0,completeMethod:e=>{let l=n.map((e=>e.id));t.onSearch(e.query,l)},appendTo:"self",className:"w-100",disabled:t.disabled,emptyMessage:"Não encontramos dados.",field:"label",id:(t.id??"input-filter")+"-autocomplete",inputClassName:"form-control",name:(t.name??"input-filter")+"-autocomplete",panelClassName:"input-filter-autocomplete-panel",placeholder:t.placeholder,required:t.required,scrollHeight:t.autocompleteScrollHeight,selectionLimit:t.autocompleteSelectLimit,suggestions:t.data,value:n,onChange:e=>t.onChange(g(e.value,t.select))})}exports.InputFilter=function({...l}){const n=(l.options??r).sort(((e,t)=>e.length-t.length)),a=o.filter((e=>n?.includes(e.options))),[i,s]=e.useState(function(e,t){let l=t.filter((t=>e?.includes(t)));return l[l.length-1]??t[0]}(l.value,n));return e.useEffect((()=>{if(l.type&&"text"!==l.type){if("date"===l.type){let e=p(l.value,n,i),t=m("0",null,e);"{}"===i&&"0/0/0{}0/0/0"===t||0==e[0]&&0==e[1]&&0==e[2]?l.onChange(null):l.onChange(t)}else if("autocomplete"===l.type){let e=f(l.value,0,l.data);l.onChange(g(e,i))}else if("number"===l.type){let e=h(l.value,n);""!==e?l.onChange(e+i):l.onChange(null)}}else{let e=d(l.value,n);null!==e?l.onChange(e+i):l.onChange(null)}}),[i]),e.createElement(u,{...l,className:t.classNames([l.className,"input-filter-container"])},e.createElement(v,{...l}),e.createElement("div",{className:"input-filter-content",id:l.id??"input-filter"},e.createElement("select",{className:"form-select input-filter-select",disabled:l.disabled,id:(l.id??"input-filter")+"-select",name:(l.name??"input-filter")+"-select",value:i,onChange:e=>s(e.target.value)},a?.map((t=>e.createElement("option",{key:t.options,value:t.options},t.label)))),(!l.type||"text"===l.type)&&e.createElement(b,{...l,options:n,select:i}),"date"===l.type&&e.createElement(N,{...l,options:n,select:i}),"autocomplete"===l.type&&e.createElement(E,{...l,options:n,select:i}),"number"===l.type&&e.createElement(y,{...l,options:n,select:i})))},exports.filterLegend=s,exports.filterLegendAutocomplete=function(e,t=[],l=30){let n=s(e);if(null===n||0===t.length)return"Não encontramos legenda definida.";let a=e?.split(";").map((e=>parseInt(e)))??[],i=t.filter((e=>a.includes(e.id))).map((e=>e.label)).join(", "),r=i.substring(0,l);return n+": "+r+(r.length!==i.length?"...":"")},exports.filterLegendData=function(e){let t=s(e);if(null===t)return"Não encontramos legenda definida.";let l=e?.split("{}"),n=e?.split("/");const i=e=>{let t=parseInt(e[0]),l=parseInt(e[1],10),n=parseInt(e[2]);return`\n ${t>0?`${0==l?"dia":""} ${t}`:""} \n ${l>0?`${t>0?"de":""} ${a[l-1]?.name}`:""} \n ${n>0?`${t>0||l>0?"de":""} ${n}`:""}\n `.replace(/\s+/g," ").trim()};return t+": "+(void 0===l?.[1]?i(n):i(l[0].split("/"))+" à "+i(l[1].split("/")))},exports.filterLegendText=function(e){let t=s(e);return null===t?"Não encontramos legenda definida.":t+": "+(e?.replace(/(=|!=|<|>|<=|>=|%|!%|\{\})/g,"")??"")};
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/utils/helper.ts","../../src/utils/const.ts","../../src/utils/handle.ts","../../src/inputfilter/const.ts","../../src/inputfilter/legend.ts","../../src/box/box.tsx","../../src/inputfilter/function/validate.ts","../../src/inputfilter/function/handle.ts","../../src/inputfilter/core/text.tsx","../../src/inputfilter/core/date.tsx","../../src/api/input.tsx","../../src/inputfilter/core/number.tsx","../../src/inputfilter/core/autocomplete.tsx","../../src/inputfilter/inputfilter.tsx"],"sourcesContent":["import $ from \"jquery\";\r\nimport axios from \"axios\";\r\nimport { message } from \"./message\";\r\nimport { IUtilsHelperResponse } from \"./types\";\r\n\r\n/**\r\n * Realiza a pesquisa do elemento html na DOM<br>\r\n * <meta id=\"???\" name=\"???\" content=\"your-url\">\r\n */\r\nexport function getMetaContent(id: string): string | null {\r\n let element: any = document.getElementById(id);\r\n let url: null | string = element === null ? null : (element.content).replace(\".br/\", \".br\");\r\n return url === null ? null : url.substr(-1) === \"/\" ? url.slice(0, url.length - 1) : url;\r\n}\r\n\r\n/**\r\n * Realiza a pesquisa do CEP na API pública \"https://viacep.com.br/ws/\"\r\n */\r\nexport async function getCep(value: string): Promise<IUtilsHelperResponse[\"gep_cep\"]> {\r\n let cep = value.length === 0 ? \"00000000\" : value.replace(\"-\", \"\");\r\n return await axios.get<IUtilsHelperResponse[\"gep_cep\"]>(\"https://viacep.com.br/ws/\" + cep + \"/json/\")\r\n .then(data => data.data);\r\n}\r\n\r\n/**\r\n * Realiza a pesquisa do elemento na árvore DOM\r\n */\r\nexport function getElementDOM(element?: string, preloadTimeOut?: number): Promise<null | JQuery<HTMLElement>> {\r\n return new Promise((resolve) => {\r\n // @ts-ignore\r\n let body = window.self === window.top ? $(\"body\") : $(window.frameElement).parents(\"body\");\r\n if (!element || element.length === 0) {\r\n resolve(body);\r\n }\r\n\r\n if (element === \"#\" || element === \".\") {\r\n resolve(null);\r\n }\r\n\r\n let elementFound = body.find(element);\r\n if (elementFound.length > 0) {\r\n resolve(elementFound);\r\n } else {\r\n setTimeout(() => {\r\n let iframe = body.find(\"iframe\").contents();\r\n if (iframe.length === 0) {\r\n resolve(null);\r\n }\r\n elementFound = iframe.find(element);\r\n if (elementFound.length > 0) {\r\n resolve(elementFound);\r\n }\r\n resolve(null);\r\n }, preloadTimeOut ?? 300);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Permite à comunicação de origem cruzada entre objetos do Windows.<br>\r\n * Exemplo: Comunicação entre iframe e corpo principal\r\n */\r\nexport function windowMessageEvent(): void {\r\n window.addEventListener(\"message\", function (event: MessageEvent) {\r\n if (event.data?.type === \"message\") {\r\n let data = event.data;\r\n message<any>({ ...data.params });\r\n }\r\n });\r\n}","import { getMetaContent } from \"./helper\";\r\n\r\nexport const USER: string | null = getMetaContent(\"auth\");\r\nexport const BASE: string | null = getMetaContent(\"react-base\");\r\nexport const TOKEN: string | null = getMetaContent(\"csrf-token\");\r\n\r\nexport const MES: Array<{ id: number, name: string }> = [\r\n { id: 1, name: \"Janeiro\" },\r\n { id: 2, name: \"Fevereiro\" },\r\n { id: 3, name: \"Março\" },\r\n { id: 4, name: \"Abril\" },\r\n { id: 5, name: \"Maio\" },\r\n { id: 6, name: \"Junho\" },\r\n { id: 7, name: \"Julho\" },\r\n { id: 8, name: \"Agosto\" },\r\n { id: 9, name: \"Setembro\" },\r\n { id: 10, name: \"Outubro\" },\r\n { id: 11, name: \"Novembro\" },\r\n { id: 12, name: \"Dezembro\" },\r\n];\r\n\r\nexport const ESTADOS: Array<{ id: string, name: string }> = [\r\n { name: \"Acre\", id: \"AC\" },\r\n { name: \"Alagoas\", id: \"AL\" },\r\n { name: \"Amapá\", id: \"AP\" },\r\n { name: \"Amazonas\", id: \"AM\" },\r\n { name: \"Bahia\", id: \"BA\" },\r\n { name: \"Ceará\", id: \"CE\" },\r\n { name: \"Distrito Federal\", id: \"DF\" },\r\n { name: \"Espírito Santo\", id: \"ES\" },\r\n { name: \"Goiás\", id: \"GO\" },\r\n { name: \"Maranhão\", id: \"MA\" },\r\n { name: \"Mato Grosso\", id: \"MT\" },\r\n { name: \"Mato Grosso do Sul\", id: \"MS\" },\r\n { name: \"Minas Gerais\", id: \"MG\" },\r\n { name: \"Pará\", id: \"PA\" },\r\n { name: \"Paraíba\", id: \"PB\" },\r\n { name: \"Paraná\", id: \"PR\" },\r\n { name: \"Pernambuco\", id: \"PE\" },\r\n { name: \"Piauí\", id: \"PI\" },\r\n { name: \"Rio de Janeiro\", id: \"RJ\" },\r\n { name: \"Rio Grande do Norte\", id: \"RN\" },\r\n { name: \"Rio Grande do Sul\", id: \"RS\" },\r\n { name: \"Rondônia\", id: \"RO\" },\r\n { name: \"Roraima\", id: \"RR\" },\r\n { name: \"Santa Catarina\", id: \"SC\" },\r\n { name: \"São Paulo\", id: \"SP\" },\r\n { name: \"Sergipe\", id: \"SE\" },\r\n { name: \"Tocantins\", id: \"TO\" }\r\n];","/**\r\n * Formata um valor numérico para o formato decimal ou monetário.\r\n *\r\n * @param valor - O valor a ser formatado.\r\n * @param format - O formato desejado: \"money\" para monetário ou \"decimal\" para decimal.\r\n * @returns O valor formatado como string.\r\n */\r\nexport function handleNumber(\r\n valor: string,\r\n format: \"money\" | \"decimal\" = \"decimal\"\r\n): string {\r\n let value = valor.replace(/[^0-9.,]/g, \"\");\r\n if (format === \"decimal\") {\r\n return value.replace(\",\", \".\").replace(/(\\..*)\\./g, \"$1\");\r\n }\r\n return parseFloat(value.replace(\",\", \".\")).toLocaleString(\"pt-BR\", {\r\n style: \"currency\",\r\n currency: \"BRL\"\r\n }).replace(\".\", \" \");\r\n}\r\n\r\n/**\r\n * Formata um valor de string para o formato de horas (HH:MM).\r\n *\r\n * @param valor - O valor a ser formatado.\r\n * @returns O valor formatado como string no formato de horas.\r\n */\r\nexport function handleHours(valor: string): string {\r\n let value = valor.replace(/[^\\d.]/g, \"\");\r\n const parts = value.split(\".\");\r\n\r\n if (parts.length > 1) {\r\n parts[1] = parts[1].substring(0, 2);\r\n }\r\n\r\n value = parts.join(\".\");\r\n if (value.length > 2) {\r\n value = value.substring(0, value.length - 2) + \":\" + value.substring(value.length - 2);\r\n }\r\n return value;\r\n}","import { InputFilterOptionsMap, InputFilterOptionsProps } from \"./types\";\r\n\r\nexport const optionsDefault: Array<InputFilterOptionsMap[\"text\"]> = [\"=\", \"!=\", \"%\", \"!%\"];\r\n\r\nexport const optionsLabel: Array<{\r\n options: InputFilterOptionsProps,\r\n label: string\r\n}> = [\r\n { options: \"=\", label: \"Igual a\" },\r\n { options: \"!=\", label: \"Diferente de\" },\r\n { options: \"<\", label: \"Menor do que\" },\r\n { options: \">\", label: \"Maior do que\" },\r\n { options: \"<=\", label: \"Menor ou igual a\" },\r\n { options: \">=\", label: \"Maior ou igual a\" },\r\n { options: \"{}\", label: \"Intervalo\" },\r\n { options: \"%\", label: \"Contém o que\" },\r\n { options: \"!%\", label: \"Não contém o que\" },\r\n];","import { MES } from \"../utils\";\r\nimport { optionsLabel } from \"./const\";\r\n\r\n/**\r\n * Retorna a legenda de acordo com operador na string\r\n * @param value - Valor a ser tratado\r\n */\r\nexport function filterLegend(value: string | undefined): string | null {\r\n if (!value) {\r\n return null;\r\n }\r\n let optsRegex = /(=|!=|<|>|<=|>=|%|!%|\\{\\})/;\r\n let optsMatch = value?.match(optsRegex);\r\n let opts = value.charAt(value.length - 1);\r\n let option = optsMatch?.[0];\r\n\r\n if (optsMatch?.[0] !== opts && isNaN(parseInt(opts)) && option?.slice(-1) !== opts) {\r\n option = optsMatch?.[0] + opts;\r\n }\r\n return optionsLabel.filter(item => item.options === option)[0]?.label ?? null;\r\n}\r\n\r\n/**\r\n * Realiza o tratamento das informações para retorna a legenda do tipo `Date`\r\n * @param value - Valor a ser tratado\r\n */\r\nexport function filterLegendData(value: string | undefined): string {\r\n let legend = filterLegend(value);\r\n if (legend === null) {\r\n return \"Não encontramos legenda definida.\";\r\n }\r\n\r\n let interval = value?.split(\"{}\");\r\n let date = value?.split(\"/\");\r\n\r\n const handleLegend = (date: any): string => {\r\n let dia = parseInt(date[0]);\r\n let mes = parseInt(date[1], 10);\r\n let ano = parseInt(date[2]);\r\n\r\n return `\r\n ${(dia > 0 ? `${mes == 0 ? \"dia\" : \"\"} ${dia}` : \"\")} \r\n ${mes > 0 ? `${dia > 0 ? \"de\" : \"\"} ${MES[mes - 1]?.name}` : \"\"} \r\n ${ano > 0 ? `${dia > 0 || mes > 0 ? \"de\" : \"\"} ${ano}` : \"\"}\r\n `.replace(/\\s+/g, \" \").trim();\r\n };\r\n let result = interval?.[1] === undefined\r\n ? handleLegend(date)\r\n : handleLegend(interval[0].split(\"/\")) + \" à \" + handleLegend(interval[1].split(\"/\"));\r\n return legend + \": \" + result;\r\n}\r\n\r\n/**\r\n * Realiza o tratamento das informações para retorna a legenda do tipo `Text`\r\n * @param value - Valor a ser tratado\r\n */\r\nexport function filterLegendText(value: string | undefined): string {\r\n let legend = filterLegend(value);\r\n if (legend === null) {\r\n return \"Não encontramos legenda definida.\";\r\n }\r\n return legend + \": \" + (value?.replace(/(=|!=|<|>|<=|>=|%|!%|\\{\\})/g, \"\") ?? \"\");\r\n}\r\n\r\n/**\r\n * Realiza o tratamento das informações para retorna a legando do tipo `autocomplete`\r\n * @param value - Valor a ser tratado\r\n * @param dto - Array de objeto para ser pesquisado a legenda\r\n * @param word - Limite de palavras para a legenda\r\n */\r\nexport function filterLegendAutocomplete(value: string | undefined, dto: any[] = [], word: number = 30): string {\r\n let legend = filterLegend(value);\r\n if (legend === null || dto.length === 0) {\r\n return \"Não encontramos legenda definida.\";\r\n }\r\n let ids: any[] = value?.split(\";\").map(item => parseInt(item)) ?? [];\r\n let values = dto\r\n .filter(obj => ids.includes(obj.id))\r\n .map(item => item.label).join(\", \");\r\n let text = values.substring(0, word);\r\n return legend + \": \" + text + (text.length !== values.length ? \"...\" : \"\");\r\n}","import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};","/**\r\n * Valida e ajusta uma data fornecida como um array de números.\r\n *\r\n * @param date - Um array de números representando [dia, mês, ano].\r\n * @returns Um array de números representando a data validada e ajustada.\r\n */\r\nexport function validateDate(date: number[]): number[] {\r\n const [day, month, year] = date;\r\n\r\n const isMonthValid = month >= 1 && month <= 12;\r\n const isYearValid = year > 0 && year < 99999;\r\n const isDayValid = day >= 1 && day <= 31;\r\n\r\n if (isYearValid && !isMonthValid && !isDayValid) {\r\n return [0, 0, year];\r\n }\r\n\r\n if (isYearValid && isMonthValid && !isDayValid) {\r\n return [0, month, year];\r\n }\r\n\r\n if (isYearValid && isMonthValid && isDayValid) {\r\n let currentDate = new Date(year, month, 0);\r\n if (currentDate.getDate() < day) {\r\n return [currentDate.getDate(), month, year];\r\n }\r\n return date;\r\n }\r\n\r\n if (!isYearValid && isMonthValid && !isDayValid) {\r\n return [0, month, 0];\r\n }\r\n\r\n if (!isYearValid && isMonthValid && isDayValid) {\r\n return [day, month, 0];\r\n }\r\n\r\n if (!isYearValid && !isMonthValid && isDayValid) {\r\n return [day, 0, 0];\r\n }\r\n\r\n if (isYearValid && !isMonthValid && isDayValid) {\r\n return [day, 0, year];\r\n }\r\n\r\n return [0, 0, 0];\r\n}","import { validateDate } from \"./validate\";\r\nimport { handleNumber } from \"../../utils\";\r\nimport { InputFilterOptionsMap } from \"../types\";\r\n\r\n/**\r\n * Obtém a opção de filtro correspondente ao valor fornecido.\r\n *\r\n * @param value - O valor para buscar uma opção correspondente.\r\n * @param options - Um array de opções de filtro disponíveis.\r\n * @returns A opção de filtro correspondente ou a primeira opção se nenhuma correspondência for encontrada.\r\n */\r\nexport function handleGetOption<T extends keyof InputFilterOptionsMap>(\r\n value: string | undefined,\r\n options: Array<InputFilterOptionsMap[T]>\r\n): string {\r\n let exists = options.filter(option => value?.includes(option));\r\n return exists[exists.length - 1] ?? options[0];\r\n}\r\n\r\n/**\r\n * Retorna apenas o valor sem os operadores filtro tipo `Text`.\r\n *\r\n * @param value - O valor completo, incluindo a opção de filtro.\r\n * @param options - Um array de opções de filtro disponíveis.\r\n * @returns O valor sem as opções de filtro.\r\n */\r\nexport function handleGetValueText(\r\n value: string | undefined,\r\n options: Array<InputFilterOptionsMap[\"text\"]>\r\n): string | null {\r\n let str = value;\r\n let exists = options\r\n .slice()\r\n .reverse()\r\n .find(item => str?.endsWith(item));\r\n if (exists && str !== undefined) {\r\n return str.slice(0, -exists.length);\r\n }\r\n return str ?? null;\r\n}\r\n\r\n/**\r\n * Retorna apenas o valor sem os operadores filtro tipo `Date`.\r\n *\r\n * @param value - O valor completo, incluindo a opção de filtro.\r\n * @param options - Um array de opções de filtro disponíveis.\r\n * @param select - Seletor do tipo de filtro\r\n * @returns O valor sem as opções de filtro.\r\n */\r\nexport function handleGetValueDate(\r\n value: string | undefined,\r\n options: Array<InputFilterOptionsMap[\"date\"]>,\r\n select: null | string = null\r\n): Array<number | string> {\r\n let str = value;\r\n let optsRegex = /(=|!=|<|>|<=|>=|\\{\\})/;\r\n let optsMatch = value?.match(optsRegex);\r\n let opts = optsMatch ? optsMatch[0].trim() : options[0];\r\n\r\n let parts: any[] = [];\r\n let interval = str?.split(\"{}\") ?? [];\r\n\r\n interval.forEach((value, index) => {\r\n let clean = value.replace(optsRegex, \"\").trim();\r\n\r\n if (clean.includes(\"/\")) {\r\n parts[index] = clean.split(\"/\").map(item => parseInt(item));\r\n } else {\r\n let number = parseInt(clean);\r\n parts[index] = [isNaN(number) ? 0 : number];\r\n }\r\n\r\n while (parts[index].length < 3) {\r\n parts[index].unshift(0);\r\n }\r\n });\r\n\r\n if (parts[1] && opts === \"{}\") {\r\n return [...validateDate(parts[0]), select ?? opts].concat(...validateDate(parts[1]));\r\n }\r\n return parts.length === 0\r\n ? [0, 0, 0, opts]\r\n : [...validateDate(parts[0]), select ?? opts];\r\n}\r\n\r\n/**\r\n * Atualiza um valor de data em uma posição específica e retorna a data formatada.\r\n *\r\n * @param value - O novo valor a ser inserido na data\r\n * @param position - A posição do valor a ser atualizado (0 para dia, 1 para mês, 2 para ano)\r\n * @param date - O array da data atual, incluindo as opções\r\n * @returns A data atualizada e formatada como string\r\n */\r\nexport function handleSetValueDate(\r\n value: string,\r\n position: number | null,\r\n date: (number | string)[]\r\n): string {\r\n if (position !== null) {\r\n date[position] = parseInt(value);\r\n }\r\n\r\n let opts = date[3];\r\n let firstDate = date.slice(0, 3);\r\n firstDate = validateDate(firstDate as number[]);\r\n\r\n if (opts !== \"{}\") {\r\n return `${firstDate[0]}/${firstDate[1]}/${firstDate[2]}${opts}`;\r\n }\r\n\r\n let lastDate = isNaN(parseInt(date[date.length - 1] as string)) && position === null\r\n ? [0, 0, 0]\r\n : date.slice(-3);\r\n lastDate = validateDate(lastDate as number[]);\r\n return `${firstDate[0]}/${firstDate[1]}/${firstDate[2]}${opts}${lastDate[0]}/${lastDate[1]}/${lastDate[2]}`;\r\n}\r\n\r\n/**\r\n * Obtém os valores selecionados do autocomplete a partir da string de valor e dos dados disponíveis.\r\n *\r\n * @param value - String contendo os IDs dos itens selecionados, separados por ponto e vírgula.\r\n * @param options - Array de opções de filtro disponíveis para o autocomplete.\r\n * @param data - Array de objetos contendo os dados disponíveis para seleção.\r\n * @returns Array de objetos correspondentes aos IDs selecionados.\r\n */\r\nexport function handleGetValueAutocomplete(\r\n value: string | undefined,\r\n options: Array<InputFilterOptionsMap[\"autocomplete\"]>,\r\n data: Array<{ id: number, label: string }>\r\n) {\r\n let values: any[] = value?.split(\";\").map(item => parseInt(item)) ?? [];\r\n return data.filter(item => values.includes(item.id));\r\n}\r\n\r\n/**\r\n * Converte os valores selecionados do autocomplete em uma string formatada para o filtro.\r\n *\r\n * @param value - Array de objetos selecionados no autocomplete.\r\n * @param select - String representando a opção de filtro selecionada.\r\n * @returns String formatada com os IDs dos itens selecionados e a opção de filtro.\r\n */\r\nexport function handleSetValueAutocomplete(\r\n value: Array<{ id: number, label: string }>,\r\n select: string,\r\n): string | null {\r\n let ids = value.map(item => item.id);\r\n return ids.length === 0 ? null : ids.join(\";\") + select;\r\n}\r\n\r\n/**\r\n * Retorna apenas o valor sem os operadores filtro tipo `Number`.\r\n *\r\n * @param value - O valor completo, incluindo a opção de filtro.\r\n * @param options - Um array de opções de filtro disponíveis.\r\n * @returns O valor sem as opções de filtro.\r\n */\r\nexport function handleGetValueNumber(\r\n value: string | undefined,\r\n options: Array<InputFilterOptionsMap[\"text\"]>\r\n): string {\r\n let str = value;\r\n let exists = options\r\n .slice()\r\n .reverse()\r\n .find(item => str?.endsWith(item));\r\n if (exists && str !== undefined) {\r\n return handleNumber(str.slice(0, -exists.length), \"decimal\");\r\n }\r\n return handleNumber(str ?? \"\", \"decimal\");\r\n}","import React from \"react\";\r\nimport { handleGetValueText } from \"../function/handle\";\r\nimport { InputFilterCoreProps, InputFilterOptionsMap } from \"../types\";\r\n\r\n/**\r\n * Core - `Text`\r\n * Campo do filtro tipo texto\r\n */\r\nexport function Text<T extends keyof InputFilterOptionsMap>(props: InputFilterCoreProps<T>) {\r\n return (\r\n <input className=\"form-control input-filter-field\"\r\n disabled={props.disabled}\r\n id={(props.id ?? \"input-filter\") + \"-text\"}\r\n name={(props.name ?? \"input-filter\") + \"-text\"}\r\n placeholder={props.placeholder}\r\n value={handleGetValueText(props.value, props.options) ?? \"\"}\r\n onChange={event => props.onChange(event.target.value + props.select)}/>\r\n );\r\n}","import React from \"react\";\r\nimport { InputFilterCoreProps, InputFilterOptionsMap } from \"../types\";\r\nimport { handleGetValueDate, handleSetValueDate } from \"../function/handle\";\r\n\r\n/**\r\n * Core - `Date`\r\n * Campo do filtro tipo data\r\n */\r\nexport function Date<T extends keyof InputFilterOptionsMap>(props: InputFilterCoreProps<T>) {\r\n let date = handleGetValueDate(props.value, props.options, props.select);\r\n\r\n function handleChangeValue(value: string) {\r\n if (props.select === \"{}\" && value === \"0/0/0{}0/0/0\") {\r\n props.onChange(null);\r\n } else {\r\n if ((date[0] == 0 || isNaN(date[0] as number)) &&\r\n (date[1] == 0 || isNaN(date[1] as number)) &&\r\n (date[2] == 0 || isNaN(date[2] as number))) {\r\n props.onChange(null);\r\n } else {\r\n props.onChange(value);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <div className=\"d-flex w-100 flex-column\">\r\n <div className=\"w-100 d-flex gap-2\">\r\n {date.map((item, index) => {\r\n if (index <= 2) {\r\n return (\r\n <input className={\"form-control input-filter-field-date\" + (index == 2 ? \" year\" : \"\")}\r\n disabled={props.disabled}\r\n id={(props.id ?? \"input-filter\") + \"-\" + index}\r\n key={index}\r\n name={(props.name ?? \"input-filter\") + \"-\" + index}\r\n placeholder={props.placeholder}\r\n value={item === 0 ? \"\" : item}\r\n onChange={event => handleChangeValue(handleSetValueDate(event.target.value, index, date))}/>\r\n );\r\n }\r\n })}\r\n </div>\r\n {props.select === \"{}\" && date.length > 4\r\n && <div className=\"w-100 d-flex gap-2 mt-2\">\r\n {date.map((item, index) => {\r\n if (index >= 4) {\r\n return (\r\n <input className={\"form-control input-filter-field-date\" + (index == 6 ? \" year\" : \"\")}\r\n disabled={props.disabled}\r\n id={(props.id ?? \"input-filter\") + \"-\" + index}\r\n key={index}\r\n name={(props.name ?? \"input-filter\") + \"-\" + index}\r\n placeholder={props.placeholder}\r\n value={item === 0 ? \"\" : item}\r\n onChange={event => handleChangeValue(handleSetValueDate(event.target.value, index, date))}/>\r\n );\r\n }\r\n })}\r\n </div>}\r\n </div>\r\n );\r\n}","import React from \"react\";\r\nimport { ApiComponentProps, ApiFieldComponentProps } from \"./types\";\r\n\r\n/**\r\n * API - `InputLabel`\r\n *\r\n * Um componente utilizado como label em todos os componente de entrada de dados do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputLabel = ({ iconPrefix = \"bi bi-\", ...props }: ApiFieldComponentProps) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return props.label\r\n && <p className='form-label'>\r\n {props.icon && <i className={iconPrefix + props.icon + \" me-1\"}/>}\r\n {props.label}\r\n {props.required && <span className=\"text-danger\">*</span>}\r\n </p>;\r\n};\r\n\r\n/**\r\n * API - `InputFeedback`\r\n *\r\n * Um componente utilizado como container de feedback em todos os componente de entrada de dados do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputFeedback = ({ errors, name, ...props }: ApiFieldComponentProps & { errors?: any }) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return !props.mode || props.mode === \"Controlled\"\r\n ? <div data-name={name}\r\n id=\"j_feedback\"/>\r\n : <div className={(!errors[name ?? \"\"] ? \"\" : \"invalid-feedback is-invalid\")}\r\n data-name={name ?? \"\"}\r\n id=\"j_feedback\"\r\n style={{ display: errors[name ?? \"\"] ? \"block\" : \"none\" }}>{!errors[name ?? \"\"] ? \"\" : errors[name ?? \"\"].message}</div>;\r\n};\r\n\r\n/**\r\n * API - `InputProps`\r\n *\r\n * Retorna o objeto com as `Props` do core dos componentes de entrada de dados\r\n */\r\nexport function InputProps<T extends ApiComponentProps & ApiFieldComponentProps & { ref: any }>(props: T) {\r\n return {\r\n ref: props.ref,\r\n\r\n id: props.id,\r\n name: props.name,\r\n required: props.required,\r\n disabled: props.disabled,\r\n placeholder: props.placeholder,\r\n\r\n className: props.className,\r\n style: { width: \"100%\" },\r\n\r\n keyfilter: props.keyfilter,\r\n };\r\n}","import React from \"react\";\r\nimport { handleNumber } from \"../../utils\";\r\nimport { handleGetValueNumber } from \"../function/handle\";\r\nimport { InputFilterCoreProps, InputFilterOptionsMap } from \"../types\";\r\n\r\n/**\r\n * Core - `Number`\r\n * Campo do filtro tipo numero\r\n */\r\nexport function Number<T extends keyof InputFilterOptionsMap>(props: InputFilterCoreProps<T>) {\r\n return (\r\n <input className=\"form-control input-filter-field\"\r\n disabled={props.disabled}\r\n id={(props.id ?? \"input-filter\") + \"-number\"}\r\n name={(props.name ?? \"input-filter\") + \"-number\"}\r\n placeholder={props.placeholder}\r\n value={handleGetValueNumber(props.value, props.options ?? \"\")}\r\n onChange={event => props.onChange(handleNumber(event.target.value, \"decimal\") + props.select)}/>\r\n );\r\n}","import React from \"react\";\r\nimport { InputFilterCoreProps, InputFilterOptionsMap } from \"../types\";\r\nimport { AutoComplete as AutocompletePrimeReact } from \"primereact/autocomplete\";\r\nimport { handleGetValueAutocomplete, handleSetValueAutocomplete } from \"../function/handle\";\r\n\r\n/**\r\n * Core - `Autocomplete`\r\n * Campo do filtro tipo autocomplete\r\n */\r\nexport function Autocomplete<T extends keyof InputFilterOptionsMap>(props: InputFilterCoreProps<\"autocomplete\">) {\r\n const value = handleGetValueAutocomplete(props.value, props.options, props.data);\r\n\r\n return (\r\n <AutocompletePrimeReact multiple\r\n completeMethod={event => {\r\n let ids = value.map(item => item.id);\r\n props.onSearch(event.query, ids);\r\n }}\r\n appendTo=\"self\"\r\n className=\"w-100\"\r\n disabled={props.disabled}\r\n emptyMessage=\"Não encontramos dados.\"\r\n field=\"label\"\r\n id={(props.id ?? \"input-filter\") + \"-\" + \"autocomplete\"}\r\n inputClassName=\"form-control\"\r\n name={(props.name ?? \"input-filter\") + \"-\" + \"autocomplete\"}\r\n panelClassName=\"input-filter-autocomplete-panel\"\r\n placeholder={props.placeholder}\r\n required={props.required}\r\n scrollHeight={props.autocompleteScrollHeight}\r\n selectionLimit={props.autocompleteSelectLimit}\r\n suggestions={props.data}\r\n value={value}\r\n onChange={event => props.onChange(handleSetValueAutocomplete(event.value, props.select))}/>\r\n );\r\n}","import { Box } from \"../box\";\r\nimport { Text } from \"./core/text\";\r\nimport { Date } from \"./core/date\";\r\nimport { InputLabel } from \"../api\";\r\nimport { Number } from \"./core/number\";\r\nimport * as handle from \"./function/handle\";\r\nimport { classNames } from \"primereact/utils\";\r\nimport { Autocomplete } from \"./core/autocomplete\";\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { optionsDefault, optionsLabel } from \"./const\";\r\nimport { InputFilterOptionsMap, InputFilterProps } from \"./types\";\r\n\r\n/**\r\n * Componente - `InputFilter`\r\n *\r\n * Um componente utilizado para montar o objeto de pesquisa de dados.\r\n * Permite alterar o seu tipo através do type: `text`, `date`, `autocomplete`.\r\n */\r\nexport function InputFilter<T extends keyof InputFilterOptionsMap = \"text\">({ ...props }: InputFilterProps<T>) {\r\n\r\n const options: any[] = (props.options ?? optionsDefault).sort((a, b) => a.length - b.length);\r\n const selectOptions = optionsLabel.filter(item => options?.includes(item.options as any));\r\n const [select, setSelect] = useState<string>(handle.handleGetOption<T>(props.value, options));\r\n\r\n useEffect(() => {\r\n if (!props.type || props.type === \"text\") {\r\n let value = handle.handleGetValueText(props.value, options);\r\n if (value !== null) {\r\n props.onChange(value + select);\r\n } else {\r\n props.onChange(null);\r\n }\r\n } else if (props.type === \"date\") {\r\n let date = handle.handleGetValueDate(props.value, options, select);\r\n let setDate = handle.handleSetValueDate(\"0\", null, date);\r\n\r\n if (select === \"{}\" && setDate === \"0/0/0{}0/0/0\") {\r\n props.onChange(null);\r\n } else {\r\n if (date[0] == 0 && date[1] == 0 && date[2] == 0) {\r\n props.onChange(null);\r\n } else {\r\n props.onChange(setDate);\r\n }\r\n }\r\n } else if (props.type === \"autocomplete\") {\r\n let value = handle.handleGetValueAutocomplete(props.value, options, props.data);\r\n props.onChange(handle.handleSetValueAutocomplete(value, select));\r\n } else if (props.type === \"number\") {\r\n let value = handle.handleGetValueNumber(props.value, options);\r\n if (value !== \"\") {\r\n props.onChange(value + select);\r\n } else {\r\n props.onChange(null);\r\n }\r\n }\r\n }, [select]);\r\n\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <Box {...props}\r\n className={classNames([props.className, \"input-filter-container\"])}>\r\n <InputLabel {...props}/>\r\n <div className=\"input-filter-content\"\r\n id={props.id ?? \"input-filter\"}>\r\n <select className=\"form-select input-filter-select\"\r\n disabled={props.disabled}\r\n id={(props.id ?? \"input-filter\") + \"-select\"}\r\n name={(props.name ?? \"input-filter\") + \"-select\"}\r\n value={select}\r\n onChange={event => setSelect(event.target.value)}>\r\n {selectOptions?.map(item => (\r\n <option key={item.options}\r\n value={item.options}>{item.label}</option>\r\n ))}\r\n </select>\r\n {(!props.type || props.type === \"text\")\r\n && <Text<\"text\"> {...props as InputFilterProps<\"text\">}\r\n options={options}\r\n select={select}/>}\r\n {props.type === \"date\"\r\n && <Date<\"date\"> {...props as InputFilterProps<\"date\">}\r\n options={options}\r\n select={select}/>}\r\n {props.type === \"autocomplete\"\r\n && <Autocomplete<\"autocomplete\"> {...props as InputFilterProps<\"autocomplete\">}\r\n options={options}\r\n select={select}/>}\r\n {props.type === \"number\"\r\n && <Number<\"number\"> {...props}\r\n options={options}\r\n select={select}/>}\r\n </div>\r\n </Box>\r\n );\r\n}"],"names":["getMetaContent","id","element","document","getElementById","url","replace","substr","slice","length","MES","name","handleNumber","valor","format","value","parseFloat","toLocaleString","style","currency","optionsDefault","optionsLabel","options","label","filterLegend","optsMatch","match","opts","charAt","option","isNaN","parseInt","filter","item","Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","React","createElement","validateDate","date","day","month","year","isMonthValid","isYearValid","isDayValid","currentDate","Date","getDate","handleGetValueText","str","exists","reverse","find","endsWith","handleGetValueDate","select","optsRegex","trim","parts","split","forEach","index","clean","includes","map","number","unshift","concat","handleSetValueDate","position","firstDate","lastDate","handleGetValueAutocomplete","data","values","handleSetValueAutocomplete","ids","handleGetValueNumber","Text","disabled","placeholder","onChange","event","target","handleChangeValue","key","InputLabel","iconPrefix","icon","required","Number","Autocomplete","AutocompletePrimeReact","AutoComplete","multiple","completeMethod","onSearch","query","appendTo","emptyMessage","field","inputClassName","panelClassName","scrollHeight","autocompleteScrollHeight","selectionLimit","autocompleteSelectLimit","suggestions","sort","a","b","selectOptions","setSelect","useState","handle.handleGetOption","useEffect","type","handle.handleGetValueDate","setDate","handle.handleSetValueDate","handle.handleGetValueAutocomplete","handle.handleSetValueAutocomplete","handle.handleGetValueNumber","handle.handleGetValueText","dto","word","legend","obj","text","substring","interval","handleLegend","dia","mes","ano"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/utils/helper.ts","../../src/utils/const.ts","../../src/utils/handle.ts","../../src/inputfilter/const.ts","../../src/inputfilter/legend.ts","../../src/box/box.tsx","../../src/inputfilter/function/validate.ts","../../src/inputfilter/function/handle.ts","../../src/inputfilter/core/text.tsx","../../src/inputfilter/core/date.tsx","../../src/api/input.tsx","../../src/inputfilter/core/number.tsx","../../src/inputfilter/core/autocomplete.tsx","../../src/inputfilter/inputfilter.tsx"],"sourcesContent":["import $ from \"jquery\";\r\nimport axios from \"axios\";\r\nimport { message } from \"./message\";\r\nimport { IUtilsHelperResponse } from \"./types\";\r\n\r\n/**\r\n * Realiza a pesquisa do elemento html na DOM<br>\r\n * <meta id=\"???\" name=\"???\" content=\"your-url\">\r\n */\r\nexport function getMetaContent(id: string): string | null {\r\n let element: any = document.getElementById(id);\r\n let url: null | string = element === null ? null : (element.content).replace(\".br/\", \".br\");\r\n return url === null ? null : url.substr(-1) === \"/\" ? url.slice(0, url.length - 1) : url;\r\n}\r\n\r\n/**\r\n * Realiza a pesquisa do CEP na API pública \"https://viacep.com.br/ws/\"\r\n */\r\nexport async function getCep(value: string): Promise<IUtilsHelperResponse[\"gep_cep\"]> {\r\n let cep = value.length === 0 ? \"00000000\" : value.replace(\"-\", \"\");\r\n return await axios.get<IUtilsHelperResponse[\"gep_cep\"]>(\"https://viacep.com.br/ws/\" + cep + \"/json/\")\r\n .then(data => data.data);\r\n}\r\n\r\n/**\r\n * Realiza a pesquisa do elemento na árvore DOM\r\n */\r\nexport function getElementDOM(element?: string, preloadTimeOut?: number): Promise<null | JQuery<HTMLElement>> {\r\n return new Promise((resolve) => {\r\n // @ts-ignore\r\n let body = window.self === window.top ? $(\"body\") : $(window.frameElement).parents(\"body\");\r\n if (!element || element.length === 0) {\r\n resolve(body);\r\n }\r\n\r\n if (element === \"#\" || element === \".\") {\r\n resolve(null);\r\n }\r\n\r\n let elementFound = body.find(element);\r\n if (elementFound.length > 0) {\r\n resolve(elementFound);\r\n } else {\r\n setTimeout(() => {\r\n let iframe = body.find(\"iframe\").contents();\r\n if (iframe.length === 0) {\r\n resolve(null);\r\n }\r\n elementFound = iframe.find(element);\r\n if (elementFound.length > 0) {\r\n resolve(elementFound);\r\n }\r\n resolve(null);\r\n }, preloadTimeOut ?? 300);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Permite à comunicação de origem cruzada entre objetos do Windows.<br>\r\n * Exemplo: Comunicação entre iframe e corpo principal\r\n */\r\nexport function windowMessageEvent(): void {\r\n window.addEventListener(\"message\", function (event: MessageEvent) {\r\n if (event.data?.type === \"message\") {\r\n let data = event.data;\r\n message<any>({ ...data.params });\r\n }\r\n });\r\n}","import { getMetaContent } from \"./helper\";\r\n\r\nexport const USER: string | null = getMetaContent(\"auth\");\r\nexport const BASE: string | null = getMetaContent(\"react-base\");\r\nexport const TOKEN: string | null = getMetaContent(\"csrf-token\");\r\n\r\nexport const MES: Array<{ id: number, name: string }> = [\r\n { id: 1, name: \"Janeiro\" },\r\n { id: 2, name: \"Fevereiro\" },\r\n { id: 3, name: \"Março\" },\r\n { id: 4, name: \"Abril\" },\r\n { id: 5, name: \"Maio\" },\r\n { id: 6, name: \"Junho\" },\r\n { id: 7, name: \"Julho\" },\r\n { id: 8, name: \"Agosto\" },\r\n { id: 9, name: \"Setembro\" },\r\n { id: 10, name: \"Outubro\" },\r\n { id: 11, name: \"Novembro\" },\r\n { id: 12, name: \"Dezembro\" },\r\n];\r\n\r\nexport const ESTADOS: Array<{ id: string, name: string }> = [\r\n { name: \"Acre\", id: \"AC\" },\r\n { name: \"Alagoas\", id: \"AL\" },\r\n { name: \"Amapá\", id: \"AP\" },\r\n { name: \"Amazonas\", id: \"AM\" },\r\n { name: \"Bahia\", id: \"BA\" },\r\n { name: \"Ceará\", id: \"CE\" },\r\n { name: \"Distrito Federal\", id: \"DF\" },\r\n { name: \"Espírito Santo\", id: \"ES\" },\r\n { name: \"Goiás\", id: \"GO\" },\r\n { name: \"Maranhão\", id: \"MA\" },\r\n { name: \"Mato Grosso\", id: \"MT\" },\r\n { name: \"Mato Grosso do Sul\", id: \"MS\" },\r\n { name: \"Minas Gerais\", id: \"MG\" },\r\n { name: \"Pará\", id: \"PA\" },\r\n { name: \"Paraíba\", id: \"PB\" },\r\n { name: \"Paraná\", id: \"PR\" },\r\n { name: \"Pernambuco\", id: \"PE\" },\r\n { name: \"Piauí\", id: \"PI\" },\r\n { name: \"Rio de Janeiro\", id: \"RJ\" },\r\n { name: \"Rio Grande do Norte\", id: \"RN\" },\r\n { name: \"Rio Grande do Sul\", id: \"RS\" },\r\n { name: \"Rondônia\", id: \"RO\" },\r\n { name: \"Roraima\", id: \"RR\" },\r\n { name: \"Santa Catarina\", id: \"SC\" },\r\n { name: \"São Paulo\", id: \"SP\" },\r\n { name: \"Sergipe\", id: \"SE\" },\r\n { name: \"Tocantins\", id: \"TO\" }\r\n];","/**\r\n * Formata um valor numérico para o formato decimal ou monetário.\r\n *\r\n * @param valor - O valor a ser formatado.\r\n * @param format - O formato desejado: \"money\" para monetário ou \"decimal\" para decimal.\r\n * @param decimals - Quantidade de casa decimal\r\n * @returns O valor formatado como string.\r\n */\r\nexport function handleNumber(\r\n valor: string,\r\n format: \"money\" | \"decimal\" = \"decimal\",\r\n decimals: number = 2\r\n): string {\r\n let value = valor.replace(/[^0-9.,]/g, \"\");\r\n if (format === \"decimal\") {\r\n if (value.length > 0) {\r\n return parseFloat(value.replace(\",\", \".\").replace(/(\\..*)\\./g, \"$1\")).toFixed(decimals);\r\n }\r\n return \"\";\r\n }\r\n return parseFloat(value.replace(\",\", \".\"))\r\n .toLocaleString(\"pt-BR\", {\r\n style: \"currency\",\r\n currency: \"BRL\"\r\n }).replace(\".\", \" \");\r\n}\r\n\r\n/**\r\n * Formata um valor de string para o formato de horas (HH:MM).\r\n *\r\n * @param valor - O valor a ser formatado.\r\n * @returns O valor formatado como string no formato de horas.\r\n */\r\nexport function handleHours(valor: string): string {\r\n let value = valor.replace(/[^\\d.]/g, \"\");\r\n const parts = value.split(\".\");\r\n\r\n if (parts.length > 1) {\r\n parts[1] = parts[1].substring(0, 2);\r\n }\r\n\r\n value = parts.join(\".\");\r\n if (value.length > 2) {\r\n value = value.substring(0, value.length - 2) + \":\" + value.substring(value.length - 2);\r\n }\r\n return value;\r\n}\r\n\r\n/**\r\n * Retonar a data do dia no formato (Y-m-d) para ser utilizado\r\n * em input do tipo Date.\r\n *\r\n * @return Data\r\n */\r\nexport function handleDateNow(): string {\r\n const hoje = new Date();\r\n const ano = hoje.getFullYear();\r\n const mes = String(hoje.getMonth() + 1).padStart(2, \"0\");\r\n const dia = String(hoje.getDate()).padStart(2, \"0\");\r\n return `${ano}-${mes}-${dia}`;\r\n}","import { InputFilterOptionsMap, InputFilterOptionsProps } from \"./types\";\r\n\r\nexport const optionsDefault: Array<InputFilterOptionsMap[\"text\"]> = [\"=\", \"!=\", \"%\", \"!%\"];\r\n\r\nexport const optionsLabel: Array<{\r\n options: InputFilterOptionsProps,\r\n label: string\r\n}> = [\r\n { options: \"=\", label: \"Igual a\" },\r\n { options: \"!=\", label: \"Diferente de\" },\r\n { options: \"<\", label: \"Menor do que\" },\r\n { options: \">\", label: \"Maior do que\" },\r\n { options: \"<=\", label: \"Menor ou igual a\" },\r\n { options: \">=\", label: \"Maior ou igual a\" },\r\n { options: \"{}\", label: \"Intervalo\" },\r\n { options: \"%\", label: \"Contém o que\" },\r\n { options: \"!%\", label: \"Não contém o que\" },\r\n];","import { MES } from \"../utils\";\r\nimport { optionsLabel } from \"./const\";\r\n\r\n/**\r\n * Retorna a legenda de acordo com operador na string\r\n * @param value - Valor a ser tratado\r\n */\r\nexport function filterLegend(value: string | undefined): string | null {\r\n if (!value) {\r\n return null;\r\n }\r\n let optsRegex = /(=|!=|<|>|<=|>=|%|!%|\\{\\})/;\r\n let optsMatch = value?.match(optsRegex);\r\n let opts = value.charAt(value.length - 1);\r\n let option = optsMatch?.[0];\r\n\r\n if (optsMatch?.[0] !== opts && isNaN(parseInt(opts)) && option?.slice(-1) !== opts) {\r\n option = optsMatch?.[0] + opts;\r\n }\r\n return optionsLabel.filter(item => item.options === option)[0]?.label ?? null;\r\n}\r\n\r\n/**\r\n * Realiza o tratamento das informações para retorna a legenda do tipo `Date`\r\n * @param value - Valor a ser tratado\r\n */\r\nexport function filterLegendData(value: string | undefined): string {\r\n let legend = filterLegend(value);\r\n if (legend === null) {\r\n return \"Não encontramos legenda definida.\";\r\n }\r\n\r\n let interval = value?.split(\"{}\");\r\n let date = value?.split(\"/\");\r\n\r\n const handleLegend = (date: any): string => {\r\n let dia = parseInt(date[0]);\r\n let mes = parseInt(date[1], 10);\r\n let ano = parseInt(date[2]);\r\n\r\n return `\r\n ${(dia > 0 ? `${mes == 0 ? \"dia\" : \"\"} ${dia}` : \"\")} \r\n ${mes > 0 ? `${dia > 0 ? \"de\" : \"\"} ${MES[mes - 1]?.name}` : \"\"} \r\n ${ano > 0 ? `${dia > 0 || mes > 0 ? \"de\" : \"\"} ${ano}` : \"\"}\r\n `.replace(/\\s+/g, \" \").trim();\r\n };\r\n let result = interval?.[1] === undefined\r\n ? handleLegend(date)\r\n : handleLegend(interval[0].split(\"/\")) + \" à \" + handleLegend(interval[1].split(\"/\"));\r\n return legend + \": \" + result;\r\n}\r\n\r\n/**\r\n * Realiza o tratamento das informações para retorna a legenda do tipo `Text`\r\n * @param value - Valor a ser tratado\r\n */\r\nexport function filterLegendText(value: string | undefined): string {\r\n let legend = filterLegend(value);\r\n if (legend === null) {\r\n return \"Não encontramos legenda definida.\";\r\n }\r\n return legend + \": \" + (value?.replace(/(=|!=|<|>|<=|>=|%|!%|\\{\\})/g, \"\") ?? \"\");\r\n}\r\n\r\n/**\r\n * Realiza o tratamento das informações para retorna a legando do tipo `autocomplete`\r\n * @param value - Valor a ser tratado\r\n * @param dto - Array de objeto para ser pesquisado a legenda\r\n * @param word - Limite de palavras para a legenda\r\n */\r\nexport function filterLegendAutocomplete(value: string | undefined, dto: any[] = [], word: number = 30): string {\r\n let legend = filterLegend(value);\r\n if (legend === null || dto.length === 0) {\r\n return \"Não encontramos legenda definida.\";\r\n }\r\n let ids: any[] = value?.split(\";\").map(item => parseInt(item)) ?? [];\r\n let values = dto\r\n .filter(obj => ids.includes(obj.id))\r\n .map(item => item.label).join(\", \");\r\n let text = values.substring(0, word);\r\n return legend + \": \" + text + (text.length !== values.length ? \"...\" : \"\");\r\n}","import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};","/**\r\n * Valida e ajusta uma data fornecida como um array de números.\r\n *\r\n * @param date - Um array de números representando [dia, mês, ano].\r\n * @returns Um array de números representando a data validada e ajustada.\r\n */\r\nexport function validateDate(date: number[]): number[] {\r\n const [day, month, year] = date;\r\n\r\n const isMonthValid = month >= 1 && month <= 12;\r\n const isYearValid = year > 0 && year < 99999;\r\n const isDayValid = day >= 1 && day <= 31;\r\n\r\n if (isYearValid && !isMonthValid && !isDayValid) {\r\n return [0, 0, year];\r\n }\r\n\r\n if (isYearValid && isMonthValid && !isDayValid) {\r\n return [0, month, year];\r\n }\r\n\r\n if (isYearValid && isMonthValid && isDayValid) {\r\n let currentDate = new Date(year, month, 0);\r\n if (currentDate.getDate() < day) {\r\n return [currentDate.getDate(), month, year];\r\n }\r\n return date;\r\n }\r\n\r\n if (!isYearValid && isMonthValid && !isDayValid) {\r\n return [0, month, 0];\r\n }\r\n\r\n if (!isYearValid && isMonthValid && isDayValid) {\r\n return [day, month, 0];\r\n }\r\n\r\n if (!isYearValid && !isMonthValid && isDayValid) {\r\n return [day, 0, 0];\r\n }\r\n\r\n if (isYearValid && !isMonthValid && isDayValid) {\r\n return [day, 0, year];\r\n }\r\n\r\n return [0, 0, 0];\r\n}","import { validateDate } from \"./validate\";\r\nimport { handleNumber } from \"../../utils\";\r\nimport { InputFilterOptionsMap } from \"../types\";\r\n\r\n/**\r\n * Obtém a opção de filtro correspondente ao valor fornecido.\r\n *\r\n * @param value - O valor para buscar uma opção correspondente.\r\n * @param options - Um array de opções de filtro disponíveis.\r\n * @returns A opção de filtro correspondente ou a primeira opção se nenhuma correspondência for encontrada.\r\n */\r\nexport function handleGetOption<T extends keyof InputFilterOptionsMap>(\r\n value: string | undefined,\r\n options: Array<InputFilterOptionsMap[T]>\r\n): string {\r\n let exists = options.filter(option => value?.includes(option));\r\n return exists[exists.length - 1] ?? options[0];\r\n}\r\n\r\n/**\r\n * Retorna apenas o valor sem os operadores filtro tipo `Text`.\r\n *\r\n * @param value - O valor completo, incluindo a opção de filtro.\r\n * @param options - Um array de opções de filtro disponíveis.\r\n * @returns O valor sem as opções de filtro.\r\n */\r\nexport function handleGetValueText(\r\n value: string | undefined,\r\n options: Array<InputFilterOptionsMap[\"text\"]>\r\n): string | null {\r\n let str = value;\r\n let exists = options\r\n .slice()\r\n .reverse()\r\n .find(item => str?.endsWith(item));\r\n if (exists && str !== undefined) {\r\n return str.slice(0, -exists.length);\r\n }\r\n return str ?? null;\r\n}\r\n\r\n/**\r\n * Retorna apenas o valor sem os operadores filtro tipo `Date`.\r\n *\r\n * @param value - O valor completo, incluindo a opção de filtro.\r\n * @param options - Um array de opções de filtro disponíveis.\r\n * @param select - Seletor do tipo de filtro\r\n * @returns O valor sem as opções de filtro.\r\n */\r\nexport function handleGetValueDate(\r\n value: string | undefined,\r\n options: Array<InputFilterOptionsMap[\"date\"]>,\r\n select: null | string = null\r\n): Array<number | string> {\r\n let str = value;\r\n let optsRegex = /(=|!=|<|>|<=|>=|\\{\\})/;\r\n let optsMatch = value?.match(optsRegex);\r\n let opts = optsMatch ? optsMatch[0].trim() : options[0];\r\n\r\n let parts: any[] = [];\r\n let interval = str?.split(\"{}\") ?? [];\r\n\r\n interval.forEach((value, index) => {\r\n let clean = value.replace(optsRegex, \"\").trim();\r\n\r\n if (clean.includes(\"/\")) {\r\n parts[index] = clean.split(\"/\").map(item => parseInt(item));\r\n } else {\r\n let number = parseInt(clean);\r\n parts[index] = [isNaN(number) ? 0 : number];\r\n }\r\n\r\n while (parts[index].length < 3) {\r\n parts[index].unshift(0);\r\n }\r\n });\r\n\r\n if (parts[1] && opts === \"{}\") {\r\n return [...validateDate(parts[0]), select ?? opts].concat(...validateDate(parts[1]));\r\n }\r\n return parts.length === 0\r\n ? [0, 0, 0, opts]\r\n : [...validateDate(parts[0]), select ?? opts];\r\n}\r\n\r\n/**\r\n * Atualiza um valor de data em uma posição específica e retorna a data formatada.\r\n *\r\n * @param value - O novo valor a ser inserido na data\r\n * @param position - A posição do valor a ser atualizado (0 para dia, 1 para mês, 2 para ano)\r\n * @param date - O array da data atual, incluindo as opções\r\n * @returns A data atualizada e formatada como string\r\n */\r\nexport function handleSetValueDate(\r\n value: string,\r\n position: number | null,\r\n date: (number | string)[]\r\n): string {\r\n if (position !== null) {\r\n date[position] = parseInt(value);\r\n }\r\n\r\n let opts = date[3];\r\n let firstDate = date.slice(0, 3);\r\n firstDate = validateDate(firstDate as number[]);\r\n\r\n if (opts !== \"{}\") {\r\n return `${firstDate[0]}/${firstDate[1]}/${firstDate[2]}${opts}`;\r\n }\r\n\r\n let lastDate = isNaN(parseInt(date[date.length - 1] as string)) && position === null\r\n ? [0, 0, 0]\r\n : date.slice(-3);\r\n lastDate = validateDate(lastDate as number[]);\r\n return `${firstDate[0]}/${firstDate[1]}/${firstDate[2]}${opts}${lastDate[0]}/${lastDate[1]}/${lastDate[2]}`;\r\n}\r\n\r\n/**\r\n * Obtém os valores selecionados do autocomplete a partir da string de valor e dos dados disponíveis.\r\n *\r\n * @param value - String contendo os IDs dos itens selecionados, separados por ponto e vírgula.\r\n * @param options - Array de opções de filtro disponíveis para o autocomplete.\r\n * @param data - Array de objetos contendo os dados disponíveis para seleção.\r\n * @returns Array de objetos correspondentes aos IDs selecionados.\r\n */\r\nexport function handleGetValueAutocomplete(\r\n value: string | undefined,\r\n options: Array<InputFilterOptionsMap[\"autocomplete\"]>,\r\n data: Array<{ id: number, label: string }>\r\n) {\r\n let values: any[] = value?.split(\";\").map(item => parseInt(item)) ?? [];\r\n return data.filter(item => values.includes(item.id));\r\n}\r\n\r\n/**\r\n * Converte os valores selecionados do autocomplete em uma string formatada para o filtro.\r\n *\r\n * @param value - Array de objetos selecionados no autocomplete.\r\n * @param select - String representando a opção de filtro selecionada.\r\n * @returns String formatada com os IDs dos itens selecionados e a opção de filtro.\r\n */\r\nexport function handleSetValueAutocomplete(\r\n value: Array<{ id: number, label: string }>,\r\n select: string,\r\n): string | null {\r\n let ids = value.map(item => item.id);\r\n return ids.length === 0 ? null : ids.join(\";\") + select;\r\n}\r\n\r\n/**\r\n * Retorna apenas o valor sem os operadores filtro tipo `Number`.\r\n *\r\n * @param value - O valor completo, incluindo a opção de filtro.\r\n * @param options - Um array de opções de filtro disponíveis.\r\n * @returns O valor sem as opções de filtro.\r\n */\r\nexport function handleGetValueNumber(\r\n value: string | undefined,\r\n options: Array<InputFilterOptionsMap[\"text\"]>\r\n): string {\r\n let str = value;\r\n let exists = options\r\n .slice()\r\n .reverse()\r\n .find(item => str?.endsWith(item));\r\n if (exists && str !== undefined) {\r\n return handleNumber(str.slice(0, -exists.length), \"decimal\", 0);\r\n }\r\n return handleNumber(str ?? \"\", \"decimal\", 0);\r\n}","import React from \"react\";\r\nimport { handleGetValueText } from \"../function/handle\";\r\nimport { InputFilterCoreProps, InputFilterOptionsMap } from \"../types\";\r\n\r\n/**\r\n * Core - `Text`\r\n * Campo do filtro tipo texto\r\n */\r\nexport function Text<T extends keyof InputFilterOptionsMap>(props: InputFilterCoreProps<T>) {\r\n return (\r\n <input className=\"form-control input-filter-field\"\r\n disabled={props.disabled}\r\n id={(props.id ?? \"input-filter\") + \"-text\"}\r\n name={(props.name ?? \"input-filter\") + \"-text\"}\r\n placeholder={props.placeholder}\r\n value={handleGetValueText(props.value, props.options) ?? \"\"}\r\n onChange={event => props.onChange(event.target.value + props.select)}/>\r\n );\r\n}","import React from \"react\";\r\nimport { InputFilterCoreProps, InputFilterOptionsMap } from \"../types\";\r\nimport { handleGetValueDate, handleSetValueDate } from \"../function/handle\";\r\n\r\n/**\r\n * Core - `Date`\r\n * Campo do filtro tipo data\r\n */\r\nexport function Date<T extends keyof InputFilterOptionsMap>(props: InputFilterCoreProps<T>) {\r\n let date = handleGetValueDate(props.value, props.options, props.select);\r\n\r\n function handleChangeValue(value: string) {\r\n if (props.select === \"{}\" && value === \"0/0/0{}0/0/0\") {\r\n props.onChange(null);\r\n } else {\r\n if ((date[0] == 0 || isNaN(date[0] as number)) &&\r\n (date[1] == 0 || isNaN(date[1] as number)) &&\r\n (date[2] == 0 || isNaN(date[2] as number))) {\r\n props.onChange(null);\r\n } else {\r\n props.onChange(value);\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <div className=\"d-flex w-100 flex-column\">\r\n <div className=\"w-100 d-flex gap-2\">\r\n {date.map((item, index) => {\r\n if (index <= 2) {\r\n return (\r\n <input className={\"form-control input-filter-field-date\" + (index == 2 ? \" year\" : \"\")}\r\n disabled={props.disabled}\r\n id={(props.id ?? \"input-filter\") + \"-\" + index}\r\n key={index}\r\n name={(props.name ?? \"input-filter\") + \"-\" + index}\r\n placeholder={props.placeholder}\r\n value={item === 0 ? \"\" : item}\r\n onChange={event => handleChangeValue(handleSetValueDate(event.target.value, index, date))}/>\r\n );\r\n }\r\n })}\r\n </div>\r\n {props.select === \"{}\" && date.length > 4\r\n && <div className=\"w-100 d-flex gap-2 mt-2\">\r\n {date.map((item, index) => {\r\n if (index >= 4) {\r\n return (\r\n <input className={\"form-control input-filter-field-date\" + (index == 6 ? \" year\" : \"\")}\r\n disabled={props.disabled}\r\n id={(props.id ?? \"input-filter\") + \"-\" + index}\r\n key={index}\r\n name={(props.name ?? \"input-filter\") + \"-\" + index}\r\n placeholder={props.placeholder}\r\n value={item === 0 ? \"\" : item}\r\n onChange={event => handleChangeValue(handleSetValueDate(event.target.value, index, date))}/>\r\n );\r\n }\r\n })}\r\n </div>}\r\n </div>\r\n );\r\n}","import React from \"react\";\r\nimport { ApiComponentProps, ApiFieldComponentProps } from \"./types\";\r\n\r\n/**\r\n * API - `InputLabel`\r\n *\r\n * Um componente utilizado como label em todos os componente de entrada de dados do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputLabel = ({ iconPrefix = \"bi bi-\", ...props }: ApiFieldComponentProps) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return props.label\r\n && <p className='form-label'>\r\n {props.icon && <i className={iconPrefix + props.icon + \" me-1\"}/>}\r\n {props.label}\r\n {props.required && <span className=\"text-danger\">*</span>}\r\n </p>;\r\n};\r\n\r\n/**\r\n * API - `InputFeedback`\r\n *\r\n * Um componente utilizado como container de feedback em todos os componente de entrada de dados do pacote.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport const InputFeedback = ({ errors, name, ...props }: ApiFieldComponentProps & { errors?: any }) => {\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return !props.mode || props.mode === \"Controlled\"\r\n ? <div data-name={name}\r\n id=\"j_feedback\"/>\r\n : <div className={(!errors[name ?? \"\"] ? \"\" : \"invalid-feedback is-invalid\")}\r\n data-name={name ?? \"\"}\r\n id=\"j_feedback\"\r\n style={{ display: errors[name ?? \"\"] ? \"block\" : \"none\" }}>{!errors[name ?? \"\"] ? \"\" : errors[name ?? \"\"].message}</div>;\r\n};\r\n\r\n/**\r\n * API - `InputProps`\r\n *\r\n * Retorna o objeto com as `Props` do core dos componentes de entrada de dados\r\n */\r\nexport function InputProps<T extends ApiComponentProps & ApiFieldComponentProps & { ref: any }>(props: T) {\r\n return {\r\n ref: props.ref,\r\n\r\n id: props.id,\r\n name: props.name,\r\n required: props.required,\r\n disabled: props.disabled,\r\n placeholder: props.placeholder,\r\n\r\n className: props.className,\r\n style: { width: \"100%\" },\r\n\r\n keyfilter: props.keyfilter,\r\n };\r\n}","import React from \"react\";\r\nimport { handleNumber } from \"../../utils\";\r\nimport { handleGetValueNumber } from \"../function/handle\";\r\nimport { InputFilterCoreProps, InputFilterOptionsMap } from \"../types\";\r\n\r\n/**\r\n * Core - `Number`\r\n * Campo do filtro tipo numero\r\n */\r\nexport function Number<T extends keyof InputFilterOptionsMap>(props: InputFilterCoreProps<T>) {\r\n return (\r\n <input className=\"form-control input-filter-field\"\r\n disabled={props.disabled}\r\n id={(props.id ?? \"input-filter\") + \"-number\"}\r\n name={(props.name ?? \"input-filter\") + \"-number\"}\r\n placeholder={props.placeholder}\r\n value={handleGetValueNumber(props.value, props.options ?? \"\")}\r\n onChange={event => props.onChange(handleNumber(event.target.value, \"decimal\", 0) + props.select)}/>\r\n );\r\n}","import React from \"react\";\r\nimport { InputFilterCoreProps, InputFilterOptionsMap } from \"../types\";\r\nimport { AutoComplete as AutocompletePrimeReact } from \"primereact/autocomplete\";\r\nimport { handleGetValueAutocomplete, handleSetValueAutocomplete } from \"../function/handle\";\r\n\r\n/**\r\n * Core - `Autocomplete`\r\n * Campo do filtro tipo autocomplete\r\n */\r\nexport function Autocomplete<T extends keyof InputFilterOptionsMap>(props: InputFilterCoreProps<\"autocomplete\">) {\r\n const value = handleGetValueAutocomplete(props.value, props.options, props.data);\r\n\r\n return (\r\n <AutocompletePrimeReact multiple\r\n completeMethod={event => {\r\n let ids = value.map(item => item.id);\r\n props.onSearch(event.query, ids);\r\n }}\r\n appendTo=\"self\"\r\n className=\"w-100\"\r\n disabled={props.disabled}\r\n emptyMessage=\"Não encontramos dados.\"\r\n field=\"label\"\r\n id={(props.id ?? \"input-filter\") + \"-\" + \"autocomplete\"}\r\n inputClassName=\"form-control\"\r\n name={(props.name ?? \"input-filter\") + \"-\" + \"autocomplete\"}\r\n panelClassName=\"input-filter-autocomplete-panel\"\r\n placeholder={props.placeholder}\r\n required={props.required}\r\n scrollHeight={props.autocompleteScrollHeight}\r\n selectionLimit={props.autocompleteSelectLimit}\r\n suggestions={props.data}\r\n value={value}\r\n onChange={event => props.onChange(handleSetValueAutocomplete(event.value, props.select))}/>\r\n );\r\n}","import { Box } from \"../box\";\r\nimport { Text } from \"./core/text\";\r\nimport { Date } from \"./core/date\";\r\nimport { InputLabel } from \"../api\";\r\nimport { Number } from \"./core/number\";\r\nimport * as handle from \"./function/handle\";\r\nimport { classNames } from \"primereact/utils\";\r\nimport { Autocomplete } from \"./core/autocomplete\";\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { optionsDefault, optionsLabel } from \"./const\";\r\nimport { InputFilterOptionsMap, InputFilterProps } from \"./types\";\r\n\r\n/**\r\n * Componente - `InputFilter`\r\n *\r\n * Um componente utilizado para montar o objeto de pesquisa de dados.\r\n * Permite alterar o seu tipo através do type: `text`, `date`, `autocomplete`.\r\n */\r\nexport function InputFilter<T extends keyof InputFilterOptionsMap = \"text\">({ ...props }: InputFilterProps<T>) {\r\n\r\n const options: any[] = (props.options ?? optionsDefault).sort((a, b) => a.length - b.length);\r\n const selectOptions = optionsLabel.filter(item => options?.includes(item.options as any));\r\n const [select, setSelect] = useState<string>(handle.handleGetOption<T>(props.value, options));\r\n\r\n useEffect(() => {\r\n if (!props.type || props.type === \"text\") {\r\n let value = handle.handleGetValueText(props.value, options);\r\n if (value !== null) {\r\n props.onChange(value + select);\r\n } else {\r\n props.onChange(null);\r\n }\r\n } else if (props.type === \"date\") {\r\n let date = handle.handleGetValueDate(props.value, options, select);\r\n let setDate = handle.handleSetValueDate(\"0\", null, date);\r\n\r\n if (select === \"{}\" && setDate === \"0/0/0{}0/0/0\") {\r\n props.onChange(null);\r\n } else {\r\n if (date[0] == 0 && date[1] == 0 && date[2] == 0) {\r\n props.onChange(null);\r\n } else {\r\n props.onChange(setDate);\r\n }\r\n }\r\n } else if (props.type === \"autocomplete\") {\r\n let value = handle.handleGetValueAutocomplete(props.value, options, props.data);\r\n props.onChange(handle.handleSetValueAutocomplete(value, select));\r\n } else if (props.type === \"number\") {\r\n let value = handle.handleGetValueNumber(props.value, options);\r\n if (value !== \"\") {\r\n props.onChange(value + select);\r\n } else {\r\n props.onChange(null);\r\n }\r\n }\r\n }, [select]);\r\n\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <Box {...props}\r\n className={classNames([props.className, \"input-filter-container\"])}>\r\n <InputLabel {...props}/>\r\n <div className=\"input-filter-content\"\r\n id={props.id ?? \"input-filter\"}>\r\n <select className=\"form-select input-filter-select\"\r\n disabled={props.disabled}\r\n id={(props.id ?? \"input-filter\") + \"-select\"}\r\n name={(props.name ?? \"input-filter\") + \"-select\"}\r\n value={select}\r\n onChange={event => setSelect(event.target.value)}>\r\n {selectOptions?.map(item => (\r\n <option key={item.options}\r\n value={item.options}>{item.label}</option>\r\n ))}\r\n </select>\r\n {(!props.type || props.type === \"text\")\r\n && <Text<\"text\"> {...props as InputFilterProps<\"text\">}\r\n options={options}\r\n select={select}/>}\r\n {props.type === \"date\"\r\n && <Date<\"date\"> {...props as InputFilterProps<\"date\">}\r\n options={options}\r\n select={select}/>}\r\n {props.type === \"autocomplete\"\r\n && <Autocomplete<\"autocomplete\"> {...props as InputFilterProps<\"autocomplete\">}\r\n options={options}\r\n select={select}/>}\r\n {props.type === \"number\"\r\n && <Number<\"number\"> {...props}\r\n options={options}\r\n select={select}/>}\r\n </div>\r\n </Box>\r\n );\r\n}"],"names":["getMetaContent","id","element","document","getElementById","url","replace","substr","slice","length","MES","name","handleNumber","valor","format","decimals","value","parseFloat","toFixed","toLocaleString","style","currency","optionsDefault","optionsLabel","options","label","filterLegend","optsMatch","match","opts","charAt","option","isNaN","parseInt","filter","item","Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","React","createElement","validateDate","date","day","month","year","isMonthValid","isYearValid","isDayValid","currentDate","Date","getDate","handleGetValueText","str","exists","reverse","find","endsWith","handleGetValueDate","select","optsRegex","trim","parts","split","forEach","index","clean","includes","map","number","unshift","concat","handleSetValueDate","position","firstDate","lastDate","handleGetValueAutocomplete","data","values","handleSetValueAutocomplete","ids","handleGetValueNumber","Text","disabled","placeholder","onChange","event","target","handleChangeValue","key","InputLabel","iconPrefix","icon","required","Number","Autocomplete","AutocompletePrimeReact","AutoComplete","multiple","completeMethod","onSearch","query","appendTo","emptyMessage","field","inputClassName","panelClassName","scrollHeight","autocompleteScrollHeight","selectionLimit","autocompleteSelectLimit","suggestions","sort","a","b","selectOptions","setSelect","useState","handle.handleGetOption","useEffect","type","handle.handleGetValueDate","setDate","handle.handleSetValueDate","handle.handleGetValueAutocomplete","handle.handleSetValueAutocomplete","handle.handleGetValueNumber","handle.handleGetValueText","dto","word","legend","obj","text","substring","interval","handleLegend","dia","mes","ano"],"mappings":"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"}
@@ -109,6 +109,11 @@ interface ApiFieldComponentProps {
109
109
  * Define a opção de filtro de dados do componente
110
110
  */
111
111
  keyfilter?: KeyFilterType;
112
+
113
+ /**
114
+ * Determina se campo é apenas de leitura
115
+ */
116
+ readonly?: boolean
112
117
  }
113
118
 
114
119
  interface InputFilterBaseProps<T extends keyof InputFilterOptionsMap> extends ApiComponentProps, ApiFieldComponentProps {
@@ -1,2 +1,2 @@
1
- import"jquery";import"axios";import"node-snackbar";import"sweetalert2";import e,{useState as t,useEffect as n}from"react";import{classNames as l}from"primereact/utils";import{AutoComplete as a}from"primereact/autocomplete";function i(e){let t=document.getElementById(e),n=null===t?null:t.content.replace(".br/",".br");return null===n?null:"/"===n.substr(-1)?n.slice(0,n.length-1):n}i("auth"),i("react-base"),i("csrf-token");const r=[{id:1,name:"Janeiro"},{id:2,name:"Fevereiro"},{id:3,name:"Março"},{id:4,name:"Abril"},{id:5,name:"Maio"},{id:6,name:"Junho"},{id:7,name:"Julho"},{id:8,name:"Agosto"},{id:9,name:"Setembro"},{id:10,name:"Outubro"},{id:11,name:"Novembro"},{id:12,name:"Dezembro"}];function o(e,t="decimal"){let n=e.replace(/[^0-9.,]/g,"");return"decimal"===t?n.replace(",",".").replace(/(\..*)\./g,"$1"):parseFloat(n.replace(",",".")).toLocaleString("pt-BR",{style:"currency",currency:"BRL"}).replace("."," ")}const s=["=","!=","%","!%"],c=[{options:"=",label:"Igual a"},{options:"!=",label:"Diferente de"},{options:"<",label:"Menor do que"},{options:">",label:"Maior do que"},{options:"<=",label:"Menor ou igual a"},{options:">=",label:"Maior ou igual a"},{options:"{}",label:"Intervalo"},{options:"%",label:"Contém o que"},{options:"!%",label:"Não contém o que"}];function u(e){if(!e)return null;let t=e?.match(/(=|!=|<|>|<=|>=|%|!%|\{\})/),n=e.charAt(e.length-1),l=t?.[0];return t?.[0]!==n&&isNaN(parseInt(n))&&l?.slice(-1)!==n&&(l=t?.[0]+n),c.filter((e=>e.options===l))[0]?.label??null}function p(e){let t=u(e);if(null===t)return"Não encontramos legenda definida.";let n=e?.split("{}"),l=e?.split("/");const a=e=>{let t=parseInt(e[0]),n=parseInt(e[1],10),l=parseInt(e[2]);return`\n ${t>0?`${0==n?"dia":""} ${t}`:""} \n ${n>0?`${t>0?"de":""} ${r[n-1]?.name}`:""} \n ${l>0?`${t>0||n>0?"de":""} ${l}`:""}\n `.replace(/\s+/g," ").trim()};return t+": "+(void 0===n?.[1]?a(l):a(n[0].split("/"))+" à "+a(n[1].split("/")))}function d(e){let t=u(e);return null===t?"Não encontramos legenda definida.":t+": "+(e?.replace(/(=|!=|<|>|<=|>=|%|!%|\{\})/g,"")??"")}function m(e,t=[],n=30){let l=u(e);if(null===l||0===t.length)return"Não encontramos legenda definida.";let a=e?.split(";").map((e=>parseInt(e)))??[],i=t.filter((e=>a.includes(e.id))).map((e=>e.label)).join(", "),r=i.substring(0,n);return l+": "+r+(r.length!==i.length?"...":"")}const f=({children:t,...n})=>{const a={size:`box-size-${n.size??"100"}`,direction:`box-direction-${n.direction??"row"}`,justify:void 0===n.justify?"":Array.isArray(n.justify)?n.justify?.join(" "):n.justify,align:void 0===n.align?"":Array.isArray(n.align)?n.align?.join(" "):n.align},i={className:l(["box",n.className??"",a.size,a.direction,a.justify,a.align]),style:n.css,id:n.id};return e.createElement("div",{...i},t)};function g(e){const[t,n,l]=e,a=n>=1&&n<=12,i=l>0&&l<99999,r=t>=1&&t<=31;if(i&&!a&&!r)return[0,0,l];if(i&&a&&!r)return[0,n,l];if(i&&a&&r){let a=new Date(l,n,0);return a.getDate()<t?[a.getDate(),n,l]:e}return i||!a||r?!i&&a&&r?[t,n,0]:i||a||!r?i&&!a&&r?[t,0,l]:[0,0,0]:[t,0,0]:[0,n,0]}function h(e,t){let n=e,l=t.slice().reverse().find((e=>n?.endsWith(e)));return l&&void 0!==n?n.slice(0,-l.length):n??null}function b(e,t,n=null){let l=e,a=/(=|!=|<|>|<=|>=|\{\})/,i=e?.match(a),r=i?i[0].trim():t[0],o=[];return(l?.split("{}")??[]).forEach(((e,t)=>{let n=e.replace(a,"").trim();if(n.includes("/"))o[t]=n.split("/").map((e=>parseInt(e)));else{let e=parseInt(n);o[t]=[isNaN(e)?0:e]}for(;o[t].length<3;)o[t].unshift(0)})),o[1]&&"{}"===r?[...g(o[0]),n??r].concat(...g(o[1])):0===o.length?[0,0,0,r]:[...g(o[0]),n??r]}function v(e,t,n){null!==t&&(n[t]=parseInt(e));let l=n[3],a=n.slice(0,3);if(a=g(a),"{}"!==l)return`${a[0]}/${a[1]}/${a[2]}${l}`;let i=isNaN(parseInt(n[n.length-1]))&&null===t?[0,0,0]:n.slice(-3);return i=g(i),`${a[0]}/${a[1]}/${a[2]}${l}${i[0]}/${i[1]}/${i[2]}`}function N(e,t,n){let l=e?.split(";").map((e=>parseInt(e)))??[];return n.filter((e=>l.includes(e.id)))}function y(e,t){let n=e.map((e=>e.id));return 0===n.length?null:n.join(";")+t}function E(e,t){let n=e,l=t.slice().reverse().find((e=>n?.endsWith(e)));return o(l&&void 0!==n?n.slice(0,-l.length):n??"","decimal")}function $(t){return e.createElement("input",{className:"form-control input-filter-field",disabled:t.disabled,id:(t.id??"input-filter")+"-text",name:(t.name??"input-filter")+"-text",placeholder:t.placeholder,value:h(t.value,t.options)??"",onChange:e=>t.onChange(e.target.value+t.select)})}function C(t){let n=b(t.value,t.options,t.select);function l(e){"{}"===t.select&&"0/0/0{}0/0/0"===e?t.onChange(null):0!=n[0]&&!isNaN(n[0])||0!=n[1]&&!isNaN(n[1])||0!=n[2]&&!isNaN(n[2])?t.onChange(e):t.onChange(null)}return e.createElement("div",{className:"d-flex w-100 flex-column"},e.createElement("div",{className:"w-100 d-flex gap-2"},n.map(((a,i)=>{if(i<=2)return e.createElement("input",{className:"form-control input-filter-field-date"+(2==i?" year":""),disabled:t.disabled,id:(t.id??"input-filter")+"-"+i,key:i,name:(t.name??"input-filter")+"-"+i,placeholder:t.placeholder,value:0===a?"":a,onChange:e=>l(v(e.target.value,i,n))})}))),"{}"===t.select&&n.length>4&&e.createElement("div",{className:"w-100 d-flex gap-2 mt-2"},n.map(((a,i)=>{if(i>=4)return e.createElement("input",{className:"form-control input-filter-field-date"+(6==i?" year":""),disabled:t.disabled,id:(t.id??"input-filter")+"-"+i,key:i,name:(t.name??"input-filter")+"-"+i,placeholder:t.placeholder,value:0===a?"":a,onChange:e=>l(v(e.target.value,i,n))})}))))}const x=({iconPrefix:t="bi bi-",...n})=>n.label&&e.createElement("p",{className:"form-label"},n.icon&&e.createElement("i",{className:t+n.icon+" me-1"}),n.label,n.required&&e.createElement("span",{className:"text-danger"},"*"));function I(t){return e.createElement("input",{className:"form-control input-filter-field",disabled:t.disabled,id:(t.id??"input-filter")+"-number",name:(t.name??"input-filter")+"-number",placeholder:t.placeholder,value:E(t.value,t.options??""),onChange:e=>t.onChange(o(e.target.value,"decimal")+t.select)})}function j(t){const n=N(t.value,t.options,t.data);return e.createElement(a,{multiple:!0,completeMethod:e=>{let l=n.map((e=>e.id));t.onSearch(e.query,l)},appendTo:"self",className:"w-100",disabled:t.disabled,emptyMessage:"Não encontramos dados.",field:"label",id:(t.id??"input-filter")+"-autocomplete",inputClassName:"form-control",name:(t.name??"input-filter")+"-autocomplete",panelClassName:"input-filter-autocomplete-panel",placeholder:t.placeholder,required:t.required,scrollHeight:t.autocompleteScrollHeight,selectionLimit:t.autocompleteSelectLimit,suggestions:t.data,value:n,onChange:e=>t.onChange(y(e.value,t.select))})}function q({...a}){const i=(a.options??s).sort(((e,t)=>e.length-t.length)),r=c.filter((e=>i?.includes(e.options))),[o,u]=t(function(e,t){let n=t.filter((t=>e?.includes(t)));return n[n.length-1]??t[0]}(a.value,i));return n((()=>{if(a.type&&"text"!==a.type){if("date"===a.type){let e=b(a.value,i,o),t=v("0",null,e);"{}"===o&&"0/0/0{}0/0/0"===t||0==e[0]&&0==e[1]&&0==e[2]?a.onChange(null):a.onChange(t)}else if("autocomplete"===a.type){let e=N(a.value,0,a.data);a.onChange(y(e,o))}else if("number"===a.type){let e=E(a.value,i);""!==e?a.onChange(e+o):a.onChange(null)}}else{let e=h(a.value,i);null!==e?a.onChange(e+o):a.onChange(null)}}),[o]),e.createElement(f,{...a,className:l([a.className,"input-filter-container"])},e.createElement(x,{...a}),e.createElement("div",{className:"input-filter-content",id:a.id??"input-filter"},e.createElement("select",{className:"form-select input-filter-select",disabled:a.disabled,id:(a.id??"input-filter")+"-select",name:(a.name??"input-filter")+"-select",value:o,onChange:e=>u(e.target.value)},r?.map((t=>e.createElement("option",{key:t.options,value:t.options},t.label)))),(!a.type||"text"===a.type)&&e.createElement($,{...a,options:i,select:o}),"date"===a.type&&e.createElement(C,{...a,options:i,select:o}),"autocomplete"===a.type&&e.createElement(j,{...a,options:i,select:o}),"number"===a.type&&e.createElement(I,{...a,options:i,select:o})))}export{q as InputFilter,u as filterLegend,m as filterLegendAutocomplete,p as filterLegendData,d as filterLegendText};
1
+ import"jquery";import"axios";import"node-snackbar";import"sweetalert2";import e,{useState as t,useEffect as l}from"react";import{classNames as n}from"primereact/utils";import{AutoComplete as a}from"primereact/autocomplete";function i(e){let t=document.getElementById(e),l=null===t?null:t.content.replace(".br/",".br");return null===l?null:"/"===l.substr(-1)?l.slice(0,l.length-1):l}i("auth"),i("react-base"),i("csrf-token");const r=[{id:1,name:"Janeiro"},{id:2,name:"Fevereiro"},{id:3,name:"Março"},{id:4,name:"Abril"},{id:5,name:"Maio"},{id:6,name:"Junho"},{id:7,name:"Julho"},{id:8,name:"Agosto"},{id:9,name:"Setembro"},{id:10,name:"Outubro"},{id:11,name:"Novembro"},{id:12,name:"Dezembro"}];function o(e,t="decimal",l=2){let n=e.replace(/[^0-9.,]/g,"");return"decimal"===t?n.length>0?parseFloat(n.replace(",",".").replace(/(\..*)\./g,"$1")).toFixed(l):"":parseFloat(n.replace(",",".")).toLocaleString("pt-BR",{style:"currency",currency:"BRL"}).replace("."," ")}const s=["=","!=","%","!%"],c=[{options:"=",label:"Igual a"},{options:"!=",label:"Diferente de"},{options:"<",label:"Menor do que"},{options:">",label:"Maior do que"},{options:"<=",label:"Menor ou igual a"},{options:">=",label:"Maior ou igual a"},{options:"{}",label:"Intervalo"},{options:"%",label:"Contém o que"},{options:"!%",label:"Não contém o que"}];function u(e){if(!e)return null;let t=e?.match(/(=|!=|<|>|<=|>=|%|!%|\{\})/),l=e.charAt(e.length-1),n=t?.[0];return t?.[0]!==l&&isNaN(parseInt(l))&&n?.slice(-1)!==l&&(n=t?.[0]+l),c.filter((e=>e.options===n))[0]?.label??null}function p(e){let t=u(e);if(null===t)return"Não encontramos legenda definida.";let l=e?.split("{}"),n=e?.split("/");const a=e=>{let t=parseInt(e[0]),l=parseInt(e[1],10),n=parseInt(e[2]);return`\n ${t>0?`${0==l?"dia":""} ${t}`:""} \n ${l>0?`${t>0?"de":""} ${r[l-1]?.name}`:""} \n ${n>0?`${t>0||l>0?"de":""} ${n}`:""}\n `.replace(/\s+/g," ").trim()};return t+": "+(void 0===l?.[1]?a(n):a(l[0].split("/"))+" à "+a(l[1].split("/")))}function d(e){let t=u(e);return null===t?"Não encontramos legenda definida.":t+": "+(e?.replace(/(=|!=|<|>|<=|>=|%|!%|\{\})/g,"")??"")}function m(e,t=[],l=30){let n=u(e);if(null===n||0===t.length)return"Não encontramos legenda definida.";let a=e?.split(";").map((e=>parseInt(e)))??[],i=t.filter((e=>a.includes(e.id))).map((e=>e.label)).join(", "),r=i.substring(0,l);return n+": "+r+(r.length!==i.length?"...":"")}const f=({children:t,...l})=>{const a={size:`box-size-${l.size??"100"}`,direction:`box-direction-${l.direction??"row"}`,justify:void 0===l.justify?"":Array.isArray(l.justify)?l.justify?.join(" "):l.justify,align:void 0===l.align?"":Array.isArray(l.align)?l.align?.join(" "):l.align},i={className:n(["box",l.className??"",a.size,a.direction,a.justify,a.align]),style:l.css,id:l.id};return e.createElement("div",{...i},t)};function g(e){const[t,l,n]=e,a=l>=1&&l<=12,i=n>0&&n<99999,r=t>=1&&t<=31;if(i&&!a&&!r)return[0,0,n];if(i&&a&&!r)return[0,l,n];if(i&&a&&r){let a=new Date(n,l,0);return a.getDate()<t?[a.getDate(),l,n]:e}return i||!a||r?!i&&a&&r?[t,l,0]:i||a||!r?i&&!a&&r?[t,0,n]:[0,0,0]:[t,0,0]:[0,l,0]}function h(e,t){let l=e,n=t.slice().reverse().find((e=>l?.endsWith(e)));return n&&void 0!==l?l.slice(0,-n.length):l??null}function b(e,t,l=null){let n=e,a=/(=|!=|<|>|<=|>=|\{\})/,i=e?.match(a),r=i?i[0].trim():t[0],o=[];return(n?.split("{}")??[]).forEach(((e,t)=>{let l=e.replace(a,"").trim();if(l.includes("/"))o[t]=l.split("/").map((e=>parseInt(e)));else{let e=parseInt(l);o[t]=[isNaN(e)?0:e]}for(;o[t].length<3;)o[t].unshift(0)})),o[1]&&"{}"===r?[...g(o[0]),l??r].concat(...g(o[1])):0===o.length?[0,0,0,r]:[...g(o[0]),l??r]}function v(e,t,l){null!==t&&(l[t]=parseInt(e));let n=l[3],a=l.slice(0,3);if(a=g(a),"{}"!==n)return`${a[0]}/${a[1]}/${a[2]}${n}`;let i=isNaN(parseInt(l[l.length-1]))&&null===t?[0,0,0]:l.slice(-3);return i=g(i),`${a[0]}/${a[1]}/${a[2]}${n}${i[0]}/${i[1]}/${i[2]}`}function N(e,t,l){let n=e?.split(";").map((e=>parseInt(e)))??[];return l.filter((e=>n.includes(e.id)))}function y(e,t){let l=e.map((e=>e.id));return 0===l.length?null:l.join(";")+t}function E(e,t){let l=e,n=t.slice().reverse().find((e=>l?.endsWith(e)));return o(n&&void 0!==l?l.slice(0,-n.length):l??"","decimal",0)}function $(t){return e.createElement("input",{className:"form-control input-filter-field",disabled:t.disabled,id:(t.id??"input-filter")+"-text",name:(t.name??"input-filter")+"-text",placeholder:t.placeholder,value:h(t.value,t.options)??"",onChange:e=>t.onChange(e.target.value+t.select)})}function C(t){let l=b(t.value,t.options,t.select);function n(e){"{}"===t.select&&"0/0/0{}0/0/0"===e?t.onChange(null):0!=l[0]&&!isNaN(l[0])||0!=l[1]&&!isNaN(l[1])||0!=l[2]&&!isNaN(l[2])?t.onChange(e):t.onChange(null)}return e.createElement("div",{className:"d-flex w-100 flex-column"},e.createElement("div",{className:"w-100 d-flex gap-2"},l.map(((a,i)=>{if(i<=2)return e.createElement("input",{className:"form-control input-filter-field-date"+(2==i?" year":""),disabled:t.disabled,id:(t.id??"input-filter")+"-"+i,key:i,name:(t.name??"input-filter")+"-"+i,placeholder:t.placeholder,value:0===a?"":a,onChange:e=>n(v(e.target.value,i,l))})}))),"{}"===t.select&&l.length>4&&e.createElement("div",{className:"w-100 d-flex gap-2 mt-2"},l.map(((a,i)=>{if(i>=4)return e.createElement("input",{className:"form-control input-filter-field-date"+(6==i?" year":""),disabled:t.disabled,id:(t.id??"input-filter")+"-"+i,key:i,name:(t.name??"input-filter")+"-"+i,placeholder:t.placeholder,value:0===a?"":a,onChange:e=>n(v(e.target.value,i,l))})}))))}const x=({iconPrefix:t="bi bi-",...l})=>l.label&&e.createElement("p",{className:"form-label"},l.icon&&e.createElement("i",{className:t+l.icon+" me-1"}),l.label,l.required&&e.createElement("span",{className:"text-danger"},"*"));function I(t){return e.createElement("input",{className:"form-control input-filter-field",disabled:t.disabled,id:(t.id??"input-filter")+"-number",name:(t.name??"input-filter")+"-number",placeholder:t.placeholder,value:E(t.value,t.options??""),onChange:e=>t.onChange(o(e.target.value,"decimal",0)+t.select)})}function j(t){const l=N(t.value,t.options,t.data);return e.createElement(a,{multiple:!0,completeMethod:e=>{let n=l.map((e=>e.id));t.onSearch(e.query,n)},appendTo:"self",className:"w-100",disabled:t.disabled,emptyMessage:"Não encontramos dados.",field:"label",id:(t.id??"input-filter")+"-autocomplete",inputClassName:"form-control",name:(t.name??"input-filter")+"-autocomplete",panelClassName:"input-filter-autocomplete-panel",placeholder:t.placeholder,required:t.required,scrollHeight:t.autocompleteScrollHeight,selectionLimit:t.autocompleteSelectLimit,suggestions:t.data,value:l,onChange:e=>t.onChange(y(e.value,t.select))})}function q({...a}){const i=(a.options??s).sort(((e,t)=>e.length-t.length)),r=c.filter((e=>i?.includes(e.options))),[o,u]=t(function(e,t){let l=t.filter((t=>e?.includes(t)));return l[l.length-1]??t[0]}(a.value,i));return l((()=>{if(a.type&&"text"!==a.type){if("date"===a.type){let e=b(a.value,i,o),t=v("0",null,e);"{}"===o&&"0/0/0{}0/0/0"===t||0==e[0]&&0==e[1]&&0==e[2]?a.onChange(null):a.onChange(t)}else if("autocomplete"===a.type){let e=N(a.value,0,a.data);a.onChange(y(e,o))}else if("number"===a.type){let e=E(a.value,i);""!==e?a.onChange(e+o):a.onChange(null)}}else{let e=h(a.value,i);null!==e?a.onChange(e+o):a.onChange(null)}}),[o]),e.createElement(f,{...a,className:n([a.className,"input-filter-container"])},e.createElement(x,{...a}),e.createElement("div",{className:"input-filter-content",id:a.id??"input-filter"},e.createElement("select",{className:"form-select input-filter-select",disabled:a.disabled,id:(a.id??"input-filter")+"-select",name:(a.name??"input-filter")+"-select",value:o,onChange:e=>u(e.target.value)},r?.map((t=>e.createElement("option",{key:t.options,value:t.options},t.label)))),(!a.type||"text"===a.type)&&e.createElement($,{...a,options:i,select:o}),"date"===a.type&&e.createElement(C,{...a,options:i,select:o}),"autocomplete"===a.type&&e.createElement(j,{...a,options:i,select:o}),"number"===a.type&&e.createElement(I,{...a,options:i,select:o})))}export{q as InputFilter,u as filterLegend,m as filterLegendAutocomplete,p as filterLegendData,d as filterLegendText};
2
2
  //# sourceMappingURL=index.esm.js.map