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

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 (57) hide show
  1. package/dist/vue/comparison-forms.d.ts +28 -28
  2. package/dist/vue/comparison-forms.js +31 -31
  3. package/dist/wc/comparison-forms.js +30 -30
  4. package/dist/wc-forms/VdInput-ByupXLnL.js +1 -0
  5. package/dist/wc-forms/VdPopover-BSX4-53B.js +1 -0
  6. package/dist/wc-forms/VdRadioGroup-DrZBkeSB.js +1 -0
  7. package/dist/wc-forms/VdSearchableSelect-WCZ_fmSu.js +9 -0
  8. package/dist/wc-forms/VdSelect-CoIbpl6o.js +1 -0
  9. package/dist/wc-forms/bike.js +1 -1647
  10. package/dist/wc-forms/birthdate.schema-DmmaLv3m.js +1 -0
  11. package/dist/wc-forms/business-car.js +1 -109
  12. package/dist/wc-forms/business-liability.js +1 -71
  13. package/dist/wc-forms/car.js +1 -112
  14. package/dist/wc-forms/caravan.js +1 -144
  15. package/dist/wc-forms/company.schema-Ck__hYWi.js +1 -0
  16. package/dist/wc-forms/date.util-Dn_Fq_ZZ.js +1 -0
  17. package/dist/wc-forms/familyComposition.schema-EunoL_tT.js +1 -0
  18. package/dist/wc-forms/floating-ui.dom-CZdxKWz5.js +1 -0
  19. package/dist/wc-forms/house.js +1 -101
  20. package/dist/wc-forms/houseOwnedBuilding.model-Pb7X63G3.js +1 -0
  21. package/dist/wc-forms/legal.js +1 -153
  22. package/dist/wc-forms/liability.js +1 -89
  23. package/dist/wc-forms/loan.js +1 -173
  24. package/dist/wc-forms/messages-Da6go1uu.js +1 -0
  25. package/dist/wc-forms/moped.js +1 -115
  26. package/dist/wc-forms/motor.js +1 -112
  27. package/dist/wc-forms/package.js +1 -119
  28. package/dist/wc-forms/pet.js +1 -158
  29. package/dist/wc-forms/rolldown-runtime-Bm1jhNxk.js +1 -0
  30. package/dist/wc-forms/rules-I6gvAZk7.js +1 -0
  31. package/dist/wc-forms/services-D6FlwWWO.js +1 -0
  32. package/dist/wc-forms/travel.js +1 -99
  33. package/dist/wc-forms/useAddress-CsbZuerN.js +1 -0
  34. package/dist/wc-forms/useLicensePlate-3mDMfh1T.js +1 -0
  35. package/dist/wc-forms/useValidator-i4hsDLG4.js +27 -0
  36. package/dist/wc-forms/yesNo-Dat_jmcx.js +1 -0
  37. package/dist/wc-noitc/comparison-forms.js +1 -1
  38. package/package.json +1 -1
  39. package/dist/wc-forms/VdInput-PLH7DZsc.js +0 -331
  40. package/dist/wc-forms/VdPopover-CcRVedXS.js +0 -285
  41. package/dist/wc-forms/VdRadioGroup-BsMaGEuY.js +0 -166
  42. package/dist/wc-forms/VdSearchableSelect-CY7qBcIO.js +0 -4516
  43. package/dist/wc-forms/VdSelect-BPB3Jh_f.js +0 -108
  44. package/dist/wc-forms/birthdate.schema-DGsq2GQR.js +0 -89
  45. package/dist/wc-forms/company.schema-CUG4hnMP.js +0 -239
  46. package/dist/wc-forms/date.util-D9xNHiuY.js +0 -474
  47. package/dist/wc-forms/familyComposition.schema-fY4w6P1J.js +0 -74
  48. package/dist/wc-forms/floating-ui.dom-B6uyM6oK.js +0 -856
  49. package/dist/wc-forms/houseOwnedBuilding.model-CPULUrWv.js +0 -14
  50. package/dist/wc-forms/messages-kbFdNTrA.js +0 -40
  51. package/dist/wc-forms/rolldown-runtime-Dqa2HsxW.js +0 -20
  52. package/dist/wc-forms/rules-Cj1sWDmF.js +0 -13
  53. package/dist/wc-forms/services-CG6XsnRT.js +0 -16
  54. package/dist/wc-forms/useAddress-LSZ7sQk9.js +0 -243
  55. package/dist/wc-forms/useLicensePlate-KLwykzxF.js +0 -187
  56. package/dist/wc-forms/useValidator-DdXn8soU.js +0 -7197
  57. 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-i4hsDLG4.js";import{VdInput_default}from"./VdInput-ByupXLnL.js";import{VdSelect_default}from"./VdSelect-CoIbpl6o.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-i4hsDLG4.js";import{VdInput_default}from"./VdInput-ByupXLnL.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};