1const FormCreateSolution={map_fields:fetchFormMapFields(),init:function(){FormCreateSolution.listeners(),FormCreateSolution.fetchAndSetBulkFields()},fetchAndSetBulkFields:function(){let map_fields=FormCreateSolution.map_fields;if(typeof __savedQrCodeParams=="undefined")return;let content=extractDataFromArray(__savedQrCodeParams,["content"],[]);Array.isArray(content)&&content.forEach((component,index)=>{if(extractDataFromArray(component,["component"],"")!=="form")return;let _id=extractDataFromArray(component,["_id"],""),fields=extractDataFromArray(component,["form_integration","landing_page","fields"],[]),bulk_id=extractDataFromArray(component,["form_integration","landing_page","bulk_id"],"");isEmpty(bulk_id)||isEmpty(fields)||$.post("//"+__api_domain+"/user/services/api",{cmd:"fetchBulkFields",bulk_id},function(response){let data=extractDataFromArray(response,["data"],[]),headerSet=new Set;Object.values(data).forEach(item=>{extractDataFromArray(item,["fields"],[]).forEach(section=>headerSet.add(extractDataFromArray(section,["header"],"")))});let filteredFields=fields.filter(field=>headerSet.has(extractDataFromArray(field,["header"],"")));map_fields[_id]=filteredFields,QRPageComponents.handleInputChange(null,index)})})},listeners:function(){$(document).on("change","select[name=solution_type]",function(e){let index=$(this).parents(".qr_page_component_card").index();FormCreateSolution.fetchBulkUploadsBySolutionType(index)}),$(document).on("click",".refresh_js",function(e){let index=$(this).parents(".qr_page_component_card").index();FormCreateSolution.fetchBulkUploadsBySolutionType(index)}),$(document).on("change","input[name=enable_qrcode_creation]",function(e){let enable=!!e.target.checked,parent=$(this).parents(".qr_page_component_card"),element=$(parent).find(".main_container");if(amILoggedIn()){if(!extractDataFromArray(__plan_info,[extractDataFromArray(user_info,["plan_info","plan"],"FR"),"FORM_CREATE_SOLUTION"],!1)){$(this).prop("checked",!1),PlanPopup.showPurchasePopupForFormCreateSolution();return}enable?element.hasClass("d-none")&&element.removeClass("d-none"):element.hasClass("d-none")||element.addClass("d-none")}else $(this).prop("checked",!1),$("#signup-free").modal("show")}),$(document).on("change",".creation_type_radio",function(e){let parent=$(this).parents(".qr_page_component_card");e.target.value=="A"?$(parent).find(".approval_notification").removeClass("d-none"):$(parent).find(".approval_notification").addClass("d-none")}),$(document).on("change","input[name=enable_approval_notification]",function(e){let parent=$(this).parents(".qr_page_component_card");e.target.checked?$(parent).find(".form_emails_input").removeClass("d-none"):$(parent).find(".form_emails_input").addClass("d-none")}),$(document).on("click",".open_field_map",function(e){let index=$(this).parents(".qr_page_component_card").index(),component=QRPageComponents.components[index],bulk_id=extractDataFromArray(component,["form_integration","landing_page","bulk_id"],"");isEmpty(bulk_id)?FormCreateSolution.showErrorMsg("Please select bulk for landing page creation"):FormCreateSolution.fetchFieldsAndShowMappingPopup(bulk_id,index)}),$(document).on("change","select[name=solution_type]",function(e){let index=$(this).parents(".qr_page_component_card").index(),component=QRPageComponents.components[index],id=extractDataFromArray(component,["_id"],"");FormCreateSolution.map_fields[id]=[],QRPageComponents.handleInputChange(null,index)}),$(document).on("change","select[name=bulk_list]",function(e){let index=$(this).parents(".qr_page_component_card").index(),component=QRPageComponents.components[index],solutionType=extractDataFromArray(component,["form_integration","landing_page","solution_type"],"digital-business-cards");if(this.value=="bulk"){let path="/qr-code-generator-for-"+solutionType,a=document.createElement("a");a.href=path+"?bulk=1",a.target="_blank",a.rel="noopener noreferrer",a.click(),$(this).val("")}else{let id=extractDataFromArray(component,["_id"],"");FormCreateSolution.map_fields[id]=[],QRPageComponents.handleInputChange(null,index)}}),$(document).on("click",".field_map_popup #form_modal_close",e=>{Swal.close()})},fetchBulkUploadsBySolutionType:function(index){let component=QRPageComponents.c
1omponents[index];if(extractDataFromArray(component,["component"],"")!="form")return;let type=$(".qr_page_component_card").eq(index).find('select[name="solution_type"]').val(),selectedBulkId=extractDataFromArray(component,["form_integration","landing_page","bulk_id"],"");$.post("//"+__api_domain+"/user/services/api",{cmd:"fetchBulkUploadsBySolutionType",type},function(response){let data=[];extractDataFromArray(response,["errorCode"],1)==0&&(data=extractDataFromArray(response,["data","records"],[])),FormCreateSolution.prepareBulkListDropdown(data,selectedBulkId,index,type)})},prepareBulkListDropdown:function(data,selectedBulkId,index,type){$(".qr_page_component_card").eq(index).find('select[name="bulk_list"]').html("");let dropDownHtml='<option value="">Select Bulk</option>';dropDownHtml+='<option value="bulk" class="create_bulk" data-type="'+type+'">+ Create Bulk QR Code</option>',isEmpty(data)||data.forEach(rec=>{let bulkId=extractDataFromArray(rec,["_id"],"");dropDownHtml+='<option value="'+bulkId+'" '+(selectedBulkId==bulkId?"selected":"")+">"+extractDataFromArray(rec,["name"],"")+"</option>"}),$(".qr_page_component_card").eq(index).find('select[name="bulk_list"]').html(dropDownHtml),QRPageComponents.handleInputChange(null,index)},showErrorMsg:function(text,callback=()=>{}){SwalPopup.showSingleButtonPopup({icon:"error",text,confirmButtonText:"Close"},result=>{callback()})},fetchFieldsAndShowMappingPopup:function(bulk_id,index){$.post("//"+__api_domain+"/user/services/api",{cmd:"fetchBulkFields",bulk_id},function(response){extractDataFromArray(response,["errorCode"],1)==1?FormCreateSolution.showErrorMsg(extractDataFromArray(response,["errorMsg"],"")):FormCreateSolution.openMapFieldsPopup(extractDataFromArray(response,["data"],[]),index)})},openMapFieldsPopup:function(data,index){let html=FormCreateSolution.getMapFieldsHtml(data,index);Swal.fire({width:990,showCancelButton:!0,html,customClass:{popup:"swal_popup_with_no_padding",content:"swal_popup_with_no_padding",container:"field_map_popup",close:"swal_popup_close"},didOpen:()=>{$(".select").select2()},confirmButtonText:"Save",reverseButtons:!0}).then(result=>{result.isConfirmed&&FormCreateSolution.saveMapFieldsData(index)})},getMapFieldsHtml:function(data,index){let innerHtml="",formFields=FormCreateSolution.getFormFields(index),existingMapFields=extractDataFromArray(QRPageComponents.components[index],["form_integration","landing_page","fields"],[]);return Object.keys(data).forEach(key=>{let fields=extractDataFromArray(data[key],["fields"],[]);if(isEmpty(fields))return;let sectionHtml="";fields.forEach((field,idx)=>{let bulkLabel=extractDataFromArray(field,["header"],""),savedFormFieldId=extractDataFromArray(existingMapFields,[bulkLabel,"form_field_id"],"");existingMapFields.forEach(rec=>{if(extractDataFromArray(rec,["header"],"")==bulkLabel){savedFormFieldId=extractDataFromArray(rec,["form_field_id"],"");return}});let autoSelected=!1,optionHtml='<option value="">Select a field</option>';formFields.forEach(formField=>{let formLabel=extractDataFromArray(formField,["label"],""),formFieldId=extractDataFromArray(formField,["_id"],"");savedFormFieldId==formFieldId&&(autoSelected=!0),optionHtml+='<option value="'+formFieldId+'" '+(savedFormFieldId==formFieldId?"selected":"")+">"+formLabel+"</option>"}),sectionHtml+=`<div class="field_row"> 2 <div class="bulk_label pr-3" data-label="`+bulkLabel+'">'+bulkLabel+`</div> 3 <div class="default_value px-3 `+(autoSelected?"disable_text":"")+'">'+extractDataFromArray(field,["default_value"],"")+`</div> 4 <div class="form_field pl-3 map_fields"> 5 <select class="form-control select" name="form_field"> 6 `+optionHtml+` 7 </select> 8 </div> 9 </div>`});let component=extractDataFromArray(data[key],["component"],"profile");innerHtml+=`<div> 10 <div class="map_field_header">`+extractDataFromArray(ComponentLists[component],["title"],"")+`</div> 11 `+sectionHtml+` 12 </div>`}),`<div class="field_list_main"> 13 <div class="sticky-top"> 14 <div class="d-flex justify-content-between mb-4"> 15 <h3 style="color:#76839B">Map Form Fields with Landing Page Fields</h3> 16 <button class="btn btn-link p-0 mb-2" style="text-decoration:none" id="form_modal_close"><i class="icon-cross"></i></button> 17 </div> 18 <div class="field_row field_header"> 19 <div class="pr-3">Bulk Fields</div> 20 <div class="px-3">Default Value</div> 21 <div class="pl-3 map_fields">Form Fields</div> 22 </div> 23 </div> 24 <div class="bulk_map_fields thinScrollBar"> 25 <div class="list-unstyled"> 26 `+innerHtml+` 27 </div> 28 </div> 29 </div>`}
29,getFormFields:function(index){let component=QRPageComponents.components[index],formConfig=extractDataFromArray(component,["form_config"],[]),fields=[];return formConfig.forEach(section=>{extractDataFromArray(section,["form_fields"],[]).forEach(field=>{fields.push(field)})}),fields},isFieldValueSimilar:function(value1,value2){if(!value1||!value2)return!1;value1=value1.toLowerCase().trim(),value2=value2.toLowerCase().trim();const words1=value1.split(/\s+/),words2=value2.split(/\s+/);return words1.some(word=>value2.includes(word))||words2.some(word=>value1.includes(word))},saveMapFieldsData:function(index){let sections=$(".bulk_map_fields .field_row"),map_fields=[];if(sections.each((i,section)=>{let bulkFieldLabel=$(section).find(".bulk_label").attr("data-label"),formFieldId=$(section).find(".form_field select[name=form_field]").val();isEmpty(formFieldId)||map_fields.push({header:bulkFieldLabel,form_field_id:formFieldId})}),isEmpty(map_fields))FormCreateSolution.showErrorMsg("Please map atleast one field.",()=>{let parent=$(".qr_page_component_card").eq(index);$(parent).find(".open_field_map").click()});else{let form_id=extractDataFromArray(QRPageComponents.components[index],["_id"],"");isEmpty(form_id)||(FormCreateSolution.map_fields[form_id]=map_fields,QRPageComponents.handleInputChange(null,index))}}};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.