PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / V3.3.2
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder vV3.3.2
V3.3.2 3.3.1 V-3.3.0 3.2.2 3.2.1 3.2.0 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 V3.0.3 V3.0.2 -3.0.1 V_3.0.0 1.1.1 1.1.8 1.2 1.3 1.4 1.4.18 1.5.2 1.9 2.0 2.10.0 All 139 releases
bit-form / assets / bf-224-73.js

bf-224-73.js in Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder V3.3.2, at assets/bf-224-73.js

2 lines 3.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 var O=Object.defineProperty;var k=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,R=Object.prototype.propertyIsEnumerable;var E=(e,s,n)=>s in e?O(e,s,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[s]=n,F=(e,s)=>{for(var n in s||(s={}))j.call(s,n)&&E(e,n,s[n]);if(k)for(var n of k(s))R.call(s,n)&&E(e,n,s[n]);return e};import{a as $,j as v,_ as S,z as N}from"./main-96.js";import{b as B}from"./bf-331-47.js";const A=e=>String(e!=null?e:"").replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase().replace(/[\s_\-.]+/g," ").replace(/[^a-z0-9 ]/g,"").trim(),_=e=>A(e).replace(/ /g,""),C=new Set(["field","the","your","please","enter","a","an"]),x=e=>A(e).split(" ").filter(s=>s&&!C.has(s)),T=(e,s)=>{if(!e||!s)return 0;const n=A(e),r=A(s);if(!n||!r)return 0;if(n===r)return 100;const l=_(e),h=_(s);if(l===h)return 95;const i=x(e),d=x(s);if(!i.length||!d.length)return 0;const u=new Set(d),f=i.filter(g=>u.has(g));if(!f.length)return 0;if(i.length===d.length&&f.length===i.length)return 90;const c=f.length/Math.min(i.length,d.length);return c===1?75:Math.round(55*c)},q=e=>typeof e=="string"||typeof e=="number"?{key:String(e),name:String(e),label:String(e)}:e||{},D=(e,s)=>{const n=q(e),r=q(s),l=[n.label,n.lbl,n.adminLabel,n.adminLbl,n.name,n.key],h=[r.label,r.lbl,r.title,r.name,r.fieldName,r.fieldLabel,r.key,r.fieldKey,r.fieldId,r.value];let i=0;return l.forEach(d=>{h.forEach(u=>{const f=T(d,u);f>i&&(i=f)})}),i},G=70,z=10;function W({fieldMap:e=[],formFields:s=[],integrationFields:n=[],formKey:r="formField",integKey:l,formValueProp:h="key",integValueProp:i="key"}){if(!l||!Array.isArray(n)||!n.length)return{fieldMap:e,mapped:0};const d=Array.isArray(e)?[...e]:[],u=new Set,f=new Set;d.forEach(t=>{t!=null&&t[r]&&u.add(String(t[r])),t!=null&&t[l]&&f.add(String(t[l]))});const c=(t,o)=>{var a,M;return String((M=(a=q(t))==null?void 0:a[o])!=null?M:"")},g=s.filter(t=>c(t,h)&&!u.has(c(t,h))),p=n.filter(t=>c(t,i)&&!f.has(c(t,i)));if(!g.length||!p.length)return{fieldMap:d,mapped:0};const b=[];if(g.forEach(t=>{p.forEach(o=>{const a=D(t,o);a>=G&&b.push({ff:t,itf:o,score:a})})}),!b.length)return{fieldMap:d,mapped:0};b.sort((t,o)=>o.score-t.score);const I=[];if(b.forEach(t=>{const o=c(t.ff,h),a=c(t.itf,i);if(u.has(o)||f.has(a))return;const M=b.find(m=>m!==t&&c(m.itf,i)===a&&!u.has(c(m.ff,h))&&t.score-m.score<z),L=b.find(m=>m!==t&&c(m.ff,h)===o&&!f.has(c(m.itf,i))&&t.score-m.score<z);M||L||(u.add(o),f.add(a),I.push({formId:o,integId:a,required:q(t.itf).required}))}),!I.length)return{fieldMap:d,mapped:0};const y=d.map(t=>F({},t));return I.forEach(t=>{const o=y.find(a=>!(a!=null&&a[r])&&(!(a!=null&&a[l])||a[l]===t.integId));if(o)o[r]=t.formId,o[l]=t.integId,t.required!==void 0&&o.required===void 0&&(o.required=t.required);else{const a={[r]:t.formId,[l]:t.integId};t.required!==void 0&&(a.required=t.required),y.push(a)}}),{fieldMap:y,mapped:I.length}}function Q({fieldMap:e,formFields:s,integrationFields:n,integKey:r,formKey:l="formField",integValueProp:h="key",onMapped:i,disabled:d=!1}){const{css:u}=$(),f=()=>{const{fieldMap:g,mapped:p}=W({fieldMap:e,formFields:s,integrationFields:n,formKey:l,integKey:r,integValueProp:h});if(!p){N.error(S("No confident matches found — map these fields manually."));return}i(g),N.success(`${p} ${p===1?S("field mapped"):S("fields mapped")}`)},c=!Array.isArray(n)||n.length===0;return v.jsx("button",{type:"button",className:u(B.autoMapBtn),onClick:f,disabled:d||c,title:c?S("Load the destination fields first"):S("Match form fields to integration fields automatically"),"data-testid":"integ-auto-map",children:S("Auto Map")})}export{Q as A};
2