@wgalleti/primevue-components 0.26.0 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/crud/WEditableTable.vue.d.ts +2 -2
- package/dist/{components-B2qPV7fZ.js → components-IFeCNSdg.js} +1735 -1735
- package/dist/components-IFeCNSdg.js.map +1 -0
- package/dist/components-olkx_5ZP.cjs +25 -0
- package/dist/components-olkx_5ZP.cjs.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/useBreakpoint.d.ts +45 -0
- package/dist/{composables-D5lRsZJQ.js → composables-DrTx5qQQ.js} +2 -2
- package/dist/{composables-D5lRsZJQ.js.map → composables-DrTx5qQQ.js.map} +1 -1
- package/dist/{composables-DuOYSFox.cjs → composables-S1-B8Ncs.cjs} +2 -2
- package/dist/{composables-DuOYSFox.cjs.map → composables-S1-B8Ncs.cjs.map} +1 -1
- package/dist/composables.cjs +1 -1
- package/dist/composables.js +3 -3
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +38 -38
- package/dist/index.js.map +1 -1
- package/dist/primevue-components.css +1 -1
- package/dist/useFormKeyboardNav-BsKFhycF.cjs +3 -0
- package/dist/useFormKeyboardNav-BsKFhycF.cjs.map +1 -0
- package/dist/{useFormKeyboardNav-DGbCVk4F.js → useFormKeyboardNav-Cv8b6Vh3.js} +130 -103
- package/dist/useFormKeyboardNav-Cv8b6Vh3.js.map +1 -0
- package/package.json +1 -1
- package/dist/components-B2qPV7fZ.js.map +0 -1
- package/dist/components-C20vwrj8.cjs +0 -25
- package/dist/components-C20vwrj8.cjs.map +0 -1
- package/dist/useFormKeyboardNav-DGbCVk4F.js.map +0 -1
- package/dist/useFormKeyboardNav-pw3m7oX4.cjs +0 -3
- package/dist/useFormKeyboardNav-pw3m7oX4.cjs.map +0 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));const l=require("./routeTabs-BnVpnSeJ.cjs");let u=require("vue"),d=require("dayjs");d=c(d,1);let f=require("primevue/usetoast"),p=require("primevue/useconfirm");var m={celular:600,retrato:840,desktop:1200};function h(e){let t=(0,u.ref)(!1);if(typeof window>`u`||typeof window.matchMedia!=`function`)return t;let n=window.matchMedia(e);t.value=n.matches;let r=e=>{t.value=e.matches};return n.addEventListener(`change`,r),(0,u.onScopeDispose)(()=>n.removeEventListener(`change`,r)),t}function g(){let e=h(`(max-width: ${m.celular-1}px)`),t=h(`(max-width: ${m.retrato-1}px)`),n=h(`(min-width: ${m.retrato}px)`),r=h(`(min-width: ${m.desktop}px)`),i=h(`(pointer: coarse)`);return{isCelular:(0,u.readonly)(e),isRetrato:(0,u.readonly)(t),isPaisagem:(0,u.readonly)(n),isDesktop:(0,u.readonly)(r),isToque:(0,u.readonly)(i)}}var _=c(o(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_customParseFormat=r()})(e,(function(){"use strict";var e={LTS:`h:mm:ss A`,LT:`h:mm A`,L:`MM/DD/YYYY`,LL:`MMMM D, YYYY`,LLL:`MMMM D, YYYY h:mm A`,LLLL:`dddd, MMMM D, YYYY h:mm A`},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d/,r=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)},c=function(e){return function(t){this[e]=+t}},l=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||={}).offset=function(e){if(!e||e===`Z`)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return n===0?0:t[0]===`+`?-n:n}(e)}],u=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?`pm`:`PM`);return n},f={A:[a,function(e){this.afternoon=d(e,!1)}],a:[a,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*e}],SS:[r,function(e){this.milliseconds=10*e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[i,c(`seconds`)],ss:[i,c(`seconds`)],m:[i,c(`minutes`)],mm:[i,c(`minutes`)],H:[i,c(`hours`)],h:[i,c(`hours`)],HH:[i,c(`hours`)],hh:[i,c(`hours`)],D:[i,c(`day`)],DD:[r,c(`day`)],Do:[a,function(e){var t=o.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,``)===e&&(this.day=r)}],w:[i,c(`week`)],ww:[r,c(`week`)],M:[i,c(`month`)],MM:[r,c(`month`)],MMM:[a,function(e){var t=u(`months`),n=(u(`monthsShort`)||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw Error();this.month=n%12||n}],MMMM:[a,function(e){var t=u(`months`).indexOf(e)+1;if(t<1)throw Error();this.month=t%12||t}],Y:[/[+-]?\d+/,c(`year`)],YY:[r,function(e){this.year=s(e)}],YYYY:[/\d{4}/,c(`year`)],Z:l,ZZ:l};function p(n){for(var r=n,i=o&&o.formats,a=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var a=r&&r.toUpperCase();return n||i[r]||e[r]||i[a].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),s=a.length,c=0;c<s;c+=1){var l=a[c],u=f[l],d=u&&u[0],p=u&&u[1];a[c]=p?{regex:d,parser:p}:l.replace(/^\[|\]$/g,``)}return function(e){for(var t={},n=0,r=0;n<s;n+=1){var i=a[n];if(typeof i==`string`)r+=i.length;else{var o=i.regex,c=i.parser,l=e.slice(r),u=o.exec(l)[0];c.call(t,u),e=e.replace(u,``)}}return function(e){var t=e.afternoon;if(t!==void 0){var n=e.hours;t?n<12&&(e.hours+=12):n===12&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(s=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,a=e.args;this.$u=r;var s=a[1];if(typeof s==`string`){var c=!0===a[2],l=!0===a[3],u=c||l,d=a[2];l&&(d=a[2]),o=this.$locale(),!c&&d&&(o=n.Ls[d]),this.$d=function(e,t,n,r){try{if([`x`,`X`].indexOf(t)>-1)return new Date((t===`X`?1e3:1)*e);var i=p(t)(e),a=i.year,o=i.month,s=i.day,c=i.hours,l=i.minutes,u=i.seconds,d=i.milliseconds,f=i.zone,m=i.week,h=new Date,g=s||(a||o?1:h.getDate()),_=a||h.getFullYear(),v=0;a&&!o||(v=o>0?o-1:h.getMonth());var y,b=c||0,x=l||0,S=u||0,C=d||0;return f?new Date(Date.UTC(_,v,g,b,x,S,C+60*f.offset*1e3)):n?new Date(Date.UTC(_,v,g,b,x,S,C)):(y=new Date(_,v,g,b,x,S,C),m&&(y=r(y).week(m).toDate()),y)}catch{return new Date(``)}}(t,s,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(s)&&(this.$d=new Date(``)),o={}}else if(s instanceof Array)for(var f=s.length,m=1;m<=f;m+=1){a[1]=s[m-1];var h=n.apply(this,a);if(h.isValid()){this.$d=h.$d,this.$L=h.$L,this.init();break}m===f&&(this.$d=new Date(``))}else i.call(this,e)}}}))}))(),1);d.default.extend(_.default);function v(e){if(!e)return null;if(e instanceof Date)return e;let t=(0,d.default)(e,`YYYY-MM-DD`,!0);return t.isValid()?t.toDate():(0,d.default)(e).toDate()}function y(e){return e?typeof e==`string`?e:(0,d.default)(e).format(`YYYY-MM-DD`):null}function b(e){return e?typeof e==`string`?e:(0,d.default)(e).toISOString():null}function x(e,t=`DD/MM/YYYY`){return e?(0,d.default)(e).format(t):`—`}function S(e){return e?(0,d.default)(e).format(`DD/MM/YYYY HH:mm`):`—`}function C(e){return e.replace(/\D/g,``)}function w(e){if(!e)return`—`;let t=C(e);return t.length===11?t.replace(/^(\d{3})(\d{3})(\d{3})(\d{2})$/,`$1.$2.$3-$4`):e}function T(e){if(!e)return`—`;let t=C(e);return t.length===14?t.replace(/^(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/,`$1.$2.$3/$4-$5`):e}function E(e){if(!e)return`—`;let t=C(e);return t.length===11?w(e):t.length===14?T(e):e}function D(e){if(!e)return`—`;let t=C(e);return t.length===11?t.replace(/^(\d{2})(\d{5})(\d{4})$/,`($1) $2-$3`):t.length===10?t.replace(/^(\d{2})(\d{4})(\d{4})$/,`($1) $2-$3`):e}function O(e){if(!e)return null;let t=C(e);if(t.length!==11)return`CPF deve ter 11 dígitos.`;if(/^(\d)\1{10}$/.test(t))return`CPF inválido.`;let n=0;for(let e=0;e<9;e++)n+=parseInt(t[e])*(10-e);let r=n%11,i=r<2?0:11-r;if(parseInt(t[9])!==i)return`CPF inválido.`;n=0;for(let e=0;e<10;e++)n+=parseInt(t[e])*(11-e);r=n%11;let a=r<2?0:11-r;return parseInt(t[10])===a?null:`CPF inválido.`}function k(e){if(!e)return null;let t=C(e);if(t.length!==14)return`CNPJ deve ter 14 dígitos.`;if(/^(\d)\1{13}$/.test(t))return`CNPJ inválido.`;let n=[5,4,3,2,9,8,7,6,5,4,3,2],r=0;for(let e=0;e<12;e++)r+=parseInt(t[e])*n[e];let i=r%11,a=i<2?0:11-i;if(parseInt(t[12])!==a)return`CNPJ inválido.`;let o=[6,5,4,3,2,9,8,7,6,5,4,3,2];r=0;for(let e=0;e<13;e++)r+=parseInt(t[e])*o[e];i=r%11;let s=i<2?0:11-i;return parseInt(t[13])===s?null:`CNPJ inválido.`}function A(e){if(!e)return null;let t=C(e);return t.length===11?O(e):t.length===14?k(e):`CPF deve ter 11 dígitos ou CNPJ deve ter 14 dígitos.`}var j=new Map;function M(e,t){let n=`${e}-${t}`,r=j.get(n);return r||(r=new Intl.NumberFormat(e,{minimumFractionDigits:t,maximumFractionDigits:t}),j.set(n,r)),r}function N(e,t){let n=`${e}-${t}`,r=j.get(n);return r||(r=new Intl.NumberFormat(e,{style:`currency`,currency:t}),j.set(n,r)),r}function P(){let e=(0,u.inject)(l.i,{defaultPageSize:20,dateFormat:`DD/MM/YYYY`,dateTimeFormat:`DD/MM/YYYY HH:mm`,locale:`pt-BR`,currency:`BRL`}),t=e?.locale??`pt-BR`,n=e?.currency??`BRL`;function r(e){return e==null?`—`:N(t,n).format(e)}function i(e,n=2){return e==null?`—`:M(t,n).format(e)}function a(t,n){return x(t,n??e?.dateFormat??`DD/MM/YYYY`)}function o(e){return S(e)}function s(e){return e==null?`—`:`${M(t,2).format(e)}%`}return{formatCurrency:r,formatNumber:i,formatDate:a,formatDateTime:o,formatPercent:s,formatCpf:w,formatCnpj:T,formatCpfCnpj:E,formatTelefone:D,validateCpf:O,validateCnpj:k,validateCpfCnpj:A,parseDate:v,toDateString:y,toDateTimeString:b}}function F(e){let t={};for(let n of e)t[n.field]=n.defaultValue===void 0?null:typeof n.defaultValue==`function`?n.defaultValue():n.defaultValue;return t}function I(e,t,n){let r={};for(let i of t){let t=e[i.field]===void 0?null:e[i.field];t&&(i.type===`date`||i.type===`datetime`)&&typeof t==`string`&&(t=v(t)),n[i.field]=t,r[i.field]=t}return r}function L(e,t){let n={...e};for(let e of t){let t=n[e.field];if(e.type===`date`&&t instanceof Date?n[e.field]=y(t):e.type===`datetime`&&t instanceof Date&&(n[e.field]=b(t)),e.type===`fk`&&typeof t==`object`&&t){let r=e.optionValue||`id`;n[e.field]=t[r]??t}(e.type===`mask`||e.type===`cpf_cnpj`)&&typeof t==`string`&&(n[e.field]=C(t))}return n}function R(e,t,n=!1){return e.visible===void 0||e.visible===!0?!0:typeof e.visible==`function`?e.visible(t,n):e.visible}function z(e,t,n=!1){for(let r of e)if(R(r,t,n)){if(r.validate){let e=r.validate(t[r.field]);if(e)return e}if(r.required){let e=t[r.field];if(e==null||e===``)return`${r.label} é obrigatório`}}return null}function B(){let e=(0,f.useToast)();function t(t,n=`Sucesso`){e.add({severity:`success`,summary:n,detail:t,life:3e3})}function n(t,n=`Erro`){e.add({severity:`error`,summary:n,detail:t,life:5e3})}function r(t,n=`Atenção`){e.add({severity:`warn`,summary:n,detail:t,life:4e3})}function i(t,n=`Info`){e.add({severity:`info`,summary:n,detail:t,life:3e3})}return{success:t,error:n,warn:r,info:i}}function V(){let e=(0,p.useConfirm)(),t=l.n(),n=()=>t?.hostEl.value??`body`;function r(t,r=`Deseja realmente excluir este registro?`){e.require({appendTo:n(),message:r,header:`Confirmar Exclusão`,icon:`pi pi-trash`,rejectLabel:`Cancelar`,rejectProps:{severity:`secondary`,text:!0},acceptLabel:`Excluir`,acceptProps:{severity:`danger`},accept:t})}function i(t,r,i=`Confirmação`){e.require({appendTo:n(),message:t,header:i,icon:`pi pi-question-circle`,rejectLabel:`Cancelar`,rejectProps:{severity:`secondary`,text:!0},acceptLabel:`Confirmar`,accept:r})}return{confirmDelete:r,confirmAction:i}}function H(e){return e.replace(/_/g,` `).replace(/^\w/,e=>e.toUpperCase())}function U(e){if(typeof e==`string`)return e;if(Array.isArray(e)){let t=e.filter(e=>typeof e==`string`);return t.length>0?t.join(` `):null}if(typeof e==`object`&&e){let t=e;if(Array.isArray(t.non_field_errors)&&t.non_field_errors.length>0)return t.non_field_errors.filter(e=>typeof e==`string`).join(` `);let n=[];for(let[e,r]of Object.entries(t)){if(e===`non_field_errors`)continue;let t=H(e);if(Array.isArray(r)){let e=r.filter(e=>typeof e==`string`);e.length>0&&n.push(`${t}: ${e.join(` `)}`)}else typeof r==`string`&&n.push(`${t}: ${r}`)}return n.length>0?n.join(`
|
|
2
|
+
`):null}return null}function W(e,t=`Erro inesperado`){if(!e||typeof e!=`object`)return t;let n=e,r=n.response?.data;return!r||typeof r!=`object`?n.message||t:U(r.detail??r)||t}function G(){return{extractApiError:W}}d.default.extend(_.default);var K=`DD/MM/YYYY`,q=`DD/MM/YYYY HH:mm`,J=`YYYY-MM-DD`,Y=`YYYY-MM-DDTHH:mm:ss`;function X(e={}){let t=()=>e.showTime?.()??!1,n=()=>t()?q:K,r=()=>t()?`##/##/#### ##:##`:`##/##/####`,i=()=>t()?`dd/mm/aaaa hh:mm`:`dd/mm/aaaa`;function a(e){if(e==null||e===``)return null;if(e instanceof Date)return isNaN(e.getTime())?null:e;if(typeof e==`string`){let t=(0,d.default)(e,J,!0);if(t.isValid())return t.toDate();let n=(0,d.default)(e);return n.isValid()?n.toDate():null}return null}function o(n){return n?(e.valueFormat?.()??`iso`)===`date`?n:(0,d.default)(n).format(t()?Y:J):null}function s(e){return e?(0,d.default)(e).format(n()):``}function c(e){if(!e)return null;let t=(0,d.default)(e,n(),!0);return t.isValid()?t.toDate():null}function l(){return t()?new Date:(0,d.default)().startOf(`day`).toDate()}return{toDate:a,toValue:o,toDisplay:s,fromDisplay:c,today:l,mask:r,placeholder:i,displayFormat:n}}var Z=[`input:not([type="hidden"]):not([disabled])`,`textarea:not([disabled])`,`select:not([disabled])`,`button:not([disabled])`,`[tabindex]:not([tabindex="-1"])`,`[contenteditable="true"]`].join(`, `),Q=[`.p-select-overlay`,`.p-autocomplete-overlay`,`.p-multiselect-overlay`,`.p-datepicker-panel`,`.p-cascadeselect-overlay`,`.p-treeselect-overlay`].join(`, `);function $(e,t={}){let n=()=>!t.enabled||t.enabled();function r(){let t=e.value;return t?Array.from(t.querySelectorAll(Z)).filter(e=>e.getClientRects().length>0&&!e.hasAttribute(`data-kbd-skip`)):[]}function i(){n()&&(0,u.nextTick)(()=>{let e=r(),t=e.find(e=>e.tagName!==`BUTTON`)??e[0];if(!t)return;t.focus();let n=t;if(typeof n.select==`function`)try{n.select()}catch{}})}function a(e){if(!n()||e.key!==`Enter`||e.isComposing)return;let i=e.target;if(i.tagName===`TEXTAREA`||i.tagName===`BUTTON`||i.getAttribute(`aria-expanded`)===`true`||document.querySelector(Q))return;e.preventDefault();let a=r(),o=a.indexOf(i);if(o===-1)return;let s=a[o+1];s?s.focus():t.onSubmit?.()}return{focusFirst:i,handleKeydown:a}}Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return c}});
|
|
3
|
+
//# sourceMappingURL=useFormKeyboardNav-BsKFhycF.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFormKeyboardNav-BsKFhycF.cjs","names":[],"sources":["../src/composables/useBreakpoint.ts","../node_modules/dayjs/plugin/customParseFormat.js","../src/utils/dates.ts","../src/utils/masks.ts","../src/composables/useFormatters.ts","../src/utils/formRecord.ts","../src/composables/useAppToast.ts","../src/composables/useAppConfirm.ts","../src/composables/useApiError.ts","../src/composables/useDateInput.ts","../src/composables/useFormKeyboardNav.ts"],"sourcesContent":["import { onScopeDispose, readonly, ref, type Ref } from 'vue'\n\n/**\n * Faixas de largura da suite — a régua de layout.\n *\n * ```\n * < 600px celular 1 coluna, navegação colapsada\n * 600-839px tablet RETRATO 1 painel por vez, drill-in com voltar\n * 840-1199px tablet PAISAGEM 2 painéis lado a lado\n * >= 1200px desktop 2-3 painéis, densidade de mesa\n * ```\n *\n * 840px é a fronteira medium/expanded do Material — a única com dado de parque\n * (93,7% dos tablets em retrato abaixo dela, 97,2% em paisagem acima). Todo\n * tablet de 10-11\" em retrato mede 768-876 CSS px; em paisagem, >= 1024.\n *\n * **Largura, nunca `orientation`**: travar ou ramificar por orientação é falha de\n * acessibilidade (WCAG 1.3.4), e um tablet de 12,9\" em retrato tem largura de\n * laptop — ele deve receber o layout de duas colunas.\n */\nexport const BREAKPOINTS = {\n /** Acima disto é tablet ou maior. */\n celular: 600,\n /** Acima disto cabem dois painéis lado a lado. */\n retrato: 840,\n /** Acima disto é mesa: densidade e três painéis liberados. */\n desktop: 1200,\n} as const\n\n/** Uma media query reativa, com limpeza automática ao sair do escopo. */\nfunction useMediaQuery(query: string): Ref<boolean> {\n const matches = ref(false)\n\n // Sem `window` (SSR, teste em ambiente node) a resposta é `false` — o layout\n // de mesa é o default e o cliente corrige na hidratação.\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return matches\n }\n\n const mql = window.matchMedia(query)\n matches.value = mql.matches\n\n const onChange = (event: MediaQueryListEvent) => {\n matches.value = event.matches\n }\n mql.addEventListener('change', onChange)\n onScopeDispose(() => mql.removeEventListener('change', onChange))\n\n return matches\n}\n\n/**\n * Em qual faixa a janela está, e se o ponteiro primário é o dedo.\n *\n * `isToque` vem de `pointer: coarse` — o ponteiro **primário**, então notebook\n * com tela sensível continua reportando `fine` e não é afetado.\n *\n * ```ts\n * const { isRetrato, isToque } = useBreakpoint()\n * // isRetrato: uma coluna, drill-in, tabela vira card\n * ```\n */\nexport function useBreakpoint() {\n const isCelular = useMediaQuery(`(max-width: ${BREAKPOINTS.celular - 1}px)`)\n /** Tablet em pé ou menor: um painel por vez. */\n const isRetrato = useMediaQuery(`(max-width: ${BREAKPOINTS.retrato - 1}px)`)\n /** Tablet deitado ou maior: cabem dois painéis. */\n const isPaisagem = useMediaQuery(`(min-width: ${BREAKPOINTS.retrato}px)`)\n const isDesktop = useMediaQuery(`(min-width: ${BREAKPOINTS.desktop}px)`)\n /** O dedo é o ponteiro: alvos maiores, sem hover. */\n const isToque = useMediaQuery('(pointer: coarse)')\n\n return {\n isCelular: readonly(isCelular),\n isRetrato: readonly(isRetrato),\n isPaisagem: readonly(isPaisagem),\n isDesktop: readonly(isDesktop),\n isToque: readonly(isToque),\n }\n}\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d/,r=/\\d\\d/,i=/\\d\\d?/,o=/\\d*[^-_:/,()\\s\\d]+/,s={},a=function(e){return(e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f<a;f+=1){var h=o[f],u=c[h],d=u&&u[0],l=u&&u[1];o[f]=l?{regex:d,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=o[n];if(\"string\"==typeof i)r+=i.length;else{var s=i.regex,f=i.parser,h=e.slice(r),u=s.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,o=e.args;this.$u=r;var a=o[1];if(\"string\"==typeof a){var f=!0===o[2],h=!0===o[3],u=f||h,d=o[2];h&&(d=o[2]),s=this.$locale(),!f&&d&&(s=n.Ls[d]),this.$d=function(e,t,n,r){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","import dayjs from 'dayjs'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\n\ndayjs.extend(customParseFormat)\n\nexport function parseDate(value: string | Date | null | undefined): Date | null {\n if (!value) return null\n if (value instanceof Date) return value\n const d = dayjs(value, 'YYYY-MM-DD', true)\n return d.isValid() ? d.toDate() : dayjs(value).toDate()\n}\n\nexport function toDateString(value: Date | string | null | undefined): string | null {\n if (!value) return null\n if (typeof value === 'string') return value\n return dayjs(value).format('YYYY-MM-DD')\n}\n\nexport function toDateTimeString(value: Date | string | null | undefined): string | null {\n if (!value) return null\n if (typeof value === 'string') return value\n return dayjs(value).toISOString()\n}\n\nexport function formatDateValue(\n value: string | Date | null | undefined,\n format = 'DD/MM/YYYY',\n): string {\n if (!value) return '—'\n return dayjs(value).format(format)\n}\n\nexport function formatDateTimeValue(value: string | Date | null | undefined): string {\n if (!value) return '—'\n return dayjs(value).format('DD/MM/YYYY HH:mm')\n}\n","export function stripMask(value: string): string {\n return value.replace(/\\D/g, '')\n}\n\nexport function formatCpf(value: string | null | undefined): string {\n if (!value) return '—'\n const digits = stripMask(value)\n if (digits.length !== 11) return value\n return digits.replace(/^(\\d{3})(\\d{3})(\\d{3})(\\d{2})$/, '$1.$2.$3-$4')\n}\n\nexport function formatCnpj(value: string | null | undefined): string {\n if (!value) return '—'\n const digits = stripMask(value)\n if (digits.length !== 14) return value\n return digits.replace(/^(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})$/, '$1.$2.$3/$4-$5')\n}\n\nexport function formatCpfCnpj(value: string | null | undefined): string {\n if (!value) return '—'\n const digits = stripMask(value)\n if (digits.length === 11) return formatCpf(value)\n if (digits.length === 14) return formatCnpj(value)\n return value\n}\n\nexport function formatTelefone(value: string | null | undefined): string {\n if (!value) return '—'\n const digits = stripMask(value)\n if (digits.length === 11) return digits.replace(/^(\\d{2})(\\d{5})(\\d{4})$/, '($1) $2-$3')\n if (digits.length === 10) return digits.replace(/^(\\d{2})(\\d{4})(\\d{4})$/, '($1) $2-$3')\n return value\n}\n\nexport function validateCpf(value: string | null | undefined): string | null {\n if (!value) return null\n const cpf = stripMask(value)\n if (cpf.length !== 11) return 'CPF deve ter 11 dígitos.'\n if (/^(\\d)\\1{10}$/.test(cpf)) return 'CPF inválido.'\n let soma = 0\n for (let i = 0; i < 9; i++) soma += parseInt(cpf[i]) * (10 - i)\n let resto = soma % 11\n const d1 = resto < 2 ? 0 : 11 - resto\n if (parseInt(cpf[9]) !== d1) return 'CPF inválido.'\n soma = 0\n for (let i = 0; i < 10; i++) soma += parseInt(cpf[i]) * (11 - i)\n resto = soma % 11\n const d2 = resto < 2 ? 0 : 11 - resto\n if (parseInt(cpf[10]) !== d2) return 'CPF inválido.'\n return null\n}\n\nexport function validateCnpj(value: string | null | undefined): string | null {\n if (!value) return null\n const cnpj = stripMask(value)\n if (cnpj.length !== 14) return 'CNPJ deve ter 14 dígitos.'\n if (/^(\\d)\\1{13}$/.test(cnpj)) return 'CNPJ inválido.'\n const pesos1 = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]\n let soma = 0\n for (let i = 0; i < 12; i++) soma += parseInt(cnpj[i]) * pesos1[i]\n let resto = soma % 11\n const d1 = resto < 2 ? 0 : 11 - resto\n if (parseInt(cnpj[12]) !== d1) return 'CNPJ inválido.'\n const pesos2 = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]\n soma = 0\n for (let i = 0; i < 13; i++) soma += parseInt(cnpj[i]) * pesos2[i]\n resto = soma % 11\n const d2 = resto < 2 ? 0 : 11 - resto\n if (parseInt(cnpj[13]) !== d2) return 'CNPJ inválido.'\n return null\n}\n\nexport function validateCpfCnpj(value: string | null | undefined): string | null {\n if (!value) return null\n const digits = stripMask(value)\n if (digits.length === 11) return validateCpf(value)\n if (digits.length === 14) return validateCnpj(value)\n return 'CPF deve ter 11 dígitos ou CNPJ deve ter 14 dígitos.'\n}\n","import { inject } from 'vue'\nimport { W_CONFIG_KEY } from '@/types/plugin'\nimport type { WPluginConfig } from '@/types/plugin'\nimport {\n formatDateValue,\n formatDateTimeValue,\n parseDate,\n toDateString,\n toDateTimeString,\n} from '@/utils/dates'\nimport {\n formatCpf,\n formatCnpj,\n formatCpfCnpj,\n formatTelefone,\n validateCpf,\n validateCnpj,\n validateCpfCnpj,\n} from '@/utils/masks'\n\nconst numberFormatters = new Map<string, Intl.NumberFormat>()\n\nfunction getNumberFormatter(locale: string, decimals: number): Intl.NumberFormat {\n const key = `${locale}-${decimals}`\n let fmt = numberFormatters.get(key)\n if (!fmt) {\n fmt = new Intl.NumberFormat(locale, {\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n })\n numberFormatters.set(key, fmt)\n }\n return fmt\n}\n\nfunction getCurrencyFormatter(locale: string, currency: string): Intl.NumberFormat {\n const key = `${locale}-${currency}`\n let fmt = numberFormatters.get(key)\n if (!fmt) {\n fmt = new Intl.NumberFormat(locale, {\n style: 'currency',\n currency,\n })\n numberFormatters.set(key, fmt)\n }\n return fmt\n}\n\nexport function useFormatters() {\n const config = inject<WPluginConfig>(W_CONFIG_KEY, {\n defaultPageSize: 20,\n dateFormat: 'DD/MM/YYYY',\n dateTimeFormat: 'DD/MM/YYYY HH:mm',\n locale: 'pt-BR',\n currency: 'BRL',\n } as WPluginConfig)\n\n const locale = config?.locale ?? 'pt-BR'\n const currencyCode = config?.currency ?? 'BRL'\n\n function formatCurrency(value: number | null | undefined): string {\n if (value == null) return '—'\n return getCurrencyFormatter(locale, currencyCode).format(value)\n }\n\n function formatNumber(value: number | null | undefined, decimals = 2): string {\n if (value == null) return '—'\n return getNumberFormatter(locale, decimals).format(value)\n }\n\n function formatDate(value: string | Date | null | undefined, format?: string): string {\n return formatDateValue(value, format ?? config?.dateFormat ?? 'DD/MM/YYYY')\n }\n\n function formatDateTime(value: string | Date | null | undefined): string {\n return formatDateTimeValue(value)\n }\n\n function formatPercent(value: number | null | undefined): string {\n if (value == null) return '—'\n return `${getNumberFormatter(locale, 2).format(value)}%`\n }\n\n return {\n formatCurrency,\n formatNumber,\n formatDate,\n formatDateTime,\n formatPercent,\n formatCpf,\n formatCnpj,\n formatCpfCnpj,\n formatTelefone,\n validateCpf,\n validateCnpj,\n validateCpfCnpj,\n parseDate,\n toDateString,\n toDateTimeString,\n }\n}\n","/**\n * Regras de formulário que independem de onde o registro é gravado.\n *\n * Nasceram dentro do `useCrudManager` (que grava numa API) e saíram para cá quando o\n * `useSubviewCrud` passou a precisar das mesmas: um form é um form, o destino do\n * payload é que muda. Manter uma cópia em cada manager faria as duas divergirem no\n * primeiro `FieldType` novo.\n */\nimport type { FieldDef } from '@/types/field'\nimport { parseDate, toDateString, toDateTimeString } from './dates'\nimport { stripMask } from './masks'\n\n/** Valor inicial de cada campo: `defaultValue` (avaliado, se função) ou `null`. */\nexport function getFieldDefaults(fields: FieldDef[]): Record<string, unknown> {\n const defaults: Record<string, unknown> = {}\n for (const f of fields) {\n defaults[f.field] =\n f.defaultValue !== undefined\n ? typeof f.defaultValue === 'function'\n ? (f.defaultValue as () => unknown)()\n : f.defaultValue\n : null\n }\n return defaults\n}\n\n/**\n * Lê um registro existente para dentro do form.\n *\n * Data vem do servidor como string e o `WDatePicker` trabalha com `Date` — por isso a\n * volta por `parseDate`. Devolve o snapshot dos valores carregados, que o chamador usa\n * como base do diff quando quiser mandar só o que mudou.\n */\nexport function loadItemIntoRecord(\n item: Record<string, unknown>,\n fields: FieldDef[],\n target: Record<string, unknown>,\n): Record<string, unknown> {\n const snapshot: Record<string, unknown> = {}\n for (const f of fields) {\n let value = item[f.field] !== undefined ? item[f.field] : null\n if (value && (f.type === 'date' || f.type === 'datetime') && typeof value === 'string') {\n value = parseDate(value)\n }\n target[f.field] = value\n snapshot[f.field] = value\n }\n return snapshot\n}\n\n/**\n * Converte o form no registro que vai ser gravado: data vira string, FK vira id, campo\n * mascarado perde a máscara. Devolve objeto novo — o form não é tocado.\n */\nexport function convertFormRecord(\n record: Record<string, unknown>,\n fields: FieldDef[],\n): Record<string, unknown> {\n const out: Record<string, unknown> = { ...record }\n for (const f of fields) {\n const val = out[f.field]\n\n // Datas\n if (f.type === 'date' && val instanceof Date) {\n out[f.field] = toDateString(val)\n } else if (f.type === 'datetime' && val instanceof Date) {\n out[f.field] = toDateTimeString(val)\n }\n\n // FK — extrair o ID do objeto selecionado\n if (f.type === 'fk' && val !== null && typeof val === 'object') {\n const key = f.optionValue || 'id'\n out[f.field] = (val as Record<string, unknown>)[key] ?? val\n }\n\n // Máscaras — strip para gravar só dígitos\n if ((f.type === 'mask' || f.type === 'cpf_cnpj') && typeof val === 'string') {\n out[f.field] = stripMask(val)\n }\n }\n return out\n}\n\n/** Resolve `visible` do campo (boolean ou função) para o estado atual do form. */\nexport function isFieldVisible(\n field: FieldDef,\n formData: Record<string, unknown>,\n isEditing = false,\n): boolean {\n if (field.visible === undefined || field.visible === true) return true\n if (typeof field.visible === 'function') return field.visible(formData, isEditing)\n return field.visible\n}\n\n/**\n * Primeira mensagem de erro do form, ou `null` se está tudo certo.\n *\n * Campo oculto (`visible` falso para o form atual) não é validado: o usuário não\n * tem como preenchê-lo, então `required`/`validate` dele não podem barrar o save.\n *\n * A ordem importa: o `validate` do campo vence a obrigatoriedade, para a mensagem\n * específica (\"CNPJ inválido\") aparecer no lugar da genérica.\n */\nexport function validateFormRecord(\n fields: FieldDef[],\n formData: Record<string, unknown>,\n isEditing = false,\n): string | null {\n for (const f of fields) {\n if (!isFieldVisible(f, formData, isEditing)) continue\n if (f.validate) {\n const result = f.validate(formData[f.field])\n if (result) return result\n }\n if (f.required) {\n const val = formData[f.field]\n if (val === null || val === undefined || val === '') {\n return `${f.label} é obrigatório`\n }\n }\n }\n return null\n}\n","import { useToast } from 'primevue/usetoast'\n\nexport function useAppToast() {\n const toast = useToast()\n\n function success(message: string, title = 'Sucesso') {\n toast.add({ severity: 'success', summary: title, detail: message, life: 3000 })\n }\n\n function error(message: string, title = 'Erro') {\n toast.add({ severity: 'error', summary: title, detail: message, life: 5000 })\n }\n\n function warn(message: string, title = 'Atenção') {\n toast.add({ severity: 'warn', summary: title, detail: message, life: 4000 })\n }\n\n function info(message: string, title = 'Info') {\n toast.add({ severity: 'info', summary: title, detail: message, life: 3000 })\n }\n\n return { success, error, warn, info }\n}\n","import { useConfirm } from 'primevue/useconfirm'\nimport { useTabHost } from '@/types/routeTabs'\n\nexport function useAppConfirm() {\n const confirm = useConfirm()\n // Dentro da navegação por abas, o confirm pendura no pane da própria aba\n // (some e volta com ela); fora de abas, o body de sempre. O ConfirmDialog\n // global continua único — só a âncora muda, por confirmação.\n const tabHost = useTabHost()\n const appendTo = () => tabHost?.hostEl.value ?? 'body'\n\n function confirmDelete(\n onAccept: () => void,\n message = 'Deseja realmente excluir este registro?',\n ) {\n confirm.require({\n appendTo: appendTo(),\n message,\n header: 'Confirmar Exclusão',\n icon: 'pi pi-trash',\n rejectLabel: 'Cancelar',\n rejectProps: {\n severity: 'secondary',\n text: true,\n },\n acceptLabel: 'Excluir',\n acceptProps: {\n severity: 'danger',\n },\n accept: onAccept,\n })\n }\n\n function confirmAction(message: string, onAccept: () => void, header = 'Confirmação') {\n confirm.require({\n appendTo: appendTo(),\n message,\n header,\n icon: 'pi pi-question-circle',\n rejectLabel: 'Cancelar',\n rejectProps: {\n severity: 'secondary',\n text: true,\n },\n acceptLabel: 'Confirmar',\n accept: onAccept,\n })\n }\n\n return { confirmDelete, confirmAction }\n}\n","function formatFieldName(field: string): string {\n return field.replace(/_/g, ' ').replace(/^\\w/, (c) => c.toUpperCase())\n}\n\nfunction extractMessage(detail: unknown): string | null {\n if (typeof detail === 'string') {\n return detail\n }\n\n if (Array.isArray(detail)) {\n const messages = detail.filter((item) => typeof item === 'string')\n return messages.length > 0 ? messages.join(' ') : null\n }\n\n if (typeof detail === 'object' && detail !== null) {\n const obj = detail as Record<string, unknown>\n\n if (Array.isArray(obj.non_field_errors) && obj.non_field_errors.length > 0) {\n return obj.non_field_errors.filter((item: unknown) => typeof item === 'string').join(' ')\n }\n\n const messages: string[] = []\n for (const [key, value] of Object.entries(obj)) {\n if (key === 'non_field_errors') continue\n const label = formatFieldName(key)\n if (Array.isArray(value)) {\n const strs = value.filter((item: unknown) => typeof item === 'string')\n if (strs.length > 0) messages.push(`${label}: ${strs.join(' ')}`)\n } else if (typeof value === 'string') {\n messages.push(`${label}: ${value}`)\n }\n }\n return messages.length > 0 ? messages.join('\\n') : null\n }\n\n return null\n}\n\nexport function extractApiError(error: unknown, fallback = 'Erro inesperado'): string {\n if (!error || typeof error !== 'object') return fallback\n\n const axiosError = error as {\n response?: { data?: Record<string, unknown> }\n message?: string\n }\n const data = axiosError.response?.data\n\n if (!data || typeof data !== 'object') {\n return axiosError.message || fallback\n }\n\n const detail = data.detail ?? data\n return extractMessage(detail) || fallback\n}\n\nexport function useApiError() {\n return { extractApiError }\n}\n","import dayjs from 'dayjs'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\n\ndayjs.extend(customParseFormat)\n\n/**\n * Formato do valor emitido pelo WDatePicker:\n * - `'iso'` → string `YYYY-MM-DD` (ou `YYYY-MM-DDTHH:mm:ss` com hora). Ideal p/ API.\n * - `'date'` → objeto `Date` (compatível com o contrato atual do useCrudManager).\n */\nexport type DateValueFormat = 'iso' | 'date'\n\nconst DISPLAY_DATE = 'DD/MM/YYYY'\nconst DISPLAY_DATETIME = 'DD/MM/YYYY HH:mm'\nconst ISO_DATE = 'YYYY-MM-DD'\nconst ISO_DATETIME = 'YYYY-MM-DDTHH:mm:ss'\n\nexport interface UseDateInputOptions {\n /** Reativo: se o campo inclui hora (datetime). */\n showTime?: () => boolean\n /** Reativo: formato do valor emitido (default `'iso'`). */\n valueFormat?: () => DateValueFormat\n}\n\n/**\n * Lógica pura de parse/format/máscara para inputs de data em pt-BR.\n *\n * Timezone-safe: parse e format usam sempre os componentes LOCAIS via dayjs\n * (nunca `toISOString`, que converte p/ UTC e causa off-by-one em fusos negativos).\n * Sem estado reativo próprio — apenas funções; o componente cuida da reatividade.\n */\nexport function useDateInput(opts: UseDateInputOptions = {}) {\n const withTime = () => opts.showTime?.() ?? false\n const displayFormat = () => (withTime() ? DISPLAY_DATETIME : DISPLAY_DATE)\n const mask = () => (withTime() ? '##/##/#### ##:##' : '##/##/####')\n const placeholder = () => (withTime() ? 'dd/mm/aaaa hh:mm' : 'dd/mm/aaaa')\n\n /** Valor de entrada (string ISO ou Date) → `Date` local, ou `null` se inválido. */\n function toDate(value: unknown): Date | null {\n if (value == null || value === '') return null\n if (value instanceof Date) return isNaN(value.getTime()) ? null : value\n if (typeof value === 'string') {\n // Aceita YYYY-MM-DD estrito primeiro (data pura, meia-noite local)…\n const dateOnly = dayjs(value, ISO_DATE, true)\n if (dateOnly.isValid()) return dateOnly.toDate()\n // …senão qualquer ISO datetime válido (dayjs interpreta como local).\n const any = dayjs(value)\n return any.isValid() ? any.toDate() : null\n }\n return null\n }\n\n /** `Date` → valor emitido, respeitando `valueFormat` (default string ISO). */\n function toValue(date: Date | null): string | Date | null {\n if (!date) return null\n if ((opts.valueFormat?.() ?? 'iso') === 'date') return date\n return dayjs(date).format(withTime() ? ISO_DATETIME : ISO_DATE)\n }\n\n /** `Date` → texto de exibição `DD/MM/YYYY[ HH:mm]`. */\n function toDisplay(date: Date | null): string {\n if (!date) return ''\n return dayjs(date).format(displayFormat())\n }\n\n /** Texto digitado (`30/05/1988`) → `Date`, ou `null` se incompleto/inválido. */\n function fromDisplay(text: string): Date | null {\n if (!text) return null\n const d = dayjs(text, displayFormat(), true)\n return d.isValid() ? d.toDate() : null\n }\n\n /** Hoje: date-only zera a hora; datetime mantém a hora atual. */\n function today(): Date {\n return withTime() ? new Date() : dayjs().startOf('day').toDate()\n }\n\n return { toDate, toValue, toDisplay, fromDisplay, today, mask, placeholder, displayFormat }\n}\n","import { nextTick, type Ref } from 'vue'\n\n/**\n * Navegação por teclado em formulários, estilo aplicação desktop (DevExpress):\n * - `focusFirst()` posiciona o foco no primeiro campo ativo (e seleciona o texto).\n * - `handleKeydown` faz o Enter pular para o próximo campo, até o botão de salvar.\n *\n * Sem watchers nem addEventListener manual: o `handleKeydown` é bindado via\n * `@keydown` no container (o Vue gerencia o listener) e `focusFirst` é chamado\n * no `@show` do Dialog. Shift+Tab / Tab continuam nativos.\n *\n * Regras do Enter (para não atrapalhar a semântica de cada componente):\n * - `textarea` → Enter é quebra de linha (não pula).\n * - `button` → Enter é o clique/submit nativo (não pula).\n * - overlay de dropdown aberto (Select/AutoComplete/DatePicker/MultiSelect) →\n * Enter seleciona o item; só o Enter seguinte pula o foco.\n * - marque um elemento com `data-kbd-skip` para excluí-lo da sequência (ex.: o\n * botão Cancelar, para o Enter ir direto ao Salvar).\n */\n\n// Elementos que recebem foco por tabulação.\nconst FOCUSABLE = [\n 'input:not([type=\"hidden\"]):not([disabled])',\n 'textarea:not([disabled])',\n 'select:not([disabled])',\n 'button:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n '[contenteditable=\"true\"]',\n].join(', ')\n\n// Painéis de dropdown do PrimeVue: quando presentes, o Enter deve selecionar.\nconst OPEN_OVERLAY = [\n '.p-select-overlay',\n '.p-autocomplete-overlay',\n '.p-multiselect-overlay',\n '.p-datepicker-panel',\n '.p-cascadeselect-overlay',\n '.p-treeselect-overlay',\n].join(', ')\n\nexport interface FormKeyboardNavOptions {\n /** Liga/desliga a navegação (default: sempre ligada). */\n enabled?: () => boolean\n /** Chamado quando o Enter passa do último elemento sem próximo foco. */\n onSubmit?: () => void\n}\n\nexport function useFormKeyboardNav(\n container: Ref<HTMLElement | null>,\n options: FormKeyboardNavOptions = {},\n) {\n const isEnabled = () => (options.enabled ? options.enabled() : true)\n\n function focusables(): HTMLElement[] {\n const root = container.value\n if (!root) return []\n return Array.from(root.querySelectorAll<HTMLElement>(FOCUSABLE)).filter(\n (el) => el.getClientRects().length > 0 && !el.hasAttribute('data-kbd-skip'),\n )\n }\n\n function focusFirst(): void {\n if (!isEnabled()) return\n nextTick(() => {\n const els = focusables()\n const first = els.find((el) => el.tagName !== 'BUTTON') ?? els[0]\n if (!first) return\n first.focus()\n // Seleciona o conteúdo de inputs de texto para facilitar sobrescrever.\n const input = first as HTMLInputElement\n if (typeof input.select === 'function') {\n try {\n input.select()\n } catch {\n /* nem todo input suporta select() */\n }\n }\n })\n }\n\n function handleKeydown(e: KeyboardEvent): void {\n if (!isEnabled() || e.key !== 'Enter' || e.isComposing) return\n const target = e.target as HTMLElement\n if (target.tagName === 'TEXTAREA' || target.tagName === 'BUTTON') return\n // Dropdown aberto → deixa o componente tratar o Enter (selecionar item).\n if (target.getAttribute('aria-expanded') === 'true') return\n if (document.querySelector(OPEN_OVERLAY)) return\n\n e.preventDefault()\n const els = focusables()\n const i = els.indexOf(target)\n if (i === -1) return\n const next = els[i + 1]\n if (next) next.focus()\n else options.onSubmit?.()\n }\n\n return { focusFirst, handleKeydown }\n}\n"],"x_google_ignoreList":[1],"mappings":"wtBAoBA,IAAa,EAAc,CAEzB,QAAS,IAET,QAAS,IAET,QAAS,IACX,EAGA,SAAS,EAAc,EAA6B,CAClD,IAAM,GAAA,EAAU,EAAA,IAAA,CAAI,EAAK,EAIzB,GAAI,OAAO,OAAW,KAAe,OAAO,OAAO,YAAe,WAChE,OAAO,EAGT,IAAM,EAAM,OAAO,WAAW,CAAK,EACnC,EAAQ,MAAQ,EAAI,QAEpB,IAAM,EAAY,GAA+B,CAC/C,EAAQ,MAAQ,EAAM,OACxB,EAIA,OAHA,EAAI,iBAAiB,SAAU,CAAQ,GACvC,EAAA,EAAA,eAAA,KAAqB,EAAI,oBAAoB,SAAU,CAAQ,CAAC,EAEzD,CACT,CAaA,SAAgB,GAAgB,CAC9B,IAAM,EAAY,EAAc,eAAe,EAAY,QAAU,EAAE,IAAI,EAErE,EAAY,EAAc,eAAe,EAAY,QAAU,EAAE,IAAI,EAErE,EAAa,EAAc,eAAe,EAAY,QAAQ,IAAI,EAClE,EAAY,EAAc,eAAe,EAAY,QAAQ,IAAI,EAEjE,EAAU,EAAc,mBAAmB,EAEjD,MAAO,CACL,WAAA,EAAW,EAAA,SAAA,CAAS,CAAS,EAC7B,WAAA,EAAW,EAAA,SAAA,CAAS,CAAS,EAC7B,YAAA,EAAY,EAAA,SAAA,CAAS,CAAU,EAC/B,WAAA,EAAW,EAAA,SAAA,CAAS,CAAS,EAC7B,SAAA,EAAS,EAAA,SAAA,CAAS,CAAO,CAC3B,CACF,qBC/EC,SAAS,EAAE,EAAE,CAAW,OAAO,GAAjB,UAA8C,IAApB,OAA2B,EAAO,QAAQ,EAAE,EAAc,OAAO,QAAnB,YAA2B,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,EAAe,OAAO,WAApB,IAA+B,WAAW,GAAG,KAAA,CAAM,+BAA+B,EAAE,CAAC,EAAA,CAAC,GAAO,UAAU,CAAC,aAAa,IAAI,EAAE,CAAC,IAAI,YAAY,GAAG,SAAS,EAAE,aAAa,GAAG,eAAe,IAAI,sBAAsB,KAAK,2BAA2B,EAAE,EAAE,gGAAgG,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,EAAM,EAAE,SAAS,EAAE,CAAC,OAAO,SAAS,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC,AAAY,KAAK,OAAK,CAAC,EAAA,CAAI,OAAO,SAAS,EAAE,CAAgB,GAAZ,CAAC,GAAoB,IAAN,IAAQ,MAAO,GAAE,IAAI,EAAE,EAAE,MAAM,cAAc,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAW,IAAJ,EAAM,EAAQ,EAAE,KAAR,IAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,GAAG,EAAO,KAAA,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,MAAO,GAAE,KAAK,EAAE,KAAK,MAAM,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,aAAa,IAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,aAAa,GAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,SAAS,EAAE,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,MAAM,KAAK,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,SAAS,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,GAAG,EAAE,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAA,CAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,MAAU,MAAI,EAAE,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,MAAU,MAAI,EAAE,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE,CAA4B,IAAI,IAA3B,EAAM,EAAJ,EAAQ,GAAG,EAAE,QAAgB,GAAG,EAAE,EAAE,QAAQ,qCAAqC,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,kCAAkC,SAAS,EAAE,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAA,CAAG,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,WAAW,EAAE,CAAC,CAAC,OAAO,SAAS,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,GAAa,OAAO,GAAjB,SAAmB,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,UAAU,GAAY,IAAT,IAAK,GAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,IAAS,IAAL,KAAS,EAAE,MAAM,GAAG,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,EAAE,mBAAmB,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAa,OAAO,GAAjB,SAAmB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,GAAG,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,IAAI,MAAY,IAAN,IAAQ,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,MAAS,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,KAAK,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK,OAAO,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,GAAG,aAAa,MAAM,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,MAAM,KAAK,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,KAAK,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,KAAK,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,UCGryH,EAAA,QAAM,OAAO,EAAA,OAAiB,EAE9B,SAAgB,EAAU,EAAsD,CAC9E,GAAI,CAAC,EAAO,OAAO,KACnB,GAAI,aAAiB,KAAM,OAAO,EAClC,IAAM,GAAA,EAAI,EAAA,QAAA,CAAM,EAAO,aAAc,EAAI,EACzC,OAAO,EAAE,QAAQ,EAAI,EAAE,OAAO,GAAA,EAAI,EAAA,QAAA,CAAM,CAAK,CAAC,CAAC,OAAO,CACxD,CAEA,SAAgB,EAAa,EAAwD,CAGnF,OAFK,EACD,OAAO,GAAU,SAAiB,GACtC,EAAO,EAAA,QAAA,CAAM,CAAK,CAAC,CAAC,OAAO,YAAY,EAFpB,IAGrB,CAEA,SAAgB,EAAiB,EAAwD,CAGvF,OAFK,EACD,OAAO,GAAU,SAAiB,GACtC,EAAO,EAAA,QAAA,CAAM,CAAK,CAAC,CAAC,YAAY,EAFb,IAGrB,CAEA,SAAgB,EACd,EACA,EAAS,aACD,CAER,OADK,GACL,EAAO,EAAA,QAAA,CAAM,CAAK,CAAC,CAAC,OAAO,CAAM,EADd,GAErB,CAEA,SAAgB,EAAoB,EAAiD,CAEnF,OADK,GACL,EAAO,EAAA,QAAA,CAAM,CAAK,CAAC,CAAC,OAAO,kBAAkB,EAD1B,GAErB,CCnCA,SAAgB,EAAU,EAAuB,CAC/C,OAAO,EAAM,QAAQ,MAAO,EAAE,CAChC,CAEA,SAAgB,EAAU,EAA0C,CAClE,GAAI,CAAC,EAAO,MAAO,IACnB,IAAM,EAAS,EAAU,CAAK,EAE9B,OADI,EAAO,SAAW,GACf,EAAO,QAAQ,iCAAkC,aAAa,EADpC,CAEnC,CAEA,SAAgB,EAAW,EAA0C,CACnE,GAAI,CAAC,EAAO,MAAO,IACnB,IAAM,EAAS,EAAU,CAAK,EAE9B,OADI,EAAO,SAAW,GACf,EAAO,QAAQ,wCAAyC,gBAAgB,EAD9C,CAEnC,CAEA,SAAgB,EAAc,EAA0C,CACtE,GAAI,CAAC,EAAO,MAAO,IACnB,IAAM,EAAS,EAAU,CAAK,EAG9B,OAFI,EAAO,SAAW,GAAW,EAAU,CAAK,EAC5C,EAAO,SAAW,GAAW,EAAW,CAAK,EAC1C,CACT,CAEA,SAAgB,EAAe,EAA0C,CACvE,GAAI,CAAC,EAAO,MAAO,IACnB,IAAM,EAAS,EAAU,CAAK,EAG9B,OAFI,EAAO,SAAW,GAAW,EAAO,QAAQ,0BAA2B,YAAY,EACnF,EAAO,SAAW,GAAW,EAAO,QAAQ,0BAA2B,YAAY,EAChF,CACT,CAEA,SAAgB,EAAY,EAAiD,CAC3E,GAAI,CAAC,EAAO,OAAO,KACnB,IAAM,EAAM,EAAU,CAAK,EAC3B,GAAI,EAAI,SAAW,GAAI,MAAO,2BAC9B,GAAI,eAAe,KAAK,CAAG,EAAG,MAAO,gBACrC,IAAI,EAAO,EACX,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IAAK,GAAQ,SAAS,EAAI,EAAE,GAAK,GAAK,GAC7D,IAAI,EAAQ,EAAO,GACb,EAAK,EAAQ,EAAI,EAAI,GAAK,EAChC,GAAI,SAAS,EAAI,EAAE,IAAM,EAAI,MAAO,gBACpC,EAAO,EACP,IAAK,IAAI,EAAI,EAAG,EAAI,GAAI,IAAK,GAAQ,SAAS,EAAI,EAAE,GAAK,GAAK,GAC9D,EAAQ,EAAO,GACf,IAAM,EAAK,EAAQ,EAAI,EAAI,GAAK,EAEhC,OADI,SAAS,EAAI,GAAG,IAAM,EACnB,KAD8B,eAEvC,CAEA,SAAgB,EAAa,EAAiD,CAC5E,GAAI,CAAC,EAAO,OAAO,KACnB,IAAM,EAAO,EAAU,CAAK,EAC5B,GAAI,EAAK,SAAW,GAAI,MAAO,4BAC/B,GAAI,eAAe,KAAK,CAAI,EAAG,MAAO,iBACtC,IAAM,EAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC9C,EAAO,EACX,IAAK,IAAI,EAAI,EAAG,EAAI,GAAI,IAAK,GAAQ,SAAS,EAAK,EAAE,EAAI,EAAO,GAChE,IAAI,EAAQ,EAAO,GACb,EAAK,EAAQ,EAAI,EAAI,GAAK,EAChC,GAAI,SAAS,EAAK,GAAG,IAAM,EAAI,MAAO,iBACtC,IAAM,EAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACrD,EAAO,EACP,IAAK,IAAI,EAAI,EAAG,EAAI,GAAI,IAAK,GAAQ,SAAS,EAAK,EAAE,EAAI,EAAO,GAChE,EAAQ,EAAO,GACf,IAAM,EAAK,EAAQ,EAAI,EAAI,GAAK,EAEhC,OADI,SAAS,EAAK,GAAG,IAAM,EACpB,KAD+B,gBAExC,CAEA,SAAgB,EAAgB,EAAiD,CAC/E,GAAI,CAAC,EAAO,OAAO,KACnB,IAAM,EAAS,EAAU,CAAK,EAG9B,OAFI,EAAO,SAAW,GAAW,EAAY,CAAK,EAC9C,EAAO,SAAW,GAAW,EAAa,CAAK,EAC5C,sDACT,CC1DA,IAAM,EAAmB,IAAI,IAE7B,SAAS,EAAmB,EAAgB,EAAqC,CAC/E,IAAM,EAAM,GAAG,EAAO,GAAG,IACrB,EAAM,EAAiB,IAAI,CAAG,EAQlC,OAPK,IACH,EAAM,IAAI,KAAK,aAAa,EAAQ,CAClC,sBAAuB,EACvB,sBAAuB,CACzB,CAAC,EACD,EAAiB,IAAI,EAAK,CAAG,GAExB,CACT,CAEA,SAAS,EAAqB,EAAgB,EAAqC,CACjF,IAAM,EAAM,GAAG,EAAO,GAAG,IACrB,EAAM,EAAiB,IAAI,CAAG,EAQlC,OAPK,IACH,EAAM,IAAI,KAAK,aAAa,EAAQ,CAClC,MAAO,WACP,UACF,CAAC,EACD,EAAiB,IAAI,EAAK,CAAG,GAExB,CACT,CAEA,SAAgB,GAAgB,CAC9B,IAAM,GAAA,EAAS,EAAA,OAAA,CAAsB,EAAA,EAAc,CACjD,gBAAiB,GACjB,WAAY,aACZ,eAAgB,mBAChB,OAAQ,QACR,SAAU,KACZ,CAAkB,EAEZ,EAAS,GAAQ,QAAU,QAC3B,EAAe,GAAQ,UAAY,MAEzC,SAAS,EAAe,EAA0C,CAEhE,OADI,GAAS,KAAa,IACnB,EAAqB,EAAQ,CAAY,CAAC,CAAC,OAAO,CAAK,CAChE,CAEA,SAAS,EAAa,EAAkC,EAAW,EAAW,CAE5E,OADI,GAAS,KAAa,IACnB,EAAmB,EAAQ,CAAQ,CAAC,CAAC,OAAO,CAAK,CAC1D,CAEA,SAAS,EAAW,EAAyC,EAAyB,CACpF,OAAO,EAAgB,EAAO,GAAU,GAAQ,YAAc,YAAY,CAC5E,CAEA,SAAS,EAAe,EAAiD,CACvE,OAAO,EAAoB,CAAK,CAClC,CAEA,SAAS,EAAc,EAA0C,CAE/D,OADI,GAAS,KAAa,IACnB,GAAG,EAAmB,EAAQ,CAAC,CAAC,CAAC,OAAO,CAAK,EAAE,EACxD,CAEA,MAAO,CACL,iBACA,eACA,aACA,iBACA,gBACA,YACA,aACA,gBACA,iBACA,cACA,eACA,kBACA,YACA,eACA,kBACF,CACF,CCvFA,SAAgB,EAAiB,EAA6C,CAC5E,IAAM,EAAoC,CAAC,EAC3C,IAAK,IAAM,KAAK,EACd,EAAS,EAAE,OACT,EAAE,eAAiB,IAAA,GAIf,KAHA,OAAO,EAAE,cAAiB,WACvB,EAAE,aAA+B,EAClC,EAAE,aAGZ,OAAO,CACT,CASA,SAAgB,EACd,EACA,EACA,EACyB,CACzB,IAAM,EAAoC,CAAC,EAC3C,IAAK,IAAM,KAAK,EAAQ,CACtB,IAAI,EAAQ,EAAK,EAAE,SAAW,IAAA,GAA4B,KAAhB,EAAK,EAAE,OAC7C,IAAU,EAAE,OAAS,QAAU,EAAE,OAAS,aAAe,OAAO,GAAU,WAC5E,EAAQ,EAAU,CAAK,GAEzB,EAAO,EAAE,OAAS,EAClB,EAAS,EAAE,OAAS,CACtB,CACA,OAAO,CACT,CAMA,SAAgB,EACd,EACA,EACyB,CACzB,IAAM,EAA+B,CAAE,GAAG,CAAO,EACjD,IAAK,IAAM,KAAK,EAAQ,CACtB,IAAM,EAAM,EAAI,EAAE,OAUlB,GAPI,EAAE,OAAS,QAAU,aAAe,KACtC,EAAI,EAAE,OAAS,EAAa,CAAG,EACtB,EAAE,OAAS,YAAc,aAAe,OACjD,EAAI,EAAE,OAAS,EAAiB,CAAG,GAIjC,EAAE,OAAS,MAAwB,OAAO,GAAQ,UAA/B,EAAyC,CAC9D,IAAM,EAAM,EAAE,aAAe,KAC7B,EAAI,EAAE,OAAU,EAAgC,IAAQ,CAC1D,EAGK,EAAE,OAAS,QAAU,EAAE,OAAS,aAAe,OAAO,GAAQ,WACjE,EAAI,EAAE,OAAS,EAAU,CAAG,EAEhC,CACA,OAAO,CACT,CAGA,SAAgB,EACd,EACA,EACA,EAAY,GACH,CAGT,OAFI,EAAM,UAAY,IAAA,IAAa,EAAM,UAAY,GAAa,GAC9D,OAAO,EAAM,SAAY,WAAmB,EAAM,QAAQ,EAAU,CAAS,EAC1E,EAAM,OACf,CAWA,SAAgB,EACd,EACA,EACA,EAAY,GACG,CACf,IAAK,IAAM,KAAK,EACT,KAAe,EAAG,EAAU,CAAS,EAC1C,IAAI,EAAE,SAAU,CACd,IAAM,EAAS,EAAE,SAAS,EAAS,EAAE,MAAM,EAC3C,GAAI,EAAQ,OAAO,CACrB,CACA,GAAI,EAAE,SAAU,CACd,IAAM,EAAM,EAAS,EAAE,OACvB,GAAI,GAAQ,MAA6B,IAAQ,GAC/C,MAAO,GAAG,EAAE,MAAM,eAEtB,CANA,CAQF,OAAO,IACT,CCxHA,SAAgB,GAAc,CAC5B,IAAM,GAAA,EAAQ,EAAA,SAAA,CAAS,EAEvB,SAAS,EAAQ,EAAiB,EAAQ,UAAW,CACnD,EAAM,IAAI,CAAE,SAAU,UAAW,QAAS,EAAO,OAAQ,EAAS,KAAM,GAAK,CAAC,CAChF,CAEA,SAAS,EAAM,EAAiB,EAAQ,OAAQ,CAC9C,EAAM,IAAI,CAAE,SAAU,QAAS,QAAS,EAAO,OAAQ,EAAS,KAAM,GAAK,CAAC,CAC9E,CAEA,SAAS,EAAK,EAAiB,EAAQ,UAAW,CAChD,EAAM,IAAI,CAAE,SAAU,OAAQ,QAAS,EAAO,OAAQ,EAAS,KAAM,GAAK,CAAC,CAC7E,CAEA,SAAS,EAAK,EAAiB,EAAQ,OAAQ,CAC7C,EAAM,IAAI,CAAE,SAAU,OAAQ,QAAS,EAAO,OAAQ,EAAS,KAAM,GAAK,CAAC,CAC7E,CAEA,MAAO,CAAE,UAAS,QAAO,OAAM,MAAK,CACtC,CCnBA,SAAgB,GAAgB,CAC9B,IAAM,GAAA,EAAU,EAAA,WAAA,CAAW,EAIrB,EAAU,EAAA,EAAW,EACrB,MAAiB,GAAS,OAAO,OAAS,OAEhD,SAAS,EACP,EACA,EAAU,0CACV,CACA,EAAQ,QAAQ,CACd,SAAU,EAAS,EACnB,UACA,OAAQ,qBACR,KAAM,cACN,YAAa,WACb,YAAa,CACX,SAAU,YACV,KAAM,EACR,EACA,YAAa,UACb,YAAa,CACX,SAAU,QACZ,EACA,OAAQ,CACV,CAAC,CACH,CAEA,SAAS,EAAc,EAAiB,EAAsB,EAAS,cAAe,CACpF,EAAQ,QAAQ,CACd,SAAU,EAAS,EACnB,UACA,SACA,KAAM,wBACN,YAAa,WACb,YAAa,CACX,SAAU,YACV,KAAM,EACR,EACA,YAAa,YACb,OAAQ,CACV,CAAC,CACH,CAEA,MAAO,CAAE,gBAAe,eAAc,CACxC,CClDA,SAAS,EAAgB,EAAuB,CAC9C,OAAO,EAAM,QAAQ,KAAM,GAAG,CAAC,CAAC,QAAQ,MAAQ,GAAM,EAAE,YAAY,CAAC,CACvE,CAEA,SAAS,EAAe,EAAgC,CACtD,GAAI,OAAO,GAAW,SACpB,OAAO,EAGT,GAAI,MAAM,QAAQ,CAAM,EAAG,CACzB,IAAM,EAAW,EAAO,OAAQ,GAAS,OAAO,GAAS,QAAQ,EACjE,OAAO,EAAS,OAAS,EAAI,EAAS,KAAK,GAAG,EAAI,IACpD,CAEA,GAAI,OAAO,GAAW,UAAY,EAAiB,CACjD,IAAM,EAAM,EAEZ,GAAI,MAAM,QAAQ,EAAI,gBAAgB,GAAK,EAAI,iBAAiB,OAAS,EACvE,OAAO,EAAI,iBAAiB,OAAQ,GAAkB,OAAO,GAAS,QAAQ,CAAC,CAAC,KAAK,GAAG,EAG1F,IAAM,EAAqB,CAAC,EAC5B,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,CAAG,EAAG,CAC9C,GAAI,IAAQ,mBAAoB,SAChC,IAAM,EAAQ,EAAgB,CAAG,EACjC,GAAI,MAAM,QAAQ,CAAK,EAAG,CACxB,IAAM,EAAO,EAAM,OAAQ,GAAkB,OAAO,GAAS,QAAQ,EACjE,EAAK,OAAS,GAAG,EAAS,KAAK,GAAG,EAAM,IAAI,EAAK,KAAK,GAAG,GAAG,CAClE,MAAW,OAAO,GAAU,UAC1B,EAAS,KAAK,GAAG,EAAM,IAAI,GAAO,CAEtC,CACA,OAAO,EAAS,OAAS,EAAI,EAAS,KAAK;CAAI,EAAI,IACrD,CAEA,OAAO,IACT,CAEA,SAAgB,EAAgB,EAAgB,EAAW,kBAA2B,CACpF,GAAI,CAAC,GAAS,OAAO,GAAU,SAAU,OAAO,EAEhD,IAAM,EAAa,EAIb,EAAO,EAAW,UAAU,KAOlC,MALI,CAAC,GAAQ,OAAO,GAAS,SACpB,EAAW,SAAW,EAIxB,EADQ,EAAK,QAAU,CACF,GAAK,CACnC,CAEA,SAAgB,GAAc,CAC5B,MAAO,CAAE,iBAAgB,CAC3B,CCtDA,EAAA,QAAM,OAAO,EAAA,OAAiB,EAS9B,IAAM,EAAe,aACf,EAAmB,mBACnB,EAAW,aACX,EAAe,sBAgBrB,SAAgB,EAAa,EAA4B,CAAC,EAAG,CAC3D,IAAM,MAAiB,EAAK,WAAW,GAAK,GACtC,MAAuB,EAAS,EAAI,EAAmB,EACvD,MAAc,EAAS,EAAI,mBAAqB,aAChD,MAAqB,EAAS,EAAI,mBAAqB,aAG7D,SAAS,EAAO,EAA6B,CAC3C,GAAI,GAAS,MAAQ,IAAU,GAAI,OAAO,KAC1C,GAAI,aAAiB,KAAM,OAAO,MAAM,EAAM,QAAQ,CAAC,EAAI,KAAO,EAClE,GAAI,OAAO,GAAU,SAAU,CAE7B,IAAM,GAAA,EAAW,EAAA,QAAA,CAAM,EAAO,EAAU,EAAI,EAC5C,GAAI,EAAS,QAAQ,EAAG,OAAO,EAAS,OAAO,EAE/C,IAAM,GAAA,EAAM,EAAA,QAAA,CAAM,CAAK,EACvB,OAAO,EAAI,QAAQ,EAAI,EAAI,OAAO,EAAI,IACxC,CACA,OAAO,IACT,CAGA,SAAS,EAAQ,EAAyC,CAGxD,OAFK,GACA,EAAK,cAAc,GAAK,SAAW,OAAe,GACvD,EAAO,EAAA,QAAA,CAAM,CAAI,CAAC,CAAC,OAAO,EAAS,EAAI,EAAe,CAAQ,EAF5C,IAGpB,CAGA,SAAS,EAAU,EAA2B,CAE5C,OADK,GACL,EAAO,EAAA,QAAA,CAAM,CAAI,CAAC,CAAC,OAAO,EAAc,CAAC,EADvB,EAEpB,CAGA,SAAS,EAAY,EAA2B,CAC9C,GAAI,CAAC,EAAM,OAAO,KAClB,IAAM,GAAA,EAAI,EAAA,QAAA,CAAM,EAAM,EAAc,EAAG,EAAI,EAC3C,OAAO,EAAE,QAAQ,EAAI,EAAE,OAAO,EAAI,IACpC,CAGA,SAAS,GAAc,CACrB,OAAO,EAAS,EAAI,IAAI,MAAK,EAAI,EAAA,QAAA,CAAM,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,OAAO,CACjE,CAEA,MAAO,CAAE,SAAQ,UAAS,YAAW,cAAa,QAAO,OAAM,cAAa,eAAc,CAC5F,CCzDA,IAAM,EAAY,CAChB,6CACA,2BACA,yBACA,yBACA,kCACA,0BACF,CAAC,CAAC,KAAK,IAAI,EAGL,EAAe,CACnB,oBACA,0BACA,yBACA,sBACA,2BACA,uBACF,CAAC,CAAC,KAAK,IAAI,EASX,SAAgB,EACd,EACA,EAAkC,CAAC,EACnC,CACA,IAAM,MAAmB,GAAQ,SAAU,EAAQ,QAAQ,EAE3D,SAAS,GAA4B,CACnC,IAAM,EAAO,EAAU,MAEvB,OADK,EACE,MAAM,KAAK,EAAK,iBAA8B,CAAS,CAAC,CAAC,CAAC,OAC9D,GAAO,EAAG,eAAe,CAAC,CAAC,OAAS,GAAK,CAAC,EAAG,aAAa,eAAe,CAC5E,EAHkB,CAAC,CAIrB,CAEA,SAAS,GAAmB,CACrB,EAAU,IACf,EAAA,EAAA,SAAA,KAAe,CACb,IAAM,EAAM,EAAW,EACjB,EAAQ,EAAI,KAAM,GAAO,EAAG,UAAY,QAAQ,GAAK,EAAI,GAC/D,GAAI,CAAC,EAAO,OACZ,EAAM,MAAM,EAEZ,IAAM,EAAQ,EACd,GAAI,OAAO,EAAM,QAAW,WAC1B,GAAI,CACF,EAAM,OAAO,CACf,MAAQ,CAER,CAEJ,CAAC,CACH,CAEA,SAAS,EAAc,EAAwB,CAC7C,GAAI,CAAC,EAAU,GAAK,EAAE,MAAQ,SAAW,EAAE,YAAa,OACxD,IAAM,EAAS,EAAE,OAIjB,GAHI,EAAO,UAAY,YAAc,EAAO,UAAY,UAEpD,EAAO,aAAa,eAAe,IAAM,QACzC,SAAS,cAAc,CAAY,EAAG,OAE1C,EAAE,eAAe,EACjB,IAAM,EAAM,EAAW,EACjB,EAAI,EAAI,QAAQ,CAAM,EAC5B,GAAI,IAAM,GAAI,OACd,IAAM,EAAO,EAAI,EAAI,GACjB,EAAM,EAAK,MAAM,EAChB,EAAQ,WAAW,CAC1B,CAEA,MAAO,CAAE,aAAY,eAAc,CACrC"}
|
|
@@ -1,19 +1,46 @@
|
|
|
1
1
|
import { i as e, n as t } from "./routeTabs-D6m8PuP6.js";
|
|
2
|
-
import { inject as n, nextTick as r } from "vue";
|
|
3
|
-
import
|
|
4
|
-
import { useToast as
|
|
5
|
-
import { useConfirm as
|
|
2
|
+
import { inject as n, nextTick as r, onScopeDispose as i, readonly as a, ref as o } from "vue";
|
|
3
|
+
import s from "dayjs";
|
|
4
|
+
import { useToast as c } from "primevue/usetoast";
|
|
5
|
+
import { useConfirm as l } from "primevue/useconfirm";
|
|
6
6
|
//#region \0rolldown/runtime.js
|
|
7
|
-
var
|
|
8
|
-
if (t && typeof t == "object" || typeof t == "function") for (var i =
|
|
7
|
+
var u = Object.create, d = Object.defineProperty, f = Object.getOwnPropertyDescriptor, p = Object.getOwnPropertyNames, m = Object.getPrototypeOf, h = Object.prototype.hasOwnProperty, g = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), _ = (e, t, n, r) => {
|
|
8
|
+
if (t && typeof t == "object" || typeof t == "function") for (var i = p(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !h.call(e, s) && s !== n && d(e, s, {
|
|
9
9
|
get: ((e) => t[e]).bind(null, s),
|
|
10
|
-
enumerable: !(r =
|
|
10
|
+
enumerable: !(r = f(t, s)) || r.enumerable
|
|
11
11
|
});
|
|
12
12
|
return e;
|
|
13
|
-
},
|
|
13
|
+
}, v = (e, t, n) => (n = e == null ? {} : u(m(e)), _(t || !e || !e.__esModule || !h.call(e, "default") ? d(n, "default", {
|
|
14
14
|
value: e,
|
|
15
15
|
enumerable: !0
|
|
16
|
-
}) : n, e))
|
|
16
|
+
}) : n, e)), y = {
|
|
17
|
+
celular: 600,
|
|
18
|
+
retrato: 840,
|
|
19
|
+
desktop: 1200
|
|
20
|
+
};
|
|
21
|
+
function b(e) {
|
|
22
|
+
let t = o(!1);
|
|
23
|
+
if (typeof window > "u" || typeof window.matchMedia != "function") return t;
|
|
24
|
+
let n = window.matchMedia(e);
|
|
25
|
+
t.value = n.matches;
|
|
26
|
+
let r = (e) => {
|
|
27
|
+
t.value = e.matches;
|
|
28
|
+
};
|
|
29
|
+
return n.addEventListener("change", r), i(() => n.removeEventListener("change", r)), t;
|
|
30
|
+
}
|
|
31
|
+
function x() {
|
|
32
|
+
let e = b(`(max-width: ${y.celular - 1}px)`), t = b(`(max-width: ${y.retrato - 1}px)`), n = b(`(min-width: ${y.retrato}px)`), r = b(`(min-width: ${y.desktop}px)`), i = b("(pointer: coarse)");
|
|
33
|
+
return {
|
|
34
|
+
isCelular: a(e),
|
|
35
|
+
isRetrato: a(t),
|
|
36
|
+
isPaisagem: a(n),
|
|
37
|
+
isDesktop: a(r),
|
|
38
|
+
isToque: a(i)
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
//#region src/utils/dates.ts
|
|
43
|
+
var S = /* @__PURE__ */ v((/* @__PURE__ */ g(((e, t) => {
|
|
17
44
|
(function(n, r) {
|
|
18
45
|
typeof e == "object" && t !== void 0 ? t.exports = r() : typeof define == "function" && define.amd ? define(r) : (n = typeof globalThis < "u" ? globalThis : n || self).dayjs_plugin_customParseFormat = r();
|
|
19
46
|
})(e, (function() {
|
|
@@ -170,53 +197,53 @@ var s = Object.create, c = Object.defineProperty, l = Object.getOwnPropertyDescr
|
|
|
170
197
|
};
|
|
171
198
|
}));
|
|
172
199
|
})))(), 1);
|
|
173
|
-
|
|
174
|
-
function
|
|
200
|
+
s.extend(S.default);
|
|
201
|
+
function C(e) {
|
|
175
202
|
if (!e) return null;
|
|
176
203
|
if (e instanceof Date) return e;
|
|
177
|
-
let t =
|
|
178
|
-
return t.isValid() ? t.toDate() :
|
|
204
|
+
let t = s(e, "YYYY-MM-DD", !0);
|
|
205
|
+
return t.isValid() ? t.toDate() : s(e).toDate();
|
|
179
206
|
}
|
|
180
|
-
function
|
|
181
|
-
return e ? typeof e == "string" ? e :
|
|
207
|
+
function w(e) {
|
|
208
|
+
return e ? typeof e == "string" ? e : s(e).format("YYYY-MM-DD") : null;
|
|
182
209
|
}
|
|
183
|
-
function
|
|
184
|
-
return e ? typeof e == "string" ? e :
|
|
210
|
+
function T(e) {
|
|
211
|
+
return e ? typeof e == "string" ? e : s(e).toISOString() : null;
|
|
185
212
|
}
|
|
186
|
-
function
|
|
187
|
-
return e ?
|
|
213
|
+
function E(e, t = "DD/MM/YYYY") {
|
|
214
|
+
return e ? s(e).format(t) : "—";
|
|
188
215
|
}
|
|
189
|
-
function
|
|
190
|
-
return e ?
|
|
216
|
+
function D(e) {
|
|
217
|
+
return e ? s(e).format("DD/MM/YYYY HH:mm") : "—";
|
|
191
218
|
}
|
|
192
219
|
//#endregion
|
|
193
220
|
//#region src/utils/masks.ts
|
|
194
|
-
function
|
|
221
|
+
function O(e) {
|
|
195
222
|
return e.replace(/\D/g, "");
|
|
196
223
|
}
|
|
197
|
-
function
|
|
224
|
+
function k(e) {
|
|
198
225
|
if (!e) return "—";
|
|
199
|
-
let t =
|
|
226
|
+
let t = O(e);
|
|
200
227
|
return t.length === 11 ? t.replace(/^(\d{3})(\d{3})(\d{3})(\d{2})$/, "$1.$2.$3-$4") : e;
|
|
201
228
|
}
|
|
202
|
-
function
|
|
229
|
+
function A(e) {
|
|
203
230
|
if (!e) return "—";
|
|
204
|
-
let t =
|
|
231
|
+
let t = O(e);
|
|
205
232
|
return t.length === 14 ? t.replace(/^(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/, "$1.$2.$3/$4-$5") : e;
|
|
206
233
|
}
|
|
207
|
-
function
|
|
234
|
+
function j(e) {
|
|
208
235
|
if (!e) return "—";
|
|
209
|
-
let t =
|
|
210
|
-
return t.length === 11 ?
|
|
236
|
+
let t = O(e);
|
|
237
|
+
return t.length === 11 ? k(e) : t.length === 14 ? A(e) : e;
|
|
211
238
|
}
|
|
212
|
-
function
|
|
239
|
+
function M(e) {
|
|
213
240
|
if (!e) return "—";
|
|
214
|
-
let t =
|
|
241
|
+
let t = O(e);
|
|
215
242
|
return t.length === 11 ? t.replace(/^(\d{2})(\d{5})(\d{4})$/, "($1) $2-$3") : t.length === 10 ? t.replace(/^(\d{2})(\d{4})(\d{4})$/, "($1) $2-$3") : e;
|
|
216
243
|
}
|
|
217
|
-
function
|
|
244
|
+
function N(e) {
|
|
218
245
|
if (!e) return null;
|
|
219
|
-
let t =
|
|
246
|
+
let t = O(e);
|
|
220
247
|
if (t.length !== 11) return "CPF deve ter 11 dígitos.";
|
|
221
248
|
if (/^(\d)\1{10}$/.test(t)) return "CPF inválido.";
|
|
222
249
|
let n = 0;
|
|
@@ -229,9 +256,9 @@ function E(e) {
|
|
|
229
256
|
let a = r < 2 ? 0 : 11 - r;
|
|
230
257
|
return parseInt(t[10]) === a ? null : "CPF inválido.";
|
|
231
258
|
}
|
|
232
|
-
function
|
|
259
|
+
function P(e) {
|
|
233
260
|
if (!e) return null;
|
|
234
|
-
let t =
|
|
261
|
+
let t = O(e);
|
|
235
262
|
if (t.length !== 14) return "CNPJ deve ter 14 dígitos.";
|
|
236
263
|
if (/^(\d)\1{13}$/.test(t)) return "CNPJ inválido.";
|
|
237
264
|
let n = [
|
|
@@ -272,29 +299,29 @@ function D(e) {
|
|
|
272
299
|
let s = i < 2 ? 0 : 11 - i;
|
|
273
300
|
return parseInt(t[13]) === s ? null : "CNPJ inválido.";
|
|
274
301
|
}
|
|
275
|
-
function
|
|
302
|
+
function F(e) {
|
|
276
303
|
if (!e) return null;
|
|
277
|
-
let t =
|
|
278
|
-
return t.length === 11 ?
|
|
304
|
+
let t = O(e);
|
|
305
|
+
return t.length === 11 ? N(e) : t.length === 14 ? P(e) : "CPF deve ter 11 dígitos ou CNPJ deve ter 14 dígitos.";
|
|
279
306
|
}
|
|
280
307
|
//#endregion
|
|
281
308
|
//#region src/composables/useFormatters.ts
|
|
282
|
-
var
|
|
283
|
-
function
|
|
284
|
-
let n = `${e}-${t}`, r =
|
|
309
|
+
var I = /* @__PURE__ */ new Map();
|
|
310
|
+
function L(e, t) {
|
|
311
|
+
let n = `${e}-${t}`, r = I.get(n);
|
|
285
312
|
return r || (r = new Intl.NumberFormat(e, {
|
|
286
313
|
minimumFractionDigits: t,
|
|
287
314
|
maximumFractionDigits: t
|
|
288
|
-
}),
|
|
315
|
+
}), I.set(n, r)), r;
|
|
289
316
|
}
|
|
290
|
-
function
|
|
291
|
-
let n = `${e}-${t}`, r =
|
|
317
|
+
function R(e, t) {
|
|
318
|
+
let n = `${e}-${t}`, r = I.get(n);
|
|
292
319
|
return r || (r = new Intl.NumberFormat(e, {
|
|
293
320
|
style: "currency",
|
|
294
321
|
currency: t
|
|
295
|
-
}),
|
|
322
|
+
}), I.set(n, r)), r;
|
|
296
323
|
}
|
|
297
|
-
function
|
|
324
|
+
function z() {
|
|
298
325
|
let t = n(e, {
|
|
299
326
|
defaultPageSize: 20,
|
|
300
327
|
dateFormat: "DD/MM/YYYY",
|
|
@@ -303,19 +330,19 @@ function M() {
|
|
|
303
330
|
currency: "BRL"
|
|
304
331
|
}), r = t?.locale ?? "pt-BR", i = t?.currency ?? "BRL";
|
|
305
332
|
function a(e) {
|
|
306
|
-
return e == null ? "—" :
|
|
333
|
+
return e == null ? "—" : R(r, i).format(e);
|
|
307
334
|
}
|
|
308
335
|
function o(e, t = 2) {
|
|
309
|
-
return e == null ? "—" :
|
|
336
|
+
return e == null ? "—" : L(r, t).format(e);
|
|
310
337
|
}
|
|
311
338
|
function s(e, n) {
|
|
312
|
-
return
|
|
339
|
+
return E(e, n ?? t?.dateFormat ?? "DD/MM/YYYY");
|
|
313
340
|
}
|
|
314
341
|
function c(e) {
|
|
315
|
-
return
|
|
342
|
+
return D(e);
|
|
316
343
|
}
|
|
317
344
|
function l(e) {
|
|
318
|
-
return e == null ? "—" : `${
|
|
345
|
+
return e == null ? "—" : `${L(r, 2).format(e)}%`;
|
|
319
346
|
}
|
|
320
347
|
return {
|
|
321
348
|
formatCurrency: a,
|
|
@@ -323,50 +350,50 @@ function M() {
|
|
|
323
350
|
formatDate: s,
|
|
324
351
|
formatDateTime: c,
|
|
325
352
|
formatPercent: l,
|
|
326
|
-
formatCpf:
|
|
327
|
-
formatCnpj:
|
|
328
|
-
formatCpfCnpj:
|
|
329
|
-
formatTelefone:
|
|
330
|
-
validateCpf:
|
|
331
|
-
validateCnpj:
|
|
332
|
-
validateCpfCnpj:
|
|
333
|
-
parseDate:
|
|
334
|
-
toDateString:
|
|
335
|
-
toDateTimeString:
|
|
353
|
+
formatCpf: k,
|
|
354
|
+
formatCnpj: A,
|
|
355
|
+
formatCpfCnpj: j,
|
|
356
|
+
formatTelefone: M,
|
|
357
|
+
validateCpf: N,
|
|
358
|
+
validateCnpj: P,
|
|
359
|
+
validateCpfCnpj: F,
|
|
360
|
+
parseDate: C,
|
|
361
|
+
toDateString: w,
|
|
362
|
+
toDateTimeString: T
|
|
336
363
|
};
|
|
337
364
|
}
|
|
338
365
|
//#endregion
|
|
339
366
|
//#region src/utils/formRecord.ts
|
|
340
|
-
function
|
|
367
|
+
function B(e) {
|
|
341
368
|
let t = {};
|
|
342
369
|
for (let n of e) t[n.field] = n.defaultValue === void 0 ? null : typeof n.defaultValue == "function" ? n.defaultValue() : n.defaultValue;
|
|
343
370
|
return t;
|
|
344
371
|
}
|
|
345
|
-
function
|
|
372
|
+
function V(e, t, n) {
|
|
346
373
|
let r = {};
|
|
347
374
|
for (let i of t) {
|
|
348
375
|
let t = e[i.field] === void 0 ? null : e[i.field];
|
|
349
|
-
t && (i.type === "date" || i.type === "datetime") && typeof t == "string" && (t =
|
|
376
|
+
t && (i.type === "date" || i.type === "datetime") && typeof t == "string" && (t = C(t)), n[i.field] = t, r[i.field] = t;
|
|
350
377
|
}
|
|
351
378
|
return r;
|
|
352
379
|
}
|
|
353
|
-
function
|
|
380
|
+
function H(e, t) {
|
|
354
381
|
let n = { ...e };
|
|
355
382
|
for (let e of t) {
|
|
356
383
|
let t = n[e.field];
|
|
357
|
-
if (e.type === "date" && t instanceof Date ? n[e.field] =
|
|
384
|
+
if (e.type === "date" && t instanceof Date ? n[e.field] = w(t) : e.type === "datetime" && t instanceof Date && (n[e.field] = T(t)), e.type === "fk" && typeof t == "object" && t) {
|
|
358
385
|
let r = e.optionValue || "id";
|
|
359
386
|
n[e.field] = t[r] ?? t;
|
|
360
387
|
}
|
|
361
|
-
(e.type === "mask" || e.type === "cpf_cnpj") && typeof t == "string" && (n[e.field] =
|
|
388
|
+
(e.type === "mask" || e.type === "cpf_cnpj") && typeof t == "string" && (n[e.field] = O(t));
|
|
362
389
|
}
|
|
363
390
|
return n;
|
|
364
391
|
}
|
|
365
|
-
function
|
|
392
|
+
function U(e, t, n = !1) {
|
|
366
393
|
return e.visible === void 0 || e.visible === !0 ? !0 : typeof e.visible == "function" ? e.visible(t, n) : e.visible;
|
|
367
394
|
}
|
|
368
|
-
function
|
|
369
|
-
for (let r of e) if (
|
|
395
|
+
function W(e, t, n = !1) {
|
|
396
|
+
for (let r of e) if (U(r, t, n)) {
|
|
370
397
|
if (r.validate) {
|
|
371
398
|
let e = r.validate(t[r.field]);
|
|
372
399
|
if (e) return e;
|
|
@@ -380,8 +407,8 @@ function L(e, t, n = !1) {
|
|
|
380
407
|
}
|
|
381
408
|
//#endregion
|
|
382
409
|
//#region src/composables/useAppToast.ts
|
|
383
|
-
function
|
|
384
|
-
let e =
|
|
410
|
+
function G() {
|
|
411
|
+
let e = c();
|
|
385
412
|
function t(t, n = "Sucesso") {
|
|
386
413
|
e.add({
|
|
387
414
|
severity: "success",
|
|
@@ -423,8 +450,8 @@ function R() {
|
|
|
423
450
|
}
|
|
424
451
|
//#endregion
|
|
425
452
|
//#region src/composables/useAppConfirm.ts
|
|
426
|
-
function
|
|
427
|
-
let e =
|
|
453
|
+
function K() {
|
|
454
|
+
let e = l(), n = t(), r = () => n?.hostEl.value ?? "body";
|
|
428
455
|
function i(t, n = "Deseja realmente excluir este registro?") {
|
|
429
456
|
e.require({
|
|
430
457
|
appendTo: r(),
|
|
@@ -463,10 +490,10 @@ function z() {
|
|
|
463
490
|
}
|
|
464
491
|
//#endregion
|
|
465
492
|
//#region src/composables/useApiError.ts
|
|
466
|
-
function
|
|
493
|
+
function q(e) {
|
|
467
494
|
return e.replace(/_/g, " ").replace(/^\w/, (e) => e.toUpperCase());
|
|
468
495
|
}
|
|
469
|
-
function
|
|
496
|
+
function J(e) {
|
|
470
497
|
if (typeof e == "string") return e;
|
|
471
498
|
if (Array.isArray(e)) {
|
|
472
499
|
let t = e.filter((e) => typeof e == "string");
|
|
@@ -478,7 +505,7 @@ function V(e) {
|
|
|
478
505
|
let n = [];
|
|
479
506
|
for (let [e, r] of Object.entries(t)) {
|
|
480
507
|
if (e === "non_field_errors") continue;
|
|
481
|
-
let t =
|
|
508
|
+
let t = q(e);
|
|
482
509
|
if (Array.isArray(r)) {
|
|
483
510
|
let e = r.filter((e) => typeof e == "string");
|
|
484
511
|
e.length > 0 && n.push(`${t}: ${e.join(" ")}`);
|
|
@@ -488,66 +515,66 @@ function V(e) {
|
|
|
488
515
|
}
|
|
489
516
|
return null;
|
|
490
517
|
}
|
|
491
|
-
function
|
|
518
|
+
function Y(e, t = "Erro inesperado") {
|
|
492
519
|
if (!e || typeof e != "object") return t;
|
|
493
520
|
let n = e, r = n.response?.data;
|
|
494
|
-
return !r || typeof r != "object" ? n.message || t :
|
|
521
|
+
return !r || typeof r != "object" ? n.message || t : J(r.detail ?? r) || t;
|
|
495
522
|
}
|
|
496
|
-
function
|
|
497
|
-
return { extractApiError:
|
|
523
|
+
function X() {
|
|
524
|
+
return { extractApiError: Y };
|
|
498
525
|
}
|
|
499
526
|
//#endregion
|
|
500
527
|
//#region src/composables/useDateInput.ts
|
|
501
|
-
|
|
502
|
-
var
|
|
503
|
-
function
|
|
504
|
-
let t = () => e.showTime?.() ?? !1, n = () => t() ?
|
|
505
|
-
function
|
|
528
|
+
s.extend(S.default);
|
|
529
|
+
var Z = "DD/MM/YYYY", Q = "DD/MM/YYYY HH:mm", $ = "YYYY-MM-DD", ee = "YYYY-MM-DDTHH:mm:ss";
|
|
530
|
+
function te(e = {}) {
|
|
531
|
+
let t = () => e.showTime?.() ?? !1, n = () => t() ? Q : Z, r = () => t() ? "##/##/#### ##:##" : "##/##/####", i = () => t() ? "dd/mm/aaaa hh:mm" : "dd/mm/aaaa";
|
|
532
|
+
function a(e) {
|
|
506
533
|
if (e == null || e === "") return null;
|
|
507
534
|
if (e instanceof Date) return isNaN(e.getTime()) ? null : e;
|
|
508
535
|
if (typeof e == "string") {
|
|
509
|
-
let t =
|
|
536
|
+
let t = s(e, $, !0);
|
|
510
537
|
if (t.isValid()) return t.toDate();
|
|
511
|
-
let n =
|
|
538
|
+
let n = s(e);
|
|
512
539
|
return n.isValid() ? n.toDate() : null;
|
|
513
540
|
}
|
|
514
541
|
return null;
|
|
515
542
|
}
|
|
516
|
-
function
|
|
517
|
-
return n ? (e.valueFormat?.() ?? "iso") === "date" ? n :
|
|
543
|
+
function o(n) {
|
|
544
|
+
return n ? (e.valueFormat?.() ?? "iso") === "date" ? n : s(n).format(t() ? ee : $) : null;
|
|
518
545
|
}
|
|
519
546
|
function c(e) {
|
|
520
|
-
return e ?
|
|
547
|
+
return e ? s(e).format(n()) : "";
|
|
521
548
|
}
|
|
522
549
|
function l(e) {
|
|
523
550
|
if (!e) return null;
|
|
524
|
-
let t =
|
|
551
|
+
let t = s(e, n(), !0);
|
|
525
552
|
return t.isValid() ? t.toDate() : null;
|
|
526
553
|
}
|
|
527
554
|
function u() {
|
|
528
|
-
return t() ? /* @__PURE__ */ new Date() :
|
|
555
|
+
return t() ? /* @__PURE__ */ new Date() : s().startOf("day").toDate();
|
|
529
556
|
}
|
|
530
557
|
return {
|
|
531
|
-
toDate:
|
|
532
|
-
toValue:
|
|
558
|
+
toDate: a,
|
|
559
|
+
toValue: o,
|
|
533
560
|
toDisplay: c,
|
|
534
561
|
fromDisplay: l,
|
|
535
562
|
today: u,
|
|
536
563
|
mask: r,
|
|
537
|
-
placeholder:
|
|
564
|
+
placeholder: i,
|
|
538
565
|
displayFormat: n
|
|
539
566
|
};
|
|
540
567
|
}
|
|
541
568
|
//#endregion
|
|
542
569
|
//#region src/composables/useFormKeyboardNav.ts
|
|
543
|
-
var
|
|
570
|
+
var ne = [
|
|
544
571
|
"input:not([type=\"hidden\"]):not([disabled])",
|
|
545
572
|
"textarea:not([disabled])",
|
|
546
573
|
"select:not([disabled])",
|
|
547
574
|
"button:not([disabled])",
|
|
548
575
|
"[tabindex]:not([tabindex=\"-1\"])",
|
|
549
576
|
"[contenteditable=\"true\"]"
|
|
550
|
-
].join(", "),
|
|
577
|
+
].join(", "), re = [
|
|
551
578
|
".p-select-overlay",
|
|
552
579
|
".p-autocomplete-overlay",
|
|
553
580
|
".p-multiselect-overlay",
|
|
@@ -555,11 +582,11 @@ var Y = [
|
|
|
555
582
|
".p-cascadeselect-overlay",
|
|
556
583
|
".p-treeselect-overlay"
|
|
557
584
|
].join(", ");
|
|
558
|
-
function
|
|
585
|
+
function ie(e, t = {}) {
|
|
559
586
|
let n = () => !t.enabled || t.enabled();
|
|
560
587
|
function i() {
|
|
561
588
|
let t = e.value;
|
|
562
|
-
return t ? Array.from(t.querySelectorAll(
|
|
589
|
+
return t ? Array.from(t.querySelectorAll(ne)).filter((e) => e.getClientRects().length > 0 && !e.hasAttribute("data-kbd-skip")) : [];
|
|
563
590
|
}
|
|
564
591
|
function a() {
|
|
565
592
|
n() && r(() => {
|
|
@@ -575,7 +602,7 @@ function Z(e, t = {}) {
|
|
|
575
602
|
function o(e) {
|
|
576
603
|
if (!n() || e.key !== "Enter" || e.isComposing) return;
|
|
577
604
|
let r = e.target;
|
|
578
|
-
if (r.tagName === "TEXTAREA" || r.tagName === "BUTTON" || r.getAttribute("aria-expanded") === "true" || document.querySelector(
|
|
605
|
+
if (r.tagName === "TEXTAREA" || r.tagName === "BUTTON" || r.getAttribute("aria-expanded") === "true" || document.querySelector(re)) return;
|
|
579
606
|
e.preventDefault();
|
|
580
607
|
let a = i(), o = a.indexOf(r);
|
|
581
608
|
if (o === -1) return;
|
|
@@ -588,6 +615,6 @@ function Z(e, t = {}) {
|
|
|
588
615
|
};
|
|
589
616
|
}
|
|
590
617
|
//#endregion
|
|
591
|
-
export {
|
|
618
|
+
export { x as _, K as a, B as c, W as d, z as f, y as g, T as h, X as i, U as l, w as m, te as n, G as o, C as p, Y as r, H as s, ie as t, V as u };
|
|
592
619
|
|
|
593
|
-
//# sourceMappingURL=useFormKeyboardNav-
|
|
620
|
+
//# sourceMappingURL=useFormKeyboardNav-Cv8b6Vh3.js.map
|