minsky-webform-formkit 1.0.7 → 1.0.8
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 k}from"vue";import{getNode as M}from"@formkit/core";import w from"gsap";import A from"gsap/ScrollToPlugin";import{createInput as T,plugin as C,defaultConfig as I,FormKitMessages as B}from"@formkit/vue";import P from"vue-select";import{Tooltip as G}from"floating-vue";import{nl as K,en as L,fr as E}from"@formkit/i18n";import{createMultiStepPlugin as F}from"@formkit/addons";import N from"libphonenumber-js/mobile/examples";import R from"country-flag-icons/unicode";import{getExampleNumber as D,parsePhoneNumber as x}from"libphonenumber-js";import{IBAN as j}from"ibankit";import{countries as $,checkVAT as V}from"@accountable/jsvat";function U(e,...a){W(e)||Array.isArray(e)||(e={});for(const o of a)if(W(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]:W(n)?(W(d)||(e[a]={}),e[a]=U(e[a],n)):e[a]=n}return e}const O=e=>null==e?[]:Object.keys(Object(e));function H(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 z(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:W(d)&&W(n)&&z(d,n)}return e}function W(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function q(e){let a=!1;return(e||0===e)&&(a=!0),Array.isArray(e)&&(a=!0),a}var J={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 Z={key:0,class:"webform-formkit__placeholder"},Y={key:1},Q={key:2,class:"webform-formkit__loader"},X={key:0,class:"webform-formkit__message"},ee={key:3,class:"webform-formkit__success"},ae={key:0,class:"webform-formkit__succes-title"},oe=["innerHTML"],ne={key:4,class:"webform-formkit__errors"},de=["innerHTML"];var ie={__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}){w.registerPlugin(A);const{lang:g}=document.documentElement,b=h,y=v,S=e(null),k=e(null),T=e({}),C=e({}),I=e(!0),B=e(!1),P=e(!1),G=e(null),K=e(null),L=e(null),E=e(null),F=e(!1),N=a({values:{}});o((()=>{C.value=Object.assign(J,b.messages),N.submit=async e=>{delete e.form_id,delete e.vApp,delete e.webformId,O(e).forEach((a=>{a.includes("captcha")&&(Object.assign(e,e[a]),delete e[a])})),async function(e){b.submitProcessor&&(e=b.submitProcessor(e));P.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(q(e[a]))if(Array.isArray(e[a]))e[a].length?e[a].forEach((e=>{"imageUpload"===M(`${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;O(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":L.value=e.confirmation.title,K.value=e.confirmation.message,B.value=!0,P.value=!1;break;case"url":window.location=e.confirmation.url;break;default:L.value=C.value[g].success.title,K.value=C.value[g].success.message,B.value=!0,P.value=!1}w.to(window,{duration:.5,scrollTo:{y:S.value,offsetY:200},ease:"power2"})}y("success")}(a),b.setUserData&&b.setUserData(e)})):a.json().then((e=>{F.value=!0,P.value=!1,E.value=e.errors}))})).catch((()=>{F.value=!0,P.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=()=>{w.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?(k.value=o.schema,b.schemeProcessor&&(k.value=b.schemeProcessor(o.schema)),T.value=o.values):(F.value=!0,E.value=[{message:C.value[g].messages.missing}])}catch(e){if(F.value=!0,window.drupalSettings){(window.drupalSettings.user.roles||[]).some((e=>["administrator","editor"].includes(e)))?E.value=[{message:e},{message:C.value.global.error}]:E.value=[{message:C.value[g].messages.error}]}else E.value=[{message:C.value[g].messages.error}];console.error(`Error fetching schema of form with ID ${b.id}:`,e)}finally{I.value=!1}}(),b.formDataAddons&&Object.assign(N,b.formDataAddons)}));const R=n((()=>O(N.values)));function D(){z(N.values,H(T.value,R.value)),b.defaults&&U(N.values,H(b.defaults,R.value))}return d(R,(async()=>{D(),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":P.value||I.value},`webform-formkit--${b.id}`,b.classModifier?`webform-formkit--${b.classModifier}`:null]])},[!I.value||B.value||F.value?m("v-if",!0):(t(),l("div",Z,[s(e.$slots,"placeholder")])),I.value||B.value||F.value?m("v-if",!0):(t(),l("div",Y,[u(o,{schema:k.value,data:N,library:b.cmpLibrary},null,8,["schema","data","library"]),s(e.$slots,"afterSchema")])),I.value||P.value?(t(),l("div",Q,[u(n,{loading:!0}),G.value?(t(),l("p",X,_(G.value),1)):m("v-if",!0)])):m("v-if",!0),B.value?(t(),l("div",ee,[L.value?(t(),l("h5",ae,_(L.value),1)):m("v-if",!0),K.value?(t(),l("div",{key:1,class:"webform-formkit__message",innerHTML:K.value},null,8,oe)):m("v-if",!0)])):m("v-if",!0),F.value?(t(),l("ul",ne,[(t(!0),l(f,null,p(E.value,(e=>(t(),l("li",{innerHTML:e.message},null,8,de)))),256))])):m("v-if",!0)],2)}},__file:"src/components/MinksyWebformFormKit/MinskyWebformFormKit.vue"};const ce={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","enable-background":"new 0 0 0 0","xml:space":"preserve"},te=["aria-hidden"],le={key:0},re=["xlink:href"];var se={__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",ce,[...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",le,_(e.ariaTitle),1)):m("v-if",!0),e.name?(t(),l("use",{key:1,"xlink:href":"#sprite-"+e.name},null,8,re)):m("v-if",!0)],8,te))],2)),__file:"src/components/Icon.vue"};const me={class:"info-tooltip"},ue=["innerHTML"];var _e={__name:"InfoTooltip",props:["content"],setup(e){const a=e;return(e,o)=>{const n=c("Icon");return t(),l("span",me,[u(v(G),{triggers:["click","hover"]},{popper:g((()=>[h("div",{innerHTML:a.content},null,8,ue)])),default:g((()=>[u(n,{name:"info"})])),_:1})])}},__file:"src/components/InfoTooltip.vue"};const fe=["checkbox_multi","radio_multi","repeater","transferlist"];const pe=[{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 he={props:{context:{type:Object}},components:{},setup:()=>({isMobileDevice:(a=>{const o=e(!1);return b((e=>{const n=window.matchMedia(a);o.value=n.matches;const d=()=>{o.value=n.matches};n.addEventListener("change",d),e((()=>{n.removeEventListener("change",d)}))})),o})("(hover: none)")}),beforeMount(){this.setCode()},mounted(){this.setCountries()},data(){return{country:{code:this.context.attrs.initialCountry||"BE",label:""},countries:[],code:""}},computed:{maskFn(){const e=D(this.country.code,N).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)},countryOptions(){return this.countries.map((e=>({code:e.code,label:`${R(e.code)} ${e.name}`})))}},methods:{getUnicodeFlagIcon:R,setCode(){this.code=pe.find((e=>e.code===this.country.code)).dial_code},setCountries(){const e=[...pe];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.code":function(){this.setCode(),this.context.value=""},"context.value":function(e){this.context.node.input(e)}}};const ve={class:"formkit-phone-enhanced"},ge={class:"formkit-phone-enhanced__flag"},be=["value"],ye={class:"formkit-phone-enhanced__flag-wrapper"},Se=["src"];he.render=function(e,a,o,n,d,i){const r=c("v-select"),s=c("Icon"),v=c("FormKit");return t(),l("div",ve,[h("div",ge,[e.isMobileDevice?y((t(),l("select",{key:0,class:"formkit-phone-enhanced__list","onUpdate:modelValue":a[0]||(a[0]=a=>e.country.code=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,be)))),128))],512)),[[S,e.country.code]]):(t(),k(r,{key:1,class:"formkit-phone-enhanced__v-select v-select--formkit-phone-enhanced",options:e.countryOptions,modelValue:e.country,"onUpdate:modelValue":a[1]||(a[1]=a=>e.country=a),clearable:!1,searchable:!1},null,8,["options","modelValue"])),h("div",ye,[h("img",{src:`https://purecatamphetamine.github.io/country-flag-icons/3x2/${e.country.code}.svg`,alt:""},null,8,Se)]),u(s,{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(),k(v,{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[2]||(a[2]=a=>e.context.value=a)},null,8,["label","name","id","mask","modelValue"]))])},he.__file="src/components/FormKit/FormKitPhoneEnhanced/FormKitPhoneEnhanced.vue";const ke={class:"formkit-recaptcha"};var Me={__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",ke,[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 we=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},Ae={name:"newBelgium",codes:["BE","BEL","056"],calcWithFormatFn:e=>10===e.length?{vat:`BE${e}`,isValid:we(e)}:{vat:`BE${e}`,isValid:!1},rules:{multipliers:{},regex:[/^(BE)(\d{10})$/]}},Te=$.map((e=>"Belgium"===e.name?Ae:e));function Ce(e){if(!e)return 0;const[a,o=0,n=0]=e.split(":").map(Number);return 3600*a+60*o+n}function Ie(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 Be={plugins:[function(e){["button","submit","hidden","group","list","meta"].includes(e.props.type)||e.on("created",(()=>{const a=fe.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 x(e.value).isValid()}catch(e){return!1}},phone:function(e){if(""===e.value)return!0;try{return x(e.value,"BE").isValid()}catch(e){return!1}},iban:function(e){return j.isValid(e.value)},vat:function(e){return V(e.value,Te).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=Ce(a),c=Ce(n),t=Ce(d),l=Number(o);if(i<c)return!1;if(i>t)return!1;return 0===(i-c)%l}},messages:{nl:{validation:{internationalPhone:"Dit is geen geldig internationaal telefoonnummer.",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=Ce(a),c=Ce(n),t=Ce(d),l=Number(o);if(i<c)return`De waarde moet ${Ie(c)} uur of later zijn.`;if(i>t)return`De waarde moet ${Ie(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 ${Ie(Math.max(s,c))} en ${Ie(Math.min(m,t))}.`}(e)}},en:{validation:{internationalPhone:"This is not a valid international phone number.",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:{internationalPhone:"Ce numéro de téléphone international n'est pas valide.",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:K,en:L,fr:E},locale:document.documentElement.lang,inputs:{internationalPhone:T(he),recaptcha:T(Me)}};var Pe={install(e,a){const o=U({},Be,a);e.component("MinskyWebformFormKit",ie),e.use(C,I(o)),e.component("Icon",se),e.component("InfoTooltip",_e),e.component("FormKitMessages",B),e.component("v-select",P)}};export{ie as MinskyWebformFormKit,Pe 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 k}from"vue";import{getNode as M}from"@formkit/core";import w from"gsap";import A from"gsap/ScrollToPlugin";import{createInput as T,plugin as C,defaultConfig as I,FormKitMessages as B}from"@formkit/vue";import P from"vue-select";import{Tooltip as G}from"floating-vue";import{nl as K,en as L,fr as E}from"@formkit/i18n";import{createMultiStepPlugin as F}from"@formkit/addons";import N from"libphonenumber-js/mobile/examples";import R from"country-flag-icons/unicode";import{getExampleNumber as D,parsePhoneNumber as x}from"libphonenumber-js";import{IBAN as j}from"ibankit";import{countries as $,checkVAT as V}from"@accountable/jsvat";function U(e,...a){W(e)||Array.isArray(e)||(e={});for(const o of a)if(W(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]:W(n)?(W(d)||(e[a]={}),e[a]=U(e[a],n)):e[a]=n}return e}const O=e=>null==e?[]:Object.keys(Object(e));function H(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 z(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:W(d)&&W(n)&&z(d,n)}return e}function W(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function q(e){let a=!1;return(e||0===e)&&(a=!0),Array.isArray(e)&&(a=!0),a}var J={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 Z={key:0,class:"webform-formkit__placeholder"},Y={key:1},Q={key:2,class:"webform-formkit__loader"},X={key:0,class:"webform-formkit__message"},ee={key:3,class:"webform-formkit__success"},ae={key:0,class:"webform-formkit__succes-title"},oe=["innerHTML"],ne={key:4,class:"webform-formkit__errors"},de=["innerHTML"];var ie={__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}){w.registerPlugin(A);const{lang:g}=document.documentElement,b=h,y=v,S=e(null),k=e(null),T=e({}),C=e({}),I=e(!0),B=e(!1),P=e(!1),G=e(null),K=e(null),L=e(null),E=e(null),F=e(!1),N=a({values:{}});o((()=>{C.value=Object.assign(J,b.messages),N.submit=async e=>{delete e.form_id,delete e.vApp,delete e.webformId,O(e).forEach((a=>{a.includes("captcha")&&(Object.assign(e,e[a]),delete e[a])})),async function(e){b.submitProcessor&&(e=b.submitProcessor(e));P.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(q(e[a]))if(Array.isArray(e[a]))e[a].length?e[a].forEach((e=>{"imageUpload"===M(`${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;O(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":L.value=e.confirmation.title,K.value=e.confirmation.message,B.value=!0,P.value=!1;break;case"url":window.location=e.confirmation.url;break;default:L.value=C.value[g].success.title,K.value=C.value[g].success.message,B.value=!0,P.value=!1}w.to(window,{duration:.5,scrollTo:{y:S.value,offsetY:200},ease:"power2"})}y("success")}(a),b.setUserData&&b.setUserData(e)})):a.json().then((e=>{F.value=!0,P.value=!1,E.value=e.errors}))})).catch((()=>{F.value=!0,P.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=()=>{w.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?(k.value=o.schema,b.schemeProcessor&&(k.value=b.schemeProcessor(o.schema)),T.value=o.values):(F.value=!0,E.value=[{message:C.value[g].messages.missing}])}catch(e){if(F.value=!0,window.drupalSettings){(window.drupalSettings.user.roles||[]).some((e=>["administrator","editor"].includes(e)))?E.value=[{message:e},{message:C.value.global.error}]:E.value=[{message:C.value[g].messages.error}]}else E.value=[{message:C.value[g].messages.error}];console.error(`Error fetching schema of form with ID ${b.id}:`,e)}finally{I.value=!1}}(),b.formDataAddons&&Object.assign(N,b.formDataAddons)}));const R=n((()=>O(N.values)));function D(){z(N.values,H(T.value,R.value)),b.defaults&&U(N.values,H(b.defaults,R.value))}return d(R,(async()=>{D(),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":P.value||I.value},`webform-formkit--${b.id}`,b.classModifier?`webform-formkit--${b.classModifier}`:null]])},[!I.value||B.value||F.value?m("v-if",!0):(t(),l("div",Z,[s(e.$slots,"placeholder")])),I.value||B.value||F.value?m("v-if",!0):(t(),l("div",Y,[u(o,{schema:k.value,data:N,library:b.cmpLibrary},null,8,["schema","data","library"]),s(e.$slots,"afterSchema")])),I.value||P.value?(t(),l("div",Q,[u(n,{loading:!0}),G.value?(t(),l("p",X,_(G.value),1)):m("v-if",!0)])):m("v-if",!0),B.value?(t(),l("div",ee,[L.value?(t(),l("h5",ae,_(L.value),1)):m("v-if",!0),K.value?(t(),l("div",{key:1,class:"webform-formkit__message",innerHTML:K.value},null,8,oe)):m("v-if",!0)])):m("v-if",!0),F.value?(t(),l("ul",ne,[(t(!0),l(f,null,p(E.value,(e=>(t(),l("li",{innerHTML:e.message},null,8,de)))),256))])):m("v-if",!0)],2)}},__file:"src/components/MinksyWebformFormKit/MinskyWebformFormKit.vue"};const ce={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","enable-background":"new 0 0 0 0","xml:space":"preserve"},te=["aria-hidden"],le={key:0},re=["xlink:href"];var se={__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",ce,[...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",le,_(e.ariaTitle),1)):m("v-if",!0),e.name?(t(),l("use",{key:1,"xlink:href":"#sprite-"+e.name},null,8,re)):m("v-if",!0)],8,te))],2)),__file:"src/components/Icon.vue"};const me={class:"info-tooltip"},ue=["innerHTML"];var _e={__name:"InfoTooltip",props:["content"],setup(e){const a=e;return(e,o)=>{const n=c("Icon");return t(),l("span",me,[u(v(G),{triggers:["click","hover"]},{popper:g((()=>[h("div",{innerHTML:a.content},null,8,ue)])),default:g((()=>[u(n,{name:"info"})])),_:1})])}},__file:"src/components/InfoTooltip.vue"};const fe=["checkbox_multi","radio_multi","repeater","transferlist"];const pe=[{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 he={props:{context:{type:Object}},components:{},setup:()=>({isMobileDevice:(a=>{const o=e(!1);return b((e=>{const n=window.matchMedia(a);o.value=n.matches;const d=()=>{o.value=n.matches};n.addEventListener("change",d),e((()=>{n.removeEventListener("change",d)}))})),o})("(hover: none)")}),beforeMount(){this.setCode()},mounted(){this.setCountries()},data(){return{country:{code:this.context.attrs.initialCountry||"BE",label:""},countries:[],code:""}},computed:{maskFn(){const e=D(this.country.code,N).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)},countryOptions(){return this.countries.map((e=>({code:e.code,label:`${R(e.code)} ${e.name}`})))}},methods:{getUnicodeFlagIcon:R,setCode(){this.code=pe.find((e=>e.code===this.country.code)).dial_code},setCountries(){const e=[...pe];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.code":function(){this.setCode(),this.context.value=""},"context.value":function(e){this.context.node.input(e)}}};const ve={class:"formkit-phone-enhanced"},ge={class:"formkit-phone-enhanced__flag"},be=["value"],ye={class:"formkit-phone-enhanced__flag-wrapper"},Se=["src"];he.render=function(e,a,o,n,d,i){const r=c("v-select"),s=c("Icon"),v=c("FormKit");return t(),l("div",ve,[h("div",ge,[e.isMobileDevice?y((t(),l("select",{key:0,class:"formkit-phone-enhanced__list","onUpdate:modelValue":a[0]||(a[0]=a=>e.country.code=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,be)))),128))],512)),[[S,e.country.code]]):(t(),k(r,{key:1,class:"formkit-phone-enhanced__v-select v-select--formkit-phone-enhanced",options:e.countryOptions,modelValue:e.country,"onUpdate:modelValue":a[1]||(a[1]=a=>e.country=a),clearable:!1,searchable:!1},null,8,["options","modelValue"])),h("div",ye,[h("img",{src:`https://purecatamphetamine.github.io/country-flag-icons/3x2/${e.country.code}.svg`,alt:""},null,8,Se)]),u(s,{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(),k(v,{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[2]||(a[2]=a=>e.context.value=a),"sections-schema":{input:{attrs:{type:"tel"}}}},null,8,["label","name","id","mask","modelValue"]))])},he.__file="src/components/FormKit/FormKitPhoneEnhanced/FormKitPhoneEnhanced.vue";const ke={class:"formkit-recaptcha"};var Me={__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",ke,[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 we=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},Ae={name:"newBelgium",codes:["BE","BEL","056"],calcWithFormatFn:e=>10===e.length?{vat:`BE${e}`,isValid:we(e)}:{vat:`BE${e}`,isValid:!1},rules:{multipliers:{},regex:[/^(BE)(\d{10})$/]}},Te=$.map((e=>"Belgium"===e.name?Ae:e));function Ce(e){if(!e)return 0;const[a,o=0,n=0]=e.split(":").map(Number);return 3600*a+60*o+n}function Ie(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 Be={plugins:[function(e){["button","submit","hidden","group","list","meta"].includes(e.props.type)||e.on("created",(()=>{const a=fe.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 x(e.value).isValid()}catch(e){return!1}},phone:function(e){if(""===e.value)return!0;try{return x(e.value,"BE").isValid()}catch(e){return!1}},iban:function(e){return j.isValid(e.value)},vat:function(e){return V(e.value,Te).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=Ce(a),c=Ce(n),t=Ce(d),l=Number(o);if(i<c)return!1;if(i>t)return!1;return 0===(i-c)%l}},messages:{nl:{validation:{internationalPhone:"Dit is geen geldig internationaal telefoonnummer.",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=Ce(a),c=Ce(n),t=Ce(d),l=Number(o);if(i<c)return`De waarde moet ${Ie(c)} uur of later zijn.`;if(i>t)return`De waarde moet ${Ie(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 ${Ie(Math.max(s,c))} en ${Ie(Math.min(m,t))}.`}(e)}},en:{validation:{internationalPhone:"This is not a valid international phone number.",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:{internationalPhone:"Ce numéro de téléphone international n'est pas valide.",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:K,en:L,fr:E},locale:document.documentElement.lang,inputs:{internationalPhone:T(he),recaptcha:T(Me)}};var Pe={install(e,a){const o=U({},Be,a);e.component("MinskyWebformFormKit",ie),e.use(C,I(o)),e.component("Icon",se),e.component("InfoTooltip",_e),e.component("FormKitMessages",B),e.component("v-select",P)}};export{ie as MinskyWebformFormKit,Pe as default};
|
package/package.json
CHANGED