PageSourceSearch

https://job-tracker.it/_nuxt/pmtOc1C3.js

js job-tracker.it collected 2026-10-02 01:59:00 UTC 6,584 bytes, 1 lines download raw bytes

1import{J as ie,a1 as oe,a3 as ue,x as H,f as J,g as le,C as fe,r as j,N as C,k as q,a4 as N,o as ce,j as de,w as me,K as pe,W as ye,n as ve,u as T,O as he,a5 as b}from"./pOih5CZk.js";import{a as Ee}from"./NwrPPP4O.js";import{u as be,t as V,f as G,g as Q,h as ge,i as we,j as Se,k as Fe}from"./BEQbJKKZ.js";function Ie(a){return"schema"in a&&typeof a.coercer=="function"&&typeof a.validator=="function"&&typeof a.refiner=="function"}function je(a){return"~standard"in a}async function qe(a,i){const l=await i["~standard"].validate(a);return l.issues?{errors:l.issues?.map(n=>({name:n.path?.map(o=>typeof o=="object"?o.key:o).join(".")||"",message:n.message}))||[],result:null}:{errors:null,result:l.value}}async function xe(a,i){const[l,n]=i.validate(a);return l?{errors:l.failures().map(h=>({message:h.message,name:h.path.join(".")})),result:null}:{errors:null,result:n}}function Oe(a,i){if(je(i))return qe(a,i);if(Ie(i))return xe(a,i);throw new Error("Form validation failed: Unsupported form schema")}function ke(a,i){return i?i.split(".").reduce((n,o)=>n?.[o],a):a}function Be(a,i,l){if(!i)return Object.assign(a,l);if(!a)return a;const n=i.split(".");let o=a;for(let p=0;p<n.length-1;p++){const y=n[p];(o[y]===void 0||o[y]===null)&&(p+1<n.length&&!Number.isNaN(Number(n[p+1]))?o[y]=[]:o[y]={}),o=o[y]}const h=n[n.length-1];return o[h]=l,a}class x extends Error{formId;errors;constructor(i,l){super("Form validation exception"),this.formId=i,this.errors=l,Object.setPrototypeOf(this,x.prototype)}}const Ne={base:""},_e={__name:"UForm",props:{id:{type:[String,Number],required:!1},schema:{type:null,required:!1},state:{type:null,required:!1},validate:{type:Function,required:!1},validateOn:{type:Array,required:!1,default(){return["input","blur","change"]}},disabled:{type:Boolean,required:!1},name:{type:null,required:!1},validateOnInputDelay:{type:Number,required:!1,default:300},transform:{type:null,required:!1,default:()=>!0},nested:{type:Boolean,required:!1},loadingAuto:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:Object,required:!1},onSubmit:{type:Function,required:!1}},emits:["submit","error"],setup(a,{expose:i,emit:l}){const n=a,o=l,h=ie(),p=be("form",n),y=q(()=>V({extend:V(Ne),...h.ui?.form||{}})),g=n.id??oe(),R=ue("formRef"),A=Ee(`form-${g}`),w=n.nested===!0&&H(G,void 0),K=n.nested===!0?H(Q,void 0):void 0,S=q(()=>K?.value?n.name?ke(K.value,n.name):K.value:n.state);b(G,A),b(Q,S);const F=j(new Map);J(async()=>{w&&(await le(),w.emit({type:"attach",validate:I,formId:g,name:n.name,api:$}))}),fe(()=>{A.reset(),w&&w.emit({type:"detach",formId:g})}),J(async()=>{A.on(async e=>{e.type==="attach"?F.value.set(e.formId,{validate:e.validate,name:e.name,api:e.api}):e.type==="detach"?F.value.delete(e.formId):n.validateOn?.includes(e.type)&&!v.value&&(e.type!=="input"?await I({name:e.name,silent:!0,nested:!1}):(e.eager||_.has(e.name))&&await I({name:e.name,silent:!0,nested:!1})),e.type==="blur"&&_.add(e.name),(e.type==="change"||e.type==="input"||e.type==="blur"||e.type==="focus")&&W.add(e.name),(e.type==="change"||e.type==="input")&&k.add(e.name)})});const u=j([]);b(ge,u);const O=j({});b(we,O);const k=C(new Set),W=C(new Set),_=C(new Set);function M(e){return e.map(t=>({...t,id:t?.name?O.value[t.name]?.id:void 0}))}const B=j(null);async function X(){let e=n.validate?await n.validate(S.value)??[]:[];if(n.schema){const{errors:t,result:r}=await Oe(S.value,n.schema);t?e=e.concat(t):B.value=r}return M(e)}async function I(e={silent:!1,nested:!1,transform:!1}){const t=e.name&&!Array.isArray(e.name)?[e.name]:e.name;let r=[],s=[];if(!t&&e.nested){const m=Array.from(F.value.values()).map(d=>Y(d,e)),c=await Promise.all(m);s=c.filter(d=>d.error).flatMap(d=>d.error.errors.map(se=>Z(se,d.name))),r=c.filter(d=>d.output!==void 0)}const E=[...await X(),...s];if(t?u.value=ne(E,t):u.value=E,u.value?.length){if(e.silent)return!1;throw new x(g,u.value)}return e.transform?(r.forEach(m=>{m.name?Be(B.value,m.name,m.output):Object.assign(B.value,m.output)}),B.value??S.value):S.value}const v=j(!1);b(Se,N(v));async function D(e){v.value=n.loadingAuto&&!0;const t=e;try{t.data=await I({nested:!0,transform:n.transform}),await n.onSubmit?.(t),k.clear()}catch(r){if(!(r instanceof x))throw r;const s={...t,errors:r.errors};o("error",s)}finally{v.value=!1}}const U=q(()=>n.disabled||v.value);b(Fe,q(()=>({disabled:U.value,validateOnInputDelay:n.validateOnInputDelay})));async function Y(e,t){try{const r=await e.validate({...t,silent:!1});return{name:e.name,output:r}}catch(r){if(!(r instanceof x))throw r;return{name:e.name,error:r}}}function Z(e,t){return!t||!e.name?e:{...e,name:t+"."+e.name}}function ee(e,t){const r=t+".",s=e?.name?.startsWith(r)?e.name.substring(r.length):e.name;return{...e,name:s}}function te(e,t){return t?e.filter(r=>r?.name?.startsWith(t+".")).map(r=>ee(r,t)):e}function L(e){return e.api.getErrors().map(t=>e.name?{...t,name:e.name+"."+t.name}:t)}function z(e,t){return!e||!t?!0:e instanceof RegExp?e.test(t):t===e||typeof e=="string"&&e.startsWith(t+".")}function re(e,t){if(!e||e instanceof RegExp)return e;if(t!==e)return typeof e=="string"&&e.startsWith(t+".")?e.substring(t.length+1):e}function ne(e,t){const r=new Set(t),s=t.map(c=>
1O.value?.[c]?.pattern).filter(Boolean),f=c=>c.name?r.has(c.name)?!0:s.some(d=>d.test(c.name)):!1,E=u.value.filter(c=>!f(c)),m=e.filter(f);return[...E,...m]}function ae(e,t){return e.filter(r=>t instanceof RegExp?!(r.name&&t.test(r.name)):!r.name||r.name!==t)}function P(e){return!e.name||!!O.value[e.name]}const $={validate:I,errors:u,setErrors(e,t){const r=M(e.filter(P)),s=[];for(const f of F.value.values())if(z(t,f.name)){const E=te(e,f.name);f.api.setErrors(E,re(t,f.name||"")),s.push(...L(f))}if(t){const f=ae(u.value,t);u.value=[...f,...r,...s]}else u.value=[...r,...s]},async submit(){R.value instanceof HTMLFormElement&&R.value.reportValidity()===!1||await D(new Event("submit"))},getErrors(e){return e?u.value.filter(t=>e instanceof RegExp?t.name&&e.test(t.name):t.name===e):u.value},clear(e){const t=e?u.value.filter(s=>P(s)&&(e instanceof RegExp?!(s.name&&e.test(s.name)):s.name!==e)):[],r=[];for(const s of F.value.values())z(e,s.name)&&s.api.clear(),r.push(...L(s));u.value=[...t,...r]},disabled:U,loading:v,dirty:q(()=>!!k.size),dirtyFields:N(k),blurredFields:N(_),touchedFields:N(W)};return i($),(e,t)=>(ce(),de(he(T(w)?"div":"form"),{id:T(g),ref_key:"formRef",ref:R,class:ve(y.value({class:[T(p)?.base,n.class]})),onSubmit:ye(D,["prevent"])},{default:me(()=>[pe(e.$slots,"default",{errors:u.value,loading:v.value})]),_:3},40,["id","class"]))}};export{_e as _};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.