@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.
- package/dist/vue/comparison-forms.d.ts +28 -28
- package/dist/vue/comparison-forms.js +31 -31
- package/dist/wc/comparison-forms.js +30 -30
- package/dist/wc-forms/VdInput-ByupXLnL.js +1 -0
- package/dist/wc-forms/VdPopover-BSX4-53B.js +1 -0
- package/dist/wc-forms/VdRadioGroup-DrZBkeSB.js +1 -0
- package/dist/wc-forms/VdSearchableSelect-WCZ_fmSu.js +9 -0
- package/dist/wc-forms/VdSelect-CoIbpl6o.js +1 -0
- package/dist/wc-forms/bike.js +1 -1647
- package/dist/wc-forms/birthdate.schema-DmmaLv3m.js +1 -0
- package/dist/wc-forms/business-car.js +1 -109
- package/dist/wc-forms/business-liability.js +1 -71
- package/dist/wc-forms/car.js +1 -112
- package/dist/wc-forms/caravan.js +1 -144
- package/dist/wc-forms/company.schema-Ck__hYWi.js +1 -0
- package/dist/wc-forms/date.util-Dn_Fq_ZZ.js +1 -0
- package/dist/wc-forms/familyComposition.schema-EunoL_tT.js +1 -0
- package/dist/wc-forms/floating-ui.dom-CZdxKWz5.js +1 -0
- package/dist/wc-forms/house.js +1 -101
- package/dist/wc-forms/houseOwnedBuilding.model-Pb7X63G3.js +1 -0
- package/dist/wc-forms/legal.js +1 -153
- package/dist/wc-forms/liability.js +1 -89
- package/dist/wc-forms/loan.js +1 -173
- package/dist/wc-forms/messages-Da6go1uu.js +1 -0
- package/dist/wc-forms/moped.js +1 -115
- package/dist/wc-forms/motor.js +1 -112
- package/dist/wc-forms/package.js +1 -119
- package/dist/wc-forms/pet.js +1 -158
- package/dist/wc-forms/rolldown-runtime-Bm1jhNxk.js +1 -0
- package/dist/wc-forms/rules-I6gvAZk7.js +1 -0
- package/dist/wc-forms/services-D6FlwWWO.js +1 -0
- package/dist/wc-forms/travel.js +1 -99
- package/dist/wc-forms/useAddress-CsbZuerN.js +1 -0
- package/dist/wc-forms/useLicensePlate-3mDMfh1T.js +1 -0
- package/dist/wc-forms/useValidator-i4hsDLG4.js +27 -0
- package/dist/wc-forms/yesNo-Dat_jmcx.js +1 -0
- package/dist/wc-noitc/comparison-forms.js +1 -1
- package/package.json +1 -1
- package/dist/wc-forms/VdInput-PLH7DZsc.js +0 -331
- package/dist/wc-forms/VdPopover-CcRVedXS.js +0 -285
- package/dist/wc-forms/VdRadioGroup-BsMaGEuY.js +0 -166
- package/dist/wc-forms/VdSearchableSelect-CY7qBcIO.js +0 -4516
- package/dist/wc-forms/VdSelect-BPB3Jh_f.js +0 -108
- package/dist/wc-forms/birthdate.schema-DGsq2GQR.js +0 -89
- package/dist/wc-forms/company.schema-CUG4hnMP.js +0 -239
- package/dist/wc-forms/date.util-D9xNHiuY.js +0 -474
- package/dist/wc-forms/familyComposition.schema-fY4w6P1J.js +0 -74
- package/dist/wc-forms/floating-ui.dom-B6uyM6oK.js +0 -856
- package/dist/wc-forms/houseOwnedBuilding.model-CPULUrWv.js +0 -14
- package/dist/wc-forms/messages-kbFdNTrA.js +0 -40
- package/dist/wc-forms/rolldown-runtime-Dqa2HsxW.js +0 -20
- package/dist/wc-forms/rules-Cj1sWDmF.js +0 -13
- package/dist/wc-forms/services-CG6XsnRT.js +0 -16
- package/dist/wc-forms/useAddress-LSZ7sQk9.js +0 -243
- package/dist/wc-forms/useLicensePlate-KLwykzxF.js +0 -187
- package/dist/wc-forms/useValidator-DdXn8soU.js +0 -7197
- 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};
|