minsky-webform-formkit 1.0.3 → 1.0.4
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 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};
|
|
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{getNode as k}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{Tooltip as G}from"floating-vue";import{nl as P,en as K,fr as F}from"@formkit/i18n";import{createMultiStepPlugin as L}from"@formkit/addons";import N from"libphonenumber-js/mobile/examples";import R from"country-flag-icons/unicode";import{parsePhoneNumber as x,getExampleNumber as E}from"libphonenumber-js";import{IBAN as D}from"ibankit";import{countries as j,checkVAT as $}from"@accountable/jsvat";function U(e,...a){z(e)||Array.isArray(e)||(e={});for(const o of a)if(z(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]:z(n)?(z(d)||(e[a]={}),e[a]=U(e[a],n)):e[a]=n}return e}const V=e=>null==e?[]:Object.keys(Object(e));function O(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 H(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:z(d)&&z(n)&&H(d,n)}return e}function z(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function W(e){let a=!1;return(e||0===e)&&(a=!0),Array.isArray(e)&&(a=!0),a}var q={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 J={key:0,class:"webform-formkit__placeholder"},Z={key:1},Y={key:2,class:"webform-formkit__loader"},Q={key:0,class:"webform-formkit__message"},X={key:3,class:"webform-formkit__success"},ee={key:0,class:"webform-formkit__succes-title"},ae=["innerHTML"],oe={key:4,class:"webform-formkit__errors"},ne=["innerHTML"];var de={__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),M=e(null),T=e({}),C=e({}),I=e(!0),B=e(!1),G=e(!1),P=e(null),K=e(null),F=e(null),L=e(null),N=e(!1),R=a({values:{}});o((()=>{console.log("Mounted"),C.value=Object.assign(q,b.messages),R.submit=async e=>{delete e.form_id,delete e.vApp,delete e.webformId,V(e).forEach((a=>{a.includes("captcha")&&(Object.assign(e,e[a]),delete e[a])})),async function(e){b.submitProcessor&&(e=b.submitProcessor(e));G.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(W(e[a]))if(Array.isArray(e[a]))e[a].length?e[a].forEach((e=>{"imageUpload"===k(`${this.id}--${a}`).context.type?"object"==typeof e?R.append(`${a}[]`,_values(e)[0]):R.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;V(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":F.value=e.confirmation.title,K.value=e.confirmation.message,B.value=!0,w.to(window,{duration:.5,scrollTo:{y:S.value,offsetY:200},ease:"power2"}),G.value=!1;break;case"url":window.location=e.confirmation.url;break;default:F.value=C.value[g].success.title,K.value=C.value[g].success.message,B.value=!0,G.value=!1}y("success")}(a),b.setUserData&&b.setUserData(e)})):a.json().then((e=>{N.value=!0,G.value=!1,L.value=e.errors}))})).catch((()=>{N.value=!0,G.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))},R.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?(M.value=o.schema,b.schemeProcessor&&(M.value=b.schemeProcessor(o.schema)),T.value=o.values):(N.value=!0,L.value=[{message:C.value[g].messages.missing}])}catch(e){if(N.value=!0,window.drupalSettings){(window.drupalSettings.user.roles||[]).some((e=>["administrator","editor"].includes(e)))?L.value=[{message:e},{message:C.value.global.error}]:L.value=[{message:C.value[g].messages.error}]}else L.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(R,b.formDataAddons)}));const x=n((()=>V(R.values)));function E(){H(R.values,O(T.value,x.value)),b.defaults&&U(R.values,O(b.defaults,x.value))}return d(x,(async()=>{E(),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":G.value||I.value},`webform-formkit--${b.id}`,b.classModifier?`webform-formkit--${b.classModifier}`:null]])},[!I.value||B.value||N.value?m("v-if",!0):(t(),l("div",J,[s(e.$slots,"placeholder")])),I.value||B.value||N.value?m("v-if",!0):(t(),l("div",Z,[u(o,{schema:M.value,data:R,library:b.cmpLibrary},null,8,["schema","data","library"]),s(e.$slots,"afterSchema")])),I.value||G.value?(t(),l("div",Y,[u(n,{loading:!0}),P.value?(t(),l("p",Q,_(P.value),1)):m("v-if",!0)])):m("v-if",!0),B.value?(t(),l("div",X,[F.value?(t(),l("h5",ee,_(F.value),1)):m("v-if",!0),K.value?(t(),l("div",{key:1,class:"webform-formkit__message",innerHTML:K.value},null,8,ae)):m("v-if",!0)])):m("v-if",!0),N.value?(t(),l("ul",oe,[(t(!0),l(f,null,p(L.value,(e=>(t(),l("li",{innerHTML:e.message},null,8,ne)))),256))])):m("v-if",!0)],2)}},__file:"src/components/MinksyWebformFormKit/MinskyWebformFormKit.vue"};const ie={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"},ce=["aria-hidden"],te={key:0},le=["xlink:href"];var re={__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",ie,[...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",te,_(e.ariaTitle),1)):m("v-if",!0),e.name?(t(),l("use",{key:1,"xlink:href":"#sprite-"+e.name},null,8,le)):m("v-if",!0)],8,ce))],2)),__file:"src/components/Icon.vue"};const se={class:"info-tooltip"},me=["innerHTML"];var ue={__name:"InfoTooltip",props:["content"],setup(e){const a=e;return(e,o)=>{const n=c("Icon");return t(),l("span",se,[u(v(G),{triggers:["click","hover"]},{popper:g((()=>[h("div",{innerHTML:a.content},null,8,me)])),default:g((()=>[u(n,{name:"info"})])),_:1})])}},__file:"src/components/InfoTooltip.vue"};const _e=["checkbox_multi","radio_multi","repeater","transferlist"];const fe=[{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 pe={props:{context:{type:Object}},components:{},beforeMount(){this.setCode()},mounted(){this.setCountries(),b((async()=>{if(this.context.value){await i();const e=x(this.context.value);this.country=e.country,this.phone=e.nationalNumber}}))},data(){return{country:this.context.attrs.initialCountry,countries:[],code:""}},computed:{maskFn(){const e=E(this.country,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)}},methods:{getUnicodeFlagIcon:R,setCode(){this.code=fe.find((e=>e.code===this.country)).dial_code},setCountries(){const e=[...fe];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 he={class:"formkit-phone-enhanced"},ve={class:"formkit-phone-enhanced__flag"},ge=["value"],be={class:"formkit-phone-enhanced__flag-wrapper"},ye=["src"];pe.render=function(e,a,o,n,d,i){const r=c("Icon"),s=c("FormKit");return t(),l("div",he,[h("div",ve,[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,ge)))),128))],512),[[S,e.country]]),h("div",be,[h("img",{src:`https://purecatamphetamine.github.io/country-flag-icons/3x2/${e.country}.svg`,alt:""},null,8,ye)]),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"]))])},pe.__file="src/components/FormKit/FormKitPhoneEnhanced/FormKitPhoneEnhanced.vue";const Se={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",Se,[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 ke=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},we={name:"newBelgium",codes:["BE","BEL","056"],calcWithFormatFn:e=>10===e.length?{vat:`BE${e}`,isValid:ke(e)}:{vat:`BE${e}`,isValid:!1},rules:{multipliers:{},regex:[/^(BE)(\d{10})$/]}},Ae=j.map((e=>"Belgium"===e.name?we:e));function Te(e){if(!e)return 0;const[a,o=0,n=0]=e.split(":").map(Number);return 3600*a+60*o+n}function Ce(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 Ie={plugins:[function(e){["button","submit","hidden","group","list","meta"].includes(e.props.type)||e.on("created",(()=>{const a=_e.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))}))},L({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 D.isValid(e.value)},vat:function(e){return $(e.value,Ae).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=Te(a),c=Te(n),t=Te(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=Te(a),c=Te(n),t=Te(d),l=Number(o);if(i<c)return`De waarde moet ${Ce(c)} uur of later zijn.`;if(i>t)return`De waarde moet ${Ce(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 ${Ce(Math.max(s,c))} en ${Ce(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:P,en:K,fr:F},locale:document.documentElement.lang,inputs:{internationalPhone:T(pe),recaptcha:T(Me)}};var Be={install(e,a){const o=U({},Ie,a);e.component("MinskyWebformFormKit",de),e.use(C,I(o)),e.component("Icon",re),e.component("InfoTooltip",ue),e.component("FormKitMessages",B)}};export{de as MinskyWebformFormKit,Be as default};
|
package/package.json
CHANGED
package/src/components/Icon.vue
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<span class="icon" :class="[name !== '' ? 'icon--' + name : '', modifiers.length ? 'icon--' + modifiers.join(' icon--') : '']">
|
|
3
|
-
<svg v-if="loading" 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"
|
|
3
|
+
<svg v-if="loading" 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">
|
|
4
4
|
<title>Loading</title>
|
|
5
5
|
<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">
|
|
6
6
|
<animateTransform attributeName="transform" attributeType="XML" type="rotate" dur="1s" from="0 50 50" to="360 50 50" repeatCount="indefinite" />
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
<script setup>
|
|
29
29
|
import { ref, reactive, computed, watch, onMounted, nextTick } from 'vue';
|
|
30
|
+
import { getNode } from '@formkit/core';
|
|
30
31
|
import { _keys, _pick, _merge, _defaultsDeep } from '../../utils/lodash';
|
|
31
32
|
import gsap from 'gsap';
|
|
32
33
|
import ScrollToPlugin from 'gsap/ScrollToPlugin';
|
|
@@ -98,6 +99,7 @@ const formData = reactive({
|
|
|
98
99
|
* Lifecycle
|
|
99
100
|
* ------------------------------------------------------------------ */
|
|
100
101
|
onMounted(() => {
|
|
102
|
+
console.log('Mounted');
|
|
101
103
|
// we merge messages provided by the user with default messages so there will alway be feedback when the form is submitted or missing
|
|
102
104
|
msgs.value = Object.assign(defaultMessages, props.messages);
|
|
103
105
|
|
|
@@ -227,7 +229,7 @@ async function submitForm(data) {
|
|
|
227
229
|
if (Array.isArray(data[key])) {
|
|
228
230
|
if (data[key].length) {
|
|
229
231
|
data[key].forEach((val) => {
|
|
230
|
-
if (
|
|
232
|
+
if (getNode(`${this.id}--${key}`).context.type === 'imageUpload') {
|
|
231
233
|
if (typeof val === 'object') {
|
|
232
234
|
formData.append(`${key}[]`, _values(val)[0]);
|
|
233
235
|
} else {
|