minsky-webform-formkit 1.0.1 → 1.0.3

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/index.js CHANGED
@@ -1 +1 @@
1
- import{ref as e,reactive as a,onMounted as o,computed as n,watch as d,nextTick as i,resolveComponent as c,openBlock as t,createElementBlock as l,normalizeClass as r,renderSlot as s,createCommentVNode as m,createVNode as u,toDisplayString as _,Fragment as f,renderList as p,createElementVNode as h,unref as v,withCtx as g,watchEffect as b,withDirectives as y,vModelSelect as S,createBlock as M}from"vue";import k from"gsap";import w from"gsap/ScrollToPlugin";import{createInput as A,plugin as T,defaultConfig as C,FormKitMessages as I}from"@formkit/vue";import{Tooltip as B}from"floating-vue";import{nl as G,en as P,fr as K}from"@formkit/i18n";import{createMultiStepPlugin as F}from"@formkit/addons";import L from"libphonenumber-js/mobile/examples";import N from"country-flag-icons/unicode";import{parsePhoneNumber as E,getExampleNumber as R}from"libphonenumber-js";import{IBAN as x}from"ibankit";import{countries as D,checkVAT as j}from"@accountable/jsvat";function $(e,...a){H(e)||Array.isArray(e)||(e={});for(const o of a)if(H(o)||Array.isArray(o))for(const a of Object.keys(o)){const n=o[a],d=e[a];Array.isArray(n)?Array.isArray(d)?e[a]=[...d,...n]:e[a]=[...n]:H(n)?(H(d)||(e[a]={}),e[a]=$(e[a],n)):e[a]=n}return e}const U=e=>null==e?[]:Object.keys(Object(e));function V(e,a){if(null==e)return{};Array.isArray(a)||(a=[a]);const o={};for(const n of a)n in e&&(o[n]=e[n]);return o}function O(e,...a){null==e&&(e={});for(const o of a)if(null!=o)for(const a of Object.keys(o)){const n=o[a],d=e[a];void 0===d?e[a]=n:H(d)&&H(n)&&O(d,n)}return e}function H(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function z(e){let a=!1;return(e||0===e)&&(a=!0),Array.isArray(e)&&(a=!0),a}var W={global:{editor:{error:"Check that the form has been completed correctly. Ensure that no unnecessary conditional fields have been filled in."}},nl:{messages:{missing:"Dit formulier ontbreekt. Controleer of het ID dat u gebruikt correct is.",error:"Er is iets misgegaan bij het laden van het formulier."},success:{title:"Bedankt!",message:"We hebben je gegevens goed ontvangen."}},en:{messages:{missing:"This form is missing. Please check that the ID you are using is correct.",error:"Something went wrong while loading the form."},success:{title:"Thank you!",message:"We have successfully received your information."}},fr:{messages:{missing:"Ce formulaire est manquant. Vérifiez que l'ID que vous utilisez est correct.",error:"Une erreur est survenue lors du chargement du formulaire."},success:{title:"Merci !",message:"Nous avons bien reçu vos informations."}}};const q={key:0,class:"webform-formkit__placeholder"},J={key:1},Z={key:2,class:"webform-formkit__loader"},Y={key:0,class:"webform-formkit__message"},Q={key:3,class:"webform-formkit__success"},X={key:0,class:"webform-formkit__succes-title"},ee=["innerHTML"],ae={key:4,class:"webform-formkit__errors"},oe=["innerHTML"];var ne={__name:"MinskyWebformFormKit",props:{id:{type:String,required:!0},api:{type:String,default:window.location.origin},classModifier:String,defaults:Object,schemeProcessor:Function,formDataAddons:Object,submitProcessor:Function,forceRedirect:{type:Object,default:()=>({bool:!1})},cmpLibrary:{type:Object,default:()=>({})},messages:{type:Object,default:()=>{}},setUserData:Function},emits:["success"],setup(h,{emit:v}){k.registerPlugin(w);const{lang:g}=document.documentElement,b=h,y=v,S=e(null),M=e(null),A=e({}),T=e({}),C=e(!0),I=e(!1),B=e(!1),G=e(null),P=e(null),K=e(null),F=e(null),L=e(!1),N=a({values:{}});o((()=>{T.value=Object.assign(W,b.messages),N.submit=async e=>{delete e.form_id,delete e.vApp,delete e.webformId,U(e).forEach((a=>{a.includes("captcha")&&(Object.assign(e,e[a]),delete e[a])})),async function(e){b.submitProcessor&&(e=b.submitProcessor(e));B.value=!0;const a=document.querySelector(".formkit-input[type=submit]");a&&(a.disabled=!0);const o=new URLSearchParams(window.location.search);o.append("schema","form_kit");const n=new FormData;for(const a in e)if(z(e[a]))if(Array.isArray(e[a]))e[a].length?e[a].forEach((e=>{"imageUpload"===this.$formkit.get(`${this.id}--${a}`).context.type?"object"==typeof e?N.append(`${a}[]`,_values(e)[0]):N.append(`${a}[]`,e):n.append(`${a}[]`,e)})):n.append(a,"");else if("string"==typeof e[a])if(2===e[a].indexOf("json_value")){const o=JSON.parse(e[a]).json_value;U(o).forEach((e=>{n.append(`${a}[${e}]`,o[e])}))}else n.append(a,e[a]);else n.append(a,e[a]);fetch(`${b.api}/webform/${b.id}/json/submission?${o.toString()}`,{method:"POST",body:n,query:window.location.search}).then((a=>{200===a.status?a.json().then((a=>{!function(e){if(b.forceRedirect.bool)window.location=b.forceRedirect.url;else switch(e.confirmation.type){case"inline":K.value=e.confirmation.title,P.value=e.confirmation.message,I.value=!0,k.to(window,{duration:.5,scrollTo:{y:S.value,offsetY:200},ease:"power2"}),B.value=!1;break;case"url":window.location=e.confirmation.url;break;default:K.value=T.value[g].success.title,P.value=T.value[g].success.message,I.value=!0,B.value=!1}y("success")}(a),b.setUserData&&b.setUserData(e)})):a.json().then((e=>{L.value=!0,B.value=!1,F.value=e.errors}))})).catch((()=>{L.value=!0,B.value=!1}))}(e=function(e){const a={};return function e(o,n=""){for(const d in o)Array.isArray(o[d])?a[d]=o[d]:"object"==typeof o[d]&&null!==o[d]?e(o[d],`${n+d}.`):a[d]=o[d]}(e),a}(e))},N.submitInvalid=()=>{k.to(window,{duration:.5,scrollTo:{y:S.value,offsetY:300},ease:"power2"})},async function(){const e=new URLSearchParams(window.location.search);e.append("schema","form_kit");try{const a=await fetch(`${b.api}/webform/${b.id}/json/schema?${e.toString()}`),o=await a.json();if(!a.ok)throw new Error(o.errors?o.errors.map((e=>e.message)).join(", "):"Unknown error");o.schema?(M.value=o.schema,b.schemeProcessor&&(M.value=b.schemeProcessor(o.schema)),A.value=o.values):(L.value=!0,F.value=[{message:T.value[g].messages.missing}])}catch(e){if(L.value=!0,window.drupalSettings){(window.drupalSettings.user.roles||[]).some((e=>["administrator","editor"].includes(e)))?F.value=[{message:e},{message:T.value.global.error}]:F.value=[{message:T.value[g].messages.error}]}else F.value=[{message:T.value[g].messages.error}];console.error(`Error fetching schema of form with ID ${b.id}:`,e)}finally{C.value=!1}}(),b.formDataAddons&&Object.assign(N,b.formDataAddons)}));const E=n((()=>U(N.values)));function R(){O(N.values,V(A.value,E.value)),b.defaults&&$(N.values,V(b.defaults,E.value))}return d(E,(async()=>{R(),await i();const e=S.value?.querySelector("form");e&&e.setAttribute("novalidate",!0)})),(e,a)=>{const o=c("FormKitSchema"),n=c("Icon");return t(),l("div",{ref_key:"formRef",ref:S,class:r(["webform-formkit",[{"webform-formkit--loading":B.value||C.value},`webform-formkit--${b.id}`,b.classModifier?`webform-formkit--${b.classModifier}`:null]])},[!C.value||I.value||L.value?m("v-if",!0):(t(),l("div",q,[s(e.$slots,"placeholder")])),C.value||I.value||L.value?m("v-if",!0):(t(),l("div",J,[u(o,{schema:M.value,data:N,library:b.cmpLibrary},null,8,["schema","data","library"]),s(e.$slots,"afterSchema")])),C.value||B.value?(t(),l("div",Z,[u(n,{loading:!0}),G.value?(t(),l("p",Y,_(G.value),1)):m("v-if",!0)])):m("v-if",!0),I.value?(t(),l("div",Q,[K.value?(t(),l("h5",X,_(K.value),1)):m("v-if",!0),P.value?(t(),l("div",{key:1,class:"webform-formkit__message",innerHTML:P.value},null,8,ee)):m("v-if",!0)])):m("v-if",!0),L.value?(t(),l("ul",ae,[(t(!0),l(f,null,p(F.value,(e=>(t(),l("li",{innerHTML:e.message},null,8,oe)))),256))])):m("v-if",!0)],2)}},__file:"src/components/MinksyWebformFormKit/MinskyWebformFormKit.vue"};const de={key:0,role:"img",id:"L9",version:"1.1",class:"icon-svg icon-svg--loader",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 100 100",1:"","enable-background":"new 0 0 0 0","xml:space":"preserve"},ie=["aria-hidden"],ce={key:0},te=["xlink:href"];var le={__name:"Icon",props:{name:{type:String,default:""},loading:{type:Boolean,default:!1},modifiers:{type:Array,default:()=>[]},ariaTitle:{type:String}},setup:e=>(a,o)=>(t(),l("span",{class:r(["icon",[""!==e.name?"icon--"+e.name:"",e.modifiers.length?"icon--"+e.modifiers.join(" icon--"):""]])},[e.loading?(t(),l("svg",de,[...o[0]||(o[0]=[h("title",null,"Loading",-1),h("path",{fill:"currentColor",d:"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"},[h("animateTransform",{attributeName:"transform",attributeType:"XML",type:"rotate",dur:"1s",from:"0 50 50",to:"360 50 50",repeatCount:"indefinite"})],-1)])])):(t(),l("svg",{key:1,role:"img",class:"icon__svg","aria-hidden":!e.ariaTitle},[e.ariaTitle?(t(),l("title",ce,_(e.ariaTitle),1)):m("v-if",!0),e.name?(t(),l("use",{key:1,"xlink:href":"#sprite-"+e.name},null,8,te)):m("v-if",!0)],8,ie))],2)),__file:"src/components/Icon.vue"};const re={class:"info-tooltip"},se=["innerHTML"];var me={__name:"InfoTooltip",props:["content"],setup(e){const a=e;return(e,o)=>{const n=c("Icon");return t(),l("span",re,[u(v(B),{triggers:["click","hover"]},{popper:g((()=>[h("div",{innerHTML:a.content},null,8,se)])),default:g((()=>[u(n,{name:"info"})])),_:1})])}},__file:"src/components/InfoTooltip.vue"};const ue=["checkbox_multi","radio_multi","repeater","transferlist"];const _e=[{name:"Afghanistan",dial_code:"+93",code:"AF"},{name:"Aland Islands",dial_code:"+358",code:"AX"},{name:"Albania",dial_code:"+355",code:"AL"},{name:"Algeria",dial_code:"+213",code:"DZ"},{name:"AmericanSamoa",dial_code:"+1684",code:"AS"},{name:"Andorra",dial_code:"+376",code:"AD"},{name:"Angola",dial_code:"+244",code:"AO"},{name:"Anguilla",dial_code:"+1264",code:"AI"},{name:"Antarctica",dial_code:"+672",code:"AQ"},{name:"Antigua and Barbuda",dial_code:"+1268",code:"AG"},{name:"Argentina",dial_code:"+54",code:"AR"},{name:"Armenia",dial_code:"+374",code:"AM"},{name:"Aruba",dial_code:"+297",code:"AW"},{name:"Australia",dial_code:"+61",code:"AU"},{name:"Austria",dial_code:"+43",code:"AT"},{name:"Azerbaijan",dial_code:"+994",code:"AZ"},{name:"Bahamas",dial_code:"+1242",code:"BS"},{name:"Bahrain",dial_code:"+973",code:"BH"},{name:"Bangladesh",dial_code:"+880",code:"BD"},{name:"Barbados",dial_code:"+1246",code:"BB"},{name:"Belarus",dial_code:"+375",code:"BY"},{name:"Belgium",dial_code:"+32",code:"BE"},{name:"Belize",dial_code:"+501",code:"BZ"},{name:"Benin",dial_code:"+229",code:"BJ"},{name:"Bermuda",dial_code:"+1441",code:"BM"},{name:"Bhutan",dial_code:"+975",code:"BT"},{name:"Bolivia, Plurinational State of",dial_code:"+591",code:"BO"},{name:"Bosnia and Herzegovina",dial_code:"+387",code:"BA"},{name:"Botswana",dial_code:"+267",code:"BW"},{name:"Brazil",dial_code:"+55",code:"BR"},{name:"British Indian Ocean Territory",dial_code:"+246",code:"IO"},{name:"Brunei Darussalam",dial_code:"+673",code:"BN"},{name:"Bulgaria",dial_code:"+359",code:"BG"},{name:"Burkina Faso",dial_code:"+226",code:"BF"},{name:"Burundi",dial_code:"+257",code:"BI"},{name:"Cambodia",dial_code:"+855",code:"KH"},{name:"Cameroon",dial_code:"+237",code:"CM"},{name:"Canada",dial_code:"+1",code:"CA"},{name:"Cape Verde",dial_code:"+238",code:"CV"},{name:"Cayman Islands",dial_code:"+ 345",code:"KY"},{name:"Central African Republic",dial_code:"+236",code:"CF"},{name:"Chad",dial_code:"+235",code:"TD"},{name:"Chile",dial_code:"+56",code:"CL"},{name:"China",dial_code:"+86",code:"CN"},{name:"Christmas Island",dial_code:"+61",code:"CX"},{name:"Cocos (Keeling) Islands",dial_code:"+61",code:"CC"},{name:"Colombia",dial_code:"+57",code:"CO"},{name:"Comoros",dial_code:"+269",code:"KM"},{name:"Congo",dial_code:"+242",code:"CG"},{name:"Congo, The Democratic Republic of the Congo",dial_code:"+243",code:"CD"},{name:"Cook Islands",dial_code:"+682",code:"CK"},{name:"Costa Rica",dial_code:"+506",code:"CR"},{name:"Cote d'Ivoire",dial_code:"+225",code:"CI"},{name:"Croatia",dial_code:"+385",code:"HR"},{name:"Cuba",dial_code:"+53",code:"CU"},{name:"Cyprus",dial_code:"+357",code:"CY"},{name:"Czech Republic",dial_code:"+420",code:"CZ"},{name:"Denmark",dial_code:"+45",code:"DK"},{name:"Djibouti",dial_code:"+253",code:"DJ"},{name:"Dominica",dial_code:"+1767",code:"DM"},{name:"Dominican Republic",dial_code:"+1849",code:"DO"},{name:"Ecuador",dial_code:"+593",code:"EC"},{name:"Egypt",dial_code:"+20",code:"EG"},{name:"El Salvador",dial_code:"+503",code:"SV"},{name:"Equatorial Guinea",dial_code:"+240",code:"GQ"},{name:"Eritrea",dial_code:"+291",code:"ER"},{name:"Estonia",dial_code:"+372",code:"EE"},{name:"Ethiopia",dial_code:"+251",code:"ET"},{name:"Falkland Islands (Malvinas)",dial_code:"+500",code:"FK"},{name:"Faroe Islands",dial_code:"+298",code:"FO"},{name:"Fiji",dial_code:"+679",code:"FJ"},{name:"Finland",dial_code:"+358",code:"FI"},{name:"France",dial_code:"+33",code:"FR"},{name:"French Guiana",dial_code:"+594",code:"GF"},{name:"French Polynesia",dial_code:"+689",code:"PF"},{name:"Gabon",dial_code:"+241",code:"GA"},{name:"Gambia",dial_code:"+220",code:"GM"},{name:"Georgia",dial_code:"+995",code:"GE"},{name:"Germany",dial_code:"+49",code:"DE"},{name:"Ghana",dial_code:"+233",code:"GH"},{name:"Gibraltar",dial_code:"+350",code:"GI"},{name:"Greece",dial_code:"+30",code:"GR"},{name:"Greenland",dial_code:"+299",code:"GL"},{name:"Grenada",dial_code:"+1473",code:"GD"},{name:"Guadeloupe",dial_code:"+590",code:"GP"},{name:"Guam",dial_code:"+1671",code:"GU"},{name:"Guatemala",dial_code:"+502",code:"GT"},{name:"Guernsey",dial_code:"+44",code:"GG"},{name:"Guinea",dial_code:"+224",code:"GN"},{name:"Guinea-Bissau",dial_code:"+245",code:"GW"},{name:"Guyana",dial_code:"+595",code:"GY"},{name:"Haiti",dial_code:"+509",code:"HT"},{name:"Holy See (Vatican City State)",dial_code:"+379",code:"VA"},{name:"Honduras",dial_code:"+504",code:"HN"},{name:"Hong Kong",dial_code:"+852",code:"HK"},{name:"Hungary",dial_code:"+36",code:"HU"},{name:"Iceland",dial_code:"+354",code:"IS"},{name:"India",dial_code:"+91",code:"IN"},{name:"Indonesia",dial_code:"+62",code:"ID"},{name:"Iran, Islamic Republic of Persian Gulf",dial_code:"+98",code:"IR"},{name:"Iraq",dial_code:"+964",code:"IQ"},{name:"Ireland",dial_code:"+353",code:"IE"},{name:"Isle of Man",dial_code:"+44",code:"IM"},{name:"Israel",dial_code:"+972",code:"IL"},{name:"Italy",dial_code:"+39",code:"IT"},{name:"Jamaica",dial_code:"+1876",code:"JM"},{name:"Japan",dial_code:"+81",code:"JP"},{name:"Jersey",dial_code:"+44",code:"JE"},{name:"Jordan",dial_code:"+962",code:"JO"},{name:"Kazakhstan",dial_code:"+77",code:"KZ"},{name:"Kenya",dial_code:"+254",code:"KE"},{name:"Kiribati",dial_code:"+686",code:"KI"},{name:"Korea, Democratic People's Republic of Korea",dial_code:"+850",code:"KP"},{name:"Korea, Republic of South Korea",dial_code:"+82",code:"KR"},{name:"Kuwait",dial_code:"+965",code:"KW"},{name:"Kyrgyzstan",dial_code:"+996",code:"KG"},{name:"Laos",dial_code:"+856",code:"LA"},{name:"Latvia",dial_code:"+371",code:"LV"},{name:"Lebanon",dial_code:"+961",code:"LB"},{name:"Lesotho",dial_code:"+266",code:"LS"},{name:"Liberia",dial_code:"+231",code:"LR"},{name:"Libyan Arab Jamahiriya",dial_code:"+218",code:"LY"},{name:"Liechtenstein",dial_code:"+423",code:"LI"},{name:"Lithuania",dial_code:"+370",code:"LT"},{name:"Luxembourg",dial_code:"+352",code:"LU"},{name:"Macao",dial_code:"+853",code:"MO"},{name:"Macedonia",dial_code:"+389",code:"MK"},{name:"Madagascar",dial_code:"+261",code:"MG"},{name:"Malawi",dial_code:"+265",code:"MW"},{name:"Malaysia",dial_code:"+60",code:"MY"},{name:"Maldives",dial_code:"+960",code:"MV"},{name:"Mali",dial_code:"+223",code:"ML"},{name:"Malta",dial_code:"+356",code:"MT"},{name:"Marshall Islands",dial_code:"+692",code:"MH"},{name:"Martinique",dial_code:"+596",code:"MQ"},{name:"Mauritania",dial_code:"+222",code:"MR"},{name:"Mauritius",dial_code:"+230",code:"MU"},{name:"Mayotte",dial_code:"+262",code:"YT"},{name:"Mexico",dial_code:"+52",code:"MX"},{name:"Micronesia, Federated States of Micronesia",dial_code:"+691",code:"FM"},{name:"Moldova",dial_code:"+373",code:"MD"},{name:"Monaco",dial_code:"+377",code:"MC"},{name:"Mongolia",dial_code:"+976",code:"MN"},{name:"Montenegro",dial_code:"+382",code:"ME"},{name:"Montserrat",dial_code:"+1664",code:"MS"},{name:"Morocco",dial_code:"+212",code:"MA"},{name:"Mozambique",dial_code:"+258",code:"MZ"},{name:"Myanmar",dial_code:"+95",code:"MM"},{name:"Namibia",dial_code:"+264",code:"NA"},{name:"Nauru",dial_code:"+674",code:"NR"},{name:"Nepal",dial_code:"+977",code:"NP"},{name:"Netherlands",dial_code:"+31",code:"NL"},{name:"Netherlands Antilles",dial_code:"+599",code:"AN"},{name:"New Caledonia",dial_code:"+687",code:"NC"},{name:"New Zealand",dial_code:"+64",code:"NZ"},{name:"Nicaragua",dial_code:"+505",code:"NI"},{name:"Niger",dial_code:"+227",code:"NE"},{name:"Nigeria",dial_code:"+234",code:"NG"},{name:"Niue",dial_code:"+683",code:"NU"},{name:"Norfolk Island",dial_code:"+672",code:"NF"},{name:"Northern Mariana Islands",dial_code:"+1670",code:"MP"},{name:"Norway",dial_code:"+47",code:"NO"},{name:"Oman",dial_code:"+968",code:"OM"},{name:"Pakistan",dial_code:"+92",code:"PK"},{name:"Palau",dial_code:"+680",code:"PW"},{name:"Palestinian Territory, Occupied",dial_code:"+970",code:"PS"},{name:"Panama",dial_code:"+507",code:"PA"},{name:"Papua New Guinea",dial_code:"+675",code:"PG"},{name:"Paraguay",dial_code:"+595",code:"PY"},{name:"Peru",dial_code:"+51",code:"PE"},{name:"Philippines",dial_code:"+63",code:"PH"},{name:"Pitcairn",dial_code:"+872",code:"PN"},{name:"Poland",dial_code:"+48",code:"PL"},{name:"Portugal",dial_code:"+351",code:"PT"},{name:"Puerto Rico",dial_code:"+1939",code:"PR"},{name:"Qatar",dial_code:"+974",code:"QA"},{name:"Romania",dial_code:"+40",code:"RO"},{name:"Russia",dial_code:"+7",code:"RU"},{name:"Rwanda",dial_code:"+250",code:"RW"},{name:"Reunion",dial_code:"+262",code:"RE"},{name:"Saint Barthelemy",dial_code:"+590",code:"BL"},{name:"Saint Helena, Ascension and Tristan Da Cunha",dial_code:"+290",code:"SH"},{name:"Saint Kitts and Nevis",dial_code:"+1869",code:"KN"},{name:"Saint Lucia",dial_code:"+1758",code:"LC"},{name:"Saint Martin",dial_code:"+590",code:"MF"},{name:"Saint Pierre and Miquelon",dial_code:"+508",code:"PM"},{name:"Saint Vincent and the Grenadines",dial_code:"+1784",code:"VC"},{name:"Samoa",dial_code:"+685",code:"WS"},{name:"San Marino",dial_code:"+378",code:"SM"},{name:"Sao Tome and Principe",dial_code:"+239",code:"ST"},{name:"Saudi Arabia",dial_code:"+966",code:"SA"},{name:"Senegal",dial_code:"+221",code:"SN"},{name:"Serbia",dial_code:"+381",code:"RS"},{name:"Seychelles",dial_code:"+248",code:"SC"},{name:"Sierra Leone",dial_code:"+232",code:"SL"},{name:"Singapore",dial_code:"+65",code:"SG"},{name:"Slovakia",dial_code:"+421",code:"SK"},{name:"Slovenia",dial_code:"+386",code:"SI"},{name:"Solomon Islands",dial_code:"+677",code:"SB"},{name:"Somalia",dial_code:"+252",code:"SO"},{name:"South Africa",dial_code:"+27",code:"ZA"},{name:"South Sudan",dial_code:"+211",code:"SS"},{name:"South Georgia and the South Sandwich Islands",dial_code:"+500",code:"GS"},{name:"Spain",dial_code:"+34",code:"ES"},{name:"Sri Lanka",dial_code:"+94",code:"LK"},{name:"Sudan",dial_code:"+249",code:"SD"},{name:"Suriname",dial_code:"+597",code:"SR"},{name:"Svalbard and Jan Mayen",dial_code:"+47",code:"SJ"},{name:"Swaziland",dial_code:"+268",code:"SZ"},{name:"Sweden",dial_code:"+46",code:"SE"},{name:"Switzerland",dial_code:"+41",code:"CH"},{name:"Syrian Arab Republic",dial_code:"+963",code:"SY"},{name:"Taiwan",dial_code:"+886",code:"TW"},{name:"Tajikistan",dial_code:"+992",code:"TJ"},{name:"Tanzania, United Republic of Tanzania",dial_code:"+255",code:"TZ"},{name:"Thailand",dial_code:"+66",code:"TH"},{name:"Timor-Leste",dial_code:"+670",code:"TL"},{name:"Togo",dial_code:"+228",code:"TG"},{name:"Tokelau",dial_code:"+690",code:"TK"},{name:"Tonga",dial_code:"+676",code:"TO"},{name:"Trinidad and Tobago",dial_code:"+1868",code:"TT"},{name:"Tunisia",dial_code:"+216",code:"TN"},{name:"Turkey",dial_code:"+90",code:"TR"},{name:"Turkmenistan",dial_code:"+993",code:"TM"},{name:"Turks and Caicos Islands",dial_code:"+1649",code:"TC"},{name:"Tuvalu",dial_code:"+688",code:"TV"},{name:"Uganda",dial_code:"+256",code:"UG"},{name:"Ukraine",dial_code:"+380",code:"UA"},{name:"United Arab Emirates",dial_code:"+971",code:"AE"},{name:"United Kingdom",dial_code:"+44",code:"GB"},{name:"United States",dial_code:"+1",code:"US"},{name:"Uruguay",dial_code:"+598",code:"UY"},{name:"Uzbekistan",dial_code:"+998",code:"UZ"},{name:"Vanuatu",dial_code:"+678",code:"VU"},{name:"Venezuela, Bolivarian Republic of Venezuela",dial_code:"+58",code:"VE"},{name:"Vietnam",dial_code:"+84",code:"VN"},{name:"Virgin Islands, British",dial_code:"+1284",code:"VG"},{name:"Virgin Islands, U.S.",dial_code:"+1340",code:"VI"},{name:"Wallis and Futuna",dial_code:"+681",code:"WF"},{name:"Yemen",dial_code:"+967",code:"YE"},{name:"Zambia",dial_code:"+260",code:"ZM"},{name:"Zimbabwe",dial_code:"+263",code:"ZW"}];var fe={props:{context:{type:Object}},components:{},beforeMount(){this.setCode()},mounted(){this.setCountries(),b((async()=>{if(this.context.value){await i();const e=E(this.context.value);this.country=e.country,this.phone=e.nationalNumber}}))},data(){return{country:this.context.attrs.initialCountry,countries:[],code:""}},computed:{maskFn(){const e=R(this.country,L).formatInternational();return function(e,a){const o=String(e).replace(/\D/g,"");let n=0;return a.replace(/\d/g,(e=>n<o.length&&e===o[n]?(n+=1,e):"#"))}(this.code,e)}},methods:{getUnicodeFlagIcon:N,setCode(){this.code=_e.find((e=>e.code===this.country)).dial_code},setCountries(){const e=[..._e];this.context.attrs.preferredCountries&&(this.context.attrs.preferredCountries&&this.context.attrs.preferredCountries.reverse().forEach((a=>{e.sort((e=>e.code===a?-1:1))})),this.context.attrs.initialCountry&&e.sort((e=>e.code===this.context.attrs.initialCountry?-1:1)),this.countries=e),this.context.attrs.initialCountry&&e.sort((e=>e.code===this.context.attrs.initialCountry?-1:1)),this.countries=e}},watch:{country(){this.setCode(),this.context.value=""},"context.value":function(e){this.context.node.input(e)}}};const pe={class:"formkit-phone-enhanced"},he={class:"formkit-phone-enhanced__flag"},ve=["value"],ge={class:"formkit-phone-enhanced__flag-wrapper"},be=["src"];fe.render=function(e,a,o,n,d,i){const r=c("Icon"),s=c("FormKit");return t(),l("div",pe,[h("div",he,[y(h("select",{class:"formkit-phone-enhanced__list","onUpdate:modelValue":a[0]||(a[0]=a=>e.country=a)},[(t(!0),l(f,null,p(e.countries,(a=>(t(),l("option",{key:a.code,value:a.code},_(e.getUnicodeFlagIcon(a.code))+" "+_(a.name),9,ve)))),128))],512),[[S,e.country]]),h("div",ge,[h("img",{src:`https://purecatamphetamine.github.io/country-flag-icons/3x2/${e.country}.svg`,alt:""},null,8,be)]),u(r,{name:"chevron-down-fat"})]),m(" label field filled is in here (and hidden with css) to send label value to local storage (see setUserData() in Webform.vue) "),(t(),M(s,{classes:{outer:"formkit-phone-enhanced__outer",input:"formkit-phone-enhanced__input"},label:e.context.label,type:"mask",name:e.context.node.name,id:e.context.id,mask:e.maskFn,key:e.code,modelValue:e.context.value,"onUpdate:modelValue":a[1]||(a[1]=a=>e.context.value=a)},null,8,["label","name","id","mask","modelValue"]))])},fe.__file="src/components/FormKit/FormKitPhoneEnhanced/FormKitPhoneEnhanced.vue";const ye={class:"formkit-recaptcha"};var Se={__name:"FormKitRecaptcha",props:{context:Object},setup(a){const n=a,d=e(null);function i(e){n.context.node.input({captcha_sid:n.context.attrs.sid,captcha_token:n.context.attrs.token,captcha_response:"","g-recaptcha-response":e,captcha_cacheable:"1"})}return o((()=>{grecaptcha.ready((()=>{grecaptcha.render(d.value,{sitekey:n.context.attrs.siteKey,callback:i})}))})),(e,a)=>(t(),l("div",ye,[h("div",{class:"g-recaptcha",ref_key:"recaptchaRef",ref:d,"data-theme":"light","data-type":"image"},null,512)]))},__file:"src/components/FormKit/FormKitRecaptcha/FormKitRecaptcha.vue"};const Me=e=>{if("0"===e[0]){return 97-Number(e.slice(0,8))%97===Number(e.slice(8,10))}return"1"===e[0]&&10===e.length},ke={name:"newBelgium",codes:["BE","BEL","056"],calcWithFormatFn:e=>10===e.length?{vat:`BE${e}`,isValid:Me(e)}:{vat:`BE${e}`,isValid:!1},rules:{multipliers:{},regex:[/^(BE)(\d{10})$/]}},we=D.map((e=>"Belgium"===e.name?ke:e));function Ae(e){if(!e)return 0;const[a,o=0,n=0]=e.split(":").map(Number);return 3600*a+60*o+n}function Te(e){const a=Math.floor(e/3600),o=Math.floor(e%3600/60);return`${String(a).padStart(2,"0")}:${String(o).padStart(2,"0")}`}const Ce={plugins:[function(e){["button","submit","hidden","group","list","meta"].includes(e.props.type)||e.on("created",(()=>{const a=ue.includes(`${e.props.type}${e.props.options?"_multi":""}`)?"legend":"label";e.props.definition.schemaMemoKey&&(e.props.definition.schemaMemoKey+=(e.props.options?"_multi":"")+"_add_asterisk");const o=e.props.definition.schema;e.props.definition.schema=(e={})=>(e[a]={children:["$label",{$cmp:"InfoTooltip",if:"$attrs.tooltip",props:{content:"$attrs.tooltip"}},{$el:"span",if:"$state.required",attrs:{class:"formkit-asterisk"},children:["*"]}]},o(e))}))},function(e){["button","submit","hidden","group","list","meta"].includes(e.props.type)||e.on("created",(()=>{const a=e.props.definition.schema;e.props.definition.schema=(e={})=>(e.help={children:[{$el:"div",attrs:{innerHTML:"$help"}}]},a(e))}))},F({allowIncomplete:!1})],rules:{internationalPhone:function(e){if(""===e.value)return!0;try{return E(e.value).isValid()}catch(e){return!1}},phone:function(e){if(""===e.value)return!0;try{return E(e.value,"BE").isValid()}catch(e){return!1}},iban:function(e){return x.isValid(e.value)},vat:function(e){return j(e.value,we).isValid},insz:function(e){const a=e.value.replace(/[^0-9]/g,"");if(11!=a.length)return!1;const o=a.substr(a.length-2,2),n=function(e){return 97-e%97};let d=parseInt(a.substr(0,9));return n(d)==o||(d=parseInt("2"+a.substr(0,9)),n(d)==o)},timeRule:function(e){const a=e.value,{step:o,min:n,max:d}=e.props.attrs;if(!a)return!0;const i=Ae(a),c=Ae(n),t=Ae(d),l=Number(o);if(i<c)return!1;if(i>t)return!1;return 0===(i-c)%l}},messages:{nl:{validation:{phone:"Dit is geen geldig telefoonnummer.",required:"Dit veld is verplicht.",vat:"Dit is geen geldig Btw-nummer.",is:"Dit veld is verplicht.",timeRule:({node:e})=>function(e){const a=e.value,{step:o,min:n,max:d}=e.props.attrs;if(!a)return"";const i=Ae(a),c=Ae(n),t=Ae(d),l=Number(o);if(i<c)return`De waarde moet ${Te(c)} uur of later zijn.`;if(i>t)return`De waarde moet ${Te(t)} uur of eerder zijn.`;const r=(i-c)%l;if(0===r)return"";const s=i-r,m=s+l;return`Voer een geldige tijd in. De twee dichtstbijzijnde geldige waarden zijn ${Te(Math.max(s,c))} en ${Te(Math.min(m,t))}.`}(e)}},en:{validation:{phone:"This is not a valid phone number.",required:"This field is required.",is:"This field is required.",vat:"This is not a valid VAT number."}},fr:{validation:{phone:"Ce numéro de téléphone n'est pas valide.",required:"Ce champ est obligatoire.",is:"Ce champ est obligatoire.",vat:"Ce numéro de TVA n'est pas valide."}}},locales:{nl:G,en:P,fr:K},locale:document.documentElement.lang,inputs:{phoneEnhanced:A(fe),recaptcha:A(Se)}};var Ie={install(e,a){const o=$({},Ce,a);e.component("MinskyWebformFormKit",ne),e.use(T,C(o)),e.component("Icon",le),e.component("InfoTooltip",me),e.component("FormKitMessages",I)}};export{ne as MinskyWebformFormKit,Ie as default};
1
+ import{ref as e,reactive as a,onMounted as o,computed as n,watch as d,nextTick as i,resolveComponent as c,openBlock as t,createElementBlock as l,normalizeClass as r,renderSlot as s,createCommentVNode as m,createVNode as u,toDisplayString as _,Fragment as f,renderList as p,createElementVNode as h,unref as v,withCtx as g,watchEffect as b,withDirectives as y,vModelSelect as S,createBlock as M}from"vue";import k from"gsap";import w from"gsap/ScrollToPlugin";import{createInput as A,plugin as T,defaultConfig as C,FormKitMessages as I}from"@formkit/vue";import{Tooltip as B}from"floating-vue";import{nl as G,en as P,fr as K}from"@formkit/i18n";import{createMultiStepPlugin as F}from"@formkit/addons";import L from"libphonenumber-js/mobile/examples";import N from"country-flag-icons/unicode";import{parsePhoneNumber as R,getExampleNumber as x}from"libphonenumber-js";import{IBAN as E}from"ibankit";import{countries as D,checkVAT as j}from"@accountable/jsvat";function $(e,...a){H(e)||Array.isArray(e)||(e={});for(const o of a)if(H(o)||Array.isArray(o))for(const a of Object.keys(o)){const n=o[a],d=e[a];Array.isArray(n)?Array.isArray(d)?e[a]=[...d,...n]:e[a]=[...n]:H(n)?(H(d)||(e[a]={}),e[a]=$(e[a],n)):e[a]=n}return e}const U=e=>null==e?[]:Object.keys(Object(e));function V(e,a){if(null==e)return{};Array.isArray(a)||(a=[a]);const o={};for(const n of a)n in e&&(o[n]=e[n]);return o}function O(e,...a){null==e&&(e={});for(const o of a)if(null!=o)for(const a of Object.keys(o)){const n=o[a],d=e[a];void 0===d?e[a]=n:H(d)&&H(n)&&O(d,n)}return e}function H(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function z(e){let a=!1;return(e||0===e)&&(a=!0),Array.isArray(e)&&(a=!0),a}var W={global:{editor:{error:"Check that the form has been completed correctly. Ensure that no unnecessary conditional fields have been filled in."}},nl:{messages:{missing:"Dit formulier ontbreekt. Controleer of het ID dat u gebruikt correct is.",error:"Er is iets misgegaan bij het laden van het formulier."},success:{title:"Bedankt!",message:"We hebben je gegevens goed ontvangen."}},en:{messages:{missing:"This form is missing. Please check that the ID you are using is correct.",error:"Something went wrong while loading the form."},success:{title:"Thank you!",message:"We have successfully received your information."}},fr:{messages:{missing:"Ce formulaire est manquant. Vérifiez que l'ID que vous utilisez est correct.",error:"Une erreur est survenue lors du chargement du formulaire."},success:{title:"Merci !",message:"Nous avons bien reçu vos informations."}}};const q={key:0,class:"webform-formkit__placeholder"},J={key:1},Z={key:2,class:"webform-formkit__loader"},Y={key:0,class:"webform-formkit__message"},Q={key:3,class:"webform-formkit__success"},X={key:0,class:"webform-formkit__succes-title"},ee=["innerHTML"],ae={key:4,class:"webform-formkit__errors"},oe=["innerHTML"];var ne={__name:"MinskyWebformFormKit",props:{id:{type:String,required:!0},api:{type:String,default:window.location.origin},classModifier:String,defaults:Object,schemeProcessor:Function,formDataAddons:Object,submitProcessor:Function,forceRedirect:{type:Object,default:()=>({bool:!1})},cmpLibrary:{type:Object,default:()=>({})},messages:{type:Object,default:()=>{}},setUserData:Function},emits:["success"],setup(h,{emit:v}){k.registerPlugin(w);const{lang:g}=document.documentElement,b=h,y=v,S=e(null),M=e(null),A=e({}),T=e({}),C=e(!0),I=e(!1),B=e(!1),G=e(null),P=e(null),K=e(null),F=e(null),L=e(!1),N=a({values:{}});o((()=>{T.value=Object.assign(W,b.messages),N.submit=async e=>{delete e.form_id,delete e.vApp,delete e.webformId,U(e).forEach((a=>{a.includes("captcha")&&(Object.assign(e,e[a]),delete e[a])})),async function(e){b.submitProcessor&&(e=b.submitProcessor(e));B.value=!0;const a=document.querySelector(".formkit-input[type=submit]");a&&(a.disabled=!0);const o=new URLSearchParams(window.location.search);o.append("schema","form_kit");const n=new FormData;for(const a in e)if(z(e[a]))if(Array.isArray(e[a]))e[a].length?e[a].forEach((e=>{"imageUpload"===this.$formkit.get(`${this.id}--${a}`).context.type?"object"==typeof e?N.append(`${a}[]`,_values(e)[0]):N.append(`${a}[]`,e):n.append(`${a}[]`,e)})):n.append(a,"");else if("string"==typeof e[a])if(2===e[a].indexOf("json_value")){const o=JSON.parse(e[a]).json_value;U(o).forEach((e=>{n.append(`${a}[${e}]`,o[e])}))}else n.append(a,e[a]);else n.append(a,e[a]);fetch(`${b.api}/webform/${b.id}/json/submission?${o.toString()}`,{method:"POST",body:n,query:window.location.search}).then((a=>{200===a.status?a.json().then((a=>{!function(e){if(b.forceRedirect.bool)window.location=b.forceRedirect.url;else switch(e.confirmation.type){case"inline":K.value=e.confirmation.title,P.value=e.confirmation.message,I.value=!0,k.to(window,{duration:.5,scrollTo:{y:S.value,offsetY:200},ease:"power2"}),B.value=!1;break;case"url":window.location=e.confirmation.url;break;default:K.value=T.value[g].success.title,P.value=T.value[g].success.message,I.value=!0,B.value=!1}y("success")}(a),b.setUserData&&b.setUserData(e)})):a.json().then((e=>{L.value=!0,B.value=!1,F.value=e.errors}))})).catch((()=>{L.value=!0,B.value=!1}))}(e=function(e){const a={};return function e(o,n=""){for(const d in o)Array.isArray(o[d])?a[d]=o[d]:"object"==typeof o[d]&&null!==o[d]?e(o[d],`${n+d}.`):a[d]=o[d]}(e),a}(e))},N.submitInvalid=()=>{k.to(window,{duration:.5,scrollTo:{y:S.value,offsetY:300},ease:"power2"})},async function(){const e=new URLSearchParams(window.location.search);e.append("schema","form_kit");try{const a=await fetch(`${b.api}/webform/${b.id}/json/schema?${e.toString()}`),o=await a.json();if(!a.ok)throw new Error(o.errors?o.errors.map((e=>e.message)).join(", "):"Unknown error");o.schema?(M.value=o.schema,b.schemeProcessor&&(M.value=b.schemeProcessor(o.schema)),A.value=o.values):(L.value=!0,F.value=[{message:T.value[g].messages.missing}])}catch(e){if(L.value=!0,window.drupalSettings){(window.drupalSettings.user.roles||[]).some((e=>["administrator","editor"].includes(e)))?F.value=[{message:e},{message:T.value.global.error}]:F.value=[{message:T.value[g].messages.error}]}else F.value=[{message:T.value[g].messages.error}];console.error(`Error fetching schema of form with ID ${b.id}:`,e)}finally{C.value=!1}}(),b.formDataAddons&&Object.assign(N,b.formDataAddons)}));const R=n((()=>U(N.values)));function x(){O(N.values,V(A.value,R.value)),b.defaults&&$(N.values,V(b.defaults,R.value))}return d(R,(async()=>{x(),await i();const e=S.value?.querySelector("form");e&&e.setAttribute("novalidate",!0)})),(e,a)=>{const o=c("FormKitSchema"),n=c("Icon");return t(),l("div",{ref_key:"formRef",ref:S,class:r(["webform-formkit",[{"webform-formkit--loading":B.value||C.value},`webform-formkit--${b.id}`,b.classModifier?`webform-formkit--${b.classModifier}`:null]])},[!C.value||I.value||L.value?m("v-if",!0):(t(),l("div",q,[s(e.$slots,"placeholder")])),C.value||I.value||L.value?m("v-if",!0):(t(),l("div",J,[u(o,{schema:M.value,data:N,library:b.cmpLibrary},null,8,["schema","data","library"]),s(e.$slots,"afterSchema")])),C.value||B.value?(t(),l("div",Z,[u(n,{loading:!0}),G.value?(t(),l("p",Y,_(G.value),1)):m("v-if",!0)])):m("v-if",!0),I.value?(t(),l("div",Q,[K.value?(t(),l("h5",X,_(K.value),1)):m("v-if",!0),P.value?(t(),l("div",{key:1,class:"webform-formkit__message",innerHTML:P.value},null,8,ee)):m("v-if",!0)])):m("v-if",!0),L.value?(t(),l("ul",ae,[(t(!0),l(f,null,p(F.value,(e=>(t(),l("li",{innerHTML:e.message},null,8,oe)))),256))])):m("v-if",!0)],2)}},__file:"src/components/MinksyWebformFormKit/MinskyWebformFormKit.vue"};const de={key:0,role:"img",id:"L9",version:"1.1",class:"icon-svg icon-svg--loader",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 100 100",1:"","enable-background":"new 0 0 0 0","xml:space":"preserve"},ie=["aria-hidden"],ce={key:0},te=["xlink:href"];var le={__name:"Icon",props:{name:{type:String,default:""},loading:{type:Boolean,default:!1},modifiers:{type:Array,default:()=>[]},ariaTitle:{type:String}},setup:e=>(a,o)=>(t(),l("span",{class:r(["icon",[""!==e.name?"icon--"+e.name:"",e.modifiers.length?"icon--"+e.modifiers.join(" icon--"):""]])},[e.loading?(t(),l("svg",de,[...o[0]||(o[0]=[h("title",null,"Loading",-1),h("path",{fill:"currentColor",d:"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"},[h("animateTransform",{attributeName:"transform",attributeType:"XML",type:"rotate",dur:"1s",from:"0 50 50",to:"360 50 50",repeatCount:"indefinite"})],-1)])])):(t(),l("svg",{key:1,role:"img",class:"icon__svg","aria-hidden":!e.ariaTitle},[e.ariaTitle?(t(),l("title",ce,_(e.ariaTitle),1)):m("v-if",!0),e.name?(t(),l("use",{key:1,"xlink:href":"#sprite-"+e.name},null,8,te)):m("v-if",!0)],8,ie))],2)),__file:"src/components/Icon.vue"};const re={class:"info-tooltip"},se=["innerHTML"];var me={__name:"InfoTooltip",props:["content"],setup(e){const a=e;return(e,o)=>{const n=c("Icon");return t(),l("span",re,[u(v(B),{triggers:["click","hover"]},{popper:g((()=>[h("div",{innerHTML:a.content},null,8,se)])),default:g((()=>[u(n,{name:"info"})])),_:1})])}},__file:"src/components/InfoTooltip.vue"};const ue=["checkbox_multi","radio_multi","repeater","transferlist"];const _e=[{name:"Afghanistan",dial_code:"+93",code:"AF"},{name:"Aland Islands",dial_code:"+358",code:"AX"},{name:"Albania",dial_code:"+355",code:"AL"},{name:"Algeria",dial_code:"+213",code:"DZ"},{name:"AmericanSamoa",dial_code:"+1684",code:"AS"},{name:"Andorra",dial_code:"+376",code:"AD"},{name:"Angola",dial_code:"+244",code:"AO"},{name:"Anguilla",dial_code:"+1264",code:"AI"},{name:"Antarctica",dial_code:"+672",code:"AQ"},{name:"Antigua and Barbuda",dial_code:"+1268",code:"AG"},{name:"Argentina",dial_code:"+54",code:"AR"},{name:"Armenia",dial_code:"+374",code:"AM"},{name:"Aruba",dial_code:"+297",code:"AW"},{name:"Australia",dial_code:"+61",code:"AU"},{name:"Austria",dial_code:"+43",code:"AT"},{name:"Azerbaijan",dial_code:"+994",code:"AZ"},{name:"Bahamas",dial_code:"+1242",code:"BS"},{name:"Bahrain",dial_code:"+973",code:"BH"},{name:"Bangladesh",dial_code:"+880",code:"BD"},{name:"Barbados",dial_code:"+1246",code:"BB"},{name:"Belarus",dial_code:"+375",code:"BY"},{name:"Belgium",dial_code:"+32",code:"BE"},{name:"Belize",dial_code:"+501",code:"BZ"},{name:"Benin",dial_code:"+229",code:"BJ"},{name:"Bermuda",dial_code:"+1441",code:"BM"},{name:"Bhutan",dial_code:"+975",code:"BT"},{name:"Bolivia, Plurinational State of",dial_code:"+591",code:"BO"},{name:"Bosnia and Herzegovina",dial_code:"+387",code:"BA"},{name:"Botswana",dial_code:"+267",code:"BW"},{name:"Brazil",dial_code:"+55",code:"BR"},{name:"British Indian Ocean Territory",dial_code:"+246",code:"IO"},{name:"Brunei Darussalam",dial_code:"+673",code:"BN"},{name:"Bulgaria",dial_code:"+359",code:"BG"},{name:"Burkina Faso",dial_code:"+226",code:"BF"},{name:"Burundi",dial_code:"+257",code:"BI"},{name:"Cambodia",dial_code:"+855",code:"KH"},{name:"Cameroon",dial_code:"+237",code:"CM"},{name:"Canada",dial_code:"+1",code:"CA"},{name:"Cape Verde",dial_code:"+238",code:"CV"},{name:"Cayman Islands",dial_code:"+ 345",code:"KY"},{name:"Central African Republic",dial_code:"+236",code:"CF"},{name:"Chad",dial_code:"+235",code:"TD"},{name:"Chile",dial_code:"+56",code:"CL"},{name:"China",dial_code:"+86",code:"CN"},{name:"Christmas Island",dial_code:"+61",code:"CX"},{name:"Cocos (Keeling) Islands",dial_code:"+61",code:"CC"},{name:"Colombia",dial_code:"+57",code:"CO"},{name:"Comoros",dial_code:"+269",code:"KM"},{name:"Congo",dial_code:"+242",code:"CG"},{name:"Congo, The Democratic Republic of the Congo",dial_code:"+243",code:"CD"},{name:"Cook Islands",dial_code:"+682",code:"CK"},{name:"Costa Rica",dial_code:"+506",code:"CR"},{name:"Cote d'Ivoire",dial_code:"+225",code:"CI"},{name:"Croatia",dial_code:"+385",code:"HR"},{name:"Cuba",dial_code:"+53",code:"CU"},{name:"Cyprus",dial_code:"+357",code:"CY"},{name:"Czech Republic",dial_code:"+420",code:"CZ"},{name:"Denmark",dial_code:"+45",code:"DK"},{name:"Djibouti",dial_code:"+253",code:"DJ"},{name:"Dominica",dial_code:"+1767",code:"DM"},{name:"Dominican Republic",dial_code:"+1849",code:"DO"},{name:"Ecuador",dial_code:"+593",code:"EC"},{name:"Egypt",dial_code:"+20",code:"EG"},{name:"El Salvador",dial_code:"+503",code:"SV"},{name:"Equatorial Guinea",dial_code:"+240",code:"GQ"},{name:"Eritrea",dial_code:"+291",code:"ER"},{name:"Estonia",dial_code:"+372",code:"EE"},{name:"Ethiopia",dial_code:"+251",code:"ET"},{name:"Falkland Islands (Malvinas)",dial_code:"+500",code:"FK"},{name:"Faroe Islands",dial_code:"+298",code:"FO"},{name:"Fiji",dial_code:"+679",code:"FJ"},{name:"Finland",dial_code:"+358",code:"FI"},{name:"France",dial_code:"+33",code:"FR"},{name:"French Guiana",dial_code:"+594",code:"GF"},{name:"French Polynesia",dial_code:"+689",code:"PF"},{name:"Gabon",dial_code:"+241",code:"GA"},{name:"Gambia",dial_code:"+220",code:"GM"},{name:"Georgia",dial_code:"+995",code:"GE"},{name:"Germany",dial_code:"+49",code:"DE"},{name:"Ghana",dial_code:"+233",code:"GH"},{name:"Gibraltar",dial_code:"+350",code:"GI"},{name:"Greece",dial_code:"+30",code:"GR"},{name:"Greenland",dial_code:"+299",code:"GL"},{name:"Grenada",dial_code:"+1473",code:"GD"},{name:"Guadeloupe",dial_code:"+590",code:"GP"},{name:"Guam",dial_code:"+1671",code:"GU"},{name:"Guatemala",dial_code:"+502",code:"GT"},{name:"Guernsey",dial_code:"+44",code:"GG"},{name:"Guinea",dial_code:"+224",code:"GN"},{name:"Guinea-Bissau",dial_code:"+245",code:"GW"},{name:"Guyana",dial_code:"+595",code:"GY"},{name:"Haiti",dial_code:"+509",code:"HT"},{name:"Holy See (Vatican City State)",dial_code:"+379",code:"VA"},{name:"Honduras",dial_code:"+504",code:"HN"},{name:"Hong Kong",dial_code:"+852",code:"HK"},{name:"Hungary",dial_code:"+36",code:"HU"},{name:"Iceland",dial_code:"+354",code:"IS"},{name:"India",dial_code:"+91",code:"IN"},{name:"Indonesia",dial_code:"+62",code:"ID"},{name:"Iran, Islamic Republic of Persian Gulf",dial_code:"+98",code:"IR"},{name:"Iraq",dial_code:"+964",code:"IQ"},{name:"Ireland",dial_code:"+353",code:"IE"},{name:"Isle of Man",dial_code:"+44",code:"IM"},{name:"Israel",dial_code:"+972",code:"IL"},{name:"Italy",dial_code:"+39",code:"IT"},{name:"Jamaica",dial_code:"+1876",code:"JM"},{name:"Japan",dial_code:"+81",code:"JP"},{name:"Jersey",dial_code:"+44",code:"JE"},{name:"Jordan",dial_code:"+962",code:"JO"},{name:"Kazakhstan",dial_code:"+77",code:"KZ"},{name:"Kenya",dial_code:"+254",code:"KE"},{name:"Kiribati",dial_code:"+686",code:"KI"},{name:"Korea, Democratic People's Republic of Korea",dial_code:"+850",code:"KP"},{name:"Korea, Republic of South Korea",dial_code:"+82",code:"KR"},{name:"Kuwait",dial_code:"+965",code:"KW"},{name:"Kyrgyzstan",dial_code:"+996",code:"KG"},{name:"Laos",dial_code:"+856",code:"LA"},{name:"Latvia",dial_code:"+371",code:"LV"},{name:"Lebanon",dial_code:"+961",code:"LB"},{name:"Lesotho",dial_code:"+266",code:"LS"},{name:"Liberia",dial_code:"+231",code:"LR"},{name:"Libyan Arab Jamahiriya",dial_code:"+218",code:"LY"},{name:"Liechtenstein",dial_code:"+423",code:"LI"},{name:"Lithuania",dial_code:"+370",code:"LT"},{name:"Luxembourg",dial_code:"+352",code:"LU"},{name:"Macao",dial_code:"+853",code:"MO"},{name:"Macedonia",dial_code:"+389",code:"MK"},{name:"Madagascar",dial_code:"+261",code:"MG"},{name:"Malawi",dial_code:"+265",code:"MW"},{name:"Malaysia",dial_code:"+60",code:"MY"},{name:"Maldives",dial_code:"+960",code:"MV"},{name:"Mali",dial_code:"+223",code:"ML"},{name:"Malta",dial_code:"+356",code:"MT"},{name:"Marshall Islands",dial_code:"+692",code:"MH"},{name:"Martinique",dial_code:"+596",code:"MQ"},{name:"Mauritania",dial_code:"+222",code:"MR"},{name:"Mauritius",dial_code:"+230",code:"MU"},{name:"Mayotte",dial_code:"+262",code:"YT"},{name:"Mexico",dial_code:"+52",code:"MX"},{name:"Micronesia, Federated States of Micronesia",dial_code:"+691",code:"FM"},{name:"Moldova",dial_code:"+373",code:"MD"},{name:"Monaco",dial_code:"+377",code:"MC"},{name:"Mongolia",dial_code:"+976",code:"MN"},{name:"Montenegro",dial_code:"+382",code:"ME"},{name:"Montserrat",dial_code:"+1664",code:"MS"},{name:"Morocco",dial_code:"+212",code:"MA"},{name:"Mozambique",dial_code:"+258",code:"MZ"},{name:"Myanmar",dial_code:"+95",code:"MM"},{name:"Namibia",dial_code:"+264",code:"NA"},{name:"Nauru",dial_code:"+674",code:"NR"},{name:"Nepal",dial_code:"+977",code:"NP"},{name:"Netherlands",dial_code:"+31",code:"NL"},{name:"Netherlands Antilles",dial_code:"+599",code:"AN"},{name:"New Caledonia",dial_code:"+687",code:"NC"},{name:"New Zealand",dial_code:"+64",code:"NZ"},{name:"Nicaragua",dial_code:"+505",code:"NI"},{name:"Niger",dial_code:"+227",code:"NE"},{name:"Nigeria",dial_code:"+234",code:"NG"},{name:"Niue",dial_code:"+683",code:"NU"},{name:"Norfolk Island",dial_code:"+672",code:"NF"},{name:"Northern Mariana Islands",dial_code:"+1670",code:"MP"},{name:"Norway",dial_code:"+47",code:"NO"},{name:"Oman",dial_code:"+968",code:"OM"},{name:"Pakistan",dial_code:"+92",code:"PK"},{name:"Palau",dial_code:"+680",code:"PW"},{name:"Palestinian Territory, Occupied",dial_code:"+970",code:"PS"},{name:"Panama",dial_code:"+507",code:"PA"},{name:"Papua New Guinea",dial_code:"+675",code:"PG"},{name:"Paraguay",dial_code:"+595",code:"PY"},{name:"Peru",dial_code:"+51",code:"PE"},{name:"Philippines",dial_code:"+63",code:"PH"},{name:"Pitcairn",dial_code:"+872",code:"PN"},{name:"Poland",dial_code:"+48",code:"PL"},{name:"Portugal",dial_code:"+351",code:"PT"},{name:"Puerto Rico",dial_code:"+1939",code:"PR"},{name:"Qatar",dial_code:"+974",code:"QA"},{name:"Romania",dial_code:"+40",code:"RO"},{name:"Russia",dial_code:"+7",code:"RU"},{name:"Rwanda",dial_code:"+250",code:"RW"},{name:"Reunion",dial_code:"+262",code:"RE"},{name:"Saint Barthelemy",dial_code:"+590",code:"BL"},{name:"Saint Helena, Ascension and Tristan Da Cunha",dial_code:"+290",code:"SH"},{name:"Saint Kitts and Nevis",dial_code:"+1869",code:"KN"},{name:"Saint Lucia",dial_code:"+1758",code:"LC"},{name:"Saint Martin",dial_code:"+590",code:"MF"},{name:"Saint Pierre and Miquelon",dial_code:"+508",code:"PM"},{name:"Saint Vincent and the Grenadines",dial_code:"+1784",code:"VC"},{name:"Samoa",dial_code:"+685",code:"WS"},{name:"San Marino",dial_code:"+378",code:"SM"},{name:"Sao Tome and Principe",dial_code:"+239",code:"ST"},{name:"Saudi Arabia",dial_code:"+966",code:"SA"},{name:"Senegal",dial_code:"+221",code:"SN"},{name:"Serbia",dial_code:"+381",code:"RS"},{name:"Seychelles",dial_code:"+248",code:"SC"},{name:"Sierra Leone",dial_code:"+232",code:"SL"},{name:"Singapore",dial_code:"+65",code:"SG"},{name:"Slovakia",dial_code:"+421",code:"SK"},{name:"Slovenia",dial_code:"+386",code:"SI"},{name:"Solomon Islands",dial_code:"+677",code:"SB"},{name:"Somalia",dial_code:"+252",code:"SO"},{name:"South Africa",dial_code:"+27",code:"ZA"},{name:"South Sudan",dial_code:"+211",code:"SS"},{name:"South Georgia and the South Sandwich Islands",dial_code:"+500",code:"GS"},{name:"Spain",dial_code:"+34",code:"ES"},{name:"Sri Lanka",dial_code:"+94",code:"LK"},{name:"Sudan",dial_code:"+249",code:"SD"},{name:"Suriname",dial_code:"+597",code:"SR"},{name:"Svalbard and Jan Mayen",dial_code:"+47",code:"SJ"},{name:"Swaziland",dial_code:"+268",code:"SZ"},{name:"Sweden",dial_code:"+46",code:"SE"},{name:"Switzerland",dial_code:"+41",code:"CH"},{name:"Syrian Arab Republic",dial_code:"+963",code:"SY"},{name:"Taiwan",dial_code:"+886",code:"TW"},{name:"Tajikistan",dial_code:"+992",code:"TJ"},{name:"Tanzania, United Republic of Tanzania",dial_code:"+255",code:"TZ"},{name:"Thailand",dial_code:"+66",code:"TH"},{name:"Timor-Leste",dial_code:"+670",code:"TL"},{name:"Togo",dial_code:"+228",code:"TG"},{name:"Tokelau",dial_code:"+690",code:"TK"},{name:"Tonga",dial_code:"+676",code:"TO"},{name:"Trinidad and Tobago",dial_code:"+1868",code:"TT"},{name:"Tunisia",dial_code:"+216",code:"TN"},{name:"Turkey",dial_code:"+90",code:"TR"},{name:"Turkmenistan",dial_code:"+993",code:"TM"},{name:"Turks and Caicos Islands",dial_code:"+1649",code:"TC"},{name:"Tuvalu",dial_code:"+688",code:"TV"},{name:"Uganda",dial_code:"+256",code:"UG"},{name:"Ukraine",dial_code:"+380",code:"UA"},{name:"United Arab Emirates",dial_code:"+971",code:"AE"},{name:"United Kingdom",dial_code:"+44",code:"GB"},{name:"United States",dial_code:"+1",code:"US"},{name:"Uruguay",dial_code:"+598",code:"UY"},{name:"Uzbekistan",dial_code:"+998",code:"UZ"},{name:"Vanuatu",dial_code:"+678",code:"VU"},{name:"Venezuela, Bolivarian Republic of Venezuela",dial_code:"+58",code:"VE"},{name:"Vietnam",dial_code:"+84",code:"VN"},{name:"Virgin Islands, British",dial_code:"+1284",code:"VG"},{name:"Virgin Islands, U.S.",dial_code:"+1340",code:"VI"},{name:"Wallis and Futuna",dial_code:"+681",code:"WF"},{name:"Yemen",dial_code:"+967",code:"YE"},{name:"Zambia",dial_code:"+260",code:"ZM"},{name:"Zimbabwe",dial_code:"+263",code:"ZW"}];var fe={props:{context:{type:Object}},components:{},beforeMount(){this.setCode()},mounted(){this.setCountries(),b((async()=>{if(this.context.value){await i();const e=R(this.context.value);this.country=e.country,this.phone=e.nationalNumber}}))},data(){return{country:this.context.attrs.initialCountry,countries:[],code:""}},computed:{maskFn(){const e=x(this.country,L).formatInternational();return function(e,a){const o=String(e).replace(/\D/g,"");let n=0;return a.replace(/\d/g,(e=>n<o.length&&e===o[n]?(n+=1,e):"#"))}(this.code,e)}},methods:{getUnicodeFlagIcon:N,setCode(){this.code=_e.find((e=>e.code===this.country)).dial_code},setCountries(){const e=[..._e];this.context.attrs.preferredCountries&&(this.context.attrs.preferredCountries&&this.context.attrs.preferredCountries.reverse().forEach((a=>{e.sort((e=>e.code===a?-1:1))})),this.context.attrs.initialCountry&&e.sort((e=>e.code===this.context.attrs.initialCountry?-1:1)),this.countries=e),this.context.attrs.initialCountry&&e.sort((e=>e.code===this.context.attrs.initialCountry?-1:1)),this.countries=e}},watch:{country(){this.setCode(),this.context.value=""},"context.value":function(e){this.context.node.input(e)}}};const pe={class:"formkit-phone-enhanced"},he={class:"formkit-phone-enhanced__flag"},ve=["value"],ge={class:"formkit-phone-enhanced__flag-wrapper"},be=["src"];fe.render=function(e,a,o,n,d,i){const r=c("Icon"),s=c("FormKit");return t(),l("div",pe,[h("div",he,[y(h("select",{class:"formkit-phone-enhanced__list","onUpdate:modelValue":a[0]||(a[0]=a=>e.country=a)},[(t(!0),l(f,null,p(e.countries,(a=>(t(),l("option",{key:a.code,value:a.code},_(e.getUnicodeFlagIcon(a.code))+" "+_(a.name),9,ve)))),128))],512),[[S,e.country]]),h("div",ge,[h("img",{src:`https://purecatamphetamine.github.io/country-flag-icons/3x2/${e.country}.svg`,alt:""},null,8,be)]),u(r,{name:"chevron-down-fat"})]),m(" label field filled is in here (and hidden with css) to send label value to local storage (see setUserData() in Webform.vue) "),(t(),M(s,{classes:{outer:"formkit-phone-enhanced__outer",input:"formkit-phone-enhanced__input"},label:e.context.label,type:"mask",name:e.context.node.name,id:e.context.id,mask:e.maskFn,key:e.code,modelValue:e.context.value,"onUpdate:modelValue":a[1]||(a[1]=a=>e.context.value=a)},null,8,["label","name","id","mask","modelValue"]))])},fe.__file="src/components/FormKit/FormKitPhoneEnhanced/FormKitPhoneEnhanced.vue";const ye={class:"formkit-recaptcha"};var Se={__name:"FormKitRecaptcha",props:{context:Object},setup(a){const n=a,d=e(null);function i(e){n.context.node.input({captcha_sid:n.context.attrs.sid,captcha_token:n.context.attrs.token,captcha_response:"","g-recaptcha-response":e,captcha_cacheable:"1"})}return o((()=>{grecaptcha.ready((()=>{grecaptcha.render(d.value,{sitekey:n.context.attrs.siteKey,callback:i})}))})),(e,a)=>(t(),l("div",ye,[h("div",{class:"g-recaptcha",ref_key:"recaptchaRef",ref:d,"data-theme":"light","data-type":"image"},null,512)]))},__file:"src/components/FormKit/FormKitRecaptcha/FormKitRecaptcha.vue"};const Me=e=>{if("0"===e[0]){return 97-Number(e.slice(0,8))%97===Number(e.slice(8,10))}return"1"===e[0]&&10===e.length},ke={name:"newBelgium",codes:["BE","BEL","056"],calcWithFormatFn:e=>10===e.length?{vat:`BE${e}`,isValid:Me(e)}:{vat:`BE${e}`,isValid:!1},rules:{multipliers:{},regex:[/^(BE)(\d{10})$/]}},we=D.map((e=>"Belgium"===e.name?ke:e));function Ae(e){if(!e)return 0;const[a,o=0,n=0]=e.split(":").map(Number);return 3600*a+60*o+n}function Te(e){const a=Math.floor(e/3600),o=Math.floor(e%3600/60);return`${String(a).padStart(2,"0")}:${String(o).padStart(2,"0")}`}const Ce={plugins:[function(e){["button","submit","hidden","group","list","meta"].includes(e.props.type)||e.on("created",(()=>{const a=ue.includes(`${e.props.type}${e.props.options?"_multi":""}`)?"legend":"label";e.props.definition.schemaMemoKey&&(e.props.definition.schemaMemoKey+=(e.props.options?"_multi":"")+"_add_asterisk");const o=e.props.definition.schema;e.props.definition.schema=(e={})=>(e[a]={children:["$label",{$cmp:"InfoTooltip",if:"$attrs.tooltip",props:{content:"$attrs.tooltip"}},{$el:"span",if:"$state.required",attrs:{class:"formkit-asterisk"},children:["*"]}]},o(e))}))},function(e){["button","submit","hidden","group","list","meta"].includes(e.props.type)||e.on("created",(()=>{const a=e.props.definition.schema;e.props.definition.schema=(e={})=>(e.help={children:[{$el:"div",attrs:{innerHTML:"$help"}}]},a(e))}))},F({allowIncomplete:!1})],rules:{internationalPhone:function(e){if(""===e.value)return!0;try{return R(e.value).isValid()}catch(e){return!1}},phone:function(e){if(""===e.value)return!0;try{return R(e.value,"BE").isValid()}catch(e){return!1}},iban:function(e){return E.isValid(e.value)},vat:function(e){return j(e.value,we).isValid},insz:function(e){const a=e.value.replace(/[^0-9]/g,"");if(11!=a.length)return!1;const o=a.substr(a.length-2,2),n=function(e){return 97-e%97};let d=parseInt(a.substr(0,9));return n(d)==o||(d=parseInt("2"+a.substr(0,9)),n(d)==o)},timeRule:function(e){const a=e.value,{step:o,min:n,max:d}=e.props.attrs;if(!a)return!0;const i=Ae(a),c=Ae(n),t=Ae(d),l=Number(o);if(i<c)return!1;if(i>t)return!1;return 0===(i-c)%l}},messages:{nl:{validation:{phone:"Dit is geen geldig telefoonnummer.",required:"Dit veld is verplicht.",vat:"Dit is geen geldig Btw-nummer.",is:"Dit veld is verplicht.",timeRule:({node:e})=>function(e){const a=e.value,{step:o,min:n,max:d}=e.props.attrs;if(!a)return"";const i=Ae(a),c=Ae(n),t=Ae(d),l=Number(o);if(i<c)return`De waarde moet ${Te(c)} uur of later zijn.`;if(i>t)return`De waarde moet ${Te(t)} uur of eerder zijn.`;const r=(i-c)%l;if(0===r)return"";const s=i-r,m=s+l;return`Voer een geldige tijd in. De twee dichtstbijzijnde geldige waarden zijn ${Te(Math.max(s,c))} en ${Te(Math.min(m,t))}.`}(e)}},en:{validation:{phone:"This is not a valid phone number.",required:"This field is required.",is:"This field is required.",vat:"This is not a valid VAT number."}},fr:{validation:{phone:"Ce numéro de téléphone n'est pas valide.",required:"Ce champ est obligatoire.",is:"Ce champ est obligatoire.",vat:"Ce numéro de TVA n'est pas valide."}}},locales:{nl:G,en:P,fr:K},locale:document.documentElement.lang,inputs:{internationalPhone:A(fe),recaptcha:A(Se)}};var Ie={install(e,a){const o=$({},Ce,a);e.component("MinskyWebformFormKit",ne),e.use(T,C(o)),e.component("Icon",le),e.component("InfoTooltip",me),e.component("FormKitMessages",I)}};export{ne as MinskyWebformFormKit,Ie as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "minsky-webform-formkit",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "",
5
5
  "module": "dist/index.js",
6
6
  "type": "module",
@@ -64,7 +64,7 @@ const config = {
64
64
  locales: { nl, en, fr },
65
65
  locale: document.documentElement.lang,
66
66
  inputs: {
67
- phoneEnhanced: createInput(FormKitPhoneEnhanced),
67
+ internationalPhone: createInput(FormKitPhoneEnhanced),
68
68
  recaptcha: createInput(FormKitRecaptcha),
69
69
  },
70
70
  };