@vergelijkdirect/comparison-forms 2.0.0-rc.14 → 2.0.0-rc.15

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 (53) hide show
  1. package/dist/wc-forms/VdInput-BaZx7lM7.js +1 -0
  2. package/dist/wc-forms/VdPopover-B_0EwmOm.js +1 -0
  3. package/dist/wc-forms/VdRadioGroup-BAy4077M.js +1 -0
  4. package/dist/wc-forms/VdSearchableSelect-BYsNA8so.js +9 -0
  5. package/dist/wc-forms/VdSelect-DS5ijaBw.js +1 -0
  6. package/dist/wc-forms/bike.js +1 -1647
  7. package/dist/wc-forms/birthdate.schema-B2IfhcT0.js +1 -0
  8. package/dist/wc-forms/business-car.js +1 -109
  9. package/dist/wc-forms/business-liability.js +1 -71
  10. package/dist/wc-forms/car.js +1 -112
  11. package/dist/wc-forms/caravan.js +1 -144
  12. package/dist/wc-forms/company.schema-D_-KvPAl.js +1 -0
  13. package/dist/wc-forms/date.util-Dn_Fq_ZZ.js +1 -0
  14. package/dist/wc-forms/familyComposition.schema-BckaOvgV.js +1 -0
  15. package/dist/wc-forms/floating-ui.dom-CZdxKWz5.js +1 -0
  16. package/dist/wc-forms/house.js +1 -101
  17. package/dist/wc-forms/houseOwnedBuilding.model-RQzmveyS.js +1 -0
  18. package/dist/wc-forms/legal.js +1 -153
  19. package/dist/wc-forms/liability.js +1 -89
  20. package/dist/wc-forms/loan.js +1 -173
  21. package/dist/wc-forms/messages-Da6go1uu.js +1 -0
  22. package/dist/wc-forms/moped.js +1 -115
  23. package/dist/wc-forms/motor.js +1 -112
  24. package/dist/wc-forms/package.js +1 -119
  25. package/dist/wc-forms/pet.js +1 -158
  26. package/dist/wc-forms/rolldown-runtime-Bm1jhNxk.js +1 -0
  27. package/dist/wc-forms/rules-4erM_5MW.js +1 -0
  28. package/dist/wc-forms/services-D6FlwWWO.js +1 -0
  29. package/dist/wc-forms/travel.js +1 -99
  30. package/dist/wc-forms/useAddress-mxYJ2B9-.js +1 -0
  31. package/dist/wc-forms/useLicensePlate-BK5GSqI6.js +1 -0
  32. package/dist/wc-forms/useValidator-BXvfnDwv.js +27 -0
  33. package/dist/wc-forms/yesNo-Dat_jmcx.js +1 -0
  34. package/package.json +1 -1
  35. package/dist/wc-forms/VdInput-PLH7DZsc.js +0 -331
  36. package/dist/wc-forms/VdPopover-CcRVedXS.js +0 -285
  37. package/dist/wc-forms/VdRadioGroup-BsMaGEuY.js +0 -166
  38. package/dist/wc-forms/VdSearchableSelect-CY7qBcIO.js +0 -4516
  39. package/dist/wc-forms/VdSelect-BPB3Jh_f.js +0 -108
  40. package/dist/wc-forms/birthdate.schema-DGsq2GQR.js +0 -89
  41. package/dist/wc-forms/company.schema-CUG4hnMP.js +0 -239
  42. package/dist/wc-forms/date.util-D9xNHiuY.js +0 -474
  43. package/dist/wc-forms/familyComposition.schema-fY4w6P1J.js +0 -74
  44. package/dist/wc-forms/floating-ui.dom-B6uyM6oK.js +0 -856
  45. package/dist/wc-forms/houseOwnedBuilding.model-CPULUrWv.js +0 -14
  46. package/dist/wc-forms/messages-kbFdNTrA.js +0 -40
  47. package/dist/wc-forms/rolldown-runtime-Dqa2HsxW.js +0 -20
  48. package/dist/wc-forms/rules-Cj1sWDmF.js +0 -13
  49. package/dist/wc-forms/services-CG6XsnRT.js +0 -16
  50. package/dist/wc-forms/useAddress-LSZ7sQk9.js +0 -243
  51. package/dist/wc-forms/useLicensePlate-KLwykzxF.js +0 -187
  52. package/dist/wc-forms/useValidator-DdXn8soU.js +0 -7197
  53. package/dist/wc-forms/yesNo-BvJlCm7Y.js +0 -6
@@ -0,0 +1 @@
1
+ import{VdFormCol_default,VdFormRow_default,computed,create$3,create$6,createBaseVNode,createCommentVNode,createElementBlock,createTextVNode,createVNode,defineComponent,isRef,mergeModels,nextTick,normalizeClass,onMounted,openBlock,ref,renderSlot,toDisplayString,unref,useModel,useValidatorContext,watch,withCtx}from"./useValidator-BXvfnDwv.js";import{VdInput_default}from"./VdInput-BaZx7lM7.js";import{VdSelect_default}from"./VdSelect-DS5ijaBw.js";import{getService}from"./services-D6FlwWWO.js";var VdFormGroup_default=defineComponent({__name:`VdFormGroup`,props:{span:{default:null},md:{default:null}},setup(__props){let props=__props,classes=computed(()=>[`vd-form__group`,props.span==null?null:`vd-form__col-${props.span}`,props.md==null?null:`vd-form__col-md-${props.md}`]);return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{class:normalizeClass(classes.value)},[renderSlot(_ctx.$slots,`default`)],2))}}),_hoisted_1={class:`vd-field`},_hoisted_2={key:0,class:`vd-field__message vd-field__message--error`},_hoisted_3={key:1,class:`vd-field__message vd-field__message--information`},VdAddress_default=defineComponent({__name:`VdAddress`,props:mergeModels({path:{default:`address`},additionOptions:{}},{resolvedAddress:{required:!0},resolvedAddressModifiers:{}}),emits:[`update:resolvedAddress`],setup(__props){let props=__props,resolvedAddress=useModel(__props,`resolvedAddress`),{path}=props,{defineField,validateField,getFieldMeta,getError,removeError}=useValidatorContext(),[zipCode,,zipCodeError]=defineField(`${path}.zipCode`),[houseNumber,,houseNumberError]=defineField(`${path}.houseNumber`),[addition,,additionError]=defineField(`${path}.houseNumberAddition`),validateGroup=async()=>{await validateField(path),addition.value||removeError(`${path}.houseNumberAddition`)},onPairBlur=ownPath=>{zipCode.value&&houseNumber.value?validateGroup():validateField(ownPath)},onZipCodeBlur=()=>onPairBlur(`${path}.zipCode`),onHouseNumberBlur=()=>onPairBlur(`${path}.houseNumber`),onAdditionSelect=()=>nextTick(()=>validateField(path)),meta=getFieldMeta(path),groupError=computed(()=>getError(path)??``),isVerified=computed(()=>resolvedAddress.value!==null),additionPlaceholder=computed(()=>props.additionOptions.length===0?`-`:`Kies een toevoeging`);return watch([zipCode,houseNumber],()=>{addition.value&&=``,resolvedAddress.value=null,removeError(path),removeError(`${path}.houseNumberAddition`)}),watch(addition,()=>{resolvedAddress.value=null}),onMounted(()=>{zipCode.value&&houseNumber.value&&validateGroup()}),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1,[createVNode(VdFormRow_default,null,{default:withCtx(()=>[createVNode(VdFormCol_default,{span:`5`,md:`3`},{default:withCtx(()=>[createVNode(VdInput_default,{modelValue:unref(zipCode),"onUpdate:modelValue":_cache[0]||=$event=>isRef(zipCode)?zipCode.value=$event:null,modelModifiers:{trim:!0},name:`zipCode`,label:`Postcode`,placeholder:`bv. 1234 AZ`,"error-message":unref(zipCodeError),mask:`####@@`,capitalize:``,autocomplete:``,required:!1,verified:isVerified.value,loading:unref(meta).isValidating,onBlur:onZipCodeBlur},null,8,[`modelValue`,`error-message`,`verified`,`loading`])]),_:1}),createVNode(VdFormGroup_default,{span:`7`,md:`3`},{default:withCtx(()=>[createVNode(VdInput_default,{modelValue:unref(houseNumber),"onUpdate:modelValue":_cache[1]||=$event=>isRef(houseNumber)?houseNumber.value=$event:null,modelModifiers:{trim:!0},name:`houseNumber`,label:`Huisnummer`,placeholder:`bv. 1`,inputmode:`numeric`,"error-message":unref(houseNumberError),autocomplete:``,required:!1,verified:isVerified.value,loading:unref(meta).isValidating,onBlur:onHouseNumberBlur},null,8,[`modelValue`,`error-message`,`verified`,`loading`]),createVNode(VdSelect_default,{modelValue:unref(addition),"onUpdate:modelValue":_cache[2]||=$event=>isRef(addition)?addition.value=$event:null,name:`houseNumberAddition`,label:`Toevoeging`,placeholder:additionPlaceholder.value,options:__props.additionOptions,"error-message":unref(additionError),disabled:__props.additionOptions.length===0||unref(meta).isValidating,verified:isVerified.value,required:!1,onSelect:onAdditionSelect},null,8,[`modelValue`,`placeholder`,`options`,`error-message`,`disabled`,`verified`])]),_:1})]),_:1}),groupError.value?(openBlock(),createElementBlock(`div`,_hoisted_2,[_cache[3]||=createBaseVNode(`i`,{class:`fas fa-exclamation-circle vd-field__message-icon`},null,-1),createTextVNode(` `+toDisplayString(groupError.value),1)])):resolvedAddress.value?(openBlock(),createElementBlock(`div`,_hoisted_3,[_cache[4]||=createBaseVNode(`i`,{class:`fas fa-info-circle vd-field__message-icon`},null,-1),createTextVNode(` `+toDisplayString(resolvedAddress.value.street)+`, `+toDisplayString(resolvedAddress.value.city),1)])):createCommentVNode(``,!0)]))}}),toAddressData=address=>({zipCode:address.ZipCode,houseNumber:String(address.HouseNumber),houseNumberAddition:address.HouseNumberAddition,city:address.Place,street:address.Street}),ZIP_CODE_REGEX=/^\d{4}\s?[a-zA-Z]{2}$/,HOUSE_NUMBER_REGEX=/^\d+$/,LOOKUP_MESSAGES={"needs-addition":`Een toevoeging is verplicht`,"not-found":`Postcode en huisnummer combinatie onbekend.`,error:`Adres ophalen is mislukt. Probeer het opnieuw.`};function normalizeZipCode(zipCode){return zipCode.replace(/\s/g,``).toUpperCase()}var NO_ADDITION=`NO_ADDITION`;function normalizeAddition(addition){return addition===NO_ADDITION?``:addition.replace(`-`,``)}var isTransportError=reason=>reason instanceof Error,asNotFound=reason=>{if(isTransportError(reason))throw reason;return null},fetchAddress=(zipCode,houseNumber,addition)=>getService().dataValidationService.validateZipCode(zipCode,houseNumber,addition).then(response=>response).catch(asNotFound),fetchAdditions=(zipCode,houseNumber)=>getService().homeService.getAddition({zipcode:zipCode,houseNumber}).then(result=>result??[]).catch(asNotFound),resolvePair=async(zipCode,houseNumber)=>{let[raw,additions]=await Promise.all([fetchAddress(zipCode,houseNumber),fetchAdditions(zipCode,houseNumber)]);return!raw&&!additions?.length?null:{validWithoutAddition:!!raw,template:raw,additions:additions??[]}},toAdditionOptions=verdict=>{let options=verdict.additions.map(addition=>({title:addition,value:normalizeAddition(addition)}));return verdict.validWithoutAddition&&options.length?[{title:`Geen toevoeging`,value:NO_ADDITION},...options]:options},createAddressDraft=initial=>({zipCode:initial?.zipCode??``,houseNumber:initial?.houseNumber??``,houseNumberAddition:initial?initial.houseNumberAddition||NO_ADDITION:``}),useAddress=options=>{let path=options?.path??`address`,draft=createAddressDraft(options?.initial),resolvedAddress=ref(null),additionOptions=ref([]),requestId=0,pairMemo=null,resolveDraft=async draft=>{let zip=normalizeZipCode(draft.zipCode),house=draft.houseNumber.trim(),addition=normalizeAddition(draft.houseNumberAddition),key=`${zip}:${house}`;try{let memo=pairMemo?.key===key?pairMemo:null;if(!memo){let verdict=await resolvePair(zip,house);if(!verdict)return{status:`not-found`,options:[],address:null};memo=pairMemo={key,verdict}}let options=toAdditionOptions(memo.verdict);if(memo.verdict.additions.length&&!draft.houseNumberAddition)return{status:`needs-addition`,options,address:null};if(!memo.verdict.template){let resolved=await fetchAddress(zip,house,addition);if(!resolved)return{status:`not-found`,options:[],address:null};memo.verdict.template=resolved}return{status:`resolved`,options,address:addition?{...memo.verdict.template,HouseNumberAddition:addition}:memo.verdict.template}}catch(error){return console.error(`Error on ITC address lookup`,error),{status:`error`,options:[],address:null}}},lookup=async draft=>{let id=++requestId,result=await resolveDraft(draft),stale=id!==requestId;return stale||(additionOptions.value=result.options,resolvedAddress.value=result.address?toAddressData(result.address):null),{...result,stale}};return{path,addressSchema:create$3({zipCode:create$6().required(`Vul je postcode in`).matches(ZIP_CODE_REGEX,`Postcode is incorrect`),houseNumber:create$6().required(`Huisnummer is verplicht`).matches(HOUSE_NUMBER_REGEX,`Huisnummer is incorrect`),houseNumberAddition:create$6().defined()}).test(`address-lookup`,async(value,context)=>{let zip=normalizeZipCode(value.zipCode??``),house=String(value.houseNumber??``).trim();if(!ZIP_CODE_REGEX.test(zip)||!HOUSE_NUMBER_REGEX.test(house))return!0;let{status,stale}=await lookup(value);return stale||status===`resolved`?!0:status===`needs-addition`?context.createError({path:`${context.path}.houseNumberAddition`,message:LOOKUP_MESSAGES[status]}):context.createError({message:LOOKUP_MESSAGES[status]})}),draft,resolvedAddress,additionOptions}};export{VdAddress_default,useAddress};
@@ -0,0 +1 @@
1
+ import{Fragment,computed,create$6,createBaseVNode,createBlock,createCommentVNode,createElementBlock,createSlots,createTextVNode,defineComponent,mergeModels,mergeProps,openBlock,ref,renderSlot,toDisplayString,unref,useAttrs,useModel,useSlots,watch,withCtx}from"./useValidator-BXvfnDwv.js";import{VdInput_default}from"./VdInput-BaZx7lM7.js";import{getService}from"./services-D6FlwWWO.js";var ComparisonName=function(ComparisonName){return ComparisonName.Bike=`bike`,ComparisonName.Car=`car`,ComparisonName.Caravan=`caravan`,ComparisonName.CarBusiness=`car-business`,ComparisonName.BusinessLiability=`business-liability`,ComparisonName.Housing=`housing`,ComparisonName.LegalAssistance=`legal-assistance`,ComparisonName.Liability=`liability`,ComparisonName.Loan=`loan`,ComparisonName.Moped=`moped`,ComparisonName.Motor=`motor`,ComparisonName.Package=`package`,ComparisonName.Pet=`pet`,ComparisonName.Travel=`travel`,ComparisonName}({}),VehicleTypesModel={[ComparisonName.Car]:{apiTypes:[`Car`,`Van`],dutch:`auto`,icon:`fa-car`},[ComparisonName.Motor]:{apiTypes:[`Motor`,`MP3Motor`],dutch:`motor`,icon:`fa-motorcycle`},[ComparisonName.Moped]:{apiTypes:[`Moped`],dutch:`brommer`,icon:`moped-solid`},[ComparisonName.Caravan]:{apiTypes:[`Caravan`],dutch:`caravan`,icon:`fa-caravan-alt`}},IconsByVehicleTypeModel=Object.fromEntries(Object.values(VehicleTypesModel).flatMap(({apiTypes,icon})=>apiTypes.map(apiType=>[apiType.toLowerCase(),icon]))),IconsByVehicleModel={brommobiel:`fa-car-side`,"speed pedelec":`fa-bicycle`},hasVehicleSpecs=vehicle=>!!vehicle?.Brand&&!!vehicle.Model&&!!vehicle.ManufacturingYear,getVehicleIcon=vehicle=>{if(!vehicle)return``;let model=String(vehicle.Model??``).toLowerCase().trim(),type=String(vehicle.VehicleType??``).toLowerCase();return IconsByVehicleModel[model]??IconsByVehicleTypeModel[type]??``},getVehicleLabel=vehicle=>vehicle?`${vehicle.Brand} ${vehicle.Model} (${vehicle.ManufacturingYear})`:``,LICENSE_PLATE_MASKS=[`@@-##-@@`,`##-##-@@`,`##-@@-@@`,`@@-@@-##`,`##-@@-##`,`@@-##-##`,`##-@@@-#`,`@@-###-@`,`@-###-@@`,`#-@@@-##`,`@@@-##-@`,`@-##-@@@`,`#-@@-###`,`###-@@-#`];function normalizeLicensePlate(licensePlate){return licensePlate.replace(/[\s\\-]/g,``)}var RAW_MASK=`*`.repeat(6),SIDECODE_TOKENS=LICENSE_PLATE_MASKS.map(mask=>mask.replace(/-/g,``));function licensePlateMask(input){let raw=normalizeLicensePlate(input).slice(0,6);if(raw.length<6)return RAW_MASK;let pattern=[...raw].map(char=>/[0-9]/.test(char)?`#`:`@`).join(``),sidecodeIndex=SIDECODE_TOKENS.indexOf(pattern);return sidecodeIndex===-1?RAW_MASK:LICENSE_PLATE_MASKS[sidecodeIndex]}var _hoisted_1={key:0,class:`vd-input-license-plate__loading-information`},_hoisted_2=[`src`],VdLicensePlate_default=defineComponent({inheritAttrs:!1,__name:`VdLicensePlate`,props:mergeModels({name:{},label:{default:`Kenteken`},errorMessage:{default:null},loading:{type:Boolean,default:!1},required:{type:Boolean,default:!1}},{modelValue:{default:``},modelModifiers:{},vehicleData:{default:null},vehicleDataModifiers:{}}),emits:mergeModels([`input`],[`update:modelValue`,`update:vehicleData`]),setup(__props,{emit:__emit}){let maskOptions={mask:licensePlateMask},props=__props,model=useModel(__props,`modelValue`),vehicleModel=useModel(__props,`vehicleData`),emit=__emit,attrs=useAttrs(),slots=useSlots(),plateModel=computed({get:()=>model.value??``,set:value=>{model.value=value,emit(`input`,value)}}),platesMatch=(a,b)=>normalizeLicensePlate(a).toUpperCase()===normalizeLicensePlate(b).toUpperCase();watch(model,plate=>{vehicleModel.value&&!platesMatch(plate,vehicleModel.value.LicensePlate)&&(vehicleModel.value=null)});let vehicle=computed(()=>hasVehicleSpecs(vehicleModel.value)?vehicleModel.value:null),showInformation=computed(()=>props.loading||!!vehicle.value&&!props.errorMessage),vehicleIcon=computed(()=>getVehicleIcon(vehicle.value)),vehicleLabel=computed(()=>getVehicleLabel(vehicle.value));return(_ctx,_cache)=>(openBlock(),createBlock(VdInput_default,mergeProps(unref(attrs),{modelValue:plateModel.value,"onUpdate:modelValue":_cache[0]||=$event=>plateModel.value=$event,capitalize:``,autocomplete:``,name:__props.name,label:__props.label,required:__props.required,"error-message":__props.errorMessage||null,loading:__props.loading,mask:maskOptions,class:`vd-input-license-plate`}),createSlots({_:2},[unref(slots).label?{name:`label`,fn:withCtx(()=>[renderSlot(_ctx.$slots,`label`)]),key:`0`}:void 0,unref(slots).popover?{name:`popover`,fn:withCtx(()=>[renderSlot(_ctx.$slots,`popover`)]),key:`1`}:void 0,showInformation.value?{name:`information`,fn:withCtx(()=>[__props.loading?(openBlock(),createElementBlock(`div`,_hoisted_1,[..._cache[1]||=[createBaseVNode(`i`,{class:`fas fa-circle-notch vd-input-license-plate__loading-icon`},null,-1),createTextVNode(` Voertuig gegevens ophalen... `,-1)]])):vehicle.value?(openBlock(),createElementBlock(Fragment,{key:1},[vehicleIcon.value?(openBlock(),createElementBlock(`img`,{key:0,src:`https://d12bmfj3oyxu0t.cloudfront.net/vergelijkdirect/icons/${vehicleIcon.value}.svg`,class:`vd-field__svg-message-icon`,alt:`vehicle-icon`},null,8,_hoisted_2)):createCommentVNode(``,!0),createTextVNode(` `+toDisplayString(vehicleLabel.value),1)],64)):createCommentVNode(``,!0)]),key:`2`}:void 0]),1040,[`modelValue`,`name`,`label`,`required`,`error-message`,`loading`]))}}),lookupCache=new Map,cacheKey=(plate,vehicleType)=>`${vehicleType}:${plate}`,MESSAGES={"wrong-type":type=>`Het ingevoerde kenteken is geen ${VehicleTypesModel[type].dutch}`,unknown:()=>`Voertuig onbekend - Voer ander kenteken in of neem contact op`,"not-found":()=>`Kenteken onbekend`,error:()=>`Kenteken is incorrect`},resolveVehicle=async(licensePlate,vehicleType)=>{try{let response=await getService().dataService.findVehicle(licensePlate,vehicleType);if(Array.isArray(response)||!response||!Object.keys(response).length)return{status:`not-found`};let raw=response;return raw.VehicleType?VehicleTypesModel[vehicleType].apiTypes.includes(raw.VehicleType)?{status:`found`,data:raw}:{status:`wrong-type`}:{status:`unknown`}}catch(error){return console.error(`Error on ITC findVehicle`,error),{status:`error`}}},resolveCached=(plate,vehicleType)=>{let key=cacheKey(plate,vehicleType),promise=lookupCache.get(key);return promise||(promise=resolveVehicle(plate,vehicleType),lookupCache.set(key,promise),promise.then(({status})=>{status===`error`&&lookupCache.delete(key)},()=>lookupCache.delete(key))),promise},useLicensePlate=(vehicleType,options={})=>{let vehicleData=ref(options.initialData??null),requestId=0;options.initialData?.LicensePlate&&lookupCache.set(cacheKey(normalizeLicensePlate(options.initialData.LicensePlate),vehicleType),Promise.resolve({status:`found`,data:options.initialData}));let lookup=async licensePlate=>{let plate=normalizeLicensePlate(licensePlate),id=++requestId,result=await resolveCached(plate,vehicleType);return id===requestId&&(vehicleData.value=result.status===`found`?result.data:null),result};return{vehicleData,licensePlateSchema:create$6().required(`Dit veld is verplicht`).test(`license-plate-lookup`,async(value,context)=>{if(!value)return!0;let plate=normalizeLicensePlate(value);if(plate.length<6)return context.createError({message:`Kenteken is incorrect`});let{status}=await lookup(plate);return status===`found`||context.createError({message:MESSAGES[status](vehicleType)})})}};export{ComparisonName,VdLicensePlate_default,useLicensePlate};